sábado, 27 de noviembre de 2021

Diezmado de bits en RAW

En este ejemplo de 'Generando un RAW en formato DNG a partir de un TIFF' evaluamos la pérdida de calidad de un archivo RAW a medida que le restamos bits de información. Se trata de reproducir los revelados de una cámara si sus archivos RAW se codificaran en origen, es decir en la captura y codificación en cámara, con una cantidad de bits menor a la elegida por el fabricante para el conversor A/D. Esto equivale a reducir el número de niveles tonales disponibles en el RAW.

La utilidad del ejercicio va más allá de la pura curiosidad: permitirá intuir si los bits del fabricante hacen justicia a las capacidades del sensor en cuanto a rango dinámico, único parámetro que requiere de una profundidad de bits mínima. Existen cámaras con archivos RAW codificados con una cantidad de bits innecesariamente alta, y que por tanto son más un reclamo de marketing que una realidad. Ocurre con las primeras cámaras de 14 bits (p.ej. Canon 40D) y con los respaldos de formato medio de 16 bits (Hasselblad, Phase One), que estarían perfectamente servidos con RAWs de 12 y 14 bits respectivamente.

Para la prueba necesitamos una situación de la máxima exigencia en cuanto a profundidad de bits. Esto significa ISO mínimo y presencia de sombras muy profundas, ya que si no se dan ambos ingredientes el RAW soportaría reducciones de bits altas sin degradación.

Tomamos una captura correspondiente a una escena de alto contraste realizada con la Panasonic Lumix GH5S, hasta donde sé la única cámara M4/3 con RAWs de 14 bits. Se usó el ISO más bajo (ISO160) y es la escena con sombras más profundas de las disponibles en esta review de Photography Blog:


Analizando el archivo RAW vemos que los datos se reparten de forma continua en el histograma, llenando todo el rango de 14 bits hasta el valor de saturación 16.383 y con un nivel de negro de 512. Siendo quisquillosos esto significa que se trata de un RAW de log2(16383 - 512) = 13,95 bits de información real:



Con el histograma del RAW por pasos nos hacemos idea de que el rango dinámico al que hizo frente el sensor era de unos 12 pasos reales (añadido un poco de ruido y aplicada una gamma 2,2 para ganar suavidad en las sombras profundas del gráfico):



Construimos un RAW sintético en el que reproducimos 9 veces la misma zona de sombras profundas de la escena, pero con una cantidad de bits decreciente desde los 14 bits originales hasta 6 bits (hacer clic en la imagen para apreciar al 100% los diezmados):



Concluyo que con diezmados de hasta 12 bits el resultado es prácticamente indistinguible del original, solo apreciándose un ligero incremento de dominante magenta en las sombras más profundas. Hemos de bajar a 11 bits para empezar a percibir posterizaciones (zonas contiguas de color uniforme):



Dicho de otro modo, el sensor de esta cámara no parece lo suficientemente prestacional en rango dinámico como para requerir los 14 bits que permite configurar en sus archivos RAW, bastándole 12 bits como a las demás M4/3.

El archivo RAW original puede descargarse de gh5s.rw2 y el sintético de decimation.dng. Si reveláis este último con un revelador que aplique las correcciones de distorsión y aberraciones informadas en los metadatos, notaréis que la imagen se distorsiona y sus aberraciones se acentúan al haber recolocado la zona inferior central de la escena original en posiciones que no le corresponden. Para esquivar estas correcciones usé DCRAW en las anteriores imágenes.

~~~

Repositorio con todo el código R, script DNG, ejecutables de exiftool y dng_validate: GitHub.


No hay comentarios:

Publicar un comentario

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.