Forum général.hors-sujets De la gestion de couleurs

3
27
avr.
2023

Suite à la dépêche sur la nouvelle version de GIMP, je m'interroge un peu sur le sujet de la gestion de couleurs. D'après ce que je comprends de ce sujet un brin complexe, un profil de couleurs est un jeu de données relatif à un appareil de capture d'image (appareil photo, scanner) ou de production d'image (moniteur, projecteur et écran, imprimante).

Pour un appareil d'acquisition, ça doit décrire exactement ce qu'il renvoie comme données RVB quand on lui donne des couleurs coordonnées dans un espace standard (sRGB, Adobe ?). Par exemple, pour caricaturer : « lorsqu'on donne du rouge vermillon à mon scanner, il indiquent qu'il a vu du rouge carmin ». Du coup, filtrer les données avec un profil de couleur doit permettre de compenser et de les convertir en données représentant correctement la réalité dans un espace de couleur standard.

Pour un appareil de sortie, ça doit décrire ce que l'appareil produit comme couleurs, mesurées dans un espace standard (sRGB, Adobe ?), quand on lui donne des couleurs CMJN ou RVB données en entrée.

Et donc, si je comprends bien, tout ce bordel n'a l'air nécessaire que parce que les fabricants de matériels sont infoutus de fournir des appareils qui acquièrent ou affichent les couleurs de façon fidèle. Pour un scanner par exemple, j'imagine sans problème un appareil qui a été étalonné en usine pour que, quand on lui donne un papier couvert de sRGB(42, 12, 51), renvoie à l'erreur de mesure près des données où tous les points valent exactement ça. Pareil pour une imprimante, j'imagine bien une machine étalonnée d'avance pour que, quand on lui donne un aplat sRGB(42, 12, 51) (oui, du RGB, pas du CMJN, le fait d'utiliser quatre couleurs c'est son affaire, pas celle de l'utilisateur !), crache une feuille avec exactement ça dessus.

Je sais que c'est plus compliqué que ça, en particulier parce que les différents périphériques sont capables d'acquérir ou de sortir des couleurs dans des gamuts plus ou moins étendus, et qu'il y a donc un problème évident de saturation qui se pose aux limites de leurs capacités. Il y a différentes façons de gérer ça, mais de la même façon, ce genre de réglage aurait plutôt sa place dans des options de ces appareils, non ?

  • # Fonctions non bijectives

    Posté par  (site web personnel) . Évalué à 3.

    Il est vraisemblables que les transformations opérées ne soient pas injectives et ne puissent être inversées de manière exacte. Le fait que ce soit des fonctions diophantiennes n’aidera pas non plus. Non ?

    Sinon, et malgré de nombreuses explications lues çà et là sur la toile, je n’ai jamais totalement intégré toutes ces histoires de profils colorimétriques, calibration, etc.

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Fonctions non bijectives

      Posté par  (site web personnel, Mastodon) . Évalué à 7.

      Les transformations entre la plupart des modèles de couleur sont bien bijectives. De même que les transformations entre espaces de couleur (si on travaille en flottant). Il s'agit de bête calcul de matrice 3×3 dans un sens, et son inverse dans l'autre.

      Vous remarquerez d'ailleurs que tous ces modèles ont 3 axes, ce n'est pas un hasard. Les recherches ont simplement montré que l'on peut reproduire l'ensemble des couleurs avec 3 primaires. Le "jeu" est donc simplement de choisir des primaires/axes appropriées et c'est la raison principale pour laquelle il existe divers modèles et divers espaces.

      Il y eut ainsi le moment où on a essayé de faire des modèles plus proches de "comment l'humain perçoit les couleurs", ce qui a donné les HSV et HSL. Mais on s'est rendu compte que ces modèles n'étaient pas si bons mathématiquement (même s'ils restent utilisés et sont intéressants, notamment quelques outils colorimétriques dans GIMP se basent sur ces modèles, en terme d'UX).
      Les gens ont alors cherché à voir les couleurs en 2D, ce qui a donné le modèle xyY, qui permet le fameux diagramme en fer à cheval où on représente les espaces de couleurs, en ignorant l'axe Y. En effet dans ce modèle, on représente entièrement les teintes (c'est à dire la perception des couleurs telles qu'on les nomme) sur un plan avec les axes xy, et l'axe Y ne représente que la luminance sans impacter la perception de teinte. On peut ainsi s'imaginer les "variations" d'une même couleur où on ne change que la luminance sur l'axe perpendiculaire au papier/à l'écran. Ce modèle a d'ailleurs quelques propriétés intéressantes, comme le fait que tout mélange de 2 couleurs se trouve sur le segment entre les 2 points. C'est pourquoi on arrive à représenter tout espace de couleur comme un triangle sur le plan 2D xy.
      Mais ce type de modèle a aussi des problèmes, par exemple la non-uniformité perceptuelle (certaines couleurs très proches sur ce modèle ont l'air très différentes alors que sur d'autres zones, des couleurs éloignées ont l'air identiques). Les gens ont alors essayé de faire des modèles perceptuellement uniformes (ou presque), ce qui a donné les CIELAB et surtout CIELUV.

      Et ainsi de suite. Mais le fait est qu'hormis la création de modèle pour satisfaire des buts/usages particuliers, les couleurs sont entièrement et très aisément transformables d'un modèle à l'autre.

      La raison pour laquelle il pourra y avoir une très légère différence du résultat dans un A/R entre 2 modèles serait l'imprécision mathématique d'un processeur. Mais bon, si on ne fait qu'un A/R, la perte est probablement trop minime pour s'en préoccuper (ce serait moins le cas si on code ça sur 8-bit, ce pourquoi notamment il est conseillé de travailler en flottant de nos jours pour le travail graphique). Hormis ce point de limitation technique, si, mathématiquement les transformations sont théoriquement bijectives, sans perte, hormis si on décidait d'écrêter en dehors de [0; 1], c'est à dire hors du gamut d'un espace de couleur. Sauf que justement l'un des autres grands avantages du travail en flottant est qu'on évite d'écrêter lors d'étapes intermédiaires permettant réellement de travailler presque sans perte, et en plus très simplement (calcul de multiplication de matrice basique, niveau lycée).

      Ensuite quand je disais dans mon paragraphe d'intro que c'est vrai pour "la plupart des modèles de couleur", c'est parce que certains modèles sont basés sur des logiques physiques différentes. Je parle de CMYK. Un passage RGB🔄CMYK n'est effectivement pas bijectif (il n'est pas impossible de tomber sur des valeurs assez différentes lors d'un A/R entre les 2 modèles).
      Et sans compter les "couleurs" de type "couleurs métalliques" ou "couleurs fluorescentes", etc. Bien sûr, selon une théorie de couleur pure, on ne considérerait peut-être pas cela comme une couleur, mais un humain considérera bien un bleu et un bleu métal comme 2 couleurs différentes (même si ça pourrait être considéré exactement le même bleu selon d'autres critères). Et là même en CMYK, on ne les représente pas. En général, c'est là où on utilise les "spot colors" qui sont encore un autre modèle, en général sur une base de catalogues.

      Mais hormis ce type de transformation et autres exceptions particulières, les transformations entre la plupart des autres modèles sont bien bijectives et se font par de très simples opérations mathématiques. 😄

      Ces derniers mois, j'ai donné des conférences sur le traitement d'image et de manière générale sur les sciences des couleurs dans une école d'ingénieur des Mines (Saint Étienne) et dans un IUT (Valence). Bien sûr, dans le temps d'une conférence (2H, bien qu'aux Mines, on a aussi eu des ateliers, donc ce fut même un séminaire d'une journée complète avec conf + atelier sur le traitement d'image avec GEGL), ce n'est qu'un survol très rapide des nombreux concepts. Quiconque croit pouvoir comprendre la problématique de la couleur en informatique en quelques heures se méprend totalement. Cela fait des années que je travaille en plein dedans et je découvre encore des choses, il m'arrive encore de finalement comprendre des trucs (alors que je n'avais même pas réalisé que je n'avais pas compris avant!), etc. D'ailleurs puisque j'ai écrit ce commentaire presque de tête, il n'est pas impossible que quelques erreurs s'y soient glissées. Cela ne fait que démontrer d'autant plus la complexité du sujet (un "classique" quand je lis un texte sur la théorie de la couleur est de comprendre sur le coup et de me dire "ah bah oui", puis d'avoir complètement perdu la logique une semaine après, si je ne l'ai pas relu ou appliqué dans du code entretemps).

      Quand on regarde l'historique des logiciels de graphisme, on se rend d'ailleurs compte que l'ensemble de l'industrie a fait erreurs sur erreurs pendant des décennies sur le sujet de la couleur et essaie de les réparer progressivement (parfois en faisant de nouvelles erreurs ironiquement!).
      Je parle bien de gros noms de l'industrie qui ont multiplié des bourdes sur les dernières décennies (et encore très récemment; ce ne sont pas forcément toutes de vieilles histoires).
      Et en recherche c'est pareil, les chercheurs ont l'air de se tirer la bourre. Quand on discute avec certains ou qu'on lit certains textes de référence, il n'est pas rare que ça commence en gros par "tout le monde a tort, sauf moi!" Et nous, on navigue dedans.

      Donc oui, c'est pas facile. Quiconque est intéressé par une conf sur ce sujet dans une université/école/entreprise peut me contacter d'ailleurs. Maintenant que j'ai commencé à en faire quelques unes, je me dis que c'est un sujet intéressant à expliquer et discuter. Donc je suis partant.

      Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

      • [^] # Re: Fonctions non bijectives

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        atelier sur le traitement d'image avec GEGL

        Et on pourrait avoir un aperçu de cet atelier ?

        • [^] # Re: Fonctions non bijectives

          Posté par  (site web personnel, Mastodon) . Évalué à 8. Dernière modification le 09 mai 2023 à 23:11.

          C'était un atelier où:

          • J'explique comment fonctionnent les filtres, notamment en tant que parfois simples graphes d'operations GEGL. Il peut ainsi y avoir des opérations de base qui sont codés en C (mais mon atelier ne rentre pas là-dedans). À partir de là, on peut créer d'autres opérations en reliant des opérations existantes.
          • Le matin, après la conférence où j'ai surtout survolé énormément de sujets théoriques sur la couleur et le traitement d'image (l'idée étant de donner un aperçu du sujet et donner envie d'en savoir/comprendre plus; c'est pas comme si en 2H, on peut vraiment expliquer ce que beaucoup ne comprennent pas complètement après des années à travailler dessus!), on a eu un premier atelier où j'ai montré quelques usages d'effets, notamment en cumulant plusieurs effets. Que ce soit des trucs marrants comme juste "faire un sabre laser" à des trucs qui font plus sérieux comme implémenter de la détection de contours en faisant une simple différence de deux flous gaussiens. Ce qui existe déjà car c'est un usage classique; et l'effet s'appelle étonnamment (ou non! 😜) "difference of gaussians", sauf que dans le cadre de l'atelier, je le "réimplémente" très simplement en appliquant les étapes une par une. Dans GIMP, comme un utilisateur normal, parce que je pense que même pour un développeur, il est important de voir comment les utilisateurs travaillent réellement pour faire de bons choix (et ne pas voir que l'aspect "code"). Puis on a bougé vers l'outil de "graphe GEGL" où on peut créer des effets en créant des graphes avec une syntaxe textuelle. C'est un super outil pour tester des graphes d'effets très rapidement sans avoir à rentrer dans du code pur et dur dès le début.
          • L'après-midi, on a fait un peu de code en créant des plug-ins pour GIMP en Python 3 (j'ai fait exprès de choisir Python pour ne pas avoir à se farcir des problèmes de compilation; On veut pas transformer ça en cours sur le C ou les problèmes de build!). Ce n'était pas des plug-ins très complexes, ni forcément pour faire des choses extraordinaires, l'idée était de montrer une logique incrémentale de "comment on modifie une image". Sur un premier plug-in, on a simplement itéré sur chaque pixel du buffer d'un calque. Sur un second, je rajoute une difficulté en montrant que le premier plug-in "casse" si on a un canal alpha (opacité). Puis je passe progressivement à des transformations par graphes d'opérations, d'abord avec une, puis plusieurs, puis en utilisant non plus un seul mais plusieurs calques en entrée dans le graphe, etc. L'idée est de complexifier progressivement et de montrer que c'est finalement assez simple. Il faut juste piger la logique de ce traitement d'image par graphe, comme un flux d'opérations par lequel passe un (ou des) buffer(s) en entrée puis on récupère un buffer en sortie. Ça démystifie aussi beaucoup ce travail de traitement d'images (qui finalement est une des bases de l'informatique de nos jours, puisqu'on met des interfaces graphiques partout). On mêle à cela quelques pièges intéressants qui montrent que les concepts de modèles et d'espaces de couleur restent toujours en arrière plan de ce type de travail. Un exemple très simple est une simple "inversion" des couleurs. Faire le choix de travailler en linéaire ou non donnera un rendu complètement différent (il n'y a pas de "bon choix", ça dépend vraiment de ce qu'on veut).

          En gros, c'est ce genre de trucs. C'était la première fois que je donnais un tel séminaire et ça s'est très bien passé, donc je suis plutôt content de moi. Je pense que c'est une bonne introduction au monde du traitement d'image. Et ce, même si on fait le choix de continuer sans GIMP ni GEGL ensuite. Tout cela reste des concepts et des logiques de traitement d'image classiques que l'on retrouvera dans beaucoup d'autres logiciels/outils/bibliothèques graphiques. :-)

          Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

  • # Limites acceptables

    Posté par  . Évalué à 5. Dernière modification le 28 avril 2023 à 08:24.

    Mon message est plutôt théorique, sur les principes, avec probablement quelques erreurs ou approximations.

    Au départ il y a quelques approximations avec les couleurs que l'on a considéré comme supportables :

    • primo on peut restituer toutes les couleurs avec un triplet, c'est vrai mais il faut qu'une (je crois de mémoire) composante au moins ait à un momment des valeurs négatives. Donc l' espace couleur le plus courant sRGB s'inscrit dans le diagramme des couleurs sans pouvoir les représenter toutes, c'est un peu mieux avec le AdobeRGB. L'espace kodak Prophoto lui couvre bien plus de couleurs grâce à l'utilisation de couleurs irréelles.

    • deuxio si on utilise pas de profil, on reste en sRGB et on dit adieu aux couleurs qui ont été acquises par le scanner ou appareil photo, qui auraient pu être restituées par l'ecran ou l'imprimante mais qui ne rentrent pas dans le sRGB, il en reste quand même beaucoup, l'utilisation du AdobeRVB améliore un peu.

    Si on utilise un profil ou en ouvrant avec Gimp une image qui a un profil se pose le problème de la conversion, en perceptuel (par défaut) en cas de couleurs hors gamut, la conversion va décaler toutes les couleurs pour bien restituer les effets de nuances, en colorimétrie absolue les couleurs dans le gamut seront justes les couleurs hors gamut seront clippées faisant des aplats de couleur sur les zones saturées. Les deux modes de rendu ne sont pas reversibles. Il y a quatre modes de rendu tous ont leur défauts.

    Il ne faut pas exagérer ces problèmes, les couleurs hors gamut sont trés saturées, il y a des traitements de photos qui massacrent bien plus les couleurs. Mais c'est vrai que les imprimantes qui n'ont pas le même gamut pourraient imprimer mieux et pour ceux qui veulent s'approcher d'avantage de la justesse colorimétrique, il y a l'étalonnage avec un logiciel comme argyllcms pour l'appareil photo, le scanner, l'imprimante avec une mire colorimétrique.

    Argyll cms est un peu compliqué, pour les appareils de saisie photo/scanner j'avais utilisé plutôt le logiciel coca basé dessus qui devrait fonctionner avec wine :
    https://www.hugorodriguez.com/calibracion/coca_web/coca_page.html

    combiné avec une photo de test du même modèle d'appareil photo de la mire colorchecker (retaillé), et j'avais obtenu des résultats probants, les couleurs semblaient plus naturelles, et le profil est fait une fois pour toutes, je prennais une des options de profil la plus simple, je n'ai pas constaté d'améliorations significatives avec les profils de haute qualité.

    Mais je n'ai pas été plus loin que la curiosité, ni n'ai acheté de mire colorchecker pour calibrer mes appareils, ni n'ai continué avec la calibration du scanner ou de l'imprimante, il y a aussi des sondes pour calibrer les écrans, d'où le titre limites acceptables, c'est à chacun de les fixer, les fabricants en fixent une on peut aller plus loin ou corriger les dérives couleurs d'un appareil avec ces outils.

    • [^] # Re: Limites acceptables

      Posté par  . Évalué à 5.

      Un petit supplément sur les profils, lors de la création avec argyll cms ou le logiciel coca on a le choix entre les profils à matrice et les profils à table.

      Un profil à matrice c'est une matrice 3x3 (neuf chiffres) qui permet de calculer un coefficient pour chaque conversion. C'est celui qui est utilisé par le logiciel de développement d'images brutes dcraw. 3 valeur par canal et c'est tout.

      Un profil à table lut, va lui lister plus de valeurs par canal, c'est bien plus précis, même avec le réglage de qualité bas ou moyen.

      Si on a été jusque là dans l'étalonnage autant prendre le profil à table LUT, même appliqué sur la mire colorchecker il y a des différences observables logiquement le profil à table est plus juste.

      Pour ce qui est des imprimantes, sans mettre les mains dans le cambouis, le fabricant peut fournir le ou les profils, des fois il est avec le pilote un fichier .icc ou .icm (les deux extensions sont normalement interchangeables), certains utilisateurs en ont créé et les mettent à disposition sur le net, c'est aussi variable suivant le papier utilisé.

      Gimp a cette fonction de simuler l'impression si on a le profil d'imprimante pour visualiser les couleurs hors gamut de l'imprimante.

      Bref ce sujet est une mine de complexité si on l'aborde dans l'ensemble, j'espère ne pas avoir fait trop d'approximation.

  • # Un système imparfait ne peut pas avoir un rendu parfait

    Posté par  . Évalué à 4.

    Du coup, filtrer les données avec un profil de couleur doit permettre de compenser et de les convertir en données représentant correctement la réalité dans un espace de couleur standard.

    Justement, le rendu des couleurs ne peut pas être conforme à la réalité parce qu'il part dès le début du principe de représenter un mélange complexe de longueurs d'onde par une intensité relative de 3 ou 4 couleurs primaires. "Représenter correctement la réalité" n'a pas de sens; si tu prends en photo un objet marron, tu n'as pas de capteur de marron dans l'appareil photo; tu n'as pas de LED marron sur ton écran, et tu n'as pas d'encre marron dans ton imprimante; tout le processus repose donc sur le fait que nos yeux sont pourris et qu'ils ne savent pas distinguer une couleur d'un mélange de couleurs. L'objectif n'est donc pas d'être fidèle à la réalité, mais de jouer de manière suffisamment convaincante avec l'imperfection de notre système visuel pour nous donner l'impression que la couleur est proche de l'originale, ce qui n'est pas du tout le cas.

    D'ailleurs, nos yeux sont tous différents, et il semble peu probable d'arriver à un rendu qui soit convainquant pour tout le monde en même temps.

    (oui, du RGB, pas du CMJN, le fait d'utiliser quatre couleurs c'est son affaire, pas celle de l'utilisateur )

    Pas possible, l'overlap entre les yeux, le RGB, et le CMJN est seulement partiel.

    https://www.grapheine.com/cdn-cgi/image/width=2280,height=1410,fit=crop,quality=85,format=auto,onerror=redirect,metadata=none/wp-content/uploads/2021/09/gamut-rgb-cmyk-cmjn-rvb-1.jpg

    • [^] # Re: Un système imparfait ne peut pas avoir un rendu parfait

      Posté par  . Évalué à 2. Dernière modification le 28 avril 2023 à 17:50.

      Le graphique en fer à cheval est très bien, faut situer le point blanc, complètement désaturé au milieu et les valeurs les plus saturées (comportant le moins de blanc) en bordure.

      On voit bien que c'est sur l'axe bleu-vert qu'il y a le plus de dégats pour le sRGB et même si cela ne se voit pas trop une imprimante basique 3 couleurs + le noir n'étant pas une couleur, sera plus à l'aise pour imprimer du cyan, magenta ou jaune qui ne sera pas dans le srgb, c'est là qu'intervient le profil de l'imprimante qui va "traduire" les couleurs au risque de les fausser d'autant plus que l'espace de départ est petit. Même remarque pour les imprimantes déstinées à la photo qui ont beaucoup plus de cartouches couleurs et un gamut plus large.

      Ce graphique représente les couleurs visibles par longueur d'onde, il n'y a pas de marron qui est composé de rouge et de vert. Le marron peut être saturé et sortir du sRGB par une de ses composantes, idem pour les autres couleurs composées.

      Bref toutes ces explications en vue de comprendre pourquoi telle photo ou tel scan ne rend pas bien à l'écran ou s'imprime mal. Si le jeu en vaut la chandelle on peut améliorer les choses avec un profil le faire soi-même avec argyll ou quelquefois il y en a sur le net.

      • [^] # Re: Un système imparfait ne peut pas avoir un rendu parfait

        Posté par  . Évalué à 3.

        Ce graphique représente les couleurs visibles par longueur d'onde, il n'y a pas de marron qui est composé de rouge et de vert. Le marron peut être saturé et sortir du sRGB par une de ses composantes, idem pour les autres couleurs composées.

        Si je comprends bien le graphique (j'aurais peut-être dû mettre le lien vers celui de Wikipédia, qui est plus précis: https://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/PlanckianLocus.png/303px-PlanckianLocus.png ), les couleurs pures ne sont que sur la bordure supérieure du fer à cheval. Toutes les autres sont des mélanges entre plusieurs longueurs d'onde. Et on pourrait rajouter un axe de désaturation dans la profondeur, pour aller des couleurs complètement saturées jusqu'au noir.

        Du coup, pour résumer, l'objectif de la calibration est de faire en sorte que les écrans et les imprimantes coïncident sur le centre du graphe, là où ils ont la capacité de donner les mêmes couleurs. En dehors c'est de toutes manières impossible…

    • [^] # Re: Un système imparfait ne peut pas avoir un rendu parfait

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      "Représenter correctement la réalité" n'a pas de sens;

      En fait tout va dépendre de ce qu'en entend par « réalité » …et on cherche à capter et rendre fidèlement cette définition. Dit comme ça, je sais que c'est confus, mais c'est juste pour rappeler qu'il faut se méfier des mots « réalité » et « sens » posés sans sans avoir posé leurs définitions (allégorie de la caverne…) …bien que je sais qu'il est sous-entendu qu'on parle de la réalité visuelle de l'espèce humaine (la réalité des espèces canines ou des abeilles par exemple sont bien différentes.)

      tout le processus repose donc sur le fait que nos yeux sont pourris et qu'ils ne savent pas distinguer une couleur d'un mélange de couleurs.

      Dans ma vision des choses (déso pour le jeu de mots à propos), il n'existe pas vraiment de « couleur isolée » et on ne perçoit que des mélanges : les longueurs d'ondes qui nous parviennent ensemble. ;-) Marron est une convention sociale pour désigner une gamme de sensations (au sens de résultat de perception des ondes lumineuses.)

      Du coup,

      le rendu des couleurs ne peut pas être conforme à la réalité parce qu'il part dès le début du principe de représenter un mélange complexe de longueurs d'onde par une intensité relative de 3 ou 4 couleurs primaires.

      Ces visions virtuelles singent celles des primates avec leurs récepteurs côniques ;D Pourtant, il manque quelque chose…

      (oui, du RGB, pas du CMJN, le fait d'utiliser quatre couleurs c'est son affaire, pas celle de l'utilisateur )

      On ne prend pas en compte la perception de l'intensité par les récepteurs quasi cylindriques ; il faudrait plutôt utiliser du TSL/TSV car RVB n'est pas l'affaire de l'usager non plus (les professionnels de l'informatique ont souvent ce biais…)

      P.S. les dispositifs d'entrée trichent autant que les yeux …pour le plaisir des yeux, ce qui m'a rappelé l'article suivant
      https://zestedesavoir.com/articles/3218/votre-appareil-photo-vous-ment-mais-le-contraire-serait-bien-embetant/

      L'objectif n'est donc pas d'être fidèle à la réalité, mais de jouer de manière suffisamment convaincante avec l'imperfection de notre système visuel pour nous donner l'impression que la couleur est proche de l'originale, ce qui n'est pas du tout le cas.

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # Petite réponse

    Posté par  (site web personnel, Mastodon) . Évalué à 9.

    un profil de couleurs est un jeu de données relatif à un appareil de capture d'image (appareil photo, scanner) ou de production d'image (moniteur, projecteur et écran, imprimante).

    Oui. C'est surtout le choix de ton système de coordonnées en fait. En gros, le profile indique les primaires (l'axe et la valeur du 1.0), définit le point blanc et le point noir, et aussi la fonction de transformation entre une valeur de ton système et une luminance typiquement.

    Et donc, si je comprends bien, tout ce bordel n'a l'air nécessaire que parce que les fabricants de matériels sont infoutus de fournir des appareils qui acquièrent ou affichent les couleurs de façon fidèle.

    Tu peux le décrire ainsi. Mais si c'était si facile de produire des appareils qui affichent des couleurs exactement selon un modèle théorique, on l'aurait déjà fait. Je crois que c'est une vision trop classique de l'industrie où on s'imagine qu'on a un contrôle parfait du monde matériel. Ben la réalité est que non. On sait effectivement créer des petites diodes qui font de la lumière, mais on n'en est pas encore à parfaitement contrôler leur rendu. D'autant plus que selon le matériel utilisé, le fournisseur, les aléas du matériel, et j'en passe, 2 écrans du même modèle de 2 séries différentes seront différents. Que dis-je! 2 écrans de la même série de productions seront différents!

    Puis il y a ce qu'on appelle le vieillissement (oui le matériel vieillit aussi et donc change).

    Et la lumière ambiante! Ça va aussi impacter grandement ta perception de la couleur! Les gens qui font par exemple du "color grading" pour le cinéma vont travailler dans des salles sans fenêtres (sinon ils devraient refaire la calibration absolument tout le temps), avec des murs "gris milieu" (18% de luminance, puisque c'est à peu près — bien sûr il y a des désaccords mais ça reste en général autour de cette valeur — la valeur qu'on va considérer comme étant perceptuellement le gris le plus au milieu entre le blanc et le noir). Parfait pour la dépression! 😂 Tu peux chercher sur le web des trucs genre "color grading room at home"; de nos jours, on trouve plein de blogs et d'articles où on explique comment reproduire ça chez soi, pour les gens qui veulent vraiment un environnement "pro" chez soi pour le travail de la couleur… et là tu vois que ça s'arrête absolument pas sur ton ordi/écran/imprimante. Ça va bien plus loin.

    En plus, avoir un appareil "étalonné en usine" signifie que tu ne peux pas en changer le moindre paramètre. Or certains aiment avoir son écran très lumineux, d'autres faiblement lumineux. Etc. Ben chaque changement de luminosité que tu fais ainsi invalide entièrement ta calibration (tu dois recalibrer). Ton idéal d'appareil étalonné à vie ne marcherait qu'avec des machines non paramétrables.

    Et puis, qu'est-ce que le blanc? Hein, dis moi? 😉
    Il y a pas mal de réponse à cela, mais une des réponses pourrait être le mélange de l'ensemble des couleurs monochromatiques. Or va créer ça avec un écran! À la place, on se dit, on met toutes les diodes à fond (donc 3 couleurs seulement au final) et on a une approximation acceptable, non? Sauf qu'en plus on disait déjà plus haut que l'on ne contrôle pas le matériel. Et c'est ainsi qu'on se retrouve avec un blanc un peu bleuté ou un peu orangé…
    Et maintenant imprime ta couleur blanche et met la sur ton mur blanc?! Whaaaa! Ton blanc n'est pas blanc! En fait, il n'est même plus bleuté/orangé. Pourquoi? Ben ton papier déjà, il est de quelle couleur?! Ah bah oui, parce qu'en plus plus haut, quand tu disais:

    on lui donne un papier couvert de sRGB(42, 12, 51)

    Donc tu penses que ton sRGB(42, 12, 51) va donc rendre pareil sur tout papier? Tu penses que si tu l'imprimes sur une feuille blanche ("blanche" ahahah) et une noire (pareil ahahah!), ce sera la même couleur?

    Alors déjà laisse moi corriger une grosse erreur dans ta croyance sur la calibration d'imprimante: on ne calibre pas une imprimante! On calibre… un couple (imprimante, papier)! Ben oui, selon le papier que tu utilises (le modèle, la marque, etc.), tu dois recalibrer. Oups, petit oubli: en fait tu calibres pour le triplet (imprimante, papier, encres)! (ben oui, encres différentes == différentes couleurs, tu peux aussi prendre des compatibles, etc. Et si en plus tu mélanges les cartouches entre 2 fabricants! Tu multiplies les cas!)

    Donc non, ça c'est juste pas possible:

    Pareil pour une imprimante, j'imagine bien une machine étalonnée d'avance pour que, quand on lui donne un aplat sRGB(42, 12, 51) (oui, du RGB, pas du CMJN, le fait d'utiliser quatre couleurs c'est son affaire, pas celle de l'utilisateur !), crache une feuille avec exactement ça dessus.

    Hormis si tu veux que l'usine achète tous les papiers de tous les fabricants du monde, de même toutes les encres du monde, puis calibre l'imprimante avec chacun de ces papiers et encres et fournissent une énorme base de données de tous ces profils où le client mettrait la référence du papier et des encres pour récupérer le profil idéal. Ajoute à cela que tu dois refaire cela à chaque série de production (comme je disais: variation légère du matériel, des fournisseurs, du processus d'usinage qui évolue ou que sais-je!). Et tu te retrouves avec un truc juste impossible à faire… pour en plus avoir un profil générique qui n'est pas adapté exactement à ton imprimante.

    Mais revenons à nos moutons: qu'est-ce que le blanc? Puisqu'on a rarement du blanc parfait — et encore ce concept existe-t-il même vraiment? — le blanc est surtout une vue de l'esprit. Tu vas surtout choisir ce qu'est le blanc. Oui toi. Typiquement, tu vas décider que ton mur est blanc (bon je vais supposer cela, ne pas me prendre au mot et me dire que non, si tu as décidé de peindre ta chambre en bleu ou autre! 😜)! Ben oui, quand t'as acheté ta peinture, y avait bien écrit blanc sur le pot de peinture. "Blanc c'est blanc" quoi!
    Donc voilà, tu as décidé que ton mur est blanc. Et c'est là que tu mets une peinture à fond blanc… et tu te rends compte qu'elle jure complètement avec ton mur! Forcément, le peintre a tort: ton mur est blanc, tu l'as lu sur le pot!

    Ajoute à cela la lumière! Comme la plupart des cas, ta lumière est un peu jaunâtre. Donc que se passe-t-il quand ta lumière se reflète sur ton mur blanc? Ben ton blanc est un peu jaunâtre! Et puis y a la couleur du soleil. Il se trouve que le soleil a une couleur plutôt jaune (bon le regardez pas trop longtemps! 😎). Mais qu'à cela ne tienne, ton mur est blanc! Tu l'as décidé. Et pourtant quand tu compareras tes couleurs, tu auras un rendu différent. Je ne parle même pas juste du blanc, mais bien de toutes les couleurs. Revenons à nos moutons 🐑 blancs… enfin non à nos écrans, quoi! Et compare la même image sur ton écran bien calibré avec une impression. Mais quelque chose ne va pas! C'est parce que le point blanc est différent (possiblement! Y a plein d'autres raisons possibles!). Quand tu regardes dans ton petit monde numérique, tu as choisi un point blanc géré par le profil de ton écran, mais dans ton petit monde physique, tu as choisi un point blanc parce que ton cerveau aura décidé que ton mur est blanc. Or pas de bol, ton mur est pas le même blanc. Et la comparaison fait que tu vois les couleurs différemment!

    La problématique de comparaison des couleurs est une véritable mine d'or pour les illusions d'optiques. J'en montre quelques exemples dans mes confs aussi d'ailleurs. Y a des trucs vraiment marrants. C'est pas pour rien que la perception des couleurs est une science à part entière et un champs de travail énorme depuis plus d'un siècle.

    Enfin bon, c'est donc bien pour cela qu'il y a tout ce foin autour du choix de "quel point blanc choisir pour la calibration de mon écran?" Typiquement pour les gens dont l'œuvre sera sur écran (cinéma, TV…), l'industrie s'est plutôt décidé pour l'illuminant D65 comme point blanc. Mais ceux qui impriment (photographes, peintres numériques, packaging…) vont plutôt viser l'illuminant D50 qu'on va considérer être proche de la lumière du jour vers midi. Certains vont ainsi calibrer leur écran avec point blanc en D50 quand d'autres vont le calibrer en D65. Il y a aussi ceux qui vont te dire d'utiliser le "blanc natif" de ton écran. De toutes façons, certains vont conseiller de ne surtout pas comparer les couleurs sur l'écran et sur papier côte à côte, ce qui permet même de calibrer ton écran en D65 comme tout le monde. Ne pas faire de comparaison directe permet à tes yeux de leur donner le temps de se recalibrer à chaque fois (oui le cerveau est très fort! Il se recalibre de lui-même en fonction du blanc choisi). Et ainsi on peut comparer quand même les couleurs, il faut juste ne pas les regarder en même temps!

    Etc. Etc. Etc.

    Quoiqu'il en soit, le coup du "calibré en usine", c'est un bon discours marketing (je dis pas ça au hasard, ce que tu proposes, les constructeurs aiment bien le dire sur leurs modèles d'écran les plus chers justement; ça n'empêche pas les gens de calibrer parce que le discours marketing vaut ce qu'il vaut!) mais comme tu le vois, ça ne veut à peu près rien dire en réalité.

    Je sais que c'est plus compliqué que ça, en particulier parce que les différents périphériques sont capables d'acquérir ou de sortir des couleurs dans des gamuts plus ou moins étendus

    L'histoire du gamut, c'est le truc que beaucoup de gens vont sortir parce qu'ils ne comprennent pas grand chose de plus. Mais dans la vraie vie, pas tout le monde n'a besoin de faire plein d'images avec des couleurs super-pêtantes de partout.

    Le vrai but, c'est surtout d'avoir un standard de représentation des couleurs. Ce qu'on voit sur son écran, on veut voir la même chose sur un autre écran. De même qu'on veut voir la même chose qu'on en imprime. Etc. C'est surtout cela la vraie raison de la gestion des couleurs. On veut pouvoir faire plus ou moins confiance en ce qu'on voit. Beaucoup d'artistes/graphistes passent un temps fou à choisir les couleurs qu'ils veulent. C'est pas pour avoir des couleurs aléatoires au final!

    Et pour ça faut calibrer. Et surtout faut adapter à son environnement et son besoin précis.

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.