Наверняка все уже давно знают о MPEG и не раз смотрели видео-CD и слушали на WinAmp музыкальные компакты с кажущимися невероятными, на первый взгляд, по величине списками песен. Не так давно появившийся стандарт сумел быстро завоевать доверие и внимание к себе со стороны тысяч компьютерщиков. Однако до сих пор большинство из них знают лишь сокращения MP3 и MPG, совершенно не подозревая о том, что за ними стоит.
Аббревиатура MPEG расшифровывается как Moving Pictures Eхperts Group, то есть группа экспертов по движущимся картинкам. Это рабочая группа международной организациии стандартизации (ISO), разрабатывающая стандарты для сжатия цифровой видео/аудио информации и, в частности, определяющая синтаксис видео и аудиопотоков низких скоростей передачи и соответствующие декодеры для них. Алгоритмы кодировки не устанавливаются стандартом, что дает возможность постоянного их совершенствования. Кроме того, MPEG определяет процесс мультиплексирования нескольких потоков видео- и аудиоданных в одном информационном потоке и публикует отчеты, содержащие описание операции декодирования и программные примеры кодировщиков. Эта группа обычно встречается 4 раза в неделю и, кстати, каждый эксперт, работающий в данном направлении, может присоединиться к MPEG (далее по тексту аббревиатурой MPEG будем называть метод кодирования, а не самих экспертов, его придумавших).
Для людей, хоть немного знакомых с MPEG, пожалуй, не секрет, что все алгоритмы, заканчивающиеся на ...PEG не воспроизводят оригинал полностью после цикла кодирования и декодирования. То есть не вся информация, содержавшаяся в исходных данных, будет присутствовать после раскодировки MPEG-потока (сжатие с потерями). Естественно, такой метод не подходит для сжатия файлов данных или кода программ, но зато он превосходно работает со звуком и графикой!
MPEG-кодирование основано на модели восприятия звука человеком. Связка кодер/декодер не должна точно повторять входной сигнал, ибо весь ее смысл в том, чтобы на выходе сигнал звучал лишь для человеческого уха точно так же, как и оригинал. Некоторые части звукового сигнала просто не воспринимаются человеком из-за особенностей нашего слухового аппарата и могут быть удалены без значительной потери качества звука. Для этого в кодировщике содержится так называемая психоакустическая модель, которая анализирует входной сигнал в последовательных временных блоках и определяет для каждого блока спектральные компоненты с помощью частотных преобразований. Затем моделируются маскирующие свойства человеческого слухового восприятия и определяется сколько-нибудь заметный уровень шума, называемый порогом маскирования.
Параллельно входной сигнал подвергается преобразованию, в результате которого получаются спектральные компоненты для последующего кодирования. На стадии квантизации и кодирования кодировщик пытается распределить доступное число бит данных так, чтобы удовлетворить требованиям скорости передачи (bit rate) и маскирования, при этом шум квантования распределяется по частотным полосам так, что маскируется общим сигналом и остается неслышным. Информация о том, как биты распределены по спектру, вставляется в тот же поток данных. Кстати, термин "скорость передачи" означает среднее число бит, необходимое для одной секунды звуковых данных. Обычно она измеряется в килобитах в секунду (kbps), т.е. 1000 бит/с. С помощью MPEG-2 AAC, например (см. далее), звук CD-качества может передаваться со скоростью 96 kbps, а в очень популярном сейчас MP3 такая скорость позволит воспроизвести лишь качество близкое к CD. Коэффициент сжатия данных составит при этом около 16:1.
Декодер MPEG гораздо менее сложен, потому что не требует наличия психоакустической модели и процедуры распределения бит. Его задача - реконструировать аудиосигнал из закодированных компонентов спектра с помощью содержащейся в потоке дополнительной информации.
Сейчас огромное распространение получили аудиоданные в файлах *.MP3, формат которых иногда ошибочно называют третьим MPEG'ом. Это неправильно. Есть несколько стандартов MPEG, которые называются фазами и обозначаются арабскими цифрами: MPEG-1, MPEG-2, MPEG-4. Последний является наиболее перспективным и находится в стадии разработки, а к выпуску планируется в конце этого года. В MPEG-1 и MPEG-2 определены три разных слоя (layers). Они представляют семейства кодирующих алгоритмов и обозначаются римскими цифрами: Layer I, Layer II, Layer III (вот это и есть MP3!). Фазы были разбиты на разные слои, потому что каждый из последних имеет свои достоинства и недостатки. Сложность кодера/декодера, задержка кодер/декодер и эффективность кодирования возрастают от первого слоя к третьему. В первом слое достигается наименьшая сложность построения кодировщика, благодаря чему он хорошо подходит для приложений, в которых кодировщик не должен быть слишком сложным. Второй слой по отношению к первому может удалять избыточность исходного сигнала лучше и применять психоакустический порог более эффективно. Слой III еще более сложен и направлен на достижение минимальных скоростей потока данных. Совместимость между слоями поддерживается в иерархическом порядке, то есть "полный декодер слоя N" может с неизменным успехом декодировать потоки данных, закодированные как в слое N, так и во всех нижележащих слоях. Однако обеспечение такой совместимости, равно как и всех возможностей слоя N, не является обязательным при построении декодеров. Правда, при этом они не могут быть названы "полными декодерами уровня N".
Разобравшись со слоями, вернемся к фазам. MPEG-1 осуществляет кодирование моно- и двухканального стереозвука на частотах дискретизации, используемых для высококачественного воспроизведения (48, 44.1, 32 кГц). Сейчас MPEG-1 аудио используется во множестве приложений. Вторая фаза MPEG состоит из двух разных частей, первая из которых призвана минимизировать частоты дискретизации, обеспечивая лучшее качество звука на низких скоростях передачи, а другая являет собой расширение для многоканального звука. Она поддерживает до пяти каналов (левый, правый, центр, левый-surround и правый-surround) плюс один дополнительный низкочастотный канал. Однако в силу некоторых технических и исторических причин эта работа не нашла широкого распространения и получила свое продолжение в рамках проекта МPEG-2 AAC, который был завершен в апреле прошлого года.
AAC означает "продвинутое кодирование звука" - Advanced Audio Coding. Этот стандарт не поддерживает совместимости с предыдущими версиями MPEG, из-за чего также известен как обратно-несовместимое кодирование (Non-Backward-Compatible coding - NBC). В отличие от использовавшегося в MPEG Layer III гибридного банка фильтров, выбранного из соображений иерархической совместимости, здесь применяется модифицированное дискретное косинусоидальное преобразование, что приводит к увеличению производительности метода. Также внедрены другие технологии, отдельные из которых являются действительно новым словом в схемах кодирования этого рода. Таким образом, MPEG-2 AAC с его направленностью на передачу многоканального звука, возможно, найдет применение в кинотеатрах и системах цифрового телевидения, что, конечно, не помешает использовать его в качестве кода для передачи моно- и двухканального стереозвука. Кроме того, высокая эффективность кодирования делает AAC исключительным кандидатом и для Internet.
Как стандарт кодирования аудиоданных, MPEG уже нашел себе применение в четырех основных отраслях: радиовещание, хранение, мультимедиа и телекоммуникации. Такое многообразие возможно благодаря широкому спектру скоростей передачи и многочисленным конфигурациям, допустимым в стандарте MPEG Audio. Самые распространенные его применения - это хранение данных на компакт-дисках (CD-i, CD-Video), DVD, кабельное и спутниковое телевидение (DVB, USSB, DirecTV, EchoStar), цифровое аудиовещание, радио в Internet, соединения в ISDN и многое другое.
Но чтобы получить распространение, алгоритм должен в чем-то быть лучше ему подобных. На сегодняшний день единственным способом оценки качества алгоритмов, основанных на особенностях человеческого восприятия, являются дорогие тесты с привлечением специально тренированных слушателей. Такие традиционные параметры "качества", как отношение сигнал/шум, коэффициент гармоник и т.п., в данной области бесполезны из-за специфики воспроизведения. Ведь шумы и искажения могут быть привнесены в сигнал без потери субъективного качества звучания, поэтому альтернативы прослушиваниям пока нет. Схема же проведения теста такова: слушателям предлагают последовательность записей вида "ABC", где A - оригинал, а B и C - пара оригинального и закодированного сигналов в случайной последовательности. Слушатели оценивают B и C по пятибальной шкале (5 - прозрачно (оригинал, искажений нет), 4 - различия почти не заметны , 3 - различия слегка заметны, 2 - различия есть, 1 - различия слишком большие). Согласно тестам и выносится решение о приемлемости того или иного алгоритма.
Для интересующихся подробностями MPEG-кодирования существует программный код на Си, доступный на разнообразных сайтах, например, по адресу ftp://ftp.iis.fhg.de/pub/layer3/public_c/. Этот код написан, главным образом, для объяснения принципов работы, поэтому не ожидайте от него фантастической производительности.
И, наконец, чтобы получить больше информации по MPEG, можете заглянуть к самим экспертам по адресу www.cselt.stet.it/mpeg/.
Андрей ВОРОШКОВ
Горячие темы