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
, la asignación de tonos se puede hacer 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.Atenúa el 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 de la pantalla 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 atenuar el contenido SDR en pantalla cuando se presenta junto con contenido HDR.
Requisitos del OEM
Para usar la composición mejorada para contenido HDR y SDR a través del atenuamiento del contenido SDR, sigue estos requisitos:
Implementa la versión AIDL del HWC, que incluye compatibilidad con el atenuamiento acelerado por hardware en la canalización de colores del dispositivo. Consulta AIDL para HWC para implementar las funciones requeridas.
Para atenuar con precisión las superposiciones de hardware en el HWC, se requiere hardware específico para escalar la luz lineal de las superposiciones. Las implementaciones sin hardware suficiente requieren que SurfaceFlinger aplace la composición en la GPU, lo que provoca un agotamiento de la 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 mixta 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 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 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
, no se habilita el atenuamiento SDR, incluso si la implementación de HWC admite el atenuamiento 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
Si habilitas las funciones de asignación de tono y atenuación de contenido SDR, es posible que se produzcan 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 mayor tiempo que se pasa en el modo de brillo alto, lo que puede causar problemas a largo plazo, como el efecto quemado en la pantalla.
Validación
Los OEMs pueden usar las pruebas de VTS, que se incluyen como parte del conjunto de pruebas de HWC, para verificar la corrección del atenuamiento y 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 OEM 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 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
La atenuación de las imágenes SDR puede provocar atenuació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 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 pueden suavizar la imagen en la ubicación adecuada de la canalización de colores deben solicitar que SurfaceFlinger aplique el atenuamiento y el suavizado 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.