Очная ставка: OGG vs LAME


 

Предисловие

Наверное, никого уже не удивишь звуковыми возможностями современных компьютеров. Ведение фонотеки на компьютере наряду с аудиокассетами и компакт-дисками стало для многих привычным делом. Сегодня даже школьники знают магический пароль, объединяющий многих людей, так или иначе связанных с компьютерами. Этот пароль состоит всего из трех символов: "M" "P" "3". Задумайтесь, сколько воспоминаний уже связано у вас с ними.

Многим известно, что представляют собой аудио компакт-диски с точки зрения простоты и лёгкости обращения. "Почему?" — спросите вы. Да потому что компакт-диск, как говорится, "и в Африке" компакт-диск. Если не принимать во внимание некоторые особенности считывания, он всегда и везде такой, каким его создали, то есть одинаковый. У него один и тот же жестко определенный формат, а качество звучания в основном зависит от звукозаписывающей студии и обычно на высоте. Удобно? Не спорю!

А что же с музыкой на компьютере? Формат записи PCM (импульсно-кодовая модуляция), принятый на CD-DA дисках, недостаточно компактен, чтобы его можно было использовать для хранения музыки на своем компьютере, и уж совершенно непригоден для обмена музыкой через Сеть. Поэтому разрабатываются и постоянно совершенствуются математически чрезвычайно сложные алгоритмы сжатия аудиоданных и форматы их хранения. Эти алгоритмы порой сильно отличаются по качеству звучания друг от друга. Перед многочисленными пользователями стоит постоянная проблема выбора: какой программой, по какому алгоритму и с какими параметрами кодировать свою любимую музыку?

Несмотря на то, что создано множество различных алгоритмов и форматов, абсолютным лидером на сегодняшний день является только один из них. Это формат сжатия MPEG 1.0 Audio Layer III, называемый в народе просто "MP3". Существует много программ-кодировщиков, позволяющих записывать музыку в этот формат. Каждая из таких программ обладает своими плюсами и минусами, в Сети можно найти большое количество тестирований и сравнений различных кодировщиков формата МР3. Общепризнанным лидером на сегодня считается LAME, бесплатный открытый проект, свободный от лицензионных ограничений.

Мы уже привыкли считать, что MP3 — это лучшее, MP3 — это на века. Однако прошло не так много времени с того момента, как у преобладающего формата сжатия аудио и кодировщика появился серьезный конкурент — совершенно новый формат и алгоритм Ogg Vorbis. Уже после выхода в конце лета 2000 года версии бета 3 этого кодировщика общественность стала к нему серьезно присматриваться, и выбрать "лучшее" стало очень сложно. И вот в начале 2001 года вышли сразу две новые версии: LAME 3.88 и Ogg Vorbis 1.0 Beta 4. Обе версии значительно отличаются от предыдущих, поэтому назрела необходимость сравнить их между собой, провести, так сказать, "очную ставку" двух форматов. Что и было проделано. Результат перед вами. Данная статья является логическим продолжением опубликованной на iXBT в декабре 2000 года моей статьи "Аудио компрессия для меломанов".

Ключ на старт

Для начала несколько слов о самом процессе исследования. Тестирование, сравнение и анализ проводились в пяти условных (по авторской классификации) зонах качества:

  • "супер" (самый высокий битрейт, 320/350 кбит, главная цель кодирования — достижение максимально возможного качества);
  • "хорошо" (высокий битрейт, 256 кбит);
  • "неплохо" (средний битрейт, 192 кбит);
  • "так себе" (средний битрейт, 160 кбит);
  • "и так сойдет" (всеми любимый и совершенно оправданный для обмена музыкой через Сеть битрейт 128 кбит).

В качестве кодировщика и декодировщика использовалась написанная автором статьи программа OrlSoft MPeg eXtension версии 2.0, уже достаточно известная и полюбившаяся пользователям в нашей стране и за ее пределами. При анализе результатов применялись программы: CoolEdit Pro 1.2, Steinberg WaveLab 3.02, SpectraLab 4.32.13.

Помимо уже применявшихся в исследованиях в моей предыдущей статье семплов Roxette "Crush On You" и Richard Clayderman "Mano a Mano" использовался целый ряд семплов из других композиций различных музыкальных стилей и направлений: DJ BOBO "What A Feeling", Bluemchen "Ist Deine Liebe Echt" и "Sehnsucht@herz.de", Chicane "Autumn Tactics" и прочие. При построении выводов и иллюстраций будут приводиться наиболее характерные результаты для каждой зоны.

Условия сравнения.

К сожалению, невозможно совершенно равнозначно сравнивать LAME и OGG по одинаковому битрейту, так как он, как правило, не получается таковым. Дело в том, что формат и кодировщик Ogg Vorbis не подразумевают использование режима кодирования с постоянным битрейтом (как в MP3), для него любой из шести предустановленных режимов (112, 128, 160, 192, 256, 350) является кодированием с плавающим потоком, так называемым VBR режимом — variate bitrate, хотя скорее всего его правильнее назвать ABR — average bitrate. Более того, кроме указания желаемой скорости (иначе говоря — ширины) потока, кодер OGG больше не позволяет никаких манипуляций со своими параметрами, в то время как LAME дает возможность управлять практически всем. Поэтому для большей объективности при проведении тестирования мы не будем вмешиваться в параметры психоакустической модели, фильтров и других параметров кодирования LAME и, таким образом, будем сравнивать оба кодера в рекомендуемых разработчиками режимах кодирования. Единственное отступление от этого правила будет сделано для lowpass фильтра (в сигнале оставляют только частоты ниже некоторого заданного уровня) для указания LAME, какие частоты мы хотим оставить в сигнале, чтобы избежать чрезмерного их срезания.

Не так давно в LAME появился режим заказного (среднего) битрейта (average bitrate — ABR), реализованный ранее в кодере OGG. По утверждению разработчиков, при одинаковом битрейте кодирование в ABR режиме должно быть не хуже, чем в обычном. Поэтому при исследовании качества LAME будем использовать два набора кодированных семплов: с постоянным и переменным битрейтами.

Ограничения форматов.

В силу спецификации формата MP3 невозможно кодировать в этот формат нон-стоп альбомы так, чтобы они могли потом воспроизводиться без пауз, поскольку файлы этого формата всегда оказываются длиннее оригиналов и имеют дополнительные отсчеты тишины в начале и в конце треков. Декодер LAME умеет исправлять начало файлов, поэтому после декодирования начало файлов всегда совпадает с оригиналом, но концовка все равно неправильная. В формате Ogg Vorbis данная проблема отсутствует: файлы совпадают с оригиналами с точностью до одного отсчета. Однако у данного кодера имеется другое серьезное ограничение: он умеет кодировать файлы только с частотой дискретизации 44100 Гц, т.е. формата аудио компакт-дисков (CD-DA). Кодировать файлы с частотой дискретизации 48000 Гц OGG на данный момент не может.

Принятая терминология.

Семпл — звуковой файл, некоторый отрывок музыкальной композиции.

Оригинал, оригинальный семпл, исходный семпл — отрывок формата WAV, взятый с аудио компакт-диска.

Кодированный семпл — семпл, закодированный (сжатый) в один из рассматриваемых форматов. В данном случае это MP3 (LAME) или OGG.

Раскодированный семпл — кодированный семпл, преобразованный обратно из сжатого формата в обычный WAV для проведения исследований.

Кодер, кодировщик — программа, производящая сжатие (кодирование) семпла из одного формата в другой, здесь — из WAV в MP3 или OGG.

АЧХ — амплитудно-частотная характеристика звука, представление звука графиком частота-амплитуда.

Сонарм, сонограмма — частотно-временное представление звука графиком время-частота.

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

"Супер"

Начнем мы, разумеется, с самой лакомой для меломанов зоны высших битрейтов. При этом, главная цель кодирования заключается в достижении максимально возможного качества звучания, поэтому для тестирования возьмем максимальные параметры для обоих кодеров. Для LAME берем чистый режим 320 кбит с полным звуковым диапазоном вплоть до 22 кГц и максимальным качеством (-q0), остальные параметры позволим устанавливать самому кодеру. Для OGG также возьмем режим максимального качества — 350 кбит. К сожалению, как я уже говорил, управление какими-либо другими параметрами кодирования невозможно, поэтому придется полагаться на собственные настройки кодера. Таким образом, кодеры работают практически на пределе своих возможностей по передаче звучания оригиналов. Сжимаем, декодируем, смотрим…

И что же получается? Очень интересные факты. Я со всей ответственностью могу подтвердить заверения разработчиков обоих форматов о том, что их психоакустические модели претерпели значительные изменения, которые легко заметны при анализе раскодированных семплов. В корне изменилась обработка высоких частот. Если раньше в режиме 320 кбит LAME оставлял практически полный диапазон вплоть до 22 кГц, то сейчас эти частоты также проходят через психоакустическую модель. Данный факт прекрасно иллюстрируется сонармом (частотно-временное представление звука). Сравните оригинал и раскодированный семпл:

         

Шокирующие иллюстрации, не правда ли? Но это еще что, вот полюбуйтесь, что получается у OGG на 350 кбит — срезание частот даже на уровне 16 кГц.

В закодированном сигнале встречаются даже такие вот участки АЧХ (вертикальной линией отмечена частота 16 кГц).

Согласитесь, довольно странное обращение с высокими частотами для режима максимального качества кодирования. В более ранних версиях обоих кодеров такого вольного обращения я не встречал. Интересно, как звучат эти семплы по сравнению с оригинальными записями… Начинаем прослушивание.

Вот это да! Вот это обработка звучания! Звук стал настолько близок к оригиналу, что отличить вслепую три записи стало чрезвычайно сложно. При максимальных параметрах оба кодера передают практически идентично звучание оригинального компакт-диска. Единственное, что после многократного перекрестного прослушивания мне удалось отметить, это большую прозрачность звучания и лучшую передачу верхних средних частот у кодера OGG. Но, повторю, эта разница настолько ничтожна, что ощутимо слышна она будет только на очень качественной и дорогой аппаратуре. Таким образом, за передачу максимально возможного качества звучания оба кодера получили твердую "пятерку" с одним только отличием, что у OGG средняя скорость потока ощутимо больше 320 кбит (обычно она варьируется в пределах от 340 до 380). Разработчики разумно решили поступиться передачей частот выше 19 кГц, отдав предпочтение более важному частотному диапазону. Усредненные АЧХ кодированных и оригинальных семплов мало отличаются друг от друга, несмотря на очень вольное управление высокими частотами обоих кодеров.

Давайте проведем исследование дельта-сигналов, то есть вычислим и сравним отличия между оригинальными и кодированными семплами.

Разностный сигнал семплов LAME на слух воспринимается как негромкий широкополосный шум, сквозь который слабо пробивается основной звук с хриплым постукиванием и сильно искаженными высокими частотами. Для семплов OGG картина оказывается намного более сложной: звучание напоминает уже не просто шум, а сильно искаженный оригинал с эффектом фазовых искажений (эффект flanger или phaser). Если судить по звучанию, можно сделать вывод, что у OGG обработка разных диапазонов частот отличается значительно большей продуманностью по сравнению с LAME, у которого, похоже, для большинства поддиапазонов применяются очень близкие параметры психоакустической модели. Это видно при анализе АЧХ дельта-сигналов (красный график для LAME, белый — для OGG). Смысл приведенных графиков заключается в том, что чем ниже уровень сигнала, тем выше качество передаваемого звучания на соответствующих частотах.

Таким образом, разработчики OGG пошли по пути иного распределения приоритетов относительно применяемого в MP3 кодирования. Они решили упростить кодирование низких и средних частот ниже 2 кГц, зато улучшить передачу верхней середины и высоких частот до 16 кГц, т.е. основного слышимого диапазона. На приведенном графике хорошо видно, что в диапазоне до 2 кГц лучше передает звучание LAME, в то время как в диапазоне от 2 до 16 кГц — OGG. Отсюда и подмеченное мною лучшее качество звучания средних частот на семплах, закодированных кодером OGG.

Как уже говорилось, кодер OGG не позволяет управлять параметрами кодирования, что заставляет нас довериться выбору разработчиков формата. В то же время LAME дает огромные возможности по управлению процессом кодирования, параметрами психоакустики и фильтров, и, если при кодировании в 320 кбит насильно срезать частоты выше 20 кГц, которые по теории никто не может услышать, можно добиться лучшего качества звучания. Нагляднее всего это можно продемонстрировать на сравнительном графике усредненных АЧХ дельта-сигналов полного и обрезанного до 20 кГц при кодировании семплов.

Разница в уровне дельта-сигнала составляет до 2 дБ, и это весьма ощутимая разница — порядка 15%. То есть, образно говоря, решив не кодировать частоты выше 20 кГц, мы получили улучшение передачи всего остального диапазона на 1-2 дБ. Я рекомендую придерживаться этого правила, если вы хотите получать более качественное звучание. Отмечу также, что разницу в звучании между семплами, обрезанными на 20 кГц, и семплами OGG обнаружить уже не просто сложно, а практически невозможно, разумеется, если кто-то из читателей не обладает абсолютно уникальным слухом.

Таким образом, в зоне высочайшего качества OGG и LAME практически не отличаются друг от друга, поэтому при выборе кодера меломаны могут руководствоваться только личными симпатиями.

"Хорошо"

Сверхвысокий битрейт дает великолепное качество звучания, однако не он является преобладающим среди высоких битрейтов, т.к. объем файла при потоке 2,5 Мб в минуту многие пользователи считают чрезмерно большим. Как правило, они предпочитают использовать в своих личных фонотеках файлы с битрейтом 256 кбит, считая это разумным компромиссом между хорошим качеством и размером файлов. Поэтому будем подходить к тестированию именно с такой точки зрения, т.е. сравним качество обоих кодеров и оценим потери относительно большего битрейта. Как и для режима 320 кбит, в данном случае считаю оправданным подавление высоких частот до 20 кГц для улучшения передачи основного слышимого частотного диапазона. Тестирование LAME проведем в двух режимах: с постоянной скоростью потока и с переменной.

Для начала посмотрим на частотную динамику получившихся семплов (изменение АЧХ во времени с усреднением по небольшим интервалам — от 20 до 100 миллисекунд). Тенденция к потере высоких частот подтверждается. Как и в предыдущем тесте, OGG срезает высокие частоты (выше 18 кГц) значительно больше, чем LAME. Взгляните сами:

         

         

Однако, несмотря на это, кодер OGG значительно лучше передает частоты в диапазоне от 15 до 18 кГц, в то время как LAME начинает их срезание в паузах между большими всплесками амплитуды сигнала и на более низких частотах. Но даже на этой диаграмме хорошо видно, что частотная передача у LAME в режиме ABR значительно превосходит стандартный режим постоянного битрейта, что позволяет подтвердить описанное выше высказывание разработчиков и сделать вывод о более высоком качестве кодирования в режиме ABR. Теперь давайте послушаем, что же у нас получилось.

Разработчики LAME серьезно изменили кодер: той разницы в звучании высоких частот, что раньше была заметна сразу, больше нет. Звучание семплов, закодированных в ABR, действительно лучше стандартного, поэтому рекомендую отказаться от использования постоянного битрейта в пользу ABR. Как бы это ни казалось вам странным, но срезание кодером OGG частот выше 18 кГц сильно не сказывается на общем звучании семплов, разница c LAME также оказалась минимальной. Понимаю, в это будет сложно поверить, но кроме небольшого "металлизирования" высоких частот и слабенького провала глубины звучания я ничего не смог обнаружить. То, что я услышал, не было похоже на то, как раньше звучали LAME и OGG! Поэтому тем, кто предпочитает 256 кбит, рекомендую и впредь им пользоваться, только нужно обязательно перейти на новую версию LAME.

А что же нам скажут дельта-сигналы? На слух их звучание подобно полученному при рассмотрении режима 320 кбит. Для семплов OGG можно отметить появление в сигнале хрипящих звуков в диапазоне высоких частот, а для семплов LAME — только общее увеличение уровня шума, какого-либо серьезного изменения в частотах не замечено.

Думаю, достаточно наглядная демонстрация. Вот вам и объяснение, почему при почти одинаковом битрейте OGG сильно срезает частоты выше 18 кГц. Это делается для того, чтобы лучше передать все остальные. Вы только посмотрите! Практически на всем звуковом диапазоне семплы OGG значительно ближе к оригиналу, чем семплы LAME. Поэтому, если вы готовы пожертвовать тем, что лежит за пределами 18 кГц, ради лучшего качества, вам стоит подумать о переходе на OGG. Однако столь ощутимая разница в звучании проявляется не на всех семплах. Возьмем, например, старого знакомого — семпл Richard Clayderman, на котором все огрехи передачи высоких частот слышны сразу.

В данном случае LAME показал немного лучший результат, но, тем не менее, высокое качество передачи частот выше 2 кГц кодером OGG очевидно. В то же время в очередной раз продемонстрировано значительно лучшее качество при ABR кодировании LAME, разница составляет от 1 до 2 дБ.

Попробую пояснить обнаруженное несоответствие между двумя приведенными сравнениями. Первый проиллюстрированный семпл представляет собой очень громкий и плотный звук, нормализованный почти под 0 дБ. В то время как второй семпл — это оркестровая композиция, записанная со средним уровнем порядка -3 дБ, то есть без какого-либо уплотнения динамического диапазона. Проверив ряд других семплов, можно сделать вывод о том, что чем плотнее запись, тем выше качество при кодировании OGG в сравнении с LAME. Однако не стоит забывать об эффекте "металлизирования" высоких частот у LAME и срезании частот выше 18 кГц у OGG. Для полноты картины приведу сравнение АЧХ дельта-сигналов для семпла средней плотности.

Как мы видим, картина сильно не изменилась, закономерности остались теми же.

Таким образом, при выборе кодера для работы в режиме 256 кбит вам предстоит определить, что для вас важнее: средние частоты или частоты выше 17-18 кГц? Ответив на этот вопрос, вы сразу же ответите на вопрос о предпочтительном кодировщике. Отмечу только еще раз, что в режиме ABR качество кодирования у LAME намного лучше, чем при использовании постоянного битрейта. Это бесспорный факт. А если вам интересно мое собственное мнение, то я бы назвал лидером кодер OGG.

256 vs 320/350: кто кого?

После того, как мы определились с лидером зоны "хорошо", самое время сравнить качество кодирования двух рассмотренных зон вместе.

Слуховые испытания семплов LAME только подтверждают мои выводы об очень высоком качестве кодирования в ABR режиме 256 кбит. Разница между семплами 256 ABR и 320, конечно же, ощутима на слух: звук становится немного более резким, появляется излишняя четкость, но эту разницу нельзя назвать критической. Поэтому, если для вас является критерием не максимальное приближение к оригиналу, а просто достаточно высокое качество, то режим 256 ABR — для вас. А вот с семплами OGG ситуация оказалась с точностью до наоборот: звук немного размывается, но это размывание опять же нельзя назвать критическим. Указанные различия в кодированных семплах проявляются, только если специально проводить перекрестное прослушивание на большой громкости и очень хорошей аппаратуре. Поэтому не стоит заострять на них особое внимание.

А вот как эти различия выглядят графически.

Если судить по графикам (а это уже знакомые вам усредненные АЧХ дельта-сигналов для семплов 256 и 320/350 кбит обоих кодеров), то наибольшие различия между двумя режимами обнаруживаются у кодера OGG, причем проявляются они как раз на тех частотах, где звучание OGG лучше. Здесь, по всей видимости, сказывается разница в битрейте, поскольку сравнивается не 320, а целых 350 кбит против 256.

Подводя итоги, можно сказать следующее. Кодирование в режиме 256 кбит у обоих кодеров стало настолько качественным, что, если для вас не является жизненно необходимым достижение максимального приближения к оригиналу, смело используйте режим 256 кбит и не беспокойтесь о качестве, оно выше всяких похвал. Лично я для многих не особо ценных записей стал использовать LAME 256 ABR или OGG 256 в зависимости от того, для чего кодируется музыка, а также учитывая, что нон-стоп записи можно кодировать только в OGG, т.к. он кодирует и декодирует файлы с точностью до отсчета, не добавляя лишней тишины, как это делают все MP3 кодировщики.

"Неплохо"

Режим 192 кбит является своего рода половинчатым решением, поскольку еще не дает достойного качества, но в то же время имеет не такой уж и маленький объем (1,5 Мб — 1 минута). Давайте посмотрим, что изменилось в зоне "неплохого" качества с приходом новых версий исследуемых кодеров. А вдруг они теперь уже на 192 кбит передают великолепное качество звучания? Этот вопрос нам предстоит выяснить в ходе тестирования.

Ситуация с высокими частотами изменилась кардинально: их передача лучше получается у OGG — LAME начал их срезать. Качество ABR кодирования по-прежнему лучше обычного, однако все равно хуже OGG.

         

         

Даже по столь спорной диаграмме, как сонарм, прекрасно видно, что в режиме 192 кбит качество передачи высоких частот у OGG выше, хотя и не намного. Оба кодера значительно срезают частоты выше 16 кГц, но OGG оставляет их больше, чем LAME. Давайте послушаем наши семплы, априори ожидая интересные результаты.

Общее качество звучания оказалось, конечно же, хуже 256 кбит, поскольку присутствует значительное металлизирование и размазывание высоких частот, а также небольшая потеря глубины у обоих кодеров. Однако на этот раз их звучание стало сильно отличаться друг от друга, в основном на высоких частотах. То, как LAME передает высокие частоты, полностью соответствует понятию "неплохо", тогда как семплы OGG вполне могут претендовать на оценку "хорошо" в большинстве случаев. Как и в предыдущих тестированиях, наиболее ярко это различие проявилось при воспроизведении семпла Richard Clayderman, на особо качественно записанных живых "тарелках". OGG частично сохраняет особый колорит звучания исследуемых семплов, хотя сильно их размазывает, тогда как LAME сводит все к обычному металлическому "циканью". Бесспорный минус для LAME. Однако его прошлые версии делали звучание таким даже на 256, а порой и на 320 кбит. Поэтому не будем сильно сгущать краски. Вопрос, правда, спорный, что лучше — размазывание или металлизирование. В то же время у OGG обнаруживается некоторое "проваливание" средних частот, которого не наблюдалось на более высоких битрейтах. Тем не менее в целом звучание для 192 кбит достаточно неплохое, хотя и не может претендовать на действительно качественное.

Давайте поглядим на разностные сигналы кодированных семплов, на которых обнаружилась наибольшая разница в звучании. На семплах LAME помимо увеличения общего уровня шумов появились отчетливо слышимые искажения в диапазоне высоких частот. На семплах OGG сквозь шум и сильные искажения высоких частот стало хорошо слышно чрезвычайно искаженное звучание оригинала в диапазоне средних частот. На семплах LAME такого высокого уровня средних частот отмечено не было. Таким образом, с понижением битрейта уровень разностных сигналов, шумов и искажений растет. Чем ниже битрейт, тем больше разница между закодированными семплами и оригинальными записями.



Определить, какой из кодеров ближе к оригиналу, стало очень сложно. На слух они, конечно, отличаются, но по графикам невозможно сделать вывод о предпочтительности того или иного кодера. Или вот еще диаграммы для семплов Roxette, очень плотных и громких.

У вас, должно быть, возник вполне логичный вопрос: зачем я привел сразу три одинаковых графика? Если возник, значит, я не зря пишу эту статью. Ведь кроме того, что я выскажу свое мнение по исследуемому вопросу, вы должны сделать выбор сами. Именно для того, чтобы вам было легче понять мои выводы и сделать свои, я и привожу множество графиков и диаграмм.

Обобщив результаты сравнения приведенных графиков, прослушивания, просмотра АЧХ в динамике, а также исследования дельта-сигналов и сонарма — т.е. на основании всех полученных данных я бы сделал следующие выводы.

Кодеры звучат отлично друг от друга. LAME передает общее звучание неплохо, но металлизирует высокие частоты. OGG, наоборот, их размазывает и проигрывает LAME в передаче средних частот. Поэтому я считаю, что LAME при ABR кодировании все же лучше OGG справляется с задачей качественного кодирования музыки в 192 кбит. А вот при кодировании с постоянным битрейтом — проигрывает ему по полной программе, во всех тестах. Надеюсь, вы уже поняли, что режим среднего битрейта ABR всегда дает лучшее качество.

Таким образом, LAME в режиме ABR лидирует при кодировании в 192 кбит.

"Так себе"

Вот мы и подошли к двум, наверное, самым популярным на сегодня битрейтам — 160 и 128 кбит. Чем плох 128 и хорош 160? Тем, что 128 кбит, как бы странно это ни звучало для многих, недостаточно для передачи сколько-нибудь качественного звучания, т.к. на кодирование высоких частот не хватает ширины потока. А вот 160 кбит для приемлемой передачи частот 16-17 кГц уже вполне достаточно. Как же справляются с этой задачей новые версии кодеров? Давайте посмотрим.

         

         

В целом, конечно, неплохо для 160 кбит. OGG снова лидирует по передаче высоких частот. По всей видимости, разработчики кодера нашли способ оставлять высокие частоты не в ущерб остальным. А может, это не так? Проверим. Сонограммы LAME на этот раз практически не различаются, разве что у ABR немного лучше. Слушаем.

На всех тестовых семплах звучание OGG выше всяких похвал! Такого звучания на 160 кбит невозможно было и представить. И что только LAME не делает с высокими частотами, несмотря на искусственное подавление их выше 18 кГц. Мало того, что они "металлизируются", так по ним еще и эффект "зажевывания" появляется. Да, это нормальная реакция кодера: поток-то узковат для качественной передачи высоких частот. Зато на средних частотах LAME звучит лучше OGG. Собственно, по-другому и быть не могло: чудес не бывает, сами понимаете. Вот и усредненные АЧХ дельта-сигналов говорят о том же.



За счет менее качественной передачи средних частот кодер OGG лучше воспроизводит высокие и низкие частоты, т.е. как раз те частоты, которые традиционно урезаются при низких скоростях кодирования. Именно это и делает LAME как классический представитель MP3 кодировщиков.

Таким образом, систематизировав всю имеющуюся информацию, я пришел к выводу о том, что бесспорным лидером в кодировании 160 кбит является кодер OGG. Однако LAME в режиме ABR, хотя и отстает от лидера, но не намного. Вполне возможно, что в будущих версиях ситуация изменится.

"И так сойдет", или народный битрейт

Да-да, не смейтесь, именно "народный битрейт". Народным я его назвал потому, что это самый популярный на сегодня битрейт. Именно в нем хранятся основные залежи музыки в Сети, именно в нем предпочитают хранить свои временные музыкальные предпочтения компьютерщики, которым традиционно места жалко, а слушают они музыку на аппаратуре так себе, а порой и просто на компьютерных акустических системах. Зачем для такой акустики высокие битрейты? Вот потому-то я и назвал исследуемый битрейт "народным". Даже у меня, любителя истинно качественного звука, нет-нет да и проскочит "народный" файлик, взятый у друга для прослушивания. Ведь очень многие записи нигде не купишь, а вот в сжатом виде найти можно. Так что внимание битрейту 128 уделяется, наверное, не меньше, чем 256 и 320. Посмотрим, что нам скажут на этот раз наши подопытные. Кодирование LAME производим с подавлением частот выше 16500 Гц, чтобы улучшить качество передачи основного частотного диапазона. Если производить подавление на более высоких отметках, передача высоких частот от этого ощутимо не улучшается, зато общее звучание становится хуже.

         

         

Если не брать в расчет искусственное подавление высоких частот у LAME, то в целом сонограммы семплов обоих кодеров схожи, по крайней мере, явных различий не наблюдается, сонограмма ABR, как и всегда, немного лучше.

При прослушивании наблюдается та же звуковая картина, что и при 160 кбит: семплы OGG звучат ощутимо красивее и качественнее семплов LAME. Общее качество звучания, разумеется, несколько хуже 160, но тенденции сохраняются: OGG лучше передает высокие и низкие частоты, LAME — средние. Можно отметить действительно достойное качество кодирования для 128 кбит — наличие эффектов зажевывания, металлизации и размазывания не столь критично. Я бы сказал, что кодирование заслуживает твердой четверки. Именно четверки, потому как неизвестно, смогут ли разработчики что-либо улучшить. А вдруг смогут? Не ставить же потом шестерку! Потому — четыре.

Посмотрим на пару АЧХ различий с оригиналом.



Как видим, все зависит от оригинала. Первая диаграмма — для очень плотного, с насыщенным звуком семпла Roxette, вторая — семпл Clayderman. Кодер OGG, пытаясь передать высокие (за пределами 16 кГц) частоты, фактически экономит на частотах от 2 до 15 кГц, которые я ставил ему в плюс при рассмотрении высоких битрейтов. Однако звучат семплы OGG ощутимо приятнее, хотя и чувствуется некоторый провал по средним частотам. Но не стоит придавать этому провалу большого значения, т.к. для 128 кбит это не может быть серьезным критерием оценки применимости кодера.

Итак, я называю лидера. Им становится новая версия кодировщика OGG. Разработчики, примите мои поздравления!

128 vs 160: кто кого?

Соперничество между 128 и 160 кбит идет, наверное, не меньшее, чем между 256 и 320. Среди пользователей можно найти много сторонников как одного, так и другого режимов. Поэтому проведем перекрестное сравнение качества кодирования для режимов 128 и 160 раздельно для каждого кодера. А поскольку в обоих режимах кодер OGG назван мною лучшим, начнем сравнение именно с него.

Да уж… звучание отличается, и отличается сильно. На этот раз даже звучание низких частот заметно другое: они становятся размытыми, теряется четкость ударов и разборчивость басовых линий. Высокие частоты кажутся более "металлическими" и в то же время размытыми. Большой разницы в звучании на средних частотах я не заметил, видимо, разработчики пошли по верному и опробованному пути экономии на высоких и низких частотах в пользу среднего частотного диапазона. В целом звучание 160 заметно более сочное и живое, поэтому, если есть возможность не экономить, лучше кодировать в 160 кбит — для Сети это будет еще приемлемым размером. Сравнение спектра дельта-сигналов только подтверждает мои слуховые впечатления.

Для OGG разница получается ощутимая — порядка 4 дБ. В целом спектр отличается только уровнем сигнала, кроме небольшого смещения в районе 2 кГц, которое и говорит об одинаковом качестве передачи средних частот.

Теперь обратим внимание на старый добрый LAME. Напомню, что относительно качественно кодировать в 128 кбит LAME стал не так давно (несколько последних версий), поэтому сравнение должно быть познавательным. Качество на семплах с большим количеством высоких частот отличается колоссально. Если при 160 передача была еще относительно нормальной, то на 128 звучание стало отрывистым, жестким, металлическим, да к тому же еще и сильно искаженным эффектом "зажевывания" или фазовыми искажениями. На семплах с менее ярко выраженными высокими частотами такого резкого отличия не наблюдается, однако их звучание редко бывает удовлетворительным. Это минус, зато есть и большой плюс. Звучание низких и средних частот в двух режимах практически не отличается! Даже видимое по сонограмме отличие в средних частотах на звучании не сказывается.

Общее отличие по уровню дельта-сигналов для LAME значительно ниже OGG, наибольшая разница не превышает 2 дБ, в то время как для OGG наблюдаются различия в 4-5 дБ. Потому и на слух семплы LAME имеют меньшие различия.

Таким образом, выбирая между 128 и 160, вам стоит задуматься вот о чем. У LAME в основном страдает качество передачи высоких частот, у OGG затрагиваются также низкие частоты. Если говорить об общем уровне качества, я бы посоветовал придерживаться 160 кбит везде, где это возможно, а к 128 прибегать только в самых крайних случаях, т.к. разница в размере невелика, а в качестве звучания огромна.

Заключение

В заключение своего довольно длинного повествования я хотел бы выделить несколько ключевых тезисов.

  1. Новые версии обоих кодеров справляются со своими задачами лучше предыдущих.
  2. Качество кодирования в режиме ABR для LAME не бывает хуже обычного, а чаще всего заметно его превосходит при любых битрейтах.
  3. При кодировании в режиме получения максимального приближения к оригиналу (320/350 кбит) оба кодера получают оценку "отлично".
  4. В режиме ABR 256 кбит LAME лучше передает высокие частоты, а OGG средние. Автор склонен рекомендовать OGG, однако данный кодер не имеет достаточно весомого преимущества, если речь пойдет о совместимости.
  5. Кодирование в режиме 256 кбит для OGG и ABR 256 кбит для LAME в значительной степени соответствует понятию качественного звучания и является достойным выбором, если не ставится задача максимального приближения к оригиналу.
  6. В режиме ABR 192 кбит LAME превосходит OGG по общевзвешенной оценке.
  7. При кодировании в 160 и 128 кбит OGG является бесспорным лидером.
  8. Качество кодирования в 160 кбит заметно превосходит качество 128, поэтому автор рекомендует придерживаться режима 160 везде, где это допустимо.

Рекомендуемые автором версии LAME и OGG, а также ряд дополнительного полезного софта можно найти на сайте OrlSoft в разделе download — orlsoft.djbobo.ru/download.asp

 

Дополнительно

Очная ставка: OGG vs LAME

Очная ставка: OGG vs LAME

 

Предисловие

Наверное, никого уже не удивишь звуковыми возможностями современных компьютеров. Ведение фонотеки на компьютере наряду с аудиокассетами и компакт-дисками стало для многих привычным делом. Сегодня даже школьники знают магический пароль, объединяющий многих людей, так или иначе связанных с компьютерами. Этот пароль состоит всего из трех символов: "M" "P" "3". Задумайтесь, сколько воспоминаний уже связано у вас с ними.

Многим известно, что представляют собой аудио компакт-диски с точки зрения простоты и лёгкости обращения. "Почему?" — спросите вы. Да потому что компакт-диск, как говорится, "и в Африке" компакт-диск. Если не принимать во внимание некоторые особенности считывания, он всегда и везде такой, каким его создали, то есть одинаковый. У него один и тот же жестко определенный формат, а качество звучания в основном зависит от звукозаписывающей студии и обычно на высоте. Удобно? Не спорю!

А что же с музыкой на компьютере? Формат записи PCM (импульсно-кодовая модуляция), принятый на CD-DA дисках, недостаточно компактен, чтобы его можно было использовать для хранения музыки на своем компьютере, и уж совершенно непригоден для обмена музыкой через Сеть. Поэтому разрабатываются и постоянно совершенствуются математически чрезвычайно сложные алгоритмы сжатия аудиоданных и форматы их хранения. Эти алгоритмы порой сильно отличаются по качеству звучания друг от друга. Перед многочисленными пользователями стоит постоянная проблема выбора: какой программой, по какому алгоритму и с какими параметрами кодировать свою любимую музыку?

Несмотря на то, что создано множество различных алгоритмов и форматов, абсолютным лидером на сегодняшний день является только один из них. Это формат сжатия MPEG 1.0 Audio Layer III, называемый в народе просто "MP3". Существует много программ-кодировщиков, позволяющих записывать музыку в этот формат. Каждая из таких программ обладает своими плюсами и минусами, в Сети можно найти большое количество тестирований и сравнений различных кодировщиков формата МР3. Общепризнанным лидером на сегодня считается LAME, бесплатный открытый проект, свободный от лицензионных ограничений.

Мы уже привыкли считать, что MP3 — это лучшее, MP3 — это на века. Однако прошло не так много времени с того момента, как у преобладающего формата сжатия аудио и кодировщика появился серьезный конкурент — совершенно новый формат и алгоритм Ogg Vorbis. Уже после выхода в конце лета 2000 года версии бета 3 этого кодировщика общественность стала к нему серьезно присматриваться, и выбрать "лучшее" стало очень сложно. И вот в начале 2001 года вышли сразу две новые версии: LAME 3.88 и Ogg Vorbis 1.0 Beta 4. Обе версии значительно отличаются от предыдущих, поэтому назрела необходимость сравнить их между собой, провести, так сказать, "очную ставку" двух форматов. Что и было проделано. Результат перед вами. Данная статья является логическим продолжением опубликованной на iXBT в декабре 2000 года моей статьи "Аудио компрессия для меломанов".

Ключ на старт

Для начала несколько слов о самом процессе исследования. Тестирование, сравнение и анализ проводились в пяти условных (по авторской классификации) зонах качества:

  • "супер" (самый высокий битрейт, 320/350 кбит, главная цель кодирования — достижение максимально возможного качества);
  • "хорошо" (высокий битрейт, 256 кбит);
  • "неплохо" (средний битрейт, 192 кбит);
  • "так себе" (средний битрейт, 160 кбит);
  • "и так сойдет" (всеми любимый и совершенно оправданный для обмена музыкой через Сеть битрейт 128 кбит).

В качестве кодировщика и декодировщика использовалась написанная автором статьи программа OrlSoft MPeg eXtension версии 2.0, уже достаточно известная и полюбившаяся пользователям в нашей стране и за ее пределами. При анализе результатов применялись программы: CoolEdit Pro 1.2, Steinberg WaveLab 3.02, SpectraLab 4.32.13.

Помимо уже применявшихся в исследованиях в моей предыдущей статье семплов Roxette "Crush On You" и Richard Clayderman "Mano a Mano" использовался целый ряд семплов из других композиций различных музыкальных стилей и направлений: DJ BOBO "What A Feeling", Bluemchen "Ist Deine Liebe Echt" и "Sehnsucht@herz.de", Chicane "Autumn Tactics" и прочие. При построении выводов и иллюстраций будут приводиться наиболее характерные результаты для каждой зоны.

Условия сравнения.

К сожалению, невозможно совершенно равнозначно сравнивать LAME и OGG по одинаковому битрейту, так как он, как правило, не получается таковым. Дело в том, что формат и кодировщик Ogg Vorbis не подразумевают использование режима кодирования с постоянным битрейтом (как в MP3), для него любой из шести предустановленных режимов (112, 128, 160, 192, 256, 350) является кодированием с плавающим потоком, так называемым VBR режимом — variate bitrate, хотя скорее всего его правильнее назвать ABR — average bitrate. Более того, кроме указания желаемой скорости (иначе говоря — ширины) потока, кодер OGG больше не позволяет никаких манипуляций со своими параметрами, в то время как LAME дает возможность управлять практически всем. Поэтому для большей объективности при проведении тестирования мы не будем вмешиваться в параметры психоакустической модели, фильтров и других параметров кодирования LAME и, таким образом, будем сравнивать оба кодера в рекомендуемых разработчиками режимах кодирования. Единственное отступление от этого правила будет сделано для lowpass фильтра (в сигнале оставляют только частоты ниже некоторого заданного уровня) для указания LAME, какие частоты мы хотим оставить в сигнале, чтобы избежать чрезмерного их срезания.

Не так давно в LAME появился режим заказного (среднего) битрейта (average bitrate — ABR), реализованный ранее в кодере OGG. По утверждению разработчиков, при одинаковом битрейте кодирование в ABR режиме должно быть не хуже, чем в обычном. Поэтому при исследовании качества LAME будем использовать два набора кодированных семплов: с постоянным и переменным битрейтами.

Ограничения форматов.

В силу спецификации формата MP3 невозможно кодировать в этот формат нон-стоп альбомы так, чтобы они могли потом воспроизводиться без пауз, поскольку файлы этого формата всегда оказываются длиннее оригиналов и имеют дополнительные отсчеты тишины в начале и в конце треков. Декодер LAME умеет исправлять начало файлов, поэтому после декодирования начало файлов всегда совпадает с оригиналом, но концовка все равно неправильная. В формате Ogg Vorbis данная проблема отсутствует: файлы совпадают с оригиналами с точностью до одного отсчета. Однако у данного кодера имеется другое серьезное ограничение: он умеет кодировать файлы только с частотой дискретизации 44100 Гц, т.е. формата аудио компакт-дисков (CD-DA). Кодировать файлы с частотой дискретизации 48000 Гц OGG на данный момент не может.

Принятая терминология.

Семпл — звуковой файл, некоторый отрывок музыкальной композиции.

Оригинал, оригинальный семпл, исходный семпл — отрывок формата WAV, взятый с аудио компакт-диска.

Кодированный семпл — семпл, закодированный (сжатый) в один из рассматриваемых форматов. В данном случае это MP3 (LAME) или OGG.

Раскодированный семпл — кодированный семпл, преобразованный обратно из сжатого формата в обычный WAV для проведения исследований.

Кодер, кодировщик — программа, производящая сжатие (кодирование) семпла из одного формата в другой, здесь — из WAV в MP3 или OGG.

АЧХ — амплитудно-частотная характеристика звука, представление звука графиком частота-амплитуда.

Сонарм, сонограмма — частотно-временное представление звука графиком время-частота.

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

"Супер"

Начнем мы, разумеется, с самой лакомой для меломанов зоны высших битрейтов. При этом, главная цель кодирования заключается в достижении максимально возможного качества звучания, поэтому для тестирования возьмем максимальные параметры для обоих кодеров. Для LAME берем чистый режим 320 кбит с полным звуковым диапазоном вплоть до 22 кГц и максимальным качеством (-q0), остальные параметры позволим устанавливать самому кодеру. Для OGG также возьмем режим максимального качества — 350 кбит. К сожалению, как я уже говорил, управление какими-либо другими параметрами кодирования невозможно, поэтому придется полагаться на собственные настройки кодера. Таким образом, кодеры работают практически на пределе своих возможностей по передаче звучания оригиналов. Сжимаем, декодируем, смотрим…

И что же получается? Очень интересные факты. Я со всей ответственностью могу подтвердить заверения разработчиков обоих форматов о том, что их психоакустические модели претерпели значительные изменения, которые легко заметны при анализе раскодированных семплов. В корне изменилась обработка высоких частот. Если раньше в режиме 320 кбит LAME оставлял практически полный диапазон вплоть до 22 кГц, то сейчас эти частоты также проходят через психоакустическую модель. Данный факт прекрасно иллюстрируется сонармом (частотно-временное представление звука). Сравните оригинал и раскодированный семпл:

         

Шокирующие иллюстрации, не правда ли? Но это еще что, вот полюбуйтесь, что получается у OGG на 350 кбит — срезание частот даже на уровне 16 кГц.

В закодированном сигнале встречаются даже такие вот участки АЧХ (вертикальной линией отмечена частота 16 кГц).

Согласитесь, довольно странное обращение с высокими частотами для режима максимального качества кодирования. В более ранних версиях обоих кодеров такого вольного обращения я не встречал. Интересно, как звучат эти семплы по сравнению с оригинальными записями… Начинаем прослушивание.

Вот это да! Вот это обработка звучания! Звук стал настолько близок к оригиналу, что отличить вслепую три записи стало чрезвычайно сложно. При максимальных параметрах оба кодера передают практически идентично звучание оригинального компакт-диска. Единственное, что после многократного перекрестного прослушивания мне удалось отметить, это большую прозрачность звучания и лучшую передачу верхних средних частот у кодера OGG. Но, повторю, эта разница настолько ничтожна, что ощутимо слышна она будет только на очень качественной и дорогой аппаратуре. Таким образом, за передачу максимально возможного качества звучания оба кодера получили твердую "пятерку" с одним только отличием, что у OGG средняя скорость потока ощутимо больше 320 кбит (обычно она варьируется в пределах от 340 до 380). Разработчики разумно решили поступиться передачей частот выше 19 кГц, отдав предпочтение более важному частотному диапазону. Усредненные АЧХ кодированных и оригинальных семплов мало отличаются друг от друга, несмотря на очень вольное управление высокими частотами обоих кодеров.

Давайте проведем исследование дельта-сигналов, то есть вычислим и сравним отличия между оригинальными и кодированными семплами.

Разностный сигнал семплов LAME на слух воспринимается как негромкий широкополосный шум, сквозь который слабо пробивается основной звук с хриплым постукиванием и сильно искаженными высокими частотами. Для семплов OGG картина оказывается намного более сложной: звучание напоминает уже не просто шум, а сильно искаженный оригинал с эффектом фазовых искажений (эффект flanger или phaser). Если судить по звучанию, можно сделать вывод, что у OGG обработка разных диапазонов частот отличается значительно большей продуманностью по сравнению с LAME, у которого, похоже, для большинства поддиапазонов применяются очень близкие параметры психоакустической модели. Это видно при анализе АЧХ дельта-сигналов (красный график для LAME, белый — для OGG). Смысл приведенных графиков заключается в том, что чем ниже уровень сигнала, тем выше качество передаваемого звучания на соответствующих частотах.

Таким образом, разработчики OGG пошли по пути иного распределения приоритетов относительно применяемого в MP3 кодирования. Они решили упростить кодирование низких и средних частот ниже 2 кГц, зато улучшить передачу верхней середины и высоких частот до 16 кГц, т.е. основного слышимого диапазона. На приведенном графике хорошо видно, что в диапазоне до 2 кГц лучше передает звучание LAME, в то время как в диапазоне от 2 до 16 кГц — OGG. Отсюда и подмеченное мною лучшее качество звучания средних частот на семплах, закодированных кодером OGG.

Как уже говорилось, кодер OGG не позволяет управлять параметрами кодирования, что заставляет нас довериться выбору разработчиков формата. В то же время LAME дает огромные возможности по управлению процессом кодирования, параметрами психоакустики и фильтров, и, если при кодировании в 320 кбит насильно срезать частоты выше 20 кГц, которые по теории никто не может услышать, можно добиться лучшего качества звучания. Нагляднее всего это можно продемонстрировать на сравнительном графике усредненных АЧХ дельта-сигналов полного и обрезанного до 20 кГц при кодировании семплов.

Разница в уровне дельта-сигнала составляет до 2 дБ, и это весьма ощутимая разница — порядка 15%. То есть, образно говоря, решив не кодировать частоты выше 20 кГц, мы получили улучшение передачи всего остального диапазона на 1-2 дБ. Я рекомендую придерживаться этого правила, если вы хотите получать более качественное звучание. Отмечу также, что разницу в звучании между семплами, обрезанными на 20 кГц, и семплами OGG обнаружить уже не просто сложно, а практически невозможно, разумеется, если кто-то из читателей не обладает абсолютно уникальным слухом.

Таким образом, в зоне высочайшего качества OGG и LAME практически не отличаются друг от друга, поэтому при выборе кодера меломаны могут руководствоваться только личными симпатиями.

"Хорошо"

Сверхвысокий битрейт дает великолепное качество звучания, однако не он является преобладающим среди высоких битрейтов, т.к. объем файла при потоке 2,5 Мб в минуту многие пользователи считают чрезмерно большим. Как правило, они предпочитают использовать в своих личных фонотеках файлы с битрейтом 256 кбит, считая это разумным компромиссом между хорошим качеством и размером файлов. Поэтому будем подходить к тестированию именно с такой точки зрения, т.е. сравним качество обоих кодеров и оценим потери относительно большего битрейта. Как и для режима 320 кбит, в данном случае считаю оправданным подавление высоких частот до 20 кГц для улучшения передачи основного слышимого частотного диапазона. Тестирование LAME проведем в двух режимах: с постоянной скоростью потока и с переменной.

Для начала посмотрим на частотную динамику получившихся семплов (изменение АЧХ во времени с усреднением по небольшим интервалам — от 20 до 100 миллисекунд). Тенденция к потере высоких частот подтверждается. Как и в предыдущем тесте, OGG срезает высокие частоты (выше 18 кГц) значительно больше, чем LAME. Взгляните сами:

         

         

Однако, несмотря на это, кодер OGG значительно лучше передает частоты в диапазоне от 15 до 18 кГц, в то время как LAME начинает их срезание в паузах между большими всплесками амплитуды сигнала и на более низких частотах. Но даже на этой диаграмме хорошо видно, что частотная передача у LAME в режиме ABR значительно превосходит стандартный режим постоянного битрейта, что позволяет подтвердить описанное выше высказывание разработчиков и сделать вывод о более высоком качестве кодирования в режиме ABR. Теперь давайте послушаем, что же у нас получилось.

Разработчики LAME серьезно изменили кодер: той разницы в звучании высоких частот, что раньше была заметна сразу, больше нет. Звучание семплов, закодированных в ABR, действительно лучше стандартного, поэтому рекомендую отказаться от использования постоянного битрейта в пользу ABR. Как бы это ни казалось вам странным, но срезание кодером OGG частот выше 18 кГц сильно не сказывается на общем звучании семплов, разница c LAME также оказалась минимальной. Понимаю, в это будет сложно поверить, но кроме небольшого "металлизирования" высоких частот и слабенького провала глубины звучания я ничего не смог обнаружить. То, что я услышал, не было похоже на то, как раньше звучали LAME и OGG! Поэтому тем, кто предпочитает 256 кбит, рекомендую и впредь им пользоваться, только нужно обязательно перейти на новую версию LAME.

А что же нам скажут дельта-сигналы? На слух их звучание подобно полученному при рассмотрении режима 320 кбит. Для семплов OGG можно отметить появление в сигнале хрипящих звуков в диапазоне высоких частот, а для семплов LAME — только общее увеличение уровня шума, какого-либо серьезного изменения в частотах не замечено.

Думаю, достаточно наглядная демонстрация. Вот вам и объяснение, почему при почти одинаковом битрейте OGG сильно срезает частоты выше 18 кГц. Это делается для того, чтобы лучше передать все остальные. Вы только посмотрите! Практически на всем звуковом диапазоне семплы OGG значительно ближе к оригиналу, чем семплы LAME. Поэтому, если вы готовы пожертвовать тем, что лежит за пределами 18 кГц, ради лучшего качества, вам стоит подумать о переходе на OGG. Однако столь ощутимая разница в звучании проявляется не на всех семплах. Возьмем, например, старого знакомого — семпл Richard Clayderman, на котором все огрехи передачи высоких частот слышны сразу.

В данном случае LAME показал немного лучший результат, но, тем не менее, высокое качество передачи частот выше 2 кГц кодером OGG очевидно. В то же время в очередной раз продемонстрировано значительно лучшее качество при ABR кодировании LAME, разница составляет от 1 до 2 дБ.

Попробую пояснить обнаруженное несоответствие между двумя приведенными сравнениями. Первый проиллюстрированный семпл представляет собой очень громкий и плотный звук, нормализованный почти под 0 дБ. В то время как второй семпл — это оркестровая композиция, записанная со средним уровнем порядка -3 дБ, то есть без какого-либо уплотнения динамического диапазона. Проверив ряд других семплов, можно сделать вывод о том, что чем плотнее запись, тем выше качество при кодировании OGG в сравнении с LAME. Однако не стоит забывать об эффекте "металлизирования" высоких частот у LAME и срезании частот выше 18 кГц у OGG. Для полноты картины приведу сравнение АЧХ дельта-сигналов для семпла средней плотности.

Как мы видим, картина сильно не изменилась, закономерности остались теми же.

Таким образом, при выборе кодера для работы в режиме 256 кбит вам предстоит определить, что для вас важнее: средние частоты или частоты выше 17-18 кГц? Ответив на этот вопрос, вы сразу же ответите на вопрос о предпочтительном кодировщике. Отмечу только еще раз, что в режиме ABR качество кодирования у LAME намного лучше, чем при использовании постоянного битрейта. Это бесспорный факт. А если вам интересно мое собственное мнение, то я бы назвал лидером кодер OGG.

256 vs 320/350: кто кого?

После того, как мы определились с лидером зоны "хорошо", самое время сравнить качество кодирования двух рассмотренных зон вместе.

Слуховые испытания семплов LAME только подтверждают мои выводы об очень высоком качестве кодирования в ABR режиме 256 кбит. Разница между семплами 256 ABR и 320, конечно же, ощутима на слух: звук становится немного более резким, появляется излишняя четкость, но эту разницу нельзя назвать критической. Поэтому, если для вас является критерием не максимальное приближение к оригиналу, а просто достаточно высокое качество, то режим 256 ABR — для вас. А вот с семплами OGG ситуация оказалась с точностью до наоборот: звук немного размывается, но это размывание опять же нельзя назвать критическим. Указанные различия в кодированных семплах проявляются, только если специально проводить перекрестное прослушивание на большой громкости и очень хорошей аппаратуре. Поэтому не стоит заострять на них особое внимание.

А вот как эти различия выглядят графически.

Если судить по графикам (а это уже знакомые вам усредненные АЧХ дельта-сигналов для семплов 256 и 320/350 кбит обоих кодеров), то наибольшие различия между двумя режимами обнаруживаются у кодера OGG, причем проявляются они как раз на тех частотах, где звучание OGG лучше. Здесь, по всей видимости, сказывается разница в битрейте, поскольку сравнивается не 320, а целых 350 кбит против 256.

Подводя итоги, можно сказать следующее. Кодирование в режиме 256 кбит у обоих кодеров стало настолько качественным, что, если для вас не является жизненно необходимым достижение максимального приближения к оригиналу, смело используйте режим 256 кбит и не беспокойтесь о качестве, оно выше всяких похвал. Лично я для многих не особо ценных записей стал использовать LAME 256 ABR или OGG 256 в зависимости от того, для чего кодируется музыка, а также учитывая, что нон-стоп записи можно кодировать только в OGG, т.к. он кодирует и декодирует файлы с точностью до отсчета, не добавляя лишней тишины, как это делают все MP3 кодировщики.

"Неплохо"

Режим 192 кбит является своего рода половинчатым решением, поскольку еще не дает достойного качества, но в то же время имеет не такой уж и маленький объем (1,5 Мб — 1 минута). Давайте посмотрим, что изменилось в зоне "неплохого" качества с приходом новых версий исследуемых кодеров. А вдруг они теперь уже на 192 кбит передают великолепное качество звучания? Этот вопрос нам предстоит выяснить в ходе тестирования.

Ситуация с высокими частотами изменилась кардинально: их передача лучше получается у OGG — LAME начал их срезать. Качество ABR кодирования по-прежнему лучше обычного, однако все равно хуже OGG.

         

         

Даже по столь спорной диаграмме, как сонарм, прекрасно видно, что в режиме 192 кбит качество передачи высоких частот у OGG выше, хотя и не намного. Оба кодера значительно срезают частоты выше 16 кГц, но OGG оставляет их больше, чем LAME. Давайте послушаем наши семплы, априори ожидая интересные результаты.

Общее качество звучания оказалось, конечно же, хуже 256 кбит, поскольку присутствует значительное металлизирование и размазывание высоких частот, а также небольшая потеря глубины у обоих кодеров. Однако на этот раз их звучание стало сильно отличаться друг от друга, в основном на высоких частотах. То, как LAME передает высокие частоты, полностью соответствует понятию "неплохо", тогда как семплы OGG вполне могут претендовать на оценку "хорошо" в большинстве случаев. Как и в предыдущих тестированиях, наиболее ярко это различие проявилось при воспроизведении семпла Richard Clayderman, на особо качественно записанных живых "тарелках". OGG частично сохраняет особый колорит звучания исследуемых семплов, хотя сильно их размазывает, тогда как LAME сводит все к обычному металлическому "циканью". Бесспорный минус для LAME. Однако его прошлые версии делали звучание таким даже на 256, а порой и на 320 кбит. Поэтому не будем сильно сгущать краски. Вопрос, правда, спорный, что лучше — размазывание или металлизирование. В то же время у OGG обнаруживается некоторое "проваливание" средних частот, которого не наблюдалось на более высоких битрейтах. Тем не менее в целом звучание для 192 кбит достаточно неплохое, хотя и не может претендовать на действительно качественное.

Давайте поглядим на разностные сигналы кодированных семплов, на которых обнаружилась наибольшая разница в звучании. На семплах LAME помимо увеличения общего уровня шумов появились отчетливо слышимые искажения в диапазоне высоких частот. На семплах OGG сквозь шум и сильные искажения высоких частот стало хорошо слышно чрезвычайно искаженное звучание оригинала в диапазоне средних частот. На семплах LAME такого высокого уровня средних частот отмечено не было. Таким образом, с понижением битрейта уровень разностных сигналов, шумов и искажений растет. Чем ниже битрейт, тем больше разница между закодированными семплами и оригинальными записями.



Определить, какой из кодеров ближе к оригиналу, стало очень сложно. На слух они, конечно, отличаются, но по графикам невозможно сделать вывод о предпочтительности того или иного кодера. Или вот еще диаграммы для семплов Roxette, очень плотных и громких.

У вас, должно быть, возник вполне логичный вопрос: зачем я привел сразу три одинаковых графика? Если возник, значит, я не зря пишу эту статью. Ведь кроме того, что я выскажу свое мнение по исследуемому вопросу, вы должны сделать выбор сами. Именно для того, чтобы вам было легче понять мои выводы и сделать свои, я и привожу множество графиков и диаграмм.

Обобщив результаты сравнения приведенных графиков, прослушивания, просмотра АЧХ в динамике, а также исследования дельта-сигналов и сонарма — т.е. на основании всех полученных данных я бы сделал следующие выводы.

Кодеры звучат отлично друг от друга. LAME передает общее звучание неплохо, но металлизирует высокие частоты. OGG, наоборот, их размазывает и проигрывает LAME в передаче средних частот. Поэтому я считаю, что LAME при ABR кодировании все же лучше OGG справляется с задачей качественного кодирования музыки в 192 кбит. А вот при кодировании с постоянным битрейтом — проигрывает ему по полной программе, во всех тестах. Надеюсь, вы уже поняли, что режим среднего битрейта ABR всегда дает лучшее качество.

Таким образом, LAME в режиме ABR лидирует при кодировании в 192 кбит.

"Так себе"

Вот мы и подошли к двум, наверное, самым популярным на сегодня битрейтам — 160 и 128 кбит. Чем плох 128 и хорош 160? Тем, что 128 кбит, как бы странно это ни звучало для многих, недостаточно для передачи сколько-нибудь качественного звучания, т.к. на кодирование высоких частот не хватает ширины потока. А вот 160 кбит для приемлемой передачи частот 16-17 кГц уже вполне достаточно. Как же справляются с этой задачей новые версии кодеров? Давайте посмотрим.

         

         

В целом, конечно, неплохо для 160 кбит. OGG снова лидирует по передаче высоких частот. По всей видимости, разработчики кодера нашли способ оставлять высокие частоты не в ущерб остальным. А может, это не так? Проверим. Сонограммы LAME на этот раз практически не различаются, разве что у ABR немного лучше. Слушаем.

На всех тестовых семплах звучание OGG выше всяких похвал! Такого звучания на 160 кбит невозможно было и представить. И что только LAME не делает с высокими частотами, несмотря на искусственное подавление их выше 18 кГц. Мало того, что они "металлизируются", так по ним еще и эффект "зажевывания" появляется. Да, это нормальная реакция кодера: поток-то узковат для качественной передачи высоких частот. Зато на средних частотах LAME звучит лучше OGG. Собственно, по-другому и быть не могло: чудес не бывает, сами понимаете. Вот и усредненные АЧХ дельта-сигналов говорят о том же.



За счет менее качественной передачи средних частот кодер OGG лучше воспроизводит высокие и низкие частоты, т.е. как раз те частоты, которые традиционно урезаются при низких скоростях кодирования. Именно это и делает LAME как классический представитель MP3 кодировщиков.

Таким образом, систематизировав всю имеющуюся информацию, я пришел к выводу о том, что бесспорным лидером в кодировании 160 кбит является кодер OGG. Однако LAME в режиме ABR, хотя и отстает от лидера, но не намного. Вполне возможно, что в будущих версиях ситуация изменится.

"И так сойдет", или народный битрейт

Да-да, не смейтесь, именно "народный битрейт". Народным я его назвал потому, что это самый популярный на сегодня битрейт. Именно в нем хранятся основные залежи музыки в Сети, именно в нем предпочитают хранить свои временные музыкальные предпочтения компьютерщики, которым традиционно места жалко, а слушают они музыку на аппаратуре так себе, а порой и просто на компьютерных акустических системах. Зачем для такой акустики высокие битрейты? Вот потому-то я и назвал исследуемый битрейт "народным". Даже у меня, любителя истинно качественного звука, нет-нет да и проскочит "народный" файлик, взятый у друга для прослушивания. Ведь очень многие записи нигде не купишь, а вот в сжатом виде найти можно. Так что внимание битрейту 128 уделяется, наверное, не меньше, чем 256 и 320. Посмотрим, что нам скажут на этот раз наши подопытные. Кодирование LAME производим с подавлением частот выше 16500 Гц, чтобы улучшить качество передачи основного частотного диапазона. Если производить подавление на более высоких отметках, передача высоких частот от этого ощутимо не улучшается, зато общее звучание становится хуже.

         

         

Если не брать в расчет искусственное подавление высоких частот у LAME, то в целом сонограммы семплов обоих кодеров схожи, по крайней мере, явных различий не наблюдается, сонограмма ABR, как и всегда, немного лучше.

При прослушивании наблюдается та же звуковая картина, что и при 160 кбит: семплы OGG звучат ощутимо красивее и качественнее семплов LAME. Общее качество звучания, разумеется, несколько хуже 160, но тенденции сохраняются: OGG лучше передает высокие и низкие частоты, LAME — средние. Можно отметить действительно достойное качество кодирования для 128 кбит — наличие эффектов зажевывания, металлизации и размазывания не столь критично. Я бы сказал, что кодирование заслуживает твердой четверки. Именно четверки, потому как неизвестно, смогут ли разработчики что-либо улучшить. А вдруг смогут? Не ставить же потом шестерку! Потому — четыре.

Посмотрим на пару АЧХ различий с оригиналом.



Как видим, все зависит от оригинала. Первая диаграмма — для очень плотного, с насыщенным звуком семпла Roxette, вторая — семпл Clayderman. Кодер OGG, пытаясь передать высокие (за пределами 16 кГц) частоты, фактически экономит на частотах от 2 до 15 кГц, которые я ставил ему в плюс при рассмотрении высоких битрейтов. Однако звучат семплы OGG ощутимо приятнее, хотя и чувствуется некоторый провал по средним частотам. Но не стоит придавать этому провалу большого значения, т.к. для 128 кбит это не может быть серьезным критерием оценки применимости кодера.

Итак, я называю лидера. Им становится новая версия кодировщика OGG. Разработчики, примите мои поздравления!

128 vs 160: кто кого?

Соперничество между 128 и 160 кбит идет, наверное, не меньшее, чем между 256 и 320. Среди пользователей можно найти много сторонников как одного, так и другого режимов. Поэтому проведем перекрестное сравнение качества кодирования для режимов 128 и 160 раздельно для каждого кодера. А поскольку в обоих режимах кодер OGG назван мною лучшим, начнем сравнение именно с него.

Да уж… звучание отличается, и отличается сильно. На этот раз даже звучание низких частот заметно другое: они становятся размытыми, теряется четкость ударов и разборчивость басовых линий. Высокие частоты кажутся более "металлическими" и в то же время размытыми. Большой разницы в звучании на средних частотах я не заметил, видимо, разработчики пошли по верному и опробованному пути экономии на высоких и низких частотах в пользу среднего частотного диапазона. В целом звучание 160 заметно более сочное и живое, поэтому, если есть возможность не экономить, лучше кодировать в 160 кбит — для Сети это будет еще приемлемым размером. Сравнение спектра дельта-сигналов только подтверждает мои слуховые впечатления.

Для OGG разница получается ощутимая — порядка 4 дБ. В целом спектр отличается только уровнем сигнала, кроме небольшого смещения в районе 2 кГц, которое и говорит об одинаковом качестве передачи средних частот.

Теперь обратим внимание на старый добрый LAME. Напомню, что относительно качественно кодировать в 128 кбит LAME стал не так давно (несколько последних версий), поэтому сравнение должно быть познавательным. Качество на семплах с большим количеством высоких частот отличается колоссально. Если при 160 передача была еще относительно нормальной, то на 128 звучание стало отрывистым, жестким, металлическим, да к тому же еще и сильно искаженным эффектом "зажевывания" или фазовыми искажениями. На семплах с менее ярко выраженными высокими частотами такого резкого отличия не наблюдается, однако их звучание редко бывает удовлетворительным. Это минус, зато есть и большой плюс. Звучание низких и средних частот в двух режимах практически не отличается! Даже видимое по сонограмме отличие в средних частотах на звучании не сказывается.

Общее отличие по уровню дельта-сигналов для LAME значительно ниже OGG, наибольшая разница не превышает 2 дБ, в то время как для OGG наблюдаются различия в 4-5 дБ. Потому и на слух семплы LAME имеют меньшие различия.

Таким образом, выбирая между 128 и 160, вам стоит задуматься вот о чем. У LAME в основном страдает качество передачи высоких частот, у OGG затрагиваются также низкие частоты. Если говорить об общем уровне качества, я бы посоветовал придерживаться 160 кбит везде, где это возможно, а к 128 прибегать только в самых крайних случаях, т.к. разница в размере невелика, а в качестве звучания огромна.

Заключение

В заключение своего довольно длинного повествования я хотел бы выделить несколько ключевых тезисов.

  1. Новые версии обоих кодеров справляются со своими задачами лучше предыдущих.
  2. Качество кодирования в режиме ABR для LAME не бывает хуже обычного, а чаще всего заметно его превосходит при любых битрейтах.
  3. При кодировании в режиме получения максимального приближения к оригиналу (320/350 кбит) оба кодера получают оценку "отлично".
  4. В режиме ABR 256 кбит LAME лучше передает высокие частоты, а OGG средние. Автор склонен рекомендовать OGG, однако данный кодер не имеет достаточно весомого преимущества, если речь пойдет о совместимости.
  5. Кодирование в режиме 256 кбит для OGG и ABR 256 кбит для LAME в значительной степени соответствует понятию качественного звучания и является достойным выбором, если не ставится задача максимального приближения к оригиналу.
  6. В режиме ABR 192 кбит LAME превосходит OGG по общевзвешенной оценке.
  7. При кодировании в 160 и 128 кбит OGG является бесспорным лидером.
  8. Качество кодирования в 160 кбит заметно превосходит качество 128, поэтому автор рекомендует придерживаться режима 160 везде, где это допустимо.

Рекомендуемые автором версии LAME и OGG, а также ряд дополнительного полезного софта можно найти на сайте OrlSoft в разделе download — orlsoft.djbobo.ru/download.asp