Идеей этого теста было сравнение моего личного восприятия качества кодирования кодеров с оценкой, присваиваемой в каждом отдельном случае программой PQevalAudio, работающей по алгоритму PEAQ Basic. Однако, кроме этого также весьма интересно будет оценить, и сравнить, качество современных кодеров.
Выбор битрейта
Сегодня, в случае с современными кодерами, порог прозрачности в среднем находится где-то в районе 80 кбит/с. Так, например, последний тест AAC на 96 кбит/с оказался весьма сложным — во многих случаях найти отличия для лидирующих по качеству кодеков (ими стали FhG AAC и QuickTime AAC) не удавалось.
С учетом того, что в своём тесте я решил использовать наиболее совершенные кодеры каждого формата, я выбрал битрейт несколько ниже — 64 кбит/с. То, что искажения будут находиться в зоне слышимости, позволит эффективно оценить различия качества кодирования разными кодеками.
Выбор семплов
Также идеей теста было протестировать кодеки на исключительно живой музыке. Мною было решено остановиться на классических произведениях, причем по возможности включить музыкальный материал с различными инструментами и голосом. Выбраны следующие композиции:
1. Людвиг ван Бетховен, Симфония № 5 до минор (британский оркестр The Hanover Band, дирижер Моника Хаггет, 1983 г.) — фрагмент первой части.
2. Феликс Мендельсон-Бартольди, Концерт для скрипки с оркестром ми минор, соч. 64 (New Philharmonic Orchestra, дирижер Milan Pohronec, солист Dalibor Brazda) — фрагмент первой части.
3. Вольфганг Амадей Моцарт, Эдвард Григ — Фортепианная соната № 16 (Елизавета Леонская и Святослав Рихтер) — фрагмент первой части.
4. Вольфганг Амадей Моцарт, Концерт для фортепиано с оркестром № 20 (Клара Хаскил, Оркестр Ламурё под управлением Игоря Маркевича, 1960 г.) — фрагмент третьей части.
5. Вольфганг Амадей Моцарт, «Свадьба Фигаро», KV 492 (Werner van Mechelen, Huub Claessens, Monika Groop, Christiane Oelze a.o.; La Petite Bande, Sigiswald Kuijken. 1998 г.) — первый речитатив Фигаро и Сюзанны.
6. Модест Мусоргский, «Картинки с выставки» (Валерий Афанасьев, 1995 г) — фрагмент из части 7 «Скот».
7. Сергей Рахманинов, Концерт для фортепиано с оркестром № 2 до минор, op. 18 (Нью-Йоркский филармонический оркестр, дирижер — Леонард Бернстайн, солист — Филипп Антремон, 2003 г.) — фрагмент первой части.
8. Джоаккино Антонио Россини, опера «Севильский Цирюльник» (Агнес Бальтса, Франциско Арайза, Томас Аллен, Роберт Ллойд, Доменико Тримарчи, Салли Бургесс, Мэтью Бест, Джон Ноубл, Амброзианский оперный хор под управлением Джона Маккарти, оркестр «Академия Святого Мартина в полях» под управлением Сэра Невилля Марринера / 1982 г.) — фрагмент арии Фигаро.
9. Петр Ильич Чайковский, «Лебединое озеро», (Бостонский Симфонический Оркестр, дирижер Сэйдзи Одзава / 1979 г.) — фрагмент музыки из первой сцены первого акта.
10. Антонио Вивальди, концерт «Лето» (Бостонский симфонический оркестр под управлением Сэйдзи Одзава, скрипка соло — Джозеф Силверстайн / 1982 г.) — фрагмент третьей части.
Все семплы можно скачать одним архивом.
Кодеры и параметры
В тесте участвуют пять кодеров с параметрами, указанными ниже. Для достижения целевого битрейта использовались рекомендации разработчиков, дополнительные исследования среднего результирующего битрейта не проводились.
LAME 3.99.5 -V 6
Musepack 1.30 --quality 2.1
QAAC v2.40 (CoreAudioToolbox v7.9.8.5) -V 27
OggEnc 2.87 aoTuVb6.03 LancerMod -b 64
Opus 1.1 --bitrate 64
Надо отметить низкий средний битрейт (и разброс в целом) для кодера Vorbis AoTuV.
Алгоритм тестирования
1. Кодирование семплов.
2. Декодирование с помощью foobar2000 1.3.3 beta 2 в 16 bit PCM
3. Ресемплирование исходных и кодированных-декодированных семплов с помощью SoX Resampler 0.8.3 в формат 16 бит 48 кГц.
4. Создание файлов конфигурации ABC HR Java для каждого семпла (коррекция громкости включена).
5. Прослушивание и оценка семплов в ABC HR Java.
6. Попарный анализ исходных и декодированных семплов с помощью PQevalAudio.
7. Анализ результатов
Результаты слепого теста
Надо сказать, что в некоторых случаях, из-за невысокой сложности семплов, нахождение отличий было непростым, в особенности это касалось лидеров теста. Таким образом, приходилось прибегать к непосредственном ABX тестированию.
Архив файлов конфигурации и результатов ABC/HR.
У кодера Vorbis наблюдаются устойчивые проблемы со стереопанорамой. Для большинства семплов Opus потребовалось ABX сравнение.
На графике очевидно однозначное превосходство Opus, а также проигрыш по качеству кодеров MP3 и MPC. Итоговая оценка качества приведена в следующем разделе.
Тестирование PEAQ. Итоговые оценки
Результаты PEAQ анализа оказались весьма странными. Сравним оценки в графическом виде:
График корреляции:
Как видно, корреляция практически отсутствует. Это касается как различий между оценками кодеров, так и различий оценок семплов, кодированных одним и тем же кодером. PEAQ очень высоко оценивает Opus, но в то же время AAC и Vorbis почему-то проигрывают MPC и MP3, то есть чуть ли не меняются с ними местами.
Таблица средних оценок:
Результирующая оценка + среднеквадратичное отклонение по результатам прослушивания:
Выводы
Итак, технология PEAQ определенно потерпела фиаско. Результаты автоматической оценки кардинально расходятся с результатами прослушивания, и похоже, что причина в значительном несовершенстве алгоритма.
Весьма интересными и показательными стали результаты персонального ABC HR теста. Аутсайдеры теста — MPC и MP3 — по качеству оказались примерно равны. Однако MP3 всё же показал чуть более высокое и стабильное качество. Это говорит о том, что некоторые усовершенствования алгоритма для низкого битрейта всё же имели место (с момента заимствования исходного кода MP3 для разработок MPC).
Кодеки Vorbis и AAC вполне могут между собой посоперничать. Вцелом Vorbis показал лучшее качество и меньший разброс, чем AAC, однако, хотя Vorbis и выигрывает по частотному диапазону и детальности, у него имеются серьезные проблемы с кодированием стереопанорамы. Впрочем, учитывая низкий средний битрейт для Vorbis (56 кбит/с против 71 для AAC), можно сказать, что AAC он всё же превосходит.
Лидерство Opus в области низких битрейтов теперь вне всяких сомнений. При 64 кбит/с для большинства композиций этот кодер способен обеспечить прозрачное звучание. Особенно стоит отметить удивительную способность точно передавать фоновые шумовые сигналы: ведь именно по фоновым шумам и определяется большинство семплов, кодированных другими кодерами.
Информация от спонсора
Загрузите бесплатно лучший набор контролов и компонент для разработчиков .NET — DXperience. В состав входят последние продукты и улучшения для таких платформ, как ASP.NET, Microsoft Silverlight, WPF, WinRT, WinForms. По ссылке Вы всегда найдете последнюю версию.