Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
standards MPEG
Paul-Kenji Cahier
cahierp@unice.fr
1
Table des matières
1 Introduction 3
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.
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 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 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.
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.
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.
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.
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)
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)
avec u, v, x, y = 0, 1, 2, ...N − 1
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
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
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.
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.
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
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’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.
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