Секреты Digital Audio Compression |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
ВведениеВ Интернете всегда было много мифов и откровенно ложной информации о сжатии аудио (audio compression). Крупные (и не очень) фирмы, занимающиеся производством кодеков, вносят еще больше путаницы в этот вопрос. А на основании этих данных многие пытаются “оптимизировать” процесс этого самого сжатия, придумывают длинные, навороченные командные строки дающие, мягко говоря, неоптимальные результаты. Почему так важно выбрать кодек, спросите вы, ведь можно будет позже перекодить (transcode) один формат в другой. Увы, это не всегда просто и удобно и ВСЕГДА приводит к дополнительной потере качества, даже при перекодировании в бОльший битрейт. Побочным продуктом сжатия аудио с применением психоаккустических алгоритмов является сильное искажение сигнала и добавление шума, маскируемого самим полезным сигналом. На слух это не сильно заметно, но это делает сигнал более сложным для кодирования. Т.е. с каждым циклом перекодирования полезный сигнал искажается, к нему добавляется шум и различные искажения, которые на следующем цикле кодек попытается сохранить, возможно, в ущерб самой музыке. Поэтому, лучше выбрать формат и никогда не производить перекодирование музыкальных треков без крайней необходимости для архивных целей (сохранения на продолжительное время). Однако перекодирование в меньший битрейт или качество неплохо подходит для использования на портативных плеерах с ограниченным объемом запоминающего устройства. Кроме того, качество кодека не всегда значительно зависит от технологичности формата, больше от качества проработки психоакустической модели (модели восприятия звуков человеком с учетом особенностей строения уха и переработки мозгом звуковой информации). Именно эта модель в кодеке заведует отделением не воспринимаемых человеком или неважных частей трека, за счет которых и происходит основное сжатие. В свое время я долго искал материалы по этой тематике, но но находил только противоречащие одна другой статьи и идиотские гайды. Я попробую внести немного ясности в этот вопрос. Представленная информация не претендует на полноту и абсолютную точность, ведь и само понятие качества не объективно, у каждого из нас свои уши и психоаккустика :) Методика сравнения качества кодековКак вообще определить качество? То, что приятнее на слух? В рамках исследования качества кодирования правомерно ТОЛЬКО специфическое понятие качества, как близости к оригиналу (несжатому звуку). Соответственно, наивысшее качество сигнала соответствует неотличимости НА СЛУХ от оригинала (хотя в математическом смысле сигналы могут сильно отличаться). Существует так называемый “эффект плацебо”, когда больным людям дают пилюлю-пустышку (без какого-либо лекарства) из желатина или сахара, и при этом говорят, что это новое суперское лекарство. Так вот, по сравнению с контрольной группой такие люди быстрее выздоравливают и у них бывает меньше осложнений. Такой же эффект имеет место и в нашем случае. На наше восприятие воздействует куча параметров, прямого отношения к качеству звука не имеющих (формат, битрейт, плеер, номер в плейлисте, реклама и проч.). Сказал слушателю дядя Ваня, что “формат _A_ устарел, и вообще отстой, посмотри, формат _B_ на половинном битрейте лучшее качество обеспечивает”. И если не использовать дополнительных ухищрений по скрытию информации, какой вы кодек тестируете, то эта информация СУЩЕСТВЕННО повлияет на ваше восприятие. Кроме того, громкость звука также существенно (если не определяюще) воздействует на наше восприятие. Именно поэтому современные CD делают со все возрастающей громкостью (применяют компрессию динамического диапазона) чтобы привлечь покупателя. Даже ценой ухудшения качества. Некоторые кодеки также используют трюк с увеличением громкости. Некоторые (lame на низких<=128 битрейтах) – наоборот, уменьшают, чтобы избежать “лимитирования сигнала” (и правильно делают). Выход – использование так называемых “слепых сравнительных тестов” (double-blind listening tests). Специальной программе даются, как правило, 2 файла, она выравнивает их громкости и воспроизводит в случайном порядке много раз, а вы отвечаете, какой лучше (или хуже). Далее, программа оценивает вероятность того, что вы действительно слышите отличия. Если вы по крайней мере 10 раз из 10 вы одинаково ответите, то разницу вы действительно слышите, и только после этого имеет смысл вопрос о качестве файлов. Этот метод является стандартом для сравнения качества кодеков, и применяется всеми более или менее серьезными фирмами, занимающимися их производством. Приглашается команда тестеров, которые сравнивают качество треков, полученных с теми или иными параметрами. На основании результатов исследования выбираются используемые параметры и технологии. НИЧЕМ ДРУГИМ ДАННЫЙ ТЕСТ ЗАМЕНИТЬ НЕЛЬЗЯ! Сравнение сонограмм, АЧХ исходного и кодированного сигнала, анализ средней разницы сигналов и т.п. дает нам информацию обо всем, кроме самого СУБЪЕКТИВНОГО КАЧЕСТВА, которое может оценить только слушатель. Все тесты, представленные здесь, получены по такой методике сообществом энтузиастов, подробнее см. самый полный ресурс на английском о сжатии звука Тесты проводил Roberto Amorim. Результаты также и других тестов доступны на его страничке (на английском): Результаты, приведенные на картинках, взяты оттуда и получены по данной методике. Все же словесные описания и комментарии – ЦЕЛИКОМ И ПОЛНОСТЬЮ НА МОЕЙ СОВЕСТИ, и выражают собой субъективный опыт и попытку обобщения информации с ресурса http://www.hydrogenaudio.org. Какие существуют основные форматы аудиосжатия с потерями? Какой из них лучше?На вопрос, какой лучше, однозначного ответа нет. Выбор нужно делать самостоятельно, исходя из личных потребностей. Далее приведены некоторые параметры, которые необходимо учитывать при выборе. Стандартизован?Форматы сжатия, являющиеся международными стандартами, обычно, продуманы, используют самые эффективные (на момент стандартизации) алгоритмы. Стандарты на то и нужны, чтобы разные плееры и кодеки все были совместимы между собой. Ко всем форматам серии ISO MPEG имеются подробные спецификации с описанием его структуры, использованными алгоритмами, и референсный кодек. Любому стандарту обеспечено светлое будущее: хорошая поддержка на разных платформах (в т.ч. мобильных плеерах) и качество. Приняты в качестве стандартов, например, MP3 (MPEG 1 Layer-3) и AAC (Advanced Audio Coding) Поддержка Gapless playbackСвойство кодека сохранять в точности длину трека, не добавляя тишину в начало или конец. Позволяет кодить сведенные альбомы. Иначе при прослушивании такого альбома при переходе между треками будет слышен щелчок или короткая пауза, что сильно раздражает. MustHave для DJ’ев или любителей их творений. Может также обеспечиваться со стороны контейнера или хитрыми трюками. Например, формат MP3 не поддерживает непрерывное воспроизведение, из-за особенностей алгоритма всегда добавляется тишина в начале и конце как на этапе кодирования, так и декодирования. Но если в MP3-файл добавить информацию вида «пропустить 0.065 секунд в начале и 0.1 секунд в конце» то можно достигнуть того, что получаемый файл будет такой же продолжительности, как и исходный. Такую информацию умеет и сохраняет в создаваемых файлах кодер LAME (где-то после версии 3.90). Gapless playback получается только при поддержке как со стороны кодека, так и со стороны плеера. Однако поскольку о способе хранения такой информации в стандарте ничего не говорится, то только специальные (очень немногие) декодеры используют эту информацию. К сожалению, gapless не является обязательным для реализации и AAC - декодера (как и MP4-контейнер). В настоящее время из software-плееров, в лучшей степени поддерживающих gapless для различных форматов, можно назвать foobar2000. С переносными плеерами все намного хуже: почти ВСЕ плееры не поддерживают непрерывное воспроизведение даже для Ogg Vorbis. И точно не поддерживают для остальных форматов. Открытость форматаВажнейшая, наряду с качеством, характеристика формата. У открытого формата имеются спецификации (или, на худой конец, исходные коды референсного кодека), следуя которым, любой желающий сможет реализовать свой, лучший или худший, кодек. Только для открытого формата возможно коллективное создание кодека, а, как показывает опыт, именно бесплатные кодеки с открытыми исходниками, делаемые «всем миром» достигают наивысшего качества (L.A.M.E. (MP3 encoder), MPPEnc (MPC encoder), OggEnc (Ogg Vorbis encoder)). Если Microsoft прекратит завтра поддержку своего формата WMA, то можете распрощаться с музыкой в этом формате – его структура не является достоянием общественности. Кроме того, пользователи альтернативных операционных систем тоже оказываются в пролете – полных декодеров (а тем более, кодеров) для операционок *NIX не существует. КачествоНу тут все ясно. Основная характеристика - на каком, в среднем, битрейте достигается неотличимость от оригинала для данного конкретного человека на некотором наборе сэмплов для тестирования. Чем такой битрейт ниже, тем лучше кодек. Или же, при одинаковом среднем битрейте какой кодек обеспечивает лучшее субъективное качество. Соответственно, чем выше качество, тем лучше. Патенты (US)Большинство коммерческих форматов содержат патентованные алгоритмы, условия лицензирования которых для использования в своих программах (кодеках, играх и т.п.) могут быть весьма и весьма жесткими. Из известных форматов, по-видимому, только для MPC (MusePack) и Ogg Vorbis может быть реализован кодек, не нарушающий чьих-либо патентов. И причем такие кодеки умудряются уделывать платные коммерческие аналоги содержащие сверхэффективные патентованные технологии! (см. сравнительные тесты). Для таких форматов, как MP3, и, тем более, для AAC создание свободного от патентов декодера, по-видимому, практически невозможно. Например, для MP3Pro стоимость отчислений с экземпляра декодера(!!!) составляет около $5. Это за включение своего собственного декодера, а лицензирование чужого (например, от создателя формата) стоит много больше. Именно поэтому авторы бесплатных программ, как правило, вместе со своими программами не поставляют кодеки MP3 и AAC, так как иначе им бы пришлось платить за каждое скачивание программы из интернета. Житель нашей необычной в этом отношении страны, страны бесплатных Windows, может не согласится, однако не все программы делаются в России. И в частности, все переносные плееры делают за рубежом, а их производители исправно платят эти самые отчисления. Диапазон битрейтовХарактеризует диапазон битрейтов, на которых кодек обеспечивает удовлетворительное качество, или какие вообще поддерживает. Сравнительная таблица.
*Даны не поддерживаемые битрейты а те,
на которых имеет смысл использовать формат для хранения музыки. Качество кодеков.Тесты проводил Roberto Amorim. Результаты этих и других тестов доступны на его страничке (на английском): http://www.rjamorim.com/test/. Результаты, приведенные на картинках, взяты оттуда и получены по методике слепых сравнительных тестов. Группа тестеров - все желающие.
MP3MPEG 1.0 Layer 3 Старый и всем известный формат. Стандартизован в 1992 году (IS 11172-3 и IS 13818-3) как часть MPEG -1. Несмотря на свою древность и некоторые технические огрехи формата, которые ограничивают качество и не могут быть скомпенсированы в кодеке, остается однозначно самым популярным. Бесплатный MP3 кодек LAME при этом является одним из самых качественных, уступая (при правильном использовании и в специальном VBR-режиме) лишь OggVorbis и Musepack на битрейтах около 130kbps. Очень плохо ведет себя на низких (<112kbps) битрейтах, уступая почти всем остальным. Один из технических недостатков формата MP3 не позволяет эффективно кодировать частоты выше 16кГц, у LAME это частично компенсируется мощным адаптивным фильтром высоких частот, у других MP3-кодеков - ничем. Формат имеет мощную поддержку практически на всех платформах и мультимедиа-устройствах, и вряд ли будет в ближайшее время чем-нибудь заменен или даже потеснен в задачах хранения музыки. Формат продвигается организацией Fraunhofer IIS. Рекомендуемые кодеки и их параметры для MP3:Кодек: L.A.M.E. A’int an MP3 Encoder (не обращайте внимание на название:) Другие MP3 кодеки и рядом не лежали. Особенно плох Blade MP3 Encoder... Версия: позже 3.90 (3.96.1 для пресета medium) Внимание! Не используйте alpha, beta и прочие тестовые версии! Кроме более низкого качества, в таких версиях попадаются критические ошибки, разрушающие gapless playback и даже производящие MP3 с нарушенной целостностью. Кодек имеет огромное количество параметров (VBR/CBR/ABR;JS/Stereo;-b/-B/....). Даже не думайте использовать их, если вы не написали собственный аудио кодек уровня приведенных здесь, сделаете только хуже, т.к. они должны использоваться ТОЛЬКО В ИССЛЕДОВАТЕЛЬСКИХ ЦЕЛЯХ! Все оптимальные значения параметров LAME, начиная с версии 3.90 определяются слепыми тестами по вышеупомянутой методике усилиями множества людей и заложены в пресеты. Кроме того, только таким способом (через пресеты) корректно использовать новую высококачественную психоаккустическую модель npsytune, созданную основателем форума HydrogenAudio.org Дарином Моррисоном при непосредственном участии сотен членов сообщества этого форума с целью достижения максимального качества. Пресеты настоятельно рекомендуются к использованию создателями LAME.
HELP
APM
APS
APE
API
lame.exe --alt-preset [xxx] Замечание 1. Начиная с версии 3.97 (пока что beta) разработчики сделали пресеты режимом работы по-умолчанию. После выхода финала этой версии здесь будут приведены новые оптимальные параметры сжатия. Замечание 2. Если 128kbps для вас кажется достаточным и медведь на ухо наступил, имейте в виду, что слух можно при желании натренировать до того уровня, чтобы отличать standard на некоторых сэмплах (или это произойдет само при внимательном прослушивании большого количества низкачественного аудио). Штука в том, чтобы знать где искать эти отличия, какие типы искажений в сигнал вносят кодеры. Подробнее Категорически не рекомендую это делать, после этого вам придется выкинуть вашу муз. коллекцию (если, конечно, вы не следовали советам, приведенным здесь, или качали музыку из интернета, большая часть которой кодирована пресловутым Xing’ом, или, много много хуже, BLADE’ом в постоянный битрейт). Только VBR190 в принципе может звучать как CBR320 (только в принципе, я не утверждаю, что это так и есть для всех людей). Лично я почти не отличаю Lame –alt-preset 128 от всего, что выше, и не хочу этого менять:) (однако во время написания я, используя эту методику, смог отличить --alt-preset cbr 160 от оригинала) MP3ProНЕ является каким-либо стандартом, это экспериментальная закрытая надстройка над форматом MP3, за счет использования алгоритма SBR чрезвычайно улучшающая качество на низких (<96) битрейтах. Не более того. Даже MP3Pro@96 не лучше MP3 с переменным битрейтом @128. Для качественного хранения музыки не подходит, поддерживается лишь малым числом переносных плееров. Закрытость формата (в отличие от MP3) чрезвычайно снижает его популярность и ограничивает область использования рамками Windows. По видимому, MP3Pro был лишь тестовой версий для обкатки технологии SBR, стандартизированной в расширении AAC-HE (AAC High Efficiency). Формат продвигается организацией Thomson Multimedia. Рекомендуемые кодеки и их параметры для MP3Pro:Только Ahead Nero MP3Pro encoder, Adobe Audition или MusicMatch Jukebox. О различиях в качестве не проинформирован. Nero удобней всех для перекодирования группы файлов. MMJB дает возможность кодить прямо с CD MPC, MP+Musepack Открытый формат, все еще не завершенный. Cоздавался в разное время несколькими людьми. Основан на доработанном MP2 (MPEG-1 Layer 2). Незаурядный талант этих людей позволил им создать чрезвычайно быстрый и самый качественный кодек для высоких битрейтов. Чуть ли не единственный пример оптимизации под высокие битрейты. Неотличим для подавляющего большинства уже на ~170kbps. (LAME- примерно на ~190). Несмотря на это, формат в тройке лучших на ~130kbps. Поведение на более низких битрейтах неизвестно, и, видимо, очень похоже на MP3. Существует единственный китайский плеер, проигрывающий этот формат. Рекомендуемые кодеки и их параметры для MPC:
Кодек: MPPENC.EXE
STANDARD
EXTREME
INSANE Ogg Vorbis IМедленно набирающий популярность открытый формат, по-сути созданный одним человеком. Референсный кодек, по-видимому, свободен от патентов. Широко используется в современных играх, создатели которых не хотят платить $2500 за использование MP3. Задуман вообще как часть целой открытой мультимедийной системы с видео. Формат продвигается некоммерческой организацией http://www.xiph.org Изначально поддерживает непрерывное воспроизведение. Качество выше или сравнимо с MP3, но только при использовании Vorbis1.1 или более новых. Референсный кодек oggenc.exe версий<=1.01 включительно ХУЖЕ LAME MP3 на битрейтах выше ~128, и некоторыми людьми успешно отличается от оригинала даже на –q10! Программист Aoyumi исправил этот недостаток в доработанном кодеке; исправление уже включено в официальную версию v1.1, к-рую можно взять на http://www.vorbis.com Итак, на ~130kbps Vorbis Aotuv - победитель (почти наравне с Musepack). На низких битрейтах (~64kbps) формат также чрезвычайно хорош, уступает MP3Pro но уделывает WMA. Поддерживается уже немалым числом новых переносных плееров, однако качество декодеров во многих вызывает нарекания, так что при воспроизведении на таком плеере качество Vorbis_AoTuv~130 может оказаться даже ниже LAME MP3~130, на декодере того же WinAmp’а все как раз наоборот. Информация о переносных плеерах, поддерживающах Ogg
Vorbis доступна по адресу: Есть основания полагать, что кодек Vorbis Aotuv _может_ достигать неотличимости на -q6 в отличие от референсного 1.0.1 Рекомендуемые кодеки и их параметры для Ogg Vorbis:
Программа: oggdropXPd (на основе 1.1) OggEnc.exe –q [xxx] AAC LCAdvanced Audio Coding (MPEG-4 AAC LC / Low Complexity object type) Стандартизирован в 1997 году как часть MPEG-2 и в 1999 (с малыми доработками) как часть MPEG-4. Стал годным к употреблению со стандартизацией MP4 контейнера (с расширением .MP4 или .M4a), так как это единственный корректный способ использовать метаданные (информация об артисте, названии, текст песни, картинка с обложки и т.д.) Технологически (особенно версий начиная с 3й с расширением HE-AAC или AACPlus) это самый совершенный формат с нераскрытым потенциалом. Лучшие AAC кодеки все еще хуже LAME MP3 (VBR alt-pesets) на битрейтах >120kbps. Из переносных плееров поддерживается пока только iPod'ом. Непрерывное воспроизведение не прописано в стандарте AAC, так что оно не является обязательным для реализации в кодеке. Gapless playback обеспечивается похожим трюком, как в случае LAME MP3, а соответствующая информация хранится в MP4 контейнере (пример gapless-кодеков: NeroDigital Encoder, FAAC). Поскольку реализация всех возможностей MP4 контейнера для AAC-декодера не обязательна, многие кодеки не используют эту информацию. В настоящее время имеет неплохую поддержку со стороны разнообразных мобильных устройств, в основном, сотовых телефонов. Часто, если телефон проигрывает 3gp видео (MMS) - сообщения, телефон поддерживает и этот формат аудио. Дело в том, что .3gp основан на стандартном MPEG-4 (.mp4), и позаимствовал у него с некоторыми упрощениями форматы видео, аудио и контейнера. Формат интенсивно продвигается организациями Apple и Ahead. Рекомендуемые кодеки и их параметры для AAC:Оптимальные параметры неизвестны. Битрейт, на к-ром кодеки неотличимы от оригинала неизвестны. Программы: Winamp 5 Pro[битрейты около 160] HE AAC (синонимы-AACPlus, NeroDigital)High Efficiency Advanced Audio Coding (MPEG-4 AAC HE / High Efficiency object type) Расширение SBR для AAC, аналогичное MP3Pro, но официально стандартизированное и открытое. К формату относится все, что сказано для AAC. По-видимому, в скором времени будет широко использоваться в 3G - мобильных телефонах для мелодий звонков и в качесве музыкального формата плеера. Настоящая стерео мелодия 44.1kHz с приличным (для телефона) качеством на битрейте 32kbps. Впечатляет? В HE-AACv2 (AACPlus v2), кроме SBR, входит и Parametric Stereo. Это расширение позволяет очень эффективно сжимать стерео сигнал. Положительный эффект дает на сверхнизких битрейтах <=48kbps. Полная поддержка HE-AACv2 (проигрывание и сжатие) включена в Winamp5.12, и более новых. Parametric Stereo - это версия MPEG Surround для двухканального сигнала. Этим летом появилась финальная версия технологии, позволяющей сжимать многоканальное аудио с битрейтами, такими же как у стерео сигнала. Получаемые файлы старыми проигрывателями будут воспроизводиться в режиме стерео. Формат интенсивно продвигается организацией Ahead как часть NeroDigital. Рекомендуемые программы для создания HE-AAC:Программа: NeroDigital Encoder (Nero burning ROM v7) Программа: Winamp 5.12 WMA (std)Windows Media Audio Microsoft славится желанием переписать все программное обеспечение, и аудио комрессию это несчастье стороной не обошло. Видимо, формат создавался в частности, для лишней привязки пользователей к операционным системам семейства Windows (поскольку формат закрытый, отсутствуют спецификации, а Microsoft никогда не сделает декодеры для других операционных систем, то пользователь, имеющий WMA-файлы не сможет слушать их, скажем, на Linux). WMAv9 ВСЕ ЕЩЕ хуже и MP3, и тем более, остальных по качеству на битрейтах >=132kbps, это при том, что они обещали качество MP3 ни много, ни мало, на WMA~64kbps. Интересно, 160kbps WMA не хуже LAME MP3~130? Надо проверить на досуге :-) Формат НЕ достигает неотличимости от оригинала ни при каких битрейтах (даже около 300). Инженеры Microsoft видимо, больше думают над усовершенствованием DRM, чем над качеством (DRM задумана как система ограничения прав пользователя по прослушиванию, прожиганию на CD, копированию на переносные плееры и т.п.). Последние задачи WMA выполняет на 5+, поэтому этот формат широко применяется в легальных internet-магазинах. Там можно приобрести, в частности, музыку с привязкой к компьютеру, ограничением на 3 прожига на болванки и без права использования на переносных устройствах. Решайте сами, а оно вам нужно? Кстати, лицензия на WMA SDK запрещает программистам реализацию функции перекодировки из этого формата в своих программах, так что даже с перекодировкой в MP3 с дополнительными потерями качества возникнут проблемы... Хотя, на низких битрейтах WMA, бесспорно, лучше MP3 и его вполне можно использовать на переносных устройствах (если у плеера мало памяти и он поддерживает WMA). Конечно, если ваш уши выдержат лязг 64kbps WMA. Но лучше подыскать другую альтернативу (Ogg Vorbis, HE –AAC, MP3Pro наконец). Популярен формат из-за ложной рекламной информации со стороны Microsoft, наличия WindowsMediaPlayer’а в современных операционках (предмет судебных разбирательств) и широкой поддержки на переносных устройствах. Формат продвигается гигантом Microsoft. Рекомендуемые программы для создания WMA:WindowsMediaPlayer v10 <=128kbps Хуже MP3, на бОльших битрейтах разница увеличивается, и не в пользу WMA. Неотличимость для некоторых людей с WMA недостижима (я слету прошел тест по отличению WMA@192 от оригинала, отличить даже Lame_MP3 --preset cbr 160 было намного сложнее). WMA ProПоявился недавно, не имеет ничего общего с WMA. Возможность кодирования в этот формат в WindowsMadiaPlayer’е была специально заблокирована, ведь он не является обратно совместимым и не поддерживается ни одним переноснам устройством. Тесты показывают, что формат более качественный, чем WMA (std). Формат создан Microsoft Рекомендуемые программы для создания WMA Pro:Неизвестны (???) Sony Sound Forge (WMP должен также быть установлен) ---------------------------- Глубокий Respect всем, кто дочитал до конца. Спасибо! Web-cсылки:Общие
http://rarewares.org/ Vorbis
http://rarewares.org/ogg.html MP3
http://www.hydrogenaudio.org/forums/index.php?act=ST&f=15&t=203 Musepack
http://www.musepack.net AAChttp://rarewares.org/aac.html <версия RC3 (2005.12.12)>
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||