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