HDR in Android-Screenshots

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

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
    Beispiel 1 in Android 14 Beispiel 1 in Android 15qpr

    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
    Beispiel 2 in Android 14 Beispiel 2 in Android 15qpr

    Abbildung 2: Vergleich von Android 14 und Android 15-QPR1 für Beispiel 2