Radiance HDR (.hdr)

Radiance Standard

Radiance RGBE (HDR) è il formato ad alta gamma dinamica fondamentale sviluppato per il sistema di imaging sintetico Radiance, che memorizza valori di luminanza fotometricamente accurati utilizzando un esponente condiviso a 8-bit.

Ispezione e metadati

I sistemi operativi e gli analizzatori di file identificano i file HDR ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Privato - i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file HDR ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

23 3F 52 41 44 49 41 4E 43 45 0A

RAPPRESENTAZIONE ASCII: #?RADIANCE\n

Standardizzazione: Radiance Synthetic Imaging System Standard

Specifiche tecniche

Architettura del contenitoreIntestazione ASCII terminata da una riga vuota, seguita da una stringa di risoluzione e da linee di scansione RLE binarie
CompressioneCodifica RLE adattiva applicata alle righe di scansione di ciascun canale
Endianness dei byteBig-Endian / Ordine dei byte di rete
Spazi coloreRGB Lineare Rec.709 con coordinate cromatiche CIE
Canali e strutturaRGBE: Rosso, Verde, Blu (mantisse a 8-bit) + Esponente condiviso a 8-bit
Dimensioni massimePraticamente illimitate (stringhe di risoluzione a 32-bit senza segno)
TrasparenzaNessuna (misure di luminanza radiante fisica)
Streaming e progressivoRiproduzione in streaming sequenziale, una linea di scansione alla volta

Matrice di confronto tecnico: HDR vs Concorrenti

Attributo tecnicoHDR (Attuale)EXRTIFFJPEG
Codifica dei pixelRGBE a 32-bit (esponente condiviso a 8-bit)Half a 16-bit / virgola mobile a 32-bit per canaleIntero a 8/16-bit o float a 32-bitIntero a 8-bit codificato in gamma
Uso principaleIlluminazione basata su immagini a 360 gradi (IBL)Compositing multi-passaggio VFXFotografia e prepressGrafica web standard
Gamma dinamica76 ordini di grandezza (da 10^-38 a 10^38)Intervallo in virgola mobile praticamente infinitoVaria in base alla profondità di bitIntervallo SDR limitato a 8-bit
Canali supportatiSolo RGBCanali arbitrari illimitatiMolteplici canali arbitrariRGB / CMYK

Modalità di corruzione comuni e guida al recupero esadecimale

L’immagine presenta bande orizzontali che attraversano l’intero fotogramma.

Causa principale: Byte di conteggio della lunghezza di esecuzione corrotto nella decompressione RLE della linea di scansione.

Ripristino: Ricostruisci i marcatori delle linee di scansione danneggiati utilizzando File2File.app HDR Repair o converti in EXR.

Analisi di sicurezza e vettori di attacco del parser

I decoder Radiance HDR spesso analizzano le righe dell'intestazione ASCII utilizzando routine di stringa non delimitate che possono innescare overflow del buffer dello stack.

Vettori di attacco noti

  • Chiamate sprintf/sscanf non delimitate durante la lettura delle intestazioni delle stringhe di risoluzione ('-Y %d +X %d').
  • Scrittura fuori dai limiti dell'heap durante la decodifica di linee di scansione RLE malformate.
  • Overflow di interi durante l'allocazione dei buffer di destinazione in virgola mobile a 32-bit.

Migliori pratiche difensive: Convalida la lunghezza dell'intestazione ASCII e le dimensioni delle linee di scansione prima di allocare i buffer di immagine.

Origini storiche e tappe fondamentali

2000Paul Debevec contribuisce a diffondere l'illuminazione basata su immagini HDR (IBL) nella computer grafica utilizzando file Radiance .hdr.
1997Codifica a lunghezza di esecuzione delle linee di scansione adattiva standardizzata per ridurre le dimensioni dei file.
1989Greg Ward inventa la codifica dei pixel RGBE a 32-bit e il formato .hdr presso il Lawrence Berkeley National Laboratory.

Vantaggi principali

  • Ingombro di memoria compatto: 32-bit per pixel, pur coprendo 76 ordini di grandezza della luminanza della luce fisica.
  • È supportato da molti software di rendering 3D per le mappe ambientali, ma il supporto dipende dall’applicazione.
  • Una struttura di file relativamente compatta, implementabile dai software che supportano Radiance HDR.

Limiti tecnici e svantaggi

  • Il banding di quantizzazione può verificarsi in regioni estremamente scure a causa della codifica con esponente condiviso a 8-bit.
  • I canali RGB non possono memorizzare numeri negativi né livelli arbitrari per passaggi multipli.
  • In gran parte soppiantato da OpenEXR nella produzione di effetti visivi con più passaggi.

Curiosità tecniche

  • Ogni file Radiance HDR inizia con l'intestazione di testo '#?RADIANCE' o '#?RGBE'.
  • Il formato è stato creato per simulare l'illuminazione architettonica fisica nella progettazione degli edifici prima che le strutture fossero costruite.
  • Il celebre articolo SIGGRAPH del 1997 di Paul Debevec 'Recovering High Dynamic Range Radiance Maps from Photographs' ha utilizzato questo formato per rivoluzionare l'illuminazione CGI.

Domande tecniche frequenti

A cosa serve un file HDRI nel 3D?

I file HDRI (.hdr) si usano come mappe ambientali panoramiche a 360 gradi per illuminare oggetti 3D con luce, ombre e riflessi fotorealistici.

Come funziona la codifica RGBE a 32-bit?

Invece di memorizzare tre numeri separati in virgola mobile, RGBE usa 8 bit ciascuno per rosso, verde e blu, più un esponente condiviso a 8 bit. In questo modo rappresenta l’intera gamma dinamica HDR in soli 4 byte per pixel.

Posso convertire HDR in JPG?

Sì. File2File.app può applicare la mappatura dei toni ai file Radiance HDR a 32 bit e convertirli in immagini JPG o PNG standard direttamente nel browser.