Показать сообщение отдельно
Старый 25.07.2007, 18:15   #10
Strannik
Местный
 
Аватар для Strannik
 
Регистрация: 03.10.2006
Адрес: Москва
Сообщений: 576
Вы сказали Спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
Отправить сообщение для Strannik с помощью ICQ
По умолчанию Тестирование качественности кодеров

Обычно тестирование кодеров проводится по степени сохранения формы АЧХ оригинального сигнала. При этом очевидно, что при битрейтах 256kbs... 320kbs АЧХ исходного файла и файла, полученного после декодирования, должны быть идентичными как на синтетических тестах (сгенерированный белый шум), так и на реальных треках, так как при значительных отличиях они окажутся слышны независимо от того, что говорит психоакустическая модель про каждый конкретный фрейм, если только все эти фреймы не похожи друг на друга. На более низких битрейтах следует в первую очередь следить за сохранением формы АЧХ в области низких и средних частот.

Сами тесты по сохранению формы АЧХ следует проводить не только на белом шуме, как это делается обычно, но и на достаточно сложных композициях, в комплексе это позволяет получить значительно более достоверные результаты.

Кроме того, само сравнение должно производиться не 'не глаз'. Мне, например, пришло как-то письмо, где подробно описывалось, какие частоты и насколько поднимает BladeEnc на низких битрейтах в тесте на кодирование белого шума. (BladeEnc действительно не идеален на средних и низких битрейтах, на них сказываются недостатки модели ISO.) Такие мелочи говорят о наличии ошибок в алгоритме.

Тесты АЧХ не универсальны. В силу особенностей MP3 они дают достаточно адекватную оценку его качества, и то не полностью, но к другим форматам они и вовсе не обязаны быть применимыми -- в частности, они непригодны для оценки качественности кодирования в формате VQF.

Относительно точную раскладку качества сигнала по материалам специально проведенного прослушивания можно найти на сайте MP3Tech, а немного вольный ее перевод на русский язык -- у меня на Mikhail's MP3 Page . Но все же рекомендую посетить и сам сайт MP3 Tech , к тому же в данный момент там лежат более новые и подробные результаты других тестов.

Психоакустическая модель и разные битрейты

Самым важной характеристикой кодера, от которой зависит качество кодирования, является психоакустическая модель, использованная в нем. Но следует заметить, что модель должна варьироваться для разных категорий битрейтов. Аналогично тому, как использование MS/IS стерео приводит к повышению качества на низких битрейтах, но на средних и высоких только понижает его, также и разные составляющие модели могут иметь максимальный битрейт, до которого они полезны, но от использования которых на больших битрейтах следует отказаться.

Кодеры, основанные на исходном коде ISO, чаще всего продолжают использовать довольно слабый вариант психоакустической модели, использованный в нем. Но на высоких битрейтах мы все же получаем очень хороший результат, причем многим он нравится больше, чем результат кодирования кодерами FhG IIS. Видимо, причина кроется как раз в том, что психоакустическая модель в кодерах от FhG IIS неизменна для всех битрейтов и более подходит для битрейтов средних и низких, в то время как на высоких избыточна и нуждается в ослаблении, в то время как модель ISO оказалась неплохо, хотя и не идеально, приспособлена к высоким битрейтам. Но тема противостояния кодеров FhG кодерам ISO-based остается откытой.

В самом развитом из ISO-based кодеров, Lame, модель была значительно улучшена, причем настолько, что кодер и на низких битрейтах незначительно уступает аналогам от FhG IIS. Можно сказать, что в Lame осталась уже относительно небольшая часть исходной модели ISO.

Но на битрейтах 256kbs и 320kbs предыдущий лидер высокобитрейтных кодеров, mpegEnc, все еще спорит с Lame. Но, как оказалось, в mpegEnc модель мало отличается от исходной слабой модели ISO, просто в нем отключены некоторые ее части, что в итоге, как ни странно, привело к значительному повышению качества кодирования... только на высоких битрейтах. Возможно, более подробный анализ исходников покажет и другие изменения, но поверхностный анализ уже показал, что все главные недостатки исходной модели ISO присутствуют. Видимо, их сглаживает высокий битрейт, или жеони действительно несущественны на 256kbs... 320kbs.

Текущий руководитель разработкой Lame Lame , Марк Тейлор, не против поработать над кодированием высоких битрейтов в нем, нужно только будет провести определенные тесты. Что до кодеров от FhG IIS -- проблема исчезнет, как только найдется заинтересованная сторона, готовая это оплатить.

Какие, собственно, кодеры у нас в распоряжении

Существуют три линии развития кодеров -- кодеры от XingTech, кодеры от FhG IIS, и кодеры, основанные но исходном иллюстративном коде ISO.

Кодеры от XingTech не отличаются высоким качеством кодирования, но многим нравятся, к тому же вполне подойдут для кодирования разной бросовой электронной музыки или синтезированных семплов. Благодаря своей скорости они остаются идеальными кодерами для музыки, не требующей высокого качества кодирования. Более подробно о них -- на http://www.xingtech.com/.

Кодеры от FhG IIS известны наивысшим качеством кодирования на низких и средних битрейтах благодаря наиболее подходящей для таких битрейтов психоакустичекой модели. Из консольных кодеров данной группы наиболее предпочтителен l3enc 2.61 (не 2.71 и не 2.72, на знаю про 2.74), также пока не отброшен mp3enc 3.1, но последний никто всерьез не тестировал. Другие кодеры, такие, как AudioActive или MP3 Producer, обладают значительными недостатками, правда, в основном это ограничения возможностей настройки и неразвитость интерфейса.

Также существует старый кодек ACM pro codec авторства FhG IIS, и несколько нелегальных кодеков, код для которых выкорчеван из последних кодеров FhG IIS.

Остальные кодеры ведут свое происхождение от исходных кодов ISO. Не считая таких "ошибок эволюции", как SoundLimit, в котором значительно увеличена скорость за счет еще более значительного ухудшения качества, получаем два основных направления развития -- оптимизация кода по скорости и оптимизация алгоритма по качеству.

До недавнего времени первую линию наилучшим образом представлял кодер BladeEnc, в котором используется первоначальная модель ISO, но проведено много оптимизаций кода, а вторую -- mpegEnc, известный также и как самый медленный MP3 кодер.

Но откуда берется высокое качество mpegEnc на высоких битрейтах, я уже упомянул выше. На самом же деле серьезная оптимизация самого алгоритма впервые встречена в кодере Lame, в котором использована самостоятельно разработанная психоакустическая модель GPSYCHO.

Есть все основания считать Lame наилучшим из основанных на коде ISO кодеров. По скорости он давно догнал остальные, а по качеству скоро должен отдать последние позиции и mpegEnc... впрочем, обо всем этом я уже писал выше.

Lame может быть собран практически на любой платформе, на которой есть компилятор языка C. Скомпилированный вариант Lame в виде библиотеки dll входит в состав граббера Cdex, но предпочтительнее использовать вариант, запускаемый из командной строки, он имеет более другие возможности настройки, к тому же работает быстрее. Но его надо собирать самому. Кстати, в состав Cdex входит и свой кодер, но он и раньше никем особенно не тестировался, а сейчас это не представляется нужным.
__________________
Дорога - она для тех, кто готов пройти через собственный ад, ибо дорога есть удел зрячего и сильного.
Strannik вне форума