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.
Ansel 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.
At the end of the pipeline, modules like filmic rgb can help you to remap RGB values to the display-referred range while maximizing the data preservation and avoiding hard clipping, which is usually not visually pleasing.
However, at all times in the pipeline, you must ensure that you do not create negative RGB values. RGB intensities encode light emissions and negative light does not exist. Those modules that rely on a physical understanding of light to process pixels will fail if they encounter a non-physical light emission. For safety, negative RGB values are still clipped whenever they might make the algorithms fail, but the visual result might look degraded. Negative values can be produced when abusing the black level in exposure or the offset in color balance RGB and care should be taken when using these modules.