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

Partie 3 : Traitement de l’Information Application à la compression

Présentations similaires


Présentation au sujet: "Partie 3 : Traitement de l’Information Application à la compression"— Transcription de la présentation:

1 Partie 3 : Traitement de l’Information Application à la compression
Master IMA M1 UE Signal et Image Partie 3 : Traitement de l’Information Application à la compression P. Courtellemont Pierre Courtellemont – Master IMA – Signal et Image

2 Plan du cours I. Introduction Approche fréquentielle
Signaux monodimensionnels périodiques Signaux quelconques Signaux numériques, discrétisation, échantillonnage Observation spectrale, TFD et TFD 2D Systèmes numériques Filtres numériques Produits de convolution. Cas 2D Sur et sous échantillonnage. Bancs de filtres Traitement des Images. Approches multi résolution II. Signaux aléatoires variables aléatoires Processus aléatoires. Stationnarité Processus MA, AR et ARMA Estimation des paramètres d’un AR III. Traitement de l’information Application à la compression codage de source, entropie, compression sans perte : codages entropiques par dictionnaire, par prédiction… Codages par transformée La DCT et la compression JPEG Quantifications scalaire et vectorielle IV. Communications numériques Modulations numériques modulation par impulsions codées transmission du signal numérique Applications : RDS, NICAM… Détection et correction d’erreurs Pierre Courtellemont – Master IMA – Signal et Image

3 Approche intuitive de l’Information
I. Introduction. Approche intuitive de l’Information On ne peut pas prévoir l’évolution ultérieure d’un signal aléatoire ! La connaissance de sa valeur à l’instant présent apporte donc un renseignement, on dit que le signal transporte de l’information. Cette grandeur, que l’on perçoit de façon intuitive, n’est pas facile à définir quantitativement, il est cependant naturel de lui attribuer certaines propriétés : - c’est une grandeur toujours positive, - elle est additive, toute contribution du signal apporte une quantité d’information qui s’ajoute à celle que l’on possède déjà, - elle est liée à la probabilité associée à l’évènement : la quantité d’information doit être d’autant plus grande que la probabilité est faible. L’idée principale de la théorie de l’information est de dire que si il n’y a pas d’incertitude vis à vis du message émis par la source, il n’y a pas d’information à la réception du message. Pierre Courtellemont – Master IMA – Signal et Image

4 Remarque : information ou incertitude ?
Il s’agit bien de la même notion abordée d’un point de vue différent : - a priori, par l'incertitude qui règne sur la réalisation d’un événement E, - a posteriori, par l'information apportée par la réalisation de cet événement. On pourra parler d’incertitude ou d’information, ou encore de self-information. On appellera information mutuelle l'information apportée par un événement F sur un événement E. C’est la diminution de l'incertitude sur E lorsque F est réalisé. (égale aussi à l’information apportée par E sur F). Nous allons voir également que l’information peut être perçue comme le nombre d’éléments nécessaires à la codification de l’événement considéré, dans un code donné. (Par exemple, le nombre de bits nécessaires au codage de cet événement. Pierre Courtellemont – Master IMA – Signal et Image

5 Définition de l’unité d’information
Soit une variable aléatoire de loi de probabilité uniforme (cas des jeux de hasard : loterie, lancer de dés, choix d’une carte dans un paquet,…). Soit n le nombre de résultats possibles. La connaissance de l’un de ces résultats apporte une information I(n) qui ne dépend que de n. I(n) doit être une fonction monotone croissante de n. La connaissance du numéro gagnant de la Loterie nationale apporte une quantité d’information I(106) alors qu’apprendre qu’un dé s’est arrêté sur le 5 n’apporte que I(6) avec I(106) > I(6). Considérons maintenant une expérience dont le résultat est double : par exemple, le choix au hasard d’une carte dans un paquet de 32 cartes, suivi du lancer d’un dé. La quantité d’information acquise au total est donc : I(32) + I(6) = I(n1) + I(n2). Si l’on considère maintenant l’expérience globale, elle peut conduire à 32*6 = n1n2 résultats différents, qui sont tous équiprobables. Un résultat complet transporte donc une quantité d’information I(n1n2). D’où la relation I(n1n2) = I(n1) + I(n2). Pierre Courtellemont – Master IMA – Signal et Image

6 (la solution générale est I(n)=b log(n)/log(a) avec b>0 et a>1)
La fonction I doit être monotone croissante. Parmi les solutions possibles de cette équation fonctionnelle, la plus simple est : I(n) = log n (la solution générale est I(n)=b log(n)/log(a) avec b>0 et a>1) La base des logarithmes n’est donc pas définie, à chaque choix correspond une unité de quantité d’information : - en base 2 : I(n) = log2n, l’unité est le bit, parfois appelé shannon ; 1 bit correspond à l’information associée à une partie de pile ou face (n = 2), (bit = binary unit ici et non binary digit, qui ne prend que des valeurs entières) - en base 10 : I(n) = log n, l’unité est le decit ou hartley ; c’est l’information associée à chaque chiffre (de 0 à 9) lors du tirage d’un numéro gagnant par exemple ; - le nat, associé aux logarithmes naturels, n’a qu’un intérêt théorique. Passons à une deuxième situation : Abandonnons l’hypothèse d’équiprobabilité des résultats possibles. Pour cela, nous allons revenir au choix aléatoire d’une carte dans un jeu, mais en divisant les résultats en deux groupes : - groupe 1 (tous les trèfles) de n1 éléments (n1 = 8) ; - groupe 2 (les autres cartes) de n2 éléments (n2 = 24). Pierre Courtellemont – Master IMA – Signal et Image

7 On peut énoncer le résultat d’un tirage en donnant deux renseignements successifs :
- le numéro du groupe dans lequel se trouve le résultat ; - le numéro de l’élément sorti dans le groupe. Par exemple, si une dame de trèfle est sortie, on annoncera que le résultat appartient au groupe 1 et est le sixième élément de ce groupe. L’information étant additive, on doit avoir : Information totale = information sur groupe + information du n° dans le groupe Dans cette égalité, le terme de gauche vaut évidemment I (n = n1 + n2) car les n = n1 + n2 résultats possibles sont équiprobables. Le dernier terme à droite vaut I(n1 ). On en déduit : Information sur le groupe = I(n)-I(n1) = log(n) – log (n1) = log(n1+n2)/n1) = - log (n1/n1+n2) = - log(P1) avec P1, la probabilité de tomber sur un résultat du groupe 1. D’une manière générale, la quantité d’information apportée par la connaissance de la réalisation d’un événement de probabilité P est ainsi : I = – log P Pierre Courtellemont – Master IMA – Signal et Image

8 Entropie Les événements émis par une source ne sont généralement pas équiprobables, la quantité d’information reçue est fonction de l’événement et ne peut donc caractériser la source. Pour obtenir ce résultat, il faut faire une moyenne sur tous les événements possibles : si Pi est la probabilité d’un événement i, la quantité moyenne d’information est : Cette quantité ne dépend que de la source, c’est son entropie. Une source qui transmet les résultats obtenus par lancer de dés (Résultats équiprobables P(i)= 1/6 quelque soit i) a pour entropie : Pierre Courtellemont – Master IMA – Signal et Image

9 Supposons le dé pipé. Les résultats ne sont plus équiprobables, on peut montrer alors que l’entropie est plus faible : Supposons que le chiffre 2 a 1 chance sur 2 de sortir. Les probabilités sont alors P(1)=P(3)=P(4)=P(5)=P(6)=0.5/5=0.1 P(2)=0.5 et l’entropie : L'entropie d'une variable aléatoire X à n valeurs possibles est maximum et vaut log(n) lorsque la loi de X est uniforme. (L’entropie d’une source sera maximale lorsque tous les messages qu’elle émet seront équiprobables). Pierre Courtellemont – Master IMA – Signal et Image

10 - Parenthèse - Entropie dans le cas d’un signal analogique Pour un signal analogique dont le spectre est limité à une fréquence Fmax, le théorème d’échantillonnage nous enseigne que toute l’information peut être retrouvée à partir de Fe = 2 Fmax échantillons prélevés chaque seconde. La quantité d’information contenue dans le signal en une seconde est donc 2 Fmax fois celle contenue dans un échantillon. Considérons l’un de ces échantillons. C’est une grandeur analogique dont l’amplitude est comprise entre deux limites +/- A. Si nous la mesurons avec un pas de quantification q, il ne peut exister que 2A/q résultats possibles, dont chacun a une probabilité p(k). Nous sommes dans une situation discrète permettant la définition d’une entropie : Soit Pk=P(x)Dx, avec P(x) la densité de probabilité du signal analogique x défini dans l’intervalle +/-A. Donc : Pierre Courtellemont – Master IMA – Signal et Image

11 Il est naturel de définir l’entropie d’un signal analogique en faisant tendre Dx vers zéro, expression se scindant en 2 termes La convergence du deuxième terme pose un problème délicat mais pour un grand nombre de cas simples, il tend vers zéro, ce qui conduit à la définition suivante de l’entropie : L’entropie d’un signal est donc fonction de sa densité de probabilité, on doit donc pouvoir rechercher quel type de fonction p (x) donne un maximum pour H. En pratique, il faut ajouter une contrainte supplémentaire, par exemple imposer la puissance. Le problème est alors : à donné, chercher p (x) qui rend maximale l’entropie H. La solution fait appel à une méthode variationnelle. On aboutit à : Pierre Courtellemont – Master IMA – Signal et Image

12 C’est une distribution gaussienne de variance P.
D’où le résultat fondamental : à puissance égale, le signal gaussien est celui qui transporte le maximum d’information. Le signal gaussien étant celui qui transporte, à puissance égale, le plus d’information, le bruit gaussien est celui qui dégrade le plus l’information transmise. En considérant que la somme de deux processus gaussiens est gaussienne et sa puissance est la somme des puissances, et en considérant les entropies d’évènements liés (résultats issus de la formule de Bayes en Probabilités), on peut montrer finalement : et la capacité totale du canal est l’information portée par les 2 Fmax échantillons par seconde : C’est la formule de Shannon que nous avions déjà rencontrée (cours Interfaces – IUP1) - Fin de la parenthèse - Pierre Courtellemont – Master IMA – Signal et Image

13 Remarque : Avant d’aller au delà, distinguons : - la source d’information qui émet des messages, - le canal de transmission qui assure l’acheminement du message, - le récepteur qui, en fin de canal, exploite les informations. Le schéma d’une communication peut être représenté ainsi : Codage source Codage canal Source Canal Décodage source Décodage canal Récepteur Le codage de source consiste à éliminer les redondances de la source afin d'en réduire le débit binaire. Le codage de canal a un rôle de protection contre les erreurs (dues à la transmission sur le canal) qui est assuré en ajoutant de la redondance (codes correcteurs d'erreurs). Les points de vue codage de source et codage de canal sont donc fondamentalement opposés. Pierre Courtellemont – Master IMA – Signal et Image

14 signal = information + redondance.
II. Formalisation : quantité d’information de source et entropie « codage de source » Généralement, on peut écrire : signal = information + redondance. Une partie de la redondance vient de la dépendance entre les événements consécutifs. Exemple : une suite de caractère lue à partir d’un fichier ou d’un canal de transmission quelconque est : Monsieu Le prochain caractère, r, est connu à l’avance de façon certaine et possède une probabilité conditionnée aux sept précédents, égale à 1. Ainsi ce huitième caractère (on parlera en général de symbole), lorsqu’il apparaît (on parle d’événement), ne nous apprend rien dans la mesure où l’on s’y attendait sûrement ! Il n’apporte aucune information, on parle de redondance. Lorsque la production de symboles est conditionnée par les symboles précédents, on parle de source markovienne (ou de chaîne de Markov). Lorsque la corrélation s’étend sur n symboles successifs, on dit que la source est markovienne d’ordre n. Pierre Courtellemont – Master IMA – Signal et Image

15 Un exemple historique Si on considère les 26 lettres de l’alphabet + l’espace (27 symboles), l’entropie vaut 4,75 dans le cas d’une source émettant les caractères de manière équiprobable. Shannon a estimé les fréquences relatives des lettres dans un texte anglais (après l’espace 0.182, la lettre « e » est la plus probable : 0.107, puis « t » avec 0.086… jusqu’à « z » avec Avec ces chiffres, l’entropie tombe à 4,03. Si on tient compte des dépendances entre une lettre et la suivante (source markovienne d’ordre 2), par le calcul d’entropie conditionnelle, on obtient 3,32 … La prise en compte de 8 lettres consécutives dans la langue anglaise donne une entropie conditionnelle de 1,86. Comme 1,86/4,75 = 40% environ, la notion d’entropie (désordre) signifie qu’on est 40% aussi libre de choisir une lettre pour écrire en anglais qu’en tirant au hasard des lettres. Les 60% (=1-h) dus à la structure du langage représente la redondance. A titre de curiosité : XFOML RHKHJFFJUJ ZLPWCFWCKCYJFFJEYVKCQSGHYDQPAAMKBZAACIBZLHJQD est une séquence aléatoire, OCRO HLI RGWR NMIEL VIS EU LL NBNESEBYA TH EEI ALHENHTTPA OOBTTVA NAH BRL est une séquence respectant les fréquences d’apparition des lettres de la langue anglaise. Pierre Courtellemont – Master IMA – Signal et Image

16 Pour réaliser une séquence correspondant à un source markovienne d’ordre 2, il faut procéder ainsi : on met dans 27 urnes, des couples de lettres. Dans une urne donnée, tous les couples commencent par la même lettre, la seconde dans les proportions respectant l’analyse de la langue anglaise. Quand on tire un couple dans une urne, on choisi comme urne suivante celle contenant les couples commençant par la seconde lettre du 1er tirage et ainsi de suite. ON IE ANTSOUTINYS ARE T INCORE ST BE S DEAMY ACHIN DILONASIVE TUCOOWE AT TEASONARE FUSO TIZIN ANDY TOBE SEACE CTISBE est une séquence obtenue ainsi et IS NO IST LAT WHEY CRATICT FROURE BIRS GROCID PONDENOME OF DEMONSTRURES OF THE REPTAGIN IS REGOACTIONA OF CRE est une séquence respectant les probabilités de triplets de lettres (source markovienne d’ordre 3). On commence à pouvoir prononcer…. Pierre Courtellemont – Master IMA – Signal et Image

17 I(si) = log2(1/p(si)) = - log2(p(si))
Lorsque la source est sans mémoire, chaque symbole est indépendant des précédents. On note alors la quantité d’information propre apportée par la sortie d’un nouveau symbole par : I(si) = log2(1/p(si)) = - log2(p(si)) avec si, le ième symbole parmi les N symboles utilisés (les N symboles forment le code), p(si) la probabilité d’apparition du ième symbole de l’alphabet complet. Remarque : la grandeur précédente représente la quantité d’information « exacte » portée par les symboles d’un code donné, pour son codage (ou recodage), en base 2 ici. Exemple : le codage d’un symbole issu des chiffres 0 à 9 donne : I = - log2(p(si)) = log2(10)=3.32 bits. En pratique, on utilise 4 bits pour coder un chiffre décimal. Dans une suite de m événements, lorsque un symbole apparaît n fois dans le message, on appelle occurrence du symbole si, le nombre de fois qu’apparaît si, et la probabilité du symbole si est alors n/m. Ces probabilités peuvent être alors différentes d’un symbole à l’autre. La moyenne des quantités d’information est l’entropie de la source. Exprimée en Shannons, H représente le nombre moyen de bits nécessaires à la codification binaire des différentes réalisations de la source. Pour le jeu de 32 cartes, H=5, c’est aussi le nombre de bits nécessaire pour coder les numéros des cartes, de 0 à 31. Pierre Courtellemont – Master IMA – Signal et Image

18 En physique, l’entropie est une grandeur mesurant le « désordre »
En physique, l’entropie est une grandeur mesurant le « désordre ». En information, l’entropie est nulle lorsqu’il n’y a aucune incertitude, et maximale quand le signal est aléatoire : tous les symboles sont alors équiprobables. C’est le cas du codage des chiffres décimaux précédents (3.32 bits), ou du jeu de cartes. Pour un message donné, dont on connaît les occurrences des symboles, ce chiffre va baisser (et permettra un codage plus performant). Le rapport Hr=H/log(N) est appelé entropie relative et r= 1-Hr est appelée redondance de la source. Cas d’une image codée sur N=256 niveaux de gris. Ces 256 niveaux constituent les 256 symboles si utilisés. Chaque pixel (cas équiprobable) porte une information I = log2 (256) = 8. (c’est la « profondeur » de l’image). Pour une image donnée de m pixels, on peut calculer les occurrences o(si) des niveaux de gris (histogramme) et alors : I(si) = - log2(p(si)) = - log2(o(si)/m) = log2(m) – log2(o(si)) L’entropie est alors : Pierre Courtellemont – Master IMA – Signal et Image

19 Extension d’une source
Considérons une source S à N symboles constituant un alphabet A. Les événements de S peuvent être regroupés par blocs de m événements. Un bloc peut alors être considéré comme un nouveau symbole d’un nouvel alphabet B (à Nm symboles). La nouvelle source constituée sur B est appelée extension d’ordre m de S, et est notée Sm. La probabilité d’un symbole bj est donnée par : L’entropie d’un événement de Sm est l’entropie d’un bloc de m événements de S : Hm=m*H. Pierre Courtellemont – Master IMA – Signal et Image

20 Exemple : calculons l’entropie d’une source binaire avec une extension d’ordre 2.
Solution : Soit S la source sur l’alphabet A = {a0=0, a1=1}. a0 et a1 sont de probabilités respectives p0 et p1. On forme l’alphabet B = {bj, j=0,3} = {00, 01, 10, 11} Pierre Courtellemont – Master IMA – Signal et Image

21 III. Théorème du codage de source sans bruit
Soit une source sur un alphabet A et une extension Sm de cette source sur un alphabet B. On recode cette source en binaire (d’une façon générale, ce pourrait être dans un 3ème alphabet à n symboles). Exemple : une image en niveaux de gris (N=256 symboles de l’alphabet A), traitée par blocs de m=4 pixels voisins, à coder en binaire (n=2). Le codage consiste donc à associer à chaque symbole bj un mot code M(Bj) (écrit en binaire, ou constitué de symboles de l’alphabet cible en général). Si L(Bj) est la longueur en bits du mot M(Bj), alors la longueur moyenne du code est finalement : pour le codage des blocs de m événements. La longueur moyenne par événement est donc L/m, ce qui mesure l’efficacité du code choisi. Pierre Courtellemont – Master IMA – Signal et Image

22 Théorème du codage de source sans bruit « 1er théorème de Shannon »
Comme  pour obtenir un nombre L(Bj) entier de bits. Pour les Nm symboles Bj : Comme Hm=mH, Ainsi, Le théorème peut s’énoncer ainsi : Pierre Courtellemont – Master IMA – Signal et Image

23 Interprétation : Quelque soit le degré d’extension m de la source, quel que soit le code M(Bj) utilisé, on peut toujours trouver un code permettant à la longueur moyenne de code de s’approcher encore plus de l’entropie (sans jamais l’atteindre). S’approcher de l’entropie se fait au prix d’une augmentation de l’ordre de l’extension (et donc d’une complexité plus grande). On retiendra simplement que l’entropie constitue une borne inférieure absolue à la longueur moyenne d’un code, quelque soit ce code. Conséquence : Supposons que l’on ait un signal (par exemple un fichier de texte, composé de caractères codés sur 8 bits, ou d’une image en niveaux de gris, codés également sur 8 bits). Si le nombre de caractères (pixels) du signal est Nc, alors le signal occupera 8*Nc bits. En connaissant la distribution de probabilités des symboles utilisés, le théorème de codage de source sans bruit nous assure de l’existence d’un code de longueur moyenne L/m inférieure à 8 mais supérieure à H. Le signal occupera alors (L/m)*Nc bits, d’autant plus petit que m sera grand (on aura intérêt à travailler sur des blocs de l’image par exemple). Même sans extension de source, il est possible de faire mieux que 8 bits à condition d’adopter une longueur de code variable, fonction de l’occurrence du symbole. On a tout intérêt à choisir un code court pour les symboles les plus fréquents, et réserver les longueurs plus importantes aux symboles apparaissant rarement. Pierre Courtellemont – Master IMA – Signal et Image

24 - Applications – IV. Codes à longueur variables (codes « entropiques ») ou VLC (Variable Length Coding) L’idée précédente semble simple, mais elle s’oppose à une difficulté : lorsque tous les mots ont une longueur fixe (8 bits par exemple), le décodage ne pose pas de problème, chaque octet code un symbole. Lorsque les codes sont à longueur variable, il faut distinguer un symbole du suivant. Cette opération, appelée synchronisation, peut être faite par insertion d’un caractère réservé, ce qui augmente la taille résultante. L’autre solution consiste à utiliser des codes préfixés. Chaque nouveau code ne peut être le début (= préfixe) d’un code déjà existant. Chaque nouveau mot codé devient lui-même préfixe, et ne peut être utilisé. Aucun mot n’est le début d’un autre mot. Le tableau suivant donne 2 exemples de codes préfixés, comparés à un code à longueur fixe pour un code présentant une équiprobabilité des 6 symboles utilisés. Pierre Courtellemont – Master IMA – Signal et Image

25 symbole Code lg. fixe VLC1 VLC2 a b c d e f 000 001 010 011 100 101 10 110 1110 11110 111110 00 01 111 Lmoyenne 3 3,5 2,66 Dans ce cas équiprobable, le code VLC2 serait meilleur. Ce n’est peut être pas le plus performant si les symboles ne sont plus équiprobables (et peut être que pour une distribution donnée, le code VLC1 serait le plus performant). Remarque : les codes préfixés (ou préfixes) sont des codes « uniquement déchiffrables » : codes pour lesquels toute suite de mots ne peut être déchiffrée que d’une seule manière. Exemple : {0, 11, 010} est uniquement déchiffrable mais n’est pas un code préfixé. Les théorèmes de Kraft et de Mac Millan permettent d’associer à tout code uniquement déchiffrable, un code préfixé équivalent. Pierre Courtellemont – Master IMA – Signal et Image

26 Décodage (utilisation d’un code préfixé) :
Différents algorithmes permettent de déterminer des codes à longueurs variables pour une source donnée en garantissant ce « préfixage ». Le codage de Huffman et celui de Shannon-Fano sont les deux exemples les plus connus. Donner un 3ème code à longueur variable (mais non préfixé) ? Réponse : le morse, vrai code VLC Pierre Courtellemont – Master IMA – Signal et Image

27 Algorithme de Huffman :
L’algorithme de Huffman est certainement le plus utilisé en raison de sa gratuité, sa simplicité et son efficacité. Un grand nombre de normes de compression d’images le préconisent. C’est le cas de JPEG et MPEG en particulier. L’algorithme de Huffmann a été décrit pour la première fois en L’algorithme crée des codes de longueurs variables en fonction des probabilités fournies par un modèle, ou la connaissance de la séquence complète. Les symboles sont d’abord triés et classés en fonction de leur fréquence (occurrence). Un graphe est alors construit de la manière suivante : A partir des deux symboles présentant la fréquence la plus faible, un nœud est créé. Il lui est affecté un poids égal à la somme des fréquences des deux symboles. Le nœud créé remplace désormais les deux symboles dans la suite du processus. A ces derniers sont affectés respectivement les chiffres binaires 0 pour le plus fréquent et 1 pour le plus rare, (ou l’inverse, il s’agit d’une convention totalement arbitraire). La même démarche est reprise en considérant les deux symboles ou nœuds de poids le plus faible. Elle est renouvelée tant qu’il reste plus d’un nœud libre. Pierre Courtellemont – Master IMA – Signal et Image

28 Exemple : Soit un message de 36 caractères, composé des caractères A, B, C, D et E qui apparaissent selon les fréquences suivantes : Symboles : A B C D E Fréquences : Le graphe ci-dessous fait apparaître les symboles depuis le plus fréquent (D) jusqu’au moins fréquent (E). Les symboles C et E fusionnent vers un même nœud de poids 5+4=9 Pierre Courtellemont – Master IMA – Signal et Image

29 Puis les symboles ou nœuds de poids les plus faibles sont à nouveau considérés : il s’agit ici de 2 symboles à nouveau : A et B Le processus est renouvelé avec le nœud de poids 9 et celui de poids 13. Il reste enfin à fusionner le nœud de poids 22 et le symbole restant, de poids 14 : Pierre Courtellemont – Master IMA – Signal et Image

30 La deuxième phase de l’algorithme consiste à « redescendre » ce graphe binaire, en affectant à la branche conduisant au poids le plus faible, la valeur 0 par exemple, et 1 à l’autre. On obtient : Pierre Courtellemont – Master IMA – Signal et Image

31 Le codage obtenu est donc :
D (occurrence =14) : 0 A (occurrence =7) : 111 B (occurrence =6) : 110 C (occurrence =5) : 101 E (occurrence =4) : 100 Le symbole le plus fréquent a obtenu le code le plus court, les autres ont, dans cet exemple, des longueurs équivalentes. Quelle est la longueur moyenne de code ? 1 bit pour D qui apparaît 14 fois dans le message, 3 bits pour les autres qui apparaissent 22 fois en tout. lm = (1*14 + 3*7+3*6+3*5+ 3*4)/36=80/36=2.22 Pouvait-on faire mieux ? La réponse est donnée par la valeur de l’entropie du message : H = (14/36)*log2(36/14)+(7/36)*log2(36/7)+(6/36)*log2(36/6)+(5/36)*log2(36/5)+(4/36)*log2(36/4) H = log2(36) - (1/36) * [ 14*log2(14) + 7*log2(7) + 6*log2(6) + 5*log2(5) + 4*log2(4) ] H = ln(36)/ln(2) - 1/(36*ln(2)) * [ 14*ln(14) + 7*ln(7) + 6*ln(6) + 5*ln(5) + 4*ln(4) ] H = = 2.168 Nous voyons que la longueur moyenne de code donné par l’algorithme d’Huffman est très proche du plancher théorique de l’entropie. Pierre Courtellemont – Master IMA – Signal et Image

32 Algorithme de Shannon-Fano (ou de Fano) :
L’algorithme de Shannon-Fano est le suivant : 1) on classe les symboles par ordre de probabilités décroissantes, 2) on partage l’ensemble des symboles en deux sous-ensembles, les 2 sous-ensembles devant être de probabilités aussi proches que possible, 3) on attribue à chaque sous-ensemble l’état 0 ou 1, 4) on re-partage chaque sous-ensemble en deux sous-ensembles de probabilités aussi proches que possible, on attribue à chaque nouveau sous-ensemble l’état 0 ou 1, etc. L’algorithme est arrêté lorsque l’on atteint des sous-ensembles ne comportant qu’un symbole. Prenons le même exemple : Symboles : A B C D E Fréquences : Une fois ordonnée par fréquences décroissantes, la liste de symboles est partagée en 2 ensembles de probabilités les plus proches (sommes des probabilités des symboles les composant) : Pierre Courtellemont – Master IMA – Signal et Image

33 Les autres découpages possibles présentent des disparités supérieures.
Chaque sous-ensemble est décomposé selon le même principe. On aboutit à : Pierre Courtellemont – Master IMA – Signal et Image

34 Chaque sous-ensemble ne contient qu’un symbole
Chaque sous-ensemble ne contient qu’un symbole. Le processus est alors arrêté et le codage est effectué en partant du sommet de la hiérarchie obtenue, en choisissant 0 pour la probabilité la plus forte par exemple : Le codage obtenu est donc : D (occurrence =14) : 00 A (occurrence =7) : 01 B (occurrence =6) : 11 C (occurrence =5) : 100 E (occurrence =4) : 101 Pierre Courtellemont – Master IMA – Signal et Image

35 Les symboles les plus fréquents ont là encore obtenu les codes les plus courts. Quelle est la longueur moyenne de code ? 2 bits pour D, A et B qui apparaissent au total 27 fois dans le message, 3 bits pour les 2 autres qui apparaissent 9 fois en tout. lm = (2*27 + 3*9)/36=81/36=2.25 Le résultat est très proche de celui obtenu par Huffman. Les 2 sont proches de l’entropie H = 2.168 Les 2 codes sont bien préfixés : aucun code n’est le début d’un autre code. Le décodage pourra se faire sans ambiguïté. Il faut toutefois fournir la table de correspondance entre les codes obtenus et les symboles de départ : on parle de dictionnaire. Peut-on parler de compression ? Le taux de compression peut se définir comme le rapport entre la taille du message dans son code d’origine, et la taille du message après re-codage. Pour effectuer la comparaison, on peut considérer que les symboles sont des caractères, codés généralement sur 1 octet (8 bits). Mais sur cet exemple ne faisant appel qu’à 5 caractères différents, il est plus juste de considérer qu’un codage à taille fixe nécessiterait Ent [ log2(5) ]+1 = Ent[2.32 ]+1 = 3 bits pour chaque symbole, soit 3*36 = 108 bits pour le message complet. Le taux de compression obtenu est donc de 108/80 = 1.35 Pierre Courtellemont – Master IMA – Signal et Image

36 Si on considère qu’il faudrait ajouter le dictionnaire pour retrouver le format d’origine, la compression risque ici de ne pas être valable ! Elle devient intéressante pour des messages longs (la taille du dictionnaire devient négligeable) et des grandes disparités dans les occurrences. On appelle efficacité h d’un codage le rapport : h = H/Lm et redondance du codage, la quantité : R = 1 – h Dans l’exemple précédent le codage par Huffman donne h = 2.168/2.22 = et R = Intuitivement, on se rend compte que si les symboles étaient tous équiprobables, les techniques précédentes conduiraient à obtenir des codes dont les longueurs moyennes correspondent à celles d’un code à longueur fixe. Dans le cas où le nombre de symboles à coder est une puissance de 2, le code à longueur fixe est alors optimal et il n’y a aucune redondance à exploiter. Pierre Courtellemont – Master IMA – Signal et Image

37 Dans le cas général, le principe de la synthèse d’un code compact consiste donc à ramener le codage d’une série de symboles d’une source S au codage de deux symboles ou de deux groupes de symboles ayant des probabilités d’émission les plus égales possible. C'est sur ce principe que reposent les algorithmes de Huffman ou de Fano. En règle générale, ces 2 codages sont concurrents et le plus efficace des 2 dépend de la source. Sous la forme donnée précédemment, ces algorithmes nécessitent de connaître les occurrences de tous les symboles, donc d’acquérir la totalité du message (signal ou image) avant codage. Il existe une forme récursive de l’algorithme de Huffman permettant la mise à jour du graphe à chaque nouvel événement qui modifie les fréquences. Remarque : Les algorithmes précédents sont-ils adaptés à la compression des images ? On peut remarquer que l’hypothèse d’une source sans mémoire n’est pas respectée, une première redondance existe et il faut la diminuer. Il est possible de s’approcher de l’hypothèse d’une source sans mémoire, si sur chaque ligne d’une image, on calcule simplement l’erreur entre le niveau de gris du pixel courant s(x,y) et celui du précédent sur la ligne s(x-1,y) : e(x,y) = s(x,y) – s(x-1,y). On peut s’en convaincre par les histogrammes de l’image suivante et de l’image différence. Pierre Courtellemont – Master IMA – Signal et Image

38 On se rapproche des hypothèses précédentes
On se rapproche des hypothèses précédentes. On peut montrer que toute source d’information qui présente une loi de probabilité décroissante peut être codée à l’aide d’un codage compact (codage entropique). Dans la pratique, les algorithmes de codage entropique ne sont pas utilisés directement sur les valeurs des pixels de l’image, mais sur des grandeurs obtenues après transformation des valeurs des pixels (comme la DCT par exemple). Une autre technique consiste à utiliser les corrélations de l'image en cherchant à appliquer le principe d’extension de source évoquée précédemment. Comme il est difficile de prévoir la longueur de blocs de pixels voisins uniformes (qui donnerait l’ordre de l’extension), c’est sous une forme légèrement différente que le principe d’extension de source est adopté : il s’agit du codage par longueur de plages. Pierre Courtellemont – Master IMA – Signal et Image

39 V. Autres codages sans perte
Codages par longueur de plages La solution adoptée dans la méthode appelée RLE (Run Length Encoding) ou RLC (Run Length Coding) consiste à créer une extension en changeant le support d’information. On forme, en lisant l’image ligne par ligne, des couples {longueur de plage, intensité}, où la longueur de plage est le nombre de pixels consécutifs ayant la valeur intensité. C’est une méthode très simple si l’image comporte de nombreuses « plages » de valeurs identiques : il est alors avantageux de coder la longueur (le nombre de symboles identiques) et la valeur de chaque plage. C’st particulièrement vrai dans le cas d’images avec « aplats » (Ex. logos, images graphiques), ou le codage des coefficients DCT quantifiés dans l’algorithme de type JPEG. Exemple 1 : soit la suite suivante, correspondant à des niveaux de gris prélevés dans une ligne d’image : 11, 11, 15, 16, 16, 16, 16, 25, 25, 25, 31, 31, 31, 31, 31, 8 Le codage par plage d’un tel signal donne la suite des paires de nombres suivantes : (2, 11), (1, 15), (4, 16), (3, 25), (5, 31), (1, 8) fournissant un nouveau codage de la ligne : Pierre Courtellemont – Master IMA – Signal et Image

40 Exemple 2 : soit la suite des coefficients d'une DCT suivante :
15 0 –2 –1 – … 0 (64 coefficients au total) Un codage légèrement modifié par rapport au précédent, qui serait {nombre de zéros qui précédent une valeur donnée, valeur} donne : –2 0 –1 0 –1 3 1 EOB (End of Block : la suite ne comprend plus que des zéros) Dans tous les cas, retenir que l’information codée n’est plus la source originale, mais on utilise les propriétés spécifiques aux images pour décorréler la source, ce qui permet d’extraire et concentrer l’information. Les méthodes de type RLE correspondent aux schémas les plus courants de compression des images (dans les formats BMP, TGA, TIFF, SGI, PICT, …). Efficace dans les images « simples », il devient mauvais sur les images complexes (scènes naturelles). Parfois les méthodes de type RLE sont associées à des lectures par plans de bits. Chaque octet est considéré selon leurs n° de bits : on considère tous les bits de rang 7, tous les bits de rang 6 etc. Les techniques RLE sont alors plus efficaces et sont généralement combinées à des techniques destructrices, par la suppression des bits de poids faibles, ce qui dans le cas des images, ne provoque pas de modification visuelle. Pour profiter pleinement de longueurs de plages, il faut éviter les transitions (comme entre 7 : 0111 et 8 : 1000 en binaire, par l’utilisation de codes adjacents comme le Gray réfléchi). Pierre Courtellemont – Master IMA – Signal et Image

41 Méthodes à base de dictionnaires
Dans les codages entropiques précédents, les sources étudiées étaient considérées comme aléatoires, ou tout au mieux, qualifiées de markoviennes d’ordre L (plages de longueur L). Dans la pratique, les sources ne sont pas purement aléatoires, et on peut observer des corrélations qui s’étendent au delà de plages consécutives : un motif peut réapparaître plus loin par exemple. Dans les méthodes précédentes, un tel motif serait à nouveau codé, ce qui conduit à coder de l’information inutile. Les codages par dictionnaire sont fondés sur la constitution d’une suite de motifs, apparaissant dans le flux du message. Ces motifs remplissent un dictionnaire, où ils sont indexés, et lorsque les motifs réapparaissent, ils sont simplement codés par leur index dans ce dictionnaire. Ils se rapprochent des algorithmes à extension de source (dans laquelle la notion d’extension est élargie) et seront efficaces pour les sources longues, codés sur des alphabets restreints, ce qui permet d’envisager la présence de motifs récurrents. Les codages de ce type les plus connus appliquent les algorithmes de type LZ ou l’une de ses nombreuses variantes (LZ77, LZ78, LZW, LZSS…). Ces noms viennent de celui de leurs auteurs : Lempel, Ziv, Welch, ou de ceux leur ayant apporté des améliorations (Storer et Szymanski). Pierre Courtellemont – Master IMA – Signal et Image

42 La seule manière pour un algorithme à dictionnaire d’être efficace est d’utiliser un dictionnaire dynamique ou adaptatif, c'est-à-dire construit selon la source à coder. C’est le principe de l’algorithme LZ et de ses variantes : Dans l’algorithme LZ78, chaque élément transmis par le codeur comprend un index (c'est-à-dire une adresse dans la table qui constitue le dictionnaire), ainsi que le code du caractère suivant. Si le dictionnaire comporte par exemple 4096 entrées, l’index est codé sur 12 bits, et le caractère suivant sur 8 bits par exemple. La concaténation de la chaîne trouvée et du nouveau caractère est entrée en fin de dictionnaire et est donc disponible comme nouveau motif. L’algorithme LZW permet de coder un motif par un simple index sans avoir à transmettre le caractère suivant, mais il faut remplir le dictionnaire par tous les caractères isolés d’abord. Le principe de l’algorithme peut s’énoncer ainsi : Avant de commencer tout codage, une initialisation remplit les premiers emplacements mémoires de la table de traduction avec toutes les chaînes élémentaires possibles (les symboles de l’alphabet). L’objectif du codeur est de construire la plus longue chaîne en concaténant les caractères successifs entrant dans le codeur et en vérifiant que tout nouveau caractère associé constitue une chaîne déjà présente dans la table. Pierre Courtellemont – Master IMA – Signal et Image

43 Un motif courant B (buffer) est initialisé à vide
Un motif courant B (buffer) est initialisé à vide. Le caractère suivant C est concaténé à droite pour former un motif BC, recherché dans le dictionnaire. S’il s’y trouve déjà, BC devient le nouveau motif courant B=BC et on concatène avec un nouveau caractère. Lorsque le motif n’est pas trouvé, la dernière chaîne reconnue est codée par son adresse dans la table : on transmet (codage) l’index de B et le nouveau motif BC est ajouté au dictionnaire : le dernier caractère qui fait que la chaîne n’est pas présente en table (caractère innovant) est concaténé à la dernière chaîne reconnue (qui a donné lieu à l’émission de son code d’adresse) et l’ensemble constitue une nouvelle chaîne stockée au premier emplacement libre de la table de traduction. La construction reprend à partir du caractère innovant : on commence alors avec un nouveau motif courant B=C. Exemple : Soit la chaîne d’entrée utilisant 3 caractères : a b a c b a c b a b a b a a a a a a a La table des chaînes préfixes correspondantes est la suivante : a : 1 b : 2 c : 3 (symboles élémentaires), puis : ab : 4 ba : 5 ac : 6 cb : 7 bac : 8 cba : 9 aba : 10 abaa : 11 aa : 12 aaa : 13 aaaa : 14 La chaîne codée devient donc : , liste qui sera codée en binaire. Pierre Courtellemont – Master IMA – Signal et Image

44 Décodage : Le décodeur fonctionne de manière symétrique : il doit conserver en mémoire le contenu de 2 motifs (LZ78) : le motif courant et le précédent. Ainsi, en recevant le code suivant, il lui est toujours possible d’en extraire le 1er caractère et de le concaténer à droite du motif précédent pour former un nouveau motif qui sera intégré au dictionnaire qui se reconstruit dynamiquement. LZ77 est utilisé dans les outils de compression de type ZIP : gzip sous linux, pkzip sous DOS, winzip sous windows, stuffit sous MacIntosh… LZW est souvent plus efficace et fait l’objet d’une norme pour les images (formats GIF et TIFF). LZW n’est plus gratuit depuis janvier 1995, et cela après une longue période de liberté qui avait favorisé son utilisation. Cet algorithme est couvert par un brevet américain détenu par Unisys. Une licence de Unisys est obligatoire pour toute utilisation. Les images au format PNG (Portable Network Graphics) utilise une variante de l’algorithme LZ77 ; ce format a été spécifié par le consortium W3C qui lui octroie un certain nombre d’avantages par rapport à GIF et JPEG. On notera que le format PNG (et l’algorithme LZ77) est dans le domaine public. Pierre Courtellemont – Master IMA – Signal et Image

45 Codages arithmétiques
Les algorithmes de Shannon-Fano ou de Huffman ont des limitations même dans leur domaine de prédilection. Ils fournissent un nombre entier de bits quand la valeur optimale de longueur de code prévue par la théorie peut être réelle. Dans les formats de compression classiques, les codages arithmétiques remplacent de plus en plus le codage de Huffman. L’idée générale consiste à représenter l’ensemble de la source sous la forme d’un seul nombre réel. Comme dans l’algorithme de Huffman, on commence par considérer les probabilités des symboles. A chaque symbole, est alors associé un sous-intervalle de [0,1[ de longueur égale à la probabilité pi du symbole i. Les intervalles sont construits de la manière suivante : I0 = [0,p0[, I1 = [p0,p0+p1[, … Le codage consiste à générer la suite d’intervalles emboîtés convergeant vers un réel R de ]0,1[ qui codera la source complète. Pierre Courtellemont – Master IMA – Signal et Image

46 Exemple : Soit la séquence S = ABACBACA On calcule les occurrences : A(4), B(2), C(2) et donc les probabilités : p(A)=0.5, p(B)=0.25, p(C)=0.25. Les sous-intervalles sont donc : IA=[0, 0.5[, IB=[0.5,0.75[, IC=[0.75,1[ Séquence : A : on considère l’intervalle [0,0.5[ B : dans l’intervalle précédent, on considère le sous-intervalle IB=[0.5,0.75[ construit dans l’intervalle précédent, donnant le nouvel intervalle [0.25,0.375[ A : dans l’intervalle précédent ( [0.25,0.375[ ), on considère le sous-intervalle IA=[0, 0.5[ donnant ainsi [0.25,0.3125[, Ainsi de suite jusqu’au dernier symbole A : le réel codant la séquence sera le début du dernier sous-intervalle : En pratique, comme on ne peut pas coder sans arrondi une valeur réelle sur un nombre fini de bits, les décimales sont extraites au fur et à mesure pour un codage de leur valeur en arithmétique entière. Pierre Courtellemont – Master IMA – Signal et Image

47 Décodage : il est symétrique au codage
Décodage : il est symétrique au codage. Il faut connaître les intervalles initiaux associés à chaque symbole. Exemple précédent. IA=[0, 0.5[, IB=[0.5, 0.75[, IC=[0.75, 1[ Le réel est CODE= CODE= est compris dans l’intervalle IA : A est le premier symbole. Alors : CODE= ( CODE – Inf(IA) ) / longueur(IA) Ici CODE devient : 0, qui appartient à l’intervalle IB. Donc B est le 2 ème symbole et CODE= ( CODE – Inf(IB) ) / longueur(IB) On trouve : CODE = 0, /0.25 = 0, qui appartient à IA et ainsi de suite… Pierre Courtellemont – Master IMA – Signal et Image

48 VI. Compression avec perte : application au codage des images
1. Mesures de la distorsion Il existe un grand nombre d’applications pour lesquelles il n’est pas nécessaire de garantir un décodage parfait. Ce sont, pour l’essentiel, les applications qui traitent les signaux destinés à nos sens : le son et l’image en particulier, si une part de l’information initiale ne nous est pas perceptible.    Nos sens sont mal commodes pour mesurer objectivement la distorsion. Et pourtant, le seul instrument vraiment capable d’apprécier la qualité d’une image [son] est bien l’oeil [oreille] lui [elle]-même. Il existe des mesures dites « objectives », parfois appelés critères de qualité. Leur inconvénient majeur est d’être discutables dans la mesure où aucun de ces critères ne correspond exactement à ce que ressent l’oeil [oreille] ou plutôt l’ensemble du système visuel [auditif]. Pierre Courtellemont – Master IMA – Signal et Image

49 Parmi les critères objectifs, on peut retenir l’Erreur Quadratique Moyenne (EQM) :
avec sci, valeur décodée de l’échantillon si. On utilise préférentiellement un dérivé de l’EQM, plus «physiologique» : le rapport signal crête sur bruit (PSNR, Peak Signal Noise Ratio), en dB, défini par : Avec par exemple Si la valeur des niveaux de gris des pixels d’une image, et max(Si)=255 si ce niveau de gris est présent (le max des présents sinon). On estime qu’un PSNR inférieur à 30 dB conduit à une image décodée dont les différences avec l’originale sont visibles à l’œil nu. Encore faut-il disposer de l’image originale et d’un système de visualisation de qualité suffisante pour apprécier ce résultat. Pierre Courtellemont – Master IMA – Signal et Image

50 Tandis que l’on peut définir :
D’autres mesures de distorsion peuvent être introduites. La définition de l’EQM précédente est liée à la distance Tandis que l’on peut définir : On peut définir : En imposant une valeur maximale à la distorsion, on s’assure que l'erreur commise n'est grande en aucun point, ce qui est adéquat quand le risque consiste en une erreur élevée commise localement (exemple : cartes de températures prises par les satellites météo) Pierre Courtellemont – Master IMA – Signal et Image

51 Dans les méthodes de compression avec distorsion appliquées à des images, on peut trouver:
- des techniques de quantification (scalaire ou vectorielle), - des techniques de prédiction, - des méthodes de transformation, - des méthodes fractales… Les méthodes fractales reposent sur le principe d’homothétie interne des objets, c’est à dire que les objets peuvent être constitués d’objets identiques à eux mêmes après des transformations simples (affines). Les objets ne sont pas tous fractals, une approximation est donc faite. Les avantages des approches fractales résident dans la multi-résolution (adaptation à l’affichage), à de meilleurs résultats à très fort taux de compression et à un décodage rapide. Mais les inconvénients (temps de calcul au codage importants, absence de norme, qualité pas plus élevée aux taux de compression usuels…) mettent en retrait cette approche par rapport aux méthodes utilisant des transformations (DCT – algorithme JPEG – et ondelettes – algorithme JPEG 2000 ). Les méthodes de prédiction reposent sur la grande corrélation des pixels voisins d’une image, ou sur les échantillons successifs d’un signal. Pour prédire de nouveaux échantillons, on utilise des coefficients optimisés par une technique de moindres carrés. Les méthodes de prédiction s’utilisent également dans le cas des séquences d’images (vidéo) : la prédiction est alors temporelle. Pierre Courtellemont – Master IMA – Signal et Image

52 Plusieurs des méthodes précédentes s’emploient souvent successivement dans un même schéma de compression. Les méthodes de prédiction et de transformation cherchent à supprimer une première redondance et passer dans un espace où la compression pourra s’opérer en respectant des critères psychoacoustiques ou psychovisuels. Qu’elle s’applique aux données directement ou indirectement, c’est très souvent une phase de quantification qui correspond à la partie destructrice de la compression. Souvent, une quantification non uniforme permet de réduire la longueur des mots binaires et le nombre de bits du signal. Elle permet une compression supérieure, en réduisant le nombre de niveaux de quantification et pourtant sans modification de l’EQM. En quantification vectorielle, on travaille sur des petits blocs de l’image qui sont remplacés par des valeurs issues d’un dictionnaire, et non sur des pixels isolés. Quantification non linéaire : loi mu (loi m) et loi A Rapports signal/bruit d’une loi linéaire et d’une loi non linéaire : Pierre Courtellemont – Master IMA – Signal et Image

53 2. Les méthodes de transformation
Elles sont utilisées sur les signaux acoustiques comme sur les images. Ces transformations s’opèrent sur des blocs. Transformations linéaires, elles s’écrivent à l’aide d’une matrice de passage, calculant à partir d’échantillons ni, des composantes transformées, ou coefficients transformés nu. Après transformation, les blocs perdent leur nature initiale et leur sens psychophysique. La transformation est donc provisoire, et doit être réversible. On montre qu’il est possible de trouver des transformations linéaires qui, quelles que soient les valeurs ni, celles des nu deviennent très différentes les unes des autres. Si les valeurs de nu sont très grandes pour certaines, l’annulation des plus petites n’entraîne qu’une distorsion réduite : la compression est l’abandon d’un certain nombre de composantes. La compression peut également utiliser une quantification non uniforme des nu. Pierre Courtellemont – Master IMA – Signal et Image

54 Il existe des transformées qui garantissent :
- une grande disparité entre les valeurs de ses composantes, (diminution de l’entropie !) - une importance psychophysique réduite pour les plus petites des composantes transformées. La DCT (Discret Cosin Transform) présente ces avantages, plus quelques autres (coefficients réels, parité évitant des discontinuités…) par rapport à d’autres transformées possibles (KLT, Fourier). La distorsion introduite par cette méthode est issue : - de l’annulation des composantes les plus petites, - de la quantification des autres : les composantes obtenues nu sont réelles (même si les ni sont des entiers). Les composantes sont quantifiées par division puis arrondies et les coefficients diviseurs sont différents pour chaque composante : ils tiennent compte à la fois du taux de compression voulu, et de l’impact psychophysique de chaque composante. Pierre Courtellemont – Master IMA – Signal et Image

55 3. Transformées unitaires
Partons d’un exemple. Cherchons à remplacer une portion s(x) d’une ligne d’image, définie sur un intervalle [-A/2, +A/2] par une combinaison linéaire de fonctions orthogonales. Rappelons que la base de fonctions fm(x) est orthogonale si : La combinaison linéaire approximant s(x) est alors : Les coefficients am sont les échantillons décorrélés représentatifs du signal s(x). Ils sont obtenus par : Un cas particulier que nous connaissons bien correspond à l’analyse de Fourier… Pierre Courtellemont – Master IMA – Signal et Image

56 Les N coefficients distincts am sont donnés par :
Pour une image numérique, s(x) représente les niveaux de gris d’une série de N pixels adjacents, séparés de Dx. Les N coefficients distincts am sont donnés par : Considérons une transformation orthogonale à 2 dimensions. Soit s(m,n) la matrice de dimension N*N dont les éléments sont les niveaux de gris d’un bloc de N*N pixels. La combinaison linéaire peut être écrite : F* est appelé noyau de la transformation. Les transformations linéaires les plus intéressantes sont celles utilisant des noyaux dits séparables pouvant se mettre sous la forme : F*(u,v,m,n)=a1(u,m)a2(v,n) Le calcul peut alors se faire en 2 étapes : Pierre Courtellemont – Master IMA – Signal et Image

57 La première étape calcule la matrice P(u,n) par :
La seconde étape donne : Soit : P = A1 S G = P A2 G = A1 S A2 Un cas très courant correspond à A1 = A2T = A = AT (matrice symétrique). Rappelons qu’une matrice unitaire est définie par A-1 = A*T (A*T : matrice adjointe ou trans-conjuguée. Si A est réelle, mat. adjointe = matrice transposée) Pour une transformation unitaire orthogonale, c’est-à-dire une matrice unitaire à coefficients réels, on a A-1 = AT. Pierre Courtellemont – Master IMA – Signal et Image

58 Quelles transformations ?
A partir des valeurs s des pixels, on calcule donc des « coefficients de la transformée » ou « composantes transformées » G. On recherche les transformées qui fournissent des coefficients très petits. Ce seront ces coefficients qui seront abandonnés dans la phase de compression. Cet abandon correspond à leur remplacement par 0, pour utiliser la transformation matricielle inverse. Le problème est donc de formuler les transformations qui permettent de garantir l’obtention de très petits coefficients transformés, et de contrôler la distorsion causée par l’abandon des plus petits. La mesure de l’EQM (ou MSE) dans le domaine spatial ou dans le domaine transformé par une transformation orthogonale est la même. En effet, l’EQM est, à un coefficient près, égale à la distance définie dans l’espace vectoriel des blocs, et l’algèbre linéaire établit que les distances sont conservées dans le cas des transformations unitaires. L’EQM est à un facteur 1/MN près, la somme des erreurs quadratiques effectuées sur chacune des composantes. Ainsi, l’abandon d’un coefficient supplémentaire entraîne une augmentation de l’EQM égale au carré du module de ce coefficient divisé par MN. Il n’est donc pas nécessaire de décoder l’image pour connaître l’EQM produit. Pierre Courtellemont – Master IMA – Signal et Image

59 On montre facilement que :
En conséquence, plus le nombre de coefficients annulés est grand, et plus l’EQM est grande, et pour un nombre fixé de coefficients annulés, il faut prendre les plus petits. Existe-t-il des transformations permettant de disproportionner les coefficients transformés de sorte que certains d’entre eux soient les plus petits possibles, quelque soient les blocs considérés ? Nous devons nous intéresser à l’EQM moyenne sur un ensemble de blocs E(EQM). On montre facilement que : Avec se2 et e les variance et moyenne des différences entre valeurs avant et après compression, et, indicés par T, les mêmes grandeurs dans le domaine transformé, sur les seules composantes abandonnées. Pierre Courtellemont – Master IMA – Signal et Image

60 Supposons que les valeurs initiales soient centrées (en JPEG, on soustrait la moitié de la dynamique – 128, en MPEG, après recherche des vecteurs mouvement, ce sont les différences qui sont codées spatialement ou encore, après une séparation YC1C2, les chrominances sont centrées). Une combinaison linéaire de variables aléatoires centrées est une variable aléatoire centrée : si les blocs sont centrés, ils le restent par une transformation linéaire. Si après transformation, on annule une partie des composantes, les niveaux de gris des blocs obtenus après transformation et compression, restent centrés. Ainsi, si on souhaite minimiser E(EQM), il faut trouver une transformation qui réduise au maximum la variance des coefficients supprimés. Il faut donc trouver la transformation qui compacte la puissance moyenne sur le plus petit nombre de composantes possibles (car la variance totale ne peut être que constante – conservation de l’énergie). La transformation qui répond exactement à la problématique est la transformée de Karhunen-Loève. Pierre Courtellemont – Master IMA – Signal et Image

61 Rappelons le principe de la KLT :
La transformée de Karhunen-Loève est optimale en terme de compactage de l’énergie. Alors que les pixels de l’image d’entrée sont corrélés, les coefficients transformés tendent à être décorrélés. Les éléments en dehors de la diagonale de la matrice de covariance R=E[(G-mG)(G-mG)*T] tendent à devenir faibles par rapport aux éléments de la diagonale. Rappelons le principe de la KLT : Soient 2 vecteurs aléatoires X={x(0),…,x(N)} et Y={y(0),…,y(N)} dont les composantes sont des variables aléatoires. Les composantes de X sont corrélées entre elles. Posons Y=UTX (ou X=UY) tel que les composantes y soient orthogonales. (Rappel : y(l) et y(k) sont orthogonales si E[y(l)y(k)]=0 pour tout k différent de l. Elles sont décorrélées si E[y(l)y(k)]=E[y(l)]E[y(k)] pour tout l différent de k. Si elles sont décorrélées et à valeur moyenne nulle, elles sont orthogonales.) Soit Rx = E[XXT] la matrice d’autocorrélation engendrée par X. La matrice de KL réduisant Rx à sa forme diagonale s’exprime par U=(u1 … uk). Les vecteurs ui sont les vecteurs propres normalisés de la matrice symétrique Rx rangés dans un ordre décroissant : Pierre Courtellemont – Master IMA – Signal et Image

62 Les li sont les valeurs propres associées.
La forme diagonale de Rx est donnée par : Les li sont égales aux variances des composantes transformées. Les composantes du vecteur transformé Y sont orthogonales car la matrice E[YYT] se réduit à une matrice diagonale d’éléments li : E[y(k)y(l)] = lk d(k-l) Mais la KLT n’est qu’un instrument de laboratoire : elle dépend des données et ne se prête pas à un calcul rapide. (elle n’est pas séparable, il n’y a pas de double transformation monodimensionnelle équivalente). Le calcul de la matrice d’autocorrélation suppose les statistiques des blocs connus, ce qui n’est pas possible en image. Pierre Courtellemont – Master IMA – Signal et Image

63 La Transformée de Fourier Discrète TFD ou DFT
La TFD permet de compacter l’information sur un petit nombre de composantes. La matrice n’a pas à être calculée, elle est issue de la définition et indépendante du bloc considérée. La transformation est séparable, elle permet d’écrire la transformation par le produit de 2 matrices. Enfin, les coefficients transformés ont une signification simple. Inconvénients : - les coefficients sont complexes (mais il n’y a pas 2 M.N coefficients différents pour autant car la TF est hermitienne : la partie réelle est paire et la partie imaginaire est impaire). - L’inconvénient principal est la périodisation implicite des blocs d’image due à la TFD. Lorsqu’on recopie des blocs, on fait apparaître généralement des discontinuités aux frontières : elles correspondent à des hautes fréquences. Ainsi, les coefficients les plus petits ne sont pas ceux qui correspondent aux fréquences les plus élevées car ces derniers sont relevés pour cette raison. Il n’y a donc pas coïncidence entre coefficients les plus petits et phénomènes les moins importants perceptuellement. Leur suppression correspond à un minimum d’EQM mais pas un minimum de perception visuelle. Pierre Courtellemont – Master IMA – Signal et Image

64 De la TFD à la Transformée en Cosinus Discrète DCT
La DCT est une transformation qui permet d’obtenir certains coefficients plus petits que les plus petits coefficients obtenus avec une TFD. Les coefficients les plus petits sont localisés dans une « zone » d’acuité visuelle minimale. Les coefficients sont réels. Les autres avantages sont issus de la TF dont elle découle : séparabilité et « explication » fréquentielle des coefficients. C’est l’absence de discontinuités aux frontières qui expliquent des coefficients plus petits. La matrice d’autocovariance des coefficients transformés possède des valeurs hors diagonale plus petits qu’avec la TFD, la puissance moyenne est plus compactée. De toutes les transformations unitaires, la DCT donne les résultats les plus proches de la KLT optimale. L’expression de la DCT provient d’une TFD modifiée dans la manière dont les blocs sont périodisés. La DCT est issue de la TF d’une image fictive périodique et paire en recopiant dans toutes les directions un bloc de base, - de dimension double du bloc considéré, - composé de 4 blocs construits de la manière suivante : Pierre Courtellemont – Master IMA – Signal et Image

65 B1 B2 B3 B4 Bd = Du bloc B, - B1 est identique à B,
- B2 est symétrique de B par rapport à son axe vertical central, - B3 est symétrique de B par rapport à son axe horizontal central, - B4 est symétrique de B par rapport à son centre. B1 B2 B3 B4 Bd = L’image obtenue est ainsi réelle et paire, et elle ne présente plus les discontinuités aux frontières. Nous allons décrire les grandes étapes aboutissant à l’expression de la DCT. Notons que l’origine de la DCT sur un bloc de taille M.M permet d’envisager son calcul par l’utilisation d’une TFD sur 2M points. (ce qui est fait dans certains logiciels de calcul). Dans la pratique, on utilise la DCT sur des blocs de 8*8 pixels où son calcul est optimisé. Pierre Courtellemont – Master IMA – Signal et Image

66 L’image précédente est périodique de période 2M*2N. La TFD s’écrit :
avec : L’image n’est pas exactement paire car le pixel n(-1,-1) est égal à n(0,0). Le centre de symétrie n’est pas défini, il faut faire un décalage de -1/2 dans les 2 directions en déphasant les coefficients transformés : (on a simplifié ici en prenant N=M correspondant aux cas pratiques) Pierre Courtellemont – Master IMA – Signal et Image

67 i:M à 2M-1, j:M à 2M-1 (terme D)
La suite s’obtient en considérant la double somme précédente comme la somme de 4 doubles sommes pour : i:0 à M-1, j:0 à M-1 (terme A) i:0 à M-1, j:M à 2M-1 (terme B) i:M à 2M-1, j:0 à M-1 (terme C) i:M à 2M-1, j:M à 2M-1 (terme D) Par changements de variables, les termes B, C et D peuvent s’exprimer sous la forme de sommes s’étendant pour i:0 à M-1, j:0 à M-1. En posant q1=2p(i+1/2)u/2M et q2=2p(j+1/2)v/2M, on obtient ainsi : qui donne, en développant : Pierre Courtellemont – Master IMA – Signal et Image

68 Les coefficients de la transformation obtenue sont donc :
On voit que dans l’expression obtenue, seules les valeurs de u et v comprises entre 0 et M-1 servent à définir complètement N(u,v). Les coefficients de la transformation obtenue sont donc : avec : Les coefficients sont donc réels, et décroissants jusqu’à la valeur M-1 pour u ou v. La transformation ainsi obtenue n’est pas unitaire. Pour trouver les coefficients de normalisation, il faut considérer les cas suivants : 1) u et v égaux à 0 : la norme du vecteur ligne est égale à 2, on normalise donc les 2 termes par 1/racine(2), 2) u et v différents de 0 : déjà normé, 3) u=0 et v différent de 0 (ou le contraire), la norme du vecteur ligne vaut racine(2). Pierre Courtellemont – Master IMA – Signal et Image

69 La transformation DCT bidimensionnelle s’écrit finalement :
Finalement, on introduit les constantes c(u) et c(v) donnant les coefficients suivants : avec : La transformation DCT bidimensionnelle s’écrit finalement : La DCT est unitaire : A*T.A=I et ses coefficients sont réels. Ainsi, A-1 = AT, permettant d’écrire la DCT inverse par l’expression : Pierre Courtellemont – Master IMA – Signal et Image

70 4. JPEG et la compression des images fixes
    Petite histoire du format JPEG L’histoire commence à la fin des années 80, lorsque deux importants groupes de normalisation, le CCITT (Consultative Committe for International Telegraph and Telephone) et l’ISO (Organisation Internationale de Standardisation) appuyés par divers groupes industriels et universitaires, décident de créer une norme internationale pour la compression des images fixes. La mise en place d’un standard international était devenue nécessaire pour archiver ou pour faciliter l’échange des images dans des domaines aussi variés que les photos satellites, l’imagerie médicale, la télécopie couleur, ou la cartographie… C’est ainsi que fut créé le groupe JPEG (Joint Photographic Experts Group) à l’origine de la norme qui porte son nom. Cette norme comprend des spécifications pour les codages de l’image, sans et avec distorsion. Le groupe JPEG avait retenu les contraintes d’exploitation suivantes : - possibilité d’affichage séquentiel ou progressif, - possibilité de modes de compression sans dégradation, - possibilité d’implémentation hard ou soft, - utilisation compatible avec les performances des réseaux de type Numéris. Pierre Courtellemont – Master IMA – Signal et Image

71 Les objectifs étaient ambitieux : on imposait d’obtenir avec : - 2
Les objectifs étaient ambitieux : on imposait d’obtenir avec : bits/pixel : une image visuellement identique à l’originale, bit/pixel : une image de qualité excellente, bit/pixel : une image de qualité visuelle moyenne, bit/pixel : une image encore reconnaissable ! Des algorithmes candidats ont été comparés sur 5 images couleur 16 bits. 3 techniques ont été pré-retenues en La technique à base de DCT a été retenue en La norme parut en 1993 ! La qualité de l’image doit être paramétrable. Les données sont d’autant plus compressées que la qualité exigée est faible. La norme JPEG n’impose pas de format aux images. Le processus de compression est applicable en principe à toutes les sources d’images numérisées. Les spécifications n’indiquent pas la dimension de l’image et le nombre de pixels, ni le type de codage des données représentant la couleur. Pierre Courtellemont – Master IMA – Signal et Image

72 On peut noter que l’œil est beaucoup plus sensible à de faibles variations d’intensité lumineuse (luminance) qu‘à celles de la couleur (chrominance) : les informations sur la couleur peuvent donc être davantage compressées que celles sur la luminance. Ainsi si l’image initiale est codée sous une forme RVB, une séparation luminance-chrominance peut être d’abord effectuée. On utilise une transformation conduisant à un codage YC1C2 : Y=0.299R+0.587V+0.114B Cr=R-Y et Cb=B-Y avec une quantification plus importante sur ces plans. La compression opère de la même manière sur les 3 plans obtenus. Si cette conversion préalable est réalisée, le décodeur doit être informé. Pierre Courtellemont – Master IMA – Signal et Image

73 La transformation DCT La transformation est réalisée, non pas sur l’image entière, mais sur des blocs de 8 x 8 pixels. En effet, les matrices doivent être carrées et une taille plus grande serait trop coûteuse en temps de calcul. A partir des valeurs n(i,j) du bloc considéré de MxM pixels, la transformation calcule les coefficients N(u,v) par :                                                                                                 avec : Pierre Courtellemont – Master IMA – Signal et Image

74 La transformation inverse s’écrit :
                                                                                       Le calcul de la DCT se réalise aisément en s’écrivant sous une forme matricielle : Considérons la matrice S des valeurs des pixels : On considère la matrice A, formée par les éléments aij : Pierre Courtellemont – Master IMA – Signal et Image

75 Cette matrice A s’écrit :
La transformation s’obtient par : M = At x S x A Les factorisations et développements spécifiques au cas 8x8 permettent d’effectuer la transformation en 40 multiplications et 56 additions (le calcul direct donne 512 multiplications et autant d’additions). Pierre Courtellemont – Master IMA – Signal et Image

76 La DCT est donc effectuée sur chaque matrice 8x8 de valeurs de pixels, et elle donne une matrice 8x8 de coefficients significatifs de fréquences spatiales : l’élément (0,0) est représentatif de la valeur moyenne du bloc et est appelé coefficient DC, les autres (coefficients AC) fournissent la puissance spectrale selon chaque fréquence 2D spatiale. La DCT est conservatrice si on ne prend pas en compte les erreurs d’arrondis qu’elle introduit. La matrice C transformée par DCT présente la propriété de regrouper les valeurs les plus élevées dans le coin supérieur gauche de la matrice (les valeurs devenant d’autant plus faibles que l‘on s’approche du coin inférieur droite, donc que l‘on se situe dans les " hautes fréquences "). Ainsi le maximum d‘information sur l‘image se trouve concentré sur la partie supérieure gauche de la matrice et la compression de l‘image sera facilitée. Pierre Courtellemont – Master IMA – Signal et Image

77 Pierre Courtellemont – Master IMA – Signal et Image

78 Exemple : On considère la Matrice S des valeurs s(i,j) des pixels d’un bloc : S = Pierre Courtellemont – Master IMA – Signal et Image

79 On obtient après transformation la matrice des composantes transformées, (après un arrondi destiné à obtenir des entiers : M=    -34    -23  -1  6     -5   14    8 -3    9    7     1     -2 -18     8    8 -3      0   -2     3   -1    -7   -2    1    1   4  -6  0 Pierre Courtellemont – Master IMA – Signal et Image

80 La quantification La quantification représente la phase non conservatrice du processus de compression JPEG. Elle réduit le nombre de bits nécessaires : chaque valeur de la matrice DCT est divisée par un nombre (quantum), fixé par une table (mémorisée sous la forme d’une matrice 8 x 8) de quantification, puis arrondie à l’entier le plus proche. La valeur du quantum est d‘autant plus élevée que l‘élément correspondant de la matrice DCT contribue peu à la qualité de l’image, donc qu‘il se trouve éloigné du coin supérieur gauche. C’est pourquoi les matrices de quantification comportent généralement des valeurs constantes selon des diagonales ascendantes mais croissantes d‘une diagonale à la suivante : cet accroissement constitue le pas du quantum, ou le " facteur de qualité ", car la perte de précision sera d‘autant plus grande que ce pas sera élevé. Les matrices de quantification doivent être connues du décodeur donc transmises avec l’image. Cela ne permet pas d’ajuster la matrice de quantification au bloc à traiter. Dans la norme JPEG, seules 4 matrices de quantification peuvent être transmises dans 1 image. Des jeux de matrices ont été proposées par les membres du comité JPEG et sont publiés dans une recommandation. Les matrices dépendent du logiciel utilisé. Un exemple de matrice de quantification Q est donné ci-dessous : Pierre Courtellemont – Master IMA – Signal et Image

81 16*Q= La matrice quantifiée devient donc (arrondie ici en nombres entiers) : MQ=   -45  29  -7 -6  2  3      4  -7  0 -4  0 -9  -4  10   -7 -2  0  0   2 -2  6   3     0  -2  2  2   3 2   0   -5    2   1  0   0  -1 2   0   0    0    0  0   0   0 0  -1   0    0    0  0   0   0 Pierre Courtellemont – Master IMA – Signal et Image

82 Ce sont les éléments de cette matrice qui vont être codés par l’algorithme.
On remarque la grande valeur du premier coefficient (1,1) de cette matrice. Ce coefficient exprime la valeur moyenne des valeurs de niveau gris du bloc de l’image (après transformation). Sur un bloc uniforme, c’est la seule valeur non nulle des coefficients. Cette valeur est souvent très proche d’un bloc au suivant dans l’image : ce coefficient sera codé d’une manière différente de tous les autres, par un codage différentiel : le coefficient DC d’un bloc est corrélé avec le coefficient DC du bloc précédent. E(k)=DC(k)-DC(k-1). Il s’agit d’un codage de type « Differential Pulse Code Modulation » (DPCM). Il s’agit donc d’un codage de type prédictif. La suite des coefficients DC subit alors un codage de type Huffman. Les autres coefficients (coefficients AC) vont être codés en parcourant les éléments dans l’ordre imposé par une séquence particulière en zigzag : Pierre Courtellemont – Master IMA – Signal et Image

83 Dans l’exemple précédent, on obtient :
Cette lecture en zigzag est justifiée par les valeurs proches des coefficients le long des diagonales ascendantes. Elle a pour but de rapprocher des valeurs identiques et de reporter le maximum de valeurs nulles vers la fin de la séquence. Dans l’exemple précédent, on obtient : Cette séquence est alors codée en utilisant un codage de type RLC (de type {longueur plage nulle, valeur} ) auquel est appliqué un codage de Huffman Pierre Courtellemont – Master IMA – Signal et Image

84 Dans l’exemple précédent, plusieurs sources de distorsion sont prévisibles : - lorsqu’on a arrondi les coefficients de la matrice M pour obtenir des entiers. A partir de M, on peut calculer la transformation DCT inverse. On obtient sur cet exemple : et la différence à la matrice originale est donc : Pierre Courtellemont – Master IMA – Signal et Image

85 La distorsion vient essentiellement de la quantification volontaire appliquée aux coefficients (matrice MQ) de l’exemple. Appliquons la transformée inverse. Nous obtenons : Pierre Courtellemont – Master IMA – Signal et Image

86 La différence à l’originale est donc :
Lorsqu’on souhaite des taux de compression élevés (généralement, les logiciels proposent une qualité de l’image sur une échelle de 0 à 10 ou 0 à 100), la matrice de quantification supprime plus encore de coefficients en partant du coin inférieur droit. Au taux de compression le plus élevé (qualité la plus faible), seul le coefficient DC est conservé : le bloc de 8x8 pixels est remplacé par la valeur moyenne des valeurs du bloc. Pierre Courtellemont – Master IMA – Signal et Image

87 Pierre Courtellemont – Master IMA – Signal et Image

88 - la norme JPEG n’impose pas de format de fichier.
Remarques : - C’est aux frontières des blocs que la compression devient de plus en plus visible lorsque le taux de compression devient plus élevé. - l’algorithme de compression nécessite une puissance de traitement égale pour la compression et la décompression (due en grande partie à la transformation DCT ou DCT inverse), - la norme JPEG n’impose pas de format de fichier. Pierre Courtellemont – Master IMA – Signal et Image

89 La norme JPEG prévoit tous ces modes progressifs.
Le principe de compression JPEG se prête bien à un affichage progressif, important dans le cas de débit faible, pour transmettre d’abord l’information importante de l’image puis les détails. Lorsque cette fonctionnalité n’est pas utilisée, on parle de JPEG baseline. Les solutions peuvent reposer sur plusieurs principes : – Transmettre d’abord les coefficients correspondant aux basses fréquences puis les coefficients correspondant aux hautes fréquences : cela est possible grâce à la méthode adoptée (DCT) : La DCT inverse est appliquée aux coefficients DC puis à des sous matrices (par ex 4x4). – Transmettre d’abord les bits de poids forts puis les bits de poids faible. Il s’agit du mode appelé « approximation successive » : toutes les composantes de la DCT sont concernées, mais seulement les bits de poids fort de chaque valeur. - Utiliser les 2 méthodes précédentes de façon mixée. La norme JPEG prévoit tous ces modes progressifs. Pierre Courtellemont – Master IMA – Signal et Image

90 Des bancs de filtres aux ondelettes
Rappelons nous quelques conclusions de l’analyse de signaux par Transformée de Fourier. La TF à fenêtre permet d’apporter une analyse dans le domaine fréquentiel en maintenant la connaissance des instants auxquels ont lieu les événements temporels. La limitation vient d’une résolution en fréquence constante, comme l'est la résolution en temps, puisque la fenêtre et sa transformée ont un support de largeur fixe (ceci est particulièrement évident si la fenêtre est gaussienne, puisque la fonction de Gauss est égale à sa transformée)... Conséquence que l’on perçoit très bien intuitivement : pour étudier des basses fréquences, un long temps d'observation est nécessaire ; réciproquement, pour étudier de hautes fréquences seul un court temps d'exposition est nécessaire. Le principe d’incertitude d’Heisenberg conclut à l'impossibilité d'obtenir des résolutions arbitrairement grandes à la fois en temps et en fréquences. Pierre Courtellemont – Master IMA – Signal et Image

91 Ces bancs de filtres correspondent aux bases d’ondelettes.
Une manière de contourner les contraintes contradictoires imposées par l'inégalité d'Heisenberg consiste à choisir des filtres d'analyse (les fenêtres) dont la largeur de bande est proportionnelle à leur fréquence centrale, ce qui permet de créer un banc de filtres d'analyse avec des largeurs de fenêtre différentes. Cette approche est aussi appelée analyse à facteur de qualité constant, car on maintient Q=cste= Df/f. En utilisant de tels filtres en image, on peut maintenir bonne la résolution spatiale aux hautes fréquences et la résolution fréquentielle aux basses fréquences. Ces bancs de filtres correspondent aux bases d’ondelettes. La transformation en ondelettes continue est dans son principe semblable à la TF : une décomposition sur une base de fonctions qui forment ici l’ensemble des fonctions translatées et dilatées d’une fonction mère : où t et a représentent respectivement les facteurs de décalage et d’échelle. Pierre Courtellemont – Master IMA – Signal et Image

92 Les fonctions Y doivent satisfaire certaines conditions pour être des ondelettes, comme être de moyenne nulle, à support temporel et fréquentiels bornés, elle doivent changer de signe au moins 1 fois, etc… L’ondelette la plus simple est la fonction proposée par Haar en 1909 : la différence entre 2 échelons. On peut citer l’ondelette « chapeau mexicain », dérivée seconde d’une gaussienne : La transformée en ondelettes consiste à faire le produit scalaire entre l’ondelette analysante et le signal. La transformée en ondelettes a une résolution temps-fréquence qui dépend de l'échelle s. Pierre Courtellemont – Master IMA – Signal et Image

93 La transformée en ondelettes se calcule par une transformée en ondelettes rapide. Celle-ci peut effectuer une transformée discrète par des convolutions circulaires, elles-mêmes calculées par FFT. Pour accélérer les calculs, on utilise souvent des « ondelettes dyadiques » (a=2m). Les ondelettes dyadiques sont des ondelettes dont la dilatation vérifie une propriété spécifique qui permet d'implémenter les transformées par des bancs de filtres. La définition des ondelettes dyadiques est fondée sur celle des approximations multirésolutions. Le découpage de l'espace fréquentiel apporté par le banc de filtres permet d'introduire la notion d'analyse multi-résolutions, c'est-à-dire que le fait de permettre d'analyser à la fois des niveaux grossiers (peu riches en détails ou basses fréquences) et des niveaux fins (riches en détails ou hautes fréquences). Pierre Courtellemont – Master IMA – Signal et Image

94 Rappel du cours (partie 1) :
G0(z) 2 G00(z) G01(z) G1(z) G000(z) G001(z) Approximation a Détails d Pierre Courtellemont – Master IMA – Signal et Image

95 Cette stratégie s’étend au domaine 2D :
Pierre Courtellemont – Master IMA – Signal et Image

96 Application à la compression des images : JPEG2000
Historique : un appel à propositions a été lancé en 97 par l’ISO et l’ITU pour couvrir un champ plus large d’applications que JPEG, des images binaires aux images multicomposantes. JPEG2000 spécifie un grand nombre de critères dont : - Accroître de 30% les performances de JPEG en termes de distorsion/débit, - Permettre de compresser des images multicomposantes par exemple, comportant des sous-images binaires par exemple, - Permettre des modes avec et sans perte, - Une transmission progressive, - Définir des ROI, - Respect des tatouages de l’image, etc… Pierre Courtellemont – Master IMA – Signal et Image

97 1. Etapes de prétraitements
Schéma de compression 1. Etapes de prétraitements L’image est décomposée en blocs mais qui ne sont plus de taille imposée comme en JPEG (8*8). On parle de tuiles généralement de taille 64*64 ou 128*128. L’image est aussi ramenée à des entiers signés par l’introduction d’un biais égal à la mi-échelle. Si l’image est multicomposante (ex, image couleur), JPEG2000 définit 2 transformations possibles : - RCT (Reversible Color Transform), réversible car concernant des entiers, - ICT (Irreversible Color Transform), correspondant à la tansformation en YUV classique. Pierre Courtellemont – Master IMA – Signal et Image

98 La transformation inverse s’obtient par : G = Y – ¼ (Cb + Cr)
Transformation RCT : Y = ¼ ( R + 2G + B) Cb = B – G Cr = R - G La transformation inverse s’obtient par : G = Y – ¼ (Cb + Cr) R = Cr + G B = Cb + G Transformation ICT : Y = 0.299( R – G ) Cr = ( R – Y ) Cb = ( B – Y ) soit : Pierre Courtellemont – Master IMA – Signal et Image

99 2. Transformation en ondelettes
La DCT de JPEG est donc remplacée par une DWT, appliquée à chacune des tuiles issues de l’étape précédente. Notons que 2 méthodes sont utilisables selon la norme : - La méthode de convolution : produits scalaires entre filtre et données. Les filtres à coefficients réels retenus sont les filtres 9.7 de Daubechies. - Le « lifting » : méthode dans laquelle les échantillons de rang pair sont remplacés par une somme pondérée des échantillons de rang impair et réciproquement. La méthode est plus rapide qu’une DCT ! En 2D, la pyramide produit 4 sorties, par filtrage passe-bas (L) et passe-haut (H) dans les 2 directions horizontale et verticale. On note les 4 sorties : LL, HL, LH et HH. L’image de sortie LL ne traduit pas d’information directionnelle. Elle permet de poursuivre la construction de la pyramide. Chaque image à un niveau n+1 représente en taille un quart de l’image à la résolution n. Les images LH et HL contiennent les détails horizontaux et verticaux, l’image HH, les gradients diagonaux. Pierre Courtellemont – Master IMA – Signal et Image

100 Pierre Courtellemont – Master IMA – Signal et Image

101 Pierre Courtellemont – Master IMA – Signal et Image

102 Pierre Courtellemont – Master IMA – Signal et Image

103 Filtre 9.7 de Daubechies : Pierre Courtellemont – Master IMA – Signal et Image

104 3. Quantification Notons une première différence avec le quantificateur scalaire « standard » : le quantificateur est ici uniforme, mais avec zone morte (« dead zone ») d’une largeur double (par exemple) du pas de quantification autour de 0. Une autre différence avec JPEG, consiste dans un codage par plans de bits, du MSB au LSB. La raison tient dans un objectif de « scalabilité » par transmission progressive par amélioration de la qualité du pixel. Pierre Courtellemont – Master IMA – Signal et Image

105 Pierre Courtellemont – Master IMA – Signal et Image

106 4. Codage arithmétique adaptatif
Chaque plan de bits est codé à l’aide d’un codage arithmétique adaptatif selon le « contexte ». Le choix d’un codage arithmétique plutôt que Huffman vient du fait que Huffman est mal employé sur des données par plans de bits (il ne permet pas d’atteindre moins d’1bit par symbole). L’estimation des probabilités du codage arithmétique évolue en fonction du contexte, c’est-à-dire du voisinage du symbole. Le contexte est obtenu à partir des valeurs des 8 voisins connectés au bit examiné. Cela permet un encodage en 3 passes (selon qu’un bit est jugé significatif ou non, fonction de son voisinage) là encore pour des raisons de scalabilité (organisation du flux par couches (layers) ). Enfin, une étape importante est le regroupement en code_blocs (généralement 32*32) des sous-images, codes blocs qui seront codés de manière indépendante, permettant d’accéder à une zone spatiale de manière aléatoire, ou encore de paralléliser les calculs. Pierre Courtellemont – Master IMA – Signal et Image

107 Pierre Courtellemont – Master IMA – Signal et Image

108 SNR scalabilité + basse résolution, haute précision Pierre Courtellemont – Master IMA – Signal et Image

109 JPEG2000 vs JPEG 2 images à 0.25 bits/pixel
Pierre Courtellemont – Master IMA – Signal et Image


Télécharger ppt "Partie 3 : Traitement de l’Information Application à la compression"

Présentations similaires


Annonces Google