¿Por qué las correcciones de balance de blancos JPEG posteriores al procesamiento no son tan precisas como el balance de blancos con Raw?
Según tengo entendido, cuando se graba jpeg, la cámara realiza internamente los siguientes pasos:
- Convierta los datos sin procesar del sensor utilizando el algoritmo (demoaicing / debayering).
Convertir a espacio lineal
a. Uso del valor sin procesar del mapa de tabla de búsqueda en el espacio lineal
si. El nivel de negro para cada píxel se calcula y se resta.
C. El valor de cada píxel se redimensiona a 0.0 a 1.0 usando Whitelevel
re. Los valores reescalados se recortan a un rango lógico de 0.0 a 1.0.
Asignación del espacio de color de la cámara al espacio CIE XYZ con ajuste de balance de blancos
a. Convierta a XYZ (D50) usando CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrix
Convertir CIE XYZ a sRGB
a. Calcule RGB lineal usando CIE XYZ para matriz RGB lineal
si. Calcule Rec709 sRGB utilizando la transformación de curva gamma en RGB lineal
- Convierte sRGB a 8 bits y comprime usando JPEG
Si esto es correcto, no entiendo por qué Jpeg no pudo corregir el balance de blancos de la misma manera que Raw.
¿Es simplemente debido a la compresión con pérdida de JPEG y el archivo tiff de 32 bits no tendría este problema?
fuente
Respuestas:
Hay una diferencia fundamental entre trabajar con los datos sin procesar reales para producir una interpretación diferente de los datos sin procesar que la interpretación inicial de 8 bits del archivo sin procesar que ve en su pantalla en comparación con trabajar con un archivo jpeg de 8 bits donde se encuentra toda la información el archivo es lo que ves en tu pantalla.
Cuando usa el clicker blanco en un archivo "en bruto", no está corrigiendo la imagen que se muestra en su pantalla (que es una representación de 8 bits tipo jpeg que es una de las muchas interpretaciones posibles de los datos en un archivo de imagen en bruto ) Le está diciendo a la aplicación de conversión sin formato que regrese y reconvierta los datos en el archivo sin formato en una imagen visualizable utilizando un conjunto diferente de multiplicadores de canales de color.
Está creando otra imagen a partir de los mismos datos sin procesar que se utilizaron para crear la primera versión que ve en su pantalla. Pero la aplicación se remonta al principio y utiliza todos los datos en el archivo sin procesar para crear una segunda interpretación diferente de los datos sin procesar según sus diferentes instrucciones sobre cómo se deben procesar esos datos. No comienza con la información limitada que se muestra en la pantalla y la corrige. Si lo hiciera, obtendría el mismo resultado que al trabajar con el JPEG. ¹
El archivo sin formato contiene mucha más información de la que se muestra en su monitor cuando 'abre' un archivo sin formato. Los archivos de imagen sin procesar contienen suficientes datos para crear un número casi infinito de interpretaciones diferentes de esos datos que caben en un archivo jpeg de 8 bits.²
Cada vez que abre un archivo sin formato y lo mira en la pantalla, no está viendo "EL archivo sin formato". ³ Está viendo una de las innumerables interpretaciones posibles de los datos en el archivo sin formato. Los datos sin procesar en sí contienen una sola medida de valor de brillo (monocromo) por cada pozo de píxeles. Con los sensores de cámara enmascarados de Bayer (la gran mayoría de las cámaras digitales en color usan filtros Bayer) cada pozo de píxeles tiene un filtro de color en frente que es 'rojo', 'verde' o 'azul' (los 'colores' reales de los filtros en la mayoría de las máscaras de Bayer son desde un verde ligeramente amarillento a un amarillo anaranjado para 'rojo', un verde ligeramente azulado para 'verde' y un violeta ligeramente azulado para 'azul' -estos colores corresponden más o menos al centro de sensibilidad para los tres tipos de conos en nuestras retinas ). Para una discusión más completa de cómo obtenemos información del color de los valores de brillo individuales medidos en cada pozo de píxeles, vea que los archivos RAW almacenan 3 colores por píxel, o solo uno.
Cuando cambia el balance de blancos de un archivo sin formato, no está realizando cambios en la interpretación de 8 bits del archivo sin formato que ve en la pantalla, está realizando cambios en la forma en que se interpretan los datos en bruto monocromáticos lineales de 14 bits y luego se muestra en la pantalla con el balance de blancos actualizado.Es decir, está utilizando la ventaja completa de esos 16,384 pasos lineales monocromáticos discretos que contiene el archivo sin procesar para cada píxel, no los 256 pasos discretos corregidos con rayos gamma en tres canales de color para cada píxel que ve en su pantalla de 8 bits como una representación de ese archivo sin formato. También está aprovechando toda la otra información contenida en los datos de imagen en bruto, incluidos elementos como píxeles enmascarados y otra información que se descarta cuando el archivo se convierte a un formato de 8 bits para que se muestre en su pantalla.
La forma en que se verá la imagen que ve en su monitor cuando abra un archivo sin procesar depende de cómo la aplicación que utilizó para abrir el archivo interpreta los datos sin procesar en el archivo para producir una imagen visible. Pero esa no es la "única" forma de mostrar "EL archivo RAW original". Es solo la forma en que su aplicación, o la cámara que produjo la vista previa jpeg adjunta al archivo sin procesar, ha procesado la información en el archivo sin procesar para mostrarla en su pantalla.
Cada aplicación tiene su propio conjunto de parámetros predeterminados que determinan cómo se procesan los datos sin procesar. Uno de los parámetros más significativos es cómo se selecciona el balance de blancos que se utiliza para convertir los datos sin procesar. La mayoría de las aplicaciones tienen muchos conjuntos diferentes de parámetros que pueden ser seleccionados por el usuario, quien luego es libre de modificar las configuraciones individuales dentro del conjunto de instrucciones utilizadas para interpretar inicialmente los datos en el archivo sin procesar. Muchas aplicaciones usarán los multiplicadores de canales de balance de color / balance de blancos estimados por la cámara (cuando se usa AWB en la cámara) o ingresados por el usuario (cuando se usa la corrección CT + WB en la cámara) en el momento en que se tomó la foto. Pero ese no es el único balance de blancos legítimo que se puede utilizar para interpretar los datos sin procesar.
Con un archivo sin formato de 14 bits, hay 16.384 valores discretos entre 0 (negro puro) y 1 (blanco puro). Eso permite pasos muy pequeños entre cada valor. Pero estos son valores de luminancia monocromáticos . Cuando los datos se muestran, se aplican curvas gamma y se realiza la conversión a un espacio de color específico, los multiplicadores de conversión WB generalmente se aplican a estos valores de 14 bits. El paso final en el proceso es reasignar los valores resultantes a 8 bits antes de realizar la compresión de archivos con pérdida. 8 bits solo permite 256 valores discretos entre 0 (negro puro) y 1 (blanco puro). Por lo tanto, cada paso entre valores es 64 veces mayor que con 14 bits.
Si luego intentamos cambiar el WB con estas gradaciones de curso mucho más, las áreas que intentamos expandir empujan cada uno de los pasos en los datos que estamos usando más allá de un solo paso en el archivo resultante. Entonces las gradaciones en esas áreas se vuelven aún más gruesas. Las áreas que reducimos empujan cada uno de esos pasos a un espacio más pequeño que un solo paso en el archivo resultante. Pero luego, todos esos pasos se realinean para ajustarse a la gradación de 256 pasos entre '0' y '1'. Esto a menudo resulta en bandas o posterización en lugar de transiciones suaves.
¹ Para ser más rápido y menos intensivo en recursos, algunas aplicaciones de procesamiento sin procesar tendrán un modo "rápido" que en realidad modifica la representación existente de 8 bits en su pantalla cuando mueve un control deslizante de configuración. Esto a menudo resulta en bandas u otros artefactos indeseables, como el tinte púrpura que ves en el jpeg de color cambiado en la pregunta. Sin embargo, esto solo se aplica a la vista previa que está viendo. Cuando el archivo se convierte y se guarda (exporta), las mismas instrucciones se aplican realmente a los datos sin procesar a medida que se reprocesan y las bandas u otros artefactos no se ven (o no son tan graves).
² Claro, puede tomar una fotografía que contenga un solo color puro en todo el campo de visión. pero la mayoría de las fotos contienen una amplia variación de matices, matices y niveles de brillo.
³ Por favor, vea: ¿ Por qué mis imágenes RAW ya están en color si todavía no se ha realizado el desbarbado?
Puede cambiar el color de un JPEG a un grado, pero la mayor parte de la información necesaria para producir todos los colores que puede producir con los datos sin procesar ya no está allí. Se descartó durante la conversión a RGB y la reducción a 8 bits antes de la compresión. Lo único que le queda para trabajar son los valores de cada píxel en esos tres canales de color. Las curvas de respuesta para cada uno de esos canales pueden redibujarse, pero todo lo que hace es aumentar o disminuir el valor de ese canal de color en cada uno de los píxeles de las imágenes. No retrocede y rehace demostraciones basadas en nuevos multiplicadores de canales, porque esa información no se conserva en el JPEG.
Es vital comprender que en la imagen de ejemplo agregada a la pregunta, la segunda imagen no se deriva de la primera imagen. Tanto la primera como la segunda imagen son dos interpretaciones diferentes de exactamente los mismos datos sin procesar.Ninguno de los dos es más original que el otro. Ninguno de los dos es más "correcto" que el otro en términos de ser una representación válida de los datos contenidos en el archivo sin formato. Ambas son formas perfectamente legítimas de utilizar los datos en el archivo sin formato para producir una imagen de 8 bits. La primera es la forma en que su aplicación de conversión sin formato y / o la vista previa de JPEG generada en su cámara eligieron interpretar los datos. La segunda es la forma en que su aplicación de conversión sin formato interpretó los datos después de decirle qué valores de sensor sin formato deseaba traducir como gris / blanco. Cuando hizo clic en la misma parte de la imagen jpeg, gran parte de la información de color necesaria para corregir la imagen para que pareciera que la segunda versión del archivo sin formato ya no estaba allí y, por lo tanto, no se pudo utilizar.
No, aunque la compresión con pérdida es una gran parte de ella. También lo es la reducción a 8 bits, lo que hace que cada paso entre '0' (negro puro) y '1' (saturación total) 64X sea tan grande como con un archivo sin procesar de 14 bits. Pero va más allá de la compresión JPEG.
Un par de párrafos de esta respuesta a RAW a TIFF o PSD de 16 bits pierde profundidad de color :
Hay una gran cantidad de preguntas existentes aquí que cubren gran parte del mismo terreno. Aquí hay algunos de ellos que pueden serle útiles:
¿Los archivos RAW almacenan 3 colores por píxel, o solo uno?
RAW a TIFF o PSD 16 bits pierde profundidad de color
¿Cómo comienzo con la configuración de JPEG en la cámara en Lightroom?
¿Por qué cambia la apariencia de los archivos RAW al cambiar de "mesa de luz" a "cuarto oscuro" en Darktable?
nikon d810 manual WB no es lo mismo que "As Shot" en Lightroom
¿Por qué las imágenes RAW se ven peor que las JPEG en los programas de edición? Haga
coincidir los colores en Lightroom con otras herramientas de edición
Mientras filma en RAW, ¿tiene que procesarlo posteriormente para que la imagen se vea bien?
¿Por qué hay una pérdida de calidad de la cámara a la pantalla de la computadora
? ¿Por qué mis fotos se ven diferentes en Photoshop / Lightroom vs Canon EOS utility / in camera?
¿Por qué mis imágenes se ven diferentes en mi cámara que cuando se importan a mi computadora portátil?
¿Cómo emular el procesamiento en la cámara en Lightroom?
Conversión jpg in-camera vs lightroom de Nikon ¿Por qué cambia
mi vista previa de Lightroom / Photoshop después de cargar?
fuente
La respuesta simple es porque su cámara y su procesador RAW (LR, Darktable, por nombrar algunos) usan diferentes algoritmos para procesar archivos RAW. Las razones son muchas, y no podemos evaluar esos algoritmos porque muchos son secretos comerciales. Por ejemplo, la temperatura de color de la luz del día de Canon (EOS 700D) es de alrededor de 5200 K, mientras que la de Lightroom es de 5500 K. En algunas situaciones esto hace la diferencia.
Para ser precisos, los archivos RAW no tienen una temperatura de color predefinida. Se incluye como metainformación. Los procesadores RAW aplican un WB particular cuando realizan las operaciones que usted describe.
Editar: y según su comentario: no puede cambiar mucho la temperatura de color en el archivo JPEG porque ya está "cocido". La temperatura de color ya está aplicada y no tiene suficiente profundidad de color para "cambiar" los colores.
fuente
Que es posible JPEG de balance de blancos, pero las herramientas de edición utilizado para operar en RAW vs otras imágenes tienden a comportarse de manera diferente (diferentes algoritmos). Más lejos:
La herramienta cuentagotas es imprecisa, lo que dificulta la replicación de resultados.
La profundidad de bits de los archivos JPEG limita la cantidad de colores que se pueden cambiar frente a RAW.
La curva gamma ensucia todo.
Los cálculos sobre datos lineales vs datos logarítmicos se comportan de manera diferente.
Esto no es exactamente cómo funciona, sino para ilustrar:
Suponga que desea multiplicar algunos datos (1, 4, 8) por 2. El resultado es (2, 8, 16). Con datos lineales, el resultado máximo, 16, es cuatro veces el resultado mínimo, 2.
Pero con representaciones logarítmicas, la brecha entre los valores adyacentes, como 2 5 y 2 6 , es mucho mayor que la diferencia entre los valores lineales, 5 y 6. Además, el resultado máximo, 2 16 , no es solo 32768 veces mayor que el resultado mínimo, 2 2 , también es 256 veces el valor original, 2 8 .
fuente