Desde que se introdujeron los videos de alto rango dinámico (HDR), los servicios de transmisión comenzaron a transmitirlos, enfocándose en las experiencias de pantalla completa. Recientemente, las apps de redes sociales lanzaron compatibilidad con videos HDR y Ultra HDR, lo que indica un interés creciente en la adopción de HDR en varias apps.
Compatibilidad con HDR en Android
A continuación, se muestran los eventos importantes de la compatibilidad de Android con la tecnología HDR a lo largo de varios años:
Android 7
- Compatibilidad inicial con la decodificación y la visualización de video HDR.
- Mejoras continuas en las capacidades de HDR
Android 13
- Compatibilidad de extremo a extremo para la captura, codificación y visualización de videos HDR
- Se introdujo la composición mixta de SDR y HDR, que define diferentes rangos de luminancia visibles entre SDR y HDR.
Android 14
- Compatibilidad con imágenes HDR con Ultra HDR.
La compatibilidad con capturas de pantalla con HDR también evolucionó y sufrió varios cambios a lo largo de los años.
Avances en las capacidades de capturas de pantalla HDR
En esta sección, se realiza un seguimiento de la progresión de la función de captura de pantalla HDR en las actualizaciones recientes de Android.
Android 9
SurfaceFlinger, el compositor de gráficos de Android, introduce la compatibilidad con videos en HDR. La renderización de GPU de videos y capturas de pantalla HDR es compatible con un asignador de tonos polinómico complejo. Esta curva de asignación de tonos no siempre es equivalente al asignador de tonos de la pantalla, por lo que las capturas de pantalla difieren del contenido en pantalla.
Android 13
Se agrega un complemento de asignación de tono al bloque de renderización de GPU de SurfaceFlinger, lo que permite que el OEM proporcione un sombreador de GPU para que coincida con la curva de asignación de tono de la pantalla. Las capturas de pantalla casi coinciden con lo que se ve en la pantalla, pero con las siguientes diferencias:
- Las capturas de pantalla permanecen en formato SDR. Por lo tanto, cuando se ven junto a una escena HDR, las regiones HDR de la captura de pantalla aparecen más atenuadas.
- No se administra la luminancia SDR, por lo que el contenido SDR de la captura de pantalla aparece tan brillante como el contenido HDR.
En otras palabras, cualquier video HDR capturado en la captura de pantalla se convierte en video SDR.
Android 14
El Ultra HDR plantea un desafío significativo para tomar capturas de pantalla. A diferencia de los videos, las imágenes suelen renderizarse dentro del búfer de trama de la IU, lo que tiene dos implicaciones principales:
- Las imágenes no pueden tener procesamiento de imágenes, incluido el mapeo de tonos, que difiera de la IU circundante.
- Las apps son responsables de la asignación de tonos basada en la fuente cuando renderizan su IU.
Para aliviar este desafío, existen tres posibles implementaciones de capturas de pantalla:
- Conserva los detalles HDR de una imagen Ultra HDR, lo que da como resultado una IU de la app oscurecida en la captura de pantalla.
- Conserva los detalles de la IU de la app, lo que provoca que se recorten las imágenes Ultra HDR.
- Una solución intermedia es aumentar el brillo de la IU de la app mientras se recortan los aspectos destacados del HDR.
Android 14 implementa el tercer enfoque de aclarar la IU de la app y recortar los aspectos destacados de HDR.
Android 15-QPR1
SurfaceFlinger incluye un algoritmo de asignación de tonos local para las capturas de pantalla. Este proceso implica lo siguiente:
- Divide la imagen de entrada en imágenes más pequeñas.
- Calcular la luminancia máxima en cada imagen y descartar los valores de luminancia bajos dentro de cada sección
- Interpolar las luminancias calculadas a través de desenfoque y remuestreo
- Aplica un tonomapeador Reinhard parametrizado a la imagen de entrada, según los valores de luminancia interpolados.
Este algoritmo muestra mejoras significativas en las capturas de pantalla entre Android 14 y Android 15-QPR1, como se muestra en los siguientes ejemplos:
El ejemplo 1 es una captura de pantalla de un video HDR superpuesto en una página de Chrome que contiene Ultra HDR. Los colores de la IU se conservan en su mayoría en la nueva implementación, y la imagen ya no se recorta.
Android 14 Android 15-QPR1 Figura 1: Comparación de Android 14 y Android 15-QPR1 para el ejemplo 1.
El ejemplo 2 es una captura de pantalla de un video HDR superpuesto en Configuración con capturas de pantalla posteriores. En Android 14, los colores de la captura de pantalla son más oscuros de forma sucesiva. En Android 15-QPR1, el tonomapeador replica y conserva correctamente los colores de la IU.
Android 14 Android 15-QPR1 Figura 2: Comparación de Android 14 y Android 15-QPR1 para el ejemplo 2.