По умолчанию модули для всех 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) поддерживает широкий диапазон возможных входных медийных форматов.
Среди них: