From madore@clipper.ens.fr Wed Aug 14 10:06:24 2002
Article: 9 of ens.forum.informatique.graphisme
Path: eleves!not-for-mail
From: madore@clipper.ens.fr (Gro-Tsen)
Newsgroups: ens.forum.informatique.graphisme,ens.forum.sciences
Subject: prolegomenes : la couleur et la colorimetrie
Followup-To: ens.forum.informatique.graphisme
Date: Wed, 14 Aug 2002 08:06:24 +0000 (UTC)
Organization: Forum.
Lines: 939
Sender: madore@clipper.ens.fr
Message-ID: <ajd320$bq8$1@clipper.ens.fr>
NNTP-Posting-Host: clipper.ens.fr
X-Trace: clipper.ens.fr 1029312384 12104 129.199.129.1 (14 Aug 2002 08:06:24 GMT)
X-Complaints-To: forum@clipper.ens.fr
NNTP-Posting-Date: Wed, 14 Aug 2002 08:06:24 +0000 (UTC)
X-Newsreader: Flrn (0.5.0pre0 - 10/00)
X-Start-Date: 12 Aug 2002 13:41:27 GMT
Xref: eleves ens.forum.informatique.graphisme:9 ens.forum.sciences:1075

Maintenant que vous avez lu la première partie de mes prolégomènes et
que vous savez tout sur la correction gamma, je vais vous parler de la
couleur.  Vaste sujet (cf. la taille de ce message).

(Note : à certains endroits de ce post, qui est très long, je me suis
emporté dans diverses digressions - n'abandonnez pas si vous vous
sentez perdu, mais continuez à lire, il peut y avoir des choses plus
claires plus loin.  En tout cas j'y passe plein de choses en revue,
depuis la physique du rayonnement jusqu'à l'inclusion de profils ICC
dans des images PNG en passant par la physiologie de la rétine, le
calibrage du blanc et la définition de la saturation et de la couleur
complémentaire.)

D'abord un peu de physique.  Ce que j'appellerai un « spectre »
lumineux, c'est la décomposition du rayonnement électromagnétique émis
pas une source (éventuellement secondaire, i.e. par réflexion) suivant
les fréquences, ou, ce qui revient au même, les longueurs d'onde.  On
s'intéresse principalement aux longueurs d'onde comprises entre,
disons, 360nm et 830nm, ce qui correspond au visible (très large).  La
valeur mesurée d'un spectre pour une longueur d'onde donnée s'exprime
en watts par nanomètre ; si on parle en fréquence, ce sera en watts
par terahertz ; pour passer de l'un à l'autre, il faut faire un
changement de variable : si Sl est le spectre en longueur d'onde,
fonction de la longueur d'onde lambda et Sf le spectre en fréquence,
fonction de la fréquence nu, on a Sf(nu) = c·Sl(c/nu)/nu² où c est la
vitesse de la lumière, et Sl(lambda) = c·Sf(c/lambda)/lambda².

Un spectre d'importance particulière qui apparaît naturellement en
physique est celui du corps noir, ou radiateur intégral.  Pour le
profane, c'est le spectre qu'émet un objet chauffé du simple fait de
sa température.  Plus précisément, c'est le spectre d'un gaz de
photons en équilibre thermodynamique avec un corps qui absorbe
parfaitement les photons (d'où le « noir ») donc les émet aussi
parfaitement - mais il ne réfléchit rien directement.  Précisément, le
spectre en fréquence Sf d'un rayonnement du corps noir à la
température T est donné par Sf = (2h/c²)·(nu³/(e^((h·nu)/(k·T))-1)) où
nu est la fréquence considérée, h la constante de Planck (non réduite
par 2pi), k la constante de Boltzmann, c la vitesse de la lumière ; il
s'agit là d'un spectre par unité de surface du corps noir et par unité
d'angle solide, c'est-à-dire que Sf s'exprime en watts par mètre carré
(de surface) par stéradian (d'angle solide) par (téra)hertz (de
fréquence) ; c'est la loi de Planck.  On peut également calculer le
spectre en longueur d'onde, d'après ce qui précede, à savoir Sl =
(2h·c²/lambda^5)/(e^((h·c)/(lambda·k·T))-1).  (Et si on veut on peut
intégrer Sl sur tous les lambda, ou de façon équivalente intégrer Sf
sur tous les nu, pour obtenir la loi de Stefan-Boltzmann qui donne
l'émission totale en intensité du corps noir, toutes fréquences
confondues.)

Bon, je cesse de digresser : inutile de connaître la forme précise du
spectre du rayonnement du corps noir pour faire de la colorimétrie.
Cependant, c'est le spectre qui définit l'émission d'une lampe à
incandescence (autour de T=2900K), et, avec une précision pas trop
dégueulasse, du rayonnement solaire (autour de T=6500K).  En revanche,
l'émission d'un tube fluorescent ordinaire (improprement appelé « tube
néon ») est très éloignée d'un rayonnement du corps noir.

À part ça, la Commission Internationale de l'Éclairage (CIE), dont il
sera question plus loin, a défini des spectres standard de diverses
sources de lumière (lampe incandescente à filament de tungstène,
lumière du jour, etc) : elle appelle ça des « illuminants standards ».
Les plus importants sont sans doute l'illuminant A, qui correspond à
l'émission d'une lampe incandescente standardisée, l'illuminant D50
qui est la norme pour la visualisation d'oeuvres graphiques imprimées,
et l'illuminant D65 censé représenter le rayonnement diurne incident
moyen par ciel couvert à la surface de la Terre dans l'hémisphère
nord.  On peut aussi trouver des données expérimentales sur le
rayonnement solaire avant entrée dans l'atmosphère, si on est
intéressé.

Évidemment, on a aussi les rayonnements monochromatiques purs.
Ceux-ci correspondent à des spectres aussi concentrés que possible en
fréquence (ou en longueur d'onde, ça revient au même) : les fonctions
Sf et Sl sont des distributions delta sur une valeur précise.  On les
modélise physiquement par des lasers, ou, de façon approximative, par
des filtres ayant une bande passante très étroite.

Il est important qu'il n'y a pas, à l'autre extrême, de sens physique
au mot « blanc » pour une source de lumière.  La lumière blanche est
un mélange de toutes les longueurs d'onde, certes, mais dans quelles
proportions ?  (Dire « dans des proportions égales » n'a pas de sens -
encore faudrait-il savoir si c'est Sf ou Sl qui est constant...)
C'est ici qu'intervient le rayonnement du corps noir, car c'est la
meilleure définition précise qu'on peut fournir d'une lumière
blanche : le spectre du rayonnement du corps noir pour une température
de 6500K.  Mais évidemment ce n'est pas la seule possible : le
rayonnement du corps noir à 5000K fournit un blanc plus « chaud »
(oui, c'est absurde, parce que physiquement c'est le contraire, mais
c'est le terme est communément employé), plus jaune que le précédent,
mais néanmoins tout à fait acceptable comme « blanc » ; à l'inverse,
le rayonnement du corps noir à 9300K fournit un blanc plus « froid »,
plus bleu, mais qu'on peut préférer dans certaines conditions.
Beaucoup de moniteurs d'ordinateurs permettent un calibrage du blanc
sur la couleur (mais je n'ai pas encore expliqué ce qu'est une
« couleur », seulement un spectre) d'un de ces radiateurs.  Par
ailleurs, si on est plus ingénieur que physicien, on prendra plutôt
pour définition du « blanc » l'illuminant standard D65 de la CIE
(c'est ce que fait le standard sRGB, par exemple, voir plus loin).

En revanche, si je dis que « blanc » n'a pas de sens physique précis
pour une *source* de lumière, en revanche cela a un sens tout à fait
précis pour un objet mat ou réfléchissant : un objet parfaitement
blanc est un objet qui reproduit exactement le spectre de la source
qui l'éclaire (alors qu'un corps noir, cf. ci-dessus, absorbe
complètement la lumière incidente - et la réémet, mais dans un spectre
qui correspond à sa température et qui, pour les objets quotidiens,
correspond à des fréquences bien en-deçà du visible, dans
l'infrarouge).

Bon, tout ça ce sont des spectres, mais ça ne dit pas ce que c'est
qu'une couleur.  La différence est qu'un spectre est une propriété
physique de la lumière tandis qu'une couleur est la perception qu'en a
un oeil humain (et si on s'intéressait à la perception qu'ont de la
lumière les abeilles, ou les aigles, ou les chats, il faudrait
d'autres descriptions - par exemple, un chat ne voit pas la couleur
mais uniquement l'intensité de la lumière).

Donc, ayant fait un peu de physique, on fait maintenant un (tout
petit) peu de biologie.  Il y a quatre types de cellules
photoréceptrices sur la rétine humaine, qui réagissent à la lumière et
la convertissent en influx nerveux (le mécanisme de base est le
changement d'état d'un pigment appelé « rétinal » d'un état d'isomérie
« cis » à un état « trans » - je n'en dirai pas plus).  Sur ces types
de cellules, trois sont appelées les « cônes » et une est appelée les
« bâtonnets ».  Les cônes sont sensibles à la couleur et les bâtonnets
à l'intensité lumineuse - cette affirmation, évidemment, n'a
absolument aucun sens parce que ça ne veut rien dire d'« être sensible
à la couleur ».  Disons que les bâtonnets sont plus sensibles que les
cônes, servent à la vision nocturne et que le cerveau n'en perçoit pas
de sensation de couleur (la nuit on voit en noir et blanc) : pour
ordre de grandeur, les bâtonnets commencent à être pris en compte par
le cerveau pour des éclairages de l'ordre de 10lx, et sont les seuls à
être utilisés (les cônes ne réagissent plus) autour de 0.1lx ; en
revanche, pour un éclairage important, les bâtonnets sont « lavés »,
c'est-à-dire qu'ils réagissent en permanence et ne sont plus utilisés
par le cerveau (lorsque le même phénomène se produit pour les cônes,
c'est l'éblouissement).

Les cônes sont de trois types : on les appelle « longs (L) »,
« moyens (M) » et « courts (S) » selon qu'ils sont sensibles
principalement aux longues, moyennes ou courtes longueurs d'onde.
Certains parleront des cônes rouges, verts et bleus respectivement,
mais c'est une mauvaise idée, en fait : le pic de sensibilité des
cônes longs est non pas dans le rouge mais dans le jaune-vert (570nm),
et si celui des cônes moyens est bien à 543nm dans le vert, en
revanche celui des cônes courts est dans le violet (442nm) ; par
ailleurs, on ne peut pas vraiment leur associer une couleur parce
qu'aucune lumière ne correspond à la stimulation pure d'un seul des
trois récepteurs (voir plus loin), mais si on extrapole des sensations
possibles, on dira que les cônes longs correspondent à une sensation
« fuchsia », les cônes moyens « vert tropical psychédélique », et les
courts « violet ».  (Ce sont donc là les trois vraies « couleurs
primaires » que le fuchsia, le vert tropical psychédélique et le
violet - voir plus loin pour ce qui est du rouge, du vert et du bleu.)

Bref, pour étudier les couleurs, on commence par déterminer les
fonctions précises de sensibilité de l'oeil.  Une fonction de
sensibilité pour un récepteur (qui peut être à peu près n'importe
quoi), c'est une fonction V(nu) telle que la réponse du récepteur à un
spectre Sf(nu) soit l'intégrale de V·Sf sur les différentes valeurs de
nu.  Notons qu'on peut aussi écrire ça comme sensibilité à la longueur
d'onde, ça ne change rien (contrairement aux spectres !) : c'est
encore l'intégrale de V·Sl sur les différentes valeurs de lambda.  Si
la réponse du récepteur n'est pas directement quantifiable (comme
c'est le cas pour, disons, la réponse d'un cône), l'unité de cette
intégrale, donc l'unité de V (c'est-à-dire sa normalisation) est
arbitraire (encore que dans certaines conditions, pour l'oeil humain,
il y a une unité naturelle : V s'exprimera en lumens par watt,
cf. plus bas pour les explications) : même comparer des valeurs de V
d'un récepteur à un autre (i.e. d'une couleur de cônes à une autre,
par exemple) n'a pas de sens ; en revanche, comparer des valeurs de V
pour un même récepteur d'une fréquence à une autre a un sens bien
défini, c'est ce qui permet à V(nu) d'exister : dire que V(540THz)
vaut le double de V(670THz) (au pif) signifie qu'il faut une puissance
lumineuse (exprimée en watts) deux fois plus importante à une lumière
de fréquence 670THz qu'à une lumière de fréquence 540THz pour produire
une égale excitation du récepteur.  En revanche, si on choisissait
d'exprimer Sf non en watts (par térahertz ou par stéradian par
térahertz) mais en moles de photons par seconde (ce qui est possible,
quoique un peu inhabituel), il faudrait utiliser une fonction de
sensibilité Vn différente (à savoir Vn = h·Nav·nu·V, avec Nav le
nombre d'Avogadro).  Mais tenons-nous en à V.

Bon, là on peut se dire : c'est bien, il n'y a plus qu'à déterminer
les fonctions de sensibilité des trois types de cônes (et
éventuellement des bâtonnets), et c'est ce qu'on va faire.  Sauf que,
non, ce n'est pas ce qu'on fait.  La Commission Internationale de
l'Éclairage a défini trois fonctions de sensibilité standard (dites
« fonctions de reconnaissance des couleurs »), qui à un spectre
associent, donc (comme décrit ci-dessus), trois valeurs (les
coordonnées « CIEXYZ »), X, Y et Z, qui paramétrisent la couleur (et
l'intensité dans des unités assez arbitraires).  En très très gros, ce
sont les composantes rouge, verte et bleue de la couleur.  Sauf que,
justement, ce n'est pas ça, et surtout, ce ne sont PAS les fonctions
de sensibilité des trois types de cônes (comme je l'ai cru moi-même
jusqu'au moment où je croyais avoir fini d'écrire ce post et où je me
suis rendu compte que - presque - tout était à refaire, grrrrrr, et il
me semble même l'avoir vu écrit dans un bouquin quelconque, i.e. avoir
vu les courbes des sensibilités X, Y et Z dessinées avec l'affirmation
que c'étaient les courbes de sensibilités des trois cônes).  Ces X, Y
et Z ne mesurent pas l'excitation des trois types de cônes mais n'en
sont que trois combinaisons linéaires indépendantes : c'est-à-dire que
les fonctions de sensibilité de X, Y et Z ne sont pas les sensibilité
des cônes mais des combinaisons linéaires de celles-ci.

Pourquoi donc ?  Parce qu'il est assez facile de déterminer des
fonctions de reconnaissance des couleurs : il suffit de faire des
expériences en demandant à des individus de régler telle combinaison
de lumières pour obtenir une sensation de couleur identique à telle
autre.  Cela permet de déterminer la projection de l'espace des
spectres sur l'espace des couleurs (sensations visuelles) ; mais
ensuite, ce dernier, on le paramètre comme on veut, il n'y a pas de
choix évident, et il est difficile de savoir exactement quelles
fonctions correspondent aux récepteurs fondamentaux.  De fait, les
fonctions standard X, Y, Z de reconnaissance des couleurs ont été
définies en 1931 par la CIE, mais ce n'est qu'en 1999 qu'on a obtenu
la valeur précise des sensibilités des trois cônes (en gros, Z
correspond aux cônes courts, Y est une combinaison des cônes moyens et
longs en proportions à peu près égales whatever that means, et X est
une combinaison des trois avec un poids négatif pour les cônes moyens,
un poids important pour les cônes longs et faible pour les courts).
(Je vous épargne, au fait, la différence entre l'observateur « 2° » et
l'observateur « 10° », et l'inégalité de répartition des cônes courts
sur la rétine...)

Digression : À votre avis, comment a-t-on fait pour déterminer les
vraies fonction de sensibilité des cônes ?  On a fait appel aux
daltoniens dichromates.  En effet, on commence par observer que,
puisque la fonction Z réussit à s'annuler à partir de 650nm (cf. plus
bas), c'est qu'à partir de là il ne reste que deux récepteurs qui
jouent un rôle dans la vision, donc ce doivent être (par choix des
noms !) les cônes moyens et les cônes courts.  Comme par ailleurs on
ne trouve pas de situation où deux combinaisons de lumières paraissent
différentes à un daltonien mais identiques à un observateur normal
(cf. plus bas mes remarques sur le métamérisme), cela signifie que les
dichromates ont un type de cellule en moins, et pas des cellules
différentes : donc si on mesure le spectre de sensibilité de la
cellule qui reste (ayant exclus les cônes courts), on obtiendra son
vrai spectre.  Il existe des dichromates auxquels il manque les cônes
longs (« protanopes ») et d'autres auxquels il manque les cônes moyens
(« deutéranopes ») ; d'ailleurs il existe aussi des « tritanopes »
auxquels il manque les cônes courts, mais c'est beaucoup plus rare (il
y a beaucoup de similarité entre les gènes codant la formation des
pigments longs et moyens, et il se peut qu'à la suite de mutations ou
d'échanges on se retrouve avec deux fois le même, ou avec des pigments
mutants - ce qui explique que ce soient les cônes longs et moyens qui
sont surtout touchés).  De toute façon, comme il suffit d'un petit
nombre de constantes pour retrouver quelles combinaisons linéaires de
X, Y et Z donnent les fonctions de sensibilité des cônes, il n'est pas
nécessaire d'avoir des masses de données - le tout est d'en avoir
d'assez précises.

Les fonctions X, Y et Z, à défaut d'avoir un sens fondamental, ont
cependant certaines propriétés pas totalement désagréables, même si
comme je l'ai expliqué elles sont assez arbitraires.  Un point
important est que Y est la fonction de luminosité : ça c'est quelque
chose d'un peu moins bien défini que la réponse d'un cône, mais on
sait quand même que l'oeil a une réponse générale à l'intensité de la
lumière indépendamment de sa couleur (par exemple, une alternance
rapide de deux lumières produit une impression de clignotement si
elles ne sont pas de la même « luminosité », et en effectuant cette
expérience avec différentes longueurs d'onde on peut déterminer une
fonction générale de sensibilité de l'oeil à la lumière, c'est Y).
L'unité de Y sera expliquée plus bas, pour l'instant pensons-y comme
une unité arbitraire d'intensité.  Les unités de X et Z dépendent
d'une normalisation relative tout aussi arbitraire que le choix de X
et Z pour commencer ; la CIE a décidé de les normaliser en décrétant
qu'un spectre énergétique en longueur d'onde qui soit plat (Sl est
constant) a la même valeur de X, Y et Z (je trouve personnellement que
c'était une décision très stupide, mais passons).  Par ailleurs, la
fonction X s'annule (ou presque) autour de 504nm (dans le vert
bleuté), et la fonction Z s'annule à partir de 650nm.

Les valeurs X, Y et Z déterminent la couleur en même temps que
l'intensité (Y).  Pour éliminer cette dernière, on définit
x=X/(X+Y+Z), y=Y/(X+Y+Z) et z=Z/(X+Y+Z), de sorte que les trois
valeurs x,y,z, vérifiant x+y+z=1 (en pratique on donne juste x et y),
définissent la couleur à l'intensité près (pour insister sur ce fait
on peut dire « chromaticité »).  (Pour les matheux : pensez à (X:Y:Z)
= (x:y:z) comme un point dans un plan projectif ; et retenez, ce sera
important pour plus tard, que pour fixer un repère projectif du plan
il faut _quatre_ points.)  Par exemple, l'illuminant D65 dont j'ai
parlé ci-dessus, a les coordonnées CIEXYZ : x=0.3127, y=0.3290 et
z=0.3583.

Maintenant il faudrait un peu parler de l'intensité.  Jusqu'ici j'ai
été très vague à ce sujet.  Il faut savoir ce qu'on mesure exactement.
Quand on a une source de lumière, on peut considérer son flux total :
c'est-à-dire la puissance totale (énergie par unité de temps) émise
sous forme lumineuse, et elle s'exprime en watts.  On peut aussi
considérer son flux dans une direction donnée, puissance par unité
d'angle solide autour de cette direction : cela s'exprime en watts par
stéradian, et cela s'appelle l'« intensité lumineuse » (ou
« rayonnante ») de la source (et c'est directement relié au vecteur de
Poynting, si je me rappelais encore ce que c'est que le vecteur de
Poynting).  Si la source n'est pas ponctuelle, on peut considérer la
« luminance » (« radiance »), i.e. l'intensité lumineuse produite par
unité de surface de la source (ou de longueur si elle est filiforme)
et cela s'exprime en watts par stéradian et par mètre carré (ou par
mètre si on parle de longueur).  Par ailleurs, pour mesurer
l'« éclairement » d'une surface, on peut considérer le flux lumineux
reçu par unité de surface, et ça s'exprime donc en watts par mètre
carré.  Toutes ces grandeurs, qui ont pour base le flux exprimé en
watts - que ce soit l'intensité lumineuse en watts par stéradian, la
luminance en watts par stéradian et par mètre carré ou l'éclairement
en watts par mètre carré -, sont appelées les grandeurs
« radiométriques », notamment parce qu'elles ont un sens pour tous les
rayonnements (même pas forcément électromagnétiques) et pas seulement
pour la lumière visible.  On peut aussi remplacer le watt par le
nombre de (moles de) photons par seconde : cela fournit un autre jeu
d'unités (le flux en moles par seconde, l'intensité lumineuse en moles
par seconde et par stéradian, etc) qui, pour une fréquence donnée sont
proportionnelles aux précédentes, mais pas pour un spectre complexe
(se rappeler que l'énergie d'un photon de fréquence nu est donnée par
h·nu) ; cependant, cela ne sert jamais.

Ce qui est en revanche très important, ce sont les grandeurs dites
« photométriques ».  C'est ce qu'on obtient en prenant le spectre dans
les grandeurs radiométriques et en le pondérant (puis en sommant) avec
la fonction de sensibilité de l'oeil à la lumière.  Cette fonction de
sensibilité est soit, pour la vision nocturne, la fonction de
sensibilité des bâtonnets (on parle alors de grandeurs
« scotométriques »), soit, pour la vision diurne (les grandeurs
« photométriques » proprement dites), la fonction Y dont j'ai parlé
plus haut.  Pour une raison obscure (pun unintended), ce sont les
cônes longs et moyens et pas (ou presque pas) les courts qui
déterminent la sensation de luminosité.  Reste que, comme je l'ai
évoqué, il manque une normalisation à tout ça (la fonction de
sensibilité est exprimée dans des unités arbitraires).  Pour
normaliser, on emploie l'unité SI qui va bien, à savoir, pour
l'intensité lumineuse, la candela, qui est normalisée en exprimant le
fait qu'une source monochromatique de fréquence 540THz (c'est-à-dire
un vert à peu près au pic de sensibilité de l'oeil humain) a une
efficacité de 683 lumens par watt.  La candela est donc « l'intensité
lumineuse, dans une direction donnée, d'une source qui émet un
rayonnement monochromatique de fréquence 540*10^12 hertz et dont
l'intensité énergétique dans cette direction est 1/683 watt par
stéradian ».  Aux grandeurs radiométriques exprimées ci-dessus
correspondent (dans un rapport 683 pour une source monochromatique de
540THz) les unités photométriques qui suivent : le flux passe des
watts aux lumens, l'intensité lumineuse passe des watts par stéradian
aux candelas (un lumen est un flux d'une candéla stéradian), la
luminance passe des watts par stéradian et par mètre carré aux
candélas par mètre carré, et l'éclairement passe des watts par mètre
carré aux lux (un lux est un lumen par mètre carré).  Pour obtenir
l'efficacité d'autres fréquences que les 540THz de la définition, il
faut consulter la courbe de sensibilité précise, c'est-à-dire, pour la
vision diurne, la fonction de sensibilité Y.  On peut ainsi calculer
qu'un corps noir à la température de 2900K (comme une lampe
incandescente à tungstène usuelle) a une efficacité lumineuse
d'environ 18lm/W ; un corps noir à 6500K monte à 95lm/W (c'est à peu
près le maximum), et ensuite pour 9300K on redescend à 80lm/W.

Où en sommes-nous ?  Pour une source de lumière, qui a un spectre
donné, on peut maintenant définir la réponse X, Y, Z des fonctions de
reconnaissance des couleurs, en unités arbitraires - sauf pour Y qui
s'exprime en candelas, X et Z étant normalisés par rapport à lui mais
de façon assez arbitraire.  Quand on parle de « couleur » (surtout
quand il s'agit d'une source lumineuse - s'il s'agit d'un objet
éclairé, la question est plus subtile et le mot est plus ambigu), on
ne tient normalement pas compte de l'intensité mais uniquement de ce
qui est commun à toutes les lumières provoquant les mêmes réponses
relatives des trois cônes.

Autrement dit, on est d'abord parti de l'espace des spectres, qui est
un espace fonctionnel à une infinité de dimensions, puis on l'a
projeté sur les trois cônes (voire les quatre types de récepteurs)
pour obtenir un espace à trois dimensions des sensations visuelles (ou
quatre dimensions si on tient compte des bâtonnets), on l'a paramétré
par ces fonctions X, Y, Z qui ne sont pas directement la réponse des
cônes (mais peu importe), et en mettant de côté l'intensité qu'on sait
maintenant mesurer, il reste un espace à deux dimensions, les couleurs
proprement dites.

Il faut cependant mentionner deux choses qui limitent la précision de
notre analyse.  La première, c'est que quotienter par l'intensité
présente un certain risque.  Il est vrai que pour une source propre de
lumière, vue de façon unique et sans environnement, l'oeil compensera
les variations d'intensité et la couleur paraîtra toujours « la même »
(dans un certain intervalle du moins, parce qu'au-delà les cônes
saturent).  En revanche, dans un éclairage ambiant, ce qui est
toujours le cas pour un objet mat (qui n'est pas intrinsèquement
lumineux mais ne fait que renvoyer la lumière qu'on lui envoie), les
variations d'intensité font une différence : et un gris ne paraît pas
identique à un blanc et ne s'interprète pas psychologiquement comme un
« blanc sombre » mais bien comme une couleur à part.  Il est donc
risqué de faire, comme je le propose, abstraction de la luminosité
quand on parle de la couleur.  Mais, en tenant compte de ce risque,
nous continuons néanmoins.  L'autre phénomène, c'est ce qu'on appelle
le « métamérisme » : aucun observateur ne correspond précisément aux
normes CIE en la matière, certains s'en écartent même violemment
(daltoniens surtout dichromates, monochromates, ou au contraire
tétrachromates, et, comme on l'a dit, à peu près tous les animaux).
La vraie quantité qui a un sens physique, c'est le spectre - et il se
peut très bien que deux spectres qui provoquent la même réponse chez
un individu (disons l'observateur de référence CIE) en provoquent des
différentes chez un autre.  C'est ainsi que deux couleurs peuvent être
rigoureusement identiques pour une personne, mais différentes pour une
autre - même si aucune n'a d'anomalie de vision : c'est justement ce
phénomène qu'on appelle le métamérisme (d'observateur).  Il y a aussi
un métamérisme d'éclairement, pour les objets non intrinsèquement
lumineux, qui fait que deux objets peuvent avoir la même couleur sous
une source de lumière et pas sous une autre (exemple extrême : un
pigment qui a une bande passante étroite dans le jaune paraîtra jaune
à la lumière blanche mais deviendra noir si on l'éclaire avec une
lumière dans laquelle on a remplacé le jaune de la lumière blanche par
une combinaison de rouge et de vert adaptée de sorte que l'oeil normal
la juge tout aussi blanche).  Ignorant ces difficultés (et l'existence
des bâtonnets dans la rétine), nous nous en tenons à un espace de
couleurs à deux dimensions (s'il est nécessaire d'insister sur le fait
qu'on ignore la luminosité, on parlera de « chromaticité »).

J'ai déjà mentionné une façon de paramétrer cet espace des couleurs :
les coordonnées x, y (et z=1-x-y) de la CIE.  Manifestement, x et y
doivent varier entre 0 et 1 et on doit avoir x+y<=1 (puisque z doit
aussi varier entre 0 et 1) : ceci définit donc un triangle dans lequel
les couleurs s'inscrivent.  Mais tous les points ne sont pas
physiquement possibles.  Précisément, on peut tracer dans l'espace
(x,y) la courbe des couleurs correspondant aux rayonnements
monochromatiques, paramétrée par la fréquence : l'enveloppe convexe de
cette courbe correspond aux couleurs physiquement réalisables par un
spectre (je pourrais invoquer le théorème de Carathéodory pour
justifier ça, mais je pense que vous n'en avez pas besoin).

Regardez ~madore/misc/xydiagram-*.png (pour l'instant, ne vous
préoccupez pas de la partie centrale mais uniquement de la courbe
pointillée) : on voit là le chemin parcouru dans l'espace (x,y),
d'après les données CIE, par les rayonnements monochromatiques, dont
la longueur d'onde varie entre 360nm (le violet tout en bas de
l'image, autour de (0.18,0.01)) et 830nm (le rouge à l'autre
extrémité, autour de (0.73,0.27)).  Le problème c'est que les
extrémités n'ont plus vraiment de sens : on pourrait continuer dans
l'ultraviolet et l'infrarouge, et mesurer des rapports de quantités
infinitésimales (aucun des trois cônes n'observe grand-chose, mais on
peut quand même faire le rapport et il doit bien être quelque part sur
la figure), ce qui correspond soit à déterminer la couleur de choses
invisibles, soit à se brûler la rétine avec de l'ultraviolet ou de
l'infrarouge très intense dans l'espoir d'y voir quand même un petit
quelque chose.  Bref, on ne sait pas où arrêter la courbe, et on le
fait généralement comme je l'ai fait sur ce dessin, auquel cas il faut
encore imaginer un segment reliant les deux extrémités (la « ligne des
pourpres extrêmes »), l'enveloppe convexe, correspondant à ce qui est
physiquement réalisable, étant tout ce qui est à l'intérieur de la
partie fermée délimitée par la courbe et le segment.  Pour ce qui est
de la couleur des pixels utilisés dans la courbe, ne vous y fiez pas
trop, ce sont des rendus très approximatifs des couleurs en question -
j'expliquerai plus loin en quoi elles sont fausses - de toute façon
votre écran ne peut pas faire mieux que ça.

Maintenant tâchons d'y voir un peu plus clair sur ce diagramme (x,y)
de chromaticité.  La première chose, c'est de repérer le blanc :
l'illuminant CIE D65 se trouve en (0.3127,0.3290) comme je l'ai déjà
mentionné (en pixels, ça fait (125,268)) ; quant au corps noir à 6500K
on le trouve en (0.3135,0.3236), ce qui est assurément très proche ;
un corps noir à 9300K a des coordonnées (0.2849,0.2932).  Dans
l'ensemble, il y a toute une région qui paraît naturellement
« blanche », et ce n'est qu'en comparant deux lumières blanches
qu'elles apparaissent colorées de façon différente.  Je répète que,
bien sûr, quand je dis « blanc » ça peut tout aussi bien signifier
« gris », puisque je ne tiens pas compte de l'intensité : il serait
sans doute préférable de parler de la couleur « achromate » plutôt que
blanche / grise (voire noire).

Toute la partie située dans le triangle dont les sommets sont le point
blanc de référence et les deux extrémités du spectre, est appelée la
région des pourpres.  On divise donc les couleurs en deux sortes : les
pourpres et les autres.  La propriété importante des non-pourpres
c'est que toute couleur de ce type est sur le segment de droite
reliant le blanc à un point du spectre (point extrémal du diagramme
des couleurs) : autrement dit, toute couleur non-pourpre peut
s'obtenir en mélangeant de la lumière blanche à une lumière
monochromatique.  Ceci fait donc apparaître deux nouvelles propriétés
de la couleur : premièrement, on appellera « teinte » (modulo un choix
du blanc) un ensemble maximal de toutes les couleurs qui se déduisent
les unes des autres par variation de (l'intensité et de) la quantité
de blanc - c'est-à-dire le segment reliant sur le diagramme (x,y) un
point du spectre au point blanc de référence.  La teinte d'une couleur
non-pourpre peut se caractériser par l'unique longueur d'onde dont
elle contient le rayonnement monochromatique (ce sont donc les teintes
de l'arc-en-ciel) - ceci dit, ce n'est pas forcément une bonne idée de
la désigner ainsi pour les longueurs d'onde extrêmes (parce que la
mesure sera très imprécise et dépendra énormément du blanc choisi) et
ce n'est pas possible pour les pourpres.  La deuxième propriété qu'on
met en évidence, c'est la « saturation » d'une couleur dans sa
teinte : en gros, c'est la quantité de rayonnement monochromatique par
rapport à la quantité de blanc.  On dira donc qu'une couleur
monochromatique pure est purement saturée, tandis qu'un blanc est
totalement insaturé.  Notons cependant qu'il est difficile de définir
une échelle satisfaisante de saturation, et encore plus difficile si
on veut qu'elle soit uniforme d'une teinte à une autre : on veut
certainement que le blanc ait une saturation nulle et que le
rayonnement monochromatique ait une saturation de 1, mais ça ne nous
dit pas comment paramétrer entre les deux.  Si on prend par exemple le
rapport des luminosités (du rayonnement monochromatique sur la couleur
totale), ce qui semble le plus naturel, cela a bien un sens, mais ce
n'est pas forcément très heureux pour les couleurs bleues, parce que,
rappelons-le, un rayonnement monochromatique bleu, ou, pire encore,
violet, a une luminosité très faible (les cônes courts jouent très peu
dans la détermination de la luminosité) - autrement dit, cela
donnerait une échelle un peu tordue.  On peut aussi essayer de
paramétrer non par la luminosité Y mais par la somme des réponses des
trois récepteurs, soit X+Y+Z, ce qui revient à mettre, sur le
diagramme (x,y), une échelle en saturation uniforme sur le segment
reliant le blanc à la couleur monochromatique, avec 0 d'un côté et 1
de l'autre.  Néanmoins, ce choix revient à donner une signification
particulière à la définition et à la normalisation des trois
coordonnées X, Y et Z, dont j'ai expliqué qu'elles étaient assez
arbitraires.  Dans l'immédiat, contentons-nous d'une notion un peu
informelle de la saturation.

Peut-être devrais-je faire une petite digression sur cette notion de
luminosité.  Je sais que cela peut paraître bizarre de donner aussi
peu de poids aux longueurs d'onde bleues et violettes.  À l'extrémité
rouge du spectre, ce n'est pas trop problématique, parce qu'en fait le
rapport y/x ne descend pas trop bas - donc on traduit juste de façon
relativement précise l'affirmation que les longueurs d'onde élevées
paraissent moins lumineuse, même à énergie constante, mais cela ne va
pas trop loin.  À l'extrémité bleu-violet, les choses sont plus
bizarres : un violet monochromatique à 420nm, c'est-à-dire un violet
_très_ profond, à la limite de la vision, stimule encore les cônes
courts mais très peu les autres.  Cela donne un sentiment visuel très
bizarre d'une lumière visible sans luminosité : c'en est presque
choquant.  Vous avez sans doute tous déjà vu des tubes à ultra-violet,
dont l'oeil perçoit l'extrémité aux grandes longueurs d'onde, dans le
violet profond, et vous voyez de quoi je veux parler : ce n'est pas
pour rien qu'on a appelé ça de la « lumière noire » (évidemment, la
composante ultra-violette est, par définition, invisible, mais la
composante violette a déjà de quoi surprendre).  De même, il y a trois
semaines, Ska m'a signalé dans les jardins de Bercy une fleur d'un
violet très profond, tellement profond que c'en était presque
choquant, parce qu'on voyait clairement qu'elle réfléchissait quelque
chose - mais en même temps qu'elle était très sombre.  C'est un peu la
même impression que provoquent les couleurs fluorescentes -
c'est-à-dire celles où la quantité rayonnée dans telle ou telle
longueur d'onde est _supérieure_ à la quantité incidente, parce que la
matière capture une longueur d'onde (typiquement ultra-violette) pour
la réémettre dans une autre (visible) : cela trompe l'oeil car cela
paraît anormalement lumineux (et, accessoirement, trop saturé).  D'où
l'aspect « fluorescent » ou « électrique » des violets profonds.  Il
faut cependant admettre que la fonction Y définie par la CIE en 1931
est quand même vraiment trop faible sur les courtes longueurs d'onde :
une fonction corrigée a été adoptée ultérieurement (mais elle n'est
pas toujours utilisée).  Si vous vous demandez par ailleurs à quoi
ressemblent les rouges les plus proches de l'infrarouge, le mieux est
que vous démontiez une télécommande, que vous en extrayez le filtre
qui est devant la diode et que vous la placiez devant une source de
lumière assez puissante (une lampe à incandescence fera fort bien
l'affaire vu qu'elle rayonne beaucoup dans le proche infrarouge) -
vous verrez un rouge assez vineux qui n'a rien de passionnant.  Bon,
assez digressé.

Reste à expliquer ce qu'on peut faire pour les pourpres.  Pour ça,
l'idée naturelle, c'est de tracer un segment qui les relie au blanc,
et de _prolonger_ ce segment de l'autre côté du blanc.  On définit
donc la teinte symétrique de la teinte pourpre par rapport au blanc :
cela s'appelle la teinte « complémentaire » en ce sens que l'addition
des deux (dans les bonnes proportions) peut produire du blanc.
Autrement dit, on écrira un pourpre non pas comme l'_addition_ d'une
lumière monochromatique à un blanc mais comme la _soustraction_ de
celle-là à celui-ci (et, si on veut, les pourpres peuvent s'écrire
comme des verts à saturation négative).  Bien sûr, ce n'est pas limité
aux pourpres : on peut définir, pour toute teinte, une teinte
complémentaire ; et, si on est méticuleux dans la paramétrisation de
la saturation, pour toute couleur une couleur complémentaire (mais qui
n'est pas forcément physiquement réalisable) : je rappelle qu'une
« teinte » c'est une couleur modulo saturation.  Une fois qu'on a
défini un « pourpre » comme une teinte qui ne correspond pas à une
longueur d'onde (entre 360nm et 830nm), on peut définir les « verts »
comme les teintes dont le complémentaire est un pourpre : c'est une
définition assez intrinsèque (elle dépend évidemment des sensibilités
mesurées pour l'oeil humain et du blanc de référence, mais pas par
exemple d'un matériel pour rendre les couleurs), et cela donne pour
les verts les teintes dont la longueur d'onde associée est entre 493nm
et 567nm, ce qui correspond assez bien à l'intuition qu'on s'en fait.
De même, la notion de teinte et de couleur pourpre peut paraître assez
abstraite, mais en fait on reconnaît assez facilement d'un seul coup
d'oeil si telle ou telle teinte est un pourpre.

À ce stade-là de mon post, vous savez tout (ou presque) sur la couleur
en tant que phénomène scientifique, mais je n'ai encore rien dit sur
sa réalisation technologique, notamment par un écran cathodique.
C'est donc de ça que je vais maintenant parler.

La première idée que vous devez vous ôter de la tête si elle s'y
trouve, c'est que les écrans d'ordinateur seraient capables de
réaliser toutes les couleurs possibles (et je ne parle même pas de
toutes les combinaisons couleur+luminosité dans la gamme de luminosité
possible, juste de toutes les couleurs abstraction faite de la
luminosité).  Cela est tristement faux : on a vu que les couleurs
physiquement réalisables étaient un compact bien défini (sauf
peut-être pour la ligne des pourpres dont l'emplacement n'est pas
complètement intrinsèque mais dépend de l'endroit où on a arrêté le
spectre - peu importe), et on a vu sa forme dans le diagramme de
chromaticité CIE(x,y).  Or les couleurs qu'un écran est capable de
réaliser sont une petite région triangulaire autour du blanc, qui
correspond, certes, aux couleurs les plus communément rencontrées dans
le monde réel, mais qui est loin de recouvrir toutes les couleurs
physiquement possibles.  Gâchons tout de suite le suspens : un écran
cathodique normal est incapable de représenter correctement un beau
turquoise saturé ou un vrai bleu ciel - c'est-à-dire d'en fournir une
imitation qui ne soit pas complètement délavée de blanc - et c'est là
son manque le plus criant.  Il est aussi assez peu doué pour les
violets profonds.  En revanche, pour les bleus autour de 464nm,
l'écran monte très haut en saturation, et il ne s'en sort pas mal non
plus pour les rouges vers 611nm ou les jaunes vers 570nm.

De façon générale, il s'est formé, à cause des écrans d'ordinateur, un
mysticisme des « trois couleurs primaires » auquel j'admets volontiers
que j'avais moi-même complètement succombé.  Eh bien je vous le dis en
vérité : les trois couleurs primaires c'est du bidon, et, surtout, si
vous vous êtes mis dans la tête que telle teinte et telle autre et
encore telle autre sont précisément les trois couleurs primaires (que
ce soit le rouge, le vert et le bleu pour la synthèse additive, ou
bien le cyan, le magenta et le jaune pour la synthèse soustractive) et
qu'elles ont quelque chose d'intrinsèquement « primaire », purgez-vous
de cette idée absurde.  J'ai très précisément décrit l'espace des
couleurs jusqu'ici et je n'ai pas, vous le remarquerez, fait la
moindre référence à des couleurs « primaires » : celles-ci sont un
artefact des technologies que nous utilisons, et n'ont aucun sens
intrinsèque donnée la physiologie de l'oeil humain (contrairement aux
notions de teinte, de luminosité, de saturation...) mais seulement
pour certaines classes de réalisations technologiques de la couleur
(essentiellement, les synthèses trichromates).  Ce n'est pas parce que
nous avons trois types de cônes qu'il faut faire du mysticisme sur le
nombre trois : d'ailleurs, j'ai signalé que les noms « rouge »,
« vert » et « bleu » sont assez inappropriés pour les trois cônes.

Si vous voulez réaliser une bonne partie des couleurs physiquement
possibles avec seulement trois pigments, il vous faudra choisir des
pigments très saturés (ce qui, de toute façon, est une très bonne
idée), et il faudra mettre dans le tas un vert turquoise autour de
520nm qui a intérêt à pouvoir monter haut en luminosité.
Malheureusement c'est difficile à réaliser, et, même si on y arrive,
on aura du mal à calibrer le blanc et à réaliser précisément les
couleurs non-vertes.  Donc pour un bon rendu de la couleur il faudrait
au moins quatre pigments : par exemple rouge vineux, vert jaune, vert
turquoise et bleu violet.  Avec un cinquième pigment bleu ciel ce
serait encore mieux, d'ailleurs.  Si vous n'avez jamais vu une mer
tropicale (le genre dans lequel on trouve des récifs de coraux et
plein de bébêtes vachement dangereuses et vachement toxiques dans
l'eau) _de vos propres yeux_, ou bien plus prosaïquement un laser
autour de 520nm, alors vous n'avez _jamais_ vu ce que c'est qu'un vrai
vert turquoise (genre céladon), parce que c'est complètement en-dehors
de la gamme des couleurs possibles pour un moniteur ou une télévision,
ou pour une reproduction photographique, ou pour n'importe quoi
d'autre qu'une photographie tétrachromate de très haute qualité (ceci
dit, les photos trichromates peuvent quand même aller nettement plus
loin que les banals moniteurs ; et puis je ne sais plus quel fabricant
de pellicules avait fait un grand tintouin à la télé sur le lancement
d'une pellicule tétrachromate - avec, justement, un pigment
turquoise).  Maintenant, il faut quand même admettre que ces couleurs
sont rares dans la vraie vie, encore qu'il serait un peu difficile
d'expliquer pourquoi il n'y a que les mers tropicales qui vont les
chercher (peut-être aussi les très jeunes pousses d'épines de
conifères - j'y penserai la prochaine fois que je me promènerai dans
une forêt avec un chromophotomètre de précision).

La bonne nouvelle, cependant, c'est que les moniteurs sont quand même
capables de réaliser toutes les _teintes_ (je rappelle que la
distinction entre couleur et teinte c'est qu'une couleur est la donnée
d'une teinte et d'une saturation).  Y compris les teintes pourpres,
turquoises, tout ce que vous voulez.  Là où vous perdez, c'est à deux
niveaux.  Premièrement, la saturation : les moniteurs vont jusqu'à un
certain point et pas au-delà, et ce point dépend de la teinte ;
c'est-à-dire qu'ils sont obligés de vous rajouter du blanc à vos
couleurs, et la quantité qu'ils en ajoutent dépend de la teinte, et,
comme je le disais, tout ce qui ressemble à un vert turquoise ou bleu
ciel vous est livré avec une quantité massive de blanc dont vous ne
pouvez pas vous débarrasser.  Deuxièmement, la luminosité : pour les
intensités sombres vous pouvez parcourir toute la gamme de couleur que
le moniteur est capable de réaliser ; mais plus vous montez en
luminosité plus cette gamme est restreinte, et à la luminosité
maximale il ne reste que du blanc (en tout cas si vous avez
correctement calibré votre blanc).

Ces deux phénomènes sont intrinsèques et inévitables : les couleurs
complètement saturées ne peuvent se réaliser _que_ avec des longueurs
d'ondes monochromatiques, donc avec des lasers.  Comme on ne fait pas
encore pour le grand public d'écrans à balayage de lasers (peut-être
que ça viendra), on doit se contenter d'approximations, qui perdent
donc en saturation.  Et quand on mélange deux couleurs, _forcément_ on
perd en saturation, puisque les points saturés sont les points
extrémaux d'un ensemble convexe (blablabla théorème de Krein-Milman
blablabla).  Et pour ce qui est de la perte en luminosité, c'est aussi
inévitable (pour un moniteur) puisque vous atteindrez votre luminosité
maximale lorsque tous les phosophores émettent en même temps au
maximum, et à ce moment-là vous vous doutez bien que vous ne pouvez
pas régler la couleur (on espère bien que vous obtenez du blanc comme
ça, sinon votre moniteur est mal réglé et va être sacrément
désagréable à utiliser).

Bref, on appelle « gamme des couleurs » (d'un moniteur, d'une
imprimante couleur, d'une pellicule) l'ensemble des couleurs qu'elle
est capable de réaliser (soit à n'importe quelle luminosité, soit pour
une luminosité fixée, soit sur l'ensemble à trois dimension couleur +
luminosité).  En anglais on a le mot « gamut » qui est fort commode,
alors qu'en français « gamme » est un peu bizarre, mais passons.

Pour un moniteur, la gamme en question est, dans l'espace à trois
dimensions (couleur + luminosité, paramétré de façon linéaire, par
exemple par CIEXYZ), un parallélépipède (pas du tout rectangle), dont
le sommet le plus sombre, si vous avez réglé le bouton de luminosité
(offset) de votre moniteur comme il faut, est précisément le point
noir.  Je n'affirme pas du tout, bien sûr, qu'il soit paramétré
linéairement - au contraire, chacune des trois composantes du
parallélépipède est soumise à un exposant gamma (voir mon message
précédent), mais ces exposants sont indépendants, et, dans un espace
linéaire de luminosité, les trois phosphores n'interagissent pas, ils
s'ajoutent bien normalement.  Pour savoir ce qu'on peut réaliser pour
une luminosité donnée, on coupe ce parallélépipède par un plan
Y=constante (rappelons que Y est la luminosité dans le système CIEXYZ)
et on projette, par une projection de centre le point noir, sur le
plan (x,y) de chromaticité (avec x=X/(X+Y+Z), y=Y/(X+Y+Z) et
z=Z/(X+Y+Z)).  Pour les faibles luminosité, on obtient (si le bouton
d'offset est bien réglé, je le répète !) un triangle dont les sommets
sont les couleurs des trois phosophores.  En revanche, si on regarde
des luminosités plus élevées, ce triangle se tronque par le côté
pourpre, se réduisant à un quadrilatère dont un sommet est le sommet
vert (il est le dernier à disparaître), puis un quadrilatère de plus
en plus petit, et de nouveau un triangle, avant de se rétrécir sur le
point blanc.  Les images ~madore/misc/xydiagram-dark.png et
~madore/misc/xydiagram-light.png montrent ce phénomène : sur la
première on a un triangle presque complet (il est censé être de
luminosité constante, si votre écran est bien réglé - et que vos yeux
perçoivent bien la luminosité comme ils sont censés le faire d'après
la CIE ;-) - il ne manque qu'un petit coin dans le bleu ; sur la
seconde image, on voit qu'il ne reste plus grand-chose de ce triangle
quand on passe à une luminosité dix fois plus élevée.

Notez que la gamme d'un moniteur ne dépend pas du tout, en aucune
luminosité, du gamma (argh ! non seulement le mot « gamme » est peu
agréable, mais en plus il est confusogène avec « gamma » - je ferais
vraiment mieux d'utiliser l'anglicisme « gamut ») des trois
phosophores : celui-ci n'affecte que la façon dont la gamme est
parcourue (et donc la couleur effectivement réalisée pour un certain
signal d'entrée - mais pas l'ensemble des couleurs _réalisables_).
Pour spécifier les caractéristiques (la gamme) du moniteur, il faut
donner les coordonnées des sommets du parallélipipède que j'ai
évoqué : en supposant que le noir est bien réglé sur du vrai noir, il
suffit de donner les coordonnées CIEXYZ des sommets rouge, vert et
bleu.  Seulement, donner l'intensité n'a pas vraiment de sens parce
que ça dépend hautement des réglages (notamment le gain, ou bouton
« contraste »).  Donc plutôt que donner le XYZ du rouge, vert et bleu,
on donne simplement leurs valeurs x, y, z réduites (rappel :
x=X/(X+Y+Z), y=Y/(X+Y+Z) et z=Z/(X+Y+Z)).  Seulement, là, ça ne suffit
plus à déterminer le parallélogramme entier : il faut rajouter les
valeurs x, y et z du sommet extrême, mélange égal des phosophores
rouge, vert et bleu au maximum de leur intensité, qui est censé être
calibré sur du blanc.  Évidemment, la coordonnée z, on peut s'en
passer, donc finalement on donne, pour spécifier la gamme d'un
moniteur, les valeurs (x,y) de chacun de ses trois phosphores, et de
son blanc de référence.  Un peu d'algèbre linéaire devrait vous
persuader que ceci suffit à déterminer la chromaticité, ainsi que la
luminosité relative au blanc maximum, de chacune des couleurs
réalisable par le moniteur : i.e. le parallélogramme précis.
Évidemment, une telle détermination n'est pas obligatoirement associée
à un moniteur : on appellera plus généralement système RGB la donnée
de quatre points (x,y) dans l'espace des chromaticités, un pour
chacune des « trois couleurs primaires » et un pour le blanc.  Si on
rajoute à ça la donnée d'un gamma, on a une correspondance précise
entre couleurs RGB et chromaticités photométriques CIE.  C'est par
exemple une telle correspondance que donne la norme du standard sRGB
(<URL: http://www.w3.org/Graphics/Color/sRGB >) : on y apprend que le
moniteur de référence sRGB a un phosphore rouge dont la chromaticité
est (0.64,0.33), un phosphore vert dont la couleur est (0.30,0.60), un
bleu dont la couleur est (0.15,0.06) et un blanc (0.3127,0.3290) (soit
la couleur de l'illuminant CIE D65 dont j'ai déjà parlé) ; de plus,
sur chacune des coordonnées rouge, vert et bleu, le moniteur applique
un gamma moyen de 2.2 (en fait, c'est un peu plus compliqué que ça,
voir la norme en question).

Ce standard sRGB, même s'il a été critiqué (comme une décision non
concertée de Microsoft et Hewlett-Packard) parce qu'il a une gamme
très limitée, est néanmoins très important, car il est une norme dans
beaucoup d'aspects du graphisme informatique, car il correspond assez
précisément à ce que réalisent les écrans de PC (les Macs, comme je
l'ai expliqué, appliquent une correction gamma de 1.4 avant d'envoyer
à l'écran, dont il faudra tenir compte si on veut afficher des images
codées en sRGB - en fait le standard Mac pour la chromaticité des
moniteurs n'est pas non plus tout à fait identique à sRGB, mais il en
est très proche).  Les diagrammes par lesquels j'ai déjà illustré mon
propos (1) décrivent la gamme de l'espace sRGB, et (2) utilisent les
couleurs effectivement tirées de cet espace.  Donc, si votre moniteur
a le bon facteur gamma (utilisez le graphique de test que j'ai donné :
~madore/misc/gammatest.png - et réglez le bouton de luminosité ou la
correction gamma par votre carte graphique pour qu'au final le facteur
gamma du système soit 2.2), les couleurs affichées ne devraient pas
être loin d'être les bonnes à l'emplacement affirmé.  D'autre part, si
vous avez un moniteur calibré et que l'outil que vous utilisez pour
regarder ces images est suffisamment conforme, il lira dans le PNG que
l'espace RGB utilisé est sRGB, et il corrigera la chromaticité du
moniteur et son gamma interne - enfin, on peut toujours rêver.  En
effet, il y a dans la norme PNG des tags (gAMA et cHRM) qui permettent
de spécifier la correction gamma à appliquer aux images (si on voulait
les rendre linéaires) et la chromaticité du moniteur cible (donnée,
comme je l'ai expliqué plus haut, par les coordonnées des trois
phosophores et du point blanc) ; de toute façon, il y a un tag spécial
(à utiliser en plus des deux autres) pour spécifier qu'on utilise
l'espace sRGB et que l'image est calibrée.  Mais, comme je l'ai
insinué, je doute fortement que beaucoup d'applications en tiennent
compte (encore que sur Mac, avec un profil ColorSync, il y a tout ce
qu'il faut pour le faire, il faudra que je vérifie sur celui de ma
mère).

Voici d'autres images : ~madore/misc/huediagram-???.png - où ??? est
une longueur d'onde en nanomètres (j'ai fait 420, 464, 520, 549, 570
et 611).  Cela représente, pour chacune des teintes en question
(désignées par la longueur d'onde), l'ensemble des couleurs
(saturation et luminosité variant) que le standard sRGB permet
d'obtenir dans cette teinte et dans la teinte complémentaire (pas
forcément toutes, là).  En principe, le bord gauche de l'image
correspond à la saturation maximale : rayonnement monochromatique de
la longueur d'onde précisée.  La luminosité correspond à la coordonnée
verticale (avec tout en haut la luminosité du blanc de référence de
l'écran).  La saturation décroît de gauche à droite : le trait
vertical au milieu de l'image correspond à la couleur blanche (enfin,
achromatique : la bande des gris), et la moitié droite a la longueur
d'onde complémentaire.  La saturation est mesurée comme rapport de
l'intensité monochromatique sur l'intensité totale et se prolonge
linéairement à droite (par ailleurs, pour éviter les artefacts trop
énormes dus aux problèmes de la fonction Y dans les faibles longueurs
d'onde, j'ai utilisé la fonction corrigée).  Les coupures sur les
bords gauche et droit correspondent à des limitations de l'écran en
saturation : impossible d'aller jusqu'au rayonnement monochromatique
pur (tout à gauche).  Les coupures (courbes) au sommet correspondent
aux limitations en intensité : seul le blanc monte à l'intensité
maximale.  Sur un affichage idéal, il n'y aurait de limitation ni à
gauche (on irait jusqu'aux couleurs pures, complètement saturées), ni
en haut (on pourrait monter arbitrairement haut en luminosité) ; en
revanche, il est normal qu'il puisse y avoir une coupure à droite
(même si sur un affichage idéal elle serait plus loin à droite qu'elle
ne l'est sur sRGB) : car rien ne dit que la saturation va aussi loin
sur la teinte complémentaire que sur la teinte de départ (regardez le
diagramme (x,y) : il n'est pas symétrique par rapport au blanc !).  Je
trouve que ce qui est surtout frappant, c'est la différence entre le
diagramme 520nm et le diagramme 549nm (à regarder ensemble) : on voit
bien, en extrapolant sur le 520 comme ce l'est sur le 549, à quel
point le moniteur est limité dans le vert turquoise.

(Si vous vous demandez pourquoi ces images sont aussi grosses, c'est
qu'elles sont en 48bpp : c'est important pour éviter que, si des
programmes appliquent une correction gamma dessus, ils perdent en
précision à la suite d'une double quantification.)

D'autre part, rien ne dit qu'un espace de couleur, tel que sRGB, doive
correspondre à la gamme des couleurs effectivement affichables ou
imprimables sur un périphérique donné : on peut tout à fait concevoir
des espaces abstraits de couleur dans lesquels seront stockées ou
échangées des images (et qui soient plus commodes que l'espace (x,y)
de chromaticités CIE, ou ses espaces dérivés L*a*b, L*u*v et autres
horreurs dont je vous passe la définition) - j'ai par exemple
mentionné le (très large) espace ROMM utilisé par Kodak dans sa chaîne
de traitement des photos numériques ; de même, un appareil photo
numérique, ou un scanner, peuvent utiliser des espaces spécifiques qui
correspondent au mieux à ce qu'ils sont susceptibles de mesurer ; si
on a une banque d'image qu'il est important de conserver avec une
certaine précision, on cherchera typiquement à trouver un espace de
couleurs à grande gamme pour plonger toutes ces images dans un même
format.  Vers le milieu des années '90, il a été créé (largement à
l'instigation d'Apple, qui a inventé la technologie ColorSync®)
l'International Color Consortium (ICC, voir leur site web <URL:
http://www.color.org/ >) : celui-ci a défini un système de gestion de
« profils », qui sont des descriptifs des capacités et de la gamme
d'un périphérique donné (moniteur, imprimante, scanner, appareil
photo, caméra...), à commencer par son facteur gamma et la
chromaticité des primaires ; de plus, l'ICC a imaginé un espace
« PCS » (Profile Connection Space) censé servir d'intermédiaire entre
les espaces de couleurs des différents périphériques.  (Note : le PCS
utilise l'illuminant D50 et non D65 comme blanc de référence - c'est
sans doute parce qu'il est avant tout centré sur la reproduction
graphique et non sur l'affichage sur moniteur.)  Certains formats
d'image (TIFF, JPEG, PNG) permettent de stocker un profil ICC du
périphérique qui a produit l'image, de celui auquel elle est destinée,
ou de l'espace de couleur abstrait dans lequel elle est réalisée :
ceci devrait donc permettre une parfaite gestion des couleurs le long
de toute la chaîne de traitement, en mettant bout à bout les
différents profils.  Des programmes comme Adobe PhotoShop® (et on nous
promet la même chose pour la version 2 de Gimp) permettent la gestion
correcte des espaces de couleur et des profils ICC.

Évidemment, il ne suffit pas de connaître, par exemple, l'espace de
couleur d'un scanner et la gamme de l'imprimante pour pouvoir faire
une bonne reproduction couleur : il faut encore prendre des décisions
lorsque des couleurs hors gamme existent.  L'ICC définit pour cela
quatre « intentions » selon ce qu'on souhaite préserver de l'image :
perceptuelle, colorimétrique relative, saturation ou colorimétrique
absolue.  L'intention « perceptuelle » signifie qu'on souhaite autant
que possible préserver le rapport entre les couleurs, quitte à perdre
en saturation sur l'ensemble (y compris sur celles qui sont dans la
gamme d'arrivée, pour préserver leur rapport à celles qui sont hors de
la gamme d'arrivée) : cette intention est typiquement appliquée pour
des photographies.  L'intention « saturation » signifie qu'on souhaite
au contraire garder le plus possible de saturation, quitte à sacrifier
sur la teinte précise : cette intention est typiquement appliquée pour
des graphiques et diagrammes.  Les intentions « colorimétriques »
signifient qu'on souhaite préserver les couleurs dans la gamme et que
les couleurs hors de gamme deviendront ce qu'elles pourront - la
différence est que dans l'intention « colorimétrique relative », on
fait une adaptation du point blanc qu'on ne fait pas dans l'intention
« colorimétrique absolue ».  (Par exemple, les fichiers PNG que j'ai
produits précisent l'intention « colorimétrique absolue ».  Ils ne
contiennent pas de profil ICC - même s'il est possible d'en mettre un
dans un fichier PNG - mais il y a un tag spécial dans PNG pour
spécifier l'intention lorsqu'on utilise l'espace sRGB.)

Bon, je crois qu'à ce stade j'en ai vraiment assez dit.  Si vous
voulez savoir mes références, à part plein de recherches sur le web,
il y a un bouquin à (ahem) 140EUR sur la colorimétrie que je me suis
payé chez Eyrolles.  Les données CIE (spectres des illuminants A et
D65, sensibilités de l'observateur colorimétrique de référence) sont
disponibles sur <URL: http://www.cis.rit.edu/mcsl/online/cie.shtml > -
c'est ça que j'ai utilisé pour produire mes diagrammes, calculer
l'efficacité d'éclairement d'un corps noir à diverses températures,
etc.  Les spécifications ICC sont sur <URL:
http://www.color.org/icc_specs2.html >.  Pour les gens qui ont le même
appareil photo que moi (Minolta DiMAGE .*), il y a un plugin Gimp qui
fait la conversion d'espaces de couleurs de l'espace particulier de
cet appareil (documenté par un profil ICC livré quelque part dans les
CD fournis) vers l'espace sRGB, il est disponible sur <URL:
http://dimage-color.sourceforge.net/documentation.html >.  Il y a une
petite bibliothèque (libre, sous LGPL) qui permet de faire du
traitement des couleurs et de la connexion de profils ICC, <URL:
http://www.littlecms.com/ > ; notez que c'est une bibliothèque, pas un
programme final utilisable (il y a une démo, mais elle elle n'est pas
libre et ne tourne que sous Windows).  Bien sûr, si des gens veulent
les programmes que j'ai utilisés pour produire mes images, je peux les
fournir (sans aucune explication cependant) - mais dépêchez-vous de
demander parce qu'il y en a un qui est dans /tmp et qui ne va pas y
survivre très longtemps. :-) Un petit site très rigolo où on trouve
joliment illustrées plein de choses que j'ai dites, c'est <URL:
http://casa.colorado.edu/~ajsh/colour/ >.  Un site très complet sur la
vision de la couleur est <URL: http://cvrl.ioo.ucl.ac.uk/ >, avec des
vraies données numériques utilisables (notamment les fonctions de
sensibilité des cônes).

Allez, j'en ai assez de ce post.  Il y a encore des erreurs et
omissions, mais ça fait deux jours que je suis dessus, alors ça
suffit : si vous voulez en savoir plus sur la couleur, apprenez par
vous-même et expliquez à votre tour.

