martes, 4 de mayo de 2021

RAW HDR

Gracias a la linealidad del sensor que ya explotamos en 'Descomposición lineal de fuentes de iluminación en RAW', vamos a construir un RAW HDR sintético que contenga toda la información capturada en un típico ahorquillado de exposición como uno más de los ejercicios planteados en 'Generando un RAW en formato DNG a partir de un TIFF'. Se trata básicamente de una extensión en el dominio RAW de lo que hicimos en 'Fusión HDR de imágenes con R'.

Tomaremos para cada píxel (fotocaptor) el dato del archivo RAW más expuesto que no esté saturado en la captura, al ser el que tendrá mejor relación S/N. Cuando el dato provenga de un RAW con exposición mayor a la captura menos expuesta, el nivel se corregirá linealmente a la baja para igualarse al de dicho RAW. Así el DNG resultante tendrá los mismos niveles de exposición que el RAW menos expuesto.

Sobre esta escena de alto contraste realizamos un ahorquillado {0, +3EV, +6EV} (hacer clic para ver la imagen a gran tamaño, se trata del revelado del RAW HDR que vamos a construir):


Como es esperable en interiores con ventanas encontramos un contraste de 12-13 pasos:



El anterior histograma RAW se ha obtenido del DNG de salida de 16 bits, de ahí que disponga de tantos niveles llenos incluso en zonas de muy baja exposición. El mismo histograma obtenido del RAW menos expuesto presenta menos niveles por ser un archivo de 14 bits:


Calculamos por comparación entre RAWs contiguos la exposición relativa de las capturas fotocaptor a fotocaptor, quedándonos con la mediana (en rojo) de las distribuciones obtenidas. Resultan 3,02EV entre las dos primeras capturas y 3,01EV entre la segunda y tercera, un poco mayores al valor nominal de 3EV ajustado en la cámara:


El siguiente mapa de fusión indica en blanco, gris y negro la información obtenida de cada captura para construir el DNG sintético; en blanco de la menos expuesta (22,7%), en gris de la intermedia (21,1%) y en negro de la más expuesta (56,3%). Es preciso hacer clic para verla con los tres tonos puros ya que el reescalado "fabrica" nuevas gamas de gris, y así adivinaremos también el patrón Bayer del sensor:


El resultado puede descargarse de rawhdr.dng.

~~~

Ahora hacemos la siempre morbosa comparación de ruido entre el RAW menos expuesto y el DNG resultante, que sustituye los píxeles de las zonas de sombras profundas por información con alta relación S/N procedente de las capturas más expuestas:



Para terminar comparamos el resultado del DNG de salida a 16 bits con diezmados a 14 bits (lo habitual en las cámaras FF actuales), 12 bits (los usados en cámaras de sensores menores a FF o antiguos) y 10 bits (los típicos en un smartphone actual). Con 14 bits las sombras profundas aún aguantan el tipo pero con menos bits, y por tanto menos niveles lineales disponibles, la posterización fruto del bajo ruido es inevitable:



En escenas de altísimo contraste incluso 16 bits se podrían quedar cortos por falta de niveles en las sombras profundas. Una solución sería aplicar una expansión gamma a los datos finales antes de redondearlos a enteros (tendríamos un RAW no lineal), y otra más elegante usar una salida en formato DNG de coma flotante. Si sabes hacer cualquiera de las dos cosas en un DNG escríbeme.

~~~

Es interesante comparar la efectividad del HDR vs el apilado por media que hicimos en 'Apilado por media para simular ISO ultra bajo/filtro ND en RAW (I)' en cuanto a la reducción de ruido:

  • Aunque realizar un ahorquillado HDR es el método de elección para ganar rápidamente rango dinámico, por requerir una cantidad mucho menor de capturas, está limitado a la relación S/N máxima capaz de proporcionar el sensor en una única foto derecheada.
  • En cambio con un apilado de media podemos aumentar la relación S/N de forma virtualmente indefinida añadiendo nuevas capturas. Si se descarta frente al HDR es por el elevado número de tomas que se requiere para lograr la ganancia.

El siguiente gráfico cualitativo muestra cómo la mejora en relación S/N por apilado nunca deja de aumentar conforme promediamos más capturas. Con HDR sin embargo a partir de 4 ó 5 fotos inteligentemente espaciadas ya no hay mejora por añadir más, imponiendo el propio sensor una cota superior de relación S/N que, eso sí, resulta sobradamente suficiente:


~~~

Repositorio con todo el código R, script DNG, ejecutables de exiftool y dng_validate, y archivos RAW originales y finales: 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.