Radiance HDR (.hdr)
Standardul StandardRadiance RGBE (HDR) este formatul fundamental cu gamă dinamică ridicată dezvoltat pentru sistemul de imagistică sintetică Radiance, care stochează valori de luminozitate corecte fotometric folosind un exponent partajat pe 8 biți.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele HDR prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele HDR prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
23 3F 52 41 44 49 41 4E 43 45 0AREPREZENTARE ASCII: #?RADIANCE\n
Standardizare: Standardul sistemului de imagistică sintetică Radiance
Specificații tehnice
| Arhitectură container | Antet ASCII care se termină cu o linie goală, urmat de șirul de rezoluție și liniile de scanare RLE binare |
| Compresie | Codificare adaptivă a lungimii de secvență (RLE) aplicată liniilor de scanare, canal cu canal |
| Ordinea octeților | Big-Endian / ordinea octeților de rețea |
| Spații de culoare | RGB Linear Rec.709 cu coordonate cromatice CIE |
| Canale și structură | RGBE: roșu, verde, albastru (mantise pe 8 biți) și exponent comun pe 8 biți |
| Dimensiuni maxime | Practic nelimitate (șiruri de rezoluție cu întregi fără semn pe 32 de biți) |
| Transparență | Niciuna (măsurători fizice ale luminozității radiante) |
| Streaming și progresiv | Redare secvențială în flux, linie de scanare cu linie de scanare |
Matrice de comparație tehnică: HDR vs. concurenți
| Atribut tehnic | HDR (Curent) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Codarea pixelilor | 32-bit RGBE (exponent partajat pe 8 biți) | 16-bit half / 32-bit float per canal | Întreg 8/16-bit sau float 32-bit | Întreg codat cu gamma pe 8 biți |
| Utilizare principală | Iluminare de mediu la 360 de grade (IBL) | Compoziting VFX cu treceri multiple | Fotografie și prepresă | Grafică web standard |
| Domeniul gamei dinamice | 76 de ordine de mărime (de la 10^-38 la 10^38) | Interval flotant practic infinit | Variază în funcție de adâncimea biților | Gamă SDR limitată la 8 biți |
| Canale acceptate | Doar RGB | Canale arbitrare nelimitate | Mai multe canale arbitrare | RGB / CMYK |
Moduri comune de corupție și ghid de recuperare hexazecimală
Imaginea afișează benzi de dungi orizontale pe întreaga lățime a cadrului.
Cauză principală: Octet de numărătoare a lungimii de rulare corupt în decomprimarea RLE a liniei de scanare.
Recuperare: Reconstituie marcajele deteriorate ale liniilor de scanare cu HDR Repair din File2File.app sau convertește fișierul în EXR.
Analiză de securitate și vectori de atac asupra parserului
Decodoarele Radiance HDR analizează adesea liniile de antet ASCII folosind rutine de șiruri nelimitate care pot declanșa depășiri de stivă (stack buffer overflows).
Vectori de atac cunoscuți
- Apeluri sprintf/sscanf fără limite la citirea antetelor care conțin șirul de rezoluție („-Y %d +X %d").
- Scriere în afara limitelor heap-ului în timpul decodării liniei de scanare RLE malformate.
- Depășire de întreg la alocarea bufferelor de destinație pentru valori în virgulă mobilă pe 32 de biți.
Cele mai bune practici de securitate: Verifică lungimea antetului ASCII și dimensiunile liniilor de scanare înainte să aloci buffere pentru imagini.
Origini istorice și repere
Avantaje cheie și beneficii
- Amprentă de memorie compactă de 32 de biți per pixel, acoperind în același timp 76 de ordine de mărime ale luminozității fizice a luminii.
- Este acceptat de numeroase pachete de randare 3D pentru hărți de mediu, deși compatibilitatea depinde de aplicație.
- Structură de fișier relativ compactă, care poate fi implementată de software-ul compatibil cu Radiance HDR.
Limitări tehnice și dezavantaje
- Bandarea de cuantizare poate apărea în regiunile extrem de întunecate din cauza codării exponentului partajat pe 8 biți.
- Canalele RGB nu pot stoca numere negative sau straturi arbitrare cu treceri multiple.
- În mare măsură înlocuit de OpenEXR pentru producția de efecte vizuale cu treceri multiple.
Curiozități tehnice interesante
- Fiecare fișier Radiance HDR începe cu antetul text „#?RADIANCE" sau „#?RGBE".
- Formatul a fost creat pentru a simula iluminarea arhitecturală fizică în proiectarea clădirilor înainte ca structurile să fie construite.
- Lucrarea iconică din 1997 a lui Paul Debevec de la SIGGRAPH, „Recovering High Dynamic Range Radiance Maps from Photographs", a folosit acest format pentru a revoluționa iluminarea CGI.
Întrebări tehnice frecvente
Pentru ce este utilizat un fișier HDRI în 3D?
Fișierele HDRI (.hdr) sunt utilizate ca hărți de mediu panoramice la 360 de grade pentru a oferi iluminare fotorealistă din lumea reală, umbre și reflexii pe obiecte 3D.
Cum funcționează codarea RGBE pe 32 biți?
În loc să stocheze trei numere separate în virgulă mobilă, RGBE utilizează câte 8 biți pentru roșu, verde și albastru, și un exponent comun de 8 biți, încadrând întreaga gamă dinamică HDR în doar 4 octeți per pixel.
Pot converti HDR în JPG?
Da. File2File.app poate aplica maparea de tonuri și poate converti fișiere Radiance HDR pe 32 biți în imagini JPG sau PNG standard direct în browserul tău.