Compression Fractale d`Images

Transcription

Compression Fractale d`Images
Compression Fractale d'Images
Yuval Fisher
Institute for Non-Linear Science 0402
University of California, San Diego
La Jolla, CA 92093
e-mail: [email protected]
Adaptation francaise de
Matthieu Latapy
Universite Denis Diderot - Paris 7
e-mail: [email protected]
Avec l'avancee de l'ere de l'information, le besoin de stockage et restitution de masse va
croissant. La croissance de la capacite des moyens de stockage disponibles sur le marche
n'arrive cependant pas a suivre la proliferation des donnees sous forme d'images. En
informatique, les images sont stockees comme ensembles de bits (un bit est une unite
binaire d'information n'ayant que deux etats, pouvant ainsi repondre par \oui" ou \non" a
une question) representant des pixels*, c'est a dire les points constituant l'image. Comme
l'il humain peut traiter d'importantes quantites d'informations, un grand nombre de
pixels { quelques 8 millions de bits au moins { est necessaire pour representer une image,
m^eme de qualite moyenne. Ces bits repondent par \oui" ou par \non" a 8 millions de
questions qui determinent l'image, bien qu'elles ne soient pas du type \Est-ce plus gros
qu'une bo^te a pain ?" mais plut^ot \Ce pixel est-il allume ?".
Bien que le co^ut de stockage d'un bit soit actuellement d'un demi millionieme de
franc, un album de famille avec quelques centaines de photos peut co^uter plus de mille
francs a stocker ! C'est un domaine dans lequel la compression d'images peut jouer un r^ole
important. Stocker les images dans moins de memoire amene directement une reduction
du co^ut. Une autre application importante de la compression d'images est la transmission
rapide de donnees; moins de donnees prennent moins de temps a envoyer.
Donc, comment une image peut-elle ^etre compressee ? Les donnees contiennent
generalement une certaine quantite de redondance, que l'on peut parfois eviter de stocker et
retrouver ensuite. Mais cette redondance ne permet pas une forte compression. Heureusement, l'il humain est insensible a toute une variete de pertes d'informations. C'est a dire
que l'image peut ^etre modiee de nombreuses facons qui, soit n'engendrent pas d'eets
visibles, soit ne contribuent pas a une \degradation" de l'image. Si ces modications sont
faites de maniere a rendre l'information grandement redondante, alors les donnees peuvent ^etre compressees la ou la redondance peut ^etre detectee. Par exemple, la sequence
2; 0; 0; 2; 0; 2; 2; 0; 0; 2; 0; 2; : : : est proche de 1; 1; 1; 1; 1 : : :, avec des uctuations aleatoires
de 1. Si la seconde sequence nous convient autant que la premiere, alors on gagne a la
stocker en remplacement, car elle peut ^etre designee de facon tres compacte.
Il existe plusieurs methodes de compression standard. La methode actuellement la
* le mot pixel vient de la contraction de picture element.
1
plus populaire repose sur l'elimination des composantes hautes-frequences du spectre du
signal, en stockant uniquement les ccients de Fourier des basses-frequences. D'autres
methodes utilisent une approche par \assemblage de blocs", en divisant les images en un
petit nombre de parties canoniques et en stockant seulement la reference de l'emplacement
de chaque partie. Dans cet article, on explore une nouvelle technique basee sur les fractales.
Une telle technique a ete promue par M.Barnsley, qui a cree une societe travaillant sur la
compression fractale d'images, mais qui n'a pas publie les details de son algorithme. Le
premier algorithme semblable rendu publique est d^u a E. Jacobs et R. Boss du Naval Ocean
Systems Center de San Diego, qui utilisait une partition reguliere et une classication de
segments de courbes pour compresser des courbes fractales aleatoires (telles que des resultats politiques) en deux dimensions [BJ], [JBF]. Un etudiant de M.Barnsley, A. Jacquin,
fut le premier a publier un algorithme semblable de compression fractale d'images [J]. Une
version amelioree de cet algorithme, ainsi que d'autres algorithmes, peuvent ^etre trouves
dans le travail de l'auteur ([FJB], [JFB], et [FJB1]).
On va commencer par decrire une technique simple permettant de generer des fractales
apparemment complexes a partir d'une quantite reduite d'information. On generalisera
alors cette technique pour arriver a coder une image comme \fractale" et enn on exposera
quelques manieres dont cette technique peut ^etre implantee.
x1 Qu'est ce que la Compression Fractale d'Images ?
Imaginez un type particulier de photocopieuse, qui reduirait l'image a copier de moitie
et la reproduirait trois fois sur la copie. La gure 1 illustre cela. Que se passe-t-il lorsque on
remet en entree de la machine sa propre sortie ? La gure 2 montre plusieurs iterations de
ce processus sur dierentes images d'entree. Ce qui semble ressortir, et qui est eectivement
vrai, est que toutes les copies semblent converger vers la m^eme image nale, celle de 2(c).
On appelle cette image l'attracteur de cette photocopieuse. Comme la photocopieuse
reduit l'image d'entree, toute image initiale sera reduite a un point quand on executera
repetitivement la machine. Ainsi, l'image initiale placee sur la photocopieuse n'aecte
pas l'attracteur nal; en fait, c'est seulement la position et l'orientation des copies qui
determinent ce a quoi l'image nale ressemblera.
Figure 1. Une photocopieuse qui fait trois copies
reduites de son image d'entree.
2
Comme c'est la maniere dont l'image d'entree est transformee qui determine le resultat nal de l'execution de la photocopieuse dans une boucle en retroaction, on decrit
seulement ces transformations. Des transformations dierentes donnent des attracteurs
dierents, avec pour limitation technique le fait que les transformations doivent ^etre contractantes { c'est a dire qu'une transformation donnee appliquee a deux points quelconques
de l'image initiale les rapproche l'un de l'autre dans la copie. (Voir l'encadre Transformations Contractantes) Cette condition technique vient tres naturellement, car si les points
dans la copie etaient plus eloignes, l'attracteur devrait ^etre de taille innie. A part cette
condition, les transformations peuvent ^etre de n'importe quelle nature. En pratique, prendre des transformations de la forme
wi xy = acii dbii
x + ei
y
fi
est susant pour obtenir un ensemble riche et interessant d'attracteurs. De telles transformations sont appelees transformations anes du plan, et chacune d'entre elles peut
etirer, ecraser, tourner, agrandir et deplacer une image d'entree; en particulier, les transformations anes projettent toujours les carres sur des parallelogrammes.
Figure 2. Les trois premieres copies generees par
la photocopieuse de la gure 1.
NdT: Dans le texte, feedback loop, c'est a dire une boucle dont on place la sortie en entree.
3
La gure 3 montre quelques transformations anes, leurs attracteurs, et un agrandissement d'une partie de cet attracteur. Les transformations sont ecrites en representant
un carre initial marque d'un \ " et son image par la transformation. Le \ " indique
si la transformation contient une symetrie ou une rotation. Le premier exemple montre
les transformations de notre photocopieuse speciale de la gure 1. Ces transformations
reduisent le carre a la moitie de sa taille et le copient a trois endroits dierents, dans la
m^eme orientation. Le deuxieme exemple est tres semblable au premier, mais dans celui-la
une des transformations retourne le carre, on obtient alors un attracteur dierent. Le
dernier exemple est la feuille de M.Barnsley. Elle est constituee de quatre transformations,
dont une est contractee au maximum pour obtenir la tige de la feuille.
Une caracteristique commune a tous les attracteurs obtenus ainsi est qu'a la position
de chacune des images du carre original de gauche il y a une copie transformee de l'image
entiere. Ainsi, chaque image est formee de copies transformees (et reduites) d'elle-m^eme, et
doit donc avoir des details a toutes les echelles. En un mot, ces images sont fractales. Cette
methode pour generer des fractales est d^ue a John Hutchinson [H], et plus d'information
sur de nombreux moyens d'obtenir ces fractales peuvent ^etre obtenues dans les livres de
M.Barnsley [B] et Peitgen, Saupe, et Jurgens [P1,P2].
Figure 3. Des transformations, leurs attracteurs,
et un agrandissement de ceux-ci.
4
M.Barnsley suggera que de stocker les images comme des collections de transformations pouvait peut-^etre permettre de les compresser. Son argument etait le suivant : la
feuille de la gure 3 a l'air complexe et detaillee, et pourtant elle est generee par seulement
quatre transformations anes. Chaque transformation ane wi est denie par six nombres, ai ; bi ; ci ; di; ei et fi qui ne necessitent pas beaucoup de memoire pour ^etre stockes par
un ordinateur (ils peuvent ^etre stockes dans 4 transformations 6 nombres/transformation
32 bits/nombre = 768 bits). Stocker l'image de la feuille comme ensemble de pixels requiert beaucoup plus de memoire (au moins 65,536 bits pour la resolution montree dans la
gure 3). Donc si on souhaite stocker l'image d'une feuille, on peut le faire en stockant les
nombres denissant les transformations anes et simplement generer la feuille lorsqu'on
veut la voir. Maintenant, supposons que l'on ait une image quelconque, disons un visage.
Si un petit nombre de transformations anes pouvait generer ce visage, alors il pourrait lui
aussi ^etre stocke de maniere compacte. Le de est de trouver ces nombres. L'algorithme
de compression fractale decrit plus loin est une reponse au probleme.
Qu'est la Compression \Fractale" d'Images ?
La methode de compression decrite ci-apres peut ^etre consideree comme fractale dans
plusieurs sens. L'algorithme code une image comme collection de transformations qui
sont semblables a la metaphore de la photocopieuse. Ceci implique plusieurs choses. Par
exemple, de m^eme que la feuille a des details a toutes les echelles, l'image reconstruite a
partir des transformations a des details crees a toutes les echelles. Aussi, si on \agrandit"
les transformations denissant la feuille (disons en multipliant tout par 2), alors l'attracteur
resultant est aussi \agrandi" (par le m^eme facteur 2). De la m^eme maniere, l'image
decodee n'a pas de taille intrinseque, et peut ^etre decodee a toutes les tailles voulues.
Les details supplementaires necessaires pour decoder a des tailles superieures sont generes
automatiquement par les transformations du codage. On pourrait se demander (mais
heureusement pas trop longtemps) si ces details sont \reels"; c'est a dire, si on decode
l'image d'une personne a des tailles de plus en plus grandes, verra-t-on nalement les
cellules de la peau, ou m^eme les atomes ? La reponse est, bien s^ur, non. Les details n'ont
rien a voir avec les details reels presents lorsqu'on a digitalise l'image; ce sont les produits
des transformations du code, qui representent bien seulement les elements a grande echelle.
Cependant, dans certains cas les details crees sont realistes pour de faibles agrandissements,
et ce sera une caracteristique interessante de la methode. Par exemple, la gure 4 montre
un detail de l'image de Lenna codee sous forme de fractale, avec un agrandissement de
l'original. On peut voir l'image entiere dans la gure 6, la desormais celebre image de
Lenna, communement utilisee dans les textes sur la compression d'images.
L'agrandissement de l'original montre la pixelisation; les points qui forment l'image
sont clairement visibles, a cause de l'agrandissement d'un facteur 4. L'image decodee ne
montre pas de pixelisation car des details sont crees a toutes les echelles.
Pourquoi est-ce de la \Compression" Fractale d'Images ?
Les methodes standard de compression d'images peuvent ^etre evaluees par leur taux
de compression : le quotient de la memoire occupee par l'image comme collection de pixels
par la memoire necessaire pour stocker l'image sous forme compressee. Comme on l'a vu,
la feuille peut ^etre generee a partir de 768 bits d'information mais necessite 65.536 bits a
5
stocker comme collection de pixels, donnant un taux de compression de 65; 536=768 = 85:3
pour 1.
Figure 4. Une portion du chapeau de Lenna decodee a 4 fois sa taille lors de la compression (a
gauche), et l'image originale agrandie a 4 fois sa
taille (a droite), montrant la pixelisation.
Les taux de compression pour la compression fractale ne sont pas aises a mesurer,
puisque l'image peut ^etre decodee a n'importe quelle taille. Par exemple, l'image decodee
de la gure 4 est une portion de l'image de Lenna compressee a un taux de 5,7 pour 1.
Elle est decodee a 4 fois sa taille originale, donc l'image decodee entiere contient 16 fois
plus de pixels, son taux de compression est donc de 91,2 pour 1. Cela peut sembler tire
par les cheveux, mais comme l'image 4 fois plus grande a des details a toutes les echelles,
ca ne l'est pas.
IFS.
Avant d'expliquer l'algorithme de compression d'images, nous allons reprendre la metaphore de la photocopieuse dans un cadre plus rigoureux. On introduira des notations
utilisees plus tard pour decrire l'algorithme de compression, mais pour l'instant il est plus
facile de comprendre avec l'exemple de la photocopieuse.
Faire marcher la photocopieuse speciale en boucle est une metaphore pour un modele
mathematique appele systeme de fonctions iterees (IFS, pour Iterated Function System).
Un IFS consiste en une collection de transformations contractantes fwi : R2 ! R2 j i =
1; : : : ; ng qui projettent le plan R2 sur lui-m^eme. Cette collection de transformations denit
6
Transformations Contractantes
Une transformation w est dite contractante si pour tous points P1 ; P2, la distance
d(w(P1 ); w(P2 )) < sd(P1 ; P2)
pour un certain s < 1. Cette formule dit que l'application d'une transformation contractante rapproche toujours deux points (d'un certain facteur inferieur a 1). Cette denition
est absolument generale, s'appliquant a tout espace metrique (espace sur lequel on peut
denir une distance d(P1; P2 )). Dans notre cas, on travaille dans le plan, donc si les points
ont pour coordonnees P1 = (x1 ; y1 ) et P2 = (x2 ; y2 ), alors
p
d(P1 ; P1) = (x2 x1 )2 + (y2 y1 )2 :
Un exemple de transformation contractante du plan est
1
w xy = 02 01
2
x :
y
qui divise par deux la distance entre deux points quelconques.
Les transformations contractantes ont la qualite de converger vers un point quand
elles sont repetitivement iterees, ce point restant xe si on itere encore la transformation
(voir l'encadre Theoreme du Point Fixe des Fonctions Contractantes). Par exemple, la
transformation w denie ci-dessus, appliquee a tout point initial (x; y) donne la suite de
points ( 21 x 12 y); ( 14 x; 14 y); : : : dont on peut voir qu'elle converge vers le point (0; 0), qui
reste xe.
une fonction
W () =
n
[
i=1
wi():
La fonction W n'est pas appliquee au plan, mais a des ensembles, c'est a dire a des
ensembles de points du plan. Etant donne un ensemble S , on peut calculer wi (S ) pour
chaque i, prendre l'union de ces ensembles, et ainsi obtenir un nouvel ensemble W (S ).
Ainsi, W est une fonction sur l'espace des sous-ensembles du plan. On appellera un sousensemble du plan une image, car les ensembles denissent une image quand les points de
l'ensemble sont dessines en noir sur blanc, et car on veut utiliser les m^emes notations dans
la suite pour les graphes de fonctions, qui representeront des images. Un fait important
demontre par Hutchinson est que, quand les wi sont contractantes dans le plan, alors W est
contractante dans l'espace des sous-espaces (fermes et bornes) du plan. (Le point \fermes
et bornes" est un point technique qu'il convient de preciser maintenant. Que signient ces
termes et que font-ils la ? Ils precisent la notion et tente de reduire le nombre de plaintes
des mathematiciens. Dire que W est contractante n'a de sens que si on a un moyen de
mesurer la distance entre deux ensembles. Ce moyen existe : il s'agit de la metrique de
Haussdor, qui mesure la distance entre deux sous-ensembles fermes et bornes du plan, et,
dans cette metrique, W est contractante dans l'espace des sous-espaces fermes et bornes
7
Theoreme du point fixe des fonctions contractantes
Ce theoreme formalise une constatation intuitive : si une fonction est contractante,
alors lorsqu'on l'applique de facon recurrente a partir d'un point initial, on converge vers un
unique point xe. Par exemple, la fonction !(x) = 21 x sur la droite reelle est contractante
pour la distance euclidienne d(x; y) = jx yj car la distance entre !(x) et !(y) est egale
a la moitie de la distance entre x et y. De plus, si on itere ! a partir de n'importe quel
point initial x, on obtient une suite de points 21 x; 14 x; 18 x; : : : qui converge vers le point
xe 0.
Ce theoreme, qui semble simple, nous dit que nous pouvons esperer qu'une collection
de transformations denisse une image. Ecrivons le precisement, et examinons le avec
attention.
Theoreme : Si X est un espace metrique complet, et W : X ! X est contractante,
alors W admet un unique point xe jW j.
Qu'est ce que cela signie ? Un espace metrique complet est un espace \sans trou",
sur lequel on peut mesurer la distance entre deux points quelconques. Par exemple, la
droite reelle est un espace metrique complet, la distance entre deux points quelconques x
et y etant donnee par jx yj. L'ensemble de toutes les fractions rationnelles, par contre,
n'est pas complet. On peut mesurer la distance entre deux fractions de la m^eme facon,
mais entre deux elements quelconques de l'espace on rencontre un nombre reel (c'est a dire
un \trou") qui n'est pas une fraction et donc n'est pas dans l'espace considere. Ainsi, dans
notre exemple, la fonction ! peut s'appliquer sur l'espace des fractions, mais la fonction
x 7! 1 x ne le peut pas. Cette fonction est contractante, mais apres une application de
la fonction on n'est plus dans l'espace dans lequel on a commence. C'est un phenomene
qui peut se produire lorsqu'on ne travaille pas dans un espace metrique complet. Un autre
probleme est que nous pouvons trouver une suite de points qui ne converge pas vers un
point de l'espace; Par exemple, il y a despsuites de fractions qui se rapprochent de plus en
plus (en fait, aussi pres qu'on veut) de 2, qui n'est pas une fraction.
Un point xe jW j 2 X de W est un point qui verie W (jW j) = jW j. Notre fonction
!(x) = 21 x sur la droite reelle a pour unique point xe 0 car !(0) = 0.
Prouver le theoreme est aussi facile que de trouver le point xe : commencez avec
un point arbitrairement designe x 2 X . Maintenant, iterez W pour obtenir une suite de
points x; W (x); W (W (x)); : : : . A quelle distance peut-on aller a chaque etape ? Deja,
la distance entre W (x) et W (W (x)) est inferieure d'un facteur s < 1 a celle entre x et
W (x). Donc a chaque etape la distance au point suivant est reduite. Comme on parle
de pas de plus en plus petits, et comme notre espace n'a pas de trou, on doit nalement
converger vers un point de l'espace, que l'on notera jW j = limn!1 W n (x). Ce point
est xe, car appliquer W une fois de plus revient au m^eme que commencer avec W (x) a
la place de x, et de toute facon on obtient le m^eme point.
Le point xe est unique car, si il y en avait deux, on aboutirait a une contradiction :
Supposons qu'il y a deux points xes, x1 et x2 ; Alors, la distance entre W (x1 ) et W (x2 ),
qui est la distance entre x1 et x2 , comme ce sont des points xes, devrait ^etre inferieure
a la distance entre x1 et x2 ; C'est une contradiction.
Ainsi, le principal resultat demontre ici est que quand W est contractante on obtient
pour tout point initial x un point xe
jW j = limn!1 W n (x)
8
du plan. C'est tout ce que nous dirons sur ces details.) Le theoreme de Hutchinson nous
permet d'utiliser le theoreme du point xe des fonctions contractantes (voir encadre), qui
nous dit que la fonction W aura un unique point xe dans l'espace de toutes les images.
En d'autres termes, quelle que soit l'image (ou l'ensemble) avec laquelle on commence, on
pourra lui appliquer repetitivement W et on convergera vers une image unique. Ainsi W
(ou les wi) determine completement une et une seule image.
Autrement dit, etant donnee une image initiale f0 , on peut faire marcher la photocopieuse une fois pour obtenir f1 = W (f0 ), deux fois pour obtenir f2 = W (f1 ) =
W (W (f0 )) W 2 (f0 ), et ainsi de suite. L'attracteur, qui est le resultat de l'application
de la photocopieuse dans une boucle en retroaction, est l'ensemble limite
jW j f1 = nlim
W n (f0 )
!1
qui est independant du choix de f0 . Les IFS sont interessants par eux-m^emes, mais ici
nous ne sommes pas concernes par eux precisement. Nous allons generaliser l'idee de la
photocopieuse et l'utiliser pour coder des images en niveaux de gris; c'est a dire des images
qui ne sont pas seulement en noir et blanc, mais qui contiennent des variations de gris.
x2 Auto-Similarite dans les Images.
Dans la suite de cet article, on utilisera le terme image pour designer une image en
niveaux de gris.
Figure 5. Un graphe genere a partir de l'image de
Lenna.
9
Les Images comme Graphes de Fonctions.
Pour parler de compression d'images, on a besoin d'un modele mathematique des
images. La gure 5 montre le graphe d'une fonction speciale z = f (x; y). Ce graphe est
genere a partir de l'image de Lenna (voir gure 6), le niveau de gris du pixel en (x; y)
etant represente verticalement, le blanc en haut et le noir en bas. C'est notre modele
pour les images, sauf que, contrairement au graphe de la gure 5 qui est genere en reliant
les sommets sur une grille 64 64, on generalise ceci en considerant que toute position
(x; y) peut avoir une altitude propre. C'est dire que notre modele d'image a une resolution
innie.
Ainsi, quand on veut parler d'une image, on parle de la fonction f (x; y) qui donne
le niveau de gris de chaque point (x; y). En pratique, on ne distinguera pas la fonction
f (qui nous donne une valeur z pour chaque coordonnee x; y) de son graphe (qui est un
ensemble en trois dimensions qui consiste en la surface denie par f ). Pour simplier,
on considerera que l'on travaille avec des images carrees de taille 1; c'est a dire (x; y) 2
f(u; v) : 0 u; v 1g I 2 , et f (x; y) 2 I [0; 1]. Nous avons introduit ici des notations
pratiques : I represente l'intervalle [0; 1] et I 2 est le carre unite.
Figure 6. L'image de Lenna originale (256 256
pixels).
Une Metrique sur les Images.
Maintenant imaginez l'ensemble de toutes les images possibles : nuages, arbres, chiens,
fouillis aleatoires, photos de Jupiter, etc. On veut trouver une fonction W qui prend une
image en entree et fournit une image en sortie, juste comme on l'a fait avec les sous-espaces
du plan. Si on veut savoir quand W est contractante, on aura a denir une distance entre
Souvenez-vous : une metrique est une fonction qui mesure la distance.
10
deux images. On peut choisir parmi de nombreuses metriques, mais la plus simple a utiliser
est la metrique sup
(f; g) = sup 2 jf (x; y) g(x; y)j:
x;y)2I
(
(1)
Cette metrique determine la position (x; y) ou deux images f et g dierent le plus et dit
que cette valeur est la distance entre f et g.
Les Images Naturelles ne sont pas Exactement Auto-Similaires.
L'image d'un visage, par exemple celle de la gure 6, ne contient pas le type d'autosimilarite qu'on trouve dans les fractales de la gure 3. L'image ne semble pas contenir de
transformation ane d'elle m^eme. En fait, cette image contient une autre sorte d'autosimilarite. La gure 7 montre des exemples de regions de la photo de Lenna qui sont
similaires, a dierentes echelles : une portion de son epaule recouvre une region qui est
presque identique, et une portion du reet du chapeau dans le miroir est similaire (apres
transformation) a une autre partie de son chapeau. La dierence avec le type d'autosimilarite que nous avons vu dans la gure 3 est que plut^ot que d'avoir une image formee
de copies d'elle-m^eme toute entiere (apres transformation ane appropriee), ici l'image
est formee de copies convenablement transformees de parties d'elle-m^eme. Ces parties
transformees ne peuvent pas ^etre reunies, en general, pour former une copie exacte de
l'image originale, et on doit donc permettre une certaine erreur a notre representation
de l'image en tant qu'ensemble de transformations. Ceci signie que l'image que nous
coderons comme ensemble de transformations ne sera pas une copie identique a l'originale,
mais plut^ot une approximation de celle-ci.
Dans quel type d'images peut-on esperer trouver ce type de auto-similarite ? Les resultats experimentaux suggerent que la plupart des images que l'on peut vouloir \voir" peut
^etre compressee en tirant avantage de ce type d'auto-similarite : par exemple, les images
d'arbres, de visages, de maisons, de montagnes, de nuages, etc. Cependant, l'existence de
cette auto-similarite restreinte et l'aptitude d'un algorithme a la detecter sont deux choses
distinctes, et c'est la seconde qui nous interesse ici.
Il y a d'autres choix possibles pour les images et on peut utiliser d'autres metriques. En fait, le choix
de la metrique determine si les transformations que l'on utilise sont contractantes ou non. Ces details sont
importants, mais depassent le cadre de cet article.
11
Figure 7. Parties auto-similaires de l'image de
Lenna.
x3 Une Nouvelle Photocopieuse Speciale.
Photocopieuse Locale.
Dans cette section, on decrit une extension de la metaphore de la photocopieuse qui
peut ^etre utilisee pour coder et decoder des images en niveaux de gris. La photocopieuse
locale que l'on va utiliser a quatre parametres :
le nombre de copies de l'original a reunir pour former la sortie,
un positionnement, un agrandissement, un etirement et un facteur de rotation pour
chaque copie.
Ces points font partie de la denition du type de photocopieuse qu'on peut utiliser
pour obtenir les images de la gure 3. On ajoute les deux fonctionnalites suivantes :
un ajustement du contraste et de la luminosite pour chaque copie,
un masque qui designe, pour chaque copie, une partie de l'original a copier.
Ces parametres supplementaires sont susants pour coder les images en niveaux de
gris. Le dernier point est la nouvelle fonctionnalite importante. Il permet de partitionner
une image en morceaux dont chacun est transforme separement. En partitionnant l'image,
on permet le codage de nombreuses formes diciles a coder par un IFS.
Regardons ce qu'il se passe lorsqu'on copie une image avec cette machine. Chaque
fonction selectionne une portion de l'original, que l'on designera par Di et la copie (avec
une transformation du contraste et de la luminosite) sur une partie de la copie produite,
que l'on notera Ri . On appelle les Di les domaines et les Ri les ranges. On designe cette
NdT: La partie Di sera projetee par wi sur la partie Ri . Di peut ainsi ^etre vu comme le domaine
de denition de wi , et Ri l'image de Di par wi : Ri = wi (Di ). Pour eviter la confusion, on a prefere
designer les Ri par le terme anglosaxon "range".
12
transformation par wi . La partition est implicite dans la notation, donc nous pouvons
utiliser a peu pres la m^eme notation qu'avec un IFS. Etant donnee une image f , une etape
de la copie dans une machine avec N fonctions peut ^etre ecrite W (f ) = w1(f ) [ w2(f ) [
[ wN (f ). Comme avant, la machine marche dans une boucle ou la sortie est replacee
en entree.
Les Photocopieuses Locales sont des L-IFS .
L'analogue mathematique de notre photocopieuse locale s'appelle un IFS Local (LIFS). Comme precedemment, la denition d'un L-IFS est independante du type de transformation utilise, mais on se restreindra ici aux transformations anes. Le niveau de gris
ajoute une autre dimension, donc les transformations wi sont de la forme
2 3
2
32 3
2
3
x
ai bi 0 x
ei
wi 4 y 5 = 4 ci di 0 5 4 y 5 + 4 fi 5
(2)
z
0 0 si z
oi
ou si contr^ole le contraste et oi la luminosite de la transformation.
Il est pratique d'ecrire
b
a
i
i
vi (x; y) = c d xy + fei :
i i
i
Comme une image est modelisee par une fonction f (x; y), on peut appliquer wi a
une image f par wi(f ) wi(x; y; f (x; y )). Alors vi determine comment les domaines,
partitions de l'original, sont places sur la copie, tandis que si et oi determinent le contraste
et la luminosite de la transformation. Il est toujours implicite, et il est important de s'en
souvenir, que chaque wi est restreinte a Di I , la region a la verticale de Di . C'est a dire
que wi s'applique seulement a la partie de l'image qui est au dessus du domaine Di . Cela
signie que vi (Di ) = Ri.
Comme on veut que W (f ) soit une image, on doit souligner que [Ri = I 2 et que Ri \
Rj = ; quand i 6= j . En eet, quand on applique W a une image, on obtient des fonctions
a une valeur au-dessus de chaque point du carre I 2. Faire marcher la photocopieuse dans
une boucle signie iterer la fonction W . On commence avec une image initiale f0 et alors
on itere : f1 = W (f0 ); f2 = W (f1 ) = W (W (f0 )), et ainsi de suite. On note la n-eme
iteration par fn = W n(f0 ).
Points Fixes pour les L-IFS.
Dans notre cas, un point xe est une image f qui verie W (f ) = f ; c'est a dire
que quand on applique les transformations a l'image, on obtient a nouveau cette image.
Le theoreme des fonctions contractantes dit que le point xe W sera l'image obtenue en
calculant la suite W (f0 ); W (W (f0 )); W (W (W (f0 ))); : : :, ou f0 est n'importe quelle image.
Donc si on est assure que W est contractante dans l'espace de toutes les images, alors elle
aura un unique point xe, qui est alors une image.
Comme la metrique que l'on a choisie dans l'equation 1 est sensible uniquement a ce
qu'il se passe sur la direction z, il n'est pas necessaire d'imposer la condition de contraction
NdT: P-IFS dans le texte, pour Partitionned-IFS.
13
dans les directions x ou y. Les transformation W seront contractantes quand chaque si < 1;
c'est a dire quand les distance en z sont reduites d'un facteur inferieur a 1. En fait, le
principe des fonctions contractantes peut ^etre applique a W m (pour un m), donc il sut
que W m soit contractante. Ceci amene un resultat plut^ot surprenant : il n'y a en fait
aucune condition particuliere sur les si . En pratique, il est plus s^ur de prendre si < 1 pour
assurer la contractivite. Mais on sait par experience que prendre si < 1:2 est susant, et
que cela amene de meilleurs codages.
Les Fonctions Finalement Contractantes.
Quand W n'est pas contractante, mais que W m est contractante, W est dite nalement contractante. Une breve explication de comment une transformation W peut
^etre nalement contractante mais non contractante s'impose. La fonction W est composee
d'un union de fonctions wi operant sur des parties disjointes de l'image. La transformation
iterative W m est composee de l'union de compositions de la forme
wi1 wi2 wim :
C'est un fait que le produit de toute les contraction bornent la contraction des compositions, donc les compositions seront contractantes si chacune contient des wij susamment
contractantes. W sera nalement contractante (dans la metrique sup) si elle contient
un \melange" susant pour que les wi contractantes dominent nalement les expansives.
En pratique, etant donne un L-IFS, cette condition est simple a verier si l'on utilise la
metrique sup.
Supposons qu'on a pris tous les si < 1. Ceci signie que quand on fait fonctionner
la photocopieuse, le contraste est toujours reduit. Cela semble suggerer que quand la
machine est placee dans une boucle en retroaction, l'attracteur resultant sera d'un insipide
gris sans contraste. Mais c'est faux, puisque le contraste est cree entre les ranges qui ont
des luminosites oi dierentes. Le contraste entre les Ri dans l'attracteur serait-il seulement
celui-la ? Non, car si on prend les vi contractantes, alors les endroits ou il y a du contraste
entre les Ri dans l'image se propagent a de plus en plus petits details, et c'est de cette
facon que les details sont crees dans l'attracteur. C'est une raison pour exiger des vi d'^etre
contractantes.
Nous savons maintenant comment decoder une image codee en L-IFS. Commencer
avec n'importe quelle image et faire marcher repetitivement la photocopieuse, ou appliquer repetitivement W jusqu'a arriver pres du point xe f1. On utilisera la distance
d'Hutchinson et notera ce point xe f1 = jW j. Le decodage est facile, mais c'est le
codage qui est interessant. Pour coder une image, on a besoin de determiner les Ri; Di et
wi, ainsi que N , le nombre de fonctions wi que l'on veut utiliser.
x4 Coder les Images.
Supposons qu'on a une image f que l'on desire coder. Cela signie qu'on veut trouver
un ensemble de fonctions w1; w2 : : : ; wN avec W = [Ni=1 wi et f = jW j. C'est a dire qu'on
que f soit le point xe de W . L'equation du point xe
f = W (f ) = w1 (f ) [ w2(f ) [ wN (f )
14
Moindres Carres
Soient deux carres contenant n pixels, a1; : : : ; an (de Di ) et b1 ; : : : ; bn (de Ri ). On
peut choisir s et o de maniere a minimiser
R=
n
X
i=1
(s ai + o bi )2 :
On obtiendra ainsi un ajustement du contraste et de la brillance qui minimisera la distance
des moindres carres des valeurs ai apres transformation ane aux valeurs bi . Le minimum
de R est atteint quand les derivees partielles par rapport a s et o sont nulles, ce qui a lieu
quand
"
# "
#
n
n
n
n
n
X
X
X
X
X
s = n2( ai bi ) ( ai )( bi ) = n2 a2i ( ai )2
i=1
et
i=1
o=
Alors,
R=
" n
X
i=1
b2i + s(s
n
X
i=1
" n
X
i=1
a2i 2(
n
X
i=1
i=1
bi s
i=1
n
X
i=1
ai bi ) + 2o
i=1
#
ai =n2
n
X
i=1
ai ) + o(on2 2
n
X
i=1
#
bi ) =n2 (5)
P
P
P
Si n2 ni=1 a2i ( ni=1 ai )2 = 0, alors s = 0 et o = ni=1 bi =n2.
suggere comment on peut y arriver. On cherche une partition de f en parties auxquelles
on appliquera les transformations wi pour obtenir a nouveau f . C'est trop demander en
general, car les images ne sont pas composees de parties qui peuvent ^etre transformees de
maniere non triviale et correspondre exactement a une autre partie de l'image. Ce que l'on
peut esperer trouver est une autre image f 0 = jW j avec (f 0 ; f ) petit. C'est a dire qu'on
cherche la transformation W dont le point xe f 0 = jW j est proche de, ou ressemble a, f .
Dans ce cas,
f f 0 = W (f 0 ) W (f ) = w1(f ) [ w2(f ) [ wN (f ):
Ainsi, il est susant d'approcher les parties d'une image avec des parties transformees.
On fait cela en minimisant la quantite
(f \ (Ri I ); wi(f )) i = 1; : : : ; N
(4)
C'est a dire qu'on cherche les parties Di et les fonctions wi telles que quand on applique
une wi a la partie de l'image au-dessus de Di on obtient quelque chose de ressemblant a
cette partie de l'image au-dessus de Ri. Trouver les Ri (et les Di correspondants) est le
cur du probleme.
15
Un Simple Exemple d'Illustration.
L'exemple qui suit suggere comment cela peut ^etre fait. Considerons une image de
256 256 pixels dans laquelle chaque pixel est un niveau de gris parmi 256 (de noir a
blanc). Soient R1 ; R2; : : : ; R1024 les carres de 8 8 pixels qui sont des sous-parties de
l'image ne se recouvrant pas, et soit l'ensemble de tous les carres de 16 16 pixels qui
sont des sous-parties (se recouvrant eventuellement) de l'image. L'ensemble D contient
241 241 = 58; 081 carres. Pour chaque Ri , chercher dans tout D pour trouver un Di 2 D
qui minimise l'equation 4; c'est a dire trouver la partie de l'image qui ressemble le plus a
la partie de l'image sous Ri . On dit de ce domaine qu'il couvre le range. Il y a 8 manieres
de projeter un carre sur un autre, ce qui signie qu'on doit comparer 8 58; 081 = 464; 648
carres avec chacun des 1024 carres que sont les ranges. De m^eme, un carre de D contient
4 fois plus de pixel qu'un Ri , donc on doit echantillonner (choisir un pixel dans chaque
2 2 carres de Di ) ou faire la moyenne des carres de 2 2 pixels correspondant a chaque
pixel de Ri quand on minimise l'equation 4.
Minimiser l'equation 4 signie deux choses. Premierement, trouver un bon choix
pour Di (c'est la portion de l'image qui ressemble le plus a l'image au-dessus de Ri ).
Deuxiemement, trouver un bon ajustement du contraste et de la luminosite si et oi pour
wi. Pour chaque D 2 D on peut calculer si et oi en utilisant la regression des moindres
carres (voir l'encadre), qui donne aussi la dierence Euclidienne (rms, pour root mean
square) resultante. On choisit alors pour Di le D 2 D qui a la plus faible dierence rms.
Un choix de Di , avec les si et oi correspondants, determine une transformation wi
de la forme de l'equation 2. Une fois qu'on a la collection w1; : : : ; w1024 on peut decoder
l'image en calculant jW j. La gure 8 montre quatre images : une image initiale arbitraire
f0 choisie pour montrer la texture, la premiere iteration W (f0 ), qui montre de la texture
issue de f0 , W 2 (f0 ), et W 10(f0 ).
Le resultat est etonnamment bon, au regard de la simplicite de l'algorithme de codage.
L'image originale necessitait 65536 octets pour ^etre stockee, alors que les transformations
necessitent seulement 3868 octets , donnant un taux de compression de 16,5:1. Avec ce
codage, R = 10; 4 et chaque pixel est en moyenne a seulement 6,2 niveaux de gris de la
valeur correcte. La gure 8 montre comment des details sont crees a chaque iteration. La
premiere iteration contient des details a la taille 8 8, la suivante a la taille 4 4, et ainsi
de suite.
A.Jacquin [J] a code les images avec moins de niveaux de gris en utilisant une methode
similaire a celle-ci mais avec des ranges de deux tailles dierentes. An de reduire le nombre
de domaines parmi lesquels chercher, il classa aussi les ranges et les domaines par leurs
Les carres peuvent ^etre orientes dans quatre directions dierentes, ou renverses puis orientes dans
quatre autres directions.
NdT: Ce terme est utilise en musique, et on se permet parfois l'anglicisme \sampler". Il est issu du
terme anglosaxon \sample", qui signie prendre un echantillon pour representer un ensemble. Ici, chaque
bloc de 2 2 = 4 pixels est remplace par un de ces quatre pixels (le choix du pixel conserve est arbitraire).
Chaque transformation necessite 8 bits dans les directions x et y pour d
eterminer la position de Di ,
7 bits pour oi , 5 bits pour si et 3 bits pour determiner une operation de rotation ou de reexion pour
projeter Di sur Ri .
16
proprietes de granularite. C'est tres similaire a la methode utilisee par Boss et Jacobs
[BJF] pour coder les contours.
Figure 8. Une image originale, et la premiere, la
seconde et la dixieme iteration des transformations
la codant.
Une Note sur les Metriques.
Deux hommes, volant dans un ballon, sont deportes par une rafale de vent. Ne
sachant pas ou ils sont, ils s'approchent d'un personnage solitaire au sommet d'une colline.
17
Ils descendent le ballon, et crient a l'homme sur la colline : \Ou sommes-nous ?". Il y a
alors un tres long silence, puis l'homme leur crie sa reponse : \Vous ^etes dans un ballon."
Le premier homme dans le ballon se retourne vers le second et lui dit : \Cet homme
est un mathematicien." Stupefait, le second homme demande : \Comment peux-tu dire
cela ?". Et le premier de repondre \On lui a pose une question, il y a reechi longtemps, sa
reponse est correcte, et elle est completement inutile." C'est ce que nous avons fait avec les
metriques. Quand on avait simplement des motivations theoriques, on a utilise la metrique
sup, qui est tres agreable pour cela. Mais dans la pratique on a prefere utiliser la metrique
rms, qui nous permet de faire des calculs de moindres carres. (On aurait pu travailler avec
la metrique rms, bien s^ur, mais verier la contraction dans cette metrique est bien plus
dicile.)
x5 Les Facons de Partitionner les Images.
L'exemple de la derniere section est naf et simple, mais il contient la plupart des
idees de la methode fractale de compression d'images. D'abord partitionner l'image en un
ensemble de ranges Ri . Alors, pour chaque Ri chercher parmi un ensemble de portions de
l'image un Di qui produit une faible erreur rms. Les ensembles Ri et Di xent si et oi ainsi
que ai ; bi ; ci; di ; ei et fi dans l'equation 2. On obtient alors la transformation W = [wi
qui code une approximation de l'image originale.
Partition Quadtree.
Un defaut de notre exemple est l'utilisation de Ri de taille xe, alors qu'il y a des regions de l'image diciles a bien couvrir de cette maniere (par exemple, les yeux de Lenna).
De facon similaire, il y a des regions de l'image qui peuvent ^etre couvertes ecacement
avec des Ri plus grands, reduisant ainsi le nombre total de transformations wi necessaires
(et augmentant ainsi la compression de l'image). Une generalisation des Ri de taille xe
est l'utilisation d'une partition quadtree de l'image. Dans une partition quadtree, un carre
de l'image est divise en quatre sous-carres de m^emes dimensions quand il n'est pas couvert
de maniere satisfaisante par un domaine. Ce processus se repete recursivement en commencant par l'image entiere jusqu'a ce que les carres soient assez petits pour ^etre couverts
avec une erreur rms inferieure a une tolerance maximume xee. Les petits carres peuvent
^etre plus facilement et plus ecacement couverts que les grands car les pixels contigus
dans une image tendent a ^etre semblables.
Un algorithme qui fonctionne bien pour coder des images de 256 256 pixels base
sur cette idee peut ^etre construit comme suit (voir [FJB1]). Choisir comme ensemble D
des domaines possibles tous les sous-carres de l'image de tailles 8; 12; 16; 24; 32; 48 et 64.
Partitionner recursivement l'image par une methode quadtree jusqu'a ce que les carres
soient de taille 32. Pour chaque carre de la partition quadtree, essayer de le couvrir par un
domaine plus grand; Cela assure une vi contractante. Si une tolerance rms predeterminee
ec est rencontree, alors appeler le carre Ri et le domaine le couvrant Di. Sinon, subdiviser
le carre et recommencer. Cet algorithme fonctionne bien. Il marche encore mieux si des
carres orientes sur la diagonale sont aussi utilises dans l'ensemble des domaines D. La
gure 9 montre l'image d'un collet compressee par cette methode. Dans la section 6 on
discute certains details de cette methode ainsi que des deux autres discutees ci-dessous.
18
Figure 9. Un collet (256 256) compresse avec la
methode par quadtree a 28.95:1 avec une erreur
rms de 8.5.
Partition HV.
Un defaut de la partition quadtree est qu'elle choisit l'ensemble des domaines D de
facon independante du contenu. L'ensemble doit ^etre rendu tres grand pour qu'on puisse
y trouver une bonne correspondance pour un range donne. Une facon de remedier a cela,
tout en augmentant la exibilite de la partition en ranges, est d'utiliser une partition HV.
Dans une partition HV, une image rectangulaire est recursivement partitionnee soit horizontalement soit verticalement pour former deux nouveaux rectangles. Le partitionnement
se repete recursivement jusqu'a ce qu'une certaine tolerance de recouvrement soit satisfaite,
comme dans la methode quadtree.
Figure 10. La methode HV tente de creer des rectangles similaires a dierentes echelles.
Cette methode est plus exible, car la position de la partition est variable. On peut
alors essayer de construire les partitions de facon a ce qu'elles partagent des structures
19
auto-similaires. Par exemple, on peut essayer d'arranger les partitions de maniere a ce que
les contours de l'image aient tendance a les traverser en diagonale. Ainsi, il est possible
d'utiliser les plus grandes partitions pour couvrir les plus petites avec un espoir raisonnable
de bon recouvrement. La gure 10 illustre cette idee. La gure montre une portion de
l'image (a); en (b), la premiere partition genere deux rectangles, R1 avec le contour le
traversant en diagonale, et R2 sans contour; et en (c) les trois partitions suivantes de R1
en 4 rectangles, deux rectangles qui peuvent ^etre bien couverts par R1 (car ils ont un
contour proche de leur diagonale) et deux qui peuvent ^etre bien couverts par R2 (car ils
ne contiennent pas de contour). La gure 11 montre une image de San Francisco codee de
cette maniere.
Figure 11. San Francisco (256 256) compressee
avec la methode HV a 7.6:1 avec une erreur rms
de 7.1.
Partition en Triangles.
Une autre maniere de partitionner une image utilise des triangles. Dans la methode de
partition par triangles, une image rectangulaire est partitionnee en diagonale en deux triangles. Chacun d'eux est recursivement subdivise en quatre triangles suivant trois segments
qui relient trois points de partition sur les trois c^otes du triangle. Cette methode possede
potentiellement plusieurs avantages sur la partition HV. Elle est exible, et les triangles
peuvent ^etre choisis pour partager des proprietes auto-similaires, comme precedemment.
Les imperfections resultant du codage ne sont pas orientees horizontalement ou verticalement, et donc se voient moins. De plus, les triangles peuvent avoir n'importe quelle
orientation, ce qui nous libere des rotations rigides de 90 degres des partitions quadtree et
HV. Cette methode reste cependant a ^etre totalement developee et exploree. La gure 12
montre plusieurs partitions resultant des trois methodes appliquees a l'image de Lenna.
20
Figure 12. Une partition quadtree (5008 carres),
une partition HV (2910 rectangles), et une partition en triangles (2954 triangles).
x6 Quelques Notes sur l'Implantation.
Le pseudo-code de la Table 1 montre deux manieres de coder des images en utilisant
l'idee presentee. Une methode tente d'atteindre une certaine delite en trouvant des recouvrements tels que l'equation 4 est inferieure a un certain critere ec . L'autre methode
tente d'atteindre un certain taux de compression en limitant le nombre de transformations
utilisees pour le codage.
Stocker le Codage de facon Compacte.
Pour stocker le codage de facon compacte, on ne stocke pas tous les ccients de
l'equation 2. Les parametres de contraste et de luminosite sont stockes sur un nombre xe
de bits. On pourrait calculer les si et oi optimaux et les quantier pour le stockage. Cepentant, une amelioration signicative de la delite peut ^etre obtenue si on utilise seulement
des valeurs arrondies de si et oi pour le calcul de l'erreur durant le codage (et l'equation
5 le facilite). L'utilisation de 5 bits pour stocker si et de 7 bits pour stocker oi est en
general optimal, ces valeurs ayant etees empiriquement determinees. La distribution des
si et oi contenant de la structure, une meilleure compression peut ^etre atteinte en utilisant
un codage entropique.
Les autres coecients sont calcules pendant que l'image est decodee. A leur place, on
stocke les Ri et Di. Dans le cas d'une partition quadtree, Ri peut ^etre code par l'ordre
du stockage des transformations si on conna^t la taille de Ri . Les domaines Di doivent
^etre stockes par leur position et leur taille (et orientation si les domaines en diagonale sont
utilises). Cependant, ce n'est pas susant, cependant, car il y a 8 facons de projeter les
quatre coins de Di sur les coins de Ri. On doit donc utiliser 3 bits de plus pour coder
cette information sur la rotation et la reexion.
21
Table 1. Deux pseudo-codes pour un algorithme de codage adaptatif
Choisir un niveau de tolerance ec.
Mettre R1 = I 2 et le marquer comme non couvert.
Tant qu'il y a des ranges non couverts Ri faire f
g
Parmi les domaines possibles
D, trouver le domaine
Di et le wi correspondant qui couvrent le mieux Ri
(i.e. qui minimise l'expression (4)).
Si
i
i
c ou taille i
min alors
Marquer i comme couvert, et sauvegarder la
transformation i ;
sinon
Partitionnner i en des ranges plus petits, qui
sont marqu
es non couverts, et enlever i de la
liste des ranges non couverts.
(f \ (R I ); w (f )) < e
R
w
R
(R ) r
R
a. Pseudo-code pour obtenir une delite ec .
N
Choisir un nombre r de ranges a trouver.
2
Initialiser une liste a 1
, et marquer ce range
comme non couvert.
Tant qu'il y a des ranges non couverts dans la liste
faire
Pour chaque range non couvert de la liste, trouver
et stocker le domaine i
et la transformation
qui
le
couvre
le
mieux,
et
marquer
ce range comme
i
couvert.
Dans la liste des ranges, trouver le range j avec
taille j
min qui a le plus grand
f
R =I
D 2D
w
R
(R ) > r
(f \ (Rj I ); wj (f ))
g
(i.e. qui est le moins bien couvert).
Si le nombre de ranges dans la liste est inf
erieur a
alors
r
Partitionner j en des ranges plus petits, qui
sont ajout
es a la liste et marqu
es non couverts.
Enlever j j et j de la liste.
N
g
f
R
R ;w
D
wi de la liste.
b. Pseudo-code pour obtenir une compression avec N transformations.
Sauvegarder tous les
Dans les cas de la partition HV et de la partition triangulaire, la partition est stockee
comme une suite de valeurs de positions relatives au coin superieur gauche du bloc. Comme
les rectangles (ou les triangles) deviennent de plus en plus petits durant la partition, de
moins en moins de bits sont necessaires pour stocker la position de la partition. La partition
22
peut ^etre integralement reconstruite par la routine de decodage. Un bit doit ^etre utilise
pour indiquer si une partition est encore subdivisee ou sera utilisee comme Ri, et un
nombre variable de bits doit ^etre utilise pour specier l'index de chaque Di dans une liste
de toute la partition. Pour chacune des trois methodes, et sans trop de diculte, il est
possible d'atteindre une compression d'environ 31 bits par wi en moyenne.
Dans l'exemple de la section 4, le nombre de transformations est xe. Par contre,
les algorithmes de partitionnement decrits sont adaptatifs dans le sens ou ils utilisent une
taille de range qui varie selon la complexite locale de l'image. Pour une image donnee,
un plus grand nombre de transformations permet d'augmenter la delite mais diminue le
taux de compression. Cet echange entre compression et delite permet deux approches
dierentes pour coder une image f { l'une visant une meilleure delite et l'autre visant
une meilleure compression. Ces approches sont mises en evidence par le pseudo-code de
la table 1. Dans cette table, taille(Ri ) est la taille du range; dans le cas de rectangles,
taille(Ri ) est la longueur du plus long c^ote.
Remerciements
Ce travail a ete en partie supporte par le contrat N00014-91-C-0177 d'ONR. L'ont
egalement soutenu le San Diego Super Computer Center; l'Institute for Non-Linear Science
a l'universite de Californie, San Diego; et le Technion Israel Institute of Technology.
Note du Traducteur
Cette traduction de l'article \Fractal Image Compression" de Yuval Fisher a ete realisee benevolement et avec l'accord de l'auteur, dont je salue l'ouverture d'esprit. Il n'a pas
hesite a me fournir tout le materiel necessaire a ce travail, et s'est constamment tenu a ma
disposition. Je l'en remercie.
Par ailleurs, le traducteur invite toute personne interessee par son travail a le contacter
par e-mail. Il s'engage a repondre et a informer ceux qui le desireront sur ses autres
travaux sur la compression fractale. En particulier, un petit programme de compression
avec partition HV devrait ^etre livre au public quelques jours apres le debut de la diusion
de cette traduction.
Enn, je voudrais m'expliquer sur les motivations qui m'ont conduit a traduire cet
article. Tout d'abord, il me semble excellent, et suceptible d'attirer l'attention de nouvelles
personnes sur le domaine. De plus, il me semblait souhaitable, pour le public francais, de
disposer facilement d'une bonne introduction a la compression fractale. En particulier,
tout rapport un peu consequent, y compris ceux que j'ai a ecrire, doit commencer par une
introduction, qu'il me semble dicile de realiser de facon satisfaisante sans paraphraser
l'article de Yuval Fisher. Je vous invite donc vivement a vous servir de cette traduction
dans vos exposes et vos rapports, tout en vous rappelant qu'elle reste integralement la
propriete de Yuval Fisher.
Remerciements pour la Version Francaise
Cette traduction n'a ete possible qu'avec l'aide devouee de mes proches et de mes
enseignants. Ma mere, en particulier, recoit ici mes plus vifs remerciements pour son
aide precieuse. Je remercie aussi specialement Jean Baptiste Yunes, qui n'a pas hesite
a participer activement a ce travail et dont le regard critique m'a ete tres precieux. Je
23
remercie aussi la femme que j'aime, Magali, ainsi que mes amis Camille Pineau, Arthur
Ferreira et Alexandre Courgnaud pour leur soutien.
References
[B] M.Barnsley, M. Fractals Everywhere. Academic Press. San Diego, 1989.
[BJ] R.D. Boss, E.W. Jacobs, \Fractal-Based Image Compression," NOSC Technical Report 1315, September 1989. Naval Ocean Systems Center, San Diego CA 92152-5000.
[F] Y. Fisher, Fractal Image Compression , Appendix A, \Fractals and Chaos", Peitgen,
Saupe, Jurgens, Springer-Verlag, New York, 1992.
[FJB] Y. Fisher, E.W. Jacobs, and R.D. Boss, Fractal Image Compression Using Iterated
Transforms, \Text and Image Compression ", J. Storer, Editor, Kluwer Academic
Publishers, Norwall, MA, 1992.
[FJB1] Y. Fisher, E.W. Jacobs, and R.D. Boss, \Fractal Image Compression Using Iterated
Transforms," NOSC Technical Report ???, Naval Ocean Systems Center, San Diego
CA 92152-5000.
[H] John E. Hutchinson, Fractals and Self Similarity. Indiana University Mathematics
Journal, Vol. 35, No. 5. 1981.
[J] Jacquin, A., A Fractal Theory of Iterated Markov Operators with Applications to
Digital Image Coding, Doctoral Thesis, Georgia Institute of Technology, 1989.
[JBF] R.D. Boss, E.W. Jacobs, \Fractal-Based Image Compression II," NOSC Technical
Report 1362, June 1990. Naval Ocean Systems Center, San Diego CA 92152-5000.
[JFB] E.W. Jacobs, Y. Fisher, and R.D. Boss, \Image Compression: A Study of the Iterated
Transform Method," to appear in Signal Processing.
[P1] \The Science of Fractals", H.-O. Peitgen, D. Saupe, Editors, Springer Verlag, New
York, 1989.
[P2] \Fractals For Class Room", H.-O. Peitgen, D. Saupe, H. Jurgens, Springer Verlag,
New York, 1991.
[WK] E. Walach, E. Karnin, \A Fractal Based Approach to Image Compression", Proceedings of ICASSP Tokyo, 1986.
24

Documents pareils