Fermer

octobre 2, 2024

Entretien avec Björn Ottosson, créateur de l’espace colorimétrique Oklab —

Entretien avec Björn Ottosson, créateur de l’espace colorimétrique Oklab —


Entrez dans les coulisses avec Björn Ottosson, l’ingénieur suédois qui a créé l’espace colorimétrique Oklab, et découvrez comment il a développé un modèle simple mais efficace avec une bonne uniformité des teintes tout en gérant bien la luminosité et la saturation – et qui est « correct » à utiliser.

Oklab est un nouvel espace colorimétrique perceptuel pris en charge dans tous les principaux navigateurs créé par l’ingénieur suédois Björn Ottosson. Dans cette interview, Philip Jägenstedt explore comment et pourquoi Björn a créé Oklab et comment il s’est répandu dans l’écosystème.

Note: L’entretien initial a été mené en suédois et est disponible pour regarder.

À propos de Björn

Philippe Jägenstedt : Parlez-moi un peu de vous, Björn.

Photo de Björn OttossonBjörn Ottosson : J’ai travaillé pendant de nombreuses années dans l’industrie du jeu vidéo sur des moteurs de jeu et des jeux comme FIFA, Battlefield et Need for Speed. J’ai toujours été intéressé par la technologie et son interaction avec les arts. Je suis ingénieur, mais j’ai toujours eu ces deux intérêts.

Sur le travail avec la couleur

Philippe : Pour quelqu’un qui n’a pas beaucoup étudié les couleurs, qu’y a-t-il de si difficile à travailler avec elles ?

Björn : Intuitivement, les couleurs peuvent paraître assez simples. Une couleur peut être plus claire ou plus foncée, elle peut être plus bleue ou plus verte, etc. Toute personne ayant une vision des couleurs typique a une expérience des couleurs assez similaire, et cela peut être modélisé.

Cependant, la façon dont nous manipulons les couleurs dans les logiciels ne correspond généralement pas à la perception humaine des couleurs. L’espace colorimétrique le plus courant est sRGB. Il existe également le HSL, qui est courant pour le choix des couleurs, mais il est également basé sur sRGB.

Un problème avec le sRGB est que dans un dégradé entre le bleu et le blanc, il devient un peu violet au milieu de la transition. C’est parce que sRGB n’est pas vraiment créé pour imiter la façon dont l’œil voit les couleurs ; cela dépend plutôt de la façon dont Moniteurs CRT travail. Cela signifie qu’il fonctionne avec certaines fréquences de rouge, vert et bleu, ainsi qu’avec le codage non linéaire appelé gamma. C’est un miracle que cela fonctionne aussi bien, mais ce n’est pas lié à la perception des couleurs. En utilisant ces outils, on obtient parfois des résultats surprenants, comme du violet dans le dégradé.

Violet dans le dégradé
Source des images : Comment le logiciel se trompe de couleur. (Grand aperçu)

Sur la perception des couleurs

Philippe : Comment les humains perçoivent-ils la couleur ?

Björn : Lorsque la lumière pénètre dans l’œil et atteint la rétine, elle est traitée dans de nombreuses couches de neurones et crée une impression mentale. Il est peu probable que le processus soit simple et linéaire, et ce n’est pas le cas. Mais, chose incroyable, la plupart des gens perçoivent toujours les couleurs de la même manière.

Les gens essaient de comprendre les couleurs et créent des roues chromatiques et des visualisations similaires depuis des centaines d’années. Au cours du XXe siècle, de nombreuses recherches et modélisations ont été consacrées à la vision des couleurs. Par exemple, le CIE XYZ Le modèle est basé sur la sensibilité de nos cellules photoréceptrices à différentes fréquences de lumière. CIE XYZ reste un espace colorimétrique fondamental sur lequel sont basés tous les autres espaces colorimétriques.

Il y a également eu des tentatives pour créer des modèles simples correspondant à la perception humaine basés sur XYZ, mais il s’est avéré qu’il n’est pas possible de modéliser toute la vision des couleurs de cette façon. La perception de la couleur est incroyablement complexe et dépend, entre autres choses, du fait qu’il fait sombre ou clair dans la pièce et de la couleur de fond sur laquelle elle se trouve. Lorsque vous regardez une photo, cela dépend aussi de ce que vous pensez être la couleur de la source lumineuse. La robe est un exemple typique de vision des couleurs très dépendante du contexte. Il est presque impossible de modéliser cela parfaitement.

Les modèles qui tentent de prendre en compte toute cette complexité sont appelés modèles d’apparence de couleur. Bien qu’ils aient de nombreuses applications, ils ne sont pas très utiles si vous ne savez pas si le spectateur se trouve dans une pièce claire ou lumineuse ou dans d’autres conditions de visualisation.

Ce qui est étrange, c’est qu’il existe un écart entre les outils que nous utilisons habituellement, tels que sRGB et HSL, et les résultats de cette recherche beaucoup plus ancienne. Dans une certaine mesure, cela est logique car lorsque HSL a été développé dans les années 1970, nous n’avions pas beaucoup de puissance de calcul, c’est donc une traduction assez simple de RVB. Cependant, peu de choses ont changé depuis.

Nous disposons désormais de beaucoup plus de puissance de traitement, mais nous nous sommes contentés d’outils assez simples pour gérer les couleurs dans les logiciels.

La technologie d’affichage s’est également améliorée. De nombreux écrans ont désormais des primaires RVB différentes, c’est-à-dire un rouge plus rouge, un vert plus vert ou un bleu plus bleu. sRGB ne peut pas atteindre toutes les couleurs disponibles sur ces écrans. Le nouvel espace colorimétrique P3 le peut, mais il est très similaire au sRGB, juste un peu plus large.

Sur la création d’Oklab

Philippe : Alors, qu’est-ce qu’Oklab et comment l’avez-vous créé ?

Björn : Lorsque je travaillais dans l’industrie du jeu vidéo, je voulais parfois effectuer de simples manipulations de couleurs, comme rendre une couleur plus foncée ou changer la teinte. J’ai étudié les espaces colorimétriques existants et leur efficacité dans ces tâches simples et j’ai conclu qu’ils posaient tous problème d’une manière ou d’une autre.

Beaucoup de gens connaissent Laboratoire CIE. C’est assez proche de la perception humaine de la couleur, mais la gestion de la teinte n’est pas géniale. Par exemple, un dégradé entre le bleu et le blanc devient violet dans CIE Lab, comme en sRGB. Certains espaces colorimétriques gèrent bien la teinte mais présentent d’autres problèmes à prendre en compte.

Lorsque j’ai quitté mon emploi dans le secteur des jeux vidéo pour poursuivre des études et du conseil, j’ai eu un peu de temps pour m’attaquer à ce problème. Oklab est ma tentative de trouver un meilleur équilibre, quelque chose qui ressemble à un laboratoire mais « d’accord ».

J’ai basé Oklab sur deux autres espaces colorimétriques, CIECAM16 et TPI. J’ai utilisé comme cible la prédiction de luminosité et de saturation de CIECAM16, qui est un modèle d’apparence des couleurs. En fait, je voulais utiliser les jeux de données utilisés pour créer CIECAM16, mais je ne les ai pas trouvés.

L’IPT a été conçu pour avoir une meilleure uniformité des teintes. Lors d’expériences, ils ont demandé aux gens de faire correspondre les couleurs claires et sombres, les couleurs saturées et insaturées, ce qui a abouti à un ensemble de données pour lequel les couleurs, subjectivement, ont la même teinte. L’IPT présente quelques autres problèmes, mais constitue la base de la teinte dans Oklab.

En utilisant ces trois ensembles de données, j’ai décidé de créer un espace colorimétrique simple qui serait « correct ». J’ai utilisé une approche assez similaire à l’IPT mais je l’ai combinée avec les estimations de luminosité et de saturation de CIECAM16. L’Oklab résultant a toujours une bonne uniformité de teinte mais gère également bien la luminosité et la saturation.

Philippe : Et le nom Oklab ? Pourquoi est-ce que ça va ?

Björn : C’est un peu ironique et une certaine dose d’humilité.

Pour les tâches que j’avais en tête, les espaces colorimétriques existants n’étaient pas corrects et mon objectif était d’en créer un qui le soit. En même temps, il est possible d’approfondir la question. Si une université avait travaillé sur ce sujet, elle aurait pu organiser des études avec de nombreux participants. Pour un espace colorimétrique destiné principalement à être utilisé sur les écrans d’ordinateurs et de téléphones, vous pouvez réaliser des études dans des environnements typiques où ils sont utilisés. Il est possible d’aller plus loin.

Néanmoins, j’ai pris les ensembles de données que j’ai pu trouver et j’ai tiré le meilleur parti de ce que j’avais. L’objectif était de créer un modèle très simple et utilisable. Et je pense que ça va, et je ne pouvais rien trouver de mieux. Je ne voulais pas l’appeler Björn Ottosson Lab ou quelque chose comme ça, alors j’ai opté pour Oklab.

Philippe : Le nom suit-il une tradition selon laquelle les choses sont bien dites ? Je sais qu’il y a aussi un Image plutôt correcte format.

Björn : Non, je n’ai suivi aucune tradition ici. Oklab était exactement le nom que j’avais trouvé.

Sur l’adoption d’Oklab

Philippe : J’ai découvert Oklab lorsqu’il est soudainement apparu dans tous les navigateurs. Les choses évoluent souvent lentement sur le Web, mais dans ce cas-ci, les choses ont évolué très rapidement. Comment est-ce arrivé?

Björn : J’ai été surpris aussi ! j’ai écrit un article de blog et l’a partagé sur Twitter.

J’ai beaucoup de contacts dans l’industrie du jeu vidéo et quelques contacts dans l’industrie des effets visuels (VFX). Je m’attendais à ce que les personnes travaillant avec des shaders ou des effets visuels essaient cela, et peut-être que cela soit utilisé dans certains jeux, peut-être comme effet pour une transition de couleur douce.

Mais le billet de blog a été diffusé beaucoup plus largement que je ne le pensais. C’était sur Hacker News et beaucoup de gens l’ont lu.

Le code d’Oklab ne fait que 10 lignes, c’est pourquoi de nombreuses bibliothèques open source l’ont adopté. Tout cela s’est passé très vite.

Chris Lilley du W3C m’a contacté et m’a posé quelques questions sur Oklab. Nous en avons discuté un peu et j’ai expliqué comment cela fonctionne et pourquoi je l’ai créé. Il a donné un présentation lors d’une conférence à ce sujet, puis il a insisté pour qu’il soit ajouté au CSS.

Photoshop a également modifié ses dégradés pour utiliser Oklab. Tout cela s’est produit de manière organique sans que j’aie besoin de l’encourager.

Sur Okhsl

Philippe : Dans un autre article de blogvous avez introduit deux autres espaces colorimétriques, Okhsv et Okhsl. Vous avez déjà parlé du HSL, alors qu’est-ce que l’Okhsl ?

Björn : Lors de la sélection des couleurs, HSL présente un gros avantage, à savoir que l’espace des paramètres est simple. Toute valeur comprise entre 0 et 360 pour la teinte (H) ainsi que toutes les valeurs comprises entre 0 et 1 pour la saturation (S) et la luminosité (L) sont des combinaisons valides et donnent lieu à des couleurs différentes à l’écran. La géométrie du HSL est un cylindre, et il n’y a aucun moyen de se retrouver accidentellement à l’extérieur de ce cylindre.

Cylindre plein de couleur
Source des images : Wikipédia. (Grand aperçu)

En revanche, D’accord contient toutes les couleurs physiquement possibles, mais il existe des combinaisons de valeurs qui ne fonctionnent pas là où vous atteignez des couleurs qui n’existent pas. Par exemple, en partant du jaune clair et saturé dans Oklab et en tournant la teinte vers le bleu, cette couleur bleue n’existe pas en sRGB ; il n’y a que des bleus plus sombres et moins saturés. C’est parce que sRGB dans Oklab a une forme étrange, il est donc facile de finir par en sortir. Cela rend difficile la sélection et la manipulation des couleurs avec Oklab ou Oklch.

Forme sRGB dans Oklab.
Forme sRGB dans Oklab. (Source de l’image : Démo de Chris Cameron) (Grand aperçu)

Okhsl était une tentative de compromis. Il conserve le comportement d’Oklab pour les couleurs peu saturées, proches du gris, et au-delà, s’étend jusqu’à un cylindre qui contient tout le sRGB. Une autre façon de le dire est que la forme étrange du sRGB dans Oklab a été étirée en un cylindre avec des transitions raisonnablement douces.

Le résultat est similaire au HSL, où tous les paramètres peuvent être modifiés indépendamment sans se retrouver en dehors du sRGB. Cela rend également Okhsl plus compliqué qu’Oklab. Il existe des compromis inévitables pour obtenir quelque chose présentant les caractéristiques du HSL.

Tout ce qui concerne la couleur est une question de compromis. La vision des couleurs est si complexe qu’elle nécessite de faire des compromis pratiques.

C’est un domaine dans lequel j’aurais aimé qu’il y ait plus de recherche. Si j’ai un fond blanc et que je souhaite choisir de jolies couleurs à y mettre, vous pouvez faire de nombreuses hypothèses. Okhsl résout beaucoup de choses, mais est-il possible de faire encore mieux ?

Sur les compromis de couleur

Philippe : Certaines personnes qui ont essayé Oklab disent qu’il y a trop de nuances sombres. Vous avez modifié cela dans Okhsl avec une nouvelle estimation de légèreté.

Björn : En effet, Oklab est invariant en termes d’exposition et ne tient pas compte des conditions de visualisation, telles que la couleur d’arrière-plan. Sur le Web, le fond est généralement blanc, ce qui rend plus difficile la différence entre le noir et les autres couleurs sombres. Mais si l’on regarde le même dégradé sur fond noir, la différence est plus apparente.

CIE Lab gère cela, et j’ai également essayé de le gérer dans Okhsl. Ainsi, les dégradés dans Okhsl sont plus beaux sur un fond blanc, mais il y aura d’autres problèmes sur un fond noir. C’est toujours un compromis.

Et enfin…

Philippe : Dernière question : quelle est votre couleur préférée ?

Björn : Je dirais la Bourgogne. Le bordeaux, les verts foncés et les bleus marine sont les favoris.

Philippe : Merci pour votre temps, Björn. J’espère que nos lecteurs ont appris quelque chose, et je leur rappellerai ton excellent blogoù vous approfondissez Oklab et Okhsl.

Björn : Merci!

Éditorial fracassant
(gg, ouais)






Source link