Rafael Vida’s Zine

Binning en Leica

¿La función Triple Resolution Technology de la Leica M11-P reduce deverdad el ruido y mejora el rango dinámico, o es un downsampling con marketing? Lo medimos con técnicas cuantitativas: SNR por imagen-diferencia, comparativa contra remuestreo Lanczos y rango dinámico ingenieril, a tres ISOs distintos.

1. La pregunta

La Leica M11 y su variante M11-P incorporan un sensor full-frame BSI CMOS de 60 megapíxeles cuya particularidad declarada es que el archivo DNG puede almacenarse en tres resoluciones: L-DNG (60 MP), M-DNG (36 MP) y S-DNG (18 MP). Leica describe el mecanismo como «pixel binning» y atribuye a las versiones reducidas un mejor comportamiento en ruido y rango dinámico.

Las pistas técnicas, sin embargo, generan dudas. Las dimensiones de los tres formatos no guardan ratios enteros entre sí: el factor entre L y M es 1.28, y entre L y S es 1.81. Eso descarta agrupaciones limpias de píxeles 2×2 o 3×3, que son las únicas configuraciones físicamente sencillas para un binning verdadero. Es altamente probable que se trate de un downsampling por software realizado por el procesador Maestro III sobre los datos ya digitalizados.

La pregunta de este estudio es directa: ¿hay una ventaja real, medible, de M y S sobre L? Y si la hay, ¿de cuánto y bajo qué condiciones?

2. El método: SNR por imagen-diferencia

La medida ingenua de relación señal-ruido sobre un parche presuntamente uniforme — calcular la media μ y la desviación estándar σ y aplicar 20·log₁₀(μ/σ) — funciona solo si el parche está libre de cualquier textura. Si la zona elegida tiene detalle real (la veta de la madera, micro-relieve de una pared, un degradado sutil), σ acaba midiendo esa textura en lugar del ruido del sensor, y la SNR resulta absurdamente baja.

El procedimiento robusto consiste en capturar dos tomas idénticas de una escena estática con trípode y restarlas píxel a píxel:

D(x,y) = I₁(x,y) − I₂(x,y)

La señal se cancela exactamente porque es la misma en ambas tomas. Lo que queda en D es la suma de los ruidos independientes de las dos capturas, y asumiendo varianzas similares:

σruido = σD / √2

Esto permite usar parches grandes y obtener SNR fiables incluso si la zona tiene detalle. Es la técnica empleada en análisis profesionales de sensores y la que vamos a usar.

2.1 Predicción para binning ideal

Si la combinación de N píxeles independientes fuese perfecta (binning analógico verdadero o promediado matemático ideal), la mejora teórica de SNR sería 10·log₁₀(N) dB. Para los formatos de la M11-P:

  • L → M (60 → 36 MP), N ≈ 1.67: ganancia teórica +2.2 dB
  • L → S (60 → 18 MP), N ≈ 3.33: ganancia teórica +5.2 dB

Cualquier desviación sistemática frente a estos valores es informativa: nos dice si Leica hace binning real, si solo downsamplea o si añade denoising.

3. Procedimiento experimental

Capturas con Leica M11-P sobre trípode firme, autodisparador 2 s, enfoque manual fijo, balance de blancos manual idéntico para todas las tomas. Para cada uno de tres ISOs (64, 1600 y 6400) se realizaron nueve disparos sucesivos: tres en L-DNG, tres en M-DNG y tres en S-DNG, con misma escena y exposición equivalente.

Los DNG se procesan en Python con rawpy en modo lineal (sin gamma, sin auto-brillo, AHD demosaico, salida 16 bits normalizada a [0,1]). Sobre las imágenes resultantes se calculan tres bloques de métricas:

  1. SNR a resolución nativa con método de imagen-diferencia, sobre un parche en coordenadas relativas que cubre la misma zona de la escena en las tres resoluciones. Promediado sobre los tres pares posibles de tomas.
  2. SNR a tamaño común: L y M se reducen por software (Lanczos con anti-aliasing) al tamaño de S y se compara la SNR resultante con la de S nativa. Esta es la prueba clave para distinguir downsampling puro de procesado activo.
  3. Rango dinámico ingenieril sobre un parche en sombra profunda, donde σ mide directamente el ruido de lectura.

4. Resultados

4.1 SNR a resolución nativa

ISOL-DNG (60 MP)M-DNG (36 MP)S-DNG (18 MP)
6433.42 dB31.54 dB32.53 dB
160020.66 dB23.86 dB23.92 dB
640014.48 dB17.47 dB17.77 dB

4.2 Ganancia M y S sobre L, vs predicción teórica

ISOM − LS − LTeoría MTeoría S
64−1.88 dB−0.89 dB+2.2 dB+5.2 dB
1600+3.20 dB+3.26 dB+2.2 dB+5.2 dB
6400+2.99 dB+3.29 dB+2.2 dB+5.2 dB

Tres observaciones inmediatas. Primera, a ISO 64 las versiones reducidas tienen MÁS ruido por píxel que la imagen nativa, no menos. Segunda, a ISOs altos las ganancias son positivas (~3 dB) pero M y S obtienen prácticamente la misma mejora, cuando la teoría del binning ideal predice una diferencia de 3 dB entre ellas. Tercera, la magnitud queda intermedia entre las predicciones para M y S, sin ajustarse a ninguna.

4.3 SNR a tamaño común — la prueba decisiva

Reducimos todas las imágenes a 18 MP por software y medimos SNR del canal G. La pregunta es: ¿la S-DNG nativa es mejor que tomar una L-DNG y reducirla nosotros?

ISOL → S LanczosM → S LanczosS nativa
6435.81 dB32.10 dB32.53 dB
160023.05 dB25.57 dB23.92 dB
640016.86 dB19.07 dB17.77 dB

El resultado es contundente: la S-DNG nativa no es la mejor opción en ningún ISO probado. A ISO 64, reducir nosotros la L-DNG por software gana por 3.3 dB (un stop entero de SNR). A ISO 1600 y 6400, la mejor opción es disparar M-DNG y reducir por software, con ganancias de 1.6 y 1.3 dB respectivamente sobre la S-DNG nativa.

4.4 Rango dinámico ingenieril

ISOL-DNGM-DNGS-DNGM − LS − L
6439.43 dB39.15 dB39.57 dB−0.28+0.14
160037.21 dB38.90 dB38.92 dB+1.69+1.71
640032.57 dB34.96 dB35.31 dB+2.39+2.74

A ISO 64 las tres resoluciones ofrecen DR equivalente. A ISOs altos M y S sacan ventaja (1.7-2.7 dB), pero — como con la SNR — se mantienen muy próximas entre sí, sin reflejar la diferencia de 3 dB que un binning real predeciría entre ambas.

5. Discusión

5.1 No hay binning físico real

Tres líneas de evidencia convergen para descartar la interpretación del binning verdadero:

(a) las dimensiones de los archivos no son ratios enteros,

(b) las ganancias observadas no escalan con √N como exigiría un promediado de N píxeles independientes, y

(c) M-DNG y S-DNG dan prácticamente la misma SNR a pesar de diferir en un factor 2 de píxeles. Si fuera binning analógico, S debería superar a M por unos 3 dB. No lo hace.

Lo observado encaja con un downsampling por software seguido de un denoising suave aplicado en el procesador, todo sobre los datos ya digitalizados.

5.2 El comportamiento bimodal por ISO

El hallazgo más interesante es la transición entre ISO 64 y los ISOs medios-altos. A ISO base la SNR del sensor ya es muy alta (>33 dB) y prácticamente no hay ruido que reducir. Cualquier remuestreo introduce errores numéricos sin beneficio compensatorio: por eso M y S salen peor que L. A partir de ISO 1600, donde sí hay ruido apreciable, el procesado interno aporta ~3 dB de mejora consistente.

La constancia de esa mejora (~3 dB tanto para M como para S, tanto a ISO 1600 como a 6400) sugiere que Leica aplica un denoising calibrado a un nivel fijo, ni demasiado agresivo (para no destruir detalle) ni nulo. Es una decisión de procesado, no una propiedad emergente del sensor.

5.3 La pregunta práctica: ¿qué resolución conviene disparar?

A ISO base (64-200): dispara siempre L-DNG. Si necesitas un archivo más pequeño, redúcelo en revelado: el resultado tiene 3 dB más de SNR que la S-DNG nativa.

A ISOs medios y altos (1600+): si vas a entregar a 18 MP, dispara M-DNG y reduce en revelado. Es la combinación con mejor SNR del estudio.

S-DNG no es la mejor opción en ningún escenario probado. Su utilidad real está en velocidad de ráfaga y tamaño de archivo, no en calidad de imagen.

5.4 Limitaciones

El parche uniforme cae en zona algo subexpuesta (μ ≈ 0.08 en G), por lo que las SNR absolutas son menores de las que se obtendrían en zona de tono medio. Las diferencias relativas entre L, M y S no se ven afectadas, pero los valores absolutos no deben tomarse como representativos del rendimiento óptimo del sensor.

Solo se han caracterizado tres ISOs. La transición exacta entre el régimen donde el procesado degrada (ISO 64) y donde mejora (ISO 1600+) podría refinarse midiendo ISOs intermedios. Tampoco se ha medido la pérdida de detalle (resolución espacial real, MTF) que el procesado pudiera introducir; ese sería el complemento natural del estudio.

6. Conclusión

El «Triple Resolution Technology» de la Leica M11-P no es un sistema de binning físico. Las tres resoluciones DNG comparten el mismo readout del sensor a 60 MP; las versiones M y S son producto de un downsampling por software con un filtrado de ruido suave aplicado a posteriori en el Maestro III.

La ventaja real en SNR es de aproximadamente 3 dB a ISOs medios-altos (sin escalar con el factor de reducción) y nula o ligeramente negativa a ISO base. En términos fotográficos, la mejora máxima observada equivale a alrededor de medio stop de SNR aparente.

El «Triple Resolution Technology» tiene utilidad real, pero no la que su denominación sugiere: su valor está en flujo de trabajo (tamaño de archivo, profundidad de buffer en ráfaga), no en una mejora física del sensor que el usuario no pueda obtener en post-producción con un buen algoritmo de remuestreo.


Apéndice: núcleo del código Python

import numpy as np
import rawpy
from skimage.transform import resize
def cargar_raw_lineal(ruta):
with rawpy.imread(ruta) as raw:
rgb = raw.postprocess(
gamma=(1, 1), no_auto_bright=True, output_bps=16,
use_camera_wb=True,
demosaic_algorithm=rawpy.DemosaicAlgorithm.AHD,
)
return rgb.astype(np.float32) / 65535.0
def ruido_por_diferencia(img_a, img_b, parche):
"""SNR limpia por método de imagen-diferencia.
parche: tupla (x, y, w, h) en coordenadas relativas [0,1]."""
h, w = img_a.shape[:2]
x, y, pw, ph = (int(parche[0]*w), int(parche[1]*h),
int(parche[2]*w), int(parche[3]*h))
pa = img_a[y:y+ph, x:x+pw]
pb = img_b[y:y+ph, x:x+pw]
diff = pa - pb
out = {}
for idx, canal in enumerate("RGB"):
mu = float(pa[..., idx].mean())
sigma = float(diff[..., idx].std()) / np.sqrt(2)
snr_db = 20 * np.log10(mu / sigma) if sigma > 0 else float("nan")
out[canal] = {"mu": mu, "sigma": sigma, "snr_db": snr_db}
return out
def downsample(img, h_obj, w_obj):
return resize(img, (h_obj, w_obj),
anti_aliasing=True, preserve_range=True).astype(np.float32)

Análisis cuantitativo realizado sobre Leica M11-P. Todos los valores en dB, canal G del demosaico AHD, método de imagen-diferencia con tres tomas por resolución y promediado sobre los tres pares posibles.

Deja un comentario