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 Kontrastkurve von analogem Film nachempfinden. Jedoch wird er auch den Dynamikbereich des Bildes erhöhen, was Einstellungen in Filmic RGB in der Pipeline nichtig macht. Für globale Kontrasteinstellungen sollte normalerweise das Modul Tonwert-Equalizer genutzt werden. D.h. der Kontrast-Regler in Farbbalance RGB sollte nur mit Masken eingesetzt werden, z.B. für selektive Korrekturen des Vorder- oder Hintergrunds.

🔗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 Pipette rechts vom Regler setzt den Kontrast-Graustützpunkt automatisch auf die durchschnittliche Helligkeit des ausgewählten Bereichs. Die Annahme dabei ist, dass die durchschnittliche Helligkeit normalerweise nahe bei Mittelgrau ist, was für Glanzlichter bzw. primäre Lichtquellen im Bild oder für Low-/Highkey-Bilder nicht gilt.

🔗Maskenvorschaueinstellungen

Diese Einstellungen sind für die Maskenvorschauen, die beim Anklicken der Maskenschalter im Verlauf der Luminanzmasken angezeigt werden. Sie werden global gespeichert und für alle nachfolgenden Bilder angewendet, solange sie nicht geändert werden.

Schachbrettfarben 1 und 2
Setzt 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).

🔗Häufig gestellte Fragen

🔗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 sollte die Chroma-Einstellung genutzt werden, wenn die Aufnahme-Linearität der Lichtemission beibehalten bzw. die Luminanz erhalten bleiben soll. Doch diese Änderungen könnten einige Farbtöne stärker beeinflussen als andere, da der Farbraum nicht wahrnehmungsneutral skaliert ist.

Die Sättigung wirkt eher wir das Mischen von weisse Farbe zu einer Grundfarbe. Durch Reduzierung der Sättigung wird Rot zu Pink, während Reduzierung des Chroma zu einem grauen Farbton mit gleicher Luminanz führt. Sättigung ist vielleicht aufgrund seiner Verbindung zum Malen eine intuitivere Art, mit Farben zu interagieren.

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 mit dem Weißpunkt bei 100% und Grau bei 50% annimmt. Als solcher ist er für einen szenenbezogenen Raum unbrauchbar. Allerdings ist der einzig inkompatible Teil das 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.

Der Unterschied zwischen diesen Methoden liegt in der Gewichtung der Wirkung relativ zur Eingabe des Moduls. Am besten werden die Hauptanpassungen des Helligkeitskontrasts in den Modulen Filmic RGB und Tonwert-Equalizer durchgeführt und dann die letzten Anpassungen in Farbalance RGB bei der Überprüfung der Farben.

🔗Interne Bearbeitung

Die interne Reihenfolge von Bearbeitungen im Modul ist folgende:

  1. Transformation vom Pipeline-RGB-Raum in den Kirk/Filmlight-Ych-Raum,

  2. Anwendung der Farbverschiebung bei konstantem Chroma und konstanter Luminanz,

  3. Berechnung der Luminanzmasken mit Y,

  4. Anwendung der Einstellungen von linearem Chroma Grading und Globale Lebendigkeit bei konstantem Farbton und konstanter Luminanz,

  5. Transformation in den Kirk/Filmlight-RGB-Raum,

  6. Anwendung der 4 HSL-Einstellungen (ohne Power Luminanz),

  7. Transformation in den Kirk/Filmlight-Yrg-Raum,

  8. Anwendung von Power Luminanz und Kontrast auf Y,

  9. Transformation in denJzAzBz-Raum,

  10. Anwendung der Einstellungen von perzeptive Farbsättigung und perzeptive Farbbrillianz,

  11. leichter Chroma-Beschnitt mit dem Pipeline-RGB-Gamut bei konstantem Farbton und konstanter Helligkeit,

  12. Transformation zurück in den Pipline-RGB-Raum.

🔗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