darktable 3 : RGB ou Lab ? Quels modules ? Au secours !

darktable est lentement en train de converger vers un workflow RGB relatif à la scène. Pourquoi ? Qu’est ce que ça implique ? Comment cela change-t-il l’utilisation ? Réponses ici…

Cet article commence par 3 sections d’introduction théorique sur l’espace Lab que vous n’avez pas besoin de comprendre en détail pour comprendre la suite.

Lab, c’est quoi ?

L’espace de couleur CIE Lab a été publié en 1976 par la Commission Internationale de l’Éclairage (CIE), dans une démarche, initiée en 1931 avec l’espace XYZ, de représentation mathématique de la perception des couleurs par un être humain moyen. Il vise à découpler l’information lumineuse (canal L) de l’information chromatique (canaux a et b) et tient compte des corrections non-linéaires effectuées par le cerveau humain par dessus le signal linéaire reçu de la rétine. L’espace Lab dérive de l’espace CIE XYZ qui représente, lui, la réponse physiologique de 3 des 4 types de cellules photo-sensible dans la rétine (les cônes).

Donc XYZ représente ce qui se passe dans la rétine, et Lab représente ce qui se passe au niveau du cerveau, à l’étape suivante. Mais tous deux sont des modèles, c’est à dire des tentatives de description de la réalité, et pas la réalité elle-même. Entre un modèle et la réalité, il existe toujours une erreur plus ou moins importante, qui diminue à mesure que les chercheurs font leur boulot et raffinent les modèles. De plus, un modèle ne représente souvent la réalité que sous certaines conditions seulement, qui définissent le domaine de validité du modèle.

Et concernant le domaine de validité, si XYZ fonctionne plutôt pas mal à peu près tout le temps, Lab ne fonctionne que tant que l’image a un contraste inférieur à 100:1, soit une plage dynamique de 6.5 EV. Dans le contexte de création du Lab, en 1976 on travaillait avec des négatifs numérisés, et des négatifs couleur tournent autour 6-7 EV de plage dynamique. 6.5 EV, c’est aussi le contraste statique de la rétine, et c’est un peu après 1976 qu’on s’est rendu compte que le cerveau faisait de la fusion HDR en permanence, à partir de plusieurs images chaque seconde, donc le contraste statique n’a pas tellement de sens.

À quoi sert CIE Lab ? À prévoir la différence perceptuelle entre 2 couleurs (le delta E) et donc éventuellement à faire des adaptations de gamut lorsqu’on convertit une image d’un espace de couleur à l’autre. On peut alors essayer de remapper le gamut vers la couleur la plus proche dans l’espace cible via des stratégies qui minimisent le delta E numériquement.

Les gros inconvénients du Lab sont :

  • il ne fonctionne pas bien pour les très forts contrastes (> 7 EV), et particulièrement en dehors de la plage [1 ; 100] Cd/m²
  • il n’est pas linéaire en teinte, c’est à dire que si je fixe les composantes de chromaticité a et b d’un pixel en changeant sa composante de luminosité L, on attendrait la même teinte à une luminosité différente (c’est dans le cahier des charges de l’espace), or on observe un léger virage de teinte parasite, plus ou moins marqué suivant la couleur d’origine du pixel,
  • une partie de l’espace Lab sont des couleurs imaginaires, qui sortent du domaine visible.

Que fait Lab dans darktable ?

L’idée initiale était de permettre de manipuler séparément la luminosité et la chromaticité. En 2009, année de création du projet, les appareils photo avaient des plages dynamiques assez proches du domaine de validité du Lab, l’idée était alors loin d’être stupide, d’autant plus que darktable n’avait alors pas d’option de masquage.

Avantages :

  1. Lab étant un espace de référence, donc indépendant de l’espace de couleur de l’affichage, les pré-réglages sont très faciles à transférer.
  2. Lab place le gris moyen (18 %) à 50 %, donc l’interface est plus intuitive (le gris moyen est au milieu du graphe de la courbe des tonalités, par exemple).

Problèmes :

  1. aujourd’hui, les appareils photos sont largement hors des conditions de validité du Lab, et les défauts de cet espace ressortent d’autant plus. Avec des plages dynamiques variant de 10 à 14 EV, n’importe quel appareil photo récent fait du HDR par défaut, et Lab n’est pas fait pour ça.
  2. pousser des pixels dans l’espace Lab est très risqué, notamment lorsqu’on s’attaque au compositing et à la fusion d’image avec des masques adoucis. On va y revenir, mais c’est lié au problème suivant.
  3. Lab n’est pas adapté aux corrections physiquement réalistes, comme le floutage, défloutage, débruitage, et n’importe quel filtre qui simule ou corrige un effet optique.

Bref, Lab, c’était une erreur de jeunesse. Ceci dit, tous les autres logiciels de traitement photo semblent travailler par défaut dans des espaces RGB non-linéaires (avec un gamma appliqué au début du pipe), ce qui revient au même, dans les grandes lignes.

Lab, comment ça marche ?

Tout part d’un espace RGB linéaire classique, par exemple celui du capteur. On convertit le RGB linéaire vers XYZ. Pour les besoins de la démonstration, ici, on peut considérer l’espace XYZ comme un espace de type RGB dont les couleurs primaires ont été un peu manipulées (mais ça se comporte pareil). XYZ est un espace linéaire.

On passe alors du XYZ au Lab en appliquant un « genre de correction gamma » sur le canal de luminance (de Y vers L), et une rotation sur les canaux a et b. Bref, sans rentrer dans les détails, mathématiquement Lab c’est « un peu comme » appliquer un gamma 2.44 sur du RGB linéaire. Disons que ça pose les mêmes problèmes pratiques : c’est fortement non-linéaire.


Récapitulatif pour ceux qui n’ont pas tout suivi : Lab ne marche pas pour des images à fort contraste, ne marche pas si bien pour des images à contraste modéré, et encode les valeurs des pixels de façon perceptuelle et non physique, ce qui va nous poser problème pour la suite. Lab n’a jamais été construit pour faire de la retouche mais seulement pour étudier la vision humaine.


Les limites des espaces non-linéaires en traitement d’image

D’abord, linéaire, ça veut dire quoi ? Si y est linéaire par rapport à x, ça veut dire qu’il existe une relation entre x et y de la forme y = a * x + b, avec a et b des constantes réelles. Linéaire, ça veut dire proportionnel à une constante près.

Quand on parle d’espace RGB linéaire, on entend que les valeurs RGB sont proportionnelles à quelque chose. Mais proportionnelles à quoi ?

Pour faire simple, le capteur compte les photons qu’il reçoit. Chaque pixel contient donc une information sur le spectre lumineux capté à cet endroit là, sous forme de 3 intensités (rouge, vert, bleu). Le coefficient de proportionnalité a entre le nombre de photons et la valeur RGB finale, c’est la sensibilité ISO du capteur. La constante b, c’est le seuil de bruit du capteur. Le signal RGB est donc proportionnel à l’énergie de l’émission lumineuse captée par le capteur de l’appareil photo.

Du point de vue de la perception humaine, ces intensités proportionnelles au niveau d’énergie physique de l’émission lumineuse n’ont pas de sens. En effet, le cerveau applique une correction non-linéaire de type logarithmique, que l’espace Lab approxime par une racine cubique pour faire simple, ce qui signifie que nous avons une sensibilité accrue aux basses lumières, et une sensibilité réduite aux hautes lumières.

Cependant, toutes les opérations optiques qui sont réalisées lors de la prise d’image, comme le flou d’objectif, la création de bruit, ou l’effet d’un filtre coloré ajouté sur l’objectif, sont appliquées directement sur les photons. Par conséquent, pour retirer le flou d’objectif, ou pour le simuler, nous avons besoin de travailler sur les informations RGB linéaires qui sont l’information la plus proche du photon dont on dispose. Voyez vous-même, lequel de ces deux bokeh générés par ordinateur (original en bas) vous semble le plus naturel ? (Voir aussi un exemple plus spectaculaire chez Chris Bejon)

Photo d’origine : Hanny Naibaho

Observez notamment comment les personnages sombres (en bas à gauche) fusionnent dans l’arrière-plan clair, ou le contraste des pentagones du diaphragme formés sur les points lumineux. Un autre exemple, avec un simple flou sur des surfaces lisses : lequel de ces dégradés vous semble le plus progressif ?

Gauche : floutage en RGB linéaire puis encodage en sRGB | Droite : encodage en sRGB puis floutage

Ces deux exemples ont été générés avec Krita, qui permet de travailler aussi bien en RGB linéaire et non-linéaire, et possède des calques de réglages dont un flou d’objectif physiquement réaliste.

Mais ce type de problème va se poser de la même manière dans darktable, dès que vous allez utiliser des modules d’accentuation de la netteté, passe-haut, passe-bas, et des fusions/adoucissement de masques dessinés et/ou paramétriques (qui sont des flous).

Un floutage, un défloutage, ou n’importe quoi de connecté à l’optique doit travailler en RGB linéaire. Il n’y a aucun modèle mathématique* qui permette d’avoir des dégradés corrects en RGB encodé pour l’affichage (avec un « gamma ») ou en Lab, du fait de la non-proportionnalité à l’énergie lumineuse.

C’est aussi le problème qui survient avec le module zones de couleurs au niveau de la fusion des zones (même si un bricolage, introduit sous le mode « flou » permet de cacher un peu mieux la misère), et qui produit des transitions granuleuses et nettes.

Le seul module de darktable qui travaille en Lab pour faire un flou, et où ça marche quand même, c’est le mode laplacien local du contraste local. La raison est qu’on passe par des courbes de tonalités appliquées sur une séparation de fréquence multi-échelle, blabla, mots compliqués, blabla… en bref le prix à payer pour que ça marche, c’est que c’est hyper lourd en calculs et la théorie est rock’n roll. Et… même si le flou est stable, il s’accompagne d’une désaturation peu gracieuse avec virage vers le gris-bleu boueux quand on pousse les curseurs un peu fort.

* : et ce n’est pas parce que les problèmes ne sont pas visibles tout le temps qu’ils n’existent pas tout le temps. On peut, jusqu’à un certain point, réussir les cacher avec des artifices mathématiques (seuils, opacité, etc.), mais ils finiront toujours par ressortir au plus mauvais moment. Faites moi confiance, je sais exactement où appuyer pour que ça casse.

Les bénéfices du traitement RGB linéaire

Vous allez me dire « tant que je ne floute pas ou que je travaille uniquement sur la couleur, je peux quand même utiliser Lab ».

C’est partiellement vrai, mais en fait, même dans ces cas là, le travail en RGB linéaire donne des algorithmes plus simples, plus rapides, et qui tolèrent des ajustements bien plus extrêmes sans présenter des effets secondaires aussi gênants. De plus, encore une fois, Lab ne supporte pas les hautes plages dynamiques, donc il faut veiller à utiliser les modules Lab après un mappage de tonalité HDR.

En toute rigueur, la seule application où Lab est nécessaire, c’est le mappage de gamut, lorsqu’on change d’espace de couleur avant d’envoyer l’image vers un fichier ou vers l’écran. Et même là, depuis 1976, on a trouvé de bien meilleurs espaces (IPT-HDR, JzAzBz) pour faire ça en HDR et avec une linéarité des teintes presque parfaite.

L’état de darktable

À la sortie de darktable 3.0, le pipeline par défaut (c’est à dire l’ordre de base des modules) a été repensé autour de filmique. Il y a donc 4 étapes incontournables dans ce pipe :

  1. le dématriçage, par lequel on passe du fichier raw (à trous) à une image (complète),
  2. le profil de couleur d’entrée, par lequel on convertit l’espace RGB du capteur vers un espace standard de travail,
  3. filmique (ou la courbe de base), qui font la bascule entre l’espace linéaire (proportionnel à l’énergie lumineuse) et l’espace non-linéaire (compressé de façon perceptuelle),
  4. le profil de couleur de sortie, par lequel on convertit de l’espace standard de travail vers l’espace RGB de l’écran ou du fichier image.

Notez que l’approche reposant sur courbe de base reste l’approche par défaut car elle permet de retomber plus ou moins sur le rendu des JPEG du boîtier dès l’ouverture du logiciel, ce qui semble être la préférence de beaucoup d’utilisateurs. Néanmoins, la courbe de base a été repoussée dans le pipe juste avant filmique, donc elle est désormais sécuritaire pour les couleurs des modules qui arrivent avant et s’est vue ajouter un mode de préservation des couleurs similaire à filmique. Donc, entre courbe de base et filmique, pour darktable 3.0, la différence se fait désormais seulement sur l’ergonomie et sur la capacité à récupérer les très basses lumières. Filmique est un peu plus complexe à comprendre mais plus rapide à régler (une fois qu’on a compris), et reste meilleur pour aller rechercher les basses lumières.

Les modules qui travaillent en RGB linéaire et réalisent des opérations linéaires (donc laissent le pipeline linéaire après eux) sont :

  1. exposition,
  2. balance des blancs,
  3. mixeur de canaux,
  4. égaliseur de tons (qui est linéaire par parties).

L’avantage de réaliser des opérations linéaires est qu’elles n’affectent en rien la chrominance de l’image (changer la luminosité laisse la chrominance intacte) et préservent la proportionnalité à l’énergie du signal. Ces modules doivent être positionnés avant filmique ou la courbe de base, et exposition et égaliseur de tons sont recommandés avant le profil d’entrée. Ils peuvent être utilisés sans danger et sans modération. Notez qu’il y a un bémol ici sur l’égaliseur de tons, qui préserve la linéarité locale (à l’intérieur des zones de l’image), mais pas la linéarité globale (entre les zones). Ça correspond à ce qui se passerait si on arrivait sur la scène avec une lampe torche, et qu’on ré-éclairait à la main les objets de la scène, donc on garde quand même la cohérence physique du signal.

Les modules qui travaillent en RGB linéaire et réalisent des opérations non-linéaires mais respectueuses de la chrominance (à condition d’activer le mode ad-hoc) sont :

  1. courbes RGB,
  2. niveaux RGB.

Le respect de la chrominance passe par les modes de préservation qui contraignent les ratios RGB en entrée et en sortie du module, de sorte à les garder identiques. Notez que courbes RGB et niveaux RGB peuvent être déplacés avant ou après filmique suivant l’intention, de toute façon ils réalisent des opérations non-linéaires. Par contre, veillez à ne pas utiliser d’adoucissement de masque sur des modules qui viendraient après, car la linéarité n’est plus assurée.

Les modules qui travaillent en RGB linéaire et réalisent des opérations non-linéaires et non respectueuses de la chrominance sont :

  1. mappage des tonalités, (on va y revenir)
  2. balance couleur,
  3. LUT 3D.

Balance couleur est conçue pour être appliquée sur des données RGB linéaires non corrigées en contraste, donc avant filmique, courbes de tonalités, etc.. Elle ne préserve pas la chrominance puisque son but est explicitement de l’ajuster créativement. Idem pour LUT 3D, dont le principal but est d’émuler des émulsions de film argentique.

Je rappelle ici que filmique est une conversion de plage dynamique, depuis la haute plage dynamique de l’appareil photo, vers la faible plage dynamique de l’écran. Il ne s’agit pas d’une courbe de tonalités destinée à appliquer une correction artistique, mais d’un mappage de tonalités pour faire rentrer au chausse-pied les données capteur dans l’espace disponible de l’écran, en essayant de protéger autant que possible les détails (qu’on suppose a priori dans les tons moyens) et de garder une certaine lisibilité optique dans l’image.

Avant filmique, dans le pipe linéaire, on trouve quand même des modules qui travaillent en Lab mais réalisent des opérations linéaires qui devraient (en toute rigueur) être réalisés en RGB linéaire :

  1. égaliseur de contraste,
  2. passe-haut,
  3. passe-bas,
  4. renforcer la netteté,
  5. reduction du bruit (moyenne non locales)

Ces modules doivent être adaptés dans le futur pour pouvoir travailler dans un espace Yxy (dérivé de CIE XYZ) linéaire car c’est une erreur de les faire travailler en Lab. C’est un travail relativement facile à effectuer car Yxy décompose la luminance (canal Y) et la chrominance (canaux x et y) avec un logique similaire au Lab, moins la transformation non-linéaire. Dans l’intervalle, vous pouvez continuer à les utiliser, mais avec modération. Pour l’égaliseur de contraste, notez qu’il utilise une séparation en ondelettes sensibles aux bords, ce qui le rend assez lourd à l’exécution, mais très efficace pour éviter les halos, même en considérant qu’il travaille en Lab.

Après filmique, dans le pipe non-linéaire, se trouvent tous les autres modules Lab puisqu’ils ont besoin d’un espace à faible plage dynamique. Certains de ces modules pourront être également convertis vers xyY et migrés avant filmique dans le futur (notamment l’effet Orton, le grain et lumière d’appoint). Notez en outre que le module vignettage a été laissé en fin de pipe, comme avant, bien qu’il travaille en RGB. Il est probable qu’il soit mieux avant filmique, voire avant le profil d’entrée, mais son code est surprenamment complexe pour ce qu’il réalise et je n’ai pas eu le temps de détricoter l’imbroglio pour comprendre quelles sont ses hypothèses de travail.

Modules déconseillés

Les modules déconseillés le sont en raison d’erreurs fondamentales de conception, sur la base de mon opinion personnelle, qui repose sur mon expérience pratique et théorique de la retouche d’image, et dans un esprit de rationalisation du workflow à un nombre minimal d’étapes. Rien ne vous empêche de continuer à les utiliser, d’autant plus que les utilisateurs me font régulièrement découvrir des usages (souvent détournés) auxquels je n’avais pas pensé. Mais l’idée ici est bien de vous donner les clés pour le meilleur résultat possible le plus vite possible avec le minimum de tracas possible.

Mappage local des tonalités

Le mappage local des tonalités encode les valeurs RGB logarithmiquement en interne (elles sont ensuite décodées à la sortie, pas de problème à ce niveau là), puis applique un flou bilatéral sur ces valeurs logarithmiques. Comme on l’a vu plus haut, la théorie est claire : un flou, sur n’importe quoi de non linéaire, produit des halos et des franges. Et comme promis, la plage de réglages utiles de ce module est très réduite, si bien que les utilisateurs ont pris l’habitude de fusionner la sortie du module avec de faibles opacités. Qu’on soit clair : ça revient seulement à cacher la misère.

Préférez l’égaliseur de tons.

Mappage des tonalités (global)

Ce module travaille en Lab pour effectuer une compression HDR, et si vous avez suivi mes explications, vous avez compris que c’est une contradiction dans les termes. De plus – et c’est important – la valeur du blanc est ajustée automatiquement depuis le maximum dans l’image, donc la luminosité globale de l’image peut donc changer suivant la taille de l’exportation, à cause du lissage opéré par la mise à l’échelle (interpolation). À prévoir : un JPEG plus clair ou plus sombre que la prévisualisation en chambre noire.

Préférez filmique.

Ombres et hautes lumières

Idem, ce module travaille en Lab pour effectuer une compression HDR et utilise un flou gaussien ou bilatéral pour isoler les hautes et les basses lumières. En pratique, ça donne des halos assez vite dès qu’on pousse les paramètres (même si le flou bilatéral allège un peu les problèmes), et il tend même à rajouter du contraste local (par effet secondaire) dans les hautes lumières, pour des nuages au look très HDR. Dans les basses lumières, utilisé un peu fort, ce sont les couleurs qui virent vers le bleu-gris. Dans tous les cas, c’est quand vous avez le plus besoin de ce module qu’il vous lâche, en pratique il ne fonctionne bien que pour des corrections mineures.

Préférez l’égaliseur de tons.

Filtre passe-bas

Le filtre passe-bas est en fait un simple flou. Beaucoup de gens l’utilisent pour inverser le contraste, et le fusionnent ensuite en incrustration ou en lumière douce/dure/linéaire, pour comprimer la plage dynamique. C’est en fait exactement ce que fait déjà le module ombres et hautes lumières en moins d’étapes pour l’utilisateur. Comme mentionné plus haut, le passe-bas travaille en Lab, donc pour le flou… Attendez vous au pire.

Préférez l’égaliseur de contraste pour le flou, ou l’égaliseur de tons pour la compression locale de plage dynamique

Filtre passe-haut

Beaucoup de gens utilisent le passe-haut en le fusionnant en incrustation ou en lumière douce/dure/linéaire, pour rajouter de la netteté. C’est en fait exactement ce que fait déjà le module renforcer la netteté. Le passe-haut est réalisé par soustraction entre un flou (passe-bas) et l’image d’origine, donc on a le même problème que pour le passe-bas car il travaille encore en Lab.

Préférez l’égaliseur de contraste pour la netteté fine, ou le contraste local pour l’acutance générale.

Renforcer la netteté

Le module de renforcement de la netteté était initialement prévu pour corriger les capteurs munis d’un filtre passe-bas optique ainsi que le lissage dû au dématriçage dans certains cas. Premièrement, comme ce module travaille en Lab, il n’y a pas besoin de le pousser beaucoup pour qu’il produise des halos. Deuxièmement, la méthode interne d’accentuation de la netteté (par masque flou) est assez archaïque et rapidement artificielle, même en mode RGB. Troisièmement, compte tenu de la netteté des optiques modernes, du fait que beaucoup de capteurs n’ont plus de filtre passe-bas, et que la plupart des photos seront exportées à un rapport de réduction d’au moins 8:1 (24 Mpx capteurs vers 3 Mpx écran), le renforcement de netteté au niveau du pixel est devenu pratiquement inutile. De façon générale, le photographe numérique du 21e siècle gagnerait à se calmer le pompon avec la netteté qui croustille, ça ferait du bien à tout le monde.

Préférez l’égaliseur de contraste pour déflouter l’optique via les pré-réglages fournis, ou le contraste local pour l’acutance générale.

Monochrome

Le module monochrome travaille en Lab, qu’il utilise pour définir un bonus ou un malus de contribution de certaines couleurs à la densité du noir, en vue de convertir la couleur en nuances de gris. Le problème est que l’interface est assez chatouilleuse dans les réglages, et une petite correction peut produire de gros changements et casser le contraste global de façon assez disgrâcieuse. En pratique, obtenir un résultat prévisible est assez difficile et ce module se solde souvent par des séances fastidieuses de micro-ajustements.

L’idée d’une contribution pondérée des couleurs à la densité du noir vient de la pellicule argentique, qui se comporte exactement de cette manière. Mais, vous l’avez vu venir, la pellicule ne travaille pas en Lab. Cette idée est reprise de façon physiquement réaliste dans le module mixeur de canaux, où plusieurs pré-réglages d’émulsions argentiques commerciales sont proposés pour créer un canal gris. Notez que, pour que les coefficients soient exacts, l’espace de couleur de travail (dans le module profil d’entrée) doit être réglé sur REC 709 linéaire, autrement les réglages devront être ajustés.

Pour un noir et blanc basé sur la luminance perceptuelle humaine (linéaire), il suffit de baisser la saturation d’entrée ou de sortie à 0 % dans la balance couleur (clic droit sur le curseur, puis entrez 0 au clavier — le réglage ne va que jusqu’à 50 % par défaut dans l’interface).

Préférez le mixeur de canaux pour une approche argentique ou la balance couleur pour une approche perceptuelle.

Lumière d’appoint / Lumière d’arrière plan / Zones

Ces trois modules visent à ré-éclairer une partie de l’image, et tentent de diluer la correction en intensité et dans l’espace en faisant un flou dans l’image. Mais comme ils travaillent en Lab… bref, je ne vous la refais pas. Les résultats sont juste mauvais tout le temps, exceptés avec des réglages très doux, qui signifient que vous n’aviez pas vraiment besoin de ces modules.

Préférer le module d’exposition avec des masques, ou l’égaliseur de tons.

Correction des couleurs

Toute photographie comporte au moins deux sources de lumière : une source directe (lampe, soleil, bougie) et une source réfléchie (murs, nuages, sols, plafond). Il arrive souvent que la balance des blancs de ces deux sources ne coïncide pas. En pratique, la vision humaine a ce qu’il faut pour corriger ça, mais pas l’appareil photo. Il faut donc effectuer une correction séparée de la balance des blancs pour les hautes lumières (qui reçoivent, en général, la lumière directe) et les basses lumières (qui reçoivent, en général, la lumière réfléchie).

C’est ce que vous propose le module correction des couleurs, encore une fois en Lab, encore une fois avec une interface discutable, encore une fois avec des résultats mitigés et peu naturels dès qu’on pousse le réglage. Pourtant, en y réfléchissant bien, les soucis de balance des blancs se ramènent à des histoires de spectre lumineux, et leur correction est plus simple en RGB, notamment pour gérer la progressivité de la correction.

Le module balance couleur vous permet de régler ça beaucoup plus vite, et pas seulement pour les ombres et pour les hautes lumières, mais aussi pour les tons moyens. En utilisant les pipettes, à droite des curseurs de teintes, il vous permet aussi d’aller directement prélever des tons neutres dans l’image (pour le noir, gris et blanc) et de laisser le logiciel calculer la couleur complémentaire. Voir le manuel pour plus de précisions.

Préférez la balance couleur.

Velvia

Velvia travaille en RGB en fonctionne sur une logique assez similaire à la saturation de la balance couleur. En apparence, ça sent bon. Sauf qu’en fait, son équation colorimétrique n’est pas perceptuellement correcte, ce qu’il fait qu’il va changer tout à la fois la saturation (ce qu’on lui demande), mais aussi la teinte et la luminosité (ce qui devient gênant). On fait passer la pillule en appelant ça un effet créatif Velvia, censé reproduire le film éponyme de chez Fuji. Le problème est qu’il semble avoir été optimisé pour le RGB non-linéaire. Du coup, c’est le genre de module typiquement imprévisible.

Préférez la balance couleur.

Niveaux / Niveaux RGB

Ces deux là marchent comme ils devraient, aucun problème là dessus. Mais quand on regarde le code, on s’aperçoit qu’il duplique exactement le mode slope/offset/power de la balance couleur. Le point blanc est mis à l’échelle par une simple correction d’exposition, comme le facteur du slope ou même… l’exposition du module exposition. Le point noir est ajusté par addition d’une constante, comme le facteur de l’offset, ou la correction du point noir du module exposition. Le point gris est ajusté par une fonction puissance (improprement appelée gamma), exactement comme le facteur du power de la balance couleur. Ce ne sont pas juste les mêmes fonctionnalités, ce sont exactement les mêmes maths. La différence réside donc seulement dans l’ergonomie, mais aussi dans le fait que la balance couleur vous donne la valeur numérique des réglages, ce qui les rend plus facilement transférables d’une image à une autre ou d’un logiciel à l’autre.

Si vous utilisez déjà la balance couleur, inutile d’ajouter en plus un module niveau. Finissez votre retouche dans le même module.

Courbes / Courbes RGB

Ceux là aussi marchent bien mais considérant leur usage classique… sont-ils bien utiles ? Habituellement, on les utilise pour ajouter/retirer de la luminosité, ce qui tombe exactement dans le cas d’utilisation du gris des niveaux ou du power de la balance couleur, ou pour ajouter/retirer du contraste, ce qui peut s’ajuster soit en diminuant/augmentant l’intervalle entre le blanc et le noir (de façon linéaire), soit en appliquant une compression de luminosité non linéaire, encore une fois disponibles depuis la balance couleur.

L’ergonomie des courbes pose un vrai problème dans un workflow RGB linéaire, car le gris moyen est supposé au centre du graphe, ce qui suppose en conséquence qu’on travaille en RGB non-linéaire où le gris à été relevé à 50 %. Dans un encodage linéaire, le gris moyen standard est attendu à 18 % (mais la pratique est souvent non standard), et le contrôle du contraste autour de cette valeur non centrée sur le graphe devient complexe dans l’interface. De plus, le graphe des courbes suppose un signal RGB limité entre les valeurs 0 et 100 %… 100 % de quoi ? De la luminance du blanc écran. Dans un workflow linéaire, le signal HDR peut aller de 0 à l’infini, et c’est au niveau de filmique qu’on se charge de remettre tout le monde entre 0 et 100 % du blanc écran.

Le contraste de la balance couleur est compatible avec cette approche non-limitée, via son paramètre pivot, qui permet de sélectionner la référence de contraste. Ainsi, au dessus du pivot, on augmente la luminosité, en dessous, on la diminue, mais le pivot reste inchangé. Le workflow relatif à l’affichage (en Lab ou en RGB non-linéaire) pose toujours l’hypothèse implicite que le gris est à 50 %, et ne vous permet me pas de changer cette valeur.

Préférez la balance couleur.

Contraste / Luminosité / Saturation

Module travaillant en Lab, qui duplique encore une fois les module niveaux, les courbes, et la balance couleur tout en ajoutant un paquet d’effets indésirables sur les couleurs.

Modules à utiliser avec précaution

Ces modules ne peuvent être déconseillés car on n’a pas de remplaçant exact pour l’instant, mais ils doivent être utilisés avec prudence car ils peuvent se montrer imprévisibles et vous faire perdre beaucoup de temps.

Vibrance

Vibrance travaille en Lab en applique une correction de saturation qui pénalise les pixels déjà saturés pour éviter les sur-saturations, mais tend aussi à assombrir les couleurs. Le résultat est loin d’être laid, le problème est qu’on ne peut pas contrôler de combien on assombrit pour la quantité qu’on resature.

Préférez les zones de couleurs avec une sélection par saturation.

Zones de couleur

Ce module serait génial si la fusion entre zones de teintes étaient plus progressive. Il dispose aujourd’hui de deux modes (prononcé, l’ancien, et flou, le nouveau) qui tentent de relever ce défi de deux façon différentes, avec des résultats trop discrets pour le nouveau, et des transitions trop abruptes pour l’ancien. Encore une fois, il travaille en Lab, quand les fonctionnalités similaires chez Capture One semblent utiliser HSL ou HSV, et c’est peut-être un début de piste pour expliquer pourquoi il est loin derrière.

Dans certains cas, zones de couleurs gagnera a être remplacé par la balance couleur où l’on utilisera le masquage paramétrique pour isoler les teintes sur lesquelles on veut agir. Ensuite, le rafinement du masque paramétrique par filtre guidé devrait aider pour les cas difficiles. Pour le reste, balance couleur permet de virer la teinte, de pousser la saturation et la luminosité exactement pareil.

Notez cependant que la balance couleur, bien que travaillant en RGB à l’interne, fusionne les masque en Lab car ce module date d’avant la possibilité d’avoir des modules 100 % RGB, et convertit de Lab vers RGB en interne. On y travaille encore…

Préférez la balance couleur.

Vignettage

Ajouter une vignette autour de l’image n’est pas compliqué : il suffit d’abaisser graduellement l’exposition, et éventuellement la saturation. Pour autant, le module vignettage réalise une magie noire incompréhensible, qui est largement plus compliquée que cela, avec une homogénéisation interne qui devrait être superflue si les choses étaient bien faites. Le résultat est rarement naturel, la transition de luminosite étant trop violente par rapport à une vraie vignette.

Vous obtiendrez de meilleurs résultats avec un module exposition réglé à -0.5 EV, un masque circulaire avec une large zone de transition dont vous aurez inversé la polarité, doublé éventuellement d’un module de désaturation des couleurs auquel vous passerez le masque d’exposition via un masque rasterisé.

Préférez le module exposition.

Modes de fusion des masques déconseillés

Peu de gens le savent, mais les modes de fusion éclaircir, assombrir, incrustation, lumière douce, lumière vive, lumière linéaire, lumière ponctuelle, attendent implicitement le point gris à 50 % et sont donc totalement héritiers du worflow relatif à l’affichage. Il suffit de regarder les équations pour s’en rendre compte. Ils vont ainsi traiter les pixels différemment suivant qu’ils sont au dessus ou au dessous de 50 %. On rappelle que le workflow RGB linéaire garde le point gris à 18 % (voire moins). Ces modes de fusion vont donc se comporter de façon imprévisible dans les parties linéaires du pipeline.

En RGB linéaire, vous disposez seulement des modes de fusion basés sur des opérations arithmétiques (addition, multiplication, division, soustraction, moyenne), basés sur des comparaison maximum/minimum (écran) ou sur des séparation de canaux (teinte, couleur, chroma, etc.).

À noter, le mode multiplier est un des plus puissants en RBG linéaire. Par exemple, pour accentuer le contraste d’une image de façon naturelle, il suffit d’utiliser un module exposition fusionné en multiplication, de régler l’exposition entre 2 et 3 EV et l’opacité entre 10 % et 50 %. L’exposition sert alors à contrôler le point de pivot du contraste, et l’opacité l’intensité de l’effet. C’est rapide, simple et efficace.

Un workflow minimal pour un débutant

Dans darktable, vous avez le choix entre 77 modules qui vont vous permettre de faire la même chose de plein de façons différentes. Mais c’est souvent une illusion de choix, car beaucoup d’entre eux ont autant d’inconvénients que d’avantages. Si vous ouvrez le code source des modules déconseillés ci-dessus, vous vous rendrez compte qu’ils sont quasiment tous datés de 2010-2011 et qu’on a dû les garder pour tenir la promesse de rester compatible avec les anciennes retouches.

Vous pouvez pratiquement réduire au moins 80 % de votre retouche à 4 modules :

  1. exposition,
  2. balance des blancs,
  3. balance couleur
  4. filmique.

S’ils sont si puissants, c’est qu’ils sont en réalité extrêmement simples, quand vous regardez leurs équations :

  • Exposition : RGB_sortie = exposition × RGB_entrée + niveau de noir
  • Balance couleur :
    • CDL : RGB_sortie = (slope × RGB_entrée + offset)^power
    • contraste : RGB_sortie = (RGB_entrée / pivot)^contraste × pivot
  • Balance des blancs : RGB_sortie = coefficients × RGB_entrée
  • Filmique est un poil plus complexe, mais ça reste des maths de niveau lycée.

Avec ces 4 modules, vous avez tout ce qu’il faut pour produire une image regardable, corriger les soucis de colorimétrie, le contraste et ajouter une intention artistique. Pensez à désactiver la courbe de base si vous passez par filmique. Ensuite, suivant les besoins, complétez avec les modules suivants :

  • Pour améliorer l’acutance, la meilleure option est le module contraste local, en mode laplacien local.
  • Pour déflouter l’objectif, vous avez des pré-réglages de défloutage plus ou moins prononcé dans l’égaliseur de contraste.
  • Pour débruiter, le meilleur algorithme est dans le module réduction du bruit (profil), en mode moyennes non-locales auto si vous ne voulez pas vous casser la tête.
  • Pour supprimer la brume, vous avez un module de suppression de la brume,
  • Pour faire un noir et blanc, le plus simple est d’utiliser les pré-réglages de films dans le mixeur de canaux,
  • Pour un contrôle créatif du contraste global et rééclairer la scène a posteriori, utilisez le module égaliseur de tons.

Certains de ces modules sont d’une puissance méconnue, et largement sous-exploitée :

  1. Le module exposition, avec ses masques, peut remplacer toutes les options de mappages HDR, ombres et hautes lumières, l’égaliseur de tons, les courbes de tonalités, et même le contraste local (dans une certaine mesure), utilisé en fusion multipliée.
  2. Le module mixeur de canaux peut venir à bout de tous vos problèmes de gamut, y compris les problèmes de lumières de scène bleues, sans avoir à utiliser un faux profil d’entrée, mais également transformer l’herbe en neige ou des arbres d’été en arbres d’automne.
  3. La balance couleur peut vous permettre d’émuler les couleurs d’une pellicule, de compenser une balance des blancs inégale, de supprimer des rougeurs sur la peau, d’accentuer le relief, de créer un split-toning, ou de donner une ambiance apocalyptique à vos images.

Enfin, pour n’afficher dans l’interface qu’une sélection minimale et raisonnable de modules, à droite de « Plus de modules », ouvrez la liste des presets et choisissez « Atelier – générique ».

darktable est quand même franchement plus simple quand vous avez compris que vous n’aviez pas à utiliser tous ses 77 modules en même temps…

Si vous avez un doute sur l’ordre des modules, sachez que l’ordre par défaut pour la version 3.0 a été pensé de façon globale, et à part quelques incertitudes sur la meilleure position des modules vignettage ou monochrome, le reste se tient de façon plutôt solide, en théorie et en pratique.

Conclusion

Pousser des valeurs de pixels dans un sens ou dans l’autre, c’est une chose. Fusionner les corrections pour qu’elles se fondent discrêtement dans l’ensemble en est une autre. Nous avons vu que le Lab ou le RGB non-linéaire permettent de pousser les pixels plus ou moins correctement, mais que c’est toujours au niveau de la fusion et des flous qu’on paie la facture. Or il se trouve qu’ils y a beaucoup de flous, sous le capot de darktable, parfois où on ne les attend pas. C’est particulièrement problématique quand on fait du compositing, c’est à dire de l’incrustation d’une image dans une autre, pour échanger leur arrière-plan sans toucher au premier plan par exemple. Et c’est précisément ce type de manipulation qui a conduit l’industrie du cinéma à migrer vers le linéaire relatif à la scène depuis déjà une vingtaine d’années.

darktable paie 10 ans de design opensource. Design opensource, ça veut dire que tout le monde et n’importe qui peut sauter sur son éditeur de texte pour coder des trucs avant d’avoir couché les maths sur une feuille et vérifié que la théorie se tenait ou que le problème à résoudre était clairement posé. Ça donne de bonnes surprises, parfois, mais souvent des erreurs fondamentales, commises notamment sur les espaces de couleurs, avec des fonctions de transfert linéaires appliquées dans des espaces non-linéaires, ou des ajustements HDR appliqués dans espaces SDR. Ce type d’erreurs arrivent aussi dans Gimp, Krita, Blender, etc. Comme le traitement d’image ne risque de tuer personne, on se permet un laxisme qui serait intolérable en médecine ou en génie civil.

La théorie donne des boutons aux utilisateurs comme aux développeurs, et il va falloir que ça cesse assez vite si on ne veut pas continuer à tourner en rond ces 10 prochaines années. Tout ce qui marche sur le papier ne marche pas toujours en pratique, mais tout ce qui ne marche pas sur le papier est garanti d’échouer en pratique. Le fait est que l’abstraction et les mathématiques font peur aux gens, alors qu’ils simplifient considérablement le résolution des problèmes complexes. Ce qui devrait effrayer, c’est plutôt l’absence de modèle mathématique clair pour décrire la réalité qu’on manipule dans le logiciel, parce que celui-ci ne sait rien faire d’autre que des calculs, donc autant qu’ils soient propres.

La leçon à tirer de tout ça, c’est de passer plus de temps à faire des recherches et de mettre à plat la théorie disponible sur le papier, avant de s’embarquer dans le code. C’est de définir les contours des problèmes plus précisément, et le cadre de la solution plus clairement, avant de se jeter sur la première solution trouvée et de coder n’importe quoi. Et c’est aussi de s’inspirer de ce que fait le cinéma, parce qu’ils travaillent avec d’avantage de contraintes que la photo, ce qui les oblige à être plus rigoureux et finalement plus intelligents.

darktable est donc en transition. C’est long, c’est parfois pénible, il y a plein de petits bouts à changer à différents endroits et ça fait râler les utilisateurs avides de cohérence. Au moins, maintenant vous savez le pourquoi et le comment. Vous savez aussi ce que vous avez à y gagner. J’espère que ça vous aidera à progresser.

Pour les nouveaux utilisateurs, limitez vous aux modules recommandés ci-dessus, et aventurez-vous plus loin quand vous commencerez à être à l’aise. Pour les anciens utilisateurs, les nouveaux modules ont beaucoup à vous apporter, mais les anciens en Lab restent pertinents pour des effets créatifs modérés et utilisés en connaissance de leurs dangers.

La boîte à outils linéaires est en train de s’étoffer. Au programme :

  • la ré-écriture de la balance couleur 100 % RGB (y compris la fusion), avec ajout de la vibrance (et une équation de vibrance développée maison pour préserver la teinte),
  • la conversion de l’égaliseur de contraste et de l’effet Orton vers l’espace xyY linéaire (parce qu’en fait, l’effet Orton, lorsqu’il marche comme il devrait, est très utile),
  • un égaliseur de couleur, similaire à l’égaliseur de tons, qui permettra d’ajuster saturation, vibrance et effet Abney en fonction de la luminance des pixels, pour redonner du peps à la courbe filmique,
  • un tout nouveau module de déconvolution des objectifs, respectueux de la profondeur de champ (mais pour ça, il faut que je développe encore une ondelette spéciale basée sur le filtre guidé), qui devrait transformer vos 18-55 mm tout mous en Zeiss pour vraiment moins cher,
  • et bien sûr la version OpenCL de l’égaliseur de tons.

Voilà, il y a plus de boulot que de gens pour le faire, donc souhaitez-nous bonne chance, n’oubliez pas de nous soutenir, et bonne année 2020 à vous tous !

Aurélien PIERRE

Photographe portraitiste à Nancy-Metz. Spécialiste en calcul, modélisation et simulation numérique pour le traitement d'image (débruitage, défloutage, gestion de la couleur) et le génie thermique. Développeur de filmique, égaliseur de ton, balance couleur, du focus-peaking, etc. Utilisateur de darktable depuis 2010. darktable est mon métier, pensez à m'aider à le développer.

24 thoughts to “darktable 3 : RGB ou Lab ? Quels modules ? Au secours !”

  1. Bonjour Aurélien,

    Merci pour ces explications et globalement pour ta forte implication dans le développement de Darktable. Afin de rendre l’outil plus accessible à tous, ne serait-il pas possible de purger un peu les modules pour ne faire apparaître que ceux vraiment utiles et à utiliser désormais. Je peux comprendre la nécessité de garantir la compatibilité mais jusqu’où. Après une dizaine d’années d’existence un bon nettoyage ne serait pas du luxe. Après tu vas me dire facile à dire mais pas à faire.

    Cordialement.

    1. Et pourquoi 10 ans et pas ou 6 ans, et j’exclus ceux qui ont quitté un moment darktable et voudraient y revenir. A l’intall, darktable active un nombre limité de modules et te permet d’en activer/desactiver en fonction de tes besoins.
      J’ai d’ailleurs vu des tutos qui prétendent que darktable est installé avec toute la liste de modules actifs.

      1. Waouh, merci Aurélien ! Je pense que ce billet mérite à être publié et connu le plus largement possible !

        Moi je pensais plutôt à un “mode” 1) “comme avant” avec tous les modules dispo ou 2) “moderne”/”avancé”/etc avec le minimum de modules nécessaires. Ou à la manière de “groupes”/”ateliers” qui sont arrivés dans dt 2.6 (je crois)

        C’est vrai que les débutants seront plutôt rassurés de voir par exemple “luminosité/contraste” ou “monochrome”. Moi maintenant je m’en passe (j’essaie) mais au début ça me semblait vraiment la base de bases !

  2. Merci beaucoup Aurélien pour cet article et ceux précédemment écrits sur le sujet du RGB linéaires.
    Cela permet d’affiner mes connaissances sur la photo numérique. Bien que mon niveau de math est très loin derrière moi j’arrive quand même à suivre assez bien grâce à tes explications simplifiées.
    Bon il me reste encore beaucoup de “boulot” pour bien maîtriser darktable dans certaines conditions particulières. Mais les photos de je viens de redévelopper avec la version 3.0.0 me donnent un résultat bien plus satisfaisant et me redonne confiance en dt.
    Mais mon travail est loin d’être aussi ardu que le tien.
    Bon courage pour la suite

  3. Un immense merci pour cet article limpide et remarquablement exhaustif. Il répond à toutes les questions que je me posais sur la compatibilité entre modules et sur les modes de fusion. Par ailleurs, je n’avais aucune idée des différentes manières d’utiliser les modules de la pile rvb, telles qu’elles sont proposées ici. Ce document va changer mon workflow 🙂

  4. Merci pour ton travail de vulgarisation pour les incultes comme moi et de développement avec l’équipe DT. Quel investissement !
    C’est passionnant à suivre comme projet et en plus, j’y apprends énormément de choses pour ma culture personnelle.
    Meilleurs vœux pour cette année, et brillante continuation.

  5. Merci Aurélien,

    Je me régale à chaque fois que je te lis !! Eh oui quel investissement !!

    et ensuite, je me régale sur darktable !!

    Vivement que mon niveau progresse encore un peu afin que je puisse me rendre plus utile …

  6. J’ai eu la chance de découvrir DT avec l’arrivée de filmique : un grand merci pour ce gros boulot.
    Juste une question pour la conversion en N&B : pourquoi ne pas désaturer dans filmique ? Il y a une différence avec la balance des couleurs (je ne cherche pas l’effet argentique) ?

    1. La désaturation dans filmique v2 était là pour alléger le souci de resaturation, qui était une erreur dans l’ordre de calcul interne. Filmique v3/RGB a réglé ce problème, donc la désaturation globale de filmique a été supprimée. Mais la correction de saturation (globale) de filmique v2 était exactement la même que la saturation de la balance couleur, simplement dupliquée dans l’interface pour une meilleure ergonomie. Donc aucune différence entre les deux.

  7. Article très bien foutu, il répond aux questions que j’étais en train de me poser, à savoir comment travailler dans dt autour de filmique.

    Je vais pouvoir comprendre différents points

    Merci

  8. Encore une fois un excellent article (l’un des meilleurs peut-être même à ce jour sur darktable). Les modules déconseillés devraient d’ailleurs devenir obsolètes comme filmique v1/v2 (conserver la compatibilité mais ne plus permettre leur usage)… En tout cas, ça va me permettre d’ajuster encore quelques trucs et améliorer mes traitements.

    En dehors de ça, va savoir pourquoi j’ai surtout retenu une phrase : “De façon générale, le photographe numérique du 21e siècle gagnerait à se calmer le pompon avec la netteté qui croustille, ça ferait du bien à tout le monde.”
    Ah bah oui, parce que j’approuve et j’adore ! En photo, il n’y a pas que le piqué…

  9. Bonsoir Aurélien
    Chapeau bas l’artiste pour cet excellentissime article.
    Que d’éclaircissements sur les espaces de couleurs et leur implication dans DT !
    Il répond parfaitement à mes lacunes sur les modules à utiliser après les 4 incontournables en fonction de ce que l’on veut peaufiner dans son image.
    Encore un grand MERCI pour ce fabuleux travail et ses résultats dans cette version 3.
    La conclusion me fait rêver sur son avenir et me donne vraiment envie de participer au soutien de DT.
    Très belle année 2020 et plein de plaisir dans la continuation du développement.

    1. J’avais zappé que tu parlais français !

      Si tu as du temps, ce qui serait génial, ce serait d’ajouter un mode xyY (linéaire) aux modules Lab qui travaillent sur la netteté (passe-haut, passe-bas, renforcer la netteté et égaliseur de contraste).

      Il suffit simplement de convertir de Lab vers XYZ au début de la fonction process(), puis de XYZ vers xyY (http://www.brucelindbloom.com/index.html?Eqn_xyY_to_XYZ.html). Le canal Y sera utilisé dans l’algo de base à la place du canal L. Ensuite, à la sortie de l’algo, on reconvertit du xyY vers XYZ (http://www.brucelindbloom.com/index.html?Eqn_xyY_to_XYZ.html) puis Lab. Il faudra juste faire attention de mettre à l’échelle les valeurs, je crois que L est encodé entre [0: 100] et a, b entre [-128;+128] (à vérifier), alors que xyY est entre [0;1]. Pour passe-haut, passe-bas, et renforcer la netteté, ça va se régler par un Y×100 avant et un Y/100 après, mais pour l’égaliseur de contraste, il faut vérifier s’il y a des seuils statiques codés en dur pour la chrominance.

      Ensuite, câbler ça à l’interface via une liste déroulante “espace de couleur” à deux options : Lab (non-linéaire) et xyY (linéaire).

      Le plus dur, c’est de propager le changement sans faire d’erreurs à travers le C, le SSE2 et l’OpenCL. C’est un boulot méthodique qui demande de ne pas être dérangé pendant 4h.

  10. Je ne sais pas comment remercier Aurélien Pierre, depuis que j’ai commencé à utiliser en dilettante dt (v2.4) je me demande sur quelle base construire un workflow et l’expliquer (ou l’enseigner) à ceux que je tente de convaincre. J’ai lu le manuel, fréquenté le blog et le forum écouté nombre de tutoriels et même visité le fil sur framateam, en ayant la désagréable impression de tourner en rond. La mise en perspective de cet article avec la belle conférence de Gérard Berry qu’Aurélien Pierre nous avait signalée il y a quelques mois (https://darktable.fr/2019/06/comment-linformatique-change-la-photographie/) m’apporte enfin une solution qui me donne pleine confiance dans dt. Voici ce que je retiens de cette conférence et de ce superbe article d’Aurélien Pierre (et de diverses lectures sur la vision dont https://fr.wikipedia.org/wiki/%C5%92il_humain)

    + Notre vison est alimentée par notre oeil par la captation faite par la rétine
    – par les cônes pour les 3 couleurs primaires rouges vert bleu
    – par les bâtonnets pour l’intensité lumineuse
    – avec une grande sensibilité : la rétine permet une variation de 20 à 24 IL
    – en privilégiant le sombre en protégeant de l’éblouissement : la relation quantité de lumière reçue / perception n’est donc pas linéaire, elle est le résultat de l’évolution, dès que l’oeil est apparu dans la nature : le danger et la nourriture étaient dans l’ombre
    – a un petit angle de visée qui bouge tout le temps (des dizaines de fois par seconde)
    . angle de vision nette (6 degrés, lecture 20 degrès)
    . angle de perceptiion des couleurs (60 degrés)

    + puis est fabriquée dans notre cerveau
    – essentiellement à partir des contrastes et des mouvements entre la multitude de perceptions reçues en permanence depuis la rétine
    – en ajustant les couleurs en fonction de la source de lumière et des connaissances préalables des objets perçus
    – la notion de profondeur de champ n’est pas pertinente car l’oeil ajuste en permanence très vite en déplaçant le focus
    – Ce que nous percevons est donc une construction à partir des signaux émis par la rétine dans notre cerveau en temps réel en fonction de ce qui nous intéresse : notre cerveau est algorithmique et partial !

    + Notre caméra capture une matrice de pixels
    – Les capteurs pour les 3 couleurs sont linéaires et limités à 10 à 14 EV
    – perturbés par du bruit dans le sombre
    – coupent les hautes lumières brusquement
    – les objectifs ont plus ou moins une profondeur de champs
    – elle a des défauts qui une fois connus peuvent être corrigés plus ou moins bien par des algorithmes
    + Prise de vue : poser pour les hautes lumières avant écrêtage, ce qui implique poser le plus possible et donc en même temps en registrer le plus possible les sombre.

    + Développement : faire dans la mesure du possible le travail du cerveau afin de restituer la perception initiale du photographe à l’aide d’algorithmes à partir de la capture initiale (le fichier raw), essentiellement
    – calculer les pixels
    – équilibrer les sombres et le clair pour pallier à la linéarité de la capture et la dimension de la plage dynamique disponible
    – ajuster les couleurs
    – corriger les défauts géométriques de la caméra et de ses objectifs
    – adapter au média de diffusion
    – et enfin et (surtout) apporter notre vision personnelle

    Avec ça on voit se dérouler naturellement et facilement un enseignement de dt (v3 bien sûr), j’ai un petit fils et des amis à former en plus de moi-même. Je vais attaquer ça en exploitant au maximum ce que les autres ont fait, en tant que libriste convaincu, pas question de ré-inventer la roue (Je compte réaliser ça avec une licence CC la plus libre possible en fonction du matériel réutilisé sur un wiki sur mon serveur yunohost installé sur un raspberry à la maison. Si ça intéresse quelqu’un je fournirai le lien, et pourquoi pas participer à la réalisation d’un livre accessible à tous, on peut bien rêver un peu).

      1. C’est ici https://pascot.ca/labo/
        Je compte y consacrer du temps chaque jour mais ça prendra un peu de temps car en avançant je tombe sur des os, par exemple hier comment expliquer clairement pellicule, dossier, catégorie et leur usage. Je pense avoir finalement une interprétation sensée mais ça demande une ré-écriture partielle de ma présentation. Il faut distinguer le stockage physique de l’indexation car la notion de pellicule si elle a une réalité évidente en argentique elle n’a plus de sens en numérique car on fait les choses différemment (pensez aux planches de contact pellicule par pellicule ainsi qu’à l’archivage ou aux backups); une séance peut contenir plusieurs pellicules, mais alors quid de la pellicule qui contient plusieurs séances ou sujets … On sent bien le problème quand on voit la chronologie ajoutée à la table dans la v3.
        Je tente ainsi d’appliquer à la table lumineuse la même approche que pour le traitement et comme Aurélien Pierre se heurte au légacy pour le traitement il en est de même pour l’acquisition, la recherche et la conservation.

  11. Bonjour Aurélien,
    Merci pour cet exposé fort intéressant.
    Une question pratique quant a l’usage de darktable et Filmique: Comment je sais si je travaille pour un écran ou pour une photo papier? Comment vérifier la dynamique final résultante (par le calcul, par l’histogramme?)? Je ne comprend pas très bien la méthode a appliquer dès le départ encore..
    Les profils d’entrée et de sortie sont un peu compliqués aussi a comprendre pour moi et la notice de la V3 n’est pas encore disponible.
    Merci d’avance
    A bientôt
    David

    1. Hello David,

      Même réponse que d’habitude : la dynamique de sortie n’est pas ton problème, mais celui du logiciel, qui doit avoir un profil ICC où la luminance du point noir est renseignée pour le medium utilisé.

      Le problème des profils ICC est qu’ils ne sont pas prévus pour le HDR, donc le mappage de tonalités. Mais on sait globalement qu’ils sont prévus pour une sortie 8 bits, donc un contraste théorique maximal de 255:1. LittleCMS (comme les autres CMS) a ce qu’il faut pour adapter le point noir dans une gamme de contraste de 50:1 à 245:1, en allant chercher la densité du noir dans le profil ICC.

      Pour l’instant, darktable ne gère pas la couleur en sortie dans un espace HDR (large gamut + encodage 10 bits), principalement parce que les drivers graphiques 10 bits sous Linux fonctionnent plus ou moins. darktable postule une sortie SDR.

      Donc filmique se charge de mettre le signal dans un état standard compatible avec ICC (SDR, gris moyen ajusté à 18 %, noir à 0 %, blanc à 100 %), à partir de conditions inconnues que tu dois régler manuellement. C’est la raison pour laquelle l’onglet “affichage” de filmique n’a pas besoin d’être touché dans 99,99 % des cas. À partir du moment où ça a l’air bien sur l’écran, si le logiciel de gestion de la couleur fait son boulot avec un profil ICC complet, ça devrait être être bien en sortie d’imprimante.

      Mais devoir ajuster à la main pour les différentes plages dynamiques de sortie, c’est précisément ce qu’on cherche à éviter. C’est pour ça qu’on travaille avec des profils, qui vont fournir les paramètres du medium à un logiciel qui va compenser l’image de façon automatique pour que le résultat soit visuellement cohérent d’un medium à l’autre.

  12. Bonjour,

    Grand utilisateur de Photoshop, puis à sa création de Lightroom/Photoshop

    Je suis ensuite passé a CaptureOne, bien plus pertinent selon moi pour le travail colorimétrique que Lightroom et toujours associé a Photoshop pour la grosse retouche/montage photo.

    Je compte partir de Photoshop vers Affinity Photo voir Gimp et je suis en train de m’intéresser de plus en plus à Darktable.

    Il y a un truc que je ne comprends pas trop, enfin deux.

    Il semblerait que “l’avenir” (pour avoir un workflow de qualité dès le départ du traitement de la photo RAW) serait de travailler avec des outils fonctionnant en RGB linéaire (si j’ai bien compris).

    (Je remercie l’auteur Aurélien de ce sujet, ainsi que d’une manière générale cette communauté de développeurs autour de Darktable, qui sans eux ne serait pas devenu le logiciel qu’il est et qui m’attire de plus en plus).

    J’en viens aux 2 points qui me turlupinent :

    1.Pourquoi ce n’est pas indiqué dans darktable les modules qui ne fonctionnent pas en RGB linéaire ? (découvrant tout juste le logiciel, si il faut s’est indiqué, idiot que je suis).
    Car finalement c’est grâce à cet article que je vais pas aller n’importe où, étant un ancien de lightroom et captureone je serai allé plus facilement sur des outils dont les noms me rappellent ce que je ne connais, hors la plupart ne sont pas terrible (selon le sujet ici) et certains outils qui m’auraient moins parlé seraient, a défaut de ne pas être en full RGB linéaire, meilleurs dans tous les cas.

    (si vous arrivez à comprendre ce que j’écris vous êtes balaises, je viens de me perdre ^^).

    2.Je n’arrive pas à comprendre l’ordre des modules, encore une fois venant d’un autre univers je ne suis sûrement pas aidé et mon niveau d’intelligence ou plutôt de logique n’est peut être pas le meilleur :

    Voici la liste des modules actifs : (en 1 c’est en haut, et je descend vers le bas pour énumérer les autres modules jusqu’au dernier, celui le plus bas dans la liste :

    -1 : profil de couleur de sortie (j’aurai cru le voir en dernier dans la liste, sauf si la liste est inversée ?!)
    -2 : filmique rvb
    -3 : courbe de base
    -4 : profil de couleur d’entrée (bas lui je l’aurai vu en premier, ou dernier si l’ordre était inversé, mais non ?! ?!)
    -5 : orientation
    -6 : dé-matriçage
    -7 : reconstruire hautes lumières
    -8 : balance des blancs
    -9 point noir/blanc raw

    Pour les modules actifs, ce sont de simples essais que je faisais tout en découvrant cet article (je découvre le logiciel).

    Je vous remercie, ceux qui pourront m’éclairer, je vais aussi regarder quelques vidéos sur la version 3, mais je n’ai pas le souvenir (pour en avoir regardé quelques unes des anciennes versions de darktable) d’avoir eu des infos sur le RGB linéaire et même l’ordre des modules (qu’ils soient dans le panneau des modules actifs, ou pire le panneau des modules favoris, celui que j’aimerai me faire et mettre dans LE BON ORDRE les modules de tout mon workflow habituel que j’ai dans capture one car contrairement a lightroom on peut se configurer des panneaux avec des modules dans l’ordre que l’on souhaite).

    Par ailleurs, si ya une bonne âme je peux donner (a priori) la liste des modules DT qui correspondraient à mon workflow habituel CaotureOne ^^ ^^ ^^ ^^ (Sait-on jamais ^^)

    Par avance : merci de m’avoir lu et le cas échéant aidé 😉

    1. Alors j’ai regardé cette vidéo de toi, de vous Aurélien Pierre (enfin j’ai pas encore fini) et j’ai eu pas mal de réponses !

      https://www.youtube.com/watch?v=UrndzJmbkSo&feature=emb_rel_pause

      Un extrait vers 47:30 min sans m’y connaître autant que toi mais je n’avais jamais compris pkoi le module de recadrage se faisait vers la fin, alors que une photo déjà de base on est censé bien la cadrer dès la prise de vue mais que selon moi c’est un des premiers réglages a faire avant meme une balance des blancs ou exposition, le cadrage de la photo c’est la zone d’image sur laquelle on est censé bosser et ca doit se faire dès le départ !

      Voilà pourquoi entre autre j’ai toujours eu du mal a Darktable, car même sans connaître beaucoup de théorie à la photo ou la technique pure (physique, optique, informatique) il y a toujours eu des incohérences, des choses folles qui ne sont pas logique dans le traitement et la retouche d’une photo.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.