Guillermo Luijk
Fujista de renombre
En webs como DxOMark o Photons to Photos (Bill Claff) se hacen mediciones del rango dinámico de un sensor. El procedimiento, elecciones particulares de cada uno al margen, es bastante estándar. Me ha pasado Hugo Rodríguez unos archivos de una Olympus OM-1 que permiten precisamente este cálculo. La idea es ver si el algoritmo fructifica en una app para que cada cual pueda medir el RD de su cámara (por cierto quien sepa generar ejecutables y pueda estar interesado que lo diga).
Pasos:
Se fotografían con la cámara parches de color uniforme poco expuestos: en este caso se muestra la toma a ISO12800. Se hace desenfocada sobre un monitor para no capturar la textura como ruido. El color magenta es para reducir los niveles verdes en el RAW relativos a los rojos y azules, y así tener valores más similares. En mi caso me ha dado igual porque solo tomaré el canal verde del RAW para la prueba:
Del archivo RAW se extraen (con DCRAW) los datos RAW puros, es decir los valores numéricos sin revelar el RAW, y en concreto uno de los canales G de la matriz de Bayer. Con esos valores se construye una imagen monocroma a la que se corrige el error de perspectiva de la captura para poder identificar más fácilmente los parches. Aunque hay corrección geométrica no hay interpolación, todos los valores de la siguiente imagen son tal cual aparecían en el RAW (es lo que se llama "interpolación" nearest neighbour):
Acotados los parches que vana usarse, vemos que se desecha una buena parte de la imagen porque es más importante que el desenfoque no contamine los parches de sus vecinos que el disponer de muchos píxeles. Para mi gusto esta carta (es la que propone en su web Bill Claff), tiene demasiados parches. No hacen falta tantos, y con menos parches el método sería más robusto frente al desenfoque y la distorsión.
A continuación se lee en cada parche el nivel de señal útil o valor de exposición RAW (la media de valores RAW en el parche) así como el ruido (desviación estándar de los valores RAW en el parche, es una operación estadística perfectamente conocida). El cociente de ambos constituye la relación S/N:
S/N = Media(niveles en parche) / DesvEstandar(niveles en parche)
Nuestro objetivo precisamente es obtener las Curvas de relación S/N, que son las gráficas que nos dan la relación S/N (aquí la mostraremos en escala de decibelios=dB) para cada posible valor de señal (nivel de exposición RAW mostrado en pasos respecto a la saturación, la cual situamos en la referencia 0EV).
Cada parche de cada captura (Hugo me ha pasado 10 archivos RAW a todos los ISOs de la cámara) proporciona una muestra representada como un circulito rojo. La gráfica queda así:
Y qué tiene que ver esto con el Rango dinámico? todo. Sobre esas curvas, y elegido un criterio umbral de relación S/N mínima exigible para considerar el RD utilizable en fotografía, se mide cuantos pasos desde la saturación (el 0EV de la derecha en el eje X) hay hasta que se alcanza una relación S/N de 12dB (criterio fotográfico de ruido aceptable).
Por ejemplo si seguimos la curva de ISO800, vemos que cruza la línea horizontal de 12dB casi en el punto -8EV, por lo tanto la Olympus OM-1 ISO800 tiene unos 7,8-7,9 pasos de rango dinámico efectivo utilizable en fotografía.
Si os fijáis en la forma de las curvas, las de ISO200-800 van muy paralelas, y lo mismo el resto de ISO1600-ISO65535. El cambio de comportamiento no es un error, es más bien signo de que "algo se cuece" en las tripas de esta cámara, ya sea algún procesado software de ruido clandestino (malo), o por algún mecanismo hardware tipo dual-gain (bueno). Si miramos la gráfica de RD de Bill Claff para esta cámara, veremos un "salto" extraño en la tendencia justo tras ISO800:
Este tipo de cosas, que se ven mejor atendiendo al detalle de las Curvas de relación S/N, son las que explican los "saltos" y comportamientos aparentemente caprichosos del RD de ciertas cámaras vs el ISO.
Al que le guste la programación, aquí está todo:
github.com
Salu2!
Pasos:
Se fotografían con la cámara parches de color uniforme poco expuestos: en este caso se muestra la toma a ISO12800. Se hace desenfocada sobre un monitor para no capturar la textura como ruido. El color magenta es para reducir los niveles verdes en el RAW relativos a los rojos y azules, y así tener valores más similares. En mi caso me ha dado igual porque solo tomaré el canal verde del RAW para la prueba:
Del archivo RAW se extraen (con DCRAW) los datos RAW puros, es decir los valores numéricos sin revelar el RAW, y en concreto uno de los canales G de la matriz de Bayer. Con esos valores se construye una imagen monocroma a la que se corrige el error de perspectiva de la captura para poder identificar más fácilmente los parches. Aunque hay corrección geométrica no hay interpolación, todos los valores de la siguiente imagen son tal cual aparecían en el RAW (es lo que se llama "interpolación" nearest neighbour):
Acotados los parches que vana usarse, vemos que se desecha una buena parte de la imagen porque es más importante que el desenfoque no contamine los parches de sus vecinos que el disponer de muchos píxeles. Para mi gusto esta carta (es la que propone en su web Bill Claff), tiene demasiados parches. No hacen falta tantos, y con menos parches el método sería más robusto frente al desenfoque y la distorsión.
A continuación se lee en cada parche el nivel de señal útil o valor de exposición RAW (la media de valores RAW en el parche) así como el ruido (desviación estándar de los valores RAW en el parche, es una operación estadística perfectamente conocida). El cociente de ambos constituye la relación S/N:
S/N = Media(niveles en parche) / DesvEstandar(niveles en parche)
Nuestro objetivo precisamente es obtener las Curvas de relación S/N, que son las gráficas que nos dan la relación S/N (aquí la mostraremos en escala de decibelios=dB) para cada posible valor de señal (nivel de exposición RAW mostrado en pasos respecto a la saturación, la cual situamos en la referencia 0EV).
Cada parche de cada captura (Hugo me ha pasado 10 archivos RAW a todos los ISOs de la cámara) proporciona una muestra representada como un circulito rojo. La gráfica queda así:
Y qué tiene que ver esto con el Rango dinámico? todo. Sobre esas curvas, y elegido un criterio umbral de relación S/N mínima exigible para considerar el RD utilizable en fotografía, se mide cuantos pasos desde la saturación (el 0EV de la derecha en el eje X) hay hasta que se alcanza una relación S/N de 12dB (criterio fotográfico de ruido aceptable).
Por ejemplo si seguimos la curva de ISO800, vemos que cruza la línea horizontal de 12dB casi en el punto -8EV, por lo tanto la Olympus OM-1 ISO800 tiene unos 7,8-7,9 pasos de rango dinámico efectivo utilizable en fotografía.
Si os fijáis en la forma de las curvas, las de ISO200-800 van muy paralelas, y lo mismo el resto de ISO1600-ISO65535. El cambio de comportamiento no es un error, es más bien signo de que "algo se cuece" en las tripas de esta cámara, ya sea algún procesado software de ruido clandestino (malo), o por algún mecanismo hardware tipo dual-gain (bueno). Si miramos la gráfica de RD de Bill Claff para esta cámara, veremos un "salto" extraño en la tendencia justo tras ISO800:
Este tipo de cosas, que se ven mejor atendiendo al detalle de las Curvas de relación S/N, son las que explican los "saltos" y comportamientos aparentemente caprichosos del RD de ciertas cámaras vs el ISO.
Al que le guste la programación, aquí está todo:
GitHub - gluijk/measuring-photographic-dynamicrange: Classic method to measure any camera sensor's dynamic range based on noise measurements
Classic method to measure any camera sensor's dynamic range based on noise measurements - gluijk/measuring-photographic-dynamicrange
Salu2!
Última edición: