Смекни!
smekni.com

Методы позиционирования и сжатия звука (стр. 40 из 47)

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

И, наконец, немного о собственно MP3 128kbs, пользующемся такой популярностью. В свое время он был широко разрекламирован FhG IIS, но при его использовании мы имеем скорее качество аудиокассеты, записанной на подозрительного происхождения магнитофоне, хотя и с очень низким уровнем шумов. Романтически настроенные разработчики даже почти официально назвали это 'CD-качеством', что очень далеко от истины. Впрочем, это давняя традиция -- ADPCM тоже в свое время называли форматом, дающим только неслышимые искажения.

На самом деле различие между качеством звука на битрейтах 128kbs и 256kbs... 320kbs принципиально, так как первый к качеству уровня CD, собственно, никакого отношения не имеет, в отличие от двух последних. Разумеется, для тех, кому качество средней аудиокассеты кажется великолепным, данная оценка неверна, также она не столь категорична для случаев, когда внимание сильно отвлечено. Но в целом, думаю, все ясно.

VBR & XingTech

XingTech -- фирма, производящая наиболее скоростные MP3 кодеры. К сожалению, ее кодеры всегда славились и продолжают славиться невысоким качеством.

В районе конца 98 -- начала 99 года XingTech первая использовала технологию переменного битрейта, VBR. Если в случае постоянного битрейта кодер выбирает наиболее значащие частотные составляющие фрейма, убирающиеся в выделенный битрейт, то в случае VBR задается максимальный допустимый уровень потерь, а кодер выбирает еще и минимальный битрейт, достаточный для выполнения поставленной задачи. Стоящие рядом в конечном потоке фреймы могут оказаться в итоге закодированы с совершенно разными параметрами.

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

Определенный оптимизм вызывает другая реализация VBR, уже на основе исходного кода ISO ( на самом деле от кода ISO он ушел уже очень далеко ). Речь идет о кодере Lame. Несмотря на свое довольно своеобразное название, данный кодер на данный момент является самым многообещающим кодером для высоких и средних битрейтов, при этом он и на низких битрейтах превосходит большинство других кодеров, в том числе все ISO based. Подробнее о Lame -- ниже.

Способы хранения MP3

Стандарт MP3 не определяет никакого точного стандартного математического алгоритма кодирования, его разработка целиком и полностью остается на совести разработчиков кодеров. Вместо этого он определяет общую схему процесса кодирования, а также формат закодированного фрейма. Сами последовательности фреймов могут передаваться потоком (процесс передачи такого потока называется streaming) или храниться в файлах.

MP3 файл, как и поток, состоит из последовательно расположеных фреймов, между которыми может содержаться произвольная информация. Основное требование состоит в том, что не должно быть совпадений с сигнатурой начала фрейма.

Часто к последовательности фреймов добавляют стандартный заголовок мета-аудиоформата WAV, и получается то, что называют WAV-MP3. (Немного подробнее о последнем будет сказано ниже, когда будет описываться ACM pro codec.) Еще чаще к MP3-файлу добавляется информационный блок ID3v2, содержащий информацию об исполнителе, жанре, названии композиции, и другую подобную информацию о треке. Он добавляется в конец файла. В середину пока никто ничего ставить не придумал. Хотя, вообще говоря, может представлять некоторый интерес вставка спецтэга для VBR с информацией о том, в какой части трека мы, собственно, находимся.

Характер потерь при кодировании

На низких битрейтах всегда срезаются мелкие, сравнительно тихие детали, наличие или отсутствие которых нередко серьезно меняет эмоциональную окраску композиции, придает или лишает ее таких эффектов, как ощущение 'кристальной' чистоты звука (в той мере, в которой она присутствует в CD Audio). Кроме того, в соответствии с психоакустической моделью, высшие (выше 16 кГц) частоты на низких битрейтах кодируются с очень низким приоритетом.

Далее, имеют место разные особенности кодеров. Так, у кодеров от FhG IIS на 128 kbs оказываются 'смазаны' верхние частоты, наблюдается эффект 'шепелявости', в то время как у ISO-based вместо этого -- 'звон'. Скорее всего, это связано с разным отношением к частотам выше 16kHz у данных кодеров. В кодере Lame, кстати, они по умолчанию срезаются, что увеличивает качество кодирования на 128kbs.

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

Тестирование качественности кодеров

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

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

Тесты АЧХ не универсальны. В силу особенностей 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, Марк Тейлор, не против поработать над кодированием высоких битрейтов в нем, нужно только будет провести определенные тесты. Что до кодеров от FhG IIS -- проблема исчезнет, как только найдется заинтересованная сторона, готовая это оплатить.

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

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

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