II. MPEG-1

MPEG convertit les signaux vidéos analogiques en paquets de données numériques (digitales, en franglais) qui seront plus faciles à transporter sur un réseau. Les données digitales ont plusieurs avantages dont, en premier lieu, la non dégradation du signal. Le principe de la compression est de réduire autant que possible les redondances d'information sans que cela ne modifie l'aspect visuel du fichier ainsi traité.

MPEG est constitué de deux couches :

la couche système, qui stocke l'information temporelle nécessaire à la synchronisation vidéo et audio.
la couche compression, qui inclue les flux audio et vidéo.

Compression

Il existe deux types de compression :

Compression sans perte
Le fichier décompressé est identique au fichier original. Cette technique est largement utilisée pour les fichiers de données et les exécutables. Le taux moyen de compression n'est que 2:1, et est en tout état de cause nettement insuffisant pour exploiter des fichiers vidéos.

Compression avec perte
Avec ce type de compression, on atteint des taux de compression très élevé (300:1) mais au détriment de la qualité de l'image, qui perd de l'information mais sans que cela ne soit nécessairement détectable visuellement.

A ces deux techniques s'ajoutent deux autres techniques spécifiques à la compression vidéo :

Compression temporelle                                                                                                     Son objet est de ne stocker que ce qui est modifié lors du passage d'une image à une autre dans une séquence vidéo. Les images ainsi compressées peuvent être de deux types : image clé ou image delta. Les images clés sont des images de références, qui contiennent en elle-même, toute l'information. Les images delta ne contiennent que les pixels modifiés vis à vis de l'image précédente, qui peut être elle-même une image clé ou une image delta. La première image est nécessairement une image clé. Des techniques particulières, dont la compensation de mouvement, permettent d'optimiser la génération et la compression des images delta.
Compression spatiale
Cette compression s'applique exclusivement à une image donnée (clé ou delta), sans tenir compte des images environnantes. Il y a là différentes techniques : null suppression, RLE (Run Length Encoding),

JPEG (Join Pictures Expert Group), Vector Quantization. MPEG utilise la compression JPEG.

La figure suivante schématise un système général de décompression MPEG :

 

Hiérarchie des données

Hiérarchie des données Vidéo


Les données sont hiérarchisées de la façon suivante :

Séquence vidéo (Video Sequence)
Elle commence par une en-tête de séquence, contient un ou plusieurs groupe d'images et s'achève par un code de fin de séquence.

Groupe d'images (Group of Pictures)
Il regroupe une en-tête et une série d'une ou plusieurs images permettant d'y accéder de façon aléatoire.

Image (Picture)
C'est l'unité élémentaire pour le codage de la séquence vidéo. Une image est un groupe de trois matrices rectangulaires qui représentent la luminance (Y) et la chrominance (Cb et Cr), un élément de la matrice représentant un pixel. Cette représentation YCbCr est équivalente à celle RGB. Elle lui est préférable, car l’œil étant plus sensible à la luminosité qu'à la chrominance, il n'est pas nécessaire de stocker autant d'informations dans les matrices Cb et Cr que dans la matrice Y, alors qu'en RGB, les trois matrices sont de même taille. Les matrices Cb et Cr sont ainsi de dimension deux fois plus petites que la matrice Y.


 

Tranche (Slice)
Les tranches sont un ou plusieurs macro blocs adjacents ordonnées de gauche à droite puis de haut en bas. Ce sont des éléments importants pour la gestion des erreurs. Si le flux de données contient une erreur, le décodeur peut sauter la tranche et passer au début de la suivante directement. Plus il y a de tranches, meilleur est le traitement des erreurs mais fait perdre de la place.

Macroblocs (Macro blocks)
C'est une matrice rectangulaire de dimension 2 et constituée de blocs.

Blocs (Block)
C'est un ensemble des valeurs de luminance et chrominance de 8 lignes de 8 pixels.

 

Hiérarchie des données Audio


Le standard MPEG définit une hiérarchie de structures de données qui code le signal audio. Ce flux audio est composé de paquets selon le schéma ci-dessus :

Compression temporelle

Le standard MPEG spécifie trois types d'images :

Images clés (Intra Pictures or I-Pictures)
Ces images sont comprimées indépendamment de leur contexte, c'est à dire qu'on ne tient compte que du contenu de l'image elle-même et non des images environnantes. Elles autorisent l'accès aléatoire, soit l'accès à la séquence vidéo depuis n'importe lequel de ses points. Elles ont un taux de compression modéré, typiquement 2 bits par pixel codé.


Images prédites (Predicted Pictures or P-Pictures)
Ces images sont codées par rapport à l'image précédente. Elles utilisent la compensation de mouvement pour un meilleur taux de compression. Par ailleurs, elles ont l'inconvénient de propager les erreurs, du fait qu'elles réutilisent les informations de l'image précédente.  

Images bidirectionnelles (Bidirectional Pictures)
Ces images utilisent à la fois l'image précédente et l'image suivante comme références. Ceci a le grand avantage d'offrir le meilleur taux de compression, sans pour autant propager les erreurs puisqu'elles ne sont jamais utilisées comme références.

 


 

   

Composition du flux vidéo

L'algorithme MPEG autorise à l'encodage le choix de la fréquence et de la position des images clés. ceci permet à l'application un accès aléatoire aux plages enregistrées. Pour les applications où l'accès aléatoire est important, les images clés sont positionnées typiquement toutes les demies secondes. à l'encodage on peut choisir le nombre d'images prédites entre n'importe quelle paire d'images de référence. Ce choix est basée sur des facteurs liés au décodeur (comme par exemple la quantité de mémoire) ainsi qu'aux caractéristiques de la séquence vidéo.


 


Les codeurs MPEG réordonnent les images dans le flux vidéo pour optimiser le travail du décodeur. Ainsi, les images de référence nécessaires à la reconstruction d'images prédites sont envoyés avant les images prédites.

 

 

 

 


 

 

 

  

Compensation du mouvement

La compensation de mouvement est une technique pour optimiser le compression des images intermédiaires et des images clés en éliminant la redondance temporelle. Typiquement, la méthode de compensation de mouvement optimise la compression par un facteur d'ordre trois comparé au codage interne à l'image. Les algorithmes de compensation de mouvement travaillent au niveau des macro blocs. Quand un macro bloc est compressé par la technique de compensation de mouvement, le fichier compressé contient les informations suivantes :

le vecteur spatial entre le macro bloc de référence et le macro bloc qui va être codé (vecteur déplacement)
la différence entre le contenu du macro bloc de référence et du macro bloc qui va être codé (terme d'erreurs)

Toutes les informations d'une image ne peuvent pas être prédites de l'image précédente. Considérons une scène dans laquelle une porte s'ouvre : les détails visuels de la chambre derrière la porte ne peuvent pas être prédits de l'image précédente quand la porte était fermée. Quand un cas comme celui-ci arrive, c'est-à-dire lorsqu'un macro bloc ne peut pas être codé de manière efficace dans une image prédite par la technique de la compensation de mouvement, il est codé de la même façon qu'un macro bloc dans son image clé. La différence, au niveau de la compensation de mouvement, entre une image prédite et une image bidirectionnelle est la suivante : les macro blocs d'une image prédite n'utilisent que des références à l'image antérieure, alors que les images bidirectionnelles utilisent toute combinaison d'images futures et/ou passées.

Il y a ainsi quatre types d'encodage d'un macro bloc d'une image prédite :

codage interne : pas de compensation de mouvement
prédiction avant : l'image de référence précédente est utilisée comme référence
prédiction arrière : l'image suivante est utilisée comme référence
prédiction bidirectionnelle : deux images de référence sont utilisées, la précédente image de référence et la prochaine image de référence.

 

L'encodage des images clés

La compression MPEG compressé s'est d'images avec un algorithme prend trois étapes

transformation en cosinus discrète (DCT)
quantisation
Run-length encoding

Les blocs d'erreur ainsi que les blocs image possède une grande redondance spatiale. Pour réduire cette redondance, l'algorithme MPEG transforme les blocs de huit pixels par huit pixels du domaine spatial vers le domaine fréquentiel en utilisant une transformation en cosinus discrète. Ensuite, l'algorithme quantise les coefficients fréquentiels. La quantisation consiste à approximer chaque coefficient fréquentiel par un nombre dans une nombre limité de valeurs. Le codeur choisit une matrice de quantisation qui détermine comment chaque coefficient de la matrice 8 x 8 est quantisé. La perception humaine de l'erreur de quantisation est plus faible pour les hautes fréquences spatiales, ces fréquences seront alors quantisées plus sévèrement (c'est-à-dire avec moins de valeurs) que les basses fréquences. la combinaison de la transformée en cosinus discrète et de la quantisation permet de transformer beaucoup de coefficients fréquentiels à zéro, notamment les coefficients correspondant à une grande fréquence spatiale. Les coefficients non nuls étant regroupés en haut et à gauche de la matrice, la matrice n'est pas lue par ligne et colonne mais en zigzag pour optimiser la compression. Ceci permet de mettre tous les zéros de la matrice les uns à la suite des autres.

 

 


 


Certains blocs, par exempte les blocs qui ont un léger gradiant intensité, ont besoin d'être codés de manière plus précise pour éviter que l'on voit les frontières entre les blocs. Pour gérer ces différences entre les blocs, l'algorithme MPEG autorise la modification du niveau de quantisation pour chaque macro bloc. Ce mécanisme peut être utilisé pour permettre une adaptation souple à débit particulier.

 

Méthodes de synchronisation

Le standard MPEG définit un mécanisme qui assure la synchronisation entre audio et vidéo. Le système inclus deux paramètres : l'horloge de référence du système (SCR) et le marquage temporel (PTS). Le MPEG spécifie une horloge système qui tourne à 90 KHz. L'horloge système de référence et le marquage temporel sont codés dans le flux MPEG en utilisant 33 bits, qui peuvent représenter n'importe quel cycle d'horloge dans une période de 24 heures.

Horloge système de référence
L'horloge système de référence est une photo du système d'encodage placée dans la couche système du flux comme dans la figure suivante. Durant le décodage, ces valeurs sont utilisées pour mettre à jour l'horloge du décodeur.
Marquage temporel
Le marquage temporel est une valeur associée à chaque image vidéo décodée qui indique au système à quel moment il doit afficher celle-ci. Le décodeur peut sauter ou répéter certaines images pour s'assurer que le marquage temporel d'une image est respecté.

 

Acceuil I III