5.5. Decoding Order Number (DON) (Dekodierreihenfolgenummer)
5.5. Decoding Order Number (DON) (Dekodierreihenfolgenummer)
Im verschränkten Paketierungsmodus darf die Übertragungsreihenfolge von NAL units von der Dekodierreihenfolge der NAL units abweichen. Die Dekodierreihenfolgenummer (decoding order number, DON) ist ein Feld in der Nutzlaststruktur oder eine abgeleitete Variable, die die NAL-unit-Dekodierreihenfolge angibt. Begründung und Beispiele für Anwendungsfälle für Übertragung außerhalb der Dekodierreihenfolge und für die Verwendung von DON sind in Abschnitt 13 angegeben.
Die Kopplung von Übertragungs- und Dekodierreihenfolge wird durch den OPTIONALEN Medientypparameter sprop-interleaving-depth wie folgt gesteuert. Wenn der Wert des OPTIONALEN Medientypparameters sprop-interleaving-depth gleich 0 ist (explizit oder standardmäßig), MUSS die Übertragungsreihenfolge der NAL units der NAL-unit-Dekodierreihenfolge entsprechen. Wenn der Wert des OPTIONALEN Medientypparameters sprop-interleaving-depth größer als 0 ist:
- muss die Reihenfolge der NAL units in einem MTAP16 und einem MTAP24 nicht die NAL-unit-Dekodierreihenfolge sein, und
- muss die Reihenfolge der NAL units, die durch Depaketisierung von STAP-Bs, MTAPs und FUs in zwei aufeinanderfolgenden Paketen erzeugt wird, nicht die NAL-unit-Dekodierreihenfolge sein.
Die RTP-Nutzlaststrukturen für ein Einzel-NAL-unit-Paket, ein STAP-A und ein FU-A enthalten kein DON. STAP-B- und FU-B-Strukturen enthalten DON, und die Struktur von MTAPs ermöglicht die Ableitung von DON, wie in Abschnitt 5.7.2 spezifiziert.
Hinweis (informativ): Wenn ein FU-A im verschränkten Modus vorkommt, folgt es immer einem FU-B, der sein DON setzt.
Hinweis (informativ): Wenn ein Sender eine einzelne NAL unit pro Paket kapseln und Pakete außerhalb ihrer Dekodierreihenfolge übertragen möchte, kann der STAP-B-Pakettyp verwendet werden.
Im Einzel-NAL-unit-Paketierungsmodus MUSS die Übertragungsreihenfolge der NAL units, bestimmt durch die RTP-Sequenznummer, dieselbe wie ihre NAL-unit-Dekodierreihenfolge sein. Im nicht verschränkten Paketierungsmodus MUSS die Übertragungsreihenfolge der NAL units in Einzel-NAL-unit-Paketen, STAP-As und FU-As dieselbe wie ihre NAL-unit-Dekodierreihenfolge sein. Die NAL units innerhalb eines STAP MÜSSEN in NAL-unit-Dekodierreihenfolge erscheinen. Somit wird die Dekodierreihenfolge zuerst durch die implizite Reihenfolge innerhalb eines STAP und dann durch die RTP-Sequenznummer für die Reihenfolge zwischen STAPs, FUs und Einzel-NAL-unit-Paketen geliefert.
Die Signalisierung des DON-Werts für in STAP-B, MTAP und einer Reihe von Fragmentierungseinheiten beginnend mit einem FU-B transportierte NAL units ist jeweils in den Abschnitten 5.7.1, 5.7.2 und 5.8 spezifiziert. Der DON-Wert der ersten NAL unit in Übertragungsreihenfolge KANN auf einen beliebigen Wert gesetzt werden. DON-Werte liegen im Bereich 0 bis 65535 einschließlich. Nach Erreichen des Maximalwerts springt der DON-Wert auf 0 zurück.
Die Dekodierreihenfolge von zwei in einem beliebigen STAP-B, MTAP oder einer Reihe von Fragmentierungseinheiten beginnend mit einem FU-B enthaltenen NAL units wird wie folgt bestimmt. Sei DON(i) die Dekodierreihenfolgenummer der NAL unit mit Index i in Übertragungsreihenfolge. Die Funktion don_diff(m,n) ist wie folgt spezifiziert:
Wenn DON(m) == DON(n), don_diff(m,n) = 0
Wenn (DON(m) < DON(n) und DON(n) - DON(m) < 32768), don_diff(m,n) = DON(n) - DON(m)
Wenn (DON(m) > DON(n) und DON(m) - DON(n) >= 32768), don_diff(m,n) = 65536 - DON(m) + DON(n)
Wenn (DON(m) < DON(n) und DON(n) - DON(m) >= 32768), don_diff(m,n) = - (DON(m) + 65536 - DON(n))
Wenn (DON(m) > DON(n) und DON(m) - DON(n) < 32768), don_diff(m,n) = - (DON(m) - DON(n))
Ein positiver Wert von don_diff(m,n) bedeutet, dass die NAL unit mit Übertragungsreihenfolge-Index n in Dekodierreihenfolge auf die NAL unit mit Übertragungsreihenfolge-Index m folgt. Wenn don_diff(m,n) gleich 0 ist, kann die NAL-unit-Dekodierreihenfolge der beiden NAL units in beliebiger Reihenfolge sein. Ein negativer Wert von don_diff(m,n) bedeutet, dass die NAL unit mit Übertragungsreihenfolge-Index n in Dekodierreihenfolge der NAL unit mit Übertragungsreihenfolge-Index m vorausgeht.
Die Werte DON-bezogener Felder (DON, DONB und DOND; siehe Abschnitt 5.7) MÜSSEN so gewählt sein, dass die durch die DON-Werte bestimmte Dekodierreihenfolge, wie oben spezifiziert, der NAL-unit-Dekodierreihenfolge entspricht.
Wenn die Reihenfolge zweier NAL units in NAL-unit-Dekodierreihenfolge getauscht wird und die neue Reihenfolge nicht der NAL-unit-Dekodierreihenfolge entspricht, DÜRFEN die NAL units nicht denselben DON-Wert haben. Wenn die Reihenfolge zweier aufeinanderfolgender NAL units im NAL-unit-Strom getauscht wird und die neue Reihenfolge weiterhin der NAL-unit-Dekodierreihenfolge entspricht, KÖNNEN die NAL units denselben DON-Wert haben. Wenn beispielsweise durch das verwendete Videocodierungsprofil beliebige Slice-Reihenfolge erlaubt ist, dürfen alle codierten Slice-NAL units eines codierten Bildes denselben DON-Wert haben. Folglich können NAL units mit demselben DON-Wert in beliebiger Reihenfolge dekodiert werden, und zwei NAL units mit unterschiedlichem DON-Wert sollten in der oben angegebenen Reihenfolge an den Decoder übergeben werden. Wenn zwei aufeinanderfolgende NAL units in NAL-unit-Dekodierreihenfolge unterschiedliche DON-Werte haben, SOLLTE der DON-Wert für die zweite NAL unit in Dekodierreihenfolge der DON-Wert der ersten plus eins sein.
Ein Beispiel für den Depaketisierungsprozess zur Wiederherstellung der NAL-unit-Dekodierreihenfolge ist in Abschnitt 7 gegeben.
Hinweis (informativ): Empfänger sollten nicht erwarten, dass der absolute Unterschied der DON-Werte für zwei aufeinanderfolgende NAL units in NAL-unit-Dekodierreihenfolge gleich eins ist, selbst bei fehlerfreier Übertragung. Eine Erhöhung um eins ist nicht erforderlich, da zum Zeitpunkt der Zuordnung von DON-Werten zu NAL units möglicherweise nicht bekannt ist, ob alle NAL units den Empfänger erreichen. Beispielsweise kann ein Gateway codierte Slice-NAL units von Nicht-Referenzbildern oder SEI-NAL units nicht weiterleiten, wenn im Zielnetzwerk ein Bitratenmangel besteht. In einem anderen Beispiel wird eine Live-Sendung von zeit zu Zeit durch vorcodierten Inhalt wie Werbung unterbrochen. Das erste Intra-Bild eines vorcodierten Clips wird im Voraus übertragen, damit es beim Empfänger leicht verfügbar ist. Beim Übertragen des ersten Intra-Bildes weiß der Ursprung nicht genau, wie viele NAL units codiert werden, bevor das erste Intra-Bild des vorcodierten Clips in Dekodierreihenfolge folgt. Daher müssen die DON-Werte für die NAL units des ersten Intra-Bildes des vorcodierten Clips bei ihrer Übertragung geschätzt werden, und Lücken in DON-Werten können auftreten.