Compression vidéo

La compression vidéo est une méthode de compression de données, qui consiste à diminuer la quantité de données, en limitant au maximum l'impact sur la qualité visuelle de la vidéo.



Catégories :

Compression vidéo

Page(s) en rapport avec ce sujet :

  • ... Une vidéo est une succession d'images à une certaine cadence.... exprimé en FPS (Frames per second, en français trames par seconde).... (source : commentcamarche)
  • Comme nous l'avons dit, la compression vidéo utilise les avantages des deux..... En vidéo 50 Hz, deux trames successives représentent la même image de film... (source : pages.videotron)
  • entre les trames de la séquence vidéo (Circular Prediction..... based image compression using fractals and shape-adaptive. DCT, in Proc. IEEE Int. Conf.... (source : documents.irevues.inist)

La compression vidéo est une méthode de compression de données, qui consiste à diminuer la quantité de données, en limitant au maximum l'impact sur la qualité visuelle de la vidéo. L'intérêt de la compression vidéo est de diminuer les coûts de stockage et de transmission des fichiers vidéo.

Principes fondamentaux des algorithmes de compression vidéo

Les séquences vidéo contiennent une très grande redondance statistique, autant dans le domaine temporel que dans le domaine spatial.

La propriété statistique principale sur laquelle les techniques de compression se fondent, est la corrélation entre pixels. Cette corrélation est à la fois spatiale, les pixels adjacents de l'image courante sont identiques, et temporelle, les pixels des images passées et futures sont aussi particulièrement proches du pixel courant.

Ainsi, on suppose que l'importance d'un pixel spécifique de l'image peut être prévue à partir des pixels voisins de la même image (utilisant des techniques de codage intra-image) ou des pixels d'une image voisine (utilisant des techniques inter-image). Intuitivement il est clair que dans certaines circonstances, par exemple, lors d'un changement de plan d'une séquence vidéo, la corrélation temporelle entre pixels entre images voisines est petite, voir nulle. Dans ce cas, ce sont les techniques de codage dites Intra qui sont les mieux appropriées, afin d'exploiter la corrélation spatiale pour réaliser une compression efficace de données.

Les algorithmes de compression vidéo de type MPEG utilisent une transformation nommée DCT (pour Discrete Cosine Transform), sur des blocs de 8x8 pixels, pour analyser efficacement les corrélations spatiales entre pixels voisins de la même image. D'autres méthodes ont été proposées, en utilisant les fractales, les ondelettes, ou même le matching pursuit.

Cependant, si la corrélation entre pixel dans des trames voisines est grande, c'est-à-dire, dans les cas où deux trames consécutives ont un contenu identique ou semblable, il est souhaitable d'utiliser une technique de codage dite Inter, par exemple la DPCM, qui utilise la prévision temporelle (prévision compensé du mouvement entre trames).

Dans le schéma classique du codage vidéo, une combinaison adaptative entre les deux mouvements (temporel et spatial) de l'information est utilisé pour réaliser une grande compression de donnée (codage vidéo hybride DPCM/DCT).

Sous-échantillonnage et interpolation

La plupart des techniques de codage qu'on décrira dans cette partie, font un échantillonnage et une quantification avant de coder l'information. Le concept de base du sous-échantillonnage est de diminuer les dimensions (horizontale et verticale) de l'image vidéo et par conséquent de diminuer le nombre de pixels à coder.

Certaines applications vidéo sous-échantillonnent aussi le mouvement temporel pour diminuer le débit des images avant de coder. Le récepteur doit par conséquent décoder les images et les interpoler avant de les afficher.

Cette technique de compression peut être reconnue comme une des plus élémentaires, qui tient en compte les caractéristiques physiologiques de l'œil et qui enlève la redondance contenue dans les données vidéo.

Les yeux humains sont plus sensibles aux variations de la luminosité que de couleurs. A cause de ce défaut de l'œil, la majorité des algorithmes de compression vidéo représentent les images dans l'espace couleur YUV, qui comprend une composante de luminosité et deux de chrominance. Par la suite les composantes chromatiques sont sous-échantillonnées selon la composante de luminance avec un rapport Y : U : V spécifique à une spécifique application. (exemple : avec MPEG-2 le rapport est de 4 : 1 : 1 ou 4 : 2 : 2).

Prédiction compensée de mouvement

La prédiction compensée de mouvement, ou compensation de mouvement, est un puissant moyen pour diminuer les redondances temporelles entre images, et elle est utilisée dans MPEG-1 et MPEG-2 comme prédiction pour le codage DPCM. Le concept de la compensation du mouvement est basé sur l'estimation du mouvement entre images vidéo; si l'ensemble des éléments d'une scène vidéo sont proches dans l'espace, le mouvement entre trames peut être décrit avec un nombre limité de paramètres (vecteurs de mouvement des pixels).

La meilleure prédiction d'un pixel est donnée par la prédiction de mouvement de la trame précédente. Bien que, soit la prédiction de l'erreur que les vecteurs de mouvement sont transmis, le codage de l'information de mouvement pour chaque pixel de l'image n'est pas indispensable.

Si la corrélation spatiale entre vecteurs de mouvement est assez haute, un vecteur de mouvement pourra représenter un bloc de pixels adjacents.

Ces blocs sont fréquemment constitués d'un groupe de 16x16 pixels, et uniquement un vecteur de mouvement est estimé, codé et transmis pour chaque bloc.

Conclusion

La combinaison des techniques de prédiction compensée de mouvement et de la transformation DCT peuvent être définies comme les éléments clé de la compression vidéo de type MPEG. Un troisième élément caractéristique est que ces techniques sont utilisées pour des petits blocs d'image (fréquemment 16x16 pixels pour la compensation de mouvement et 8x8 pixels pour le codage DCT).

Pour ces raisons le codage MPEG est référé aux algorithmes hybrides DPCM/DCT.

Schéma de base du codage entre trames

La technique de compression de base de MPEG-1 (et de MPEG-2) est basée sur une structure de macro-blocs. L'algorithme code la première trame d'une séquence avec un codage Intra-frame (trame I). Chaque trame successive est codée en utilisant la prédiction Inter-frame (trames P) ; uniquement les données de la trame codée juste auparavant (trames I ou P) seront utilisées pour la prédiction. Chaque couleur d'une trame est partitionné en macro-blocs.

Chaque macro-bloc contient les données sur la luminosité et de la chrominance : 4 blocs de luminosité (Y1, Y2, Y3, Y4) et deux pour la chrominance (U, V), chacun de 8x8 pixels; ce qui donne un rapport entre luminosité et chrominance de 4 : 1 : 1

Schéma blocs du codage DCT/DPCM

La première trame d'une séquence vidéo (trame I) est encodé avec le mode Intra-frames sans aucune référence sur des trames passées ou futures. À l'encodeur la DCT est appliquée sur chaque bloc 8x8 de luminosité et de chrominance, chacun des 64 cœfficients DCT sont quantifiés uniformément (Q). Après quantification, le cœfficient plus petit (cœfficient DC) est traité différemment comparé aux autres (cœfficients AC). Le cœfficient DC corresponde a l'intensité moyenne du bloc et il est encodé avec une méthode de prédiction différentielle DC. Le reste des cœfficients non nuls sont ensuite codés en zigzag comme dans le codage JPEG.

Schéma blocs du décodage DCT/DPCM

Le décodeur effectue l'opération inverse. Il débute par extraire et décoder les données des différents cœfficients DCT pour chaque bloc. Avec la reconstruction (Q*) des cœfficients non nuls il fait la DCT inverse (DCT-1) et les valeurs de quantification des pixels des blocs sont reconstituées. L'ensemble des blocs de chaque image sont décodés et reconstitués.

Pour coder les trames P, les trames qui ont précédé N-1 (trames I ou P) sont mémorisées provisoirement dans FS (frame store). La compensation de mouvement (MC) est effectué sur la base des macro-blocs. Un buffer vidéo (VB) est indispensable pour assurer un débit constant de flux vidéo.

Conditions de remplissement

Une caractéristique apporté par l'algorithme MPEG-1 est la possibilité de mettre à jour les informations des macro-blocs au décodeur uniquement si indispensable (si le contenu d'un bloc est changé comparé au contenu du même bloc de l'image précédente). La clé pour un codage efficient des séquences vidéo avec un faible débit de bits par seconde est le bon choix de l'algorithme de prédiction. Le MPEG standard distingue essentiellement trois différents méthodes (types MB)  :

Fonctionnalités de MPEG-1

Pour accéder à un support média, l'algorithme MPEG-1 fut pensé pour supporter différentes fonctionnalités comme l'accès aléatoire, la recherche en vitesse avant (FF-fast forward) et arrière (FR-fast reverse) dans le flux vidéo, etc.

Pour incorporer ces fonctionnalités et pour tirer plus d'avantage de la compensation de mouvement et de l'interpolation de mouvement, l'algorithme MPEG-1 introduit le concept d'images prédictées et interpolées bidirectionnellement (trames B).

Trois types de trames sont reconnues :

L'utilisateur peut arranger la séquence des différents types de trame selon le besoins de l'application. Le plus souvent une séquence vidéo codée en utilisant uniquement des trames I (I I I I I... ) donne un haut degré d'accès aléatoire, de FF/FR et d'édition, mais un taux particulièrement bas de compression. Une séquence vidéo codée uniquement avec des trames P (I P P P P P P I P P P P... ) permet un degré moyen d'accès aléatoire et de FF/FR.

Si on utilise les trois types de trames (I B B P B B P B B I B B P... ) on arrive à un grand taux de compression et un raisonnable degré d'accès aléatoire et de FF/FR, mais on augmente énormément le temps de codage. Pour des applications comme la vidéotéléphonie ou la vidéoconférence ce temps peut devenir inacceptable.

MPEG-2

L'algorithme MPEG-2 a été dessiné pour avoir une qualité pas inférieure à celle de NTSC/PAL et plus grande que celle du CCIR 60.

À la base, l'algorithme de MPEG-2 est semblable à celui de MPEG-1 et il est par conséquent compatible avec lui. Chaque décodeur MPEG-2 doit être capable de décoder un flux vidéo MPEG-1 valide. Plusieurs algorithmes ont été ajoutés pour s'adapter aux nouveaux besoins. MPEG-2 sert à traiter des images entrelacées.

MPEG-2 introduit le concept de «profils» et de «niveaux» pour être compatible avec les dispositifs qui n'implémentent pas toutes ces fonctionnalités.

Chaque niveau spécifie la plage des différents paramètres utiles pour le codage.

Le niveau principal supporte au maximum une densité de 720 pixels en horizontal et 576 pixels en vertical, un débit d'images par seconde de 30 trames/sec et un débit de bit par seconde de 15 Mbit/s.

Bibliographie

Liens externes

Recherche sur Amazon (livres) :



Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Compression_vid%C3%A9o.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu