Android 14 proporciona compatibilidad para capturar imágenes comprimidas Ultra HDR con 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 cámara del 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 otros flujos de salida de la HAL de la cámara. En esta situación, la HAL de la cámara debe generar el mapa de recuperación necesario y la imagen JPEG_R
final, según 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ínima: En esta configuración, la salida Ultra HDR a través de la funcionalidad de transmisión compuesta del servicio de 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 un menor rendimiento. - Moderada: Con esta opción, la implementación de
JpegRCompositeStream
usa un archivo JPEG SDR proporcionado por el HAL como imagen base y un fotograma 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 el flujo de salida
JPEG_R
directamente. Esta opción permite que los fabricantes de dispositivos implementen optimizaciones específicas para cada 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 se establece en false
, Ultra HDR se habilita de forma predeterminada a través de JpegRCompositeStream
en dispositivos que admiten capacidad de salida de 10 bits y 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 para la configuración y la captura de Ultra HDR con el formato de imagen JPEG_R
.