“La vidéo, ce sont des images qui se suivent et du son en arrière plan.”. C’est une description sommaire mais exacte d’une vidéo. À partir de là, on peut en déduire comment une vidéo est compressée avant d’être envoyée sur internet. Il suffit d’utiliser les algorithmes vus dans les articles précédents.
Cela me paraît cependant un peu simple. Imaginons que la compression de l’image soit du JPEG. Bien compressée, une image au format DVD pèsera environ 60 Ko. Pour un film, il en faut 24 par seconde. Admettons que ce film dure 1h30, le poids total de l’animation sera d’environ 7,8 Go.
Il me reste à inclure l’audio dans le lot. En compressant bien avec un algorithme comme le MP3, on ajoute 100 Mo. On est à près de 8 Go de données pour une qualité qui est loin d’être terrible. Et en plus cela ne tient pas sur un DVD qui embarque des bonus et des versions internationales de notre film.
Mon compte n’est pas bon. Certes le problème vient plus de la partie vidéo que de la partie audio, mais j’ai repris le calcul d’une image en 600 par 400. La définition d’un DVD est 720 par 480.
Il va donc falloir chercher un axe d’amélioration entre les images elles-mêmes pour ne pas recoder les points communs. Mais avant cela, je me permets un aparté. Je suis en train de décrire un codec (algorithme d’encryptage) vidéo très célèbre : le MPEG-2.
Très célèbre puisque c’est lui qui est utilisé par les Digital Versatiles Discs (DVD), la télévision numérique terrestre (TNT, jusqu’en 2016), et les films disponibles de manières illégales sur internet (en tout cas au début).
MPEG signifie Moving Picture Experts Group. Cet acronyme doit vous rappeler celui du JPEG, parce que le principe est le même. Un groupe d’experts dont l’objectif est de normaliser les procédures pour transporter de l’image. le MPEG est donc le nom du groupe de travail et le nom du codec.
Petite information, l’algorithme de compression audio MP3 signifie MPEG-1 Audio Layer III et correspond à la partie audio du codec vidéo MPEG-1. Le MP3 était initialement utilisé uniquement pour les vidéos pour lesquelles le son était sacrifié pour prendre le moins de place possible contrairement à ses frères Layer I et Layer II.
Quel destin ! Le MPEG-2 est donc un ensemble d’algorithmes qui se répartissent les différentes tâches entre l’audio et la vidéo. Les stratégies pour la vidéo nous intéressent donc. L’idée est de rechercher dans l’enchaînement d’images les points communs entre celles-ci afin de ne pas recoder l’information commune.
Si 4 images qui se suivent d’une vidéo, pour un plan fixe par exemple, l’algorithme détectera cela et calculera une image en indiquant qu’elle est affichée 4 fois. Une image et un compteur prennent bien moins de place que 4 images.
Restons sur notre plan fixe mais imaginons que l’acteur parle. Comme pour l’algorithme JPEG, une image en MPEG est composée de blocs de 8 pixels par 8. Entre 2 images, les blocs qui ne sont pas modifiés ne seront pas recodés. Seules leurs positions qui sont identifiées par un numéro seront envoyées.
Une stratégie serait de recalculer les autres blocs, l’image suivante n’embarquant que les blocs ayant subi des modifications. Mais c’est une autre stratégie qui est utilisée, la compensation de mouvement.
L’idée est de réaliser une soustraction entre deux images. Une image étant codée par une valeur numérique pour chaque sous-pixel, cela n’a rien de sorcier. S’il n’y a pas de différence entre 2 images, le résultat donne des pixels à (0,0,0) soit une image entièrement noire.
Cette image issue de la soustraction se compresse très bien, en tout cas bien mieux que l’image complète. Avec cette stratégie, le poids des vidéos diminue drastiquement. En 1995, on pouvait stocker un film de 3 heures avec sous-titres, bonus et VO dans une qualité correcte sur un DVD de 4,4 Go.
Depuis, les algorithmes ont bien été améliorés. Avec l’avènement du Divx au début des années 2000 partager des vidéos sur internet devenait réalité. De nos jours, un flux HD ne nécessite qu’un débit de 1 Mbps. Votre opérateur internet propose des débits 1000 fois supérieurs.
Je ne pense pas en avoir fini avec l’encodage vidéo. Mais ce sera un autre article.