Neben dem Encodieren und Decodieren der Medien-Strömen stellen die Verwaltung und der effiziente Zugriff auf verfügbare Medien eine große Herausforderung für eine Multimedia-Middleware in eingebetteten Systemen dar. Metadaten eines Titels im gängigen ID3-Format enthalten Zusatzinformationen wie Interpret, Musik-Stil, Album oder Komponist. Bei 30 Gbyte an Medien-Daten müssen etwa 20 bis 30 Mbyte an Metadaten gespeichert werden. Dies erfolgt in einer Standard-Datenbank, die komfortable Abfragen erlaubt. Zum Beispiel resultiert das SQL-Statement
select * where genre=“Jazz“ and artist=“Brubeck“ and source=“HDD“
in einer Liste aller auf der Festplatte verfügbaren Jazz-Titel von Dave Brubeck. Erlaubt die Multimedia-Middleware das Generieren von Metadaten beim Ripping mit Hilfe einer der bereits heute verfügbaren Musik-Datenbanken für eingebettete Systeme, dann lassen sich auch medien-übergreifende Abfragen realisieren.
Parallele Medien-Ströme
Bereits die Rip-and-Play-Funktion erfordert die Behandlung paralleler Datenströme in der CPU. Während der erste Audio-Strom encodiert und auf der Festplatte gespeichert wird, erfolgt gleichzeitig ein Lesezugriff auf die Festplatte für den zu decodierenden zweiten Audio-Strom. Zu beachten ist, dass sich beide Ströme vollständig asynchron zueinander verhalten, da das Ripping mit maximaler Geschwindigkeit erfolgt, während der Benutzer beim Abspielen alle Trick-Modes, wie Fast-Forward oder Skip-Backward, zur Verfügung hat.
Bei modernen Infotainment-Systemen wird zusätzlich der Mehrzonen-Betrieb gefordert, wobei eine Zone durch eine eventuell exklusiv genutze Medienquelle sowie eigene Senken für Audio und Video gekennzeichnet ist. Bereits aktuelle Grafik-Controller für eingebettete Systeme ermöglichen den Anschluss mehrerer Displays oder eines Dual-View-Displays mit jeweils unabhängigen Inhalten. Um dies sinnvoll zu nutzen, sind neben dem Audio-Verstärker als Hauptzone bis zu zwei weitere Audio-Senken wie Kopfhörer notwendig. Konfigurationen dieser Art ermöglichen DVD-Video für den Beifahrer, MP3-Wiedergabe in der Hauptzone sowie eine weitere Zone im integrierten RSE-System. Aufgabe der Multimedia-Middleware ist der Zugriff auf die Medien einschließlich einer einheitlichen Sicht auf die Metadaten, die Bereitstellung der benötigten Decoder-Komponenten sowie die Verwaltung der Benutzeranfragen und -operationen.
Zwischen Applikation und Treiber: Middleware
Als Middleware wird, wie in Bild 2 dargestellt, die Software-Schicht zwischen projektspezifischer Applikation und den hardwarenahen Treiberschichten bezeichnet.
Objektorientierte Applikationsframeworks wie MMI2000 [1] haben seit einigen Jahren einen festen Platz in der Software-Entwicklung integrierter Infotainment-Systeme erlangt. Ihr wesentlicher Vorteil ist die Abstraktion komplexer Betriebssystem-Funktionen wie Thread-Modell oder Event- und Watchdog-Konzept. Daneben bieten sie ein durchgängiges Modell für Zustandsautomaten und Applikationsschnittstellen. Trotz vieler Vorteile ist aber deutlich geworden, dass Frameworks zu schwergewichtig für rechenintensive Basis-Funktionen wie MP3-Decoding oder Echo-Cancellation sein können. Diese Funktionen eignen sich aber auch nicht zur Implementierung auf Treiber-Ebene, sondern sind Teil von jeweils komplexeren Funktionen wie Multimedia oder Sprachverarbeitung. Diese werden jeweils als eine eigenständige Middleware(-Engine) zusammengefasst, deren zentrale Funktion projektunabhängig ist, die aber in ihrer Ausprägung durch die Applikationsschicht projektspezifisch konfiguriert und angesteuert wird.