lunes, 9 de octubre de 2023

Test de ruido en RAW para Sony A7 II

Vamos con un nuevo caso de uso de 'Generando un RAW en formato DNG a partir de un TIFF'. En esta ocasión hemos construido un archivo RAW sintético para la Sony A7 II con el que poder evaluar, tanto visual como numéricamente, el rendimiento de su sensor en cuanto al ruido en cualquier posible escenario de exposición.

Para ello montamos un pequeño bodegón consistente en una figura con volumen (Mazinger Z) para poder analizar visualmente el ruido, una serie de parches de color para además de visualizar el ruido poder medirlo numéricamente, y un corto texto para constatar su legibilidad.

El enfoque exacto se hizo sobre el texto, incluyendo al robot en la zona a foco, mientras la carta IT8 se situó deliberadamente retirada de la figura para quedar fuera de la PDC del objetivo con el fin de no interferir en las mediciones de ruido (cualquier textura capturada en los parches contribuiría a aumentar de forma ficticia la medición de ruido).


De toda la escena nos vamos a centrar en un pequeño recorte de 666x440 píxeles, para poder replicarlo en toda la extensión del RAW sintético sin aumentar su tamaño original de 24Mpx. Cada réplica se obtendrá con diferentes ajustes de ISO y exposición para emular todas las situaciones de uso real de una cámara.


Las capturas se han realizado con trípode y usando el objetivo Canon FD 50mm f/3,5 Macro disparando siempre a f/8, solo modificando la velocidad en cada toma para obtener la exposición deseada. En total se han realizado 45 fotos:

  • En la fila superior encontramos 9 capturas perfectamente derecheadas en el RAW desde ISO100 hasta ISO25600. Son capturas que no podrían haberse obtenido con más exposición o de lo contrario empezaríamos a perder información relevante.
  • Debajo de cada una de ellas se añaden tomas adicionales que, manteniendo la misma apertura y velocidad que la de referencia, se hacen con valores ISO paulatinamente menores en -1, -2, -3 pasos,... Son tomas con la misma exposición desde el punto de captación de luz pero con niveles RAW subexpuestos en saltos de un paso desde el ISO de referencia hasta ISO100.

(hacer clic para ver a tamaño original)


Para que las capturas a ISOs menores al de referencia no se vean oscuras, se han igualado en procesado a los niveles RAW de referencia. Por eso todas las réplicas presentan el mismo nivel de luminosidad y no necesitamos tratarlas de forma individual para poder compararlas. El proceso de igualar la exposición es totalmente lineal y neutro (una multiplicación numérica por 2, 4, 8,...), y no altera la relación S/N de cada toma.

Si tomamos el histograma RAW genuino del recorte en la primera captura, la obtenida con derecheo estricto del histograma (ETTR) a ISO100, vemos que no habríamos podido exponer ni siquiera 1/3EV más de lo que lo hicimos sin empezar a perder mucha información. Los reflejos como es lógico sí están saturados en el RAW.



La profusión de picos se debe a la presencia de los parches de la carta IT8. Podemos ver que el contraste del recorte de nuestro bodegón abarcaba unos ~6 pasos de rango dinámico. Al incluir tan pocos elementos es una escena (hablamos siempre del recorte) de contraste modesto.

El archivo RAW sintético puede descargarse de noiseperformancetest.dng.

~~~

Y ahora la pregunta del millón: para qué sirve y cómo se usa este RAW sintético? El objetivo es tener en un solo archivo RAW todos los casos de uso posible a los que nos podemos enfrentar con un sensor en cuanto al ruido. En concreto si comparamos las imágenes por filas, columnas o en la diagonal, tendremos diferentes lecturas:


  • Rendimiento ISO: la capacidad de hacer fotografías con escasa iluminación la tenemos en la fila superior, donde para cada valor de ISO podemos ver el nivel de ruido esperable que obtendremos si derecheamos nuestras capturas RAW.
  • Rango dinámico: la capacidad de "levantar" sombras en escenas de alto contraste la tenemos reflejada en la diagonal inferior, donde podemos constatar el nivel de ruido creciente que sufriremos cuantos más pasos de exposición en procesado subamos.
  • ISO invarianza: a partir de cierto ISO (que en algunas cámaras puede ser el propio ISO base), se tiene el mismo ruido con una captura a ese ISO subexpuesto y corregido en procesado que al ISO superior que diera la exposición correcta. Esta comparación es precisamente la que podemos hacer en las últimas columnas.

Las tomas intermedias representan todos los casos de uso intermedios entre los citados arriba. Como todo el archivo está referenciado a tomas perfectamente derecheadas en RAW, los resultados son mejores de lo que generalmente suele obtenerse (esto aplica tanto al ruido visible a los distintos ISO como al número de pasos que podemos levantar las sombras). Por desgracia las cámaras no dan facilidades para ejecutar este derecheo perfecto, haciendo más sensato ser conservadores y contentarnos con niveles de exposición menores, y por tanto algo más de ruido.

Al ser un archivo RAW derecheado he modificado el metadato BaseLineExposure (es un ajuste de exposición transparente al usuario que llevan casi todos los RAW), del valor original +0,35EV de la cámara a -1,05EV, para que se abra con una exposición más adecuada en cualquier revelador que tenga en cuenta los metadatos.

exiftool -overwrite_original -baselineexposure=-1.05 noiseperformancetest.dng

La aceptación de determinados niveles de ruido tiene una componente altamente subjetiva, y también depende mucho de las aplicaciones para las que se vayan a usar las imágenes. Así que dejo que juzgues tú mismo en base a la observación de estos resultados el rendimiento de esta ya veterana cámara.

~~~

Vamos a realizar ahora las mediciones numéricas de ruido. Escogiendo los 60x60 píxeles centrales sobre el parche verde con mayor exposición de todos, y analizando en él los niveles RAW de los fotositos G1 y G2 del sensor, tenemos 60·60/2 = 1.800 muestras para calcular con suficiente precisión la relación S/N correspondiente a cada captura (réplica).



Calculamos primero la relación S/N de las primeras 9 capturas, las derecheadas a cada ISO, obteniendo como era de esperar una secuencia decreciente. El deterioro de la relación S/N cada vez que subimos un paso de ISO es algo menor de unos 3dB:



Es interesante ver que la medición para ISO25600 se sale claramente de la tendencia. El motivo es que Sony aplica una reducción de ruido "clandestina" sobre los datos RAW en las capturas obtenidas a ese ISO, haciendo que la relación S/N calculada sea mayor a la real. Esto lo hacen muchas cámaras y lo constató en su momento Bill Claff en sus mediciones de rango dinámico para esta Sony en Photons to Photos.

Ahora vamos a dibujar las relaciones S/N para cada una de las columnas, donde podremos evaluar la ISO invarianza del sensor, es decir, cuanto mejora la relación S/N cuando se expone correctamente a cada ISO frente a hacer la foto a un ISO inferior con la idea de corregir la exposición en procesado:



Que todas estas gráficas tengan una forma prácticamente plana es la demostración de que el sensor, para los niveles de exposición RAW evaluados, es altamente ISO invariante ya desde ISO100. No obstante dado el bajo contraste de nuestra escena de prueba, me atrevo a dudar de que dicha ISO invarianza se mantenga tan radical en escenas de mucho rango dinámico, donde tendremos que "levantar" sombras mucho más profundas.

Además las mediciones de ruido son cifras que pueden no reflejar completamente otros efectos indeseables de no exponer correctamente como son las dominantes en las sombras profundas, los niveles recortados a negro,... En archivos RAW con muy poca exposición siempre se dispone de pocos niveles que dan lugar a este tipo de anomalías, de ahí la utilidad de la inspección visual para complementar los fríos números.

Como regla general válida para casi todas las cámaras, los sensores se hacen ISO invariantes de forma bastante segura a partir de ISO1600-ISO3200. Esto quiere decir que valores ISO por encima de estos tienen escasa utilidad para el fotógrafo que dispara en RAW, que puede tranquilamente dejar sus capturas algo subexpuestas sin perjuicio del ruido al levantar las sombras, lo que le ayudará a preservar mejor la información de altas luces.

De nuevo podemos aquí ver el salto a mejor en la relación S/N que provoca el "cocinado" de Sony para la toma realizada a ISO25600.

~~~

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


2 comentarios:

  1. Si vuelvo a nacer, quiero ser la mitad de curioso que tú...

    Muy interesante, Guillermo. ¿Es interpolable a otra cámaras o variará much en función de modelos (calidades, más bien)?

    Llevo un año con una Canon normalita (RP) y, aunque es bastante plana en los RAW, me peleo bastante con el ruido a ISOs altas.

    ¿Ves más recomendable no pasar de determinados valores?

    ResponderEliminar
    Respuestas
    1. Hola Miguel Ángel, tu RP lleva el mismo sensor que la Canon 6D. En esa época Canon hacia sensores que no eran nada ISO invariantes, así que a diferencia de en sensores ISO invariantes, en tu cámara dejar ISO100 cuando hay poca luz es un suicidio. Si no puedes aumentar exposición por vía óptica (apertura/velocidad), que es siempre lo ideal, debes subir el ISO sin dudarlo hasta obtener niveles adecuados en el RAW o tendrás mucho ruido. Esto aplica totalmente a tu cámara:

      http://guillermoluijk.com/article/iso/index.htm

      Salu2!

      Eliminar

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.