El bokeh de la cámara es un efecto de profundidad de campo superficial creado al desenfocar partes de una escena para que no estén en foco. En las cámaras de los dispositivos móviles, el bokeh es se logra con información de profundidad obtenida de la visión estereoscópica de dos o desde fotodiodos (PD) duales de una sola cámara.
A partir de Android 11, la plataforma de Android admite implementaciones con bokeh y proporciona APIs para que la función esté disponible a apps de terceros.
Implementación
Para que la función de bokeh de la cámara esté disponible en tu dispositivo, haz lo siguiente:
Anuncie
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
:Esta etiqueta está en el formato de un array de tuplas de tres números enteros, con cada tupla en el formato de
{mode, maxWidth, maxHeight}
. Además de{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
, la HAL de la cámara debe también puede enumerar uno o ambosANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
y ModosANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
con su los tamaños máximos de transmisión correspondientes.Anunciar
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:Esta etiqueta tiene el formato de un array
{minZoomRatio, maxZoomRatio}
, que contiene todos los rangos de relación de zoom para una escena extendida habilitada en el mismo orden que enANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
Un rango de zoom de[1.0, 1.0]
significa que no se admite el zoom.Completar
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
enANDROID_CONTROL_AVAILABLE_MODES
Para que una app active la función de bokeh, debe establecer ANDROID_CONTROL_MODE
a ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
y
ANDROID_CONTROL_EXTENDED_SCENE_MODE
a uno de los modos de escena extendidos compatibles
Ten en cuenta que implementar bokeh puede generar un consumo de memoria adicional debido a la
procesamiento estereoscópico.
Si no se puede aplicar un modo de escena extendido compatible por fotograma y genera una:
demoras inesperadas cuando se habilitan o inhabilitan, incluyen
ANDROID_CONTROL_EXTENDED_SCENE_MODE
in
ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
Al mismo tiempo, implementa
Método ICameraDeviceSession::isReconfigurationRequired()
que se debe evitar
de los modos de escena extendidos que no requieren reconfiguración.
Validación
Para validar la función de bokeh en tu dispositivo, ejecuta los siguientes comandos CTS, VTS y Pruebas del verificador del CTS:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
en el verificador del CTS