¿El formato Canon * .CR2 / CRW contiene datos "realmente RAW"?

11

En mi trabajo, estoy tratando con imágenes en bruto * .CR2 tomadas por una Canon DSLR en modo sin procesar. Cuando leí sobre el formato aquí , me sorprendió descubrir que tiene 4 IFD TIFF que contienen a) Imagen JPEG de tamaño original b) Imagen JPEG en miniatura c) Datos RGB sin comprimir d) Imagen JPEG sin pérdida.

Mi impresión hasta ahora era que cualquier archivo de imagen RAW capturada por la cámara tendría datos RAW de Bayer, es decir, datos de bayer R, Gr, B, Gb y algunos datos EXIF ​​sobre la configuración de captura de la cámara, etc.

Pero después de leer esta especificación CR2, estoy un poco confundido sobre cómo puede tener datos RGB o incluso sorprendentemente datos JPEG. Estos parecen ser los datos después de la demostración (obteniendo los datos de píxeles R / G / B faltantes para el patrón original del sensor Bayer). Si ese fuera el caso, no consideraría * .CR2 como datos "realmente crudos". Ha realizado demostraciones antes de descargar el llamado archivo sin formato.

¿Me estoy perdiendo de algo?

¿Algún otro formato de Camera Raw (por ejemplo, Nikon - * .NEF, Kodac - * .kdc, Pentax - * .ptx / pef, ...) tiene datos de bayer sin procesar reales sin ningún procesamiento?

goldenmean
fuente
2
La página a la que enlaza dice que contiene el patrón Bayer, así que sí, tiene el patrón Bayer.
El enlace sobre el formato está roto
Pedro77

Respuestas:

11

Creo que definitivamente te estás perdiendo algo. Considere: JPG se usa para almacenar (y generalmente comprimir, con pérdida) imágenes. Cualquier imagen ¿Qué es una imagen? Es un gran paquete de píxeles, cuando todo está dicho y hecho.

La salida del sensor de la cámara también es un gran paquete de píxeles. Simplemente no son píxeles RGB a todo color, son píxeles monocromáticos; si un píxel individual representa RG o B depende de su ubicación en el sensor de imagen, lo que se conoce. Pero su naturaleza monocromática, dada el color por posición, no significa que no puedan almacenarse de manera útil en la forma JPG. Un paquete de píxeles es un paquete de píxeles, y ¿por qué reinventar la rueda?

Mire más de cerca el documento. "Entonces, con una cuadrícula BAYER de RG / GB, las filas pares han intercalado datos HuffCode / Diff para ... RGRGRG ..., mientras que las filas impares son ... GBGBGB ...". Entonces, la salida cruda de Bayer se almacena en formato JPG. Sin pérdidas, se afirma (¡de lo contrario tendríamos un problema!) Y presumiblemente en más de 8 bits de profundidad. También tienes que cocinar mucho para obtener una foto útil.

Las otras imágenes JPG se utilizan para la vista previa en la cámara, el histograma y demás. Tiene sentido cocinarlos de una vez por todas a medida que se toma la imagen, en lugar de tener que hacerlo sobre la marcha cada vez que quiera mirarlos. Esto también significa que la computadora puede capturarlos con fines de miniaturas una vez que descargue la cámara en la PC.

*** No puedo agregar un comentario por alguna razón, así que esto va aquí: Goldenmean, ¿qué te hace pensar que hay un problema de que no tienes información RGB completa para cada píxel? Asumiendo que está creando un formato RAW y tiene una medida de 128 desde una celda de sensor "roja"; puede elegir almacenar esto como 128,0,0 o 128,128,128 o, si se siente inteligente, 128, "datos de la celda siguiente", "datos de la celda después de eso" para ahorrar algo de espacio. Realmente no importa. El trabajo del convertidor RAW es realizar un seguimiento de esto (aunque estoy seguro de que los programadores lo agradecerían si documentara cómo eligió almacenar los datos de su sensor) y tomar una imagen real de ello.

Staale S
fuente
2
El formato JPG con pérdida con el que todos estamos familiarizados es aparentemente bastante diferente del esquema confusamente llamado "JPEG sin pérdida" utilizado en estos archivos sin formato.
Lyman Enders Knowles
2
@Lyman: Sí, lo es. También se usa en DNG, por ejemplo, se más: en.wikipedia.org/wiki/Lossless_JPEG
Guffa
Entiendo: 'todo es cosa de píxeles', y el 'códec JPEG sin pérdidas también', pero aún quedan preguntas, ¿cómo puede tener 3 componentes para cada píxel almacenado en bruto? El sensor no proporciona un triplete para cada píxel físico, pero solo proporciona uno de los 3 (R, G o B), no los 3 que los formatos parecen estar almacenando para cada píxel. Esa es la qn.
goldenmean
2

El DNG contiene JPG en escala de grises sin pérdida con una resolución 4 veces mayor que el archivo jpg en color " normal ". ¿Está más claro ahora?

¿Cuál es el problema al colocar 3 tipos de bolas negras en un vaso que tiene la intención de contener 3 bolas de colores ?

En el archivo JPG no hay colores, solo hay números, como en cualquier otro formato de archivo. Y usan JPG porque es más fácil codificarlo de esta manera, porque el procesador de la cámara ya está hecho para crear dichos archivos.

Probablemente escribirían los datos de la matriz en zip, rar, flac o cualquier otro formato sin pérdidas de la misma manera. Pero eso requeriría un montón de algoritmos agregados al software de la cámara, que no son necesarios.

usuario28170
fuente
Estoy confundido por tu explicación. el enlace ya no funciona, pero el OP indica que hay archivos TIFF. Si la cámara puede producir archivos TIFF, ¿por qué necesita codificar datos en bruto en JPG? JPG sin pérdida significa que no hay datos perdidos en la compresión, pero eso no necesariamente significa que la conversión de datos de matriz sin procesar a JPG no transforma o pierde información de alguna manera, ¿verdad?
MikeW