balance 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 un étalonnage basique effectué 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 :

  1. Une gradation primaire des couleurs qui vise à corriger les dominantes de couleurs indésirables et à créer un point de départ neutre,

  2. 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 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 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 couleur).

Le module balance de couleurs RGB attend une entrée relative à la scène linéaire 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).

À sa sortie, balance des couleurs RGB vérifie que les couleurs transformées rentrent dans l’espace colorimétrique RVB du pipeline (Rec 2020 par défaut) et applique un écrêtage de saturation progressif à teinte constante, visant à recentrer la couleur hors gamut vers la couleur dans le gamut la plus proche, en mettant à l’échelle à la fois la chroma et la clarté. Cela empêche les paramètres de chroma et de saturation de pousser les couleurs en dehors de la plage valide et permet d’utiliser des réglages plus drastiques en toute sécurité.

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 maitre

changement 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 du contraste (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 dans le pipeline. Pour les réglages de contraste globaux, vous devriez normalement utiliser le module égaliseur de ton – le curseur de contraste dans balance des couleurs RGB 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 ombres, tons moyens et reflets (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 :

  1. luminance,

  2. teinte,

  3. 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 de noir dans le module exposition. Ce contrôle n’utilise pas de masquage.

🔗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 hautes lumières

Cela équivaut à la pente 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 globale

Cela équivaut à la puissance 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, demi-tons, 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.

🔗seuils

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 du contraste
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 du contraste 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.
UCS darktable (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 des couleurs 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 la puissance ASC CDL, et le gain est exactement la pente ASC CDL.

Le module balance des couleurs RGB 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 la balance des couleurs 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 des couleurs 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.

  • 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 et égaliseur de ton, puis d’effectuer les modifications finales de balance des couleurs RVB tout en examinant les couleurs.

🔗traitement interne

Voici l’ordre interne des opérations au sein du module :

  1. Transforme depuis l’espace RGB du pipeline vers l’espace Ych de Kirk/Filmlight,

  2. Applique un décalage de teinte à chroma constante et luminance constante,

  3. Calcule les masques de luminance avec Y,

  4. Appliquer les paramètres chroma linéaire et vibrance à teinte et luminance constantes,

  5. Convertit vers l’espace RVB de Kirk/Filmlight,

  6. Applique les paramètres 4 voies (sauf la puissance de luminance),

  7. Revient dans l’espace Yrg de Kirk/Filmlight,

  8. Applique la puissance de luminance et le contraste,

  9. Convertit dans l’espace JzAzBz,

  10. Applique les paramètres saturation perceptuelle et brillance perceptuelle,

  11. Écrête progressivement la chroma en utilisant le gamut RVB du pipeline, à teinte et clarté constantes,

  12. Retourne à l’espace RGB du pipeline.

🔗mises en garde

Setting the global chroma to -100% will not produce a real monochrome image, as is customary with other algorithms. The reason for this is that the RGB space used has a D65 white point defined in CIE LMS 2006 space, while darktable uses a white point defined in CIE XYZ 1931 space, and there is no exact conversion between these spaces. The result will therefore be a slightly tinted black & white image. If your intent is to get a real black & white image using the luminance channel, the color calibration module offers a B&W : luminance-based preset that does exactly the same thing but without the white-point discrepancy.

Ce module a un mappage de gamut (dans l’espace RGB du pipeline) constamment activé. Cela signifie que si votre image d’origine contient des couleurs largement hors gamme pour commencer, le simple fait d’activer balance des couleurs 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 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, balance des couleurs RGB 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 des couleurs RGB, 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.


  1. Richard A. Kirk, Coordonnées de chromaticité pour les arts graphiques basées sur CIE 2006 LMS avec espacement régulier des couleurs Munsell, 2019. https://doi.org/10.2352/issn.2169-2629.2019.27.38 ↩︎

  2. 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 ↩︎

translations