| |
MPEG-4-Video Standard
Seite 92 von 103
Technische Informatik
10.10.2003
8.2
MPEG-4-Player Architektur
Ein RS-Player ist das Ergebnis eines guten Zusammenspiels vieler Software-Module.
Diese werden zwar unabhängig voneinander entwickelt, arbeiten aber dennoch eng
zusammen. Der MPEG-4-Player ist ein Teil der Referenz Software und stellt eine
Plattform zur Integration von Software-Modulen anderen MPEG-Untergruppen dar (z.B.
Video- und Audio-Decoder). Die benutzte Programmiersprache ist C++. Die Module
schließen einen Kernel mit ein, der als Teil des Source-Levels Video-, Audio, und DMIF-
Plugins (als DLLs) beinhaltet. Das Kernstück des Players ist das Core-Modul, welches
Input-Ströme empfängt, Synchronisationsdaten steuert, Szenen und ODs analysiert,
das Speicherbild des Szenegraphen erstellt und den Datenfluss zwischen allen anderen
Modulen organisiert. Das Core-Modul setzt sich wiederum zusammen aus diversen
Submodulen (Executive, Buffer u. Time Management, BIFS/OD Decoder und SL-
Manager) und Modulen die dessen Service nutzen (Compositor, Frame Application,
DMIF-Stacks, Media Decoder Plugins und IPMP-Filter Plugins). Folgende Graphik
(Abb.44) soll das Zusammenspiel der Module innerhalb eines Players illustrieren.
DMIF
Client
IPMP-Manager
DMIF
Frame Application
Core
Compositor
Data
Channel
Data
Channel
Data
Channel
Data
Channel
Media
Stream
Media
Stream
Media
Stream
Media
Stream
Executive
BIFS-/OD-
Decoder
Decoder
Decoder
Media
Stream
Media
Stream
Media
Object
Grenze zwischen Modulen
Objekt-Pointer
Datenflussrichtung
IPMP
Application
Presenter
Media
Stream
Media
Object (Root)
Abb.44 Struktur eines MPEG-4-Players
Die modulare Architektur ermöglicht einen kooperativen Entwicklungsprozess über
APIs. Diese stellen das Bindeglied zwischen den einzelnen Module dar und bestehen
aus zwei Gruppen. Zum einen den Source-Level APIs, welche die Infrastruktur zur
Verfügung stellen, über die Entwickler zusammenarbeiten können (Executive,
Compositor, Scene Graph und Buffer API). Zum anderen den Binary-Level APIs, die
Schnittstellen, sogenannte Plugins, zwischen der Player-Applikation und den DLLs
definieren (DMIF, Decoder und IPMP-API).
|  |
|
| |
|
|