Algorithmes de compression d'images et quadtree - Ensiwiki
Algorithmes de compression d'images et quadtree - Ensiwiki
Algorithmes de compression d'images et quadtree - Ensiwiki
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Algorithmes</strong> <strong>de</strong> <strong>compression</strong><br />
<strong>d'images</strong> <strong>et</strong> <strong>quadtree</strong>
Plan<br />
●<br />
●<br />
●<br />
●<br />
●<br />
Nouveaux enjeux <strong>de</strong> la <strong>compression</strong> d'image<br />
Transformée en on<strong>de</strong>l<strong>et</strong>tes<br />
L'algorithme EZW<br />
L'algorithme EBCOT<br />
Comparaison
Nouveaux enjeux <strong>de</strong> la<br />
<strong>compression</strong> d'image<br />
●<br />
●<br />
●<br />
●<br />
●<br />
Meilleur taux <strong>de</strong> <strong>compression</strong><br />
Scalabilité : déco<strong>de</strong>r le <strong>de</strong>but du fichier déco<strong>de</strong><br />
toute l'image mais en faible qualité<br />
Region d'intérêt : certaines zones <strong>de</strong>vraient<br />
être moins compréssés<br />
Navigabilité<br />
Resistance aux erreurs
Transformée en on<strong>de</strong>l<strong>et</strong>tes<br />
continues<br />
● La transformée <strong>de</strong> Fourier a <strong>de</strong>s faiblesses :<br />
trop concentrés sur le contenu fréquentiel d'un<br />
signal<br />
● Nécéssité d'une nouvelle transformée :<br />
transformée en on<strong>de</strong>l<strong>et</strong>tes.<br />
●<br />
Les coefficients renseignent sur le contenu<br />
fréquentiel ET sur le moment où la fréquence<br />
apparaît
Transformée en on<strong>de</strong>l<strong>et</strong>tes<br />
discrètes<br />
● Base <strong>de</strong> Haar (non normalisé) :<br />
●<br />
La T.O. Discrète revient à un changement <strong>de</strong><br />
base
Algorithme iteratif
Algorithme iteratif<br />
=>
Exemple
Algorithme EZW : <strong>quadtree</strong>
Algorithme EZW : <strong>quadtree</strong>
Principe <strong>de</strong> l'algorithme EZW<br />
●<br />
●<br />
On choisit un seuil T<br />
On co<strong>de</strong> l'arbre en élaguant les noeuds<br />
insignifiant( < T) <strong>et</strong> dont la <strong>de</strong>scendance est<br />
insignifiante<br />
– On co<strong>de</strong>ra avec les symboles POS, NEG, IZ, ZTR<br />
●<br />
●<br />
On affine les coefficients déjà codés afin d'avoir<br />
une précision <strong>de</strong> T/2<br />
On recommence avec T = T/2, <strong>et</strong>c..
Différences entre les<br />
implémentations(1/2) :<br />
Codage <strong>de</strong>s symboles<br />
● Implémentation <strong>de</strong>s chercheurs :<br />
– POS → 0111 ; NEG → 011 ; IZ → 01 ; ZTR→1<br />
– Pas <strong>de</strong> codage <strong>de</strong>s longueurs mais utilisation<br />
d'un symbole séparateur 1111<br />
● Mon implémentation :<br />
– POS → 00 ; NEG → 01 ; IZ → 10 ; ZTR → 11<br />
– Codage <strong>de</strong>s longueurs avant chaque passe
Différence entre les<br />
implémentations(2/2) :<br />
Normalisation<br />
● Mon implémentation :<br />
– Normalisation L¹<br />
– N'ajoute pas d'eff<strong>et</strong><br />
<strong>de</strong> décroissance<br />
aux coefficients ;<br />
utilise la<br />
<strong>de</strong>croissance<br />
naturelle <strong>de</strong>s<br />
coeficients <strong>de</strong>s<br />
hautes<br />
fréquences<br />
●<br />
Implémentation <strong>de</strong>s<br />
chercheurs :<br />
– Normalisation L²<br />
– Plus une sousban<strong>de</strong>s<br />
est une<br />
sous-ban<strong>de</strong> <strong>de</strong><br />
basse fréquence,<br />
plus les<br />
coefficients sont<br />
élevés
Algorithme EBCOT<br />
●<br />
●<br />
●<br />
●<br />
Algorithme utilisé dans le format JPEG2000<br />
(successeur <strong>de</strong> JPEG)<br />
Algorithme consistant en <strong>de</strong>ux phases<br />
La <strong>de</strong>uxième phase est extrêmement<br />
configurable il n'y a pas d'algorithme imposé : il<br />
faut juste donner les m<strong>et</strong>a-informations utile au<br />
décodage<br />
Beaucoups <strong>de</strong> fonctionnalité(scalabilité, Région<br />
d'intêr<strong>et</strong>s) sont dûs à la configurabilité <strong>de</strong> la<br />
secon<strong>de</strong> phase
Première phase<br />
●<br />
●<br />
●<br />
●<br />
●<br />
Transformée en on<strong>de</strong>l<strong>et</strong>tes <strong>de</strong> l'image<br />
Décomposition <strong>de</strong> l'image transformé en n<br />
« co<strong>de</strong>-blocks » <strong>de</strong> taille 32x32 ou 64x64<br />
Compression <strong>et</strong> codage INDEPENDANT <strong>et</strong><br />
scalable <strong>de</strong> chaque « co<strong>de</strong>-blocks »(codage<br />
arithmétique binaire adapatif avec contexte)<br />
Beaucoup <strong>de</strong> micro-optimisation grâce aux<br />
contexte<br />
Résultat n trains binaires, chacun<br />
correspondant à un « co<strong>de</strong>-block »
Première phase<br />
●<br />
N Trains binaires<br />
décomposables en k<br />
morceaux<br />
● 1 → 010|0100|001...<br />
● 2 → 1110|00110|...<br />
●<br />
…<br />
● N → 11|11000|01|1...
Deuxième phase<br />
●<br />
●<br />
On séléctionne <strong>et</strong> on réassemble les morceaux<br />
Idée <strong>de</strong> base : on sélectionne les morceaux <strong>de</strong><br />
manière optimale afin <strong>de</strong> maximiser le PSNR :<br />
problème d'optimisation classique(résoluble<br />
avec les multiplicateurs <strong>de</strong> Lagrange)<br />
● Mais rien n'est imposé :<br />
– Mesure autre que le PSNR<br />
– Decomposition en couche <strong>de</strong> qualité =><br />
scalabilité<br />
– Privilégier une zone <strong>de</strong> l'image => Région<br />
d'intêr<strong>et</strong>
Deuxième phase<br />
● N trains binaire :<br />
● 1 → 010|0100|001|11...<br />
● 2 → 1110|00110|10001..<br />
● ...
Implémentation MATLAB<br />
● Implémentation partielle en MATLAB :<br />
● Résultat :<br />
– Organisation simple<br />
– Décodage arithmétique différent<br />
– Quelques approximation<br />
– Compression mais bien inférieure à ce que cela<br />
<strong>de</strong>vrait être
Comparaison EZW-EBCOT<br />
●<br />
EZW<br />
– exploitation <strong>de</strong>s redondances inter-ban<strong>de</strong>s<br />
– Scalabilité<br />
●<br />
EBCOT<br />
– Pas d'exploitation <strong>de</strong>s redondances intraban<strong>de</strong>s,<br />
compensé par l'optimisation <strong>de</strong> la<br />
phase 2.<br />
– Scalabilité, région d'inter<strong>et</strong> ,Navigabilité,<br />
Résistance aux erreurs(JPEG 2000)<br />
– Complexe
MERCI