ОБРАТИТЕ ВНИМАНИЕ: статья предоставлена для ознакомления и носит субъективный характер. Все результаты - лишь личное мнение автора сформировавшееся на основе слепого прослушивания с использованием конкретного оборудования/семплов/кодеров/настроек.
Вступление
Всё началось с того, что я захотел сжать часть музыки из своей довольно увесистой музыкальной библиотеки во что-нибудь покомпактнее, чем FLAC (средний битрейт выходил около 950 кбит/с - это довольно много). Сразу же решил, что битрейт возьму в районе 200 кбит/с, т.к. посчитал, что его должно "с головой" хватить, кроме того, довольно распространено мнение что этот битрейт дает оптимальное соотношение размер/качество.
Но вот беда - слушаю я вовсе не классику, а клубную электронную музыку (Trance, House). И как оказалось, ни одному из популярных кодеков закодировать подобное без слышимых потерь - не под силу!
Конечно, есть треки попроще, наверное их даже большинство, но тем не менее порой встречаются т.н. "киллер семплы", на которых сдают даже AAC и Vorbis. При этом искажения не просто слышимые, но и весьма неприятные.
Ближе к делу
Семплы
И так, в процессе прослушивания я выделил несколько проблемных семплов + добавил к ним еще парочку найденных мною на просторах интернета - дабы получше проверить "надежность" кодеров. Вот эти 7 тестовых семплов в lossless (TAK):
Above & Beyond - On A Good Day (A&B Club Mix) - в принципе, не слишком сложный семпл, использовался мною для общей оценки звучания во время поиска граничного битрейта, при котором я уже не ощущаю отличий от оригинала. На низких битрейтах этим семплом можно проверять стерео панораму и качество кодирования голоса.
beats - на первый взгляд - простенькая последовательность битов и шума, на деле же - "убийца" режима VBR (в частности для AAC кодеров). Семпл предоставлен одним из участников форума RuTracker.org
Marcus Schossow - Kaboom - тоже последовательность битов, но немного иного характера. Подобные всплески звуковой волны на некоторых кодеках дают значительный эффект пре-эхо.
Show Me Your Spine - фрагмент трека скачан на hydrogenaudio.org. Также рассчитан на тестирование пре-эхо.
Tiesto - Athena - изначально использовался мною для MP3. При прослушивании стоит обращать внимание на 13-27 секунды.
Tiesto - Do You Feel Me - а вот этот семпл, как ни странно, оказался фатальным для OGG Vorbis.
TyDi - Meet Me In Kyoto - семпл "рвущий в клочья" любые кодеры МР3 на любых битрейтах и с любыми настройками. Для других кодеров тоже является довольно сложным.
Кодеры
Кодеры я выбрал лучшие из тех что есть на данный момент, параметры были подобраны для получения среднего (для моей библиотеки) битрейта около 200 кбит/с:Nero AAC Encoder 1.5.4.0 | -q 0.55 |
QTAACEnc 20100307 | --tvbr 90 --highest |
OggEnc libvorbis 1.3.1 | -q6 |
Прослушивание
Прослушивание производилось в мониторных наушниках открытого типа Technics RP-8801 на звуковой карте Creative X-Fi XtremeMusic. Хочу отметить, что фактически я просто прослушивал трек закодированный каждым из тестируемых кодеров и на слух оценивал степень искажений. Проводить ABX тест в данном случае - бесполезно, так как семплы сложные и звук в большинстве случаев искажается достаточно чтобы я мог отличить его от оригинала. Т.е., главной задачей является определение степени искажений и того насколько они раздражают во время прослушивания.
Ниже я составил таблицу результатов, где "+" означает что искажения в пределах нормы (не напрягают) или же не слышны вообще, "-" означает четко различимые неприятные искажения.
beats | marcus_schossow-kaboom | above_and_beyond-on_a_good_day | show_me_your_spine | tiesto-athena | tiesto-do_you_feel_me | tydi-meet_me_in_kyoto | |
---|---|---|---|---|---|---|---|
Nero AAC | - | + | + | + | - | + | - |
QT AAC | - | + | + | + | + | + | - |
OGG Vorbis | + | + | + | - | + | - | - |
Как видно из таблицы, ни один из кодеров не справился со всеми семплами. Стоит отметить полный провал QT AAC на семпле beats - что явно говорит о несовершенстве VBR режима у данного кодера. Впрочем, у Nero AAC с этим семплом тоже проблемы, но в меньшей мере.
Семпл Tiesto - Do You Feel Me выявил недостатки кодека OGG Vorbis. Как я писал, слышимые искажения наблюдаются у него вплоть до качества -q9 - а это уже битрейт выше 320 кбит/с.
Для Nero AAC весьма неприятно звучал семпл Tiesto - Athena, другие кодеры справились с ним лучше.
Ну и на последнем семпле TyDi - Meet Me In Kyoto все кодеры звучали одинаково плохо - со значительным пре-эхо.
И так, это означает, что ни одному из протестированных кодеров я не смогу доверить кодирование своей библиотеки. Честно говоря, я был разочарован.
Musepack?
Этот кодек я специально "забыл" во время подбора (впрочем, я его чисто случайно забыл и и во время предварительного тестирования). Он наименее популярен, имеет очень слабую аппаратную поддержку, но это никоим образом не делает его хуже в плане качества.
И так, я взял конечно же последнюю версию кодера со стандартными параметрами:
Musepack SV8 (incl. MPC Encoder v1.30) | --quality 5 |
Средний битрейт для моей музыки при данных настройках вышел около 180 кбит/с.
Прослушивание
Каково же было моё удивление, когда в слепом ABX тесте я не смог отличить ни один семпл закодированный Musepack'ом от оригинала! Все семплы звучали четко, никакого пре-эхо и в помине не было. И это всё при битрейте даже меньшем чем у других кодеров.
В чем же дело?
Разбираясь в причинах этого парадокса, я вспомнил (точнее, мне напомнили) об одной особенности этого кодека. Давайте же рассмотрим его преимущества (источник - Wikipedia):
-
Так как формат не производит второе dct-преобразование, он фактически не страдает артефактами pre-echo, в отличие от таких форматов как MP3, Vorbis, AAC и WMA.
Действительно, этим объясняется отсутствие искажений на большинстве семплов - они как раз и были обусловлены пре-эхом. -
Более эффективные алгоритмы переменного битрейта
Если проследить как изменяется битрейт во время проигрывания треков MPC в том же foobar2000, можно заметить, что для более простых участков кодер выделяет меньший битрейт, а для сложных (например, некоторые участки в наших тестовых семплах) - значительно больший, иногда выше 400 (!) кбит/с. Так же тут стоит упомянуть один интересный факт: кодер МР3 в режиме VBR для тишины выделяет битрейт 32 кбит/с (при частоте дискретизации 44100 Гц), AAC и OGG Vorbis - 2кбит/с, Musepack же кодирует тишину с минимальными затратами - плеер отображает 0 кбит/с (например, минута тишины займет каких-то 514 байт). Всё это говорит о чрезвычайной "экономности" этого кодера.
-
Мощная и гибкая психоакустическая модель.
Тут можно упомянуть например динамический НЧ фильтр на фреймовой базе (в других кодерах устанавливается фиксированная полоса пропускания для каждой предустановки качества).
-
Более продвинутое сжатие, основанное на оптимизированных таблицах Хаффмана.
Возможно для Вас это будет сюрпризом, но тот же LAME MP3 впустую тратит около 20% битрейта - только лишь из-за несовершенного математического сжатия. Если интересно, поищите в интернете программу Sound Slimmer - она сжимает МР3 в специальные архивы до 80 %, это же относится и к AAC.
Конечно же, наряду с преимуществами идут и недостатки - например, весьма посредственное качество на битрейтах ниже ~160 кбит/с, но ведь не просто так кодер создавался для средних и высоких битрейтов.
Эпилог
И так, если Вы решите прилично сэкономить место на жестком диске (хотя, вполне возможно, что Вы уже обзавелись новым жестким диском эдак на 1 ТБ), сжав раза в 4 завалявшуюся на нем музыку, лучший выбор для этого - конечно же MPC. Хотя, тут конечно всё индивидуально, и возможно, Вы сделаете выбор в пользу совместимости - например выберите OGG или активно продвигаемый AAC. В любом случае решать Вам. А я свой выбор уже сделал. Удачи! ;)
Информация от спонсора
Electronic English dot Ru: извините по-английски. Здесь Вы можте узнать, как извиниться по-английски, а также в чем разница между "I'm sorry" и "excuse me".