¿Qué aspecto tiene un archivo RAW sin procesar?

Sé que la gente usa software sofisticado como Lightroom u Darktable para procesar sus archivos RAW. Pero, ¿y si no lo hago? ¿Cómo se ve el archivo, solo, ya sabes, RAW ?

La matriz. Se parece a la matriz.
Relacionado; Los archivos RAW almacenan 3 colores por píxel, ¿o solo uno? y ¿ Por qué el rojo, el verde y el azul son los colores primarios de la luz? lo que explica cómo los sensores de las cámaras digitales minimizan la forma en que los ojos/cerebros perciben el color que, en cierto sentido, en realidad no existe de la forma en que a menudo suponemos que existe.
@Hueco, una matriz de Bayer, quizás.
He movido la discusión sobre la mejor manera de manejar esto como una pregunta canónica para chatear . Continuemos allí para que no tengamos ruido en los comentarios, sea cual sea la decisión que termine siendo.
000000000
Lo que no parece es la "imagen sin procesar directamente fuera de la cámara" que muchas personas parecen pensar que tienen cuando abren un archivo de imagen sin procesar en una aplicación de procesamiento sin procesar. Esa es la base de esta pregunta.

Respuestas (4)

Hay una herramienta llamada dcraw que lee varios tipos de archivos RAW y extrae datos de píxeles de ellos; en realidad, es el código original en la parte inferior de una gran cantidad de software de conversión RAW de código abierto e incluso comercial.

Tengo un archivo RAW de mi cámara y he usado dcraw en un modo que le indica que cree una imagen usando valores literales de 16 bits sin escalar del archivo. Lo convertí a un JPEG de 8 bits para compartir, usando gamma perceptual (y lo reduje para subirlo). Eso se ve así:

dibujar -E -4

Evidentemente el resultado es muy oscuro, aunque si haces click para expandir, y si tu monitor es decente, puedes ver algún indicio de algo .

Aquí está el JPEG en color fuera de la cámara renderizado desde ese mismo archivo RAW:

JPEG fuera de cámara

(Crédito de la foto: mi hija usando mi cámara, por cierto).

No totalmente oscuro después de todo. Los detalles de dónde se esconden exactamente todos los datos se cubren mejor con una pregunta en profundidad , pero en resumen, necesitamos una curva que amplíe los datos sobre el rango de oscuros y claros disponibles en un JPEG de 8 bits en una pantalla típica. .

Afortunadamente, el programa dcraw tiene otro modo que convierte a una imagen más "útil" pero apenas procesada. Esto ajusta el nivel del negro más oscuro y el blanco más brillante y vuelve a escalar los datos de manera adecuada. También puede establecer el balance de blancos de forma automática o desde la configuración de la cámara grabada en el archivo RAW, pero en este caso le he dicho que no lo haga, ya que queremos examinar el menor procesamiento posible.

Todavía hay una correspondencia uno a uno entre los sitios de fotos en el sensor y los píxeles en la salida (aunque nuevamente lo reduje para cargar). Eso se ve así:

dcraw -d -r 1 1 1 1

Ahora, esto es obviamente más reconocible como una imagen, pero si hacemos zoom en esto (aquí, de modo que cada píxel se amplía 10 veces), vemos que todo está... chiflado:

Zoom y recorte de 10 aumentos

Esto se debe a que el sensor está cubierto por una matriz de filtros de color : pequeños filtros de colores del tamaño de cada sitio de fotos. Debido a que mi cámara es una cámara Fujifilm, utiliza un patrón que Fujifilm llama "X-Trans", que se ve así:

10× xtrans

Hay algunos detalles sobre el patrón particular que son bastante interesantes, pero en general no es muy importante. La mayoría de las cámaras hoy en día usan algo llamado patrón Bayer (que se repite cada 2×2 en lugar de 6×6). Ambos patrones tienen más sitios de filtros verdes que rojos o azules. El ojo humano es más sensible a la luz en ese rango, por lo que usar más píxeles permite obtener más detalles con menos ruido.

En el ejemplo anterior, la sección central es un parche de cielo, que tiene un tono de cian; en RGB, eso es mucho azul y verde sin mucho rojo. Entonces, los puntos oscuros son los sitios del filtro rojo: son oscuros porque esa área no tiene tanta luz en las longitudes de onda que atraviesan ese filtro. La franja diagonal en la esquina superior derecha es una hoja de color verde oscuro, por lo que, si bien todo está un poco oscuro, puede ver el verde (los bloques más grandes de 2 × 2 con este patrón de sensor) son relativamente los más brillantes en esa área.

Entonces, de todos modos, aquí hay una sección 1: 1 (cuando hace clic para obtener la versión completa, un píxel en la imagen será un píxel en la pantalla) del JPEG fuera de la cámara:

Recorte de vista 1:1 de la imagen fuera de la cámara

... y aquí está la misma área de la conversión rápida en escala de grises anterior. Puede ver el punteado del patrón X-Trans:

Recorte 1:1 de la versión dcraw -d -r 1 1 1 1

De hecho, podemos tomar eso y colorear los píxeles para que los correspondientes al verde en la matriz se asignen a niveles de verde en lugar de gris, rojo a rojo y azul a azul. Eso nos da:

1:1 con coloración xtrans

... o, para la imagen completa:

imagen completa de dcraw -d -r 1 1 1 1 con colorización xtrans

El matiz verde es muy evidente, lo que no sorprende porque hay 2½ veces más píxeles verdes que rojos o azules. Cada bloque de 3×3 tiene dos píxeles rojos, dos píxeles azules y cinco píxeles verdes. Para contrarrestar esto, hice un programa de escalado muy simple que convierte cada uno de esos bloques de 3×3 en un solo píxel. En ese píxel, el canal verde es el promedio de los cinco píxeles verdes y los canales rojo y azul el promedio de los dos píxeles rojo y azul correspondientes. Eso nos da:

xtrans coloreada, demostraciones de bloques ingenuos

... que en realidad no es tan malo. El balance de blancos está desactivado, pero dado que intencionalmente decidí no ajustarlo, no es una sorpresa. Presionar "balance de blancos automático" en un programa de imágenes lo compensa (al igual que dejar que dcraw lo configure en primer lugar):

xtrans coloreado, demostración de bloques ingenuos + niveles automáticos

Los detalles no son muy buenos en comparación con los algoritmos más sofisticados que se usan en las cámaras y los programas de procesamiento RAW, pero claramente los conceptos básicos están ahí. Los mejores enfoques crean imágenes a todo color ponderando los diferentes valores alrededor de cada píxel en lugar de utilizar grandes bloques. Dado que el color suele cambiar gradualmente en las fotografías, esto funciona bastante bien y produce imágenes en las que la imagen es a todo color sin reducir las dimensiones de los píxeles. También hay trucos inteligentes para reducir los artefactos de borde, el ruido y otros problemas. Este proceso se denomina "desmosaicing", porque el patrón de filtros de colores parece un mosaico de mosaicos.

Supongo que esta vista (donde realmente no tomé ninguna decisión, y el programa no hizo nada inteligente automáticamente) podría haberse definido como la "apariencia estándar predeterminada" del archivo RAW, poniendo así fin a muchos argumentos de Internet. Pero no existe tal estándar, no existe tal regla de que esta interpretación "ingenua" en particular sea especial.

Y este no es el único punto de partida posible. Todos los programas de procesamiento RAW del mundo real tienen sus propias ideas de un estado predeterminado básico para aplicar a un archivo RAW nuevo en carga. Tienen que hacer algo (de lo contrario, tendríamos esa cosa oscura e inútil en la parte superior de esta publicación), y por lo general hacen algo más inteligente que mi simple conversión manual, lo cual tiene sentido, porque de todos modos obtienes mejores resultados.

hermosa foto Y gran respuesta.
La diferencia entre las imágenes 9 y 10 es la diferencia entre el filtro "rojo" (probablemente en realidad amarillo naranja que pasa ≈600nm de manera más eficiente) y 'Rojo' en los sistemas RGB (a ≈640nm), el filtro "verde" (≈540nm ) y 'Verde' en RGB (≈525nm), y el filtro "azul" (≈460nm) y 'Azul' en RGB (≈480nm).
"si hace clic para expandir, y si su monitor es decente, puede ver algún indicio de algo" Puedo ver mucho polvo en la pantalla de mi monitor.
Wow, creo que nunca me habían explicado un tema tan complejo de una manera tan clara y concisa. ¡Gracias, Matt!
"El balance de blancos está desactivado, pero dado que intencionalmente decidí no ajustarlo, no es una sorpresa". No es tanto que el WB esté apagado, sino que el color de los filtros "rojos" en el CFA del sensor es en realidad amarillo-naranja (los filtros "verde" y "azul" están más cerca, pero tampoco exactamente), pero luego los resultados no traducidos de los sensores filtrados con amarillo-naranja se representan como rojo real. Si estuvo afuera durante un día soleado, la CT de la luz en la escena (¿6000K?) probablemente no estaba tan lejos de lo que probablemente tiene en su monitor y GPU configurada en (6500K?).

Es una cuadrícula de números realmente muy grande. Todo lo demás se está procesando.

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .

Sé que mattdm ya lo ha respondido bastante bien, pero pensé que podría encontrar este artículo interesante.

En caso de que el enlace se caiga, aquí hay un resumen:

El ojo humano es más sensible a los colores en la región de longitud de onda verde (coincidente con el hecho de que nuestro sol emite con mayor intensidad en la región verde).

El ojo de la cámara (dispositivo acoplado de carga (CCD) o semiconductor de óxido de metal complementario (CMOS)) es sensible solo a la intensidad de la luz, no al color.

Los filtros ópticos se utilizan para atenuar diferentes longitudes de onda de la luz. Por ejemplo, un filtro de paso verde dejará pasar más luz verde que luz roja o azul, aunque un poco de cada uno pasará a través del filtro verde, al igual que los conos de longitud de onda media en nuestras retinas humanas reaccionan un poco a la luz roja y azul. responden mucho más fuertemente al verde.

Los filtros ópticos utilizados en las cámaras digitales tienen el tamaño de los sensores de píxeles individuales y están dispuestos en una cuadrícula para que coincida con la matriz de sensores. Se utilizan filtros rojo, verde y azul (algo así como nuestras células cónicas). Sin embargo, debido a que nuestros ojos son más sensibles al verde, el filtro de matriz de Bayer tiene 2 filtros de píxeles verdes para cada píxel rojo y azul. La matriz de Bayer tiene filtros verdes que forman un patrón similar a un tablero de ajedrez, mientras que los filtros rojo y azul ocupan filas alternas.

Volviendo a su pregunta original: ¿cómo se ve un archivo RAW sin procesar?

Parece un enrejado a cuadros negro y blanco de la imagen original.

El elegante software para el posprocesamiento de los archivos RAW primero aplica el filtro Bayer. Se parece más a la imagen real después de esto, con el color en la intensidad y las ubicaciones correctas. Sin embargo, todavía hay artefactos de la cuadrícula RGB del filtro Bayer, porque cada píxel es de un solo color.

Hay una variedad de métodos para suavizar el archivo RAW codificado por colores. Sin embargo, suavizar los píxeles es similar a desenfocar, por lo que demasiado suavizado puede ser algo malo.

Algunos de los métodos de demostración se describen brevemente aquí:

Vecino más cercano: el valor de un píxel (un solo color) se aplica a sus otros vecinos de color y los colores se combinan. No se crean colores "nuevos" en este proceso, solo colores que fueron percibidos originalmente por el sensor de la cámara.

Interpolación lineal: por ejemplo, promedia los dos valores azules adyacentes y aplica el valor azul promedio al píxel verde entre los píxeles azules adyacentes. Esto puede desenfocar los bordes afilados.

Interpolación cuadrática y cúbica: similar a la interpolación lineal, aproximaciones de mayor orden para el color intermedio. Utilizan más puntos de datos para generar mejores ajustes. lineal solo mira a dos, cuadrático a tres y cúbico a cuatro para generar un color intermedio.

Catmull-Rom Splines: similar a cubic, pero tiene en cuenta el degradado de cada punto para generar el color intermedio.

Medio coseno: utilizado como ejemplo de un método de interpolación, crea medios cosenos entre cada par de colores similares y tiene una suave curva inclinada entre ellos. Sin embargo, como se señala en el artículo, no ofrece ninguna ventaja para las matrices de Bayer debido a la disposición de los colores. Es equivalente a la interpolación lineal pero con un mayor costo computacional.

El software de posprocesamiento de gama alta tiene mejores métodos de demostración y algoritmos inteligentes. Por ejemplo, pueden identificar bordes nítidos o cambios de alto contraste y conservar su nitidez al combinar los canales de color.

La fotorrespuesta de los sensores CCD y CMOS no es lineal en todo el espectro. En los sensores CCD y CMOS modernos, esto se corrige con frecuencia utilizando una tabla de búsqueda (LUT) dentro de la electrónica del sensor, para normalizar las variaciones en la eficiencia cuántica del sensor tanto en términos de sesgo espectral como en términos de linealidad. Además, las máscaras de color juegan un papel y pueden ajustarse para compensar la variabilidad de la eficiencia cuántica espectral. En los sensores de gama alta, se utiliza una combinación de selección de tinte de enmascaramiento de color y LUT para obtener resultados optimizados.
Los conos humanos también son "monocromáticos" en el sentido de que solo envían un valor de intensidad al cerebro. El cerebro crea la percepción del color que no existe en longitudes de onda de luz o cualquier otra porción del espectro electromagnético. Otras especies no ven colores para las mismas longitudes de onda que percibimos como colores, y no percibimos algunas longitudes de onda que otros animales perciben como color. El color no es una propiedad intrínseca de la porción del espectro EM que llamamos "luz", es una propiedad de la percepción de porciones del espectro EM por parte de humanos u otras criaturas.
Ni los conos en las retinas humanas ni los filtros de colores en las cámaras enmascaradas de Bayer son realmente más sensibles/transmisivos a "rojo", "verde" y "azul". Los conos de longitud de onda larga, longitud de onda media y longitud de onda corta se etiquetaron como R, G y B décadas antes de que pudiéramos medir con precisión la sensibilidad máxima de los tres tipos de conos retinianos. Hay muy poca diferencia entre el 'verde con un toque de amarillo' al que nuestros conos M tienen una respuesta máxima y el amarillo 'con un toque de verde' al que nuestros conos L responden mejor. Es la diferencia que usa nuestro cerebro para crear colores.
Del mismo modo, aunque los colores exactos pueden variar de una cámara a otra, los filtros "azul" y "verde" tienen más un tono violeta de azul (455nm en lugar de 480nm) y un tono ligeramente amarillo de verde (540nm en lugar de 525nm). Los filtros "rojos" tienden a ser de color amarillo anaranjado con una transmisividad máxima de alrededor de 590-600 nm, en lugar del rojo real de alrededor de 640 nm. Está cubierto con gran detalle en esta respuesta.

Creo que mucha gente imagina que los archivos sin procesar son simplemente una matriz de valores de píxeles directamente del sensor de la cámara. Hay casos en los que este es realmente el caso, y debe proporcionar cierta información sobre el sensor para que el software interprete la imagen. Pero muchas de las cámaras de consumo suelen proporcionar "archivos sin procesar" que en realidad se ajustan más o menos a la especificación de archivo TIFF (en algunos casos, los colores pueden estar apagados). Uno puede probar simplemente cambiando la extensión del archivo a ".tif" y ver qué sucede al abrir el archivo. Creo que algunos de ustedes verán una buena imagen, pero no todos, porque hay diferencias entre cómo las diferentes marcas de cámaras resuelven esto.

Un archivo TIFF en lugar de un "archivo sin procesar real" es una buena solución. Un archivo TIFF puede tener 16 bits por color. Eso es suficiente para todas las cámaras que conozco.

Ed: Me pregunto por qué esta respuesta fue rechazada. La respuesta es esencialmente correcta (con la reserva del hecho de que los fabricantes de cámaras no tienen que usar estructuras TIFF, pero muchos de ellos sí).

Sobre la parte de la matriz de píxeles directamente del sensor, no es ridículo esperar algo así. Porque así es como funcionan muchos sensores fuera del mercado de cámaras de consumo. En estos casos, debe proporcionar un archivo separado que describa el sensor.

Por cierto, la palabra "RAW" se usa porque debería significar que obtenemos los datos del sensor sin procesar. Pero es razonable que los fabricantes de cámaras utilicen un formato estructurado en lugar de archivos sin procesar de verdad. De esta forma, el fotógrafo no tiene que conocer los datos exactos del sensor.

Todavía tengo que encontrar un convertidor sin procesar que incluso pueda abrir y mostrar un archivo .cr2 que tenga la extensión cambiada a .TIFF, y mucho menos que se vea como algo más que una mancha gris oscura de la nada. El hecho de que un formato sin procesar use el estándar TIFF no significa que los valores expresados ​​para cada sitio de fotos estén en un formato RGB utilizable que esperan nuestros dispositivos de visualización. Todavía son valores de luminancia lineal monocromáticos, no valores RGB tricromáticos para cada sitio de fotos.
He tenido aplicaciones de recuperación de archivos que "recuperaron" archivos .cr2 como TIFF. Esos archivos no se abrirían con ninguna aplicación que pueda funcionar con TIFF. Cambiar las extensiones de archivo a .cr2 los convirtió en archivos .cr2 perfectamente utilizables.
Lo intenté ahora mismo con un archivo .cr2 de mi cámara EOS M. Photoshop lo abrió de inmediato. El programa libtiff "tiffinfo" se quejó de la falta de interpretación fotométrica, que es importante para leer la imagen. Sin embargo, tiffinfo leyó mucha información correcta sobre el archivo. Esto confirma que la imagen sigue la especificación TIFF hasta el punto de almacenar al menos información en etiquetas TIFF. Pero el archivo ciertamente puede diferir en otros aspectos, ya que Canon nunca prometió que debería ser un TIFF válido.
Intente hacerlo con una versión anterior de ACR instalada que no tenga los perfiles necesarios para la EOS-M. Aparentemente, Photoshop (usando ACR) puede reconocer la extensión de archivo "incorrecta" y procesarla como .cr2 (aplicando demostración, corrección gamma, etc.). Si le diera una representación "directa" de la información del nivel de píxeles, todos serían tonos de negro ←→ gris ←→ blanco.
Bueno, cr2 sigue la especificación TIFF en cuanto al uso de etiquetas TIFF como se describen en la especificación, pero cr2 no usa todas las etiquetas que se requieren. Si descarga libtiff, puede proporcionar las etiquetas requeridas con "tiffcp". No es fácil, pero completamente factible.
Creo que Michael tiene razón en que Photoshop reconoce el archivo a pesar de su extensión. Descargué un archivo sin procesar de EOS M de muestra de photographyblog y lo renombré a .tif. Geeqie muestra la vista previa de JPEG incrustada (tal como lo hace cuando se nombra .crw. Cuando abro en GIMP, detecta que es un archivo RAW y enciende Darktable para importarlo.
Eso no quiere decir que los archivos RAW no utilicen a menudo contenedores de formato TIFF, eso es absolutamente correcto. Es solo que lo que está viendo probablemente no sean los datos "RAW" en el sentido que estoy buscando.
Solo para que conste, no soy el votante negativo. Pero creo que entiendo por qué alguien haría eso.
Ok, para aclarar, el archivo usa estructuras del formato de archivo TIFF. Pero como no hace exactamente lo que dice la especificación TIFF, no es un archivo TIFF estricto. Pero el punto es que se podría usar una biblioteca TIFF para leer el archivo. Uno no tiene que hacer todo desde cero para poder leer ese archivo.
Sin embargo , un tipo necesita hacer algo desde cero para hacer algo útil con el archivo. De lo contrario, obtienes la imagen en escala de grises manchada casi completamente oscura con la que dirijo mi respuesta.
Nadie con sentido común esperaría que un archivo RAW fuera directamente del sensor sin metadatos de ningún tipo, como tiempo, información de la cámara, etc. El hecho de que los formatos tipo TIFF sean útiles para estructurar los datos no es realmente importante, ni disminuye el principio conceptual de que los datos son "directos" del sensor sin procesamiento posterior.
Si mira fuera de las cámaras de los consumidores, encontrará que los archivos sin procesar no tienen que estar tan estructurados siempre: desktop.arcgis.com/en/arcmap/10.3/manage-data/raster-and-images/… Los archivos descritos allí, en realidad no son más que píxeles. Tienes que proporcionar información sobre todo. Pero claro, no es el caso habitual en las cámaras ordinarias.
TIFF es un contenedor, no un formato de imagen. puede almacenar datos en TIFF y seguir siendo datos de sensor sin procesar en lugar de una imagen que cualquier persona sin conocimientos específicos de cámara podría usar.
En la edición: no voté en contra, pero creo que los comentarios anteriores explican bastante claramente por qué la gente lo hizo. En particular, estoy bastante seguro de que la sugerencia de cambiar el nombre de los archivos RAW .tify abrirlos en un programa de imágenes no es útil ni correcta. Los programas para los que eso funciona muestran la vista previa JPEG generada por la cámara o utilizan el conocimiento específico de ese formato RAW real (no TIFF genérico) que reconocen de los datos en el archivo en sí en lugar del nombre del archivo.
Además, me pregunto si un archivo TIFF en lugar de un "archivo sin procesar real" es una buena solución , ¿una buena solución para qué ?
Sería una buena solución al problema de suministrar información sobre el sensor. Un archivo TIFF puede usar 16 bits por color, por lo que podría almacenar toda la información en él. Sería tan bueno como crudo.
@UlfTennfors ¿Haría una demostración de la imagen antes de almacenarla? ¿Por qué o por qué no?
Probablemente sería mucho más fácil usar la imagen si se muestra en formato TIFF. En cuanto a la calidad de imagen, un sensor típico suele ser capaz de más de 8 bits por color. Pero muy rara vez tanto como 16 bits por color. Entonces, si usa 16 bits por color, aún debería tener la misma calidad.
@UlfTennfors Hay una diferencia fundamental entre los valores de luminancia monocromática de 14 bits (uno por píxel) y los valores tricromáticos de 16 bits (por canal de color) por píxel (48 bits por píxel). La transformación de raw a RGB TIFF es irreversible. Aunque el TIFF tiene más profundidad de bits y es un archivo mucho más grande, no contiene toda la información que contiene el archivo sin formato. Punto negro, punto blanco, multiplicadores de canal de color, etc., todos han sido "horneados". Aunque hay mucha más flexibilidad con un TIFF de 16 bits que con un JPEG de 8 bits, ninguno tiene tanta flexibilidad como un archivo sin formato de 14 bits.