Radiance HDR (.hdr)
Radiance StandardníRadiance RGBE (HDR) je základní formát s vysokým dynamickým rozsachem (HDR) vyvinutý pro syntetický zobrazovací systém Radiance, který ukládá fotometricky přesné hodnoty svítivosti pomocí sdíleného 8bitového exponentu.
Kontrola a metadata
Operační systémy a analyzátory souborů identifikují soubory HDR kontrolou počáteční binární sekvence bajtů:
Podpis hlavičky na úrovni bajtů (Magic Bytes)
Operační systémy a analyzátory souborů identifikují soubory HDR kontrolou počáteční binární sekvence bajtů:
HEXADECIMÁLNÍ PODPIS (POSUN 0):
23 3F 52 41 44 49 41 4E 43 45 0AASCII REPREZENTACE: #?RADIANCE\n
Standardizace: Radiance Synthetic Imaging System Standard
Technické specifikace
| Architektura kontejneru | Hlavička ASCII končící prázdným řádkem, po ní řetězec s rozlišením a binární řádky kódované pomocí RLE |
| Komprese | Adaptivní kódování délek běhů (RLE) aplikované na každý řádek jednotlivých kanálů |
| Pořadí bajtů | Big-endian / síťové pořadí bajtů |
| Barevné prostory | Lineární RGB Rec.709 se souřadnicemi chromatičnosti CIE |
| Kanály a struktura | RGBE: červená, zelená a modrá (8bitové mantisy) a sdílený 8bitový exponent |
| Max. rozměry | Prakticky neomezené (řetězce rozlišení používají 32bitová celá čísla bez znaménka) |
| Průhlednost | Žádná (měření fyzického zářivého jasu) |
| Streamování a progresivní načítání | Postupné přehrávání po jednotlivých řádcích |
Technická srovnávací matice: HDR vs konkurence
| Technický atribut | HDR (Aktuální) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Kódování pixelů | 32bitové RGBE (sdílený 8bitový exponent) | 16bitový half / 32bitový float na kanál | 8/16bitové celé číslo nebo 32bitový float | 8bitové celé číslo s gama kódováním |
| Hlavní případ použití | 360stupňové osvětlení prostředí (IBL) | VFX kompozitování s vícenásobným průchodem | Fotografie a předtisková příprava | Standardní webová grafika |
| Dynamický rozsah | 76 řádů velikosti (10^-38 až 10^38) | Prakticky nekonečný rozsah s plovoucí řádovou čárkou | Liší se podle bitové hloubky | Omezený 8bitový SDR rozsah |
| Podporované kanály | Pouze RGB | Neomezený počet libovolných kanálů | Více libovolných kanálů | RGB / CMYK |
Běžné režimy poškození a příručka pro obnovení v hex
Obrázek zobrazuje vodorovné pruhy přes celou šířku snímku.
Hlavní příčina: Poškozený bajt udávající délku běhu při dekompresi řádku pomocí RLE.
Obnovení: Rekonstruujte poškozené značky řádků pomocí nástroje File2File.app HDR Repair nebo proveďte konverzi do formátu EXR.
Bezpečnostní analýza a vektory útoků na parser
Dekodéry Radiance HDR často analyzují řádky hlavičky ASCII pomocí neomezených řetězcových funkcí, které mohou způsobit přetečení zásobníkové vyrovnávací paměti.
Známé vektory útoků
- Volání sprintf/sscanf bez omezení délky při čtení hlaviček řetězců rozlišení ('-Y %d +X %d').
- Zápis mimo vyhrazenou oblast haldy během dekódování poškozených RLE řádků.
- Přetečení celého čísla (integer overflow) při alokaci cílových 32bitových bufferů s plovoucí řádovou čárkou.
Doporučené bezpečnostní postupy: Před alokací obrazových vyrovnávacích pamětí ověřte délku hlavičky ASCII a rozměry řádků obrazu.
Historický vývoj a milníky
Klíčové výhody a přednosti
- Při kompaktní paměťové náročnosti 32 bitů na pixel pokrývá 76 řádů velikosti fyzické luminance světla.
- Podporuje jej řada 3D vykreslovacích balíků pro environmentální mapy; podpora závisí na aplikaci.
- Poměrně kompaktní struktura souboru, kterou lze implementovat v softwaru s podporou formátu Radiance HDR.
Technická omezení a nevýhody
- V extrémně tmavých oblastech může docházet k posterizaci kvůli kódování pomocí sdíleného 8bitového exponentu.
- Kanály RGB nemohou ukládat záporná čísla ani libovolné vrstvy pro vícenásobný průchod (multi-pass).
- Do značné míry nahrazen formátem OpenEXR pro produkci vizuálních efektů s vícenásobným průchodem.
Zajímavé technické drobnosti
- Každý soubor Radiance HDR začíná textovou hlavičkou '#?RADIANCE' nebo '#?RGBE'.
- Formát byl vytvořen za účelem simulace fyzického architektonického osvětlení při navrhování budov předtím, než byly stavby postaveny.
- Kultovní článek Paula Debeveca ze SIGGRAPH 1997 'Recovering High Dynamic Range Radiance Maps from Photographs' využil tento formát k revoluci v osvětlení CGI.
Často kladené technické otázky
K čemu se v oblasti 3D grafiky používá soubor HDRI?
Soubory HDRI (.hdr) se používají jako 360stupňové panoramatické mapy prostředí k zajištění fotorealistického osvětlení, stínů a odrazů podle skutečného prostředí na 3D objektech.
Jak funguje 32bitové kódování RGBE?
Místo ukládání tří samostatných čísel s pohyblivou řádovou čárkou používá RGBE 8 bitů pro červenou, zelenou a modrou složku plus sdílený 8bitový exponent, a díky tomu se celý dynamický rozsah HDR vejde do pouhých 4 bajtů na jeden pixel.
Mohu převést soubor HDR do formátu JPG?
Ano. File2File.app dokáže provést tónové mapování a převést 32bitové soubory Radiance HDR na standardní obrázky JPG nebo PNG přímo ve vašem prohlížeči.