mp3 Разбираемся по порядку

Введение

За последние несколько лет стал ужасно модным и популярным формат MP3. На любом лотке, торгующем компьютерными CD-дисками, вы легко найдете не один десяток дисков типа «Полная антология группы XXX», и внизу скромненькую такую надпись — MP3. Чаще всего для полной картины на обложках красуется модное словосочетание CD quality — то бишь качество, как у Audio-CD. Именно об этом и не только будет дальше наше повествование — о MP3, какие они бывают, о качестве звука в MP3.

О формате MP3

Для начала немного разберемся с предметной областью. Что вообще из себя такое представляет этот MP3?

MP3, более правильное название MPEG-1 Layer 3 — стандарт на сжатие аудиоинформации с потерями. При этом основной целью при создании стандарта было обеспечение максимально «идентичного» исходному звука, а также сведение к минимуму объема хранимых данных. Для этого была создана оригинальная схема кодирования — на первом этапе оцифрованный звук разбивается на частотные составляющие, которые проходят через ряд фильтров.

Основное отличие MP3 от прежде существовавших стандартов — именно в фильтрации. Разработчики стандарта создали так называемую психоакустическую модель — модель, которая учитывает некоторые особенности человеческого слуха, и на основании этой модели из аудиосигнала отфильтровываются те частоты, отсутствие которых слух почти не замечает. На втором этапе полученный поток кодируется по алгоритму Хаффмена со статической таблицей. Результат и будет являться потоком MP3.

Кроме этого в файл MP3 могут быть добавлены также тэги ID3 (метки, содержащие название песни, исполнителя, другую информацию) и различная сервисная информация.

Режимы сжатия и битрейты

Ширина потока — битрейт определяет, сколько бит необходимо для кодирования 1 секунды музыки. Стандарт MP3 регламентирует потоки от 8kbit/s до 320kbit/s. Наиболее типичный битрейт — 128kbit/s.

Исходя из потока, легко подсчитать, сколько будет занимать одна минута музыки — надо битрейт разделить на 8 (число бит в байте) и умножить на 60 (секунд в минуте) — получим число килобайт. Для уже упомянутого потока 128kbit/s это будет 128/8*60=960 килобайт или около мегабайта на каждую минуту записи.

Вполне естественно, что чем больше битрейт, тем больше деталей звука удается сохранить, тем он звучит реалистичнее. В выборе битрейта при кодировании приходится чем-либо жертвовать — либо качеством в пользу малого размера, либо размером в пользу качества.

Самый простой режим сжатия MP3 — это режим с постоянным битрейтом (CBR, Constant BitRate). Ранее на сборках MP3 почти на 100% использовался уже упомянутый выше битрейт 128kbit/s — и при этом на дисках присутствовала надпись CD quality. Откровенно говоря, это просто наглая ложь. На практике отличить звучание такой MP3 от звучания аудио компакт-диска нельзя разве только что на самой дешевой акустике.

Уровень качества на битрейте 128kbit/s — это примерно уровень звучания среднего магнитофона на не самой свежей пленке, может чуть лучше. Еще можно добавить, что именно такой битрейт широко распространен в записях, доступных по Internet.

Для упрощения разбора более высоких битрейтов напишу их сеточку: 128kbit/s, 160kbit/s, 192kbit/s, 224kbit/s, 256kbit/s, 320kbit/s. Итак, битрейты 160 и 192kbit/s уже заметно лучше по качеству, нежели 128kbit/s, но получаемые файлы все еще не так велики. «Артефакты» (огрехи) кодека уже почти незаметны (по крайней мере на моей системе).

С битрейтом 224 мне в чистом виде ни разу встретиться не пришлось, поэтому про его качество ничего не могу сказать, но оно должно быть выше, чем на предыдущей ступеньке лесенки битрейтов. Кроме того, мне не встречались обзоры, охватывавшие и этот битрейт. Видимо это как-то связано с тем, что следующий за ним битрейт 256kbit/s является признанным в плане точности передачи звука, почти полным отсутствием искажений. В инструкции к кодеку Lame этот битрейт даже назван как Studio Quality. И самый потолок — 320kbit/s предназначен для тех, кому качество дороже всего, или для владельцев очень качественной Hi-Fi или даже Hi-End аппаратуры.

Теперь перейдем к несколько более сложному вопросу — режиму переменного битрейта (VBR, Variable BitRate). Здесь понятие битрейта очень размыто, кодеки «для пользователя» вообще используют регулировку только по качеству (как например в Xing Audio Catalyst). Другие же (Lame) позволяют задавать дополнительные параметры — минимальный и максимальный битрейты, опять же качество.

При кодировании VBR кодек сам выбирает нужный битрейт, исходя из заданных ему параметров, причем в течение кодируемого фрагмента битрейт может изменяться. Для оценки нужного битрейта используется уже упоминавшаяся психоакустическая модель. Однако модель (так как не является идеальной, ничто в нашем мире не идеально) иногда показывает неверные результаты. Это приводит к занижению оценки, и соответственно падению реально слышимого качества звука.

Разработчики кодека Lame советуют в таком случае устанавливать порог минимального битрейта, чтобы избежать совсем плохих результатов. К разновидностям VBR относится и кодирование ABR (Average BitRate), усредненного битрейта. В последнее время в обзорах слышны только положительные отклики об этом режиме, особенно ABR на 256kbit/s. Работает этот режим почти также, как и VBR, с тем исключением, что кодек придерживается среднего заданного значения. В настоящий момент мне известен только один кодек, имеющий режим ABR — это Lame.

Выбор кодека

Буквально совсем недавно у пользователя, желавшего получить пристойное качество MP3, был не очень большой выбор — это какой-либо ISO-based кодек (основанный на коде образца кодека MP3, выпущенного International Standarts Organization), либо кодек от IIS Fraunhofer (институт — разработчик MP3). Плюс кодеки в продуктах от Xing.

Для тех, кому лень читать дальше, скажу, что я использую кодек Lame и считаю это единственным правильным выбором для MP3 на сегодняшний день.

Почитав разных обзоров, и сделав небольшие собственные исследования, я пришел к выводу о ветке продуктов фирмы Xing — это… их лучше не использовать. Даже в относительно новых версиях все их продукты, умеющие создавать MP3 встроенными средствами, делают это максимально некачественно.

Рекомендую их НЕ использовать вообще (назову поименно — Xing MPEG Converter, Xing MP3 Encoder, Xing Audio Catalyst и все остальные, помеченные фирмой Xing).

Существует также масса «пионерских» поделок, слепленных на ворованном у Xing кодеке (почти все содержат в составе файл tompg.exe). Долгое время их основным преимуществом была скорость (в ущерб качеству), но сегодня кодек Lame показывает сравнимую скорость при более высоком качестве. Кроме того, продукция фирмы Xing вообще говоря стоит денег, тогда как Lame бесплатен по определению.

Далее пройдусь по продукции IIS Fraunhofer. Все их программы для сжатия MP3, доступные бесплатно, являются сильно урезанными по возможностям версиями их же коммерческих продуктов. Затем, все их кодеки не развивались в течение долгого времени, и не содержат новых средств, поддержки VBR/ABR, кроме того не отличаясь особым быстродействием. Единственное их оправданное применение — сжатие на битрейтах ниже 128kbit/s — в них проведена специальная оптимизация под низкие битрейты (местами, правда, с нарушением стандарта).

Различные кодеки на базе кода ISO страдают в принципе одним и тем же недостатком — низкокачественным сжатием на битрейтах ниже 192kbit/s. Кроме того, большинство из них (в т.ч. и BladeEnc) — изрядно медленные.

На мой взгляд, самым оптимальным вариантом является кодек Lame. Начинавший как свободный кодек на базе ISO-кода, в процессе разработки он вырос и теперь все обзоры при сравнении MP3 с другими форматами используют именно его в качестве эталонного для MP3. Немногим более года назад проект Lame окончательно избавился от ISO-кода и теперь может считаться полностью независимым кодеком.

Развитие кодека достаточно интенсивное, его постоянно обновляют, исправляют ошибки. Кроме того, возможно использовать Lame не только под Windows, но и под различные варианты Unix-систем, он также работает в чистом DOS. Опять же, полностью бесплатен, доступен исходный код (для любителей в оном покопаться), с нескольких сайтов доступны уже скомпилированные бинарные файлы (.exe и .dll), оптимизированные под разные процессоры.

Существует также несколько урезанная версия Lame — энкодер GOGO-no-coda, который показывает по скорости фантастические результаты (в два раза быстрее, чем и так быстрый Lame).

Так какой же битрейт и какой режим использовать?

Учитывая все вышесказанное, я бы порекомендовал класть в архив MP3 либо с потоком 320Kbit/s, режим CBR, либо 256kbit/s, ABR. Первый на мой взгляд несколько предпочтительнее, т.к. вы получаете максимально доступное качество в рамках формата. Для записей на «пару раз послушать и стереть» разумно использовать ABR 192kbit/s.

И еще одно — лучше не использовать для сколь-нибудь долгого хранения битрейты ниже 192kbit/s — если только запись, с которой была сделана MP3, у вас не постоянно под рукой (хотя помните, что аналоговая запись на магнитной ленте с течением времени ухудшается).

Очень часто аргумент, который я слышу в пользу низких битрейтов и «кривого» сжатия — «у меня плохая акустика, и я все равно не слышу разницы». Все может измениться, или вам придется использовать свой архив на приличной аппаратуре, а до исходной записи будет добраться нельзя. Ответ абсолютно не надуман, я могу привести случай из собственной практики.

В нашем городе Павлово был когда-то небольшой клуб, где музыку воспроизводили с компьютера (MP3 с битрейтом не выше 160kbit/s). Далее клуб благополучно скончался, а компьютер с архивами музыки переехал в другую фирму, занимавшуюся проведением массовых мероприятий. Представьте себе, что они взялись крутить эту музыку на дне города! Ужас, когда на более-менее приличной акустике было слышно все дефекты, привнесенные упаковкой на такой маленький битрейт. Звук был хуже, чем с их же видавшего виды кассетного магнитофона с полупережеванными кассетами. Было бы разумно избегать повтора чужих ошибок, верно?

Тестовое оборудование и ПО

Компьютер: Athlon TB 650MHz, M/B Acorp 7KTA 100MHz FSB, 128Mb RAM PC-133, HDD Quantum 40Gb 5400rpm, SoundBlaster 16 Vibra, AC97 codec.
Аудиосистема: усилитель Radiotehnika У-7111, пара колонок Radiotehnika S-90B.
ПО: ОС Windows98 SE, Winamp 2.75, Eac 0.9pb11, Lame 3.90a, GOGO-no-coda 3.07a

Кодеки Lame и GOGO-no-coda можно взять в нашем разделе Download.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *