Techniques de compression video des standards MPEG - Paul-Kenji Cahier Travail d'Etude 2003-2004 Encadrant : Mathias Ortner
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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
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
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