MPEG-Transportstrom

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Transportstrom)
Wechseln zu: Navigation, Suche
Multiple MPEG-Programme werden kombiniert und über eine Antenne gesendet. Beim US broadcast digital TV system dekodiert dann ein ATSC-Empfänger den Transportstrom und gibt das einzelne Programm auf dem Wiedergabegerät aus.

Ein Transportstrom (englisch: Transport Stream; MPEG-TS, MTS oder TS) ist der Name für ein standardisiertes Kommunikationsprotokoll zur Übertragung von Audio, Video, und Daten. Es ist spezifiziert in MPEG-2 Part 1, Systems (ISO/IEC 13818-1 oder ITU-T Rec. H.222.0).

Mit MPEG-TS wird kontinuierlich digitales Video und digitales Audio gebündelt übertragen. Transportströme werden bei Übertragungswegen wie DVB (Satellit, Antenne, Kabel) und ATSC eingesetzt. MPEG-TS ist das Pendant zum Programmstrom (MPEG-PS), der für Medien wie DVDs entwickelt wurde.

Einführung[Bearbeiten]

Ein Transportstrom besteht aus einer kontinuierlichen Bytefolge, die in jeweils 188 Byte große Pakete unterteilt ist. Dies erlaubt den schnellen Zugriff (Synchronisation) auf den Inhalt, nach Programmwechsel oder anderen Empfangsunterbrechungen.

Deshalb wird der Transportstrom vorzugsweise auf Kanälen wie zum Beispiel Satellit, Antenne (auch mobiler Empfang) oder Kabel, also solche mit hohem Fehlerquotient, verwendet. Aber auch optische Speichermedien, bei denen Kratzer und Verschmutzung zu Fehlern beim Auslesen führen, profitieren von diesem Ansatz. Trotz der Fehlerkorrekturverfahren dieser Übertragungswege, kann es je nach Empfangsqualität immer wieder zu Übertragungsfehlern kommen, die dann zum Verlust einzelner Pakete führen.

Durch kurze Pakete gewährleistet man, dass kleine Übertragungsfehler auch nur kleine Auswirkungen haben, bzw. die Zeit bis zur Resynchronisation kurz bleibt. Die Länge von 188 Byte ist an die Größe der zur Zeit der Erstellung des MPEG-2-Standards als zukunftsträchtig erachteten Übertragungstechnik ATM angepasst (ein Transportstrompaket passt in vier ATM-„Zellen“).

Transportströme mit mehreren Fernsehprogrammen werden auch beim weit verbreiteten Digitalfernsehstandard DVB eingesetzt. Bei der Übertragung von DVB-T werden, abhängig von der verwendeten Modulation und Datenrate, sowie der verwendeten Videokomprimierung, in Deutschland ein bis sechs Fernsehprogramme in einem Transportstrom untergebracht, und über einen Kanal abgestrahlt[1].

Zusätzlich zu Video- und Audiokanälen sind auch Datenkanäle vorgesehen. Über die Datenkanäle können weitere Serviceinformationen, wie zum Beispiel Verschlüsselungsinformationen oder eine „elektronische Programmzeitschrift“ übertragen werden.

In den Transportstrom wiederholt eingebettete Tabellen (Program Association Table, Program Map Table) gruppieren Video-, Audio- und Datenkanäle zu Fernsehprogrammen. Die einzelnen Kanäle werden Elementarströme genannt.

Elemente des Transportstroms[Bearbeiten]

Paket[Bearbeiten]

Darstellung eines dekodierten TS-Pakets

Ein Paket ist die Basiseinheit eines Transportstroms. Es beginnt mit einem Synchronisierungs-Byte, dessen Wert 0x47 beträgt, gefolgt von drei 1-Bit-Flags und einem 13 Bit großen PID (packet identifier). Dann kommt ein 2-Bit-Feld zur Beschreibung einer eventuellen Verschlüsselung, 00 bedeutet unverschlüsselt, ein weiteres 2-Bit-Feld, welches anzeigt, ob noch optionale Felder (10) oder Nutzlast (01) oder beides (11) folgen, und noch ein 4-Bit-Kontinuitätszähler. Zusätzliche optionale Felder würden sich daran anschließen. Der Rest des Pakets besteht gegebenenfalls aus den eigentlichen Daten eines Elementarstroms. Eines der 1-Bit-Flags ist ein Startkennzeichen, um den Anfang einer logischen Blockstruktur eines Elementarstroms oder einer Tabelle der Program Specific Information (PSI), bzw. Service Information (SI) anzuzeigen.[2]

PID (packet identifier)[Bearbeiten]

Jedes Paket enthält PID (packet identifier) der durch einen 13 Bit Wert in den Kopfdaten dargestellt wird. Alle Pakete mit derselben PID enthalten zusammenhängende Informationen. Durch die Suche nach identischen PIDs extrahiert ein Demultiplexer einen Elementarstrom oder PSI- und SI-Tabellen aus dem Transportstrom. Im Sender wird in den meisten Fällen das Zeitmultiplexverfahren eingesetzt, um zu entscheiden, wann und wie oft eine bestimmte PID im Transportstrom erscheint. Ist nichts zu übertragen, werden leere Pakete gesendet um den Transportstrom nicht abbrechen zu lassen.

Der 4-Bit-Kontinuitätszähler im Paketkopf dient der Erkennung fehlender Transportstrom-Pakete eines Elementarstroms.

Der Elementarstrom mit PID „0” ist für das regelmäßige senden der Programm-Tabelle (PAT) reserviert. Auch andere regelmäßig gesendete Tabellen belegen jeweils eine eigene PID (u.a. PMT, SIT, EPG). Mit diesen Informationen können die Video- und Audioströme den Programmen zugeordnet werden.

Programme[Bearbeiten]

Das grundsätzliche Konzept von Transportströmen sind Programme (Services), die aus Gruppen von einem oder mehreren in Beziehung stehenden Inhalten stehen, die in Paketen mit unterschiedlichen PIDs transportiert werden. Die Lokalisierung der zusammenhängenden Daten erfolgt über diverse Tabellen. Wobei die absolut notwendigen Tabellen (Program Specific Information (PSI)) in der IEC 13818-1, die darüber hinausgehenden Tabellen (Service Information (SI)) in der ETSI EN 300 468 beschrieben sind.

PAT[Bearbeiten]

PAT steht für Program Association Table[3]. Pakete, die die PAT-Information enthalten, haben immer die PID 0x00. Sie enthält neben der Transportstromidentifikation (transport_stream_id), für jedes enthaltene Programm die Programmnummer (program_number) und die PID (program_map_pid) für die zugehörige Program Map Table (PMT).

PMT[Bearbeiten]

Die Program Map Table (PMT) enthält Informationen über die Programme. Für jedes Programm gibt es eine PMT, assoziiert mit ihrer eigenen PID. Die PMTs beschreiben, welche PIDs Daten für das Programm enthalten. PMTs stellen ebenso Metadaten für die Streams und ihre einzelnen PIDs bereit. Zum Beispiel sind bei einem Programm, bestehend aus einem MPEG-2-Videostrom, die PID des Videostroms und zusätzlich die Art der Daten, also in diesem Fall MPEG-2, enthalten. Die PMT kann außerdem zusätzliche Deskriptoren zur Beschreibung der einzelnen Ströme enthalten.

Senden Programme zeitweise das gleiche Programm, so kann die PMT der Programme für diese Zeit die gleichen Elementarströme enthalten, so dass die Elementarströme nicht mehrfach gesendet werden müssen.

PCR[Bearbeiten]

Um dem Dekoder eine zeitlich und geschwindigkeitsrichtige Darstellung zu ermöglichen, enthält das Programm eine Program Clock Reference (PCR). Der 33 bit große Zahlenwert gibt den jeweils aktuellen Zählerstand, zum Zeitpunkt der Aussendung (bzw. Transportstromerstellung), einer mit 27 MHz angetriebenen Referenzuhr wieder.

Um den PCR Wert des gewählten Programms zu finden, müssen die Pakete, deren PID der in der dem Programm zugehörigen PMT im Feld PCR_PID angegeben ist, untersucht werden. Üblicherweise wird die PID, in der das Video des Programms übertragen wird, verwendet. Ist in den Paketen ein Adaptationsfeld vorhanden, dies ist typischerweise alle 40 ms der Fall, enthält das Adaptationsfeld (u.a.) den PCR-Wert.

Der PCR-Wert ist sehr eng toleriert. Zum Einen darf die absolute Zeit zwischen zwei Paketen mit einer PCR-Information nicht mehr als 50 ms betragen, zum Anderen darf das Jitter der einzelnen Werte nicht größer als 500 ns sein.

SDT[Bearbeiten]

Die Service Description Table umfasst Informationen der einzelnen Programme, wie z.B. die Programmnamen („ZDF“). Sie wird auf PID 17 übertragen.

EIT[Bearbeiten]

Die Event Information Table enthält Informationen zu laufenden, folgenden und geplanten Sendungen im aktuellen, aber auch in anderen Transportströmen, wie z.B. den Namen der Sendung („Tagesschau“). Daraus kann eine elektronische Programmzeitschrift zusammengestellt werden. Sie wird auf PID 18 übertragen.

Nullpakete[Bearbeiten]

Bestimmte Übertragungsprotokolle wie ATSC und DVB schreiben eine konstante Bitrate vor (CBR). Um dieses sicherzustellen, kann es vorkommen, dass ein Multiplexer zusätzliche Pakete einfügen muss. Hierfür ist die PID 0x1FFF reserviert, die dann keine Daten enthält und vom Empfänger ignoriert wird.

Dekodierung[Bearbeiten]

Programme zur Dekodierung der Inhalte gehen in der Regel wie folgt vor:

  1. Lokalisierung der Paketanfänge im Bytestrom. Hierzu sind fünf aufeinander im Abstand von 188 Bytes liegende Synchronisierungs-Bytes (0x47) zu lokalisieren. Dies ist notwendig, da der Wert 0x47 auch in den anderen Daten der Transportstrominhalte vorhanden ist. Es darf nicht davon ausgegangen werden, dass das erste gelesene Byte ein Paketanfang ist, selbst wenn es sich um ein Byte mit dem Wert 0x47 handelt.
  2. Lesen der Program Association Table (PAT). Hierzu wird aus den Paketen mit der PID „0“ die Tabelle gelesen. Aus dieser Tabelle, die normalerweise alle 0,5s gesendet wird, wird die Anzahl der Programme, deren Identifikationsnummer (Program_number) und die jeweilige PID der PMT ermittelt. Bei einen typischen Transportstrom für digitales Fernsehen in Deutschland enthält die PAT fünf Einträge, je einen für die vier gesendeten Programme sowie vorangestellt eine Angabe für die PID der Network Information Table (NIT).
  3. Lesen der Program Map Table (PMT) für alle in der PAT annoncierten Programme. Diese enthält die in der PAT angegebene Identifikationsnummer, sowie für jeden Elementarstrom (Video, Audio, Teletext, etc.) einen Eintrag aus dem die Eigenschaft und die PID des Elementarstroms hervorgeht. Mit diesen Informationen lassen sich die eigendlichen Dekoder für die Elementarströme auswählen und konfigurieren.
  4. Lesen der Elementarströme für das ausgewählte Programm und die Dekodierung der Elementarstrominhalte.

Ergänzend können weitere Informationen ausgelesen werden.

  • Die Service Description Table (SDT), die in Paketen mit der PID „17“ gesendet werden, enthält für jede Identifikationsnummer der PAT (in der SDT Service_ID genannt) einen Eintrag aus dem der Name des Programms wie z.B. "Das Erste" hervorgeht.
  • Die Event Information Table (EIT), die in Paketen mit der PID „18“ gesendet wird, enthält in der Regel Einträge aus denen eine Beschreibung der gegenwärtigen, folgenden und geplanten Sendungen hervorgeht.

Speicherformate[Bearbeiten]

Einige Festplattenempfänger und viele Computer-TV-Karten können Aufnahmen von Transportströmen einzelner Sender und teilweise auch von kompletten Transpondern aufzeichnen. Das häufigst benutzte Containerformat ist dabei der oben beschriebene Transportstrom mit der Dateiendung *.ts. Dvb-Dateien beginnen als MPEG-Transportstrom mit dem Byte 0x47, welches sich alle 188 Byte wiederholt.

Vantage verwendet das TRP-Container-Format und Topfield speichert diese als *.rec. Einige dieser Transportstrom-Container lassen sich in andere konvertieren.[4] Weil häufig mehrere Programme innerhalb eines Transponders zu Transportstroms zusammengefasst werden, erlauben einige Empfänger ohne Doppeltuner, dennoch mehrere Programme zu sehen oder aufzunehmen.

Weblinks[Bearbeiten]

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. DVB-T DasÜberallFernsehen Sender- und Programmliste Deutschland. Abgerufen am 14. April 2015
  2. Etherguide: transport_packet [MPEG-2 Semantics]. Abgerufen am 16. April 2015
  3. Keith Jack: Video Demystified, Fifth Edition, 2007, S. 668-669. ISBN 978-0-7506-8395-1
  4. Tutorial: Aufnahmen in H.264 TRP- und REC in TS formatieren (Memento vom 15. August 2013 im Internet Archive) auf: HDTVTotal.com, vom 5. April 2008