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 eine gemischte SDR- und HDR-Komposition beschrieben.

Android 13 bietet eine verbesserte Unterstützung für die gleichzeitige Darstellung von SDR- und HDR-Kompositionen auf dem Bildschirm. Dazu wurden die folgenden Funktionen eingeführt:

  • Tone Mapping für die HDR-Leuchtdichte in einem SDR-kompatiblen Bereich

    Mit libtonemap kann die Tonanpassung zwischen Hardware Composer (HWC), SurfaceFlinger und Apps einheitlich gestaltet werden. OEMs können ihre eigenen Tonmapping-Kurven implementieren, die zwischen Anbieter- und Framework-Komponenten freigegeben werden.

  • Dimmen von SDR-Inhalten auf dem Bildschirm, wenn sie gleichzeitig mit HDR-Inhalten präsentiert werden.

    Wenn HDR-Inhalte auf dem Bildschirm angezeigt werden, wird die Bildschirmhelligkeit erhöht, um dem erweiterten Leuchtdichtebereich der HDR-Inhalte gerecht zu werden. SDR-Inhalte, die auch auf dem Bildschirm zu sehen sind, werden mit zunehmender Bildschirmhelligkeit nahtlos gedimmt, damit die Wahrnehmung der SDR-Inhalte nicht verändert wird. 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

Wenn du die verbesserte Bildkomposition für HDR- und SDR-Inhalte durch Dimmen von SDR-Inhalten verwenden möchtest, musst du die folgenden Anforderungen erfüllen:

  • Implementieren Sie die AIDL-Version der HWC, die hardwarebeschleunigtes Dimmen in der Farbpipeline des Geräts unterstützt. Informationen zur Implementierung der erforderlichen Funktionen finden Sie unter AIDL for HWC.

  • Für das genaue Dimmen von Hardware-Overlays in der HWC ist eine spezielle Hardware erforderlich, um das lineare Licht der Overlays zu skalieren. Bei Implementierungen ohne ausreichende Hardware muss die Zusammensetzung von SurfaceFlinger an die GPU übergeben werden, was zu einem Akkuverbrauch und möglicherweise zu einem schlechten Dimmen führt.

  • Das Gerät muss mindestens eine HDR-Technologie unterstützen, die von Display.getHdrCapabilities gemeldet wird.

Konfiguration

Die Funktion zur gemischten Zusammensetzung von SDR- und HDR-Inhalten kann gemäß den Eigenschaften des integrierten Displays konfiguriert werden, um einen Kompromiss zwischen Akkulaufzeit, Einbrennen und Inhaltstreue zu finden.

Die verbesserte Komposition wird über eine Displaykonfiguration aktiviert und angepasst, deren Schema sich unter display-device-config.xsd befindet. Die folgenden neuen wichtigen Elemente sind für die Einstellung der Anzeigekonfiguration wichtig:

  • Mit dem Element sdrHdrRatioMap wird das Abdunkeln von SDR aktiviert und eine Suchtabelle (LUT) definiert, mit der die Bildschirmhelligkeit für HDR, die dem SDR-Weißpunkt angezeigt wird, zugeordnet werden, wenn HDR-Inhalte auf dem Bildschirm zu sehen sind.

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

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

  • Mit dem Element minimumHdrPercentOfScreen mit einem Wert von 0 bis 100 wird festgelegt, wann der Modus mit hoher Helligkeit für ein Display aktiviert werden darf. Unter Android 13 kann dieser Schwellenwert eingestellt werden, um den Modus mit hoher Helligkeit in mehr Situationen zu aktivieren, z. B. in Bild-im-Bild-Szenarien. In früheren Versionen von AOSP war dieser Wert auf 50 % festgelegt.

Im folgenden Codeblock sind die wichtigsten Elemente der Anzeigekonfiguration aufgeführt:

<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>

Einschränkungen

Das Aktivieren der Funktionen „Tone Mapping“ und „SDR-Inhaltsabdunkelung“ kann zu folgenden Situationen führen:

  • Die Wiedergabequalität von HDR-Inhalten auf dem Gerät kann sich verbessern, da die SDR-Inhaltselemente gedimmt werden.

  • In den folgenden Fällen kann die Akkulaufzeit kürzer sein:

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

    • Displaykonfigurationen, die einen niedrigeren Grenzwert zum Aktivieren des Modus mit hoher Helligkeit ermöglichen, können die Stromaufnahme erhöhen, um den Bildschirm mit einer höheren Helligkeit zu schalten.

  • Die Lebensdauer des Displays kann durch die längere Nutzung des Modus mit hoher Helligkeit beeinträchtigt werden. Dies kann zu langfristigen Problemen wie Einbrennen führen.

Zertifizierungsstufe

OEMs können VTS-Tests verwenden, die in der HWC-Testsuite enthalten sind, um die Richtigkeit der Abdunkelung zu prüfen und das Dimming-Verhältnis der Eingabe zu validieren.

Die Validierung dieser Funktion ist geräteabhängig. Es gibt daher 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 abspielen, die das Gerät unterstützt, um zu prüfen, ob SDR-Elemente, die zusammen mit den HDR-Inhalten wiedergegeben werden, nicht zu hell werden.

Probleme

Wenn du SDR-Bilder dämpfst, kann es zu Black Crush oder zu Informationsverlusten in dunkleren Bereichen des Originalbilds kommen. Dies liegt daran, dass dunklere Farbwerte auf einen kleineren Satz dunkler Codes minimiert werden.

Eine Implementierung zum Abdunkeln, die zu einem inakzeptablen Schwarz-Crush führt, muss Dithering-Algorithmen implementieren, die Rauschen in das endgültige Bild einschleusen, um Banding-Effekte zu reduzieren.

HWC-Implementierungen, die das Bild nicht an der richtigen Stelle in der Farbpipeline ditheringen 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 die Anzahl der Dimmungen für SDR-Elemente zu begrenzen. Das Abdunkeln auf eine sehr geringe Helligkeit erfordert die Verwendung der GPU, was die Bildqualität verbessert, aber die Akkulaufzeit verringern kann.