Los archivos RAW almacenan 3 colores por píxel, ¿o solo uno?

Ken Rockwell dice que los fabricantes de cámaras consideran los sensores R/G/B individuales cuando hablan de megapíxeles. Entonces, la imagen a continuación sería una cámara de 6x6 píxeles, no 3x3 como te imaginas.

ingrese la descripción de la imagen aquí

Si eso es cierto, un archivo RAW contendría solo una información de color por píxel (ya sea R, G o B) como un número de 10, 12 o 14 bits.

Mi confusión surge cuando leo en algunos lugares cosas como:

  • Los archivos RAW almacenan un promedio de los dos sensores verdes por píxel.
  • Los archivos RAW usan 12 bits por píxel, pero hay 3 colores, por lo que en realidad son 36 bits por píxel.

Lo que obviamente sería falso, si la afirmación de Ken es correcta.

Entonces, ¿cuál es la verdad?

Respuestas (3)

Los archivos sin procesar realmente no almacenan ningún color por píxel. Solo almacenan un único valor de brillo por píxel.

Es cierto que con una máscara de Bayer sobre cada píxel, la luz se filtra con un filtro rojo, verde o azul¹ sobre cada píxel. Pero no hay un límite estricto donde solo la luz verde pasa a un píxel filtrado verde o solo la luz roja pasa a un píxel filtrado rojo. Hay mucha superposición. Mucha luz roja y algo de luz azul atraviesan el filtro verde. Una gran cantidad de luz verde e incluso un poco de luz azul pasa a través del filtro rojo, y los píxeles que se filtran con azul registran algo de luz roja y verde.

respuesta de color

Dado que un archivo sin formato es un conjunto de valores de luminancia únicos para cada píxel en el sensor, no hay información de color real por píxel en un archivo sin formato. El color se obtiene comparando píxeles contiguos que se filtran por uno de los tres colores con una máscara de Bayer. Pero al igual que colocar un filtro rojo frente a la lente cuando se filma una película en blanco y negro, no resultó en una foto roja monocromática (o una foto en blanco y negro donde sololos objetos rojos no tienen ningún brillo), la máscara de Bayer frente a los píxeles monocromáticos tampoco crea color. Lo que hace es cambiar el valor tonal (qué tan brillante o qué tan oscuro se registra el valor de luminancia de un color en particular) de varios colores en diferentes cantidades. Cuando se comparan los valores tonales (intensidades de gris) de los píxeles adyacentes filtrados con los tres colores diferentes utilizados en la máscara de Bayer, los colores pueden interpolarse a partir de esa información. Este es el proceso al que nos referimos como demostración .

Se hacen muchas matemáticas para asignar un valor R, G y B para cada píxel. Hay muchos modelos diferentes para hacer esta interpolación. La cantidad de sesgo que se da al rojo, verde y azul en el proceso de demostración es lo que establece el balance de blanco/color . La corrección gamma y cualquier configuración adicional de las curvas de respuesta de luz es lo que establece el contraste . Pero al final se asigna un valor R, G y B a cada píxel. En su ejemplo de 6x6 píxeles en la pregunta, el resultado de la demostración sería una imagen de 36 píxeles con 36 píxeles, cada uno con un valor rojo, verde y azul.

Se pierde un poco de resolución en la traducción. Resulta que en términos de la cantidad de líneas alternas en blanco y negro por pulgada o mm que puede resolver un sensor con una máscara Bayer RGGB y una demostración bien hecha, el límite de resolución absoluta de un sensor Bayer es de aproximadamente 1/√2. en comparación con un sensor monocromático que no tiene máscara de Bayer y, por lo tanto, no necesita demostración (pero solo puede ver en blanco y negro).

Incluso cuando su cámara está configurada para guardar archivos sin procesar, la imagen que ve en la parte posterior de la pantalla LCD de su cámara justo después de tomar la foto no son datos sin procesar. Es una imagen de vista previa generada por la cámara al aplicar la configuración de la cámara a los datos sin procesar que da como resultado la imagen de vista previa jpeg que ve en la pantalla LCD. Esta imagen de vista previa se adjunta al archivo sin procesar junto con los datos del sensor y la información EXIF ​​que contiene la configuración de la cámara en el momento en que se tomó la foto.

Los ajustes de revelado en la cámara para aspectos como el balance de blancos, el contraste, las sombras, las luces, etc. no afectan a los datos reales del sensor que se graban en un archivo sin procesar. Más bien, todas esas configuraciones se enumeran en otra parte del archivo sin formato.

Cuando abre un archivo "sin procesar" en su computadora, ve una de dos cosas diferentes:

  • La imagen jpeg de vista previa creada por la cámara en el momento en que tomó la foto. La cámara usó la configuración vigente cuando tomó la fotografía y la agregó a los datos sin procesar en el archivo .cr2. Si está mirando la imagen en la parte posterior de la cámara, es la vista previa jpeg lo que está viendo.

  • Una conversión de los datos sin procesar por parte de la aplicación que utilizó para abrir el archivo "sin procesar". Cuando abre un archivo 'sin formato' de 12 o 14 bits en su aplicación de fotografía en la computadora, lo que ve en la pantalla es una representación de 8 bits del archivo sin formato de demostración que se parece mucho a un jpeg, no al archivo monocromático real de 14 bits filtrado por Bayer. A medida que cambia la configuración y los controles deslizantes, los datos 'sin procesar' se reasignan y se procesan nuevamente en 8 bits por canal de color.

Lo que vea dependerá de la configuración que haya seleccionado para la aplicación con la que abre el archivo sin procesar.

Si está guardando sus imágenes en formato sin procesar cuando las toma, cuando realice el procesamiento posterior tendrá exactamente la misma información para trabajar, sin importar qué configuración de revelado se seleccionó en la cámara en el momento de tomar la fotografía. Algunas aplicaciones pueden abrir inicialmente el archivo utilizando la vista previa jpeg o aplicando la configuración de la cámara activa en el momento en que se tomó la imagen a los datos sin procesar, pero puede cambiar esa configuración, sin pérdida de datos destructiva, a cualquier otra cosa. quieres en la publicación.

Digital Photo Professional de Canon abrirá un archivo sin procesar .cr2 con el mismo estilo de imagen que se seleccionó en la cámara cuando se disparó. Todo lo que tienes que hacer para cambiarlo es usar el menú desplegable y seleccionar otro estilo de imagen . Incluso puede crear una "receta" para una imagen y luego aplicarla por lotes a todas las imágenes antes de comenzar a trabajar con ellas. El software de procesamiento sin procesar de otros fabricantes es similar y, por lo general, existe una opción para que la aplicación abra una imagen con la configuración de desarrollo de la cámara aplicada.

Con aplicaciones de procesamiento sin procesar de terceros, como Lightroom o Camera Raw de Adobe , Aperture o Photos de Apple, Capture One Pro de PhaseOne, OpticsPro de DxO Lab , etc., lograr que las imágenes se muestren de acuerdo con la configuración de la cámara puede ser un poco más complicado. Los productos de Adobe, por ejemplo, ignoran la mayor parte de la sección de notas del fabricante de los datos EXIF ​​de un archivo sin procesar, donde muchos fabricantes incluyen al menos parte de la información sobre la configuración de la cámara.

¹ Los colores reales de la máscara de Bayer frente a los sensores de la mayoría de las cámaras digitales en color son: azul: una versión ligeramente violeta del azul centrada en 450 nanómetros, verde: una versión ligeramente azulada del verde centrada en aproximadamente 540 nanómetros y rojo: una versión ligeramente anaranjada del amarillo. Lo que llamamos "rojo" es el color que percibimos para la luz a unos 640 nanómetros de longitud de onda. Los filtros "rojos" en la mayoría de las matrices de Bayer permiten que pase la mayor cantidad de luz en algún lugar alrededor de 590-600 nanómetros. La superposición entre los conos "verde" y "rojo" en la retina humana es aún más cercana, con el "rojo" centrado en unos 565 nanómetros, que es lo que percibimos como amarillo-verde.

Esto es fundamentalmente incorrecto. Usted dice (o al menos insinúa muy fuertemente) que esto funciona porque la información de color se filtra a los vecinos. Eso no es necesario. Raw funcionaría bien si los filtros fueran absolutamente perfectos. Los diferentes algoritmos de demostración "involucran muchas matemáticas", pero el más simple es simplemente promediar los píxeles cercanos y esto funciona sorprendentemente bien. Supongo que hecho varios millones de veces en una imagen de varios megapíxeles que técnicamente es "mucho" de matemáticas, pero no es matemática complicada, es material de nivel de tercer grado.
Bayer funciona porque generalmente es una buena suposición que el píxel en, por ejemplo, una ubicación con filtro azul tiene la misma cantidad de verde que los píxeles verdes al lado (y lo mismo para el rojo). Cuando esta conjetura está desactivada, obtienes artefactos, y eso es lo que los algoritmos más complicados intentan resolver. No funcionan asumiendo un conocimiento especial sobre la respuesta de frecuencia de los filtros.
"Usted dice (o al menos insinúa muy fuertemente) que esto funciona porque la información de color se filtra a los vecinos". No digo ni insinúo nada por el estilo. Solo declaro el hecho de que los filtros no son absolutamente perfectos y, por lo tanto, la idea de que cada conjunto de píxeles filtrados es una representación precisa de ese color, como lo presentan a menudo personas como Ken Rockwell (mencionado en la pregunta), es completamente ridículo .
Es posible que haya estado malinterpretando lo que has estado diciendo todo el tiempo, ya que mencionas esto a menudo. :) Especialmente dado que abres la respuesta con ella, ¿podrías editar para explicar de una manera que quede más clara? En particular, ¿quiere decir que los filtros superpuestos significan que el resultado es fundamentalmente inexacto sin importar qué procesamiento se realice y simplemente vivimos con eso, o que puede hacerse preciso mediante alguna transformación en la demostración, o que puede hacerse más preciso mediante ¿Otro paso que requiere la renderización de archivos RAW (pero que no es parte de la demostración)?
Solo quiero decir que demasiadas personas describen incorrectamente la máscara de Bayer como que solo permite la luz verde a través del filtro verde, solo permite la luz roja a través del filtro rojo y solo permite la luz azul a través del filtro azul. Ese no es más el caso que decir que usar un filtro verde con una película en blanco y negro solo permitiría capturar la luz verde en la escena. El uso de un filtro verde solo significa que la luz verde puede pasar a una tasa de transmisión más alta que la luz roja o azul, pero algunas de las tres pasan. Es solo comparando las diferencias entre la luz...
...filtrados por los tres colores, ¿podemos realmente aproximarnos a cualquiera de los colores para cualquiera de los píxeles? Como usted mismo dijo en una respuesta , "'Color', tal como lo entendemos, no es una propiedad real de nada en el universo".
@mattdm promediando los píxeles cercanos produce una foto muy borrosa, y no hay ninguna cámara en el mercado que lo haga de esa manera. Los algoritmos de demostración aprovechan la correlación entre los píxeles RGB para mejorar en gran medida la resolución, a costa de algún artefacto ocasional. Y definitivamente hay matemáticas pesadas involucradas.
@MarkRansom Por supuesto, el algoritmo básico no es el mejor. Pero está bien para reconstruir un color perfectamente decente. Nada más sofisticado de lo que se requiere para eso. Vea esta respuesta para ejemplos prácticos si no me cree.
"Muchas matemáticas..." no necesariamente requiere que sean matemáticas muy complejas. Mucha aritmética simple sigue siendo "... mucha matemática". Un archivo sin formato con 20 millones de píxeles requiere millones de operaciones aritméticas para demostrarlo. Si no crees que son muchas matemáticas, ¡intenta hacerlo a mano!
@MichaelClark Te reto a que propongas, por ejemplo, un filtro bicúbico simple sin una amplia experiencia en matemáticas. Los cálculos en sí mismos pueden ser simples, pero determinar los factores que intervienen en esos cálculos es todo lo contrario.
@mattdm No quise dar a entender que los algoritmos simples no pudieran producir resultados perfectamente reconocibles, solo que no son adecuados para nuestras formas de espiar píxeles. Solo las cámaras web o de video más baratas intentarían salirse con la suya.
@MarkRansom Está leyendo demasiado en mi comentario anterior, que fue una respuesta al comentario inicial de Matt que parece implicar que promediar los píxeles cercanos no requiere muchas matemáticas. Por favor, tómelo al pie de la letra" "Mucha aritmética sigue siendo mucha matemática." Esa declaración no excluye la posibilidad de que se involucren matemáticas más complejas para determinar qué cálculos deben hacerse o incluso en esos cálculos mismos.
@mattdm Es un malentendido fundamental que los filtros CFA producirían un mejor color si no se superpusieran entre sí. De hecho, una buena reproducción del color requiere una superposición espectral significativa sin la cual no hay forma de que se cumpla la condición de Luther-ives, o incluso se aproxime mucho. Esto no está relacionado con la demostración ya que el color, en un sentido CIEXYZ, de un área grande es puramente una función de los 3 niveles "RGB". Una buena reproducción del color requiere una superposición significativa.
@doug Sí, entro en eso con mucho más detalle en esta respuesta a la pregunta más reciente: ¿Por qué el rojo, el verde y el azul son los colores primarios de la luz?
También está el hecho de que los colores utilizados en las máscaras de Bayer no son los mismos colores que emiten nuestras pantallas RGB. "Rojo" ni siquiera está cerca. Los conos "rojos" en nuestras retinas son más sensibles a alrededor de 564nm (un color verde lima entre verde y amarillo), los filtros "rojos" en la mayoría de las máscaras de Bayer son más transmisivos a alrededor de 590-600nm (naranja-amarillo), mientras que nuestros sistemas RGB emiten 640-650nm para "rojo".</sub>

Ken tiene razón en la afirmación que cita, más o menos. Es correcto que las cámaras digitales de hoy (con la excepción de aquellas con sensores Foveon de Sigma) funcionan utilizando una matriz de Bayer, y la resolución del sensor se cita como el tamaño de la matriz. Su imagen de ejemplo representa un sensor de "36 píxeles". Sin embargo, es importante reconocer que las cámaras convierten esto en una imagen a todo color del tamaño completo especificado en píxeles reales , y que esto no es tan malo como lo pinta Ken .

Varias cosas que dice en ese artículo están completamente equivocadas, comenzando con:

A partir de 2006, estos ingeniosos algoritmos permiten comenzar con un tercio de los datos y hacer que parezca tan bueno como tener la mitad de la cantidad de píxeles reclamada.

Esto era una tontería en 2006 y es una tontería hoy. El proceso funciona con algunas suposiciones simples. Más de los cuales se presentan aquí , pero el básico es que puede predecir cuál debería ser la información "faltante" mirando los píxeles vecinos de diferentes colores. Esta resulta ser una buena suposición la mayor parte del tiempo, y muy equivocada otras veces. En los casos en los que no hay mucha transición muy detallada entre los colores, el resultado es tan bueno como si cada sensel grabara a todo color. En los casos en que la suposición es incorrecta, es mucho peor. En el mundo real, el primero es muy común y funciona mucho mejor que "la mitad", pero lo importante es que depende del contexto.

RAW no ofrece ventajas aquí, a excepción de una apuesta potencial. La interpolación de Bayer tiene lugar en el software que abre los datos sin procesar. Los futuros avances en los algoritmos de interpolación de Bayer podrían incorporarse en el futuro software sin procesar, siempre y cuando el fabricante de su cámara continúe admitiendo las cámaras de ayer en el software del mañana. ¡Igual de probable es que el fabricante de su cámara ya no admita su cámara anterior en el software sin procesar del mañana!

Tiene razón en que disparar en RAW no cambia los fundamentos, pero la idea de que los archivos antiguos dejarán de funcionar es básicamente una tontería . Dado que las cámaras antiguas usan el mismo principio básico y formatos de archivo fundamentalmente similares, no cuesta mucho brindar soporte para modelos antiguos indefinidamente, y los proveedores tienen muchos incentivos para hacerlo, e incluso si eso sucediera, hay excelentes decodificadores de código abierto.

Y, por supuesto, mantener archivos RAW ofrece otras ventajas no relacionadas con la demostración.

Pero también es una tontería decir que la posibilidad de futuras mejoras es la única ventaja. Como dije, hay diferentes suposiciones que se pueden hacer sobre el contenido de su imagen, y diferentes algoritmos (o ajustes a esos algoritmos) se adaptarán mejor a diferentes situaciones del mundo real, por lo que si se encuentra en una situación en la que está obteniendo muaré u otros artefactos, es posible que pueda lidiar con eso. (Aunque, debo agregar que esto está en un nivel muy quisquilloso; muy rara vez hay una situación en la que vale la pena mirar tan de cerca).

También hay un factor por el cual se puede excusar a Ken porque el artículo tiene una década. En 2006, la mayoría de las cámaras estaban en el rango de 5 a 8 megapíxeles, y los modelos DSLR de gama alta se extendían a 12. Ahora, las cámaras DSLR y sin espejo típicas de gama baja/media ofrecen 16 y 24 megapíxeles, y van aumentando a partir de ahí. En este punto, cuestionar los detalles del color a nivel de píxel es realmente académico, porque en el mundo real es muy raro que la iluminación, las lentes, la estabilidad y todo lo demás se alineen tan bien que este sea el factor limitante.

En general, gran parte del sitio de Ken Rockwell es así. (Consulte esta respuesta para obtener más información ). Esto es desafortunado, ya que en realidad tiene muchas cosas interesantes que decir y algunos buenos consejos, pero también hay muchas tonterías, y en lugar de admitirlo o mejorarlo, tiende a duplicar hacia abajo, y luego afirma que todo el sitio es una sátira.

Ah, y un dato curioso adicional: las pantallas LCD traseras de la cámara y los EVF también usan tres subpíxeles de colores para representar un píxel digital, y estas pantallas generalmente se comercializan con el conteo de los subpíxeles , efectivamente 3 veces más de lo que podría esperar. de la forma en que se da la resolución de la pantalla de la computadora.

"¡Igual de probable es que el fabricante de su cámara ya no admita su cámara anterior en el software en bruto del mañana!" Nos quedan algunos laboratorios de procesamiento de películas restantes. Las limitaciones de suministro probablemente terminarán con el procesamiento de películas. ¿Pasará esto con los archivos RAW? Literalmente, todos los archivos creados por una computadora desde los años 70 todavía se pueden usar en cualquier software moderno siempre que su estructura esté documentada o se realice ingeniería inversa.

Todo es cierto, pero la interpretación se puede estirar.

Ese patrón de color crudo específico se llama patrón de Bayer.

Sí, raw es un color por píxel, y ese píxel es (típicamente) de 12 bits. Entonces, hay tres colores de píxeles sin procesar, algunos son azules, algunos son rojos y el doble de esos conteos son verdes.

Luego, más tarde, el software de procesamiento sin procesar (para hacer RGB JPG, podría estar inmediatamente en la cámara, o podría ser externo mucho más tarde) convierte los datos sin procesar en una imagen RGB para que podamos usarla. Esto es interpolación, los píxeles vecinos de los otros dos colores se combinan en cada uno de estos píxeles RGB, pero todos se convierten en píxeles RGB. En ese momento, son píxeles RGB de 36 bits; sin embargo, la resolución espacial está ligeramente comprometida, y los diversos datos de píxeles se comparten con los vecinos. Podemos terminar con (por ejemplo) 6000 píxeles RGB de ancho de sensor, pero provienen de 2000 sensores azules y 2000 rojos, etc. (y los datos también se comparten verticalmente, provienen de más de tres píxeles). Esto se llama demostración... y se puede encontrar en línea.

En mi humilde opinión, normalmente son de 14 bits. Solo las cámaras antiguas (Canon S120, por ejemplo) almacenan 12 bits por píxel
@RomeoNinov, no es tan simple como lo viejo contra lo nuevo. Por ejemplo, algunas Nikon le permiten elegir 12 bits o 14 bits, por lo que puede compensar la profundidad de la imagen frente a la velocidad de disparo continuo y el tamaño de la imagen.
@PeterTaylor, nunca se sabe esto, soy tirador de Canon. Pero esto debería ser para mí una excepción, no una regla (12 bits). Y que yo recuerde, algunas cámaras almacenan en 16 bits por píxel.
Sería un argumento mucho más sólido si proporcionara alguna evidencia de que la mayoría de las cámaras Canon son de 14 bits. Canon dice lo contrario: cpn.canon-europe.com/content/education/infobank/… "La mayoría de las cámaras digitales EOS capturan imágenes en modo de 12 bits"
@WayneF Basado en la cámara mencionada como la mejor de Canon en ese momento (1D Mark II), ese artículo se escribió entre abril de 2004 (cuando la 1D II reemplazó a la 1D) y junio de 2005 (cuando la 1D Mark IIN reemplazó a la 1D II) .