Cette page décrit les exigences, la configuration et la validation de la fonctionnalité de diminution 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 compositions SDR et HDR à l'écran en introduisant les fonctionnalités suivantes :
Mappage des tons de la luminance HDR à une plage compatible SDR.
À l'aide de
libtonemap, le mappage de tonalités peut être cohérent entre Hardware Composer (HWC), SurfaceFlinger et les applications. Les OEM peuvent implémenter leurs propres courbes de mappage de tonalités à partager entre les composants du fournisseur et du framework.L'assombrissement du contenu SDR à l'écran lorsqu'il est présenté simultanément avec du contenu HDR.
Lorsque du contenu HDR est affiché à l'écran, la luminosité de l'écran est augmentée pour s'adapter à la plage de luminance plus élevée du contenu HDR. Tout contenu SDR également affiché à l'écran est automatiquement assombri à mesure que la luminosité de l'écran augmente, de sorte que la luminosité perçue du contenu SDR ne change pas. Les OEM peuvent configurer leurs écrans intégrés pour qu'ils atténuent le contenu SDR à l'écran lorsqu'il est présenté à côté d'un contenu HDR.
Exigences liées aux OEM
Pour utiliser la composition améliorée pour les contenus HDR et SDR via la diminution de la luminosité des contenus SDR, vous devez respecter les exigences suivantes :
Implémentez la version AIDL du HWC, qui inclut la prise en charge de la diminution de la luminosité accélérée par le matériel dans le pipeline de couleurs de l'appareil. Consultez AIDL pour HWC pour implémenter les fonctionnalités requises.
Pour atténuer précisément les calques matériels dans HWC, il faut du matériel spécifique pour mettre à l'échelle la lumière linéaire des calques. Les implémentations sans matériel suffisant sont tenues de différer la composition sur le GPU par SurfaceFlinger, ce qui entraîne une décharge de la batterie et une possible atténuation 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 SDR et HDR mixtes peut être configurée en fonction des caractéristiques de l'écran intégré, afin d'établir un compromis entre l'autonomie de la batterie, le burn-in et la fidélité du contenu.
Pour activer et ajuster la composition améliorée, vous devez utiliser 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
sdrHdrRatioMappermet de réduire la luminosité SDR et définit une table de correspondance (LUT) pour mapper la luminosité de l'écran pour l'affichage HDR au point blanc SDR lorsqu'un contenu HDR est affiché à l'écran.Si
sdrHdrRatioMapest défini,DisplayManagerServicecommunique le point blanc SDR souhaité à SurfaceFlinger dans le cadre du contrôle de la luminosité de l'écran. SurfaceFlinger peut ainsi envoyer le rapport de diminution approprié par calque au HWC.Si
sdrHdrRatioMapn'est pas défini, la diminution de la luminosité SDR n'est pas activée, même si l'implémentation HWC la prend en charge.L'élément
minimumHdrPercentOfScreen, dont la valeur est comprise entre 0 et 100, contrôle le moment où le mode haute luminosité d'un panneau peut être activé. Avec Android 13, ce seuil est réglable pour activer le mode haute luminosité dans davantage de situations, comme les scénarios Picture-in-picture. Les versions précédentes d'AOSP ont fixé cette valeur à 50%.
Consultez le bloc de code suivant pour connaître les éléments clés de la configuration de l'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 de tonalité 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 atténués.
L'autonomie de la batterie peut diminuer dans les cas suivants :
Les implémentations HWC qui diffèrent les opérations de diminution de la luminosité au GPU peuvent entraîner une utilisation accrue du GPU.
Les configurations d'affichage qui permettent un seuil plus bas pour activer le mode luminosité élevée 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 haute luminosité, ce qui peut entraîner des problèmes à long terme tels que la brûlure d'écran.
Validation
Les OEM peuvent utiliser les tests VTS, qui sont inclus dans la suite de tests HWC, pour vérifier l'exactitude de la gradation et valider le ratio de gradation d'entrée.
La validation de cette fonctionnalité dépend de l'appareil. Il n'existe donc pas de tests CTS ni GTS pour la prendre en charge.
Les OEM doivent exécuter des tests manuels pour valider que la qualité d'image des éléments SDR atténués est acceptable. Les OEM peuvent lire du contenu pour les normes HDR compatibles avec l'appareil sur SurfaceView afin de vérifier que les éléments SDR lus en même temps que le contenu HDR ne deviennent pas trop lumineux.
Problèmes
La diminution de la luminosité des images SDR peut entraîner un écrasement des noirs, c'est-à-dire une perte d'informations dans les zones les plus sombres de l'image d'origine. En effet, les valeurs de couleur plus foncées sont regroupées dans un ensemble plus petit de codes sombres.
Une implémentation de la diminution de la luminosité qui provoque un écrasement des noirs inacceptable doit implémenter des algorithmes de dithering, qui injectent du bruit dans l'image finale afin de réduire les effets de banding.
Les implémentations HWC qui ne sont pas en mesure de dithering l'image à l'emplacement approprié du pipeline de couleurs doivent demander à SurfaceFlinger d'appliquer la gradation et le dithering sur le GPU.
Les implémentations peuvent également ajuster la valeur de sdrHdrRatioMap pour limiter la quantité d'assombrissement des éléments SDR. Pour réduire la luminosité à des niveaux très bas, il faut utiliser le GPU, ce qui améliore la qualité de l'image, mais peut réduire l'autonomie de la batterie.