next up previous contents
suivant: Transformée en Cosinus Discrète monter: L'algorithme JPEG précédent: Présentation   Table des matières

Sous-sections

Transformation des espaces de couleurs

Rappels

Une image est généralement codée sur trois canaux de couleurs : Rouge, Vert, Bleu (RGB) (plus un canal pour la couche Alpha). Ainsi chaque pixel d'une image est défini par trois coefficients codés sur 8bits (le coefficient prend une valeur entre 0 et 255). Sans compression, une image de dimension 512*512 demande donc :

$\displaystyle 512 * 512 * 8 * 3 = 6 291 456 bits = 786,432Ko
$

Ce codage est approprié pour des systèmes d'impression (exemple : imprimante), ou d'affichage. Cependant, l'oeil humain ne perçoit pas les couleurs de manière uniforme.


Luminance/Chrominance: l'espace YUV

Figure: Perception de l'oeil humain
\includegraphics[width=13cm]{color_sens.eps}

La figure 2 montre que la sensibilité de l'oeil humain est bien différente pour les couleurs rouge, vert et bleue constitutives de nos images. Ainsi le vert est-il le mieux perçu, puis vient le rouge, et enfin le bleu de maniere minoritaire. C'est sur ce constat que le format YUV a été établi. On passera donc d'une image codée en RGB à une image codée en fonction de sa luminance (Y), et de sa chrominance (Cb, Cr).

Figure: Repartition RGB - YUV
\includegraphics[width=7cm]{YUV.eps}

La luminance est définie par l'intensité de la radiation lumineuse par unité de surface émettrice ; elle dépend des trois couleurs. Le but maintenant sera de construire une base orthogonale comme l'est la base de RGB. On deduit les coefficients U (Cb) et V (Cr), en imposant que U se trouve dans le plan (R,Y) et V dans le plan (B,Y).

\begin{displaymath}
{
\left(
\begin{array}{c}
x_Y[n] \\
x_{Cb}[n] \\
x_{Cr}[n]...
...rray}{c}
x_R[n] \\
x_G[n] \\
x_B[n] \\
\end{array}\right)
}
\end{displaymath}

\begin{displaymath}
{
\left(
\begin{array}{c}
x_R[n] \\
x_G[n] \\
x_B[n] \\
\...
...c}
x_Y[n] \\
x_{Cb}[n] \\
x_{Cr}[n] \\
\end{array}\right)
}
\end{displaymath}

L'intérêt d'une telle transformation saute aux yeux lorsqu'on regarde de plus près le rôle joué par la luminance et la chrominance dans la représentation de l'image (cf Applet Java).

Sous-échantillonnage de la chrominance

La chrominance ne semble avoir qu'un faible impact sur le rendu final de l'image. Ainsi lors du traitement l'algorithme de compression JPEG diminuera par deux la taille des matrices contenant les coefficients codant la chrominance de l'image. On appelle cela le ``Downsampling''.

Figure: Processus de Downsampling
\includegraphics[width=5cm]{matriceYUV.eps}

Pour 4 pixels, on n'en garde qu'un seul pour la chrominance (Cr et Cb), représentant la moyenne de ceux-ci. Ainsi, de 12 valeurs initialement codées sur 4 octets (une pour chacune des trois composantes), nous n'en gardons que 6 et divisons ainsi la taille de l'image par 2!

A cette étape de la compression l'image a pu être dégradée de deux façons :


next up previous contents
suivant: Transformée en Cosinus Discrète monter: L'algorithme JPEG précédent: Présentation   Table des matières