Die Farbräume von darktable
Eingabe-Bilder sind entweder RGB-Dateien (wie JPEGs oder TIFFs) oder Kamera-RAWs. Beide speichern visuelle Informationen als Kombinationen der Primärfarben (z.B. rot, grün und blau) welche zusammen eine Licht-Emission beschreiben, die vom Bildschirm wiedergegeben werden.
Das folgende Bild illustriert dieses Konzept.
Die linke Seite des Bildes bildet ein farbiges Licht ab, das digital dargestellt werden soll. Wir können drei ideale Farbfilter, um dieses Licht in die drei Primärfarben in verschiedenen Intensitäten aufzuteilen. Um das originale gefärbte Licht aus den ideal aufgeteilten (wie im Mittelteil des Bildes dargestellt) müssen wir ganz einfach diese drei Primär-Lichter mit Addition wieder zusammenführen.
Es sollte möglich sein, das originale gefärbte Licht zu reproduzieren, indem man einen Satz weißes Licht mit den korrekten Intensitäten nimmt und diese Lichter durch einen geeigneten gefärbten Filter projiziert. Dieses Experiment kann zu Hause mit Gels und dimmbarem Licht durchgeführt werden. Das ist grob gesagt, das was ein alter Farb CRT Bildschirm machte, und es ist das, wie ein Video-Projektor immer noch arbeitet.
In der Fotografie wird der erste Zerlegungs-Schritt mit dem Farb-Gitter gemacht, das auf dem Sensor deiner Kamera ist. Diese Zerlegung ist nicht ideal, so ist es nicht möglich die ursprüngliche Emission mit einfacher Addition genau wiederzugeben – ein gewisses Zwischen-Skalieren ist nötig, um die drei Intensitäten anzugleichen.
Auf Bildschirmen werden LED-Lampen proportional zu jeder Intensität abgedimmt, und die drei Lichter erden physikalisch addiert, um die originale Emission zu rekonstruieren. Digitale Bilder speichern die Intensitäten dieser Primär-Lichter als ein Set von drei Zahlen für jedes Pixel, so beschrieben auf der rechten Seite des obigen Bildes als Schatten-Nuance von Grau.
Während ein Set von Ausgabe-Intensitäten leicht kombiniert werden kann, um ein originales Licht auf dem Bildschirm darzustellen (zum Beispiel, wenn wir ein synthetisches Bild auf dem Computer kreieren), braucht das Set der aufgenommenen Intensitäten eines Sensors, gewisses skalieren, damit die Bildschirm-Licht-Addition ein entsprechendes Bild der originalen Licht-Emmission reproduzieren kann. Das bedeutet, dass alle Sets von Licht-Intensitäten, als RGB Sets ausgedrückt, mit einem Set von Filtern verbunden werden müssen (oder Primär-LED-Farben), die einen Farbraum definieren – jedes RGB-Set macht nur mit Referenz zu einem Farbraum Sinn.
Wir müssen nicht nur die aufgenommenen Intensitäten mildern, um sie wieder addierbar zu machen, aber wenn wir das originale Licht auf einem Bildschirm wieder zusammensetzen wollen, der nicht die gleichen Farbfilter, oder die gleichen Primärfarben hat, wie der Farbraum zu dem unser RGB gehört, dann müssen diese Intensitäten reskaliert werden, um den unterschiedlichen Filtern gerecht zu werden. Der Mechanismus für diese Skalierung wird in Farbprofilen beschrieben, und normalerweise in .icc
Dateien gespeichert.
Beachte: Farbe ist nicht physikalisch eine Eigenschaft des Lichtes – es existiert nur im menschlichen Gehirn, als ein Produkt der Zerlegung einer Licht-Emission in den Zapfen-Zellen der Retina, und wieder ganz ähnlich dem oben beschriebenen Beispiel von filtern. Ein “RGB” Wert sollte als “Licht-Emissionen, kodiert in drei Kanälen, die zu drei Primären verbunden sind”, aber die Primären selber können verschieden aussehen zu dem was Menschen als “rot”, “grün” oder “blau” bezeichnen würden.
Die hier beschriebenen Filter sind überlappende Band-Pass-Filter. Weil sie überlappen, diese zusammen zurück zu summieren würde die Energie es originalen Spektrums nicht erhalten, so (kurz gesagt) müssen wir diese herunter skalieren, in Bezug auf die Retina-Konen-Antwort.
Das meiste der aktuellen Bildbearbeitung von darktable findet in einem großen RGB “Arbeits-Profil” Raum statt, mit einigen (meistens älteren) Modulen, die intern im CIELab 1976 Farbraum (oft “Lab” genannt), arbeiten. Die endgültige Ausgabe des Bildes aus der Bearbeitungs-Pipeline ist dann wieder in einem RGB-Raum, der entweder auf die Bildschirm-Ausgabe, oder die Ausgabe-Datei zugeschnitten ist.
Dieser Prozess bedingt, dass die Pixelpipe zwei fixierte Umwandlungs-Schritte beinhaltet: Eingabe Farbprofil und Ausgabe Farbprofi. Und zusätzlich gibt es für RAW-Bilder den Schritt des Entrastern, in dem die Farben jedes Pixels mit Interpolation rekonstruiert werden müssen.
Jedes Modul hat eine Position in der Pixelpipe, die dir sagt, in welchem Farbraum das Modul existiert:
-
bis zum Entrastern : Das Bild im Rohdatenformat ist bis dahin noch kein “Bild”, sondern nur “Daten” über das Licht, das mit der Kamera eingefangen wurde. Jedes Pixel enthält nur Farbinformationen für eine Grundfarbe, und Kamera-Grundzüge sind sehr unterschiedlich von Grundzügen in der menschlichen Sicht. Bitte beachte, dass einige der Module in diesem Teil der Pipe auch als nicht-RAW Eingangsbilder in das RGB-Format (mit vollständigen Informationen auf allen drei Farbkanälen) agieren können.
-
Zwischen Entrastern und Eingabefarbprofil : Das Bild ist im RGB Format innerhalb des Farbraumes der spezifischen Kamera oder der Eingabe-Datei.
-
Zwischen Eingabefarbprofil und Ausgabefarbprofil : Das Bild ist im Farbraum definiert durch das gewählte Arbeits-Profil (Standard lineares Rec2020 RGB). Da darktable Bilder in 4x32-bit Fließkomma Puffern verarbeitet, können wir mit sehr großen Farbräumen umgehen, ohne das Risiko von Streifen-Bildung oder Farb-Abbrüchen.
-
Nach Ausgabefarbprofil : Das Bild ist im RGB Format als definiert durch den ausgewählten Bildschirm oder dem Ausgabe ICC-Profil.