Anda di halaman 1dari 10

Projet de synthse I2 Traitement de limage

Compression
Sbastien FRANOIS, Yvonnick BRUNET
avril 2006
(http://seb.france.free.fr/eseo/I2-TST/traitement-dimage/)

Rsum Le but de ce projet est de dcouvrir le fonctionnement dun systme complet de compression dimages, par ralisation des diffrentes
tapes par simulation sur Matlab. La compression mise en oeuvre est un hybride entre les normes JPEG et JPEG2000.

2 DESCRIPTIONS DES DIFFRENTES TAPES DE LA COMPRESSION

Introduction

Le projet de traitement numrique de limage propos en spcialit traitement du signal concerne la mise au point dune
technique de compression dune image couleur.

de manire exprimentale, tout fait deviner le contenu dune


image en ne visualisant quun seul des plans RGB.
Il existe dautres espaces dans lesquels la rpartition se fait en
terme de luminosit et de couleurs par exemple. Cest le cas de
lespace YCbCr, notamment utilis dans le codage des couleurs
des systmes de tlvision.

Il met en uvre des processus spcifiques au traitement dimage,


tels que le changement despace de couleurs, le filtrage (transformation en ondelettes), mais aussi des notions beaucoup plus
gnrales telles que la quantification, le seuillage, le codage
DPCM, le sous-chantillonnage.
Le systme permettra la compression et la dcompression des
images, de manire pouvoir valuer la qualit de la compression par des critres mathmatiques tels que la puissance du
rapport signal sur bruit, le taux de compression ou bien lerreur
quadratique moyenne.

F IG . 1: Espaces de couleur RGB et YCbCr

2
2.1

Descriptions des diffrentes tapes de


la compression
Dcomposition en tuiles

La compression peut tirer partie du fait quune image naturelle


comporte en gnral des zones distinctes, par exemple dans
le cas dun paysage, il y a souvent une zone non ngligeable
et homogne forme par le ciel. Un simple dcoupage en tuiles de limage permet damliorer le taux de compression, car
lalgorithme est appliqu sur chaque tuile individuellement. Ces
tuiles peuvent alors ensuite tre plus ou moins compresses en
fonction de leur contenu.

En effet, en dcoupant une image en plusieurs tuiles, on augmente la probabilit quune ou plusieurs de ces tuiles aient un
contenu uniforme. Si la tuile traiter est uniforme, la majeure partie de linformation visuelle est transmise dans les
composantes basses frquences. Celles-ci pourront tre compresses trs efficacement par un codage tenant compte des
ressemblances entre des pixels adjacents.
Lensemble des tapes qui suivent seront alors appliques
chaque tuile.

Y est une composante de luminance tandis que Cb et Cr sont


dites de chrominance et forment linformation de couleur de
limage. La composante Y supporte lessentiel de linformation
de limage. On assimile son contenu une image noir et blanc
quivalente (ce qui permettait lpoque une rtrocompabilit
avec les postes de tlvision noir et blanc).
Cette transformation permet une compression plus efficace car
linformation est principalement condense dans le plan Y, on
peut donc compresser plus efficacement Cb et Cr.

Nous avons cr les fonctions suivantes :


rgbversycbcr

ycbcrversrgb

Variable dentre :
RGB: Image RGB de classe double.
Variable de sortie :
YCBCR: Image YCbCr de classe double.
Variable dentre :
YCBCR: Image YCbCr double.
Variable de sortie :
RGB: Image RGB double.

Par la suite chaque plan est trait individuellement.

Dans le cadre de cette tude, nous avons limit le nombre de


tuiles aux valeurs suivantes : [ 1, 4, 16, 64 ] (puissances paires
de 2).

2.2

Transformation intercomposante RGB vers


YCbCr

La reprsentation la plus courante dune image en informatique


est le RGB24, cest un espace dans lequel chaque composante
est une couleur primaire Rouge, Vert et Bleu. Chaque composante est quantifie sur 8 bits, un pixel est donc dfini sur 24
bits (ou 24bpp). La couleur dun pixel est produite par synthse
additive des diffrentes composantes pondres.
Cependant, dans cet espace linformation est rpartie de manire
relativement gale sur lensemble des plans. On peut en gnral,

2 DESCRIPTIONS DES DIFFRENTES TAPES DE LA COMPRESSION

2.3

Transformation en ondelettes

La transforme en ondelettes permet, par lutilisation dun couple de filtres appliqus successivement, de sparer les bandes
de frquences dun plan.
Le calcul dune transforme en ondelettes introduit un souschantillonnage.
Nous avons utilis londelette de Haar qui correspond au couple de filtres [1,1] et [1,-1].
La transformation en ondelettes seffectue de la manire suivante :
1. filtrage horizontal passe-bas [1,1],
avec sous-chantillonnage par 2, forme le plan L
2. filtrage horizontal passe-haut [1,-1],
avec sous-chantillonnage par 2, forme le plan H
3. filtrage vertical passe-bas et passe-haut sur ces nouveaux
plans avec sous-chantillonnage par 2,
forme les plans LL, HL, LH et HH
Les 4 plans ainsi obtenus reprsentent : les basses frquences
pour LL, les dtails horizontaux pour LH, les dtails verticaux
pour HL ainsi que les dtails diagonaux pour HH. Dans le cas
dun niveau de transforme en ondelettes suprieur 1, on applique de nouveau cet algorithme sur le plan LL.
Nous avons cr les fonctions suivantes :
imgdwt

iimgdwt

Variables dentre :
X: Plan traiter double.
nom_ondelette: Ondelette chane.
Variables de sortie :
LL: Plan "passe-bas" double.
HL: Plan dtails "verticaux" double.
LH: Plan dtails "horizontaux" double.
HH: Plan dtails "diagonaux" double.
Variables dentre :
LL: Plan "passe-bas" double.
HL: Plan dtails "verticaux" double.
LH: Plan dtails "horizontaux" double.
HH: Plan dtails "diagonaux" double.
nom_ondelette: Ondelette chane.
Variable de sortie :
YCBCR: Image YCbCr de classe double.

alors transmise, et le gain de cette solution repose sur le fait que


lon peut de manire gnrale coder cette erreur sur un nombre
bien infrieur de bits par pixel.
Il existe des versions du codeur plus complexes, dans lesquelles
le pixel nest pas cod en fonction de la valeur de ses voisins
mais des valeurs dcodes de ses voisins. Ceci implique de
simuler le fonctionnement du dcodeur dans la boucle. Ici nous
avons choisi de nutiliser quun codeur simple. Il suffit alors
simplement de transmettre le plan derreur et le prdicteur qui
a servi au codage.
Nous avons utilis le prdicteur et les fonctions suivantes :
1/4
1/4

dpcm

idpcm

1/4
X

1/4

Variable dentre :
X: Plan traiter double.
predicteur: Matrice du prdicteur entier[4].
Variable de sortie :
X_DPCM: Plan erreur double.
Variable dentre :
X: Plan erreur double.
predicteur: Matrice du prdicteur entier[4].
Variable de sortie :
XPRIM: Plan dcod double.

2.5 Quantification scalaire et seuillage


Les plans contenant des frquences plus leves HLn, LHn et
HHn sont quantifis par extension des valeurs sur 16 bits (
laide dun coefficient multiplicatif de mise lchelle), les
valeurs sont ensuite seuilles. Celles infrieures en valeur absolue au seuil sont mises zro.
Nous avons cr les fonctions suivantes :
quantificationHF

Les plans sont ensuite traits de manires diffrentes :


le dernier plan LL subit un codage DPCM, tandis que les plans
HLn, LHn et HHn sont quantifis puis seuills.

2.4

Codage DPCM

Le codage Differential Pulse Code Modulation permet de compresser de manire intelligente un plan comportant des valeurs
homognes.
On considre ici que dans le plan LL (linformation homogne
de limage), la valeur dun pixel est fortement corrle celles
de ses voisins pass au travers dun prdicteur. Le prdicteur
est une simple matrice de coefficients permettant de pondrer
les pixels voisins du pixel coder.
Lerreur obtenue entre le plan dorigine et le plan prdit est

iquantificationHF

Variables dentre :
X: Plan traiter double.
seuil: Pourcentage du seuil entier.
Variables de sortie :
X_quantifie: Plan trait double.
delta: Coefficients double.
Variables dentre :
YCBCR: Image YCbCr double.
Variables de sortie :
RGB: Image RGB double.

Les donnes sont maintenant prtes tre transformes en un


train binaire.

2 DESCRIPTIONS DES DIFFRENTES TAPES DE LA COMPRESSION

2.6

Ecriture du fichier

Les valeurs sont crites dans un fichier par la fonction save de


Matlab, celles-ci seront au format entier sign sur 16 bits.
2.6.1

En-tte

Pour recrer limage, les fonctions de dcompression ont besoin de connatre ces diffrents paramtres : les dimensions
dune tuile, le nombre de tuiles utilises, la profondeur de transformation en ondelettes, les coefficients de la quantification
ainsi que le prdicteur du codage DPCM.
On transmet linverse de chaque coefficient du prdicteur, car
le format des donnes du fichier est sur 16 bits, or les coefficients de pondration ne sont pas des entiers mais des fractions
(ici 1/4).

2.6.2

Donnes de limage

Le reste de la structure tait impos dans le guide du miniprojet : pour chacune des tuiles, on transmet les plans dans
lordre Y, Cb, Cr, avec en premier la composante LL, puis
HLn+1, LHn+1, HHn+1, puis HLn, LHn, HHn. Corps du
fichier :

Nous avons choisi de rpartir les informations de la manire


suivante :
En-tte :

F IG . 3: Enregistrement des plans

F IG . 2: En-tte du fichier

4 INTERPRTATION DES RSULTATS

2.6.3

Codage RLE et Huffman

Le train de donnes ainsi constitu de len-tte et des donnes


passe ensuite par une compression RLE suivie dune compression dalgorithme dit de Huffman.

la proportion de coefficients nuls dans limage quantifie


TZ =

N bre de zeros contenus dans l0 image


N bre de bits total

le taux de compression :
Le codage Run Length Encoding permet de compresser efficacement les rptitions de valeurs dans un train de donnes.
Il remplace les squences de rptition par la valeur et le nombre doccurences de celles-ci. Ce systme est trs efficace par
exemple sur les zones uniformes de notre image, car le seuillage et le codage prdictif permettent de crer dimportantes
squences de zros, et celles-ci peuvent tre remplaces par
une squence RLE quivalente qui ne ncessite que quelques
octets.
Le codage Huffman est une approche diffrente : ici le train est
analys dans son ensemble et lon ralise des statistiques sur les
frquences dapparitions des diffrentes valeurs. On cherche
exprimer sur un nombre de bits minimum les valeurs revenant
le plus rgulirement, pour ce faire lalgorithme cre un arbre
qui permet une lecture unique des donnes codes et ce malgr
que le codage des donnes se fasse longueur variable.
Ici nous avons fait appel de simples excutables externes pour
assurer le codage et le dcodage.

2.7

Dcompression

La dcompression seffectue de manire symtrique, selon les


tapes suivantes :
1.
2.
3.
4.
5.

Dcodage Huffman
Dcodage RLE
Recration de limage LL code par DPCM
Dquantification des plans HL, LH et HH
Transformation en ondelettes inverse
Lors de la dcompression, la transformation inverse est
exactement symtrique, le sous-chantillonnage est remplac par des insertions de valeurs nulles (zero-padding).

T DC =

N bre de bits avant compression


N bre de bits aprs compression

lerreur quadratique moyenne(MSE) :


M SE =

1
MN

PM

k=1

[x(k, l) x
(k, l)]

le PSNR :
P SN R = 10 log10

216
M SE

4 Interprtation des rsultats


4.0.1 Influence du seuil
Nous avons choisi diffrentes images prises dans des scnes
courantes (paysage, plage, montagne). Nous avons fix tous les
paramtres except le seuil de quantification, le faisant varier
de 10 (bonne qualit) 100 (compression maximum) avec un
pas de 10.
Taux de zros et taux de compression
Si on augmente le seuil, on peut prdire quil y aura un
nombre de zros croissant dans limage. Plus nous avons
de squences identiques dans une image et plus les algorithmes de Huffman et RLE seront performants.

Evaluation des rsultats obtenus

3.1

Critres danalyses des rsultats

Aprs avoir raliser la compression et la dcompression dune


image RVB, nous devons nous assurer de la fiabilit des mthodes employes. Pour cela, nous avons fait plusieurs tests qui
prdisent la qualit de la compression.
Plusieurs paramtres sont pris en compte parmi lesquels :

le paramtre de qualit (seuil de quantification)


le choix du nombre de transformer en ondelettes(DWT)
le nombre de tuiles
la nature de limage.

F IG . 4: Taux de zros en fonction du seuil de quantification

On utilise des critres objectifs qui conditionnent la qualit


et la pertinence de la compression de limage. Quatre critres
sont choisis parmi lesquels :
5

4 INTERPRTATION DES RSULTATS

Le PSNR est un critre objectif, donnant une ide de la


qualit de limage compresse par rapport celle dorigine.
Plus il est lev, plus limage compresse est proche de
limage source.

F IG . 5: Taux de compression en fonction du seuil de quantification


Les allures des 2 courbes ci-dessus sont quasiment identiques. En effet, lorsque le seuil de quantification augmente, des squences de zros sont cres, donc le taux
de zro augmente aussi, ce qui a pour consquence laugmentation
du taux de compression. La prdiction faite et le rsultat
F IG . 7: PSNR en fonction du seuil de quantification
obtenu sont en corrlation avec ce que nous attendions.
Le PSNR dcrot donc lorsque le seuil augmente.
Erreur quadratique moyenne
Lerreur quadratique moyenne (MSE) indique la diffrence
entre limage de dpart et limage aprs la compression.
Plus le seuil est lev, plus lerreur est grande.

Conclusion sur le seuil


Le seuil est le facteur primordial dans la qualit de limage
compresse. Pour une valeur de seuil comprise entre 20
et 30, on obtient un bon compromis entre la qualit de
limage et le taux de compression. Si lon souhaite que
le fichier compress soit petit, il faut augmenter le seuil.

F IG . 6: Erreur Quadratique en fonction du seuil de quantification


Lorsque le seuil est faible, le MSE lui est proprotionnel
et lerreur est ngligeable. Puis le MSE se stabilise un
certain seuil.
PSNR
6

4 INTERPRTATION DES RSULTATS

4.0.2

Influence du nombre de transformes en ondelettes(DWT)

Nous avons fix tous les paramtres except le nombre de transformes en ondelettes (DWT), le faisant varier de 1 4 avec un
pas de 1. De cette manire, on peut apercevoir linfluence de la
profondeur de DWT sur la compression de limage.
Taux de zro et de compression
De mme que pour le seuil, plus on augmente le nombre
de transformes en ondelettes, plus les taux de compression et de zros augmentent.
Erreur quadratique moyenne
Les valeurs des pixels de limage compresse sont de
plus en plus altres lorsque le nombre de DWT augmente.

F IG . 9: PSNR en fonction du nombre de DWT


4.0.3 Influence du nombre de tuiles
Nous avons fix lensemble des paramtres except le nombre
de tuiles, le faisant varier de 1 64. On dcoupe limage en
plusieurs tuiles, qui sont traites individuellement, et ce dans le
but doptimiser la quantification en lappliquant sur des zones
plus uniformes.
Taux de zros et taux de compression

F IG . 8: Erreur Quadratique en fonction du nombre de DWT


Jusquau niveau de 3 transformes en ondelettes, lerreur
entre limage dorigine et celle aprs compression augmente faiblement. Cependant lorsque lon passe 4,
lerreur est au minimum triple.
PSNR
Pour lensemble de ces images, plus on augmente le nombre de DWT et plus limage se dgrade pour un seuil
donn.

F IG . 10: Taux de zros en fonction du nombre de tuiles

Conclusion sur le nombre de DWT


Pour un nombre de DWT de 2 ou 3, la qualit et le taux
de compression de limage sont corrects.

4 INTERPRTATION DES RSULTATS

F IG . 11: Taux de compression en fonction du nombre de tuiles


Sur les images que nous avons utilises, le gain apport
par un dcoupage en tuiles na pas t rellement manifeste, le dcoupage a mme eu plus tendance alourdir
le fichier compress en baissant le taux de zros dans
limage. Ceci est d au fait quaucune des tuiles de nos
images ntait rellement tendance uniforme.
Erreur quadratique moyenne
Grce la mesure de MSE, on observe que plus limage
est dcoupe en un nombre important de tuiles, et plus
lerreur entre limage dorigine et celle compresse est
faible.

F IG . 13: PSNR en fonction du nombre de tuiles


Conclusion sur le nombre de tuiles
Pour des paramtres fixes, un dcoupage en tuiles permet
de conserver une meilleure qualit dimage, mais dans
notre cas, ceci est principalement d au fait que la compression na pas t optimise par le dcoupage, car les
fichiers rsultants sont plus volumineux. Il semble donc
normal que la qualit de leur image soit plus leve.

4.0.4 Influence de la nature de limage


La manipulation consiste dterminer linfluence de la nature
de limage. Nous avons slectionn 3 images diffrentes : la
premire est plutt une photo avec des valeurs relativement
proches les unes des autres, la seconde est une photo normale
de paysage et enfin la dernire est trs contraste (cest--dire
avec des carts de valeurs levs).
Taux de zro et taux de compression
Les algorithmes de compression sont plus performants
lorsque les zones sont homognes.
TAB . 1: Taux de zros
nature
Taux de Zros

sombre
90.4

normale
66.2

clair
91.1

TAB . 2: Taux de compression


F IG . 12: Erreur Quadratique en fonction du nombre de tuiles
PSNR
Lobservation du PSNR nous amne la mme conclusion.

nature
Taux de compression

sombre
75.3

normale
2.9

clair
74.7

Le nombre de zros ainsi que le taux de compression sont


meilleurs pour une photo aux valeurs proches.

5 CORRLATION ENTRE LES DIFFRENTS CRITRES OBJECTIFS

Erreur quadratique moyenne


Les rsultats sont trs diffrents : lerreur est minimale
pour limage homogne, tandis quelle est trs leve
pour limage fortement contraste.

5.2 Relations PSNR / Taux de zros et PSNR /


Taux de compression

TAB . 3: Erreur quadratique


nature
Erreur quadratique

sombre
2.1

On peut constater que ces deux mesures sont proportionnelles. Plus limage a de zros et meilleur est le taux de compression, et ce indpendamment des autres rglages.

normale
30.1

clair
46.3

Le PSNR permet dvaluer la ressemblance entre limage originale et celle compresse, plus il est fort et plus les images sont
proches. A linverse, un faible PSNR indique quune partie de
linformation de limage est perdue.

PSNR
Plus limage a des valeurs proches les unes des autres et
plus sa restitution est fidle.

5.3 Influence du seuil et du nombre de tuiles


PSNR en fonction du Taux de zros

TAB . 4: PSNR
nature
PSNR

5
5.1

sombre
44.9

normale
33.4

clair
31.5

Corrlation entre les diffrents critres


objectifs
Relations entre le taux de compression et le
Taux de zros

On sait que le nombre de zros et le taux de compression sont


intimement lis, car notre technique repose en grande partie
sur la cration de zones importantes de zros grce au codage
DPCM et la quantification.
Pour pouvoir mieux apprcier le lien entre ces deux mesures,
nous avons trac la courbe liant ces deux paramtres.

F IG . 15: PSNR en fonction du nombre de zros dans limage

F IG . 14: Taux de compression en fonction du nombre de zros


dans limage

6 BILAN

PSNR en fonction du Taux de compression

6 Bilan
Nous avons beaucoup apprci de pouvoir travailler notre
rythme, en reconstruisant progressivement la chane de compression / dcompression, tout en testant au fur-et--mesure de
lajout de nouveaux blocs.
Nous avons aussi pu dcouvrir en dtails le fonctionnement
de la transformation en ondelettes, du codage DPCM et de la
quantification. Ce mini-projet nous a permis de pouvoir prendre en main correctement Matlab et de nous familiariser avec
les problmes que pose la reprsentation dimages sur informatique.
Enfin, nous avons pu revenir de manire concrte sur le cours
de traitement dimage, en approfondissant les notions qui y
avaient t abordes.

F IG . 16: PSNR en fonction du Taux de compression


Lexamen du PSNR nous confirme que plus limage est compresse, plus elle sloigne de limage dorigine.

5.4

Conclusion

Les rsultats de la compression dpendent en grande partie des


rglages des diffrents niveaux de la chane, ceux-ci peuvent
tre fixs selon lutilisation de limage.

Pour compresser une image en utilisant notre programme,


nous avons retenu les paramtres suivants :
Qualit
Basse
Moyenne
Haute

Seuil
> 30
25
< 20

Nombre de DWT
>3
2 ou 3
<2

Nombre de tuiles
1 ou 4
1 ou 4
16

10

Anda mungkin juga menyukai