MPEG Vidéo

 



La quantité d’information d’un flux vidéo numérique est réellement considérable, même avec un codage couleur YUV en 4 :2 :2 pour une vidéo FullHD en 25 images par seconde elle atteint 103.7 MO (Mēga Octets) par secondes, soit 373 GO par heure d’enregistrement. De tels débits sont quasiment impossibles à transmettre sur les ondes radios et très lourd a stoker. Il a donc fallu inventer des méthodes de compression pour la vidéo.


Compression JPG


On découpe l'image en blocs de 8x8 pixels (l’image est donc recadrée pour former un nombre entier de blocs de 8x8 px). Chaque bloc est ensuite comparé aux 64 blocs standards du tableau ci-dessous. Les blocs de ce tableau correspondent à des fonctions cosinus (transformée discrète en cosinus des blocs 8x8), en donnant à chaque bloc un coefficient de -1 à +1 il est possible de reconstituer par superposition de ces blocs n’importe quel bloc de 64 pixels sans aucune perte d’information

  

transformation%20cosinus.jpg


En fonction du niveau de compression souhaité les coefficients sont arrondis (dans notre exemple à 5% prêt) et tous les blocs qui tombent dessous d’un certain seuil sont simplement ignorés (dans notre exemple à 10% et en dessous), c’est ici que la compression produit des pertes d’informations.

Valeurs mesurées

Valeurs comprimées
Bloc
Coef.

arrondies retenues
1
0.009

0.00

2
0.042

0.05

3
-0453

-0.45
-0.45
4
0578

0.60
0.60
5
-0.601

-0.60
-0.60
6
0.025

0.60 0.60
7
0.015

0.00

8
-0.005

-0.05

9
0.038

0.05

10
0.001

0.00

Etc...
Etc...

Etc.. Etc..
63
-0.120

0.10

64
0.090

0.10


Les valeurs retenues sont finalement écrites dans un fichier qui sera comprimé avec un algorithme sans perte du même genre que les fichiers ZIP informatique.

Ce système est très efficace parce que l'on opère sur des blocs de petite taille où il est très probable qu’il n’y a pas de grandes variations de couleur ou de lumière entre les pixels voisins (par exemple un ciel bleu), il y a donc forcément un très grand nombre des 64 valeurs sont vraiment très proche de 0 et qui pourront être ignorées. Si le niveau de compression reste raisonnable cette méthode ne détruit que des détails invisibles à l’œil humain.

Cette méthode n’est pas 100% adaptée aux images comportant du texte avec de petits caractères parce qu’un effet de flou ou de mosaïque désagréable apparaît autour des petites lettres dès que l’on augmente un peu le taux de compression.


Compression MPEG


Le groupe MPEG a été établi en 1988 dans le but de développer des standards internationaux de compression, décompression, traitement et codage d'images animées et de données audio. Depuis, la quasi-totalité des méthodes de compression utilisent les principes décrits ci-dessous.


Il existe plusieurs standards MPEG


Le MPEG-1,


Développé en 1988, est un standard pour la compression des données vidéo et deux canaux audio. Il permet le stockage dans une qualité proche des cassettes VHS). La norme MPEG-1 représente chaque image comme un ensemble de blocs 16 x 16. Elle permet d'obtenir une résolution de 352x288 à 25 images par seconde en PAL/SECAM avec un débit de l'ordre de 1.2 Mbps (exploitable sur un lecteur de CD).


Le MPEG-2,


Un standard dédié originalement à la télévision numérique (HDTV) offrant une qualité élevée à un débit pouvant aller jusqu'à 40 Mbps, et 5 canaux audio suround. Le MPEG-2 permet de plus une identification et une protection contre le piratage. Il s'agit du format utilisé par le DVD vidéo.

Le MPEG-4,


Un standard destiné à permettre le codage de données multimédia sous formes d'objets numériques, afin d'obtenir une plus grande interactivité, ce qui rend son usage particulièrement adapté au Web et aux périphériques mobiles. La TNT utilise une version du MP4 spécialement adapte pour obtenir de très bonnes images avec un débit permettant de diffuser un maximum de chaines sur une fréquence. Le codage est réalisé sur toutes les chaine du même canal en même temps afin de permettre à chaque moment de repartir au mieux la bande passante pour chaque chaine


Et plusieurs techniques de codages


Réduction du nombre de couleurs


Pour commencer le signal vidéo en entrée est converti à la norme 4:2:0 (lire d'abord la page vidéo numérique) avec seulement 8 bits (Rapport signal bruit de 48 DB et 16 millions de couleurs),


Codage temporel


Ensuite on part du constat que dans une courte séquence vidéo, la majorité des scènes sont fixes ou bien changent très peu, c'est ce qui s'appelle la redondance temporelle. On imagine aisément que dans un plan fixe ou une cigogne passe dans le paysage, il suffirait d’enregistrer une seule image du paysage plusieurs petites images contenant seulement la cigogne pour obtenir la vidéo

  4%20images%20video.jpg
 

C’est le principe du codage temporel du format MPEG. Les images sont découpées en blocs de 16x16 pixels (appelés macro blocs), puis l'algorithme compare chaque image avec une image de référence bloc par bloc pour encoder uniquement les blocs qui ont changés de façon suffisamment importante. A la lecture ces blocs seront simplement superposés à l'image de référence conservée en mémoire.



Compensation de mouvement


Imaginons une vidéo avec un lent panoramique, on pourrait enregistrer la première image en entier, puis au fur et à mesure du déplacement de la camera couper un bout et coller de l’autre cote le petit bout d’image qui manque
 


Sur ce principe, chaque macro blocs de 16 x 16 pixels est comparé à ceux des images précédente ou suivante, le programme détermine de combien de pixels chaque ploc c’est déplacé et n’enregistre que les informations de déplacement des blocs (en X et en Y) et les bouts d'image manquant.
 


Cette technique dite de codage par compensation de mouvement donne un niveau de compression important, mais induit un petit retard (puisqu'il faut connaître l'image suivante) et oblige à garder en mémoire au moins trois images (la précédente, l'actuelle et la suivante).


Les GOP (Group Of Picture)


Les techniques abordées ci-dessus ne peuvent s’appliquer qu'a de petits suites d'usages. C'est pourquoi la vidéo est donc d’abord décomposé en courte séquence appelée GOP. Ce paquet à une longueur de 4 à 16 images celons le niveau de compression souhaitée et comporte trois sortes d’image :


• Intra coded frames (I Frames, codage Intégral)

C’est la première image de chaque GOP, elle est codée dans sa totalité au format JPG pour servir de référence aux images suivantes. Ces images sont indispensables à la cohésion du film puisque toutes les autres sont décrites par rapport aux images de référence qui les entourent. Pour commencer la lecture d’une vidéo a un point quelconque il faut évidemment attendre l’arrivée de la première image du type « I Frame ».


• Predictive coded frames (P frames ou codage prédictif)

Lorsque les GOP contiennent plus de 8 images, toutes les trois images une image dite prédictive P frames est définie par différence avec l'image de type I Frames du début ou de la P frames précédente. Ici le codage temporel est privilégie par rapport à la compensation de mouvement


• Bidirectionally predictive coded frames (B Frames)

Toutes les autres images sont des B Frames, elles sont décrites par différence avec l'image de type I Frames ou P frames précédente et suivante, cette fois la compensation de mouvement est privilégie par rapport au le codage temporel.

 

GOP_2_thumb.jpg

C'est la finesse de la recherche et de l’analyse des macro-blocs qui déterminera la vitesse de l'encodage et la qualité de la compression, plus l'algorithme cherche des détails fins à l’intérieur des blocs plus la qualité de la vidéo sera bonne, mais il perdra plus de temps...

         

    

 


 

Retour a l'acceuil haut.gif gauche.gif droite.gif
Home
Haut
Précédent
Suivant