En este segundo ejemplo de 'Generando un RAW en formato DNG a partir de un TIFF', vamos a promediar varios archivos RAW procedentes de capturas perfectamente alineadas realizadas sobre la misma escena para construir un DNG de salida de características mejoradas.
En el apilado DNG resultante tendremos un doble efecto:
- Aumento del tiempo de exposición respecto a cada toma individual: el tiempo de exposición equivalente será la suma de tiempos de todas las capturas realizadas. Es por eso que esta técnica se usa, y de hecho varias cámaras del mercado la implementan (Olympus, Sigma fp), para simular filtros ND por software o lo que es lo mismo, simular valores ISO ultra bajos.
- Mejora en ruido y ganancia de rango dinámico: la estadística de la relación S/N dicta que por cada 4 muestras que promediemos el ruido se reduce a la mitad al sumarse en cuadratura (suma de varianzas), o equivalentemente ganamos 1 paso de rango dinámico. Si promediamos 16 capturas el ruido se reducirá a la 1/4 parte ganando 2 pasos de rango dinámico, y así sucesivamente:
Escogemos una escena de alto contraste que no ganará ningún premio pero sirve perfectamente para ver las bondades en cuanto al ruido del apilado, y realizamos 16 capturas sobre la misma. Recopilamos las características que tendrá el DNG que vamos a generar:
- Número de capturas origen: 16 tomas a ISO100
- Equivalencia ISO: sensor con ISO 100/16 = ISO6
- Equivalencia filtro ND: filtro ND de log2(16) = 4 pasos
- Mejora en rango dinámico: log4(16) = 2EV
- Mejora lineal en ruido: 2log4(16) = 161/2 = 4 veces menos ruido
Haciendo el promediado por mediana en lugar de con la media el resultado es muy parecido pero algo inferior. Esto unido a que computacionalmente la mediana resulta mucho más costosa (la hemos tenido que implementar en C++ con Rcpp
) nos decanta por el promediado simple para esta aplicación. El resultado puede bajarse de meanstacking.dng.
Hacemos otra prueba esta vez bastante más extrema: utilizamos fotos de muy baja exposición lumínica (ISO25600), pero totalizando... 265 capturas. Vamos a ver si se puede compensar la exposición ruinosa con fuerza bruta. Hacer este número de tomas equivale a ganar log4(265) = 4,02EV en rango dinámico, o mejorar la relación S/N por un factor 24,02 = 16,3:
La mejora como no podía ser de otro modo con un promediado tan radical es apabullante, pudiendo "rescatar" detalles y texturas completamente indetectables por el ruido en las tomas individuales:
Sin embargo, al haber hecho las capturas con niveles de exposición tan bajos, ha aflorado el pattern noise del sensor en forma de bandas verticales muy visibles. Estas bandas, aunque presentes en todas las tomas individuales, eran sin embargo indetectables en ellas al quedar enmascaradas por el ruido electrónico de mayor amplitud. Con toda probabilidad el resultado mejoraría realizando una sustracción de darkframe como hicimos en 'Reducción de ruido por sustracción de darkframe en RAW'. El RAW final puede bajarse de meanstackingradical.dng.
En 'Apilado por media para simular ISO ultra bajo/filtro ND en RAW (II)' hacemos la segunda parte de este ejercicio aplicando la técnica estudiada a la obtención de un archivo RAW de larga exposición.
Repositorio con todo el código R, script DNG, ejecutables de exiftool y dng_validate, y archivos RAW: GitHub.
No hay comentarios:
Publicar un comentario
Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.