Video compression

Compression vidéo

Les technologies de compression vidéo ont pour but de réduire et de supprimer les données vidéo redondantes de façon à permettre la transmission et le stockage efficaces d’un fichier vidéo numérique sur des disques d’ordinateur par le biais d’un réseau. Avec des techniques de compression performantes, il est possible d’obtenir une réduction sensible de la taille de fichier avec un effet minimal, voire nul, sur la qualité visuelle. La qualité vidéo, toutefois, peut être affectée si la taille de fichier est réduite davantage en augmentant le niveau de compression pour une technique de compression donnée.

Différentes technologies de compression, représentant des normes à la fois propriétaires et industrielles, sont disponibles. La plupart des fournisseurs de vidéo sur IP actuels utilisent des techniques de compression standard. Les normes sont très importantes afin de garantir la compatibilité et l’interopérabilité. Elles sont spécialement pertinentes dans le domaine de la compression vidéo car la vidéo peut être utilisée pour de nombreuses applications et, dans certaines applications de vidéosurveillance, doit pouvoir être visualisable plusieurs années après l’enregistrement. Grâce au déploiement de normes, les utilisateurs finaux sont en mesure de choisir parmi différents fournisseurs, plutôt que d’être liés à un fournisseur spécifique lors de la conception d’un système de vidéosurveillance.

Axis utilise trois normes de compression vidéo différentes. Il s’agit des normes Motion JPEG, MPEG-4 Part 2 (ou simplement MPEG-4) et H.264. H.264 est la norme de compression vidéo la plus récente et la plus performante. Ce chapitre fournit une vue d’ensemble de la compression et fournit une description de chacune de ces trois normes.

Codec vidéo

Le processus de compression consiste à traiter la source vidéo à l’aide d’un algorithme afin de créer un fichier compressé prêt pour la transmission ou le stockage. Pour lire le fichier compressé, un algorithme inverse est appliqué, ce qui permet d’obtenir une vidéo contenant pratiquement le même contenu que la source vidéo d’origine. Le temps pris pour la compression, l’envoi, la décompression et l’affichage d’un fichier est ce que l’on appelle la latence. Plus l’algorithme de compression est perfectionné, plus la latence est élevée.

Une paire d’algorithmes travaillant ensemble est ce que l’on appelle un codec (encodeur/décodeur) vidéo. Les codecs vidéo de différentes normes ne sont normalement pas compatibles les uns avec les autres. En d’autres termes, le contenu vidéo compressé à l’aide d’un algorithme ne peut pas être décompressé à l’aide d’un algorithme différent. Par exemple, un décodeur MPEG-4 n’est pas compatible avec un encodeur H.264. L’explication réside dans le fait qu’un algorithme ne peut pas décoder correctement le résultat obtenu par un autre algorithme, mais il est possible d’utiliser plusieurs algorithmes différents dans le même logiciel ou matériel, ce qui autorise la coexistence de plusieurs formats.

Compression d’images ou compression vidéo

Les normes de compression n’utilisent pas toutes les mêmes méthodes pour réduire les données, ce qui explique que les résultats diffèrent en termes de débit, de qualité et de latence. Il existe deux types d’algorithmes de
compression : les algorithmes de compression d’images et les algorithmes de compression vidéo.

La compression d’images utilise la technologie de codage intra-images. Les données sont réduites dans une image en supprimant simplement les informations inutiles non remarquables par l’oeil humain. Motion JPEG est un exemple de norme de compression de ce type. Les images d’une séquence Motion JPEG sont codées ou compressées en tant qu’images JPEG individuelles.

Avec le format Motion JPEG, les trois images de la séquence ci-dessus sont codées et envoyées en tant qu’images uniques séparées (images I), sans aucune interdépendance.

Les algorithmes de compression vidéo tels que MPEG-4 et H.264 utilisent la prédiction interimages pour réduire les données vidéo entre une série d’images. Cela implique des techniques telles que le codage différentiel, où une image est comparée à une image de référence et seuls les pixels qui ont changé par rapport à cette image de référence sont codés. Cela permet de réduire le nombre de valeurs de pixels codées et envoyées. Lorsqu’une séquence encodée de cette façon est affichée, les images apparaissent comme dans la séquence vidéo d’origine.

Avec le codage différentiel, seule la première image (image I) est codée dans son intégralité. Dans les deux images suivantes (images P), il est fait référence à la première image pour les éléments statiques (tels que la maison). Seuls les éléments en mouvement (l’homme qui court) sont codés à l’aide de vecteurs de mouvement, ce qui réduit la quantité d’informations transmises et stockées.

D’autres techniques telles que la compensation de mouvement basée sur les blocs peuvent être appliquées afin de réduire encore davantage la quantité de données. Cette technique tient compte du fait qu’une bonne partie de ce qui compose une nouvelle image dans une séquence vidéo se retrouve dans une image précédente, bien qu’à un emplacement potentiellement différent. Elle divise une image en série de macro-blocs (blocs de pixels). Il est possible de composer ou de « prédire » une nouvelle image bloc par bloc en recherchant un bloc identique dans une image de référence. Si un bloc référent est trouvé, l’encodeur code l’emplacement dans l’image de référence où se situe le bloc identique. Le codage du vecteur de mouvement utilise moins de bits que le codage du contenu réel d’un bloc.

Illustration de la compensation de mouvement basée sur bloc.

Avec la prédiction inter-images, chaque image d’une séquence est classifiée comme un certain type d’image (image I, image P ou image B).

Une image I, ou intra-image, est une image autonome qui peut être décodée indépendamment, sans référence à d’autres images. La première image d’une séquence vidéo est toujours une image I. Les images I sont nécessaires en tant que points de départ pour de nouveaux téléspectateurs ou en tant que points de resynchronisation si le flux binaire transmis est endommagé. Les images I peuvent être utilisées pour l’implémentation de fonctions d’avance rapide et de rembobinage et autres fonctions d’accès aléatoire. Un encodeur insère automatiquement des images I à intervalles réguliers ou sur demande s’il est prévu que de nouveaux clients rejoignent les autres dans la visualisation d’un flux. L’inconvénient des images I est qu’elles consomment beaucoup plus de bits mais, d’un autre côté, elles ne génèrent pas beaucoup d’artéfacts, qui sont dus aux données manquantes.

Une image P est une inter-image prédictive qui fait référence aux parties des images I et/ou P antérieures pour le codage de l’image. Les images P nécessitent généralement moins de bits que les images I, mais elles sont généralement très sensibles aux erreurs de transmission en raison de la dépendance complexe vis-à-vis des images P et/ou I antérieures.

Une image B est une inter-image biprédictive qui fait référence à la fois à une image antérieure et à une image future. L’utilisation d’images B entraîne une augmentation de la latence.

Séquence type avec des images I, B et P. Une image P peut uniquement faire référence aux images I ou P précédentes, alors qu’une image B peut faire référence aux images I ou P précédentes et suivantes.

Lorsqu’un décodeur vidéo rétablit une vidéo en décodant le flux binaire image par image, le décodage doit toujours commencer par une image I. Les images P et B, si elles sont utilisées, doivent être décodées avec les images de référence.

Les produits de vidéo sur IP Axis permettent aux utilisateurs de définir la longueur de GOV (group of video), qui détermine le nombre d’images P à envoyer avant l’envoi d’une autre image I. En réduisant la fréquence des images I (longueur de GOV supérieure), il est possible de réduire le débit. Pour réduire la latence, on n’utilise aucune image B.

AdEn plus des différentes techniques de codage et de compensation de mouvement, d’autres méthodes avancées peuvent être employées afin de réduire la quantité de données et d’améliorer la qualité vidéo. H.264, par exemple, prend en charge des techniques avancées qui incluent des modèles de prédiction pour le codage des images I, une compensation de mouvement améliorée avec une précision inférieure au niveau pixel, ainsi qu’un filtre de déblocage en boucle permettant d’adoucir les bords des blocs (artéfacts).

Rubrique suivante : Formats de compression

Formats de compression