Übersicht über MPEG-2-Systeme
Dieser Abschnitt bietet eine allgemeine, nicht technische Übersicht über die MPEG-2-Systemebene. MPEG-2 Systems ist der Standard, der definiert, wie Audio- und Videostreams in MPEG-2 multiplexiert werden.
Elementare Streams
Mpeg-2-Multiplexing beginnt mit einem oder mehreren Bytestreams, die als elementare Streams (ES) bezeichnet werden und Video-, Audio- oder andere Daten enthalten. Ein Video-ES enthält z. B. komprimierte Videoframes sowie Sequenzheader, GOP-Header (Group-of-Picture) und alles andere, was der Decoder zum Decodieren des Streams benötigt. Die Systemebene definiert nicht den Inhalt des ES-Bytestreams.
Ein elementarer Datenstrom wird in Pakete unterteilt und bildet einen paketisierten elementaren Stream (PES). PES-Pakete haben eine variable Länge. Der Inhalt des Pakets wird als Nutzlast bezeichnet. Jedes PES-Paket enthält auch einen Header. Der Multiplexer weist jeder PES eine 1-Byte-Stream-ID zu. Einzelne PES-Pakete werden durch die Stream-ID im Paketheader identifiziert. Für Audiostreams hat die Stream-ID das Format 110 xxxxx. Für Videos hat die Stream-ID das Formular 1110 yyyy.
Der MPEG-2-Standard definiert zwei Möglichkeiten zum Senden von paketbasierten elementaren Datenströmen: Programmstreams und Transportstreams.
Programm Streams
Programmstreams sind für Umgebungen konzipiert, die relativ fehlerfrei sind, z. B. lokaler Dateispeicher. In einem Programmstream werden die PES-Pakete multiplexiert und in Einheiten organisiert, die als Pakete bezeichnet werden. Alle PES-Datenströme in einem Programmstream werden mit der gleichen Uhr synchronisiert.
Transport Streams
Transportstreams (TS) sind für unzuverlässige oder fehleranfällige Umgebungen wie Netzwerkübertragungen konzipiert. Außerdem können sie mehrere Programme enthalten, die mit verschiedenen Uhren synchronisiert werden. Ein Transportstream fügt eine zweite Paketierungsebene hinzu. Die PES-Datenströme werden in Transportstreampakete gepackt, die eine feste Größe von 188 Bytes pro Paket haben. TS-Pakete können auch Programminformationsstreams enthalten, die im folgenden Abschnitt beschrieben werden.
Jedes TS-Paket verfügt über einen 4-Byte-Header sowie ein optionales Anpassungsfeld, das zusätzliche Headerinformationen enthält. Der Multiplexer weist jedem PES-Datenstrom oder Programminformationsstream eine Programm-ID (PID) zu. Die PIDs werden verwendet, um die TS-Pakete zu identifizieren, ähnlich wie Stream-IDs PES-Pakete identifizieren. (Wenn ein Transportstream mehrere Programme enthält, sind die Stream-IDs möglicherweise nicht eindeutig, aber die PID-Zuweisungen sind innerhalb des Transportstreams eindeutig.)
Programmspezifische Informationen
Da ein Transportstream mehrere Programme enthalten kann, muss es eine Möglichkeit geben, die verschiedenen PES-Pakete den Programmen zu zuordnen, zu denen sie gehören. Dies wird mithilfe von Tabellen erreicht, die die Programmstreams identifizieren. Zusammen werden diese Daten als Program Specific Information (PSI) bezeichnet. Die PSI-Daten werden genau wie die PES-Daten in TS-Paketen übertragen. Es gibt verschiedene Arten von PSI-Daten, darunter:
Program Association Table (PAT). Das PAT wird immer pid-0x000. Jeder Eintrag im PAT ist eine PID, die die PMT-Pakete für dieses Programm identifiziert (siehe nächstes Element).
Programmzuordnungstabelle (Program Map Table, PMT). Jedes PMT definiert ein Programm. Das PMT enthält eine Liste von Streams. Jeder Tabelleneintrag gibt die PID für diesen Stream sowie einen Code an, der den Streamtyp identifiziert. ISO/IEC 13818-1 definiert einige Standardstreamtypen. Eine abgekürzte Liste wird in der folgenden Tabelle angezeigt.
_Streamtyp 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, z. B. ATSC, können zusätzliche Streamtypen im privaten Bereich des Benutzers definieren. ATSC definiert beispielsweise 0x81 Dolby AC-3-Audio.
Tabellen für bedingten Zugriff (Conditional Access Tables, CAT)
Netzwerkidentifikationstabellen (NETWORK Identification Tables, SOLL)