Sé que me he retrasado un poco respecto a cuando dije que tendría listo perfectRAW con AFD, pero es que he estado bastante liado con el trabajo y además me ha costado afinar AFD más de lo que esperaba.
Adjunto tenéis perfectRAW 0.6 con la siguiente funcionalidad nueva, respecto a la última versión perfectRAW 0.5 alpha 2. Va 100% compilado con MSVC:
- Interpolación AFD.
- Extracción de luminancia para todos los algoritmos de interpolación (para AFD en medio de la interpolación y para el resto a posteriori).
- Atenuación de ruido raw para ISOs altas basada en detección de textura mediante interpolación AFD. Esta atenuación sólo sirve para ISOs altas y cualquier algoritmo de interpolación porque se realiza antes de interpolar. Consta de dos parámetros uno que va de 0 a 100 para indicarle qué píxeles se considerarán ruidosos y otro de 0 a 100 para indicarle cuánto hay que atenuar dichos píxeles. Ya haréis vuestras propias pruebas, pero la idea es reducir el ruido sin eliminarlo y sin eliminar nada de textura. El objetivo es lograr un grano fino y sin manchas de color (color blotches), no una imagen sin ruido. Sin embargo, la imagen resultante es mucho más fácil de procesar luego en PS para quitar el ruido que queda si os molesta. Si lo usáis en imágenes sin ruido no notaréis nada.
- Pequeñas modificaciones en el interfaz (ahora por ejemplo funciona mejor el tabulador y lo hace a pantalla completa del todo).
Dentro de poco subiré una versión 0.65 alpha con la siguiente funcionalidad añadida:
- Elección de parámetros de interpolación de AFD (al menos el número de pasos de extracción de luminancia, ahora fijados en 2, que es lo óptimo).
- Reducción de ruido mediante mediana en la interpolación AFD tratando por separado la luminancia y la crominancia. Esto lo tengo implementado ya, pero quiero probar algún algoritmo para reducir aún más el ruido de crominancia. En cualquier caso, como ya he dicho, se pueden lograr resultados muy parecidos de momento utilizando Noiseware, Noise Ninja o Neat Image, entre otros.
- Gestión de color ICC completa.
- Reparación de un par de bugs que tengo pendientes.
- Versiones sin optimizar, y optimizaciones SSE y SSE2 (por el compilador). La versión 0.6 va con SSE2 para todos (lo siento por algún PC antiguo). La versión final detectará las características del procesador y se configurará automáticamente para aprovecharlo al máximo.
Errores conocidos:
- El uso del tabulador aún es bastante irregular, pues al hacer Alt+TAB a veces salta cuando no debe. Además se corta la imagen por arriba unos pocos píxeles (lo cuál es un misterio). También impide usar el tabulador para moverse por los controles.
- Al cargar una imagen el formulario de elección del raw se queda sobre la ventana hasta que se termina de revelar. No debería hacerlo, tengo puesto un DoEvents y el revelado se hace en un hilo diferente, pero con prioridad alta... de ahí el problema.
- La gestión de color está puesta a fuego en sRGB. Es funcionalidad por añadir. Ahora el config.xml ya lleva quitada por defecto.
- Jacques Desmis (que está haciendo un fantástico control de calidad de las imágenes que salen de perfectRAW/dcraw) reporta problemas con la gamma en los niveles bajos. Parece que hay un bug en el cálculo de la LUT para la gamma, lo arreglaré lo en la próxima versión.
- Si no carga la fuente en c:\windows\fonts se ve mal el entorno. Esto no es un error, pero así no me lo reportáis


. Lo cierto es que tengo que estudiar si mantenemos la fuente o no.
- Sigue sin haber una correcta gestión de errores. Si el raw no es válido (o no es un raw) ¡casca!
- La reducción de ruido por wavelets de Coffin estropea las altas luces. Ya lo tengo arreglado, lo subiré en la próxima versión.
- Los raws de las Fuji siguen saliendo rotados 45º.
- La atenuación de ruido produce artefactos en los bordes de la imagen (lo he detectado después de subirlo, pero es fácil de resolver).
¿Y ahora qué queda para la versión 1.0?
- Voy a dejar el interfaz totalmente en manos de ariznaf y Egon para que la cambien por la nuevo con OpenGL y los controles desacoplables (incluso en monitor a parte
).
- Yo voy a ponerme a reparar algunos bugs y a meter el balance de blancos personalizado que ahora no va bien (por eso no podéis meter multiplicadores aún).
- Voy a reestructurar el código para soportar plugins de revelado (nos hace falta para perfectBLEND y para los futuros plugins de perfectRAW).
Por último, qué podéis esperar de AFD en comparación con otros algoritmos de interpolación (para que no digan algunos que sólo cuento lo bueno de AFD
):
- En el balance calidad/velocidad sin duda alguna el campeón es PPG. Yo os recomiendo usarlo por defecto. Coffin lo cambió sensiblemente en su última versión y es rapidísimo.
- En imágenes sin ruido, AHD es el más nítido y el que mejor detecta ejes. AFD sin embargo detecta mejor las texturas y en general los tejidos y es considerablemente más rápido. Si hay algo de ruido AFD no crea artefactos y AHD sí. Es difícil elegir uno u otro si no hay ruido. Personalmente en cuanto hay algo de ruido AHD no me gusta por sus laberintos. En imágenes sin nada de ruido me gusta más AHD, de hecho, en algunas estructuras AHD es bastante mejor que AFD. Sin ruido, en imágenes naturales yo optaría por AFD mientras que si hay presentes muchas rectas, letras, etc. usaría AHD.
- Para ISOs altas sin duda alguna AFD con atenuación de ruido. Aunque veréis lo muchísimo que ha mejorado AHD en ISOs altas gracias a la misma atenuación de ruido, que internamente usa AFD para detectarlo.
- Para BN sin duda alguna AFD salvo que la imagen no tenga nada de ruido. En cuyo caso podéis optar por AHD.
En cualquier caso estas son mis apreciaciones, ya contaréis vuestra experiencia. Yo por mi parte estoy trabajando en mi propio algoritmo de interpolación que mejore AHD, pero no sé si alguna vez verá la luz, aunque mis primeros resultados son prometedores, ya veremos...
Como pequeña comparativa de la calidad que puede obtenerse en comparación con ACR, aquí tenéis un pequeño ejemplo. En la última imagen he postprocesado de un modo bastante cutre en Photoshop el ruido de crominancia porque aún no he implementado esa funcionalidad en perfectRAW como a mí me gustaría, pero es fácil de hacer y cuestión de tiempo:
