Techniques de compression video des standards MPEG - Paul-Kenji Cahier Travail d'Etude 2003-2004 Encadrant : Mathias Ortner

La page est créée Bernadette Baron
 
CONTINUER À LIRE
Techniques de compression video des standards MPEG - Paul-Kenji Cahier Travail d'Etude 2003-2004 Encadrant : Mathias Ortner
Techniques de compression video des
         standards MPEG
                Paul-Kenji Cahier
                cahierp@unice.fr

            Travail d’Etude 2003-2004

            Encadrant : Mathias Ortner

      Universite de N ICE -S OPHIA A NTIPOLIS
Techniques de compression video des standards MPEG - Paul-Kenji Cahier Travail d'Etude 2003-2004 Encadrant : Mathias Ortner
Résumé
     Les systèmes de compression MPEG sont utilisés partout dans la vie courante. Le
MPEG2 est utilisé dans tous les DVD, et même dans les transmissions d’images par sa-
tellite. Ce document vise à décrire simplement leurs principes de fonctionement et leurs
méthodes. L’étude se fera sur le MPEG1, le MPEG2 et le MPEG4 qui sont les seuls for-
mats MPEG à être réellement standardisés et utilisés.
     Mots clés : compression vidéo, MPEG, bloc, frame, prédiction de mouvement

                                           1
Techniques de compression video des standards MPEG - Paul-Kenji Cahier Travail d'Etude 2003-2004 Encadrant : Mathias Ortner
Table des matières
1 Introduction                                                                                                                                       3

2 Description non technique                                                                                                                         4
  2.1 Vocabulaire général . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
  2.2 Historique détaillé . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
       2.2.1 MPEG1 . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
       2.2.2 MPEG2 . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   6
       2.2.3 MPEG3 . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
       2.2.4 MPEG4 . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
       2.2.5 MPEG7 et MPEG21            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   8

3 Techniques communes au MPEG 1/2/4                                                                                                                  9
  3.1 Espaces de couleurs . . . . . . . . . . . . . . . . . . . . . . .                                         .   .   .   .   .   .   .   .   .    9
  3.2 Discrete cosine transform, Quantisation&Compression du bloc                                               .   .   .   .   .   .   .   .   .   12
  3.3 Type de frames et fonctionement global . . . . . . . . . . . .                                            .   .   .   .   .   .   .   .   .   15
       3.3.1 I Frames . . . . . . . . . . . . . . . . . . . . . . . .                                           .   .   .   .   .   .   .   .   .   15
       3.3.2 P Frames et B Frames . . . . . . . . . . . . . . . . .                                             .   .   .   .   .   .   .   .   .   16
       3.3.3 Ordre . . . . . . . . . . . . . . . . . . . . . . . . . .                                          .   .   .   .   .   .   .   .   .   16
       3.3.4 Estimation du mouvement . . . . . . . . . . . . . . .                                              .   .   .   .   .   .   .   .   .   17
  3.4 Controle de flux et de qualité . . . . . . . . . . . . . . . . . .                                        .   .   .   .   .   .   .   .   .   18

4 Techniques spécifiques au MPEG 2/4 et techniques d’amelioration                                                                                   20
  4.1 Quarter-pel . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           .   .   .   .   .   .   .   .   20
  4.2 GMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                             .   .   .   .   .   .   .   .   21
  4.3 Quantisation Adaptative . . . . . . . . . . . . . . . . . . . . .                                             .   .   .   .   .   .   .   .   22
  4.4 4MV pour les macro-bloc . . . . . . . . . . . . . . . . . . . . .                                             .   .   .   .   .   .   .   .   23
  4.5 Multiples P frames successives . . . . . . . . . . . . . . . . . .                                            .   .   .   .   .   .   .   .   24

5 Conclusion                                                                                                                                        25

                                                        2
1 Introduction
    L’utilisation de vidéo numerique ne s’est répendue à grande échelle que depuis la moitié
des années 1990. Cependant, dès les années 1960 des techniques de compression analogique
avaient été testées, sans réel succès. Dans les années 1980, la première forme de compression
de vidéo numerique, H.120, est apparue, utilisant un schéma de compression dit DPCM, ana-
logue à celle utilisée dans les CD Audio.
Cependant cette technologie était limitée, et laissait à désirer quant à la qualité. En effet, ce
codec utilisait une compression basée au niveau du pixel, ce qui ne permet pas de déscendre en
dessous d’un bit par pixel(puisqu’il faut indiquer l’existence du pixel), une compression beau-
coup trop faible. Celà amena l’ère des codec dit "à blocs". La fin des années 80 amena ainsi de
nombreux codecs basés sur la DCT(Discrete Cosine Transform), aussi utilisée par le standard
JPEG. Le premier codec utilisant correctement la DCT fût le H261, finalisé en 1989. Le debut
des années 1990 amena le groupement MPEG(Motion Picture Experts Group) a standardiser le
premier système numérique de qualité VHS, le MPEG1.

    Le développement rapide du MPEG1 le rendit facile d’accès. Cependant il souffrait de nom-
breuses limitations, en particulier sa non-adaptation à la télévision entrelacée, et sa limitation
de debit de données. Le MPEG2 apparût ainsi pour résoudre ces problèmes, et reste à ce jour le
format le plus utilisé, depuis les DVD Vidéo, jusqu’à la télévision Haute Définition (HDTV),
en passant part les transmissions vidéo par satellite. Ce format laisse un large choix de matériel
et de logiciel pour le décodage, le rendant aisément utilisable, ainsi qu’une grand adaptabilité.
Son utilisation reste prévue à long terme puisque la télévision HDTV aux Etats-Unis prevoit sa
globalisation sur tout son territoire en 2014. La recherche et le développement de compressions
vidéo ne s’arrête cependant pas la, et depuis 1998 le standard MPEG4 fait son apparition. Le
MPEG4 utilise une technologie plus complexe et possède donc de bien meilleurs résultats, mais
son utilisation reste a l’heure actuelle essentielement expérimentale.

                                                3
2 Description non technique
2.1 Vocabulaire général
Définition 1 (Codec) Vient de compresser/decompresser ; technologie permettant de traiter
une information en l’encodant et la décodant. Un codec peut être une technologie logiciel,
materiel, ou une combination. Dans ce document on se referera a un codec en tant que codec
video, donc une methode de compression/decompression de la video numerique.

Définition 2 (Bitrate ou débit binaire) Désigne la quantité d’information utilisée par rapport
au temps(c’est un débit). C’est une mesure particulierement utile en vidéo numerique, en par-
ticulier lorsqu’il s’agit de faire du "streaming"(transport de flux a travers un réseau).

Définition 3 (DPCM) Abbréviation de Differential Pulse-Code Modulation. Méthode d’enco-
dage digitale dans laquelle on divise la donnée en éléments atomiques, les échantillons, et
l’on calcule ensuite la différence entre chaque échantillon et le precedent ; on sauvegarde cette
information.

Définition 4 (VHS) Video Home System : format analogique de vidéo qui utilise des casettes
magnétiques.

Définition 5 (HDTV) High Definition Television, Télévision Haute Definition, standard tres
récent pour la télévision à grande résolution spatiale,

Définition 6 (Multiplexage) Action de réunir plusieurs flux de base dans un flux contenant.
Par exemple, multiplexer l’audio et la vidéo permet d’obtenir un flux audio/vidéo complet.

Définition 7 (Frame) Représentation d’une video à un instant t donné ; on représente l’image
de maniere discrète en règle générale. Dans tout le document le terme frame est largement
utilisé bien qu’il ne soit pas français. En effet, le mot équivalent en français, "Image", tends à
être beaucoup moins précis(il peut désigner toute sorte de représentation visuelle).

Définition 8 (Composantes) Une image couleur se divise en plusieures composantes, qui sont
les différentes informations constituant l’image, par exemple la composante rouge, la compo-
sante verte et la composante bleue.

Définition 9 (Bloc) Sous ensemble de même résolution horizontale et verticale d’une image.

                                                4
2.2 Historique détaillé
2.2.1 MPEG1
    MPEG1 fut le premier standard du groupement MPEG permettant de traiter une compres-
sion vidéo numérique. Le résultat est plus de 5 publications, qui forment le MPEG1. En 1993
les trois premières parties furent accepté par l’ISO, et traitent des flux binaires de vidéo(Part1),
son(Part2) et de leur multiplexage(Part3). La partie 4(1995) décrit une plateforme de tests pour
vérifier la compatibilité sur tout les supports, et la partie 5(1998) est une implémentation de
réference des algorithmes.

          Document                      Contenu                             Année
       ISO/IEC 11172-1      Synchronization et multiplexage                 1993
       ISO/IEC 11172-2        Compression des flux videos                   1993
       ISO/IEC 11172-3        Compression des flux audios                   1993
         CD 11172-4    Verification des compatibilites, et des flux         1995
       ISO/IEC 11172-5        Implementation de Reference                   1998
                          F IG . 1 – Années de parution des documents

   Le MPEG1 utilise une résolution de 352 pixels par 240 pixels, soit environ 85000 pixels.
Son débit binaire typique est de l’ordre de 1.5Mbps.

                                                 5
2.2.2 MPEG2
    Les limitations du MPEG1 furent vite apparentes. Sa résolution limitée et sa qualitee assez
basse n’en faisait pas un standard capable de durer dans le temps face a l’évolution rapide des
moyens informatiques et numériques. Sa standardisation final se fit de 1998 a 2000, au travers
de nombreux documents décrivant chaque partie du standard. En particulier, le MPEG2 laisse
place à un bien plus large éventail de choix en ce qui concerne la résolution et le controle du
débit binaire. Le MPEG2 comporte 9 parties comme indiqué sur la figure. A l’origine il devait
contenir 10 parties, mais la partie 9 fut abandonnée après que son utilité fût jugée faible ; elle
concernait la vidéo à sample 10 bit, c’est a dire avec un éventail de couleurs plus grand.

            Document            Année&Type                              Contenu
         ISO/IEC 13818-1            2000                 Flux binaires systeme, multiplexage
         ISO/IEC 13818-2            2000                Codage et compression des flux videos
         ISO/IEC 13818-3            1998                Codage et compression des flux audios
         ISO/IEC 13818-4            1998                  Plateforme de verification des flux
         ISO/IEC 13818-4         1998/Cor 2                             Correctif
         ISO/IEC 13818-4        1998/Amd 1                       Premier amendement,
                                                 test des flux audio AAC(Advanced Audio Coding)
         ISO/IEC 13818-4         1998/Amd 2                    Deuxiement amendement,
                                                   adaptation de l’envoyeur a la cible de reception
         ISO/IEC 13818-4         1998/Amd 3                     Troisieme amendement,
                                                      precision sur la conformite des flux audios
       ISO/IEC TR 13818-5           1997             Code de Reference pour l’encodage logiciel
       ISO/IEC TR 13818-5        1997/Amd 1                          Amendement,
                                                       Codage AAC(Advanced Audio Coding)
         ISO/IEC 13818-6            1998                      Extension pour le DSM-CC
                                                   (Digital Storage Media Command and Control)
         ISO/IEC 13818-6          1998/Cor 1                            Correctif
         ISO/IEC 13818-6         1998/Amd 1        Additions concernant la transmission a distance
         ISO/IEC 13818-6         1998/Amd 2              Additions convernant l’interactivite
         ISO/IEC 13818-7             1997        Reference codage AAC(Advanced Audio Coding)
         ISO/IEC 13818-7          1997/Cor 1                            Correctif
         ISO/IEC 13818-9             1996        Reference pour le decodage materiel en temps reel
        ISO/IEC 13818-10             1999                    Conformite pour le DSM-CC
                    F IG . 2 – Années de parution des documents et contenu

                                                6
2.2.3 MPEG3
   Le MPEG3 etait a l’origine destinee aux trés hauts débits mais ne vit pas le jour en tant
qu’entitée puisqu’il fut assimilé au standard MPEG2.

2.2.4 MPEG4
   Dès 1995, le standard MPEG4 commenca a émerger du point de vue théorique. Le premier
document officiel le concernant fût écrit au début de 1998, c’est l’iso ISO 14496. Le but du
MPEG4 est d’englober les codecs MPEG existant et de leur rajouter une nouvelle dimension
permettant un standard beaucoup plus maléable et étendu.

        Partie                   Contenu                  WD    CD   FCD FDIS             IS
          1                  Flux Systèmes                     97/11 98/03 98/10         99/04
       1/Amd x             Flux Systèmes v.2             97/10 99/03 99/07 99/12         00/02
       1/Amd 1               BIFS Etendus                            00/03 01/01         01/03
       1/Amd 2              Formattage texte                         01/03 02/03         02/05
       1/Amd 3          Outils IPMP specifiques                01/07 02/03 02/07         02/09
       1/Amd 4               AFX et MUW                        01/12 02/05 02/10         02/12
       1/Amd 5            Texte Commun MP4                     01/12 02/03 02/07         02/09
       1/Amd 6      Texte Specifique MP4 MPEG-4                01/12 02/03 02/07         02/09
          2                 Encodage Video                     97/11 98/03 98/10         99/04
       2/Amd x            Encodage Video v.2             97/10 99/03 99/07 99/12         00/02
       2/Amd 1                Profile Studio                   00/03 00/07 01/01         01/03
       2/Amd 2        Profiles de Streaming Video              00/03 00/07 01/01         01/03
       2/Amd 3          Nouveau niveau et outils         01/07 01/12 02/03 02/10         02/12
          3                 Encodage Audio                     97/11 98/03 98/10         99/04
       3/Amd x            Encodage Audio v.2             97/10 99/03 99/07 99/12         00/02
       3/Amd 1      Extensions Audio Compatibles         01/12 02/05 02/10 03/03         03/05
          4                Test de conformite            97/10 98/12 99/07 99/12         00/02
       4/Amd 1     Extentions des tests de conformite    98/12 99/12 00/07 01/01         01/03
          5                Code de Reference                   97/11 98/03 99/03         99/05
       5/Amd 1     Extensions du code de Reference       97/10 99/07 99/12 01/01         01/03
          6        Distribution Multimedia Integrée      97/07 97/11 98/03 98/10         99/04
                         Plan de travail (DMIF)
       6/Amd 1          Plan de travail DMIF v.2         97/10 99/03 99/07 99/12 00/08
          7         Optimization Logiciel MPEG-4                            1/12 02/02
                       et outils (encodeur video)
           8          Partie 4 pour les reseaux IP              01/03 01/07 01/12 02/02
           9      Description du materiel de Reference   t.b.d.
          10             Codage Video Avancé             01/12 02/05 02/07 02/12 03/02
                        F IG . 3 – Années de parution des documents

                                             7
Les abbréviations sont les suivantes :
WD : Working Draft, esquisse de travail
CD : Committee Draft, esquisse de commité
FCD : Final Committee Drafts, esquisse finale de comitté
FDIS : Final Drafts of International Standard, esquisse final pour le standard international
IS : International standard, standard international Pour qu’un document du comitté MPEG soit
accepté par le standard ISO, il doit passer par chacune de ces commissions.
    Comme on peut le voir sur le tableau ci-dessu, le MPEG4 dépasse completement la com-
pression vidéo classique il se divise en de nombreuses parties permettant de traiter des conte-
nues multimedia en considérant l’image composée d’objets, tels des objets 3D ou plus. Ces
parties ne peuvent plus réellement être qualifiée de compression vidéo, et ne seront donc pas
traitées dans ce document.

2.2.5 MPEG7 et MPEG21
    Le MPEG7 est le dernier né de la famille des codecs MPEG, et a reçu sa première esquisse
officielle en Septembre 2000. Le MPEG7 ne concerne plus vraiment la compression vidéo mais
traite essentielement de contenu multimedia et d’interactivité. Le MPEG21 étends le MPEG7,
et est encore en pleine naissance.

                                              8
3 Techniques communes au MPEG 1/2/4
3.1 Espaces de couleurs
     Pour travailler sur des images numériques, on discrétise ces images. On représente donc
une image par une fonction à deux variables, les coordonnées, qui renvoie la couleur au point
demandé de l’image. La représentation classique d’une image numérique utilise un espace de
couleur dit RGB. Cela correspond a une représentation discrète de l’image oû l’on quantifie la
couleur en chaque point par trois valeurs : Rouge, Vert et Bleu(RVB ou RGB en anglais). Cette
présentation a cependant plusieurs défaults : elle utilise une grande quantité d’information et
ne tient pas compte du fait que l’oeil humain ne perçoit pas les couleurs en RVB mais au tra-
vers de deux types de cellules : les une percoivent la luminositée(en noir et blanc), et les autres
la coloration. Les codecs MPEG ne compressent donc pas des images RVB, mais utilisent un
espace de couleurs plus approprié, de façon à mieux profiter du format de la vision humaine.
Le format adopté est un format dit YUV.
Y represente la luminosite U represente la premiere valeur de chrominance(ou chroma) V re-
presente la deuxieme valeur de chrominance(ou chroma)
Il faut evidement 3 composantes indépendantes pour pouvoir avoir un espace de couleur com-
plet.
Les formules permettant de passer d’un espace RVB a YUV et inversement sont assez simples,
et correspondent à des produits matriciels (Ce sont des changement de bases, puisque ce sont
des espace vectoriels de dimension 3).

 Y = (0.257 ∗ R) + (0.504 ∗ G) + (0.098 ∗ B) + 16
    Cr = V = (0.439 ∗ R) − (0.368 ∗ G) − (0.071 ∗ B) + 128
    Cb = U = −(0.148 ∗ R) − (0.291 ∗ G) + (0.439 ∗ B) + 128

et

 B = 1.164 ∗ (Y − 16) + 2.018(U − 128)
    G = 1.164(Y − 16) − 0.813(V − 128) − 0.391(U − 128)
    R = 1.164(Y − 16) + 1.596(V − 128)


                                                9
F IG . 4 – Exemple de différentes composantes dans différents espaces de couleurs

                                       10
L’utilisation du format YUV permet de profiter d’une caractéristique de l’oeil humain :
sa capacité de distinction des couleurs est plus faible que celle de distinction de la luminosité.
Cela permet de réduire la quantite d’information des espaces de chrominance par rapport à celle
de luminosité, on fait donc ce qu’on appelle du sous-échantillonage sur les composantes U et
V. Cela correspond en géneral à les réduire de moitié de résolution(et donc à diviser par 4 leur
taille en memoire), pour une perte de qualité assez faible(le gains en espace est important)

                  F IG . 5 – Les composantes U et V sont sous-echantillonées

   On distingue plusieurs espaces YUV aux caractéristiques différentes, utilisées par les for-
mats MPEG 1/2/4. Les compressions vidéos MPEG 1/2/4 utilisent toutes à la base le format dit
YV12(YUV 4 :2 :0). Cependant depuis le MPEG2, le support de formats professionels de haute
qualitée, dit YUV 4 :2 :2, est possible. En pratique ceux-ci ne sont quasiment jamais utilisé.

                                               11
3.2 Discrete cosine transform, Quantisation&Compression du bloc
    La DCT permet de transformer un bloc d’une composante, en un ensemble de fréquences
décrivant le même ensemble(c’est un changement de représentation isomorphe). Une fois de
plus le but final et de profiter des faiblesse de l’oeil humain qui remarque beaucoup moins une
perte de données réparties que localisée. (Un peu de bruit dans l’image genera beaucoup moins
que quelques pixels completement faux)

La définition formelle de la DCT à deux dimensions est la suivante :
F(u,v) est la transformée, c’est P
                                 la fonction qui donne la valeur pour le couple de frequence (u,v).
                                                            (2x+1)uπ
F (u, v) = N2 ∗ C(u) ∗ C(v) ∗ N       −1 PN −1
                                    x=0    y=0 f (x, y)cos(    2N
                                                                     )cos( (2y+1)vπ
                                                                              2N
                                                                                    )

avec u, v, x, y = 0, 1, 2, ...N − 1

ou x et y sont les coordonees spatiale
ou u et v sont les coordonees dans la transformée
                        1
                          √ pour u, v = 0
et avec C(u), C(v) =        2
                          1 sinon
et la transfromation inverse, l’IDCT est defini ainsi :
                                                   (2x+1)uπ
f (x, y) = N2 N        N −1
                                                            )cos( (2y+1)vπ
              P −1 P
                u=0    v=0 C(u)C(v)F (u, v)cos(        2N            2N
                                                                           )

En pratique dans les encodages MPEG, la DCT est utilisée sur des blocs. Le bloc est trans-
formé dans le domaine fréquentiel par la DCT. Au moment du décodage on applique ce que
l’on apelle l’IDCT(Inverse Direct Cosine Transform) qui permet de repasser au domaine spa-
tial.

La quantisation intervient juste apres avoir transforme un bloc via la DCT. La quantisation
revient a diviser un tableau par un autre tableau. On divise chaque valeur obtenu par DCT
par la valeur correspondante dans un tableau. La methode classique utilisee par le MPEG4, le
H263, divise par une même valeur tout les coefficients. Ceci permet de "simplifier" l’informa-
tion contenue, et donc de rendre la compression plus facile. En effet, on ramène l’ensemble des
valeur à un ensemble plus petit, ce qui le rendra plus aisement compressible par une compres-
sion de type entropique classique(comme huffman).

                                                12
Exemple 1 Soit le bloc de taille 8x8 suivant :
                                                                        
                        150 170 132 185          147   190   215   220
                      165 185 130 190           175   196   223   199   
                                                                        
                      155 163 180 220           202   173   197   170   
                                                                        
                      143 154 160 170           211   185   190   166   
                                                                        
                      130 140 172 190           193   150   180   140   
                                                                        
                      135 164 198 180           177   141   172   135   
                                                                        
                      170 190 163 140           165   132   160   140   
                        160 200 145 135          170   199   190   129

Une fois transformé par DCT on obtient :
                                                            
                      338 −49 −39 10 −23 12 −64 5
                   62 −78 16 −13 35              24 −6 −42 
                                                            
                   8      −7     76      27 −27 −13 −10 −44 
                                                            
                   −31 1          8     −40  6   12  4   3  
                                                            
                   −9 −34 0              24 −10 −7   7  −8 
                                                            
                   −9 10         14     −10  10 −13  10  11 
                                                            
                   11      3 −29 −20 −7 14           9   0 
                      −8 14 −8 −17 16             13 −2   2

On applique alors la quantisation qui revient a diviser chacun des coefficients par la matrice
du JPEG par exemple :
                                                                  
                          16 11 10 16 24 40 51 61
                        12 12 14 19 26 58 60 55 
                                                                  
                        14 13 16 24 40 57 69 56 
                                                                  
                        14 17 22 29 51 87 80 62 
                                                                  
                        18 22 37 56 68 109 103 77 
                                                                  
                        24 35 55 64 81 104 113 92 
                                                                  
                        49 64 78 87 103 121 120 101 
                          72 92 95 98 112 100 103 99

On obtient :
                                                 
                              21 −4 −3 0 0 0 −1 0
                          
                              5 −6 1   0 1 0 0 0 
                                                  
                          
                              0  0  4  1 0 0 0 0 
                                                  
                          
                             −2 0   0 −1 0 0 0 0 
                                                  
                          
                              0 −1 0   0 0 0 0 0 
                                                  
                          
                              0  0  0  0 0 0 0 0 
                                                  
                              0  0  0  0 0 0 0 0 
                               0  0  0  0 0 0 0 0

   On parcours ensuite la matrice de coefficient obtenu en zigzag.

                                             13
Exemple 2 Par exemple dans l’exemple prescedent on obtient :
21
-4 5
0 -6 -3
0 1 0 -2
00400
0 1 1 0 -1 0
0 0 0 -1 0 0 -1
00000000
0000000
000000
00000
0000
000
00
0

On obtient donc une suite de coéfficients, que l’on compresse a l’aide d’une compression en-
tropique du type huffman. Gràce à la quantisation on a de nombreux zéros, et la compression
est bonne.
En jouant sur les coefficients de quantisation on peut facilement "rajouter ou enlever" de l’in-
formation et ainsi controller la taille du bloc compressé. Le résultat à évidemment un aspect de
plus en plus différent de l’image d’origine par ce processus, ou l’on augmente la quantisation,
puisque l’on élimine de l’information par arrondi.

                                              14
3.3 Type de frames et fonctionement global
   Il existe trois types de frame dans la compression MPEG : Les I frames, dites Intra Frames,
ou key frames Les P frames, dites Inter Frames, Delta Frames, ou prediction frames Les B
frames, ou Bidirectional frames

3.3.1 I Frames
    Les I frames ressemblent beaucoup à une compression de type JPEG. Leur codage revient
simplement à prendre l’image, la découper en blocs de 8x8 pixel, et à coder chaque bloc via
DCT, quantisation et compression(cf Figure). On modifie le coefficient de quantisation si l’on
veut changer la taille finale, puisque ce coefficient permet de jouer sur l’information restante
présente. Leur nom, Intra, dérive du fait qu’elles sont complètement indépendante de toute
autre information dans la vidéo ; ces frames sont bien entendue très rapidement gourmandes en
mémoire, mais possèdent l’avantage d’avoir une image entière codée.

                           F IG . 6 – Compression dans une I Frame

                                              15
3.3.2 P Frames et B Frames
    Les P frames sont obtenues de manière plus complexe. On va d’abord chercher à trouver ce
que l’on appelle des "motion blocks", des blocs de mouvement. Ces blocs sont en fait des blocs
que l’on trouve dans la frame précedente et qui ont simplement bougé. Cela correspond a l’idée
que la frame suivante sera en grande partie similaire à la frame existante, et que de nombreux
morceaux n’auront que bougés. Cette idée permet de gagner largement en compression puisque
chaque bloc trouvé par compensation de mouvement n’aura pas besoin d’etre entierement re-
codé, il suffira de stocker son vecteur. On cherche donc un maximum de ces blocs pour pouvoir
réduire la quantité d’information necessaire. L’information qui ne peux être trouvée par com-
pensation de mouvement sera codée traditionellement ; comme dans une I frame, par un codage
DCT. La P frame est donc une mozaique de blocs composés d’un vecteur(pour indiquer ou se
situait le bloc dans la frame précedente) et de blocs complets. En pratique, ces vecteurs, appelé
"motion vectors", sont recherché sur une taille fixée de 16x16 pixel(c’est-à-dire 4 blocs) (en
dessous, le vecteur aura une efficacité bien inferieure a celle d’un codage complet).
Les B frames poussent le concept des P frames plus loin ; alors qu’une P frame ne se base que
sur la frame précedente, la B frame utilise egalement des frames "dans le future" pour faire de
la compensation de mouvement. Celà permet encore un nouveau gain(en particulier lorsque la
compression est forte) mais demande à pouvoir décoder des frames à l’avance.

             F IG . 7 – Vecteur de compensation de mouvement dans une P Frame

3.3.3 Ordre
   Comme les B Frames demandent à connaître à l’avance d’autres frames, on les stocke dans
un ordre différent de l’ordre d’affichage, comme indiqué sur la figure.

                                               16
F IG . 8 – Réferencement des frames entres elle dans un flux video MPEG

3.3.4 Estimation du mouvement
    Pour calculer la compensation de mouvement, on precalcule l’estimation du mouvement.
Cette technique fonctionne en pré-calculant les vecteurs de mouvement. Pour celà on prend un
bloc et on le compare dans un rayon donné à tout les blocs aux alentours dans la frame suivante.
Si il correspond a un bloc alors on calcule le vecteur qui lui correspond. Ce vecteur permettra
ensuite de determiner la P frame/la B frame suivante, bien plus aisément.

                        F IG . 9 – Champs de vecteur de compensation

                                              17
3.4 Controle de flux et de qualité
    De facon à pouvoir transmettre un flux de manière constante on demande en géneral d’avoir
un débit le plus constant possible, ou du moins d’avoir la possibilité de le modérer. Pour cela on
utilise la quantisation, et bien sur la quantite de recherche faite pour les B frames et les P frames.
La quantisation permet d’instantanement réguler la taille des frames en augmentant/diminuant
la quantité totale d’information, au détriment de la qualité. La quantité de recherche faite per-
met elle d’optimiser la taille sans perdre de qualite, mais demande plus de traitement(ce n’est
donc pas une solution viable pour un traitement hardware ou la quantite de calculs est fixee).
Enfin, lors de la recherche des vecteurs de compensation pour les P frames et B frames, on
établit un coefficient pour juger si deux blocs sont suffisement similaires ou pas. Cette valeur
influe grandement le nombre de vecteurs trouvés, et donc la taille finale de l’image. En rendant
ce coefficient très petit, on trouve un grand nombre de vecteurs correspondant, mais comme
ceux ci ne correspondent pas exactement, on voit l’apparition de block visibles dans l’image,
phénomène trés classique dans la compression temporelle par block. Augmenter la quantisation
détériore aussi la qualité, et rends visible du bruit fréquentiel, faisant apparaitre non seulement
des blocks, mais aussi de nombreux petits "moustiques", c’est le bruit de quantisation de Gibbs.
Pour le controle de qualité il s’agit d’utiliser une mesure de qualité appropriée. La plus utilisée
est en général le PSNR (peak signal to noise ratio) qui permet d’avoir une bonne estimation de
la "distance" d’une image a une autre. Cette mesure cependant ne reflète pas la perception hu-
maine et il se peut qu’une image avec un très bon psnr(un psnr elevé) soit de mauvaise qualité.
Une image avec un bon psnr indique cependant généralement une bonne qualité.

Définition 10 PSNR : Soit f une image, et f’ l’image encodée et decodée.
                              2552
P SN R = 10.log( PLargeur PHauteur |f (x,y)−f 0 (x,y)| )dB
                      x=0     y=0     Largeur∗Hauteur

   D’autres mesures ont recemment été utilisées, de façon à ressembler plus a la perception
humaine, telle la mesure SSIM. On peut donc controller la qualité en forcant un reencodage a
quantisation plus basse apres estimation de la qualite.

                                                  18
Il existe deux cas majeurs pour le débit d’un flux video :
*Le premier cas correspond à vouloir faire de la transmission sur un reseau(streaming) avec un
débit le plus constant possible. Pour cela on adapte en permanence en limitant, comme prece-
dement décrit.
*Le deuxieme cas correspond a vouloir obtenir un fichier sauvegardable de taille fixée, qui peut
avoir un flux binaire de débit variable, mais une qualite la plus constante possible(c’est le cas
du VBR(variable bitrate, debit de flux variable)). Dans ce cas on utilise un mécanisme qui va
prendre en charge d’attribuer une qualité la plus élevée possible tout en maintenant un ecart par
rapport à la taille voulue le plus faible possible. Ce mécanisme implique d’avoir des déborde-
ments controlés. Cependant il arrive que certaines situations extrême force le codec à attribuer
une qualité médiocre car son réservoir de bits est vide. Pour ameliorer la qualité dans cette
situation, on emploit ce que l’on appelle des méthodes multi-passe. Ces méthodes encodent
d’abord a qualité purement constante toute la vidéo, et sauvegarde de nombreuses informa-
tions. Il s’en suit un deuxieme encodage(la deuxieme passe) qui permet, gràce à l’information
fourni dans la première passe, d’ajuster à chaque instant la qualité et le débit de façon à répartir
de manière optimale les données.

                                                19
4 Techniques spécifiques au MPEG 2/4 et techniques d’ame-
  lioration
4.1 Quarter-pel
    Le quarter-pel est une technique couteuse en temps de calcul qui part du principe que tous
les mouvements dans une vidéo ne sont de l’ordre d’un pixel. Il arrive fréquement que le mou-
vement soit non entier, et donc arrondi, ce qui a tendance a rendre la video de moins bonne
qualité. Le QPel, ou quarter-pixel(quart de pixel) par de ce principe et fait une recherche de
vecteur de compensation du mouvement plus précise, c’est a dire en travaillant avec des "quarts
de pixel" ; pour cela le mechanisme extrapole l’image autour du bloc avec un facteur quatre,
il y a donc 16 fois plus de pixel, soit 16 fois plus de blocs à explorer pour calculer le mouve-
ment. Cette technique permet d’améliorer la précision de la compensation de mouvement. En
pratique, celà se traduit par une plus grande netteté. L’extrapolation se fait selon un algorithme
bilineaire ou bicubique, ce qui demande un temps non negligeable. Le qpel oblige également
le decodeur à plus de calculs, puisque celui ci devra être capable d’extrapoler à son tour pour
décoder.
Notons également l’existence d’algorithmes encore plus precis, tels le 8th-pel, qui reprennent
le même principe mais avec une plus grande précision ; cependant leur usage est trés limité et
non standard, sans compter qu’il est excessivement couteux pour un gain faible.

                                               20
4.2 GMC
    GMC, Global Motion Compensation, Compensation Global de Mouvement. Cette méthode
permet d’améliorer la qualité globale de l’image dans certains contextes. Par exemple, si une
vidéo agrandit/recule(zoom/dezoom), on aura beaucoup de mal à trouver des blocs similaire
puisque leur taille dans l’image à changé, et que le MPEG utilise des blocs de taille fixée. Pour
remédier à ce problème la GMC tente de rechercher un effet global dans la video, tel que des
translations, le changement de perspective et les rotations. La recherche de translation unique-
ment, correspond a un GMC dit a un point d’ancrage(un seul warp point), puisqu’il n’a de
dimension que sur un axe. La recherche d’agrandissement/desagrandissesment(zoom/dezoom)
introduit un deuxième point d’ancrage puisque l’on dispose d’un deuxième axe, enfin la rota-
tion introduit un troisième axe, pour donner trois points d’ancrage(3 warp point GMC). Les
algorithmes de GMC sont difficiles à implémenter cependant, et leur efficacité est souvent re-
lative.

                                               21
4.3 Quantisation Adaptative
     Cette technique consiste simplement à appliquer un coefficient de quantisation différent
pour chaque bloc. En effet chaque bloc se prete plus ou moins bien à une quantisation élevée,
et il vaut mieux parfois ne pas trop compresser un bloc sous peine de grave dégradation de la
video. Pour celà, on stock dans chaque bloc une information indiquant une différence de quan-
tisation par rapport a la quantisation globale de la frame.

Exemple 3 On demande une quantisation de 5 sur une frame composée de 8 blocs. Cepen-
dant les blocs 1,4 et 8 se prêttent bien mieux à une quantisation, alors que les blocs 2, 3 et 6
contiennent plus de détails, ce qui les rends plus difficiles a compresser. On va donc attribuer à
la frame la quantisation globale 5, les blocs 1,4 et 8 reçoivent une quantisation de 6(on indique
+1 dans leur header), et les blocs 2,3 et 6 recoivent une quantisation finale de 4(on indique -1
dans leur header). La quantisation globale de la frame reste de 5, mais chaque partie est plus
ou moins compressée.

                                               22
4.4 4MV pour les macro-bloc
    Dans le MPEG1 et MPEG2 les macro-blocs étaient toujours de taille 16x16 avec un seul
vecteur pour définir leur mouvement. Le MPEG4 apporte une grande innovation en permettant
de subdiviser chaque macro-bloc en 4 blocs de 8x8 qui ont chacun leur propre vecteur de
compensation. Cela permet une plus grande precision meme si celà multiplie l’information du
mouvement de chaque macro-bloc par 4. En pratique celà permet d’avoir une meilleure qualitée
au detriment de la taille.

         F IG . 10 – 4MV : Chaque Macro bloc de 16x16 posse desormais 4 vecteurs

                                            23
4.5 Multiples P frames successives
  Le MPEG4 permet de se faire succeder de multiples P frames alors que le MPEG1 et le
MPEG 2 ne le permettaient pas. Celà tient à deux faits :

1.Dans le MPEG2 l’IDCT est beaucoup moins stricte, ce qui, si l’on utilisait plusieurs P frames
à la suite, multiplierait les erreurs beaucoup plus vite lors du décodage(en effet, rien ne garantie
que le décodeur utilisera le meme que l’encodeur). Le MPEG4 impose des encodeurs/décodeurs
très proche, ce qui empêche les distortions. Le MPEG4 est censé avoir en théorie la possibi-
lité d’avoir jusque 125 P frames successives sans générer de réelle distortion. En pratique ce
nombre dépasse rarement 25, mais celà reste bien plus élevé que le MPEG2 qui supporte très
mal plus de 3 P frames(apparition de zones plus sombres, de changement de luminosité glo-
bal).
2.Dans le MPEG4 on stocke la méthode d’arrondi utilisé dans une frame, ce qui permet a
chaque fois de compenser les erreurs d’arrondis qui apparaissent dans la frame précedente.

                                                24
5 Conclusion
    Le MPEG4 apporte une solution efficace pour l’encodage video. Ses algorithmes sont re-
lativements evolues, et promettent une qualité elevée à debit bien plus bas que le MPEG2. Le
MPEG4 utilise egalement un systeme de licence beaucoup plus facile, le rendant plus attractif
a l’utilisation. Son utilisation commence a faire son apparition un peu partout et le MPEG4 est
devenu assez célèbre au public au travers des codecs dit DivX. A l’origine, le Divx 3.11 était
une version piratée du codec MPEG4v3 de Microsoft, mais des initiatives open-source telles
que XviD, ou libavcodec permettent aujourd’hui de disposer d’encodeurs MPEG4 de très haute
qualité.

                                              25
Références
[IS1449] Iso Comittee. ISO/IEC 14496 Part 2 - Coding of audio-visual objects, second edition,
      2001/12/01
[EG0001] Edouard Gomez et Lionel Dufresne. Mémoire de Multimédia, MPEG4 et XviD
[WWW001] MPEG Comittee Documentation, http ://www.chiariglione.org/mpeg/
[WWW002] WikiPedia, MPEG-2 and DCT Articles, http ://en.wikipedia.org/wiki/MPEG-2

                                             26
Vous pouvez aussi lire