• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 04/04/2019

Observez les représentations des couleurs et de l’intensité lumineuse

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Notion de pixel (et quantification)

Un pixel (de l’anglais Picture element) est un point coloré élémentaire, petit constituant de base pour former les images numériques sur ordinateur :

  • Quand chaque pixel est choisi soit noir soit blanc, cela donne une image monochrome ;

  • Il peut aussi être choisi parmi les intermédiaires entre ces extrêmes, cela donne une image en niveaux de gris ;

  • Enfin, il peut être choisi parmi les couleurs visibles par notre œil, cela donne une image en couleurs.

Ces valeurs possibles attribuées à un pixel représentent le résultat de la quantification du pixel (en traitement du signal).

Trois cas de quantification pour l’image Lena : sur 2 valeurs, sur plusieurs niveaux de gris, en couleurs
Trois cas de quantification pour les pixels de l’image Lena : sur 2 valeurs, sur plusieurs niveaux de gris, en couleur

Matrice image (et échantillonnage)

L’image numérique est alors la subdivision de l’image d’origine en une mosaïque de pixels : on parle d’échantillonnage qui discrétise l’image continue d’origine en pixels élémentaires.

Si on agrandit l’image numérique, on peut percevoir les pixels : ce sont les petits rectangles de couleur apparaissant sur la figure suivante (dans le cas habituel où les pixels ont été choisis de cette forme rectangulaire).

Image matricielle (et agrandissement d’une partie) [source : Wikipédia]
Image matricielle (et agrandissement d’une partie) [source : Wikipédia]

Plus cet échantillonnage est dense (c.-à-d. le nombre de pixels induit par le nombre de lignes et de colonnes), plus la résolution de l’image est dite haute et moins cet effet de discrétisation en pixels est visible, mais rend l’image évidemment plus volumineuse en taille à enregistrer ou à transmettre sur le réseau.

Coordonnées d’un pixel dans la matrice

Pour désigner la position d’un pixel dans cette matrice, par exemple en parlant de pixel de coordonnées (4 , 5), on s’inspire des mêmes conventions que pour les matrices mathématiques :

  • La première coordonnée est un indice de ligne ;

  • La deuxième coordonnée est un indice de colonne.

Ce pixel est donc celui situé ligne 4, colonne 5.

Système de coordonnées d’un pixel, en ligne/colonne
Système de coordonnées d’un pixel, en ligne/colonne

Parfois, il est tentant d’utiliser les notions d’abscisse et d’ordonnée, par analogie avec les coordonnées des points du plan en mathématiques (et donc d’utiliser les notations $\(x\)$ et $\(y\)$). Mais il faut alors redoubler de vigilance, car cet usage entraîne quelques difficultés dans le cas des images :

Système de coordonnées d’un pixel en abscisse et ordonnée (x,y), conservant l’ordre ligne/colonne et un repère direct
Système de coordonnées d’un pixel en abscisse et ordonnée (x,y), conservant l’ordre ligne/colonne et un repère direct 

Représentation des couleurs

Comme vu précédemment, une valeur est attribuée pour chaque pixel afin de représenter sa « couleur ».

Le cas des niveaux de gris est le plus direct : classiquement, la valeur est mémorisée sur un octet, ce qui autorise des valeurs de 0 à 255. Cela permet de représenter l’intensité lumineuse sur 256 niveaux de gris, 0 étant le noir, 255 le blanc, et toute valeur entre les deux représentant un gris intermédiaire. Dans ce cas, l’image est une matrice d’octets.

Le cas monochrome pourrait donc être mémorisé avec des 0 et des 255, mais par économie on préfère ne pas représenter chacune de ses deux uniques couleurs par un octet (0 ou 255), mais par un seul bit (0 ou 1). Dans ce cas, l’image est une matrice binaire.

Le cas des pixels couleurs est moins direct : la représentation usuelle des couleurs y est directement liée au système visuel humain. On mémorise en effet la quantité de rouge, de vert et de bleu (comme le percevraient les trois différents types de cônes de la rétine de l’œil humain). Usuellement, comme pour les niveaux de gris, ces quantités respectives sont mémorisées par 3 octets, représentant chacun respectivement le niveau de rouge, le niveau de vert et le niveau de bleu d’un pixel. Dans ce cas, l’image est une matrice de triplets RVB.

Triplets RVB constituant chaque pixel d’une image couleur. On observe au passage qu’un niveau de gris (situé entre blanc et noir) est une proportion en quantité égale de rouge, vert et bleu
Triplets RVB constituant chaque pixel d’une image couleur. On observe au passage qu’un niveau de gris (situé entre blanc et noir) est une proportion en quantités égales de rouge, vert et bleu

Synthèse additive des couleurs

On observe sur l’image précédente qu’un pixel jaune est obtenu par « mélange » de rouge et de vert en quantités égales. Ce procédé, appelé synthèse additive, consiste à mélanger des proportions de lumière rouge, verte et bleue (qui servent de couleurs primaires) pour obtenir une lumière colorée (et ainsi reproduire les différentes couleurs), qui est par exemple émise par l’écran de notre ordinateur à destination de notre œil. Notons qu’on aboutit ainsi à du blanc intense quand on mélange les 3 lumières de base en quantité maximale.

Synthèse additive : des lumières de base (couleurs primaires) s’ajoutent pour former les différentes couleurs
Synthèse additive : des lumières de base (couleurs primaires) s’ajoutent pour former les différentes couleurs 

Autres systèmes de représentation des couleurs

En fait, d’autres systèmes de représentation des couleurs du spectre visible ont été formalisés, car toutes ne sont pas représentables par cette décomposition RVB.

C’est ainsi au sein des couleurs représentables que s’introduit la notion de gamut : c’est la partie de l’ensemble des couleurs visibles qu’un appareil ou un système est capable de représenter.

Exemple de gamut : les couleurs représentables en RVB (dans le triangle) par rapport à l’ensemble des couleurs visibles (justifié plus loin) [source : Wikipédia]
Exemple de gamut : les couleurs représentables en RVB (dans le triangle) par rapport à l’ensemble des couleurs visibles (justifié plus loin) [source : Wikipédia]

Espace des couleurs XYZ

Un autre standard de représentation des couleurs par un triplet de composantes a été défini en 1931 par la CIE (Compagnie Internationale de l’Éclairage) : l’espace des couleurs CIE XYZ, améliorant l’espace de représentation CIE RVB défini antérieurement la même année, avec les propriétés suivantes :

  • Toute couleur visible par l’œil humain peut s’y exprimer par 3 composantes positives
    (mais les triplets positifs n’y représentent pas tous une couleur : certains n’ont pas d’existence physique dans le monde réel des radiations lumineuses colorées) ;

  • La composante Y représente la luminance (c.-à-d. proportionnelle à l’intensité lumineuse reçue par l’œil, indépendamment de la couleur) ;

  • Les 2 autres composantes (X et Z) expriment la chrominance (c.-à-d. sont relatives à la couleur, où Z est comparable au stimulus des cônes (B) tandis que X est une combinaison des 2 autres stimuli).

On utilise souvent une version « normalisée » entre 0 et 1 pour ces valeurs : ce sont les coordonnées chromatiques xyz définies à partir des composantes trichromatiques XYZ :

  $\(\left\{ \begin{array}{ c c } x = \frac{X}{X+Y+Z} \\ y = \frac{Y}{X+Y+Z} \\ z = \frac{Z}{X+Y+Z} \end{array} \right.\)$  

Comme il est plus aisé d’observer les couleurs dans un plan que dans l’espace, on considère le plan $\(x+y+z=1\)$ (celui qui passe par les extrémités des vecteurs unitaires de l’espace XYZ).

La projection de l’espace XYZ dans ce plan (plan projectif) aboutit au diagramme de chromaticité CIE en fonction de $\((x,y)\)$ où :

  • Toutes les « couleurs pures » (c.-à-d. correspondant à une unique longueur d’onde lumineuse) sont sur la frontière du diagramme (graduée en longueurs d’onde sur la figure, jusqu’à 700 nm) ;

  • Le blanc est en coordonnées (1/3 , 1/3), standardisé sous le nom « illuminant D65 » ;

  • La position d’un point $\((x,y)\)$ entre ce point blanc et un point périphérique $\((x_1,y_1)\)$ indique le degré de « dilution » de la couleur pure avec du blanc pour obtenir cette nuance $\((x,y)\)$.

Projection fournissant le diagramme de chromaticité CIExy [source : Wikipédia]
Projection fournissant le diagramme de chromaticité CIExy [source : Wikipédia]

Enfin, dans l’espace de ce diagramme de chromaticité, on peut donc facilement représenter un gamut. Celui de la figure de gamut précédente représentait dans une portion triangulaire le gamut du sous-ensemble des couleurs représentables par l’espace CIE RVB, comparé à l’ensemble des couleurs visibles du diagramme de chromaticité qui, lui, représente en quelque sorte le gamut de l’œil humain.

Équations de conversion entre espaces de couleurs XYZ et RGB

  $\(\begin{pmatrix} X \\ Y \\ Z \end{pmatrix} = \begin{pmatrix} 2,7689 & 1,7517 & 1,1302\\ 1 & 4,5907 & 0,0601 \\ 0 & 0,056508 & 5,5943 \end{pmatrix} \begin{pmatrix} R \\ V \\ B \end{pmatrix}\)$

et réciproquement

$\(\begin{pmatrix} R \\ V \\ B \end{pmatrix} = \begin{pmatrix} 0,41847 & -0,15866 & -0,082835\\ -0,091169 & 0,25243 & 0,015708 \\ 0,0009209 & -0,0025498 & 0,1786 \end{pmatrix} \begin{pmatrix} X \\ Y \\ Z \end{pmatrix}\)$

Espace YUV

Cet espace de représentation des couleurs a été défini à l’époque où il a fallu passer de la télévision en noir et blanc (qui en fait affiche en niveaux de gris !) à la télévision couleur, tout en conservant une compatibilité entre les deux. L’idée a retenu le principe d’avoir la première composante représentant la luminance Y (la seule traitée et affichée par un téléviseur noir et blanc), tandis qu’on ajoutait 2 composantes supplémentaires U et V pour la chrominance à destination des téléviseurs couleur.

Équations de conversion entre espaces de couleurs YUV et RGB

$\(\begin{pmatrix} Y \\ U \\ V \end{pmatrix} = \begin{pmatrix} 0,299 & 0,587 & 0,114\\ -0,14713 & 0,28886 & 0,436 \\ 0,615 & -0,51499 & -1,0001 \end{pmatrix} \begin{pmatrix} R \\ V \\ B \end{pmatrix}\)$

et réciproquement

$\( \begin{pmatrix} R \\ V \\ B \end{pmatrix} = \begin{pmatrix} 1 & 0 & 1,13983\\ 1 & -0,39465 & -0,5806 \\ 1 & -0,0025498 & 0 \end{pmatrix} \begin{pmatrix} Y \\ U \\ V \end{pmatrix} \)$ 

Variante YIQ

$\(\begin{pmatrix} Y \\ I \\ Q \end{pmatrix} = \begin{pmatrix} 0,299 & 0,587 & 0,114\\ 0,595716 & -0,274453 & -0,321263 \\ 0,211456 & -0,522591 & 0,311135 \end{pmatrix} \begin{pmatrix} R \\ V \\ B \end{pmatrix}\)$

Variante YDbDr

$\(\begin{pmatrix} Y \\ Db \\ Dr \end{pmatrix} = \begin{pmatrix} 0,299 & 0,587 & 0,114\\ -0,450 & -0,883 & -1,333 \\ -1,333 & 1,116 & 0,217 \end{pmatrix} \begin{pmatrix} R \\ V \\ B \end{pmatrix}\)$

Une fois encore, dans chacun des 3 espaces de couleurs précédents utilisés en télévision, on constate que pour être conforme à la sensibilité de l’œil humain, l’intensité lumineuse représentée par Y accorde la contribution la plus importante à la composante verte dans son mélange de rouge-vert-bleu.

Il existe encore bien d’autres espaces de représentation des couleurs comme TSV, TSL (HSV, HSL en anglais), ou encore L*a*b et L*C*h… Chacun avec des propriétés spécifiques intéressantes :

  • Par exemple, le système TSV s’écarte du choix RVB traduisant la physiologie de l’œil, pour représenter une couleur plutôt via 3 composantes plus intuitives : sa teinte de base, sa pureté, et son intensité ;

  • Ou aussi le système L*C*h recommandé pour comparer les couleurs, puisque dans cet espace, des couleurs qui sont perçues proches par un humain sont effectivement séparées d’une faible distance.

Espace CMJ et synthèse soustractive des couleurs

Pour terminer ce panorama des systèmes de représentation des couleurs autres que le classique RVB, concluons par le système CMJ (Cyan, Magenta, Jaune) qui repose sur un contre-pied complet du système RVB : au contraire, il ne cherche pas à représenter les couleurs produites par des sources lumineuses, mais celles réfléchies (par exemple par le papier).

Dans ce cas, on montre aisément que les mélanges ne se passent pas de la même façon :

Les 3 couleurs primaires retenues en synthèse soustractive sont Cyan, Magenta et Jaune (les couleurs qui, en synthèse additive, étaient complémentaires des 3 couleurs primaires Rouge, Vert, Bleu : on les observait aux mélanges vert-bleu, rouge-bleu et rouge-vert respectivement sur la figure de synthèse additive).

Ces couleurs ne sont pas considérées ici dans un rôle de production de lumière colorée, mais dans un rôle d’absorption (de suppression). Ainsi :

  • Le cyan est en fait la couleur du pigment sur le papier qui supprime la composante rouge de la lumière blanche qui se réfléchit sur lui ;

  • Le magenta est en fait la couleur du pigment sur le papier qui supprime la composante verte de la lumière blanche qui se réfléchit sur lui ;

  • Le jaune est en fait la couleur du pigment sur le papier qui supprime la composante bleue de la lumière blanche qui se réfléchit sur lui.

Ce qui justifie que le mélange de ces trois couleurs primaires produise alors du noir : toutes les composantes de la lumière blanche sont supprimées.

Synthèse soustractive : des pigments colorés (couleurs primaires) s’ajoutent pour former d’autres couleurs, par réfléchissement de lumière incidente
Synthèse soustractive : des pigments colorés (couleurs primaires) s’ajoutent pour former d’autres couleurs, par réflexion de lumière incidente
Équations de conversion entre espaces RVB et CMJ

Les coordonnées dans l'espace CMJ sont souvent exprimées entre 0 et 1. Pour obtenir ces coordonnées, on utilise les variantes rvb des composantes RVB normalisées entre 0 et 1 (en les divisant par 255 lorsque R, V et B sont codées sur un octet, car elles varient alors en 0 et 255). Puis tout simplement :

$\(\begin{pmatrix} C \\ M \\ J \end{pmatrix} = \begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix} - \begin{pmatrix} r \\ v \\ b \end{pmatrix} \text{ et réciproquement } \begin{pmatrix} r \\ v \\ b\end{pmatrix} = \begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix} - \begin{pmatrix} C\\ M \\ J \end{pmatrix}\)$

Équations de conversion entre espaces CMJ et CMJN

$\(\begin{pmatrix} c \\ m \\ j \\ n \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ 0 \\ 1 \end{pmatrix} \text{si } C=M=J=1 \text{, sinon } \begin{pmatrix} c \\ m \\ j \\ n \end{pmatrix} = \begin{pmatrix} C-n \\ M-n \\ J-n \\ \min(C,M,J)\end{pmatrix}\)$

et réciproquement

$\(\begin{pmatrix} C \\ M \\ J \end{pmatrix} = \begin{pmatrix} c+n \\ m+n \\ j+n \end{pmatrix}\)$

Principes des fichiers enregistrant une image

Lors de l’enregistrement d’une image numérique (matrice de pixels) dans un fichier informatique, différents formats ont été standardisés, chacun avec des spécificités dont il est utile de connaître les principes généraux.

Les formats sans compression

Le réflexe le plus simple consiste à enregistrer un par un chacun des pixels de l’image dans le fichier informatique. Ainsi, le fichier résultat fait une taille similaire à la matrice de pixels : par exemple une matrice de pixels en niveaux de gris, de $\(n\)$ lignes et $\(n\)$ colonnes, représentait $\(n^2\)$ octets dans l’ordinateur et occupera aussi $\(n^2\)$ octets dans le fichier informatique.

Les formats de compression sans pertes

Une première idée pour économiser de l’espace lors du stockage est d’essayer d’exploiter les zones d’image où les pixels voisins sont identiques. Ainsi, au lieu de stocker $\(n\)$ fois successivement la même couleur, on peut enregistrer la couleur et $\(n\)$ (soit 2 valeurs seulement). C’est ce qu’on appelle le codage par plages (run-length encoding, en anglais). On devine que ce principe simple n’est pas gagnant quand tous les pixels voisins sont différents, mais en moyenne il peut s’avérer intéressant. Il existe d’autres principes comme le codage entropique (qui vise à représenter les valeurs d’origine par un code à longueur variable, d’autant plus court que la valeur est fréquente, et long quand la valeur est rare) ou aussi le codage par dictionnaire (qui remplace des combinaisons de valeurs d’origine par une marque courte, qui sera mémorisée dans un dictionnaire, servant au remplacement inverse pour reconstituer la matrice de pixels).

Les formats de compression avec pertes

Enfin, on peut pousser plus loin l’économie de place en permettant que quelques pixels soient modifiés durant l’enregistrement, du moment que cela ne se remarque pas facilement à l’œil (il y a donc perte d’information, car alors l’image relue après enregistrement ne fournit pas rigoureusement la même matrice de pixels, mais une matrice approchante). Pour ce faire, le principe ne consiste généralement pas directement à uniformiser des pixels voisins, mais plutôt à appliquer d’abord une transformée fréquentielle sur l’image (cf. chapitres suivants), puis opérer les transformations avec pertes dans cet espace (par exemple, ne pas enregistrer les hautes fréquences qui sont de petits détails presque imperceptibles).

Exemple de certificat de réussite
Exemple de certificat de réussite