Radiance HDR (.hdr)
Estándar EstándarRadiance RGBE (HDR) es un formato pionero de alto rango dinámico, creado para el sistema de imágenes sintéticas Radiance. Almacena valores de luminancia fotométricamente precisos mediante un exponente compartido de 8 bits.
Inspección y metadatos
Los sistemas operativos y analizadores de archivos identifican los archivos de HDR 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 HDR inspeccionando la secuencia de bytes binarios inicial:
FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):
23 3F 52 41 44 49 41 4E 43 45 0AREPRESENTACIÓN ASCII: #?RADIANCE\n
Estandarización: Estándar del sistema de imágenes sintéticas Radiance
Especificaciones técnicas
| Arquitectura del contenedor | Cabecera ASCII, seguida de una línea vacía, la cadena de resolución y líneas de exploración binarias codificadas con RLE |
| Compresión | Codificación adaptativa por longitud de secuencia (RLE) en cada línea de exploración y canal |
| Orden de bytes (Endianness) | Big-endian (orden de bytes de red) |
| Espacios de color | RGB lineal Rec.709 con coordenadas de cromaticidad CIE |
| Canales y estructura | RGBE: rojo, verde y azul (mantisas de 8 bits) más un exponente compartido de 8 bits |
| Dimensiones máximas | Prácticamente ilimitadas (cadenas de resolución con enteros sin signo de 32 bits) |
| Transparencia | Ninguna (mediciones de luminancia radiante física) |
| Streaming y progresivo | Procesamiento secuencial en streaming, línea de exploración por línea de exploración |
Matriz de comparación técnica: HDR frente a la competencia
| Atributo técnico | HDR (Actual) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Codificación de píxeles | RGBE de 32 bits (exponente compartido de 8 bits) | Coma flotante de 16 bits (half) / coma flotante de 32 bits por canal | Entero de 8 o 16 bits, o coma flotante de 32 bits | Entero de 8 bits con codificación gamma |
| Caso de uso principal | Iluminación de entorno de 360 grados (IBL) | Composición multipaso de efectos visuales | Fotografía y preimpresión | Gráficos web estándar |
| Alcance de rango dinámico | 76 órdenes de magnitud (de 10^-38 a 10^38) | Rango flotante prácticamente infinito | Varía según la profundidad de bits | Rango SDR limitado de 8 bits |
| Canales admitidos | Solo RGB | Canales arbitrarios ilimitados | Varios canales arbitrarios | RGB / CMYK |
Modos de corrupción comunes y guía de recuperación hexadecimal
La imagen muestra franjas horizontales a lo largo de todo el fotograma.
Causa raíz: El byte que indica la longitud de secuencia está dañado en los datos RLE de la línea de exploración.
Recuperación: Reconstruye los marcadores de líneas de exploración dañados con el reparador HDR de File2File.app o convierte el archivo a EXR.
Análisis de seguridad y vectores de ataque al analizador
Los descodificadores Radiance HDR suelen analizar las cabeceras ASCII con funciones que leen cadenas sin límite, lo que puede provocar desbordamientos del búfer de pila.
Vectores de ataque conocidos
- Llamadas a sprintf/sscanf sin límites al leer la cadena de resolución de la cabecera («-Y %d +X %d»).
- Escritura fuera de los límites del montón al descodificar líneas de exploración RLE mal formadas.
- Desbordamiento de enteros al asignar búferes de destino de coma flotante de 32 bits.
Mejores prácticas defensivas: Antes de asignar los búferes de imagen, Valida la longitud de la cabecera ASCII y las dimensiones de las líneas de exploración.
Orígenes históricos e hitos
Ventajas principales
- Ocupa solo 32 bits por píxel y representa 76 órdenes de magnitud de luminancia física.
- Muchos programas de renderizado 3D admiten HDR para mapas de entorno, aunque la compatibilidad depende de cada aplicación.
- Su estructura de archivo es relativamente compacta y puede implementarse en programas compatibles con Radiance HDR.
Limitaciones técnicas
- El exponente compartido de 8 bits puede provocar bandas de cuantización en zonas muy oscuras.
- Los canales RGB no pueden almacenar valores negativos ni capas arbitrarias de varias pasadas.
- Ha sido reemplazado en gran medida por OpenEXR para la producción de efectos visuales multipaso.
Curiosidades técnicas interesantes
- Todos los archivos Radiance HDR empiezan con la cabecera de texto «#?RADIANCE» o «#?RGBE».
- El formato fue creado para simular la iluminación arquitectónica física en el diseño de edificios antes de que se construyeran las estructuras.
- En su influyente artículo de SIGGRAPH de 1997, «Recovering High Dynamic Range Radiance Maps from Photographs», Paul Debevec usó este formato para revolucionar la iluminación CGI.
Preguntas técnicas frecuentes
¿Para qué se utiliza un archivo HDRI en 3D?
Los archivos HDRI (.hdr) sirven como mapas de entorno panorámicos de 360 grados para proporcionar iluminación, sombras y reflejos fotorrealistas a objetos 3D.
¿Cómo funciona la codificación RGBE de 32 bits?
En vez de guardar tres números de coma flotante independientes, RGBE usa 8 bits para cada canal rojo, verde y azul, más un exponente compartido de 8 bits. Así almacena todo el rango dinámico HDR en solo 4 bytes por píxel.
¿Puedo convertir HDR a JPG?
Sí. File2File.app puede aplicar mapeo de tonos y convertir archivos Radiance HDR de 32 bits a imágenes JPG o PNG estándar, directamente en el navegador.