Passa al contenuto principale

5.1. RTP Header Usage (Uso dell'intestazione RTP)

5.1. RTP Header Usage (Uso dell'intestazione RTP)

Il formato dell'intestazione RTP è specificato in RFC 3550 [5] e riportato in Figura 1 per comodità. Questo formato di payload utilizza i campi dell'intestazione in modo coerente con tale specifica.

Quando una sola NAL unit è incapsulata per pacchetto RTP, il formato di payload RTP RACCOMANDATO è specificato nella Sezione 5.6. Il payload RTP (e le impostazioni di alcuni bit dell'intestazione RTP) per i pacchetti di aggregazione e le unità di frammentazione sono specificati rispettivamente nelle Sezioni 5.7.2 e 5.8.

    0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 1. Intestazione RTP secondo RFC 3550

Le informazioni di intestazione RTP da impostare secondo questo formato di payload RTP sono le seguenti.

Marker bit (M): 1 bit

Impostato per l'ultimo pacchetto dell'unità di accesso indicata dal timestamp RTP, in linea con l'uso normale del bit M nei formati video, per consentire una gestione efficiente del buffer di riproduzione. Per i pacchetti di aggregazione (STAP e MTAP), il bit marker nell'intestazione RTP DEVE essere impostato al valore che avrebbe avuto il bit marker dell'ultima NAL unit del pacchetto di aggregazione se fosse stata trasportata nel proprio pacchetto RTP. I decodificatori POSSONO usare questo bit come indicazione anticipata dell'ultimo pacchetto di un'unità di accesso ma NON DEVONO fare affidamento su questa proprietà.

Nota informativa: Un solo bit M è associato a un pacchetto di aggregazione che trasporta più NAL unit. Pertanto, se un gateway ha ripacchettizzato un pacchetto di aggregazione in più pacchetti, non può impostare in modo affidabile il bit M di tali pacchetti.

Payload type (PT): 7 bit

L'assegnazione di un tipo di payload RTP per questo nuovo formato di pacchetto è al di fuori dell'ambito di questo documento e non viene qui specificata. L'assegnazione di un tipo di payload deve essere effettuata tramite il profilo usato o in modo dinamico.

Sequence number (SN): 16 bit

Impostato e usato in conformità a RFC 3550. Per la modalità di pacchettizzazione a singola NALU e non interleaved, il numero di sequenza serve a determinare l'ordine di decodifica della NALU.

Timestamp: 32 bit

Il timestamp RTP è impostato al timestamp di campionamento del contenuto. DEVE essere usata una frequenza di clock di 90 kHz.

Se la NAL unit non ha proprietà temporali proprie (ad es., NAL unit di parameter set e SEI), il timestamp RTP è impostato al timestamp RTP dell'immagine codificata primaria dell'unità di accesso in cui la NAL unit è inclusa, secondo la Sezione 7.4.1.2 di [1].

L'impostazione del timestamp RTP per gli MTAP è definita nella Sezione 5.7.2.

I ricevitori DOVREBBERO ignorare eventuali messaggi SEI di temporizzazione dell'immagine inclusi in unità di accesso che hanno un solo timestamp di visualizzazione. Invece, i ricevitori DOVREBBERO usare il timestamp RTP per sincronizzare il processo di visualizzazione.

Se un'unità di accesso ha più di un timestamp di visualizzazione trasportato in un messaggio SEI di temporizzazione dell'immagine, le informazioni nel messaggio SEI DOVREBBERO essere trattate come relative al timestamp RTP, con l'evento più anticipato che avviene all'istante dato dal timestamp RTP e gli eventi successivi più tardi, secondo la differenza tra i valori di tempo immagine trasportati nel messaggio SEI di temporizzazione dell'immagine.

Siano tSEI1, tSEI2, ..., tSEIn i timestamp di visualizzazione trasportati nel messaggio SEI di un'unità di accesso, dove tSEI1 è il più anticipato tra tali timestamp. Sia tmadjst() una funzione che adatta la scala temporale dei messaggi SEI a una scala di 90 kHz. Sia TS il timestamp RTP. Allora, l'istante di visualizzazione per l'evento associato a tSEI1 è TS. L'istante di visualizzazione per l'evento con tSEIx, dove x è in [2..n], è TS + tmadjst(tSEIx - tSEI1).

Nota informativa: Visualizzare i frame codificati come campi è spesso necessario in un'operazione nota come 3:2 pulldown, in cui contenuto cinematografico costituito da frame codificati viene mostrato su un display a scansione interlacciata. Il messaggio SEI di temporizzazione dell'immagine consente il trasporto di più timestamp per la stessa immagine codificata, e quindi il processo 3:2 pulldown è perfettamente controllato. Il meccanismo del messaggio SEI di temporizzazione dell'immagine è necessario perché nel timestamp RTP può essere convogliato un solo timestamp per frame codificato.