5.3. NAL Unit Header Usage
5.3. NAL Unit Header Usage
La structure et la sémantique de l'en-tête de NAL unit ont été présentées à la section 1.3. Pour plus de commodité, le format de l'en-tête de NAL unit est reproduit ci-dessous.
+---------------+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|F|NRI| Type |
+---------------+
Cette section spécifie la sémantique de F et de NRI selon cette spécification.
F : 1 bit
forbidden_zero_bit. Une valeur 0 indique que l'octet de type de NAL unit et la charge utile ne doivent pas contenir d'erreurs binaires ni d'autres violations syntaxiques. Une valeur 1 indique que l'octet de type de NAL unit et la charge utile peuvent contenir des erreurs binaires ou d'autres violations syntaxiques.
Les MANE DEVRAIENT positionner le bit F pour indiquer des erreurs binaires détectées dans le NAL unit. La spécification H.264 exige que le bit F soit égal à 0. Lorsque le bit F est positionné, le décodeur est averti que des erreurs binaires ou d'autres violations syntaxiques peuvent être présentes dans la charge utile ou dans l'octet de type de NAL unit. La réaction de décodeur la plus simple face à un NAL unit dont le bit F vaut 1 est d'écarter ce NAL unit et de dissimuler les données perdues dans le NAL unit écarté.
NRI : 2 bits
nal_ref_idc. La sémantique de la valeur 00 et d'une valeur non nulle reste inchangée par rapport à la spécification H.264. En d'autres termes, une valeur 00 indique que le contenu du NAL unit n'est pas utilisé pour reconstruire des images de référence pour la prédiction inter image. De tels NAL units peuvent être écartés sans risquer l'intégrité des images de référence. Des valeurs supérieures à 00 indiquent que le décodage du NAL unit est requis pour maintenir l'intégrité des images de référence.
En complément de la spécification ci-dessus, selon cette spécification de charge utile RTP, les valeurs de NRI indiquent la priorité de transport relative, telle que déterminée par l'encodeur. Les MANE peuvent utiliser cette information pour mieux protéger les NAL units plus importants que les moins importants. La priorité de transport la plus élevée est 11, suivie de 10, puis 01 ; enfin, 00 est la plus faible.
Note informative : Toute valeur non nulle de NRI est traitée de manière identique dans les décodeurs H.264. Par conséquent, les récepteurs n'ont pas besoin de manipuler la valeur de NRI lors du passage des NAL units au décodeur.
Un encodeur H.264 DOIT régler la valeur de NRI conformément à la spécification H.264 (sous-clause 7.4.1) lorsque la valeur de nal_unit_type est dans l'intervalle 1 à 12 inclus. En particulier, la spécification H.264 exige que la valeur de NRI SOIT égale à 0 pour tous les NAL units ayant nal_unit_type égal à 6, 9, 10, 11 ou 12.
Pour les NAL units ayant nal_unit_type égal à 7 ou 8 (indiquant respectivement un jeu de paramètres de séquence ou un jeu de paramètres d'image), un encodeur H.264 DEVRAIT régler la valeur de NRI sur 11 (format binaire). Pour les NAL units de tranche codée d'une image codée primaire ayant nal_unit_type égal à 5 (indiquant une tranche codée appartenant à une image IDR), un encodeur H.264 DEVRAIT régler la valeur de NRI sur 11 (format binaire).
Pour une correspondance des nal_unit_types restants aux valeurs de NRI, l'exemple suivant PEUT être utilisé et s'est révélé efficace dans un certain environnement [14]. D'autres correspondances PEUVENT aussi être souhaitables selon l'application et le profil H.264 utilisé.
Note informative : Le partitionnement des données n'est pas disponible dans certains profils, par ex. les profils Main ou Baseline. Par conséquent, les types de NAL unit 2, 3 et 4 ne peuvent survenir que si le flux vidéo est conforme à un profil autorisant le partitionnement des données, et pas dans les flux conformes aux profils Main ou Baseline.
Tableau 2. Exemple de valeurs de NRI pour les tranches codées et les partitions de données de tranche codée d'images codées de référence primaires
| NAL Unit Type | Content of NAL Unit | NRI (binary) |
|---|---|---|
| 1 | non-IDR coded slice | 10 |
| 2 | Coded slice data partition A | 10 |
| 3 | Coded slice data partition B | 01 |
| 4 | Coded slice data partition C | 01 |
Note informative : Comme mentionné précédemment, la valeur de NRI des images non référence est 00, comme l'exige H.264.
Un encodeur H.264 DEVRAIT régler la valeur de NRI pour les NAL units de tranche codée et de partition de données de tranche codée d'images codées de référence redondantes sur 01 (format binaire).
Les définitions des valeurs de NRI pour les types de NAL unit 24 à 29 inclus sont données aux sections 5.7 et 5.8 de ce mémo.
Aucune recommandation pour la valeur de NRI n'est donnée pour les NAL units dont nal_unit_type est dans l'intervalle 13 à 23 inclus, car ces valeurs sont réservées à l'UIT-T et à l'ISO/IEC. Aucune recommandation pour la valeur de NRI n'est donnée pour les NAL units dont nal_unit_type est égal à 0 ou dans l'intervalle 30 à 31 inclus, car la sémantique de ces valeurs n'est pas spécifiée dans ce mémo.