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 las siguientes funciones:

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

    Con libtonemap, el mapeo de tonos puede ser coherente entre Hardware Composer (HWC), SurfaceFlinger y las apps. Los OEM 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 se muestra contenido HDR en la pantalla, se aumenta el brillo para adaptarse al mayor rango de luminancia del contenido HDR. Todo el contenido SDR que también se muestre en la pantalla se atenuará sin problemas a medida que aumente el brillo de la pantalla, de modo que el brillo percibido del contenido SDR no cambie. Los OEM pueden configurar sus pantallas integradas para atenuar el contenido SDR en pantalla cuando se presenta junto con contenido HDR.

Requisitos del OEM

Para usar la composición mejorada para el contenido en HDR y SDR a través de la atenuación del contenido en SDR, debes cumplir con los siguientes requisitos:

  • Implementa la versión del 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 a través de SurfaceFlinger, lo que provoca un consumo de batería y una posible atenuación de baja calidad.

  • El dispositivo debe admitir al menos una tecnología HDR que informe 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 integradas del dispositivo de pantalla, 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 pantalla:

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

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

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

  • El elemento minimumHdrPercentOfScreen, con un valor que va de 0 a 100, controla cuándo se puede activar el modo de brillo alto de un panel. En Android 13, este umbral se puede ajustar para habilitar el modo de brillo alto en más situaciones, como en escenarios de pantalla en pantalla. En versiones anteriores del AOSP, este valor se fijó 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 del contenido SDR puede generar las siguientes situaciones:

  • Puede aumentar la fidelidad del contenido HDR que se reproduce en el dispositivo, 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 mayor uso de la GPU.

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

  • La salud de la pantalla puede verse afectada debido al mayor tiempo que se pasa en el modo de brillo intenso, lo que puede causar problemas a largo plazo, como el efecto quemado en la pantalla.

Validación

Los OEM pueden usar las pruebas de VTS, que se incluyen como parte del conjunto de pruebas del HWC, para verificar la corrección de la atenuación y validar la proporción de atenuación de entrada.

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

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

Problemas

Reducir el brillo de las imágenes SDR puede provocar compresión de negros 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 de atenuación que cause un aplastamiento de negros 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 aplicar la técnica de tramado a 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. Para atenuar la pantalla a niveles de brillo muy bajos, se requiere el uso de la GPU, lo que mejora la calidad de la imagen, pero puede reducir la duración de la batería.