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 pueden que establece el cliente de la cámara como parte de la configuración de la transmisión. Dispositivo pueden agregar compatibilidad con perfiles de rango dinámico de 10 bits, como HLG10, HDR 10, HDR 10+ y Dolby Vision.

La compatibilidad con salidas de cámara de 10 bits permite que los clientes de cámaras descubran perfiles de rango dinámico de un dispositivo llamando getSupportedProfiles El framework luego muestra una instancia de DynamicRangeProfiles: que incluye información sobre los perfiles de rango dinámico compatibles y, si disponibles y las restricciones de las solicitudes de captura. El HLG10 El perfil debe ser compatible. El perfil de rango dinámico recomendado se incluye en el REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE .

Los clientes de cámara pueden configurar combinaciones de transmisión llamando setDynamicRangeProfile Para obtener más información sobre las combinaciones obligatorias de flujos de salida, consulta el Tabla de configuraciones garantizadas adicionales de salida de 10 bits en Captura normal.

Requisitos

Para admitir la salida de cámara de 10 bits, el dispositivo debe tener una de 10 bits o más potente y compatible con el ISP correspondiente. Para obtener detalles sobre las requisitos de compatibilidad de 10 bits, consulta la sección 7.5 Cámaras del CDD.

Implementación

Para ofrecer compatibilidad con la salida de cámara de 10 bits, los fabricantes de dispositivos deben realizar lo siguiente: las siguientes integraciones de la HAL del AIDL de la cámara:

  • Incluir ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT en capacidades de la cámara.
  • Completar ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP con todos los perfiles de rango dinámico admitidos y un mapa de bits con las restricciones. El HLG10 El perfil debe ser compatible. También debes incluir una tabla dinámica recomendada para informar a los clientes de la cámara cuál es el formato compatible óptimo.
  • Garantizar la compatibilidad con el valor del perfil de rango dinámico durante la transmisión de Terraform para transmisiones con P010 o compatibilidad con un formato definido por la implementación (ImageFormat.PRIVATE).
  • Según el perfil de rango dinámico, configura los metadatos estáticos o dinámicos. de búferes de Gralloc 4 procesados antes de notificar al servicio de cámara.

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

Para ver una implementación de referencia de la HAL de la cámara que admita salida de cámara de 10 bits, consulta /hardware/google/camera/devices/EmulatedCamera/hwl

Validación

Para validar la implementación de la salida de la cámara de 10 bits y garantizar que las apps de terceros puedan habilitar la función, te recomendamos que realices 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 de HDR (pantalla de más de 1000 nits) y la app de visualización de videos (para ejemplo, Google Fotos) admite la reproducción de videos HDR.

Probar la precisión funcional de la API

Para probar la corrección funcional de la API de la salida de la cámara de 10 bits, ejecuta el después de las pruebas de CTS, ITS de la cámara y VTS:

Compara la cámara nativa y las apps de terceros

Te recomendamos que te asegures de que los resultados de capturar videos de 10 bits con de una app de terceros son similares, si no idénticas, a la app de cámara nativa. Esta significa que las opciones de ajuste, como exposición, rango dinámico y color, pasan de la app nativa a las apps de terceros. Para verificar el video de una app de terceros que admite una salida de cámara de 10 bits en tu usa el App de ejemplo de Camera2Video en GitHub. La siguiente guía sirve para ilustrar los aspectos visibles de HDR sin números objetivos debido a la variabilidad de los sensores, los paneles, las condiciones de visualización y las preferencias del proveedor.

Escenas sugeridas para comparar

Para comparar entre la app de cámara nativa y una app de terceros, haz lo siguiente: Captura videos usando varias escenas distintas con la app nativa de cámara y la app de ejemplo Camera2Video. Las siguientes son escenas sugeridas para comparación:

  • Es una escena con poca luz y un objeto brillante, como una vela o una pequeña luz brillante que crea un rango significativo de brillo. Esta Confirmar el comportamiento de la exposición automática y el rango dinámico.
  • Una escena exterior brillante con colores brillantes y objetos reflectantes, como como los bumpers de cromo de un automóvil, lo que crea aspectos destacados. Esto confirma la renderización en escenas brillantes con zonas brillantes aún más brillantes.
  • Escena de rango medio y bajo rango dinámico, como una escena natural interior en una casa o una oficina. Esto confirma que las condiciones de iluminación menos extremas como se esperaba.

Para todas las escenas, recomendamos tener personas y rostros para verificar la exposición, el color, y el manejo del tono de piel. Reducir la variación de toma a toma facilita de datos.

Comparación del rango dinámico estándar y el rango dinámico alto

Para garantizar que se perciba un beneficio al usar un rango dinámico de 10 bits perfil sobre un perfil de rango dinámico estándar, compara capturas de video con SDR. (sin perfil HDR) para confirmar que los aspectos clave del HDR aparecen las capturas. Para comparar SDR y HDR, usa la App de ejemplo de Camera2Video y escenas sugeridas para comparar la cámara nativa de Google y de terceros.

Los siguientes son aspectos clave que se deben verificar en las escenas sugeridas. Paneles de visualización compatibles con HDR varían en los niveles de brillo (medidos en nits o lúmenes), por lo que Los siguientes números son ejemplos:

  • En un entorno con poca luz o con poca luz, lo más destacado de la vela o luz pequeña se renderizan con el brillo máximo de la pantalla (posiblemente hasta hasta 1, 000 nits) en el clip HDR y se renderiza al brillo máximo para SDR (aproximadamente 100 nits) en el clip SDR. En el clip HDR, el brillo los aspectos destacados deben brillar de la pantalla para captar la percepción del usuario cuál era el verdadero rango dinámico de la escena. En comparación con el clip HDR, el El clip SDR debe verse más plano y menos brillante.
  • En la escena de salida con brillo, según la configuración del dispositivo, la imagen HDR muestra una diferencia aparente en el brillo de la pantalla en comparación con el Clip SDR. En el caso del clip HDR, el brillo de la pantalla de la escena general (según el margen) debe ser mayor, por ejemplo, hasta 800 nits. incluso más para lo más destacado, como la cortina de Chrome, brillo máximo.
  • En el modo de captura interior de rango medio y bajo, el HDR y el SDR clips sean similares en color y tono, y la captura HDR puede ser más brillante que el SDR. El HDR no debe ser más oscuro que el SDR. Si de configuración hacen que esto sea imposible, asegúrate de que la app de terceros coincide con el de la app de cámara nativa.