TUTORIAL
  ZERO NOISE


   Creado
   26 Mar 2008


   Actualizado
   12 Dic 2010


   


© Guillermo Luijk 2008



QUÉ ES ZERO NOISE

Zero Noise es un programa que he realizado con la intención de automatizar la tarea de fusionar los arhivos RAW procedentes de varias tomas realizadas sobre una misma escena con diferentes grados de exposición, para lograr una imagen de bajo ruido y alto rango dinámico (HDR).

El fundamento teórico en el que está basada esta técnica fue ya explicado en detalle en el artículo Fotografía con cero ruido.

Son varios los programas con los que se puede acometer dicha tarea (Photomatix, HDR de Photoshop, Enfuse,...), pero ninguno de ellos me satisface plenamente por varios motivos:
  • No están optimizados para obtener la máxima reducción de ruido posible al realizar una mezcla progresiva de las imágenes, de modo que cada píxel final está participado en mayor o menor medida por píxeles correspondientes a varias de las tomas originales en lugar de escoger únicamente los píxeles más libres de ruido.

  • Esto provoca además pérdida de nitidez si las imágenes no están milimétricamente alineadas, que será lo habitual ya que incluso con un alineado previo de las imágenes en una determinada cantidad de píxeles es fácil que persista un desalineamiento de fracciones de píxel.

  • No permiten aplicar medidas de anti ghosting para evitar los artefactos en forma de imágenes fantasma que se crean al fusionar escenas con partes en movimiento, ya que no admiten realizar ninguna intervención manual previa a la fusión.

  • Aunan fusión de la información y mapeo de tonos, perdiendo el control sobre el modo en que se hace este último. Así alteran de forma irreversible los parámetros originales de brillo, contraste y tono de la imagen, dando lugar en general a imágenes de aspecto irreal y con frecuentes inconsistencias de iluminación.
Zero Noise en cambio está optimizado para obtener la máxima reducción de ruido y nitidez posibles, y como consecuencia captar el máximo rango dinámico de la escena, pero obteniendo una imagen con los parámetros de brillo, contraste y tonos idénticos a la original sin procesar.

Además será posible intervenir en el proceso de fusión para tomar medidas potentes que eviten la aparición de fantasmas en escenas no del todo estáticas.

Con esta imagen en bruto pero de alta calidad, el usuario deberá realizar el mapeo de tonos más acorde a sus preferencias y necesidades, bien de forma manual o haciendo uso de herramientas externas como las ya citadas.

No tiene por lo tanto sentido comparar directamente el resultado que sale de Zero Noise con lo obtenido usando programas de HDR completos como Photomatix, Dynamic Photo HDR, TuFuse/Enfuse o el propio HDR de Photoshop. Zero Noise es solo un fusionador de capturas, no un programa completo de HDR ya que no realiza la etapa del mapeo de tonos.

Pero Zero Noise es perfectamente compatible con todos esos programas, pudiendo usarse para hacer una fusión de capturas precisa y óptima en términos de ruido, nitidez y control manual frente a fenómenos de ghosting, para luego realizar el mapeo de tonos con cualquier herramienta HDR que admita como entrada archivos TIFF. Se tendrá así lo mejor de ambos mundos: la fusión de más control y calidad posibles, y el mapeo de tonos preferido por el usuario.

Con lo dicho el proceso de fusión y procesado de imágenes con Zero Noise comprenderá los siguientes pasos, de los cuales los dos primeros se explicarán en el presente tutorial:
  • Captura de las imágenes con la máxima calidad posible
  • Fusión de las imágenes con Zero Noise
  • Mapeo de tonos para explotar el rango dinámico capturado
Para obtener ideas sobre cómo realizar el tercer paso puede acudirse al tutorial Mapeo de tonos HDR donde se expone una posible solución de edición para llevar a cabo un Tone Mapping manual sobre las imágenes resultantes de Zero Noise con un resultado natural.

La considerable longitud y densidad de este tutorial no se debe a la complejidad de uso de Zero Noise, sino a que me ha parecido interesante entrar en bastante detalle sobre algunos conceptos y aspectos teóricos de la implementación del programa. No puede considerarse por tanto como una guía de referencia rápida pero aún así animo a leerlo completamente antes de usar el programa.


QUÉ NO ES ZERO NOISE

Para que no haya lugar a malentendidos sobre lo que hace y lo que no hace este programa, quisiera dejar claro también qué no es Zero Noise:
  • No es un programa que aplique ningún algoritmo reductor de ruido. La eliminación de ruido se logra eligiendo siempre los píxeles menos ruidosos de las imágenes que se le suministran, por lo tanto la mayor o menor reducción de ruido lograda dependerá totalmente de la calidad de las capturas realizadas por el usuario. Es precisamente esta forma de funcionamiento la que permite reducir a cero la pérdida de detalle y textura.

  • No es un programa de mapeo de tonos que genera una imagen ya terminada como lo hacen Photomatix o el HDR de Photoshop. La imagen proporcionada por Zero Noise es virgen y del mismo nivel de exposición que la captura menos expuesta que se le haya suministrado. Requiere por tanto de un proceso adicional de mapeo de tonos para levantar las sombras. Este mapeo podrá hacerse manualmente, o con cualquier herramienta de mapeo de tonos que admita archivos TIFF.

  • No es un programa en el que se introduce una serie de archivos RAW y en un click el usuario obtiene el resultado. Zero Noise requiere de pocos, pero importantes ajustes que el usuario debe realizar para obtener la imagen de salida. Esto es precisamente lo que lo convierte en una herramienta flexible y adaptable a un amplio abanico de situaciones de alto rango dinámico.

CAPTURA DE IMÁGENES

Las imágenes deberán ser realizadas con la máxima calidad posible. Dejando otros aspectos técnicos al margen, es en particular importante obtener una buena alineación píxel a píxel entre las distintas imágenes. Para ello se ha de recurrir a:
  • Uso de un trípode lo más robusto posible para minimizar las vibraciones. No hace falta indicar que trípode equivale a emplear el ISO electrónico más bajo disponible en la cámara, típicamente ISO100 ó ISO200 según marcas.
  • Empleo del bloqueo de espejo con temporizador, y mejor aún si se dispone de una cámara con Live View utilizar dicho modo para directamente inmovilizar el espejo entre toma y toma. Evitar el golpe del espejo reduce vibraciones que podrían provocar pérdida de nitidez por trepidación.
  • Establecer idealmente un procedimiento para no tener que tocar la cámara entre capturas para evitar la posibilidad de desalineamiento de las tomas. Un control desde un portátil o un simple ahorquillado {-2EV, 0EV, +2EV} con disparador remoto lograrán este objetivo.
En principio pensé en añadir al programa capacidad de alineamiento de imágenes que finalmente creo que voy a descartar por dos motivos: primeramente porque por el modo en que está establecido el procedimiento nada nos impide usar en una fase intermedia alguna herramienta de alineamiento de imágenes. Pero sobre todo porque si se trata de un método para obtener la mayor calidad de imagen final se debe descartar cualquier forma de proceder que pudiera llevar a un desalineamiento apreciable de las imágenes.

En contra de lo que se suele pensar muchas veces (he llegado a ver imágenes HDR obtenidas con 9 o más capturas!), no se obtienen mejores resultados en la fusión de imágenes con un gran número de las mismas. De hecho en programas de mezcla progresiva como Photomatix y HDR de Photoshop, el empleo de muchas imágenes conduce a una gran pérdida de nitidez si éstas no están perfectamente alineadas y no aporta ninguna ventaja de cara al resultado final.

Es posible obtener imágenes de gran calidad con tan solo dos capturas separadas una cantidad generosa de pasos de diafragma. He autolimitado Zero Noise a la fusión de un máximo de 10 imágenes, si bien utilizar más de 4 no está en realidad justificado en ningún caso.

Resulta obvio que los diferentes grados de exposición nunca han de obtenerse alterando la apertura del diafragma, sino siempre jugando con la velocidad de disparo. No hacerlo así puede propiciar efectos extraños debidos a las diferentes profundidades de campo con que se generarían las capturas.


ESQUEMA PROPUESTO

Mi propuesta actual es realizar 3 capturas empleando el ahorquillado de la cámara. Pero a diferencia de como se suele recomendar con los programas habituales de HDR donde se hace coincidir la medición de la cámara con la toma central, lo que propongo es olvidarnos de dicha toma y usar como referencia la toma menos expuesta. Así nos centraremos en obtener en la captura menos expuesta la imagen más expuesta posible de la escena pero siempre sin quemar las altas luces.

El esquema pasaría de ser el típico {-2EV, 0EV, +2EV} a uno del tipo {0EV, +2EV, +4EV}, pero siempre cuidando como se ha dicho de que en la captura que llamamos 0EV o de referencia no se queme ninguna información de altas luces. Se trata en definitiva de derechear la toma menos expuesta despreocupándonos totalmente de cómo de expuestas queden las otras dos capturas.

Una forma sencilla y efectiva de lograrlo es usando el modo M, donde ajustaremos primero la exposición para obtener el derecheo del histograma por el método que más fácil nos resulte (puede ser un simple tanteo observando el histograma), teniendo aún desactivado el ahorquillado.

Logrado el derecheo sin quemar altas luces, que en escenas de alto rango dinámico implicará una toma de apariencia global muy subexpuesta, solo tendremos que aumentar en 2 pasos la exposición cuadruplicando el tiempo. Si en este momento activamos el ahorquillado {-2EV, 0EV, +2EV} de la cámara habremos logrado que automáticamente la toma menos expuesta del mismo coincida con el derecheo buscado.

En escenas de mucho rango dinámico este esquema puede quedarse corto. Esto lo comprobaremos fácilmente con una sencilla regla: si en la imagen más expuesta del ahorquillado las sombras aún aparecen oscuras en el display de la cámara, necesitaremos capturas adicionales con mayor exposición. En esos casos deberemos modificar manualmente la exposición para obtener tomas adicionales con más exposición aún, o separar más las tres capturas propuestas.

Por suerte la tendencia es a que las nuevas cámaras permitan ahorquillados cada vez más amplios y con un número de capturas no limitado a solo tres, lo que nos permitirá cubrir el rango dinámico de cualquier escena real sin necesidad de tocar la cámara. Ocurre así con las últimas Nikon D700 y D3X. Por el contrario Canon en la 5D Mark II ha cometido la torpeza de anclarse en el ahorquillado clásico de tres tomas separadas un máximo de 2 pasos.

La Canon 7D sí ha extendido el ahorquillado a separaciones de tres pasos, lo que posibilita un esquema muy interesante de {0EV, +3EV, +6EV} que en mi opinión representa el mejor equilibrio entre número total de capturas, capacidad de captura de rango dinámico y fiabilidad de la fusión. Para lograr este esquema buscaremos el derecheo perfecto de la escena antes de ajustar el ahorquillado. Entonces aumentaremos en 3 pasos la exposición, y por último activaremos el ahorquillado con separaciones de 3 pasos.

Otras cámaras como las Pentax permiten ahorquillados mucho más flexibles que las marcas más difundidas. Se tratará en cada caso de ver las posibilidades que ofrece nuestro modelo y aplicar la filosofía de reducir el ruido mediante la sobreexposición.

Si nos viéramos obligados a realizar solo dos capturas, recomendaría no ser excesivamente ambiciosos y separar las tomas 3 pasos de diafragma en un esquema {0EV, +3EV}, o de lo contrario podrían llegar a distinguirse las zonas de transición entre una captura y otra debido a la considerable diferencia en el nivel de ruido visible. Esto puede ocurrir especialmente en las cámaras más antiguas y por tanto ruidosas.


MEJORA EN RUIDO Y EXPANSIÓN DE RANGO DINÁMICO

Por cada paso extra de exposición en las tomas adicionales reduciremos el ruido visible en las sombras, y en consecuencia aumentaremos en un paso el rango dinámico que podemos capturar.

De forma general, realizando N capturas separadas M pasos de diafragma y con una cámara capaz de capturar C pasos de rango dinámico, seremos capaces de enfrentarnos a escenas con un contraste máximo de:

DR = C + (N-1) * M

Obteniendo un salto lineal de la relación S/N entre tomas en las zonas frontera de 2M.

Así una cámara de 8 pasos de rango dinámico máximo (como la Canon 350D) se convertirá en un dispositivo capaz de obtener los siguientes rangos dinámicos y mejoras aproximadas en la relación señal a ruido en las sombras al emplear los esquemas de exposición siguientes. Se muestra en la última columna el salto máximo en la relación S/N que encontraremos en las zonas fronterizas entre imágenes:

ESQUEMA  RANGO DINÁMICO   MEJORA S/N   SALTO S/N 
{0EV,+2EV} 10EV x4 x4
{0EV,+3EV} 11EV x8 x8
{0EV,+4EV} 12EV x16 x16
{0EV,+2EV,+4EV} 12EV x16 x4
{0EV,+3EV,+6EV} 14EV x64 x8
{0EV,+4EV,+8EV} 16EV x256 x16
   {0EV,+2EV,+4EV,+6EV}    14EV x64 x4
   {0EV,+3EV,+6EV,+9EV}    17EV x512 x8
Fig. 1 Esquemas de exposición para cámara de 8 pasos de rango dinámico.


Observando el tercer y cuarto esquemas por ejemplo, uno podría pensar que no tiene sentido realizar la toma central a +2EV en el cuarto. Esto no es así; si bien dicho esquema no mejora el rango dinámico máximo capturado ni el ruido en las sombras, sí mejora éste en los tonos intermedios y hace más suaves las transiciones, por lo tanto es un esquema en principio más recomendable que el de solo dos capturas.

De las pruebas que he hecho, cuando con un esquema del tipo {0EV, +4EV} puede esperarse que hasta el 80% de la imagen final sea obtenida de la toma a +4EV y tan solo un 20% de la toma 0EV. El salto en relación señal a ruido es de 16 veces más ruido en la toma 0EV lo que puede llegar a delatar las zonas de transición en lo referente a este parámetro.

En cambio pasando a un esquema {0EV, +2EV, +4EV} el 80% de la imagen final seguirá proviniendo de la toma +4EV como es lógico, pero del orden del 15% viene de la toma +2EV y solo el 5% de la toma 0EV, obviamente las altas luces. El salto en la relación señal a ruido es de 4 veces más ruido en la toma más ruidosa, lo que hace las transiciones inapreciables en cuanto al ruido.

En el siguiente enlace se recogen las posibilidades de ahorquillado disponibles en una amplia lista de cámaras: Auto Exposure Bracketing settings by camera model.

~~~

Obtenidos los archivos RAW nos disponemos a ver paso a paso el modo de operar con Zero Noise para fusionar las imágenes obtenidas.


FUSIÓN DE IMÁGENES CON ZERO NOISE

Aún a riesgo de hacer parecer el proceso más complejo, he dividido la forma de trabajar con Zero Noise en 4 etapas independientes donde la salida producida por cada una es requisito para llevar a cabo las siguientes.

Este enfoque tiene dos ventajas: en primer lugar cualquiera de las etapas puede repetirse cambiando sus parámetros sin tener que volver a realizar los cálculos de fases previas. Y en segundo lugar con esta forma de operar podremos ser interactivos con Zero Noise si así lo deseamos, realizando manipulaciones manuales sobre los resultados producidos por cada una de las etapas antes de ser estos empleados en las siguientes.

Las etapas en que se divide el proceso son:
  1. Revelado RAW
  2. Cálculo de exposiciones relativas
  3. Generación del mapa de fusión
  4. Fusión de las imágenes

Fig. 2 Zonas del interface de usuario dedicadas a cada etapa.


Con esta división por ejemplo tras la etapa de revelado (etapa 1) podemos abrir los TIFF resultantes en Photoshop o en cualquier otra herramienta para realizar recortes, correcciones de la alineación, descartes de tomas excesivamente subexpuestas,... o cualquier otro proceso que se desee.

Igualmente, tras el cálculo de las exposiciones relativas (etapa 2) y observando los histogramas de exposición relativa, podremos advertir si algo había en las imágenes (desalineamiento, partes en movimiento, cambios en la iluminación ambiental entre tomas,...) que llevó a un cálculo impreciso de las mismas.

Por último, una vez generado el mapa de fusión (etapa 3), concepto que veremos más adelante, podremos editarlo manualmente para refinarlo antes de emplearlo en la fusión propiamente dicha de las imágenes.

El botón con que lanzar cada una de las etapas pasa a estar habilitado solo cuando se han ejecutado los cálculos requeridos de etapas previas.


1. REVELADO RAW

Básicamente ésta es la etapa en que vamos a proceder a realizar un revelado neutro de los archivos RAW que obtuvimos en nuestra captura generando los correspondientes archivos TIFF de 16 bits.


MOTOR DE REVELADO DCRAW

Para el funcionamiento de Zero Noise, aparte de haberse procedido a su instalación es preciso tener el ejecutable de DCRAW en la ruta 'C:\dcraw\dcraw.exe'. Estos ejecutables pueden obtenerse de la web de Manuel Llorens, siendo muy importante descargar el apropiado para la versión de Windows que se esté usando.

Para los no familiarizados, DCRAW es un revelador RAW gratuito, compacto y de gran potencia y flexibilidad para llevar a cabo un revelado RAW sin procesado alguno y bajo total control del usuario, y que es usado por Zero Noise como motor de revelado.


SELECCIÓN DE RUTA A LOS ARCHIVOS RAW

Mediante la opción '...' indicaremos al programa la ruta hasta los archivos RAW. Bastará con seleccionar uno de ellos y Zero Noise leerá los restantes con la misma extensión que haya en la carpeta elegida. Por ello en dicho directorio solo deberán encontrarse los archivos RAW que vayamos a fusionar.

A priori Zero Noise ofrece la posibilidad de abrir los formatos RAW más típicos (Canon, Nikon, Sony, Olympus, Pentax y DNG), pero en realidad puede procesar todos aquellos soportados por DCRAW los cuales se detallan en este listado de formatos, permanentemente actualizado y contabilizando cerca de 300 modelos de cámaras. Si el formato RAW de la cámara no estuviera entre los primeros bastará elegir la opción *.* y se mostrarán todos los archivos del directorio con lo que no será problema elegir cualquier otro formato RAW.

Seleccionado el archivo se hará un revelado rápido del mismo y se mostrará en pantalla. Si el RAW escogido estuviera demasiado subexpuesto o sobreexpuesto, no habría problema alguno en escoger otro ya que dispondremos de varios:


Fig. 3 Pantalla de Zero Noise tras especificar ruta a archivos RAW.


Por una limitación histórica un tanto absurda de MS-DOS en cuanto a la longitud máxima de sus comandos de línea (que Zero Noise usa internamente), los nombres de los archivos RAW no habrán de ser muy largos, y sobre todo deberemos guardarlos en un directorio lo más cercano posible a una unidad de disco raíz de modo que resulte una ruta corta. Por ejemplo 'C:\r\' sería ideal.

Este problema está en vías de solucionarse y en cualquier caso el programa avisará si sobrepasamos la longitud máxima para que cambiemos la ruta o nombres de archivos para reducirlos.

Para aprovechar al máximo el área de visualización Zero Noise ignora la información EXIF del arhivo RAW en cuanto a la orientación de la captura mostrando siempre las imágenes en formato horizontal. Las imágenes finales resultantes sí que se generarán sin embargo correctamente "verticalizadas" en el caso de capturas donde la cámara fue girada.


AJUSTE DEL BALANCE DE BLANCOS

DCRAW propociona un ajuste del balance de blancos en los mismos términos de la implementación final del mismo, es decir en forma de 3 factores multiplicadores lineales para cada canal RGB. Si bien puede operarse con ellos en Zero Noise resultan poco intuitivos por lo que es mejor realizar el balance de blancos mediante la selección de un parche rectangular o circular sobre un área neutra de la imagen a elección del usuario.

Para ello no habrá más que hacer click sobre la escena con el ratón y arrastrar hasta obtener un rectángulo o círculo en una localización y tamaño adecuados.

Es una herramienta similar al cuentagotas de ACR pero más potente ya que permite seleccionar exactamente el área de la imagen que determinará el cálculo del balance de blancos que después se aplicará a toda la imagen. Seleccionar toda la imagen bajo dicho parche será equivalente al habitualmente denominado balance de blancos automático.

Para calcular el balance de blancos sobre la región escogida, Zero Noise pondera con mayor peso las zonas de más luminosidad que son visualmente más evidentes. De ese modo se logra que el balance de blancos esté optimizado de acuerdo a nuestra percepción visual.

Una vez satisfechos con el rectángulo escogido, pulsaremos 'Calculate WB' y en breves instantes la imagen alcanzará el aspecto final del balance de blancos escogido:


Fig. 4 Ajuste del balance de blancos con parche rectangular.


En esta ocasión hemos balanceado un promedio de toda la pared blanca del fondo. Si quisiéramos ir un poco más allá podríamos desear eliminar las dominantes cálidas que provocan los focos de tungsteno. Para ello encontramos más adecuado pasar mediante la opción '[ ]' a un parche de forma circular con el que escogeremos el área de proyección de luz de uno de los focos:


Fig. 5 Ajuste del balance de blancos con parche circular.


La diferencia es sutil pero existe:
  • Al emplear el parche horizontal los multiplicadores de los canales rojo y azul fueron respectivamente 1,125 y 2,991, calculados para llevar en media a un gris neutro la zona seleccionada. En esta imagen puede observarse como las zonas más cercanas a los focos de tungsteno del techo presentaban así una ligera dominante cálida.

  • En cambio al usar el parche circular sobre el área de proyección de uno de estos focos, los multiplicadores obtenidos fueron 1,082 y 3,106, es decir algo menos de rojo y algo más de azul que en el cálculo anterior. Esto provocó que las áreas iluminadas por los focos quedasen como gris neutro apareciendo a cambio una cierta componente azulada en el resto de la pared blanca.

Fig. 6 Diferencia en el balance de blancos según el parche escogido.


El balance de blancos perfecto no existe. Como operación global de escalado de los tres canales RGB no logrará nunca que aparezcan en tonos gris neutro áreas de la escena bañadas por dominantes de distinta naturaleza.

Por lo tanto, en imágenes como ésta estamos sujetos a un compromiso donde deberemos elegir el balance de blancos óptimo de acuerdo a nuestras necesidades o gustos. Para realizar un ajuste más fino habrá que recurrir a un tratamiento zonal posterior de la imagen.

Nos quedamos finalmente con el primer balance de blancos calculado, el cual proporciona un tono gris neutro en la mayor parte de superficie de las paredes blancas permitiendo una ligera dominante más cálida en las zonas próximas a la iluminación artificial.

Si no se dispone de ninguna zona neutra en la escena, o el resultado obtenido en ella no es el deseado, puede obtenerse un balance de blancos automático seleccionando un parche de ajuste que cubra la totalidad de la imagen. Esto es en mayor o menor medida lo que hacen los reveladores RAW y las cámaras cuando se selecciona el balance de blancos automático, llevando la escena en promedio a un tono neutro.

Zero Noise también permite jugar con los habituales preajustes de balance de blancos (en este caso adaptados a la Canon 350D) entre los que se incluye un revelado neutro, es decir, sin aplicar ningún tipo de balance de blancos, opción de la que no disponen los reveladores comerciales. Estos preajustes pueden ser un buen punto de partida para proceder a un refinado posterior tanteando con los multiplicadores RGB.

También se puede utilizar el balance de blancos ajustado en la cámara, si bien hemos de tener la certeza de que toda la serie fue tomada exactamente con el mismo ajuste. Por eso el modo de balance de blancos 'Auto' de la cámara no es recomendable pues aunque ligeramente puede variar de una toma a otra.

Si no se tiene la garantía de que el balance es idéntico en todas las capturas, pueden obtenerse con DCRAW los multiplicadores del balance de blancos de una de ellas y aplicarlos a toda la serie en la fusión.

Está planeado implementar el balance de blancos en términos de temperatura de color y matiz como es habitual encontrar en los reveladores comerciales.


OTROS PARÁMETROS DE REVELADO

Una vez que hemos elegido el balance de blancos, ya solo quedan tres trámites antes de revelar que son:
  • Establecer si procede el nivel de saturación de nuestra cámara
  • Escoger el algoritmo de interpolación de Bayer
  • Elegir el perfil de color de salida al que se convertirá la imagen
El nivel de saturación es un valor estático para cada modelo de cámara y los reveladores RAW deben conocerlo. Si no se especifica nada en Zero Noise, se usará el nivel por defecto que tenga DCRAW para el modelo concreto de cámara. En general DCRAW conoce el punto de saturación correcto de la mayoría de máquinas pero para algunas cámaras el valor de DCRAW es erróneo.

En la versión v1.05 de Zero Noise se incluyen niveles de saturación RAW mejorados para las siguientes cámaras: Canon 30D, 40D, 50D y Olympus E-510. Si se tuviera una de ellas bastará escogerla en el desplegable existente y el revelado se llevará a cabo con un valor más correcto.

Si en nuestra cámara estuviéramos experimentando artefactos como saltos de exposición o tonos magenta en las altas luces, posiblemente se deba a un incorrecto nivel de saturación RAW. Se explica cómo calcular el nivel ideal en el tutorial El nivel de saturación del RAW. Obtenido el valor bastará introducirlo manualmente en la casilla correspondiente de Zero Noise.

Respecto al algoritmo de interpolación, en general AHD será el que mejor funcione si bien por las particularidades de las cámaras Fuji el autor de DCRAW afirma que PPG puede dar un mejor resultado en ellas.

En cuanto a la elección del perfil de color de salida, es importante notar que Zero Noise es un programa cuyo display no tiene pretensiones de gestión de color lo que provoca que solo cuando tengamos seleccionado sRGB el aspecto mostrado por la imagen será el correcto. En cuanto cambiemos a otro espacio de color Zero Noise mostrará la imagen con colores erróneos pues estará asignando sRGB a una imagen convertida a otro perfil de color.

A efectos prácticos este hecho es irrelevante ya que la imagen que se genera es siempre correcta y por tanto al cargarla en PS y asignarla al perfil de color correspondinete, se mostrarán los colores tal como los veíamos con sRGB seleccionado. Bastará tener elegido sRGB durante el afinamiento del balance de blancos deseado, y una vez estemos contentos elegir el perfil de color de salida como paso previo al revelado.

Nótese como DCRAW nos permite obtener una salida sin gestión de color ('None'), es decir en el espacio de color de la propia cámara sin conversión alguna, así como en espacios no habituales en otros reveladores como Wide Gamut ('Wide Gamut') y CIE XYZ ('XYZ'). Por supuesto también están disponibles los más clásicos sRGB, Adobe RGB y ProPhoto RGB.

Una última funcionalidad del revelado es la ventana de usuario DCRAW, una casilla en la parte inferior donde podremos escribir cualquier comando soportado por DCRAW el cual será añadido a la cadena de revelado enviada por Zero Noise a DCRAW.

El uso de esta posibilidad está restringido a quienes tengan un conocimiento profundo de cómo funciona DCRAW, ya que no se realiza ninguna comprobación sintáctica ni análisis de compatibilidad con los parámetros de revelado ya escogidos.


PRESERVACIÓN DE ALTAS LUCES

Con la opción de preservación de altas luces 'HL' (High Light), podemos forzar que el revelado del RAW menos expuesto se lleve a cabo con un balance de blancos conservador, dando lugar a que no se pierda absolutamente ninguna información de altas luces que tuvieran los archivos originales.

El revelado será así equivalente al que obtendríamos por ejemplo en ACR, aplicando una corrección de exposición a la baja para "recuperar" todos los posible detalles de altas luces. Ya se explicó en el artículo Corrección exposición RAW que en realidad no se trata de una recuperación de información sino simplemente de preservar lo que ya tenía el archivo RAW.

Esta opción está indicada si incluso en la toma menos expuesta la exposición resultó excesiva, llegando a quemar información de altas luces que deseamos preservar al máximo. Activarla supondrá un menor nivel de exposición de la imagen final, lo que puede hacer más incómodo el mapeo de tonos; si bien parte de esta subexposición adicional podrá eliminarse con la opción de derecheo del histograma ('ETTR') que veremos más adelante.

La cantidad de información que podemos esperar dejar de perder oscilaría entre 0,5 y 1 paso de diafragma, como puede verse en el siguiente ejemplo donde se cometió un error considerable de sobreexposición en la toma menos expuesta (realmente no fue así, simplemente he descartado la toma menos expuesta en una serie correcta de 3 capturas):


Fig. 7 Preservación de altas luces con la opción 'HL'.


~~~

Ajustadas todas estas opciones pulsaremos la opción 'Develop' y Zero Noise invocará a DCRAW para llevar a cabo el revelado de todos los archivos RAW seleccionados. Nos preguntará si queremos ver el progreso del revelado, si respondemos que sí (que es lo recomendable para poder seguir la pista del proceso) se visualizará la siguiente ventana de MS-DOS mostrando la actividad de DCRAW:


Fig. 8 Revelado de los arhivos RAW por DCRAW.


El revelado tardará más o menos en función de la potencia de la máquina y del tamaño de los archivos RAW. No deberemos tocar nada hasta que DCRAW haya finalizado su trabajo, lo cual sabremos porque la anterior ventana negra se cerrará y aparecerá el mensaje 'DONE' en la información de status.

Podrá comprobarse que se han generado tantos archivos TIFF en la ruta de los RAW originales como archivos RAW participasen en el revelado. Será éste el momento de proceder a su edición si así fuera necesario para realizar ajustes tales como recortes, alineamientos, descartes,... La única condición que habrá de cumplirse es que se mantengan los nombres originales de los archivos así como que todos tengan el mismo tamaño en píxeles (aunque éste puede ser diferente al original).

NOTA: si al realizar este paso la ventana de DCRAW se abriera y cerrara rápidamente, y el programa quedara luego indefinidamente en estado de espera, con toda probabilidad se trataría de un problema con la versión de DCRAW empleada, típicamente en Windows Vista ya que requiere una compilación específica. Consultar la sección de 'PROBLEMAS DE FUNCIONAMIENTO' para solucionarlo.


2. CÁLCULO DE EXPOSICIONES RELATIVAS

En esta segunda etapa Zero Noise va a realizar el cálculo de las exposiciones relativas que separan unas capturas de otras. A diferencia de otras aplicaciones que se basan en los datos de exposición contenidos en la información EXIF como Photomatix o la fusión para HDR de Photoshop, Zero Noise estima matemáticamente la diferencia de exposición entre las distintas imágenes dando lugar a un cálculo más preciso.

Hacerlo así es necesario dada la filosofía del programa de no realizar una fusión progresiva de las imágenes, que no resultaría óptima de cara a la reducción de ruido y además podría dar lugar a pérdidas de nitidez.

Esta forma de operar nos inmuniza frente a los errores introducidos por tolerancias en el obturador o tiempos de exposición de nuestra máquina, o frente a desvanecimientos globales de la exposición ajenos a los ajustes de la cámara como por ejemplo si estuvieran pasando nubes a la hora de realizar las capturas.

En esta etapa se procederá además a la carga de todos los archivos TIFF generados en la etapa anterior y que por razones de eficiencia no se liberarán de la memoria hasta que se repita la etapa anterior de revelado o se salga del programa.

El usuario solo tendrá que elegir el algoritmo de cálculo de las exposiciones relativas existiendo dos posibilidades: cálculo por media y cálculo por mediana. Para elegir uno u otro bastará pulsar sobre el botón auxiliar que mostrará una 'A' en caso de tener elegido el cálculo por media, y una 'M' para el cálculo por mediana:
  • El cálculo por media es aproximadamente el doble de rápido que el de mediana y resultará suficiente en la mayoría de ocasiones
  • El cálculo por mediana dará lugar a unos valores más precisos en situaciones difíciles en que la escena cuente con muchos elementos en movimiento o alinealidades del sensor
Elegido el algoritmo bastará pulsar 'Calc EV' para que el programa lea todos los archivos TIFF y calcule las diferencias de exposición. Como paso previo el programa calculará las exposiciones absolutas de los archivos TIFF y los ordenará de menor a mayor exposición por lo que estos no necesitarán estar previamente ordenados.

Tras la realización de todos los cálculos podremos conocer las relaciones de exposición de cada archivo respecto a la imagen menos expuesta (referida como 0EV):

   Loading 3 TIFF files...
   3 TIFF files loaded

   Calculating absolute exposure...
   hdr1.tiff: 5,1%
   hdr2.tiff: 16,9%
   hdr3.tiff: 49,1%
   Sorting and reloading...

   Calculating relative exposure...
   hdr1.tiff: 1 (0EV)
   hdr2.tiff: 3,81 (+1,93EV)
   hdr3.tiff: 15,35 (+3,94EV)

   Saving exposure histogram as His_130627.gif...
   DONE

Podemos ver como pese a que se hizo un ahorquillado con 2 pasos de diferencia entre toma y toma, las primeras dos capturas no estaban separadas exactamente 2EV sino 1,93EV en un cálculo más exacto.

Un salto de 0,07EV puede no parecer importante, pero en una fusión no progresiva puede llegar a afectar al resultado. Las siguientes dos imágenes muestran la fusión de las imágenes considerando una corrección de la exposición por 1,93EV y otra forzada a una corrección de 2EV, aplicando una curva en las versiones inferiores para resaltar la diferencia:


Fig. 9 Recorte 100% corrección de exposición Zero Noise (izq.) vs forzada (der.).


Queda patente cómo un cálculo incorrecto de las exposiciones relativas delata la transición entre tomas. En el siguiente apartado veremos precisamente como ese salto corresponde a una frontera entre zonas en el mapa de fusión.

Si se ha escogido un cálculo de exposiciones por mediana, Zero Noise guardará en un archivo de imagen GIF los histogramas de exposición que ha requerido generar para realizar el cálculo. El archivo constará de tantos histogramas como imágenes hayan intervenido en la fusión menos uno, ya que son gráficas que muestran las exposiciones relativas de todas las posibles parejas de imágenes ordenadas de menor a mayor exposicion.

Así el primer histograma muestra la sobreexposición de la segunda imagen respecto a la primera y el segundo muestra la de la tercera imagen respecto a la segunda:


Fig. 10 Histogramas de exposición relativa y cálculo de mediana.


En rojo se indica la mediana en las gráficas así como el valor para la corrección de exposiciones. Puede verse que si bien la relación de exposiciones estaba muy próxima a los 2 pasos se produjeron ligeras desviaciones que Zero Noise tuvo en cuenta. A la vista del primer histograma queda patente porqué la corrección por 2EV resultó poco precisa.

Las distribuciones gaussianas con una varianza considerable se deben fundamentalmente al ruido e intuyo que al hecho de estar comparando valores de niveles interpolados junto a niveles captados. El cálculo de la mediana permite obtener un valor óptimo igual o muy próximo al máximo de la campana que será el más idóneo para realizar la fusión de las imágenes.

Puede verse aquí otro ejemplo de histogramas, en este caso se trata de cuatro gráficas por venir de una serie de cinco capturas separadas 3 pasos de diafragma. De nuevo se producen ciertas desviaciones en las exposiciones relativas respecto al valor nominal.

Si tras realizar el cálculo de exposiciones relativas por mediana abrimos los histogramas y nos encontramos con unas gráficas que no tienen la forma de la típica campana de Gauss, sino que por el contrario aparecen asimétricos, deformados o incluso divididos en varias pseudo campanas, con toda probabilidad las imágenes de que partíamos estaban fuertemente desalineadas.

Cuando esto ocurre la aparición de problemas en las etapas siguientes está prácticamente garantizada, por lo que es mejor no seguir y tratar antes de solucionar el problema en las capturas alineándolas manualmente. El único requisito a cumplir es que los archivos TIFF sigan teniendo exactamente los mismos nombres tras ser corregidos, y todos ellos tengan el mismo tamaño en píxeles (aunque éste puede ser diferente del original).


MEDIA vs MEDIANA

En escenas con elementos en movimiento es cuando las exposiciones relativas píxel a píxel entre las distintas imágenes pueden alcanzar valores más desviados. Es en esos casos donde usar el cálculo por mediana se hace casi imprescindible.

Por ejemplo en tres tomas separadas 2 pasos de diafragma sobre un árbol con muchas ramas en movimiento se obtuvieron los siguientes histogramas, que gracias al cálculo por mediana arrojaron unos cálculos de exposición muy precisos de 2,00EV y 1,99EV pese a la gran dispersión del histograma:


Fig. 11 Histogramas de exposición relativa en escena con sujetos en movimiento.


Sobre las mismas imágenes el cálculo por media obtuvo valores de 1,50EV y 1,66EV:

   Calculating relative exposure...
   _MG_2746.tiff: 1 (0EV)
   _MG_2745.tiff: 2,82 (+1,5EV)
   _MG_2747.tiff: 8,96 (+3,16EV)
   DONE

que en caso de utilizarse para realizar la fusión habrían supuesto un error muy importante.


3. GENERACIÓN DEL MAPA DE FUSIÓN

El mapa de fusión es un archivo de imagen que representa en tonos de gris la toma de la cual se obtendrá cada uno de los píxeles que formarán la imagen final. En esta etapa la finalidad es generar dicho archivo de imagen en formato GIF de acuerdo a una serie de parámetros configurables.

Las altas luces de la escena presentarán en el mapa de fusión los niveles de gris más altos empezando por el blanco puro mientras que las sombras serán representadas por los grises más oscuros comenzando por el negro.

Eso implica que en este mapa se mostrarán en tonos más claros las partes de la imagen final que provendrán de las capturas menos expuestas y viceversa, cuanto más oscuro sea un tono representará píxeles provenientes de las tomas de más exposición.

Se muestran a continuación los valores de gris exactos empleados en generar los mapas de fusión en función del número de imágenes a fusionar:


Fig. 12 Tonos grises empleados en el mapa de fusión.


Así el mapa de fusión básico de la escena que hemos venido usando como ejemplo y capturada con tres tomas es el siguiente:


Fig. 13 Mapa de fusión de la escena ejemplo.


Mirando el mapa podemos darnos cuenta de dos cosas:
  • La mayor parte de la imagen final proviene de la toma más expuesta (mostrada en negro en el mapa), lo cual nos interesa ya que ésta es la imagen con mejor relación señal a ruido. Del mismo modo la imagen que menos aportará al resultado final será la toma menos expuesta (en blanco), a la que se recurre solo en las altas luces donde las otras capturas están ya total o parcialmente saturadas.
  • En segundo lugar también es interesante notar cómo las diferentes zonas del mapa presentan unas fronteras bastante bien definidas, es decir que las zonas tomadas de una u otra imagen se reparten a modo de "islas" con un contorno claro de acuerdo a la luminosidad de las distintas partes de la escena. Esto será importante para que aplicar una posible fusión progresiva en dichas fronteras no tenga una gran incidencia en la imagen global.
Los parámetros a elegir para obtener el mapa de fusión son determinantes en la generación del mismo y son tres:


UMBRALES DE FUSIÓN

Se establece en % el umbral lineal del rango dinámico de cada canal del sensor, refiriéndonos al 100% como la saturación, dentro del cual vamos a considerar válido un determinado canal. Un píxel de una imagen se considerará apto cuando sus tres canales cumplan simultáneamente con la condición umbral.

Idealmente, por linealidad del sensor, este umbral podría ser escogido tan alto como quisiéramos justo antes de la saturación del sensor. Y un valor lo mayor posible es lo más óptimo para que el mayor número de píxeles provenga de tomas muy expuestas que serán las que proporcionen una mejor relación señal a ruido.

La realidad hace conveniente sin embargo rebajar un poco nuestras pretensiones para este parámetro:
  • Por un lado en la zona alta del rango dinámico es lógico que algunos sensores empiecen a mostrar ciertas alinealidades.
  • Por otra parte Zero Noise trabaja con imágenes reveladas donde solo una tercera parte de los niveles fueron captados por el sensor siendo los demás interpolados. Esto puede provocar que un nivel aparentemente lo bastante bajo para ser considerado correcto provenga de una interpolación donde participaran niveles circundantes saturados, con lo que el valor interpolado no será del todo correcto.
Un valor de 90% puede ser un buen punto de partida, no siendo recomendable sobrepasarlo. Sí podremos reducirlo, y el efecto de rebajar el nivel umbral será que algunos píxeles pasarán a ser tomados de tomas menos expuestas que antes de hacerlo, y que por lo tanto presentarán una peor relación señal a ruido. A continuación se muestra el mapa de fusión para dos valores de umbral:


Fig. 14 Mapa de fusión para diferentes valores umbral.


En zonas de bajo gradiente de luminosidad como paredes y techo, un cambio pequeño del umbral puede dar lugar a que grandes superficies cambien en el mapa de fusión. En cambio en zonas donde el gradiente de luminosidad es grande el efecto de un cambio de umbral es lógicamente más reducido.

Esto ha de hacernos concluir que el tipo de escenas donde este parámetro pueda resultar más determinante serán aquellas con grandes supeficies lisas donde se de un degradado relativamente suave de la luminosidad.


ANTI GHOSTING

Aunque las imágenes estén perfectamente alineadas, si en nuestra escena hay elementos en movimiento que presenten diferencias de luminosidad notables, el mapa de fusión aparecerá muy fragmentado dando lugar a artefactos extraños o "fantasmas" en la imagen final (ghost=fantasma).

Para minimizar este efecto he introducido un mecanismo simple de anti ghosting consistente en modificar el mapa de fusión de modo que se asegure que en un radio configurable entorno a cada píxel, no se obtenga nunca la imagen final de una captura con más exposición que la de la toma de la que era obtenido dicho píxel en el mapa básico inicial. Será este radio en píxeles el parámetro a ajustar por el usuario donde un radio igual a 0 implica no aplicar anti ghosting.

La contrapartida será admitir una peor relación señal a ruido en las zonas afectadas por el anti ghosting por lo que habrá un compromiso entre la eficacia a la hora de reducir este tipo de artefactos y el nivel de ruido logrado en la zona.

A continuación se muestra cómo queda afectado el mapa de fusión al aplicar un anti ghosting de 7 píxeles de radio:


Fig. 15 Recorte al 100% de mapa de fusión con anti ghosting.


Puede verse como las zonas donde el mapa de fusión aparecía fragmentado se agrupan en un único tono. Esto en una situación donde la fragmentación viniera provocada por el movimiento de elementos de la escena significará que vamos a tomar todos los píxeles de la zona de una misma imagen minimizando los artefactos que se ocasionaban al tomar píxeles alternativamente de diferentes capturas.

El tiempo de procesado para generar el mapa de fusión aumenta exponencialmente con el radio fijado por lo que deberemos mantener éste tan bajo como sea posible.

El anti ghosting puede resultar útil no solamente cuando aparecen elementos en movimiento sino también en los bordes de objetos si se da un mal alineamiento de las imágenes.

Cuando se aplica anti ghosting es generalmente conveniente permitir al mismo tiempo una cierta progresividad de la unión en los bordes, cosa que lograremos con la fusión progresiva que se ve en el siguiente apartado.


FUSIÓN PROGRESIVA (PROGRESSIVE BLENDING)

Se ha hecho incapié a lo largo de todo el tutorial en que una peculiaridad que hace óptimo a Zero Noise de cara a lograr la máxima reducción de ruido y no provocar pérdidas de nitidez, es el hecho de no realizar una fusión progresiva, o lo que es lo mismo, hacer que cada píxel de la imagen final venga de una y solo una de las imágenes de partida.

Sin embargo en ocasiones puede ser conveniente o hasta necesario permitir una cierta progresividad en las zonas de unión entre las diferentes capturas. La fusión progresiva está indicada para suavizar las uniones entre zonas tomadas de diferentes imágenes en las siguientes situaciones:
  • Cálculo impreciso de la exposición relativa
  • Escenas con elementos en movimiento
  • Mal alineamiento de las imágenes
  • Sensores no completamente lineales
Por la forma en que está planteado el funcionamiento de Zero Noise solo puede garantizarse que no se pierde información en las altas luces si el radio de fusión progresiva no sobrepasa el radio de anti ghosting, por ello al hacer uso de la fusión progresiva se incrementará el radio de anti ghosting por el de fusión progresiva. Este proceso es transparente al usuario pero implicará una menor velocidad de proceso cuando se simultanean la fusión progresiva y el anti ghosting.

La fusión progresiva introducirá en cualquier caso una progresividad contenida, restringida a una franja generalmente estrecha configurable por el usuario en forma de radio en píxeles, y que simplemente aparecerá en el borde de las "islas" del mapa de fusión.

Para un radio R de fusión progresiva, las fronteras entre dos regiones cualesquiera del mapa de fusión darán lugar a un degradado de tonos grises de 2 * R + 1 píxeles, es decir el diámetro del círculo establecido. Siguiendo la escena ejemplo anterior una fusión progresiva con radio 7 píxeles da lugar a un degradado de 15 píxeles en todas las regiones frontera:


Fig. 16 Recorte al 100% de mapa de fusión con fusión progresiva.


Incluso aplicando fusión progresiva nos mantenemos fieles a la filosofía de Zero Noise de obtener el mayor número posible de píxeles de la imagen final de una sola imagen de partida ya que para radios medianamente contenidos la progresividad solo afectará a un pequeño porcentaje del total de la imagen.

Desde la versión v1.02, cuando en el mapa de fusión usado se ha introducido cierta progresividad, Zero Noise al realizar la fusión final generará también un archivo GIF adicional indicando las zonas donde ésta se produjo. En esencia consiste en una imagen igual al mapa de fusión usado pero marcando en rojo (255,0,0) las zonas que se obtuvieron de una sola imagen origen, de modo que puede usarse en PS para realizar selecciones precisas.

Así se identificarán claramente las únicas áreas en que pudiera darse cierta pérdida de nitidez o artefactos por mal alineamiento, así como una mayor presencia de ruido debido a la mezcla progresiva. El archivo tendrá el mismo nombre que el mapa de fusión con la cadena "PB" añadida al final y presentará el siguiente aspecto:


Fig. 17 Mapa generado adicionalmente identificando zonas con fusión progresiva.



EDICIÓN MANUAL DEL MAPA DE FUSIÓN

Como ya se ha comentado el mapa de fusión consiste en un gráfico en tonos grises que Zero Noise guardará en formato GIF en la misma ruta que se encuentran los archivos RAW y los ficheros TIFF generados.

En general no será necesario editarlo en absoluto, si bien puede resultar útil cargarlo en Photoshop para tener una idea de por donde irán los tiros de la fusión. De hacer tal cosa veremos que se abre en PS con una proporción de píxeles incorrecta. Para corregirla bastará hacer 'Imagen' → 'Proporción de píxeles' → 'Cuadrada'.

Los motivos que pueden llevar a tener que editar manualmente el mapa de fusión incluyen dos casos:
  • Escenas con elementos en movimiento que hayan provocado la aparición de ghosting en alguna zona de la imagen: se solucionarán forzando en el mapa de fusión que el área afectada provenga de una sola de las tomas.
  • Cambios en la luminosidad de la escena entre tomas o alinealidades del sensor que han terminado produciendo saltos visibles en la imagen: se solucionarán introduciendo una progresividad fuerte en el mapa de fusión.
En ambos casos será conveniente editar el mapa de fusión introduciendo degradados de gris intermedios a los tonos preexistentes. Para ello tendremos primero que hacer 'Imagen' → 'Modo' → 'Color RGB'.

A la hora de guardar el archivo tras editar el mapa de fusión, bastará con hacerlo en formato GIF. No habrá ningún problema con la paleta de colores ya que el formato GIF soporta sin pérdidas los 256 tonos de gris que podamos llegar a necesitar tras cualquier procesado incluso en el caso más exigente.


ESCENAS CON ELEMENTOS EN MOVIMIENTO

A continuación veremos cómo solventar casos reales de escenas con partes en movimiento actuando sobre el mapa de fusión. Casos típicos en que será probable tener que tomar medidas de este tipo serían:
  • Elementos sometidos a la acción del viento: hojas de árboles y plantas, agua del mar, humo,...
  • Agua en movimiento: ríos, cataratas y saltos de agua, fuentes,...
  • Personajes inesperados que se cruzan en la escena al realizar la toma: turistas, viandantes, pájaros, vehículos,...
El primer ejemplo que veremos se trata de una escena con ramas de árbol mecidas por el viento que generaron múltiples duplicados y artefactos extraños, y lo resolveremos con anti ghosting automático.

Aplicamos un radio de anti ghosting en Zero Noise con el que se reducen mucho los artefactos que aparecen en la fusión básica al conformarse amplias áreas provenientes de una misma imagena, a costa de introducir algo más de ruido.

Con un poco de fusión progresiva logramos además que apenas se note la frontera entre las zonas tomadas de una o de otra imagen.


Fig. 18 Antes/después anti ghosting automático en escena con movimiento (pasar ratón).


Aunque es cómodo, hay que decir que el anti ghosting automático no siempre es idóneo cuando nos enfrentemos a estas escenas con partes móviles. El motivo aparte de que se incrementa notablemente el tiempo de cálculo, es que la reducción de ruido puede verse afectada en toda la imagen en general, además de que no se garantiza solucionar el problema del movimiento en todos los casos.

Por ello vamos a ver un ejemplo de escena con un personaje en movimiento que solucionaremos esta vez con un anti ghosting manual, editando directamente el mapa de fusión para hacer que la imagen final se tome de una misma toma original en la zona problemática.

Para lograrlo no hay más que pintar esta zona con un único tono gris en el mapa de fusión, idealmente el correspondiente a la toma más expuesta de las que no resultaran quemadas en el área. Es decir que pintaremos con un gris lo más oscuro posible. Podemos usar la herramienta cuentagotas para capturar el tono de gris exacto o directamente utilizar los valores que vimos en la Fig. 11.

En este caso se trataba de una escena capturada con dos tomas donde la fusión normal produce extraños en el maletín y piernas del personaje, así como en su sombra proyectada en la pared. No tendremos más opción por lo tanto que pintar todas las áreas afectadas de color blanco en el mapa de fusión para garantizar que se toman de la toma menos expuesta.

El resultado aunque presenta lógicamente una mayor cantidad de ruido en las áreas corregidas, solventa perfectamente el problema del sujeto en movimiento sin afectar al resto de la imagen:


Fig. 19 Antes/después anti ghosting manual en escena con movimiento (pasar ratón).


Podría pensarse que habríamos obtenido los mismos resultados usando directamente toda la toma menos expuesta en cada uno de los ejemplos, pero como es lógico las escenas eran de alto rango dinámico y dicha toma presentaba mucho ruido en zonas de sombra cuando la imagen producida por Zero Noise estaba mucho más utilizable en ellas.

De ese modo la imagen proporcionada por Zero Noise con anti ghosting automático o preferiblemente manual, resulta la mejor de las posibles: mucho menos ruido que la toma original menos expuesta en las sombras, altas luces preservadas y mínimos o nulos artefactos en las zonas con partes en movimiento:


Fig. 20 Comparación de la fusión de Zero Noise con las tomas individuales.


Vamos a comparar la imagen completa con anti ghosting manual con el resultado que producen el HDR de Photoshop y Photomatix. Ésta es la imagen que se obtuvo tras mapear los tonos en la salida de Zero Noise:


Fig. 21 Fusión con Zero Noise.


Empleando ahora la fusión HDR de Photoshop con los mismos dos archivos RAW, se hace imposible evitar el ghosting y además aparecen dominantes erróneas en zonas considerables de la imagen, posiblemente debido a que habiendo entre los dos RAW una exposición relativa de 4,36EV, Photoshop hizo un cálculo sensiblemente erróneo de 4,26EV:


Fig. 22 Fusión con el HDR de Photoshop.


Si empleamos Photomatix, aparte del inevitable ghosting el programa directamente no es capaz de fusionar archivos con tanta diferencia de exposición, produciendo un mapeo de tonos no solo irreal como es habitual, sino en este caso completamente erróneo:


Fig. 23 Fusión con Photomatix.


Para el que desee hacer sus propias pruebas, los dos archivos RAW usados en la fusión pueden bajarse de los siguiente enlaces: mov1.cr2 y mov2.cr2.


CAMBIOS EN LA LUMINOSIDAD DE LA ESCENA ENTRE TOMAS O ALINEALIDADES DEL SENSOR

Respecto a la solución del problema de saltos de luminosidad visibles, como para valores de radio de anti ghosting y fusión progresiva grandes (>15 píxeles) los cálculos del mapa de fusión se ralentizan muchísimo en Zero Noise, es conveniente en estos casos no aplicar ningún radio de anti ghosting ni fusión progresiva y, ajustando un umbral de fusión más conservador (por ejemplo del 50%), obtener la progresividad directamente con un desenfoque gaussiano sobre el mapa de fusión.

El siguiente ejemplo muestra un caso de este tipo que, siendo muy poco habituales (probablemente alguien encendió o apagó alguna luz en la oficina mientras se hacían las capturas, o algo se movió alterando la iluminación localmente), no tienen otra solución posible que introducir una progresividad considerable.

Esto provocará que la mejora en ruido no sea tan óptima y una posible pérdida de nitidez si hay desalineamiento, pero salvará la escena y en cualquier caso supondrá una mejora en ruido respecto a hacer solo una toma. Pasar el ratón sobre la imagen para ver el efecto del desenfoque gaussiano, observando cómo desaparecen las transiciones visibles:


Fig. 24 Antes/después de desenfoque gaussiano sobre mapa de fusión (pasar ratón).


La anomalía ya se presagiaba al ver el histograma de exposición relativa, donde la deformidad nos indica claramente que hay alguna inconsistencia en la exposición relativa entre la toma más expuesta y la intermedia:


Fig. 25 Histogramas de exposición relativa en escena con alteraciones de luminosidad.


Está por comprobar, pero parece que existen sensores cuyo comportamiento no es tan lineal como sería deseable. En concreto estamos analizando anomalías surgidas en un sensor Panasonic de una cámara Olympus que presenta problemas de este tipo sin otra explicación que la posible falta de linealidad del sensor.


4. FUSIÓN DE LAS IMÁGENES

En este apartado procederemos a explicar cómo realizar la fusión de las imágenes generadas, y cómo abrir el archivo TIFF de 16 bits resultante para su edición en Photoshop.

Necesitaremos especificar tres parámetros ahora: el mapa de fusión a utilizar, el control optativo de derecheo del histograma y la compensación gamma a aplicar a la imagen de salida.

Tras generar el mapa de fusión en el apartado anterior, la ruta de éste será directamente copiada en el menú de fusión. Sin embargo podemos cambiarlo en cuanto queramos con solo especificar con la opción '...' del menú de fusión otro mapa de fusión válido en formato GIF.

La opción de derecheo del histograma se ve en detalle en el apartado siguiente.

Por último la compensación gamma de salida estándar de cada perfil de color se ajustó automáticamente cuando éste se eligió en el menú de revelado, pero nada nos impide cambiarla de acuerdo a nuestras necesidades, por ejemplo para obtener una salida lineal bastará establecer un valor de 1,0 en la compensación gamma. Se habla más en detalle sobre este aspecto en un apartado posterior.

Tanto si la imagen formada es en color como blanco y negro, en esta etapa se genera el mapa indicador de fusión progresiva del que ya hablamos al explicar dicho parámetro.

NOTA: si para la fusión se han empleado más de tres archivos fuente, en la versión Windows de Zero Noise la imagen final aparecerá marcada con dos aspas rojas pues la intención es migrar todas las ideas desarrolladas a un proyecto más complejo reescrito íntegramente en C++, y con la posibilidad de obtener una salida en formato DNG sin revelar. Para conocer más sobre esta propuesta puede consultarse el artículo RAW virtual con cero ruido.

La versión Linux sin embargo no añade ninguna marca de agua cuando se realiza la fusión de más de dos archivos RAW.


DERECHEO DEL HISTOGRAMA

La opción 'ETTR' (Expose to the right), realiza un derecheo del histograma de la imagen final. Dicho ajuste se realiza mediante un aumento de la exposición que no altera los tonos ni el contraste de la imagen, y obviamente solo se efectúa cuando el histograma por defecto aún no llegue al extremo derecho.

Es una opción interesante para aprovechar al límite la riqueza tonal que nos brinda el formato TIFF de 16 bits de salida, y también para que la imagen resultante esté lo menos subexpuesta posible. No afecta para nada al ruido, no confundir este derecheo con el que podamos hacer con la cámara, donde sí se da una mejora en ruido.

Es recomendable usarla si la captura menos expuesta del conjunto de capturas quedó muy subexpuesta y/o si se ha activado la recuperación de altas luces (opción 'HL'), para eliminar la porción superior del histograma que ésta deja vacía.

El siguiente ejemplo muestra la diferencia que se obtiene en el histograma de salida en caso de activar o no la opción 'ETTR'. Es un caso extremo pues a una clara subexposición de la toma menos expuesta se unió el empleo de la opción de recuperación de altas luces. El ajuste 'ETTR' corrigió la exposición por 2,67EV que tuvieron gran impacto en el histograma y apariencia de la imagen resultante:


Fig. 26 Derecheo del histograma con la opción 'ETTR'.


Este derecheo no es un ajuste final, sino que se realiza de manera integrada con las correcciones de exposición y compensación gamma, todo ello en un solo paso en coma flotante de máxima precisión para evitar cualquier posible error de redondeo. Es por lo tanto una medida potente para maximizar la calidad tonal de la imagen generada.


AHORQUILLADO AUTOMÁTICO

Desde la versión v1.1 de Zero Noise, a petición de un usuario he añadido una funcionalidad opcional consistente en realizar una serie de imágenes de salida separadas a intervalos constantes de exposición.

Podremos elegir el número total de imágenes de salida (entre 1 y 7) así como la separación entre ellas en pasos de exposición (entre 1EV y 4EV), y el programa generará automáticamente réplicas sobreexpuestas de la imagen fusionada base.

Por ejemplo si seleccionamos 5 imágenes de salida separadas 1EV en exposición: '0 +1 +2 +3 +4', además de la fusión subexpuesta habitual Zero Noise generará 4 versiones sobreexpuestas de la misma separadas un paso entre ellas:


Fig. 27 Ahorquillado de salida automático.


La utilidad de esta opción es ahorrarnos el trabajo de crear estas réplicas si vamos a emplear algún programa para realizar el mapeo de tonos. Un muy buen ejemplo de software con estas prestaciones es TuFuse, ya comentado con un ejemplo en el tutorial de Mapeo de tonos HDR.


FUSIÓN EN COLOR

Realizado el trámite de elegir el mapa de fusión y la compensación gamma podremos proceder a la fusión de las imágenes en color pulsando la opción 'Colour'. En el proceso se mostrará la aportación de cada imagen al resultado final así como el % de píxeles provenientes de una única imagen origen:

   Loading blending map...
   Image contribution...
   hdr1.tiff: 5,5%
   hdr2.tiff: 10,4%
   hdr3.tiff: 84,1%
   97,5% genuine pixels

   Blending images...

   Saving result image as ZN_022900_AdobeRGB_g2.2.tif...
   DONE

En este caso hubo un 2,5% de píxeles procedentes de una mezcla de imágenes dado que se aplicó una fusión progresiva de 4 píxeles de radio en la generación del mapa de fusión. Si no se hubiera empleado dicha fusión progresiva, el 100% de píxeles provendría de una única imagen obviamente.

El propio nombre del archivo generado contendrá la información necesaria para abrirlo correctamente en Photoshop, donde seremos nosotros quienes deberemos asignarlo al perfil de color correspondiente en que fue convertido.

No habrá que preocuparse de la compensación gamma si no la hemos alterado manualmente pues como ya se ha comentado Zero Noise emplea por defecto la compensación estándar del perfil escogido. Información más detallada sobre la compensación gamma en los siguientes apartados.


FUSIÓN EN BLANCO Y NEGRO

Aunque lo habitual es obtener imágenes en color ya que siempre se pueden luego pasar a BN por el método preferido del usuario, he añadido en Zero Noise la opción de fusionar las imágenes produciendo una salida monocroma en escala de grises.

La principal motivación de hacerlo aquí es porque usar DCRAW como motor de revelado permite obviar dos transformaciones importantes sufridas durante el revelado RAW y que pensando en una salida en blanco y negro resultan innecesarias, y hasta contraproducentes: el balance de blancos y la conversión a un perfil de color de salida.

Los motivos por los que esto es así y las ventajas de esta peculiar conversión a blanco y negro de cara a la calidad de la imagen obtenida se explicarán en breve en un tutorial.

Para lograr eliminar el balance de blancos basta seleccionar 'None' como preajuste del mismo, lo que forzará a 1,0 los tres multiplicadores lineales. Al hacerlo la imagen se mostrará en un desagradable color verde pero es normal que así sea.

Para que el resultado del revelado no se convierta a ningún perfil de color de salida, elegiremos igualmente la opción 'None' como perfil de salida.

Ahora ya solo nos quedará elegir el peso que cada canal RGB tendrá en la mezcla para obtener la luminosidad final. Solo se indica la ponderación para los canales R y B, obteniéndose el G internamente en Zero Noise como resultado de sustraer los anteriores valores al 100%.

Para obtener la salida monocroma bastará pulsar entonces la opción 'B&W' lo que generará un archivo TIFF de 16 bits pero en escala de grises. En el nombre de dicho archivo la cadena 'BW' nos indicará que la imagen fue creada en blanco y negro.

Como en ocasiones es difícil dar con la combinación ideal de canales RGB para obtener un buen blanco y negro, y dado que Zero Noise no tiene un interface en tiempo real al efecto, he añadido una opción para suplir esta carencia. Se trata del botón auxiliar 'T' (de 'Test') que generará un GIF gigante en tonos grises con versiones reducidas de la imagen de salida para todas las posibles mezclas RGB.

Por ejemplo para la siguiente imagen revelada en color con un correcto balance de blancos:


Fig. 28 Resultado de revelado en color.


Se obtiene con la opción 'T' la siguiente parrilla de versiones en blanco y negro (pulsar sobre la imagen para verla a tamaño real, 2,17 MB):


Fig. 29 Carta de prueba con todas las posibles conversiones a BN.


En la esquina superior izquierda encontramos el canal G, en la superior derecha el canal R y en la esquina inferior izquierda se encuentra el canal B. El resto de miniaturas mostrarán una combinación progresiva con participación de varios canales.

En cada una de las versiones se indica la combinación de canales que ha de usarse para llegar a ella, de modo que por inspección visual y sin necesidad de tantear podremos elegir la que mejor representa el blanco y negro que buscamos en términos de contraste, discriminación del color de los elementos de la escena,...

Los saltos en los pesos que intervienen en la mezcla son lo bastante escalonados para garantizar la progresividad en las transiciones entre muestras contiguas.


COMPENSACIÓN GAMMA PARA CAPTURAR AÚN MÁS RANGO DINÁMICO

En la tabla vista en la Fig. 1 pudo parecer exagerado hablar de un rango dinámico de 16 o incluso más diafragmas. En efecto, en una codificación lineal de 16 bits registrar más de unos 12 diafragmas resulta imposible pues la escasez de niveles tonales en las sombras (1 nivel para el diagragma 16º, 2 niveles en el 15º, 4 niveles en el 14º, 8 niveles en el 13º,...) hace que estos no queden suficientemente representados.

Sin embargo una de las opciones de Zero Noise en la que he depositado más expectativas es la aplicación de la compensación gamma dentro de la propia rutina de fusión de imágenes para usarla como trampolín en la expansión del rango dinámico en las sombras. La efectividad de la compensación gamma para capturar un enorme rango dinámico ha quedado demostrada en el artículo TIFF con más de 16 pasos de rango dinámico.

El programa realiza los cálculos en coma flotante (es decir con números decimales) sin apenas errores de redondeo, y al aplicar la gamma antes del redondeo final a valores enteros de 16 bits cada diafragma de las sombras dispone de muchos más niveles que haciendo el redondeo en lineal. Por este procedimiento debe ser perfectamente posible llegar a superar la barrera de los 16 diafragmas de rango dinámico.

La utilidad que tenga el asunto ya es mucho más dudosa, primero por la poca o nula existencia de escenas de tanto rango dinámico en el mundo real, segundo por la dificultad de obtener tomas con una exposición relativa nada menos que de 8 pasos por encima de la de referencia, y por último por la dificultad que entrañará la edición de tales imágenes en las cuales el disfrute de todo el rango dinámico capturado implicará un bajísimo contraste tonal complicado de mapear.

Zero Noise aplica una curva gamma pura OUT = IN1/g. Dicha curva difiere sensiblemente de la curva gamma empleada en sRGB, la cual como puede verse en el artículo Compensación gamma. DCRAW con gamma presenta un tramo inicial lineal que la hace levantar menos las sombras que la gamma exacta.

Así Zero Noise levantará más las sombras cercanas al negro absoluto que una conversión a sRGB normalizada lo que además de simplificar la implementación va a ser beneficioso para facilitar el tratamiento de las imágenes de alto rango dinámico. El motivo es que el histograma resultante tendrá unas sombras más alejadas del negro lo que en imágenes de baja exposición como las que vamos a manejar facilitará sacar partido de las sombras y evitar que se empasten.

Si se desea preservar la apariencia que habría tenido la imagen caso de revelarla en el perfil sRGB normalizado puede asignarse el TIFF resultante al perfil de gamma exacta 2,2 de libre distribución que amablemente me ha enviado Hugo Rodríguez denominado H-RGB 2.2 Generic PC, el cual es muy similar a sRGB salvo por la curva tonal en la zona de sombras.

Para los demás espacios de color (Adobe RGB, ProPhoto RGB) la gamma proporcionada por Zero Noise es la curva estándar por lo que bastará asignarlos en Photoshop para tener la imagen correctamente visualizada en pantalla.


ABRIR IMAGEN RESULTANTE EN PHOTOSHOP

Como ya hemos comentado para leer correctamente en PS el archivo TIFF generado no tendremos más que abrirlo y asignarlo al perfil en que fue revelado (recordemos que Zero Noise indica dicho perfil como parte del nombre de los archivos resultantes). Este paso de asignación ha de hacerse necesariamente ya que los archivos que genera Zero Noise no llevan incrustada la información del perfil de color de salida, y por eso se la debemos indicar nosotros.

En el caso de haber hecho una fusión sin conversión a ningún perfil de salida, por ejemplo cuando se elige obtener una salida en blanco y negro y se ha seleccionado como perfil de salida 'None', simplemente asignaremos en Photoshop cualquier perfil de color cuya visualización de la imagen satisfaga nuestros intereses. Un ejemplo típico sería Adobe RGB.

Puede observarse como el valor de compensación gamma de salida que aparece en el menú de fusión varía en función del perfil de color de salida escogido. Por ejemplo en sRGB y AdobeRGB la compensación gamma es de 2,2 mientras en Pro Photo es de 1,8.

Lo más recomendable es dejar la gamma que Zero Noise sugiere al elegir el perfil de salida pues es el valor de compensación gamma que tendrá cada uno de los espacios de color en PS, y por lo tanto a la hora de asignarlos no habrá que hacer ninguna operación especial, tan solo asignar el perfil correspondiente.

Emplear una compensación gamma tiene la propiedad de producir una mayor riqueza tonal en el archivo de salida en los diafragmas bajos del rango dinámico, por lo que tendremos una mayor robustez frente a la posterización en las sombras además de una mayor capacidad de captación de rango dinámico como vimos en el apartado anterior.

No obstante es perfectamente posible alterar este valor de gamma para por ejemplo obtener una salida lineal si se desea, o de cualquier otro valor. Ahora bien, si se hace de este modo habremos de tener una versión del perfil de color en la gamma en que hayamos generado la salida para asignarlo a la imagen resultante o de lo contrario la exposición de ésta se interpretará erróneamente en PS.

Si por ejemplo hemos decidido que la salida va a ser lineal (bastaría para ello poner el slider de Gamma a un valor 1,0 tras haber escogido el perfil de color de salida), se explica en el Tutorial DCRAW como generar con PS versiones lineales de cualquier perfil. Pueden bajarse las de sRGB y de Adobe RGB desde este enlace. Estos perfiles serán visibles desde PS con tan solo copiar los archivos ICC en la ruta correspondiente ('C:\Windows\system32\spool\drivers\color\' generalmente).

Una desventaja de trabajar con un perfil lineal es que sufriremos una de las malas costumbres que tiene PS, que es mostrar con un alto grado de posterización este tipo de imágenes. Aunque el display es erróneo la información es totalmente correcta así que no hay que preocuparse.

Dado que PS no es adecuado para realizar edición de imágenes lineales, si deseamos editar la imagen la deslinealizaremos convirtiéndola al perfil de color en que queramos trabajar que puede ser el mismo que usamos en el revelado pero esta vez una versión no lineal, es decir, al sRGB, Adobe RGB,... típicos de PS. Hecho esto veremos como la posterización en el display desaparece y la imagen ya está lista para ser editada como cualquier otra. Es interesante realizar esta conversión con el histograma a la vista para observar como éste se desplaza fuertemente hacia la derecha debido a la compensación gamma aplicada.


CONCLUSIÓN

Hemos explicado cuales son todos los pasos para obtener con Zero Noise una imagen no procesada pero de alta calidad producto de la fusión de varias tomas. La información que contiene a efectos de nitidez y ruido se acerca a la mejor de las posibles, pero como veremos su aspecto en bruto deja mucho que desear.

Con el fin de sacar partido de toda esa información y obtener la imagen final deseada deberemos proceder a realizar un remapeo de los niveles de la imagen, lo que se conoce como mapeo de tonos o Tone Mapping.

Para obtener algunas ideas sobre cómo realizar dicho mapeo de tonos con el objetivo de conseguir un resultado HDR natural se expone en el tutorial Mapeo de tonos HDR una posible solución de edición.


PROBLEMAS DE FUNCIONAMIENTO

FUNCIONAMIENTO CON WINDOWS VISTA Y WINDOWS 7

Zero Noise es compatible con Windows Vista y Windows 7, pero al hacer uso de DCRAW como motor de revelado necesitará una compilación de éste que funcione correctamente en esas versiones de Windows.

Para que DCRAW sea compatible con Windows Vista y Windows 7 se ha de usar un ejecutable que haya sido generado con un compilador de Microsoft o de lo contrario DCRAW no tendrá permisos por parte del sistema operativo para realizar las reservas de memoria requeridas. En la web de Manuel Llorens pueden encontrarse ejecutables para todas las versiones de Windows, incluído Windows 7 de 64 bits.

He podido probar Zero Noise en Windows Vista Basic y si bien el programa permite abrir y visualizar archivos RAW de la Canon 350D en modo inspección (este revelado se realiza a la mitad del tamaño final), no me ha funcionado cuando se solicita el revelado a tamaño completo por este problema de reserva de memoria. Sí me ha funcionado sin embargo cuando lo he probado en Windows Vista Premium (32 bits).

En Windows 64 bits la ejecución de DCRAW en el raíz de C: daba error de permisos, por eso se ha cambiado la ruta que aloja el programa al mencionado 'c:\dcraw\dcraw.exe'.


FALTA LA LIBRERÍA MSSTDFMT.DLL

En algunas instalaciones de Windows esta librería no existe. Desconozco el motivo, pero para aquellos a los que el programa de error por no tenerla no tienen más que descargarla de MSSTDFMT.DLL.

Para instalarla basta abrir una consola en la ruta donde hayamos descargado el archivo DLL, y registrarla en el sistema operativo con el comando 'regsvr32 MSSTDFMT.DLL':


Fig. 30 Comando de consola para registrar la librería MSSTDFMT.DLL.


Hecho esto aparecerá el siguiente mensaje y el programa debería funcionar:


Fig. 31 Mensaje de correcto registro de la librería MSSTDFMT.DLL.



PROBLEMAS CON ALGUNAS CÁMARAS

Cada modelo de cámara tiene un punto de saturación diferente. Como DCRAW no tiene correctamente asignado dicho punto de saturacion del RAW para todas las cámaras, dará problemas en ciertos modelos donde esto ocurra, traduciéndose en imágenes resultantes incorrectas con llamativos saltos de exposición o tonos magenta en las altas luces.

La solución ya comentada pasa por indicarle al programa el punto de saturación exacto de nuestra cámara. Si ésta no estuviera todavía en el listado de cámaras corregidas contemplado por Zero Noise, bastará calcular este nivel de saturación siguiendo las instrucciones del tutorial El nivel de saturación del RAW. Obtenido el valor bastará introducirlo manualmente en la casilla correspondiente de Zero Noise.


MEJORAS FUTURAS PREVISTAS

Están pendientes de implementar algunas funcionalidades tales como:
  • Permitir una salida RAW en formato DNG de 16 bits, para que cada cual lo procese con su revelador favorito
  • Versión en C++ para Windows mucho más rápida que la actual y posible versión de Zero Noise para Mac
  • Balance de blancos ajustable en términos de temperatura de color y matiz
Comentarios y sugerencias son bienvenidos. Aunque no existe aún una versión para Mac de Zero Noise, en talleres que he impartido lo hemos hecho correr sin ningún problema en ordenadores Apple bajo emulación de Windows.


~~~


Si este contenido te ha resultado útil, considera realizar una contribución para asegurar la continuidad de esta web. Mantenerla supone un importante esfuerzo, así como un espacio y ancho de banda considerables en el servidor. Es una operación sencilla y totalmente segura.



gluijk@hotmail.com
  TUTORIALES

HOME