¿Está documentado el formato para la corrección de distorsión y aberración cromática de lentes µ4/3?

Las cámaras micro 4/3 de Olympus aplican corrección de distorsión en sus archivos JPEG integrados en la cámara cuando se usan con una lente micro 4/3. Las cámaras Panasonic corrigen tanto la distorsión como la aberración cromática con sus lentes.

Aunque no estoy seguro de dónde se almacena esta información, ya que esto también funciona en el software externo, supongo que está en los metadatos adjuntos a las imágenes RAW.

¿Este formato está documentado en alguna parte (oficialmente o mediante ingeniería inversa)? Sería bueno poder implementar esta corrección en software de código abierto (específicamente lensfun ) sin necesidad de calibrar la lente o confiar en la base de datos de calibración.

EDITAR : para dejar esto perfectamente claro: el objetivo es tomar el archivo RAW de la cámara y poder aplicar la misma corrección que obtiene el JPEG en la cámara, o que aplica el software Olympus.

Respuestas (5)

Parece haber un movimiento de código abierto bastante rico en la comunidad de Linux para generar procesadores de formato de archivo sin procesar para Linux. Encontré varios wiki que están trabajando en la compilación de detalles de formato de archivo para formatos RAW conocidos, y hay algunas aplicaciones que contienen código. Algunos formatos, como .CRW y .CR2 de Canon, tienen especificaciones abiertas y puede encontrar los detalles en línea. Parece que el formato .ORF (o el formato .RAW de Panasonic) no están abiertos, por lo que el único conocimiento que se puede obtener es a través de la ingeniería inversa. Dudo que la información que está buscando esté contenida en datos EXIF; sin embargo, si está almacenada, debería estar disponible en metadatos en formato RAW. Aquí hay algunos recursos:

La mayor parte de un formato de archivo RAW es un volcado directo de datos del sensor, ya sea desde una matriz Bayer, CCD o posiblemente un CMOS en capas (como el Foveon). Eso hace que los datos de la imagen sean bastante fáciles de detectar, ya que están muy modelados. Los datos que le interesan probablemente serán más complejos y aleatorios, ya sea almacenados al principio o posiblemente al final de un formato de archivo. He hecho una buena cantidad de ingeniería inversa de formato de archivo en mi día, y es posible que pueda reconocer alguna estructura en el formato .ORF para usted. (Trabajé en un editor para Sim City 4 y Sims 2 hace varios años, y junto con algunos otros, debemos haber descifrado más de 300 formatos de archivo a través de HEX. Es posible que pueda ayudar a proporcionar una idea si puedo obtenga algunos archivos sin procesar .ORF de la cámara + lentes a los que tiene acceso). Su mejor apuesta,

ACTUALIZAR:

Alternativamente, parece que Adobe ha lanzado un generador de perfiles de lentes que puede generar perfiles de lentes para Lightroom 3/ACR. Cubren la distorsión geométrica, la aberración cromática y el viñeteado. Sé que mencionaste algo que podría usarse con el programa lensfun, pero esta podría ser una alternativa viable.

Eché un vistazo al formato abierto Adobe DNG, y contiene un montón de etiquetas para este tipo de corrección fuera de cámara. Lamentablemente, ejecutar un ORF a través del convertidor DNG de Adobe no completa estos campos, ¡o estaría listo! En cuanto a Lens Profile Creator de Adobe, podría ser interesante como un calibrador más amigable (y ampliamente utilizado) + depósito en línea de perfiles de lentes, pero la biblioteca lensfun ya tiene una base de datos de perfiles de lentes generados con Hugin. Mi objetivo es hacer innecesaria la creación de perfiles para lentes µ4/3s, ya que lo tienen incorporado (¡en algún lugar!).
El formato de perfil de lente para ACR/Lightroom puede ser más fácil de descifrar que el formato de archivo sin procesar .ORF. Puede intentar crear algunos perfiles para su lente y ver si puede extraer esa información en su lugar.
Por supuesto, la ingeniería inversa es posible, pero difícilmente la respuesta a la pregunta.
@bronger: En realidad, responde la pregunta, lo mejor que fue posible en ese momento. El OP solicitó documentación e indicó que el objetivo era finalmente implementar la funcionalidad de corrección de lentes en OSS. La información que proporcioné fue la mejor información disponible hace CUATRO AÑOS. Creo que su voto negativo no está justificado y su comentario no entendió el punto de la pregunta.
El objetivo de la documentación es evitar la ingeniería inversa.
@bronger: Y cito el OP: Is this format documented anywhere (either officially **or through reverse-engineering**)?el OP declaró específicamente que la ingeniería inversa era una opción perfectamente viable, por lo que todavía no veo por qué está argumentando, y sigo creyendo que su voto negativo no estaba justificado.
Pidió documentación, sin importar cómo se creó. Esto es diferente de pedir ayuda para hacer ingeniería inversa.
Solo quería deshacer el voto negativo porque es demasiado duro, pero no me deja.
@bronger: todavía te estás perdiendo el punto. Enlacé LA MEJOR y LA ÚNICA información que estaba disponible, PUNTO, cuando creé esta respuesta. Los enlaces que ofrecí son la única "documentación" que estaba disponible. Si realmente leíste mi publicación, sabía muy bien que los enlaces que proporcioné solo eran útiles para que el OP hiciera ingeniería inversa de una solución por sí mismo... PERO ERA TODO LO QUE ESTABA DISPONIBLE. Al menos ofrecí tanto como fue humanamente posible en el momento en que se hizo la pregunta, en lugar de simplemente no responder porque no estaba proporcionando el tipo correcto de "documentación"...
En cuanto al voto negativo, realmente no me importa. Creo que fue injustificado e injustificado, no creo que hayas leído mi respuesta en el contexto en el que se dio (ni en el marco de tiempo, que fue hace cuatro años), pero la única forma de permitirte deshacerlo sería para editar mi respuesta... y realmente no hay nada que editar. Ofrecí la mejor información que había en ese momento, y no me avergüenzo de eso.

Al menos las cámaras Panasonic almacenan la información de corrección de la lente en los archivos sin formato. Algunos resultados preliminares de la ingeniería inversa de los campos exif relevantes se pueden encontrar en http://syscall.eu/#pana .

La información de corrección de distorsión se almacena en la 0x119etiqueta y consta de 16 números enteros de 16 bits, cuyo significado se decodifica en la publicación vinculada. La información de aberración cromática se almacena en la 0x011betiqueta, que aún no se ha investigado.

También podría ser parte del apretón de manos entre la lente y el cuerpo. Sin embargo, no estoy seguro de cómo el software de escritorio conocería la información. ¿Cómo está determinando que el software externo puede hacer la corrección?

Sé que Adobe tiene algún tipo de material público de corrección de lentes para Lightroom 3, quizás tengas mejor suerte con la ingeniería inversa de ese material.

dpreview.com/articles/distortion/page2.asp proporciona algunos detalles. Parece que Adobe Camera Raw también recoge esta información en los archivos sin formato.
Tenga en cuenta que los datos se incluyen en los archivos RAW , no en los JPEG. Creo que no tiene suerte si está mirando archivos JPEG, ya que ya estarán corregidos.

No se almacena en Exif: la corrección se aplica automáticamente a las imágenes Jpeg.
El formato sin procesar de Olympus contiene una matriz de parámetros simple (4 ?) para la corrección de lentes para lentes normales: esto es solo para los modelos de gama alta y solo lo completan las cámaras de la serie profesional.

Las correcciones para el software de Adobe son generadas por las propias lentes de prueba de Adobe; tit no utiliza los valores del fabricante.

Lo siento, no sé sobre el micro 4/3.

Supongo que solo los datos de la lente se almacenan en EXIF, las cantidades de corrección están codificadas tanto en el firmware de la cámara como en el software de posprocesamiento y no se incluyen en EXIF.

Supongo que eso es posible; aunque parece una forma estúpida de hacerlo. Particularmente porque mi lente Panasonic recibe correcciones aplicadas en mi cuerpo Olympus E-PL1 (y creo que lo contrario es cierto: los lentes Olympus se corrigen en cuerpos Panasonic). Requeriría una actualización de software y firmware cada vez que alguien lanzara una nueva lente µ4/3.
@RAOF: Es posible que no requiera necesariamente una actualización de firmware. Se puede crear un formato de especificación de lente flexible que permite que las lentes definan sus distorsiones, y una sola pieza de software puede aplicar el procesamiento de corrección basado en dicha especificación. Eso es esencialmente lo que hace Adobe Lightroom 3 con sus nuevos perfiles de lente de cámara. Si cada lente contuviera su especificación, no necesitaría actualizar el firmware para cada lente... conectar una lente es suficiente, ya que le diría al firmware cuáles son sus factores de corrección.
Correcto, ¡esos factores de corrección (+ el algoritmo específico utilizado) son lo que estoy buscando!