# Encodage des Couleurs : Le Modèle RVB ## Introduction à la Représentation des Couleurs Dans notre monde numérique, la couleur est omniprésente. Que ce soit sur un écran d'ordinateur, un smartphone, une télévision ou une imprimante, la capacité à représenter et à manipuler les couleurs est fondamentale. Mais comment nos machines, qui ne comprennent que des 0 et des 1, parviennent-elles à afficher la richesse et la subtilité d'un spectre coloré ? Ce chapitre explorera le modèle RVB (Rouge-Vert-Bleu), le pilier de la représentation des couleurs pour la plupart des périphériques d'affichage. Nous verrons comment, à partir de quelques composantes de base, il est possible de synthétiser des millions de teintes différentes. Ce faisant, nous ferons appel à vos connaissances en **systèmes de numération** pour comprendre comment ces composantes sont encodées numériquement. > [!note] Objectifs du chapitre > À la fin de ce chapitre, vous serez capable de : > - Comprendre les principes de la synthèse additive des couleurs. > - Expliquer le fonctionnement du modèle RVB. > - Représenter une couleur RVB en notation décimale et hexadécimale. > - Calculer le nombre de couleurs représentables par un système RVB donné. > - Identifier les avantages et les limites du modèle RVB. ## 1. Les Fondamentaux de la Couleur et de sa Perception Avant de plonger dans les détails techniques, il est essentiel de comprendre comment nous percevons la couleur. ### 1.1. La Lumière et la Couleur La couleur est une propriété de la lumière. Ce que nous percevons comme une couleur est en réalité une longueur d'onde spécifique du spectre électromagnétique. L'œil humain est sensible à une plage de longueurs d'onde allant d'environ 380 nm (violet) à 740 nm (rouge). > [!definition] Spectre Visible > Le **spectre visible** est la partie du spectre électromagnétique qui est visible par l'œil humain. Il est composé de toutes les couleurs de l'arc-en-ciel, du violet au rouge. ### 1.2. La Perception Humaine des Couleurs Notre œil contient des cellules photoréceptrices : les bâtonnets (sensibles à l'intensité lumineuse, pour la vision nocturne) et les cônes (sensibles à la couleur). Il existe trois types de cônes, chacun étant principalement sensible à une plage de longueurs d'onde : - **Cônes L (Long) :** Sensibles au rouge. - **Cônes M (Moyen) :** Sensibles au vert. - **Cônes S (Court) :** Sensibles au bleu. C'est cette particularité de notre système visuel qui est à l'origine du modèle RVB. En stimulant ces trois types de cônes avec des intensités variées de lumière rouge, verte et bleue, notre cerveau synthétise la perception de toutes les autres couleurs. > [!theorem] Théorie Trichromatique de Young-Helmholtz > La théorie trichromatique postule que la perception de toutes les couleurs peut être obtenue par la combinaison de trois couleurs primaires de lumière, correspondant aux trois types de cônes de l'œil humain. ### 1.3. Synthèse Additive et Synthèse Soustractive Il existe deux principales manières de créer des couleurs : - **Synthèse Additive (Lumière) :** C'est le principe utilisé par les écrans. En mélangeant des lumières colorées, on *ajoute* de la lumière. - Les couleurs primaires additives sont le **Rouge**, le **Vert** et le **Bleu**. - Mélanger toutes les couleurs primaires additives à pleine intensité produit du **Blanc**. - L'absence de lumière produit du **Noir**. - **Synthèse Soustractive (Pigments) :** C'est le principe utilisé par les imprimantes. Les pigments absorbent certaines longueurs d'onde et en réfléchissent d'autres. On *soustraite* de la lumière. - Les couleurs primaires soustractives sont le **Cyan**, le **Magenta** et le **Jaune** (CMJ ou CMYK avec le noir). - Mélanger toutes les couleurs primaires soustractives à pleine intensité produit du **Noir** (en théorie, en pratique un brun foncé). - L'absence de pigments (feuille blanche) produit du **Blanc**. > [!note] Focus sur la Synthèse Additive > Pour le modèle RVB, nous nous concentrons exclusivement sur la **synthèse additive**, car elle décrit le comportement des sources lumineuses, comme les pixels d'un écran. ## 2. Le Modèle RVB (Rouge-Vert-Bleu) Le modèle RVB est un modèle de couleur additif dans lequel les couleurs sont exprimées comme une combinaison de trois composantes de base : le Rouge (Red), le Vert (Green) et le Bleu (Blue). ### 2.1. Principe de Fonctionnement Chaque pixel d'un écran est composé de trois sub-pixels lumineux : un rouge, un vert et un bleu. En faisant varier l'intensité lumineuse de chacun de ces sub-pixels, on peut créer une très large palette de couleurs. > [!definition] Modèle RVB > Le **modèle RVB** est un espace de couleurs additif où une couleur est spécifiée par l'intensité de ses composantes Rouge, Verte et Bleue. C'est le modèle le plus couramment utilisé pour l'affichage numérique. ### 2.2. Représentation Numérique des Composantes Pour qu'un ordinateur puisse manipuler ces intensités, elles doivent être représentées numériquement. La méthode la plus courante est d'utiliser un octet (8 bits) pour chaque composante. > [!note] 8 bits par composante > L'utilisation de 8 bits par composante (Rouge, Vert, Bleu) est un standard de facto pour la plupart des affichages. Avec 8 bits, chaque composante peut prendre $2^8 = 256$ valeurs distinctes. Ces valeurs vont de 0 (absence totale de la couleur) à 255 (intensité maximale de la couleur). - **Rouge (R) :** Intensité de la composante rouge, de 0 à 255. - **Vert (G) :** Intensité de la composante verte, de 0 à 255. - **Bleu (B) :** Intensité de la composante bleue, de 0 à 255. Une couleur RVB est donc représentée par un triplet de nombres $(R, G, B)$. > [!example] Exemples de couleurs RVB en décimal > - **Noir :** $(0, 0, 0)$ - Aucune lumière, tous les sub-pixels sont éteints. > - **Blanc :** $(255, 255, 255)$ - Intensité maximale pour toutes les composantes, lumière blanche. > - **Rouge pur :** $(255, 0, 0)$ - Rouge à fond, vert et bleu éteints. > - **Vert pur :** $(0, 255, 0)$ - Vert à fond, rouge et bleu éteints. > - **Bleu pur :** $(0, 0, 255)$ - Bleu à fond, rouge et vert éteints. > - **Jaune :** $(255, 255, 0)$ - Rouge et vert à fond. > - **Cyan :** $(0, 255, 255)$ - Vert et bleu à fond. > - **Magenta :** $(255, 0, 255)$ - Rouge et bleu à fond. > - **Gris moyen :** $(128, 128, 128)$ - Intensité égale et moyenne pour les trois composantes. ### 2.3. Nombre Total de Couleurs Puisque chaque composante peut prendre 256 valeurs, le nombre total de couleurs uniques qui peuvent être représentées est le produit des possibilités pour chaque composante : $ \text{Nombre de couleurs} = \text{Valeurs}_{R} \times \text{Valeurs}_{G} \times \text{Valeurs}_{B} $ Avec 8 bits par composante : $ \text{Nombre de couleurs} = 256 \times 256 \times 256 = 256^3 = 16\,777\,216 $ C'est ce que l'on appelle souvent la "couleur vraie" (True Color) ou "24-bit color" (car 3 composantes * 8 bits/composante = 24 bits au total). Ce nombre est généralement suffisant pour que l'œil humain ne puisse pas distinguer les nuances entre les couleurs adjacentes. > [!tip] Rappel : Systèmes de Numération > Si vous avez 8 bits, la valeur maximale que vous pouvez représenter est $2^8 - 1 = 255$. La plage de valeurs est donc de 0 à 255 inclus. ### 2.4. Représentation Hexadécimale En programmation web, en design graphique et dans de nombreux autres contextes, les couleurs RVB sont souvent représentées en notation hexadécimale. Chaque composante (R, G, B) est exprimée par deux chiffres hexadécimaux. Le format est généralement `#RRGGBB`, où : - `RR` représente la valeur hexadécimale du Rouge (de `00` à `FF`). - `GG` représente la valeur hexadécimale du Vert (de `00` à `FF`). - `BB` représente la valeur hexadécimale du Bleu (de `00` à `FF`). > [!example] Conversion Décimal vers Hexadécimal > - La valeur décimale 0 correspond à `00` en hexadécimal. > - La valeur décimale 255 correspond à `FF` en hexadécimal. > - La valeur décimale 128 correspond à `80` en hexadécimal. | Composante | Décimal | Hexadécimal | | :--------- | :------ | :---------- | | Rouge | 0-255 | 00-FF | | Vert | 0-255 | 00-FF | | Bleu | 0-255 | 00-FF | > [!example] Exemples de couleurs RVB en hexadécimal > - **Noir :** $(0, 0, 0)$ $\rightarrow$ `#000000` > - **Blanc :** $(255, 255, 255)$ $\rightarrow$ `#FFFFFF` > - **Rouge pur :** $(255, 0, 0)$ $\rightarrow$ `#FF0000` > - **Vert pur :** $(0, 255, 0)$ $\rightarrow$ `#00FF00` > - **Bleu pur :** $(0, 0, 255)$ $\rightarrow$ `#0000FF` > - **Jaune :** $(255, 255, 0)$ $\rightarrow$ `#FFFF00` > - **Cyan :** $(0, 255, 255)$ $\rightarrow$ `#00FFFF` > - **Magenta :** $(255, 0, 255)$ $\rightarrow$ `#FF00FF` > - **Gris moyen :** $(128, 128, 128)$ $\rightarrow$ `#808080` > [!warning] Cas d'erreurs fréquentes > Ne confondez pas la notation décimale $(R, G, B)$ avec la notation hexadécimale `#RRGGBB`. Il est crucial de savoir convertir entre les deux. ### 2.5. RVB avec Canal Alpha (RGBA) Souvent, un quatrième composant est ajouté au modèle RVB : le canal Alpha (A). Ce canal représente l'opacité ou la transparence de la couleur. - **Alpha (A) :** Intensité de l'opacité, de 0 (complètement transparent) à 255 (complètement opaque). - Une valeur alpha de 0 signifie que la couleur est invisible. - Une valeur alpha de 255 signifie que la couleur est entièrement visible. Avec le canal alpha, une couleur est représentée par un quadruplet $(R, G, B, A)$. Cela porte le nombre total de bits à 32 bits (4 octets). $ \text{Nombre de couleurs RGBA} = 256^4 = 4\,294\,967\,296 $ Ce modèle est particulièrement utile pour les interfaces graphiques, les effets de superposition et l'imagerie numérique. ## 3. Espace de Couleurs et Gamut Le modèle RVB, bien que standard, ne garantit pas que la même couleur s'affiche identiquement sur tous les appareils. C'est là qu'intervient la notion d'**espace de couleurs** et de **gamut**. > [!definition] Espace de Couleurs > Un **espace de couleurs** est un modèle mathématique abstrait décrivant la manière dont les couleurs peuvent être représentées. Le RVB est un modèle de couleur, et il existe plusieurs espaces de couleurs basés sur le RVB. > [!definition] Gamut > Le **gamut** (ou gamme de couleurs) est l'ensemble des couleurs qu'un périphérique (écran, imprimante, appareil photo) est capable de reproduire ou de capturer. Différents périphériques RVB (écrans, appareils photo) ont des gamuts différents. Pour assurer une certaine cohérence des couleurs, des standards ont été développés : - **sRGB :** C'est l'espace de couleurs RVB le plus répandu et le plus compatible pour le web et la plupart des applications grand public. Il définit un gamut relativement restreint mais universellement supporté. - **Adobe RGB, Display P3 :** Ce sont des espaces de couleurs RVB avec des gamuts plus larges, capables de représenter plus de couleurs, notamment dans les verts et les cyans. Ils sont utilisés dans les applications professionnelles où la fidélité des couleurs est cruciale. > [!note] Importance de sRGB > Par défaut, si aucune information d'espace de couleurs n'est spécifiée, on suppose souvent que les couleurs RVB sont dans l'espace sRGB. ## 4. Manipulation des Couleurs RVB La représentation numérique des couleurs RVB permet leur manipulation aisée par des algorithmes. On peut modifier les couleurs en ajustant les valeurs de R, G et B : - **Assombrir/Éclaircir :** Diminuer/augmenter l'intensité de toutes les composantes proportionnellement. - **Niveaux de gris :** Calculer une moyenne pondérée des composantes pour obtenir une valeur de gris. Une formule courante est : $ \text{Gris} = 0.299 \times R + 0.587 \times G + 0.114 \times B $ Cette formule tient compte de la perception humaine (l'œil est plus sensible au vert). - **Inversion des couleurs :** Pour chaque composante, soustraire sa valeur de 255. $ R' = 255 - R \\ G' = 255 - G \\ B' = 255 - B $ Par exemple, le blanc $(255, 255, 255)$ devient le noir $(0, 0, 0)$. ## Conclusion Le modèle RVB permet la représentation des couleurs dans le monde numérique, en particulier pour les périphériques d'affichage. Basé sur la synthèse additive de la lumière rouge, verte et bleue, il permet d'encoder des millions de couleurs en combinant des intensités numériques. Grâce à vos connaissances des systèmes de numération, vous comprenez maintenant comment ces intensités sont traduites en valeurs binaires et hexadécimales, rendant la couleur manipulable par des programmes informatiques. La maîtrise du RVB est une compétence fondamentale pour quiconque travaille avec l'infographie, le développement web, le traitement d'images ou tout domaine nécessitant une compréhension de la couleur numérique. Dans les cours de programmation à venir, notamment avec [[Python 2]], vous aurez l'occasion de mettre en pratique ces concepts en manipulant directement les valeurs RVB pour créer et modifier des images. ## 🗓️ Historique > **Dernière mise à jour :** `01 novembre 2025` > **Rédigé par :** [[Julien DUQUENNOY]]