Deskriptor (Digitales Fernsehen)
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)[1]
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.
Byte | Bezeichnung | Beschreibung |
---|---|---|
0 | descriptor_tag | Bezeichner des Deskriptors |
1 | descriptor_length | Länge des Deskriptors (Anzahl der Bytes die folgen) |
2..n | Daten | Daten 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[2] 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
- ETSI: Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems. Abgerufen am 27. April 2015
- ETSI: Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems. Kapitel 6.2.33 Service descriptor. Abgerufen am 27. April 2015