• Aucun résultat trouvé

Le JPEG2000 correspond `a la partie 1 du standard ISO 15444, qui a ´et´e publi´e en 2000. Ce format comporte un mode sans perte et un autre avec pertes.

Bien que nous ayons uniquement `a nous pr´eoccuper du d´ecodage d’images JPEG2000, nous pr´esentons ici le format JPEG2000 du point de vue du codage. Ce codage permet de passer d’une image `a un fichier binaire compress´e. Le taux de compression est un param`etre cl´e du codage, mais au moment du d´ecodage, lorsque nous devrons d´ecoder un fichier binaire compress´e au format JPEG2000, ce taux de compression nous sera impos´e.

Nous pr´esentons ci-apr`es les ´etapes du codage par l’algorithme JPEG2000. Le d´eco- dage d’une image JPEG2000 consistera `a suivre les mˆemes ´etapes dans l’ordre inverse et `a appliquer, `a chaque ´etape, la transformation inverse. Mais si certaines ´etapes du codage ne sont pas inversibles (par exemple la quantification), cela causera in´evitablement des pertes au moment du d´ecodage.

4.2.1 D´ecoupage en tuiles et changement d’espace colorim´etrique

L’´el´ement de d´epart `a coder est l’image, qui est divis´ee en plusieurs parties appel´ees « tuiles » (tiles). Une tuile correspond `a une zone spatiale de l’image. Une image peut ˆetre constitu´ee d’une ou de plusieurs tuiles.

Les images couleur comportant trois composantes, il en va de mˆeme pour les tuiles. Avant d’appliquer une transformation en ondelettes `a chaque composante couleur d’une tuile, appel´ee « composante de tuile » (tile-part), on proc`ede `a un changement d’espace colorim´etrique. En l’occurrence, on passe de l’espace RGB (rouge-vert-bleu) `a l’espace YCbCr (luminance-chrominances), et ce afin de d´ecorr´eler les canaux. En effet, il est connu que, de mani`ere g´en´erale, la compression de donn´ees est d’autant meilleure que les donn´ees sont moins corr´el´ees. Il existe deux types de changements d’espace colo- rim´etrique, inversible (Reversible Component Transformation) ou non inversible (Irre- versible Component Transformation), qui sont utilis´ees, respectivement, pour le codage sans perte ou avec pertes.

4.2.2 Transformation en ondelettes discr`ete

La transformation en ondelettes discr`ete, ou Discrete Wavelet Transform (DWT), existe elle aussi sous deux formes : inversible ou non inversible. Les ondelettes 5/3 de Le Gall sont utilis´ees pour la compression sans perte. Pour atteindre de meilleures per- formances de compression (avec pertes), les ondelettes 9/7 de Daubechies sont utilis´ees [5]. Dans les deux cas, la partie 1 de la norme JPEG2000 impose l’utilisation de filtres de type lifting-based. L’algorithme pr´ecis pour la transformation en ondelettes discr`ete (inversible ou non inversible) est d´ecrit dans le chapitre F2 de [20]. Enfin, toutes les DWT dont il est question sont bidimensionnelles.

La figure 4.1 illustre les premi`eres ´etapes du codage JPEG2000 : sur cet exemple, deux DWT successives sont appliqu´ees `a la premi`ere composante (canal Y) d’une tuile

de l’image d’origine. Par souci de clart´e, nous avons agrandi le r´esultat des DWT, alors que sa taille est exactement la mˆeme que celle de la composante de tuile dont il provient. En d’autres termes, l’ensemble des « coefficients d’ondelettes » obtenus en appliquant deux DWT `a l’ensemble des composantes des diff´erentes tuiles (ici, il y a quatre tuiles) a exactement la mˆeme taille que l’image d’origine.

Image

Tuile

Comp Y

Comp Cb

Comp Cr

DWT (N=2)

Figure 4.1 – Premi`eres ´etapes du codage JPEG2000.

La DWT est utilis´ee pour obtenir plusieurs « niveaux de d´ecomposition » : une DWT donne une image de d´efinition quatre fois plus faible. Chaque niveau de d´ecomposition comporte trois « sous-bandes » fr´equentielles, not´ees xHL, xLH et xHH au niveau de

Frontière de code block Frontière de precinct Frontière de sous-bande

1

2

3 4

5

6

7 8

9 10

11 12

Sous-bande 2HH

Sous-bande 2HL

Sous-bande 2LH

1HL

1HH

1LH

LL

Figure 4.2 – Code blocks et precincts apr`es application de deux DWT `a une composante de tuile. Cet exemple comporte trois niveaux de d´ecomposition. La taille d’un code block est toujours la mˆeme, mais celle d’un precinct peut d´ependre du niveau de d´ecomposition. Par exemple, les six precincts de la sous-bande LL sont plus petits que ceux des niveaux sup´erieurs : il sont compos´es chacun d’un seul code block.

d´ecomposition x, `a l’exception du niveau de d´ecomposition 0 (basses fr´equences), qui comporte une seule sous-bande not´ee LL. La figure 4.2 donne l’exemple d’une composante de tuile `a laquelle deux DWT ont ´et´e appliqu´ees. Chaque niveau de d´ecomposition contient des sous-bandes compos´ees de coefficients qui d´ecrivent les caract´eristiques en fr´equences spatiales (verticales et horizontales) de la composante de tuile.

Apr`es application des transformations en ondelettes, chaque sous-bande est d´ecoup´ee en code blocks. Il s’agit d’´el´ements rectangulaires, dont chacune des dimensions est ´egale `a une puissance de 2. Un precinct est un ensemble de code blocks correspondant aux diff´erentes sous-bandes de mˆeme niveau de d´ecomposition, couvrant une mˆeme zone spatiale. Sur l’exemple de la figure 4.2, les code blocks 1, 2, 3, 4 de la sous-bande 2HL sont regroup´es avec les code blocks de num´eros 5 `a 8 de la sous-bande 2LH et avec les code blocks de num´eros 9 `a 12 de la sous-bande 2HH, pour former un precinct. On voit ´egalement qu’un precinct de seulement six code blocks est construit `a partir des sous-bandes 1HL, 1LH et 1HH, `a cause de la forme rectangulaire de la tuile.

4.2.3 Quantification des coefficients d’ondelettes

La quantification est un proc´ed´e qui, de fa¸con g´en´erale, diminue la pr´ecision des donn´ees. Elle permet de r´eduire la dynamique des coefficients d’ondelettes, et donc d’am´eliorer la compression. Pour le codage sans perte, il ne doit bien sˆur pas y avoir de quantification.

Pour le codage avec pertes, les coefficients sont quantifi´es par la m´ethode dead zone scalar quantifier, qui consiste `a mettre `a 0 les coefficients inf´erieurs en valeur absolue `a un seuil, afin de r´eduire la dynamique des donn´ees (voir [38], page 43).

4.2.4 Codage entropique des code blocks (Tier-1)

Lors des transformations en ondelettes, les pixels ne sont pas compress´es : ils sont r´eorganis´es de mani`ere fr´equentielle afin d’atteindre de meilleurs taux de compression. C’est ce qui est fait `a l’´etape Tier-11 : `a chaque code block est appliqu´e un « codage entropique », ind´ependamment des autres code blocks.

L’´etape Tier-1 utilise un codeur arithm´etique (codeur MQ) et un codeur contextuel « par plan de bits » (EBCOT). L’algorithme Embedded Block Coding with Optimized Truncation (EBCOT) a ´et´e propos´e par Taubman en 2000 [48]. Son fonctionnement ´etant complexe, nous renvoyons le lecteur `a [49] pour une description d´etaill´ee.

4.2.5 Cr´eation du fichier binaire (Tier-2)

Cette ´etape permet de contrˆoler le taux de compression et d’organiser le « train de bits » (bitstream) du format JPEG2000. Au moment de la compression, le train de bits peut ˆetre tronqu´e de diff´erentes fa¸cons, ce qui permet de choisir le taux de compression. Le fichier binaire est organis´e de mani`ere hi´erarchique, de l’image vers les code blocks. `A chaque niveau, il est compos´e de deux parties : un en-tˆete et des donn´ees. Au plus haut niveau, il comporte l’en-tˆete principal et les donn´ees correspondant aux diff´erentes composantes de tuiles, qui elles-mˆemes comportent chacune un en-tˆete, suivi de donn´ees compress´ees.

L’en-tˆete principal du fichier binaire et celui d’une composante de tuile sont construits selon le mˆeme mod`ele : ils contiennent des marqueurs indiquant les param`etres de l’image (taille, nombre de composantes, . . .). Ces marqueurs peuvent ˆetre obligatoires ou option- nels.

Les donn´ees compress´ees de chaque composante de tuile sont organis´ees en « pa- quets ». Un paquet correspond aux donn´ees associ´ees `a un precinct. L’´el´ement le plus petit, dans la cr´eation du fichier binaire, est le code block. Le train de bits associ´e `a chaque code block contient les donn´ees binaires issues de la compression du codeur entropique.

La figure 4.3 met en correspondance la d´ecomposition de l’image effectu´ee par le co- dage JPEG2000 et l’organisation des donn´ees compress´ees dans le fichier binaire associ´e.

Figure 4.3 – Correspondances entre la d´ecomposition de l’image effectu´ee par le codage JPEG2000 et l’organisation des donn´ees compress´ees dans le fichier binaire (E signifie « en-tˆete »).

4.2.6 D´ecompression du format JPEG2000

Lors du d´ecodage d’une image compress´ee au format JPEG2000, le train de bits correspondant `a chaque code block est extrait du fichier binaire par le Tier-2, qui extrait ´egalement du train de bits le nombre de « passes de codage » de ce code block. Le Tier-1, qui re¸coit les donn´ees compress´ees fournies par le Tier-2, effectue la d´ecompression `a proprement parler (cf. figure 4.4).

Les coefficients d’ondelettes de chaque code block sont d´ecompress´es par « d´ecodage entropique ». Le principe de fonctionnement du Tier-1 est le mˆeme pour le codage et pour le d´ecodage : EBCOT code ind´ependamment chaque code block d’un paquet. Le d´ecodeur entropique arithm´etique adaptatif binaire bas´e sur le contexte (context-based adaptive binary arithmetic), appel´e « d´ecodeur MQ », est issu du standard ISO JBIG2.