LibUltraHDR

Für ein in Vorbereitung befindliches Projekt war es nach der Recherche notwendig einige Wege zu erkunden und Werkzeuge zu schaffen. Ausgehend von den Vorarbeiten von Greg Benz, zur HDR-Unterstützung, war LibUltraHDR der sinnvollste Kandidat für weitere Experimente.

LibUltraHDR

LibUltraHDR ist primär eine Bibliothek für UltraHDR Inhalte. Das Format selber ist mit MPO vergleichbar. Es existiert ein primäres Bild, hier ein SDR, dass auch als Fallback für Software ohne UltraHDR Unterstützung fungiert und in den Metadaten ein weiteres Bild, die sogenannte Gain Map. Diese bildet die auf das SDR anzuwendende Verstärkung ab. Mehr Informationen zur Funktionsweise von Gain Maps bietet Adobe.

Eine technische Dokumentation bietet Android Developers (automatische Übersetzung von mäßiger Qualität).

Status

Derzeit arbeiten Greg Benz und weitere daran bei relevanten Open Source Projekten um eine Unterstützung des Formats zu werben:

Es existieren auch einige erste Webseiten mit Unterstützung:

Manuelle Konvertierung mit ffmpeg

Seit dem Release von Version 0.8 von libultrahdr haben sich die Kommandozeilenoptionen geändert, hier die aktuelle (Mai 2024) Fassung. Wichtig ist, dass:

  • Die Abmessungen des Eingangsbildes bekannt sind (X, Y)
  • Die Abmessung durch zwei teilbar (gerade) sind

Im ersten Schritt muss eine YUV Repäsentation des Eingangsbildes erzeugt werden, diese wird als Gain Map genutzt, also als Definition der Verstärkung.

ffmpeg -i input.jpg -filter:v format=p010 output.yuv

Im nächsten Schritt kann dann die erstellte Gain Map genutzt werden um das gewünschte Bild zu erzeugen:

ultrahdr_app -m 0 -p output.yuv -i input.jpg -w X -h Y -a 0

In den nächsten Monaten kann damit gerechnet werden, dass das etwas esoterische YUV Format entweder leichter erzeugt werden kann oder gänzlich drauf verzichtet werden kann.

Docker Image

Es existiert nun auch ein Docker Image, dass die jeweils aktuellste Version von libultrahdr zusammen mit ImageMagick mit UltraHDR Unterstützung bereitstellt.

docker pull ghcr.io/cmahnke/hdr-tools:latest

Nächste Schritte

Derzeit ist die HDR Unterstützung von HDR-Bildern und -Inhalten auf Chrome und davon abgeleitete Browser beschränkt, diese habe allerdings einen Marktanteil von 75%. Die HDR Unterstützung von Firefox, oder besser der Weg dahin, ist eher peinlich - so werden nicht mal HDR Video-Formate voll unterstützt.

Für die Chrome-basierten Browsern allerdings soll es auch möglich sein, HTML Canvas Elemente mit HDR Inhalten zu bespielen.

Update 6.7.24

Hier zwei Beispiele aus meinem Urlaub:

HDR Überprüfung

HDR wird in der Vollbildansicht aktiviert.