WebSound.ru Home
    Главная | Комментарии | Архив выпусков | Форум и чат | AudioTag.info | Музоблог | reTracked | Авторский блог  



  Поиск:

Поиск по WebSound.Ru:
Поиск в Интернете:
Powered by




  Партнеры, реклама:




Audio watermarking
TrustedAudio.com



 

Тестирование нескольких MP3-декодеров (plug-ins) для WinAMP

Автор: Александр Радзишевский (Alex Y. Radzishevsky)
Copyright (C) 2000, Alex Y. Radzishevsky

Все права в отношении данного документа принадлежат автору. Воспроизведение данного текста или его части разрешается только с письменного разрешения автора.

В этом небольшом эксперименте я попытаюсь выявить тот плаг-ин к WinAMP, который наиболее точно производит декодирование MP3. Кандидатами/тестируемыми являются: 

1) декодер, основанный на проигрывателе mpg123 v1.15 by Michael Hipp ( http://www.mpg123.de );
2) декодер от Фраунхофер, поставлявшийся с WinAMP v2.22
3) оригинальный декодер от WinAMP v2.61.

Обозначим их для простоты соответственно 123, 222 и orig.

Другие плееры не исследовались, но я постараюсь сделать аналогичный обзор и по ним (например, Sonique, Kjofol, Xmplay, Cubic и проч.). Ну, что же, приступим! 

Использованная аппаратура и ПО: Celeron 375 o/c, 164 Mb RAM, SBLive! value, Windows 2000 (2195.1); CoolEdit'2000, SpectraLab.

Прежде чем приступить к непосредственному исследованию, необходимо пояснить, что все присутствующие в сигнале помехи и примеси вносятся в основном кодером, а не проигрывателем. Таким образом сравнивать полученные после декодирования сигналы с оригинальным .WAV не имеет смысла (да и просто неудобно, так как mp3-поток сдвинут во времени относительно оригинала на 25-26 мс.. Поэтому при сравнении качества восстановления сигнала декодерами, приходится сравнивать не оригинальный сигнал с полученными, а сигналы, полученные от разных декодеров, иногда поглядывая на вид оригинального сигнала.

Синтетический тест 

Синтетический тест я решил провести по причине того, что в этом тесте есть возможность сравнивать полученные сигналы с оригиналом. Это объясняется просто: в данном тесте берутся для исследования не реальные сигналы, а простые синусы, треугольники и проч. Так что в данном случае мы хотя бы имеем представление о том, как должен выглядеть спектр. Если же взять реальные сигналы, то сравнивать сигналы от тестируемых декодеров с оригинальным сигналом, как говорилось выше, не имеет смысла - все портит в основном енкодер и различие между сигналом, полученным с декодера, и оригиналом объясняется почти исключительно поведением енкодера.

Сжатие сигналов производилось при битрейте 192 Kbps енкодером Lame v3.81.

Итак, берем декодированный сигнал - чистая синусоида на 10 Кгц. Внимательно изучаем спектр. Что мы видим: 123 и 222 - норма; не чистая синусоида, конечно, но вполне приемлемо. Хотя, при ближайшем рассмотрении в спектре, полученном от 222, немного меньше примесей. Появившиеся в радиусе 200 Гц около исследуемой синусоиды примеси никто не заметит - они на уровне -100 дБ. Списываем это на огрехи енкодера. Orig: ну, не ожидал я такого. На спектре основная частота на 10 Кгц превратилась в треугольник с длинной основания 1000-1100 Гц. Примеси добивают до -66 - -45 дБ. 

Переключаемся на амплитудное представление. 123 и 222 - синусоида как синусоида. Orig поразил - явно видно, что каждый полупериод синусоида различается по амплитуде. Отодвигаем масштаб. Это ужас. Каждые 0,8 сек сигнал просто проваливается чуть ли не до нуля. Включаем колонки и слушаем. Так и есть - отчетливо слышно, что свист утихает почти полностью. Такой баг надо приметить.

Ладно, берем треугольный сигнал на частоте 1 Кгц, смотрим на спектр. В оригинале спектр такого сигнала выглядит как треугольники на частотах 1, 3, 5, 7, 11, 13, 15, 17, 19 и 21 Кгц, дискретно заполненные частотными составляющими. Во всех тестируемых сигналах в треугольниках наблюдаются примесные частоты со всплесками. Треугольники потеряли исходный вид. Наиболее перекошенные треугольники с беспорядочными всплесками у 123. Но разница наблюдается только в нижнем диапазоне частот. Начиная с 7 - 9 Кгц все тестируемые ведут себя одинаково. В амплитудном представлении огрех не обнаружено - у треугольников ровные стороны и острые углы.

Берем еще один сигнал: сумма синусоид на частотах 3, 6 и 9 Кгц и величиной сигнала -12, -18 и -24 дБ соответственно. Спектр очень аккуратный у всех. Лидера обозначить нельзя. На нижних частотах, опять же, примесей больше, но в этом наверняка снова виноват енкодер. Амплитудное представление также не выявило ничего нового.

Теперь берем равномерный белый шум. Сознаюсь, этот тест ничего не выявил. Спектр для всех декодеров выглядел одинаково и от оригинала заметно не отличался. Ан нет, погодите. Давайте-ка попробуем вычитать сигналы друг из друга. Из оригинала вычесть не получается - mp3 опаздывает за wav примерно на 25 мс. Так что будем вычитать друг из друга тестируемые. Что же мы имеем? Да, разница очевидна. Вычитая 123 из остальных получаем отчетливый остаток на высоких частотах - выше 19 Кгц. На частотах ниже 19 Кгц спектр показывает равномерные остатки амплитуд по всей полосе. Мне и раньше казалось, что orig сигнал немного притушенным выдает, но теперь это очевидно - на всех частотах до 19 Кгц после вычитания остаются обрезки амплитуд.

"Реальный" тест 

Берем диск Jean Michel Jarre - Oxygene номер 5. Отрезаем кусочек в 10 секунд с насыщенным до 16 Кгц спектром. Оригинальный MP3 зажат с переменным битрейтом на 112-192 Kbps. Сначала посмотрим на разницу сигналов. Берем orig и вычитаем его из 222 и 123. Включаем спектральный анализатор. Приходится констатировать, что разница колоссальна. На всех частотах тут и там происходят всплески амплитуд (кратковременные посвистывания, позвякивания), причем настолько сильные, что это отчетливо слышно в наушниках. Теперь берем сигнал от 123 и вычитаем его из 222. Вычитание по всем законам математики дало полный ноль. То есть разница сигналов на столько мала, что спектр чист - тишина. Сравниваем АЧХ. Тут сложно сказать что-то определенное. На оригинал больше похожи 123 и 222. Хотя я не могу сказать, что orig очень сильно отличается от них. Его спектр немного менее точно огибает спектр оригинала. Однако именно это и объясняет столь столь странный спектр разностного сигнала. На нижних частотах себя явно лучше ведет 123. 

Берем другую композицию: Koto masterpieces, трек 3. Я специально выбрал именно ее, так как здесь очень хорошо выражены ударники, электронные инструменты на высоких частотах и женский голос. Сигнал, очень насыщенный верхними частотами - до 19 Кгц. Откусываем кусочек в 10 секунд. Начинаем вычитать. Вычитаем orig из 123. Картина не меняется - разница представляет собой резко появляющиеся и кратковременные свисты или, точнее, позвякивания начиная с 8 Кгц. Амплитуда составляющих очень большая. Причем на нижних частотах этот дефект менее выражен, чем на высоких. То есть до 5 - 6 Кгц все нормально - а дальше разница все увеличивается и увеличивается. То же самое я заметил при рассмотрении предыдущего сигнала. Вычитаем 123 из 222. Чисто. Идеально чисто. У меня такое ощущение, что эти декодеры просто одинаковые. Смотрим на АЧХ. Опять же, сложно судить. АЧХ хорошо подходит для сравнения оригинала и полученных MP3. Сравнивать же несколько MP3 с помощью АЧХ сложно. Как видно, лучше проводить сравнение путем вычитания. Одним словом, никаких критических выводов по АЧХ сделать нельзя.

Вывод 

Orig явно проиграл. Он абсолютно иначе интерпретирует MP3-поток, нежели 123 и 222. Как это влияет на восприятие сказать сложно. Я специально внимательно прослушал на неплохой аппаратуре несколько MP3 и однозначный вывод сделать не могу. Но, эксперимент показал, что orig сильно огрубляет сигнал, что, вероятно, заметно сказывается на его восприятии. Чем пользоваться: 222 или 123 я затрудняюсь решить. Особенно в последних тестах я стал очень серьезно задумываться о том, что это два идентичных декодера. Выбор за вами.

На использованном Celeron 375 Mhz orig кушал 0-1% процессорного времени, 222 - 2-3%, 123 - 3-9%. Таким образом мой выбор пал на использование 222. Во время тестирования разницы между 123 и 222 я не нашел, а так как 222 меньше нагружает процессор, я выбрал именно его.

Да, и под конец замечу: в процессе тестирования я установил, что Lame очень качественно жмет с переменным битрейтом 112-192. А это тоже немаловажный вывод :).

Если у вас есть замечания или предложения, присылайте их на e-mail.