5.5. Decoding Order Number (DON) (Numero d'ordine di decodifica)
5.5. Decoding Order Number (DON) (Numero d'ordine di decodifica)
Nella modalità di pacchettizzazione interleaved, l'ordine di trasmissione delle NAL unit può differire dall'ordine di decodifica delle NAL unit. Il decoding order number (DON) è un campo nella struttura del payload o una variabile derivata che indica l'ordine di decodifica delle NAL unit. La motivazione ed esempi di casi d'uso per la trasmissione fuori dall'ordine di decodifica e per l'uso del DON sono dati nella Sezione 13.
L'accoppiamento tra ordine di trasmissione e ordine di decodifica è controllato dal parametro di tipo di media OPZIONALE sprop-interleaving-depth come segue. Quando il valore del parametro di tipo di media OPZIONALE sprop-interleaving-depth è uguale a 0 (esplicitamente o per default), l'ordine di trasmissione delle NAL unit DEVE essere conforme all'ordine di decodifica delle NAL unit. Quando il valore del parametro di tipo di media OPZIONALE sprop-interleaving-depth è maggiore di 0:
- l'ordine delle NAL unit in un MTAP16 e un MTAP24 non è richiesto essere l'ordine di decodifica delle NAL unit, e
- l'ordine delle NAL unit generate depacchettizzando STAP-B, MTAP e FU in due pacchetti consecutivi non è richiesto essere l'ordine di decodifica delle NAL unit.
Le strutture di payload RTP per un pacchetto a singola NAL unit, un STAP-A e un FU-A non includono DON. Le strutture STAP-B e FU-B includono DON, e la struttura degli MTAP consente di derivare DON, come specificato nella Sezione 5.7.2.
Nota informativa: Quando un FU-A compare in modalità interleaved, segue sempre un FU-B, che imposta il suo DON.
Nota informativa: Se un trasmittente vuole incapsulare una singola NAL unit per pacchetto e trasmettere i pacchetti fuori dal loro ordine di decodifica, si può usare il tipo di pacchetto STAP-B.
Nella modalità di pacchettizzazione a singola NAL unit, l'ordine di trasmissione delle NAL unit, determinato dal numero di sequenza RTP, DEVE essere lo stesso del loro ordine di decodifica delle NAL unit. Nella modalità non interleaved, l'ordine di trasmissione delle NAL unit in pacchetti a singola NAL unit, STAP-A e FU-A DEVE essere lo stesso del loro ordine di decodifica delle NAL unit. Le NAL unit all'interno di uno STAP DEVONO comparire nell'ordine di decodifica delle NAL unit. Pertanto, l'ordine di decodifica è fornito prima tramite l'ordine implicito all'interno di uno STAP e poi tramite il numero di sequenza RTP per l'ordine tra STAP, FU e pacchetti a singola NAL unit.
La segnalazione del valore di DON per le NAL unit trasportate in STAP-B, MTAP e in una serie di unità di frammentazione che iniziano con un FU-B è specificata rispettivamente nelle Sezioni 5.7.1, 5.7.2 e 5.8. Il valore di DON della prima NAL unit nell'ordine di trasmissione PUÒ essere impostato a un valore qualsiasi. I valori di DON sono nell'intervallo da 0 a 65535 inclusi. Raggiunto il valore massimo, il valore di DON torna a 0.
L'ordine di decodifica di due NAL unit contenute in qualsiasi STAP-B, MTAP o serie di unità di frammentazione che inizia con un FU-B si determina come segue. Sia DON(i) il numero d'ordine di decodifica della NAL unit con indice i nell'ordine di trasmissione. La funzione don_diff(m,n) è specificata come segue:
Se DON(m) == DON(n), don_diff(m,n) = 0
Se (DON(m) < DON(n) e DON(n) - DON(m) < 32768), don_diff(m,n) = DON(n) - DON(m)
Se (DON(m) > DON(n) e DON(m) - DON(n) >= 32768), don_diff(m,n) = 65536 - DON(m) + DON(n)
Se (DON(m) < DON(n) e DON(n) - DON(m) >= 32768), don_diff(m,n) = - (DON(m) + 65536 - DON(n))
Se (DON(m) > DON(n) e DON(m) - DON(n) < 32768), don_diff(m,n) = - (DON(m) - DON(n))
Un valore positivo di don_diff(m,n) indica che la NAL unit con indice di ordine di trasmissione n segue, nell'ordine di decodifica, la NAL unit con indice di ordine di trasmissione m. Quando don_diff(m,n) è uguale a 0, l'ordine di decodifica delle due NAL unit può essere in qualsiasi ordine. Un valore negativo di don_diff(m,n) indica che la NAL unit con indice di ordine di trasmissione n precede, nell'ordine di decodifica, la NAL unit con indice di ordine di trasmissione m.
I valori dei campi relativi a DON (DON, DONB e DOND; vedere Sezione 5.7) DEVONO essere tali che l'ordine di decodifica determinato dai valori di DON, come specificato sopra, sia conforme all'ordine di decodifica delle NAL unit.
Se l'ordine di due NAL unit nell'ordine di decodifica delle NAL unit è scambiato e il nuovo ordine non è conforme all'ordine di decodifica delle NAL unit, le NAL unit NON DEVONO avere lo stesso valore di DON. Se l'ordine di due NAL unit consecutive nel flusso di NAL unit è scambiato e il nuovo ordine è ancora conforme all'ordine di decodifica delle NAL unit, le NAL unit POSSONO avere lo stesso valore di DON. Ad esempio, quando il profilo di codifica video in uso consente ordine arbitrario delle slice, tutte le NAL unit di slice codificate di un'immagine codificata POSSONO avere lo stesso valore di DON. Di conseguenza, le NAL unit con lo stesso valore di DON possono essere decodificate in qualsiasi ordine, e due NAL unit con valore di DON diverso dovrebbero essere passate al decodificatore nell'ordine specificato sopra. Quando due NAL unit consecutive nell'ordine di decodifica delle NAL unit hanno valore di DON diverso, il valore di DON per la seconda NAL unit nell'ordine di decodifica DOVREBBE essere il valore di DON della prima, incrementato di uno.
Un esempio del processo di depacchettizzazione per recuperare l'ordine di decodifica delle NAL unit è dato nella Sezione 7.
Nota informativa: I ricevitori non dovrebbero aspettarsi che la differenza assoluta dei valori di DON per due NAL unit consecutive nell'ordine di decodifica delle NAL unit sia uguale a uno, anche in trasmissione priva di errori. Un incremento di uno non è richiesto, perché al momento di associare valori di DON alle NAL unit può non essere noto se tutte le NAL unit sono consegnate al ricevitore. Ad esempio, un gateway può non inoltrare NAL unit di slice codificate di immagini non di riferimento o NAL unit SEI quando c'è carenza di bitrate nella rete verso cui i pacchetti sono inoltrati. In un altro esempio, una trasmissione in diretta è interrotta di tanto in tanto da contenuto pre-codificato, come spot pubblicitari. La prima immagine intra di una clip pre-codificata è trasmessa in anticipo per assicurarne la pronta disponibilità nel ricevitore. Trasmettendo la prima immagine intra, l'origine non sa esattamente quante NAL unit saranno codificate prima che la prima immagine intra della clip pre-codificata segua nell'ordine di decodifica. Pertanto, i valori di DON per le NAL unit della prima immagine intra della clip pre-codificata devono essere stimati quando sono trasmesse, e possono verificarsi lacune nei valori di DON.