Visualisateur de structure GOP

Visualisez et analysez les structures GOP (Group of Pictures) en encodage vidéo. Ajustez la taille du GOP, les images B et la fréquence d'images pour voir les compromis de compression et de latence.

Chargement de la simulation interactive...

Une longueur de GOP ne veut rien dire avant d’être divisée par la fréquence d’images 🖖

L’affichage du temps de saut est le chiffre qui compte, car c’est ce qu’un lecteur attend avant de pouvoir montrer quoi que ce soit après un saut ou un changement de chaîne. streaming utilise 24 images à 30 fps, donc 800 ms. bluray en utilise 48 à 24 fps : deux fois plus d’images, mais 2000 ms, deux fois et demie l’attente, parce qu’une fréquence plus faible étire la même GOP plus loin dans le temps. allIntra met la GOP à 1 et fait de chaque image une image clé : sauter ne coûte alors qu’une image, 33 ms, et cela se paie en débit sur chaque image envoyée.

Pourquoi l'avance dans une vidéo saute parfois 🖖

Une vidéo stocke rarement chaque image en entier. Seules les images I (images clés) contiennent une image complète ; les images P et B décrivent uniquement ce qui a changé par rapport aux images voisines. Un GOP est la portion allant d'une image clé à la suivante. Quand vous déplacez le curseur, le lecteur ne peut relancer le décodage qu'à l'image clé précédente puis reconstruire jusqu'à votre cible — un GOP long économise donc de l'espace mais rend la navigation plus lente et moins précise.

Datamoshing : l'art des images clés brisées 🖖

Comme les images P ne portent que le mouvement, pas le contenu réel, des artistes vidéo suppriment volontairement les images I pour que le décodeur continue d'étaler les anciens pixels le long des nouveaux vecteurs de mouvement. On obtient l'aspect fondu et baveux du « datamosh », vu dans des clips comme Welcome to Heartbreak (2009) de Kanye West et Evident Utensil de Chairlift. La corruption même qui ruine un flux ayant perdu une image clé devient une esthétique délibérée.

UNE ÉTAPE D'UNE CHAÎNE — CE QUI ENTRE, CE QUI SORT, CE QUI CASSE ENSUITE

Où cette étape se situe dans la chaîne d'encodage

Un encodeur vidéo n'est pas un algorithme mais huit étapes dans un ordre fixe, et cet ordre n'est pas arbitraire : chaque étape existe parce que la précédente a rendu son travail possible. Cet outil modélise l'une d'elles. La chaîne ci-dessous renvoie aux sept autres.

Visualisateur de structure GOP — décide quelles images sont codées seules et lesquelles le sont comme différences

Ce qui entre
Une suite d'images échantillonnées, aucune encore codée.
Ce qui sort
Une affectation : images I codées seules, images P et B codées contre des images de référence.
Ce que suppose l'étape suivante
L'estimation de mouvement ne tourne que sur les images P et B. Une image I la saute entièrement.
Ce qui se casse ici
Cette étape décide si la suivante s'exécute ou non pour une image donnée : elle commande l'étape 04 plutôt que de simplement la précéder. De longs intervalles entre images I compressent bien mieux et dégradent la navigation, car le lecteur doit décoder depuis la dernière image I pour atteindre un point quelconque.

Problème entièrement résolu

  1. Répartition et taille moyenne des images pour 48 images à 24 fps 6 étapes

    Un groupe d'images (GOP) de type Blu-ray : 48 images, 3 images B consécutives entre références, lu à 24 fps. Posez qu'une image I coûte 100 unités relatives, une image P 12 et une image B 6. Trouvez la répartition des images et la taille moyenne par image, puis calculez le supplément de compression qu'un GOP plus long pourrait encore apporter.

    1. Une image I ouvre le groupe, ce qui laisse 47 emplacements. Ces emplacements répètent un motif de 4 images — 3 images B et l'image P qui les ancre — et 47 n'est pas un multiple de 4. 47 = 11 × 4 + 3, soit 11 motifs complets et une fin de 3 images B laissées en suspens.

    2. Cela donne 11 images P et 33 + 3 = 36 images B. Vérification : 1 + 11 + 36 = 48.

    3. Pondérez chaque type par son coût. 100 + 132 + 216 = 448 unités pour le groupe entier, et 448 / 48 = 9,3 par image. Un flux entièrement intra dépense 100 pour chaque image, cette structure est donc 10,7 fois plus petite pour les mêmes 48 images.

    4. La facture pour cela arrive sous forme de latence. Vous ne pouvez pas commencer le décodage au milieu d'un groupe — chaque image P et B est définie par rapport à autre chose — donc la recherche vous amène sur l'image I et vous décodez ensuite vers l'avant à partir de là. Le pire cas est la totalité des 48 images, ce qui à 24 fps donne 2 s.

    5. Déterminons maintenant le plancher. Chaque motif répété coûte 3 × 6 + 12 = 30 unités pour 4 images, soit 7,5 par image, et rallonger le GOP ne fait qu'ajouter davantage de ces motifs. Soustrayez ce taux du groupe et il reste 448 - 7,5 × 48 = 88 unités.

    6. Ces 88 représentent un nombre unique : 100 - 12, le surcoût de l'image I par rapport à l'image P qu'elle remplace. Ce surcoût n'augmente pas avec le groupe, il vaut donc 88 quelle que soit la longueur, et la moyenne s'écrit S̄ = 7,5 + 88/N. Testez à une longueur double : N = 96 donne 7,5 + 88/96 = 8,4 unités par image.

    Réponse

    9,3 unités par image, contre un plancher de 7,5 sous lequel aucune longueur de GOP ne peut descendre. Les deux termes du compromis évoluent dans des directions opposées et aucun des deux n'est linéaire contrairement aux apparences : ce qu'il vous reste à gagner décroît en 88/N tandis que la latence d'accès augmente en N/24. À 48 images, vous êtes 1,8 unité au-dessus du plancher. Doubler à 96 permet de récupérer 0,9 de cet écart — soit moins de 10 % de la taille d'une image — et coûte 2 s de plus de latence dans le pire des cas. Doubler à nouveau permet de récupérer 0,46 et coûte 4 s de plus. La longueur de GOP à choisir est donc fixée par la latence que vous êtes prêt à accepter, et non par la compression que vous poursuivez encore : au-delà de quelques dizaines d'images, une image I amortie un peu plus loin est tout ce qu'il reste à gagner.

Références (1)

Exemples de problèmes

  • Faible latence (IP) - GOP=4, sans images B : vitesse de recherche maximale, compression minimale — courant en streaming temps réel
  • Streaming Web (IBBP) - GOP=24, 2 images B : latence de recherche d'environ 800 ms, bonne compression — typique du streaming à la demande (VOD)
  • Blu-ray (IBBBP) - GOP=48, 3 images B : latence de recherche d'environ 2 s, meilleure compression — standard Blu-ray
  • All-Intra (I uniquement) - Tout-intra : chaque image est une image I — qualité maximale, 5 à 10× plus volumineux qu'un flux avec images B