Radiance HDR (.hdr)

Standard Standard

Radiance RGBE (HDR) är det grundläggande formatet för högt dynamiskt omfång som utvecklades för Radiance-systemet för syntetisk bildgenerering, och lagrar fotometriskt exakta luminansvärden med en delad 8-bitars exponent.

Granska och metadata

Operativsystem och filanalysverktyg identifierar HDR-filer genom att granska den inledande sekvensen av binära byte:

Välj eller släpp filer här

Privat - filer lämnar aldrig din enhet

eller klistra in Ctrl+V
Integritetsgaranti utan nätverksöverföring: 0 byte laddades upp till externa servrar. All bearbetning skedde lokalt i webbläsarens sandlåda.

Signatur i filhuvudet på bytenivå (magiska byte)

Operativsystem och filanalysverktyg identifierar HDR-filer genom att granska den inledande sekvensen av binära byte:

HEX-SIGNATUR (OFFSET 0):

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

ASCII-REPRESENTATION: #?RADIANCE\n

Standardisering: Standard för Radiance Synthetic Imaging System

Tekniska specifikationer

ContainerarkitekturASCII-header som avslutas med en tom rad, följd av en upplösningssträng och binära RLE-skanningslinjer
KomprimeringAdaptiv körlängdskodning (RLE) per kanalskanningsrad
ByteordningBig-endian / nätverksbyteordning
FärgrymderLinjär Rec.709 RGB med CIE-kromaticitetskoordinater
Kanaler och strukturRGBE: rött, grönt och blått (8-bitars mantissor) samt gemensam 8-bitars exponent
Maximala dimensionerI praktiken obegränsad (upplösningssträngar med 32-bitars osignerade heltal)
TransparensIngen (fysiska mätvärden för utstrålad luminans)
Strömning och progressiv visningSekventiell strömning av skanningsrader vid uppspelning

Teknisk jämförelsematris: HDR jämfört med konkurrenter

Tekniskt attributHDR (Aktuell)EXRTIFFJPEG
Pixelkodning32-bitars RGBE (delad 8-bitars exponent)16-bit half / 32-bit float per kanalHeltal 8/16-bit eller 32-bit float8-bitars gammakodat heltal
Primärt användningsområde360-graders miljöbelysning (IBL)VFX-kompositering med flera passFotografi och prepressVanlig webb grafik
Dynamiskt omfång76 tiopotenser (10^-38 till 10^38)Praktiskt taget oändligt flyttalsomfångVarierar beroende på bitdjupBegränsat 8-bitars SDR-omfång
Antal kanaler som stödsEndast RGBObegränsade godtyckliga kanalerFlera godtyckliga kanalerRGB / CMYK

Vanliga skadeorsaker och hex-återställningsguide

Bilden får horisontella ränder över hela bredden.

Grundorsak: Byte som anger RLE-kodade skanningslinjers längd är skadat.

Återställning: Återskapa skadade skanningslinjemarkörer med File2File.app HDR Repair eller konvertera till EXR.

Säkerhetsanalys och attackvektorer för tolkar

Radiance HDR-avkodare tolkar ofta ASCII-header-rader med strängrutiner utan längdgränser, vilket kan leda till stackbuffertspill.

Kända attackvektorer

  • Anrop till sprintf/sscanf utan längdgräns vid läsning av upplösningssträngar (”-Y %d +X %d”).
  • Heap-skrivning utanför tilldelat minne vid dekomprimering av felaktigt kodade RLE-skanningslinjer.
  • Heltalsspill när destinationsbuffertar med 32-bitars flyttal allokeras.

Rekommenderade skyddsåtgärder: Kontrollera ASCII-headerns längd och skanningslinjernas mått innan bildbuffertar allokeras.

Historiskt ursprung och milstolpar

2000Paul Debevec populariserar HDR-bildbaserad belysning (IBL) inom datagrafik med hjälp av Radiance .hdr-filer.
1997Adaptiv scanline run-length-kodning standardiseras för att minska filstorlekar.
1989Greg Ward uppfinner RGBE-pixelkodningen på 32 bitar och .hdr-formatet vid Lawrence Berkeley National Laboratory.

Viktiga fördelar

  • Kompakt minnesanvändning på 32 bitar per pixel samtidigt som det spänner över 76 storleksordningar av fysisk ljusluminans.
  • Stöds av många 3D-renderingsprogram för miljökartor, men stödet beror på programmet.
  • En förhållandevis kompakt filstruktur som kan implementeras i programvara med stöd för Radiance HDR.

Tekniska begränsningar

  • Kvantiseringsbandning kan uppstå i extrema mörka områden på grund av kodning med delad 8-bitars exponent.
  • RGB-kanaler kan inte lagra negativa tal eller godtyckliga flerskiktslager.
  • Till stor del ersatt av OpenEXR för produktion av visuella effekter med flera pass.

Intressant teknisk kuriosa

  • Varje Radiance HDR-fil börjar med textrubriken '#?RADIANCE' eller '#?RGBE'.
  • Formatet skapades för att simulera fysisk arkitektonisk belysning vid byggnadsutformning innan strukturerna byggdes.
  • Paul Debevecs ikoniska SIGGRAPH-uppsats från 1997, 'Recovering High Dynamic Range Radiance Maps from Photographs', använde detta format för att revolutionera CGI-belysning.

Vanliga tekniska frågor

Vad används en HDRI-fil till inom 3D?

HDRI-filer (.hdr) används som 360-graders panoramiska miljökartor för att ge 3D-objekt fotorealistisk belysning, skuggor och reflektioner från verkliga miljöer.

Hur fungerar RGBE 32-bitars kodning?

I stället för tre separata flyttal använder RGBE 8 bitar för vardera rött, grönt och blått, plus en gemensam 8-bitars exponent. På så sätt ryms hela HDR-omfånget på bara 4 byte per pixel.

Kan jag konvertera HDR till JPG?

Ja. File2File.app kan tonomvandla och konvertera 32-bitars Radiance HDR-filer till vanliga JPG- eller PNG-bilder direkt i din webbläsare.