# DVB-SI

Der Standard DVB-SI (Digital Video Broadcasting - Service Information) spezifiziert die Verarbeitung von Zusatzdaten innerhalb vom Digital Video Broadcasting (DVB) und wurde vom Europäischen Institut für Telekommunikationsnormen (ETSI) in der Norm ETS 300 468 definiert. Sie ermöglicht u. a. die Lokalisierung und Dekodierung der Inhalte eines MPEG-Transportstroms. Diese Daten werden vom Empfänger verarbeitet und entweder automatisch angezeigt oder sie können vom Zuschauer in verschiedenen Menüseiten abgerufen werden. Die Informationen werden innerhalb eines Transportstroms, in den Nutzdaten von dafür bestimmten Paketen übertragen.

## Tabellenübersicht

Folgende SI (Service Information) sind für die Zuschauerinformation definiert:
* BAT: Bouquet Allocation Table (optional)
** Enthält Informationen über das Bouquet der Programme eines Anbieters, auch wenn diese über verschiedene Ausstrahlungswege verbreitet werden.
* SDT: Service Description Table
** Enthält die angebotenen Programme.
** Enthält z. B. Hinweise auf die Sendeanstalten.
* TDT: Time and Date Table
** Enthält die augenblickliche Uhrzeit im UTC-Format
* TOT: Time Offset Table
** enthält sowohl die Uhrzeit in UTC als auch den Versatz zur lokalen Zeitzone
* RST: Running Status Table (optional)
** Gibt an, ob eine bestimmte Sendung gerade läuft, noch nicht läuft oder in unmittelbarer Zukunft beginnen wird und ermöglicht so unter anderem die Steuerung von Videorecordern
* EIT: Event Information Table (Informationen für die zeitrichtige Aufnahmesteuerung)
** Enthält Programmtafeln ähnlich wie in Programmzeitschriften.
** Enthält die Kennung des "content_descriptor" (das ist die jeweilige Programmart, bzw. Kategorie, bzw. Klassifikation).
** Enthält eine Klassifizierung der Programme mit Bezug auf die Eignung für Zuschauer bestimmter Altersgruppen.
*** Aus diesen Informationen werden die Daten für den Electronic Program Guide (EPG) gewonnen.
* NIT: Network Information Table
** Enthält neben Name und Art des Übertragungssystems (Astra, Satellit) auch technische Parameter wie Frequenz und Fehlerschutz
Neben diesen "Service Informationen" sind noch Parameter für die technische Realisierung der Übertragung PSI (Program-specific information) definiert:
* PAT: Program Association Table
** Enthält für jedes Programm die Programmnummer und den Packet Identifier (PID), auf der die PMT übertragen wird.
* PMT: Program Map Table
** Enthält für jedes Programm Informationen über die Elementarströme (Video, Audio, Teletext usw.), die zu deren Dekodierung erforderlich sind.
* TSDT: Transport Stream Description Table (optional)
* CAT: Conditional Access Table (optional)
** Enthält Informationen, die zur Entschlüsselung von Verschlüsselten Programmen (Bezahlfernsehen) erforderlich sind, z. B. welches System zur Verwendung kommt.

## Übertragungsformat

Die Tabellen werden aus mindestens einer, meistens aber mehreren, Sektionen gebildet. Die Datenmenge einer einzelnen Sektion besteht aus maximal einem Kilobyte, bei einigen Tabellen auch bis zu vier Kilobyte. Da die Daten einer Sektion häufig größer sind als die Nutzdatenmenge eines einzelnen Transportstrompakets, wird der Inhalt einer Sektion auf die Nutzdaten mehrerer Pakete mit dem gleichen Packet Identifier (PID) verteilt. Um den Anfang einer Sektion zu finden, muss zunächst auf ein Paket gewartet werden, in welchem das Payload_unit_start_indicator-Feld gesetzt ist. In diesem Fall beginnt mindestens eine Sektion in den Nutzdaten dieses Pakets. Das erste Byte der Nutzdaten enthält das Pointer_field, die Anzahl der Bytes, die übersprungen werden müssen, um das erste Byte der neuen Sektion zu finden. Dieser Wert ist häufig „0“, so dass die Sektion unmittelbar nach dem Pointer_field beginnt. Wenn das Ende der Sektion nicht zugleich das Ende der Payload eines Paketes ist und keine weitere Sektion unmittelbar anschließt, muss der Rest der Payload mit 0xFF aufgefüllt sein.
Jede Sektion beginnt mit einem Byte, welches die Table_id enthält (der Wert 0xFF ist verboten), gefolgt vier Bits sowie einer 12-Bit-Längenangabe der noch folgenden Bytes dieser Sektion. Den Abschluss bildet eine 32 Bit CRC (Zyklische Redundanzprüfung) Prüfsumme, um Übertragungsfehler zu erkennen. Beim Aufsammeln der über mehrere Pakete verteilten Sektionsdaten muss auf verlorene oder doppelt gesendete Pakete geachtet werden, dies ermöglicht das Continuity_counter Feld der jeweiligen Pakete.
Die Interpretation der Inhalte erfolgt dann entsprechend der Syntaxdiagramme der einzelnen Tabellen.