Характеристики алгоритма МР3


 

"Кто скажет, что это девочка, пусть бросит в меня камень…"
О.Бендер

Алгоритм МР3 предназначен для сжатия звуковых сигналов. По заявлению создателей, алгоритм обеспечивает сжатие звука в отношении 1/11 без потери качества. Видимо при сжатии используются психофизиологические особенности слуха человека: так при большой громкости звука динамический диапазон слуха уменьшается примерно до 70дБ, для частот меньше 300Гц, в которых сосредотачивается большая часть энергии, человек не может выделить направление источника звука и т.д. Вспомните ощущение тишины и звона в ушах после ударных звуков большой мощности, после выстрела; или двухполосных системы, в которых средние и высокие частоты излучаются через маломощные колонки, а низкочастотная информация передается от мощного низкочастотного динамика.

Не имея полной информации на основе каких критериев разрабатывался этот алгоритм, проведем измерение его характеристик по стандартных тестам для аудио аппаратуры. Отметим, что тесты как таковые обычно не отражают реальной ситуации, и по идее самой лучшей проверкой было бы тестирование с помощью аудитории из людей с тонким музыкальным слухом. Добавим также, что любые дополнения и уточнения статьи будут только приветствоваться. Возможно, подобные тесты уже где-то и проводились. Вот только где? Давно известно, что если исследование стоит меньше 100 000 USD то дешевле будет провести его самостоятельно, чем найти результаты уже проведенного исследования. По-моему, здесь именно такой случай. :-)

Тесты проводились на кодере BladeEnc v0.42 и декодере (плейере) NAD v0.93. Измерениям подвергались riff файлы, длительностью примерно 5.9 сек (262144 отсчетов сигнала). Для исключения переходных процессов обычно использовалась вторая половина файла (131072 точек). Все файлы 16 разрядные, стерео. МР3 файлы создавались со скоростью потока в 128кбит. В спектральном анализе применено окно Кайзера-Бесселя с параметром a=6.5 (уровень первого бокового лепестка равен -158дб, коэффициент усиления SNR равен 47дб). Там, где это было возможно и требовалось для уточнения результатов (исключения паразитной амплитудной модуляции) использовалось нормирование на форму полосы пропускания полосовых фильтров.

Сигнал

Для начала посмотрим на сигнал до и после МР3:

Вывод: сигнал на выходе МР3 появляется с задержкой на 23 мсек.

АЧХ

Был сформирован набор из 41 riff файлов, которые содержали в левом канале синусоиду длительностью, с амплитудой -20дБ. Файлы были сформированы так, что образовывали набор синусоид равномерно покрывающий, в логарифмическом масштабе, звуковой диапазон от 20Гц до 20КГц. Для проверки погрешностей программ анализа по каждому файлу рассчитывались мощность сигнала и его спектр. Спектральный максимум принимался за отклик системы на данной частоте. Так как набор файлов может содержать погрешности результатом теста качества МР3 будет разница АЧХ на его входе и его выходе.

Исходные файлы:

Файлы после МП3:

Разница:

Вывод: отклонение АЧХ от идеальной составляет меньше +/- 0,02 db.

Проникновение сигнала из левого канала в правый:

Отсутствует.

Искажение формы сигнал (гармонические искажения):

Отсутствует.

Отношение сигнал шум:

Был сформирован набор из 11 riff файлов, которые содержали в левом канале синусоиду с частотой 376,7… Гц, с амплитудой изменяющейся от 0дб, с шагом 5дб. Для каждого файла определялось положение максимума спектра. Он и его ближайшее окружение (±10 бин) вырезалось. По оставшейся выборке определялась средняя энергия спектральных отсчетов.

Отметим одну особенность: шум квантования порождается самим сигналом. Это означает, что возможны боковые частоты, на которых шум отсутствует. При анализе учитывались только те спектральные отсчеты, в которых была зафиксирована энергия (> -250db).


Более укрупнено последний график:

Выводы: при уровне сигнала <= 20 db шумы МР3 становятся меньше шумов квантования riff файла. Ясно прослеживается зависимость шумов МР3 от уровня сигнала. Уровень шумов МР3 лежит ниже порога слышимости.

Ниже вставлены спектры при различном уровне сигнала:




Можно предположить, что работа МР3 оптимизирована на передачу синусоидальных сигналов. Действительно, скажем, когда звучит гитара, то спектр будет состоять из основного тона, гармоник и резонансных частот. Попробуем подать более "сложный" сигнал на вход МР3 и посмотрим, что из этого выйдет.

Был смоделирован Гаусовский шум, с нулевым мат. ожиданием и СКО равным 0,1. Заметим, что нельзя использовать большее СКО, так как в этом случае возрастает вероятность выхода амплитуды отсчета за границы возможных амплитуд сигнала. Была измерена мощность шума до и после МР3:

  Сп. Мах (дб) Уровень шума (дб)
До -50,40589174 -13,9995478
После -50,92323427 -14,29006747

Спектры входного и выходного сигналов для МР3 приведены ниже:


Вывод: существенных отличий нет.

Подведем итоги по МР3

Алгоритм дает задержку между входным и выходным сигналом примерно в 20мсек. АЧХ идеальная. Уровень шумов лежит ниже порога слышимости. Алгоритм эффективно работает как с "чистым", синусоидальным сигналом, так и со "сложным". Интересно, откуда мог возникнуть слух, что МР3 "режет" высокие частоты? :-)

 

Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.