eMail an MarcZum GästebuchKontakt per MSN-MessengerZum Messageboard

Muxen und Demuxen - wozu und wie geht das ?

Bei der Erzeugung von MPG-Daten wird grundsätzlich Bild und Ton unabhängig behandelt - d.h. es gibt einen Bild-Encoder und einen Ton-Encoder. Diese beiden Module erzeugen zwei unabhängige Ausgaben - sogenannte Streams (Daten-"Ströme").

Auf den ersten Blick erscheint es sinnvoll, die einzelnen Streams auch in getrennte Dateien zu speichern - so wäre ein Wechsel von einem Tonstream zum anderen (z.B. für verschiedene Sprachen) einfach zu realisieren.

Betrachtet man sich das Ganze aber genauer, stellt man schnell fest, daß das keine gute Idee ist - das Abspielprogramm müßte parallel aus zwei Dateien lesen und der Lesekopf würde dementsprechend permanent zwischen zwei Positionen hin- und herspringen müssen. Während das beim Abspielen von Festplatte noch durchaus machbar wäre, würde es ein optisches Laufwerk vermutlich überfordern (von der mechanischen Belastung ganz abgesehen).

Daher hat man das Muxen (Multiplexen) erfunden. Der Multiplexer nimmt die Streams, die zusammengehören und zerhackt sie in Datenpäckchen (Frames). Dann werden die Frames so zusammengesetzt, wie sie später auch benötigt werden - d.h. immer abwechselnd ein Videoframe, ein Audioframe usw.

ES Video

ES Audio

MPG Stream

In der obigen Abbildung sieht man oben die beiden Streams (Video und Audio) und unten die Ausgabe des Muxers. Der Player liest dann später das Ganze in seinen Puffer und spielt die Frames mit den gleichen Nummern parallel ab.

Dieses Verfahren erlaubt je nach Puffergröße und Lesegeschwindigkeit des Mediums auch das Kombinieren von mehr Daten als einfach nur eines Video- und eines Audiostreams. Bei einer DVD sind häufig diverse Sprachfassungen und sogar noch eine zweistellige Anzahl Untertitel verfübar. Hier kommt das gleiche Verfahren zum Einsatz:

ES Video

ES Audio 1

ES Audio 2

MPG Stream

In diesem Beispiel wird ein Videostream mit zwei unabhängigen Audiostreams gemuxt. Der Player liest später alle Daten - auch die des Audiostreams, den er gar nicht abspielen soll (er kann ja immer nur einen der beiden wiedergeben). Die unnötigen Daten werden einfach ignoriert. Dieses Verfahren läßt sich natürlich entsprechend für noch mehr Audiostreams oder auch für integrierte Datenframes (z.B. für Untertitel) einsetzen. Bei einer DVD mit vier Sprachen und zehn Untertiteln besteht ein einzelnes MPG-Paket dann also aus 1 (Video) + 4 (Audio) + 10 (Untertitel) = 15 Frames, von denen maximal 3 tatsächlich gleichzeitig verwendet werden.

Oft sind die einzelnen Teile (Video-Encoder, Audio-Encoder und Muxer) in einem einzelnen Programm verpackt, sodaß der Benutzer gar nicht mitbekommt, was im Hintergrund tatsächlich läuft.

Will man die Daten aber verarbeiten um z.B. Topf-Daten für DVD aufzubereiten, muß das entsprechende Programm die Daten demuxen (d.h. in ihre Einzelstreams zerlegen), dann z.B. die Video-Daten umkonvertieren und anschließend wieder alles zusammenmuxen.

Audiostreams können auch dazu eingesetzt werden, unterschiedliche Datenformate (z.B. Mono, Stereo, AC3 2.0 und AC3 5.1) zu transportieren. Daher kann ein MPG-Stream z.B. auch mehrere Audiostreams mit der gleichen Sprache in unterschiedlichen Tonformaten (z.B. Stereo und AC3 5.1) enthalten. Das wird bei Digital-SAT-Streams immer gemacht, wenn außer Stereo noch andere Formate übertragen werden - würde nur AC3 5.1 gesendet, könnte ein Stereo-Fernseher den Ton nicht vollständig oder garnicht wiedergeben - daher ist Stereo bzw. Mono immer als Standard mit dabei.

Das Verfahren des Multiplexens wird übrigens genauso innerhalb von Audiostreams verwendet: Um mehrere Tonkanäle (2 bei Stereo, 6 bei 5.1) zu codieren, werden entsprechend viele Audioframes zusammensortiert und ergeben somit ein Datenpaket, welches den Ton für alle Kanäle enthält).

MPEG ist nicht gleich MPEG - die Definition eines MPEG-Streams läßt dem Erzeuger relativ viel Spielraum - es stehen sowohl für Video- wie auch für Audiodaten diverse verschiedene Datenformate in unterschiedlichen Auflösungen (Video) und Bitraten (Video und Audio) zur Verfügung. Das ist auch der Grund, warum es in den meisten Fällen nicht funktioniert, einen Topf-Stream (hat zwar eine andere Endung, ist aber prinzipiell MPEG) direkt auf eine DVD oder SVCD zu verfachten, obwohl beide ebenfalls nach MPEG codiert sind.

Impressum

Hit Counter