Projekte > MPEG-1/2 Video > Transport Stream

BAT - Bouquet Association Table

Das Bouquet ist eine virtuelle Zusammenfassung von Transportströmen. Die Transportströme sind nicht auf einen Übertragungsweg beschränkt. Sie können per Satellit, Kabel oder Antenne übertragen werden.

Die Bouquet Association Table ist in der ETSI EN 300 468 definert. Es ist eine europäische Norm. Im Dezember 2009 wurde Version 1.11.1 veröffentlicht. Die BAT ist in Transportstreampaketen mit der PID $0011 enthalten. Die Tabelle kann über mehrere Pakete verteilt sein.

Der Aufbau

Der Beginn einer Tabelle ist dadurch gekennzeichnet, dass der payload_unit_start_indicator im Transport Stream Header auf '1' gesetzt ist. In der Tabelle ist angegeben, auf wieviele Sektionen die Tabelle verteilt ist. In den Folgesektionen wird die Tabelle einfach fortgesetzt.

  • program_specific_information
    • 8 Bit: pointer_field
    • Soviele Bytes, wie im pointer_field angegeben sind.
    • event_information_section
      • 8 Bit: table_id
      • 1 Bit: section_syntax_indicator
      • 1 Bit: reserved_future_use
      • 2 Bit: reserved
      • 12 Bit: section_length
      • 16 Bit: bouquet_id
      • 2 Bit: reserved
      • 5 Bit: version_number
      • 1 Bit: current_next_indicator
      • 8 Bit: section_number
      • 8 Bit: last_section_number
      • 4 Bit: reserved_for_future_use
      • 12 Bit: bouquet_descriptor_length
      • bouquet_descriptor_length Byte: descriptor
        • descriptors
      • 4 Bit: reserved_for_future_use
      • 12 Bit: transport_stream_loop_length
      • transport_stream_loop_length: Byte transport_stream_descriptors
        • 16 Bit: transport_stream_id
        • 16 Bit: original_transport_stream_id
        • 4 Bit: reserved_for_future_use
        • 12 Bit: transport_stream_length
        • transport_stream_length Byte: Descriptoren
          • descriptors
      • 32 Bit: CRC_32
      • Der Kopf

        table_id: Die ID der Tabelle ist $A4.

        section_syntax_indicator: Das Bit ist auf '1' gesetzt.

        section_length: Dies ist die verbleibende Länge der Sektion ab dem folgenden Byte. Die Sektion kann über mehrerere Pakete verteilt sein.

        bouquet_id: Die ID dient als Label für die Identifizierung des Bouquets. Weitere Informationen dazu finden sich in der TS 101 162.

        version_number: Das ist die Versionsnummer der Information. Sie beginnt mit 0 und wird bei einer Änderung der Information um 1 erhöht. Ist die 31 erreicht, beginnt die Zählung wieder bei 0.

        current_next_indicator: Er gibt an, ob die Tabelle anwendbar ist. Ist der Wert 0 muss die nächste Tabelle angewendet werden.

        section_number: Die Sektionen sind nummeriert. Die Nummer wird mit jeder weiteren Sektion mit der gleichen table_id und bouquet_id um 1 erhöht.

        last_section_number: Die Nummer der letzten Sektion.

        bouquet_descriptor: Die Beschreibungen des Bouquets. Siehe unten.

        Die Transportstreamliste

        Aus der section_length abzüglich der Länge der Bouquetbeschreibung und der weiteren neun Byte zwischen der section_length und der Transportstreamliste sowie der vier Byte für den CRC_32 ergibt sich die Länge derselben. Die Anzahl der Tranportstreams ergibt dann beim Lesen.

        transport_stream_id: Diese ID dient der Unterscheidung der Streams.

        original_network_id: Diese ID dient der Unterscheidung im Originalsystem.

        transport_stream_length: Dies ist die Länge der folgenden Descriptorliste.

        transport_stream: Die Beschreibungen der Transport Streams Bouquets. Siehe unten.

        Beschreibungen (Descriptors)

        Nach der Norm können folgende Descriptors in der Tabelle enthalten sein:

        Eine feste Zuordnung zum Bouquet Descriptor oder zum Transport Stream Descriptor scheint es nicht zu geben. Darüber hinaus kann man, obwohl nicht in der Liste angegeben, benutzerdefinierte Descriptors bei den Transport Stream Descriptors finden.