INTRODUCTION
1.
2.
3.
4. TRANSFORMATION DCT : TRANSFORMEE EN COSINUS DISCRETE BIDIMENSIONNELLE 4.1 4.2 4.3 5. COMMENT EST FORMEE LA DCT BIDIMENSIONNELLE ECRITURE MATRICIELLE ET INTERPRETATION APPLICATION POUR LA COMPRESSION JPEG LA QUANTIFICATION
5 6 7 10 11
12
7. 7.1 7.2 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.1 7.3.2 8.
CODAGE ENTROPIQUE PRESENTATION DU PROBLEME CODAGE SANS BRUIT DUNE SOURCE DISCRETE SANS MEMOIRE : ENTROPIE DUNE SOURCE CODAGE DUNE SOURCE THEOREME DU CODAGE SANS BRUIT DUNE SOURCE DISCRETE SANS MEMOIRE CONSTRUCTION DUN CODE GENERALISATION CODAGE SANS BRUIT DUNE SOURCE DISCRETE AVEC MEMOIRE : NOUVELLES DEFINITIONS THEOREME DU CODAGE SANS BRUIT DUNE SOURCE DISCRETE AVEC MEMOIRE DECOMPRESSER
13 13 13 13 14 16 18 19 20 20 21 22
9.
APPLET JAVA
23
Page 1/24
CONCLUSION
24
Page 2/24
Introduction
Lhomme a toujours voulu dcouvrir la beaut des plantes, vues de lespace. Il a donc envoy des satellites capables de photographier celles-ci. Mais lun des problme majeur est la transmission de ces photos, du satellite la terre. Cette communication se fait laide des ondes lectromagntiques. La transmission des informations est dautant plus facile que le nombre dinformations est faible. Il est donc avantageux den rduire le nombre. Une technique employes dans de nombreux domaines est la compression des informations. Lutilisation dalgorithmes de compression dimages permettent en effet, une rduction importante de la quantit de donnes. Nous allons tudier un algorithme trs rpandu et utilis par de nombreuses personnes : le Jpeg. Aprs un bref historique du Jpeg, nous allons prsenter son principe et son utilisation . Nous aborderons ensuite, un aspect plus mathmatiques, concernant les thormes fondamentaux utiliss pour la compression. Enfin, nous expliquerons la mthode de dcompression de ces images. Un applet Java viendra complter notre dossier, afin de prsenter un exemple concret.
Page 3/24
Nous allons dtailler chaque partie de la compression JPEG, et en tudier les fondements.
Page 4/24
Les informations sur la luminance (paramtre Y) et la chrominance (I et Q) sont des combinaisons linaires des intensits de rouge (R), vert (G), et bleu (B) : Y = 0.30 R + 0.59 G + 0.11 B I = 0.60 R - 0.28 G - 0.32 B Q = 0.21 R - 0.52 G + 0.31 B Soit une image 640x480 RGB 24 bits/pixel. Chacune des ces trois variables est reprise sous forme de matrice 640x480. Cependant, les matrices de I et de Q (info sur la chrominance) peuvent tre rduites des matrices 320x240 en prenant les moyennes des valeurs des pixels regroups par carr de quatre. Cela ne nuit pas la prcision des infos sur l'image car les yeux sont moins sensibles aux carts de couleurs qu'aux diffrences d'intensits lumineuses. Comme chaque point de chaque matrice est une info code sur 8 bits, il y a chaque fois 256 niveaux possibles (0-255). En soustrayant 128 chaque lment, on met zro le milieu de la gamme de valeur possible :-128 +127. Enfin chaque matrice est partage en blocs de 8x8.
DCT
F(u, v) =
Img ( x, y ) =
Le calcul de la DCT ne peut pas se faire sur une image entire d'une part parce que cela gnrerait trop de calculs et d'autre part parce que le signal de l'image doit absolument tre reprsent par une matrice carre. Ds lors, le groupe JPEG impose la dcomposition de l'image en blocs de 8 pixels sur 8 pixels. La mthode de compression sera donc applique indpendamment sur chacun des blocs. Les plus petits blocs en bordure devront tre traits par une autre mthode.
La DCT est donc effectue sur chaque matrice 8x8 de valeurs de pixels, et elle donne une matrice 8x8 de coefficients de frquence: l'lment (0,0) reprsente la valeur moyenne du bloc, les autres indiquent la puissance spectrale pour chaque frquence spatiale. La DCT est conservative si l'on ne tient pas compte des erreurs d'arrondis qu'elle introduit.
Lorsqu'on travaille avec le signal Img(x,y), les axes X et Y reprsentent les dimensions horizontales et verticales de l'image. Lorsqu'on travaille avec la transforme de cosinus discrte du signal DCT(i,j), les axes reprsentent les frquences du signal en deux dimensions :
Page 5/24
4.1
La reprsentation en srie de fourrier d'une fonction ( deux variables) continue relle et symtrique ne contient que les coefficients correspondant aux termes en cosinus de la srie. Ce rsultat peut tre tendu la transforme de Fourier discrte en faisant une bonne interprtation. Il y a deux manires de rendre une image symtrique. Par une premire technique, les images sont dupliques suivant leurs contours, la seconde mthode : les images sont dupliques et se chevauchent d'un pixel. Dans la premire mthode, nous avons donc une image de 2N x 2N pixels alors que dans la deuxime mthode, nous avons (2N-1)x(2N-1) pixels. C'est la premire mthode que nous utiliseront. Premire mthode t y
Image originale x
Seconde mthode t
Soit Img(x,y) l'intensit lumineuse de l'image initiale. L'intensit lumineuse Img' de la nouvelle image ainsi forme vrifie la relation :
x 0; y 0 Img( x, y ) Img(1 x, y ) x < 0; y 0 Img'(x,y) = x 0; y < 0 Img( x,1 y ) Img(1 x,1 y ) x < 0; y < 0
Par cette construction, la fonction Img'(x,y) est symtrique par rapport au point x=-1/2 et y=-1/2 Lorsqu'on prend la transforme de Fourier :
F(u, v) =
(1)
Page 6/24
F(u, v) =
1 v y + 2
F(u, v) =
Img ( x, y ) =
Le coefficient c(w) sert normer les vecteurs lors de l'criture matricielle de la DCT.
4.2
F(i, j) =
. . . . . . . . . Img( x, y ) . . . . . .
. . . . . . . .
. Img(6,0) Img(7,0) . Img(6,1) Img(7,1) . . . . . . . . . . . . . . . . . Img(7,7) 2 (2.i + 1). j . cos (i l'indice de ligne et j l'indice N 2N
( )
Page 7/24
2 2 (2.0 + 1).0 (2.0 + 1).1 c(1). . cos . cos . . c(0). N 2N N 2N 2 (2.1 + 1).1 = c(0). 2 . cos (2.1 + 1).0 . cos . . c(1). N 2N N 2N 2 2 (2.2 + 1).1 (2.2 + 1).0 c(1). . cos . . c(0). N . cos 2N N 2N . . . . . . . di , j . . . . . . . . 2 2 (2.( N 1) + 1).0 (2.( N 1) + 1).1 c(0). . cos . cos . . c(1). N 2N N 2N
. . . . . . . . . . . . . . . . . . . . .
. . .
2 (2.0 + 1).( N 1) . cos N 2N 2 (2.1 + 1).( N 1) . cos c( N 1). N 2N 2 (2.2 + 1).( N 1) . cos c( N 1). N 2N . . . . 2 (2.( N 1) + 1).( N 1) . cos c( N 1). N 2N c( N 1).
soit
P= 1 N 1 N 1 N . . . . 1 N 2 (1).1 . cos N 2N 2 (3).1 . cos N 2N 2 (5).1 . cos N 2N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 (2.( N 1) + 1).( N 1) . cos N 2N 2 (1).( N 1) . cos N 2N (3).( N 1) 2 . cos N 2N 2 (5).( N 1) . cos N 2N .
. . . 2 (2.( N 1) + 1).( N 1) . cos N 2N 1 N 2 (2.( N 1) + 1).1 . cos N 2N 2 (2.( N 1) + 1).2 . cos N 2N .
on a
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Si on crit les coefficients F(i,j) dans une matrice avec j l'indice de ligne et i l'indice de colonne, on a
F = t P. A.P
La matrice P possde des proprits intressantes. C'est une matrice orthogonale : les vecteurs sont orthogonaux deux deux et orthonorms. (d'o l'utilit de c(i) pour ramener la norme du premier vecteur 1). Donc tP=P-1. Si on considre que la matrice A reprsente un endomorphisme de R8 exprim dans la base canonique de R8, l'expression
F = t P. A.P correspond un changement de base avec P la matrice de passage. t La DCT inverse en dcoule simplement : A = PF P .
(2.x + 1).n y = cos avec n le numro du vecteur et x prend des valeurs discrtes : x=0, 1, 2, , 7 ) 2N
Nous pouvons tracer les fonctions (vecteurs) de base dans le cas N=8 : (nous avons trac
Page 8/24
Vecteur n0
Vecteur n1
Vecteur n2
0,2 -1 0 0 2 4 6 8 -1,5
Vecteur n3
Vecteur n4
Vecteur n5
Vecteur n6
Vecteur n7
Il a tait observ que les fonctions de bases de la transforme en cosinus discrte est une classe des polynmes discrets de Chebyshev. Donc lorsqu'on passe de la matrice exprime dans la base canonique la nouvelle base, on fait une dcomposition en frquence. Si on considre l'image reprsent par la matrice A comme une application linaire, cette application est dcomposable dans la base canonique B des applications linaires de R8 dans R8 avec R8 associ sa base canonique c'est dire
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 , 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 , 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
etc
Cette mme application maintenant dans la nouvelle base peut tre aussi dcompos dans B. Ces 64 vecteurs de bases reprsentent les applications linaires de R8 dans R8 avec R8 associ la nouvelle base. On applique la transforme inverse (soit l'IDCT) sur chacun de ces vecteurs. On a ainsi trouv une nouvelle base des applications linaires de R8 dans R8 avec R8 associ la base canonique.
On a alors trouv les 64 images de bases (vecteurs de base) qui permettent de dcomposer l'image et plus le coefficient dans la matrice F se trouve dans le coin en bas droite, plus il correspond des hautes frquences.
L'image est donc dcompose en une "combinaison linaire" de ces "images de base" : Page 9/24
4.3
La DCT est une transformation linaire permettant de disproportionner certains coefficients transforms de telle sorte que leur abandon n'entrane pas de distorsion significative aprs reconstruction. De plus, la DCT gnre des coefficients rels , les plus petits de ceux-ci tant localiss dans une zone frquentielle o l'il a une acuit faible. Une fois la DCT calcule sur un bloc, nous obtenons une matrice carre des valeurs pour chacune des frquences. La figure 1 montre un exemple de compression JPEG sur un bloc de 8x8 pixels 256 niveaux de gris. Les valeurs de la matrice DCT ont t arrondies l'entier le plus proche. La composante (0,0) est le coefficient continu (1210). Il reprsente une valeur ``moyenne'' de la grandeur d'ensemble de la matrice d'entre. Ce n'est pas exactement la moyenne au sens statistique du terme, l'ordre de grandeur n'tant pas le mme, mais c'est un nombre proportionnel la somme de toutes les valeurs du signal. Les autres valeurs de la DCT reprsentent des ``carts'' par rapport cette moyenne. Les valeurs de la matrice d'indices (0,j) (respectivement (i,0)) sont les composantes continues le long de l'axe Y (resp. X) pour la frquence j (resp. i) le long de l'axe X (resp. Y). On remarque une tendance gnrale des valeurs de la matrice s'approcher de 0 lorsqu'on s'loigne du coin suprieur gauche, c'est--dire lorsqu'on monte dans les plus hautes frquences. Cela traduit le fait que l'information effective de l'image est concentre dans les basses frquences. C'est le cas de la majorit des images.
Page 10/24
Figure 1 t
5. La quantification
Le but de la deuxime tape de la mthode JPEG, l'tape de quantification, est de diminuer la prcision du stockage des entiers de la matrice DCT pour diminuer le nombre de bits occups par chaque entier. C'est la seule partie non-conservative de la mthode (except les arrondis effectus). Puisque les informations de basses frquences sont plus pertinentes que les informations de hautes frquences, la diminution de prcision doit tre plus forte dans les hautes frquences. La perte de prcision va donc tre de plus en plus grande lorsqu'on s'loigne de la position (0,0). Pour cela on utilise une matrice de quantification contenant des entiers par lesquels seront divises les valeurs de la matrice DCT. Ces entiers seront de plus en plus grands lorsqu'on s'loigne de la position (0,0). Elle filtre les hautes frquences. La valeur d'un lment de la matrice DCT quantifie sera gale l'arrondi, l'entier le plus proche, du quotient de la valeur correspondante de la matrice DCT par la valeur correspondante de la matrice de quantification. Lors de la dcompression, il suffira de multiplier la valeur de la matrice DCT quantifie par l'lment correspondant de la matrice de quantification pour obtenir une approximation de la valeur de la DCT. La matrice obtenue sera appele matrice DCT dquantifie. Bien que la spcification JPEG n'impose aucune contrainte sur la matrice de quantification, l'organisme de standardisation ISO a dvelopp un ensemble standard de valeurs de quantifications utilisables par les programmeurs de code JPEG. Les matrices de quantifications intressantes sont celles permettant de ``choisir'' la perte de qualit acceptable. Ce choix a t rendu possible grce aux tests intensifs des matrices. Habituellement, 1 on prend pour matrice de quantification Q = qi , j avec q = avec i l'indice de ligne, j l'indice
( )
i, j
1 + K .(1 + i + j )
de colonne et K le facteur de qualit (choisi entre 1 et 25). On remarque que beaucoup de composantes de hautes frquences de la matrice quantifie ont t tronques zro, liminant leurs effets sur l'image. Par contre, les composantes pertinentes ont t peu modifies. Voici un exemple complet de compression et de dcompression jpeg :
Page 11/24
Page 12/24
Ce qui donne la suite suivante : 150, 80, 92, 26, 75, 20, 4, 18, 19, 3, 1, 2, 13, 3, 1, 0, 1, 2, 2, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, etc.
Cette squence a la proprit de parcourir les lments en commenant par les basses frquences et de traiter les frquences de plus en plus hautes. Puisque la matrice DCT quantifie contient beaucoup de composantes de hautes frquences nulles, l'ordre de la squence zigzag va engendrer de longues suites de 0 conscutifs. Deux mcanismes sont mis en uvre pour comprimer la matrice DCT quantifie. D'une part, les suites de valeurs nulles sont simplement codes en donnant le nombre de 0 successifs. D'autre part, les valeurs non nulles seront codes en utilisant une mthode statistique de type Huffman ou arithmtique.
7. Codage Entropique
7.1 Prsentation du problme
Considrons un signal x(t ) temps continu et bande limite [-B,+B]. On lchantillonne une frquence suprieure la frquence de Nyquist
temps discret X (n) . Ce processus est valeurs continues. Supposons quil ait t ensuite quantifi avec une rsolution importante. Ce processus alatoire devient un processus alatoire valeurs discrtes, cest dire que X (n) prend ses valeurs dans un ensemble fini. En thorie de linformation, on appelle X (n) la source dinformation, lensemble fini comprenant Lx lments lalphabet dentre Ax = x ...x et les lments x les symboles dentre ou lettres de lalphabet. On cherche maintenant comprimer cette information. Nous allons expliquer dabord que, moyennant certaines hypothses, il est possible de raliser cette opration sans apporter de distorsion. On parle alors de codage sans bruit, sans perte ou de codage entropique. Malheureusement les taux de compression permis sont gnralement insuffisants. On acceptera donc une certaine distorsion. On montrera quil existe une fonction appele fonction dbit-distorsion donnant une limite infrieure la distorsion lorsque lon impose le dbit ou inversement une limite infrieure pour le dbit lorsque lon simpose la distorsion. On introduira galement dans cette partie la notion de capacit dun canal de transmission de faon pouvoir noncer le thorme du codage combin source-canal.
1
Lx
i
7.2
X (n) est une suite de variables alatoires 1 Lx indpendantes et identiquement distribues prenant ses valeurs dans Ax = {x ...x }. On parle alors de source i discrte sans mmoire. On note px (i ) = Pr{X ( n) = x }, la distribution des diffrentes probabilits. Cette distribution est indpendante de linstant dobservation n puisque le processus alatoire est stationnaire.
7.2.1 Entropie dune source
On appelle information propre de lvnement X ( n) = x la quantit I ( x ) = log 2 p X (i ) . Elle est positive ou nulle. Elle est exprime en bits/symbole puisque lon a pris un logarithme de base 2. On
i i
H ( X ) = E {I ( x i )}
Page 13/24
H ( X ) = p x (i ) log 2 p x (i )
i =1
LX
Lentropie est la quantit dinformation quapporte, en moyenne, une ralisation de X (n) . Elle donne le nombre de bits ncessaires en moyenne pour dcrire compltement la source. Elle mesure lincertitude associe la source .
H ( X ) ne signifie pas que H est une fonction des valeurs prises par la variable alatoire X . Lentropie ne dpend que de la distribution des probabilits p x (i ).
Remarque : La notation habituelle
dans un ensemble fini, lalphabet dentre AX , et on dsire reprsenter (coder) les diffrents lments de cet ensemble de faon adapte aux caractristiques du canal de transmission et de faon efficace. De faon adapte aux caractristiques du canal de transmission veut dire que la reprsentation de chaque symbole dentre, un mot du code, peut tre construite partir dlments dun autre alphabet, adapt au canal. On supposera par la suite que cet alphabet est compose de deux lments
deux symboles binaires habituels 0 et 1. De faon efficace veut dire que lon cherche reprsenter la source en utilisant le minimum de bits, cest dire en minimisant la longueur moyenne des mots du code.
X (n) une application de lalphabet AX dans L 1 lensemble des suites finies dlments de lalphabet AC . Le code C = c ...c X est lensemble de ces suites.
Plus prcisment, on appelle codage de la source Chaque suite possible
c = {a
i
i (1)
...a
i (l )
composant un mot
est la longueur l du mot. La longueur moyenne des mots du code est donne par l =
(i )l (c i ) .
x 4 , x1 , x 5 , x 3 , x 4 .
x1
0
x2
x3
x4
x5
1110
x6
1111
On constate que le dcodage des symboles se fait sans rfrence aux mots de code futurs. Le code est dit instantan. Le code prcdent vrifie aussi la condition du prfixe. Une faon simple de vrifier la condition du prfixe, ou de construire un code vrifiant cette condition est de tracer un graphe orient en forme darbre binaire, dtiqueter chaque branche partant dun nud par les symboles 0 ou 1 et dassocier un mot du code chaque nud terminal en prenant comme mot de code la succession des symboles binaires sur les branches comme le montre la figure. Page 14/24
x1
0 0 1 1
x2
0 1
x3 x4 x5
0
1 1
x6
Arbre binaire associ un code uniquement dcodable Le nombre de branches entre le nud initial, la racine, et un nud terminal, une feuille, spcifie la longueur du code associ.
Ingalit de Kraft
Considrons un code binaire
C = c1 ...c LX
ncessaire et suffisante pour que ce code vrifie la condition du prfixe est que O
l ( c i )
(*)
Donnons simplement le principe de la dmonstration de la condition ncessaire lorsque L X est une puissance de 2. Considrons larbre complet reprsentant lensemble des L X mots dun code C dont tous les mots du code auraient la mme longueur
2
i =1
LX
imax
= 2 imax 2 imax = 1 .
On passe de larbre associ au code C larbre associ au code C en laguant un certain nombre de branches et en en crant de nouvelles. Elaguer des branches ne modifie pas le premier membre de la relation (*) puisque lon sera toujours amen remplacer deux termes de la forme nouvelles branches puisque lon remplacera
2 i par 2 2 i +1 .
Code Optimal
Relchons la contrainte suivant laquelle les quantits l (c ) doivent tre des entiers et remplaons le signe dingalit par une galit dans (*). Le code optimal est celui qui minimise la longueur moyenne
i
l = p x (i )l (c i )
i =1
LX
Sous la contrainte
2
i =1
LX
i ( c i )
= 1.
Page 15/24
LX LX j i ( c j ) p x ( j )l (c ) + 2 =0 l (c i ) j =1 j =1
On obtient
p x (i ) log e 2.2 l ( c ) = 0
i i
Soit
2 l ( c ) =
p x (i ) log e 2
LX
l ( c i )
Comme
2
i =1
LX 1 = p x (i) = 1 log e 2 i =1
log e 2 = 1
. On obtient
2 l ( c ) = p x (i )
i
l (c i ) = log 2 p x (i )
La longueur moyenne correspondant au code optimal est donne par
LX
l = p x (i )l (c i ) = p x (i ) log 2 p x (i )
i =1
l = H(X )
Parmi tous les codes vrifiant la condition du prfixe, celui qui minimise la longueur moyenne des mots du code a une longueur moyenne gale lentropie de la source. Lentropie H ( X ) apparat donc comme une limite fondamentale pour reprsenter sans distorsion une source dinformation.
7.2.3
Le dveloppement qui suit a simplement pour but de prciser le rsultat prcdent lorsque lon impose aux longueurs des mots du code dtre des valeurs entires.
Proposition 1
Si p (1)... p ( L) et q (1)...q ( L) sont deux distributions de probabilit quelconques, alors
q (i ) 0 p (i ) i =1 Lgalit a lieu si et seulement si p (i ) = q (i ) quel que soit i = l ,...L . En effet, on sait que, pour tout x positif, log 2 x ( x 1) log 2 e .
p(i) log
LX
Donc
log 2
Ou
p(i) log 2
i =1
q(i ) p (i )
Lexpression
D( p q) = p (i ) log 2
i =1
distributions de probabilit. Elle est toujours positive ou nulle. Elle sinterprte comme une mesure de distance entre deux distributions de probabilit bien que cela ne soit pas, proprement parler, une distance puisque ce nest pas une expression symtrique et quelle ne respecte pas lingalit triangulaire.
Proposition 2
Tout codage de la source moyenne vrifiant
H(X ) l .
En effet, tout code instantan uniquement dcodable vrifie lingalit de Kraft On cre une nouvelle distribution de probabilit de la forme q (i ) = a.2 avec a 1 puisque
l ( ci )
2
i =1
LX
l ( c i )
1.
q(i) = 1 = a 2 l (c ) .
i
LX
LX
i =1
i =1
Soit
p x (i ) log 2 p x (i ) p x (i )l (c i ) + log 2 a 0
i =1 i =1
LX
LX
H ( X ) l log 2 a
On obtient donc la formule dsire puisque log 2 a 0 .
Proposition 3
Il existe un code instantan uniquement dcodable vrifiant En effet, choisissons un code tel que A partir de la premire ingalit
l H (X ) +1.
log 2 p x (i ) l (c i ) log 2 p x (i ) + 1 .
i
l (c i ) log 2 p x (i ) , on obtient 2 l ( c ) p x (i )
2 l (c ) p x (i) = 1
i
LX
LX
i =1
i =1
On en dduit lexistence dun code ayant cette distribution des longueurs. A partir de la deuxime ingalit, on obtient :
LX
LX
l < H (X ) +1.
Thorme
X (n) , il existe un code instantan reprsentant exactement cette source et uniquement dcodable vrifiant H ( X ) l H ( X ) + 1 (**)
Pour toute source discrte sans mmoire, Page 17/24
l (c i ) = [ log 2 p x (i )]
[]
p (i)[log
i =1 x
LX
p x (i )]
l p x (i ) log 2 p x (i ) + p x (i )
i =1 i =1
LX
LX
l H(X ) +1
Comme
2 [ log 2 p x (i ) ] 2 log 2 p x ( i )
2 l (c ) p x (i)
i
LX
LX
i =1
i =1
2
i =1
LX
l ( c i )
Algorithme de Huffman
Lalgorithme de Huffman consiste construire progressivement un arbre binaire en partant des nuds terminaux. On part des deux listes
{x ...x } et {p
1 LX
On slectionne les deux symboles les moins probables, on cre deux branches dans larbre et on les tiquette par les deux symboles binaires 0 et 1. On actualise les deux listes en rassemblant les deux symboles utiliss en un nouveau symbole et en lui associant comme probabilit la somme des deux probabilits slectionnes. On recommence les deux tapes prcdentes tant quil reste plus dun symbole dans la liste.
On montre que cet algorithme est lalgorithme optimal. Pour aucun autre code uniquement dcodable, la longueur moyenne des mots du code est infrieure.
Premier Exemple
Prenons lexemple dune source ne pouvant prendre que six valeurs diffrentes et supposons connues les probabilits. Elles sont donnes dans le tableau suivant : Symboles Probabilits
x1
0,5
x2
0,15
x3
0,17
x4
0,08
x5
0,06
i
x6
0,04
{X (n) = x }
Page 18/24
Lentropie de cette source est gale 2,06 bits. Le code de Shannon entrane une longueur moyenne gale 2,28 bits. Lalgorithme de Huffman fournit larbre binaire schmatis ci dessous :
0,5
x
0
x2
0 1
0,15
x3 x 4 0,08
0,17
0 1
0,5
0,32
0 1
0,18
x5
0 1
0,06
0,1
x6
0,04
Illustration de lalgorithme de Huffman La table de codage est indique dans le tableau de la partie Code instantan uniquement dcodable. La longueur moyenne est gale 2,1 bits, valeur trs voisine de la limite thorique.
7.2.5 Gnralisation
La double ingalit (**) du thorme prcdent, est trop imprcise car la valeur de gnralement faible. Pour diminuer cette imprcision, on forme un vecteur alatoire, not
H ( X ) est
X N , en regroupant
N variables alatoires X (mN )... X (mN + N 1) et on cherche associer toute ralisation possible de ce vecteur un mot du code. Cela correspond, dans un cas, une application de lensemble produit AX ... AX
dans lensemble des suites finies. On conserve, dans ce paragraphe, lhypothse que la source est sans mmoire.
Thorme
On montre que si on regroupe N symboles de la source et si on lui associe un mot du code longueur l (c ) , alors il existe un code tel que la longueur moyenne l =
i
Pr( X
XN
c i de
)l (c i ) vrifie
H(X )
l 1 < H (X ) + N N
Le rapport l N reprsente le nombre moyen de bits par symbole ncessaire et suffisant pour pouvoir reprsenter exactement la source. Il existe un autre thorme consistant supposer que la longueur de tous les mots du code est identique et permettre N de varier. Ce thorme dit que quel que soit > 0 , il existe un code tel que si
l H (X ) + N alors la probabilit p e pour qu une squence X ( mN )... X ( mN + N 1) on ne puisse pas lui associer un mot du code, peut tre rendue arbitrairement petite pourvu que N soit suffisamment grand. Ce thorme dit
galement que si
l H (X ) N
Page 19/24
il nexiste pas de code pour lequel la probabilit p e puisse tre rendue arbitrairement petite. Deuxime exemple Supposons une source sans mmoire ne pouvant prendre que deux valeurs de probabilits connues. Formons un vecteur de dimension 2 puis un vecteur de dimension 3. Lensemble des probabilits des diffrents vnements est donn dans le tableau suivant :
x1
0,7
x2
0,3
2
x x x x x
0,343
1 1 1
x x
0,21
1
x 2 x1
0,21
2
x2 x2
0,09
1
0,49
x x x
0,147
x x
x x
x x
x1 x 2
x 2 x 2 x1
0,063
x2 x2 x2
0,027
0.147 0,063 0,147 0,063 Probabilits associes aux 2,4 et 8 vnements possibles
Lentropie de cette source est gale 0,88 bit. Lapplication de lalgorithme de Huffman donne les arbres binaires suivant :
0,49
x1 x1 x1
0,21
1
2
x1 x 2 x1
0 1
x1 x
0 0 1
0,51
0 1 0 0 1
x x
0 1
0,3
x 2 x1 x1 x1 x 2 x 2
x 2 x1
0,21
x1 x1 x 2
0 0 1 1
x 2 x1 x 2 x 2 x 2 x1
0 1
1
0,09
x x
Arbres binaires Les nombres moyens de bits par symbole sont donns dans ce tableau :
x2 x2 x2
N l N
1 1
2 0,905
3 0,908
Nombres moyens de bits par symbole Ils ne crent pas forcment une suite dcroissante lorsque N augmente mais ils vrifient la double ingalit :
H(X )
l 1 < H (X ) + N N
7.3
On a examin dans le dveloppement prcdent le cas le plus lmentaire. Gnralement il existe une dpendance statistique entre les chantillons successifs de la source que lon va chercher exploiter pour rduire le nombre de bits ncessaire pour reprsenter exactement la source.
Page 20/24
AX = x ...x et AY = y ... y et notons les probabilits conjointes i i i p XY (i, j ) = Pr X = x , Y = y et les probabilits conditionnelles p X Y (i j ) = Pr X = x Y = y i .
1
LX
} {
LX
On appelle : information
i i
conjointe
des
vnements
{X = x }
i
et
{Y = y },
i
la
quantit
I ( x , y ) = log 2 p XY (i, j ) .
Entropie conjointe de deux variables alatoires discrtes conjointe H ( X , Y ) =
X et Y , lesprance de linformation
p
i =1 j =1
LX
lY
XY
( j i) .
} est
p
j =1
LY
Y X
( j i ) log 2 pY X ( j i ) .
LX
H (Y X ) = p x (i ) H (Y x i )
H (Y X ) =
i =1
LX
p
j =1
LY
XY
(i, j ) log 2 pY X ( j i ) .
H ( X , Y ) et lentropie conditionnelle H (Y X ) :
H ( X , Y ) = H ( X ) + H (Y X ) .
En effet
H ( X , Y ) =
i =1
LX
p
j =1 XY
LY
XY
H ( X , Y ) =
i =1 LX
LX
p
j =1
LY
(i, j ) log 2 p X (i ) pY X ( j i )
LX
H ( X , Y ) = p X (i ) log 2 p X (i )
i =1 i =1
p
j =1
LY
XY
(i, j ) log 2 pY X ( j i )
7.3.2 Thorme du codage sans bruit dune source discrte avec mmoire
Les dfinitions prcdentes et la relation H ( X , Y ) = H ( X ) + H (Y X ) se gnralisent au cas de N variables alatoires discrtes. Considrons le vecteur X N = X ( mN )... X ( mN + N 1)
]t
et appelons
p
N
XN
lim N H ( X
N
).
On montre quil est possible dassocier une source un code uniquement dcodable pourvu que le nombre de bits moyen par symbole soit suprieur ou gal au dbit entropique. Si la source est sans mmoire, on a H ( X N ) =
i0 ,...,i N 1
p
i
H ( X N ) = N p X (i ) log 2 p X (i ) H ( X N ) = NH ( X )
Le dbit entropique de cette source est donc gal lentropie de la source. De faon gnrale, on a lingalit
0 H ( X ) H ( X ) log 2 L X
Tout ce dveloppement dmontre quil existe un code capable de reprsenter exactement la source un dbit gal au dbit entropique mais nexplique pas toujours comment construire ce code. On remarquera galement quun codage efficace ne peut tre ralis quau dpend du dlai de reconstruction.
8. Dcompresser
Une fois compris la mthode de compression dune image au format JPEG, il nest pas difficile de daborder la dcompression. En fait, il sagit de faire le chemin inverse de la compression. Pour cette raison, nous allons nous restreindre ses tapes principales. Un logiciel qui va dcompresser une image au format JPEG va suivre les tapes principales suivantes : - ouverture du fichier concern - Remise en forme de la matrice quantifie, en suivant le chemin inverse de la mthode de Huffman. - Produit terme terme des coefficients de la matrice DCT quantifie, par les coefficients de la matrice de quantification. - Rgnration de la matrice de pixels en appliquant la DCT inverse. La DCT inverse se fait rapidement en utilisant les notations matricielles : si on note F la matrice reprsentant les valeur DCT et A l'image reconstitue, on a
A = PF t P
La matrice de pixels de sortie nest plus exactement la mme que la matrice dentre, mais la perte de donnes doit rester peu perceptible. La dcompression est un processus plus rapide que la compression. En effet, il ny a plus de divisions arrondir et de termes ngliger. Afin de pouvoir rellement se rendre compte quoi correspond les diffrentes matrices cites, nous avons ralis un applet Java qui permet de les dcouvrir.
Page 22/24
9. Applet JAVA
Page 23/24
Conclusion
Comme de nombreuses mthodes de compression, le Jpeg est bas sur des principes mathmatiques trs comprhensibles. Mais la difficult intervient lorsque lon entre en dtail dans les dmonstrations de lalgorithme. Thormes et principes fondamentaux doivent alors tre dmontrs, pour expliquer les fondements de la mthode. Lutilisation de telles mthodes de compression des informations est trs rpandue et utilises dans de nombreux domaines : informatique, tlphonie, hi-fi, vido, A l'heure actuelle la mthode de compression JPEG est parmi les plus utilises parce qu'elle atteint des taux de compression trs levs sans que les modifications de l'image ne puissent tre dceles par l'il humain. De plus, beaucoup d'implmentations permettent de choisir la qualit de l'image comprime grce l'utilisation de matrices de quantification paramtrables.. La rputation et donc le nombre dutilisateurs dun algorithme de compression dpendent de diffrents facteurs : le rapport taille/qualit, la vitesse de compression et de dcompression. Il est donc intressant de comparer les diffrentes mthodes, pour pouvoir choisir la plus adaptes nos besoins et son utilisation.
Page 24/24