Телекоммуникационные технологии. Том 1

       

Модульность XM-программ


По умолчанию модули для всех D и DS скомпилированы так, чтобы создать один большой исполнимый модуль, который может затем вызвать приложение для индивидуального D или DS. Однако результирующий исполняемый модуль становится необыкновенно большим, из-за массы индивидуальных D и DS определяемых стандартом. Компиляция с целью получения исполняемого модуля может выдать файл размером более 100 Мбайт (в случае, если включен режим отладки). Следовательно, программное обеспечение MPEG-7 XM сконструировано так, чтобы поддерживать частичную компиляцию с использованием только одного D или DS. С другой стороны, во многих случаях желательно комбинировать субнаборы D или DS. Более того, комбинирование D и DS также необходимо, когда DS строится иерархически из других D и DS. При этом сценарии, не только важно обеспечить частичную компиляцию, но существенно сконструировать программу так, чтобы код можно было использовать повторно. Таким образом, все приложения построены из модулей. Среди этих модулей:

  • класс медийного декодера,

  • класс мультимедийных данных,

  • класс средства выборки (только для приложений выборки),

  • класс дескриптора,

  • класс схемы кодирования, и

  • класс средства поиска (только для приложений клиента).

Чтобы увеличить возможность повторного использования, все эти классы используют специальные интерфейсы, независящие от D или DS, к которым они принадлежат. Таким образом, нужно, чтобы программу можно было использовать повторно, например, применить средство выборки D или DS для других D или DS без глубокого знания, как это делается в данном средстве. Это возможно, если только известно, как использовать интерфейс этого средства выборки. Модули, перечисленные выше, скомбинированы или соединены друг с другом так, чтобы образовать цепочку обработки. Это сделано в классах приложений, которые могут относиться к классам выборки или приложения клиента.

3.6.4. Модули приложения
3.6.4.1. Медийные декодеры

Медиа-декодер (класс MediaIO) поддерживает широкий диапазон возможных входных медийных форматов.
Среди них:



  • аудио данные в файлах WAV,


  • видео потокиMPEG-1,


  • векторы перемещения из видео потоков MPEG-1 (обрабатываемые как статическое изображение),


  • статические изображения (JPEG, GIF, PNM и многие другие),


  • список ключевых точек 4D (t,x,y,z),


  • список ключевых точек nD (t, x[0..n-1]), и


  • Для этих целей класс MediaIO использует набор внешних библиотек, которые не принадлежат во всех случаях дереву исходных кодов программ XM. Сюда входят следующие библиотеки:


    • библиотека Afsp для аудио-файлов, и


    • ImageMagick для статических изображений.


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

    Так как класс MediaIO является интерфейсом для этих библиотек, использование внешних библиотек не нужно и не разрешено для любого другого класса программ XM, например, разрешающих аудио-экспертам использовать программы XM без специфичной для видео библиотеки ImageMagick.


    Содержание раздела