La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Introduction à la compression des données La quantité dinformation augmente plus vite que la capacité de stockage. On a besoin de compresser les données.

Présentations similaires


Présentation au sujet: "1 Introduction à la compression des données La quantité dinformation augmente plus vite que la capacité de stockage. On a besoin de compresser les données."— Transcription de la présentation:

1 1 Introduction à la compression des données La quantité dinformation augmente plus vite que la capacité de stockage. On a besoin de compresser les données aussi durant le transfert ! (flot vidéo, acquisition des données scientifiques, médicales, industrielles, téléphonie, etc.) Donc, le domaine a une longue vie devant soi. Des nouveaux importants algorithmes naissent tous les ans.

2 2 Méthodes idéales (universelles et sans pertes) nexistent pas. Supposons lexistence dune technique capable de comprimer tous les fichiers de taille N (bits). Il existe exactement 2 N fichiers de cette taille. Le résultat de compression est une collection de fichiers de taille 0, 1, 2, 3, …, (N-1). Dans cette collection on peut donc avoir au total : fichiers différents. Mais cette somme vaut 2 N-1 – 1, donc au moins un fichier ne subira aucun rétrécissement. Des mauvaises surprises sont donc toujours possibles. Cependant, les usagers dhabitude nen ont pas peur. Une règle pratique est considérée comme universellement valide:

3 3 Ce, qui ne se comprime pas (ou très mal) cest le chaos, une « structure sans structure », un document aléatoire, sans régularités, sans redondances. Or, de tels documents sont rarement comprimés, voire même utiles… Ceci dit, il faut faire attention ! Plusieurs documents possèdent une certaine aléatoirité, ils sont bruités, ou leur structure même implique lexistence des formes irrégulières (ceci par exemple est pertinent à la plupart des documents visuels – images du monde réel…) Rien de fabuleux… Mais cest un fragment dune image dont le contenu a plus de sémantique…

4 4 De telles images peuvent également se comprimer mal. Parfois un peu de « nettoyage » préalable peut être utile. Toute compression cherche à éliminer la redondance, soit par une structuration différente, mais réversible, permettant de restaurer loriginal (compression sans pertes), soit en supprimant une partie dinformation considérée inutile, ou sans importance (méthodes avec pertes, irréversibles). Les méthodes irréversibles offrent un taux de compression beaucoup plus élevé que méthodes sans pertes ! Bien sûr, parfois il est hors de question de perdre linformation. Ceci dit, les critères dévaluation des techniques de compression sont très variés, on ne peut se baser uniquement sur le taux.

5 5 Critères de classification des techniques de compression : 1.Taux de compression. 2.Vitesse de compression. 3.Vitesse de décompression. 4.Usage des ressources (en moyenne et maximal). 5.Rapport qualité/taux (pour les méthodes avec pertes). 6.Sécurité et robustesse. 7.Universalité, adaptativité. 8.Finalement cest carrément idiot, mais inéluctable : le coût dimplémentation/usage dû à la présence de très nombreux brevets… Parfois le choix est dicté par les contraintes économiques et assi- milées

6 6 1.Des petits systèmes sans buffers demandent parfois une grande vitesse de compression/décompression. Systèmes d'acquisition des données embarqués sur les satellites : compression. Téléphones portables : les deux… Flots vidéo – d'habitude – décompression (réception en temps réel, tandis que l'émetteur peut mettre tout dans les tampons). 2.Il ne faut pas oublier quelques aspects légaux. Cryptage, l'ajout des segments d'identification, augmentation de la sécu- rité via CRC, tout cela ajoute de la redondance et diminue la compression. 3.Parfois les données sont critiques sur le plan physique ou juridique. Alors, même si 99.9% de l'information est quali- tative, dans l'imagerie médicale on est obligé souvent d'uti- liser les méthodes sans pertes. 4.Malgré l'existence des méthodes dédiées, l'usage des uni- verselles est populaire à cause de maintenance.

7 7 Classification des méthodes 1.Techniques statistiques, basées sur le fait que les éléments (caractères, pixels, valeurs numériques) ne sont pas équipro- bables [leurs séquences non plus…]. On verra les méthodes de Huffman, le codage arithmétique, etc. Ce sont les disposi- tifs de codage sans pertes. Souvent elles complémentent dautres méthodes, plus puissantes, car elles ne sont pas chères. 2.Techniques structurales. Ici on élimine les redondances par un changement de représentation plus pointu. Par exemple, une plage de pixels de même couleurs est remplacée par le code du pixel et un compteur. Il existent des variantes différentielles de cette technique, des techniques prédictives, etc., populaires pour compresser les sons.

8 8 3.Techniques basées sur des dictionnaires. Cest une variante « structurale » des méthodes statistiques. Les items fréquents sont remplacés par leur références. LZ77, LZW, etc. 4.Techniques sémantiques. On essaie de « comprendre » le document, de trouver son modèle. Techniques difficiles à implémenter universellement, mais très efficaces dans des contextes spécifiques. Parfois permettent de remplacer beaucoup de donnés par leur générateur. Les techniques de compression fractale peuvent – cum grano salis – être assimilées à ces méthodes. 5.Techniques spectrales : Fourier, ondelettes, etc. Une variante de techniques structurales, adaptée aux données numériques (en particulier aux images) mesurables, où on peut décom- poser limage en une collection de fonctions de base. Un bon choix de ces fonctions permet de représenter le document par un petit nombre de coefficients.

9 9 Méthodes statistiques, survol. Les deux plus répandues : Huffman et arithmétique. Il faut commencer par la question : comment mesurer linformation contenue dans un document, et introduire Lentropie de Shannon qui permet dévaluer le nombre de bits par caractère, nécessaire pour coder le document. Ce sujet sera abordé par dautres enseignants. Supposons que le document est composé de caractères appar- tenant à lalphabet de taille L. Linformation (par caractère ; pour le document entier il est naturel dexiger que linformation soit additive et quil faut multiplier le résultat par N, la taille du document…) est le nombre de questions oui/non nécessaires pour identifier lobjet.

10 10 Pour lalphabet de taille L=2 K, le nombre de questions est K, et en général on assigne : S = log 2 (L). Ou, si on définit p – la probabilité dune occurrence, égale à 1/L pour les caractères équiprobables, S = -log 2 (p). 8 bits si L a 256 éléments. Si les caractères ne sont pas équiprobables (p. ex. un deux est beaucoup plus fréquent que les autres), pour identifier le caractère on peut faire mieux que de diviser lalphabet en deux moitiés identiques ; on doit insister dabord sur lhypothèse que cest le plus fréquent qui est tiré du document. Ladditivité, plus un peu de math permet de dériver la formule générale Ceci est la longueur moyenne (en bits) dun caractère. Ils sont toujours considérés non-corrélés !

11 11 Prenons p. ex., lalphabet {A,B,C,D,E} avec des probabilités Lentropie S vaut , ce qui est inférieur à log 2 (5)= Et, en utilisant le codage classique, sachant que 5>4, il faudra quand même prévoir 3 bits pour le code… Méthode de Huffman. On construit dabord une arborescence, dont les feuilles sont les caractères individuels appariés avec leur probabilités. Ensuite on groupe les caractères en groupes en sommant les probabilités – en commençant par les moins probables – et on groupe les groupes jusquà la réduction finale. Ici on aura : ABCDE p :

12 12 À présent, chaque caractère est codé en suivant les lignes qui le connectent à la racine (depuis la racine). A=0; B=100; C=101; D=110; E=111. La longueur moyenne par caractère dans un document conforme à la statistique a priori est 0.4*1+(0.6)*3 = 2.2.

13 13 Ceci est mieux que le codage régulier, mais pire que le minimum théorique, car le cas nest pas favorable. Il y a des problèmes. Dhabitude on ne connaît pas les fréquences a priori dans un document arbitraire, et il faut coder la technique de Huffman adaptative, plus coûteuse. Répétons que la technique de Huffman souvent accompagne les autres, par exemple la compression spectrale JPEG se termine par létape statistique. Compression arithmétique On va commencer par une histoire de science-fiction. Un extra-terrestre a visité notre belle Terre. Nos représentants élus lui ont montré toutes les merveilles :

14 14 Le Mont St. Michel, les photos dEstelle Hallyday à poil, un Livarot hors dage, la collection de cigares de Bill Clinton, etc. Et il répondit : « ne craignez rien, jai mémorisé tout : le héro- ïsme des agents de la SNCF dans leur bataille pour la retraite à 35 ans, et le nombre de bourses à lUniversité de Caen, etc. ». Et, il a montré une petite baguette en diamant extragalactique, avec une petite marque au milieu. Et le gars est reparti dans sa soucoupe volante. Les élus du Peuple étaient surpris : « mais, comment M. le ET, ou Thor, ou quiconque, vous nallez pas prendre des photos, écrire un rapport, ou mémoriser autrement nos merveilles? »

15 15 Le secret était là. La marque correspondait à un nombre réel (disons, une fraction entre 0 et 1) avec beaucoup de chiffres significatifs. On a pu coder ainsi un document très long, contenant tous les détails sur les vacances des politiciens Français pendant la canicule. Les questions à présent sont : Comment coder et décoder un document « normal »? Comment le faire de manière efficace, incrémentale. Et, naturellement, comment convaincre les gens que cela marche. (La technique est bonne, et elle a été brevetée, cétait une option pour JPEG, et continue à progresser, car les restrictions du brevet ne sont pas éternels.

16 16 On commence par représenter lalphabet par une « baguette » divisée en segments, dont les longueurs correspondent aux probabilités de chaque caractère. Le codage marche comme suit : Si le premier caractère est, disons, C, ceci correspond à lintervalle [0.6 – 0.75]. Cet intervalle représente le document. On « gonfle » cet intervalle, et on lit le second caractère. Disons : A. Lintervalle est raffiné à [0.6 – 0.66] (0.06 = 0.4*0.15).

17 17 Ainsi, la position et la largeur de lintervalle correspondant à chaque caractère lu, se transforme en « mapping » qui augmente la précision du résultat. Après avoir lu caractères, la précision sera énorme, le nombre final (quelque part dans lintervalle résultant) aura plusieurs chiffres significatifs. Ceci nest pas encore lalgorithme du codage, puisquil est difficilement imaginable le stockage dun tel nombre. Les compresseurs ne marchent pas comme ça ! On procède de manière suivante. Si un, ou plusieurs chiffres (notre présentation utilise la base décimale, mais naturellement limplémentation se fait en binaire) sont figés, p. ex. ici, si lintervalle est devenu [0.6 – 0.66], le premier chiffre ne bougera plus. On peut écrire « 6 » sur le flot de sortie, « renormaliser » lintervalle restant, et continuer la procédure, jusquà la fin.

18 18 Le décodage est similaire. Supposons que le premier chiffre reçu par le décodeur est « 5 ». Ceci signifie une fraction 0.5… Le premier caractère est forcément B. Si on sait que la fraction est F=0.528…, ceci implique : F = Mais la renormalisation donne 0.128/0.2 (la longueur de B) = Ce reste tombe dans lintervalle « C », donc le début du document est BC… Ensuite = /0.15=0.267, cest-à-dire, le caractère A. Les détails mathématiques ne sont donc pas difficiles, mais le codage doit être très soigneux. Si les fréquences sont bien connues, la technique arithmétique peut donner des résultats meilleurs que Huffman ; limplémen- tation est un peu plus lente.

19 19 Techniques structurelles, RLE, LPC, et autre bazar… La méthode RLE (Run-Length encoding) est adaptée aux images style bandes dessinées (ou illustrations pas trop ambitieuses), éventuellement aux images de synthèse, là où on peut trouver des « plages » de couleurs conséquentes et fréquentes. Si une couleur est codée comme, disons, 165, et on trouve une séquence de 80 pixels identiques, on code (80,165). Le gain est évident. Il est évident aussi que la technique ne convient pas à la compression des photos, où il a beaucoup de transitions douces, mais pas de plages. On peut cependant généraliser lapproche, et contituer plusieurs variantes de LPC (Linear predictive Coding).

20 20 Linstance la plus simple est le codage différentiel. Si limage contient un gradient liéaire, une séquence : 45, 47, 49, 51, 53, … les différences Δ i = C i+1 – C i sont toutes égales à 2, et RLE marche. (Il faut préserver le premier item tel quel). Dans un cas plus complexe, p. ex. pour la séquence 46, 50, 52, 49, 56, 54, … on obtient Δ = {4, 2, -3, 7, -2, …} et rien nest évident. Cependant, on voit deux choses : 1. En moyenne la séquence dorigine est croissante, les différences oscillent autour de zéro. 2. Elles sont plutôt petites ; on peut les coder sur un nombre moindre de bits. Sur un plan plus général, on peut – ayant les caractères C 1, C 2, … C n, extrapoler (p. ex. par un polynôme) la valeur suivante, et en coder seulement la différence. Ceci est le LPC.

21 21 On peut aussi utiliser une prédiction 2-dimensionnelle, par exemple déduire la valeur dun pixel en fonction de ses voisins : Bien sûr, la généralisation 3D est aussi possible (pour la compression des images volumiques). On voit clairement quici ce qui compte ce nest pas la fréquence dun caractère ou pixel, mais sa relation aux autres, les possibles corrélations. Des techniques statistiques qui sappuient sur le fait que la probabilité dun caractère dépend de son prédéces- seur(s) existent aussi. On parle de méthodes Markoviennes. Elles ont besoin de mémoire pour stocker les probabilités conditionnelles, et ceci peut être assez onéreux.

22 22 Méthodes basées sur les dictionnaires La structure/redondance résultante doccurrence répétitive des séquences ditems (des mots, des éléments des motifs géomé- triques, etc.) peut être éliminée grâce aux dictionnaires, qui stockent les motifs les plus fréquents, et permettent de remplacer un « mot » fréquent par son « indice ». Les plus populaires sont basées sur les variantes de LZW [Lempel-Ziv-Welsh] (Unix compress, GIF, etc.) et LZ77 (Images PNG, gzip, etc.). La méthode LZ77 utilise le document même comme son « dictionnaire ». On prévoit une zone assez longue, disons, de 32K qui précède le point de lecture, comme une zone de recherche. Si dans son intérieur on trouve un motif (mot) identique avec le courant, on code son décalage (offset) et sa longueur. Cette fenêtre « glisse » avec la lecture.

23 23 Le bon fonctionnement de la méthode est basée sur le fait que les répétitions sont souvent locales, un mot est fréquent non pas dans le document entier et dispersé, mais dans une de ces parties. Les combinaisons de pixels (gradients spécifiques) dans des images aussi. La méthode LZW construit et utilise un dictionnaire spécial, de taille variable. Toute information émise par le codeur ce sont les indices, mais dabord on place lalphabet en début du diction- naire. Quand on trouve dans le document codé une séquence de M lettres, le préfixe (M-1) a été déjà vu et figure dans le diction- naire. Donc, on stocke la nouvelle séquence de manière économique. On ne sort pas directement son indice, on reste toujours « un pas en arrière ».

24 24 Quand le codeur trouve une séquence déjà vue, il continue la lecture, car la séquence connue peut être plus longue ; rien ne sort du codeur. Seulement quand la séquence devient « neuve », le codage a lieu. Le dictionnaire croît. Si au début 258 éléms suffisaient (lalpha- bet, le EOF et un caractère spéciale : « casser le dictionnaire »), et donc 9 bits par item, on aura besoin de 10, 11, etc. bits plus tard pour chaque indice. Donc, le code est de taille variable. Ceci nest pas grave. Le décodeur sait quand lallocation courante ainsi que le codage débordent, car il construit le dic- tionnaire « en synchronie » avec le codeur. Si la taille du diction- naire dépasse les bornes du protocole établi (p. ex. 12 bits pour GIF), on supprime le dictionnaire, et on recommence. Ceci correspond à la localité des références.

25 25 Les photos, ou, plus généralement, les séquences numériques relativement régulières, où le passage entre les voisins est rarement abrupt, peuvent être considérées comme des fonctions régulières sur un support fini. Pour des images en niveau de gris, ce niveau est la valeur de la fonction, sinon il faut choisir un espace de couleurs, et travailler 3 plans séparément. On peut donc effectuer leur développement en série de Fourier. En fait, pour des raisons pratiques, on utilise un autre procédé, la transformation cosinus discrète, qui est une variante réelle de la méthode de Fourier. On obtiendra ainsi le nombre de coefficients égal à la taille du document. Aucune information nest perdue. Compression spectrale

26 26 Voici un petit fragment dune image, où on voit la douceur des transitions (absence des fréquences très hautes). Le résultat de la transformée, à droite, dûment normalisé, est beaucoup moins structuré ! On peut espérer que cette représentation rend la redondance plus explicite. On commence donc par un peu de math :

27 27 Mais on espère quil soit possible de « décapiter » le résultat, de supprimer un certain nombre de coefficients (en les remplaçant par zéro), sans changer le contenu informationnel de manière significative. Plus généralement on effectue un seuillage (quantisation ou quantification) du résultat. Un tel procédé constitue la base de presque toutes les techniques de compression avec pertes. On stocke le résultat, mais avant on améliore légèrement le taux, en comprimant le résultat avec Huffman (ou cod. arith.). Le décodeur doit exécuter la transformée inverse, la IDCT :

28 28 Dans JPEG on ne transforme pas limage entière. Le résultat dune telle transformation aurait accumulé des informations sur les corrélations entre les parties très distantes de limage, ce qui na pas beaucoup de sens, et apporte des difficultés numériques. On coupe limage en blocs de 8*8 pixels, la DCT et seuillage concernent un bloc. Voici la visualisation du sens des fonctions de base :

29 29 Le seuillage est sélectif, on nenlève tout simplement pas les coeffs les plus petits, mais on ajoute de la pondération : fluctuations « denses » (coefficients loin du coin supérieur gauche) sont moins importantes visuellement. Donc, la sérialisation (le document est 1-dim même si limage est 2-dimensionnelle) suit la règle visualisée à droite. Cest lordre de sto- ckage, et aussi un peu, lordre de la décrois- sance des facteurs de pondération avant le seuillage. La compression finale, statistique est globale. Mot final. En cas de transitions « dures » fréquentes, JPEG soit est inefficace, soit produit des artefacts. Ne jamais comprimez avec JPEG des documents visuels contenant des textes !

30 30 Voici une image – original, et quelques compressions JPEG. La matrice occupe 150kB. Les JPGs : 19 et 12K. En bas, avec le taux de compression plus impressionant : 5 et 3K. Un PNG occupe 65K, mais en 16 millions de couleurs! En 256 : 29K.

31 31 On voit que la cohérence entre les zones voisines est très importante. Passons donc au sujet de cohérence temporelle : Compression MPEG des images animées. Une séquence animée est composée de « cadres » (frames) similaires, qui visualisent une scène contiguë. À lintérieur du chaque cadre on peut, et on effectue une compression intra- frame (typiquement une variante du JPEG), mais des gains plus importants sont possibles grâce à la relation entre les images voisines dans le temps. On choisit dabord un percentage (typiquement 1/12) de cadres comprimés uniquement spatiellement, ce sont les cadres « I ». Le reste est transformée spécialement, une partie ce sont les cadres « P » (comme prévision). Il y aura aussi « B » pour prévision bi- directionnelle.

32 32 Pour construire un cadre « P » à partir dun original il ne suffit pas calculer les différences, car tout mouvement écrase toute correspondance géométrique. On divise limage en blocs (8*8, 16*16 ; la luminance est plus importante que les canaux de chrominance [teintes]). Pour chaque bloc on cherche sur le prédécesseur (un frame I ou P) le bloc correspondant le plus adéquat possible. On code le offset (le décalage) par rapport à sa nouvelle position, éventuellement la différence entre les deux blocs compactée par des techniques déjà mentionnées. Un bloc B résulte de la comparaison de limage avec le prédé- cesseur et avec le successeur. On choisit le meilleur, mais on peut également choisir la moyenne, et aussi exploiter la méthode différentielle.

33 33 On peut donc décoder la séquence temporelle « virtuelle » IBBPBBPBBPBBIBBPBBPB..., mais le codeur envoie les frames dans un ordre différent, le premier P doit sortir avant les premiers B (sinon, lanticipation nest pas possible). Les modules du décodeur peuvent travailler en parallèle, et décoder les frames dans un ordre tordu. Le nom MPEG nest pas synonymique avec les protocoles de compression ; les standards MPEG 4 et MPEG 7 sont infiniment plus riches. En particulier, la célèbre technique MP3 de compression de la musique appartient également au domaine MPEG. Quelques mots à son sujet :

34 34 Compression MP3 des flots acoustiques. On profite de quelques propriétés du système auditif humain, pas seulement des redondances structurelles, statistiques, etc. 1.Nous ne pouvons entendre des sons de fréquence > 20 kHz. Donc, on peut commencer par le filtrage qui élimine des fréquences trop hautes. Ceci diminue déjà linformation contenue dans le flot. Mais il ne faut pas faire cela trop bêtement… Le flot acoustique analogue est discrétisé. Pour éviter des alias (fréquences écho, mauvaises), il ne faut pas descendre en dessous de la fréquence limite de Nyquist, égale à 2 × la fréquence maximale rendue. On utilise souvent 44 kHz. 2.On sait que la sensibilité de loreille dépend de la fréquence, on entend moins bien les sons aigus.

35 35 La courbe de sensibilité normale :

36 36 3.Ensuite, il existe un phénomène de masquage. Si un son très fort coexiste avec un autre, plus faible, de fréquence pas trop éloignée, ce second son peut devenir inaudible. On effectue donc lanalyse spectrale fenêtrée du signal, on le divise en quelques dizaines de bandes, et dans chaque bande on élimine les contributions trop faibles ou masquées. 4.On sait quaprès avoir entendu un bruit très fort, linertie de notre appareil auditif nous empêche dentendre pendant quelques dizaines de milisecondes un son comparable. On élimine de telles contributions. Curieusement, on a découvert que les signaux plus forts reçus par loreille, sont plus rapides dans la partie neurologique de lappareil, que les signaux plus faibles. Ceci casse la causa- lité triviale, et ensemble avec les particularités de la neuro- psychologie de notre mémoire fait que lon « oublie » un signal faible, si dans 4 msec on entend un plus fort !

37 37 Tout ensemble, complété par des techniques statistiques, etc., donne une excellente technique de compression. Taux 1/10 par rapport à un fichier.wav sont typiques. Cependant, tout dépend de ce que lon veut faire avec. Pour écouter quelque fois une chanson, le taux déchantillonnage 64 kbits/sec est suffisant. Si on veut graver un CD, il faut prévoir le double… Tout ceci montre que les spécialistes du domaine ne peuvent pas être recrutés parmi les « purs algorithmiciens », ou purs ingé- nieurs du son. Tout le domaine de compression est une affaire multidisciplinaire. Lanalyse spectrale classique, avec les transformées de Fourier commence depuis quelques années à exploiter très intensement une autre base de fonctions que les sinus et les cosinus. Il faut donc savoir un peu sur :

38 38 Compression par ondelettes La technologie des ondelettes est une catégorie très riche, il y a plusieurs bases dondelettes, et les gens inventent toujours des nouvelles fonctions, mieux adaptées au problème. En général, une ondelette est une fonction qui oscille (comme cosinus), mais qui possède un support fini (ou décroissant très rapidement en dehors dun certain intervalle). (Dailleurs, cette propriété permet de ne pas utiliser les blocs, comme en JPEG ; limage entière subit la transformation. Lidée générale est simple : on développe le document – un flot numérique, une image, etc. en ondelettes, on quantise et par seuillage on élimine un certain nombre de coefficients, et cest tout. Le décodeur renverse la transformée.

39 39 Comment ça fonctionne? Imaginez une séquence numérique et son graphique : Le graphique est une « fonction », en apparence représentée par une ligne contiguë, même si nous savons quen fait ce nest quun ensemble discret de points.

40 40 On peut la représenter autrement, par exemple : Comme fonction mathématique, notre objet est une somme de fonctions à droite, des seuils égaux à 1 entre n et n+1 et zéro ailleurs, pondérées par des valeurs appropriées (pour lhistogramme).

41 41 Un seuil de base : la fonction égale à 1 entre 0 et 1, et zéro ailleurs, sappelle la fonction de base de Haar. Il en faut deux, entre 0 et 1, et décalée : entre 1 et 2, pour avoir deux pixels, entre 0 et 2. Mais nous pouvons changer de représentation. Construire un « macro-pixel » égal à la moyenne de deux, entre 0 et 2 : c=(p 0 +p 1 )/2, et compléter linformation par la différence : d=p 0 -c. Pour la manipulation cela suffit, pour la visualisation on peut supposer, que lon combine loriginal en prenant le « macropixel » deux fois plus large, et une fonction oscillante :

42 42 Cette fonction, égale à 1 entre 0 et 1 et –1 entre 1 et 2 (ou normalisée différemment : 1 entre 0 et 0.5 et –1 entre 0.5 et 1) cest une ondelette (de Haar). La séquence de 16 nombres subit la transformation suivante : on calcule 8 moyennes : 17,5, 22,5, etc., et 8 « fluctuations »: -2,5, +2,5,.... Ensuite on répète la même procédure avec les moyennes : 4 moyennes de 4 pixels, plus 4 fluctuations. On continue encore deux fois, jusquà la moyenne finale. Cest la représentation en ondelettes. On garde une seule moyenne, plus les contributions oscillantes. Le reste est évident : seuillage, et suppression dun certain nombre de coefficients. Dans la pratique on utilise la base de Haar rarement, elle est un peu misérabiliste… Souvent il faut calculer les moyennes pondérées de 4, 6, 8 etc. pixels, et les ondelettes sont des fonctions très complexes. Mais on ne les regarde pas !

43 43 Les ondelettes de degré supérieur, par exemple celles conçues par Ingrid Daubechies, où on combine quatre éléments pour obtenir la moyenne sont des fonctions fractales, assez épouvan- tables…

44 44 Bien sûr, pour les images il faut effectuer les transformées « horizontale » et « verticale ». Il faut décider quel espace de couleurs utiliser, etc. La technique est adaptative, et très efficace. Elle constitue la base du JPEG Son implémentation nest pas difficile, mais demande une certaine expérience dans le domaine numérique. Commentaire La quantisation (seuillage) peut intervenir dans plusieurs con- textes. On peut p. ex. diminuer le nombre de couleurs, en utili- sant une palette restreinte. Ceci est également une compression. Parfois on essaie de « bricoler » les couleurs intermédiaires par dithering, on remplace une plage orange par une mixture de pixels jaunes et rouges. Attention, ceci complexifie la structure, et rend les méthodes structurales moins efficaces !!

45 45 Compression fractale Cest une technique un peu bizarre… Elle a eu une mauvaise presse à cause du fait que son inventeur, Michael Barnsley, sest com-porté de manière pas très ouverte, et les promesses sans justifica-tion ont précédé lanalyse (et les premières réalisations pratiques faites par Arnaud Jacquin, un étudiant de Barnsley). La technique a été un peu oubliée aujourdhui, mais conceptuel- lement elle reste assez intéressante/intrigante. On commence par la synthèse dune image, non pas par son traitement.

46 46 Ce nest pas une image quelconque, mais un objet auto-similaire. On peut faire des images de ce genre en utilisant une « photoco- pieuse retrécissante » avec plusieurs lentilles: plusieurs copies de loriginal, mais plus petites et transformées (translation et rota- tion). Voici ce qui se passe si on itère plusieurs fois cette manipulation :

47 47 Quelle que soit limage dorigine, si sa copie multiple est passée par la photocopieuse, le résultat aussi, etc., limage finale na rien à voir avec loriginal, et est conditionnée seulement par les paramètres de la copieuse. Le résultat final, le triangle de Sierpinski est lattracteur de cette collection de 3 transforma- tions consistant dun facteur déchelle et 2 paramètres de translation. Au total : 9 paramètres, 9 nombres… Ainsi, quelques paramètres à peine (plus un programme univer- sel) définissent une image de complexité conséquente ! Avec plus de paramètres (5 transformations, ou une dizaine…) on peut arriver à créer des images assez impressionnantes. Par Exemple, 5 tranformations suffisent pour créer limage de larbre sur la page suivante :

48 48

49 49 (Lalgorithme de création de telles images peuvent utiliser la technique de « copieuse », mais plus souvent on profite dune technique aléatoire : on commence par un point, et on applique aléatoirement une des transformations. On fait cela un certain nombre de fois sans rien afficher, et ensuite, quand les points convergent vers lattracteur, on les dessine). Mais quest-ce que tout cela à voir avec la compres- sion dimages? Les vraies images ne sont pas auto- similaires ! Oui, et non… Certes, la technique est différente, mais les concepts sont similaires. Observons quune image peut posséder des zones similaires modulo retrécissement (parfois aussi : rotation ou changement du contraste des couleurs), et – bien sûr – translation.

50 50 Voici une vielle amie : Lena.

51 51 La description qualitative de lalgorithme de compression est dont la suivante : On parcourt limage et on la divise en blocs (disons, de 8x8 pixels). Pour chaque bloc on cherche un macro-bloc, 2 fois plus grand, et similaire (modulo rotation de multiple de 90°, et éventuellement avec la luminosité et contraste différents). On stocke les paramètres des opérations qui transformeraient le macro-bloc, en bloc dorigine. Donc, 2 nombres qui décrivent le positionnement, deux nombres responsables du changement de contenu-couleur (si image en niveaux du gris ; pour des images couleur cest plus compliqué), et les paramètres discrètes décrivant la rotation. Le problème est que trouver des macro-blocs très similaires est difficile, parfois impossible…

52 52 Lessentiel pour la compression est cette recherche des macro- blocs. Plusieurs variantes ont vu le jour, afin daccélérer la re- cherche, ou lévaluation de la qualité de lapproximation. La compression fractale est une méthode très lente… On a exploité la division en triangles déformables, et aussi les quadtrees. De temps en temps quelquun propose une nouvelle technique, mais le progrès est lent. Plusieurs chercheurs ont concentré leurs investigations sur les ondelettes, et les techniques fractales ne sont plus à la mode.. Après le codage – compression, il faut préciser comment on décompresse le fichier contenant la description des paramètres des transformations des blocs. Cette procédure est rapide. On commence par une image quelconque, et on lance itérativement la « copieuse ».

53 53 Voici les itérations zéro, un, deux et dix, avec Lena comme loriginal comprimé.

54 54 La représentation compressée dune image ne contient pas – en principe - sa taille physique, on peut décompresser limage plus grande ou plus petite (un peu étonnant…). Et alors, ce qui se passe na rien à voir avec la manifestation des « blocs » carrés, ou « macro-pixels ». Comparons le cas fractal avec un simple changement déchelle du chapeau de Lena : Ainsi la décompression fractale peut « ajouter des détails », ce qui peut être utile pour rendre une forêt, une pelouse, etc.

55 55 Actuellement les techniques basées sur les IFS (Iterated function systems) trouvent aussi quelques applications dans la re-synthèse des textures, où on représente des textures – décorations surfa- ciques des modèles 3D non pas par des images (bitmaps), mais on les engendre procéduralement. Les programmes de génération sont pilotés par des paramètres extraits des textures réelles (forêt lointaine, sable, pelouse, relief des montagnes, une surface métallique rouillée, etc.). Le résultat nest pas identique à loriginal, mais il possède les mêmes propriétés statistiques : répartition des couleurs, « rugosité », etc. On peut considérer que ceci est également une compression. À présent vous allez souffrir une bonne dose de théorie…

56 56


Télécharger ppt "1 Introduction à la compression des données La quantité dinformation augmente plus vite que la capacité de stockage. On a besoin de compresser les données."

Présentations similaires


Annonces Google