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 verbessert die Unterstützung für die gleichzeitige Präsentation von SDR- und HDR-Kompositionen auf dem Bildschirm durch die folgenden Funktionen:

  • HDR-Leuchtdichte wird in einen SDR-kompatiblen Bereich umgewandelt.

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

  • Dimmen von SDR-Inhalten auf dem Bildschirm, wenn diese 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. Alle SDR-Inhalte, die sich ebenfalls auf dem Display befinden, werden bei steigender Displayhelligkeit nahtlos gedimmt, damit sich die wahrgenommene Helligkeit der SDR-Inhalte nicht ändert. OEMs können ihre integrierten Displays so konfigurieren, dass SDR-Inhalte auf dem Bildschirm gedimmt werden, wenn sie neben HDR-Inhalten präsentiert werden.

OEM-Anforderungen

Wenn du die verbesserte Komposition für HDR- und SDR-Inhalte durch Abdunkeln der SDR-Inhalte verwenden möchtest, musst du die folgenden Anforderungen erfüllen:

  • Implementieren Sie die AIDL-Version der HWC, die die Unterstützung für hardwaregestütztes Dimmen in der Farbpipeline des Geräts umfasst. Informationen zur Implementierung der erforderlichen Funktionen finden Sie unter AIDL für HWC.

  • Für das genaue Dimmen von Hardware-Overlays im HWC ist 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.

Das Aktivieren und Optimieren der verbesserten Zusammensetzung erfolgt über eine Anzeigekonfiguration, deren Schema sich in display-device-config.xsd befindet. Die folgenden neuen wichtigen Elemente sind für die Einstellung der Anzeigekonfiguration wichtig:

  • Das Element sdrHdrRatioMap ermöglicht das Dimmen von SDR-Inhalten und definiert eine LUT (Look-Up-Table), um die Bildschirmhelligkeit für HDR-Inhalte auf den SDR-Weißpunkt abzubilden, wenn HDR-Inhalte auf dem Bildschirm angezeigt werden.

    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 Grenzwert angepasst werden, um den Modus mit hoher Helligkeit in mehr Situationen zu aktivieren, z. B. im Bild-im-Bild-Modus. In früheren Versionen von AOSP war dieser 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>

Einschränkungen

Wenn du die Funktionen für die Tonmapping- und Abdunkelung von SDR-Inhalten aktivierst, kann das 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:

    • HWC-Implementierungen, die Dimmvorgänge an die GPU weiterleiten, 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.

  • Der Bildschirmzustand kann aufgrund der längeren Zeit im Modus mit starker Helligkeit beeinträchtigt werden, was zu langfristigen Problemen wie einem Einbrennen im Displayzustand führen kann.

Zertifizierungsstufe

OEMs können VTS-Tests verwenden, die Teil der Testsuite des HWC sind, um die Richtigkeit des Dimmens und das Dimmverhältnis der Eingabe zu prüfen.

Die Validierung dieser Funktion ist geräteabhängig. Es gibt also 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 über SurfaceView unterstützt, um zu prüfen, ob SDR-Elemente, die neben den HDR-Inhalten abgespielt 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. Das liegt daran, dass dunklere Farbwerte auf eine kleinere Anzahl dunkler Codes zusammengeführt 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 nicht in der Lage sind, das Bild an der entsprechenden Stelle in der Farbpipeline zu dimmen, müssen anfordern, dass SurfaceFlinger das Dimming und Dithering auf der GPU anwendet.

Bei Implementierungen kann auch der Wert von sdrHdrRatioMap angepasst werden, um das Dimmen von SDR-Elementen einzuschränken. Wenn Sie die Helligkeit auf sehr niedrige Werte dimmen, wird die GPU verwendet. Das verbessert die Bildqualität, kann aber die Akkulaufzeit verkürzen.