Farbbalance RGB

Ein Modul für Fortgeschrittene, das Farbkorrekturwerkzeuge (Color Grading) aus der Kinematografie in die fotografische, szenenbezogene Pipeline bringt.

Dieses Modul ist für Anfänger ohne Kenntnisse der Farbtheorie nicht geeignet, die eher bei Chroma Global und Globale Lebendigkeit bleiben sollten bis sie ein gutes Verständnis der Farbdimensionen von darktable haben.

🔗Einführung

Die Farbanpassung ist ein wichtiger Bestandteil der Bildbearbeitung. Sie kann dazu beitragen, unerwünschte Farbstiche zu entfernen oder auch eine kreative Farbänderung bewirken, die den Bildern Atmosphäre verleiht. In den Zeiten der Filmfotografie wurde der größte Teil der Farbwirkung durch die Filmemulsion und die Entwicklungschemikalien erzielt, wobei ein gewisses Farbtuning am Vergrößerungsgerät mit Farbköpfen vorgenommen wurde. Dies benötigte erhebliche Ressourcen und war meist der Filmindustrie vorbehalten, wo diese Aufgabe von einem Koloristen übernommen wurde.

Im digitalen Zeitalter, wo RAW-Bilder flach und eben aussehen, nehmen Farbanpassungen die gleiche Rolle ein, wie ehemals die Filmemulsion durch Einfügen von Farbversätzen für die Ästhetik. Es kann auch helfen die Farbpalette einer Reihe von Bildern zu harmonisieren, die vielleicht unter unterschiedlichen Umständen aufgenommen wurden, um einen einheitlichen Look zu erreichen. Für diese Arbeit ist der Vektor-Scope außerordentlich nützlich.

Koloristen teilen Farbanpassungen in zwei unterschiedliche Schritte:

  1. Die erste Farbanpassung zielt darauf ab, ungewollte Farbstiche zu beheben und einen neutralen Ausgangspunkt zu erzeugen,

  2. die zweite Farbanpassung gibt dem Bild sein endgültiges Aussehen und seine Stimmung.

Die erste Farbanpassung überlässt man am besten dem Modul Farbkalibrierung, das in einem physikalischen Bezugssystem arbeitet und besser geeignet ist für Korrekturen der Lichtquellen. _ Farbbalance RGB_ dient andererseits eher einer zweiten Farbanpassung. Eine neutralisierende, erste Farbanpassung sollte eine Übertragung der zweiten Farbanpassung zwischen Bildern mit ähnlichen Anforderungen (mit Stilen, Voreinstellungen oder Kopieren & Einfügen) vereinfachen.

🔗Generelle Prinzipien

Das Modul Farbbalance RGB ist eine Verbesserung gegenüber der American Society of Cinematographers Color Decision List (ASC CDL) und gestattet durch Alpha-Masken den Effekt exakt zwischen Schatten und Lichtern aufzuteilen. Die klassische Farbentscheidungsliste (CDL) wirkt im gesamten Luminanz-Bereich, und jedem der Parameter wird – als Seiteneffekt der Mathematik – in einigen Teilen des Bildes mehr Gewicht beigemessen.

Dieses Modul arbeitet in den meisten Teilen (_4 HSL, Chrominanz, Lebendigkeit, Kontrast) in einem linearen RGB-Farbraum, der speziell für Farbkorrekturen geschaffen wurde. Dieser Farbraum zeigt eine gleichförmige Verteilung von wahrgenommenen Farbtönen unter Beibehaltung einer physikalisch-skalierten Luminanz1. Der wahrnehmbare Teil des Moduls (Sättigung und Brillianz) arbeitet im JzAzBz2-Farbraum. Dieser sieht ein wahrnehmbares Skalieren sowohl für die Helligkeit als auch Chromatizität vor, was für HDR-Bilder geeignet ist. Beide Farbräume stellen sicher, dass Sättigungs- und Chrominanzänderungen auf einen gleichbleibenden Farbton wirken, was für die meisten anderen Sättigungswerkzeuge von darktable nicht gilt (insbesondere im veralteten Modul Farbbalance.

Das Modul Farbbalance RGB erwartet eine szenenbezogene, lineare Eingabe und erzeugt eine szenenbezogene RGB-Ausgabe, die abhängig von Moduleinstellungen auch nicht-linear sein kann (Kontrast und Stärke wird die Ausgabe delinearisieren).

Farbbalance RGB prüft bei seiner Ausgabe, ob die abgestuften Farben in den RGB-Farbraum der Pipeline passen (standardmäßig Rec 2020) und wendet eine leichte Sättigungsbeschneidung (Clipping) bei konstanten Farbtönen an. Dies erfolgt mit dem Ziel, Farbwerte außerhalb des Gamuts auf die nächsten Werte innerhalb des Gamuts abzubilden indem Chrominanz und Helligkeit skaliert werden. Das verhindert, dass durch Chrominanz- und Sättigungseinstellungen Farben aus dem gültigen Bereich ausbrechen und erlaubt damit, drastischere Anpassungen sicher auszuführen.

Hinweis: Dieses Modul hält sich an die CIE-Definitionen von Chrominanz und Sättigung, die in Abschnitt Farbdimensionen von darktable erklärt werden.

🔗Moduleinstellungen

🔗Master Registerkarte

Farbtonverschiebung
Rotiere alle Farben des Bildes in einem Winkel über der Chromazität-Ebene mit konstanter Luminanz und Chroma. Du kannst diese Einstellung nutzen, um verlaufenen Farben an einem Subjekt zu entfernen, oder schnell die Farben eines Objektes zu ändern. Eine solche Änderung wird am besten lokal angewendet mit dem Gebrauch von Masken.
Globale Lebendigkeit
Wirkt auf die Chrominanz-Dimension der Farben im gesamten Bild, bevorzugt auf Farben mit geringer Chrominanz. Die Chrominanz von neutralen Farben wird damit verstärkt, ohne dies für bereits farbige Pixel zu übertreiben.
Kontrast
Diese Einstellung wirkt auf den Luminanz-Kanal, wobei Farbton und Chrominanz gleich bleiben. Die Einstellung des Stützpunkts (im Tab Maskierung unter Kontrast-Graustützpunkt) erlaubt den neutralen Punkt der Kontrastkurve zu setzen:
  • am Stützpunkt verändert die Kontrastkurve die Luminanz nicht,
  • unterhalb des Stützpunkts senkt die Kontrastkurve die Luminanz für positive Kontrastwerte oder erhöht diese für negative Werte,
  • oberhalb des Stützpunkts erhöht die Kontrastkurve die Luminanz für positive Kontrastwerte oder senkt diese für negative Werte.

Der Stützpunkt hat einen Standardwert von 18.45 % und passt so zur aktuellen, szenenbezogenen Bearbeitung und für die meisten Anwendungsfälle (die globale Helligkeit sollte, wie empfohlen, mit dem Modul Belichtung eingestellt sein).

Der Kontrast-Algorithmus ergibt natürliche Resultate, die den zentralen Teil der Kontrast-Kurve von analogem Film nachempfinden. Jedoch wird es auch den Dynamikbereich des Bildes erhöhen, was die Einstellungen von Filmisch RGB in der Pipeline nichtig macht. Für globale Kontrast-Einstellungen solltest du normalerweise das Modul Tonwert-Equalizer nutzen – der Farbbalance RGB Schieber wird am besten mit Masken eingesetzt, z.B. für selektive Korrekturen des Vorder- oder Hintergrundes.

🔗Lineare Chroma Einstellungen

Lineares Chroma-Grading beeinflusst die Chroma-Dimension proportional zu ihrem Eingabewert bei konstantem Farbton und konstanter Luminanz. Sie wirkt global mit einem kleinen Koeffizienten (verwendet Chroma Global), wie auch auf die Masken Schatten, Mittelgrau und Lichter (definiert im Register Maskierung unter Verlauf der Luminanzmasken).

🔗Wahrnehmungs-Sättigungs-Einstellung

Wahrnehmung-Sättigung einstellen beeinflusst sowohl die Luminanz als auch die Chroma-Dimensionen, in einem Wahrnehmungsraum, proportional zu ihrem Eingabewert, bei konstantem Farbton. Das Modul tut dies global mit einem flachen Koeffizienten (unter Verwendung der globalen Sättigung), wie auch in jeder der Schatten-, Mitteltöne- und Lichter-Maske (definiert im Register Masken unter Luminanz-Bereiche).

🔗Wahrnehmungs-Glanz Einstellung

Wahrnehmung-Glanz einstellen beeinflusst sowohl die Luminanz- als auch die Chroma-Dimension, in einem Wahrnehmungsraum proportional zu ihrem Eingabewert, bei konstanten Farbtönen und in einer Richtung orthogonal zur Sättigung. Der Effekt ist ähnlich zu dem einer Änderung der Belichtung, aber wahrnehmend skaliert. Das Modul macht dies global, mit einem flachen Koeffizienten (mit der globalen Sättigung), wie auch in jeder der Schatten-, Mitteltöne- und Lichter-Maske (definiert im Register Masken unter Luminanz-Bereiche).

🔗Register “4 HSL”

Jede der Einstellungen im Register 4 Wege wird aus den gleichen drei Komponenten zusammengesetzt, welche eine Farbe definieren mit der Benutzung unabhängiger Koordinaten:

  1. Luminanz,

  2. Farbton,

  3. Chrominanz.

Solche Farbeingaben definieren einen Farbversatz, der sich auf das gesamte Bild oder über einen spezifizierten Luminanzbereich auswirkt.

Jeder Farbton-Schieber hat eine Farb-Pipette, die gebraucht werden kann, um die Komplementärfarbe des ausgewählten Bereiches zu bestimmen. Das ist nützlich, um unerwünschte Farbstiche zu korrigieren (z.B. Rotton der Haut), weil das Verschieben einer Farbe in Richtung seiner Komplementärfarbe diese neutralisiert.

🔗Globaler Versatz

Das ist gleichzusetzen mit dem ASC CDL Offset und bedeutet letztendlich, zu jedem Pixel einen konstanten RGB-Wert zu addieren, ähnlich dem Schwarz Versatz im Modul Belichtung. Diese Einstellung nutzt keine Masken.

🔗Schatten Anheben

Das ist als Konzept gleich dem Anheben von Anheben/Gamma/Zuwachs, obwohl anders implementiert, und bedeutet letztendlich, jedes maskierte Pixel mit einem konstanten RGB-Wert zu multiplizieren. Das Modul wird auf die Schatten Maske angewendet.

🔗Lichter Zuwachs

Das ist gleichbedeutend mit ASC CDL Abfall und bedeutet letztendlich, jedes maskierte Pixel mit einem konstanten RGB-Wert zu multiplizieren. Es wird auf die Maske Lichter angewendet.

🔗Globale Stärke

Das ist gleichbedeutend mit ASC CDL Stärke und bedeutet letztendlich, einen konstanten RGB-Exponenten anzuwenden. Der Exponent ist nicht begrenzt und muss normalisiert werden, da die Exponentialfunktion ein unterschiedliches Verhalten über und unter 1 hat und wir in einer unbegrenzten Pipeline sind, in der Weiß normalerweise größer als 1 ist. Den Normalisierungsparameter ist im Register Masken unter Weiß-Angelpunkt zu finden.

🔗Registerkarte Maske

Diese Registerkarte definiert Hilfseinstellmöglichkeiten für die vorherigen Registerkarten. Einstellungen für Masken müssen normalerweise nicht angepasst werden, da die Standards für den üblichen Gebrauch abgeglichen wurden und die normalen Erwartungen an die szenenbezogene Pixel-Pipeline erfüllen. Anpassungen an Einstellungen sollten nur in ganz speziellen Szenarien notwendig werden.

🔗Luminanz Bereiche

Die Kurven zeigen die Deckkraft (auf der y-Achse) der 3 Luminanzmasken relativ zur Pixel-Luminanz (auf der x-Achse). Die dunkelste Kurve repräsentiert die _Schatten_maske, die hellste die _Lichter_maske und die dritte Maske die _Mitten_maske.

Nur die Schatten- und _Lichter_masken können direkt kontrolliert werden: Die _Mitten_maske errechnet sich indirekt aus den anderen und dient als ein Einstellungsparameter.

Schattenverlauf
Kontrolliert die Weichheit oder Härte des Übergangs der Schattenmaske von vollständig undurchsichtig (100%) zu vollständig transparent (0%).
Mittelgraureferenz für Maskierung
Setzt den Luminanzwert, an dem alle drei Masken eine Deckkraft von 50 % haben. In der Praxis wird damit definiert, wie sich das Bild in Schatten und Lichter teilt.
Lichterverlauf
Kontrolliert die Weichheit oder Härte des Überganges für die Lichtermaske von vollständig undurchsichtig (100%) bis vollständig transparent (0%).

Für jede dieser Einstellungen ist ein Maskenschalter rechts vom Regler vorhanden, der die entsprechende Maske (Schatten, Mitten, Lichter) als Schachbrett überlagert anzeigt. Der noch sichtbare, also nicht maskierte Bereich des Bildes ist der Bereich, den Schatten-, Mitten- und Lichterregler in den anderen Registern beeinflussen.

Jede Maskenvorschau zeigt die Ausgabe des Moduls inklusive durchgeführter Farbänderungen. Diese können auch während der Bearbeitung eingeschaltet werden, um nur den beeinflussten Teil des Bildes zu sehen.

Luminanzmasken werden bei der Eingabe ins Modul berechnet, sodass diese unempfindlich für etwaige Luminanzänderungen innerhalb des Moduls sind.

🔗Schwellenwerte

Weiß-Stützpunkt
Setzt die Helligkeit des Weißpunkts in EV zur Normalisierung der Einstellung Stärke im Register 4 HSL. Anzeigebezogene Implemenationen von Stärkefunktionen nehmen Weiß bei 100% an, womit eine Normalisierung unnötig wird. Im szenenbezogene Ansatz muss das beachtet werden.

Die Pipette rechts vom Regler setzt den Weiß-Stützpunkt automatisch auf die maximale Luminanz aus dem ausgewählten Bereich, was in den meisten Fällen ausreichen sollte.

Kontrast-Graustützpunkt
Setzt den Stützpunkt für die Kontrast-Einstellung im Register Allgemein. Bestimmt den Helligkeitswert, der durch die Kontrastanpassung unverändert bleibt. Diese Einstellung stimmt normalerweise mit dem linearen, mittleren Grauwert überein. Wenn in der szenenbezogenen Bearbeitung, wie empfohlen, die globale Helligkeit in der Pipeline bereits im Modul Belichtung eingestellt wird, sollte der korrekte Wert etwa bei 18-20% liegen.

Die Farb-Pipette rechts vom Schieber setzt automatisch den Agelpunkt des Kontrastgrau zur durchschnittlichen Luminanz des gewählten Ausschnittes. Das basiert auf der Annahme, dass die durchschnittliche Luminanz normalerweise nahe bei Mittelgrau ist, was nicht zutrifft, wenn du spektakuläre Spitzlichter oder primäre Lichtquellen im Bild hast, oder für Low-/Highkey Bilder.

🔗Maske Voransicht Einstellungen

Diese Einstellungen fügen den Masken Voransichten zu, die angezeigt werden, wenn die Masken-Knöpfe im Abschnitt Luminanz-Bereiche angeklickt werden. Diese Einstellungen werden global gespeichert, so dass sie auf alle nachfolgenden Bilder angewendet werden, sofern sie nicht geändert werden.

Schachbrettfarben 1 und 2
Setze die zwei Farben für die Schachbrettmaske im Hintergrund. Um die Wahrnehmbarkeit zu erhöhen, können die Komplementärfarben des aktuellen Bildes gewählt werden.
Schachbrettmustergröße
Setzt die Breite der Felder des Schachbretts in Pixeln (angepasst auf die DPI-Einstellung des Bildschirms).

🔗FAQ

🔗Sättigung oder Chroma?

Wie im Abschnitt Farbdimensionen von darktable beschrieben, breiten sich Sättigung und Chrominanz in der Helligkeits-Chrominanz-Ebene in verschiedene Richtungen aus. Zusätzlich nutzt die Chrominanz von Farbbalance RGB einen szenenbezogenen, linearen Raum, während die Sättigung einen Wahrnehmungsraum nutzt, der Farben auf gleichmäßige Abstände skaliert.

In der Praxis solltest du die Chroma Einstellung nutzen, wenn du die Linearität der Lichtemmission beibehalten willst und/oder die Luminanz unverändert belassen willst. Aber, diese Änderungen könnten einige Farbtöne mehr beeinflussen als andere, weil der Farbraum nicht vollständig Wahrnehmungs-skaliert ist.

Die Sättigung ist näher am Effekt, weisse Farbe mit einer Grundfarbe zu mischen. Durch die Reduzierung der Sättigung wird Rot in Pink übergeführt, während die Reduzierung der Chroma zu einen grauen Farbton führt, bei gleicher Luminanz. Sättigung ist wohl der intuitivere Weg mit Farben zu interagieren, wegen seiner Verbindung zum Malen.

Die Wahl zwischen beiden hängt davon ab, wo im Helligkeit-Chroma-Graph die Farben verstärken werden und wo diese beginnen sollen: Um Pastellfarben zu erzeugen, ist Sättigung die beste Wahl, und für Laser-ähnliche, nahezu monochromatische Farben, die stark synthetisch wirken, ist es Chroma.

🔗Welcher Zusammenhang besteht zwischen Lift, Gamma und Gain?

Der Lift/Gamma/Gain-Algorithmus beruht auf einem anzeigebezogenen Farbraum, da er einen beschränkten und symmetrischen Dynamikumfang annimmt, mit dem Weißpunkt bei 100% und Grau bei 50%. Als solcher, ist er für einen szenenbezogenen Raum unbrauchbar. Wie auch immer, der einzig inkompatible Teil ist Lift. Gamma entspricht der Stärke aus der ASC CDL und Gain der Neigung.

Das Modul Farbbalance RGB hat einfach zwei Kurven statt einer: Gain angewandt mit einer Maske für die Lichter, die aus dem gesamten Bild extrahiert wurden, und Lift mit einer ähnlichen Maske für die Schatten.

🔗Kontraständerung

Während Farbbalance RGB hauptsächlich Farbe behandelt (andere Module erzeugen globalen Kontrast unter Erhaltung der Chromazität), ist Luminanz ist ein fester Bestandteil von Farbe wie vom Farbton oder Chroma und muss hier ebenfalls behandelt werden, da die Wahrnehmung der Sättigung darauf beruht. Falls zum Beispiel Rot in Pink umgewandelt werden soll, wird eine Reduzierung von Chroma zu Grau führen und daher musst auch die Luminanz erhöht werden.

Es gibt mehrere Wege mit Farbbalance RGB den Kontrast zu ändern, entweder lokal (mit Masken) oder global (ohne):

  • im Register Allgemein die Einstellung Kontrast nutzen, ggf. zusammen mit dem Kontrast-Graustützpunkt im Register Maskierung. Dies erhöht jedoch den Weißpunkt und erweitert deshalb den Dynamikbereich des Bildes, was eventuell Einstellungen von Filmic RGB später in der Pipeline ungültig macht.

  • mit perzeptive Farbsättigung entsättige die Lichter und sättige die Schatten für einen Luminanzkontrast-Schub,

  • mit perzeptive Farbbrillianz füge Brillianz in den Lichtern hinzu und entferne Brillianz in den Schatten für Luminazkontrast-Schub,

  • im Register 4 HSL die Schatten - Lift-Luminanz auf negative Werte und die Lichter - Gain-Luminanz auf positive Werte einstellen, erzeugt ebenfalls einen Luminanzkontrast-Schub.

Die Differenz zwischen diesen Methoden ist, wie der Effekt gewichtet wird im Relation zur Eingabe des Moduls. Es sei geraten, den Hauptanteil der Anpassung des Luminanz-Kontrasts in den Modulen Filmic RGB und Ton-Equalizer anzupassen und erst dann die Endanpassungen in Farbalance RGB vorzunehmen, letzteres unter genauer Beachtung der resultierenden Farben.

🔗Interne Bearbeitung

Das folgende ist die interne Reihenfolge von Bearbeitungen im Modul:

  1. Transformiere von der Piplilne RGB zum Kirk/Filmlicht Ych Raum,

  2. Wende Farbtonänderungen bei konstantem Chroma und konstanter Luminanz an,

  3. Berechne Luminanzmasken mit Y,

  4. Füge die Einstellungen von linearem Chroma und Lebendigkeit bei konstantem Farbton und Luminanz hinzu,

  5. Transformiere zum Kirk/Filmlight RGB Raum,

  6. Füge die 4 Wege Einstellungen hinzu (Ausnahme Luminanz-Stärke),

  7. Transformiere zum Kirk/Filmlight Yrg Raum,

  8. Füge Luminanz-Stärke und Kontrast in Y hinzu,

  9. Transformiere zum JzAzBz Raum,

  10. Füge die Wahrnehmen Sättigung und Wahrnehmen Brillianz Einstellungen hinzu,

  11. Beschneide weich das Chroma mit Pipeline RGB Gamut bei konstanten Farbtöntn und Helligkeit,

  12. Transformieren zurück zu Pipline RGB.

🔗Warnung

Das Setzen des globalen Chroma auf -100% wird nicht ein wirkliches Monochrom Bild erzeugen, wie es üblich ist mit anderen Algorithmen. Der Grund dafür ist, dass der RGB Raum in Gebrauch einen D65 Weißpunkt hat, der im CIE LMS 2006 Raum definiert ist, während darktable einen Weißpunkt braucht, der im CIE XYZ 1931 Raum definiert ist, und es keine exakte Konvertierung zwischen diesen Räumen gibt. Das Resultat wird daher ein leicht eingefärbtes S/W Bild sein. Falls du ein wirkliches S/W Bild mit Benutzen des Luminanz Kanals willst, dann hält das Modul Farbkalibrierung eine S&W: luminaz-basierte Voreinstellung bereit, die genau das Gleiche tut, einfach ohne die Weißpunkt Diskrepanz.

Dieses Modul hat sein Gamut-Mapping (gegen Pipeline RGB) ständig eingeschaltet. Das bedeutet, falls dein Original-Bild schon beim Start einige Ausserhalb-Gamut Farben beinhaltet, dann wird ein einfaches Aktivieren des Farbbalance RGB ohne irgendeine Einstellung die Farben leicht ändern. Das ist wahrscheinlich zum Besten.

Die maximale erlaubte Sättigung in der Pipeline RGB Arbeitsraum wird für jeden Farbton gespeichert, wenn das Modul initialisiert wird. Später wird sie in einem LUT (look-up table) zur Leistungssteigerung zwischengespeichert. Wenn das Arbeits-Profil später geändert wird, dann wird das Modul Farbbalance RGB nicht benachrichtigt, was heißt, das zwischengepufferte Farbton-Sättigungs LUT wird nicht aktualisiert. Um das LUT-Update zu erzwingen, kannst du einfach irgendeine Einstellung im Modul Farbbalance RGB verändern und es wieder zurückändern. Es wird nicht empfohlen, dass du den RGB Arbeitsraum auf halbem Weg der Entwicklungs-Session wechselst, da dies in unerwarteten Chroma und Farbton Änderungen resultieren könnte.

Zur Leistungsverbesserung werden die nicht-linearen Umwandlungen vom und zum RGB Arbeitsraum umgangen, was bedeutet, dass die interne Kalorimetrie falsch sein wird beim Gebrauch von nicht-linearen Räumen. Beachte, dass es keinen Grund gibt, nicht-lineare RGB Arbeitsräume zu nutzen, da diese ein Alpha-Blending schwieriger machen ohne irgend einen Vorteil.


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

  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