Radiance HDR (.hdr)
Norme StandardRadiance RGBE (HDR) est le format fondamental à plage dynamique élevée développé pour le système d'imagerie synthétique Radiance. Il stocke des valeurs de luminance photométriquement précises à l'aide d'un exposant partagé de 8 bits.
Inspection et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers HDR en inspectant leur séquence initiale d'octets binaires :
Signature d'en-tête au niveau des octets (octets magiques)
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers HDR en inspectant leur séquence initiale d'octets binaires :
SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :
23 3F 52 41 44 49 41 4E 43 45 0AREPRÉSENTATION ASCII : #?RADIANCE\n
Normalisation : Norme du système d'imagerie synthétique Radiance
Spécifications techniques
| Architecture de conteneur | En-tête ASCII se terminant par une ligne vide suivie d'une chaîne de résolution et de lignes de balayage RLE binaires |
| Compression | Codage RLE adaptatif appliqué à chaque ligne de chaque canal |
| Ordre des octets | Gros-boutiste (ordre réseau des octets) |
| Espaces colorimétriques | RVB linéaire Rec.709 avec coordonnées de chromaticité CIE |
| Canaux et structure | RGBE : Rouge, Vert, Bleu (mantisses 8 bits) + exposant 8 bits partagé |
| Dimensions maximales | Pratiquement illimité (chaînes de résolution contenant des valeurs non signées de 32 bits) |
| Transparence | Aucune (mesures de luminance radiante physique) |
| Prise en charge du traitement en continu | Lecture séquentielle, ligne par ligne |
Matrice de comparaison technique : HDR face aux concurrents
| Attribut technique | HDR (Actuel) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Encodage des pixels | RGBE 32 bits (exposant partagé 8 bits) | Demi-flottant 16 bits / flottant 32 bits par canal | Entier 8/16 bits ou flottant 32 bits | Entier encodé en gamma 8 bits |
| Cas d'utilisation principal | Éclairage d'environnement à 360 degrés (IBL) | Composition multipasse pour effets visuels | Photographie et pré-presse | Graphiques Web standard |
| Portée de la plage dynamique | 76 ordres de grandeur (10^-38 à 10^38) | Plage flottante pratiquement infinie | Varie selon la profondeur de bits | Plage SDR 8 bits limitée |
| Canaux pris en charge | RVB uniquement | Canaux arbitraires illimités | Plusieurs canaux arbitraires | RVB / CMJN |
Modes de corruption courants et guide de restauration hexadécimale
L’image présente des bandes horizontales sur toute sa largeur.
Cause initiale: Octet de comptage de longueurs de plages corrompu lors de la décompression RLE de la ligne de balayage.
Récupération: Reconstruisez les marqueurs de lignes de balayage endommagés à l'aide de File2File.app HDR Repair ou convertissez au format EXR.
Analyse de sécurité et vecteurs d'attaque de l'analyseur
Les décodeurs Radiance HDR analysent souvent les lignes d'en-tête ASCII à l'aide de routines de chaînes non délimitées qui peuvent déclencher des dépassements de tampon de pile.
Vecteurs d’attaque connus
- Appels sprintf/sscanf non délimités lors de la lecture des en-têtes de chaîne de résolution ('-Y %d +X %d').
- Écriture hors limites du tas lors du décodage de lignes de balayage RLE malformées.
- Dépassement d'entier lors de l'allocation de tampons à virgule flottante de destination 32 bits.
Bonnes pratiques de défense: Validez la longueur de l'en-tête ASCII et les dimensions des lignes de balayage avant d'allouer des tampons d'image.
Origines historiques et jalons
Principaux avantages
- Empreinte mémoire compacte de 32 bits par pixel, couvrant 76 ordres de grandeur de luminance physique.
- De nombreux logiciels de rendu 3D prennent en charge HDR pour les cartes d’environnement, selon l’application.
- Sa structure de fichier relativement compacte peut être mise en œuvre par les logiciels compatibles avec Radiance HDR.
Limites techniques
- Des bandes de quantification peuvent se produire dans les régions extrêmement sombres en raison de l'encodage par exposant partagé de 8 bits.
- Les canaux RVB ne peuvent pas stocker de nombres négatifs ou de calques multipasses arbitraires.
- Largement remplacé par OpenEXR pour la production d'effets visuels multipasses.
Faits intéressants
- Chaque fichier Radiance HDR commence par l'en-tête textuel '#?RADIANCE' ou '#?RGBE'.
- Le format a été créé pour simuler l'éclairage architectural physique dans la conception de bâtiments avant que les structures ne soient construites.
- L'article emblématique de Paul Debevec de 1997 à SIGGRAPH, 'Recovering High Dynamic Range Radiance Maps from Photographs', a utilisé ce format pour révolutionner l'éclairage CGI.
Foire aux questions techniques
À quoi sert un fichier HDRI en 3D ?
Les fichiers HDRI (.hdr) sont utilisés comme cartes d'environnement panoramiques à 360 degrés pour fournir un éclairage, des ombres et des reflets photoréalistes du monde réel sur des objets 3D.
Comment fonctionne l'encodage RGBE 32 bits ?
Au lieu de stocker trois nombres à virgule flottante distincts, RGBE utilise 8 bits pour chacun des canaux rouge, vert et bleu, ainsi qu'un exposant partagé de 8 bits. Cela permet de stocker toute la plage dynamique HDR dans seulement 4 octets par pixel.
Puis-je convertir un HDR en JPG ?
Oui. File2File.app peut mapper les tons et convertir des fichiers Radiance HDR 32 bits en images JPG ou PNG standard directement dans votre navigateur.