colores ilimitados

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.

darktable 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.

Al final de la canalización, módulos como película pueden ayudarlo a reasignar valores RGB al rango referido a la pantalla mientras maximiza los datos conservación y evitar recortes duros, que normalmente no son agradables a la vista.

Sin embargo, en todo momento en la canalización, debe asegurarse de no crear valores RGB negativos. Las intensidades RGB codifican las emisiones de luz y la luz negativa no existe. Los módulos que se basan en un conocimiento físico de la luz para procesar los píxeles fallarán si encuentran una emisión de luz no física. Por seguridad, los valores RGB negativos todavía se recortan cuando pueden hacer que los algoritmos fallen, pero el resultado visual puede parecer degradado. Pueden producirse valores negativos al abusar del nivel de negro en exposición o del offset en _color balance _ y se debe tener cuidado al usar estos módulos.