compression d’images la manière simple de conserver une image en mémoire est de se donner la...

13
Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire énorme! Comment faire mieux?

Upload: gervais-barriere

Post on 04-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Compression d’images

La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel.

Cela demande une quantité de mémoire énorme!

Comment faire mieux?

Page 2: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Supposons qu’on ait dessiné une ville:

On garde en mémoire les segments de droite, arcs de cercle, etc…, approximant notre image.

On a approximé notre image par des objets géométriques connus.

Page 3: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Pour garder en mémoire un segment de droite il est plus économique de garder en mémoire:

• les deux extrémités du segment• un programme qui explique à

l’ordinateur comment tracer le segment.

Les objets géométriques sont notre

alphabet.

Page 4: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Comment faire pour garder en mémoire un paysage

complexe?On utilise le même

principe mais on élargit notre alphabet:

• On approxime notre paysage par des fractals, par exemple la fougère

Page 5: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

On garde en mémoire un programme permettant de tracer la fougère. En voici un en Mathematica

m=15000L[n_]:=If[1<n<87,2,n]H[n_]:=If[86<n<94,3,L[n]]K[n_]:=If[n>93,4,H[n]]R=Table[K[Random[Integer,{1,100}]],{m}];F[1,x_,y_]:=0G[1,x_,y_]:=0.16*yF[2,x_,y_]:=x*0.85+y*0.04G[2,x_,y_]:=-x*0.04+y*0.85+1.6F[3,x_,y_]:=x*0.2-y*0.26G[3,x_,y_]:=0.23*x+0.22*y+1.6F[4,x_,y_]:=-x*0.15+y*0.28G[4,x_,y_]:=x*0.26+y*0.24+0.44x[1]:=0y[1]:=0Do[{x[n+1],y[n+1]}={F[R[[n]],x[n],y[n]],G[R[[n]],x[n],y[n]]},{n,1,m}]T=Table[{x[n],y[n]},{n,m}];ListPlot[T, AspectRatio->1, Axes-> False]

Page 6: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Principe du traçage de la fougère

La fougère est la réunion:

• d’une queue • de 3 copies

d’elle-même

Page 7: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Pourquoi cela fonctionne-t-il?

Regardons le triangle de Sierpinski:

Il est la réunion de 3 triangles de Sierpinski.

Partons d’un carré et itérons un processus de construction

Page 8: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire
Page 9: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Cela fonctionne avec n’importe quel ensemble de départ! Essayons-on en un autre:

Page 10: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Exemple

Première iterée Sixième itérée

Page 11: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

On peut reconstruire la fougère à partir de 4 transformations affines:

• la transformation T1 qui envoie la grosse fougère sur la fougère moins 2 branches

• la transformation T2 qui envoie la grosse fougère sur la branche de gauche

• la transformation T3 qui envoie la grosse fougère sur la branche de droite

• la transformation T4 qui envoie la grosse fougère sur la queue

Page 12: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

Il suffit de garder en mémoire cette information pour reconstruire la fougère!

Algorithme de construction:• On prend un point P sur la fougère. • On choisit au hasard i dans {1,2,3,4} et on trace P1 =

Ti(P).• On choisit au hasard i dans {1,2,3,4} et on trace P2 =

Ti(P). • Etc...

La méthode s’appelle « Système de fonctions itérées » Elle fonctionne parce que la fougère est auto-similaire.

Page 13: Compression d’images La manière simple de conserver une image en mémoire est de se donner la couleur de chaque pixel. Cela demande une quantité de mémoire

En pratique

• Codage: On remplace chaque petit carré par l’image d’un grand carré sous une homothétie de rapport ½ composée avec une des 8 transformations:

• Identité plus 3 rotations• 4 symétries

On ajuste le contraste.

On fait une translation du niveau de gris.