Wir alle wissen, was “weiß” ist. Wir können uns ein weißes Blatt Papier vorstellen. Wir wissen, dass es weiß ist, weil wir es gelernt haben. Aber wenn du dein Blatt Papier unter einem Sommersonnenschein, einem bewölkten Himmel oder zu Hause mit diesen warmen Wohnbereichslampen legst, wird dieses Weiß seine Farbe ändern. Es könnte dich für die ersten Sekunden stören, dann wirst du es einfach vergessen: Dein Gehirn passt sich an. Aber an was passt es sich an?

Einführung

Begriffe

Lasst uns beginnen, einige Begriffe und Akronyme zu definieren, die hier verwendet und missbraucht werden. Du kannst das jetzt überspringen und später darauf zurückkommen, wenn du die Begriffe im Text findest.

CIE
Commission Internationale de l’Éclairage  (Internationale Kommission für Beleuchtung). Internationale Autorität für die Standardisierung technischer Geräte, Methoden und Arbeitsabläufe in Bezug auf Beleuchtung und Farbwiedergabe.
ICC
International Color Consortium . Berufsverband von Imaging-Geräteverkäufern, der darauf abzielt, Arbeitsabläufe für Farbwiedergabe entlang der Digitalgrafikkette zu definieren, um Farbkonstanz zwischen verschiedenen Ausgabemedien (Monitor, Papier, etc.) zu gewährleisten. Farbprofile, die den ICC-Spezifikationen entsprechen, werden meist als “ICC-Profile” bezeichnet, was die Tatsache verbergen kann, dass auch nicht-ICC-Profile existieren.
Farbprofil
Computerdokument, das die Farbkonversion zwischen einem beliebigen RGB-Raum und einem Referenzfarbraum beschreibt (normalerweise CIE XYZ 1931  für den 2°-Beobachter). Es wird oft missverstanden, dass ein Farbprofil kein Programm oder eine Anwendung an sich ist, sondern nur ein “Kochrezept”, das von einem Farbmanagementsystem (CMS — was ein Computerprogramm ist) nach eigenem Ermessen gelesen und angewendet wird, welches in verschiedenen Bildanwendungen (Betrachter, Bearbeiter, Dateibrowser) implementiert sein kann… oder nicht.
WB
Weißabgleich. Generische Operation, die darauf abzielt, Lichtermissionen neu zu skalieren, damit der hellste weiße Bereich auf der Szene auf $RGB = (1, 1, 1)$ in einem beliebigen Standard-RGB-Raum (sRGB, Adobe RGB, DCI P3, etc.) abgebildet wird. Dies basiert auf der Eigenschaft von RGB-Räumen, additive Lichtmischschemata  zu beschreiben, und auf der Annahme, dass $RGB = (1, 1, 1)$ immer den mittleren Weißpunkt (Papierweiß oder LED-Hintergrundbeleuchtung) codiert, aus Designgründen.
CAT
Chromatische Adaptionstransformation. Numerische Methode, die es ermöglicht, Farben anzupassen, um eine Änderung des Weißpunkts zu berücksichtigen, auf eine Weise, die die Farbwahrnehmung bewahrt.
CAT wird automatisch vor dem Anwenden eines Farprofils verwendet, wenn der Ziel-Farbraum einen anderen Weißpunkt hat als der Quell-Farbraum. Zum Beispiel verwendet die Ansel- (und ICC-)Pipeline einen D50-Weißpunkt, während alle Desktop-Monitore einen D65-Weißpunkt verwenden, sodass CAT verwendet wird, um D50 auf D65 zu übertragen, bevor ein Ausgabefarbprofil angewendet wird.
CAT kann manuell für den Weißabgleich verwendet werden, auf eine genauere Weise als einfache RGB-Skalierung, unter bestimmten Bedingungen. In diesem Fall werden sie zu einem Sonderfall von WB.
Beleuchtung
Direkte Lichtquelle, die die Photonen (auch Licht genannt) aussendet, die auf die reflektierenden Oberflächen der Szene treffen. Es ist erwähnenswert, dass Grafik-Pipelines immer eine einzige Beleuchtung pro Szene annehmen, was nicht der Realität der Fotografen entspricht. Manchmal haben Szenen mehr als eine Lichtquelle. Fast immer erhalten 3D-Objekte eine Mischung aus Licht von der Beleuchtung(s), und aus anderen Oberflächenreflexionen in der Umgebung. Nicht-weiße Oberflächen, die Licht auf ein Objekt reflektieren, können als virtuelle Beleuchtungen gesehen werden, die typischerweise Schatten einfärben und Bedarf an selektivem Weißabgleich auslösen.

Das Problem des “Weißen”

Farbwissenschaftler und Softwareentwickler gleichermaßen lieben es, Farbe als ein 3D-Objekt zu betrachten (R/G/B, Farbton/Sättigung/Helligkeit usw.), ausgedrückt als 3 intensive und positive Koordinaten. Während dieser Ansatz in Bezug auf Lichtzusatz (ein LED-Bildschirm ist durch seine technologische Konstruktion sehr ein RGB-additives Lichtschema) einige Vorteile hat, berücksichtigt er nicht alle kontextuellen Korrekturen, die bei der menschlichen Wahrnehmung auftreten: Die menschliche Sicht wird besser in Bezug auf Kontrast beschrieben, das heißt durch den Unterschied zwischen Objekten (oder Oberflächen) und ihrer Umgebung.

Zum Beispiel, betrachten Sie diesen Farbechecker:

image

Hier ist nun die Wiedergabe dieses Farbecheckers, auf Film aufgenommen, bei der während der Entwicklung etwas schiefgelaufen ist. Betrachten Sie es einige Zeit lang:

image
© Guillaume Stutin

Sie würden schwören, dass der rote Fleck immer noch rot ist, obwohl das ganze Bild ins Grüne verschoben ist, oder? Noch schlimmer, der “weiße” Fleck fühlt sich weiß an. Sehen wir uns nun das Vektorskope des Bildes an:

image

Abgesehen von etwas bläulichem Rauschen ist das ganze Bild vollständig in einem ~6° Hue zentriert im Grün enthalten. In jedem Fall gibt es hier kein einziges rotes Pixel. Wenn wir Rot sehen, dann nur, weil unser Gehirn sich nicht wirklich um Rot als absolute Farbe kümmert, sondern Farbflächen extrahiert, deren Unterschiede zur Umgebung „berechnet“ und dann versucht, diese Unterschiede kognitiv zu verstehen.

Hier müssen wir Weiß sowohl für eine Beleuchtung als auch für eine Oberfläche definieren. Wenn Sie ein Objekt mit einer Schicht weißer Farbe überziehen, machen Sie es weiß. Das bedeutet, dass, wenn Sie es mit irgendeiner Art von Licht beleuchten, die weiße Oberfläche das Lichtspektrum „wie es ist“ reflektieren und streuen wird, ohne ein bestimmtes Band des Spektrums zu bevorzugen. Natürlich wird es etwas Licht absorbieren, nur ein perfekter Spiegel würde fast 100 % des einfallenden Lichts reflektieren, aber diese Absorption wird proportional über alle Wellenlängen des Spektrums verteilt, sodass das reflektierte Licht genau das Licht der Beleuchtung sein wird, nur weniger intensiv. Das Gegenteil wäre eine farbige Oberfläche: diese würde einige Spektrumbänder selektiv abschwächen, durch subtraktive Farbsynthese .

Die Beleuchtung ist die primäre Lichtquelle, die Photonen auf eine Szene wirft (Blitz, Glühbirne, Sonne, Wolken usw.), auch auf weiße Oberflächen. Da eine weiße Oberfläche alles reflektiert, was sie empfängt, projiziert die Beleuchtung ihre eigene Farbe auf eine weiße Oberfläche. Dies ist also so weiß, wie unsere Szene (und nachfolgendes Bild) jemals wird, was bedeutet, dass sich die Farbe unserer weißen Oberfläche ändert, wenn wir sie mit Tageslicht oder mit einer orangefarbenen Glühbirne beleuchten.

Wir neigen also dazu, die Farbe der hellsten Oberfläche in einer Szene oder in einem Bild als das kontextuelle “Weiß” (im Kontext unseres Sichtfelds) zu erwarten, und unser Wahrnehmungssystem verwendet es als Referenz, um alle anderen Farben um es herum zu verstehen, indem es sie mit diesem „weißen“ Referenz vergleicht.

Was passiert nun, wenn ich die unbunten Flecken manuell unbunt mache (in Bezug auf Ihr aktuelles Display)?

image

Der rote Fleck fühlt sich jetzt etwas weniger gesättigt und eher orange an, weil wir ihn mit echtem Weiß und nicht mehr mit Grün vergleichen. Aber der Kontext ist immer noch so überwältigend grün, dass selbst bei wirklich weißer Umrahmung (in Bezug auf Ihr Darstellungsmedium) innerhalb und um das gesamte Bild herum, wir diese „weniger grüne“ Farbe des roten Flecks immer noch als irgendwie rot empfinden.

Auch die unbunten Flecken wirken zunehmend magenta, je dunkler sie werden, wiederum aufgrund der überwältigenden grünen Umgebung. Weiße ist also mehr als nur die “hellste Lichtemission im Sichtfeld”: unmittelbarer Kontext. Während die Normalisierung von Bildern für die hellste Lichtemission (aka Beleuchtung) in allen Farbmodellen (CAM) durch die chromatische Adaptionstransformationen (CAT) unterstützt wird, werden lokale Abweichungen (lokaler Kontrast) von der Farbrechnung vollständig übersehen, da alle CAMs bisher Chromatizität als 3 positive Koordinaten behandeln. Dies erfordert manuelles Feintuning, um die Lücke zur perzeptuell-genauen Farbverarbeitung zu füllen (siehe unten).

Was sollten wir davon lernen?

  1. weiß ist stark kontextbezogen zur Beleuchtung,
  2. weiß ist kognitiv mit der Beleuchtung verbunden, durch die hellste Lichtemission/-reflektion im Sichtfeld, was irreführend sein kann, wenn kein tatsächlicher weißer Bereich im Feld vorhanden ist,
  3. aber weiß ist auch irgendwie kontextbezogen zur visuellen Umgebung, aka abhängig von lokalem Farbumfang,
  4. aber digitale Bildgebungs-Pipelines denken Farben sind nur positive Intensitäten, und gehen nicht mit Farbdifferenzen um. Bedeutend, dass der Weißabgleich Werkeausstattung nicht exakt mit dem, was wirklich passiert, übereinstimmt, sondern eher mit einer groben Annäherung. Bedeutend, dass komplizierte Fälle manuell mit Sorgfalt behandelt werden müssen.

Keine richtige, keine falsche: Generell?

Bevor wir weiter in das Wie und Warum des Weißabgleichs eintauchen, sollten wir den Elefanten im Raum ansprechen:

Aber ich mag meine Bilder leicht warm, warum sollte ich den Weißabgleich neutralisieren und das Weiß achromatisch machen? Es ist schließlich eine künstlerische Entscheidung.

Nein, ist es nicht. Zumindest nicht auf die Art, wie Sie denken. Künstlerische Entscheidungen sind immer begrenzt durch technische Zwänge, denn Kunst dreht sich darum, ein materielles Medium zu gestalten, so gelten die Regeln der Physik auf jedem Schritt auf diesem Medium, egal ob Ihnen das gefällt oder nicht. Nun, das Nicht-Wissen über die technischen Zwänge wird Ihnen ein falsches Freiheitsgefühl geben, das sich in tiefste Frustration verwandelt, wenn die Dinge nicht mehr so laufen, wie geplant, besonders wenn Bilder mehr als eine Beleuchtung haben. Schlechte Workflows können in schönen und einfachen Situationen funktionieren. Gute Workflows geben Ihnen Vorgaben, um mit schwierigen Situationen umzugehen.

Die digitale Bildwelt würde stark davon profitieren, den Bildherstellungsprozess als Remappingprozess zu sehen, anstatt zu versuchen, eine absolute Beschreibung von Bildern zu finden, die nie eine materielle Existenz haben werden. Genauer gesagt können wir den Remapping-Ablauf wie folgt darstellen:

---
title: Wie digitale Bildbearbeitung tatsächlich funktioniert
---
%%{init: {"flowchart": {"htmlLabels": false, "htmlEdgeLabels": false}} }%%
flowchart TD;
Scene(("`__Szene__
_Beleuchtung_: N.C.
_Dynamikbereich_: N.C
_Farbraum_: spektral`"))
 --> Sensor["`__Sensor__
_Weißpunkt_: N.C
_Dynamikbereich_: 8-14 EV
_Farbraum_: Sensor RGB`"]
Sensor -- "`WB,
Eingangsprofil,
CAT`" --> Pipeline["`__Bearbeitungs-Pipeline__
_Weißpunkt_: D50 (ICC)
_Dynamikbereich_: virtuell unendlich
_Farbraum_: ITU BT.Rec 2020, CIE Lab 1976`"]
Pipeline --"`Tone-Mapping,
Gamut-Mapping,
Ausgangsprofil`" --> Screen["`__Bildschirm des Retuschierers__
aka __Überwachungsansicht__
_Weißpunkt_: D65
_Dynamikbereich_: 10-12 EV
_Farbraum_: sRGB, DCI P3, Adobe RGB`"]
Pipeline -- "`Tone-Mapping,
Gamut-Mapping,
Ausgangsprofil`" --> ScreenC["`__Bildschirm des Kunden__
_Weißpunkt_: D65
_Dynamikbereich_: 10-12 EV
_Farbraum_: sRGB, DCI P3`"]
Pipeline -- "`Tone-Mapping,
Gamut-Mapping,
Ausgangsprofil`" --> Paper["`__Papierdruck__
_Weißpunkt_: D50-D55
_Dynamikbereich_: 5-6 EV
_Farbraum_: N.C.`"]
Pipeline --"`Tone-Mapping,
Gamut-Mapping,
Ausgangsprofil`" --> T["`T-Shirts
Kaffeetassen
Sticker
...`"]

Aber die meisten Leute denken immer noch (fälschlicherweise), dass es so funktioniert:

---
title: Wie Irregeführte denken, dass digitale Bildbearbeitung funktioniert
---
%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart TD;
Szene(("`__Szene__
_Beleuchtung_: N.C.
_Dynamikbereich_: N.C
_Farbraum_: spektral`"))
 --> Sensor["`__Sensor__
_Weißpunkt_: N.C
_Dynamikbereich_: 8-14 EV
_Farbraum_: Sensor RGB`"]
Sensor --"`WB,
Eingangsprofil,
CAT`" --> Pipeline["`__Bearbeitungs-Pipeline__
_Weißpunkt_: D50 (ICC)
_Dynamikbereich_: virtuell unendlich
_Farbraum_: ITU BT.Rec 2020, CIE Lab 1976`"]
Pipeline --"`Tone-Mapping,
Gamut-Mapping,
Ausgangsprofil`" --> Screen["`__Bildschirm des Retuscheurs__
aka __Sichtbare Wahrheit__
_Weißpunkt_: D65
_Dynamikbereich_: 10-12 EV
_Farbraum_: sRGB, DCI P3, Adobe RGB`"]
Screen -- direkter → BildschirmC["`__Bildschirm des Kunden__
_Weißpunkt_: D65
_Dynamikbereich_: 10-12 EV
_Farbraum_: sRGB, DCI P3`"]
Screen -- Magie --> Papier["`__Papierabzug__
_Weißpunkt_: D50-D55
_Dynamikbereich_: 5-6 EV
_Farbraum_: N.C.`"]
Screen -- Magie --> T["`T-Shirts
Kaffeetassen
Sticker
...`"]

Und dieses letzte Flussdiagramm ist völlig falsch, weil der Bildschirm des Retuscheurs kein wichtigeres Medium ist als jedes andere: es ist kein Referenz, kein Standard, es birgt keine Wahrheit. Ausgabemedien existieren parallel, nicht in der Sequenz, und die Umwandlung zwischen Pipeline und Ausgabemedien ist völlig fließend, da jedes seine eigenen optischen Eigenschaften hat.

In jedem Fall repräsentiert jeder Pfeil in beiden Flussdiagrammen einen Remapping-Schritt, während jedes nicht-abgerundete Rechteck ein Medium repräsentiert, das versucht, die Szene zu reproduzieren. Ein Remapping ist eine allgemeine Umwandlung, die vollständig oder teilweise automatisiert sein kann, in der Regel jedoch einige Benutzer benötigt, um Kompromisse zu steuern, die darauf abzielen, den Bildinhalt für ein Anzeige-Medium oder einen Zwischenarbeitsschritt anzupassen. Insbesondere müssen wir den Dynamikbereich (oder den Kontrastverhältnis), den Farbraumumfang und den Weißpunkt remappen, da wir einen konsistenten Look auf Medien beibehalten möchten, die sehr unterschiedliche Anzeigeeigenschaften und Fähigkeiten haben.

Für jedes Anzeigemedium (Papier, Bildschirm, Diapositive, Kaffeetasse, …) wird die maximale Beleuchtungsstärke nur für einen sehr speziellen achromatischen Farbton erreicht: Weiß. Denken Sie an Papier… Weiß ist eine eingebaute Eigenschaft des Papiers (eine Mischung aus Kernfasern und Oberflächenbeschichtungsoptiken) bezüglich ihres Farbtons. Für Ihren Tintenstrahldrucker bedeutet „weiß“, dort kein Tinte sprühen zu lassen. Wenn Sie Ihr Bild ein wenig wärmer wirken lassen und sich für ein bernsteinfarbenes Weiß entscheiden möchten, dann müssen Sie die gesamte sichtbare Papieroberfläche mit mindestens ein paar gelb- und rotfarbenen Tinten überziehen. Dies führt zu einer Verdunkelung der Spitzenbeleuchtungsstärke, das heißt Ihr „bernsteinfarbenes Weiß“ wird dunkler als das native Mediumweiß, aufgrund des subtraktiven Lichtschemas von Farbstoffen und Pigmenten, und so reduzieren Sie bereits den begrenzten Dynamikbereich, den Papier bieten kann (5 EV für typische Tintenstrahldrucke). Aber wie weisen Sie Ihren Drucker an, dies zu tun? Jeder Eingabe RGB wird bei 1 oder 100 % (oder 255, wenn als 8-Bit ohne Vorzeichen kodiert) abgeschnitten und $RGB = (1, 1, 1)$ bedeutet Mediumweiß per Definition des Farbraums (aka Design). Wenn Sie versuchen, „bernsteinfarbenes Weiß“ zu erreichen, indem Sie das Weiß auf $RGB = (1,2, 1,2, 1)$ schieben, wird RGB sowieso bei 1 abgeschnitten, sodass Sie bernsteinfarbene Gradienten erhalten können, die an einem Medium weiß brechen. Oder, wenn Sie wissen, was Sie tun, werden Sie das Weiß auf $RGB = (1, 1, 0,83)$ schieben, und daher … seine Beleuchtungsstärke reduzieren. Dies ist der Zusammenhang, in dem sich der Dynamikbereich mit dem Medium-Weißpunkt verbindet, da die maximale Beleuchtungsstärke immer achromatisch im Hinblick auf ein Medium ist.

After After
Before Before
Vor: Weißabgleich normalisiert auf fast achromatische Weißen (Beleuchtung: Tageslicht 3832 K).
Nach: Weißabgleich wird warm gehalten aus „künstlerischen Gründen“ (Beleuchtung: Tageslicht 4341 K).
Der Weißpunkt wird bei beiden Bildern gleich gehalten. Beachten Sie, dass der Gradient innerhalb des Sonnenscheiben dabei verweist, an einem Punkt, in der Nähe der Mitte, beim warmen Interpretation, aufgrund von RGB-Clipping. Ich werde unten zwei mögliche Korrekturen vorschlagen.
Foto lizenziert unter Creative Commons von Andreas Schneider.
After After
Before Before
Versuchte Fehlerbehebungen für den Sonnen-Scheibengradientenabbruch in der warmen Interpretation oben.
Vor: Verringerung der Sättigung im Highlight-Bereich um 50 %
Nach: Reduzierung der Weißpunktbeleuchtung um 0,5 EV
Beachten Sie, dass die Entsättigungsstrategie teilweise darauf zurückzufallen scheint, die Weißen zu Zwangsmaßnahmen zu neutralisieren, ohne jedoch die Farbe in den Schatten und Mitteltönen substanziell anzupassen.
Foto lizenziert unter Creative Commons von Andreas Schneider.
After After
Before Before
Hier versuchen wir zu sehen, wie der Bildinhalt innerhalb eines großzügigen weißen Rahmens mit dem mittleren Weißpunkt vermischt. Dies simuliert einen Papierdruck mit weißen Rändern.
Vor: Weißabgleich normalisiert auf fast achromatische Weißen (Beleuchtung: Tageslicht 3832 K) mit verdunkeltem Weißpunkt.
Nach: Weißabgleich wird warm gehalten aus „künstlerischen Gründen“ (Beleuchtung: Tageslicht 4341 K) mit verdunkeltem Weißpunkt.
Die warme Interpretation hat die Bildbeleuchtung (Sonnenscheibe), die stark mit dem Mediumweiß kollidiert und wie ein gealtertes Bild aussieht. Die widersprüchlichen Weißreferenzen zwischen „Papier“ und Bildinhalt lassen es wie einen ungeschickten Amateur-Schuss aussehen.

Was sollten wir davon lernen?

  1. man hat keine Kontrolle über den Weißpunkt des Mediums, sei es eine Bildschirmhintergrundbeleuchtung oder der Papierton: er ist technisch definiert und Sie müssen sich ihm anpassen.
  2. beim Drucken mit weißen Rändern muss man die Kollision von Weißpunkten zwischen Bildinhalt und Papierrändern beachten. Dies gilt auch für Digitalbilder, die über weißen Hintergründen im Netz angezeigt werden,
  3. man hat nicht viel Spielraum, um den Weißabgleich des Bildes zu de-neutralisieren für künstlerische Zwecke, bevor es anfängt, visuell mit dem Papierweiß zu kollidieren,
  4. man muss den Weißpunkt des Bildes verdunkeln, somit den druckbaren Dynamikbereich reduzieren, wenn Sie es nicht neutral (nicht achromatisch) machen möchten. Das Nicht-Tun des erfordert, wird Abschneide-Artefakte in glatten Gradienten schaffen,
  5. die Peak-Luminanz wird erwartet, achromatisch zu sein für alle typischen Medien: dies verbindet den Dynamikbereich (oder zumindest deren obere Begrenzung) mit einem Medium-Weißpunkt (Weißabgleich).

Wie Weiß abgleichen?

Die Mathematik des Weißabgleichs

Den Weißabgleich anzuwenden ist erstaunlich einfach, wenn man die Gleichungen betrachtet: eine Division pro Kanal, eine Multiplikation pro Kanal. Aber es ist so tief unter missverstanden Konzepten und obskuren GUI begraben (mehr dazu unten ), dass die Leute völlig vom Weg abgekommen sind von den technischen Ablenkungen. Also ist es ein großartiges Beispiel dafür, wie drei Gleichungen das Chaos rückgängig machen können, welches Software und GUI in den Köpfen der Benutzer in den letzten Jahrzehnten durch das Streben nach „Intuition“ angerichtet haben.

Sagen wir, wir befinden uns in einem RGB-Raum, z.B. dem Kamerasensor-RGB. Sie müssen die chromatischen Koordinaten Ihrer Szenenbeleuchtung in diesem RGB-Raum finden. Nennen wir sie $R_w, G_w, B_w$. Falls nichts über die Szenenbeleuchtung bekannt ist, kommt man mit dem arithmetischen Mittel der $R, G, B$-Werte aller Bildpixels ziemlich nah heran. 1 Mit anderen Worten, Sie müssen die Farbe der Beleuchtung kennen und deren Chromatizität als RGB-Koordinaten in Ihrem Arbeits-RGB-Raum umwandeln.

Dann müssen Sie dasselbe für den erwarteten (Referenz-) Weißpunkt Ihres RGB-Raums tun. Nennen wir diese Koordinaten $R_{wr}, G_{wr}, B_{wr}$.

Schließlich ist der Weißabgleich des Bildes so einfach, wie jedes Pixel-RGB mit der Szenenbeleuchtung-RGB zu normalisieren und an die Zielbeleuchtung (oder Weißpunkt) RGB-Skalierung anzupassen (de-normalisieren):

$$ \text{\begin{cases}} R_{aus} &= R_{rein} * \dfrac{R_{wr}}{R_w}\\ G_{aus} &= G_{rein} * \dfrac{G_{wr}}{G_w}\\ B_{aus} &= B_{rein} * \dfrac{B_{wr}}{B_w}\\ \text{\end{cases}} $$

Sehen Sie, kein Bedarf für Kelvin-Temperaturen! Diese sind nur geschickt, um Verwirrung in der GUI zu erzeugen. Es ist einfach das Skalieren von Pixel-RGB mit sorgfältig ausgewählten Faktoren.

If we apply these operations on sensor RGB, we have input color profiles that expect a D65 illuminant to be encoded with certain RGB values: $R_{wr}G_{wr}B_{rw} = (1, 1, 1)$, by design. The $R_{w}G_{w}B_{r}$ values are then derived from the input color profile. This makes the computation even simpler:

$$ \text{\begin{cases}} R_{aus} &= \dfrac{R_{rein}}{R_w}\\ G_{aus} &= \dfrac{G_{rein}}{G_w}\\ B_{aus} &= \dfrac{B_{rein}}{B_w}\\ \text{\end{cases}} $$

That’s what we do in Ansel’s old white balance module.

Nun, das Kamerasensor-RGB unterscheidet sich umfänglich von unserem Kegelzellen-RGB. In der Praxis führt der Versuch, den Weißabgleich im Sensor-RGB durchzuführen, vor allem bei Beleuchtungen weit entfernt von D65 zu schlechten Ergebnissen, und spezielle „RGB“-Räume wurden entwickelt, um die perzeptuelle Konsistenz der Operation über den gesamten Farbbereich zu verbessern. Die Bradford, CAT02, CAT16 etc. chromatische Adaptionstransformationen (CAT) führen dieselben Operationen, aber in speziellen Räumen durch. Sie können mehr darüber erfahren , deren Unterschiede und Spezifikationen liegen außerhalb des Umfangs dieses Artikels.

White-balancing through CAT happens in Ansel’s color calibration module.

Weißabgleich in Ansel

Wenn wir einen teilweisen Pipeline-Flussplan des Standard-Ansel-Bearbeitungspipeline-Bestellmodules durchführen würden, erhielten wir die folgenden Module:

flowchart TD;
  raw(ROH) --> wb[Weißabgleich]
  wb --> Demosaicing
  Demosaicing --> ip[Eingangsfarbprofil]
  ip --> cc[Farbkalibrierung]
  cc --> filmisch
  filmisch --> op[Ausgangsfarbprofil]

For Fuji XTrans sensors, the Markesteijn demosacing algorithm relies on a luma/chroma separation, which requires at least a rough white balancing step to happen earlier. This is the old white balance module. But we know the result is not accurate, especially for illuminants far away from D65 (especially for low-quality artifical lighting).

Auch hängt die Qualität des Eingangsfarbprofils darauf ab, dass RGB bereits auf D65 normalisiert wurde. Wir wissen jedoch bereits, dass dies im Allgemeinen nicht genau sein kann. Einige Adobe-Produkte verwenden jetzt Dual-Beleuchtungs-DNG-Profile, die ein Eingangsprofil für Beleuchtungen D65 und eines für Beleuchtung A (Glühlampe) haben, und das finale verwendete Profil wird als ein Mix von beiden basierend auf der Farbtemperatur der Szenenbeleuchtung errechnet. Diese lösen das Problem für Tageslicht-ähnliche Beleuchtungen, adressieren jedoch nicht das Problem von farbigen Bühnenleuchten und anderen Energiesparlampen mit schrecklichen Farbwiedergabeindex (CRI).

Another, more accurate, step of white balancing was later added in color calibration, using chromatic adaptation transforms (CAT16, Bradford). It can be configured automatically by extracting a profile from a color checker chart. Empirical studies have shown that the lowest color deviation, after profiling from a color checker, was achieved with color calibration after a preliminary step of white balance, in the old module, so we have retained both:

  1. das Weißabgleich Modul normalisiert Sensor RGB so, dass D65 Weiß, das in der Szene erfasst worden wäre, auf $RGB = (1, 1, 1 )$ aufgezeichnet würde. Wenn die tatsächliche Szenenbeleuchtung etwas anderes ist, wird sie später behandelt.
  2. Eingangsfarbprofilmodul wandelt Sensor-RGB in CIE XYZ 1931 Farbraum um, der als Verklebung für alle späteren Farbräume dient, davon ausgehend D65-Beleuchtung (was allgemein falsch ist),
  3. Farbkalibrierung wandelt CIE XYZ 1931 in CAT16 oder Bradford „RGB“ um und wird jede willkürliche Szenen-Beleuchtung (d.h. wenn sie nicht D65 ist) auf den Pipeline-Weißpunkt (D50, wie im ICC-Workflow) normalisieren. 2
  4. Farbkalibrierung kann optional einen Verfeinerungsschritt des Eingangsfarbprofils, unter Verwendung eines Kanal-Mixers (aka ein Matrix-Farbprofil), dessen Parameter direkt von einem Farbchecker im Modul berechnet werden können.

Dieser dualen Weißabgleichsschritt ist für die Benutzer etwas verwirrend, hat aber nachgewiesenermaßen die genauesten Farben gegeben. Die Farbkalibrierung hat einen Diagnosmodi, die es ermöglicht, die Farbabweichung nach dem Profilieren, als Delta E , von einer Farbchecker Karte zu berechnen, damit Sie selbst nachgehen können.

GUI: Weiß mit Temperatur verbergen

In irgendeiner Software werden Ihnen stets ein Weißabgleich mit einem Temperaturschieber (eigentlich, Korrigierte Farbtemperatur ), und dann mit Tönung begegnen. Aber Sie sahen in der tatsächlichen Gleichung, dass der Weißabgleich intern nicht mit irgendetwas anderem als den RGB-Koordinaten der Beleuchtungen beschäftigt, obwohl in den besonderen RGB-Raum projiziert, in dem wir die Skalierung durchführen. Also, warum das verwirrende Kelvin (K) Temperatur? Nun, es gibt keinen Grund mehr außer der Tradition.

Physicists have a special radiator, called a black body . It’s an idealized object which, once heated at a certain temperature, will emit a known light spectrum. More interestingly, the shape of light spectrum can be entirely predicted by the temperature of the black body. Remember how RGB is a 3D reduction of a light spectrum ? Here, it’s a 1D reduction, even better ! Meaning one single number suffices to describe unambiguously a full spectrum.

image
Lichtspektren (blaue, rote, grüne Kurven) bei Temperaturen von schwarzen Körpern zwischen 3000 und 5000 K. Durch Darth Kule - Eigenes Werk, Öffentliche Domäne, Link

Die coole Eigenschaft hier ist, dass bis zur 1990er-Jahre (Heim-)Glühbirnen alle Glühfaden mit Glühwendel waren, die sind schwarze Körper bei 2855 K, standardisiert als Beleuchtung A durch die CIE. Dann fällt das Tageslicht sehr nah an Schwarze Körper Spektren zwischen 3000 K (Sonnenuntergang) und 8000 K (wolkenverhangener Tag). Wir konnten somit die Beleuchtungsfarbe auf einen einzigen Temperaturwert reduzieren, was für eine vereinfachten GUI sorgt, obgleich viel Glück erklärend für den Laien, warum Farbe plötzlich auf Temperatur reduziert wurde… Sehr wenige Fotografen verstehen was hier passiert, und das trotz eine „intuitive“ GUI…

image
Beleuchtungsfarbe assoziiert mit der Temperatur für schwarze Körper (adaptiert für D65 Medium-Weiß). Durch Bhutajata - Eigenes Werk, CC BY-SA 4.0, Link

Probleme traten auf, zuerst bei gefärbten Lichtern (Bühnenleuchten & -filter), zweitens bei billigen Hochleistungs-Glühbirnen (Natriumdampf, Halogen), dann mit neueren Glühbirnen (Leuchtstoff, LED), deren Lichtspektrum Spitzen und Täler haben, fern von der erwarteten Geschmeidigkeit eines schwarzen Körper Spektrums. Diese können nicht genau als ein einziger Temperaturwert beschrieben werden.

image
Lichtspektrum eines D65-Leuchtstoffsimulators, standardisiert als CIE-Beleuchtung F3.15. Die scharfen Spitzen sind nicht erwartet in einem Schwarzen Körper 6500 K Spektrum. Durch EllandeEigenes Werk, CC0, Link

Um Abweichungen von reinem schwarzen Körper Spektrum zu berücksichtigen, wurde eine zweite „Tönung“-Einstellung hinzugefügt, die unsere Beleuchtung 2D statt 1D beschreibt. Während die Temperatur die Planck’sche Reihe in gekrümmter Weise durchläuft, erlaubt die Tönung, davon orthogonal zu entfernen.

image
Die Planck'sche Reihe (fette Linie) deckt die Chromatizitäten ab, die mit einem schwarzen Körperspektrum verknüpft sind, hier repräsentiert in CIE 1960 UCS. Tageslichtspektren liegen sehr nah, aber nicht genau innerhalb der Planck'sche Reihe. Für eine beliebige Farbe können wir die nächste korrelierte Farbtemperatur (CCT) berechnen, unter Verwendung des nächsten Punkts der Planck'schen Reihe. Für $\Delta_{uv} > 0,05$, das heißt, wenn die Farbe zu weit weg von der fetten Linie liegt, ist diese CCT bedeutungslos und die CIE rät davon ab, sie zu verwenden. Softwareentwickler antworteten „halt mein Bier“ und fügte eine zweite Koordinate hinzu, die Tönung, orthogonal (theoretisch) zur Planck'schen Reihe (gerade Linien). In der Praxis ist Tönung nicht einmal so sauber, es ist in der Regel eine Grün-Magenta-Achse. Durch Adoniscik - Eigenes Werk, Öffentliche Domäne, Link

Das könnte in Ordnung sein, aber es ist es wirklich nicht. Tatsächlich, sobald wir die RGB-Koordinaten der Beleuchtung (zum Beispiel, wie die Kamera es intern erfasste) haben, die zugeordnete Farbtemperatur (CCT) zu ermitteln erfolgt durch verschiedene Annäherungen  (jede Software könnte seine eigene verwenden). In die entgegengesetzte Richtung, wenn wir die Farbtemperatur kennen, können wir die RGB-Koordinaten der Beleuchtung durch andere Annäherungen  erhalten. Bedeutet, dass der Rundlauf RGB → Temperatur → RGB (oder, ähnlich, Temperatur → RGB → Temperatur) nicht den ursprünglichen Wert liefert. Also, falls die Szenenbeleuchtung etwas anderes als ein reines schwarzes Körper Spektrum ist, überlagern wir eine grobe Annäherung der willkürlichen Beleuchtung durch eine bedeutungslose (und falsche) Temperatur oben auf der Annäherung der RGB-Koordinaten von der Temperatur, alles nur als ein Zwischenschritt entworfen um eine 1D-Schieber in GUI zu zeigen (bei 2D wenn Tönung für schwierige Fälle), während all das Pixelcode sich um ist die RGB-Koordinaten der Beleuchtung sowieso, die überall direkt in RGB ohne Zwischenschritt Temperatur berechnet werden könnte.

For this reason, Ansel has different illuminant settings in color calibration CAT. If we find that the camera detected something close enough to daylight or blackbody, we automatically offer the temperature setting. Else, we default to “custom”, which provides users with a 2D hue/chroma setting in CIE Luv 1976  that will directly allow to define illuminant color without intermediate computation. From hue/chroma to RGB, the illuminant computation uses no approximation, so the roundtrip RGB → hue/chroma → RGB accurately yields the original values.

Aber das Durcheinander, das durch Temperaturen entsteht, endet hier nicht. Das Modell des schwarzen Körpers verknüpft Temperaturen mit Farben so:

image
Beleuchtungsfarbe assoziiert mit der Temperatur für schwarze Körper (adaptiert für D65 Medium-Weiß). Durch Bhutajata - Eigenes Werk, CC BY-SA 4.0, Link

Dennoch zeigen alle Weißabgleich-Temperaturregler Folgendes:

image

Ja, es ist umgekehrt. Warum? Weil es nicht die Farbe des Lichtes zeigt, sondern der Versuch, die Wirkung (eine Farbverschiebung) auf das Bild darzustellen. Aber… Die Wirkung eines Weißabgleichs ist es, eine farbige Fläche (in Bezug auf den Weißpunkt unseres aktuellen Arbeitsraums) zu Weiß zu machen. Die Wirkung sollte also von Anfang an Weiß sein… Was dieser farbige Regler tatsächlich anzeigt, ist, wie ein im Bild aufgenommenes D65-Weiß nach Anwendung unseres Weißabgleichs aussehen würde. Aber warum sollten wir uns um das Aussehen eines virtuellen D65-Weißes aus der Szene kümmern, das nicht einmal existiert, wenn unser Szenen-Licht nicht D65 ist (sonst bräuchten wir gar keinen Weißabgleich)? Es ergibt keinen Sinn.

Im Farbkalibrierungsmodul werden die Temperaturen entsprechend der Farbe angezeigt, die sie repräsentieren und die der Farbfleck des Lichtes entspricht, der durch Abtasten achromatischer Flächen im Bild mit dem Farbpipette gefunden werden kann:

After After
Before Before
Durch Deaktivieren der Farbkalibrierung wird das Bild so verschoben, wie es in dem Fleck gezeigt wird.

In Übereinstimmung mit unserer remapping Denkweise zeigt dies deutlich, welche Originalfarbe aus dem Bild durch die Transformation zu D50 Weiß umgewandelt wird, anstatt zu versuchen, eine Farbverschiebung mit einer absoluten Farbe darzustellen. Das Problem ist, dass viele Nutzer jetzt denken, dass bei diesem Ansatz etwas kaputt ist, weil sie von dem unsinnigen Ansatz geprägt wurden.

Realität: Bilder haben mehr als ein Licht

Es ist etwas spät, um einen weiteren Elefanten im Raum zu adressieren: die Grundannahme aller chromatischen Anpassungen, unsere Farbverarbeitung erwartet einen und nur einen Licht. Das ergibt Sinn, wenn man auf Papier druckt oder auf dem Bildschirm anzeigt: Weiß wird durch den Farbton des Papiers oder die LED-Hintergrundbeleuchtung definiert. Aber in der Szene, es sei denn, man fotografiert im Studio mit nur schwarzen/weißen Wänden, Böden und Decken, gibt es mehrere “Lichte”.

Lassen Sie uns das mit einem Beispiel erklären. Das unten stehende Bild wurde Mitte Oktober aufgenommen, während die Baumblätter orange wurden. Wir haben Überhang von Laub, Bäume links und rechts und Gras auf dem Boden:

  • Das grüne Gras auf dem Boden fungierte als grüner Reflektor und streute Licht hauptsächlich unter dem Kinn: das ist ein virtuelles Licht.
  • Die gelblichen Blätter über dem Kopf fungierten als gelber Reflektor und streuten Licht hauptsächlich auf die Wangen und das Dekolleté: das ist ein weiteres virtuelles Licht.
  • Dann durchbrach das direkte Sonnenlicht die Blätter, auf den hellen Hautstellen, was das tatsächliche Licht ist (aka Quelle aller Photonen in der Szene).
  • Unterdessen war der grüne Hintergrund wahrscheinlich verwirrend für die in-Kamera automatische Weißabgleichs-Erkennung, und wir können kein achromatisches Objekt als Referenz in unserem Fotoeditor abtasten.
After After
Before Before
Vorher: keine Farbkorrektur, hält sich an den in-Kamera erkannten WB
Nachher: Farbabgleich vom Farbcheckerm, Farbbalance manuell durchgeführt (Details unten)
© Aurélien Pierre

Dies ist also insgesamt eines der schwierigsten Setups: jedes Merkmal und jede Fläche des (3D-)Gesichts wird sein Licht hauptsächlich von einem anderen (realen oder virtuellen) Licht bekommen, abhängig von der Orientierung der Fläche im Raum, und wir können uns im Allgemeinen nicht auf die automatische WB-Erkennung verlassen, da der gesamte Rahmen durch Laub verzerrt ist, obwohl es hier einen ziemlich guten Job macht. Viele Fotografen denken immer noch, dass es unmöglich ist, Hauttöne in diesem Szenario zu korrigieren; das obige Bild beweist ihnen das Gegenteil, erfordert jedoch einiges an Virtuosität.

Der Trick hier ist zuallererst, ein Farbschachbrett-Aufnahme zu machen, um die grüne Abweichung so weit wie möglich mit Hilfe des Farbkalibrierungsmoduls zu korrigieren. Das Farbschachbrett wird vor dem Subjekt gehalten und zur Kamera gerichtet, um eine durchschnittliche Mischung aller verfügbaren Lichter zu erhalten (und hoffentlich kein Blenden). So wird die Farbkalibrierung dafür genutzt, “hauptsächlich dahin zu gelangen”, versucht eine Durchschnittsmischung aller Lichtquellen zu berücksichtigen. Das Farbschachbrett wird uns viel manuelles, frustrierendes und zeitaufwändiges Fummeln mit Parametern ersparen.

After After
Before Before
Anwenden der Farbkalibrierungs Einstellungen (CAT und Kanalabmischer) berechnet aus den Werten des Farbcheckers.
Vorher: Licht in-Kamera erkannt: Farbton 53°, Chroma 17.1 % (gelb) - Delta E: durchschnittlich 3.47, max 7.94
Nachher: Licht berechnet aus Farbcheck: Farbton 67.5°, Chroma 13.0 % (grün) - Delta E: durchschnittlich 2.54, max 5.36
© Aurélien Pierre

Wenn wir künstliche Objekte hätten, mit scharfen Konturen, könnten wir dann die Farbkalibrierung mehrmals instanziieren und Bereiche selektiv maskieren, die wir sehen weiß balancieren möchten. Aber hier, mit einem menschlichen Gesicht, haben wir abgerundete Flächen, die nahtlos ineinander übergehen, was nicht möglich ist.

Es ist nützlich zu erinnern, dass die Farbgleichgewichts Schattenanhebung und die Highlights-Verstärker ebenfalls einfache RGB-Multiplikationen sind, genau wie unser Weißabgleich. Während es mathematisch dasselbe ist, geschehen sie in einem speziellen RGB-Raum, der für die wahrnehmungsgerechte Gleichmäßigkeit der Farben entworfen wurde (um das Farbgrading zu verbessern), anstatt in einem CAT-Raum, der speziell für die Anpassung des Weißpunktes entworfen wurde. Dennoch können Anhebung und Verstärkung als lokale chromatische Anpassung für Schatten und Highlights betrachtet werden und können zu diesem Zweck genutzt werden.

So behebt man das Bild folgendermaßen:

  1. Von den Schatten wird erwartet, dass sie ein höheres Verhältnis von grüner Streulicht haben, daher das Schatten liften auf Magenta stellen (immer mit Verschiebung zur gegensätzlichen Farbe kompensieren),
  2. Von den Highlights wird erwartet, dass sie ein höheres Verhältnis von gelbem Licht haben (vom Herbstlaub), daher das Höhepunkte Verstärkung auf Blau stellen,
  3. Der endgültige Hautton kann mit Hilfe der Mitteltöne-Leistung, in Farbkalibrierung, angepasst werden, um die magenta-rote Verschiebung zu mildern, die höchstwahrscheinlich aus den nächsten 2 Schritten resultieren wird. Dies wird durch erneutes Einführen von etwas Gelb geschehen.
  4. Die direkten Sonnenlichtstellen auf der Haut können locker entsättigt werden, um sich zu mischen, da sie viel heller sind als alles andere, durch filmische Sättigung (Look Tab) und/oder Farbgleichgewicht Höhepunkte-Sättigung (Master Tab).

In jedem Fall beginnt das Beheben eines solchen Bildes in der Szene, indem man entwirrt, wie die verschiedenen Lichtquellen auf die Oberflächen Ihres Subjekts einwirken. Es wird viel einfacher sein, eine Nachbearbeitungsmethode zu entfalten, sobald Sie alle mentalen Notizen darüber haben, was gerade vor sich ging.

Zurück zu künstlerischen Entscheidungen

Also, willst du deinen goldenen Stunde Bernstein-Haze? Ok, aber durch Drehen des Weißabgleichs wahrscheinlich nicht den richtigen Weg, da dies alle Farben über den gesamten Dynamikbereich beeinflusst.

Es gibt einen einfacheren, besseren und besser passenden Weg, indem ein neutraler Weißabgleich verwendet wird und dann das Bild mit Farbgleichgewicht Leistung getönt wird:

After After
Before Before
Vorher: Weißabgleich warm gehalten aus “künstlerischen Gründen” (Licht: Tageslicht 4341 K).
Nachher: Weißabgleich für nahezu achromatische Weiß normalisiert (Licht: Tageslicht 3832 K), danach Bernstein-rot Farbgrading unter Verwendung der Farbbalance Leistung.
Dies ermöglicht es uns, eine tiefere Farbverschiebung und mehr von diesem Amber-Haze in Mitteltönen zu bekommen, ohne in Spitzenemissionen und Wasserbläue einzuwirken. Der Look ist insgesamt natürlicher.

Translated from English by : ChatGPT. In case of conflict, inconsistency or error, the English version shall prevail.

  1. This is called the “grey world assumption”. It is actually how cameras detect white balance, though nowadays they might choose to do so in some well-chosen areas of interest instead of doing it blindly on the whole image. ↩︎

  2. It is worth noting than we can’t directly convert sensor RGB to CAT16 or Bradford without going through CIE XYZ 1931, so we need the input color profiles to be applied first. But we know the input color profile, and therefore the conversion from sensor RGB to CIE XYZ 1931, will be wrong in general because it relies on having whatever scene “white” balanced to $(1, 1, 1)$ already. In an ideal world, we would have one input profile for each scene illuminant, but that’s technically impossible. So this is why the channel mixing in color calibration comes as a nice refinement step. ↩︎