Zum Hauptinhalt springen

7.2.2. De-Interleaving Process (Entflechtungsvorgang)

7.2.2. De-Interleaving Process (Entflechtungsvorgang)

Beim Empfänger gibt es zwei Pufferzustände: anfängliche Pufferung (initial buffering) und Pufferung während der Wiedergabe (buffering while playing). Die anfängliche Pufferung tritt ein, wenn die RTP-Sitzung initialisiert wird. Nach der anfänglichen Pufferung beginnen Decodierung und Wiedergabe, und der Modus Pufferung während der Wiedergabe wird verwendet.

Unabhängig vom Pufferzustand speichert der Empfänger eingehende NAL-Einheiten in Empfangsreihenfolge im Entflechtungspuffer wie folgt. NAL-Einheiten von Aggregationspaketen werden einzeln im Entflechtungspuffer gespeichert. Der Wert von DON (decoding order number) wird für jede NAL-Einheit berechnet und gespeichert.

Der Empfängerbetrieb wird unten mit folgenden Funktionen und Konstanten beschrieben:

  • Die Funktion AbsDON ist in Abschnitt 8.1 festgelegt.

  • Die Funktion don_diff ist in Abschnitt 5.5 festgelegt.

  • Die Konstante N ist der Wert des OPTIONALEN Medientypparameters sprop-interleaving-depth (siehe Abschnitt 8.1) plus 1.

Die anfängliche Pufferung dauert, bis eine der folgenden Bedingungen erfüllt ist:

  • Im Entflechtungspuffer befinden sich N oder mehr VCL-NAL-Einheiten (VCL NAL units).

  • Ist sprop-max-don-diff vorhanden, ist don_diff(m,n) größer als der Wert von sprop-max-don-diff, wobei n der NAL-Einheit mit dem größten AbsDON-Wert unter den empfangenen NAL-Einheiten und m der mit dem kleinsten AbsDON-Wert entspricht.

  • Die anfängliche Pufferung hat mindestens so lange gedauert wie der Wert des OPTIONALEN Medientypparameters sprop-init-buf-time.

Die aus dem Entflechtungspuffer zu entfernenden NAL-Einheiten werden wie folgt bestimmt:

  • Enthält der Entflechtungspuffer mindestens N VCL-NAL-Einheiten, werden NAL-Einheiten aus dem Entflechtungspuffer entfernt und in der unten angegebenen Reihenfolge an den Decoder übergeben, bis der Puffer N-1 VCL-NAL-Einheiten enthält.

  • Ist sprop-max-don-diff vorhanden, werden alle NAL-Einheiten m, für die don_diff(m,n) größer als sprop-max-don-diff ist, aus dem Entflechtungspuffer entfernt und in der unten angegebenen Reihenfolge an den Decoder übergeben. Dabei entspricht n der NAL-Einheit mit dem größten AbsDON-Wert unter den NAL-Einheiten im Entflechtungspuffer.

Die Reihenfolge, in der NAL-Einheiten an den Decoder übergeben werden, ist wie folgt festgelegt:

  • Sei PDON eine Variable, die zu Beginn der RTP-Sitzung mit 0 initialisiert wird.

  • Für jede NAL-Einheit mit einem DON-Wert wird eine DON-Distanz (DON distance) wie folgt berechnet. Ist der DON-Wert der NAL-Einheit größer als PDON, ist die DON-Distanz gleich DON minus PDON. Andernfalls ist die DON-Distanz gleich 65535 minus PDON plus DON plus 1.

  • NAL-Einheiten werden in aufsteigender Reihenfolge der DON-Distanz an den Decoder geliefert. Teilen sich mehrere NAL-Einheiten denselben DON-Distanzwert, KÖNNEN sie in beliebiger Reihenfolge an den Decoder übergeben werden.

  • Nachdem die gewünschte Anzahl von NAL-Einheiten an den Decoder übergeben wurde, wird PDON auf den DON-Wert der zuletzt an den Decoder übergebenen NAL-Einheit gesetzt.