Imagen OpenEXR (.exr)
Academy EstándarOpenEXR es un formato de imagen HDR profesional utilizado en flujos de trabajo cinematográficos y de efectos visuales. Admite píxeles de coma flotante de 16 bits half y 32 bits, con varios canales y capas.
Inspección y metadatos
Los sistemas operativos y analizadores de archivos identifican los archivos de EXR inspeccionando la secuencia de bytes binarios inicial:
Firma de cabecera a nivel de bytes (bytes mágicos)
Los sistemas operativos y analizadores de archivos identifican los archivos de EXR inspeccionando la secuencia de bytes binarios inicial:
FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):
76 2F 31 01REPRESENTACIÓN ASCII: v/1.
Estandarización: Academy Software Foundation (ASWF) Open Standard
Especificaciones técnicas
| Arquitectura del contenedor | Contenedor extensible basado en bloques que admite canales arbitrarios, varias partes y capas de datos de profundidad |
| Compresión | PIZ (wavelet), ZIP/ZIPS, RLE, B44/B44A, DWAA/DWAB (DCT con pérdida) y sin compresión |
| Orden de bytes (Endianness) | Little-Endian (Intel x86) |
| Espacios de color | Linear ACEScg, ACES2065-1, Linear Rec.709, Coordenadas de cromaticidad arbitrarias |
| Canales y estructura | Nombres de canal arbitrarios (R, G, B, A, profundidad Z, normal, posición mundial, vectores de movimiento y Cryptomatte) |
| Dimensiones máximas | Prácticamente ilimitado (admite zoom profundo en mosaicos y lienzos de varios gigapíxeles) |
| Transparencia | Canal alfa completo de coma flotante y matrices volumétricas de muestras para composición profunda |
| Streaming y progresivo | La lectura en streaming por líneas de exploración o bloques en mosaico permite leer partes de un fotograma y crear representaciones de baja resolución rápidamente. |
Matriz de comparación técnica: EXR frente a la competencia
| Atributo técnico | EXR (Actual) | HDR | TIFF | PNG |
|---|---|---|---|---|
| Rango dinámico | Lineal de coma flotante de 16 bits (half) y 32 bits | Exponente compartido de 8 bits (RGBE) | Entero de 8 o 16 bits, o coma flotante de 32 bits | Entero estándar de 8 o 16 bits |
| Pases multicanal | Canales y partes con nombres arbitrarios ilimitados | Solo RGB | Soporte de capas limitado | Solo RGBA |
| Adopción de la industria | Estándar universal de VFX y 3D en Hollywood | Iluminación 3D y panorámicas (formato antiguo) | Preimpresión y fotografía | La compatibilidad varía según la aplicación. |
| Gestión de color | Integración nativa de ACES y OpenColorIO | Gamma / lineal ad-hoc | Etiquetas de perfil ICC | Etiquetas sRGB / ICC |
Modos de corrupción comunes y guía de recuperación hexadecimal
La imagen aparece completamente oscura o sobreexpuesta, con manchas blancas intensas.
Causa raíz: Falta la transformación de visualización de lineal a sRGB o está asignado un espacio de color ACES incorrecto.
Recuperación: Aplica una curva de tonos ACEScg o una transformación de lineal a sRGB en el visor HDR de File2File.app.
Análisis de seguridad y vectores de ataque al analizador
Los analizadores complejos de OpenEXR basados en bloques deben validar estrictamente las definiciones de canales y los límites de los mosaicos para evitar problemas de seguridad de memoria.
Vectores de ataque conocidos
- Desbordamiento de enteros al calcular el paso del búfer multicanal en libopenexr.
- Lectura fuera de los límites del montón al descomprimir flujos PIZ o DWAA.
- Denegación de servicio por recursión excesiva en cabeceras de bloques con varias partes.
Mejores prácticas defensivas: Descodifica los archivos EXR con compilaciones de WebAssembly aisladas y seguras para la memoria, y establece límites estrictos para las dimensiones de los mosaicos.
Orígenes históricos e hitos
Ventajas principales
- Admite de forma nativa coma flotante de 16 bits (FP16) y 32 bits (FP32), lo que conserva la luminancia desde la luz solar directa hasta las sombras oscuras.
- Su arquitectura multicanal permite guardar en un archivo todas las pasadas de renderizado 3D (beauty, diffuse, specular, depth y cryptomatte).
- Los algoritmos DWAA/DWAB y PIZ, líderes del sector, comprimen los archivos sin pérdida visual.
Limitaciones técnicas
- Los pases de renderizado multicapa de 4K/8K y 32 bits ocupan mucho espacio cuando se guardan sin comprimir.
- La descodificación multicanal puede consumir mucha CPU y memoria en programas de consumo.
- Requiere transformaciones de gestión de color (ACES u OCIO) para mostrarse correctamente en pantallas sRGB estándar.
Curiosidades técnicas interesantes
- Industrial Light & Magic inventó específicamente para OpenEXR el tipo de datos de coma flotante «half» de 16 bits.
- Los primeros cuatro bytes identificadores de todo archivo EXR son 0x76 0x2F 0x31 0x01, que en ASCII se leen «v/1\x01».
- OpenEXR admite «datos de profundidad» (Deep Data): un píxel puede almacenar varias muestras de color y profundidad a distintas distancias, por ejemplo, a través de humo y nubes semitransparentes.
Preguntas técnicas frecuentes
¿Por qué se usa OpenEXR en algunos flujos de efectos visuales?
Conserva datos de imagen HDR de alta precisión y admite varios canales, partes y datos profundos para composición.
¿Cuál es la diferencia entre half float y float en EXR?
Half float usa 16 bits por canal de color y ofrece 30 pasos de rango dinámico con la mitad del tamaño de un archivo de coma flotante de 32 bits. Por eso es la opción preferida del sector para los pases beauty.
¿Cómo puedo convertir EXR a PNG o JPG estándar?
Puedes convertir archivos EXR a imágenes PNG o JPG con mapeo de tonos en File2File.app, directamente desde el navegador.