Тестирование
Прежде чем начать процесс тестирования и последующего сравнения «подопытных» форматов сжатия, хотелось бы обратить особое внимание на то, что анализ АЧХ и сонограмм не очень хорошо работает для психоакустических алгоритмов, поэтому главным инструментом для нас станут уши.
Для полной картины были использованы, как исследования на музыке различных стилей, так и исследование синтетических фрагментов. Из всех возможных методов тестирования было выбрано кодирование оригинального WAVE-файла каждым из кодеков, затем обратное декодирование в WAVE и после очистки полученных фрагментов в волновом редакторе сравнение результирующих АЧХ оригинального и полученных WAVЕ-файлов.
Говоря о формате WMA от Microsoft, то он попал в этот тест неслучайно. Во-первых, MP3Pro его прямой конкурент и претендует примерно на то же место на рынке и в сердцах пользователей, во вторых, было бы интересно поближе рассмотреть новую версию WMA 8.0. Появившись не так давно она имела достаточно положительные отзывы от тех, кто использовал ее бета-версию.
При выборе битрейтов решено было позиционировать MP3 128 кбит/c относительно MP3Pro и WMA с битрейтом 64 кбит/c (ведь именно их разработчики считают заменой первого). MP3 с битрейтом 192 будет соревноваться с MP3Pro и WMA на 96 кбит/c.
Жанрами музыки, которые решено было выбрать (по совету опытного человека) для проведения исследований стали:
- современная танцевальная музыка (Gala «Keep The Secret», ритмичный и богатый различными стереоэффектами фрагмент типа «бум-бум, тыц-тыц»)
- джаз с живыми исполнителями (Joe Cocker «Could You Be Loved», исключительно живая музыка с мощным мужским вокалом и женским бэк-вокалом, насыщенная на средних и высоких частотах)
- поп-музыка с вокалом (Nek «Laura No Esta», итало-поп с ярко выраженным вокалом и, соответственно, богатыми средними)
Итак, начнем по порядку и взглянем на АЧХ, представляющую танцевальную музыку и битрейты, соответственно 128 кбит/c для MP3 и 64 кбит/c для MP3Pro и WMA.
Легко заметить, что на частотах до 10 кГц все кодеки выглядят практически одинаково, не считая провала на 30 Гц у MP3, который, правда, не будет заметен на слух. На нижнем графике, где представлен увеличенный фрагмент более высоких частот хорошо видны ограничения высшего частотного диапазона для каждого из кодеков. Так у самого «красивого» MP3Pro@64 (далее, после @ указан битрейт) предел — 16,3 кГц, у обычного MP3@128 — 15,5 кГц, а у WMA высокие «умерли» уже на 13,5 кГц. Как ни странно, но различия в звуке у всех были минимальны, лишь старый MP3 чуть выделился за счет более корректного обращения со всеми частотами и WMA был глуховат на высокой середине, но это будет незаметно на пластмассовых колонках и в дешевых наушниках. А новенький MP3Pro порадовал тем, что даже на таком низком битрейте продемонстрировал довольно приемлемое качество, создавая наиболее правдоподобную стереопанораму и частотный баланс, лишь немного уступающий MP3@128. Хотя, замечу, что подобная музыка обычно не может показать действительное качество работы кодека и поэтому будем считать это первым и самым легким испытанием в этом тестировании.
Перейдем к джазу, где реальные инструменты звучат в сочетании с различными вокалами.
Первым хочется отметить MP3@128, за наиболее точный результат. Несмотря на то, что фильтрация верхнего диапазона начинается уже на 15,5 кГц, передача высоких частот до этого момента гораздо более точная, чем у конкурентов, поэтому здесь MP3 — лидер. У MP3Pro@64 звук более богат деталями высоких, но некоторых из них просто нет в оригинале! Так что можно начать подозревать MP3Pro в небольшом жульничестве, «подделке» звука для большего соответствия оригиналу. Хотя, в целом звук довольно неплохой и насыщенный, низкие и средние частоты практически копия MP3@128, вокал передается хорошо.
А вот характер АЧХ у формата WMA довольно значительно отличается от АЧХ MP3 и MP3Pro. Это говорит о том, что Microsoft значительно изменила в новой версии своего кодека алгоритм кодирования, который ранее был более похож на алгоритм MP3. В хорошую ли сторону? Несмотря на довольно неплохой звук на Dance-фрагменте, в джазе WMA выглядит аутсайдером и причин этому несколько. Довольно невнятно передается среднечастотный диапазон, а высокие смазываются и плавают, как на плохой аудиокассете, звук получается каким-то звонким и неестественным. Реверберация отсутствует, словно ее не было, и если вокал Джо Кокера звучит довольно прилично, то женский бэк-вокал искажен.
Впрочем, абсолютно все кодеки, по большому счету, не справились с кодированием такой сложной композиции, разница слышна практически на любой аппаратуре, даже самой дешевой. Стереокартина просто изломана (особенно у WMA и MP3Pro), объем практически не передается, а о прозрачности высоких и речи быть не может.
А теперь посмотрим на отношение тестируемых к поп-музыке (в хорошем ее проявлении), да еще и с очень приятным вокалом итальянского исполнителя Nek’a.
Здесь явным лидером стал MP3Pro и хотя его АЧХ на высоких сильно отличалась от оригинала, субъективно звучал он очень неплохо. И достаточно высокий вокал итальянца, и живая гитара не заставили дрогнуть молодой формат и он сжимал плотно, но качественно :-). Даже как-то непонятно, как он умудрился запихнуть все это в такой маленький объем. Но секрет раскроется позже…
«Старичок» MP3 снова неплохо отыграл, показав еще оставшийся потенциал чистой психоакустической модели сжатия, без всяких разукрашиваний высокочастотного диапазона. Ну, а WMA и на этот раз подкачал. В данном жанре имели место артефакты на средних частотах, выражавшиеся в виде похрипываний, особенно, в тихих местах. Заметно, что Microsoft пытаясь улучшить качество сжатия в условиях такого низкого битрейта, пошла на достаточно крайнюю меру и просто решила урезать частотный диапазон сверху на уровне 15-16 кГц, рассчитывая, при этом, сжимать качественнее более низкие частоты.
А теперь совершим плавный переход на более приятные и качественные высокие, а для кого-то и вовсе высшие битрейты.
Здесь я не привожу разные графики АЧХ для стилей Pop и Dance, так как на высоких битрейтах тонкая грань в разнице между ними исчезает вовсе.
Заметно, что все кодеки ведут себя более предсказуемо, при этом ближе всех к форме оригинальной АЧХ графики у MP3Pro и MP3, а WMA не отрабатывает большую часть мелких деталей. На высоких — MP3Pro на высоте, по крайней мере, по графику и это факт. Обычный MP3 также неплох и заканчивает свою «высокочастотную деятельность» примерно на 18-19кГц. WMA же, ведет себя довольно странно, а его флуктуации на высоких не поддаются объяснению. Впрочем, на слух все фрагменты звучат вполне прилично и отличия между ними минимальны для средних ушей. Чуть более воздушным и объемным звучит MP3Pro, MP3 берет свое бОльшим разрешением и четкостью, а WMA лишь чересчур звонче, но это уже не так раздражает, как на более низких битрейтах. Стереопанорама WMA изломана, впрочем, как и у MP3Pro, но в последнем подобных огрехов меньше, а вот MP3@192 близок к оригиналу и это неудивительно — сказывается вдвое больший битрейт.
Если говорить о поп-музыке, то теперь WMA не искажает вокал Nek’a и звучит очень хорошо, примерно на уровне MP3@128-160, хотя этого и не скажешь, глядя на графики АЧХ. По частотному балансу MP3Pro@96 и MP3@192 идут практически на одном уровне.
Вполне естественно, что увеличение потока приведет к улучшению и такой более сложной для кодирования музыки, как джаз. Его спектральная насыщенность дает хорошую работу всем кодекам и тут они работают на пределе своих возможностей.
Сразу замечу, несмотря на все ниже описанное, ни один из кодеков не приблизился к оригиналу даже на 80%. Подобные композиции требуют сжатия не менее 320 кбит/c, хотя их сходство с оригиналом едва ли будет больше 90-95%.
Думаю, что нет смысла комментировать графики MP3 и WMA. Отмечу лишь субъективные замечания. Наиболее реалистичным было звучание MP3 и его высокий битрейт помог ему почти во всем, лишь потеря прозрачности и чуть-чуть объема не смогла ему полностью приблизиться к оригиналу. WMA звучал хуже всех — повышенная звонкость высоких и приглушенная середина придавала неестественности звуку. А вот MP3Pro для столь низкого для всех (и одновременно высокого, для себя) битрейта звучал звучал очень неплохо, обгоняя WMA по всем параметрам и проигрывая MP3@192. Но в его звуке снова появились доселе неизвестные высокочастотные детали и хотя они не портили общий звуковую картину, знал ли о них автор музыки?
Превосходно видно на общем графике, что MP3Pro наиболее близок к оригиналу, но лишь до отметки 9кГц, затем, если перевести глаза на увеличенный фрагмент до 20 кГц, заметны серьезные неточности. Так падение амплитуды у оригинала около 21,5 кГц, у MP3Pro проявляется лишь в виде кратковременного провала, а далее он продолжает идти, как ни в чем не бывало до 22кГц. Это наводит на очень интересные мысли и появляется желание провести более тщательную проверку работы алгоритма MP3Pro.
Как же на самом деле работает 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.