Grenzenlose Farben
Bildschirme und die meisten Dateiformate können nur in RGB-Intensitäten in einem gewissen Bereich kodieren. Zum Beispiel können 8 bit kodierte Bilder nur Werte zwischen 0 und 255 enthalten, Bilder von 10 bit 1023, und so weiter… Grafik-Standards postulieren, dass das Maximum dieses Bereiches, unabhängig vom Bereich oder dem aktuellen Wert, wird immer die maximale Helligkeit präsentieren, die das Medium imstande ist zu rendern, normalerweise zwischen 100 und 160 Cd/m² (oder nits) abhängig vom aktuellen Standard. Wir nennen das generell “100 % aus Anzeige-bezogen”. Der minimale Bereich kodiert als 0, unabhängig von der Bit-Tiefe, wird dann “0 % auf Anzeige-bezogen”. 100 % bedeutet reines Weiß, 0 % reines Schwarz.
Das ist eine Begrenzung für Bildbearbeitung Anwendungen, weil es bedeutet, dass jedes Pixel, das außerhalb dieses Bereiches liegt, beschnitten wird, was einen nicht-wiederherstellbaren Verlust von Daten bedeutet (Farben oder Texturen).
Für die längste Zeit war auch Bild-Bearbeitungs-Software aus technischen Gründen gefangen innerhalb dieser Grenzen, und gewisse sind es immer noch, aber jetzt aus Gründen der Entwicklung. Als Resultat werden diese die RGB-Intensitäten bei einem 100 % auf Anzeige bezogenen Arbeitsablauf beschneiden.
darktable nutzt die Fließ-Komma-Arithmetik innerhalb der Farb-Pipeline, was bedeutet, dass es intern jeden RGB Wert bearbeiten kann, auch jene außerhalb des auf Anzeige-bezogenen Bereiches, solange diese positiv sind. ur ganz am Ende der Pipeline, vor das Bild in eine Datei gesichert, oder zur Anzeige geschickt wird, werden die RGB Werte beschnitten, sofern das nötig ist.
Pixel, die Werte annehmen, die außerhalb des Bereiches der Anzeigen sind, werden gesagt, sie haben “unbegrenzte Farben”. Man könnte wählen, diese einzuklemmen (z.B. zu begrenzen) auf jene Werte, die im erlaubte Bereich sind bei jedem Bearbeitungsschritt, oder so fortzufahren, um sie dann im letzten Schritt der Pipeline einzuklemmen. Es wurde jedoch herausgefunden, dass die Bearbeitung weniger anfällig auf Artefakte ist, wenn die unbegrenzten Farben nicht eingeklemmt werden, sondern, wie alle anderen Daten behandelt werden.
Am Ende der Pipeline können Module wie Filmic RGB helfen die RGB-Farben in den auf Anzeige-bezogenen Bereich einzuordnen, und gleichzeitig die Daten-Erhaltung zu maximieren und ein hartes Beschneiden zu vermeiden, das normalerweise nicht sehr erfreulich ist.
Du musst jedoch zu jeder Zeit sicherstellen, dass du keine negativen RGB-Werte kreierst. RGB-Intensitäten kodieren Licht-Emissionen und negatives Licht existiert nicht. Jene Module, die auf dem physikalischen Verständnis des Lichtes für den Prozess von Pixeln beruhen, werden nicht funktionieren, wenn sie auf nicht-physikalische Licht-Emissionen treffen. Zur Sicherheit werden negative RGB-Werte immer noch beschnitten, wann immer sie dazu führen, dass der Algorithmus versagt, aber das sichtbare Resultat könnte fade aussehen. Negative Werte können produziert werden, wenn der Schwarz-Wert im Modul Belichtung oder der Offset in Farbbalance missbraucht werden, deshalb sollte beim Anwenden dieser Module mit Vorsicht vorgegangen werden.