Deskriptoren (englisch descriptors) sind kurze Datensätze, die in den Service Information eines Transportstroms des Digitalen Fernsehen übertragen werden. Sie werden verwendet, um detaillierte und kontextabhängige Informationen zu übertragen, z. B. den Namen oder den Inhalt des derzeit ausgestrahlten Programms.

Definitionen

Der Inhalt der Deskriptoren ist in den jeweils zugrundeliegenden Standards definiert. Im Fall des Digital Video Broadcasting sind dies ISO/IEC 13818-1 (MPEG-2 Systeme) und ETSI EN 300 468 (Service Information in DVB)

Deskriptoren werden jedoch auch in den Transportströmen anderer Systeme, wie ATSC und ISDB verwendet. Auch in der Multimedia Home Platform (MHP) werden diverse Deskriptoren definiert.

Aufbau

Die ersten beiden Bytes haben bei allen Deskriptoren die gleiche Bedeutung, während der Inhalt von der jeweiligen Deskriptordefinition abhängt.

ByteBezeichnungBeschreibung
0descriptor_tagBezeichner des Deskriptors
1descriptor_lengthLänge des Deskriptors (Anzahl der Bytes die folgen)
2..nDatenDaten des Deskriptors (Anzahl abhängig vom Wert in descriptor_length)

Durch die Begrenzung des Feldes descriptor_tag auf ein Byte kann es scheinbar maximal 256 verschiedene Deskriptoren geben. Diese Begrenzung wird auf zwei Wegen umgangen. Zum einen existiert im ETSI EN 300 468 der extension_descriptor dessen drittes Byte einen zusätzlichen Bezeichner enthält, der nochmals 256 Deskriptoren ermöglicht. Zum anderen werden die Deskriptoren systemabhängig unterschiedlich definiert, so dass z. B. bei gleichem descriptor_tag-Wert der Inhalt des Datenfeldes anders zu interpretieren ist, je nachdem welches System (DVB, ATSC …) oder welcher Kontext (DVB-SI, DVB-MHP …) vorliegt.

Insgesamt gibt es etliche hundert Definitionen solcher Deskriptoren.

Beispiel

Als Beispiel eines Deskriptors ist nachfolgend eine Version des in der ETSI EN 300 468 definierten service_descriptor wiedergegeben.

Zunächst die Rohdaten als Hexdump:

00:   48 10 01 09 05 5A 44 46 6D 6F 62 69 6C 04 05 5A  H....ZDFmobil..Z
10:   44 46                                            DF

Die Dekodierung erfolgt entsprechend dem angegebenen Syntax:

service_descriptor() {
  descriptor_tag               // 1 Byte, 0x48, "service_descriptor"
  descriptor_length            // 1 Byte, 0x10, es folgen 16 Bytes
  service_type                 // 1 Byte, 0x01, "digital television service"
  service_provider_name_length // 1 Byte, 0x09, es folgen 9 Bytes
  for (i=0;i<N;i++){           // es folgt der kodierte Text des Service Providers
    char                       // 1 Byte, 0x05 = "ISO/IEC 8859-9 Latin alphabet No. 5"
                               // 8 Bytes, 0x5A ... 0x6C = "ZDFmobil"
  }
  service_name_length          // 1 Byte, 0x04, es folgen 4 Bytes
  for (i=0;i<N;i++){           // es folgt der kodierte Text des Service
    char                       // 1 Byte, 0x05 = "ISO/IEC 8859-9 Latin alphabet No. 5"
                               // 3 bytes, 0x5A 0x44 0x46 = "ZDF"
  }
}

Einzelnachweise

  1. ETSI: Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems. Abgerufen am 27. April 2015
  2. ETSI: Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems. Kapitel 6.2.33 Service descriptor. Abgerufen am 27. April 2015
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.