Cette page décrit les exigences, la configuration et la validation de la fonctionnalité d'atténuation de la luminosité du contenu SDR pour la composition mixte SDR et HDR.
Android 13 améliore la prise en charge de la présentation simultanée de la composition SDR et HDR à l'écran en introduisant les fonctionnalités suivantes:
Mappage des tons de la luminance HDR sur une plage compatible avec le format SDR.
À l'aide de
libtonemap
, le mappage des tons peut être rendu cohérent entre le Hardware Composer (HWC), SurfaceFlinger et les applications. Les OEM peuvent implémenter leurs propres courbes de mappage des tons à partager entre les composants du fournisseur et du framework.Atténuation du contenu SDR à l'écran lorsqu'il est présenté simultanément avec du contenu HDR.
Lorsque le contenu HDR s'affiche à l'écran, la luminosité de l'écran est augmentée pour s'adapter à la plage de luminance accrue du contenu HDR. Tout contenu SDR qui est également à l'écran est progressivement atténué à mesure que la luminosité de l'écran augmente, de sorte que la luminosité perceptive du contenu SDR ne change pas. Les OEM peuvent configurer leurs écrans intégrés pour assombrir l'écran du contenu SDR lorsqu'il est présenté avec du contenu HDR.
Exigences OEM
Pour utiliser la composition améliorée pour les contenus HDR et SDR via l'atténuation du contenu SDR, suivez ces exigences :
Implémentez la version AIDL du HWC, qui prend en charge le gradation accélérée matérielle dans le pipeline de couleurs de l'appareil. Reportez-vous à AIDL pour HWC pour implémenter les fonctionnalités requises.
La diminution précise de la luminosité des superpositions matérielles dans le HWC nécessite du matériel spécifique pour ajuster la lumière linéaire des superpositions. Les implémentations sans matériel suffisant doivent différer la composition vers le GPU par SurfaceFlinger, ce qui entraîne une décharge de la batterie et un éventuel assombrissement de mauvaise qualité.
L'appareil doit être compatible avec au moins une technologie HDR signalée par
Display.getHdrCapabilities
.
Configuration
La fonctionnalité de composition de contenu mixte SDR et HDR peut être configurée en fonction des caractéristiques de l'appareil d'affichage intégré, afin de trouver un compromis entre l'autonomie de la batterie, les brûlures d'écran et la fidélité du contenu.
L'activation et l'ajustement de la composition améliorée s'effectuent via une configuration d'affichage dont le schéma se trouve dans display-device-config.xsd
.
Les nouveaux éléments clés suivants sont importants pour définir la configuration de l'affichage:
L'élément
sdrHdrRatioMap
active le gradation SDR et définit une table de correspondance (LUT) pour mapper la luminosité de l'écran HDR à afficher sur le point blanc SDR lorsqu'un contenu HDR s'affiche à l'écran.Si
sdrHdrRatioMap
est défini,DisplayManagerService
communique le point blanc SDR souhaité à SurfaceFlinger dans le cadre du contrôle de la luminosité de l'écran afin que SurfaceFlinger puisse envoyer le rapport de gradation approprié par couche au HWC.Si
sdrHdrRatioMap
n'est pas défini, le gradation SDR n'est pas activée, même si l'implémentation HWC est compatible avec la gradation SDR.L'élément
minimumHdrPercentOfScreen
, dont la valeur varie de 0 à 100, contrôle le moment où le mode de luminosité élevée d'un panneau peut être activé. Avec Android 13, ce seuil peut être réglé pour activer le mode luminosité élevée dans davantage de situations, par exemple dans les scénarios Picture-in-picture. Les versions précédentes d'AOSP définissaient cette valeur sur 50 %.
Consultez le bloc de code suivant pour connaître les principaux éléments de la configuration d'affichage :
<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>
Mises en garde
L'activation des fonctionnalités de mappage des tons et de diminution de la luminosité du contenu SDR peut entraîner les situations suivantes:
La fidélité du contenu HDR lu sur l'appareil peut augmenter, car les éléments de contenu SDR sont estompés.
L'autonomie de la batterie peut diminuer dans les scénarios suivants :
Les implémentations HWC qui reportent les opérations de diminution de la luminosité au GPU peuvent entraîner une utilisation accrue du GPU.
Les configurations d'affichage qui permettent d'activer le mode haute luminosité avec un seuil inférieur peuvent augmenter la consommation d'énergie pour faire fonctionner l'écran à une luminosité plus élevée.
L'état de l'écran peut être affecté par le temps passé en mode luminosité élevée, ce qui peut entraîner des problèmes à long terme tels que des brûlures d'écran.
Validation
Les OEM peuvent utiliser les tests VTS, qui font partie de la suite de tests du matériel, pour vérifier l'exactitude de la luminosité et valider le taux de diminution de la luminosité des entrées.
La validation de cette fonctionnalité dépend de l'appareil. Il n'existe donc pas de tests CTS ou GTS pour la prendre en charge.
Les OEM doivent exécuter des tests manuels pour vérifier que la qualité d'image des éléments SDR atténués est acceptable. Les OEM peuvent lire du contenu pour les normes HDR que l'appareil prend en charge au-delà de SurfaceView
afin de vérifier que les éléments SDR lus avec le contenu HDR ne deviennent pas trop lumineux.
Problèmes
Atténuer les images SDR peut entraîner un écrasement des noirs ou une perte d'informations dans les zones plus sombres de l'image d'origine. Cela est dû au fait que les valeurs de couleur plus sombres se réduisent à un ensemble plus restreint de codes sombres.
Une implémentation de l'assombrissement provoquant un écrasement de noir inacceptable doit implémenter des algorithmes de tramage, qui injectent du bruit dans l'image finale afin de réduire les effets des bandes.
Les implémentations HWC qui ne peuvent pas atténuer l'image à l'emplacement approprié dans le pipeline de couleurs doivent demander à SurfaceFlinger d'appliquer l'atténuation et le tramage sur le GPU.
Les implémentations peuvent également ajuster la valeur de sdrHdrRatioMap
afin de limiter la quantité d'assombrissement des éléments SDR. La réduction de la luminosité à des niveaux très faibles nécessite l'utilisation du GPU, ce qui améliore la qualité de l'image, mais peut réduire l'autonomie de la batterie.