Balance de couleur RVB
Un module avancé qui apporte les outils de gradation des couleurs de la cinématographie dans le pipeline graphique relatif à la scène.
Ce module ne convient pas aux débutants qui n’ont aucune connaissance préalable de la théorie des couleurs. Ils devraient s’en tenir aux paramètres Chroma globale et Vibrance globale jusqu’à ce qu’ils aient une bonne compréhension des Dimensions de la couleur.
🔗Introduction
La gradation de couleurs est une partie importante de l’édition d’images. Elle peut aider à éliminer les dominantes indésirables et peut également apporter une touche de couleur créative qui ajoutera une atmosphère à vos images. À l’époque de la photographie argentique, la majeure partie de l’ambiance des couleurs était due au film et aux produits chimiques de développement, avec une calibration basique effectuée sous l’agrandisseur avec des têtes couleur. Cela consommait des ressources coûteuses et était principalement réservé à l’industrie du cinéma, où le travail était effectué par un coloriste.
À l’ère numérique, où les images RAW ont une apparence plate et uniforme, la gradation des couleurs assure le même rôle que les émulsions de film, en réintroduisant des changements de couleur à des fins esthétiques. Elle peut également servir à harmoniser les couleurs d’une série d’images (qui peuvent avoir été prises dans des conditions différentes) pour obtenir un aspect global cohérent. Pour cette tâche, le Vectorscope est également extrêmement utile.
Les coloristes divisent généralement la gradation des couleurs en deux étapes distinctes :
-
Une gradation primaire des couleurs qui vise à corriger les dominantes de couleurs indésirables et à créer un point de départ neutre,
-
Une gradation secondaire des couleurs qui donne à l’image son aspect et son atmosphère finaux.
Il est préférable de laisser la gradation primaire des couleurs au module Calibration des couleurs, qui fonctionne dans un cadre physique mieux adapté à la correction de l’illuminant. La Balance de couleur RVB, quant à elle, concerne principalement la gradation secondaire des couleurs. Effectuer une gradation primaire des couleurs vraiment neutre devrait faciliter le transfert de la gradation secondaire des couleurs entre les images (via les styles, les préréglages ou le copier-coller) avec un effet similaire.
🔗Principes généraux
Le module Balance de couleur RVB est une amélioration par rapport à American Society of Cinematographers Color Decision List (ASC CDL), et utilise des masques alpha pour appliquer séparément l’effet sur les ombres et les hautes lumières. Le CDL classique agit sur toute la plage de luminance, et chacun de ses paramètres se voit attribuer plus de poids sur certaines parties de l’image uniquement en tant qu’effet secondaire des mathématiques.
Ce module fonctionne pour l’essentiel (4 voies, Chroma, Vibrance, Contraste), dans un espace colorimétrique RVB linéaire conçu spécifiquement pour la gradation des couleurs. Cet espace colorimétrique présente un espacement uniforme des teintes perceptives tout en conservant une luminance à l’échelle physique1. La partie perceptuelle du module (Saturation et Brillance) fonctionne dans l’espace colorimétrique JzAzBz2, qui fournit une mise à l’échelle perceptuelle de la clarté et de la chromaticité compatible avec les images HDR. Les deux espaces colorimétriques garantissent que les changements de saturation et de chroma ont lieu à teinte constante, ce qui n’est pas le cas pour la plupart des autres opérateurs de saturation dans darktable (notamment dans l’ancien module Balance de couleur).
Le module Balance de couleur RVB attend une entrée, linéaire, relative à la scène et produit une sortie RVB relative à la scène, qui peut être linéaire ou non selon les paramètres du module (Contraste et Puissance délinéariseront la sortie).
At its output, color balance RGB checks that the graded colors fit inside the pipeline RGB color space (Rec. 2020 by default) and applies a soft saturation clipping at constant hue, aiming to retarget out-of-gamut color to the nearest in-gamut color by scaling both chroma and lightness. This prevents the chroma and saturation settings from pushing colors outside of the valid range and allows more drastic adjustments to be safely used.
Notez que ce module respecte les définitions CIE de chroma et de saturation, comme expliqué dans la section Dimensions de la couleur.
🔗Contrôles du module
🔗Onglet Maître
- Virage de teinte
- Fait tourner toutes les couleurs de l’image d’un angle sur le plan de chromaticité, à luminance et chroma constantes. Vous pouvez utiliser ce contrôle pour supprimer les fuites de lumière colorée sur un sujet ou pour changer rapidement la couleur d’un objet. Ce paramètre est généralement mieux appliqué localement, en utilisant les masques.
- Vibrance globale
- Cela affecte la dimension chroma de la couleur sur l’ensemble de l’image, en donnant la priorité aux couleurs à faible chroma. Cela permet d’augmenter la chroma des couleurs neutres sans exagérer les pixels déjà colorés.
- Contraste
- Ce réglage est appliqué sur le canal de luminance à teinte et à chroma constantes. Le paramètre Pivot du gris contrasté (dans Seuil de l’onglet Masques), vous permet de définir le point neutre de la courbe de contraste :
- au point pivot, la courbe de contraste laisse la luminance inchangée,
- en dessous du point pivot, la courbe de contraste diminue la luminance pour les valeurs de contraste positives, ou l’augmente pour les valeurs négatives,
- au dessus du point pivot, la courbe de contraste augmente la luminance pour les valeurs de contraste positives, ou la diminue pour les valeurs négatives.
-
Le pivot a une valeur de 18,45 % par défaut, ce qui est cohérent avec le flux de travail actuel relatif à la scène et devrait s’adapter à la plupart des cas d’utilisation (en supposant que la luminosité globale ait été corrigée comme recommandé à l’aide du module Exposition.
-
L’algorithme de contraste donne des résultats naturels qui imitent la partie centrale de la courbe de contraste d’un film analogique. Cependant, cela augmentera également la plage dynamique de l’image, ce qui peut invalider les paramètres Filmique RVB dans le pipeline graphique. Pour les réglages de contraste globaux, vous devriez normalement utiliser le module Égaliseur de tons – le curseur Contraste dans Balance de couleur RVB est mieux utilisé avec les masques, par ex. pour des corrections sélectives sur le premier plan ou l’arrière-plan.
🔗Gradation de chroma linéaire
Le réglage de chroma linéaire affecte la dimension chroma proportionnellement à sa valeur d’entrée, à teinte et luminance constantes. Il le fait globalement, avec un coefficient constant (en utilisant la Chroma globale), et sur chacun des masques Ombres, Tons moyens et Hautes lumières (définis dans l’onglet Masques sous Étendues de luminance).
🔗Gradation de saturation perceptuelle
Le réglage de saturation perceptuelle affecte à la fois la luminance et la chroma, dans un espace perceptuel, proportionnellement à sa valeur d’entrée, à teinte constante. Il le fait globalement avec Saturation globale, et sur chacun des masques Ombres, Tons moyens et Hautes lumières (définis dans l’onglet Masques sous Étendues de luminance).
🔗Gradation de la brillance perceptuelle
Le réglage de la brillance perceptuelle affecte à la fois les dimensions de luminance et de chroma, dans un espace perceptuel, proportionnellement à sa valeur d’entrée, à teinte constante, et dans une direction orthogonale à la saturation. Son effet est proche de celui d’une modification de l’exposition, mais à l’échelle perceptuelle. Il le fait globalement avec Saturation globale, et sur chacun des masques Transition des ombres, Pivot du gris moyen du masque et Transition des hautes lumières (définis dans l’onglet Masques sous Étendues de luminance).
🔗Onglet 4 voies
Chacun des paramètres de l’onglet 4 voies est composé des trois mêmes composants, qui définissent une couleur à l’aide de coordonnées indépendantes :
-
Luminance,
-
Teinte,
-
Chroma.
Une entrée de couleur comme celle-ci définit un virage de couleur appliqué à l’image globalement ou sur la plage de luminance définie.
Chaque curseur de teinte a une pipette de couleur, qui peut être utilisé pour calculer la couleur opposée de la région sélectionnée. Ceci est utile pour réduire les dominantes de couleur indésirables (par exemple, la rougeur de la peau), car le fait de déplacer la couleur vers son opposée la neutralise.
🔗Décalage global
Cela équivaut au décalage ASC CDL et revient à ajouter une valeur RVB constante à tous les pixels, tout comme la Correction du niveau du noir dans le module Exposition. Ce contrôle n’utilise pas de masque.
🔗Lift des ombres
Ceci est conceptuellement équivalent au Lift de Lift/gamma/gain, bien qu’implémenté différemment, et revient à multiplier les pixels masqués par une valeur RVB constante. Il est appliqué à l’aide du masque Ombres.
🔗Gain des hautes lumières
Cela équivaut au Slope ASC CDL et revient à multiplier les pixels masqués par une valeur RVB constante. Il est appliqué à l’aide du masque Hautes lumières.
🔗Puissance
Cela équivaut au Power ASC CDL et revient à appliquer un exposant constant en RVB. Il n’est pas masqué et doit être normalisé, car la fonction puissance a un comportement différent au-dessus et en dessous de 1, et nous sommes dans un pipeline illimité où le blanc est généralement supérieur à 1. Le paramètre de normalisation Pivot du blanc est disponible dans Seuil de l’onglet Masques.
🔗Onglet Masques
Cet onglet définit des contrôles auxiliaires pour les onglets précédents. Les contrôles de masquage ne nécessitent généralement aucune modification de l’utilisateur, car les valeurs par défaut sont calibrées pour répondre à la plupart des besoins et répondent aux attentes normales du pipeline de pixels relatif à la scène. Vous ne devriez avoir besoin de modifier ces paramètres que dans des scénarios spécifiques.
🔗Étendues de luminance
Les graphiques montrent l’opacité (sur l’axe y) des 3 masques de luminance par rapport à la luminance du pixel (sur l’axe x). La courbe la plus sombre représente le masque Ombres, la plus claire représente le masque Hautes lumières et la troisième courbe représente le masque Tons moyens.
Seuls les masques Ombres et Hautes lumières peuvent être contrôlés directement – le masque Tons moyens est calculé à partir des deux autres et agit comme une variable d’ajustement.
- Transition des ombres
- Contrôle la douceur ou la dureté de la transition de totalement opaque (100%) à totalement transparent (0%) pour le masque d’ombres.
- Pivot du gris moyen du masque
- Définit la valeur de luminance où les trois masques ont une opacité de 50 %. En pratique, cela est utilisé pour définir comment l’image est séparée en ombres et en hautes lumières.
- Transition des hautes lumières
- Contrôle la douceur ou la dureté de la transition d’entièrement opaque (100%) à entièrement transparent (0%) pour le masque de hautes lumières.
Pour chacun de ces paramètres, un bouton de masque, à droite du curseur, affiche le masque correspondant (Ombres, Tons moyens, Hautes lumières), superposé en damier. La zone encore visible de l’image (non masquée par le masque) est la zone qui sera affectée par les curseurs Ombres, Tons moyens et Hautes lumières des autres onglets.
Tous les aperçus de masque affichent la sortie du module, y compris les modifications de couleur apportées, vous pouvez donc également les activer lors de l’édition, pour ne voir que la partie affectée de l’image.
Les masques de luminance sont calculés à l’entrée du module, ce qui signifie qu’ils sont insensibles aux changements de luminance effectués par le module.
🔗Seuil
- Pivot du point blanc
- Règle la luminance du point blanc en IL. Ceci est utilisé pour normaliser le paramètre Puissance dans l’onglet 4 voies. Les implémentations relatives à la scène des fonctions de puissance supposent que le blanc est à 100 %, ce qui élimine le besoin de normalisation. Dans un contexte relatif à la scène, cela doit être pris en compte.
-
La pipette de couleur à droite du curseur règle automatiquement le pivot du blanc sur la luminance maximale de la région sélectionnée, ce qui devrait être suffisant dans la plupart des cas.
- Pivot du gris contrasté
- Définit le pivot pour le paramètre Contraste dans l’onglet Maître. Cela correspond à la valeur de luminance qui sera laissée inchangée par le réglage du contraste. Ce paramètre correspond généralement à la valeur linéaire du gris moyen. Si vous avez suivi les recommandations de flux de travail relatif à la scène et défini la luminosité globale au début du pipeline, à l’aide du module Exposition, la valeur correcte doit généralement être d’environ 18 à 20 %.
-
La pipette de couleur à droite du curseur règle automatiquement le Pivot du gris contrasté sur la luminance moyenne de la région sélectionnée. Cela repose sur l’hypothèse que la luminance moyenne est généralement proche du gris moyen, ce qui n’est pas vrai si vous avez des reflets spéculaires ou des sources lumineuses primaires dans le cadre, ou pour des images low/high-key.
🔗Formule de saturation
Notez que ce paramètre n’est pas vraiment approprié pour l’onglet Masques (puisqu’il n’est pas techniquement lié aux masques) mais il est placé ici pour économiser de l’espace d’affichage et parce qu’il n’est pas destiné à être utilisé régulièrement. Deux options sont proposées :
- JzAzBz (2021)
- Ce mode est l’algorithme de saturation d’origine. Il utilise l’espace colorimétrique uniforme JzAzBz (UCS) pour calculer la saturation. Cet espace colorimétrique n’est pas destiné aux changements de couleur et sa clarté ne tient pas compte de l’effet Helmholtz-Kohlrausch, qui stipule que les couleurs vives paraîtront plus lumineuses que les couleurs neutres ou presque neutres (gris et pastels) de même luminance. Il souffre également d’un comportement non lisse près du noir, les couleurs étant trop assombries.
- darktable UCS (2022)
- L’espace colorimétrique uniforme de darktable a été conçu dès le départ, en utilisant des ensembles de données de mesures psychoperceptuelles, dans le seul but de la manipulation des couleurs (saturation) effectuée par ce module. Cet espace colorimétrique tient compte de l’effet Helmholtz-Kohlrausch et possède une formule de mappage du gamut intégrée qui est plus précise et efficace que celle qui peut être réalisée en JzAzBz. Il affiche un comportement plus fluide qui rend les changements de saturation plus uniformes sur toute la plage de clarté.
🔗Paramètres de prévisualisation du masque
Ces paramètres s’appliquent aux aperçus de masque, affichés en cliquant sur les boutons de masque dans la section Étendues de luminance. Ces paramètres sont enregistrés globalement et seront donc appliqués à toutes les images suivantes, à moins qu’ils ne soient modifiés.
- Couleur 1 et 2 du damier
- Définit les deux couleurs de la sous-couche du masque du damier d’arrière-plan. Vous pouvez les définir sur des couleurs opposées de l’image actuelle pour faciliter la lisibilité.
- Taille du damier
- Définit la largeur des cellules du damier en pixels (ajustée en fonction du paramètre DPI de l’écran).
🔗FAQ
🔗Saturation ou chroma ?
Comme décrit dans la section Dimensions de la couleur, la saturation et la chroma parcourent le plan (clarté, chroma) dans différentes directions. De plus, la chroma de la Balance de couleur RVB utilise un espace linéaire relatif à la scène, tandis que la saturation utilise un espace perceptuel, qui redimensionne la couleur pour un espacement uniforme.
En pratique, vous devez utiliser le réglage de chroma si vous souhaitez conserver la linéarité de la scène de l’émission lumineuse et/ou conserver la luminance inchangée. Cependant, ces changements peuvent affecter certaines teintes plus fortement que d’autres, en raison du fait que l’espace colorimétrique n’est pas entièrement mis à l’échelle perceptuellement.
La saturation est plus proche de l’effet du mélange de peinture blanche avec une couleur de base. La réduction de la saturation du rouge le dégradera en rose, tandis que la réduction de sa chroma se dégradera en une nuance de gris à la même luminance. La saturation est peut-être un moyen plus intuitif d’interagir avec la couleur, en raison de son lien avec la peinture.
Choisir l’un ou l’autre est principalement une question de décider où sur le graphique (clarté, chroma) vous voulez pousser vos couleurs, et où elles doivent commencer. Pour atteindre des couleurs pastel, la saturation est la voie à suivre. Pour atteindre des couleurs laser (presque monochromatiques), au risque de paraître synthétiques, la chroma est la voie à suivre.
🔗Quel est le lien avec Lift/gamma/gain ?
L’algorithme Lift/gamma/gain repose sur un espace colorimétrique relatif à l’affichage, car il suppose une plage dynamique limitée et symétrique, avec un point blanc à 100 % et un gris à 50 %. En tant que tel, il est tout simplement inutilisable dans un espace relatif à la scène. Cependant, la seule partie incompatible est le lift. Le gamma est exactement le power ASC CDL, et le gain est exactement le slope ASC CDL.
Le module Balance de couleur RVB a simplement deux pentes au lieu d’une : le Gain, appliqué sur les hautes lumières extraites de l’ensemble de l’image par un masque, et le Lift, appliqué de manière similaire mais sur les ombres.
🔗Modification du contraste
Alors que le module Balance de couleur RVB concerne principalement la couleur (d’autres modules gèrent le contraste global de manière à préserver la chromaticité), la luminance fait autant partie de la couleur que la teinte ou la chroma, et elle doit être traitée ici aussi, car la perception de la saturation repose dessus. Si vous souhaitez passer du rouge au rose, par exemple, réduire sa chroma le rendra gris, vous devez donc également augmenter sa luminance.
Il existe plusieurs manières de modifier le contraste dans Balance de couleur RVB, soit localement (avec masques) soit globalement (sans) :
-
dans l’onglet Maître, utilisez le paramètre Contraste (et éventuellement Pivot du gris du contraste dans l’onglet Masques). Sachez que cela augmentera le point blanc et augmentera donc la plage dynamique de l’image, ce qui peut invalider les paramètres filmiques plus tard dans le pipeline graphique.
-
dans Gradation de saturation perceptuelle, désaturer les hautes lumières et resaturer les ombres pour augmenter le contraste de luminance,
-
dans Gradation de brillance perceptuelle, ajoutez de la brillance dans les hautes lumières et supprimez la brillance dans les ombres pour augmenter le contraste de luminance,
-
dans l’onglet 4 voies, réglez la luminance de Lift des ombres sur des valeurs négatives et la luminance Gain des hautes lumières sur des valeurs positives, ce qui produit également une augmentation du contraste de luminance.
La différence entre ces méthodes réside dans la façon dont l’effet sera pondéré par rapport à l’entrée du module. Il est conseillé d’effectuer la majorité des réglages de contraste de luminance dans les modules Filmique RVB et Égaliseur de tons, puis d’effectuer les modifications finales de Balance de couleur RVB tout en examinant les couleurs.
🔗Traitement interne
Voici l’ordre interne des opérations au sein du module :
-
Transforme depuis l’espace RVB du pipeline graphique vers l’espace Ych de Kirk/Filmlight,
-
Applique un décalage de teinte à chroma constante et luminance constante,
-
Calcule les masques de luminance avec Y,
-
Appliquer les paramètres Chroma linéaire et Vibrance à teinte et luminance constantes,
-
Convertit vers l’espace RVB de Kirk/Filmlight,
-
Applique les paramètres de 4 voies (sauf la Puissance de luminance),
-
Revient dans l’espace Yrg de Kirk/Filmlight,
-
Applique la puissance de luminance et le contraste,
-
Convertit dans l’espace JzAzBz,
-
Applique les paramètres de Saturation perceptuelle et de Brillance perceptuelle,
-
Tronque progressivement la chroma en utilisant le gamut RVB du pipeline, à teinte et clarté constantes,
-
Retourne à l’espace RVB du pipeline graphique.
🔗Mises en garde
Le réglage de la Chroma globale à -100 % ne produira pas une véritable image monochrome, comme c’est le cas avec d’autres algorithmes. La raison en est que l’espace RVB utilisé a un point blanc D65 défini dans l’espace CIE LMS 2006, tandis que darktable utilise un point blanc défini dans l’espace CIE XYZ 1931, et il n’y a pas de conversion exacte entre ces espaces. Le résultat sera donc une image en noir et blanc légèrement teintée. Si votre intention est d’obtenir une vraie image en noir et blanc en utilisant le canal de luminance, le module Calibration des couleurs propose un préréglage N&B : basé sur la luminance qui fait exactement la même chose mais sans la différence de point blanc.
Ce module a un mappage de gamut (dans l’espace RVB du pipeline graphique) constamment activé. Cela signifie que si votre image d’origine contient des couleurs largement hors gamut pour commencer, le simple fait d’activer Balance de couleur RVB sans paramètre particulier modifiera légèrement ses couleurs. C’est probablement pour le mieux.
La saturation maximale autorisée dans l’espace RVB de travail du pipeline graphique est enregistrée pour chaque teinte lors de l’initialisation du module, et est ensuite mise en cache dans une LUT (table de correspondance) pour économiser les performances. Si le profil de travail est modifié ultérieurement, le module Balance de couleur RVB n’est pas notifié, ce qui signifie qu’il ne mettra pas à jour sa LUT de teinte/saturation en cache. Pour forcer une mise à jour LUT, vous pouvez simplement modifier n’importe quel paramètre dans le module Balance de couleur RVB, puis le modifier à nouveau. Il n’est pas recommandé de modifier l’espace RVB de travail à mi-chemin d’une session d’édition, car cela pourrait entraîner des changements inattendus de chroma et de teinte.
Pour des raisons de performances, les conversions non linéaires depuis et vers l’espace RVB de travail sont ignorées, ce qui signifie que la colorimétrie interne sera erronée lors de l’utilisation d’espaces colorimétriques non linéaires. Notez qu’il n’y a aucune raison d’utiliser des espaces non linéaires comme espace RVB de travail car ils rendent le mélange alpha plus difficile sans aucun avantage.
-
Richard A. Kirk, Chromaticity coordinates for graphic arts based on CIE 2006 LMS with even spacing of Munsell colours, 2019. https://doi.org/10.2352/issn.2169-2629.2019.27.38 ↩︎
-
Safdar et al., Perceptually uniform color space for image signals including high dynamic range and wide gamut, 2017. https://doi.org/10.1364/OE.25.015131 ↩︎