Y ya está. Debería funcionaros a la primera, si os da errores subidlos al foro y miraré qué puede estar pasando. Una vez probado que funciona podéis añadir opciones al compilador para que optimice más, por ejemplo:
-m3dnow -msse -msse2 -mmmx -mfpmath=sse -ffast-math... en
este enlace tenéis todas las opciones de optimización que soporta el gcc (se consiguen mejoras en torno a un 15-20% en velocidad de ejecución).
Existe también la opción de compilar sobre MinGW, pero como ya he dicho el código generado es más lento. Además hay que modificar ligeramente el código fuente; si alguno está interesado a pesar de estas advertencias

que me lo diga y le cuento los cambios que hay que hacer.
Sobre las modificaciones que hemos hecho entre _GUI_ y yo deciros simplemente que hemos añadido la opción -g, detrás de la cual hay que especificar la nueva gamma. -g 2.2, -g 1. En caso de no especificarse se entiende que es 1 y no se hace nada nuevo. De momento el código es un pelín lento, en mi máquina tarda unos 10 segundos más con la opción -g 2.2 que sin ella. Estoy trabajando para hacerlo un poco más rápido, ya subiré nuevas versiones si lo consigo.
Sobre los laberintos y demás artefactos extraños...
Parafraseado a _GUI_, yo en ocasiones veo laberintos
Con permiso de _GUI_ pongo esta imagen suya, que yo aún no ando muy ducho en este foro como para subir mi propio ejemplo. Fijáos en la pared a la izquierda del altavoz en la imagen de la derecha, y eso que es una Canon, si no me equivoco (no es efecto de la compresión jpeg, aunque puede parecerlo):
Algunos habréis observado que al revelar con -q 2 y -q 3 os aparecen laberintos en zonas de bajo contraste que no deberían estar ahí, otra cosa es que ocurran en zonas de patrones muy finos (muy cercanos a la resolución de la matriz Bayer de la cámara), lo cual sería normal y hasta cierto punto inevitable. En el modo -q 1 también aparecen artefactos como patrones de celdas 2x2. En ambos casos la opción -f los elimina, pero limita las opciones de interpolación al algoritmo VNG que no da la misma calidad que -q 3 y que tiene muchos artefactos de color (aunque que se pueden suavizar con varias pasadas de mediana, en dcraw opción -m 2, por ejemplo).
Los propietarios de cámaras 4/3 (Olympus y Panasonic fundamentalmente) veremos con más facilidad estos artefactos, por alguna característica especial de sus matrices de Bayer que se me escapa, pero pueden verse igualmente en otras cámaras.
La razón en todos los casos parece estar en que los algoritmos de interpolación implementados en dcraw (y por extensión en la mayoría de reveladores que han implementado los mimos algoritmos de interpolación, con la honrosa expepción de ACR y Lightroom, la verdad sea dicha, aunque lo hacen a costa de perder resolución) tratan los cuatro colores captados por el sensor (a través de la matriz Bayer) RGGB como si fueran tres, RGB. Al hacerlo aparecen estos artefactos. La solución está en tratarlos como cuatro colores distintos (precisamente lo que hace la opción -f de dcraw), pero desgraciadamente los algoritmos -q 2 (PPG) y -q 3 (AHD), los de más calidad, están diseñados específicamente para tres colores (AHD de entrada asume que hay más información verde que roja o azul y empieza interpolando ese canal como guía para interpolar luego los otros, por lo que modificarlo para cuatro colores no es en absoluto trivial). Otros reveladores (RAW Therapee, por ejemplo) han optado por soluciones similares y recomiendan directamente a los usuarios de Olympus y Panasonic que usen VNG-4, que viene a ser lo mismo que en dcraw -f (independientemente de la opción -q, como hemos visto), aunque a mí me da más calidad RAW Therapee en VNG-4 que dcraw con la opción -f.
No creo que Coffin vaya a resolver el problema y hay algunos usuarios de dcraw que nos resistimos a quedarnos con VNG en esa búsqueda del revelador perfecto. Así que la idea es rediseñar AHD para trabajar con 4 colores e incorporarlo a dcraw. Yo he empezado a investigar el tema, partiendo de los
artículos originales de Keigo Hirakawa donde se describe el algoritmo, pero de momento estoy un poco pez. Primero quiero entender cómo exactamente se forman estos patrones por hacer RGGB -> RGB ¿Alguien tiene más información? ¿Alguien se apunta?
Saludos:
Manuel Llorens
Marcadores