Les images de nos écrans sont discrètes, formées d’un nombre fini de pixels, chacun caractérisé par une luminance et d’éventuelles informations de chrominance (voir article « Les composantes de nos images : luminance et chrominance »). Ces informations circulent par blocs de dix bits. Leur diffusion est de plus en plus lourde, à mesure que le nombre de lignes et de pixels par ligne augmente.
Ainsi, en télévision, en passant de la norme UIT 601 (définition standard) à la norme UIT 709 (haute définition), on a fait croître le débit de chaque image de 270 Mbit/sec (1 Mbit ou mégabit = 106 bits) à près de 1,5 Gbit/sec (1 Gbit ou gigabit = 109 bits). Il est donc important de les compresser. C’est ce que fait le format JPEG (Joint Photographic Experts Group) qui établit un algorithme de compression/décompression ou codage/décodage (codec) pour toute image fixe.
Une décomposition par blocs ---------------------------
L’idée est de travailler les pixels bloc par bloc. Dans la pratique, les blocs sont constitués de « micro-images » carrées de 8 × 8 pixels. La luminance de chaque pixel est codée sur dix bits au moyen d’un entier compris entre 0 et 1023. Le traitement de la chrominance est identique.
Le procédé numérique appelé transformée discrète en cosinus (voir article « De la transformation de Fourier à la transformée en cosinus discrète », directement inspiré des transformées de Fourier, traduit ces informations numériques en leur correspondance spectrale, c’est-à-dire sous la forme d’une matrice de nombres associés à des couples de fréquences prédéterminées. Le choix particulier de la forme de la matrice à construire ne doit rien au hasard : dans la matrice des coefficients DCT (i, j) associés à chaque bloc de pixels, le coefficient DCT (0, 0) et ses voisins se construisent à partir des fréquences les plus basses (valeurs de i et j dans la formule « proches de zéro »), alors que DCT (7, 7) et ses voisins prennent en compte les fréquences les plus hautes (valeurs de i et j « proches du maximum », ici 7). Un bloc 8 × 8 de pixels I(u, v), u et v variant de 0 à 7, est en effet converti en un autre bloc selon la formule suivante :