ОБРАТИТЕ ВНИМАНИЕ: статья предоставлена для ознакомления и носит субъективный характер. Все результаты - лишь личное мнение автора сформировавшееся на основе слепого прослушивания с использованием конкретного оборудования/семплов/кодеров/настроек.
Вступление
Всё началось с того, что я захотел сжать часть музыки из своей довольно увесистой музыкальной библиотеки во что-нибудь покомпактнее, чем 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".