Übersicht über MPEG-2-Systeme
- 05/31/2018
- 2 minuten zum Lesen
-
- größe s
- v
- m
Dieser Abschnitt gibt einen allgemeinen, nicht technischen Überblick über die MPEG-2-Systemschicht. MPEG-2 Systems ist der Standard, der definiert, wie Audio- und Videostreams in MPEG-2 gemultiplext werden.
Elementarströme
Das MPEG-2-Multiplexing beginnt mit einem oder mehreren Byte-Streams, den sogenannten Elementarströmen, die Video-, Audio- oder andere Daten enthalten. Ein Videostream enthält beispielsweise komprimierte Videoframes sowie Sequenzheader, GOP-Header (Group-of-Picture) und alles andere, was der Decoder zum Dekodieren des Streams benötigt. Die Systemschicht definiert nicht den Inhalt des ES-Byte-Streams.
Ein Elementarstrom wird in Pakete zerlegt, die einen paketisierten Elementarstrom (PES) bilden. PES-Pakete haben eine variable Länge. Der Inhalt des Pakets wird als Payload bezeichnet. Jedes PES-Paket enthält auch einen Header. Der Multiplexer weist jedem PES eine 1-Byte-Stream-ID zu; einzelne PES-Pakete werden durch die Stream-ID im Paketkopf identifiziert. Bei Audiostreams hat die Stream-ID die Form 110xxxxx. Für Video hat die Stream-ID die Form 1110yyyy.
Der MPEG-2-Standard definiert zwei Möglichkeiten, paketierte Elementarströme zu liefern: Programmströme und Transportströme.
Programmstreams
Programmstreams sind für Umgebungen konzipiert, die relativ fehlerfrei sind, z. B. lokale Dateispeicherung. In einem Programmstrom werden die PES-Pakete gemultiplext und in Einheiten organisiert, die als Packs bezeichnet werden. Alle PES-Streams in einem Programmstream werden auf dieselbe Uhr synchronisiert.
Transportströme
Transportströme (TS) sind für unzuverlässige oder fehleranfällige Umgebungen wie Netzwerkübertragungen konzipiert. Sie können auch mehrere Programme enthalten, die mit verschiedenen Uhren synchronisiert sind. Ein Transportstrom fügt eine zweite Ebene der Paketierung hinzu — die PES-Streams werden in Transportstrompaketen verpackt, die eine feste Größe von 188 Byte pro Paket haben. TS-Pakete können auch Programminformationsströme enthalten, die im folgenden Abschnitt beschrieben werden.
Jedes TS-Paket verfügt über einen 4-Byte-Header sowie ein optionales Anpassungsfeld, das zusätzliche Header-Informationen enthält. Der Multiplexer weist jedem PES-Strom oder Programminformationsstrom eine Programm-ID (PID) zu. Die PIDs werden verwendet, um die TS-Pakete zu identifizieren, ähnlich wie Stream-IDs PES-Pakete identifizieren. (Wenn ein Transportstrom mehrere Programme enthält, sind die Stream-IDs möglicherweise nicht eindeutig, aber die PID-Zuweisungen sind innerhalb des Transportstroms eindeutig.)
Programmspezifische Informationen
Da ein Transportstrom mehrere Programme enthalten kann, muss es eine Möglichkeit geben, die verschiedenen PES-Pakete den Programmen zuzuordnen, zu denen sie gehören. Dies wird mithilfe von Tabellen erreicht, die die Programmströme identifizieren. Zusammen werden diese Daten als programmspezifische Informationen (PSI) bezeichnet. Die PSI-Daten werden wie die PES-Daten in TS-Paketen übertragen. Es gibt verschiedene Arten von PSI-Daten, darunter:
-
Programmzuordnungstabelle (PAT). Der PAT ist immer der PID 0x000 zugeordnet. Jeder Eintrag im PAT ist eine PID, die die PMT-Pakete für dieses Programm identifiziert (siehe nächster Punkt).
-
Programm Karte Tabelle (PMT). Jedes PMT definiert ein Programm. Jeder Tabelleneintrag gibt die PID für diesen Stream sowie einen Code an, der den Stream-Typ identifiziert. ISO / IEC 13818-1 definiert einige Standardstromtypen; Eine verkürzte Liste ist in der folgenden Tabelle dargestellt.
stream_type Beschreibung 0x01 MPEG-1 Video 0x02 MPEG-2 Video 0x03 MPEG-1 Audio 0x04 MPEG-2 Audio 0x80 – 0xFF Benutzer privat Andere Standards, die auf MPEG-2 basieren, wie z. B. ATSC, können zusätzliche Stream-Typen im Bereich „user private“ definieren. Beispielsweise definiert ATSC 0x81 als Dolby AC-3-Audio.
-
Bedingte Zugriffstabellen (CAT)
-
Netzwerkidentifikationstabellen (NIT)
MPEG-2 Unterstützung in DirectShow