En esta página, se describen los requisitos, la configuración y la validación de la función de atenuación del contenido de 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 mediante 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 tonos puede ser coherente entre Hardware Composer (HWC), SurfaceFlinger y las apps. Los OEMs pueden implementar sus propias curvas de asignación de tono para que se compartan entre los componentes del proveedor y del framework.Atenuar el contenido de SDR en pantalla cuando se presenta de manera simultánea con contenido HDR.
Cuando se muestra contenido HDR en la pantalla, el brillo de la pantalla aumenta para adaptarse al rango de luminancia aumentado del contenido HDR. El contenido SDR que también está en pantalla se atenúa sin problemas a medida que aumenta el brillo de la pantalla para que no cambie el brillo perceptual del contenido SDR. Los OEMs pueden configurar sus pantallas integradas para que atenúen el contenido SDR en pantalla cuando se presente junto con contenido HDR.
Requisitos del OEM
Para usar la composición mejorada para contenido HDR y SDR mediante la atenuación del contenido SDR, sigue estos 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 funciones requeridas.
La atenuación precisa de las superposiciones de hardware en HWC requiere hardware específico para escalar la luz lineal de las superposiciones. Se requieren implementaciones sin hardware suficiente para diferir la composición a la GPU por 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 integradas del dispositivo de visualización, de modo que se establezca la compensación entre la duración de la batería, el efecto quemado y la fidelidad del contenido.
Para habilitar y ajustar la composición mejorada, se utiliza una configuración de visualización 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 elemento
sdrHdrRatioMap
habilita la atenuación de SDR y define una tabla de consulta (LUT) para asignar el brillo de la pantalla para que el HDR se muestre en el punto blanco SDR cuando hay contenido HDR en la pantalla.Si se define
sdrHdrRatioMap
, como parte del control de la brillantez de la pantalla,DisplayManagerService
comunica el punto blanco SDR deseado a SurfaceFlinger para que este pueda enviar la relación de atenuación adecuada por capa al HWC.Si no se define
sdrHdrRatioMap
, la atenuación del SDR no está habilitada, incluso si la implementación de HWC admite la atenuación del SDR.El elemento
minimumHdrPercentOfScreen
, con un valor de 0 a 100, controla cuándo se puede encender 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 en situaciones de pantalla en pantalla. Las versiones anteriores de AOSP fijaron este valor en el 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 tonos y atenuación de contenido SDR puede generar las siguientes situaciones:
La fidelidad del contenido HDR que se reproduce en el dispositivo puede aumentar, ya que los elementos de contenido SDR se atenúan.
La duración de batería puede disminuir en las siguientes situaciones:
Las implementaciones de HWC que aplazan 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.
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 efecto quemado en el estado de la pantalla.
Validación
Los OEM pueden usar pruebas de VTS, que se incluyen como parte del paquete de pruebas de HWC, para verificar la corrección de 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 ni GTS que la admitan.
Los OEMs deben ejecutar pruebas manuales para validar que la calidad de la imagen de los elementos del SDR atenuados sea aceptable. Los OEMs pueden reproducir contenido para los estándares HDR que el dispositivo admite por sobre SurfaceView
para validar que los elementos SDR que se reproducen junto con el contenido HDR no se vuelvan demasiado brillantes.
Problemas
Atenuar las imágenes del SDR puede provocar ataque negro 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 causa una reducción de negros inaceptable debe implementar algoritmos de dithering, que inyectan ruido en la imagen final para reducir los efectos de bandas.
Las implementaciones de HWC que no puedan interpolar la imagen en la ubicación adecuada en la canalización de color deben solicitar que SurfaceFlinger aplique atenuación y interpolación 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.