Was ist Radiance HDR?

Radiance HDR ist ein Bildformat mit hohem Dynamikumfang, das für das Radiance-Renderingsystem entwickelt wurde und üblicherweise an der Dateiendung HDR erkennbar ist. Sein verbreitetes RGBE-Pixel-Encoding stellt jeden Pixel durch drei Farbbytes und ein Byte für einen gemeinsamen Exponenten dar.

So funktioniert Radiance HDR

Ein Radiance-Bild hat drei Teile: einen Informationsheader als Text, eine Auflösungszeichenfolge und Bildzeilendatensätze. Der Header beginnt üblicherweise mit #?RADIANCE (stb_image und ImageMagick akzeptieren auch #?RGBE), enthält Variablenzuweisungen wie FORMAT (entweder 32-bit_rle_rgbe oder 32-bit_rle_xyze), EXPOSURE, COLORCORR und PRIMARIES und endet mit einer Leerzeile. Die Auflösungszeichenfolge, beispielsweise -Y 1024 +X 2048, gibt die Pixelanzahlen und die Reihenfolge an, in der die Pixel geschrieben wurden. Jeder Pixel belegt vier Bytes: eine Mantisse mit 8 Bit für jede der drei Primärfarben und einen gemeinsamen Exponenten mit 8 Bit. Ein Mantissenbyte ist ein Bruchteil von 256, kein ganzzahliger Wert: Der Referenzcode von Radiance decodiert einen Kanal als (mantissa + 0,5) / 256 × 2^(exponent − 128). Ein Exponentenbyte mit dem Wert 0 bedeutet Schwarz. Die Bytes (128, 64, 32, 129) speichern daher ungefähr (1; 0,5; 0,25). Bildzeilen werden unkomprimiert oder mit einem von zwei Lauflängenverfahren gespeichert. Die Radiance-Referenz gibt die typische Kompression mit etwa 2:1 an. Die Werte sind linear und können eine physikalische Bedeutung haben: Bei RGB-Daten entspricht ein Pixel mit (1, 1, 1) über das sichtbare Spektrum hinweg 1 Watt pro Steradiant und Quadratmeter. Laut Radiance-Referenz sind die Werte jedoch physikalisch nicht gültig, wenn Lichtquellen nicht korrekt modelliert wurden, das Bild aus einem anderen Format umgewandelt wurde oder benutzerdefinierte Filterung angewendet wurde. Die eigene Dokumentation von Radiance verwendet das Suffix .pic; anderswo ist .hdr üblich.

Wichtige Fakten

  1. RGBE weist jedem Pixel pro Kanal eine Mantisse mit 8 Bit und einen einzigen gemeinsamen Exponenten zu, keine drei Gleitkommazahlen. Bei einem nicht schwarzen Pixel liegt das Mantissenbyte des hellsten Kanals zwischen 128 und 255; die beiden anderen werden mit demselben Exponenten skaliert. Ein deutlich dunklerer Kanal behält daher nur wenige signifikante Bits. Der Autor des Formats beziffert die Genauigkeit auf etwa 1 % über mehr als 76 Größenordnungen und weist darauf hin, dass die Abstufungen in gesättigten blauen und magentafarbenen Bereichen sichtbar werden können.
  2. Die Auflösungsangabe enthält neben der Größe auch die Scanreihenfolge. -Y N +X M ist die Standardform: N Zeilen werden von oben nach unten gespeichert, jeweils mit M Pixeln von links nach rechts. Sieben weitere Vorzeichen- und Achsenkombinationen beschreiben eine gespiegelte oder gedrehte Speicherung. Steht X zuerst, bezeichnet die erste Zahl die Breite, nicht die Höhe. Ein Decoder, der nur zwei Zahlen ausliest, vertauscht bei solchen Dateien die Achsen oder spiegelt sie; die Radiance-Referenz weist darauf hin, dass manche Programme nur die Standardreihenfolge verarbeiten.
  3. Die drei Mantissen und der Exponent belegen alle vier Bytes, daher gibt es weder einen Alphakanal noch ein Vorzeichen. Transparenz muss in einer separaten Datei oder einem anderen Format übertragen werden. RGBE kann keine negativen Komponenten speichern und ist dadurch auf Farben innerhalb des Farbumfangs seiner RGB-Primärfarben beschränkt. Die durch FORMAT=32-bit_rle_xyze deklarierte XYZE-Variante deckt den sichtbaren Farbumfang ab. Zum Unterscheiden der beiden Varianten muss ein Leseprogramm jedoch die Zeile mit FORMAT prüfen. Vergewissern Sie sich daher, dass XYZE unterstützt wird, bevor Sie sich darauf verlassen.
  4. Header-Variablen verändern die Bedeutung der Zahlen. EXPOSURE ist ein bereits auf die Pixel angewendeter, kumulativer Multiplikator. Die ursprüngliche Strahldichte ergibt sich daher aus dem gespeicherten Wert geteilt durch das Produkt aller Zeilen mit EXPOSURE. COLORCORR ist ein ebensolcher angewendeter, kumulativer Multiplikator, der für jede Primärfarbe separat angegeben wird. Jeder Kanal muss daher zusätzlich durch sein Produkt aus den Angaben für COLORCORR geteilt werden. PRIMARIES gibt die Farbkoordinaten an. Fehlt diese Angabe, gelten die Standardwerte von Radiance; ihr Weißpunkt entspricht energiegleichem Weiß (0,333; 0,333), nicht D65. Manche Leseprogramme berücksichtigen diese Angaben nicht: Laut Dokumentation geht OpenImageIO davon aus, dass jede RGBE-Datei linear ist und sRGB-Primärfarben verwendet.

Wann Radiance HDR wichtig ist

Verwenden Sie Radiance HDR, wenn ein Renderer oder Beleuchtungswerkzeug Eingaben im Format .hdr erwartet, meist für Umgebungstexturen und bildbasierte Beleuchtung, die lineare Werte weit über dem Anzeigeweiß benötigen. Laut OpenImageIO-Dokumentation wird das Format weiterhin in vielen älteren Anwendungen und zur Verteilung von HDR-Umgebungstexturen verwendet. Sie empfiehlt jedoch neuere Formate wie OpenEXR, außer wenn der Zugriff auf ältere Dateien erforderlich ist. Prüfen Sie beim Konvertieren, ob das Ziel die Angaben zu Belichtung, Farbkorrektur, Primärfarben und Ausrichtung im Header berücksichtigt; eine Ausgabe mit 8 Bit kann den zusätzlichen Dynamikumfang nicht erhalten.

So hilft Transloadit bei Radiance HDR

Transloadits Bildformattabelle führt HDR, beschrieben als Radiance-RGBE-Bildformat, als Format auf, das die ImageMagick-basierten Robots, darunter /image/resize, lesen und schreiben können.

Die Tabelle nennt nur die Lese- und Schreibfähigkeiten. Sie beschreibt nicht, wie Werte mit hohem Dynamikumfang bei einer Ausgabe in einem Format mit 8 Bit wie JPEG oder PNG abgebildet werden. Prüfen Sie daher Helligkeit und Farbe an einer repräsentativen Datei.

Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren