Die Multimedia-Engine

29. Juni 2007, 15:54 Uhr | Dr. Elmar Cochlovius und Dan Dodge
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Medien-Datenbank und Metadaten

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.

e705ah0402_tm_04.jpg
Bild 2. Schichten-Modell der Software eines modernen eingebetteten Infotainment-Systems.

  1. Die Multimedia-Engine
  2. Literatur:
  3. Verarbeitung von Medien-Strömen
  4. Medien-Datenbank und Metadaten
  5. Flexible Medienschnittstellen

Jetzt kostenfreie Newsletter bestellen!