Radiance HDR (.hdr)

Norme Standard

Radiance 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 :

Sélectionnez ou déposez des fichiers ici

Privé - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet envoyé vers des serveurs externes. Tout le traitement a eu lieu localement dans le bac à sable de votre navigateur.

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 0A

REPRÉSENTATION ASCII : #?RADIANCE\n

Normalisation : Norme du système d'imagerie synthétique Radiance

Spécifications techniques

Architecture de conteneurEn-tête ASCII se terminant par une ligne vide suivie d'une chaîne de résolution et de lignes de balayage RLE binaires
CompressionCodage RLE adaptatif appliqué à chaque ligne de chaque canal
Ordre des octetsGros-boutiste (ordre réseau des octets)
Espaces colorimétriquesRVB linéaire Rec.709 avec coordonnées de chromaticité CIE
Canaux et structureRGBE : Rouge, Vert, Bleu (mantisses 8 bits) + exposant 8 bits partagé
Dimensions maximalesPratiquement illimité (chaînes de résolution contenant des valeurs non signées de 32 bits)
TransparenceAucune (mesures de luminance radiante physique)
Prise en charge du traitement en continuLecture séquentielle, ligne par ligne

Matrice de comparaison technique : HDR face aux concurrents

Attribut techniqueHDR (Actuel)EXRTIFFJPEG
Encodage des pixelsRGBE 32 bits (exposant partagé 8 bits)Demi-flottant 16 bits / flottant 32 bits par canalEntier 8/16 bits ou flottant 32 bitsEntier encodé en gamma 8 bits
Cas d'utilisation principalÉclairage d'environnement à 360 degrés (IBL)Composition multipasse pour effets visuelsPhotographie et pré-presseGraphiques Web standard
Portée de la plage dynamique76 ordres de grandeur (10^-38 à 10^38)Plage flottante pratiquement infinieVarie selon la profondeur de bitsPlage SDR 8 bits limitée
Canaux pris en chargeRVB uniquementCanaux arbitraires illimitésPlusieurs canaux arbitrairesRVB / 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

2000Paul Debevec popularise l'éclairage basé sur des images (IBL) HDR en infographie en utilisant les fichiers .hdr de Radiance.
1997Normalisation de l'encodage adaptatif par plages de lignes de balayage pour réduire la taille des fichiers.
1989Greg Ward invente l'encodage de pixels RGBE 32 bits et le format .hdr au Lawrence Berkeley National Laboratory.

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.