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 modosANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
yANDROID_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 enANDROID_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
enANDROID_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