La Compression video

Introduction


Plus que le son, l'image requiert une capacité de stockage monstrueuse. Il est simple de se rendre compte de ce fait : chaque pixel est codé sur 3 octets (pour les composantes RVB - Rouge Vert Bleu). Actuellement les appareils photonumériques sont dits "Méga-Pixel" (par exemple 2.3 Mega-Pixel) : une photo composée de 2.3 millions de pixels pèse 6.9 millions d'octets soit environ 6.5 Mo par image (au prix où est la mémoire flash, ca commence à peser ...). Pour la vidéo (ou autres images animées), c'est encore pire... Prenons par exemple une petite séquence de 15 minutes en 640x480 (on n'est pas difficile, on ne demande que du VGA). Avec une vitesse de défilement de 25 images/seconde, cette séquence sera compose de 22500 images qui pèsent 900 Ko chacune ... après calcul cela nous donne 19.3 Go! En plus, je ne parle pas des taux de transfert qu'il faudrait atteindre pour pouvoir en profiter... Bref, la compression des images est un élément incontournable dans le monde informatique.

Méthodes de compression


Les différentes méthodes de compression se divisent en deux classes : les compressions non destructives qui permettent de restituer l'image dans sa qualité initiale et les compressions destructives qui altèrent définitivement la qualité de l'image. Les méthodes destructives sont plus largement employées car elles permettent de réduire plus considérablement le poids des images sans que notre oeil (il n'est pas parfait !) ne perçoive une grande altération.

Les compressions non-destructives


Ces compression laissent le contenu du fichier intact et modifient la façon de codifier l'image pour l'alléger. Les images sont codées avec un système binaire (suite de 0 et de 1). La compression non destructive utilise des algorithmes différents permettant ainsi une compression. Ce type de compression est peu utilisé car le taux de compression reste faible (inférieur à 1/20)


Le LZW (Lempel-Ziv-Welch)

Cette méthode vise à repérer des suites de bits ou d'octets semblables dans la succession de valeurs décrivant l'image. A chaque fois qu'un motif est isolé, le LZW le stocke et lui affecte un identifiant. Chaque motif sera repéré par un identifiant et les valeurs non isolées restent à l'état brut (non compressées)



Le codage de Huffman


Cet algorithme a pour but de repérer les suite de valeurs répétitives. A chaque suite sera attribué un identifiant. Suivant la probabilité du motif, l'identitifiant sera plus ou moins long (les motifs les plus courants auront un motif plus court)


Le RLE (Run Lenght Encoding)


Cette méthode consiste à repérer les suites de valeurs consécutives et de remplacer le code initial par deux composantes : l'identifiant de la valeur (soit 0 ou 1 en binaire) et d'affecter ensuite le nombre de répétitions de la même valeur.

Les compressions destructives


Pour réduire de façon plus conséquente la taille des images, il faut avoir recours à une compression destructive.


Diminution du nombre de couleurs


Une image composée de 16.8 millions de teintes a une taille bien plus importante qu'une image de 256 couleurs. Cette compression limite le nombre d'octet par pixel, ce qui, pour l'image entière, constitue une économie non-négligeable. Le format GIF utilise cette méthode, qui n'est pas extraordinaire en terme de qualité d'image mais reste néanmoins intéressante en terme de poids d'image. Ainsi, Ce format d'image est très répandu (limite les temps de téléchargement).


Le JPEG


Cette méthode de compression d'image est sans doute la plus célèbre en raison de son rapport qualité/poids de l'image. Le procédé du JPEG est assez complexe : l'image RVB est d'abord traduite dans une norme propre à la vidéo où le signal est défini selon trois autres composantes : l'intensité de la lumière et deux composantes associés à la couleur. Puis l'image est ré-échantillonnée : chaque pixel garde sa composante relative à la luminosité, mais les pixels sont regroupés par quatre (groupe de deux pixels horizontaux sur deux pixels verticaux) pour fusionner leurs composantes relatives à la couleur (la composante du groupe est calculée à partir d'une valeur moyenne des quatres valeurs initiales). Il enfin possible d'augmenter le taux de compression grâce à une fonction mathématique qui transforme les variations de luminosité en fréquence : il est possible, via les boîtes de dialogues des logiciels, de diminuer cette fréquence. A la fin de cette manipulation, l'image possède encore de nombreuses valeurs identiques. Le JPEG utilise à ce moment l'algorithme RLE (sans perte de qualité). L'ensemble est encore comprimé par l'algorithme de Huffman. Après ces quatres compressions consécutives, on obtient enfin une image JPEG d'un bon niveau de qualité pour un poids particulièrement réduit.


Les fractales


Cette méthode de compression est basée sur la constation qu'une image contient des portions identiques (qui sont modifiées par translations, rotations, effets miroirs ...). L'image est donc découpée en différentes portions, il s'agit donc d'identifier les secteurs qui permettront d'en générer d'autres. Le fichier final contient alors les blocs élémentaires ainsi que les fonctions permettant de reproduire l'image. Cette méthode de compression a pour principal avantage d'éviter l'effet de pixelisation (puisqu'il recalcule mathématiquement l'image lorsque l'on effectue un zoom). L'inconvénient de cette méthode est qu'elle est très lente lors de la phase de compression.


La compression par ondelettes


Cette méthode devrait connaître un grand succès car elle permet d'obtenir des taux de compression encore plus élevés pour une qualité similaire. Cette méthode consiste à réduire la dimension de l'image en cascade. L'image originale se transforme en quatre images : la première est l'image initiale en petite taille, les trois autres apportent des informations pour reconstruire l'image avec une bonne qualité. La compression, alors appliquée sur l'image réduite, consiste à ne prendre en compte que les éléments les plus importants. Ainsi, on obtient des vitesses de décodage très rapides (cela correspond à des variantes du JPEG que l'on peut voir sur le Net : l'image est dans un premier temps très grossière puis s'affine au fur et à mesure du téléchargement)

La compressions vidéo


La compression d'une image ne prend pas en compte le facteur "temps", ce n'est pas le cas de la compression vidéo. La compression vidéo fait donc intervenir le facteur ressemblance entre les images. Le standard M-JPEG (Motion JPEG) des cartes d'acquisition comprime les données pendant le temps de transfert. Les cartes d'acquisition disposent d'un processeur prévu à cet effet, pour transformer le signal vidéo en images JPEG. Le M-JPEG n'est pas la seule méthode de compression video, pour le montage vidéo on utilise également le format AVI ou QuickTime.



Le MPEG ( Motion Picture Expert Group)


Cette méthode de "compression" video tend actuellement à s'imposer. On ne peut pas vraiment parler de compression puisque la méthode utilisée vise à reperer les mouvements entre les images.Le MPEG 1 a d'abord été utilisé par les CD-Video de Philips. La deuxième version est largement plus utilisé puisque ce format permet l'utilisation de TV haute définition. La méthode de compression entre les deux versions du MPEG est semblable mais la définition et le débit de donnée diffèrent (352 x 288 et 1.5 kbps pour le MPEG 1 et 720 x 576 et 15 kbps pour le MPEG2. Ainsi, une image de référence est enregistrée selon la compression JPEG ensuite les onze suivantes sont découpées en blocs de 16x16 pixels et l'algorithme MPEG repère les blocs similaires et calcule les blocs ayant été modifiés entre les deux images. Si un changement de plan a lieu pendant la série de 12 images, tous les blocs seront défférents, l'algorithme va répartir sur une image de référence (le ratio 1 image enregistrée sur 12 peut être ainsi modifié).

Exemples de compressions de vidéos/images

L'image étant très lourde à transférer, le domaine d'application de la compression video est très large :


La télécopie : Quand je vous dis qu'il est possible de faxer des images et que le transfert par télécopie est réalisé à 14 400 bps, il parait évident qu'une compression d'image a lieu. La télécopie utilise un mode de compression nommé CCITT Groupe 3 (adapté aux images en noir et blanc) qui est une compresion non destructive. Le principe du mode de compression est identique au codage de Huffman (optimisé avec une étude statistique).


La photo numérique : Vu la taille des mémoires flash utilisées, la compression d'image est de rigueur. Le format JPEG est le plus utilisé avec un taux de compression limité pour éviter des pertes de qualité trop importantes (compression comprise généralement entre 1/4 et 1/12). (dossier photo numérique sur PC OR')


Le DVD : Le DVD utilise le MPEG2 afin de pouvoir stocker jusqu'à 2h de video par couche de disque (rem: un DVD peut contenir jusqu'à deux couches sur chaque face). Le gain du MPEG2 est variable suivant les scènes : les scènes d'actions (avec beaucoup de changement de vue, d'images) prendront d'avantage de place que les scènes statiques.

Les photos diffusés sur internet : Les deux standards que l'on rencontre sur le Net sont le JPEG et le GIF. Ces deux formats assurent une compression d'image satisfaisante pour limiter les temps de téléchargement.

La TV par sattelite : Les foyers s'équipent de plus en plus de TV par satellite, garantes d'une qualité d'image et de son optimale. Cependant, transmettre des données par Satellite a un coût... Pour augmenter la quantité de programmes, la TV par satellite utilise également le MPEG2 (comme les DVD) : le gain obtenu est d'environ 1/10.


Ecrit par Oliv', Webmaster de
PC OR'