Il me vient une idée permettant à coup sur de déterminer si Photoshop prend correctement en compte la courbe tonale L* à l'affichage : créer un leurre, un profil écran incluant pour chaque canal RVB :
- les valeurs gamma 1.0, 1.0, 1.0
- trois courbes LUT L*
Si Photoshop sait lire les courbes LUT du profil, il affichera correctement l'image. Sinon il affichera une image complétement délavée croyant que l'écran est en gamma 1.0. Valeur qu'il aura été chercher dans la matrice de base du profil au lieu de lire les courbes LUT.
Faire cet essai en générant un profil V2 et un V4, les deux formats prenant en charge les LUT (le V4 permet aussi de prendre en charge une description de courbe tonale par équation paramétrique).
Evidement il faudra bricoler à la main dans le profil car je doute qu'il soit possible de générer un tel profil avec une application de gestion de profil. Cela dit modifier les trois valeurs de gamma doit être simple avec un éditeur hexa, si tant est qu'il ne faille pas recréer une clé de hachage pour le fichier. Ce qui ne semble pas être le cas après vérification rapide dans le standard icc v4.
En regardant dans la spécification icc V4 en page 27, je m'aperçois comme je le pensais qu'un profil peut contenir optionnellement un tag gamutTag lorsqu'il contient déjà des courbes LUT pour décrire les courbes tonales.
http://www.color.org/specification/ICC1v43_2010-12.pdfJe m'aperçois également de cela :
In addition to the tags listed in 8.2 an N-component LUT-based Input profile shall contain the following tags:
⎯ AToB0Tag (see 9.2.1);
⎯ BToA0Tag (see 9.2.6).
Le profil devrait donc contenir en plus du gamma et des courbes LUT non seulement une table de transformation couleur de A vers B en rendu perception, mais aussi de B vers A dont je ne vois pas trop l'utilité pour un profil écran. Elle doit être là parce qu'un profil écran peut être utilisé pour autre chose qu'un écran puisque c'est un profil RGB standard.
Si l'application prend en charge uniquement cette table de transformation pour corriger la luminance de l'affichage, et si cette table ne contient pas assez de patchs dans les bas niveaux, ce qui me semble être le cas dans les réglages standards des logiciels de calibration écran où l'on a généralement environ 50 patchs, alors on peut raisonnablement penser que le rendu ne sera très précis en terme de luminance. Cela pourrait expliquer ces différences de rendu en luminance entre L* et gamma 2.2.
Pour vérifier cette hypothèse, il suffirait de générer un profil écran avec 30 ou 40 patchs en niveaux de gris en plus des patchs couleurs, pour être sur que la correspondance par rapport à la courbe tonale théorique serait bien respectée. Dans le cas d'une application qui ne s'aiderait pas des courbes LUT pour établir une correspondance exacte en terme de luminance, mais se baserait uniquement sur la table de correspondance couleur AToB0Tag.
Ces tables de correspondance couleurs peuvent d'ailleurs être codées au choix en 8 ou 16 bits, ce qui peut influer sur la précision du résultat final, mais il me semble que tout est passé en 16 bits dans les logiciels de génération de profil depuis longtemps. Egalement les différences qu'on voit sur l'exemple de Christophe, facilement visibles, sont certainement supérieures aux différences qu'on pourrait avoir en passant de tables LUT 8 bits à des tables 16 bits. Il faudrait vérifier dans les profils générés mais je suis presque sur que toutes les LUT sont aujourd'hui en 16 bits.