Radiance HDR (.hdr)
Standard StandardRadiance RGBE (HDR) je osnovni format visokog dinamičkog opsega razvijen za sistem sintetičkog snimanja Radiance, koji čuva fotometrijski tačne vrednosti luminanse pomoću zajedničkog 8-bitnog eksponenta.
Pregled i metapodaci
Operativni sistemi i analizatori datoteka identifikuju HDR datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (magični bajtovi)
Operativni sistemi i analizatori datoteka identifikuju HDR datoteke proverom početnog binarnog niza bajtova:
HEKSADECIMALNI POTPIS (OFFSET 0):
23 3F 52 41 44 49 41 4E 43 45 0AASCII REPREZENTACIJA: #?RADIANCE\n
Standardizacija: Standard za Radiance Synthetic Imaging System
Tehničke specifikacije
| Arhitektura kontejnera | ASCII zaglavlje koje se završava praznim redom, nakon čega slede tekst rezolucije i binarne RLE linije skeniranja |
| Kompresija | Adaptivno kodiranje dužina nizova (RLE) primenjeno na liniju skeniranja svakog kanala |
| Bajtni redosled (Endianness) | Redosled bajtova od najznačajnijeg ka najmanje značajnom (big-endian, mrežni redosled) |
| Prostori boja | RGB linearni Rec.709 sa koordinatama hromatičnosti CIE |
| Kanali i struktura | RGBE: crvena, zelena i plava (mantise od 8 bita) i zajednički eksponent od 8 bita |
| Maksimalne dimenzije | Praktično neograničeno (tekst rezolucije sa neoznačenim celim brojevima od 32 bita) |
| Transparentnost | Nema je (merenja fizičke zračne luminanse) |
| Strimovanje i progresivno učitavanje | Sekvencijalna reprodukcija strimovanjem liniju po liniju skeniranja |
Tehnička matrica poređenja: HDR u odnosu na konkurente
| Tehnički atribut | HDR (Trenutno) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Kodiranje piksela | 32-bitni RGBE (deljeni 8-bitni eksponent) | 16-bitni half / 32-bitni float po kanalu | Celobrojni 8/16-bitni ili 32-bitni float | 8-bitni celi broj kodiran gamom |
| Primarna namena | Osvetljenje okruženja od 360 stepeni (IBL) | VFX višeslojni kompoziting | Fotografija i priprema za štampu | Standardna veb grafika |
| Raspon dinamičkog opsega | 76 redova veličine (10^-38 do 10^38) | Praktično beskonačan opseg brojeva sa pokretnim zarezom | Varira u zavisnosti od dubine bita | Ograničeni 8-bitni SDR opseg |
| Podržani kanali | Samo RGB | Neograničeni proizvoljni kanali | Više proizvoljnih kanala | RGB / CMYK |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Slika prikazuje horizontalne trake duž cele širine kadra.
Osnovni uzrok: Oštećen bajt brojača dužine ponavljanja (RLE) tokom dekompresije linije skeniranja.
Oporavak: Rekonstruišite oštećene oznake linija skeniranja pomoću alata File2File.app HDR Repair ili konvertujte u EXR.
Bezbednosna analiza i vektori napada parsera
Radiance HDR dekoderi često parsiraju linije ASCII zaglavlja koristeći funkcije za rad sa niskama koje nemaju ograničenja dužine, što može izazvati prelivanje bafera na steku (stack buffer overflow).
Poznati vektori napada
- Neograničeni pozivi funkcija sprintf/sscanf prilikom čitanja zaglavlja sa nizom rezolucije ('-Y %d +X %d').
- Upis van granica dinamički alocirane memorije tokom dekodiranja nepravilno formatirane RLE linije skeniranja.
- Prelivanje celobrojne vrednosti prilikom alokacije odredišnih bafera sa 32-bitnim pokretnim zarezom.
Najbolje prakse za zaštitu: Proverite dužinu ASCII zaglavlja i dimenzije linija skeniranja pre alokacije bafera slika.
Istorijat i prekretnice
Ključne prednosti
- Kompaktna memorijska zauzetost od 32 bita po pikselu, uz opseg koji obuhvata 76 redova veličine fizičke luminanse svetlosti.
- Podržavaju ga mnogi paketi za 3D renderovanje za mape okruženja, mada podrška zavisi od aplikacije.
- Relativno kompaktna struktura datoteke koju mogu da implementiraju programi sa podrškom za Radiance HDR.
Tehnička ograničenja i nedostaci
- U ekstremno tamnim regionima može doći do pojave traka (banding) usled kvantizacije zbog kodiranja sa deljenim 8-bitnim eksponentom.
- RGB kanali ne mogu da čuvaju negativne brojeve ili proizvoljne višeslojne prolaze.
- Uglavnom ga je potisnuo OpenEXR za produkciju vizuelnih efekata sa više prolaza.
Zanimljivosti
- Svaka Radiance HDR datoteka počinje tekstualnim zaglavljem '#?RADIANCE' ili '#?RGBE'.
- Format je kreiran radi simulacije fizičkog arhitektonskog osvetljenja u dizajnu zgrada pre nego što su same strukture izgrađene.
- Kultni rad Paula Debevca iz 1997. godine objavljen na SIGGRAPH-u pod nazivom 'Recovering High Dynamic Range Radiance Maps from Photographs' koristio je ovaj format da revolucioniše CGI osvetljenje.
Često postavljana tehnička pitanja
Za šta se koristi HDRI datoteka u 3D-u?
HDRI (.hdr) datoteke se koriste kao panoramske mape okruženja od 360 stepeni kako bi obezbedile fotorealistično osvetljenje iz stvarnog sveta, senke i refleksije na 3D objektima.
Kako funkcioniše RGBE 32-bitno kodiranje?
Umesto čuvanja tri odvojena broja sa pokretnim zarezom, RGBE koristi po 8 bita za crvenu, zelenu i plavu boju, plus deljeni 8-bitni eksponent, čime se pun HDR dinamički opseg pakuje u samo 4 bajta po pikselu.
Mogu li da konvertujem HDR u JPG?
Da. File2File.app može da izvrši mapiranje tona i konvertuje 32-bitne Radiance HDR datoteke u standardne JPG ili PNG slike direktno u vašem pretraživaču.