В потоке знакомых объектов
АрхивВы смотрите фильм по телевизору, удобно устроившись на диване, но вам не нравится актер, играющий главную роль. Что ж, дело поправимое: одним нажатием кнопки вы вызываете меню и выбираете другого. Таким же образом меняете пейзаж на заднем плане, заснеженная равнина становится океаном, а суровая тайга превращается в джунгли. Так, уже лучше. И все-таки, надоели эти лица, увидеть бы себя на их месте. Почему бы и нет: короткая процедура сканирования, и в меню появляется еще один пункт, соответствующий отражению в зеркале...При всей кажущейся нереальности подобной ситуации, описание технологии для ее создания уже существует и называется MPEG-4.
Гадкий утенок цифрового видео
MPEG-4 был предложен в 1993 году как стандарт для передачи сжатого аудио/видео по очень медленным каналам, например, проводным и сотовым телефонным линиям. WWW в то время была развита слабо, и не все и не сразу увидели перспективу. Однако уже через год цель стандарта была изменена на создание системы кодирования аудио/видеообъектов. Объектно-ориентированный подход и последующие достижения технологий значительно расширили область применения и сделали MPEG-4 универсальным форматом для мультимедиа.
Составные части
Внимательно присмотревшись и прислушавшись к выпуску теленовостей, можно разделить все действо на несколько объектов-участников: неподвижный фон, диктор, нехитрая окружающая обстановка студии и собственно речь ведущего. Вполне возможно, что на самом деле диктора снимали на однотонном фоне в студии, картинку для фона привезла выездная бригада, мебель является трехмерной компьютерной моделью, а читает текст вообще мало кому известный человек с приятным голосом, но не очень фотогеничный.
И все это смонтировано в видеосюжет и передано как обычное видео, сжатое или нет. Основная же идея MPEG-4 заключается в том, чтобы передавать объекты-участники раздельно и независимо друг от друга, а на месте объединять их в так называемые сцены. При этом подразумевается возможность активного участия зрителя как в выборе объектов для передачи, так и в процессе их последующего взаимодействия.
Итак, какие же объекты могут быть включены в поток? Да какие угодно! Все они условно делятся на две большие группы: натуральные и синтетические. Подразумевается, что натуральные объекты - неподвижные изображения, видео- и аудиоклипы и пр. - поступают готовыми к включению в сцену. Для синтетических же объектов - например, текста, двух- и трехмерных моделей, синтезированной речи - приходят только описания в некотором совместимом формате, а синтез происходит перед их появлением в сцене. Понятно, что в последнем случае объем передаваемых данных гораздо меньше, чем даже для сжатого видео.
Сам процесс
Воспроизведение MPEG-4-файла начинается с запуска DMIF (Delivery Multimedia Integration Framework, что можно перевести как "система доставки и интеграции мультимедиа"). Именно DMIF определяет, какие объекты нужны в данный момент и где их взять, посылает соответствующие запросы и передает полученную информацию дальше. Причем вовсе необязательно, чтобы система находилась непосредственно на устройстве воспроизведения, удаленный сервер с успехом может выполнять эти функции. Как правило, объекты не загружаются сразу, а выделяются в индивидуальные элементарные потоки из общего вала данных.
Вместе с объектами приходят сведения об их композиции в двоичном формате описания сцен BFIS (Binary Format for Scenes). Этот поток содержит информацию о параметрах объектов и их расположении в пространстве и времени, а также о возможных преобразованиях и эффектах (например, стереоизображение). На самом деле BFIS является расширением языка VRML (Virtual Reality Modeling Language), к которому добавлено много объектов новых видов; появилась возможность не дожидаться полной загрузки элемента; кроме того, для описания одной и той же сцены требуется в 10-15 раз меньше памяти за счет введения двоичного формата вместо текстового VRML. А чтобы зритель мог участвовать в сцене, существует MPEG-J - специальное подмножество языка Java, которое помимо управления сценой позволяет создавать графические интерфейсы для задания команд пользователя. При построении сцены реализуется три варианта масштабирования:
- сцена может иметь плавно изменяемое разрешение - в зависимости от возможностей воспроизводящего устройства и желания пользователя;
- сначала сцена появляется в неком минимальном разрешении; по мере поступления данных разрешение увеличивается до нужного;
- размер "картинки" остается постоянным, но в процессе загрузки улучшается качество, то есть проработка деталей.
Посмотрим теперь, что происходит с некоторыми участниками сцены.
Просто картинки
Неподвижные изображения занимают разные места в сцене. Это может быть общий фон, текстуры для двух- и трехмерных моделей и т. д. Для них характерна произвольная форма и поддержка масштабируемости по размеру и качеству. Причем, получив даже часть изображения из потока, декодер может воссоздать изображение в уменьшенном масштабе - по мере поступления данных размер или качество доводятся до оригинального. Интересный способ сократить размер файла заключается в создании объекта, состоящего из большого панорамного фона и нескольких параметров, определяющих его перемещение и видимую часть. Изображение фона передается только один раз, а потом перемещается в зависимости от поля зрения камеры и местоположения объектов на переднем плане. Стандарт допускает использование различных методов компрессии: например, вэйвлет-преобразование (www.computerra.ru/1998/8) или дискретное косинус-преобразование (www.computerra.ru/1998/36). MPEG-4 сжимает изображения сильнее, чем JPEG, при схожем качестве (с примерами можно ознакомиться, в частности, на сайте компании e-Vue - www.e-vue.com).
Такое привычное видео
На сегодняшний день самое распространенное применение для MPEG-4 - построение сцены из одного видеообъекта, и здесь основное отличие MPEG-4 от более ранних MPEG-стандартов заключается в широком диапазоне скоростей, гибкой масштабируемости и автоматической подстройки под возможности канала передачи. Например, компания PacketVideo (www.packetvideo.com) предлагает решения для беспроводных сетей, имеющие приложение в области видеоконференций, видеоновостей, мониторинга транспортных развязок и в получении изображений с ваших личных камер на миниатюрный цифровой видеотерминал размером с сотовый телефон, или даже наручные часы, в перспективе, конечно. А можно и самому поэкспериментировать с видео различного разрешения, загрузив средства Windows Media с сайта Microsoft (www.microsoft.com/windows/windowsmedia).
Стоит отметить не так давно появившийся свободный формат DivX (divx.ctw.cc или www.mydivx.com). Это название легко спутать с незадавшейся технологией продажи DVD c ограниченным сроком пользования, однако "новый DivX" представляет собой способ компрессии на основе немного измененного кодека MPEG-4 от Microsoft. Создатели называют его MP3 для видео. В этом есть свой смысл, так как речь идет о распространении пиратских и любых других копий фильмов весьма неплохого качества через Интернет.
В насыщенных движением кадрах часто видны блоки и всякие артефакты, однако выпущена лишь альфа-версия кодера, так что есть надежда, что со временем эти проблемы устранят. Чтобы получить видео близкого к DVD разрешения (640х480) и хоть и не близкого, но приличного качества, надо сжимать видео со скоростью по крайней мере 1,1 Мбит/с, как у Video CD, - соответственно на CD поместятся те же 74 минуты. Главный недостаток DivX: пока его воспроизведение возможно лишь на компьютере. А предрекают ему блестящее будущее и широкую популярность. Что ж, время покажет.
Почувствуйте объем
Особенно впечатляет комбинация синтетических созданий с натуральными объектами.
Уже сегодня можно встретиться с синтетической ведущей новостей по имени Ananova (www.ananova.com) и персонажами Tilde и Dash с компьютерного телеканала ZDTV (www.zdtv.com). Но это все еще смонтированное обычное видео.
MPEG-4 позволяет создать трехмерную модель человека или только его головы и синтезировать речь вместе с соответствующей мимикой и жестами. Пример можно увидеть на сайте компании face2face (www.f2f-inc.com), которая имеет некоторые наработки в этой области. Но это, так сказать, готовое решение для новостей, прогноза погоды и т. п. Дальше - больше: в составе сцены могут быть двух- и трехмерные объекты произвольной формы, и делать они могут что угодно. Добавляем практически неограниченные возможности взаимодействия со зрителем и получаем нечто большее, чем сегодняшние 3D-игры, где тоже можно выбирать персонажей, их манеру поведения и окружающую обстановку.
Действительно, зачем известным актерам проходить через долгий процесс съемок, ездить по всему миру, рисковать здоровьем, если все действия может выполнить совсем другой человек и - в одной студии. Да и производителям кинокартин будет дешевле приобретать 3D-модели актеров. Хотя справедливости ради надо сказать, что пока такому кино не хватает реализма, это вам не динозавры, драконы и игрушки.
Пища для ушей
Для звука предусмотрено несколько способов компрессии в зависимости от материала и желаемого качества. Они включают MPEG-2 AAC, HVXC, CELP, TwinVQ. Декодер автоматически подстраивается под пропускную способность канала передачи и обеспечивает максимально возможное качество.
Особняком стоит синтез речи и музыки. Синтезатор принимает в качестве исходной информации собственно текст и такие параметры речи, как тон, тембр, быстроту и т. д. Для синтеза музыки применяется язык SAOL (Structured Audio Orchestra Language). Описание содержит набор "инструментов", которые не обязательно должны уже присутствовать в воспроизводящей системе - их можно получить, как и другие объекты. Управляет "оркестром" программа, написанная на языке SASL (Structured AudioScore Language); впрочем, в более простом случае можно использовать MIDI, а в самом простейшем - сработает обычный wavetable-синтезатор с примитивным набором эффектов.
Хорошего понемножку
Однако MPEG-4-декодер совсем не обязан поддерживать стандарт полностью. В связи с чрезвычайно широкой областью применения скорее всего типичной станет ситуация, когда то или иное устройство будет нуждаться только в неком подмножестве всех возможностей. Такое подмножество назвали Profile и разделили, в свою очередь, на уровни (levels). И хотя в теории можно создать универсальный декодер с поддержкой всех опций, обычно выбирается некоторый ограниченный набор из них. Так что не ожидайте всего сразу, даже если производитель заявляет, что в продукте используется MPEG-4.
Очевидно, что MPEG-4 не вытеснит своих предшественников. Просто появляются новые возможности, и фактически, MPEG-1 и -2 можно рассматривать как подмножества MPEG-4 для работы с объектами типа "сжатое видео".
Прогнозы на будущее
Казалось бы, добавить почти нечего, но - нет предела совершенству. Осенью этого года намечается обсуждение некоторых важных дополнений стандарта. Среди них: двух- и трехмерная анимация, высококачественная видеокомпрессия для цифрового кино, новые средства композиции, улучшенная синхронизация и новые текстовые форматы.
Впрочем, и те прекрасные возможности, о которых рассказано выше, пока еще, скорее, дело будущего. Ждем с нетерпением.
Источники и ресурсы
- Информация из первоисточника: www.cselt.it/mpeg/standards/MPEG-4/MPEG-4.htm.
- MPEG-4-форум: www.m4if.org.
- Статья "Flat Earth Society" by Craig Birkmaier: www.vrtual1.com/hdtvdtv.
- Его же сайт, посвященный цифровому ТВ: www.pcube.com.
- Набор ссылок по MPEG-4: web3d.about.com/compute/web3d/msub MPEG-4.htm.
- Сайт любителей DivX: www.mydivx.com.
Об авторах: Олег Тодоренко - инженер корпорации Dazzle. Интересы - технологии доставки и визуализация информации, пользовательские интерфейсы. Увлечения - анализ современных технологий и некоторые виды физической активности.