TIFF CON MÁS DE 16 PASOS DE RANGO DINÁMICO Creado 5 Ene 2009 Actualizado 6 Ene 2009 |
INTRODUCCIÓNEs conocida la técnica de realizar varias tomas con diferente exposición, para combinar la información captada en cada una de ellas en una imagen de mayor rango dinámico y menor ruido. Para albergar todo ese rango dinámico necesitaremos además disponer de suficientes niveles en las sombras que permitan evitar la aparición de bandas (posterización).En general para almacenar la información de escenas de alto rango dinámico de cara a su procesado, los programas de mapeo de tonos suelen emplear formatos gráficos donde cada nivel es codificado en 32 bits y habitualmente en coma flotante, es decir con números decimales en lugar de enteros como emplean las imágenes de 16 bits que solemos tratar en Photoshop. Estos formatos pueden permitirse trabajar con la información codificada linealmente sin por ello perder detalle en las sombras más profundas. En cambio una codificación lineal de 16 bits con números enteros es bastante peligrosa de cara a preservar la información, pues puede dar fácilmente lugar a posterización en las sombras al disponer de pocos niveles en ellas. La riqueza tonal de los diafragmas más bajos de la imagen se ve seriamente comprometida con este formato. En el presente artículo quiere hacerse una demostración práctica de que es totalmente posible almacenar un gran rango dinámico (más de 16 pasos de diafragma) en un archivo TIFF de 16 bits, valiéndonos de la curva de compensación gamma para disponer de más niveles en las sombras. Para ello se llevará a cabo una medida real del rango dinámico captado en una escena ejemplo de alto rango dinámico, y se comparará el resultado que se habría tenido en el caso de usar una codificacón lineal. El mismo fenómeno se da a la hora de codificar una determinada imagen en un archivo de 8 bits (por ejemplo un JPEG), donde gracias a una determinada curva gamma aplicada podemos codificar más información de los 8 pasos de diafragma a los que estaríamos restringidos en una codificación puramente lineal de 8 bits. NIVELES TONALES DISPONIBLES POR DIAFRAGMADejando de lado el ruido, cuya aparición se evitará gracias a las capturas de mayor nivel de exposición, vamos a calcular el número de niveles disponibles en cada diafragma en una codificación con enteros de 16 bits. Tendríamos la siguiente distribución para una gamma 1,0 (lineal) y para una gamma 2,2 típica:Fig. 1 Niveles disponibles por diafragma en función de la gamma. Queda claro que los diafragmas que más escasez de niveles tienen en la codificación lineal están mucho más poblados con gamma 2,2. Y lo estarían aún más empleando una gamma mayor. En particular con una gamma lineal es numéricamente imposible codificar más de 16 pasos de diafragma de rango dinámico, estando además los últimos muy pobremente representados (1, 2, 4 niveles,...). Sin embargo con una gamma 2,2 aún disponemos de 45 niveles en el diafragma 20º (denominado -19EV en la tabla anterior), por lo que podremos codificar un rango dinámico muy superior a cualquiera que podamos necesitar en una aplicación fotográfica. El precio a pagar por este incremento de niveles en las sombras al emplear una codificación con gamma, es disponer de un menor número de niveles en las altas luces (en los dos diafragmas más altos para una gamma 2,2). Pero esto no es problema en absoluto dado que en dichas áreas el número de niveles, incluso tras aplicar la compensación gamma, es muy superior al mínimo necesario para una correcta representación. De hecho permanecen como los diafragmas con más niveles pese a la redistribución causada por la gamma. Lo que acabamos de ver no significa que cualquier TIFF de 16 bits y gamma 2,2 contendrá por sí mismo un alto rango dinámico. La información habrá de provenir de la combinación de varias capturas hechas con diferente exposición, y convenientemente fusionadas para salvar las limitaciones de la cámara. Tan solo se plantea la idoneidad del formato como contenedor válido de toda esa información. FUSIÓN DE IMÁGENESESCENA DE ALTO RANGO DINÁMICOComo ejemplo de caso de muy alto rango dinámico vamos a usar la siguiente escena, consistente en un contraluz en una habitación a oscuras (un WC en mitad de la sabana de Botswana para ser exactos), que dispone de una pequeña ventana en la que impacta directamente el sol del amanecer: Fig. 2 Escena de muy alto rango dinámico. Para la captura de dicha escena se realizaron 5 tomas con 3 pasos de diafragma de separación entre cada dos disparos, y para fusionar la información de los archivos RAW obtenidos se empleó Zero Noise. No se puso demasiado cuidado en el balance de blancos pero esto es irrelevante para la demostración. Zero Noise reveló cada archivo RAW dando lugar a un TIFF lineal, y luego fusionó estos archivos TIFF resultantes en un TIFF final de salida no lineal, de gamma 2,2 en este caso. Pese a haber fijado en la cámara 3 pasos de exposición de diferencia entre tomas siempre se producen desviaciones. Los siguientes fueron los valores de exposición relativa que calculó el programa para cada pareja de imágenes: Fig. 3 Exposiciones relativas entre las 5 capturas realizadas. En la generación del mapa de fusión se estableció un radio de anti ghosting de 1 píxel y un radio de fusión progresiva de 3 píxeles, para evitar cualquier posible problema derivado de algún ligero desalineamiento entre las capturas. El mapa generado presentó el siguiente aspecto: Fig. 4 Mapa de fusión de la escena de alto rango dinámico. La toma más expuesta lo estaba tanto que, contrariamente a lo que es habitual, no fue la que más información aportó a la imagen final sino que lo hizo la penúltima más expuesta. Esto es un indicio claro de lo sobrados que íbamos para poder captar todo el rango dinámico de la escena con las 5 tomas realizadas:
Image contribution...
El parámetro clave que nos va a permitir almacenar todo el rango dinámico que pudiera tener la escena en un archivo de 16 bits, es la aplicación en Zero Noise de la compensación gamma 2,2 típica de Adobe RGB, justo antes de realizar el redondeo final de cada nivel a un entero de 16 bits de salida. RUIDO EN LAS SOMBRAS E INFORMACIÓN EN LAS ALTAS LUCES Veamos ahora recortes de la imagen generada en los extremos de su rango dinámico. Si las sombras más profundas no presentaban ruido, y las luces altas estaban sin quemar, tendremos la certeza de haber abarcado todo el rango dinámico de la escena. Tomando la zona más oscura del suelo, precisamente junto a la puerta, podemos ver que no presenta ruido alguno. El recorte al 50% se hizo con un reescalado nearest neighbour para preservar la relación señal a ruido de un recorte al 100%: Fig. 5 Recorte al 50% de las sombras profundas. En las luces pese a haber puesto cuidado en que la primera toma no tuviera nada quemado, una pequeña zona sufrió saturación parcial en el archivo RAW menos expuesto, en concreto en la parte inferior de la ventana. Por ello se ajustó Zero Noise para invocar a DCRAW en esa toma con un parámetro de revelado conservador que preservara al máximo las altas luces, logrando no perder la textura de esa zona que el revelador llevó a un tono gris neutro (pasar el ratón por encima de la imagen para verla): Fig. 6 Recorte al 50% de las altas luces (mover ratón para ver saturación). Podemos no obstante dar también por buena la captación de las altas luces, dado lo reducido del área afectada y el hecho de que se tratara siempre de una saturación parcial, con lo que no se perdió completamente la textura. RANGO DINÁMICO Y RIQUEZA TONAL Ya hemos constatado que se ha capturado todo el rango dinámico de la escena. Ahora vamos a medirlo con exactitud sobre los histogramas por pasos de diafragma. He adaptado Histogrammar para que pueda por un lado calcular el histograma logarítmico de imágenes con compensación gamma, y en segundo lugar para que vaya en su cálculo más allá del 16º diafragma, que era el límite natural del programa para imágenes lineales de 16 bits. Se obtiene la siguiente distribución de la información: Fig. 7 Histograma logarítmico completo de la imagen resultante de la fusión. Lo primero que podemos constatar es que la escena abarcó un rango dinámico superior a los 16 diafragmas, desde las luces hasta las sombras más profundas. Si nos centramos en las sombras, veremos que los diafragmas más bajos están perfectamente representados por un buen número de niveles. De acuerdo a la tabla de la Fig. 1 el diafragma -17EV debiera tener hasta 84 niveles utilizables, y el -16EV unos 115 niveles: Fig. 8 Detalle de los dos diafragmas más bajos del histograma logarítmico. A la vista del histograma real obtenido las cifras se cumplen a la perfección, resultando valores más que suficientes para tener una muy correcta riqueza tonal en ellos. Un sensor de 12 bits por ejemplo no dispone en sus RAW de más de 64 niveles a partir del diafragma -5EV. En lo que respecta a las luces, vemos que se extienden en un amplio rango de unos 8 diafragmas. Si hacemos zoom en el eje Y podremos verlo mejor y nos daremos cuenta de que, habiendo poca superficie relativa de altas luces en la escena y dado que abarcan un rango tan amplio, deberá haber un gradiente muy fuerte de luminosidad en la zona de altas luces. Es decir, mucha variación de la intensidad luminosa en poca distancia física. Fig. 9 Detalle de las altas luces en el histograma logarítmico. Y así es. Si representamos en la zona de la ventana con distintos tonos de gris el sistema de zonas en términos de pasos de diafragma, vemos que desde la parte baja de la ventana hasta cualquier zona próxima de las paredes circundantes encontramos un gradiente de hasta 8 pasos de diafragma (mover el ratón por encima de la imagen para superponer la escena): Fig. 10 Sistema de zonas EV en la zona de altas luces (mover ratón para ver escena). A continuación vamos a mostrar una secuencia de 6 imágenes obtenidas a partir de la original con aumentos sucesivos de exposición de 3EV. Podremos tomar conciencia así de lo sumamente bajos que eran los niveles en los que se almacenaba la información de las sombras de la imagen: Fig. 11 Sobreexposición sucesiva por +3EV de la imagen resultante de la fusión. Hemos tenido que aumentar la exposición de la imagen original en nada menos que 9 pasos de diafragma para empezar a ver la información de sombras, que era mayoritaria en esta escena. Pese a la enorme sobreexposición aplicada la información está intacta, sin ruido y sin haber sufrido ningún tipo de posterización o deterioro. A efectos de riqueza tonal en las sombras profundas, la imagen es equivalente a una captura realizada con un sensor de 24 bits nativos, los 12 del sensor original más los bits extra proporcionados por los 12 pasos de sobreexposición. Profundidad de bits tan alta que ni siquiera existe en un sensor real. Y en lo que respecta al ruido y el rango dinámico, estaríamos hablando de un resultado equivalente al que obtendríamos con sensor de 20 pasos de rango dinámico utilizable, los 8 originales de la Canon 350D más los 12 adicionales por sobreexposición. NECESIDAD DE LA COMPENSACIÓN GAMMA 2,2 Vamos ahora a demostrar que era preciso introducir en el proceso de fusión la gamma 2,2 para poder registrar una escena del rango dinámico de la analizada, si queríamos obtener en la salida una imagen sin posterización en las sombras. Para ello replicamos la fusión pero ahora con salida lineal (gamma=1,0), siendo por lo demás indistinguible de la original en gamma 2,2, y levantamos las sombras de la zona del WC. La comparación con el resultado que obtuvimos con gamma 2,2 puede verse moviendo el ratón sobre la imagen: Fig. 12 Posterización usando gamma lineal (mover ratón para gamma 2,2). La diferencia es patente, y la explicación es la que vimos al comentar la tabla de la Fig. 1: una codificación lineal no presenta un número suficiente de niveles en las zonas más oscuras de la imagen para proporcionar un degradado suave en una escena de este rango dinámico. Al emplear una gamma 1,0, se redondean a unos pocos valores gran cantidad de niveles tonales que en una codificación con gamma 2,2 permanecían diferenciados en el archivo TIFF de salida. Por eso cuando realizamos la fusión de dos archivos RAW en un DNG lineal de 16 bits en el artículo RAW virtual con cero ruido, comentamos que sería muy interesante estudiar la posibilidad de hacer una codificación no lineal de la información en dicho DNG. Si realizáramos la fusión de las cinco tomas de este ejercicio en un DNG lineal, obtendríamos irremediablemente la posterización que acabamos de ver. Que es posible codificar un DNG no lineal está claro. No en vano es precisamente el medio del que se vale la Leica M8 para producir unos archivos RAW de gran calidad con una profundidad a priori escasa de solo 8 bits. IMAGEN RESULTANTE PARA DESCARGAR Del enlace superhdr.tif (2,9 MB) puede descargarse a un tamaño reducido de 650px de alto, la imagen generada tras la fusión. Pese a ser una versión reescalada es de 16 bits, por lo que puede constatarse en ella la brutal riqueza tonal que proporcionó la fusión con gamma. Está en Adobe RGB con su gamma estándar 2,2 por lo que puede abrirse directamente en PS sin problemas, y cuenta con curvas de ajuste de exposición de 3 pasos para poder ir levantando las sombras a voluntad y constatar que no se produce ningún tipo de empastamiento. MAPEO DE TONOS CON ENFUSEAunque no era la intención del artículo, vamos a realizar el mapeo de tonos de la escena capturada para obtener una hipotética imagen válida final. Mapear en tonos una escena con una ventana no suele presentar mucha dificultad por estar restringida a un área claramente identificable. En este caso el reto viene dado por el muy alto rango dinámico de que se trata.Me he animado a utilizar el software HDR de mapeo de tonos Enfuse, en el cual se han introducido tres versiones de la imagen resultante de Zero Noise. Así estaríamos uniendo la optimización de Zero Noise en cuanto a minimizar el ruido y evitar la fusión progresiva que puede hacernos perder nitidez, con las capacidades de realizar un mapeo de tonos automático y con un acabado natural de Enfuse. En las primeras pruebas con tres versiones de la imagen con diferentes niveles de exposición, el resultado ha sido bastante decepcionante. Enfuse ha considerado una gran cantidad de píxeles con saturaciones parciales que han generado tonos incorrectos en áreas importantes de la imagen. He repetido entonces la prueba con tres versiones de la imagen original, pero en lugar de con distintos ajustes de exposición propiamente dichos, con curvas de tipo gamma para aumentar el brillo global de la imagen sin generar saturaciones parciales en ningún caso. El resultado en la segunda prueba ha sido mucho mejor y ha proporcionado una imagen similar a la versión rápida de la Fig. 2, pero con una importante cantidad de información preservada en las luces (ventana y reflejos en paredes y puerta), así como levantada en las sombras (suelo y techo principalmente). Para comparar ambas imágenes pasar el ratón por encima de la imagen: Fig. 13 Mapeo de tonos con Enfuse (mover ratón para ver mapeo provisional). El resultado puede verse a 1024px de tamaño aquí. Sin ser perfecto, sobre todo en las zonas de pared con reflejo de la ventana donde aparecen colores un tanto extraños (seguramente yo mismo se los suministré en las imágenes fuente), es bastante interesante por resultar muy natural, lo que hace que valga la pena investigar más esta herramienta de mapeo de tonos. Los flares que tiene la imagen estaban en los RAW originales y se deben a la mala calidad de las capturas. No tienen nada que ver por lo tanto con los procesos realizados de fusión y mapeo. CONCLUSIÓNSe ha constatado que un archivo de imagen TIFF de 16 bits es capaz de soportar un rango dinámico superior a los 16 pasos de diafragma haciendo uso de la compensación gamma para obtener más niveles tonales en las sombras; y nada impide que pueda alcanzar los 20 pasos o incluso más. Lo complicado en todo caso será encontrar en el mundo real una escena con tal rango dinámico!.Queda por tanto desmitificada la necesidad de emplear formatos específicos de coma flotante y un mayor número de bits para soportar las imágenes de muy alto rango dinámico procedentes de la fusión de varias tomas con diferente exposición. Se ha probado con éxito la utilización complementaria de las herramientas Zero Noise para realizar una fusión óptima de mínimo ruido y máxima nitidez de los archivos RAW originales, y Enfuse para efectuar un mapeo de tonos automático y con un resultado natural a partir de varias réplicas de la imagen generada por Zero Noise. 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 |
ARTÍCULOS HOME |