Las pantallas y la mayoría de los formatos de archivo de imagen solo pueden codificar intensidades RGB confinadas dentro de un cierto rango. Por ejemplo, las imágenes codificadas en 8 bits solo pueden contener valores de 0 a 255, imágenes en 10 bits de 0 a 1023, y así sucesivamente … Los estándares gráficos postulan que el máximo de ese rango, sin importar su valor real, siempre representará el brillo máximo que el medio de visualización puede generar, normalmente entre 100 y 160 Cd / m² (o nits), según el estándar real. Generalmente llamamos a este máximo “100% referido a la pantalla”. El mínimo del rango, codificado en 0 sin importar la profundidad de bits utilizada, se convierte entonces en “0% referido a la pantalla”. El 100% codifica el blanco puro, el 0% codifica el negro puro.
Esta es una limitación para las aplicaciones de procesamiento de imágenes, porque significa que cualquier píxel que se encuentre fuera de este rango será recortado al límite más cercano, lo que resultará en una pérdida de datos no recuperable (colores y / o texturas).
Durante mucho tiempo, el software de procesamiento de imágenes también estuvo limitado a esta limitación por razones técnicas, y algunos todavía lo están, pero ahora por elección de diseño. Como resultado, recortarían las intensidades RGB al 100% referido a la visualización entre operaciones de imagen.
Ansel utiliza aritmética de punto flotante dentro de su canalización de color, lo que significa que puede manejar cualquier valor RGB internamente, incluso aquellos fuera del rango referido a la pantalla, siempre que sea positivo. Solo al final de la canalización, antes de que la imagen se guarde en un archivo o se envíe para mostrar, se recortan los valores RGB si es necesario.
Se dice que los píxeles que pueden tomar valores fuera del rango de visualización tienen “colores ilimitados”. Se podría optar por fijar (es decir, limitar) esos valores al rango permitido en cada paso de procesamiento o elegir continuar con ellos y fijarlos solo en el último paso de la tubería. Sin embargo, se ha descubierto que el procesamiento es menos propenso a los artefactos si los colores ilimitados no se sujetan, sino que se tratan como cualquier otro dato de color.
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.