Vous êtes sur la page 1sur 24

T.I.P.E.

Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

Compression d'images fixes

INTRODUCTION

1.

VERS UNE STANDARDISATION : J.P.E.G.

2.

PRINCIPE DE LA COMPRESSION JPEG

3.

QU'EST-CE QU'UNE IMAGE INFORMATIQUE ?

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

6. CODAGE DE LA MATRICE DCT QUANTIFIEE PAR UNE METHODE DE COMPRESSION ENTROPIQUE

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

CONCLUSION

24

Page 2/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

1. Vers une standardisation : J.P.E.G.


Dans de nombreuses applications : photos satellites, clichs mdicaux, photos d'agences de presse, tableaux, un standard pour archiver ou transmettre une image fixe, en couleur et de bonne qualit est ncessaire. Une premire recommandation a t donne par l'UIT-T en 1980 pour le fac-simil, c'est dire pour transmettre sur une ligne tlphonique une image en noir et blanc au format A4 (210 x 297 mm) de l'ISO en environ une minute. La dfinition est de 4 lignes par mm et de 1780 lments d'image (pixels, picture elements) en noir et blanc par ligne. Il y a donc environ 2 Mbits transmettre. Pendant 1 minute 4800 bauds (bit par seconde), on transmet environ 300kbits. Le taux de compression doit donc tre voisin de 7. Une image fixe de couleur de qualit tlvision rclame de l'ordre de 8 Mbits (640 x 480 x 24). Une image de qualit 35 mm en rclame 10 fois plus. Un effort de standardisation a t effectu : l'association de deux groupes de normalisation, le CCITT et l'ISO (Organisation Internationale de Standardisation), supporte par divers groupes industriels et universitaires, donna naissance au J.P.E.G.:(Joint Photographic Experts Group). Cette norme comprend des spcifications pour le codage conservatif et non-conservatif. Elle a abouti en 1990 une premire phase d'une recommandation ISO / UIT-T. Les contraintes imposes sont importantes. La qualit de l'image reconstruite doit tre excellente, le standard adapt de nombreuses applications pour bnficier, entre autre, d'un effet de masse au niveau des circuits VLSI ncessaires, la complexit de l'algorithme de codage raisonnable. Des contraintes relatives aux modes d'oprations ont galement t rajoutes. Le balayage est ralis de gauche vers la droite et de haut en bas. L'encodage est progressif et hirarchique. Ces deux derniers qualificatifs signifient qu'un premier encodage peut fournir une image reconstruite de qualit mdiocre mais que des encodages successifs entraneront une meilleure rsolution. Cela est utile, par exemple, lorsque l'on dsire visualiser une image sur un cran de qualit mdiocre puis l'imprimer sur une bonne imprimante.

2. Principe de la compression JPEG


Le principe de l'algorithme JPEG pour une image niveaux de gris (une image couleur est un ensemble d'images de ce type), est le suivant. Une image est dcompose squentiellement en blocs de 8x8 pixels subissant le mme traitement. Une transforme en cosinus discrte bi-dimensionnelle est ralise sur chaque bloc. Les coefficients de la transforme sont ensuite quantifis uniformment en association avec une table de 64 lments dfinissant les pas de quantification. Cette table permet de choisir un pas de quantification important pour certaines composantes juges peu significatives visuellement, car les informations pertinentes d'une image, caractrise par son signal bidimensionnel Img(x,y), sont concentre dans les frquences spatiales les plus basses. On introduit ainsi un critre perceptif qui peut tre rendu dpendant des caractristiques de l'image et de l'application (taille du document). Une table type est fournie par le standard mais n'est pas impose. Un codage entropique, sans distorsion, est enfin ralis permettant d'utiliser les proprits statistiques des images. On commence par ordonner les coefficients suivant un balayage en zigzag pour placer d'abord les coefficients correspondant aux frquences les plus basses. Cela donne une suite de symboles. Le code de Huffman consiste reprsenter les symboles les plus probables par des codes comportant un nombre de bits le plus petit possible.

Nous allons dtailler chaque partie de la compression JPEG, et en tudier les fondements.

3. Qu'est-ce qu'une image informatique ?


Une image informatique est constitue de points de couleurs diffrentes. L'association (point,couleur) est appele pixel. La mmoire utile pour stocker un pixel peut varier de 1 bit (cas des images monochromes) 24 bits (images en 16 millions de couleurs).

Page 4/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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.

4. Transformation DCT : transforme en cosinus discrte bidimensionnelle


La cl du processus de compression est la DCT (Discrete Cosine Transform). La DCT est une transforme fort semblable la FFT : la transforme de Fourier rapide (Fast Fourier Transform), travaillant sur un signal discret unidimensionnel. Elle prend un ensemble de points d'un domaine spatial et les transforme en une reprsentation quivalente dans le domaine frquentiel. Dans le cas prsent, nous allons oprer la DCT sur un signal en trois dimensions. En effet, le signal est une image graphique, les axes X et Y tant les deux dimensions de l'cran, et laxe des Z reprenant l'amplitude du signal , la valeur du pixel en un point particulier de l'cran. La DCT transforme un signal d'amplitude (chaque valeur du signal reprsente l' "amplitude'' d'un phnomne, ici la couleur) discret bidimensionnel en une information bidimensionnelle de "frquences''.

DCT

F(u, v) =

N 1 N 1 2 1 1 c(u ).c(v) Img(x, y).cos u x + .cos v y + N 2 2 x =0 y =0 N N

La transformation inverse l'IDCT :

Img ( x, y ) =

c(0) = (2)1 / 2 o c(w) = 1 pour w = 1,2,..., N - 1

2 N 1 N 1 1 1 c(u).c(v).F(u, v).cos N u x + 2 .cos N v y + 2 N u =0 v =0

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

4.1

Comment est forme la DCT bidimensionnelle

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

Les images des chevauchent d'un pixel Image originale

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) =

- 2i 1 N 1 N 1 1 1 N yN Img' (x, y).exp 2 N u x + 2 + v y + 2 2N x = =

(1)

pour u, v=N,,-1,0,1,,N-1, comme Img'(x,y) est relle et symtrique, (1) se rduit

Page 6/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

F(u, v) =

2 N 1 N 1 1 Img(x, y).cos N u x + 2 .cos N N x =0 y =0

1 v y + 2

L'criture de la DCT est normalise :

F(u, v) =

N 1 N 1 2 1 1 c(u ).c(v) Img(x, y).cos u x + .cos v y + N 2 2 x =0 y =0 N N

La transformation inverse est donne par

Img ( x, y ) =

c(0) = (2)1 / 2 o c(w) = 1 pour w = 1,2,..., N - 1

2 N 1 N 1 1 1 c(u).c(v).F(u, v).cos N u x + 2 .cos N v y + 2 N u =0 v =0

Le coefficient c(w) sert normer les vecteurs lors de l'criture matricielle de la DCT.

4.2

Ecriture matricielle et interprtation

On se ramne dans le cadre de la compression jpeg, N=8 La transforme :

F(i, j) =

N 1 N 1 2 (2 x + 1)i (2 y + 1) j c(i).c( j ). Img(x, y).cos .cos peut s'crire matriciellement : 2N N 2N x =0 y =0

La matrice A est compos des intensit Img au point (x,y)

Img(0,0) Img(1,0) Img(0,1) Img(1,1) . . . . . . . . . . . Img(0,7)


y

. . . . . . . . . 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

La matrice P est form par P = pi , j et pi , j = c ( j ). de colonne)

( )

Page 7/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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 .

. . d i, j . . . . . . 2 (2.( N 1) + 1).1 . cos . . N 2N

on a

1 N 2 (2.0 + 1).1 t P = N . cos 2 N 2 ( 2.0 + 1).2 . cos N 2N . . . . 2 ( 2.0 + 1).( N 1) . cos 2N N

1 N 2 ( 2.1 + 1).1 . cos N 2N 2 (2.1 + 1).2 . cos N 2N . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . 2 (2.1 + 1).( N 1) . cos . . . . . N 2N

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

Vecteur n0

Vecteur n1

Vecteur n2

1,2 1 0,8 0,6 0,4

1,5 1 0,5 0 0 -0,5 2 4 6 8

1,5 1 0,5 0 0 -0,5 -1 -1,5 2 4 6 8

0,2 -1 0 0 2 4 6 8 -1,5

Vecteur n3

Vecteur n4

Vecteur n5

1,5 1 0,5 0 0 -0,5 -1 -1,5 2 4 6 8

0,8 0,6 0,4 0,2 0 -0,2 -0,4 -0,6 -0,8 0 2 4 6 8

1,5 1 0,5 0 0 -0,5 -1 -1,5 2 4 6 8

Vecteur n6

Vecteur n7

1,5 1 0,5 0 0 -0,5 -1 -1,5 2 4 6 8

1,5 1 0,5 0 0 -0,5 -1 -1,5 2 4 6 8

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

4.3

Application pour la compression jpeg

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

6. Codage de la matrice DCT quantifie par une mthode de compression entropique


Un codage type Huffman p159 ou arithmtique continue la compression des donnes. La dernire tape de la compression JPEG est le codage de la matrice DCT quantifie. Ce codage est ralis sans perte d'informations, en utilisant des mcanismes conomes. Puisque les blocs contigus sont trs corrls, on peut coder le coefficient continu en position (0,0) en codant simplement la diffrence avec le coefficient continu du bloc prcdent. Cela produira en gnral un trs petit nombre. Le codage du reste de la matrice DCT quantifie va se faire en parcourant les lments dans l'ordre impos par une squence particulire appele squence zigzag :

Page 12/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

fe = 2 B . On obtient, sans perte dinformation, un signal

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

Codage sans bruit dune source discrte sans mmoire :


On suppose, dans une premire tape, que le processus

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

appelle information propre moyenne ou entropie de la source

X (n) lesprance de la variable alatoire I ( x i ) .

H ( X ) = E {I ( x i )}

Page 13/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

7.2.2 Codage dune source


Linformation transmettre ou stocker, modlise par le processus alatoire

X (n) , prend ses valeurs

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

AC = a 1 , a 2 , par exemple les

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 )

} est un mot du code. Le nombre dlments de A


p
i =1 LX

composant un mot

est la longueur l du mot. La longueur moyenne des mots du code est donne par l =

(i )l (c i ) .

Code instantan uniquement dcodable


Remarquons tout dabord quil semble exister un problme associ un code de longueur variable : faut-il ajouter des sparateurs entre mots du code dans une squence ? Cela nest pas ncessaire si le code vrifie la condition dite du prfixe : aucun mot du code ne doit tre un prfixe dun autre mot du code. Prenons lexemple dune source ne pouvant prendre que six valeurs diffrentes x ,..., x . Le code dfini par les associations donnes dans le tableau suivant, est un code valide, on dit uniquement dcodable, puisque, recevant par exemple la chane binaire 11001110101110, on en dduit la squence Symboles Codes

x 4 , x1 , x 5 , x 3 , x 4 .

x1
0

x2

x3

x4

x5
1110

x6
1111

100 101 110 Dfinition dun code

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

} reprsentant sans erreur une source. Une condition


2
i =1 LX

ncessaire et suffisante pour que ce code vrifie la condition du prfixe est que O

l ( c i )

(*)

l (c i ) est la longueur du mot de code 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

I max telle que L X = 2 imax .

Ce code vrifie la relation (*) prcdemment trouve puisque


i

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 i +1 . Il en sera de mme si lon cre de

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.

Introduisons les multiplieurs de Lagrange et crivons pour i = 1...L X

Page 15/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

Cela impose la valeur de la constante

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

Thorme du codage sans bruit dune source discrte sans mmoire

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

q(i ) q(i ) 1 log 2 e p (i ) p (i )

Ou

p(i) log 2
i =1

L q(i ) q(i ) p (i ) p(i ) 1 log 2 e = 0 . p (i ) i =1

Lgalit est atteinte si et seulement si

q(i ) p (i )

= 1 quel que soit i .


Page 16/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

Lexpression

D( p q) = p (i ) log 2
i =1

p (i ) sappelle lentropie ou distance de Kullback-Leibler entre deux q(i )

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

X (n) par un code instantan uniquement dcodable entrane une longueur

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

2 l (c ) La proposition 1 dit que p x (i ) log 2 a 0 p x (i ) i =1


LX
i

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 :

p x (i)l (c i ) < p x (i) log 2 p x (i) + 1


i =1 i =1

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

H ( X ) est lentropie de la source et l le longueur moyenne du code.

7.2.4 Construction dun code


Code de Shannon
La faon la plus simple de procder est de choisir

l (c i ) = [ log 2 p x (i )]

O x reprsente le plus petit entier suprieur ou gal x . On a l =

[]

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 )

on en dduit quil existe un code instantan vrifiant la condition du prfixe.

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

(1)... px( L X )}.

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

Probabilits associes aux six vnements

{X (n) = x }

Page 18/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

Codage sans bruit dune source discrte avec mmoire :

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.

7.3.1 Nouvelles dfinitions

Page 20/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

Considrons deux variables alatoires discrtes

} {

LX

X et Y prenant leurs valeurs dans respectivement

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

(i, j ) log 2 p XY (i, j ) .

Information conditionnelle de lvnement Y = y ralis, la quantit I ( y x ) = log 2 pY


j i X

} sachant que lvnement {X = x } est


i

( j i) .

Entropie conditionnelle de la variable alatoire discrte Y sachant que lvnement X = x ralis : H (Y x ) =


i

} est

p
j =1

LY

Y X

( j i ) log 2 pY X ( j i ) .
LX

Entropie conditionnelle de cest dire

Y sachant X , lesprance de lentropie conditionnelle prcdente,


i =1

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 ) .

La relation p XY (i, j ) = p X (i ) pY lentropie conjointe

( j i ) entrane la relation suivante entre lentropie H ( X ) ,

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

(i, j ) log 2 p XY (i, j )

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 X N (i0 ,..., i N 1 ) la probabilit conjointe


Page 21/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

p X N (i0 ,..., i N 1 ) = p r X (mN ) = x i0 ,..., X (mN + N 1) = x iN 1 .


On dfinit lentropie de ce vecteur par H ( X N ) = On appelle dbit entropique H ( X ) =
i0 ,...,i N 1

p
N

XN

(i0 ,..., i N 1 ) log 2 p X N (i0 ,..., i N 1 ) .

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

(i0 )... p X (i N 1 ) log 2 p X (i0 )... p X (i N 1 )

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

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

9. Applet JAVA

Page 23/24

T.I.P.E. Terre et Espace : Tlcommunication : Compression Jpeg Avril 1999

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

Vous aimerez peut-être aussi