Affichage 10 bits - précision en luminance : 16 bits L* vers écran gamma 2.2

Démarré par olivier1010, Septembre 28, 2015, 02:16:30

« précédent - suivant »

tenmangu81

Citation de: olivier1010 le Octobre 14, 2015, 01:03:20

Voici une comparaison des pentes dans les bas niveaux pour les courbes tonales Gamma 2.2, sRGB, L* et DICOM à 120 cd/m².
On remarque la pente qui tend vers des valeurs très forte autour de zéro pour gamma 2.2. C'est la source certainement des accidents qu'on peut voir sur la courbe d'erreur de luminance Delta L*, avec certains CMS, pour cette cible de calibration.

Toutes les autres courbes tonales disposent d'une pente raisonnable autour de zéro.

Ca me semble normal, non ? Les courbes en gamma (dont la 2.2) sont basées sur une fonction analytique en exposant. Donc la pente tend vers l'infini lorsqu'on va vers zéro. Les autres sont linéaires au voisinage de zéro (pour DICOM, je ne sais pas trop, mais pour L* et sRGB, oui).

Edit : oups, pas vu que sur l'autre fil tu faisais le même commentaire  ;)

olivier1010

Citation de: tenmangu81 le Octobre 14, 2015, 11:19:32
Ca me semble normal, non ? Les courbes en gamma (dont la 2.2) sont basées sur une fonction analytique en exposant. Donc la pente tend vers l'infini lorsqu'on va vers zéro. Les autres sont linéaires au voisinage de zéro (pour DICOM, je ne sais pas trop, mais pour L* et sRGB, oui).

Edit : oups, pas vu que sur l'autre fil tu faisais le même commentaire  ;)

Je voulais montrer également les chiffres de pente qu'on a pas l'habitude de voir sur un même tableau pour les principales courbes tonales.

Oui bien sur c'est normal mais néanmoins un peu gênant.

D'une part numériquement parlant, cela induit une réaction quelque peu chaotique des conversions de certains CMS autour du zéro, et d'autre part cela ne colle certainement pas avec la sensibilité perceptuelle de l'œil. Voir la courbe DICOM, qui comme L* et sRGB n'ont pas une pente si forte dans les bas niveaux.

Si on ajoute à cela l'influence d'un éclairage ambiant un peu trop fort qui viendrait polluer d'autant plus un gamma 2.2 qu'un sRGB, L* ou DICOM, on peut alors raisonnablement dire que gamma 2.2 n'est pas la meilleure solution, en terme de restitution des premiers niveaux de luminance.

Suite à ces tests j'ai d'ailleurs décidé de passer sur d'autres courbes tonales que gamma 2.2 pour mon écran photo, sRGB pour Lightroom, et peut être DICOM lorsque j'aurai un peu de temps pour faire des essais.

C'est surtout l'étude de DICOM qui m'a influencé, ses caractéristiques confirmant la validité des courbes sRGB et L* dans les bas niveaux de luminances.

Pour ceux qui n'ont pas accès aux courbes avancées comme L* et DICOM, il est certainement judicieux d'utiliser un étalonnage en courbe tonale sRGB qui possède le double avantage d'être à la fois facile à exploiter pour les moteurs CMS et proche de gamma 2.2. Ce qui est un avantage pour les applications non gérées par CMS (en existe t'il encore ?) et plus généralement pour la compatibilité. sRGB est un standard de fait, supporté sur la plupart des périphériques. C'est sans doute le choix qui réservera le moins de surprises pour les non experts tout en fournissant un pied de courbe proche de la sensibilité perceptuelle de l'œil, et donc moins de gaspillage des touts premiers niveaux numériques, qui sont quand même précieux sur une liaison 8 bits par couleur.

Voir la comparaison des pieds de courbe dans le fil :

http://www.chassimages.com/forum/index.php/topic,242717.0.html

Et aussi d'autres infos intéressantes que vous trouverez dans ce fil je pense pour mieux appréhender l'étalonnage écran.


olivier1010

Un outil très intéressant pour calculer la perte de précision lors des conversions entre courbes tonales en fonction de la profondeur de quantification en entrée et en sortie.

http://www.brucelindbloom.com/index.html?LevelsCalculator.html

(Si le tableau de calcul n'apparait pas, ajouter "http://www.brucelindbloom.com" dans la liste des sites autorisé, panneau de configuration, Java).
Par exemple, on peut trouver le nombre de bits nécessaire au niveau de la Lut du moniteur, pour convertir depuis L* (avec une entrée vidéo en 10 bits par canal) vers la luminance Y (situation lorsque le moniteur est étalonné hardware en L*) :

- Choisir L* pour l'entrée, 10 bits

- Choisir Y pour la sortie et augmenter le nombre de bits progressivement jusque le nombre de niveaux de sortie soit égal à 1024.
On trouve dans ce cas 14 bits, ce qui correspond à la profondeur de quantification des tables LUT sur des écrans graphiques haut de gamme.

Pour une entrée en 8 bits, on trouve une sortie en 12 bits pour conserver 256 niveaux, ce qui correspond à la profondeur des tables LUT sur des écrans graphiques un peu moins haut de gamme ou un peu plus anciens (lorsque le mode vidéo 10 bits par canal n'existait pas ou était encore très peu utilisé pour l'épreuvage écran).
Autre exemple, on veut calibrer un moniteur bureautique (gamma natif proche de sRGB, soit approximativement gamma 2.2) sur une courbe tonale L*. La liaison vidéo est donc en 8 bits tout comme la table LUT de la carte vidéo qui est utilisée pour opérer l'adaptation tonale puisque l'écran ne dispose pas de table interne pour une calibration hardware.
- Choisir L* pour l'entrée, 8 bits

- Choisir Gamma 2.2 pour la sortie, 8 bits

Le nombre de niveaux de sortie disponibles pour l'affichage est de 234. On a donc perdu 22 niveaux dans l'opération (dans le meilleur des cas si l'adaptation n'est pas trop difficile), d'où mon conseil livré dans un autre fil de ne pas utiliser L* avec un moniteur bureautique non calibré hardware.
Ce calculateur permet donc de trouver les profondeurs de quantification nécessaires pour éviter la perte de niveaux lors des conversions. Ce qui est un critère important vers l'obtention de la meilleure précision possible dans l'affichage des niveaux de luminance.

L'autre critère aussi important est le choix de la courbe tonale pour l'affichage écran, qui devra si possible s'approcher au mieux de la perception visuelle humaine afin d'exploiter correctement le nombre de niveaux de quantification physiquement disponibles sur la liaison vidéo.

Sachant que l'œil est capable de discerner environ 450 niveaux de luminance sur un écran (voir par exemple le standard DICOM ou tout cela est expliqué en détail), il apparait clairement qu'indépendamment du choix de la courbe tonale une liaison vidéo 8 bits n'est pas suffisante. Il faudra au moins 9 bits, en pratique 10 bits, le format 9 bits n'ayant jamais existé.

Ensuite, pour convertir ces 10 bits en entrée, vers une luminance sur la dalle suivant une courbe tonale "perceptuelle" comme L* ou DICOM, il faudra une LUT 14 bits dans le moniteur. Avec Gamma 2.2, dont la pente est très forte vers le zéro, il faudrait une LUT de plus de 16 bits.

Conclusion : pour obtenir la meilleure précision possible sur un affichage écran, mathématiquement et perceptuellement parlant il faut :

- une liaison vidéo 10 bits par canal

- une LUT 14 bits dans le moniteur pour la conversion vers les niveaux de luminance

- une courbe tonale "perceptuelle" chargée dans cette LUT. sRGB, L* ou DICOM sont préférables à une courbe gamma dont le tassement très important vers le zéro impliquerait une LUT de plus de 16 bits pour obtenir la même précision dans les faibles niveaux.
Enfin pour obtenir la meilleure précision d'affichage, au delà de l'étalonnage et des caractéristiques de l'écran, il est très important que l'éclairage de la pièce soit être adapté au niveau de luminance mini de l'écran. Voir mon fil sur la pollution par l'éclairage ambiant.
http://www.chassimages.com/forum/index.php/topic,242949.0.html