Auf dieser Seite werden die Anforderungen, die Konfiguration und die Validierung der Funktion zum Dimmen von SDR-Inhalten für die Komposition von SDR- und HDR-Inhalten beschrieben.
Android 13 bietet eine verbesserte Unterstützung für die gleichzeitige Darstellung von SDR- und HDR-Kompositionen auf dem Bildschirm. Dazu werden die folgenden Funktionen eingeführt:
Tone Mapping der HDR-Leuchtdichte in einen SDR-kompatiblen Bereich.
Mit
libtonemap
kann die Tonzuordnung zwischen Hardware Composer (HWC), SurfaceFlinger und Apps konsistent sein. OEMs können eigene Tone-Mapping-Kurven implementieren, die zwischen Anbieter- und Framework-Komponenten geteilt werden.SDR-Inhalte auf dem Bildschirm werden abgedunkelt, wenn sie gleichzeitig mit HDR-Inhalten angezeigt werden.
Wenn HDR-Inhalte auf dem Bildschirm angezeigt werden, wird die Bildschirmhelligkeit erhöht, um den erhöhten Leuchtdichtebereich der HDR-Inhalte zu berücksichtigen. Alle SDR-Inhalte, die ebenfalls auf dem Display angezeigt werden, werden mit zunehmender Displayhelligkeit nahtlos gedimmt, sodass 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 zusammen mit HDR-Inhalten angezeigt werden.
OEM-Anforderungen
Wenn Sie die verbesserte Komposition für HDR- und SDR-Inhalte durch Dimmen von SDR-Inhalten verwenden möchten, müssen Sie die folgenden Anforderungen erfüllen:
Implementieren Sie die AIDL-Version des HWC, die Unterstützung für die hardwarebeschleunigte Dimmung in der Farb-Pipeline des Geräts umfasst. Informationen zum Implementieren 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 Komposition von SurfaceFlinger auf die GPU verschoben werden, was zu einem erhöhten Akkuverbrauch und einer möglichen Dimmung von geringer Qualität führt.
Das Gerät muss mindestens eine HDR-Technologie unterstützen, die von
Display.getHdrCapabilities
gemeldet wird.
Konfiguration
Die Funktion zum Kombinieren von SDR- und HDR-Inhalten kann entsprechend den Eigenschaften des integrierten Displays konfiguriert werden, sodass ein Kompromiss zwischen Akkulaufzeit, Burn-in und Inhaltswiedergabe gefunden wird.
Die verbesserte Komposition wird über eine Displaykonfiguration aktiviert und optimiert, deren Schema sich in display-device-config.xsd
befindet.
Die folgenden neuen Schlüsselelemente sind wichtig, wenn Sie die Anzeigekonfiguration festlegen:
Das Element
sdrHdrRatioMap
ermöglicht das Dimmen von SDR und definiert eine Look-up-Tabelle (LUT) für die Zuordnung der Bildschirmhelligkeit für die HDR-Anzeige zum SDR-Weißpunkt, wenn HDR-Inhalte auf dem Bildschirm angezeigt werden.Wenn
sdrHdrRatioMap
definiert ist, wird im Rahmen der Steuerung der Bildschirmhelligkeit der gewünschte SDR-Weißpunkt vonDisplayManagerService
an SurfaceFlinger übermittelt, damit SurfaceFlinger das entsprechende Dimmverhältnis pro Ebene an den HWC senden kann.Wenn
sdrHdrRatioMap
nicht definiert ist, wird die SDR-Dimmung nicht aktiviert, auch wenn die HWC-Implementierung SDR-Dimmung unterstützt.Das Element
minimumHdrPercentOfScreen
mit einem Wert zwischen 0 und 100 steuert, wann der Modus für hohe Helligkeit eines Panels aktiviert werden darf. In Android 13 kann dieser Grenzwert angepasst werden, um den Modus für hohe 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.
Im folgenden Codeblock sehen Sie die wichtigsten Elemente der Displaykonfiguration:
<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 Sie die Funktionen für Tone Mapping und Dimmen von SDR-Inhalten aktivieren, kann es zu folgenden Situationen kommen:
Die Qualität von HDR-Inhalten, die auf dem Gerät wiedergegeben werden, kann verbessert werden, da die SDR-Inhaltselemente abgedunkelt werden.
Die Akkulaufzeit kann in den folgenden Szenarien abnehmen:
Die HWC-Implementierungen, die Dimmvorgänge auf die GPU verschieben, können zu einer erhöhten GPU-Nutzung führen.
Displaykonfigurationen, die einen niedrigeren Schwellenwert für die Aktivierung des Modus für hohe Helligkeit ermöglichen, können den Stromverbrauch für den Betrieb des Bildschirms bei höherer Helligkeit erhöhen.
Die Displaygesundheit kann durch die längere Nutzung im Modus mit hoher Helligkeit beeinträchtigt werden, was langfristig zu Problemen wie dem Einbrennen des Displays führen kann.
Zertifizierungsstufe
OEMs können VTS-Tests verwenden, die in der Testsuite des HWC enthalten sind, um die Korrektheit der Dimmung zu prüfen und das Eingabedimmverhältnis zu validieren.
Die Validierung für diese 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 zu prüfen, ob die Bildqualität von gedämpften SDR-Elementen akzeptabel ist. OEMs können Inhalte für HDR-Standards, die das Gerät unterstützt, über SurfaceView
abspielen, um zu prüfen, ob SDR-Elemente, die zusammen mit den HDR-Inhalten wiedergegeben werden, nicht zu hell werden.
Probleme
Das Dimmen von SDR-Bildern kann zu Black Crush oder Informationsverlust in dunkleren Bereichen des Originalbilds führen. Das liegt daran, dass dunklere Farbwerte auf eine kleinere Gruppe von dunklen Codes reduziert werden.
Bei einer Implementierung für das Dimmen, die zu einem inakzeptablen Black Crush führt, müssen Dithering-Algorithmen implementiert werden, die dem endgültigen Bild Rauschen hinzufügen, damit Banding-Effekte reduziert werden.
HWC-Implementierungen, die das Bild nicht an der entsprechenden Stelle in der Farb-Pipeline dithern können, müssen anfordern, dass SurfaceFlinger das Dimmen und Dithern auf der GPU anwendet.
Bei Implementierungen kann auch der Wert von sdrHdrRatioMap
angepasst werden, um die Dimmung von SDR-Elementen zu begrenzen. Das Dimmen auf sehr niedrige Helligkeitsstufen erfordert die Verwendung der GPU, was die Bildqualität verbessert, aber die Akkulaufzeit verkürzen kann.