Seit der Einführung von HDR-Videos (High Dynamic Range) bieten Streamingdienste HDR-Videos an, die sich vor allem für die Wiedergabe im Vollbildmodus eignen. In letzter Zeit haben Social-Media-Apps die Unterstützung für HDR-Videos und Ultra-HDR eingeführt. Das deutet auf ein wachsendes Interesse an der HDR-Einführung in verschiedenen Apps hin.
HDR-Unterstützung unter Android
Im Folgenden finden Sie die Meilensteine der Unterstützung der HDR-Technologie durch Android im Laufe der Jahre:
Android 7
- Erste Unterstützung für die Dekodierung und Anzeige von HDR-Videos.
- Weiterhin verbesserte HDR-Funktionen
Android 13
- End-to-End-Unterstützung für die Aufzeichnung, Codierung und Anzeige von HDR-Videos
- Einführung der kombinierten SDR- und HDR-Komposition, mit der unterschiedliche darstellbare Leuchtdichtebereiche zwischen SDR und HDR definiert werden.
Android 14
- Unterstützung für HDR-Bilder mit Ultra HDR
Auch die Unterstützung von Screenshots mit HDR hat sich im Laufe der Jahre weiterentwickelt und einige Änderungen erfahren.
Verbesserungen bei HDR-Screenshots
In diesem Abschnitt wird die Entwicklung der HDR-Screenshot-Funktion in den letzten Android-Updates verfolgt.
Android 9
SurfaceFlinger, der Grafik-Compositor von Android, unterstützt jetzt HDR-Videos. Das GPU-Rendering von HDR-Videos und -Screenshots wird mit einem komplexen polynomischen Tonmapper unterstützt. Diese Tonwertkurve entspricht nicht immer dem Tonwert-Mapper des Displays. Daher unterscheiden sich Screenshots von den Inhalten auf dem Bildschirm.
Android 13
Dem GPU-Rendering-Block von SurfaceFlinger wird ein Tonmapping-Plug-in hinzugefügt, damit der OEM einen GPU-Shader bereitstellen kann, der der Tonmapping-Kurve des Displays entspricht. Die Screenshots stimmen fast mit dem überein, was auf dem Bildschirm zu sehen ist, mit folgenden Unterschieden:
- Screenshots bleiben im SDR-Format. Daher erscheinen die HDR-Regionen im Screenshot im Vergleich zu einer HDR-Szene dunkler.
- Die SDR-Leuchtkraft wird nicht verwaltet, sodass SDR-Inhalte im Screenshot so hell wie HDR-Inhalte erscheinen.
Mit anderen Worten: Alle im Screenshot aufgenommenen HDR-Videos werden in SDR-Videos konvertiert.
Android 14
Ultra HDR stellt eine große Herausforderung für Screenshots dar. Im Gegensatz zu Videos werden Bilder in der Regel im UI-Framebuffer gerendert. Das hat zwei Hauptfolgen:
- Bilder dürfen keine Bildverarbeitung, einschließlich Tonmapping, aufweisen, die sich von der umgebenden Benutzeroberfläche unterscheidet.
- Apps sind für das quellebasierte Tonmapping beim Rendern der Benutzeroberfläche verantwortlich.
Es gibt drei Möglichkeiten, Screenshots zu erstellen:
- Die HDR-Details eines Ultra-HDR-Bilds werden beibehalten, was zu einer dunkleren App-Benutzeroberfläche im Screenshot führt.
- Die Details der App-Benutzeroberfläche werden beibehalten, was zu einem Ausschneiden des Ultra-HDR-Bildes führt.
- Sie können einen Kompromiss eingehen, indem Sie die App-Benutzeroberfläche aufhellen und gleichzeitig HDR-Highlights zuschneiden.
Android 14 implementiert den dritten Ansatz, bei dem die App-Benutzeroberfläche aufgehellt und HDR-Highlights abgeschnitten werden.
Android 15-QPR1
SurfaceFlinger enthält einen lokalen Tonmapping-Algorithmus für Screenshots. Dazu sind folgende Schritte erforderlich:
- Das Eingabebild wird in kleinere Bilder unterteilt.
- Die maximale Leuchtkraft in jedem Bild wird berechnet und niedrige Leuchtkraftwerte in den einzelnen Abschnitten werden verworfen.
- Interpolieren der berechneten Leuchtdichten durch Weichzeichnen und Resampling.
- Anwendung eines parametrisierten Reinhard-Tonmappers auf das Eingabebild basierend auf den interpolierten Leuchtdichtewerten.
Dieser Algorithmus bietet erhebliche Verbesserungen bei Screenshots zwischen Android 14 und Android 15-QPR1, wie in den folgenden Beispielen zu sehen:
Beispiel 1 ist ein Screenshot eines HDR-Videos, das auf einer Chrome-Seite mit Ultra-HDR eingeblendet ist. Die Farben der Benutzeroberfläche bleiben in der neuen Implementierung größtenteils erhalten und das Bild wird nicht mehr zugeschnitten.
Android 14 Android 15-QPR1 Abbildung 1: Vergleich von Android 14 und Android 15-QPR1 für Beispiel 1
Beispiel 2 ist ein Screenshot eines HDR-Videos, das über die Einstellungen gelegt ist, mit nachfolgenden Screenshots. In Android 14 werden die Farben von Screenshots nach und nach dunkler. In Android 15-QPR1 werden die Farben der Benutzeroberfläche vom Tonemapper korrekt repliziert und beibehalten.
Android 14 Android 15-QPR1 Abbildung 2: Vergleich von Android 14 und Android 15-QPR1 für Beispiel 2