Aus Linux-Magazin 09/2006

High Dynamic Range in der Praxis

© photocase.com

Verbreitete Bildformate wie Jpg und PNG decken nur geringe Helligkeitsbereiche ab. High-Dynamic-Range-Bilder speichern Tiefen bis zu 32 Bit pro Kanal und eröffnen damit neue Dimensionen für die Weiterverarbeitung und Archivierung.

Nichts ist, wie es scheint. Computertechnologien gaukeln dem Benutzer häufig eine Perspektive vor, die der realen Welt nur sehr wenig entspricht. So beschneidet etwa die MP3-Kompression aufgenommene Klänge einfach um jene Frequenzen, die bei der Wahrnehmung nur eine geringe Rolle spielen. Zum Anhören eignen sich MP3s deswegen gut, zur Weiterverarbeitung weniger.

Extreme Lichtverhältnisse

Wie die des Ohres machen sich Software-Entwickler auch die Schwächen des Auges zu Nutze – wie im Übrigen ja auch der normale Kinofilm, dessen 24 Einzelbilder pro Sekunde das Unterscheidungsvermögen des Auges übersteigen. Bei statischen Farbbildern am Computer kommen im Wesentlichen zwei Beschränkungen zum Tragen: die begrenzten Fähigkeiten des Auges, Farben und Helligkeiten zu unterscheiden, und die entsprechenden Grenzen (Gamut) bei der Wiedergabe beispielsweise auf dem Bildschirm oder LCD-Panel.

Die meisten Bildformate speichern maximal 8 Bit pro Farbkanal (Rot, Grün, Blau), also 24 Bit pro Pixel. Die 8 Bit müssen den ganzen Helligkeitsbereich der jeweiligen Grundfarbe abdecken, den so genannten Dynamikumfang oder Dynamic Range. In der realen Welt herrschen aber oft extreme Helligkeitsunterschiede, bis zu 1:100000 zwischen dem dunkelsten und dem hellsten Punkt.

Bildformate wie Jpg, PNG oder gar Gif können solche Helligkeitsunterschiede nicht speichern. Selbst RAW-Bilder [1] hochwertiger digitaler Kameras decken nur einen Dynamic Range von 1:1000 ab. Auch wenn sie in Bilddateien mit 16 Bit umgewandelt werden, besitzt das Ausgangsmaterial nur 12 Bit Farbtiefe.

So genannte High-Dynamic-Range-Bilder speichern bis zu 32 Bit pro Kanal und ermöglichen damit die zukunftssichere Archivierung von Bilddaten. Wer weiß schon, welche Technologien morgen zur Verfügung stehen, um Informationen zu nutzen, die heute einfach weggeworfen werden? In der Praxis wird die HDR-Technologie schon heute eingesetzt, zum Beispiel in der 3D-Grafik. Wenn eine 3D-Engine die Beleuchtungsverhältnisse in Echtzeit berechnet, etwa im Lauf eines sonnigen Tags, kann sie über HDR-Texturen wesentlich realistischere Effekte erzielen als mit nur 8-Bit-Texturdateien. Ein Beispiel, wenn auch aus der Windows-Welt, ist das HDR-Addon Lost Coast für das Spiel Half Life 2.

HDR-Formate

Es überrascht wohl niemanden, dass es in der großen Computerwelt mehr als ein HDR-Format gibt. Einer der Pioniere der Technologie ist der Autor des Rendering-Pakets Radiance, Greg Ward [2]. Im Zusammenhang mit diesem Projekt und seiner akademischen Arbeit hat er theoretische Arbeiten und Programme geschrieben, die sich mit HDR beschäftigen. Seine erste Implementierung eines HDR-Formats startete Ward am Lawrence Berkeley National Laboratory mit dem Radiance RGBE Encoding.

Rückblickend sieht Ward an seiner Lösung Schwächen: Sie deckt einen unsinnig großen Dynamic Range ab, dafür mangelt es ihr aber an Genauigkeit – denn es kommt ja nicht nur darauf an, einen großen Bereich abzubilden, sondern dabei auch viele Differenzierungsstufen zu bieten. Logluv, seinen zweiten Ansatz, betrachtet Greg Ward als eher gelungen. Das Format befriedigt alle denkbaren Ansprüche an die Bewahrung von Bildinformation, halbiert den abgedeckten Helligkeitsbereich und verdreifacht dabei die Genauigkeit. Nur ist das Format wenig bekannt.

Mehr Erfolg hat in der Entwicklergemeinde OpenEXR, ein Open-Source-Projekt der Special-Effects-Firma ILM. Seine Entwickler haben einen pragmatischen Ansatz gewählt, denn für sie bedeutet Speicherplatz bares Geld. Deshalb unterstützt OpenEXR nicht nur einen großen Dynamikumfang, sondern implementiert zusätzlich eine effektive Datenkompression, die selbst verrauschte Bilder gut komprimiert.

Viele Linux-Programme für die Verarbeitung von Bildern beherrschen heute schon das OpenEXR-Format, denn die Bibliothek von ILM steht unter einer freien Lizenz und ist einfach zu verwenden. Selbst die Tools von Greg Ward können auf Wunsch OpenEXR lesen oder schreiben, ohne dass zwanghafte Konkurrenz die Kompatibilität einschränkt.

OpenEXR bietet die Farbtiefen 16 Bit Floating Point, 32 Bit Floating Point und 32 Bit Integer. Für Echtzeit-3D-Anwendungen mit Nvidia- und ATI-Hardware ist das Format besonders interessant, denn viele Grafikkarten dieser Hersteller verarbeiten den zu OpenEXR kompatiblen Datentyp Half.

Tools

Praktisch alle Profi-Tools zur Bild- und Filmverarbeitung wie Maya, XSI, Shake oder Mental Ray können mit OpenEXR-Dateien umgehen. Die Firma Idruna bietet ihre HDR-Software Photogenics auch für Linux an [3]. Bei einem Test mit Fedora Core 5 funktionierte die Software aber nicht, sie verwendet wohl ein veraltetes Threading-Interface. Es bleibt schließlich die Command Line mit einer ganzen Reihe von Optionen.

Da ist zunächst das nur als Binary verfügbare »hdrgen« des erwähnten Greg Ward. Obwohl es recht einfach benutzbar scheint, verweigerte es die Arbeit mit einer Meldung über fehlende Exposure-Werte. Auch Make HDR [4] von HDR-Koryphäe Paul Debevec ließ sich nicht dazu bringen, eine HDR-Datei zu schreiben. Die Exrtools [5] beschränken sich auf das OpenEXR-Format und können nur einzelne Jpeg- und PPM-Dateien mit ohnehin höheren Bittiefen in HDR umwandeln.

Die besten Ergebnisse ließen sich im Test mit den PFS Tools [6] erzielen, die Helligkeits- und Farbdaten mehrerer Bilder zu einem HDR-Bild vereinen. Für viele Amateure ist das der beste Weg, um zu einem HDR-Bild zu kommen.

Wie erwähnt bieten auch hochwertige Digitalkameras im Consumer-Bereich keinen großen Dynamikumfang. Viele behelfen sich mit dem so genannten Bracketing, einer Einstellung, in der die Kamera zusätzlich zur richtigen Belichtung noch je ein über- und ein unterbelichtetes Bild macht. Die entstehende Bilddatei enthält dann noch mehr Bildinformationen als eine RAW-Datei, deren Farb- und Helligkeitsumfang ohnehin kein Bildschirm mehr wiedergeben kann. Der besitzt üblicherweise nur einen Dynamic Range von 1:100.

Natürlich kann man sich trotzdem HDR-Bilder auf dem Bildschirm ansehen, aber jeweils nur mit einem Ausschnitt des Helligkeitsspektrums: Regler erlauben es, den jeweils sichtbaren Bereich aus dem gespeicherten Spektrum zu wählen, etwa in »exrdisplay« oder »pfsview«. Die PFS Tools funktionieren nach dem bewährten Unix-Muster der über Pipes verketteten Programme. Folgende Kette liest ein RAW-Bild ein und gibt es per Pipe als HDR-Bild an den Viewer weiter: »pfsindcraw IMG_0731.CR2 | pfsview«.

Hardware für HDR

Andere Möglichkeiten, an HDR-Bilder zu gelangen, sind Film- oder Dia-Scans. Digitale HDR-Kameras gibt es zwar, sie sind jedoch derzeit noch Spezialanwendungen vorbehalten. Unter mehreren tausend Euro sind sie auch kaum zu bekommen. Dagegen können mittlerweile einige Linux-3D-Programme mit HDR-Bildern umgehen: Mega POV, Radiance, Pixie und Blender verwenden sie zumindest als Texturen, zum Teil auch als Ausgabeformat.

Eine häufige Anwendung sind so genannten Lightmaps. Dabei dient ein HDR-Bild der realen Beleuchtungssituation als Grundlage für das Rendering. Um eine solche Lightmap anzufertigen, haben sich Aufnahmen einer verspiegelten Kugel etabliert. Von zwei Seiten fotografiert, lässt sich damit ein Blickfeld von 360 Grad abdecken.

Ansehen

Der Prozess, aus der reichen Repräsentation der Bilddaten ein sichtbares Bild zu machen, heißt Tone Mapping (Abbildung 1). In den meisten Fällen besteht er darin, einen zu den Fähigkeiten des Ausgabegeräts passenden Ausschnitt der Daten zu suchen und einige Korrekturen vorzunehmen. Weil HDR-Formate die Helligkeitswerte meist linear speichern, sieht die direkte Wiedergabe immer etwas flach aus: Die mittleren, kontrastarmen Farben sind gegenüber sehr hellen und sehr dunklen Bereichen überrepräsentiert. Gammakorrektur ist die Standardmaßname für mehr Kontrast.

Abbildung 1: HDR als Speicherformat, das einen großen Farb- und Helligkeitsumfang bewahrt. Der Weg zum sichtbaren Bild führt über den Tone-Mapping-Prozess.

Abbildung 1: HDR als Speicherformat, das einen großen Farb- und Helligkeitsumfang bewahrt. Der Weg zum sichtbaren Bild führt über den Tone-Mapping-Prozess.

Es ist abzusehen, dass sich irgendwann auch die Displaytechnologien weiterentwickeln werden. Derzeit erschöpft sich die Innovation darin, die Kathodenstrahlröhre mit LCD nachzuahmen. Indem sie beide Technologien vereint, realisiert die Firma Brightside ein HDR-Display [7], das HD-Auflösung und 16 Bit Farbtiefe pro Kanal verspricht.

Infos

[1] RAW-Bilder verarbeiten: [http://www.linux-user.de/ausgabe/2006/03/073-raw]

[2] Greg Ward: [http://www.anyhere.com]

[3] Photogenics: [http://idruna.com/photogenicshdr.html]

[4] Make HDR: [http://www.debevec.org/FiatLux/mkhdr]

[5] Exrtools: [http://scanline.ca/exrtools]

[6] PFS Tools: [http://www.mpi-sb.mpg.de/resources/pfstools]

[7] Brightside HDR-Display: [http://www.brightsidetech.com/products/dr37p.php]

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 2 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben