Цифровой звук

Как же на самом деле работает MP3Pro?


Уж очень много вопросов задавал я себе, вслушиваясь и вглядываясь в АЧХ MP3Pro. Взглянем еще раз на несколько увеличенных графиков.

На данном графике хорошо видно сходство MP3Pro и MP3 на низких частотах, и несмотря на столь узкий представленный диапазон, подобная закономерность продолжается до отметки 7,5-9 кГц. Это доказывает что, сжатие более низкого частотного диапазона у MP3Pro происходит методами обычного MP3. Прослушивание это тоже подтверждает.

А здесь совершенно иная картина. Если MP3 более близок к оригиналу, то MP3Pro "живет" собственной жизнью и его график совершенно не похож на графики других. При этом на СЛУХ все довольно прилично и качественно для данного битрейта!

Впрочем, статическая АЧХ многое не объясняет и поэтому взглянем на сонограммы оригинального сигнала, MP3Pro и WMA.

Как видно, уже кое-что проясняется, а также хорошо видна фильтрация высокой части диапазона, чуть больше 16 кГц у MP3Pro@64 и чуть меньше 14 кГц у WMA, хотя если присмотреться, можно заметить некоторые всплески вплоть до 16 кГц.

По сонограмме заметно, что если WMA более корректно обращается с высокими частотами, то у MP3Pro составляющие высоких частот размыты по времени и по частотным полосам, тогда как низкие частоты более близки к оригиналу, чем у WMA. А вот на слух высокие частоты MP3Pro звучат корректнее и размытость по времени ощущается меньше, чем раздражающее звяканье высоких у WMA.

Если обратится еще раз к пресс-релизу, то можно вспомнить, что идея MP3Pro (точнее, технологии SBR) такова: при кодировании передавать чуть более узкий диапазон частот, при этом, естественно, обрезая "верхи", а при декодировании верхние частоты будут восстанавливаться, основываясь на информации о более низких частотах. Это конечно грубо, но ведь не достать звук тарелок из звука барабанов! Oops! Нет, скажут умные люди, занимающиеся восстановлением старых записей, достать-то можно. При помощи сдвига определенной части спектра, например, на 8-9 кГц вверх и последующей обработки эквалайзерами и другими "ультрамаксимайзерами" можно получить некое подобие верхов.
MP3Pro делает подобные операции корректнее, поэтому информация о высоких частотах (или их части) и амплитуде/мощности должна хранится где-то в файле, но подробная работа этого алгоритма - тайна за семью печатями. Попробуем эту тайну открыть. Тем более, что другие умные люди уже предположили, как происходит процесс кодирования/декодирования. Но так как версий несколько, мы возьмем самую правдоподобную, основывающуюся на предположении, что высокочастотная часть спектра режется на куски и кодируется отдельно от всего остального.

А чтобы развеять остальные вопросы, проведем довольно простое синтетическое тестирование. Возьмем сигнал, содержащий белый шум от 0 до 6-6,5 кГц и добавим 12-килогерцовый тон, который пройдя через кодек, сможет очень многое рассказать нам о его работе.



Прекрасно видно, что вместо тона получили шум, причем размазанный в большом диапазоне. Почему же при декодировании тон перестал быть похожим на себя? Шум, как мы видим, получился на основе этого самого тона, а это значит что кодек попросту не знал, тон это или что-либо другое, так как имел информацию лишь о мощности сигнала на данном отрезке. Если вернутся к предположению, что высокочастотная часть сигнала нарезается на куски, то на основе увиденного выходит, что во втором потоке MP3Pro запоминается информация о мощности сигнала. Даже этой скудной информации достаточно чтобы построить представление об алгоритме MP3Pro.

Так, при кодировании с потоком 64 кбит/c весь сигнал делится на 3 части: 0-8,1 кГц, 8,2-16,3 кГц, а третью часть выше 16,3 кГц кодер просто отбрасывает. Из оставшихся двух берется часть с диапазоном 8,2-16,3 кГц и режется еще на несколько частей, у каждого такого высокочастотного "кусочка" вычисляется средняя мощность сигнала на фрейм, которая в этот же фрейм и записывается, но так, что обычный плейер ее не видит. Часть 0-8,1 кГц сжимается "по старинке", т.е. MP3-кодером. Именно эту часть способны увидеть обычные плееры.

При декодировании все не так просто.Первой декодируется MP3-часть, затем из него выделяется среднечастотный кусок (4,1-8,1 кГц), который поднимают до 8,2-16,3 кГц при помощи питча (raising pitch). Получившуюся часть тоже делят на куски, а из фреймов достают информацию о мощности, которую присваивают этим кусочкам.

Как видите работы гораздо больше, что и объясняет повышенные требования к конфигурации компьютера. Минимум, который "хочеть" MP3Pro - ПК c процессором Pentium 200MMX, в отличие от скромного Pentium-90 или даже меньше для обычного MP3.


Содержание раздела