5.1. RTP Header Usage
5.1. RTP Header Usage
Le format de l'en-tête RTP est spécifié dans la RFC 3550 [5] et reproduit à la figure 1 pour plus de commodité. Ce format de charge utile utilise les champs de l'en-tête d'une manière cohérente avec cette spécification.
Lorsqu'une seule NAL unit est encapsulée par paquet RTP, le format de charge utile RTP RECOMMANDÉ est spécifié à la section 5.6. La charge utile RTP (et les réglages de certains bits d'en-tête RTP) pour les paquets d'agrégation et les unités de fragmentation sont spécifiés respectivement aux sections 5.7.2 et 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 |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1. En-tête RTP selon la RFC 3550
Les informations d'en-tête RTP à définir conformément à ce format de charge utile RTP sont les suivantes.
Marker bit (M) : 1 bit
À positionner pour le tout dernier paquet de l'unité d'accès indiquée par l'horodatage RTP, conformément à l'usage normal du bit M dans les formats vidéo, afin de permettre une gestion efficace du tampon de lecture. Pour les paquets d'agrégation (STAP et MTAP), le bit marqueur dans l'en-tête RTP DOIT être réglé sur la valeur qu'aurait eu le bit marqueur du dernier NAL unit du paquet d'agrégation s'il était transporté dans son propre paquet RTP. Les décodeurs PEUVENT utiliser ce bit comme indication précoce du dernier paquet d'une unité d'accès mais NE DOIVENT PAS s'appuyer sur cette propriété.
Note informative : Un seul bit M est associé à un paquet d'agrégation portant plusieurs NAL units. Ainsi, si une passerelle a re-packetisé un paquet d'agrégation en plusieurs paquets, elle ne peut pas positionner de manière fiable le bit M de ces paquets.
Payload type (PT) : 7 bits
L'attribution d'un type de charge utile RTP pour ce nouveau format de paquet est hors du périmètre de ce document et n'y est pas spécifiée. L'attribution d'un type de charge utile doit être effectuée soit via le profil utilisé, soit de manière dynamique.
Sequence number (SN) : 16 bits
Défini et utilisé conformément à la RFC 3550. Pour le mode de packetisation NALU unique et non entrelacé, le numéro de séquence sert à déterminer l'ordre de décodage du NALU.
Timestamp : 32 bits
L'horodatage RTP est réglé sur l'horodatage d'échantillonnage du contenu. Une fréquence d'horloge de 90 kHz DOIT être utilisée.
Si le NAL unit n'a pas de propriétés temporelles propres (par ex., NAL units de jeu de paramètres et SEI), l'horodatage RTP est réglé sur l'horodatage RTP de l'image codée primaire de l'unité d'accès dans laquelle le NAL unit est inclus, selon la section 7.4.1.2 de [1].
Le réglage de l'horodatage RTP pour les MTAP est défini à la section 5.7.2.
Les récepteurs DEVRAIENT ignorer tout message SEI de temporisation d'image inclus dans des unités d'accès qui n'ont qu'un seul horodatage d'affichage. À la place, les récepteurs DEVRAIENT utiliser l'horodatage RTP pour synchroniser le processus d'affichage.
Si une unité d'accès comporte plus d'un horodatage d'affichage porté dans un message SEI de temporisation d'image, les informations du message SEI DEVRAIENT être traitées comme relatives à l'horodatage RTP, l'événement le plus tôt survenant à l'instant donné par l'horodatage RTP et les événements suivants plus tard, selon la différence des valeurs de temps d'image portées dans le message SEI de temporisation d'image.
Soient tSEI1, tSEI2, ..., tSEIn les horodatages d'affichage portés dans le message SEI d'une unité d'accès, où tSEI1 est le plus tôt de tous ces horodatages. Soit tmadjst() une fonction qui ajuste l'échelle de temps des messages SEI vers une échelle de 90 kHz. Soit TS l'horodatage RTP. Alors, l'instant d'affichage de l'événement associé à tSEI1 est TS. L'instant d'affichage de l'événement avec tSEIx, où x est dans [2..n], est TS + tmadjst(tSEIx - tSEI1).
Note informative : Afficher des images codées comme des champs est couramment nécessaire dans une opération connue sous le nom de 3:2 pulldown, dans laquelle un contenu cinématographique constitué d'images codées est affiché sur un écran à balayage entrelacé. Le message SEI de temporisation d'image permet de transporter plusieurs horodatages pour la même image codée, et le processus 3:2 pulldown est ainsi parfaitement contrôlé. Le mécanisme du message SEI de temporisation d'image est nécessaire car un seul horodatage par image codée peut être véhiculé dans l'horodatage RTP.