OpenEXR High Dynamic Range (.exr)
Open StandaardOpenEXR (EXR) is een professioneel high dynamic range (HDR)-afbeeldingsformaat dat wordt gebruikt in film- en visual-effects-workflows. Het ondersteunt 16-bits half-precision en 32-bits drijvende-komma-pixels, meerdere kanalen en lagen.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen EXR-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen EXR-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
76 2F 31 01ASCII-WEERGAVE: v/1.
Standaardisatie: Open standaard van de Academy Software Foundation (ASWF)
Technische specificaties
| Containerarchitectuur | Uitbreidbare container op basis van chunks die willekeurige kanalen, onderdelen en diepe datalagen ondersteunt |
| Compressie | PIZ (wavelet), ZIP/ZIPS, RLE, B44/B44A, DWAA/DWAB (lossy DCT) en niet-gecomprimeerd |
| Bytevolgorde (endianness) | Little-Endian (Intel x86) |
| Kleurruimten | Lineair ACEScg, ACES2065-1, Lineair Rec.709, Willekeurige chromaticiteitscoördinaten |
| Kanalen en structuur | Willekeurige kanaalnamen (R, G, B, A, Z-depth, Normal, WorldPos, MotionVectors, Cryptomatte) |
| Maximale afmetingen | Praktisch onbeperkt (ondersteunt getegelde diepe zoom en canvassen van meerdere gigapixels) |
| Transparantie | Volledig alfakanaal met drijvende komma en arrays met volumetrische samples voor diepe composities |
| Streaming en progressief | Streaming van scanline- of tegelchunks maakt het snel lezen van gedeeltelijke frames en proxyweergave mogelijk |
Technische vergelijkingsmatrix: EXR versus concurrenten
| Technisch kenmerk | EXR (Huidig) | HDR | TIFF | PNG |
|---|---|---|---|---|
| Dynamisch bereik | Lineair, 16-bits half-float en 32-bits float | 8-bits gedeelde exponent (RGBE) | Gehele getallen van 8 of 16 bits, of 32-bits float | Standaard gehele getallen van 8 of 16 bits |
| Passes met meerdere kanalen | Onbeperkte willekeurig benoemde kanalen en onderdelen | Alleen RGB | Beperkte laagondersteuning | Alleen RGBA |
| Gebruik in de branche | Wordt veel gebruikt in visuele effecten en 3D-productieworkflows | Verouderd formaat voor 3D-belichting en panorama's | Prepress en fotografie | Ondersteuning verschilt per software. |
| Kleurbeheer | Ingebouwde integratie van ACES en OpenColorIO | Gamma of lineair, zonder vaste standaard | ICC-profieltags | sRGB- of ICC-tags |
Veelvoorkomende beschadigingen en gids voor hex-herstel
De afbeelding wordt volledig donker of overbelicht weergegeven, met felwitte vlekken.
Oorzaak: Ontbrekende lineair-naar-sRGB-weergavetransformatie of onjuiste toewijzing van de ACES-kleurruimte.
Herstel: Pas een ACEScg- of lineair-naar-sRGB-tooncurvetransformatie toe in de HDR Viewer van File2File.app.
Beveiligingsanalyse en aanvalsvectoren voor parsers
Complexe OpenEXR-parsers op basis van chunks moeten kanaaldefinities en tegelgrenzen strikt valideren om problemen met geheugenveiligheid te voorkomen.
Bekende aanvalsvectoren
- Integeroverflow bij de berekening van de bufferstride voor meerdere kanalen in libopenexr.
- Heap-out-of-bounds-leesbewerking tijdens de decompressie van met PIZ of DWAA gecomprimeerde streams.
- Denial of service door diep geneste recursie van chunkheaders in bestanden met meerdere onderdelen.
Aanbevolen beveiligingspraktijken: Decodeer EXR-bestanden met geheugenveilige WebAssembly-builds in een afgeschermde omgeving en stel strikte limieten in voor de tegelafmetingen.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Ondersteuning voor 16-bits half-float (FP16) en 32-bits float (FP32) behoudt een groot luminantiebereik, van direct zonlicht tot donkere schaduwen.
- De architectuur met willekeurige kanalen omvat alle 3D-renderpasses (beauty, diffuse, specular, depth, cryptomatte) in één bestand.
- DWAA en DWAB zijn codecs met verlies die zijn ontworpen voor efficiënte afbeeldingscompressie met behoud van de visuele kwaliteit; zichtbare verschillen kunnen, afhankelijk van de instellingen en inhoud, subtiel of duidelijk zijn.
Technische beperkingen
- Aanzienlijke bestandsgrootten bij het opslaan van ongecomprimeerde 32-bits renderpasses in 4K/8K met meerdere lagen.
- Hoge CPU- en geheugenbelasting tijdens decompressie van meerdere kanalen in consumentensoftware.
- Vereist kleurbeheertransformaties (ACES of OCIO) om correct te worden weergegeven op standaard sRGB-schermen.
Interessante technische weetjes
- Industrial Light & Magic heeft het 16-bits 'half' drijvende-komma-gegevenstype specifiek uitgevonden voor het OpenEXR-formaat.
- De eerste vier magic bytes van elk EXR-bestand zijn 0x76 0x2F 0x31 0x01, wat in ASCII overeenkomt met 'v/1\x01'.
- OpenEXR ondersteunt 'Deep Data', waarbij één enkele pixel meerdere kleur- en dieptemonsters opslaat op verschillende afstanden door halfdoorzichtige rook en wolken.
Veelgestelde technische vragen
Waarom wordt OpenEXR gebruikt in sommige VFX-workflows?
Het behoudt HDR-afbeeldingsgegevens met hoge precisie en ondersteunt meerdere kanalen, onderdelen en deep data die in compositingworkflows worden gebruikt.
Wat is het verschil tussen half float en float in EXR?
Half-float gebruikt 16 bits per kleurkanaal en biedt een dynamisch bereik van 30 stops met de helft van de bestandsgrootte van 32-bits float. Daardoor is het een populaire keuze voor beauty-renders.
Hoe kan ik EXR converteren naar standaard PNG of JPG?
U kunt EXR-bestanden met toonmapping converteren naar PNG- of JPG-afbeeldingen met File2File.app, rechtstreeks in uw browser.