Radiance HDR (.hdr)

Estándar Estándar

Radiance 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:

Selecciona o arrastra archivos aquí

Privado - los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

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 0A

REPRESENTACIÓN ASCII: #?RADIANCE\n

Estandarización: Estándar del sistema de imágenes sintéticas Radiance

Especificaciones técnicas

Arquitectura del contenedorCabecera ASCII, seguida de una línea vacía, la cadena de resolución y líneas de exploración binarias codificadas con RLE
CompresiónCodificació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 colorRGB lineal Rec.709 con coordenadas de cromaticidad CIE
Canales y estructuraRGBE: rojo, verde y azul (mantisas de 8 bits) más un exponente compartido de 8 bits
Dimensiones máximasPrácticamente ilimitadas (cadenas de resolución con enteros sin signo de 32 bits)
TransparenciaNinguna (mediciones de luminancia radiante física)
Streaming y progresivoProcesamiento 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écnicoHDR (Actual)EXRTIFFJPEG
Codificación de píxelesRGBE de 32 bits (exponente compartido de 8 bits)Coma flotante de 16 bits (half) / coma flotante de 32 bits por canalEntero de 8 o 16 bits, o coma flotante de 32 bitsEntero de 8 bits con codificación gamma
Caso de uso principalIluminación de entorno de 360 grados (IBL)Composición multipaso de efectos visualesFotografía y preimpresiónGráficos web estándar
Alcance de rango dinámico76 órdenes de magnitud (de 10^-38 a 10^38)Rango flotante prácticamente infinitoVaría según la profundidad de bitsRango SDR limitado de 8 bits
Canales admitidosSolo RGBCanales arbitrarios ilimitadosVarios canales arbitrariosRGB / 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

2000Paul Debevec populariza la iluminación basada en imágenes HDR (IBL) en los gráficos por ordenador con archivos .hdr de Radiance.
1997Se normaliza la codificación adaptativa por longitud de secuencia en líneas de exploración para reducir el tamaño de los archivos.
1989Greg Ward inventa la codificación de píxeles RGBE de 32 bits y el formato .hdr en el Laboratorio Nacional Lawrence Berkeley.

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.