Vous êtes sur la page 1sur 12

les normes de

compression JPEG et
MPEG

La compression JPEG
Le mode de compression bien connu JPEG a ete normalise au milieu des annees
1980, a linitiative du Joint Photographic Experts Group. Grace au format JPEG, il
est possible de decompresser et de visualiser des images a laide dun navigateur
web standard. JPEG permet dobtenir le degre de compression souhaite : le taux
de compression est parametrable. La compression selectionnee est directement
liee a la qualite de limage voulue. Outre le degre de compression, limage ellememe influence egalement le taux de compression obtenu. Par exemple, un mur
blanc peut produire un fichier image de taille relativement petite (et un taux de
compression eleve), tandis que le meme degre de compression applique a une
scene complexe et chargee produira un fichier de plus grande taille, avec un taux
de compression plus faible. .

Le codage YUV
La compression JPEG peut s'appliquer des images monochromes (luminance seule) ou des
images couleurs RGB (3x8 bits pour les trois composantes rouge, vert et bleu). Elle est
toutefois le plus souvent applique au images codes en YUV, comme les images PAL de nos
TV, car le taux de compression obtenu est meilleur. la correspondance entre RGB et YUV est
univoque et rversible : Y = luminance, U = R-Y, V=B-Y. Toutefois, on constate que les
signaux de chrominance renferment le plus souvent beaucoup moins d'informations que la
luminace et on ne les code donc que sur une rsolution infrieure de moiti en vertical. Ce
codage particulier est appel 4:2:2, ce qui dcrit la proportion de bits utiliss pour dcrire les
trois composantes YUV l'intrieur du signal. Cette dcimation des informations de couleur
est en gnral assez peu perceptible (on l'utilise en studio). On utilise ausii un codage 4:2:0
qui rserve encore moiti moins de place aux informations de couleur. La dgradation de
qualit tant plus importante, cette compression n'est utilise que pour la diffusion finale
quand le signal ne doit plus tre considr comme une 'source' d'information susceptibler
d'tre rutilise.

La compression JPEG : Dcomposition en blocs


L'image est dcoupe en blocs carrs de 8 pixels. Une image TV PAL standard (dite aussi
CCIR 601) de 720x576 pixels code en YUV 4:2:2 donnera donc 6480 (90x72) blocs pour la
luminance Y et 3240 (90x36) blocs pour chacune des composantes U et V. Les images fixes
JPEG de taille quelconque seront coupes de la mme manire, aprs arrondi de leur taille au
multiple de 8 le plus proche.
On obtient donc par image 6480 blocs de valeurs de 0 255 pour la luminance Y et 3240
blocs de valeurs de -128 +127 pour les signaux de chrominance U et V.
La compression JPEG : Transformation DCT
La transforme DCT (Direct Cosine Transform) est un cas particulier de la transforme de
Fourier, qui dans certaines conditions, dcompose le signal en une srie de fonctions
uniquement cosinus et en phase avec le signal d'origine, ce qui rduit de moiti le nombre des
coefficients ncessaires. Dans le cas des images, on utilise une DCT bidirectionnelle qui
transformera un bloc de NxN pixels (de luminance ou de chrominance) en un autre bloc de
NxN coefficients correspondant l'amplitudes des fonctions harmoniques dans l'espace
transform
Les compressions JPEG et MPEG ont choisi de toujours travailler sur des blocs de 8x8 pixels.
Le premier coefficient, en haut gauche de la matrice, reprsente la composante continue.
L'lment en bas droite, celui de frquence la plus leve dans les deux directions. En
gnral, l'lment (0,0 a une valeur leve et les autres des valeurs beaucoup plus faibles,
voire nulles. Ceci dpend bien sr de contenu de l'image. On constate trs gnralement que
la quasi totalit de l'information contenue dans l'image se concentre dans le coin suprieur
gauche de la matrice des coefficients.
On notera que la DCT est rversible et ne rduit pas la qualit de l'image, mais elle la rend
beaucoup plus facile comprimer par les tapes suivantes.

Figure 1: Codage DCT

La compression JPEG : Seuillage et quantification

C'est ici que l'on rduit vraiment la quantit d'information de l'image et donc que l'on dgrade
le signal original. Le seuillage consiste mettre zro toutes les valeurs de la matrice
infrieures un seuil donn. Plus celui-ci est lev, plus la compression sera forte. La
quantification rduit les nombres restant un petit nombre de valeurs discrtes. La
composante continue (coin suprieur gauche de la matrice) est cod diffremment car on lui
demande une beaucoup meilleure prcision que les autres. Il est cod en DPCM (Differential
Pulse Code Modulation) c'est dire en ne traitant que la diffrence par rapport la valeur au
bloc prcdent.
Dans l'exemple de la figure ci-dessus, si le seuil est 10, il ne reste que 11 coefficients non
nuls sur les 64. La quantification diminuera le nombre de valeurs diffrentes prsentes dans la
matrice, ainsi par exemple, 12 sera assimil 14 et 20 et 21 seront considrs comme
identiques. La composante continue (987 dans l'exemple) sera code comme valant un
nombre de petite taille, diffrence entre 987 et la luminosit moyenne du bloc prcdent dans
l'image.
La compression JPEG : Lecture en zigzag
Les valeurs de la matrice sont ensuite lues et ranges dans une table une seule colonne. On
lit les valeurs en zigzags inclins 45 en commenant par le coin suprieur gauche et en
finissant en bas droite. De cette faon le vecteur des valeurs contient presque toutes ses
valeurs non nulles au dbut et presque toujours un grand nombre de zros la fin. Ceci
facilite de nouveau les tapes de compression suivantes.
La compression JPEG : Codage VLC
Cette dernire tape utilise le codage entropique et code les valeurs numriques les plus
frquentes avec un nombre de bits faible et les valeurs les plus rares avec un nombre de bits
plus lev. Le taux de compression des deux tapes RLC et VLC est de l'ordre de 60 70%
dans les cas usuels. Cette compression se fait sans pertes (les pertes sont faites lors du
seuillage et de la qualtification).

Figure 2- Comparaison des images JPEG compresses

La compression MPEG
Nous avons voqu prcdemment le principe de base de la compression vido, savoir la
diminution de la redondance spatiale d'une part et de la redondance temporelle d'autre part. Nous
allons tudier ici en dtail ce principe dans MPEG.

Le codage spatial
Le flux de sortie de MPEG comporte trois types d'images : les images I (intracodes), les images P
(prdictives) et les images B (bidirectionnelle). Etudions tout d'abord les images I.
Comme nous l'avons dj dit, il s'agit d'images compltes codes en JPEG. Sans entrer dans les
dtails de la compression JPEG, l'algorithme de compression d'une image fixe s'effectue en quatre
tapes : transformation en cosinus discrte (DCT, pour Discrete Cosinus Transform), quantification,
codage en longueur de plage (RLC, pour Run Length Coding) et codage de Huffman. Vous pourrez
trouver sur le web ou dans la littrature beaucoup d'informations sur la compression d'images fixes.
Typiquement, une image I est intercale dans le flux vido toutes les 10 15 images. Avec un dbit de
25 30 images par seconde, cela veut dire qu'il y a 2 ou 3 images I par seconde dans le flux. Trois
raisons principales font que les images I sont indispensables. Tout d'abord, MPEG-1 peut tre utilis
pour faire de la diffusion multi-destinataires, chaque utilisateur pouvant se connecter tout moment.
Si toutes les images dpendaient de la prcdente, en remontant ainsi jusqu' la premire, et que l'on
ait manqu la premire, on ne pourrait plus dcoder le flux. D'autre part, si une image tait errone,

on serait bloqu de la mme manire. Enfin, les images I permettent la lecture avant ou retour rapide,
sans que le dcodeur ait besoin de calculer chaque image survole.

Le codage prdictif
Les images P (images prdictives) sont codes par rapport l'image prcdente. Elles ne codent en
fait que la diffrence bloc par bloc avec l'image prcdente. On recherche donc dans l'image
prcdente un macrobloc identique ou semblable pour optimiser le codage. La diffrence entre les
deux images est ensuite code spatialement, comme les images I.

Figure 3- La compression temporelle : on code la diffrence entre deux images.


Le rsultat est compress spatialement

La figure 7 illustre un exemple dans lequel les images P sont trs utiles. Nous avons trois images
conscutives qui ont le mme arrire-plan mais diffrent par la position d'un animal. Les macroblocs
qui reprsentent l'arrire-plan restent les mmes d'une image l'autre, mais ceux qui contiennent
l'animal devront tre dcals d'une certaine valeur qui est calculer.

Figure 4 - Trois images conscutives dans une squence vido

Cette technique est appele la compensation de mouvement. Quant un macrobloc est compress
par cette technique, le fichier ainsi compress contient les informations suivantes :
- un vecteur de dplacement entre le macrobloc de rfrence et le macrobloc qui va tre cod. Ce
vecteur rend donc compte du dplacement du macrobloc dans chaque direction par rapport sa
position prcdente.
- la diffrence entre le contenu du macrobloc de rfrence et le macrobloc qui va tre cod. Cette
diffrence est appele le terme d'erreurs, et est code en JPEG.
La figure 8 montre le profil type d'une application MPEG basique. Une image I est code
priodiquement, tandis qu'entre chacune d'entre elles, on code des images P qui sont bases sur les
images prcdentes. Deux problmes majeurs d'ordre technique se posent immdiatement : si une
erreur se produit lors du codage d'une image P, toutes les images P suivantes contiendront galement
cette erreur ; et si une image I se perd, le dcodage des images P suivantes est impossible jusqu' ce
qu'une nouvelle image I arrive.

Figure 5 - Un signal basique MPEG

La compensation de mouvement
Revenons un peu sur le principe de compensation de mouvement. Ce principe est, on l'a vu, la base
de la gnration des images P. La figure 9 montre le fonctionnement d'un systme de compression
par compensation de mouvement. La partie gauche de la figure reprsente le codeur, et la partie
droite le dcodeur. On remarque que le codeur contient en lui-mme un dcodeur, et ceci pour
calculer le terme d'erreurs. En effet, aprs avoir calcul les vecteurs de dplacement, le codeur les
utilise comme le ferait un dcodeur pour calculer l'image prdictive uniquement partir de l'image
prcdente et de ces vecteurs. Le rsultat soustrait l'image actuelle donne alors le terme d'erreurs.
Ce sont donc les vecteurs de dplacement ainsi que le terme d'erreurs qui sont transmis au dcodeur.
Le dcodeur prend donc l'image prcdente, lui applique les vecteurs de dplacement puis ajoute le
terme d'erreurs, pour avoir finalement l'image actuelle.

Normes et produits
MPEG-1
La norme MPEG-1 est enregistre l'ISO (International Organisation for Standardisation) sous le
code ISO/IEC 11172. Elle a t finalise en 1992. Elle contient cinq parties : une partie systme, une
partie vido, une partie audio, une partie tests de conformit et une partie simulation logicielle.
Le but des chercheurs qui ont travaill sur cette premire norme tait de stocker et de reproduire de la
vido avec le son associ sur des supports de stockage, en qualit magntoscope (320 x 240), avec
un dbit maximum gal 1,5 Mbits/s. Concrtement, MPEG-1 est devenu par la suite la norme de
stockage de vidos sur CD-ROM au format CD-I ou CD-vido.
Le principe de fonctionnement de MPEG-1 est exactement celui dcrit dans la partie 2 de cet expos,
avec les restrictions de formes suivantes : affichage maximum de 30 trames/s, images en mode
progressif uniquement, format de couleur 4:2:0 au mieux.
Lorsque la norme est sortie, la compression des squences vido en MPEG-1 ncessitait des
quantits de mmoire (16 Mo de RAM minimum) que les ordinateurs personnels de l'poque n'avaient
pas encore (4 Mo de RAM en moyenne). Aussi la compression vido MPEG-1 ncessitait de coteux
investissements (3 000 4 500 euros pour une carte de compression, et plus de 20 000 euros pour
une station de compression complte !). Aujourd'hui, n'importe quel micro-ordinateur d'entre de
gamme peut compresser sans aucun problme des squences vido en MPEG-1, via des logiciels
souvent gratuits (freeware).
Enfin, nous pouvons dire un petit mot sur la partie audio du MPEG-1, dcompose en MPEG-1 Audio
Layer I, II et III. Ce dernier format, plus connu sous le nom de MP3, est l'origine d'une vritable
rvolution de l'industrie discographique, aprs en avoir fait trembler les bases la fin des annes 90.
MPEG-2

La norme MPEG-2 est enregistre l'ISO sous le code ISO/IEC 13818, et a t finalise en 1996. Elle
comporte neuf parties : les cinq parties semblables au MPEG-1, plus quatre autres parties composes
d'extensions diverses.
MPEG-2 a t dveloppe pour la compression de la vido de qualit tlvision un dbit de 4 6
Mbits/s (ce qui correspond un canal de tlvision normal). Un peu plus tard, lorsque MPEG-3 fut
abandonn, MPEG-2 intgra la compression de la tlvision haute dfinition (TVHD). Aujourd'hui,
MPEG-2 est aussi le format utilis pour stocker les films sur DVD.
Si sur le fond, le principe gnral de fonctionnement de MPEG-2 est trs sensiblement identique
celui de MPEG-1, il existe de nombreuses diffrences de formes entre les deux normes. Tout d'abord,
MPEG-2 permet la compression d'images entrelaces l o MPEG-1 ne traite que les images en
mode progressif, et ceci bien videmment pour servir la tlvision numrique. La prdiction de
mouvement ne se base donc plus que sur des trames, mais aussi sur des champs. En MPEG-2, on
peut faire afficher jusqu' 120 champs/s, soit 60 trames/s.
Ensuite, au lieu de n'avoir qu'un seul niveau de rsolution, MPEG-2 en permet quatre : basse
rsolution (352 x 288), rsolution normale (720 x 576), haute rsolution 1440 (1440 x 1152) et haute
rsolution (1920 x 1152). MPEG-2 dfinit aussi plusieurs profils, chaque profil visant un type
d'application en particulier. Le profil normal, alli au niveau de rsolution normal, est le profil le plus
utilis. Le profil simple ne comporte pas d'images B, pour simplifier codage et dcodage. Les autres
profils concernent principalement la tlvision haute dfinition (TVHD). Ces profils diffrent en termes
de rsolution de chrominance (4:2:0 ou 4:2:2) et de dbit (de 4 100 Mbits/s).
Enfin, le multiplexage des donnes vido et audio est plus gnral dans MPEG-2 que dans MPEG-1.
On dispose de plusieurs flux lmentaires : vido et audio bien sr, mais aussi des flux de donnes
comme des sous-titres en plusieurs langues. Bien d'autres diffrences minimes existent entre les deux
normes, et il serait trop long de toutes les numrer ici.
Au point de vue produits, la compression MPEG-2 est la porte de toutes les bourses : un microordinateur d'entre de gamme suffira, et vous pourrez trouver des logiciels gratuits (freeware) ou
partags (shareware) bon march (aux alentours de 30 euros) qui ralisent des compressions MPEG2 des bons niveaux de qualit. Pour des applications professionnelles et de la trs haute qualit,
comme la cration de DVD, comptez plutt de 100 600 euros pour un logiciel professionnel. On peut
aussi signaler que bon nombre de laboratoires universitaires proposent des encodeurs et dcodeurs
MPEG-2 gratuits.
MPEG-4
La norme MPEG-4 est enregistre l'ISO sous le code ISO/IEC 14496, et a t finalise dans sa
version 2 en 1999. La finalisation dfinitive est prvue pour fvrier 2002. Elle comporte sept parties,
toujours sur le mme schma des cinq parties semblables au MPEG-1 et MPEG-2, plus deux autres
parties composes d'extensions diverses. D'autres extensions sont encore attendues.
Les objectifs de cette norme sont assez nombreux et touchent de vastes domaines. En fait, MPEG-4 a
pour ambition de fusionner trois mondes : l'informatique, les tlcommunications et la tlvision. Cette
norme s'appuie sur les succs futurs de la tlvision numrique, des applications graphiques
interactives et du multimdia (web), son but tant d'assurer une standardisation technologique tous
les niveaux : production, distribution et diffusion. Ses domaines d'application sont immenses :
communication temps rel (visiophone), multimdia mobile, tlconfrence, post-production (cinma
et tlvision), stockage (DVD) et recherche d'informations base sur le contenu, etc.
Du coup, le principe de fonctionnement de MPEG-4 commence devenir bien plus complexe que
ceux de MPEG-1 et MPEG-2. Le MPEG-4 apprhende dsormais la vido selon une mthode
oriente objets : une scne devient alors une composition d'objets mdias hirarchiss, chaque objet
tant dcompos en diffrents paramtres. La norme n'en devient que plus interactive (accs aux
objets, manipulation, organisation). Enfin, le dernier point fort de MPEG-4 est sa flexibilit et son
volutivit.

La norme MPEG-4 propose donc une approche radicalement diffrente pour le codage des vidos, en
dcomposant chaque scne en plusieurs objets mdias hirarchiss. Ainsi, dans l'arborescence de
cette hirarchie, on trouve des images fixes (arrire-plan), des objets vido (objets en mouvement
sans arrire-plan) et des objets audio (la voix associe l'objet en mouvement). La figure 14 illustre le
schma de structure d'une scne MPEG-4. Cette approche objet permet alors de trs nombreuses
oprations sur une squence MPEG-4 : ajout, suppression ou dplacement d'un objet, transformation
gomtrique, changement de point de vue, etc. En bref, l'utilisateur interagit vraiment avec les objets
de la squence vido.

Figure 6 - Structure d'une scne MPEG-4

Cette approche objet ncessite la dfinition d'objets audiovisuels (AVO, pour Audio-Video Object), qui
peuvent tre soit des composants vido, soit des composants audio, soit les deux. Ainsi, une scne
audiovisuelle doit tre comprise comme la composition d'objets audiovisuels selon un script dcrivant
leurs relations spatiale et temporelle. Intressons-nous plus particulirement aux composants vido
(VOP, pour Video Object Plan). On retrouve alors les mcanismes de compression communs aux
normes MPEG, qui sont toutefois gnraliss ici aux VOP. Le codage des VOP se fait donc galement
grce une DCT qui peut tre adapte la forme de l'objet vido, suivie toujours de quantification,
codage RLE et codage de Huffman. On trouve galement des I-VOP (Intra-VOP), P-VOP (PredictedVOP) et B-VOP (Bidirectionnal-VOP) qui fonctionnent selon un procd similaire aux images I, P et B
de MPEG-1 et MPEG-2, ainsi que le mme principe de compensation de mouvement, le tout toutefois
avec des algorithmes bien plus puissants.
MPEG-4 est encore en dveloppement et ne s'est pas encore vraiment impose au regard de ses
ambitions. Concrtement, MPEG-4 apparat uniquement pour l'instant comme le standard de la
visioconfrence et du multimdia mobile, dans son profil bas (10 images/s, dbit infrieur 64
Kbits/s). MPEG-4 commence galement se faire un nom auprs du grand public, grce son
association au codec DivX;-) qui permet de stocker des films sur CD-ROM en qualit proche du DVD.

Figure 7 - Un systme de compression par compensation de mouvement

Mais comment calcule-t-on prcisment les vecteurs de dplacements ? La norme MPEG ne spcifie
pas comment faire la recherche, ni jusqu'o la faire, ni mme le seuil de ressemblance que l'on doit
atteindre. Chaque implmentation est libre de fixer ses paramtres et d'utiliser des algorithmes plus
ou moins performants. Trois grandes mthodes existent : la similitude de blocs (block matching), la
similitude de gradients (gradient matching) et la corrlation de phase (phase correlation).
La mthode par similitude de blocs est la plus courante et la plus simple comprendre. Dans une
image donne, un bloc de pixels est choisi et stock en mmoire. Si le bloc contient un objet en
mouvement, un bloc similaire doit exister dans une image suivante, mais pas la mme place.
Comme le montre la figure 10, on bouge simplement le bloc de rfrence autour de sa position initiale
dans la seconde image pour trouver les pixels similaires. Quant une similitude est juge acceptable, le
vecteur de dplacement correspond au dplacement entre le bloc de rfrence et le bloc similaire.

Figure 8 - Similitude de blocs : on bouge le bloc de rfrence la recherche d'un bloc similaire

Aussi simple que cette mthode a l'air, elle n'en est pas moins a priori trs gourmande en calculs,
cause du grand nombre de possibilits tester avant de tomber sur le bon bloc. Cependant, en
partant du principe qu'un objet en mouvement ne change pas de direction chaque image, on peut

rduire ces calculs en testant d'abord les blocs obtenus par les vecteurs de dplacements prcdents,
et en continuant ventuellement la recherche partir de l.
Les mthodes par similitude de gradients et par corrlation de phase sont autrement plus complexes
et ne seront pas dveloppes ici.
Le codage bidirectionnel
La technique de compensation de mouvement avec les images P est trs puissante, mais elle ne
rsout pas tous les problmes de la compression vido. En effet, dans les films, il y a beaucoup de
situations o cette technique choue lamentablement : considrons par exemple une scne o un
personnage ouvre une porte, il n'y aucun moyen de prdire les dtails de la pice qui se trouve
derrire la porte avec l'image prcdente o la porte tait ferme !

Figure 9 - Codage bidirectionnel : il peut tre plus efficace de chercher les donnes dans l'image
suivante que dans l'image prcdente

D'o l'utilit des images B (images bidirectionnelles) : elles ressemblent aux images P, mis part le
fait qu'elles permettent au bloc de rfrence de se trouver soit dans l'image prcdente soit dans
l'image suivante. Cela peut tre utile de se rfrer l'image suivante, comme l'illustre la figure 11.
Les images B peuvent se rfrer soit une image I soit une image P, mais jamais une autre image
B. Elles ne propagent donc pas, a priori, leurs propres erreurs. La figure 12 montre le fonctionnement
du codage bidirectionnel.

Figure 10 - Codage bidirectionnel : on peut insrer des images B entre des images I ou P

Le codage bidirectionnel est trs puissant. Par exemple, une squence IBBP consomme 60 % de bits
en moins qu'une squence IIII, pour une qualit quivalente. Cependant, l'encodage et le dcodage
d'une telle squence sont plus coteux en temps de traitement.
L'algorithme MPEG n'impose pas la frquence et la place des images-cls (images I). C'est au
codage que l'on choisit la frquence des images-cls. Par exemple, pour une application o l'accs
alatoire est important, une image-cl peut tre positionne toutes les demi-secondes. Le nombre
d'images prdites (images P et B) est aussi au choix de l'encodeur. Il dpend en fait souvent de la
puissance du dcodeur (mmoire), ainsi que des caractristiques du film (rapidit des plans).
A cause des images B, MPEG est oblig de changer l'ordre des images dans le flux vido. En effet, le
dcodeur serait dans l'incapacit de dcoder une image B sans avoir encore reu l'image de
rfrence si celle-ci se situe plus loin dans la squence vido. La figure 13 illustre ce principe. Ainsi,
chaque image de rfrence est dj dans le dcodeur pour permettre que le dcodage bidirectionnel
commence. On peut aussi noter que l'image I du prochain groupe d'images est envoye avant les
dernires images B du groupe d'images courant.

Figure 11 - Composition du flux vido

La figure 13 montre galement que la quantit de donnes requise par chaque image est diffrente.
Les images I, qui sont uniquement compresses spatialement, requirent beaucoup de donnes. Les
images P, cres par dplacement par rapport aux images I, ncessitent moins de donnes, tandis
que les images B sont celles qui sont le moins gourmandes en bits.

La partie systme
Il reste un problme que nous n'avons pas encore tudi. En effet, mme si cet expos se concentre
principalement sur la partie vido de la compression MPEG, n'oublions pas que les films comportent
la plupart du temps du son. Nous n'allons pas tudier la compression audio, sur laquelle il y aurait
beaucoup dire (MPEG est notamment l'origine du dsormais clbre format MP3). Vous trouverez
sur le web ou dans la littrature beaucoup de documentations sur la compression audio. Par contre, il
nous faut parler de la partie systme de MPEG, qui gre la synchronisation des deux flux vido et
audio.
La norme MPEG dfinit donc un mcanisme qui inclut deux paramtres : l'horloge de rfrence du
systme (SCR, pour System Clock Reference) et le marquage temporel (PTS, pour Presentation Time
Stamps). La valeur de ces paramtres et leur utilisation est quelque peu diffrente d'une norme MPEG
l'autre, mais le principe gnral reste le mme. Par exemple, dans MPEG-1, on utilise une horloge
systme cadence 90 kHz qui donne l'heure courante aux deux codeurs vido et audio. Ces valeurs
sont sur 33 bits, ce qui permet d'avoir des films qui durent 24 heures sans rebouclage de l'horloge.
Ces marqueurs temporels sont inclus dans les paquets de donnes codes et le destinataire les utilise
pour synchroniser les flux vido et audio la dcompression (voir figures 3 et 4).

Vous aimerez peut-être aussi