sRGB (standard Red Green Blue) est un espace colorimétrique RVB que HP et Microsoft ont créé conjointement en 1996 pour l’utiliser sur les moniteurs, les imprimantes et Internet. Il a ensuite été normalisé par la CEI en tant que CEI 61966-2-1: 1999. C’est souvent l’espace colorimétrique « par défaut » pour les images qui ne contiennent pas d’informations sur l’espace colorimétrique, en particulier si les pixels des images sont stockés dans des entiers de 8 bits par canal de couleur.
sRGB utilise les primaires ITU-R BT.709, les mêmes que dans les moniteurs de studio et HDTV, une fonction de transfert (courbe gamma) typique des écrans cathodiques, et un environnement de visualisation conçu pour correspondre aux conditions d’affichage typiques de la maison et du bureau. Cette spécification a permis à sRGB d’être directement affiché sur les moniteurs CRT typiques de l’époque, ce qui a grandement facilité son acceptation.
La gamme sRGB
Chromaticité | rouge | vert | Bleu | Point blanc |
---|---|---|---|---|
X | 0,6400 | 0.3000 | 0.1500 | 0.3127 |
y | 0.3300 | 0,6000 | 0,0600 | 0.3290 |
Y | 0.2126 | 0.7152 | 0.0722 | 1.0000 |
sRGB définit les chromaticités des couleurs primaires rouge, verte et bleue, les couleurs pour lesquelles l’un des trois canaux est différent de zéro et les deux autres sont nuls. La gamme des chromaticités qui peuvent être représentées dans sRGB est le triangle de couleur défini par ces primaires. Comme pour tout espace colorimétrique RVB, pour les valeurs non négatives de R, G et B, il n’est pas possible de représenter les couleurs en dehors de ce triangle, qui est bien dans la gamme des couleurs visibles à un humain avec une vision trichromatique normale.
sRGB est parfois évité par les professionnels de l’édition haut de gamme parce que sa gamme de couleurs n’est pas assez grande, en particulier dans les couleurs bleu-vert, pour inclure toutes les couleurs qui peuvent être reproduites en impression CMJN.
La fonction de transfert sRGB (« gamma »)
e gamma efficace à chaque point. Sous une valeur compressée de 0,04045 ou une intensité linéaire de 0,00313, la courbe est linéaire, donc le gamma est 1. Derrière la courbe rouge se trouve une courbe noire en pointillés montrant une loi de puissance gamma exacte = 2,2.
sRGB définit également une transformation non linéaire entre l’intensité de ces primaires et le nombre réel stocké. La courbe est similaire à la réponse gamma d’un écran CRT. Cette conversion non linéaire signifie que sRGB est une utilisation raisonnablement efficace des valeurs dans un fichier d’image à base d’entiers pour afficher des niveaux de lumière discernables par l’homme.
Contrairement à la plupart des autres espaces colorimétriques RVB, le gamma sRGB ne peut pas être exprimé comme une seule valeur numérique. Le gamma global est d’environ 2,2, constitué d’une section linéaire (gamma 1.0) proche du noir et d’une section non linéaire impliquant un exposant 2.4 et un gamma (pente de la sortie logarithmique par rapport au logarithme) passant de 1.0 à 2.3. Le but de la section linéaire est que la courbe n’ait pas une pente infinie à zéro, ce qui pourrait causer des problèmes numériques.
Spécification de la transformation
La transformation vers l’avant (CIE XYZ à sRGB)
Les valeurs CIE XYZ doivent être mises à l’échelle pour que le Y de D65 (« blanc ») soit égal à 1,0 (X, Y, Z = 0,9505, 1,0000, 1,0890). Cela est généralement vrai, mais certains espaces de couleur utilisent 100 ou d’autres valeurs (comme dans l’article Lab).
La première étape du calcul de sRGB à partir de CIE XYZ est une transformation linéaire, qui peut être effectuée par une multiplication matricielle. (Les valeurs numériques ci-dessous correspondent à celles de la spécification sRGB officielle, qui corrigeait les petites erreurs d’arrondi dans la publication originale par les créateurs de sRGB, et assumait l’observateur colorimétrique standard 2 ° pour CIE XYZ)
Il est important de noter que ces valeurs RVB linéaires ne sont pas le résultat final car elles n’ont pas encore été ajustées pour la correction gamma. La formule suivante transforme les valeurs linéaires en sRGB:
où {\ displaystyle a = 0,055} a = 0,055 et où {\ displaystyle C} C est {\ displaystyle R} R, {\ displaystyle G} G, ou {\ displaystyle B} B.
Ces valeurs gamma-corrigées sont comprises entre 0 et 1. Si des valeurs comprises entre 0 et 255 sont requises, par exemple pour l’affichage vidéo ou les graphiques 8 bits, la technique habituelle consiste à multiplier par 255 et arrondir à un entier.
Les valeurs sont généralement limitées à la plage 0 à 1. Cet écrêtage peut être effectué avant ou après le calcul gamma, ou effectué dans le cadre de la conversion en 8 bits.
La transformation inverse
Encore une fois les valeurs du composant sRGB , , sont compris entre 0 et 1. (Une plage de 0 à 255 peut être simplement divisée par 255.0).
où {\ displaystyle a = 0,055} a = 0,055 et où {\ displaystyle C} C est {\ displaystyle R} R, {\ displaystyle G} G, ou {\ displaystyle B} B.
Suivi par une multiplication matricielle des valeurs linéaires pour obtenir XYZ:
Théorie de la transformation
Il est souvent dit que le gamma de décodage pour les données sRGB est de 2,2, mais la transformation ci-dessus montre un exposant de 2,4. En effet, l’effet net de la décomposition par morceaux est nécessairement un gamma instantané changeant à chaque point de la gamme: il va de gamma = 1 à zéro à un gamma de 2,4 à intensité maximale avec une valeur médiane proche de 2,2. La transformation a été conçue pour approcher un gamma d’environ 2,2, mais avec une partie linéaire proche de zéro pour éviter d’avoir une pente infinie à K = 0, ce qui peut causer des problèmes numériques. La condition de continuité pour la courbe , qui est défini ci-dessus comme une fonction par morceaux de , est
Résoudre avec et la valeur standard donne deux solutions, ≈ ou ≈ . La norme IEC 61966-2-1 utilise la valeur arrondie . Cependant, si nous imposons la condition que les pentes correspondent aussi bien alors nous devons avoir
Nous avons maintenant deux équations. Si nous prenons les deux inconnues pour être {\ displaystyle K_ {0}} K_ {0} et {\ displaystyle \ phi} \ phi alors nous pouvons résoudre pour donner
Substitution et donne ≈ et ≈ , avec le seuil de domaine linéaire correspondant ≈ .Ces valeurs, arrondies à , , et , décrivent parfois les conversions sRGB. Les publications des créateurs de sRGB arrondi à et , résultant en une petite discontinuité dans la courbe. Certains auteurs ont adopté ces valeurs malgré la discontinuité. Pour la norme, la valeur arrondie a été conservé et le la valeur a été recalculée pour rendre la courbe résultante continue, comme décrit ci-dessus, résultant en une discontinuité de pente de 12,92 au-dessous de l’intersection à 12,70 ci-dessus.
Environnement de visualisation
Paramètre | Valeur |
---|---|
Niveau de luminance de l’écran | 80 cd / m 2 |
Point blanc illuminant | x = 0,3127, y = 0,3290 (D65) |
Image réflectance surround | 20% (~ gris moyen) |
Codage du niveau d’éclairement ambiant | 64 lux |
Encodage du point blanc ambiant | x = 0,3457, y = 0,3585 (D50) |
Encodage de la lumière parasite | 1,0% |
Niveau d’éclairement ambiant typique | 200 lux |
Point blanc ambiant typique | x = 0,3457, y = 0,3585 (D50) |
Fusée de visualisation typique | 5,0% |
La spécification sRGB suppose un environnement d’encodage faiblement éclairé (création) avec une température de couleur corrélée ambiante (CCT) de 5000 K. Il est intéressant de noter que cela diffère du CCT de l’illuminant (D65). Utiliser D50 pour les deux aurait rendu le point blanc de la plupart des papiers photographiques excessivement bleu. Les autres paramètres, tels que le niveau de luminance, sont représentatifs d’un moniteur CRT typique.
Pour des résultats optimaux, l’ICC recommande d’utiliser l’environnement de visualisation d’encodage (c’est-à-dire un éclairage diffus et diffus) plutôt que l’environnement de visualisation typique moins strict.
Usage
En raison de la standardisation de sRGB sur Internet, sur les ordinateurs et sur les imprimantes, de nombreux appareils photo numériques grand public et scanners de faible à moyenne utilisation utilisent sRGB comme espace colorimétrique de travail par défaut (ou uniquement disponible). Comme la gamme sRGB satisfait ou dépasse la gamme d’une imprimante à jet d’encre bas de gamme, une image sRGB est souvent considérée comme satisfaisante pour un usage domestique. Cependant, les CCD au niveau des consommateurs sont généralement non calibrés, ce qui signifie que même si l’image est étiquetée comme sRGB, on ne peut pas conclure que l’image est sRGB de couleur précise.
Si l’espace colorimétrique d’une image est inconnu et qu’il s’agit d’un format d’image de 8 à 16 bits, supposer qu’il se trouve dans l’espace colorimétrique sRGB est un choix sûr. Cela permet à un programme d’identifier un espace colorimétrique pour toutes les images, ce qui peut être beaucoup plus facile et plus fiable que d’essayer de suivre l’espace colorimétrique « inconnu ». Un profil ICC peut être utilisé; l’ICC distribue trois profils de ce type: deux profils conformes à la version 4 de la spécification ICC, qu’ils recommandent, et un profil conforme à la version 2, qui est encore couramment utilisé.
Les images destinées à l’impression professionnelle via un flux de production entièrement géré en couleur, par exemple la sortie prépresse, utilisent parfois un autre espace colorimétrique tel que Adobe RGB (1998), qui prend en charge une gamme plus étendue. Ces images utilisées sur Internet peuvent être converties en sRGB à l’aide d’outils de gestion des couleurs généralement inclus avec les logiciels fonctionnant dans ces autres espaces colorimétriques.
Les deux principales interfaces de programmation pour les graphiques 3D, OpenGL et Direct3D, ont toutes deux pris en charge la courbe gamma sRGB. OpenGL prend en charge les textures avec des composants de couleur codés sRGB gamma (introduits pour la première fois avec l’extension EXT_texture_sRGB, ajoutés au noyau dans OpenGL 2.1) et le rendu dans les framebuffers codés sRGB gamma (introduits pour la première fois avec l’extension EXT_framebuffer_sRGB).Direct3D prend en charge les textures sRGB gamma et le rendu dans les surfaces gamma sRGB à partir de DirectX 9. Corriger le mipmapping et l’interpolation des textures sRGB gamma a un support matériel direct dans les unités de texturation de la plupart des GPU modernes (par exemple nVidia GeForce 8 valeurs avant d’interpoler ces valeurs), et n’a aucune pénalité de performance.