Page précédente


Le bit, l'octet, le pixel et l'image

Du fichier texte à l'image


Composition d'un pixel à l'écran


Un pixel est composé de trois sous-pixels : un rouge, un vert et un bleu. On parle du canal rouge, du canal vert et du canal bleu d’un pixel (on parle de système RVB ou RGB en anglais).

La couleur d’un pixel est interprétée par notre cerveau qui fait la synthèse additive des trois couleurs primaires Rouge, Vert et Bleu.

Code d'une couleur

Code couleur HTML

#

Code TSV

Teinte :

Saturation :

Valeur :

Code RVB

Rouge :

Vert :

Bleu :

Nous remarquons que les couleurs peuvent être codées par le triplet TSL :

Sur l'animation précédente, la représentation des couleurs permet de voir le codage TSV pour Teinte, Saturation et Valeur. Ce modèle colorimétrique, très proche du modèle TSL, se distingue par l'axe des luminosités dont la valeur 100 % (blanc) se situe dans le même plan que celui des couleurs saturées.

Si le modèle RVB se révèle bien adapté à la représentation de la couleur en informatique, il est en revanche assez éloigné de la perception que nous avons des couleurs. En effet, nos yeux ne perçoivent pas les couleurs comme une somme de rouge, de vert et de bleu, mais plutôt comme une sensation de luminosité correspondant à l'intensité de la lumière ; on définit des objets plus ou moins clairs ou plus ou moins foncés. A cette notion de luminance, il faut également rajouter une information de coloration, ce qu'on appelle la chrominance, définit à la fois par la teinte (la couleur) et la saturation (pureté de la teinte).

Exercice


On a relevé les valeurs décimales des 3 couleurs (RVB) pour des pixels à l’aide du logiciel « Paint » à l’aide de l’outil « sélecteur de couleurs » et de l’icône « Modifier la couleurs ».

En cliquant ailleurs sur l’image, on a relevé le code suivant exprimé en décimale : 252 240 10. Indiquez quelle est la couleur la plus proche.


     

En cliquant ailleurs, on a relevé le code suivant exprimé en décimale : 120 240 250. Indiquez quelle est la couleur la plus proche.


     

Même question avec le code décimale suivant : 238 96 238.


     

RougeVertBleu
Couleur obtenue :

Le triplet 255 0 0 correspond à un « rouge pur », le triplet 0 255 0 correspond à un « vert pur » et 0 0 255 correspond à un « bleu pur ».

Il est nécessaire de définir un « espace couleur ». Il est d'usage, dans le monde informatique, de considérer l'espace sRGB qui correspond à trois primaires. Un écran LCD ou plasma devra être capable de reproduire ces couleurs. Lorsque l'écran recevra l'image numérique, il saura quelle combinaison et quelle intensité lumineuse il devra mettre sur ces primaires pour reconstituer l'image.

Profondeur de couleurs


Le codage des images a d’abord commencé avec 16 couleurs. Le rendu était très éloigné de la réalité voilà pourquoi une profondeur en 256 couleurs a rapidement été adopté. Même si le résultat était plus convaincant, le phénomène de “color banding” dans les zones avec des dégradés de couleurs gâchait le rendu. C’est à partir de 16 millions de couleurs (“True color”)que ce phénomène de “color banding” s’atténue vraiment et permet d’avoir de beaux dégradés et un résultat photo réaliste. Mais pourquoi “16 millions” ?

En informatique la plus petite valeur stockable est un octet. Un octet est composé de 8 bits et il peut prendre les valeurs de 0 à 255 (de 20 à 28). On peut donc imaginer un système avec 256 nuances de rouge que l’on pourrait combiner avec 256 nuances de vert mais également 256 nuances de bleu pour un total de 256 × 256 × 256 soit 16 millions de couleurs, et tout ça à partir de seulement 3 octets ! Voilà comment est né l’encodage 8 bits !

Cette profondeur des couleurs en 8 bits nécessite donc 3 octets (rouge, vert et bleu) de 8 bits chacun pour un total de 24 bits. Voilà pourquoi vous entendez souvent parler d’une profondeur des couleurs en 24 bits, qu’il faut interpréter comme une profondeur en 8 bits par couleur. Et oui ça peut vite prêter à confusion...

Tous les contenus vidéo (chaînes TV, Blu-ray, DVD etc…) utilisent en réalité uniquement 220 nuances de chaque sous-pixel (de 16 à 235) au lieu des 256 disponibles : c’est ce qu’on appelle le RGB Limited (2203 pour 10 millions de couleurs) par opposition au Full RGB (2563 pour 16 millions de couleurs) utilisé par les écrans de PC.

Exercice


Si on a une profondeur de 9 bits pour chacune des 3 couleurs, combien de couleurs totales est-il possible de créer ?.



   
Solution :
Chaque canal peut représenter 29=512 nuances, et ces trois canaux, une fois combinés, permettent de représenter 134 217 728 couleurs différentes : 5123=134 217 728)... soit 8 fois plus de couleurs qu'une image dont la profondeur est de 8 bit.

Et pourquoi pas 10 bits de profondeur de couleurs ?


Si maintenant on utilise un système à 10 bits par couleur, on obtient 1024 nuances de rouge, 1024 nuances de vert et 1024 nuances de bleu pour un total de 1024 × 1024 × 1024 soit 1 milliard de couleurs ! Le premier réflexe est d’en conclure que les couleurs rendues seront encore plus belles, mais est-ce vraiment le cas ?

Attention, il ne faut pas confondre espace de couleurs et profondeur des couleurs. Si vous passez d’une profondeur de couleurs 8 bits à une profondeur de couleur 10 bits dans le même espace de couleurs alors vous aurez 1 milliards de nuances à la place de 16 millions de nuances mais les couleurs maximums / extrêmes restent les mêmes ! Autrement dit, vous n’aurez pas de couleurs plus profondes, pas de rouge plus rouge, ni de vert plus vert ou de bleu plus bleu si l’espace de couleurs reste le même.

Voilà pourquoi le HDR (High Dynamic Range video) propose à la fois un encodage des couleurs sur 10 bits accompagné d’un nouvel espace de couleurs plus large : le rec. 2020 qui offre des couleurs plus profondes que l’espace de couleur standard utilisé par nos TV HD jusqu’à maintenant (le rec. 709). Dans ce contexte, cette gamme de couleur plus large nécessite un découpage en 1 milliards de couleurs (10 bits) afin d’éviter des problèmes de “color banding” qui auraient été présents avec un découpage en 16 millions de couleurs (8 bits). Le HDR offre donc bien des couleurs plus profondes grâce à son espace colorimétrique plus large et sans risque de “color banding” grâce à sa profondeur des couleurs en 10 bits.