O bokeh da câmera é um efeito de profundidade de campo leve criado ao desfocar partes de de uma cena para que não estejam em foco. Nas câmeras de dispositivos móveis, o bokeh é obtidos usando informações de profundidade provenientes da visão estereoscópica de dois ou de fotodiodos duplos (PDs, na sigla em inglês) de uma única câmera.
No Android 11 e versões mais recentes, a Plataforma Android oferece suporte a implementações bokeh e fornece APIs para disponibilizar o recurso a aplicativos de terceiros.
Implementação
Para disponibilizar o recurso bokeh da câmera no seu dispositivo, faça o seguinte:
Anunciar
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
:Essa tag está no formato de uma matriz de tuplas de três números inteiros, com cada tupla no formato
{mode, maxWidth, maxHeight}
. Além de{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
, a HAL da câmera precisa também liste um ou ambos osANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
eANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
com a tamanhos máximos de streaming correspondentes.Anunciar
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:Essa tag está no formato de uma matriz
{minZoomRatio, maxZoomRatio}
, que contém todos os intervalos de proporção de zoom para uma cena estendida ativada , na mesma ordem que emANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
. Um intervalo de zoom de[1.0, 1.0]
significa que não há suporte para zoom.Preencher
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
emANDROID_CONTROL_AVAILABLE_MODES
.
Para que um app acione o recurso de bokeh, ele precisa definir ANDROID_CONTROL_MODE
.
para ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
e
ANDROID_CONTROL_EXTENDED_SCENE_MODE
para um dos modos de cena estendidos com suporte.
A implementação do bokeh pode levar a um consumo extra de memória devido ao
e estéreo.
Se um modo de cena estendido compatível não puder ser aplicado por frame e resultar em
atrasos inesperados quando ativado/desativado, inclua
ANDROID_CONTROL_EXTENDED_SCENE_MODE
pol.
ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
. Ao mesmo tempo, implemente
Método ICameraDeviceSession::isReconfigurationRequired()
a ser evitado
reconfiguração para modos de cena estendidos que não exigem reconfiguração.
Validação
Para validar o recurso bokeh no seu dispositivo, execute os seguintes comandos CTS, VTS e Testes do CTS Verifier:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
no verificador do CTS