13.3 Example of Robust Packet Scheduling (Exemple de planification robuste des paquets)
13.3. Example of Robust Packet Scheduling (Exemple de planification robuste des paquets)
Voici un exemple de planification robuste des paquets. Le système de communication utilisé comprend, dans l'ordre de traitement de la vidéo de la source au puits, les composants suivants :
- caméra et acquisition ;
- tampon d'avant-codage ;
- encodeur ;
- tampon d'images codées ;
- émetteur ;
- canal de transmission ;
- récepteur ;
- tampon du récepteur ;
- décodeur ;
- tampon d'images décodées ;
- affichage.
Le système de communication vidéo de cet exemple fonctionne comme suit. Notez que le traitement du flux vidéo est progressif et simultané dans tous les composants du système. La séquence vidéo source est capturée vers un tampon d'avant-codage. Ce tampon peut servir à ordonner les images de l'ordre d'échantillonnage à l'ordre d'encodage ou à analyser plusieurs images non compressées pour le contrôle du débit binaire, par exemple. Dans certains cas, le tampon d'avant-codage peut être absent ; les images échantillonnées sont alors encodées immédiatement. L'encodeur encode les images issues du tampon d'avant-codage et stocke la sortie (c'est-à-dire les images codées) dans le tampon d'images codées. L'émetteur encapsule les images codées du tampon d'images codées dans des paquets de transmission et les envoie au récepteur via un canal de transmission. Le récepteur stocke les paquets reçus dans le tampon du récepteur. Le processus de mise en tampon du récepteur inclut typiquement un tampon pour la gigue de délai de transmission. Le tampon du récepteur peut aussi servir à rétablir l'ordre de décodage correct des données codées. Le décodeur lit les données codées depuis le tampon du récepteur et produit des images décodées dans le tampon d'images décodées. Ce dernier sert à rétablir l'ordre de sortie (ou d'affichage) des images. Enfin, les images sont affichées.
Dans les figures d'exemple suivantes, I désigne une image IDR, R une image de référence, N une image non référencée, et le nombre après I, R ou N indique le temps d'échantillonnage relatif par rapport à l'image IDR précédente dans l'ordre de décodage. Les valeurs sous la séquence d'images sont des horodatages d'horloge système mis à l'échelle. L'horloge système est initialisée arbitrairement dans cet exemple, et le temps s'écoule de gauche à droite. Chaque image I, R et N est alignée sur la même ligne temporelle par rapport à l'étape de traitement précédente, le cas échéant, en supposant que l'encodage, la transmission et le décodage ne prennent pas de temps. Ainsi, les événements simultanés se trouvent dans la même colonne sur toutes les figures.
Un sous-ensemble d'une séquence d'images codées est représenté ci-dessous dans l'ordre d'échantillonnage.
... N58 N59 I00 N01 N02 R03 N04 N05 R06 ... N58 N59 I00 N01 ...
... --|---|---|---|---|---|---|---|---|- ... -|---|---|---|- ...
... 58 59 60 61 62 63 64 65 66 ... 128 129 130 131 ...
Figure 16. Séquence d'images dans l'ordre d'échantillonnage
Les images échantillonnées sont mises en tampon dans le tampon d'avant-codage pour les ordonner selon l'ordre d'encodage. Dans cet exemple, nous supposons que les images non référencées sont prédites à partir de l'image de référence précédente et de la suivante dans l'ordre de sortie, sauf les images non référencées immédiatement avant une image IDR, qui ne sont prédites qu'à partir de l'image de référence précédente dans l'ordre de sortie. Le tampon d'avant-codage doit donc contenir au moins deux images, et la mise en tampon introduit un délai de deux intervalles d'image. La sortie du processus de tampon d'avant-codage et l'ordre d'encodage (et de décodage) des images sont les suivants :
... N58 N59 I00 R03 N01 N02 R06 N04 N05 ...
... -|---|---|---|---|---|---|---|---|- ...
... 60 61 62 63 64 65 66 67 68 ...
Figure 17. Images réordonnées dans le tampon d'avant-codage
L'encodeur ou l'émetteur peut attribuer à chaque image une valeur de DON égale à celle de l'image précédente dans l'ordre de décodage, plus un.
Pour simplifier, supposons que :
- le débit d'images de la séquence est constant ;
- chaque image ne contient qu'une seule slice ;
- chaque slice est encapsulée dans un seul paquet NAL unit ;
- il n'y a pas de délai de transmission ; et
- les images sont transmises à intervalles constants (c'est-à-dire 1 / (débit d'images)).
Lorsque les images sont transmises dans l'ordre de décodage, elles sont reçues comme suit :
... N58 N59 I00 R03 N01 N02 R06 N04 N05 ...
... -|---|---|---|---|---|---|---|---|- ...
... 60 61 62 63 64 65 66 67 68 ...
Figure 18. Images reçues dans l'ordre de décodage
Le paramètre de type de média OPTIONNEL sprop-interleaving-depth est fixé à 0, car l'ordre de transmission (ou de réception) est identique à l'ordre de décodage.
Initialement, le décodeur doit mettre en tampon pendant un intervalle d'image dans son tampon d'images décodées pour passer de l'ordre de décodage à l'ordre de sortie, comme ci-dessous :
... N58 N59 I00 N01 N02 R03 N04 N05 R06 ...
... -|---|---|---|---|---|---|---|---|- ...
... 61 62 63 64 65 66 67 68 69 ...
Figure 19. Ordre de sortie
La quantité de mise en tampon initiale requise dans le tampon d'images décodées peut être signalée dans le message SEI de période de mise en tampon ou via l'élément syntaxique num_reorder_frames des informations de convivialité vidéo H.264. num_reorder_frames indique le nombre maximal d'images, de paires de champs complémentaires ou de champs non appariés qui, dans la séquence, précèdent toute image, paire de champs complémentaires ou champ non apparié dans l'ordre de décodage et le suivent dans l'ordre de sortie. Pour simplifier, nous supposons que num_reorder_frames indique le tampon initial dans le tampon d'images décodées. Dans cet exemple, num_reorder_frames vaut 1.
On observe que si l'image IDR I00 est perdue pendant la transmission et qu'une demande de retransmission est émise lorsque l'horloge système vaut 62, il reste un intervalle d'image (jusqu'à ce que l'horloge atteigne l'horodatage 63) pour recevoir l'image IDR I00 retransmise.
Supposons ensuite que les images IDR sont transmises deux intervalles d'image avant leur position de décodage ; les images sont alors transmises comme suit :
... I00 N58 N59 R03 N01 N02 R06 N04 N05 ...
... --|---|---|---|---|---|---|---|---|- ...
... 62 63 64 65 66 67 68 69 70 ...
Figure 20. Entrelacement : images IDR précoces dans l'ordre d'envoi
Le paramètre de type de média OPTIONNEL sprop-interleaving-depth est fixé à 1 conformément à sa définition. (La valeur de sprop-interleaving-depth dans cet exemple se déduit ainsi : l'image I00 est la seule image qui précède les images N58 ou N59 dans l'ordre de transmission et les suit dans l'ordre de décodage. Sauf pour I00, N58 et N59, l'ordre de transmission est le même que l'ordre de décodage des images. Comme une image codée est encapsulée dans exactement une NAL unit, la valeur de sprop-interleaving-depth est égale au nombre maximal d'images qui précèdent une image donnée dans l'ordre de transmission et la suivent dans l'ordre de décodage.)
Le processus de mise en tampon du récepteur contient deux images à la fois selon la valeur du paramètre sprop-interleaving-depth et réordonne les images de l'ordre de réception à l'ordre de décodage correct d'après la valeur du DON associée à chaque image. La sortie de ce processus est la suivante :
... N58 N59 I00 R03 N01 N02 R06 N04 N05 ...
... -|---|---|---|---|---|---|---|---|- ...
... 63 64 65 66 67 68 69 70 71 ...
Figure 21. Entrelacement : tampon du récepteur
À nouveau, un délai de mise en tampon initial d'un intervalle d'image est nécessaire pour passer de l'ordre de décodage à l'ordre de sortie, comme ci-dessous :
... N58 N59 I00 N01 N02 R03 N04 N05 ...
... -|---|---|---|---|---|---|---|- ...
... 64 65 66 67 68 69 70 71 ...
Figure 22. Entrelacement : tampon du récepteur après réordonnancement
Notez que le délai maximal que les images IDR peuvent subir pendant la transmission, y compris d'éventuelles retransmissions au niveau application, transport ou liaison, est égal à trois intervalles d'image. Ainsi, la résilience aux pertes des images IDR s'améliore dans les systèmes prenant en charge la retransmission par rapport au cas où les images sont transmises dans leur ordre de décodage.