SRGB
From Wikipedia, the free encyclopedia
sRGB, ou standard RGB (« Red Green Blue », en français « Rouge Vert Bleu normal »), est l'espace de couleur par défaut proposé pour les dispositifs numériques, notamment les écrans d'ordinateurs, par Hewlett-Packard et Microsoft en 1996.
La norme CIE 61966-2-1 (1999) définit l'espace de couleurs sRGB comme « un espace chromatique commun pour le stockage », de façon que les équipements d'origine et de système d'exploitation divers puissent communiquer simplement[1]. Elle se base sur le corps de normes et méthodes colorimétriques définies depuis 1931 et reprend la technologie éprouvée de la télévision que décrit la recommandation ITU-R BT.709 sur l'image vidéo[2].
Dans les dernières années du XXe siècle les ordinateurs personnels commencent à utiliser des écrans en couleurs et à communiquer entre eux par internet, tandis que l'augmentation de la puissance de calcul des circuits permet la circulation d'images photographiques. Pour faciliter ces échanges, un fabricant de matériel, Hewlett-Packard et un diffuseur de systèmes d'exploitation, Microsoft, proposent un système de description des couleurs par défaut, c'est-à-dire qui sert quand le programme n'indique aucun profil de couleur particulier. La Commission internationale de l'éclairage publie la norme en 1999[3].
À cette époque, plusieurs espaces de couleur rouge-vert-bleu coexistent, la plupart dépendant d'un industriel ou adaptés à un emploi particulier : ISO RGB[4], sRGB, Adobe RGB, Apple RGB, etc. plus les espaces video. La communication d'images aboutit quelquefois à des rendus décevants. sRGB est destiné à l'image multimédia, et tient compte du voile que cause l'éclairage ambiant sur l'écran[5].
Les écrans d'ordinateur reproduisent les couleurs par synthèse additive à partir de trois primaires. L'unité centrale envoie à l'écran, pour chaque point (pixel), trois valeurs numériques correspondant à la luminosité de chaque primaire à cet endroit.
Les premiers écrans d'ordinateurs fonctionnaient avec un tube cathodique, comme ceux de la télévision. La norme sRGB reprend, en l'adaptant à l'informatique, celle qui régit la vidéo. Le codage de la luminosité est non linéaire par rapport à la luminance, avec une correction gamma. Les écrans plats, plus récents, fonctionnent avec le même signal que leurs prédécesseurs. Le terminal reçoit les valeurs données dans l'espace sRGB. Les utilisateurs qui en ont besoin intercalent un logiciel qui les corrige à partir du profil ICC du périphérique.
L'espace de couleur sRGB est devenu le mode par défaut pour la plupart des secteurs de l'imagerie numérique, comme pour la photographie. Les fabricants proposent en outre des formats plus adaptés à leur usage, souvent propriétaires[6].
Caractéristiques principales
- Gamme de couleurs
Le système permet de reproduire environ 40 % des couleurs que la vision humaine peut distinguer. Les primaires sont légèrement désaturées, ce qui leur permet d'être plus lumineuses. sRGB abandonne la région des vert-jaunes à vert-bleus, dans laquelle la discrimination des couleurs est plus faible, au profit notamment de la zone peu chromatisée, où l'on distingue le plus de nuances. Cet avantage se perd si l'on éloigne, comme dans Adobe RGB, la primaire verte, sans augmenter la profondeur de couleur au-delà de 8 bits[7].
- Valeurs
Les valeurs des composantes dans l'espace sRGB sont comprises entre 0 et 1. La norme sRGB ne fixe pas la profondeur de couleur. Lorsque ces valeurs sont codées sur un octet, comme il arrive souvent dans les applications, la valeur sRGB est exprimée en 1/255 ; par exemple le code de couleur #FF8040 se décompose en trois valeurs codées sur un octet entre 0x00 et 0xFF, correspondant, dans l'ordre à une composante rouge codée 0xFF, donnant une valeur de 255/255 = 1, et, similairement, une composante verte codée 0x80 donnant une valeur de 128/255 (≈ 0,5) et une composante bleue codée 0x40 donnant une valeur de 64/255 (≈ 0,25).

- Chromaticité
Le point blanc, obtenu avec les trois composantes égales, correspond à l'illuminant D65. Les coordonnées des couleurs primaires de l'espace de couleurs sRGB — reprises de la norme de télévision HD — dans l'espace CIE xyY sont :
| x | y | λ | pureté d'excitation | |
| Blanc (D65) | 0,3127 | 0,3290 | — | 0 |
| Rouge | 0,64 | 0,33 | 612 nm | 92 % |
| Vert | 0,30 | 0,60 | 547 nm | 74 % |
| Bleu | 0,15 | 0,06 | 464,5 nm | 93 % |
- Luminosité
Le calcul de la luminance relative d'un pixel implique de passer d'abord dans un espace de couleurs linéaire. Si C représente la valeur d'un canal r, g (vert) ou b et Clin représente la valeur linéaire utilisable pour le calcul de la luminance :
- où .
La luminance relative s'obtient ensuite à partir de ses valeurs rlin, glin, blin par la formule :
Pour obtenir une valeur de luminosité perçue, non linéaire, on peut appliquer la formule CIE ; ou, si l'on veut, appliquer la correction gamma inverse. En effet, si les trois canaux rouge, vert et bleu ont la même valeur, celle-ci est une assez bonne estimation de la luminosité, sans aucun calcul[8]. On peut donc rechercher une valeur compatible dans les autres cas.
Conversions entre CIE et sRGB
Les conversions de l'espace sRGB vers les espaces colorimétriques CIE se ramènent, finalement, à un changement de coordonnées dans un espace. Il existe des matrices de conversion entre tous les espaces linéaires.
Avant d'appliquer ces matrices, il faut effectuer la transformation non-linéaire.
Transformation de CIE XYZ vers sRGB
- Conversion CIE xyY en CIE XYZ
Si on part de valeurs de l'espace de couleurs CIE xyY (avec x, y les coordonnées chromatiques et Y la luminance), il faut d'abord les transformer en valeurs CIE XYZ :
- Conversion CIE XYZ vers sRGB (linéaire)
Le premier pas dans le calcul des valeurs du triplet sRGB à partir de celles du triplet CIE XYZ est une transformation linéaire, que résume une multiplication matricielle[a].
- Ces valeurs RGB linéaire ne sont pas le résultat final.
Les valeurs initiales X, Y, et Z doivent être exprimées dans la plage [0,1].
Si les paramètres intermédiaires , et sont hors de la plage [0,1], la couleur est hors du gamut sRGB et les écrans conformes ne peuvent les reproduire. Si c'est le cas, divers procédés permettent de trouver la meilleure approximation. Si les valeurs sont celles d'une image, on considère l'ensemble. S'il s'agit d'une valeur isolée, on peut rechercher la valeur qui présente un écart de couleur minimal suivant CIE LUV ; en général on se contente de tronquer à 1 les valeurs supérieures. Un triplet (1,1,1) représente un affichage blanc. Ce blanc correspond, pour les écrans conformes, à un illuminant D65, et à un triplet (X,Y,Z) = (0.9505, 1.0000, 1.0890)[b].
La formule suivante transforme les valeurs linéaires en sRGB. Si représente , , ou , et représente , ou :
- où
Ces valeurs converties sont dans la plage allant de 0 à 1. Si les valeurs dans la plage 0 à 255 sont nécessaires, par exemple pour un affichage sur un périphérique vidéo de 8 bits, on à multiplie par 255 et on tronque ou arrondit à l'entier[c].
Transformation de sRGB vers CIE XYZ
Les valeurs sRGB , , se trouvent dans la plage allant de 0 à 1.
où C est R, V, ou B). suivi par une multiplication matricielle des valeurs linéaires pour obtenir XYZ: