Aller au contenu principal

5.5. Decoding Order Number (DON)

5.5. Decoding Order Number (DON)

En mode de packetisation entrelacé, l'ordre de transmission des NAL units peut différer de l'ordre de décodage des NAL units. Le numéro d'ordre de décodage (decoding order number, DON) est un champ dans la structure de charge utile ou une variable dérivée qui indique l'ordre de décodage des NAL units. La justification et des exemples de cas d'usage pour une transmission hors ordre de décodage et pour l'utilisation du DON sont donnés à la section 13.

Le couplage entre l'ordre de transmission et l'ordre de décodage est contrôlé par le paramètre de type de média OPTIONNEL sprop-interleaving-depth comme suit. Lorsque la valeur du paramètre de type de média OPTIONNEL sprop-interleaving-depth est égale à 0 (explicitement ou par défaut), l'ordre de transmission des NAL units DOIT être conforme à l'ordre de décodage des NAL units. Lorsque la valeur du paramètre de type de média OPTIONNEL sprop-interleaving-depth est supérieure à 0 :

  • l'ordre des NAL units dans un MTAP16 et un MTAP24 n'est pas requis pour être l'ordre de décodage des NAL units, et
  • l'ordre des NAL units produites par dépaquetisation des STAP-B, MTAP et FU dans deux paquets consécutifs n'est pas requis pour être l'ordre de décodage des NAL units.

Les structures de charge utile RTP pour un paquet NAL unit unique, un STAP-A et un FU-A n'incluent pas DON. Les structures STAP-B et FU-B incluent DON, et la structure des MTAP permet de dériver DON, comme spécifié à la section 5.7.2.

Note informative : Lorsqu'un FU-A survient en mode entrelacé, il suit toujours un FU-B, qui définit son DON.

Note informative : Si un émetteur souhaite encapsuler une seule NAL unit par paquet et transmettre les paquets hors de leur ordre de décodage, le type de paquet STAP-B peut être utilisé.

En mode de packetisation NAL unit unique, l'ordre de transmission des NAL units, déterminé par le numéro de séquence RTP, DOIT être le même que leur ordre de décodage des NAL units. En mode de packetisation non entrelacé, l'ordre de transmission des NAL units dans les paquets NAL unit unique, les STAP-A et les FU-A DOIT être le même que leur ordre de décodage des NAL units. Les NAL units au sein d'un STAP DOIVENT apparaître dans l'ordre de décodage des NAL units. Ainsi, l'ordre de décodage est d'abord fourni par l'ordre implicite au sein d'un STAP, puis par le numéro de séquence RTP pour l'ordre entre STAP, FU et paquets NAL unit unique.

La signalisation de la valeur de DON pour les NAL units transportées dans STAP-B, MTAP et une série d'unités de fragmentation commençant par un FU-B est spécifiée aux sections 5.7.1, 5.7.2 et 5.8 respectivement. La valeur de DON du premier NAL unit dans l'ordre de transmission PEUT être réglée sur une valeur quelconque. Les valeurs de DON sont dans l'intervalle 0 à 65535 inclus. Après avoir atteint la valeur maximale, la valeur de DON repasse à 0.

L'ordre de décodage de deux NAL units contenus dans un STAP-B, un MTAP ou une série d'unités de fragmentation commençant par un FU-B est déterminé comme suit. Soit DON(i) le numéro d'ordre de décodage du NAL unit d'indice i dans l'ordre de transmission. La fonction don_diff(m,n) est spécifiée comme suit :

Si DON(m) == DON(n), don_diff(m,n) = 0

Si (DON(m) < DON(n) et DON(n) - DON(m) < 32768), don_diff(m,n) = DON(n) - DON(m)

Si (DON(m) > DON(n) et DON(m) - DON(n) >= 32768), don_diff(m,n) = 65536 - DON(m) + DON(n)

Si (DON(m) < DON(n) et DON(n) - DON(m) >= 32768), don_diff(m,n) = - (DON(m) + 65536 - DON(n))

Si (DON(m) > DON(n) et DON(m) - DON(n) < 32768), don_diff(m,n) = - (DON(m) - DON(n))

Une valeur positive de don_diff(m,n) indique que le NAL unit d'indice d'ordre de transmission n suit, en ordre de décodage, le NAL unit d'indice d'ordre de transmission m. Lorsque don_diff(m,n) est égal à 0, l'ordre de décodage des deux NAL units peut être l'un ou l'autre. Une valeur négative de don_diff(m,n) indique que le NAL unit d'indice d'ordre de transmission n précède, en ordre de décodage, le NAL unit d'indice d'ordre de transmission m.

Les valeurs des champs liés à DON (DON, DONB et DOND ; voir section 5.7) DOIVENT être telles que l'ordre de décodage déterminé par les valeurs de DON, comme spécifié ci-dessus, soit conforme à l'ordre de décodage des NAL units.

Si l'ordre de deux NAL units dans l'ordre de décodage des NAL units est permuté et que le nouvel ordre n'est pas conforme à l'ordre de décodage des NAL units, les NAL units NE DOIVENT PAS avoir la même valeur de DON. Si l'ordre de deux NAL units consécutives dans le flux de NAL units est permuté et que le nouvel ordre reste conforme à l'ordre de décodage des NAL units, les NAL units PEUVENT avoir la même valeur de DON. Par exemple, lorsque l'ordre arbitraire des tranches est autorisé par le profil de codage vidéo utilisé, toutes les NAL units de tranche codée d'une image codée PEUVENT avoir la même valeur de DON. Par conséquent, les NAL units ayant la même valeur de DON peuvent être décodées dans n'importe quel ordre, et deux NAL units ayant une valeur de DON différente devraient être passées au décodeur dans l'ordre spécifié ci-dessus. Lorsque deux NAL units consécutives dans l'ordre de décodage des NAL units ont une valeur de DON différente, la valeur de DON pour la seconde NAL unit dans l'ordre de décodage DEVRAIT être la valeur de DON de la première, incrémentée de un.

Un exemple du processus de dépaquetisation pour rétablir l'ordre de décodage des NAL units est donné à la section 7.

Note informative : Les récepteurs ne devraient pas s'attendre à ce que la différence absolue des valeurs de DON pour deux NAL units consécutives dans l'ordre de décodage des NAL units soit égale à un, même en transmission sans erreur. Un incrément de un n'est pas requis, car au moment d'associer des valeurs de DON aux NAL units, il peut être inconnu si toutes les NAL units sont livrées au récepteur. Par exemple, une passerelle peut ne pas transmettre les NAL units de tranche codée d'images non référence ou les NAL units SEI lorsqu'il y a un manque de débit sur le réseau vers lequel les paquets sont transférés. Dans un autre exemple, une diffusion en direct est interrompue par du contenu pré-encodé, tel que des publicités, de temps à autre. La première image intra d'un clip pré-encodé est transmise à l'avance pour qu'elle soit facilement disponible chez le récepteur. Lors de la transmission de la première image intra, l'origine ne sait pas exactement combien de NAL units seront encodées avant que la première image intra du clip pré-encodé ne suive en ordre de décodage. Ainsi, les valeurs de DON pour les NAL units de la première image intra du clip pré-encodé doivent être estimées lors de leur transmission, et des écarts dans les valeurs de DON peuvent survenir.