05.06.2015 Views

Algorithmes de compression d'images et quadtree - Ensiwiki

Algorithmes de compression d'images et quadtree - Ensiwiki

Algorithmes de compression d'images et quadtree - Ensiwiki

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!