Bokeh de la cámara

El bokeh de la cámara es un efecto de poca profundidad de campo creado al desenfocar partes de una escena para que no estén enfocadas. En las cámaras de los dispositivos móviles, el efecto bokeh se logra utilizando la información de profundidad adquirida a partir de la visión estéreo de dos cámaras o de fotodiodos duales (PD) de una sola cámara.

A partir de Android 11, la plataforma Android admite implementaciones de bokeh y proporciona API para que la función esté disponible para aplicaciones de terceros.

Implementación

Para que la función de bokeh de la cámara esté disponible en su dispositivo, haga lo siguiente:

  • Anuncie ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Esta etiqueta tiene el formato de una matriz de tuplas de tres enteros, con cada tupla en el formato {mode, maxWidth, maxHeight} . Además de {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} , la HAL de la cámara también debe incluir uno o ambos modos ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE y ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS con sus correspondientes tamaños máximos de transmisión.

  • Anuncie ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    Esta etiqueta tiene el formato de una {minZoomRatio, maxZoomRatio} , que contiene todos los rangos de relación de zoom para un modo de escena ampliado habilitado, en el mismo orden que en ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES . Un rango de zoom de [1.0, 1.0] significa que el zoom no es compatible.

  • Complete ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE en ANDROID_CONTROL_AVAILABLE_MODES .

Para que una aplicación active la función de bokeh, la aplicación debe configurar ANDROID_CONTROL_MODE en ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE y ANDROID_CONTROL_EXTENDED_SCENE_MODE en uno de los modos de escena extendida admitidos. Tenga en cuenta que la implementación de bokeh puede generar un consumo adicional de memoria debido al cálculo estéreo.

Si un modo de escena extendido compatible no se puede aplicar por cuadro y genera retrasos inesperados cuando se activa o desactiva, incluye ANDROID_CONTROL_EXTENDED_SCENE_MODE en ANDROID_REQUEST_AVAILABLE_SESSION_KEYS . Al mismo tiempo, implemente el ICameraDeviceSession::isReconfigurationRequired() para evitar la reconfiguración de los modos de escena extendidos que no requieren reconfiguración.

Validación

Para validar la función de bokeh en su dispositivo, ejecute las siguientes pruebas CTS, VTS y CTS Verifier:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest en CTS Verifier