Grenzenlose Farben

Bildschirme und die meisten Dateiformate können nur RGB-Intensitäten in einem bestimmten Bereich kodieren. Zum Beispiel können 8-Bit-kodierte Bilder nur Werte zwischen 0 und 255 enthalten, Bilder mit 10-Bit zwischen 0 und 1023, und so weiter. Grafikstandards setzen voraus, dass das Maximum dieses Bereiches, unabhängig vom aktuellen Wert, immer die maximale Helligkeit darstellt, die das Anzeigemedium imstande ist zu rendern, abhängig vom aktuellen Standard normalerweise zwischen 100 und 160 Cd/m² (oder nits). Wir nennen das generell “100 % anzeigebezogen”. Der minimale Bereich kodiert als 0, unabhängig von der Bit-Tiefe, wird dann “0 % anzeigebezogen”. 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).

Lange Zeit war auch Bildbearbeitungs-Software aus technischen Gründen beschränkt innerhalb dieser Grenzen, und einige ist es immer noch, aber jetzt aus Designgründen. Als Resultat werden diese die RGB-Intensitäten bei 100 % anzeigebezogen zwischen Bildbearbeitungsoperationen beschneiden.

darktable nutzt Fließkomma-Arithmetik innerhalb der Farb-Pipeline, sodass es intern jeden RGB Wert bearbeiten kann, auch jene außerhalb des anzeigebezogenen Bereiches, solange diese positiv sind. Nur ganz am Ende der Pipeline bevor das Bild in eine Datei gesichert wird oder zur Anzeige geschickt wird, werden RGB-Werte beschnitten, sofern nötig.

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-Werte in den auf Anzeige bezogenen Bereich abzubilden, gleichzeitiger Maximierung der Datenerhaltung und Vermeidung von hartem Beschneiden, das normalerweise unangenehm für das Auge 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.

translations