LINUX.ORG.RU
ФорумTalks

[phoronix-style] All Hail Vorbis!


0

2

В общем, ввязался однажды в спор о звучании lossy кодеков. В частности, я категорически был не согласен, что AAC на 96 Kbps звучит на уровне MP3@192.

Так как я не обладаю патологиями мозга, позволяющими отличить «воздушные» частоты от «кристальных», а «булькающие» от «песочащих», то пришлось искать способ программно протестировать звучание этих кодеков на разных битрейтах. Википедия подсказала мне алгоритм PEAQ, который был разработан и стандартизирован для объективной оценки качества звука. Обстоятельства сложились весьма удачно - открытая реализация этого алгоритма лежит на сайте кафедры Телекоммуникаций одного канадского университета.

Я не стал особо заморачиваться и, в свободное время, прогнал этот тест на первом попавшемся lossless файле (U.D.O. - Holy), который кодировал, как в MP3, так и в AAC. Результаты так меня увлекли, что я решил протестировать и Vorbis. Короче, не буду тянуть резину - вот результаты, упорядоченные от лучшего к худшему (программа сравнивает исходный файл с кодированным, выдавая оценку звучания от 0 до -4, где 0 - звучание не отличается, -1 - звучание отличается, но не раздражает, и т.д. по пути к чистой незамутнённой НЕНАВИСТИ):

Vorbis VBR 192: -0.050
AAC VBR LC 192: -0.141
AAC VBR LC 160: -0.249
Vorbis VBR 160: -0.264
MP3 CBR 192:    -0.282
Vorbis VBR 128: -0.502
AAC VBR LC 128: -0.651
MP3 CBR 160:    -0.736
Vorbis VBR 96:  -1.254
MP3 CBR 128:    -1.255
AAC VBR LC 96:  -1.300
MP3 CBR 96:     -2.058

Я бы провёл ещё ряд тестов на разных файлах и настройках кодеков и сравнил бы, помимо качества, размеры полученных файлов, но, [ЖЖ]Вашими молитвами, во время переустановки Шиндовс в день СПО у меня погорела вся проводка в комнате и теперь приходится сидеть в саже и с ноутбука[/ЖЖ].

AAC LC очень даже по качеству. Две проблемы - довольно проприетарный и качество различается у разных кодеров довольно заметно.

devl547 ★★★★★
()

>на первом попавшемся lossless файле (U.D.O. - Holy)

И да, труЪ \w/

devl547 ★★★★★
()
Ответ на: комментарий от petyanamlt

Обязательно сделаю, как только проводку починю. Может быть сегодня вечером.

Nebuchadnezzar ★★★★
() автор топика
Ответ на: комментарий от Sadler

Жаль, что всякие плееры о нём не догадываются.

Многие догадываются, например большинство моделей samsung.

petyanamlt ★★★★
()

А как же WMA? Оно кстати поддерживается гораздо большим количеством устройств, чем няшка Vorbis.

Valeg ★★★
()
Ответ на: комментарий от cycl0ne

> меня искренне это удивляет. Мой нонеймовый китаец его прекрасно понимает.

А мой Samsung S5230 - нет.

Sadler ★★★
()

Какой то неадекватный тест. Не зря в заголовке упомянут фороникс.
Почему mp3 cbr, когда у остальных vbr?
Почему aac lc, а не aac+?

firestarter ★★★☆
()
Ответ на: комментарий от firestarter

>Почему mp3 cbr, когда у остальных vbr?

Сделаю.

Почему aac lc, а не aac+?


Потому что HE-AAC создан, преимущественно, не для музыки, а для потокового вещания на битрейтах ниже 96 Kbps, но, если хотите, посчитаю результаты и для него.

Nebuchadnezzar ★★★★
() автор топика
Ответ на: комментарий от Nebuchadnezzar

Aac+ универсален вообще то, так же как и ogg. Просто aac+ предпочитают использовать там где нужен низкий битрейт, т.к. у него самое высокое соотношение качество/битрейт. Впрочем ogg на низких битрейтах ему уступает совсем немного, хотя на битрейте 64 kbps vorbis звучит заметно хуже, но не значительно.

firestarter ★★★☆
()
Ответ на: комментарий от Sadler

>Жаль, что всякие плееры о нём не догадываются.

мой iriver s7 догадывался о нем ещё 4 года назад

lazyklimm ★★★★★
()

ПРОГРАММА ВЕЛЕЛА МНЕ СЛУШАТЬ ВОРБИС. ДОЛЖЕН СЛУШАТЬ ВОРБИС.

thesis ★★★★★
()

Ах да, vorbis какой использовался, надеюсь последний Aotuv? Почему то во всех дистрах линукса используется устаревший кодек, в то время как большинство вендовых программ, кодирующих звук, используют современные версии aotuv vorbis.

firestarter ★★★☆
()

>А как же WMA?

Точняк. Про него-то я и забыл.

т.к. у него самое высокое соотношение качество/битрейт.


Вот и посмотрим.

подобный тест кодеков на низких битрейтах уже проводили.


Они его проводили на слух - это же hydrogen audio. Nuff said.

ПРОГРАММА ВЕЛЕЛА МНЕ СЛУШАТЬ ВОРБИС. ДОЛЖЕН СЛУШАТЬ ВОРБИС.


СЛАВА РОБОТАМ!!!

Nebuchadnezzar ★★★★
() автор топика

А сколько у Vorbis 499?

Yareg ★★★
()
Ответ на: комментарий от Nebuchadnezzar

Официальный Xiph'овский oggenc

Не нужен. Я не понимаю почему мейнтейнеры дистров тупят, логично ведь использовать лучшее. Фактически aotuv является официальной версией, а не xiph. Так как Aoyumi единственный кто занимается сейчас развитием этого замечательного кодека.

firestarter ★★★☆
()

Выборка просто поражает, разный исходный материал даст разные длинну^Wцифры.
И тот факт, что его конкретно плющит(выдает >0) на эмбиенте в aac тоже доверия не прибавляет.

kostian ★★★★☆
()
Ответ на: комментарий от timur_dav

> Наработки aotuv давно, очень давно уже в главной ветке так что не нужно ля-ля.

Там наработки многолетней давности, когда aotuv был версии 2.x вроде. А сейчас уже 6.03.

firestarter ★★★☆
()
Ответ на: комментарий от firestarter

Версия у aotuv обычно образуется следующим образом: новая версия libvorbis + версия патч и увеличивается на рандомную величину. Чейнжлог намекает нам на отсутствие кардинальных изменений за последние 3-4 года. Да и что там улучшать в психоакустике столько лет?

timur_dav ☆☆☆☆☆
()
Ответ на: комментарий от timur_dav

> Да и что там улучшать в психоакустике столько лет?

Я думаю что много чего можно улучшить, ведь до идеала (хороший звук на 0 kbps) ещё далеко.

firestarter ★★★☆
()

>VBR 192
Пардон, а это как, VBR 192? VBR - он на то и VBR, что не фиксирован. Что здесь означает цифра 192? Средний битрейт? Максимальный?

Ramen ★★★★
()
Ответ на: комментарий от Ramen

Что здесь означает цифра 192? Средний битрейт? Максимальный?

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

Xenesz ★★★★
()

Если будете ещё тестировать про Musepack не забудьте. Говорят, он рулит на битрейтах >=180. У меня на плеере вся коллекция в нём.

Deleted
()

у ворбиса только низы какие-то странные

megabaks ★★★★
()

Так. Я был слишком оптимистичен на счёт проводки. Где-то в трёхфазном проводе пробой и на данный момент у меня земля замыкается на ноль, что весьма меня печалит. Но это конечно же лучше чем вчера - когда на землю замыкалась фаза.

Касательно теста - на данный момент подготовил 80 образцов в форматах MP3, Vorbis, AAC (LC, HE, HEv2) и WMA (обычный и Pro). Возможно ещё добавлю к ним Musepack. Придётся долго и нудно сравнивать каждый файл с образцом. Для теста специально скачал последние версии кодеков, так что результаты могут драматическим образом измениться.

Пардон, а это как, VBR 192?


Это, так сказать, «по мнению лучших аудиофилов страны». Просто для некоторых кодеков в народе сложилось мнение, что некоторый параметр Q примерно соответствует определённому битрейту, но на самом деле, конечно же, здесь фороникс во все поля.

Nebuchadnezzar ★★★★
() автор топика
Ответ на: комментарий от Ramen

Average BitRate — это когда результат должен иметь средний битрейт близкий к указанному. Для VBR не обязан. Я написал «где-то около», но при разных исходниках может получиться и не около совсем.

Xenesz ★★★★
()
Ответ на: комментарий от Ramen

Насколько я понимаю - нет. ABR всегда жестко подгоняет средний битрейт под определенный, для чего обязательно нужно два прохода, тогда как обычный VBR использует заданный битрейт только для примерного ориентира и средний битрейт от него может не так уж и мало отличаться. Кодировал сегодня Кейко Мацуи из флака в ворбис (для китайфона), так условные 224 плавали, в зависимости от композиции, от 198 до 242.

redgremlin ★★★★★
()

На этот раз решено было уделить особое внимание точности измерения. В качестве подопытного кролика была взята композиция Renaissance - Turn Of The Cards - 06 Mother Russia т.к. она длинная (9:20) и насыщена различными инструментами.

Vorbis:

Использовался oggenc v2.87 libvorbis v1.3.2

В табличке для краткости обозначал как «OGG». Vorbis умеет только VBR.

AAC:

Использовался Nero AAC Encoder v1.5.4.0

Сразу оговорюсь, что битрейт VBR и ABR обычно не соответствует заданному при кодировании, что естественно, причём если у ABR можно задать необходимый битрейт, то в случае с VBR имеем дело с константой качества и то какому битрейту соответствует её значение - весьма условно. При кодировании с профилями HE и HEv2 выяснился любопытный факт - некоторые режимы имеют фиксированный максимальный битрейт в который они упираются. Кодирование с ABR выполнялось в два прохода.

MP3:

Использовался lame v3.98.4

Для всех режимов использовались опции "-q 0", "-m j". Для VBR использовался новый алгоритм. Битрейт для VBR дан весьма условно, по некоторым сведениям, его следует читать как: «65, 100, 130, 165, 190».

WMA:

Использовался Microsoft Expression Encoder 4.0.3205.0 из предположения, что Майкрософт лучше знает как кодировать в своём формате.

Кодирование производилось в WMA и WMA Pro. CBR кодировался в два прохода. С VBR возникла проблема с тем, что странная программа не давала выставить любой параметр качества, поэтому приходилось довольствоваться встроенными. Реальный битрейт распределяется примерно так: «33, 72, 87, 133, 195» - для обычного WMA и «69, 102, 140, 165, 201» - для Pro, что ничтоже сумняшеся было решено поименовать как «64, 96, 128, 160, 192» для WMA Pro, и «32, 64, 96, 128, 192» для WMA. С WMA Pro так же были проблемы банального рода. Так для ABR и VBR кодек автоматом производил ресемплирование до 24 бит, плюс не давал выставить некоторые битрейты и настройки качества. Для теста, полученные результаты были всё-равно ресемплированы взад до 16 бит.

Musepack:

Использовался MPC Encoder v1.30.0

В табличке обозначен как «MPC». Musepack умеет только VBR. Реальный битрейт распределяется примерно так: «90, 130, 180, 210», что решено было принять как «96, 128, 160 ,192». Ниже 90 Kbps Musepack кодировать не умеет, поэтому результатов для 64 Kbps - нет.

Таблица принятого соответствия Q/VBR:

             64 |     96 |    128 |    160 |    192
OGG:      00.00 |  02.00 |  04.00 |  05.00 |  06.00 
MP3:      09.00 |  07.00 |  05.00 |  04.00 |  02.00
AAC:      00.25 |  00.34 |  00.40 |  00.47 |  00.53
WMA:      25.00 |  50.00 |  75.00 |  XX.XX |  90.00
WMA Pro:  10.00 |  25.00 |  50.00 |  75.00 |  90.00
MPC:      XX.XX |  03.00 |  04.00 |  05.00 |  06.00

По-хорошему - для VBR надо бы привести все файлы к единому размеру, но это невозможно сделать т.к. только AAC и OGG позволяют гибко задавать параметр качества, как вещественное число в широком диапазоне, а у других кодеков он фиксирован на определённых значениях.

Так же следует сделать пару оговорок насчёт самого теста. Во-первых, он заточен под частоту дискретизации 48000, поэтому перед кодированием в остальные форматы оригинальный файл был ресемплирован, но некоторые кодеки (MP3, WMA) на низких битрейтах понизили частоту дискретизации, так что их результаты были ресемплированы снова. Во-вторых, программа слегка недоработана, так, при сравнении файла с самим собою получается не 0, а некоторое положительное значение, в данном случае 0.214, которое я вычел из итоговых значений.

Собственно говоря, результаты тестирования. Для Ъ: SOSNOOLEY :(

Nebuchadnezzar ★★★★
() автор топика

Странно, что OGG оказался лучше AAC. Между ними разница - куча лет. Раз это так, то хорошо. Кроме этого, использование OGG не накладывает ни на кого ограничений.

Коировал из FLAC-файла, надеюсь?

ZenitharChampion ★★★★★
()

Добавил результаты для aoTuV Beta v6.03 (обозначен как «OGG Beta») и WavPack v4.60.1.

WavPack кодировался с опциями: "-hh -x6" и заданным битрейтом. WavPack умеет только lossless и некое подобие ABR. Интересен этот кодек, прежде всего тем, что при lossy кодировании может создавать корректирующий файл, который при добавлении к сжатому файлу позволяет с абсолютной точностью воссоздать исходник. Но с ABR у него, в целом, проблемы т.к. «что бы ни делали иракские учёные-ядерщики, у них всегда получалась анаша» - при любом целевом битрейте вплоть до 192 Kbps готовый файл получается в битрейте 217 Kbps и соответствующего размера, поэтому, в конечном счёте, я плюнул и указал его в табличке как VBR 192. В целом, тест показал, что WavPack совершенно не предназначен для lossy-сжатия, ибо на выходе получается говно.

Nebuchadnezzar ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.