RFC: 2083
Statut : Proposition
Retour à l'index des normes : INDEX FRANCAIS

PORTABLE NETWORKS GRAPHIC 1.0

SPECIFICATION



Crédits : Thomas Boutell / Boutell Com Inc
Traduction : V.G. FREMAUX

Précédent - Implémentation du CRC - Retour au sommaire

AP2. Appendice : Introduction aux couleurs

(Cet appendice ne fait pas partie de la spécification PNG).

A propos de chromatisme (ou chromie)

Le bloc cHRM est utilisé en combinaison avec le bloc gAMA pour donner une information précise des couleurs à utiliser dans le rendu d'une image PNG, que ce soit ) l'écran ou à l'impression. Les chapitres précédents ont traité de la façon dont ces informations sont codées dans une image PNG. Ce chapitre résume brièvement la théorie colorimétrique sous-jacente pour ceux qui n'en auraient aucune notion.

Notez qu'une erreur de gamma produit un décalage chromatique nettement supérieur qu'une erreur d'interprétation des données de chromie. C'est pourquoi nous vous demandons de bien vérifier votre chaîne gamma avant de commencer à parler de chromie.

Le problème

La couleur d'un objet dépend non seulement du spectre lumineux émis ou réfléchi par ce dernier, mais aussi de l'observateur --- son espèce, ce qu'il peut voir au même moment, et même ce qu'il vient de voir juste avant! De plus, deux spectres totalement différents peuvent produire la même impression de couleur. La perception de couleur n'est pas une propriété objective d'objets du monde réel; elle est sensation biologique subjective. Cependant, en formulant quelques hypothèses simplificatrices (comme par exemple: nous ne considérons que la vision humaine; qui plus est non daltonienne !), il est possible de définir un modèle mathématique de la couleur d'une précision suffisante pour notre propos.

Couleur dépendante du matériel

Affichez la même combinaison RVB sur trois moniteurs différents placés côte à côte, et vous vous rendrez tout de suite compte d'une différence de teinte entre ces trois écrans. Ceci est dû au fait que chaque moniteur émet une teinte et une intensité légèrement distincte de rouge, vert, et bleu. RVB est un exemple de modèle colorimétrique dépendant du matériel --- la couleur finale dépend en effet du moniteur utilisé. Ceci veut donc dire qu'une couleur --- représentée par, disons, une combinaison RVB 87, 146, 116 sur un certain écran --- devra être codée 98, 123, 104 sur un autre écran pour produire la même couleur.

Couleur indépendante du matériel

Une description physique d'une couleur devrait se baser sur une définition exacte de la composition spectrale de la source. Fort heureusement, notre oeil et notre cerveau ne sont pas suffisamment sensibles aux variations légères de spectre. Un modèle mathématique, indépendant du matériel utilisé existe, et décrit avec suffisamment de précision la perception de couleur telle que vu par nos yeux d'humains. Un des plus importants modèles colorimétriques, duquel tous les autres seront plus ou moins dérivés, a été développé par le International Lighting Committee (CIE, en Français) et est appelé XYZ.

Dans le modèle XYZ, X est l'intégrale d'une fonction de distribution de puissance lumineuse pondérée sur l'ensemble du spectre visible. De même pour Y et Z, mais avec d'autre poids de pondération. De ce fait, toute distribution arbitraire de puissance lumineuse est réduite à seulement trois réels. Les pondérations ont été établies sur la base de nombreuses expériences réalisées sur des sujets humains dans les années 1920. Le modèle CIE XYZ est devenu un standard international depuis 1931, et dispose d'un grand nombre de propriétés intéressantes:

Le modèle de couleur XYZ a été utilisé depuis de nombreuses années par tous les professionnels qui avaient besoin d'un contrôle très précis de la couleur - directeurs dela photo de films et TV, fabriquants de peintures et de filtres colorés, etc. Il est donc éprouvé par une longue utilisation industrielle. Les notions de précision, d'indépendance vis à vis du matériel ont commencé à se répandre dans des milieux moins "spécialisés" depuis les années 1980 et 1990, et le format PNG a pris en compte cette tendance.

Couleurs dépendantes du matériel et calibrage

Traditionnellement, les formats d'image numérique se sont appuyés sur des modèles de couleurs non calibrés et dépendant du matériel utilisé. Si l'on dispose de suffisamment d'information sur le système de restitution original, il devient alors possible de convertir cet espace colorimétrique dépendant du matériel dans un autre totalement indépendant du contexte. En faisant les simplifications suffisantes, par exemple en ne prenant que le cas des moniteurs (bien plus faciles à traiter que celui des imprimantes), tout ce que nous avons besoin de connaître est les différentes coordonnées XYZ de chaque couleur primaire de l'écran, ainsi que le CRT_gamma.

Alors pourquoi le format PNG n'enregistre pas les images directement au format XYZ ? Il y a deux raisons à cela. Tout d'abord, l'enregistrement en coordonnées XYZ nécessite plus de bits pour la même précision, ce qui aurait tendance à "enfler" les fichiers. Deuxièmement, tous les programmes seraient alors obligés de convertir les images avant de pouvoir les visualiser sur un écran. Calibrées ou non, toutes les variantes du modèle RVB sont suffisamment proches l'une par rapport à l'autre pour que des programmes de visualisation bas de gamme puissent se permettre de ne pas faire de correction chromatique avant l'affichage. En enregistrant du RVB calibré, le format PNG reste compatible avec tous les programmes existants acceptant des données RVB, et transporte en plus suffisamment d'informations pour effectuer une conversion XYZ à destination d'applications qui nécessitent un modèle colorimétrique plus précis. Nous gardons donc les avantages de chaque système.

Qu'est-ce que le chrominance et la luminance ?

La chrominance est une mesure objective de la couleur d'un objet, hormis toute considération de luminosité. La chrominance s'appuie sur deux paramètres x et y, et qui peuvent être calculés à partir des coordonnées XYZ:

x = X / (X + Y + Z)
y = Y / (X + Y + Z)

Des couleurs XYZ de même chrominance apparaîtront comme ayant la même "teinte" mais peuvent varier en luminosité. Notez que les coordonnées x et y sont sans dimension, et garderont la même valeur quelles que soient les dimensions de X,Y et Z.

La coordonnée Y du modèle XYZ est directement proportionnelle à la luminosité absolue et est appelée luminance de la couleur. Une couleur peut donc être décrite sous forme de coordonnées XYZ ou par une chrominance x,y associée à une luminance Y. Le modèle XYZ présente l'avantage d'être lié à l'espace RVB par une transformée linéaire.

Comment sont décrites les couleurs d'un moniteur ?

Le "point blanc" d'un moniteur est la chrominance x,y du blanc nominal du moniteur (rougr = vert = bleu = maximum).

Il est d'usage de spécifier un moniteur en donnant la chrominance de chacun de ses photophores R, V, et B, plus celui du point blanc. Le point blanc permet de déduire la luminosité relative des trois photophores, qui n'est pas déterminée par leur seule chrominance.

Notez que la luminosité absolue d'un moniteur n'est pas spécifiée. En infographie, il est peu courant de se référer à des valeurs absolues de luminosité. Au lieu de manipuler des coordonnées XYZ absolues (par lesquelles X, Y et Z seraient exprimées en unités physiques de puissance émise, par exemple des candelas par mètre carré), il sera plus pratique de considérer des "XYZ" relatifs, calibrées sur la luminance nominale du point blanc du moniteur (Y = 1,0). Avec cette simplification, il devient simple de calculer les coordonnées XYZ de chaque couleur primaire rouge, verte et bleue du moniteur à partir des valeurs de chrominance.

Pourquoi le bloc cHRM utilise le couple x,y plutôt que les coordonnées XYZ ?

Tout simplement parce que ce sont les valeurs qui sont données par les constructeurs dans leurs spécifications ! Ainsi, la première opération que fera un programme sera de convertir les informations de chrominance du bloc cHRM pour obtenir un espace XYZ relatif.

Que vais-je en faire ?

Si un fichier PNG dispose des blocs gAMA et cHRM, les valeurs RVB_source peuvent être converties dans l'espace XYZ. Ceci permet :

Comment convertir du RVB_source en XYZ ?

Faisons tout d'abord quelques suppositions. Supposons d'abord que le moniteur est parfaitement noir en absence d'excitation. Supposons ensuite que les canons à électrons n'interfèrent pas. En connaissant les valeurs CIE XYZ pour chacune des trois couleurs primaires rouge, vert et bleu du moniteur, placez les dans une matrice m:


     Xr Xg Xb
m =  Yr Yg Yb
     Zr Zg Zb

Nous supposerons de plus que nous travaillons avec des échantillons RVB à virgule flottante codés par rapport à une échelle normalisée sur un intervalle 0..1. Si le gamma est différent de 1,0, on convertira les échantillons. On peut à ce moment obtenir les coordonnées XYZ par multiplication de matrice:


X     R
Y = m G
Z     B

En d'autres termes, X = Xr*R + Xg*G + Xb*B, de même pour Y et Z. L'opération inverse est bien sûr valide :


R       X
G = m-1 Y
B       Z

Qu'est-ce qu'un gamut ?

Le gamut d'un matériel est le sous ensemble de couleurs visibles que l'appareil peut reproduire. (aucun rapport avec le gamma). Le gamut d'un appareil RVB peut être visualisé sous forme d'un polyèdre dans l'espace XYZ; Les arrêtes correspondent aux niveaux noir, bleu, rouge, vert, magenta, cyans, jaune et blanc du moniteur.

Des appareils différents ont des gamuts différents, en d'autres termes, tel appareil sera capable de reproduire tel ensemble de couleurs (en général plus saturées) alors qu'un tel ne le pourra pas. Le gamut d'un appareil RVB particulier peut être déterminé à partir de ses caractéristiques chromatiques R, V, et B ainsi que du point blanc (les valeurs données dans le bloc cHRM). Le gamut d'une imprimante couleur est plus compliqué et ne peut être souvent que mesuré. Ce que l'on peut dire, c'est que les gamut d'imprimantes sont toujours plus réduits que celui d'un écran, et ce qui explique que de nombreuses couleurs affichables à l'écran ne sont pas imprimables.

La restitution d'une image créée sur un matériel, sur un autre matériel se heurte souvent à une différence de gamuts - des couleurs ne pouvant être correctement représentées sur le matériel destinataire. Le procédé qui permet de faire coïncider les couleurs, et qui va d'un simple écrêtage jusqu'à des transformées non linéaires élaborées, est appelé "gamut mapping" ou conversion de gamut. L'objectif est de pouvoir offrir une restitution raisonnablement proche de l'image originale.

Autres lectures

Les références bibliographiques [COLOR-1] jusqu'à [COLOR-5] donnent des détails supplémentaires sur la théorie des couleurs.


Précédent - Implémentation du CRC - Retour au sommaire