Sociaux et recherche

17 mai 2013

RVB, CMJN, TSL: explication et conversion des modes de couleurs

RVB


Cet article présente différentes manières de représenter les couleurs, nous regarderons le système RVB utilisé par les écrans et les capteurs des appareils photo, le système CMJN utilisé en imprimerie ou encore le système TSL utilisé en infographie.
Quelques généralités comme la réponse de l'oeil à une couleur seront également précisées.

En fin d'article un convertisseur vous permet de passer d'une mode de couleurs à un autre.




Remarque: il existe d'autres systèmes (Lab, CIEXYZ,..) mais ils sont relativement difficiles à appréhender, j'en ferai un article à part si besoin.


Résumé de l'article

Qu'est-ce que le RVB ?
Un mode de représentation des couleurs utilisé par un écran ou un capteur d'appareil photo, la couleur y est décomposée selon ses composantes Rouge, Verte et Bleue (par synthèse additive).

Qu'est-ce que le CMJN ?
Ce format de couleur est utilisé en imprimerie, il permet de créer des couleurs à partir de composantes Cyan, Magenta, Jaune et Noire (par synthèse soustractive).

Qu'est-ce que le TSL ?
Une représentation des couleurs selon la Teinte, la Saturation et la Luminosité, utilisé notamment en infographie.

Qu'est-ce que la Luminance ?
La luminance mesure l'intensité de la lumière, elle peut être calculée en faisant la moyenne des composantes RVB ou en appliquant des coefficients à chaque composante, pour être fidèle au ressenti de l'oeil.

Peut on convertir les différents modes de couleur ?
Oui, mais les différents modes n'offrant pas les mêmes possibilités il y a risque de modifier les couleurs.





Introduction: spectre du visible et perception par l'oeil


La lumière est une onde électromagnétique dont la longueur d'onde définit la couleur:

Spectre du visible
Spectre du visible et longueur d'onde

Ce spectre va de 380nm (limite des ultra-violets) à 780nm (limite des infra-rouges).

L'oeil possède des cônes: des récepteurs au Rouge, Vert et au Bleu (avec des pics respectivement à 564nm, 533nm et 437nm) lui permettant de distinguer les différentes couleurs, en effet on peut décomposer le spectre du visible en fonction de ces trois composantes (les valeurs sont approximatives, voir en fin d'article un lien vers plus d'explications):
RVB longueur d'onde
Composantes RVB en fonction de la longueur d'onde



Le modèle RVB


Les capteurs des appareils photos et les écrans utilisent le même principe pour enregistrer ou créer une couleur, ils la décomposent selon les 3 couleurs primaires:

  • R: Rouge
  • V: Vert
  • B: Bleu
pixels RVB ecran
Gros plan sur les pixels d'un écran

Basiquement, un écran est composé de pixels, chaque pixel intègre 3 diodes (toujours rouge, verte et bleue), en modulant l'intensité lumineuse de chaque diode ont peut afficher n'importe quelle couleur visible, on parle de synthèse additive: le mélange de la lumière des 3 diodes créé la couleur.

Le nombre de niveaux possibles pour chaque composante est définit par le nombre de bits utilisés pour enregistrer les valeurs:
  • 8 bits autorisent 256 niveau par composante, soit 256 x 256 x 256 =16 millions de couleurs.
  • 12 bits autorisent 4'096 niveaux par composante, soit plus de 60 milliards de couleurs.

Pour simplifier les choses, je considérerai un codage sur 8 bits dans la suite de l'article.


Quelques exemples de couleurs en RVB:

RVB synthese additive
L'addition des composantes RVB permet de créer les autres couleurs



Dans cette illustration toutes les composantes actives sont à leur valeur maximale (255), mais changer cette valeur permet de moduler la luminance:

variation luminance couleurs
Variation de la luminance des couleurs primaires et du gris



Une couleur RVB peut être représentée en hexadécimal sous la forme #RRVVBB avec RR, VV, BB les valeurs du rouge, du vert et du bleu en hexa.



Luminance d'une couleur


La luminance L caractérise l'intensité lumineuse d'une source de lumière, en première approche on peut la calculer en faisant la moyenne des composantes RVB:

L = (R+V+B) /3

Mais il faut tenir compte du fait que l'oeil perçoit différemment la luminosité en fonction de la couleur:

sensibilite oeil spectre visible
Sensibilité de l'oeil au spectre du visible

Pour en revenir aux diodes d'un écran: même si elles sont allumées à la même intensité la led verte semblera plus lumineuse que la rouge et cette dernière plus lumineuse que la bleue.

On tient compte de ce phénomène en utilisant des coefficients pondérateurs dans le calcul de la luminance:

L = 0,3.R + 0,6.V + 0,1.B


A noter que dans un logiciel tel que Photoshop l'histogramme RVB est calculé avec la première formule, l'histogramme de luminosité avec la seconde.



Le modèle CMJN



Définition du CMJN


Vous vous en rendez compte chaque fois que vous devez acheter de nouvelles cartouches pour votre imprimante à jet d'encre: on utilise couramment 4 couleurs pour réaliser une impression (on parle de quadrichromie):

  • C: Cyan (0,255,255)
  • M: Magneta (255,0,255)
  • J: Jaune (255,255,0)
  • N: Noir (0,0,0)
trame quadrichromie
Gros plan sur une impression en quadrichromie

Contrairement à un écran qui émet de la lumière, un tirage imprimé se contente de retenir des couleurs à lumière (supposée) blanche qui l'éclaire, on parle de synthèse soustractive, par exemple le cyan retient le rouge, le jaune retient le bleu.

Ici, on ne parle plus en bits mais en pourcentage, 0% si la couleur n'est pas utilisé, 100% dans le cas opposé.
Cyan Magenta et Jaune sont les 3 couleurs primaires de la synthèse soustractive.

CMJN synthese soustractive
La soustraction des composantes CMJN permet de créer les autres couleurs

Dans cet exemple le noir pourrait être généré en utilisant CMJ à 100% et en gardant le noir à 0%, mais vous imaginez l'impact sur la consommation de vos cartouches d'encre.. dans la même logique on utilise plus ou moins de noir pour les autres couleurs.


Utilité


On utilise le mode CMJN lorsque la finalité du travail est une impression en quadrichromie, en effet le CMJN ne permet pas de représenter toutes les couleurs du RVB, lors de la conversion de RVB en CMJN il y a dégradation des couleurs, il est donc important de travailler le rendu du tirage en CMJN pour avoir une impression fidèle à ce que l'on a à l'écran.


Conversion de RVB <=> CMJN


Toujours pour 8 bits, les formules sont les suivantes:

RVB => CMJNCMJN => RVB
N=min(255-R, 255-V, 255-B) R= 255 100 × ( 100-C× (1- N 100 ) -N)
C=100× 255-R-N 255-N V= 255 100 × ( 100-M× (1- N 100 ) -N)
M=100× 255-V-N 255-N B= 255 100 × ( 100-J× (1- N 100 ) -N)
J=100× 255-B-N 255-N

Attention: ces formules ne représentent qu'un cas théorique parfait, dans la vraie vie on applique des coefficients en fonction du papier, de l'encre, du taux max de noir que l'on veut utiliser,..



Le modèle TSL



Définition du TSL


Ce modèle est intéressant car il a une approche de la couleur plus intuitive que RVB ou CMJN, on a:
  • T: La Teinte de la couleur
  • S: La Saturation de la couleur
  • L: la Luminosité de la couleur

La teinte représente une couleur "pure", elle est donnée en degré et vaut 0° pour le rouge, 120° pour le vert, 240° pour le bleu, on revient finalement sur le rouge à 360°:

TSL - teinte
Variation de la Teinte dans le format TSL

La saturation représente "l'intensité" de la teinte, elle varie de 0% (gamme de gris allant du blanc au noir en fonction de la luminosité) à 100% (intensité maximale de la teinte):

TSL - Saturation
Variation de la Saturation dans le format TSL (la luminosité est constante à 100%)

Pour finir, la luminosité donne une idée de la quantité de noir (ou de blanc en fonction de la saturation) ajoutée à la teinte, elle est également donnée en pourcentage:

Variation de la Luminosité dans le format TSL (la saturation est constante à 100%)


Conversion de RVB <=> TSL


Pour faire les calculs il faut définir de nouvelles variables: M et m sont les max et min des composantes RVB, i et X sont des variables uniquement utilisées pour le calcul.

RVB => TSLTSL => RVB
M=max(R,V,B) M=L× 255 100
m=min(R,V,B) m=(100-S) ×L× 255 10000
C=M-m C=M-m
Si M=R : T=60× mod( ( V-B C ) , 6) i= T 60
Si M=V : T=60× ( ( B-R C ) +2) X=C×mod(i ,2)
Si M=B : T=60× ( ( R-V C ) +4) Si i<1 : (R,V,B)= (C+m, X+m, m) Si i [1,2[ : (R,V,B)= (X+m, C+m, m)
S=100× C M Si i [2,3[ : (R,V,B)= (m, C+m, X+m) Si i [3,4[ : (R,V,B)= (m, X+m, C+m)
L=100× M 255 Si i [4,5[ : (R,V,B)= (X+m, m, C+m) Sinon : (R,V,B)= (C+m, m, X+m)


On peut voir la saturation comme un écart entre la couleur considérée et une couleur neutre (un niveau de gris), les gris ont donc une saturation nulle, pour être très saturée une couleur doit avoir une composante RVB très grande et une autre très petite.


La luminosité représente la "distance" entre la couleur considérée et le noir, pour être très lumineuse une couleur doit avoir une composante très élevée.



Liens


Des infos sur la conversion d'une longueur d'onde en RVB.

Adobe vous parle des couleurs et de leur gestion.



Convertisseur


  • Ce convertisseur vous permet de convertir les couleurs RVB, CMJN et TSL.
  • Le CMJN est simplifié, il ne tient pas compte du type de papier, d'encre,..
  • L'information est également donnée en hexadécimal.
  • Deux types de luminances sont calculées:
    • Luminance moyenne = R/3 + V/3 +B/3.
    • Luminance pondérée = 0.3R + 0.6V + 0.1B, plus fidèle au ressenti de l'oeil.
  • Faire varier la luminance donne une couleur en nuance de gris.
  • La couleur choisie est affichée en haut du tableau.


Conversion RVB/CMJN/TSL

RVBCMJNTSL
R [0-255] C (%) T [0-360]
V [0-255] M (%) S (%)
B [0-255] J (%) L (%)
N (%)
Hex
Luminance (% moyen)
Luminance (% percu)



Dernière mise à jour le:
par Pierre LPEF