Radiance HDR (.hdr)
Radiance StandardRadiance 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:
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 0ARAPPRESENTAZIONE ASCII: #?RADIANCE\n
Standardizzazione: Radiance Synthetic Imaging System Standard
Specifiche tecniche
| Architettura del contenitore | Intestazione ASCII terminata da una riga vuota, seguita da una stringa di risoluzione e da linee di scansione RLE binarie |
| Compressione | Codifica RLE adattiva applicata alle righe di scansione di ciascun canale |
| Endianness dei byte | Big-Endian / Ordine dei byte di rete |
| Spazi colore | RGB Lineare Rec.709 con coordinate cromatiche CIE |
| Canali e struttura | RGBE: Rosso, Verde, Blu (mantisse a 8-bit) + Esponente condiviso a 8-bit |
| Dimensioni massime | Praticamente illimitate (stringhe di risoluzione a 32-bit senza segno) |
| Trasparenza | Nessuna (misure di luminanza radiante fisica) |
| Streaming e progressivo | Riproduzione in streaming sequenziale, una linea di scansione alla volta |
Matrice di confronto tecnico: HDR vs Concorrenti
| Attributo tecnico | HDR (Attuale) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Codifica dei pixel | RGBE a 32-bit (esponente condiviso a 8-bit) | Half a 16-bit / virgola mobile a 32-bit per canale | Intero a 8/16-bit o float a 32-bit | Intero a 8-bit codificato in gamma |
| Uso principale | Illuminazione basata su immagini a 360 gradi (IBL) | Compositing multi-passaggio VFX | Fotografia e prepress | Grafica web standard |
| Gamma dinamica | 76 ordini di grandezza (da 10^-38 a 10^38) | Intervallo in virgola mobile praticamente infinito | Varia in base alla profondità di bit | Intervallo SDR limitato a 8-bit |
| Canali supportati | Solo RGB | Canali arbitrari illimitati | Molteplici canali arbitrari | RGB / 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
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.