MP3 -- сокращение от MPEG Layer3. Это один из цифровых форматов
хранения аудио, разработанный Fraunhofer IIS и THOMSON, позднее
утвержденный как часть стандартов сжатого видео и аудио MPEG1 и MPEG2.
Данная схема является наиболее сложной схемой семейства MPEG Layer 1/2/3.
Она требует наибольших затрат машинного времени для кодирования по
сравнению с двумя другими и обеспечивает более высокое качество
кодирования. Используется главным образом для передачи аудио в реальном
времени по сетевым каналам и для кодирования CD Audio.
MP3 -- потоковый формат. В данном случае это значит, что исходный сигнал
при кодировании разбивается на равные по продолжительности участки,
именуемые фреймами и кодируемые отдельно, а при декодировании
конечный сигнал формируется из последовательности декодированных
фреймов.
Высокая степень компактности MP3 по сравнению с PCM 16Bit Stereo 44.1kHz
(CD Audio) и ему подобными форматами при сохранении аналогичного
качества звучания достигается с помощью дополнительного квантования по
установленной схеме, позволяющей минимизировать потери качества.
Последнее, в свою очередь, достигается учетом особенностей человеческого
слуха, в том числе эффекта маскирования слабого сигнала одного диапазона
частот более мощным сигналом соседнего диапазона, когда он имеет место,
или мощным сигналом, предыдущего фрейма, вызывающего временное
понижение чувствительности уха к сигналу текущего фрейма. Также
учитывается неспособность большинства людей различать сигналы, по
мощности лежащие ниже определенного уровня, разного для разных
частотных диапазонов. Эта и ей подобные техники называются адаптивным
кодированием и позволяют экономить на наименее значимых с точки зрения
восприятия человеком деталях звучания.
Степень сжатия, и, соответственно, объем дополнительного квантования,
определяются не форматом, а самим пользователем в момент задания
параметров кодирования. Ширина потока (bitrate) варьируется от
наибольшего для MP3, равного 320kbs (320 килобит в секунду), до 96kbs и
ниже. Термин битрейт обозначает общую ширину потока, безразлично к
тому, монофонический или стереофонический сигнал он содержит.
На проведенных тестах специально приглашенные опытные эксперты,
специализирующиеся на субъективной оценке качественности звучания, не
смогли различить звучание оригинального трека на CD и закодированного в
MP3 с коэффициентом сжатия 6:1, то есть с битрейтом в 256kbs.
Более низкие битрейты, несмотря на их популярность, не дают возможности
обеспечить надлежащее качество кодирования. Фактически, и 256kbs не дает
возможности осуществить полностью прозрачное кодирование, то же самое
можно сказать и про наивысший возможный для MP3 битрейт -- 320kbs, но
отличия от CD Audio, по которому кодируется тестовый MP3, сравнимы с
отличиями самого CD Audio от исходного высококачественного сигнала, из
которого он был получен путем оцифровки. То есть, вообще говоря, потери
есть, но несущественны с точки зрения того, кому CD Audio представляется
верхом качественности.
Поэтому самое большое на сегодня преимущество MP3 перед другими
подобными форматами состоит в том, что ни про один другой формат нельзя
пока уверенно сказать, что он полностью гарантирует устойчивое сохранение
качества звучания на достаточно высоких битрейтах, или что для него
написано такое же множество удобного программного обеспечения, как для
MP3. Для MP3 же, с учетом выше сделанной оговорки, такие утверждения
справедливы.
Возможно, "монополия" MP3 будет сломлена начинанием Microsoft - WMA.
Но пока рано говорить об этом. В то же время, в связи с появлением Microsoft
на данном рынке со столь сильно разработкой можно уверенно
предположить, что разработки семейства AAC, прямого наследника MP3, уже
не успеют завоевать популярности.
Описание процесса кодирования
Подготовка к кодированию. Фреймовая структура
Перед кодированием исходный сигнал разбивается на участки, называемые
фреймами, каждый из которых кодируется отдельно и помещается к конечном
файле независимо от других. Последовательность воспроизведения
определяется порядком расположения фреймов. Каждый фрейм может
кодироваться с разными параметрами. Информация о них содержится в
заголовке фрейма.
Начало кодирования
Кодирование начинается с того, что исходный сигнал с помощью фильтров
разделяется на несколько, представляющих отдельные частотные диапазоны,
сумма которых эквивалентна исходному сигналу.
Работа психоакустической модели.
Для каждого диапазона определяется величина маскирующего эффекта,
создаваемого сигналом соседних диапазонов и сигналом предыдущего
фрейма. Если она превышает мощность сигнала интересующего диапазона
или мощность сигнала в нем оказывается ниже определенного опытным
путем порога слышимости, то для данного фрейма данный диапазон сигнала
не кодируется.
Для оставшихся данных для каждого диапазона определяется, сколькими
битами на сэмпл мы можем пожертвовать, чтобы потери от дополнительного
квантования были ниже величины маскирующего эффекта. При этом
учитывается, что потеря одного бита ведет к внесению шума квантования
величиной порядка 6 dB.
Завершение кодирования
После завершения работы психоакустической модели формируется итоговый
поток, который дополнительно кодируется по Хаффману, на этом
кодирование завершается.
Замечание
На практике схема несколько сложнее.
Во-первых, необходимо согласовываться с требованиями битрейта. В
зависимости от кодера это приводит при повышении битрейта к разного рода
релаксациям при отборе сохраняемой части исходного сигнала, а при
понижении -- наоборот, к ужесточению критериев.
Во-вторых, после каждого изменения исходного сигнала (отброса сигнала
какого-то одного диапазона) величина маскирующего эффекта меняется, и,
проводя отброс в разной последовательности, мы можем получать сильно
отличающиеся результаты. Этот момент сильно замедляет работу кодеров.
Дополнение
Кроме того, кодирование стереосигнала допустимо четырьмя различными
методами:
Dual Channel -- Каждый канал получает ровно половину потока и кодируется
отдельно как моно сигнал. Рекомендуется главным образом в случаях, когда
разные каналы содержат принципиально разный сигнал -- скажем, текст на
разных языках.
Выставляется в некоторых кодерах по требованию.
Stereo -- Каждый канал кодируется отдельно, но кодер может принять решение
отдать одному каналу больше места, чем другому. Это может быть полезно в
том случае, когда после отброса части сигнала, лежащей ниже порога
слышимости или полностью маскируемой, оказалось, что код не полностью
заполняет выделенный для данного канала объем, и кодер имеет возможность
использовать это место для кодирования другого канала. В документации к
mp3enc замечено, что этим, например, избегается кодирование "тишины" в
одном канале, когда в другом есть сигнал.
Приходит в голову также такая мысль, что можно было бы использовать эту
возможность для выравнивания степени потерь сигнала в случае, когда
сигналы разных каналов существенно различаются. Но информации о том,
практикуется ли это, у меня нет.
Данный режим выставлен по умолчанию в большинстве ISO-based кодеров, а
также используется продукцией FhG IIS на битрейтах выше 192kbs. Применим
и на более низких битрейтах порядка 128kbs... 160kbs.
Joint Stereo (MS Stereo) -- Стереосигнал раскладывается на средний между
каналами и разностный. При этом второй кодируется с меньшим битрейтом.
Это позволяет несколько увеличить качество кодирования в обычной
ситуации, когда каналы по фазе совпадают. Но приводит и к резкому его
ухудшению, если кодируются сигналы, по фазе не совпадающие. В частности,
фазовый сдвиг практически всегда присутствует в записях, оцифрованных с
аудиокассет, но встречается и на CD, особенно если CD сам был записан в
свое время с аудиоленты. С другой стороны, уже нашелся любитель,
написавший небольшую программу для автоматической коррекции фазового
сдвига. Посмотрим, как будет развиваться эта идея. Возможно, любители
128kbs все же смогут какое-то время нормально паковать оцифрованные
аудиокасеты, пока более совершенные форматы, чем MP3, не займут его
место.
Режим выставлен по умолчанию продукцией FhG IIS для битрейтов от 112kbs
до 192kbs.
Joint Stereo (MS/IS Stereo) -- Вводит еще один метод упрощения
стереосигнала, повышающий качество кодирования на особо низких
битрейтах. Состоит в том, что для некоторых частотных диапазонов оставляется
уже даже не разностный сигнал, а только отношение мощностей сигнала в
разных каналах. Понятно, для кодирования этой информации употребляется
еще меньший битрейт.
В отличие от всех предыдущих, этот метод приводит к потере фазовой
информации, но выгоды от экономии места в пользу среднего сигнала
оказываются выше, если речь идет о очень низких битрейтах.
Этот режим по умолчанию используется продукцией FhG IIS для высоких
частот на битрейтах от 96kbs и ниже. В ISO-based кодерах возможен выбор
диапазона. Фактически, MS Stereo -- частный случай MS/IS Stereo, когда
переменная, отвечающая за кодируемый таким образом диапазон, принимает
нулевое значение.
При применении данного режима происходит потеря фазовой информации, а
также имеет место меланхоличное превращение противофазного сигнала
кодером в полное отсутствие оного (сигнала).
О граблях
Прежде всего следует заметить, что с оценкой качественности сжатого аудио в
головах большинства пользователей образовалась очень большая путаница.
Почему-то стало считаться, что мнение аудиофилов неприоритетно, а
приоритетно мнение пользователей с никакой аппаратурой и
соответствующим слухом. Оно, конечно, играет значительную роль при
вынесении решения, чем в каждом конкретном случае лучше пользоваться, но
уж точно не играет роли при оценке качественности.
Некоторые также путают факт наличия низкого или высокого уровня шумов с
высоким или низким качеством сигнала, такая прямолинейная оценка в
принципе неверна, не только для MP3. Это лишь одна из характеристик
традиционной аппаратуры, которую следует осторожно переносить на
цифровое аудио. Для MP3 это лишь характеристика конкретного плеера.
Абсолютное большинство пользователей MP3 применяет те программы,
которые просто первыми попались на глаза, или пользуется рекомендациями
столь же "образованных" друзей. В итоге страдает качество, так как не все так
просто, как хотелось бы, разные программы дают разное качество
кодирования и декодирования, и даже с лучшими образцами связаны свои
ньюансы. К тому же наиболее агрессивно рекламируются как раз не они.
Например, благодаря высокой скорости очень популярны кодеры от
XingTech, рекламу которых можно видеть на самых известных сайтах,
посвященных MP3, хотя эти кодеры обеспечивают самое грубое кодирование
по сравнению с другими.
Также очень популярны кодеры, написанные самим разработчиком стандарта
-- Fraunhofer IIS, -- хотя при всем их действительно высоком качестве они
имеют небольшой ряд характерных существенных недостатков,
проявляющихся на низких битрейтах, на которые, кстати, и ориентированы.
Основной недостаток - недостаточные возможности настройки, в частности,
нет возможности отключить на низких битрейтах режим Joint Stereo. В случаях
наличия не скорректированного фазового сдвига это необходимо. Впрочем,
разработчикам при желании поправить это будет несложно, чего не скажешь
о кодерах XingTech, недостаток которых -- качество собственно кодирования.
Кстати, кодеры FhG IIS командной строки имеют достаточно хорошие
возможности настройки.
Проблема в том, мало в каком из авторитетных источников про все это
написано. Максимум, что можно найти -- описание общих принципов
кодирования, или руководства к использованию разных программ.
В конечном счете приходится самому целенаправленно искать нужную
информацию. Если учесть, что на очень многих сайтах буквально проходу не
дает реклама XingTech, производящей самые низкокачественные кодеры, и
задуматься о причинах такого положения, то становится довольно кисло.
А лежит в основе всего то, что на традиционно устанавливаемой на
компьютерах неважной аудиоаппаратуре, состоящей обычно из слабой
аудиокарты и дешевых колонок, закодированные кодерами от XingTech MP3
часто звучат почти так же, как и сделанные другими кодерами, а CD Audio
звучит столь же неважно, как MP3 128kbs (сжатие 12:1). Именно поэтому
данному битрейту приписывают способность обеспечить CD-качество
кодирования, а кодеры от XingTech не перестают пользоваться
популярностью. Но обычно это быстро вскрывается -- начинает проявляться
неприятный осадок, вызываемый дефектами звучания. Разумеется, при
наличии некоторого слуха.
По этой же причине еще одной большой трудностью становится устоять перед
соблазном использования в своей фонотеке таких популярных низких
битрейтов, как 128kbs, несмотря на желание иметь максимальное качество.
Обычно забывают, что битрейты порядка 112kbs... 128kbs по качеству неплохи
для прямых трансляций и ознакомительного прослушивания, но отнюдь не для
создания архивов музыки качества CD Audio. У меня тоже была одно время
коллекция записей в MP3, закодированных с битрейтом 128kbs, и слушал я их
на дешевой аппаратуре. Но дефекты звучания оказались легко заметны, я их
довольно скоро просто-напросто выучил. Они превысили все дефекты,
вносимые недостатками аппаратуры, и записи были удалены. И это при
плохой аппаратуре. Что же говорить о хорошей?
Кроме того, в большинстве учебников прямо говорится о неспособности
человека слышать частоты выше 16kHz. Во-первых, это и так неверно, многое
зависит от мощности сигнала и от возраста слушателя. Во-вторых, человек --
существо, не лишенное оригинальности. Даже когда он не слышит такие звуки
с помощью уха осознанно, он все же ощущает их. Поэтому обрезание частот
выше 16kHz можно считать обоснованным на низких битрейтах, но нельзя не
брать в расчет, когда речь заходит о высоких битрейтах, приближающих
качество сигнала к уровню CD Audio. К тому же у детей частотный порог
слышимости куда выше 16kHz.
Кстати, речь в обзоре идет именно о кодировании CD Audio. При этом не
учитываются шумы работы компьютера и тот факт, что не на всех
компьютерах стоят хорошие аудиокарты, а также другие подобные
посторонние моменты. Все эти трудности вполне преодолимы, и в обзоре
рассматривается качественность звучания безотносительно к аппаратуре.
Несколько слов о разных битрейтах
Разные битрейты дают разное качество. Разные любители MP3 абсолютно
по-разному оценивают степень приемлемости одних и тех же битрейтов и
имеют свой взгляд на то, какой битрейт следует считать оптимальным. Кто-то
выбирает 128kbs, другие 160kbs, третьи золотую середину -- от 192kbs до
256kbs. Некоторые -- 320kbs.
Я, когда начинал разбираться с MP3, изначально искал именно и только
полноценную замену CD Audio, с меньшим объемом, но с как минимум не
меньшим качеством, и такую возможность MP3 в общем-то дает.
Любые существенные потери качества и нервов, пусть и с утешительным
призом в виде дальнейшего уменьшения объема, меня всегда интересовали со
знаком минус, и я пользуюсь и собираюсь продолжать пользоваться
исключительно 320kbs MP3. Поясню, на чем основан мой выбор.
Тесты профессиональных прослушивателей, нанятых разработчиками
формата, для выбранных тестовых композиций показали достаточность 256kbs
для сохранения качества звучания, неотличимого человеческим слухом от
исходного ( прошу не забывать про оговорку в начале обзора). В дополнение к
этому, другие тесты, проведенные французом Gabriel Bouvigne, вебмастером
MP3 Tech, (
www.mp3tech.org), показали недостаточность для этой цели
битрейта 192kbs. С другой стороны, нередко появляются замечания о том, что
256kbs оказывается недостаточно. Иногда это проявляется лишь на некоторых
композициях, а иногда сказывается использование достаточно хорошей
аппаратуры и не самого плохого слуха. И, хотя документированных
доказательств никто не привел, этих высказываний достаточно, чтобы сделать
вывод об обоснованности признания 256kbs не самым безупречным
битрейтом, так как этого и следовало ждать.
То есть достаточного запаса качества 256kbs не дает, несмотря на то, что он на
треть выше 192kbs, на котором отличия для вебмастера MP3 Tech оказались
уже почти неощутимы. Тем не менее, проявляется это крайне редко.
Из этого можно сделать три вывода. Во-первых, битрейт 256kbs следует
считать пограничным. Во-вторых, для абсолютного большинства
пользователей он действительно совершенно достаточен. В-третьих, для
безоговорочно высокого качества все же необходимо несколько увеличить
запас.
С другой стороны, те же тесты определили MP3 160kbs... 192kbs как в
большинстве случаев вполне приемлемые для хранения аудио на компьютере,
например, в компьютерных играх, когда внимание отвлечено.
Следующий после 256kbs битрейт -- 320kbs, он же -- максимальный для
кодирования аудио с характеристиками CD Audio, то есть 44.1 kHz 16bit Stereo.
В данном случае мы имеем запас в 1/4 от битрейта 256 kbs, и его вполне
можно считать достаточным в силу имеющихся данных о степени улучшения
качества кодирования при кодировании на 160 kbs вместо 128 kbs. Именно в
данном варианте мы имеем дело со степенью качественности, описанной в
оговорке в начале обзора.
Таким образом, можно свободно уменьшить объем CD Audio более чем
вчетверо, используя 320 kbs, и быть спокойным за сохранение качества, или
же с помощью легкого аутотренинга внушить себе спокойствие и
использовать
MP3 256 kbs, применяя сжатие в шесть раз. В данном случае выбор -- дело
скорее принципа или коммерческой целесообразности.
Так или иначе, используя MP3 256kbs и 320kbs, мы можем без особых
проблем создавать свои обширные фонотеки на CDR.
И все же ни для кого не секрет, что самым популярным все же был и остается
битрейт 128 kbs, широко разрекламированный в свое время FhG IIS. Но при
его использовании мы имеем скорее качество аудиокассеты, записанной на
подозрительного происхождения магнитофоне, хотя и с очень низким
уровнем шумов. Романтически настроенные разработчики даже почти
официально назвали это "CD-качеством", что очень далеко от истины.
Впрочем, это традиция -- ADPCM тоже в свое время называли форматом,
дающим только неслышимые искажения.
На самом деле различие между качеством звука на битрейтах 128 kbs и 256
kbs/320 kbs принципиально. Первый к качеству уровня CD никакого
отношения не имеет, в отличие от двух последних. Разумеется, для тех, кому
качество средней аудиокассеты кажется великолепным, данная оценка
неверна, также она обычно неверна для случаев, когда внимание сильно
отвлечено. Добавить к этому особенно нечего.
Интернет, как правило, можно найти только MP3, закодированные с
битрейтом 128 kbs (закроем глаза на факт наличия Xing VBR, о котором ниже).
Этот битрейт, помимо признания в качестве любимого битрейта FhG IIS, был
признан также оптимальным для использования в Интернет. Это печально, но
логично -- именно для передачи аудио по сетям MP3 и был первоначально
предназначен. Просто битрейт 112kbs, к сожалению, оказался маловат для
достаточно качественного кодирования, и дополнительно закрепилось
значение 128 kbs, которое обеспечивает значительно более высокое качество.
При дальнейшем повышении битрейта рост качества замедляется, поэтому
остановились именно на 128kbs.
Вскоре после того, как тучи пользователей осознали все возможности
технологии, попавшей им в руки, в Сети начался бум роста обширных залежей
нелегальных MP3-файлов, кампанию борьбы с наличием которых недавно
провела RIAA. А с осени 98-го стали выпускаться аппаратные плееры MP3, в
том числе модели для автомобилей, несмотря на попытку RIAA помешать
этому. В итоге MP3 стал первым массово признанным форматом хранения
аудио после CD-Audio, а RIAA срочно ищет формат, который бы не допускал
нелегального распространения аудиотреков через Интернет, и при этом в
головах многочисленных любителей музыки занял бы место MP3. Любопытно,
как они себя чувствуют после появления WMA.
VBR & XingTech
Все сказанное выше о битрейтах относится к битрейтам, не меняющимся на
протяжении композиции. Но в XingTech был разработан кодер,
использующий технику переменного битрейта (VBR), при которой разные
участки трека кодируются с разным битрейтом. Предполагается, что кодер
должен выбирать битрейт индивидуально для разных участков трека, исходя из
степени их сложности для кодирования. Это в значительной степени
реабилитирует репутацию фирмы в глазах многочисленных пользователей,
подпорченную предыдущей серией ее MP3-кодеров и качеством работы
кодеров при использовании режима постоянного битрейта, который сохранен.
На практике же качество так и не поднялось на уровень FhG IIS/ISO-based
кодеров на 256kbs. К сожалению. Причины - вольное обращение XingTech с
сигналом, в том числе компрессия частот и грубое кодирование высоких, а
возможно, и не только это.
В целом, конечно, использование VBR в реализации XingTech аудиофилам не
рекомендуется. Единственное его преимущество -- высокая скорость. Xing
VBR -- лучше, чем Xing с постоянным битрейтом, но не всегда, да и при этом
все еще не дотягивает по качественности до других кодеров при аналогичном
объеме получаемых файлов.
Несмотря на это, есть люди, которым результат работы кодеров от XingTech
кажется даже лучшим, чем у других кодеров, несмотря на результаты
объективных тестов. Поэтому поклонникам низких битрейтов и безумной
скорости надо выбирать, основываясь только на своем восприятии.
Остается надеяться на выход поддерживающего технику VBR кодера от FhG IIS,
хотя, полагаю, данный институт все же предпочтет не делать шаг назад и
продолжит разработку новых форматов.
Также существует возможность модификации кода ISO добровольцами, и
даже понятно, в каком направлении. Поживем -- увидим.
Способы хранения MP3
Стандарт MP3 не определяет никакого точного стандартного математического
алгоритма кодирования, его разработка целиком и полностью остается на
совести разработчиков кодеров. Вместо этого он определяет общую схему
процесса кодирования, а также формат закодированного фрейма. Сами
последовательности фреймов могут передаваться потоком (streaming) или
храниться в файлах.
MP3 файл, как и поток, состоит из последовательно расположеных фреймов,
между которыми может содержаться произвольная информация. Основное
требование состоит в том, что не должно быть совпадений с сигнатурой
начала фрейма.
Часто к последовательности фреймов добавляют стандартный заголовок
мета-аудиоформата WAV, и получается то, что называют WAV-MP3. Немного
подробнее о последнем будет сказано ниже, когда будет описываться ACM
pro codec. Еще чаще к MP3-файлу добавляется информационный блок ID3v2,
содержащий информацию об исполнителе, жанре, названии композиции, и
другую подобную информацию о треке. Он добавляется в конце файла. В
середину пока никто ничего ставить не придумал. Хотя, вообще говоря, может
представлять некоторый интерес вставка спецтэга для VBR с информацией о
том, в какой части трека мы, собственно, находимся.
Характер потерь при кодировании
На низких битрейтах всегда срезаются мелкие, сравнительно тихие детали,
наличие или отсутствие которых нередко серьезно меняет эмоциональную
окраску композиции, придает или лишает ее таких эффектов, как ощущение
"кристальной" чистоты звука (в той мере, в которой она присутствует в CD
Audio). Кроме того, в соответствии с психоакустической моделью, высшие
(выше 16 кГц) частоты на низких битрейтах кодируются с очень низким
приоритетом.
Кроме того, имеют место разные особенности кодеров. Так, у кодеров от FhG
IIS на 128 kbs оказываются "смазаны" верхние частоты, наблюдается эффект
"шепелявости", в то время как у ISO-based вместо этого -- "звон". Причем
одним неприемлемо первое, другим -- второе, и выбор кодеров для низких
битрейтов в итоге всегда субъективен. Точно также некоторые выбирают
субъективно кодеры от XingTech, но это уже радикализм.
Узкое место всех схем компрессии класса MPEG -- участки с резкими
изменениями сигнала. В случае MP3 задержка может достигать величин
порядка 160 мс, теоретический минимум -- 59 мс.
На высших битрейтах при последовательном следовании психоакустической
модели, разработанной FhG IIS, проблемы могут доставлять только ошибки,
внесенные при написании кодера, и упомянутый абзацем выше момент.
Тестирование качественности кодеров
Обычно тестирование кодеров проводится по степени сохранения формы
АЧХ оригинального сигнала. При этом очевидно, что при битрейтах 256
kbs/320 kbs АЧХ исходного файла и файла, полученного после декодирования,
должны быть идентичными как на синтетических тестах (сгенерированный
белый шум), так и на реальных треках. На более низких битрейтах следует в
первую очередь следить за сохранением формы АЧХ в области низких и
средних частот.
Сами тесты по сохранению формы АЧХ следует проводить не только на белом
шуме, как это делается обычно, но и на достаточно сложных композициях, в
комплексе это позволяет получить значительно более достоверные
результаты. Белый шум может выявить мелкие недостатки, как в BladeEnc на
128 kbs, мешающие, но редко, а может и выдать ложное представление о
высоком качестве кодирования, как в случае SoundLimit.
Кроме того, само сравнение должно производиться не "не глаз". Мне,
например, пришло как-то письмо, где подробно описывалось, какие частоты и
насколько поднимает этот же самый BladeEnc на низких битрейтах в тесте на
кодирование белого шума. Хотя в целом на реальных композициях АЧХ
визуально вполне похожа на исходную.
Тесты АЧХ не универсальны. В силу особенностей MP3 они дают достаточно
адекватную оценку его качества, но к другим форматам они совсем не
обязаны быть применимыми -- в частности, они непригодны для оценки
качественности кодирования в формате VQF.
Относительно точную раскладку качества сигнала по материалам специально
проведенного прослушивания можно найти на сайте MP3 Tech, а немного
вольный ее перевод на русский язык -- у меня на Mikhail's MP3 Page. Кстати,
сам сайт MP3 Tech посетить весьма рекомендую.
Общий обзор основных используемых кодеров и области их применения
Самым важным моментом, определяющим качество кодера при кодировании
на битрейтах порядка 192kbs и ниже, являются характеристики примененной
психоакустической модели и алгоритма ее применения, аккуратность его
реализации. В разработке качественной модели больше всего преуспел
собственно разработчик формата, Fraunhofer IIS.
Собственно, именно этот институт и есть тот единственный, который со
знанием дела занимается разработкой наиболее качественных кодеров для
средних и низших битрейтов (другие, как авторы ISO-based кодеров, просто
оптимизируют сопровождавший спецификации MP3 иллюстрационный
общедоступный исходный код, а программисты из XingTech проблемами
качества занимаются во вторую очередь). Современные кодеры, основанные
на разработках FhG IIS -- FhG MP3 Producer 2.1, AudioActive.
Программы от FhG IIS не позволяют кодировать с битрейтом 320 kbs, поэтому
эти кодеры не совсем универсальны. А вышеупомянутые два кодера не
универсальны еще и потому, что не позволяют отключать joint stereo на
низких битрейтах. По этой причине в ряде случаев может оказаться более
предпочтительным использование mp3enc 3.1, который это позволяет. В
версии 3.1 исправлена ошибка, благодаря которой без нужды выбрасывалась
чрезмерно большая часть высоких.
Решить, какой из кодеров лучше на 256 kbs, может помочь только подробный
анализ алгоритмов применительно именно к этому битрейту. А пока мнения
разделились -- с одной стороны имеем разумное ожидание высокого качества
от разработчика формата, с другой -- распространенное мнение о более
высоком качестве ISO-кодеров, более равномерно кодирующих разные
частотные диапазоны. Кроме того, кодеры от FhG IIS "выметают" все частоты
выше 21кГц, а ISO based -- нет, хотя это уже не слишком критичный диапазон.
Для полноты картины замечу, что представители обоих групп в один голос
утверждают, что продукция их любимого кодера на 256kbs и на слух звучит
лучше.
Другой известный производитель коммерческих MP3-кодеров, Xing Tech,
специализируется на выпуске высокоскоростных кодеров. В их последних
кодерах реализована техника переменного битрейта (VBR). Основное отличие
от кодеров с постоянным битрейтом состоит в том, что в кодерах, основанных
на технологии VBR, в качестве параметра задается не битрейт, а желаемый
уровень качества. Теоретически, это должно давать MP3 нужного качества
при минимально необходимом битрейте.
Практически, даже при самых высоких параметрах кодирования кодерами
XingTech мы имеем хорошее, но не отличное качество, причем и при
переменном битрейте, и при постоянном, что сильно снижает удовольствие от
непревзойденной скорости кодирования. Но любителей 128 kbs MP3
уговорить перейти на Xing VBR настолько же легко, насколько трудно
отговорить меня пользоваться только ISO-based на 320 kbs.
Остальные известные кодеры, авторство которых не принадлежит ни FhG IIS,
ни Xing Tech, все как один основаны на ISO source -- общедоступных исходных
текстах кодеpа, относительно равномерно кодирующего разные частотные
диапазоны, что пpиводит к наивысшемy качествy кодиpования на высоких
битpейтах и вполне пpиличномy -- на 128 kbs, однако несколько иному по
характеру искажений по сравнению с кодерами от FhG IIS на битрейтах
порядка 128 kbs.
Сам код создавался в иллюстрационных целях и работает крайне неторопливо,
поэтомy сyществyет только один известный кодер, в котором он не подвергся
обширным изменениям в целях оптимизации -- mpegEnc 0.07a. Эта пpогpамма
считается эталоном качества для высших битpейтов. Однако, нельзя сказать,
что в ней используется совсем неизмененный код ISO -- были проведены
небольшие изменения, не повлиявшие на скорость, но несколько улучшившие
качественность. (Дело в том, что окончательной доводке кода ISO не уделялось
много внимания, и он был не без погрешностей.) Это, конечно, не делает
mpegEnc идеальным кодером, но на высоких битрейтах он обходит все
остальные.
Дpyгой известный кодеp этой гpyппы, yдачно пpооптимизиpованный по
скорости, - BladeEnc, на высоких битpейтах с веpсий 0.70-0.72 по скоpости
незначительно отличающийся от Пpодюсеpа, а по качествy -- от mpegEnc.
Кроме того, этот кодер поставляется также и в виде отдельной dll. Но на низких
битрейтах к нему есть претензии, вызванные недоделками кода ISO, на основе
которого он написан. В данный момент обнаружена ошибка, приводившая к
неправильному вычислению CRC --кто пользовался данным режимом, стоит
обратить внимание.
Заслуживает некоторого внимания CDex. В данной пpогpамме кодеp
объединен с "pиппеpом", что дало емy высокий pейтинг. Он является одним
из немногих, способных кодировать "на лету", без промежуточного
WAV-файла. К сожалению, в данном конкретном кодере это производится
значительно медленнее, чем через создание промежуточного WAV-файла.
Также проблему составляет то, что
не всегда dll-библиотека кодера включается в архив. И наконец, о каких-то
особенных достоинствах данного кодера в плане качества по сравнению с
выше упомянутыми сведений пока не поступало, то есть особых причин
пользоваться именно им нет.
Едва ли стоит pассматpивать кодеp SoundLimit -- в нем пpи оптимизации резко
снижено качество кодиpования, в то вpемя как BladeEnc yже догнал его по
скоpости. Hизким качеством обладает также кодеp "8kHz". Кодер Plugger
проигрывает BladeEnc по качеству, не говоря уже о mpegEnc, но говорят, на
некоторых машинах он -- второй по скорости после кодеров от XingTech.
Что такое front-end?
Front-end - программа, пpедлагающая оконный интерфейс для повышения
комфоpтности pаботы с пpогpаммами, его не имеющими. В слyчае MP3 - с
кодеpами, управляемыми из командной стpоки, а также yстановленного в
системе кодека.
После подачи команды на кодиpование front-end пеpедает введенные
паpаметpы собственно кодеpy и ждет завеpшения его pаботы. Этот процесс
может сопpовождаться как попытками пpедсказать оставшееся вpемя, так и
выводом скромной таблички "Please wait".
Большинство грабберов могут быть использованы как front-end для
нескольких разных кодеров; в таких, как CDex и CDCOPY, существует выбор
между встроенным кодером и внешним, также подключаема BladeEnc.dll.
Что такое ACM pro codec (MP3-кодек)?
Формат WAV является метаформатом для данных любого типа. Имеет
стандартный заголовок и описания областей данных, которых может быть
несколько, способ же кодирования аудиосигнала может быть каким угодно.
Вполне могут содержаться данные, к аудио отношения не имеющие.
Каждый метод кодирования, указываемый в заголовке, имеет собственный
идентификатор, в соответствии с которым Windows и определяет, установлен
ли кодек для работы с данным файлом, и если установлен -- использует его.
Кодеки, индивидуальные для каждого подформата, регистрируются в системе
при их установке, после чего становится возможным использовать
WAV-файлы, содержащие аудиоданные в форматах, поддерживаемых
данными кодеками.
Тем не менее, хотя для MP3 тоже существует по крайней мере один кодек
ACM pro codec от FhG IIS, сам по себе формат из-за потерь при кодировании
непригоден на роль промежуточного, поэтому в редакторах с WAV-MP3
работать не рекомендуется. Единственным разумным применением данного
кодека можно считать декодирование WAV-MP3, либо их кодирование, когда
по каким-либо причинам неудобно сделать это из нормального кодера. При
установленном кодеке можно применять WAV-MP3 в качестве стандартных
звуков Windows.
Один приверженец FhG IIS также подсказал мне идею установить кодек и
попробовать слушать WAV-MP3 через Winamp как WAV-файлы, используя
его по прямому предназначению -- для прогрывания MP3, но декодирование
проводя декодером от FhG IIS. Способ работает, причем именно так, как и
предполагалось, то есть декодер Winamp не используется. Но, начиная с
версии 2.20, Winamp и сам использует декодер от FhG IIS, поэтому такие
ухищрения необязательны.
Кроме того, группа хакеров Radium выкорчевала нужный код из нового
"Продюсера" и написала на его основе еще один кодек. Теперь он "гуляет" по
Интернету, радуя своих приверженцев способностью делать 256 kbs MP3. Но
вскоре после его появления в фидошной конференции соответствующей
тематики появилось сообщение о "баге", замеченном при использовании
из-под AudioGrabber. Тогда упоминалась выдача разных WAV-MP3 по одним
и тем же исходным WAV-файлам. У меня этот кодек совсем испортил первый
же опробованный трек после кодирования, и результат повторился в разных
"грабберах". Некорректное кодирование начиналось где-то после середины
трека. Доверия такой кодек не заслуживает.
Файлы какого формата можно перевести в формат MP3?
Кодирование из формата WAV PCM поддерживают все кодеры. Многими
поддерживается AIFF. Mp3enc может принимать исходные данные потоком,
без промежуточного файла, в фоpмате PCM. А mpegEnc и Cdex предлагают
кодировать прямо с CD-ROM.
Каков статус MP3 кодеров?
Все, созданное Fraunhofer IIS и Xing Tech - коммерческое, в лучшем случае
shareware, но полные версии обычно легко найти на FTP поисковиках. Только
немногие предпочитают высшее качество меньшему размеру и большей
скоpости кодиpования, поэтомy данные кодеpы наиболее попyляpны.
BladeEnc, mpegEnc -- freeware. Авторы всегда рады получить открытку от своих
пользователей. Автор mpegEnc предпочитает открытки с изображением
местности, где вы живете.
Разработчик формата MP3 -- Fraunhofer IIS, пользyясь своими патентами,
попытался положить конец их pазвитию. Из этой переделки "живым" вышел
только BladeEnc, автоp которого пpоживает в стране, на теppитоpии которой
эти патенты не имеют силы, и Plugger, который стоит немного особняком и
кроме неплохой скорости ничем не выделяется.
Теперь кодер mpegEnc пpиходится искать на поисковиках, web-страничка
закрыта. У CDex недавно в архив вновь оказалась включена dll-библиотека
собственного кодера, но насколько долго это будет на этот раз продолжаться, я
сказать не берусь. Многие версии выходили без mp3enc.dll (это собственная dll
кодера CDex, который может работать и без нее).
Кодек, сделанный из второго Продюсера -- нелегален.
Каковы системные требования?
Большинство кодеров должно работать корректно на 486 и выше с ОС
Windows95/NT, но на кодирование MP3 на слабых машинах уходит много
времени, поэтому не рекомендуется использовать такие системы. Люди с
неправильным чувством юмора могут попробовать кодировать MP3 и на 386
машинах.
Что до отличных от MS Win95/98 систем, то BladeEnc, напpимеp, поpтиpован
на pяд юниксов и OS/2, а для первых версий l3enc достаточно, чтобы система
поддеpживала эмyляцию DOS. Кроме того, в большинстве систем есть свои
кодеpы.
Выводы
Со времени выхода AudioCatalyst 1.5 большинство потребностей любителей
компромиссных битрейтов и высокой скорости кодирования покрывает
именно этот кодер и му подобные от XingTech. Скорость кодирования --
наивысшая, при этом можно получить неплохое качество звучания.
Пользователям, обладающим хорошим слухом, которых AudioCatalyst не
устраивает, не устраивают и высокие битрейты, еще раз хотелось бы
посоветовать попробовать все же перейти на другой формат, AAC или WMA.
Но если при таких запросах вам, увы, необходим именно MP3, то придется
потрудиться. Редко когда вы не окажетесь вынуждены перебирать все
доступные кодеры, как ISO-based, так и от FhG IIS, если захотите выиграть в
качестве. Как разъяснялось выше, последние как раз разрабатывались именно
для работы с низкими битрейтами, но не справляются со специфическими
особенностями многих композиций, с которыми легко справляются
ISO-based. В частности, кодеры от FhG IIS 'не любят' шумы. Полагаю, во
многих случаях это тоже отчасти вызвано применением не отключаемого joint
stereo при синтетическом происхождении шумов. ISO-based кодеры, в свою
очередь, имеют другой характер искажений, который некоторым мешает
меньше, другим -- больше. Последних, судя по всему, большинство.
Из кодеров от FhG IIS можно попробовать Producer или AudioActive --
последние разработки. Сyществyет также mp3enc -- дальнейшее самого
первого кодера от FhG IIS, l3enc, все еще входящего в категорию наиболее
качественных. Последняя версия l3enc была 2.74, mp3enc -- 3.1. В mp3enc 3.1
исправлена ошибка, приводившая к большим потерям высоких частот в
mp3enc 3.0.
Из ISO-based кодеров можно попробовать BladeEnc, mpegEnc, CDex. На низких
битрейтах из ISO-based совершенно непригоден SoundLimit из-за
некорректной оптимизации.
Если же ваша цель -- MP3 высшего качества, вы в любом случае будете
вынуждены прибегнуть к использованию высоких битpейтов, при этом
наиболее предпочтительным будет воспользоваться mpegEnc или BladeEnc.
Кодеров высокого качества, в которых был бы реализован переменный
битрейт, пока нет. Но желающие их написать уже дали о себе знать, так что
поживем-увидим.
На 256kbs можно пользоваться кодерами от FhG IIS, хотя уже не факт, что на
этом битрейте производимые ISO-based кодерами MP3 не окажутся лучше.
320kbs MP3 современные кодеры от FhG IIS делать не умеют, для
безоговорочно высокого качества следует пользоваться 320kbs с ISO-based
кодерами, желательно mpegEnc 0.07a.
Но если вас yстpаивает качество ESS1868 и дешевых аудиокассет, то можно
считать, ваши потребности в качестве достаточно средние. Кодиpование MP3
с постоянным битpейтом 128kbs вас, скоpее всего, должно yстpоить, и тем
более высокая скорость AudioCatalyst при кодировании с переменным
битрейтом.
Если же вы планируете длительное хpанение мyзыки в формате MP3, то
следует учесть, что со вpеменем аппаpатypа обычно заменяется на лучшую, а
качество улучшить будет уже невозможно. Кроме того, даже на плохой
аппаратуре при наличии слуха довольно скоро искажения становятся
заметными.
Наследники MP3
Следующим форматом сжатого аудио после MP3, разработанным Fraunhofer
IIS, является AAC. На данные момент существуют четыре основных его
реализации, из них только три заслуживают упоминания.
Liquifier Pro AAC -- Разработан LiquidAudio. Предназначен для трансляции и
продажи музыки в Интернет. Софт дорогой, поэтому из легальных реально
только коммерческое применение.
Astrid/Quartex AAC -- Софт бесплатен и хорош, но битрейт ограничен
недостаточным для CD качества уровнем -- 128kbs, поэтому пока данный
вариант AAC не может составлять конкуренции MP3 256kbs... 320kbs.
Страница в очередной раз переехала в неизвестном мне направлении.
PAC -- (
www.celestialtech.com) -- Про него лишь известно, что это уже
дальнейшее развитие AAC.
Недавно было логичным предположить, что место MP3 при удачной
раскрутке смог бы занять коммерческий формат Liquid Audio AAC, прямой
наследник MP3, но с выходом на рынок кодеров сжатого аудио Microsoft со
своим форматом WMA это представляется невозможным. Тем более, что
кодеры, предоставляемые Microsoft, бесплатны и не содержат ограничений.
В то же время ни проверенные кодеры AAC, ни WMA пока не проявили
способности составить конкуренцию MP3 256kbs... 320kbs. Остается еще один
формат -- PAC, который позиционируется как развитие AAC и про который
пока мало что достоверно известно.