Gemischte SDR- und HDR-Komposition

Auf dieser Seite werden die Anforderungen, die Konfiguration und die Validierung der Funktion zum Dimmen von SDR-Inhalten für gemischte SDR- und HDR-Kompositionen beschrieben.

Android 13 verbessert die Unterstützung für die gleichzeitige Darstellung von SDR- und HDR-Kompositionen auf dem Bildschirm durch die Einführung der folgenden Funktionen:

  • Tonwertzuordnung der HDR-Luminanz zu einem SDR-kompatiblen Bereich.

    Mit libtonemap kann die Tonzuordnung zwischen Hardware Composer (HWC), SurfaceFlinger und Apps konsistent gemacht werden. OEMs können ihre eigenen Tone-Mapping-Kurven implementieren, die von Anbietern und Framework-Komponenten gemeinsam genutzt werden.

  • Dimmen von SDR-Inhalten auf dem Bildschirm bei gleichzeitiger Präsentation mit HDR-Inhalten.

    Wenn HDR-Inhalte auf dem Bildschirm angezeigt werden, wird die Bildschirmhelligkeit erhöht, um dem größeren Luminanzbereich des HDR-Inhalts Rechnung zu tragen. Alle SDR-Inhalte, die ebenfalls auf dem Bildschirm angezeigt werden, werden mit zunehmender Bildschirmhelligkeit stufenlos gedimmt, sodass sich die wahrnehmbare Helligkeit des SDR-Inhalts nicht ändert. OEMs können ihre integrierten Displays so konfigurieren, dass SDR-Inhalte auf dem Bildschirm gedimmt werden, wenn sie zusammen mit HDR-Inhalten präsentiert werden.

OEM-Anforderungen

Um die verbesserte Komposition für HDR- und SDR-Inhalte durch Dimmen von SDR-Inhalten zu nutzen, befolgen Sie diese Anforderungen:

  • Implementieren Sie die AIDL-Version des HWC, die Unterstützung für hardwarebeschleunigtes Dimmen in der Farbpipeline des Geräts umfasst. Informationen zur Implementierung der erforderlichen Funktionalität finden Sie bei AIDL für HWC .

  • Das genaue Dimmen von Hardware-Overlays im HWC erfordert spezielle Hardware, um das lineare Licht der Overlays zu skalieren. Implementierungen ohne ausreichende Hardware müssen die Komposition durch SurfaceFlinger auf die GPU verlagern, was zu Batterieverbrauch und möglicherweise schlechter Dimmqualität führt.

  • Das Gerät muss mindestens eine von Display.getHdrCapabilities gemeldete HDR-Technologie unterstützen.

Aufbau

Die Funktion zur gemischten SDR- und HDR-Inhaltskomposition kann entsprechend den Eigenschaften des integrierten Anzeigegeräts konfiguriert werden, sodass ein Kompromiss zwischen Akkulaufzeit, Einbrennen und Inhaltstreue hergestellt wird.

Die Aktivierung und Optimierung der verbesserten Zusammensetzung erfolgt über eine Anzeigekonfiguration, deren Schema sich in display-device-config.xsd befindet. Die folgenden neuen Schlüsselelemente sind beim Festlegen der Anzeigekonfiguration wichtig:

  • Das sdrHdrRatioMap Element ermöglicht das SDR-Dimmen und definiert eine Nachschlagetabelle (LUT) zum Zuordnen der Bildschirmhelligkeit für die Anzeige von HDR zum SDR-Weißpunkt, wenn HDR-Inhalte auf dem Bildschirm angezeigt werden.

    Wenn sdrHdrRatioMap definiert ist, übermittelt DisplayManagerService im Rahmen der Steuerung der Bildschirmhelligkeit den gewünschten SDR-Weißpunkt an SurfaceFlinger, damit SurfaceFlinger das entsprechende Dimmverhältnis pro Ebene an den HWC senden kann.

    Wenn sdrHdrRatioMap nicht definiert ist, ist die SDR-Dimmung nicht aktiviert, auch wenn die HWC-Implementierung SDR-Dimmung unterstützt.

  • Das minimumHdrPercentOfScreen Element mit einem Wert zwischen 0 und 100 steuert, wann der hohe Helligkeitsmodus eines Panels aktiviert werden darf. Mit Android 13 kann dieser Schwellenwert angepasst werden, um den Modus mit hoher Helligkeit in mehr Situationen zu aktivieren, beispielsweise in Bild-in-Bild-Szenarien. Frühere Versionen von AOSP haben diesen Wert auf 50 % festgelegt.

Die wichtigsten Elemente der Anzeigekonfiguration finden Sie im folgenden Codeblock:

<displayConfiguration>
    ...
    <highBrightnessMode>
        ...
        <!--Percentage of the screen that must be covered by HDR layers until high brightness mode is enabled.
        <minimumHdrPercentOfScreen>...</minimumHdrPercentOfScreen>
        <!--sdrHdrRatioMap, backed by spline, must have at least two entries -->
        <sdrHdrRatioMap>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <!--More interpolation points may be added –->
            ...
        </sdrHdrRatioMap>
        ...
    </highBrightnessMode>
    ...
</displayConfiguration>

Vorbehalte

Die Aktivierung der Tone-Mapping- und SDR-Content-Dimming-Funktionen kann zu folgenden Situationen führen:

  • Die Wiedergabetreue der auf dem Gerät wiedergegebenen HDR-Inhalte kann sich erhöhen, da die SDR-Inhaltselemente abgeblendet werden.

  • Die Akkulaufzeit kann sich in den folgenden Szenarien verkürzen:

    • Die HWC-Implementierungen, die Dimmvorgänge auf die GPU verlagern, können zu einer erhöhten GPU-Nutzung führen.

    • Anzeigekonfigurationen, die einen niedrigeren Schwellenwert für die Aktivierung des Modus mit hoher Helligkeit zulassen, können den Stromverbrauch erhöhen, wenn der Bildschirm mit höherer Helligkeit betrieben wird.

  • Durch die längere Zeit, die im Modus mit hoher Helligkeit verbracht wird, kann der Zustand des Bildschirms beeinträchtigt werden, was zu langfristigen Problemen wie einem Einbrennen des Zustands des Bildschirms führen kann.

Validierung

OEMs können VTS-Tests verwenden, die Teil der HWC-Testsuite sind, um die Dimmkorrektheit zu überprüfen und das Eingangs-Dimmverhältnis zu validieren .

Die Validierung dieser Funktion ist geräteabhängig, daher gibt es keine CTS- oder GTS-Tests, die dies unterstützen.

OEMs müssen manuelle Tests durchführen, um sicherzustellen, dass die Bildqualität gedimmter SDR-Elemente akzeptabel ist. OEMs können Inhalte für HDR-Standards, die das Gerät unterstützt, über SurfaceView abspielen, um zu überprüfen, dass alle SDR-Elemente, die neben den HDR-Inhalten abgespielt werden, nicht zu hell werden.

Probleme

Das Abdunkeln von SDR-Bildern kann zu einem Schwarzstich oder Informationsverlust in dunkleren Bereichen des Originalbilds führen. Dies ist darauf zurückzuführen, dass dunklere Farbwerte auf einen kleineren Satz dunkler Codes reduziert werden.

Eine Implementierung zum Dimmen, die zu einem inakzeptablen Black Crush führt, muss Dithering-Algorithmen implementieren, die Rauschen in das endgültige Bild einspeisen, sodass Streifeneffekte reduziert werden.

HWC-Implementierungen, die das Bild nicht an der entsprechenden Stelle in der Farbpipeline dithern können, müssen anfordern, dass der SurfaceFlinger Dimmen und Dithering auf der GPU anwendet.

Implementierungen können auch den Wert von sdrHdrRatioMap anpassen, um den Dimmumfang für SDR-Elemente zu begrenzen. Das Dimmen auf sehr niedrige Helligkeitsstufen erfordert den Einsatz der GPU, was die Bildqualität verbessert, aber die Akkulaufzeit verkürzen kann.