Salida de cámara de 10 bits

Para dispositivos con Android 13 y versiones posteriores, Android admite salida de cámara de 10 bits a través de perfiles de rango dinámico que el cliente de la cámara puede configurar como parte de la configuración de transmisión. Los fabricantes de dispositivos pueden agregar soporte para perfiles de rango dinámico de 10 bits como HLG10, HDR 10, HDR 10+ y Dolby Vision.

La compatibilidad con la salida de cámara de 10 bits permite a los clientes de cámara descubrir perfiles de rango dinámico de 10 bits compatibles de un dispositivo llamando a getSupportedProfiles . Luego, el marco devuelve una instancia de DynamicRangeProfiles , que incluye información sobre los perfiles de rango dinámico admitidos y, si están disponibles, restricciones de solicitud de captura. El perfil HLG10 debe ser compatible. El perfil de rango dinámico recomendado aparece en el campo REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE .

Los clientes de cámara pueden configurar combinaciones de transmisiones llamando a setDynamicRangeProfile . Para obtener más información sobre las combinaciones obligatorias de flujos de salida, consulte la tabla de configuraciones garantizadas adicionales de salida de 10 bits en Captura regular .

Requisitos

Para admitir una salida de cámara de 10 bits, el dispositivo debe tener un sensor de cámara con capacidad de 10 bits o superior compatible con el ISP respectivo. Para obtener detalles sobre los requisitos de compatibilidad relacionados con la compatibilidad con 10 bits, consulte la sección 7.5. Cámaras en el CDD.

Implementación

Para brindar soporte para salida de cámara de 10 bits, los fabricantes de dispositivos deben realizar las siguientes integraciones de cámara AIDL HAL:

  • Incluya ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT en las capacidades de la cámara.
  • Complete ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP con todos los perfiles de rango dinámico admitidos y un mapa de bits de sus restricciones. El perfil HLG10 debe ser compatible. También debe incluir un perfil de rango dinámico recomendado para informar a los clientes de la cámara sobre el formato óptimo admitido.
  • Garantice la compatibilidad con el valor del perfil de rango dinámico durante la configuración de la transmisión para transmisiones que utilizan el formato P010 o la compatibilidad con un formato definido por la implementación ( ImageFormat.PRIVATE ).
  • Dependiendo del perfil de rango dinámico, configure el búfer de metadatos estático o dinámico de los búferes Gralloc 4 procesados ​​antes de notificar al servicio de cámara.

Para obtener más detalles sobre la salida de cámara de 10 bits en Camera HAL, consulte lo siguiente en metadata_definitions.xml :

Para obtener una implementación de Camera HAL de referencia que admita salida de cámara de 10 bits, consulte /hardware/google/camera/devices/EmulatedCamera/hwl .

Validación

Para validar su implementación de salida de cámara de 10 bits y garantizar que las aplicaciones de terceros puedan habilitar la función, recomendamos realizar las siguientes tres etapas de validación.

Para la validación visual de la salida de la cámara de 10 bits, se supone que el dispositivo admite la visualización HDR (pantalla de más de 1000 nits) y la aplicación de visualización de video (por ejemplo, Google Photos) admite la reproducción de video HDR.

Probar la corrección funcional de la API

Para probar la corrección funcional API de la salida de la cámara de 10 bits, ejecute las siguientes pruebas CTS, ITS de cámara y VTS:

Compara la cámara nativa y la aplicación de terceros

Recomendamos encarecidamente asegurarse de que los resultados de la captura de vídeos de 10 bits con una aplicación de terceros sean similares, si no idénticos, a los de la aplicación de cámara nativa. Esto significa que las opciones de ajuste, como la exposición, el rango dinámico y el color, deben trasladarse de la aplicación nativa a las aplicaciones de terceros. Para verificar el comportamiento de grabación de video de una aplicación de terceros que admite salida de cámara de 10 bits en su dispositivo, use la aplicación de muestra Camera2Video en GitHub. La siguiente guía sirve para ilustrar los aspectos visibles de HDR sin números objetivos, debido a la variabilidad de sensores, paneles, condiciones de visualización y preferencias de proveedores.

Escenas sugeridas para comparar.

Para hacer una comparación entre la aplicación de cámara nativa y una aplicación de terceros, capture videos usando varias escenas diferentes tanto con la aplicación de cámara nativa como con la aplicación de muestra Camera2Video. A continuación se sugieren escenas para comparar:

  • Una escena con luz media o baja con un objeto brillante, como una vela o una pequeña luz brillante que crea un rango significativo de brillo. Esto confirma el comportamiento de exposición automática y el rango dinámico.
  • Una escena exterior luminosa con colores vibrantes y objetos reflectantes, como parachoques cromados de un coche, que crean reflejos brillantes. Esto confirma la representación de escenas brillantes con reflejos aún más brillantes.
  • Una escena de rango medio y bajo rango dinámico, como una escena natural interior en una casa u oficina. Esto confirma que las condiciones de iluminación menos extremas se comportan como se esperaba.

Para todas las escenas, recomendamos tener personas y rostros para verificar el manejo de la exposición, el color y el tono de piel. Reducir la variación entre planos facilita las comparaciones consecutivas.

Compare el rango dinámico estándar y el alto rango dinámico

Para garantizar que se perciba un beneficio al usar un perfil de rango dinámico de 10 bits sobre un perfil de rango dinámico estándar, compare las capturas de video usando SDR (sin perfil HDR) con videos HDR para confirmar que los aspectos clave de HDR aparecen en las capturas. Para comparar SDR y HDR, use la aplicación de muestra Camera2Video y las escenas sugeridas para comparar la aplicación de cámara nativa y aplicaciones de terceros.

Los siguientes son aspectos claves a verificar en las escenas sugeridas. Los paneles de visualización capaces de HDR varían en niveles de brillo (medidos en nits o lúmenes), por lo que los siguientes números proporcionados son ejemplos:

  • En la escena de luz media a baja, los reflejos brillantes de la vela o luz pequeña se representan con el brillo máximo para la pantalla (posiblemente hasta 1000 nits) en el clip HDR y se representan con el brillo máximo para SDR (aproximadamente 100 nits). liendres) en el clip SDR. En el clip HDR, las luces brillantes deberían brillar fuera de la pantalla, capturando la percepción del usuario de cuál era el verdadero rango dinámico de la escena. En comparación con el clip HDR, el clip SDR debería aparecer más plano y menos brillante.
  • En la escena de salida brillante, dependiendo de la sintonización del dispositivo, el clip HDR muestra una diferencia aparente en el brillo de la pantalla en comparación con el clip SDR. Para el clip HDR, el brillo de la pantalla para la escena general (dependiendo del espacio libre) debería ser mayor, por ejemplo hasta 800 nits, y aún más para los puntos brillantes como los parachoques cromados, alrededor del brillo máximo.
  • En la captura en interiores de rango medio y bajo rango dinámico, los clips HDR y SDR son similares en color y tono, siendo la captura HDR potencialmente más brillante que la SDR. El HDR no debería ser más oscuro que el SDR. Si las opciones de ajuste hacen que esto sea imposible, asegúrese de que el comportamiento de la aplicación de terceros coincida con el comportamiento de la aplicación de la cámara nativa.