Composición mixta de SDR y HDR

En esta página, se describen los requisitos, la configuración y la validación de la función de atenuación de contenido SDR para la composición mixta de SDR y HDR.

Android 13 mejora la compatibilidad para presentar simultáneamente la composición de SDR y HDR en pantalla con la introducción de las siguientes funciones:

  • Asignación de tono de la luminancia HDR a un rango compatible con SDR

    Con libtonemap, la asignación de tono puede ser coherente entre Hardware Composer (HWC), SurfaceFlinger y las apps. Los OEMs pueden implementar sus propias curvas de asignación de tono para compartirlas entre los componentes del proveedor y del framework.

  • Atenuación del contenido SDR en pantalla cuando se presenta de manera simultánea con contenido HDR

    Cuando el contenido HDR está en pantalla, el brillo de la pantalla aumenta para adaptarse al rango de luminancia aumentado del contenido HDR. Cualquier contenido SDR que también esté en pantalla se atenúa sin problemas a medida que aumenta el brillo de la pantalla para que el brillo perceptual del contenido SDR no cambie. Los OEMs pueden configurar sus pantallas integradas para atenuar el contenido SDR en pantalla cuando se presenta junto con contenido HDR.

Requisitos para los OEMs

Para usar la composición mejorada para contenido HDR y SDR a través de la atenuación de contenido SDR, sigue estos requisitos:

  • Implementa la versión AIDL del HWC, que incluye compatibilidad con la atenuación acelerada por hardware en la canalización de color del dispositivo. Consulta AIDL para HWC para implementar las capacidades requeridas.

  • Para atenuar con precisión las superposiciones de hardware en el HWC, se requiere hardware específico para ajustar la luz lineal de las superposiciones. Las implementaciones sin hardware suficiente deben diferir la composición a la GPU mediante SurfaceFlinger, lo que provoca el agotamiento de la batería y una posible atenuación de baja calidad.

  • El dispositivo debe admitir al menos una tecnología HDR informada por Display.getHdrCapabilities.

Configuración

La función de composición de contenido mixto de SDR y HDR se puede configurar según las características del dispositivo de visualización integrado, de modo que se establezca la compensación entre la duración de la batería, el quemado y la fidelidad del contenido.

La habilitación y el ajuste de la composición mejorada se realizan a través de una configuración de pantalla cuyo esquema se encuentra en display-device-config.xsd. Los siguientes elementos clave nuevos son importantes para establecer la configuración de la pantalla:

  • El sdrHdrRatioMap elemento habilita la atenuación de SDR y define una tabla de búsqueda (LUT) para asignar el brillo de la pantalla para que el HDR se muestre al punto blanco de SDR cuando haya contenido HDR en la pantalla.

    Si se define sdrHdrRatioMap, como parte del control del brillo de la pantalla, DisplayManagerService comunica el punto blanco de SDR deseado a SurfaceFlinger para que SurfaceFlinger pueda enviar la relación de atenuación adecuada por capa al HWC.

    Si no se define sdrHdrRatioMap, la atenuación de SDR no está habilitada, incluso si la implementación de HWC admite la atenuación de SDR.

  • El minimumHdrPercentOfScreen elemento, con un valor que oscila entre 0 y 100, controla cuándo se permite activar el modo de brillo alto de un panel. Con Android 13, este umbral se puede ajustar para habilitar el modo de brillo alto en más situaciones, como situaciones de pantalla en pantalla. Las versiones anteriores de AOSP fijaron este valor en un 50%.

Consulta el siguiente bloque de código para ver los elementos clave de la configuración de la pantalla:

<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>

Advertencias

Habilitar las funciones de asignación de tono y atenuación de contenido SDR puede generar las siguientes situaciones:

  • La fidelidad del contenido HDR reproducido en el dispositivo puede aumentar, ya que se atenúan los elementos de contenido SDR.

  • La duración de la batería puede disminuir en las siguientes situaciones:

    • Las implementaciones de HWC que difieren las operaciones de atenuación a la GPU pueden provocar un aumento del uso de la GPU.

    • Las configuraciones de pantalla que permiten un umbral más bajo para habilitar el modo de brillo intenso pueden aumentar el consumo de energía para ejecutar la pantalla con un brillo más alto.

  • El estado de la pantalla puede verse afectado debido al aumento del tiempo que se pasa en el modo de brillo alto, lo que puede causar problemas a largo plazo, como el quemado con el estado de la pantalla.

Validación

Los OEMs pueden usar pruebas de VTS, que se incluyen como parte del paquete de pruebas del HWC, para verificar la corrección de la atenuación y para validar la relación de atenuación de entrada.

La validación de esta función depende del dispositivo, por lo que no hay pruebas de CTS ni GTS para admitirla.

Los OEMs deben ejecutar pruebas manuales para validar que la calidad de la imagen de los elementos SDR atenuados sea aceptable. Los OEMs pueden reproducir contenido para los estándares HDR que admite el dispositivo a través de SurfaceView para validar que los elementos SDR reproducidos junto con el contenido HDR no se vuelvan demasiado brillantes.

Problemas

La atenuación de imágenes SDR puede provocar black crush o pérdida de información en las áreas más oscuras de la imagen original. Esto se debe a que los valores de color más oscuros se contraen en un conjunto más pequeño de códigos oscuros.

Una implementación para la atenuación que causa un black crush inaceptable debe implementar algoritmos de tramado, que inyectan ruido en la imagen final para reducir los efectos de bandas.

Las implementaciones de HWC que no pueden tramar la imagen en la ubicación adecuada de la canalización de color deben solicitar que SurfaceFlinger aplique la atenuación y el tramado en la GPU.

Las implementaciones también pueden ajustar el valor de sdrHdrRatioMap para limitar la cantidad de atenuación de los elementos SDR. La atenuación a niveles de brillo muy bajos requiere el uso de la GPU, lo que mejora la calidad de la imagen, pero puede disminuir la duración de la batería.