Студентам > Рефераты > Звуковые карты и Компрессия звука
Звуковые карты и Компрессия звукаСтраница: 10/12
Профили
Профиль
|
Комментарии
|
Simple
|
Такой же как и Main только без B - картинок.
Используется в программах и CATV (кабельное ТВ)
|
Main
|
Стандартный MPEG-1, 95% пользователей, CATV,
спутники
|
Main+
|
Main со Spatial и SNR Scalability
|
Next
|
Main+ c форматом 4:2:2
|
Допустимые комбинации Профилей и
Уровней
Simple
|
Main
|
Main+
|
Next
|
High
|
No
|
No
|
4:2:2
|
High 1440
|
No
|
Main c Spatial Scalability
|
4:2:2
|
Main
|
90% от всех
|
Main c SNR Scalability
|
4:2:2
|
Low
|
No
|
Main c SNR Scalability
|
No
|
Наиболее популярные стандарты.
Разрешение
|
Комментарии
|
352*480*24 (progressive)
|
VHS, хорош для фильмов
|
544*480*30 (interlaced)
|
Laserdisc (LD), D-2, Качество как у PAL
|
704*480*30 (interlaced)
|
Качество CCIR 601.Studio D-1
|
Системный уровень MPEG-2,
обеспечивает два уровня объединения данных:
1. Packetized Elementary Stream (PES)
- разбивает звук и видео на пакеты.
2. Второй уровень делится на:
· MPEG-2 Program Stream (совместим с
MPEG-1 System) - для локальная передача в среде с маленьким уровнем ошибок
· MPEG-2 Transport Stream (Рис. 6) -
внешнее вещание в среде с высоким уровнем ошибок - передает транспортные пакеты
(длиной 188 либо 188+16 бит) двух типов (сжатые данные -- PES -- и сигнальную
таблицу Program Specific Information -- PSI).
MPEG-3
- ненужный формат
Был разработан для HDTV
приложений с параметрами - максимальное разрешение (1920*1080*30), скорость 20
- 40 Mbps. Так как он не давал принципиальных улучшений по сравнению с MPEG-2
(да и к тому же MPEG-2 стал широко использоваться в разных вариантах, в том
числе и для HDTV), то он благополучно вымер.
MPEG-4
- очень мощный формат
MPEG-4 - стандарт для
низкоскоростной передачи (64 kbps), находящийся еще в стадии разработки. Первую
версию планировалось закончить в 1999 году.
Краткое описание:
· Разделяет картинку на различные
элементы, называемые media objects (медиа объекты).
· Описывает структуру этих объектов
и их взаимосвязи чтобы затем собрать их в видеозвуковую сцену.
· Позволяет изменять сцену, что
обеспечивает высокий уровень интерактивности для конечного пользователя.
Видеозвуковая сцена состоит
из медиа объектов, которые объеденены в иархическую структуру:
· Неподвижные картинки (например
фон)
· Видио объекты (говорящий человек).
· Аудио объекты (голос связанный с
этим человеком).
· Текст связанный с данной сценой.
· Синтетические объекты - объекты
которых не было изначально в записываемой сцене, но которые туда добавляются
при демонстрации конечному пользователю (например синтезируется говорящая
голова).
· Текст связанный с головой из
которого в конце синтезируется голос.
Такой способ представления
данных позволяет:
· Перемещать и помещать медиа
объекты в любое место сцены.
· Трансформировать объекты, изменять
геометрические размеры.
· Собирать из отдельных объектов
составной объект и проводить над ним какие-нибудь операции.
· Изменять текстуру объекта (например
цвет), манипулировать объектом (заставить ящик передвигаться по сцене)
· Изменять точку наблюдения за
сценой.
MPEG-J
MPEG-J - стандартное расширение MPEG-4 в котором
используются Java - элементы.
MPEG-7
MPEG-7 - не является продолжение MPEG как такового - стал
разрабатываться сравнительно недавно, планируется его закончить к 2001 г. MPEG
- 7 будет обеспечивать стандарт для описания различных типов мультимедийной
информации (а не для ее кодирования), чтобы обсепечивать эффективный и быстрый
ее поиск. MPEG-7 официально называют - "Multimedia Content Description
Interface" (Интерфейс описания мультимедиа данных). MPEG-7 определяет
стандартный набор дискриптеров для различных типов мультимедиа информации, так
же он стандартизует способ определения своих дискриптеров и их взаимосвязи
(description schemes). Для этой цели MPEG-7 вводит DDL (Description Definition
Language - язык описания определений). Основная цель применения MPEG-7 это
поиск мультимедиа информации (так же как сейчас мы можем найти текст по
какому-нибудь предложению), например:
· Музыка. Сыграв несколько нот на клавиатуре можно получить
список музыкальных произведений, которые содержат такую последовательность.
· Графика. Нарисовав несколько линий на экране, получим набор
рисунков содержащих данный фрагмент.
· Картины. Определив объект (задав его форму и текстуру)
получим список картин, содержащих оный.
· Видео. Задав объект и движение получим набор видео или
анимации.
· Голос. Задав фрагмент голоса певца, получим набор песен и
видео роликов где он поет.
MHEG
MHEG - (Multimedia & Hypermedia Expert Group --
экспертная группа по мультимедиа и гипермедиа) - определяет стандарт для обмена
мультимедийными объектами (видео, звук, текст и другие произвольные данные)
между приложениями и передачи их разными способами (локальная сеть, сети
телекоммуникаций и вещания) с использованием MHEG object classes. Он позволяет
программным объектам включать в себя любую систему кодирования (например MPEG),
которая определена в базовом приложении. MHEG был принят DAVIC (Digital
Audio-Visual Council -- совет по цифровому видео и звуку). MHEG объекты
делаются мультимедиа приложениями используя multimedia scripting languages.
Утверждается, что MHEG -
будущий международный стандарт для интерактивного TV, так как он работает на
любых платформах и его документация свободно распространяема.
Что такое MP3 ?
MP3 -- сокращение от MPEG
Layer3. Это один из потоковых форматов хранения и передачи аудиосигнала в
цифровой форме, разработанный Fraunhofer IIS
и THOMSON, позднее утвержденный как часть стандартов сжатого видео и аудио
MPEG1 и MPEG2. Данная схема является наиболее сложной схемой семейства MPEG
Layer 1/2/3. Она требует наибольших затрат машинного времени для кодирования по
сравнению с двумя другими и обеспечивает более высокое качество кодирования.
Используется главным образом для передачи аудио в реальном времени по сетевым
каналам и для кодирования CD Audio. Полные спецификации формата доступны на
сайте http://www.mp3tech.org/.
Детали
MP3 -- потоковый формат. Это
означает, что передача данных происходит потоком независимых отдельных блоков
данных -- фреймов. Для этого исходный сигнал при кодировании разбивается на
равные по продолжительности участки, именуемые фреймами и кодируемые отдельно.
При декодировании сигнал формируется из последовательности декодированных
фреймов.
Высокая степень компактности
MP3 по сравнению с PCM 16Bit Stereo 44.1kHz (CD Audio) и ему подобными
форматами при сохранении аналогичного качества звучания достигается с помощью
дополнительного квантования по установленной схеме, позволяющей минимизировать
потери качества.
Последнее, в свою очередь,
достигается учетом особенностей человеческого слуха, в том числе эффекта
маскирования слабого сигнала одного диапазона частот более мощным сигналом
соседнего диапазона, когда он имеет место, или мощным сигналом предыдущего
фрейма, вызывающего временное понижение чувствительности уха к сигналу текущего
фрейма. Также учитывается неспособность большинства людей различать сигналы, по
мощности лежащие ниже определенного уровня, разного для разных частотных
диапазонов.
Подобные техники называются
адаптивным кодированием и позволяют экономить на наименее значимых с точки
зрения восприятия человеком деталях звучания. Степень сжатия, и,
соответственно, объем дополнительного квантования, определяются не форматом, а
самим пользователем в момент задания параметров кодирования. Ширина потока
(bitrate) про кодировании сигнала, аналогичного CD Audio (44.1kHz 16Bit Stereo)
варьируется от наибольшего, 320kbs (320 килобит в секунду, также пишут kbs,
kbps или kb/s), до 96kbs и ниже.
Термин
битрейт в общем случае обозначает общую величину потока, количество передаваемой
за единицу времени информации, и поэтому не связан с внутренними тонкостями
строения потока, его смысл не зависит от того, содержит ли поток моно или
стерео, или пятиканальное аудио с текстом на разных языках, или что-либо еще
На проведенных тестах специально
приглашенные опытные эксперты, специализирующиеся на субъективной оценке
качественности звучания, не смогли различить звучание оригинального трека на CD
и закодированного в MP3 с коэффициентом сжатия 6:1, то есть с битрейтом в
256kbs. Правда, тесты были проведены на небольшом количестве материала, и на
самом деле не все столь хорошо, нередко бывает действительно нужно пользоваться
320kbs.
Более низкие битрейты,
несмотря на их популярность, не дают возможности обеспечить надлежащее качество
кодирования, что незаслуженно обеспечило MP3 дурную славу любительского
формата. На самом деле, хотя и 256kbs, и даже 320kbs тоже не дают возможности
осуществить полностью прозрачное кодирование, но отличия от CD Audio, по
которому кодируется тестовый MP3, сравнимы с отличиями самого CD Audio от
исходного аналогового сигнала, из которого он был получен путем оцифровки. То
есть потери, конечно, есть, но несущественны с точки зрения того, кому качество
CD Audio представляется достаточным. Фактически, их обнаружение обычно является
задачей нетривиальной на аппаратуре класса Hi-Fi.
Настоящее
и будущее MP3
MP3 на сегодня имеет два
огромных преимущества перед другими
доступными форматами его рода. Одно из них состоит в том, что ни про один из
существующих подобных форматов нельзя пока сказать, что он полностью
гарантирует устойчивое сохранение качества звучания на достаточно высоких
битрейтах, кроме MP3, который достойно выдержал проверку временем. Пожалуй,
единственный известные мне конкурент в этом плане -- последние варианты формата
ATRAC, используемый в минидисках.
Для MP3 также написано
множество удобного программного обеспечения. Этот факт отражает второе, не
менее важное преимущество -- на ближайшие годы, а возможно, и на все
десятилетие, MP3 стал стандартом де факто, настолько много сделано в него
вложений пользующимися им сторонами, в том числе и цифровыми радиостанциями.
MP3 довольно долго оставался
неизвестным, но несколько лет назад начался взрывной рост его популярности,
столь же быстро начали появляться
залежи нелегальных MP3 файлов. Сейчас налажено производство аппаратных MP3
плееров, а карманных, и для автомобилей. Таким образом, MP3 стал первым массово
признанным форматом хранения аудио после CD-Audio.
Несмотря на то, что MP3
появился достаточно давно, более новые форматы, претендующие на его место,
появившиеся к настоящему моменту, все на поверку оказались любительскими. Они
могут быть или не быть хороши по сравнению с MP3 на низких битрейтах, это
зависит от трека и особенностей слуха конкретного человека, но на место MP3
256kbs... 320kbs претендовать не способны.
Возможно,
"монополия" MP3 в сфере компьютеров на низких битрейтах все же будет
отчасти сломлена новым форматом от Microsoft -- WMA. Но пока рано говорить об
этом. С другой стороны, появление Microsoft на данном рынке со столь сильной
разработкой означает быстрое отсеивание оказавшимися неудачными ветвей AAC и
VQF. Впрочем, остается надежда, что AAC еще будет доработан.
В завершение упомяну один
адрес, по которому расположился проект по созданию свободного от патентных
ограничений кодера -- http://www.sulaco.org/mp3/free.html.
Правда, патентов вокруг MP3 накопилось столько, что, думаю, проект этот
завершен не будет.
(Впрочем, если говорить о
свободных от патентах аудиокодерах вообще, то существует и более реальный
проект, не являющийся проектом MP3 кодера. Он расположен по адресу http://www.xiph.org/.)
Описание процесса
кодирования
Подготовка
к кодированию. Фреймовая структура
Перед кодированием исходный
сигнал разбивается на участки, называемые фреймами, каждый из которых
кодируется отдельно и помещается к конечном файле независимо от других.
Последовательность воспроизведения определяется порядком расположения фреймов.
Каждый фрейм может кодироваться с разными параметрами. Информация о них
содержится в заголовке фрейма.
Начало
кодирования
Кодирование начинается с
того, что исходный сигнал с помощью фильтров разделяется на несколько,
представляющих отдельные частотные диапазоны, сумма которых эквивалентна
исходному сигналу.
Работа
психоакустической модели
Для каждого диапазона
определяется величина маскирующего эффекта, создаваемого сигналом соседних
диапазонов и сигналом предыдущего фрейма. Если она превышает мощность сигнала
интересующего диапазона или мощность сигнала в нем оказывается ниже
определенного опытным путем порога слышимости, то для данного фрейма данный
диапазон сигнала не кодируется.
Для оставшихся данных для
каждого диапазона определяется, сколькими битами на сэмпл мы можем
пожертвовать, чтобы потери от дополнительного квантования были ниже величины
маскирующего эффекта. При этом учитывается, что потеря одного бита ведет к
внесению шума квантования величиной порядка 6 dB.
Завершение
кодирования
После завершения работы
психоакустической модели формируется итоговый поток, который дополнительно
кодируется по Хаффману, на этом кодирование завершается.
Замечание
На практике схема несколько
сложнее. Например, необходимо согласовываться с требованиями битрейта. В
зависимости от кодера это приводит при повышении битрейта к разного рода
релаксациям при отборе сохраняемой части исходного сигнала, а при понижении --
наоборот, к ужесточению критериев.
Способы
кодирования стерео сигнала
В рамках MP3 кодирование
стереосигнала допустимо четырьмя различными методами:
Dual Channel -- Каждый канал получает ровно половину потока и
кодируется отдельно как моно сигнал. Рекомендуется главным образом в случаях,
когда разные каналы содержат принципиально разный сигнал -- скажем, текст на
разных языках.
Выставляется в некоторых
кодерах по требованию.
Stereo -- Каждый канал кодируется отдельно, но кодер может
принять решение отдать одному каналу больше места, чем другому. Это может быть
полезно в том случае, когда после отброса части сигнала, лежащей ниже порога
слышимости или полностью маскируемой, оказалось, что код не полностью заполняет
выделенный для данного канала объем, и кодер имеет возможность использовать это
место для кодирования другого канала. В документации к mp3enc замечено, что
этим, например, избегается кодирование "тишины" в одном канале, когда
в другом есть сигнал.
Данный режим выставлен по
умолчанию в большинстве ISO-based кодеров, а также используется продукцией FhG
IIS на битрейтах выше 192kbs. Применим и на более низких битрейтах порядка
128kbs... 160kbs.
Joint Stereo (MS
Stereo) -- Стереосигнал
раскладывается на средний между каналами и разностный. При этом второй
кодируется с меньшим битрейтом. Это позволяет несколько увеличить качество
кодирования в обычной ситуации, когда каналы по фазе совпадают. Но приводит и к
резкому его ухудшению, если кодируются сигналы, по фазе не совпадающие. В
частности, фазовый сдвиг практически всегда присутствует в записях,
оцифрованных с аудиокассет, но встречается и на CD, особенно если CD сам был
записан в свое время с аудиоленты. С другой стороны, уже совершена (первая ?)
попытка написать программу для автоматической коррекции фазового сдвига, адрес
страницы автора -- http://www.chat.ru/~lrsp.
Возможно, она немного поможет любителям кодировать оцифровки с аудиокассет с
битрейтом порядка 128kbs.
Режим выставлен по умолчанию
продукцией FhG IIS, а также кодером Lame, для битрейтов от 112kbs до 192kbs.
Joint Stereo (MS/IS
Stereo) -- Вводит еще один метод
упрощения стереосигнала, повышающий качество кодирования на особо низких
битрейтах. Состоит в том, что для некоторых частотных диапазонов оставляется
уже даже не разностный сигнал, а только отношение мощностей сигнала в разных каналах.
Понятно, для кодирования этой информации употребляется еще меньший битрейт.
В отличие от всех предыдущих,
этот метод приводит к потере фазовой информации, но выгоды от экономии места в
пользу среднего сигнала оказываются выше, если речь идет о очень низких
битрейтах.
Этот режим по умолчанию
используется продукцией FhG IIS для высоких частот на битрейтах от 96kbs и ниже
(другими качественными кодерами этот режим практически не используется).
Но, как уже говорилось, при
применении данного режима происходит потеря фазовой информации, также теряется
любой противофазный сигнал.
Простые
заблуждения и ошибки, делаемые пользователями MP3
Вокруг MP3 набралось столько
заблуждений, что создается впечатление, что так все и было задумано, что это
чей-то заговор. :) Но -- по порядку.
Одно из самых больших
заблуждений, связанных с MP3, постоянно проявляется в споре "128kbs vs
256kbs -- с каким битрейтом кодировать". Аргументы сторонников первого
варианта исчерпываются напоминанием, что такие MP3 вдвое меньше. Утверждение,
что уж лучше держать CD Audio вместо MP3 256kbs, несостоятельно -- качество MP3
256kbs... 320kbs практически сответствует оригиналу, а занимаемый объем в
4.5--6 раз меньше. Заблуждение же состоит в том, что и 128kbs дает достаточно
высокое качество. На самом же деле для людей, сознательно выбирающих 128kbs,
сохранение близкого к исходному качества просто не является слишком важным, так
как их аппаратура обычно не лучше плееров -- "мыльниц;". В то же
время многие владельцы CD кодируют их в MP3 даже просто потому, что гораздо
реже нужно CD менять - на моем 8Gb винчестере поместится более пятидесяти часов
музыки в MP3 битрейта 320kbs. Как говорится, в этом случае мотивы пользователей
128kbs нам непонятны.
Чтобы не суметь отличить MP3
128kbs от оригинала, нужно либо не иметь слуха, либо взять аппаратуру похуже. И
то, что на большинстве компьютерных систем с момента покупки стоит ужасно
шумная звуковая плата от ESS, известно всем хорошо. Только мне с некоторых пор
кажется, что дело еще и в постоянном отравлении некачественным звуком, и, как
следствие, временной (но постоянно возобновляемой) потере чувствительности. Мы
слишком часто слушаем то, что слушать не стоило бы, и дело не только
характеристиками компьютерной техники -- MP3 128kbs при нормальном слухе не
понравится и на ESS. Конечно, по сравнению с дребезгом колонок уличного киоска
под аккомпанемент трамвая звучание MP3 128kbs может казаться весьма неплохим,
но это не нормально.
А что до карты -- простая
малошумная карта и относительно приличные наушники стоят не так уж много.
Поэтому в обзоре не учитываются шумы компьютера и карты -- эти трудности вполне
преодолимы.
Другое небольшое заблуждение
состоит в том, что уровень шумов декодированного сигнала сильно связан с
уровнем качества MP3. Но это заблуждение развевается очень быстро -- заметить,
что качество MP3 зависит от других причин, легче легкого. Как правило, уровень
шумов очень низок на любых битрейтах, это скорее характеристика плеера.
Кроме того, в большинстве
учебников прямо говорится о неспособности человека слышать частоты выше 16kHz.
Но во-первых, это просто неверно, многое зависит от мощности сигнала и от
возраста слушателя. Во-вторых, человек -- существо, не лишенное оригинальности.
Даже когда он не слышит такие звуки с помощью уха осознанно, он все же ощущает
их. И это влияет на восприятие. Поэтому обрезание частот выше 16kHz можно
считать обоснованным на низких битрейтах, когда оно позволяет намного лучше
закодировать более низкие диапазоны, но нельзя не брать в расчет, когда речь заходит
о высоких битрейтах, приближающих качество сигнала к уровню CD Audio. Да,
кстати, у детей частотный порог слышимости куда выше 16kHz.
Немного
о програмах
Новых пользователей в
заблуждение вводит повсеместная реклама очень продаваемых, но в то же время
очень по сравнению с другими посредственных кодеров от XingTech. По поводу их
недостатков я еще пройдусь ниже.
На втором месте по объему
рекламы мы видим кодеры от самого уважаемого производителя, FhG IIS, но они
тоже обладают определенными недостатками, к тому же дороги, поэтому дешевые и
быстрые кодеры от XingTech сегодня на вершине популярности.
Но недостатки кодеров от FhG
IIS в основном связаны со слабыми возможностями настройки и концентрацией
усилий разработчиков на низких битрейтах. Если FhG IIS будет с того
коммерческая выгода, то специалисты быстро все поправят.
О третьей группе кодеров,
основанных на свободно доступном исходном коде написанного в иллюстративных
целях кодера от ISO, также будет сказано ниже.
Из плееров же, как не
составляет труда заметить, наиболее популярен и раскручен плеер Winamp. Еще
недавно он не блистал высоким качеством звука, да и сейчас снова не блещет, но
недавно на протяжении нескольких версий в нем использовался декодер от FhG IIS,
и при условии его установки ( например, из версии 2.22 ) вопрос с выбором
плеера практически отпадает.
Кроме того, есть и другие
хорошие плееры, могущие поспорить в Winamp, некоторые из них упомянуты во
второй части обзора.
Кроме плееров и кодеров, к
программам, связанным с MP3, относят и грабберы -- копировщики треков с CD в
WAV-файлы.
Немного
о некоторых битрейтах
Чем выше битрейт, тем выше
оказывается качество закодированного сигнала. Но каждый битрейт имеет свою
сферу применения.
Профессионалы, аудиофилы, а
также все, кто заботится о создании качественной копии, вполне соответствующей
про качеству оригиналу, применяют только высокие битрейты. С другой стороны,
наиболее многочисленная часть любителей MP3 применяет его для кодирования
"популярной" музыки, главное отличительное свойство которой --
недолговечность, способность быстро устаревать и становиться неинтересной,
поэтому такие MP3 и хранятся недолго, и требования к их качеству гораздо более
низкие, что приводит к использованию низких битрейтов.
В Интернет, как правило,
можно найти только MP3, закодированные
с битрейтом 128kbs (и/или кодерами от XingTech, о которых ниже). Этот битрейт,
являясь "любимым" битрейтом FhG IIS, был признан также оптимальным
для использования в Интернет. В принципе, на эту роль больше подошел бы битрейт
112kbs по разным соображениям, но он оказался маловат для достаточно
качественного кодирования, и дополнительно закрепился битрейт 128kbs, несколько
превышающий по качеству 112kbs, и который позже стал основным в Интернет.
Если отвлечься ненадолго от
кодирования собственно CD Audio, то можно заметить, что поток величиной порядка
112kbs довольно удобен, например, для прямых трансляций на большие расстояния.
В этом случае MP3 хорошо окупается, по сравнению с передачей того же сигнала
другими способами. На странице FhG IIS можно почитать более подробно об этом.
Также MP3 используется на цифровых радиостанциях, но там требования к качеству
на полпорядка выше.
Вернемся к кодированию CD
Audio.
Выбирать основной для себя
битрейт вам самим, в зависимости от потребностей. Я сам, когда начинал
разбираться с MP3, изначально искал именно и только полноценную замену CD
Audio, с меньшим объемом, но с как минимум не меньшим качеством, и такую
возможность MP3 в общем-то дает.
Дело в том, что в уже
упоминавшихся тестах с участием профессиональных прослушивателей, в которых для
всех использованных тестовых композиций не было найдено различий в звучании MP3
256kbs и оригинала, было на самом деле использовано весьма ограниченное число
композиций. На практике же существует довольно много композиций, где приходится
переходить на 320kbs, и в то же время я не слышал ни об одной, где результат
кодирования на 320kbs оказался бы недостаточно хорош. Отличия, конечно, все же
остаются обнаружимы при использовании исключительной аппаратуры, но в целом
качество практически то же.
В общем же из результатов
всех известных мне тестов можно сделать следующие выводы. Во-первых, битрейт
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/.
Кодеры от FhG IIS известны
наивысшим качеством кодирования на низких и средних битрейтах благодаря
наиболее подходящей для таких битрейтов психоакустичекой модели. Из консольных
кодеров данной группы наиболее предпочтителен l3enc 2.61 (не 2.71 и не 2.72, на
знаю про 2.74), также пока не отброшен mp3enc 3.1, но последний никто всерьез
не тестировал. Другие кодеры, такие, как AudioActive или MP3 Producer, обладают
значительными недостатками, правда, в основном это ограничения возможностей
настройки и неразвитость интерфейса.
Также существует старый кодек
ACM pro codec авторства FhG IIS, и несколько нелегальных кодеков, код для
которых выкорчеван из последних кодеров FhG IIS.
Остальные кодеры ведут свое
происхождение от исходных кодов ISO. Не считая таких "ошибок
эволюции", как SoundLimit, в котором значительно увеличена скорость за
счет еще более значительного ухудшения качества, получаем два основных
направления развития -- оптимизация кода по скорости и оптимизация алгоритма по
качеству.
До недавнего времени первую
линию наилучшим образом представлял кодер BladeEnc, в котором используется
первоначальная модель ISO, но проведено много оптимизаций кода, а вторую --
mpegEnc, известный также и как самый медленный MP3 кодер.
Но откуда берется высокое
качество mpegEnc на высоких битрейтах, я уже упомянул выше. На самом же деле
серьезная оптимизация самого алгоритма впервые встречена в кодере Lame, в
котором использована самостоятельно разработанная психоакустическая модель
GPSYCHO.
Есть все основания считать
Lame наилучшим из основанных на коде ISO кодеров. По скорости он давно догнал
остальные, а по качеству скоро должен отдать последние позиции и mpegEnc...
впрочем, обо всем этом я уже писал выше.
Lame может быть собран
практически на любой платформе, на которой есть компилятор языка C.
Скомпилированный вариант Lame в виде библиотеки dll входит в состав граббера
Cdex, но предпочтительнее использовать вариант, запускаемый из командной
строки, он имеет более другие возможности настройки, к тому же работает
быстрее. Но его надо собирать самому. Кстати, в состав Cdex входит и свой
кодер, но он и раньше никем особенно не тестировался, а сейчас это не
представляется нужным.
Что такое
front-end?
Front-end -- программа,
пpедлагающая оконный интерфейс для повышения комфоpтности pаботы с пpогpаммами,
его не имеющими. В слyчае MP3 -- с кодеpами, управляемыми из командной стpоки,
или yстановленного в системе кодека.
После подачи команды на
кодиpование front-end пеpедает введенные паpаметpы собственно кодеpy и ждет
завеpшения его pаботы. Этот процесс может сопpовождаться как попытками
пpедсказать оставшееся вpемя, так и выводом скромной таблички "Please
wait".
В большинстве грабберов обеспечены
средства для подключения внешних кодеров, поэтому любой из них может быть
использован как front-end. В частности, при установленном ACM pro codec как
таковой может быть использован любой граббер, позволяющий выбирать формат
сохранения награбленного.
Что
такое ACM pro codec (MP3-кодек)?
Формат WAV является
метаформатом для данных любого типа. Имеет стандартный заголовок и описания
областей данных, которых может быть несколько, способ же кодирования
аудиосигнала может быть каким угодно. Вполне могут содержаться данные, к аудио
отношения не имеющие.
Каждый метод кодирования,
указываемый в заголовке, имеет собственный идентификатор, в соответствии с
которым Windows и определяет, установлен ли кодек для работы с данным файлом, и
если установлен -- использует его.
Кодеки, индивидуальные для
каждого подформата, регистрируются в системе при их установке, после чего
становится возможным использовать WAV-файлы, содержащие аудиоданные в форматах,
поддерживаемых данными кодеками.
Тем не менее, хотя для MP3
тоже существует по крайней мере один кодек ACM pro codec от FhG IIS, сам по
себе формат из-за потерь при кодировании непригоден на роль промежуточного,
поэтому в редакторах с WAV-MP3 работать не рекомендуется. Единственным разумным
применением данного кодека можно считать декодирование WAV-MP3, либо их
кодирование, когда по каким-либо причинам неудобно сделать это из нормального
кодера. При установленном кодеке можно применять WAV-MP3 в качестве стандартных
звуков Windows.
Помимо оригинального кодека
от FhG IIS, позволяющего кодирование только с битрейтом 128kbs и ниже,
существуют несколько нелегальных версий кодека, сделанных группой Radium из
кода, выкорчеванного из нового 'Продюсера'. Но первая версия этого кодека была
нестабильной, и я не вижу оснований для того, чтобы испытывать доверие к более
новым версиям. Лучше сделать еще один кодек из Lame.
Файлы
какого формата можно перевести в формат MP3?
Кодирование из формата WAV
PCM поддерживают все кодеры. Многими поддерживается AIFF. Mp3enc может
принимать исходные данные потоком, без промежуточного файла, в фоpмате PCM. А
mpegEnc и Cdex предлагают кодировать прямо с CD-ROM. Lame распространяется в
виде исходных кодов и может быть обучен любому формату.
Каков
статус MP3 кодеров?
Все продукты Fraunhofer IIS и
Xing Tech -- коммерческие, но полные версии обычно можно найти на FTP
поисковиках.
BladeEnc, mpegEnc --
freeware, но FhG IIS пожелал сделать их развитие невозможным. Сделано это очень
простым методом -- за распространение кодеров нужно платить пеню FhG IIS, даже
если кодер распространяется бесплатно. Поэтому свободное распространение
mpegEnc невозможно, также могут возникнуть трудности с распространением
BladeEnc, несмотря на особую политику страны автора по отношению к патентам на
математические алгоритмы.
Lame не угрожает подобная
участь, так как он распространяется в виде патча к исходному коду ISO и сам по
себе кодером быть признан не может.
Каковы
системные требования?
Фактически, единственное
требование к системе -- наличие компилятора C. Но производительность MP3
кодеров на слабых системах оставляет желать лучшего, и из процессоров Intel не
рекомендуется использовать что-либо ниже 486.
Декодиpование MP3
Cтандаpт MP3 однозначно
опpеделяет, какие именно данные содеpжатся в MP3-файле. Hо сам процесс декодирования,
процесс перевода аудио из MP3 в PCM, неизбежный при воспроизведении, более
корректно будет назвать синтезом, чем декомпрессией. На практике он столь же
неоднозначен, как и процесс кодирования.
Многие пpинимают за некий
стандаpт самый пеpвый из декодеpов, написанный в FhG IIS -- l3dec. Этот декодер
при работе не предпринимает каких-либо попыток "улучшить" звучание и,
как правило, дает точную АЧХ сохраненного сигнала. Также в силу корректности
его можно считать практически идеальным декодером для MP3 высоких и средних
битрейтов.
С другой стороны, на практике
иногда обнаруживают себя ньюансы, о которых раньше не задумывались. Например,
разные кодеры сохраняют аудио в MP3 немного по-разному, хотя и не выходя за
рамки стандарта, но несколько меняя алгоритм оптимального восстановления
сохраненной части сигнала. Но если в данном случае отличия оказываются
несущественны, то тот простой факт, что при кодировании с битрейтом 128kbs,
пользующимся бешенной популярностью, мы значительно теряем в качестве, приводит
к более существенным последствиям -- на низких битрейтах становится оправданным
применение различных 'улучшающих' звучание алгоритмов, т.е. программных DSP, и
более корректный декодер может оказаться менее предпочтителен, чем вносящий
дополнительные искажения, но "повышающий" этим качество звучания. К
сожалению, выбор не слишком велик.
Когда
какой декодер лучше?
За время существования MP3
было написано великое множество самых разных декодеров. Тем не менее, выбор не
составляет слишком большой проблемы. Основная сложность в том, что критерии
оценки качества декодеров сильно разнятся для низких битрейтов порядка 128kbs и
для высоких порядка 256kbs.
К ориентированным на высокие
битрейты декодерам предъявляется одно основное требование -- корректное декодирование,
то есть корректность примененного алгоритма декодирования и отсутствие ошибок в
его реализации. Считается, что высокий уровень качества обеспечивается шириной
потока, но тем не менее, разные декодеры дают разные по качеству результаты.
Разумеется, высокая скорость работы декодера также желательна.
В данной категории хорошо
себя чувствуют декодеры от FhG IIS, к которым обвинений в некорректности пока
никто не смог предъявить.
К ориентированным на низкие
битрейты декодерам выдвигаются несколько другие требования. Отличие состоит в
том, что в силу искажений, вносимых при кодировании MP3 128kbs, требования к
корректности декодирования ослабевают, в то время как требование качественности
звучания никуда не пропадает. Поэтому не слишком корректные, но приятно
звучащие плееры пользуются популярностью.
Большинство декодеров
являются плеерами, но не каждый плеер может перенаправлять вывод в файл, что
приводит к трудностям в его оценке. Существует мнение, что такие плееры не
следует называть декодерами.
В NAD и NADDY на одном из
этапов декодирования пpименяется алгоpитм пpедсказания, также сyществyет
возможность подстpойки под особенности кодеpов, использованных пpи полyчении
MP3. Если говорить конкретно, то возможна подстройка под семейство ISO-based, под
кодеры семейства FhG IIS, под старые кодеры XingTech с обрезом частот выше
16kHz и даже под еще не вышедший ко вpемени выхода NAD 0.93 кодеp ARCAM. В
наследнике NAD, NADDY, упоминается вместо него "ARCoder v1.2+";
видимо, он все-таки вышел. Но, как уже упоминалось, значительного эффекта эта
подстройка не дает.
Хотя NAD долгое время
заслуженно считался чемпионом по части качества, в последнее время другой плеер
-- Apollo -- мог с ним в этом поспорить. Но в данном случае речь идет о низких
битрейтах, к тому же развитие Apollo теперь тоже остановлено. NAD просто более
корректен.
Если задаться целью
декодирования в WAV-файл, то выбоp сейчас следyет пpоизводить междy NAD, l3dec
и Winamp (версии 2.21-2.22), пpичем чем выше битpейт, тем меньше причин
пользоваться NAD. Для низких битрейтов можно также попробовать Apollo, но лучше
Winamp с соответствующим "улучшающим" звучание плагином.
Hа высших битрейтах выбор
производится только между корректными декодерами, и pазница оказывается
настолько мала, что выбоp уже пpоизводится, например, междy yдобными
интеpфейсами NAD и Winamp и yпpавлением l3dec с помощью ключей командной
стpоки. Скорее всего, при серьезной проверке на битрейтах 256kbs-320kbs
l3dec/Winamp превзойдут по качеству прочие -- при написании почти всех
декодеров думают, к сожалению, главным образом о качестве звучания MP3 128kbs,
на корректность тратятся только в FhG IIS. Но это не делает вывод NAD или
Sonique непригодным или некачественным -- и в данном случае все отличия снова
укладываются в рамки оговорки, сделанной в начале первой части.
L3dec работает только из
командной строки и декодирует только в файл, поэтому выбор плеера производится
в основном между популярным Winamp, NAD, Apollo и некоторыми другими.
Самые известные плееры
Winamp
Winamp является самым
попyляpным на сегодня плееpом.
Winamp -- это мультимедиа
плеер с подержкой неограниченного числа форматов. При этом могут используются
декодеры, предоставляемые производителями. В целом система напоминает работу
Windows с WAV файлами.
В версии 2.20 роль
встроенного декодера MP3 наконец начал играть декодер от FhG IIS. После этого в
плане проигрывания MP3 к Winamp не осталось серьезных претензий, но начиная с
версии 2.23 был возвращен старый декодер, поэтому для качественного
воспроизведения необходимо брать декодер из версий 2.21-2.22 ( так как 2.20
отказывается проигрывать некоторые MP3 ).
NAD
Признанным чемпионом по части
звyчания, однако, на сегодня все же остается NAD. Его звучание несколько менее
корректно на высоких битрейтах, но очень приятно. Превосходят его только
декодеры от FhG, отличающиеся корректностью.
Во время своего развития
данный плеер почти прямо противостоял Winamp и имел все шансы отобрать у него
со временем львиную долю поклонников.
К сожалению, в тот момент,
когда дописывались самые важные элементы интрефейса, которые должны были
окончательно уравнять NAD по возможностям с Winamp, его развитие было прервано.
Последние версии NAD содержат только основные функции, хотя идея плагинов
использовалась в свое время и в нем, причем куда раньше того же Winamp.
Наиболее известны следующие
веpсии NAD.
NAD 0.80 Стабильная, завеpшенная пpогpамма, но для обеспечения
возможности дальнешего pазвития автоp оказался вынyжден пеpеписать весь код с
нyля. В отличие от более новых, понимает ключи командной строки.
NAD 0.93 Последняя из завершенных веpсий после 0.80. Hекотоpые
втоpостепенные фyнкции, такие, как pедактоp поля ID3-TAG, еще не pеализованы.
Местами проявляются баги. Hо качество воспpоизведения не вызывает сомнений, при
этом поддеpживается streaming и вывод в WAV-файл, поэтому его можно
использовать и как просто декодер.
NAD 0.94 Готовился к выходу, когда весь пpоект неожиданно
оказался выкyплен DimensionMusic. Чем и зарублен на корню, так как развитие NAD
как плеера прекратилось. На основе 'движка' был создан набоp библиотек Audio
Enlightenment ( AE ), но программист занимался его разработкой в свободное
время, и первые результаты появились только через полгода.
На основе получившегося
набора библиотек в последние дни 98-го была выпущена недоработанная в плане
интерфейса первая и последняя бета-версия плеера NADDY, прямого наследника NAD.
Скачать NADDY можно на страничке http://
|