12.5 Le standard JPEG
399
12.5 Le standard JPEG
L’introduction a soulign´ e qu’une bonne m´ ethode de compression tire profit des caract´ eristiques de l’objet ` a comprimer. Le standard JPEG a pour but de comprimer des
images fixes, surtout des photos. Le standard mise donc sur le fait que, dans une photo,
les variations rapides sont assez rares. Vu ce que nous venons d’apprendre sur la transformation en cosinus discr` ete et les coefficients α kl , il semble donc naturel de faire jouer
un rˆ ole important aux α kl de k et l petits et un rˆ ole moindre aux α kl de k et l proches
de N . Et la r` egle pouvant nous guider demeure : toute d´ egradation d’une image qui est
imperceptible ` a l’appareil visuel humain (œil + cerveau) est acceptable.
Les principales ´ etapes de la compression sont les suivantes :
• translation de la fonction palier
• transformation en cosinus par blocs 8 × 8
• quantification
• ordre en zigzag et encodage.
Nous d´ ecrirons chacune de ces ´ etapes sur la photo de la chatte reproduite ` a la figure 12.1.
Cette photo a ´ et´ e prise par un appareil num´ erique qui lui-mˆ eme stocke les photos en
format JPEG. Une plage carr´ ee de 640 × 640 pixels a ´ et´ e extraite de cette photographie
et l’information a ´ et´ e transform´ ee en une fonction palier dont chaque palier (niveau de
gris) prend ses valeurs dans l’ensemble {0, 1, 2, . . . , 2
8
− 1 = 255}. Rappelons que chacun
des pixels requiert ainsi un octet et qu’il y a 640 × 640 pixels. Pour stocker cette image,
il faut donc 409 600 o = 409,6 Ko = 0,4096 Mo.
Translation de la fonction palier La premi` ere ´ etape est la translation des valeurs
de f par la quantit´ e 2
b−1 o` u b est le nombre de bits utilis´ es pour chaque pixel. Dans
notre exemple, nous utilisons b = 8 et nous r´ eduisons chaque palier par la quantit´ e
2
b−1 = 2
7 = 128. Cette premi` ere ´ etape consiste donc ` a donner au nouveau ˜
f ainsi
obtenu un domaine [−2
b−1 , 2
b−1
−1] qui est (presque) sym´ etrique par rapport `
a l’origine
comme le sont les images des fonctions cosinus qui cr´ eent la base des A kl . Nous suivrons
les ´ etapes sur l’exemple d´ efini ` a la table 12.2. Les valeurs de ˜
f ij = f ij − 128 peuvent
ˆ etre lues `
a la table 12.4 (et celles de la fonction originale f , `
a la table 12.2).
-88
65
-39
-91
81
108
-87 -114
-26
37
-92
22
119
-24 -121 -109
29
-36
-40
123
28 -125 -108
-93
25
-53
92
65
-99 -115
-94 -106
-12
45
112
-74 -117
-90 -108 -109
34 127
-19 -119 -102 -106 -108
-99
109
54 -123 -100 -108 -113 -100 -108
94
-95 -120 -105 -104
-99 -105 -105
Tab. 12.4. Les 64 valeurs de la fonction ˜
fij = fij − 128
399
12.5 Le standard JPEG
L’introduction a soulign´ e qu’une bonne m´ ethode de compression tire profit des caract´ eristiques de l’objet ` a comprimer. Le standard JPEG a pour but de comprimer des
images fixes, surtout des photos. Le standard mise donc sur le fait que, dans une photo,
les variations rapides sont assez rares. Vu ce que nous venons d’apprendre sur la transformation en cosinus discr` ete et les coefficients α kl , il semble donc naturel de faire jouer
un rˆ ole important aux α kl de k et l petits et un rˆ ole moindre aux α kl de k et l proches
de N . Et la r` egle pouvant nous guider demeure : toute d´ egradation d’une image qui est
imperceptible ` a l’appareil visuel humain (œil + cerveau) est acceptable.
Les principales ´ etapes de la compression sont les suivantes :
• translation de la fonction palier
• transformation en cosinus par blocs 8 × 8
• quantification
• ordre en zigzag et encodage.
Nous d´ ecrirons chacune de ces ´ etapes sur la photo de la chatte reproduite ` a la figure 12.1.
Cette photo a ´ et´ e prise par un appareil num´ erique qui lui-mˆ eme stocke les photos en
format JPEG. Une plage carr´ ee de 640 × 640 pixels a ´ et´ e extraite de cette photographie
et l’information a ´ et´ e transform´ ee en une fonction palier dont chaque palier (niveau de
gris) prend ses valeurs dans l’ensemble {0, 1, 2, . . . , 2
8
− 1 = 255}. Rappelons que chacun
des pixels requiert ainsi un octet et qu’il y a 640 × 640 pixels. Pour stocker cette image,
il faut donc 409 600 o = 409,6 Ko = 0,4096 Mo.
Translation de la fonction palier La premi` ere ´ etape est la translation des valeurs
de f par la quantit´ e 2
b−1 o` u b est le nombre de bits utilis´ es pour chaque pixel. Dans
notre exemple, nous utilisons b = 8 et nous r´ eduisons chaque palier par la quantit´ e
2
b−1 = 2
7 = 128. Cette premi` ere ´ etape consiste donc ` a donner au nouveau ˜
f ainsi
obtenu un domaine [−2
b−1 , 2
b−1
−1] qui est (presque) sym´ etrique par rapport `
a l’origine
comme le sont les images des fonctions cosinus qui cr´ eent la base des A kl . Nous suivrons
les ´ etapes sur l’exemple d´ efini ` a la table 12.2. Les valeurs de ˜
f ij = f ij − 128 peuvent
ˆ etre lues `
a la table 12.4 (et celles de la fonction originale f , `
a la table 12.2).
-88
65
-39
-91
81
108
-87 -114
-26
37
-92
22
119
-24 -121 -109
29
-36
-40
123
28 -125 -108
-93
25
-53
92
65
-99 -115
-94 -106
-12
45
112
-74 -117
-90 -108 -109
34 127
-19 -119 -102 -106 -108
-99
109
54 -123 -100 -108 -113 -100 -108
94
-95 -120 -105 -104
-99 -105 -105
Tab. 12.4. Les 64 valeurs de la fonction ˜
fij = fij − 128
