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
AbsDONist in Abschnitt 8.1 festgelegt. -
Die Funktion
don_diffist 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-diffvorhanden, istdon_diff(m,n)größer als der Wert vonsprop-max-don-diff, wobei n der NAL-Einheit mit dem größtenAbsDON-Wert unter den empfangenen NAL-Einheiten und m der mit dem kleinstenAbsDON-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-diffvorhanden, werden alle NAL-Einheiten m, für diedon_diff(m,n)größer alssprop-max-don-diffist, aus dem Entflechtungspuffer entfernt und in der unten angegebenen Reihenfolge an den Decoder übergeben. Dabei entspricht n der NAL-Einheit mit dem größtenAbsDON-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.