Внимание: MPEG-4!
Позвольте мне представить: Бифур, Бофур, Бомбур и, обратите особое внимание, Торин!
Дж. Р. Р. Толкин. <Хоббит, или Туда и обратно>
Стандарты серии MPEG для сжатия видео/аудиоданных разрабатывает группа Motion Picture Expert Group Международной организации по стандартам (ISO). Напомним, что MPEG-1 (принят в качестве официального стандарта в 1992 г.) разрабатывался для доставки видео на CD-ROM (скорость около 1,5 Мбит/с) и получил широкое распространение во многом благодаря дискам VideoCD (до сих пор очень популярным в Азии, в частности в Китае). MPEG-2 (1994 г.) предназначен для работы с видео вещательного качества (скорость потока данных 3-15 Мбит/с) и сегодня все шире используется в цифровом телевещании, а также при кодировании видеоматериалов для дисков DVD-Video. Группа MPEG начала было работу над стандартом MPEG-3, который должен был обеспечить унификацию в компрессии потоков данных со скоростями 20-40 Мбит/с для телевидения высокой четкости (HDTV), но довольно быстро обнаружилось, что принципиальной разницы в подходах между MPEG-2 и MPEG-3 нет, в результате чего разработка последнего была прекращена, а рамки MPEG-2 расширены. MPEG-4 же, подобно Золушке, из стандарта <мультимедиа для бедных> с дергающейся картинкой в маленьком окошке превращается в главное действующее лицо мира мультимедиа (фактически подчинив себе и <старших сестер>, области применения которых теперь можно трактовать как частные случаи - как способы кодирования одного из многочисленных типов данных, предусмотренных MPEG-4). Важность этого стандарта трудно переоценить, он гораздо больше, чем просто описание правил кодирования. По существу он претендует на то, чтобы стать - спустя десять лет после зарождения цифрового мультимедиа - единым концептуальным способом описания, представления и обработки мультимедиа-данных на ближайшее десятилетие.
К сожалению, у нас в стране состояние дел с MPEG-4 пока не известно даже большинству тех специалистов, которые будут прямо вовлечены в его внедрение и применение - а с ним придется иметь дело и программистам, и разработчикам декодеров, и создателям интерактивных мультимедиа-продуктов, и телевизионным авторам и вещателям, и сетевым провайдерам, а затем и всем остальным, простым домашним потребителям. При этом, в отличие от MPEG-1 и 2, которые предстают некими строго локализованными <черными ящиками>, сжимающими/разжимающими видео незаметно для пользователя, MPEG-4 будет повсюду и прямо повлияет на способ работы и мышления многих категорий специалистов, а бесчисленные заложенные в него потенциальные возможности придется внимательно изучать, чтобы опередить конкурентов. Публикуя еще в <Мультимедиа> статью замечательного провидца (visionary) Крейга Биркмайера [4], мы рассчитывали, что она привлечет внимание к стандарту и потянет за собой серию публикаций в других изданиях, но пока увы...
К тому времени, когда данная статья увидит свет, MPEG-4 уже должен быть признан в качестве официального международного стандарта - ISO/IEC 14496. Поэтому пришла пора поговорить о нем более подробно - чтобы не быть застигнутыми врасплох, как мистер Бильбо Бэггинс, и не остаться в результате без кексов.
Новое предназначение стандарта MPEG-4 в рабочих документах группы MPEG формулируется так: он задает принципы работы с контентом (цифровым представлением медиа-данных) для трех областей: собственно интерактивного мультимедиа (включая продукты, распространяемые на оптических дисках и через Сеть), графических приложений (синтетического контента) и цифрового телевидения - DTV. При этом его главное достоинство, на мой взгляд, состоит в том, что он не просто оформляет ту или иную сложившуюся практику в качестве стандарта, но, подобно американской конституции, является опережающим, структурообразующим и фундаментальным законом, создающим основу для производства, распространения контента и способов доступа к нему в новой единой цифровой среде и открывающим - в случае его признания перечисленными отраслями - множество принципиально новых возможностей для авторов, дистрибьюторов и потребителей этого контента.
MPEG-4 - не только стандарт, фактически он задает правила организации среды, причем среды объектно-ориентированной. Он имеет дело не просто с потоками и массивами медиа-данных, а с медиа-объектами - это ключевое понятие стандарта. Объекты могут быть аудио-, видео-, аудиовизуальными, графическими (плоскими и трехмерными), текстовыми. Они могут быть как <естественными> (записанными, отснятыми, отсканированными и т. п.), так и синтетическими (т. е. искусственно сгенерированными). Примерами объектов могут служить неподвижный фон, видеоперсонажи отдельно от фона (на прозрачном фоне), синтезированная на основе текста речь, музыкальные фрагменты, трехмерная модель, которую можно двигать и вращать в кадре, анимированный спрайт (о спрайтах см. в главе <Кодирование видео>). Медиа-объекты могут быть потоковыми. Каждый медиа-объект имеет связанный с ним набор дескрипторов, где и задаются все его свойства, операции, необходимые для декодирования ассоциированных с ним потоковых данных, размещения в сцене, а также поведение и допустимые реакции на воздействия пользователя. Из объектов строятся сцены. Сцена имеет свою систему координат, в соответствии с которой размещаются объекты. Звуковые объекты также могут иметь (и менять во времени) координаты в пространстве сцены, благодаря чему достигаются стерео- и <окружающие> (surround) эффекты. Объекты могут быть элементарными (primitive) и составными (compound), т. е. представляющими ту или иную композицию элементарных объектов (например, сгенерированный трехмерный телевизор, наложенная на его экран живая видеотрансляция и исходящий из его динамиков звук). Стандарт задает правила кодирования различных объектов, их иерархии и способы композиции при построении сцены, а также методы взаимодействия пользователя с отдельными объектами внутри сцены. Каждый объект имеет свою локальную систему координат - с ее помощью объект управляется в пространстве и во времени. При помещении объекта в сцену происходит преобразование его локальной системы координат в систему координат старшего по иерархии объекта или глобальную систему координат сцены. Объекты и сцена могут обладать поведением, контролируемым уровнем композиции при визуализации сцены (характер звука, цвет объекта и т. п.). Сцена описывается с помощью иерархической структуры; узлами этой структуры являются объекты, и она динамически перестраивается по мере того, как узлы-объекты добавляются, удаляются или заменяются.
В MPEG-4 определен двоичный язык описания объектов, классов объектов и сцен BIFS, который характеризуют как <расширение Си++>. С помощью команд BIFS можно анимировать объекты, менять их координаты, размеры, свойства, задавать поведение, реакции на воздействия пользователя, менять свойства среды, изменять и обновлять сцену, выполнять 2D-геометрические построения и т. п. Поскольку язык двоичный, он весьма компактен и быстр в интерпретации. Согласно заявлениям разработчиков, многие концепции BIFS позаимствованы у VRML, и сейчас MPEG и Web 3D Consortium продолжают работу по сближению MPEG-4 и VRML.
Очень важно подчеркнуть для понимания революционной сущности MPEG-4, что окончательная сборка сцены (причем с возможностью добавления разного рода геометрических преобразований, визуальных и акустических эффектов реального времени), вообще говоря, происходит на приемном конце - в компьютере, приставке или телевизоре пользователя. Это, в частности, позволит в корне изменить (еще раз оговоримся - только после реального признания стандарта производителями телепрограмм и вещательными корпорациями и появления MPEG-4-совместимых приставок или телевизоров) всю концепцию современного телевидения. Каждый сам, наверное, представит количество степеней свободы, которое может получить телезритель. Вместо сегодняшнего плоского окошка, отображающего аудиовизуальный поток, где-то кем-то подготовленный и директивно выдаваемый в эфир, окошка, оставляющего только одну степень свободы - переключить канал (<Я тебе покручу!>) или вообще выключить телевизор, - зритель получает некое подобие виртуального пространства, с которым он может взаимодействовать и которое (при соответствующей доброй воле производителя телепрограммы) может выстраивать удобным для себя образом. Простейший пример такого взаимодействия с контентом - динамический выбор той или иной камеры или повтора при просмотре спортивных передач (естественно, при многокамерных трансляциях по цифровым каналам - но это уже близко к реальности даже для России): фактически зритель становится <Сам себе режиссер трансляции>, беря на себя функции, которые вот уже лет тридцать, сидя в телевизионном автобусе возле <Лужников> или <Динамо>, бессменно выполняют для него Ян Садеков и Раиса Панина.
Но это - только цветочки. Среди допустимых в принципе пользовательских команд взаимодействия с контентом - изменение точки наблюдения, удаление, добавление и перемещение объектов внутри сцены, выбор той или иной языковой дорожки, активизация более или менее сложной цепочки событий путем <щелчка> на объекте, ввод команд с клавиатуры и т. п. Естественно, эти воздействия должны быть предусмотрены и разрешены создателями того или иного контента - в противном случае <пользователь> остается пассивным <зрителем>, наблюдающим сцены, построенные автором, режиссером (это должно развеять опасения некоторых авторов и вещателей относительно того, что с введением MPEG-4 они утратят возможность контролировать качество продукта, картинку, которую увидит зритель на своем экране, и в конечном итоге - эстетическое и эмоциональное воздействие произведения). Для отслеживания действий пользователя и описания реакций на них реализована структура событий из VRML. Опираясь на эту модель, авторы контента могут создавать действительно интерактивные произведения и передачи.
Добавим, что стандарт предусматривает как локальную отработку воздействий и команд пользователя в декодере (client side interaction), так и пересылку их для исполнения на передающую сторону по обратному <восходящему> каналу, если декодер обладает такой возможностью, а серверная сторона готова реагировать на запросы снизу (server side interaction).
Как уже упоминалось, MPEG-4 начинал разрабатываться как способ передачи потоковых медиа-данных, в первую очередь видео, по каналам с низкой пропускной способностью (4,8-64 Кбит/с), в том числе беспроводным. Сейчас эта часть представлена блоком VLBV Core (Very Low Bit-rate Video) - ядром, обеспечивающим работу с <видео, имеющим очень низкую скорость потока данных>. Естественно, такое видео имеет ухудшенные характеристики как по разрешению (до так называемого разрешения CIF, Common Interchange Format - 320Ч240), так и по частоте кадров (до 15 кадр/с); впрочем, прогресс методов сжатия постоянно повышает <верхнюю границу> характеристик - всего два года назад речь шла лишь о 176Ч144... Помимо эффективных и помехоустойчивых методов кодирования последовательностей подобных кадров, VLBV содержит предложения по реализации операций произвольного доступа к кадрам видеопоследовательности, а также быстрой <подмотки> видеоряда вперед и назад. Это требуется, например, в бурно развивающейся области управления медиа-активами (Digital Asset Management) - для работы с базами видеоданных, хранящими видеоматериалы в низком разрешении (для целей быстрого поиска и оценки) и ссылки на места хранения соответствующих материалов в полном вещательном качестве.
Второй блок, отвечающий за работу с видео с большой скоростью потока, вплоть до вещательного качества по стандарту ITU-R 601, обеспечивает в общем те же функции, что и VLBV, однако здесь предусмотрены возможности работы с видео, имеющим не только прогрессивную, но и чересстрочную телевизионную развертку. Два названных блока обрабатывают обычные видеопотоки с прямоугольными кадрами и фактически включают в себя функциональность MPEG-1 и MPEG-2, а также кодирование <живых> текстур.
Особенно интересен третий блок - так называемые функции, зависящие от контента. Сюда входит обработка видео с произвольным силуэтом (с помощью 8-бит механизма прозрачности или двоичных масок) для отдельного кодирования видеообъектов (например, <вырезанного> силуэта диктора) и интерактивных манипуляций с ними. Помимо обычных методов межкадрового кодирования - предсказания и компенсации движения, предусмотрены механизмы работы со <спрайтами> - неподвижными изображениями, которые передаются в декодер лишь однажды и всякий раз подставляются в нужное место кадра из специального спрайтового буфера. Механизм спрайтов позволяет значительно снизить объем передаваемых данных и обеспечивает большую гибкость в построении сцен. Например, можно запускать различные объекты-спрайты (самолеты, автомобили) поверх <живого> видео-фона или же построить (выделить из реальных съемок или сгенерировать) неподвижную спрайт-панораму шириной в несколько кадров для <задника> сцены (спортивная площадка и трибуны) и, запустив поверх нее <живые> видеообъекты (игроков), панорамировать камерой вправо-влево - в этом случае для каждого кадра достаточно передавать вместо полной картинки фона только параметры камеры - направление и наплыв (zoom). Для улучшения времени реакции спрайт-панорамы могут подкачиваться с <прогрессивным разрешением>, т. е. с постепенным улучшением разрешения, как картинки в Интернете.
Этот же блок отвечает за <масштабируемость> видеообъектов. Под этим термином подразумевается, что объекты кодируются таким образом, чтобы декодер имел возможность в случае ограничений пропускной способности сети или параметров самого декодера (недостаточная вычислительная мощность, малое разрешение дисплея) огрублять изображение, декодируя и выводя лишь часть передаваемой потоковой информации (например, уменьшая частоту или разрешение кадров, увеличивая <зернистость>), но сохраняя тем не менее адекватность передачи контента. Для видеопотоков предусмотрено до трех уровней зернистости. При кодировании неподвижных изображений и текстур в MPEG-4 применяется очень эффективный wavelet-алгоритм, обеспечивающий кодирование объектов произвольной формы, 11 уровней масштабируемости по разрешению и плавную масштабируемость по качеству картинки. Результирующий закодированный поток представляет собой <пирамиду> различных разрешений, и в приемнике картинка со временем <проявляется>, улучшаясь настолько, насколько позволяет данная передающая среда.
В MPEG-4 предусмотрены инструменты и алгоритмы для работы не только с видеообъектами, но и с объектами синтетическими, т. е. сгенерированными средствами компьютерной графики: каркасными представлениями (mesh) двух- и трехмерных моделей, потоками геометрических данных для анимирования этих моделей, с натуральными (<живыми>) или анимированными текстурами, которые могут на эти модели накладываться, и т. п. Подобные объекты позволяют значительно сократить объем передаваемых данных, так как для их анимации бывает достаточно передать всего несколько параметров - все остальное будет сделано в декодере.
Среди синтетических объектов выделена в отдельный класс анимация человеческих лиц и фигур. В MPEG-4 установлены наборы управляющих параметров для задания особенностей лица (FDP), для его анимации (FAP) и интерполяции, контрольные точки в полигональной сетке, <отвечающие> за те или иные эмоции или движения (с весовыми коэффициентами) и т. п. Необходимые средства управления анимацией входят в язык BIFS. Лицо может быть сгенерировано в декодере на базе имеющейся в нем обобщенной модели и затем <индивидуализировано> с помощью FDP, либо желаемая конкретная модель (например, полученный с помощью трехмерного сканера <автопортрет>) может быть загружена во входящем потоке. Мало этого, на построенную модель лица можно <натянуть> фото- или видеотекстуру лица конкретного человека, а затем <заставить> его произносить написанный текст. Средства синтеза речи на базе текстов (text-to-speech), предусмотренные в MPEG-4, не только генерируют необходимые фонемы, но могут также создавать поток данных для соответствующей анимации модели лица говорящего. Таким образом можно построить виртуального диктора, изображение удаленного абонента при <разговоре> в chat или отправить сетевым партнерам собственного аватара-дубля.
Имеются развитые средства работы с двумерными полигональными моделями, адаптации их под имеющийся видеоконтент для последующей анимации - например, искажения текстур в соответствии с деформацией подложенной сетки и др. Использование этих средств позволяет выполнять многие функции, например представление контуров объектов с помощью вершин сетки (вместо битовых масок), замещение в сцене <живых> видеообъектов синтетическими и т. д. - отсылаем читателя к описанию стандарта.
Сюда примыкают и средства учета точки наблюдения, которые работают как на клиентской, так и на серверной стороне (если имеется обратный канал): при наличии в трехмерном пространстве сцены объектов переднего плана те фрагменты изображения, которые заслонены для наблюдателя этими объектами, не передаются.
Несмотря на отсутствие в названии группы MPEG даже намека на звук, ее эксперты весьма успешно работают в этой области, и их предложения действительно становятся общеупотребительными стандартами, порой опережая разработки <профильных> звуковых организаций и фирм. При этом звуковая часть стандартов MPEG достаточно слабо связана с видеочастью, новые версии и алгоритмы, выбранные экспертами, просто добавляются к уже имеющимся функциям. Так, в частности, был добавлен (к ранее стандартизованным Уровням 1 и 2) формат сжатия MPEG Audio Уровень 3 для стандартов MPEG-1 и 2, разработанный специалистами Fraunhofer Institute for Integrated Circuits (IIS-A) и University of Erlangen в рамках проекта цифрового аудиовещания DAB. Этот стандарт сегодня, наверное, уже известен всем под именем MP3 (не путать с MPEG-3). Он зажил <самостоятельной>, отдельной от видеоряда жизнью и грозит перевернуть весь бизнес звукозаписи (из-за высокого качества, компактности сжатых им материалов и расцвета несанкционированного распространения их через Сеть). Его последователь, формат MPEG-2 AAC (Advansed Audio Coding), также разработанный в IIS-A (www.iis.fhg.de), соперничает с Dolby AC-3 в качестве многоканального формата записи звука для дисков DVD-Video. Этот формат обеспечивает, по сравнению с MP3, еще более высокое качество звучания, лучшую степень сжатия и возможность работы с различными потоками, от моно- до многоканальных.
При всем множестве новаторских подходов MPEG-4 звуковые разделы стандарта - возможно, наиболее интересная и революционная его часть. Объектный подход к изображениям - откровение для телевидения, но в ряде систем анимации, в VRML он применялся и ранее. Что же касается объектного звука, то системы, сопоставимой с MPEG-4 по комплексности подхода, спектру примененных технологий и диапазону применений, просто не удается вспомнить. Она заслуживает отдельного разговора, а здесь мы можем лишь бегло перечислить ее возможности.
Как и другие типы объектов, аудиообъекты входят в структуру дерева сцены и описываются на языке BIFS, что позволяет располагать источники звука в трехмерном пространстве сцены, управлять их характеристиками и применять к ним различные эффекты независимо друг от друга, перемещать источник звука при перемещении связанного с ним визуального объекта и т. п. В следующей версии в стандарт будет добавлена возможность задания акустических параметров среды. Отметим, что все эффекты и анимации выполняются в декодере по командам, полученным во входном потоке, что уменьшает объем передаваемых данных и увеличивает гибкость.
Для кодирования аудиообъектов MPEG-4 предлагает наборы инструментов как для живых звуков, так и для синтезированных. MPEG-4 устанавливает синтаксис двоичных потоков и процесс декодирования в терминах наборов инструментов, это позволяет применять различные алгоритмы сжатия. Диапазон предлагаемых стандартом скоростей потока для кодирования живых звуков - от 2 до 128 Кбит/с и выше. При кодировании с переменным потоком минимальная средняя скорость может оказаться еще меньше, порядка 1,2 Кбит/с. Для звука высшего качества применяется алгоритм AAC, который дает качество лучше, чем у CD, при потоке в 10 с лишним раз меньше. Другой возможный алгоритм кодирования живого звука - TwinVQ. Для кодирования речи предлагаются алгоритмы: HVXC (Harmonic Vector eXcitation Coding) - для скоростей потока 2-4 Кбит/с и CELP (Code Excited Linear Predictive) - для скоростей 4-24 Кбит/с. Предусмотрены различные механизмы масштабируемости.
Особый раздел - синтез речи. На входы синтезатора поступает текст, а также различные параметры <окраски> голоса - ударения, изменения высоты тона, скорости произнесения фонем и т. п. Можно также задать для <говорящего> пол, возраст, акцент и т. п. В текст можно вставлять управляющую информацию, обнаружив которую синтезатор синхронно с произнесением соответствующей фонемы передаст те или иные параметры или команды другим компонентам системы. Параллельно с голосом может генерироваться поток параметров для анимации лица. Отметим, что, как и всегда, MPEG-4 задает правила работы, интерфейс синтезатора, но не его внутреннее устройство.
Наконец, самая интересная часть <звуковой> составляющей - средства синтеза произвольных звуков и музыки. Здесь MPEG-4 предлагает в качестве стандарта подход, разработанный в колыбели многих передовых технологий - MIT Media Lab и названный Structured Audio (SA) - <Структурированный звук>. Опять-таки, это не конкретный метод синтеза, а формат описания методов синтеза, в котором можно задать любой из существующих методов (а также, как утверждается, будущих). Для этого вводятся два языка: SAOL (Structured Audio Orchestra Language) и SASL (Structured Audio Score Language). Как следует из названия, первый задает оркестр, а второй - то, что этот оркестр должен играть. Оркестр состоит из инструментов. Каждый инструмент представлен сетью элементов цифровой обработки сигналов - синтезаторов, цифровых фильтров, которые все вместе и синтезируют нужный звук. С помощью SAOL можно запрограммировать практически любой нужный инструмент, природный или искусственный звук. Сначала в декодер загружается набор инструментов, а затем поток данных SASL заставляет этот оркестр играть, управляя процессом синтеза. Таким образом обеспечивается одинаковое звучание на всех декодерах при очень низком входном потоке и высокой точности управления.
Стандартом допускается также управление, основанное на протоколе MIDI, - но этот метод не столь точен, а набор инструментов ограничен. Для простых декодеров стандартизован также формат для работы с волновыми таблицами (wavetable bank format) - в этом случае в декодер загружаются набор сэмплов и необходимые фильтры и эффекты.
В <потоковой> части архитектура MPEG-4, очевидно, опирается на другой фундаментальный стандарт ISO - семиуровневую модель взаимодействия открытых систем. Напомним, эта модель выделяет семь независимых вложенных уровней (сверху вниз: прикладной, представительский, сеансовый, транспортный, сетевой, канальный, физический). Каждый из уровней на передающем конце общается с соответствующим уровнем на приемном, а для этого обращается к локальным службам соседнего нижнего уровня (который предоставляет ему для этого специальный интерфейс) - и далее все происходит <прозрачно> для него, все остальные нижние уровни системы от него скрыты. По мере продвижения по этой лестнице вниз содержательная информация, которой обмениваются пользователи или приложения - т. е. прикладные уровни, - обрастает служебными данными (которые <навешивает> каждый из уровней для взаимодействия со своим визави на приемном конце в соответствии с принятым между ними протоколом общения), данные разбиваются на пакеты, тем или иным способом мультиплексируются, кодируются и передаются между узлами сети, а на приемном конце происходит обратный процесс - сообщение собирается, очищается от вспомогательных данных и восстанавливается к своему первоначальному виду.
MPEG-4 действует на верхних уровнях модели ISO, начиная с сеансового. Для передачи потоков данных он обращается к службам транспортного уровня, которые обеспечивают приложениям инвариантность работы с различными системами и средами доставки - сетевыми (в том числе IP/UDP/RTP, ATM, сетями коммутации пакетов H.223), вещательными (кабельные и спутниковые системы, DTV, DAB), дисковыми (CD, DVD). (Что касается более низких уровней, собственно сетей и технологий передачи мультимедиа-информации, то, пожалуй, наиболее полный в отечественной литературе обзор составлен Олегом Фоминовым [5].)
Для управления передачей потоковых данных в MPEG-4 предусмотрен специальный протокол сеансового уровня, называемый DMIF (Delivery Multimedia Integration Framework - среда интеграции доставки мультимедиа). Разработчики указывают на его сходство с FTP, подчеркивая при этом, что основное различие в том, что
Службы DMIF доступны прикладному уровню с помощью интерфейса DAI (DMIF-Application Interface). Именно DAI маскирует для локальных приложений разницу между сетевыми, вещательными и локальными (например, с дисков CD/DVD) потоками, эмулируя при работе с вещательными и дисковыми источниками <удаленный DMIF> и <удаленное приложение>. При этом допускается одновременная работа со всеми тремя типами источников и замена одного на другой.
Потоковые данные, которые относятся к медиа-объекту, могут поступать через один или несколько элементарных потоков (elementary streams, ES). Все необходимые характеристики этих потоков, как-то: требования к приемнику, данные о тайминге и об уровне обслуживания (Quality of Service, QoS), т. е. скорости, приоритете, допустимом уровне ошибок и максимальной задержке, - содержатся в предусмотренном для каждого объекта дескрипторе объекта. Дескрипторы могут также содержать текстовую информацию об объекте. Дескрипторы объектов передаются в специальном элементарном потоке, что позволяет добавлять к сцене новые объекты или удалять ненужные динамически. Команды описания сцены и объектов в формате BIFS также составляют отдельный элементарный поток и могут быть модифицированы без изменения собственно медиа-данных в других потоках. Таким образом можно выстраивать различные сценарии на базе одних и тех же медиа-потоков. Это пригодится и для интерактивных применений с многовариантным развитием сюжета, и для подстройки сложности сцен и объектов под доступный уровень QoS: в обоих случаях можно заранее предусмотреть несколько командных BIFS-потоков, а в процессе передачи оперативно выбирать из них подходящий в качестве действующего сценария. Кроме того, облегчаются адаптация готовых произведений для новой среды доставки (например, СD-продуктов для WWW) или извлечение готовых объектов для использования в новых произведениях.
Стандартом предусмотрено наличие отдельного, общего для всех типов потоковых данных уровня синхронизации, который для каждого элементарного потока определяет минимальную единицу доступа, или access unit (т. е. аудио- или видеокадр, команду описания сцены и т. п.), выстраивает для каждого объекта и для всей сцены временнэю базу и обеспечивает синхронизацию между ними. На синхроуровне элементарные потоки разбиваются на пакеты, к ним добавляется информация тайминга (time stamps) - чтобы на приемном конце декодер смог адекватно собрать и отобразить результирующий поток. Затем специальный подуровень мультиплексирования (FlexMux) определяет элементарные потоки с близкими требованиями к QoS и группирует их - для того, чтобы минимизировать число сетевых соединений, запрашиваемых от транспортного уровня. Сам транспортный уровень (как и более низкие) в стандарте не рассматривается, однако установлены методы защиты от ошибок, ресинхронизации и восстановления данных при сбоях в механизме доставки.
На приемном конце происходит декодирование потоков, выделение объектов и построение сцены. Особо подчеркнем, что, как и в случае MPEG-1 и MPEG-2, MPEG-4 не устанавливает правил процесса кодирования; не касается он и деталей реализации декодера, задавая лишь правила поведения некоего абстрактного устройства, а также синтаксис и семантику двоичных потоков, с которыми оно должно уметь работать. Для этого в MPEG-4 определена модель декодера - System Decoder Model. На практике допустимы всевозможные реализации декодеров MPEG-4: от отдельных специализированных терминалов до функций, встроенных в телевизор или приставку, от мобильных коммуникационных устройств до программных модулей в ПК, с разной степенью сложности (см. ниже).
Одна из самых острых и трудно решаемых проблем цифрового мира, проблема, сегодня уже тормозящая его развитие куда сильнее, чем проблемы технологические, - это защита авторских прав. Стандарт же MPEG-4, претендуя на роль универсальной среды доставки контента, немедленно становится средоточием и болевой точкой этой проблемы. Понимая это, разработчики стандарта с самого начала привлекли представителей различных творческих профессий и отраслей, стремясь добиться единого подхода, определить синтаксис и набор средств идентификации и защиты прав интеллектуальной собственности (IPR) для MPEG-4. В результате был выработан комплекс мер, известный под названием IPMP (Intellectual Property Management & Protection), подробное изложение которых выходит за рамки этой статьи (ссылки на соответствующие документы можно найти на сайте MPEG). Вкратце упомянем, что с дескриптором каждого объекта или потока может быть связан специальный блок данных (IPI, Intellectual Property Identifier), содержащий уникальный идентификатор в одной из принятых международных систем (ISAN, ISRC или др.), характеристику типа контента, а также имя обладателя прав или указатель на него (на них). Каждый декодер имеет блок (интерфейс) IPMP, который обрабатывает данные о защите. Стандартом предусмотрены также точки входа для шифрования/дешифрования информации. Выработанная система позволяет реализовать механизмы отслеживания авторских прав, автоматического отчисления авторских процентов, проведения аудита и расследований в случае предполагаемых нарушений, строить разные уровни защиты контента - по соображениям коммерческим, личностным, секретности и т. п. Однако эти <верхние> уровни защиты и управления правами не входят в стандарт и могут быть реализованы разработчиками приложений и/или держателями контента.
Естественно, и эти меры, особенно при наличии программно реализованных плейеров MPEG-4, в принципе можно обойти, так что работа над проблемой авторских прав продолжается.
Как видите, стандарт MPEG-4 в его полном виде - весьма разветвленный и многоплановый конгломерат, включающий множество механизмов и инструментов, так что его полная реализация может показаться задачей почти невыполнимой. Чтобы не допустить неконтролируемого размножения малосовместимых частичных реализаций, был установлен набор подмножеств, которые содержат ограниченные наборы инструментов и функций MPEG-4, существенных для тех или иных применений. Эти подмножества были названы <профилями> (Profile), они могут частично пересекаться, полностью включать в себя функциональность <младших> подмножеств или добавлять те или иные функции. Для большей гибкости и упрощения подбора вариантов профили были разбиты по категориям: девять визуальных (включающие в свою очередь профили для работы только с живым видео, только с анимацией и гибридные), четыре звуковых, три графических и четыре профиля описания сцены. Кроме того, в зависимости от доступной вычислительной мощности декодера, для каждого профиля установлены один или несколько уровней (Level - не путать с Layer модели ISO). Таким образом, при построении декодера MPEG-4 разработчик должен выбрать комбинацию профилей и уровней и после этого обязан реализовать описываемый ими набор функций в полном объеме. Потребитель же, прочтя в паспорте устройства или программы эту комбинацию, сразу понимает, что умеет, а чего не умеет данный декодер. Реализации, построенные на основе одинаковой комбинации, должны быть полностью совместимы друг с другом. Естественно, в <предельном случае>, выбрав комбинацию из всех старших профилей и уровней, мы получим полный набор функций MPEG-4. Список предлагаемых профилей можно найти в [1].
В октябре 1998 г. был зафиксирован набор полностью готовых на тот момент функций и инструментов MPEG-4, этот набор был назван MPEG-4 Version 1 и передан на утверждение в качестве официальной спецификации стандарта. Все последующие доработки должны войти в MPEG-4 Version 2, которую планируется утвердить в ноябре 1999 г. Версия 2 не будет заменять функции Версии 1, а добавит к ней новые возможности, сама же Версия 1 ревизии не подлежит. Декодеры, построенные по Версии 1, не устареют с выходом Версии 2, поскольку новые функции будут реализованы как дополнительный набор профилей.
Что же ждет наc во второй версии стандарта? Список планируемых новых функций занимает пять страниц, мы назовем лишь некоторые из наиболее впечатляющих.
Разрешение многопользовательского присутствия в сцене и взаимодействия с контентом. Значит ли это, что в принципе можно залезть через сеть в чужой телевизор и все там передвинуть или зайти в гости к соседу в виде аватара и сыграть с ним в Quake?
Дальнейшее пополнение функций BIFS и сближение его с VRML.
Введение формата файла MPEG-4 (MP4) на базе формата файла QuickTime, что позволит хранить (локально или распределенно с URL-ссылками), копировать, редактировать, проигрывать на локальном устройстве и передавать полную презентацию в формате MPEG-4.
MPEG-J позволит загружать (в отдельном потоке) и запускать код Java на плейерах MPEG-4.
Работа с полигональными 3D-моделями, поддержка уровней детализации модели (LOD).
Вдобавок к анимации лица появится анимация тела (разработка ведется совместно с Humanoid Animation Working Group VRML).
Стереоскопическое видео.
Значительные усовершенствования на уровне DMIF, включая симметричные соединения отправитель-получатель вместо сервер-клиент, что позволит строить разговорные приложения и организовывать поиск в мультимедийных базах данных и многое другое.
Несмотря на беглое и схематичное изложение, объем статьи не позволил рассказать обо всех хитрых свойствах MPEG-4 и оценить многочисленные удивительные возможности и перспективы, которые сулит его внедрение (хотя на это и трудно было рассчитывать - ведь даже краткий обзор стандарта, сделанный разработчиками, занимает 50 страниц!). Но мы видели свою задачу в том, чтобы создать ощущение надвигающихся перемен и побудить к дальнейшим самостоятельным поискам - и потому отсылаем читателя к приведенной в конце статьи литературе, а также рекомендуем исследовать сайт разработчиков MPEG по адресу http://cselt.it/mpeg и справочный сайт www.mpeg.org.
За восемь лет у широкой аудитории успело сложиться представление о MPEG как об организации, целиком посвятившей себя вопросам сжатия медиа-данных - и это одна из причин, почему так поражает при первом знакомстве содержание стандарта MPEG-4. Но если разобраться, то даже само название MPEG - <Экспертная группа по движущимся изображениям> - показывает, что круг ее интересов значительно шире проблем сжатия. Просто на первом этапе <мультимедиа-революции> именно сжатие имело решающее значение, и в MPEG уделили ему наибольшее внимание, добившись, отметим, беспрецедентно успешного результата в деле примирения подходов и интересов многомиллиардных корпораций и целых индустрий.
Сегодня происходит сближение (начинается интеграция) телевидения и Интернета, персональных компьютеров и развлекательных приставок и плейеров, а медиа-контент, который потребитель получает из всех этих источников, становится не просто цифровым, но и все более интерактивным. И требуются новые стандарты, которые помогут разработчикам контента донести свои произведения до потребителя максимальным числом способов, а пользователям (зрителям) - получать со своего устройства доступ к медиа-контенту в любой его форме.
В целом можно сказать, что разработчики MPEG-4 собрали и обобщили многое из того, что было наработано за десять лет в ранее мало пересекавшихся областях и технологиях (QuickTime и VRML, 3D-графика и интерактивная <персонажная> анимация по типу Macromedia Director, разработка видеоигр, видеокомпозитинг, телевещание, потоковые видео и звук), и сумели объединить все это в новое качество.
Насколько быстро MPEG-4 станет общепринятым, и станет ли? Когда двадцать лет назад, вслед за появлением первых сетей с коммутацией пакетов, ISO была впервые предложена семиуровневая модель, многие упрекали ее в избыточности и тяжеловесности, в <сложности в реализации>, старались выкинуть <лишние> уровни или вообще обойтись без нее, предлагая альтернативные концепции. Однако постепенно модель была воспринята всеми и по существу легла в основу устройства всего построенного за эти годы связанно-цифрового мира - даже мыслить многие стали в категориях этих семи уровней. Подобным же образом в 1991 г., в весеннюю пору <цветения ста цветов> в области сжатия мультимедиа-данных, критически воспринимались разработки группы MPEG, о проекте стандарта говорили, как о <слишком сложном, чтобы быть реализованным>, сетовали на высокий уровень требующейся аппаратной поддержки... Сегодня уже не только MPEG-1, но и MPEG-2 может быть реализован программно, на базе этих стандартов выстроились целые индустрии, стандарты MPEG отмечены наградами Emmy.
Поэтому, несмотря на кажущуюся (особенно для вещателей!) сложность MPEG-4, имеет смысл подробно разобраться с этим стандартом - он с очень большой вероятностью определит развитие компьютерных, вещательных и даже мобильных систем в ближайшие годы. Подчеркнем еще раз - разбираться придется не только программистам, для которых открывается новая интересная ниша (реализация сложной и многосторонней функциональности MPEG-4 для самых разных клиентских и серверных платформ), но и гуманитарно-творческим людям, авторам и продюсерам вещательных программ. Вслед за интерактивным контентом на дисках и в Сети интерактивными становятся телепрограммы - и навыки программирования и алгоритмического мышления очень пригодятся разработчикам этих новых программ. Давний термин
MPEG-4 появился вовремя: пока еще фактически никто (кроме Apple) не предложил своего готового и работоспособного варианта единой архитектуры доставки мультимедиа, и потому открывается реальная возможность избежать сценария типа <вавилонской башни> в создающейся единой многомиллиардной индустрии. Но ведь для этого комитету MPEG надо было заранее почувствовать тенденцию и начать свою разработку на несколько лет раньше!
... В конце 1996 г. группа MPEG объявила о начале работы над новым стандартом - MPEG-7. В ноябре 1998 г. был закончен прием предложений по этому стандарту, а окончательное его принятие планируется на ноябрь 2000 г. Официально он называется Multimedia Content Description Interface. Чтобы понять, что это такое и почему он необходим, нам придется познакомиться, в дополнение к <контенту>, с новым набором понятий цифровой эпохи - метаданные, цифровые медиа-активы, уловить тонкие различия в употреблении английских слов reusing, repurposing, redirection и re-expression (все это применительно к контенту) и, возможно, попытаться подобрать им русские аналоги, разобраться, что такое StudioCentral компании Silicon Graphics, кем и зачем была создана MAMA... Но об этом - в будущих выпусках <Параллельных миров>.
Литература
1. ISO/IEC JTC1/SC29/WG11 No. 2459 Overview of the MPEG-4 Standard. October 1998/Atlantic City.
2. Rob Koenen. MPEG-4. Multimedia For Our Time. IEEE Spectrum, February, 1999.
3. MPEG-4 FAQs http://drogo.cselt.stet.it/mpeg/faq/faq_mpeg-4.htm.
4. Крейг Биркмайер. Общество Плоской Земли. <Мультимедиа. Цифровое видео>, ј 4'98.
5. Олег Фоминов. Мультимедиа и сети. <Мультимедиа. Цифровое видео>, ј 5-6, 7, 8'97.