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.
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.
2
2.1
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.
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.
2.2
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.
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.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.
2.6
Ecriture du fichier
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 :
F IG . 2: En-tte du fichier
2.6.3
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
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 =
1
MN
PM
k=1
[x(k, l) x
(k, l)]
le PSNR :
P SN R = 10 log10
216
M SE
3.1
4.0.2
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.
sombre
90.4
normale
66.2
clair
91.1
nature
Taux de compression
sombre
75.3
normale
2.9
clair
74.7
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.
TAB . 4: PSNR
nature
PSNR
5
5.1
sombre
44.9
normale
33.4
clair
31.5
6 BILAN
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.
5.4
Conclusion
Seuil
> 30
25
< 20
Nombre de DWT
>3
2 ou 3
<2
Nombre de tuiles
1 ou 4
1 ou 4
16
10