Android 14 admite la captura de imágenes comprimidas Ultra HDR usando el formato de imagen JPEG_R
. Este formato es retrocompatible con imágenes JPEG SDR y admite la renderización HDR del contenido.
Para obtener detalles sobre la especificación del formato Ultra HDR, consulta Ultra HDR Image Format v1.0.
Implementación
En esta sección, se describe cómo implementar la función Ultra HDR.
Implementación de referencia
El framework y el servicio de la cámara de AOSP incluyen una implementación de referencia de Ultra HDR.
Además de la funcionalidad de referencia en el framework de la cámara, puedes implementar Ultra HDR dentro de la HAL de la cámara y anunciar la compatibilidad con la salida de JPEG_R
de la misma manera que otras transmisiones de salida de la HAL de la cámara. En esta situación, el HAL de la cámara debe generar el mapa de recuperación necesario y la imagen JPEG_R
final como se define en la especificación de Ultra HDR.
Puedes optimizar y ajustar el resultado final según las capacidades de hardware y software del dispositivo.
Opciones de implementación
Los fabricantes de dispositivos pueden decidir los siguientes niveles de compatibilidad con Ultra HDR para sus dispositivos:
- Mínimo: En esta configuración, la salida Ultra HDR a través de la funcionalidad de transmisión compuesta del servicio de la cámara está inhabilitada de forma predeterminada. Para habilitar la implementación de referencia
JpegRCompositeStream
, establece la propiedad del sistemaro.camera.enableCompositeAPI0JpegR
entrue
. Debido a que todos los procesos y la codificación se realizan en software, esta opción puede generar una mayor latencia y una disminución del rendimiento. - Moderada: Con esta opción, la implementación de
JpegRCompositeStream
usa un archivo JPEG SDR proporcionado por HAL como imagen base y un marco P010 para calcular un mapa de recuperación. Esta opción implica el procesamiento de software dentro de la ruta de datos, pero es relativamente menor en comparación con la opción mínima. - Extensa: La HAL de la cámara anuncia y admite directamente el flujo de salida de
JPEG_R
. Esta opción permite a los fabricantes de dispositivos implementar optimizaciones específicas del dispositivo y puede proporcionar mejoras significativas en la calidad de la imagen.
Para inhabilitar la implementación de JpegRCompositeStream
, establece la propiedad de compilación ro.camera.disableJpegR
en true
. Si esta propiedad de compilación no está establecida o está configurada en false
, Ultra HDR se habilita de forma predeterminada a través de JpegRCompositeStream
en dispositivos compatibles con la capacidad de salida de 10 bits y la captura simultánea de 10 y 8 bits.
Validación
Para validar la función Ultra HDR en tu dispositivo, ejecuta las siguientes pruebas.
Pruebas de CTS
ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegR
ImageReaderTest.java#testJpegR
ImageReaderTest.java#testJpegRDisplayP3
PerformanceTest.java#testSingleCapture
StillCaptureTest.java# testJpegRCapture
Pruebas de ITS
Pruebas manuales
Para realizar pruebas manuales, usa la implementación de muestra para la captura de imágenes Ultra HDR, que incluye compatibilidad con la configuración y captura de Ultra HDR con el formato de imagen JPEG_R
.