Le pipeline graphique et l’ordre des modules
La séquence ordonnée des modules de traitement opérant sur un fichier d’entrée pour générer une image de sortie est connue sous le nom de pipeline graphique.
L’ordre des modules du pipeline graphique est représenté graphiquement par l’ordre dans lequel les modules sont présentés dans l’interface utilisateur – le pipeline graphique commence par une image RAW en bas de la liste des modules, et applique les modules de traitement un par un, en empilant une à une les couches de traitement de bas en haut, jusqu’à ce qu’il atteigne le haut de la liste, où il produit l’image entièrement traitée.
Remarque : L’ordre d’exécution des modules de traitement correspond exactement à l’ordre dans lequel les modules apparaissent dans l’interface utilisateur de darktable. La modification de cet ordre dans l’interface utilisateur change la façon dont votre image sera traitée.
🔗types of pixelpipe
Le traitement des images peut nécessiter beaucoup de ressources. Pour cette raison, darktable inclut différents types de pixelpipe, optimisés pour différentes parties du système. Par exemple:
-
Le pixelpipe d’exportation traite l’image grandeur nature en pleine qualité. Il s’agit du type de pixelpipe le plus lent, mais il offre la qualité d’image maximale disponible.
-
Le pixelpipe des vignettes est optimisé pour la vitesse, car il doit traiter plusieurs petites images en même temps sans affecter les performances de la table lumineuse ou de la pellicule. Ces optimisations ont un impact sur la qualité de l’image, mais cela ne pose généralement pas de problème pour les petites images utilisées dans la génération de vignettes.
-
Le pixelpipe standard de chambre noire tente de produire une image aussi précise que possible, tout en conservant sa réactivité lors de la modification des paramètres d’un module. Pour ce faire, il traite uniquement les pixels visibles à l’écran, appelés « région d’intérêt » (ROI). Cependant, cela peut signifier que l’image ne reflète pas avec précision le fichier exporté, en particulier lors de l’utilisation de modules qui s’appuient sur les propriétés des pixels voisins. Ceci est particulièrement visible dans les modules qui ont un impact sur le contraste local (par exemple diffusion ou netteté, réduction du bruit (profil) et contraste local) et peut engendrer que la vue en chambre noire apparaîsse sur-accentuée par rapport à une exportation en taille réelle.
-
Un pixelpipe de chambre noire réduit est utilisé lors de l’interaction avec certains modules de chambre noire qui affichent l’image complète avec des superpositions (comme retouche, recadrage et liquéfier). Ce pixelpipe exclut certains modules lents (comme diffusion ou netteté) afin d’améliorer la réactivité, mais peut temporairement donner à l’image un aspect sous-traité (flou). Cette limitation est supprimée dès que vous déplacez le focus vers un module différent.
-
Afin de surmonter les limitations précédentes dans le pixelpipe standard de la chambre noire, vous pouvez activer mode de traitement de haute qualité dans la vue chambre noire. Ce mode traite l’image entière à l’aide du pixelpipe d’exportation et ne réduit la mise à l’échelle que pour l’affichage à la fin du pixelpipe. Cela signifie que l’image de la chambre noire correspondra très étroitement à l’image exportée, au prix d’une dégradation considérable de la réactivité lors de l’interaction avec les modules de traitement. Il vous est conseillé d’utiliser ce mode uniquement après avoir déjà effectué la majeure partie de votre traitement. Ses performances seront considérablement améliorées grâce à l’utilisation d’un GPU compatible OpenCL.
🔗Ordre des modules et flux de travail
L’ordre dans lequel les modules sont exécutés dans le pipeline graphique a été soigneusement choisi pour donner la meilleure qualité de sortie. Dans les versions précédentes de darktable, il n’était pas possible de modifier l’ordre des modules. Cependant, il existe un certain nombre de cas d’utilisation très spécifiques où le déplacement de certains modules dans le pipeline graphique est conseillé.
L’une des principales raisons de changer l’ordre des modules est venue avec la version 3.0 de darktable, qui a introduit la nouvelle méthode de travail relative à la scène. La version 3.2 a officialisé cela en introduisant les flux de travail relatif à l’affichage et relatif à la scène, qui sont contrôlés par le réglage des Préférences > Traitement > Flux de travail par défaut. À partir de la version 3.6, le flux de travail relatif à la scène est désormais la façon officielle recommandée (et par défaut) d’utiliser darktable.
Le flux de travail relatif à la scène tente d’effectuer autant d’opérations que possible dans un espace colorimétrique RVB linéaire, en compressant uniquement les tons pour s’adapter au support de sortie (avec un mappage de tons non linéaire) à la fin du pipeline graphique. Cela a l’avantage d’être un espace physiquement plus réaliste pour effectuer des transformations que le flux de travail traditionnel relatif à l’affichage, qui tente d’effectuer des opérations dans un espace colorimétrique perceptuel non linéaire. Honorer le réalisme physique (plutôt que le réalisme perceptif) rend beaucoup plus facile la production d’algorithmes de traitement prévisibles introduisant un minimum d’artefacts.
Le diagramme suivant devrait vous aider à comprendre la différence entre ces flux de travail :
-
Les modules relatif à la scène traitent des données linéaires qui sont proportionnelles à la quantité de lumière collectée par le boîtier dans la scène. La plage dynamique d’une image dans la section relative à la scène du pipeline graphique est souvent plus grande que celle du support d’affichage.
-
À un moment donné dans le pipeline graphique, ces valeurs de pixels sont compressées par un mappage non-linéaire dans une plage dynamique plus petite et mieux adaptée à l’affichage sur un moniteur ou à l’impression.
-
Les modules restants opèrent dans la section relative à l’affichage non-linéaire pour produire l’image de sortie finale.
🔗Flux de travail relatif à l’affichage
Avant la version 3.0, le flux de travail de darktable était relatif à l’affichage et cette option est toujours fournie en tant que mode originel. Dans ce flux de travail, la Courbe de base ou Filmique RVB effectue un mappage de tons au début du pipeline graphique et la plupart des autres modules de darktable agissent sur les données image dans l’espace compressé relatif à l’affichage.
La sélection du flux de travail relatif à l’affichage active l’ordre des modules originel (pré-darktable-3.0) et active automatiquement le module Courbe de base pour les nouvelles images.
Les données des pixels dans l’espace relatif à l’affichage ne sont pas linéaires et ne sont pas une représentation physiquement réaliste de la scène originale. Cela peut conduire à divers artefacts avec certains modules, d’où la création du flux de travail relatif à la scène (maintenant flux de travail par défaut).
🔗Flux de travail relatif à la scène
Le nouveau flux de travail relatif à la scène a été introduit dans le cadre de darktable 3.0 ; il est devenu l’option flux de travail par défaut. L’ordre des modules a été entièrement réorganisé pour placer les modules de mappage de tonalité Filmique RVB et Courbe de base beaucoup plus tard dans le pipeline graphique. Cela signifie que la plupart des modules opèrent désormais dans l’espace linéaire RVB avec seulement quelques modules restant dans l’espace non linéaire relatif à l’affichage. Dans ce flux de travail, il est maintenant recommandé que la majorité du traitement d’image ait lieu en utilisant les modules qui, dans la liste ordonnée des modules, sont situés avant Filmique RVB (compris). Étant vraiment linéaires, les opérations de cette section du pipeline graphique sont beaucoup plus réalistes physiquement et produisent moins d’artefacts.
Selecting the scene-referred workflow enables the v5.0 module order and automatically enables the exposure and filmic rgb modules with some presets designed to act as a reasonable starting point for scene-referred editing.
🔗Changer l’ordre des modules
Il reste fortement recommandé aux utilisateurs de ne pas modifier l’ordre des modules dans le pipeline graphique pour un certain nombre de raisons :
-
La séquence des modules a été choisie avec le plus grand soin afin d’obtenir la plus grande qualité de sortie. En général, les modifications apportées à la séquence feraient pire que mieux.
-
Certains modules de traitement d’image n’ont tout simplement pas de sens s’ils sont déplacés dans le pipeline graphique. Par exemple, la Reconstruction hautes lumières doit être effectuée sur les données RAW avant le Dématriçage, qui lui même doit être réalisé avant qu’un quelconque Profil de couleur d’entrée ne soit appliqué.
-
La plupart des modules de traitement ont été conçus pour travailler dans un modèle de couleur spécifique (voir Gestion de la couleur pour plus de détails). Une flexibilité totale exigerait des modules supportant différents algorithmes parallèles en fonction de l’espace colorimétrique dans lequel ils travaillent, ceci augmenterait considérablement la complexité.
Malgré la recommandation générale de laisser tel quel l’ordre des modules du pipeline graphique, il est possible de déplacer un module. Pour ce faire, il suffit de maintenir enfoncé Ctrl+Maj tout en faisant un glisser-déposer du module souhaité à son nouvel emplacement. Cela ne doit être fait que par des utilisateurs expérimentés qui comprennent l’impact que cela aura sur l’image.
The module order can be manually changed back to either the v5.0, v3.0 or legacy versions using the module order module, which can also be used to define your own custom module order presets.