Compression d'images par codage en sous-bandes
Nicolas Bonneel, Jean-Gabriel Prince
4
èmeannéeGMM,Insa Toulouse -Décembre2004Introduction
Lebut decesTPest d'appliquerlesconnaissancesacquisesentraitementdusignalàlacompression
d'images.L'imageest unematriced'indicesseréférantàunepalettedeniveaux degris(ontravailleici
avecledessind'Escher).Dansunpremiertempsonessayeraderestituerl'imageoriginalesanspertesen
laltrantàl'aidededierentsltres décritsplusloin. Puis,onessayeradediminuerlataille duchier
del'imaged'unfacteur 10sanstropaltérerlaqualitédel'image.
1 Etude de diérents ltres :
Leltrageestopérésurunsignalmono-dimensionnelquel'onobtiendraenconcatenantleslignesde
l'imageenunseulvecteur.
Remarque :
Latransforméeenzd'unltreestdénie
commmesuit :
H (z) = B(z A ( z − − 1 1 ) ) = a b 0 0 + + a b 1 1 z z − − 1 1 + + ... ... + + b a r q z z −r − q
1.1 Filtres passe-bas
1.1.1 Phase linéaire: RIF
PouravoirunltreRIF,il fautquelepolynome
A
soitdedegrénul(vuencours).Onaalorsunltredontlescoecientssuiventunefonctionsincsymétrique.LacommandeMatlab
qui donnelescoecientsdupolynomeBdeceltreest b=fir1(n,$W_n$),avec
W n lerapport entre la
fréquencedecoupureetlafréquencemaximaled'observationdusignal.
W nestunréelcomprisentre0et
1.
n
estledegrédupolynômeB
.Leltreseraditd'ordren.Danslatransforméeenz,leshautes fréquencescorrespondentauxpetitsdétailstandisquelesbasses
fréquences donnent l'allure générale de l'image.Ainsi, un ltrepasse-bas laissant passer lesbasses fré-
quences et supprimant leshautes fréquencesdonc lesdétails, vaouter l'image.En revanche, un ltre
passe-hautauratendanceàdevoilerlesdétailsdel'imagedonnantlasensationqu'elleestplusnette.
Ons'interesseiciaultrepasse-bas.
Voicilecodematlabutilisé:
>> b=fir1(n,Wn);
>> x=reshape(IM,1,size(IM,1)*size(IM,2));
>> x=double(x);
>> y=filter(b,1,x);
>> image(yfinal);
Résultat :"
100 200 300 400 500 600
50
100
150
200
250
300
350
100 200 300 400 500 600
50
100
150
200
250
300
350
image initiale image ltréeavecn=20etWn=0.01
L'eetobtenuparceltreestunoutagedel'image.
Onremarquequeplusn estgrand,pluslepolynomereprésentantleltreestprécis,i.e.si
W n estpetit
ilfaudraunpolynomededegréélevépourréussiràobtenirleouvoulu.
Onremarqueaussiundecalageverticaldel'imagequel'onexpliquera etcorrigeraparlasuite.
1.1.2 Phase nonlinéaire :Butterworth
Danslecas dultredeButterworth,A n'estplusconstant,onadoncunltreàréponseimpulsion-
nelleinnie.
CommandeMatlabutiliséepourl'obtentiondeAetB:
[B,A]=butter(n,Wn);
Résultat:
100 200 300 400 500 600
50
100
150
200
250
300
350
100 200 300 400 500 600
50
100
150
200
250
300
350
imageinitiale imageltréeavecn=20et Wn=0.1
1.2 Filtres passe-haut à phase linéaire
Le ltre passe-haut est un ltre laissant passer les hautes fréquences et supprimant les basses fré-
quences.Ongénèrelescoecientsdeceltreàl'aidedelacommandefir1(n,Wn,'high').
Onobtientainsiuneimageplusnette,oùlesélémentstropsgrosontétésupprimésetoùseulslesdétails
restentprésents.AvecWn=0.1etn=20,onobtient:
100 200 300 400 500 600 50
100
150
200
250
300
350
100 200 300 400 500 600
50
100
150
200
250
300
350
image initiale image ltréeavecn=20etWn=0.1
Plus on diminue Wn, plus on laisse passer d'information, et donc plus l'image ressemble à l'image
originale.
En revanche, si on augmente Wn, on ne voit plus que les contours. De plus l'image s'assombrit
de plus en plus, ce qui sera corrigé en augmentant le contraste et la luminosité de telle sorte que
les indices restent entre 0 et 255. Pour cela, on change les couleurs par la commande Matlab :
y = (y − min(y))/(max(y) − min(y)) ∗ 255;
,puisonmodielecontraste:onmetà0endessousd'uncertainseuil(disons127parexemple)et 255audessusdeceseuil:
y = (y > 127) ∗ 255;
.Onobtientlesrésultatssuivants:
100 200 300 400 500 600
50
100
150
200
250
300
350
100 200 300 400 500 600
50
100
150
200
250
300
350
image ltréeavecn=20etWn=0.15 image ltréeaveccorrectiondescouleurs
Ondétermineennle kpourcorriger ledécalageverticaldel'image.On obtientdansce cas11.On
sait doncque l'image a été décalée de 11 pixels verticalement. On opère doncà la translation inverse
pourobtenirl'imagenale:
100 200 300 400 500 600
50
100
150
200
250
300
350
image ltréeaveccorrectiondescouleurset dudecalage
1.3 Décimation-interpolation
Ladécimationconsisteàsupprimerunpixelsurdeuxdel'image.L'interpolationconsisteàintercaler
entrechaquepixelunpixelnoir(devaleurégaleà0).Danslecasprésent,nouseectuonsunedécimation
suivieimmédiatementd'uneinterpolation,cequirevientàremplacerunpixelsurdeuxparunpixelnoir.
L'imageobtenueaprèscesdeux opérationest uneimagedemêmetaillerayéeverticalementdenoir.
On applique ensuite un ltre passe-bas. Comme ce ltre élimine les hautes fréquences, et qu'une
rayurenoired'unseulpixelestunélémentdehautefréquence,touteslesrayuressontsuppriméesetl'on
obtient l'image originale,plus sombrepuisque l'énergie totale de l'image aété divisée par deux, et un
peuplusoue(lesautresdétails dehautefréquenceontétéaussisupprimés).Onpeutalorsréajusterla
255,ressemblantplusàl'imageoriginale.
Ons'aperçoit quecette opérationnous apermis dediviser pardeux la taille de l'image(puisqu'un
pixelsur deuxest noir,cespixels n'ontpasbesoind'être stockés),sanstropperdrede qualité: ils'agit
d'unecompressionunpeunaïveetpeuecacemaisqu'onpourraaméliorerenitérantcesopération.
Conclusion de la partie 1
Nous avons pu programmer une compression avec perte d'information mais de qualité honorable,
permettantdediviserpardeux lenombred'informationsàstocker.Cettecompressionutilisantunltre
passe-baschargéd'éliminerlespixelsnoirsinsérés,elleéliminetouslesdétails d'unseulpixel.
2 Banc de ltres et reconstruction parfaite
2.1 Principe
Leprincipequenousallonsmettreenoeuvreestdedécomposerl'imageen2domainesdefréquences
rendantl'imageparfaitementreconstructibleàpartirdes2sous-images.L'opérationdeltragepasse-haut
et passe-bas doublant levolume d'informations,on pourraeectuer une décimation-interpolation pour
garderlemême nombred'informationsquedansl'imageinitiale.Cettereconstructionseraparfaite sous
laseuleconditionquelesltres
H 0 etH 1 (lesltrespassebasetpassehautinitiaux)soientcomplémen-
taires,c'estàdire:
G 0 = (z) = H 1 (−z) G 1 (z) = −H 0 (−z)
H 0 (z)G 0 (z) + H 1 (z)G 1 (z) = Cz − k
(1)
Lesignaldesortiey seraalorségalausignald'entrée x,àunretardk etunfacteur d'amplication
C
2
près.Onaunbancdeltreàreconstitutionparfaite,c'est àdiresanscompression.2.2 Décomposition de l'image
Puisque noussommes en2D, nousallonsdiviserl'imageen4parties. Nousobtiendronsàlanune
imageglobaledemêmetaillequ'audébutcomposéede4petitesimages.Notrebutestdeconserverleplus
d'informationpossible dansl'une des 4et queles autres encontiennent peu. Nous noteronsces images
commesuit:
x 00 x 01
x 10 x 11
Le banc de ltre utilisé comporte 2 couplesde ltres, tousde types RIF, l'un passe-bas
H 0 et son
complémentaire
H 1unpasse-haut,ainsiqu'unpasse-bas:G 0etunautrepasse-haut:G 1.Onapliquele
G 1.Onapliquele
schémavuenTPetonobtient:
x 00 ,qui asubideuxltragespasse-bas,l'unsurseslignes,l'autressur sescolonnes.N'ayantsubi
quedespasse-bas,cetteimage restetrès prochevisuellementdel'imageinitiale.
x 01,quiasubiunpasse-bassurleslignesetunpasse-haut surlescolonnes.Ellenousdonne donc
l'information,manquanteà
x 00,descontourssurlescolonnes.
x 10 oùonaeectuélemêmetraitementquepourx 01 maissurleslignes.
x 11 n'asubiquedespasse-haut,elleestdonclapluséloignéevisuellementdel'imagedebase.Elle garde de l'information sur les contours mal traités par lesdeux précédentes, commeles contours
diagonauxparexemple.
Chaquesous image aété décimée deux fois, lapremière lorsdu ltrage sur les lignes, puislors du
ltragesurlescolonnes.Chaquesousimageadonc4foismoinsd'informationquel'imageinitiale,et on
retrouvedonclamêmeinformationenlesajoutantpourobtenirl'imagenale.
200 400 600 800 1000 1200 50
100
150
200
250
300
350
Visualisationdesquatresous-images
On voitquechacunedessous-imagesaundécalageverticalet horizontal: pourconnaitrelenombre
exactde pixels, onpeut appliquer lesltres utilisés àun diracmonodimensionnel,et ainsi observerla
réponse impulsionnelle,etdonclenombredepixelsdontcelle-ciest décalée.
Onaaussidûappliquerune transformationanepour3dessous-images(toutessauf
x 0 0
)an quelesvaleursdespixelssoientcomprisesentre0et255.
2.3 Recomposition de l'image
On reconstruit ensuite lesignal original en appliquant lesltres
G 0 et G 1 sur les colonnes puis les
lignes(=dansl'ordreinverse desltres
H 0 etH 1).Ces ltresnousdonnentune reconstructionparfaite
dumomentoùilsverientlarelationdecomplémentaritévueprécédemment.
Onvériecela encalculantl'erreurentrel'imageoriginaleet l'imagereconstruite: onobtientalorsune
erreurdel'ordreduzéromachine,ce quiconrmequ'iln'yapasdepertesd'informations.
Parailleurs,onaaussiappliquélesltres
H 0etG 0àundiracmonodimensionnel,etonaainsipuobserver
que le maximumdu signalobservé aété translatéde 23 pixels par rapport au maximum dudirac (en
x=0).
Conclusion de la partie 2
Lestransformationsappliquéesànotreimageapermisdeladécomposerensousimagesdontcertaines
comportaientdel'informationfacilementcompressiblepardesalgorithmescommegzip.C'estcequel'on
feraparlasuiteenitérantcestransformations.
3 Compression des images
3.1 Principe
Onitèresurlapremièreimage
x 00ladécompositionenimageshautesetbassesfréquences.Lesimages bassesfréquencescontiendrontbeaucoupdevaleurssemblablesetleshautesfréquencesbeaucoupdezéros
(àmoinsd'avoiruneimageextremementbruitée,cequin'estpaslecasici!)etserontdoncdéjàfacilement
compressiblespargzip(eneet,gzipidentielessuitesd'élémentsconsécutifségauxpourlesréduireà2
éléments:lavaleur,et lenombredefoisoùelleest répétée).
De plus, les images
x i 00 contiennent l'essentiel de l'information visuelle (moyenne de l'imageet faibles variations)donconnelaquantierapasmaisonitéreralesdecompositionssurelles.
C'estdonclesimageshautesfréquencesquel'onessairadequantierlepluspourlesrendreplusfacilement
compressiblespargzip.Lesimages
x 01etx 10contiennentlesdétailshorizontauxouverticaux,tandisque
x 11contientlesdetailsàlafoisverticauxethorizontaux(doncdiagonaux)puisqu'ilasubitunpasse-haut danslesdeuxdirections.
3.2 Résultats : Optimisation d'un facteur 10
Onchercheàobtenirunfacteurdecompressionde10(rapportentrel'imagedirectementcompressée
pargzip,etl'ensembledessousimagessauvegardépuiscompresséavecgzip).Pourcela,onseeraàun
correcte.
Lescoecientsretenuspourlaquanticationdechaquesousimagesont:
q=[1 800 800 300; 1 200 200 150; 1 100 100 50; 1 35 35 12]
Onobtientainsiuneerreurrelatived'environ17%encomparantl'imagecompresséeetl'imageorigi-
nale,doncune pertede17%d'informations.
Résultatquantitatifdelacompression:
-rw-r--r-- 1 jgprince etud_apo 25032 Dec 16 18:25 compresse.mat.gz
-rw-r--r-- 1 jgprince etud_apo 242664 Dec 3 15:53 escher.mat.gz
-rw-r--r-- 1 jgprince etud_apo 72984 Dec 16 20:33 escher.jpg
soitunrapportde1/10environ(meilleurqu'unjpgsanspertes...).
Conclusion
AucoursdeceTP,nousavonsdansunpremiertempsétudiédiérentsltres:passe-bas,passe-haut,
àphaselinéaireounon,... etobservéleurseetssurdessignauxmonodimensionnels.
Puisonaappliquéunbancdeltreànotreimage,signalbidimensionnel,aucoursdelasecondepartie.
Enn, onapuobserverleseetsqualitatif etquantitatifsd'unecompression d'image.Lebut, arriverà
unebonnecompression(facteur10)sanstropaltérerlaqualité visuelledel'imageaétéatteint.