Composition SDR et HDR mixte

Cette page décrit les exigences, la configuration et la validation de la fonctionnalité de gradation du contenu SDR pour une composition SDR et HDR mixte.

Android 13 améliore la compatibilité avec 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 qu'ils atténuent le contenu SDR à l'écran 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.

  • Pour atténuer précisément les superpositions matérielles dans le contrôleur matériel, vous devez disposer d'un matériel spécifique pour mettre à l'échelle 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 SDR et HDR mixte peut être configurée en fonction des caractéristiques de l'appareil d'affichage intégré, de sorte que le compromis entre l'autonomie de la batterie, le marquage et la fidélité du contenu soit établi.

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 d'affichage:

  • L'élément sdrHdrRatioMap active le gradation SDR et définit une table de correspondance (LUT) pour mapper la luminosité de l'écran pour que le HDR s'affiche sur le point blanc SDR lorsqu'il y a du contenu HDR à 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 ajusté pour activer le mode haute luminosité dans davantage de situations, comme 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

Activer les fonctionnalités de mappage des tons et de réduction de la luminosité des contenus 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 scénarios suivants:

    • Les implémentations HWC qui diffèrent les opérations de gradation au GPU peuvent entraîner une augmentation de l'utilisation 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 sont inclus dans la suite de tests du contrôleur de la carte mère, pour vérifier la correction du gradation et valider le rapport de gradation 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 effectuer 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 compatibles avec l'appareil 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 qui entraîne 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 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 pour limiter le niveau de gradation 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.