Le bokeh de l'appareil photo est un effet de faible profondeur de champ créé en floutant des parties une scène afin qu'ils ne soient pas net. Sur les caméras des appareils mobiles, le bokeh est grâce aux informations de profondeur issues de la vision stéréo ou les doubles photodiodes (PD) d'un seul appareil.
À partir d'Android 11, la plate-forme Android prend en charge les implémentations bokeh et fournit des API pour rendre la fonctionnalité disponible à des applications tierces.
Implémentation
Pour rendre la fonctionnalité bokeh de la caméra disponible sur votre appareil, procédez comme suit:
Faites la promotion de
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
:Ce tag est au format d'un tableau de tuples à trois entiers, chaque tuple au format
{mode, maxWidth, maxHeight}
. En plus de{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
, le HAL de la caméra doit lister également l'un desANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
etANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
avec leur les tailles de flux maximales correspondantes.Diffuser des annonces
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:Cette balise se présente sous la forme d'un tableau
{minZoomRatio, maxZoomRatio}
, qui contient toutes les plages de ratios de zoom pour une scène étendue activée dans le même ordre queANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
Une plage de zoom de[1.0, 1.0]
signifie que le zoom n'est pas pris en charge.Renseigner
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
ANDROID_CONTROL_AVAILABLE_MODES
Pour qu'une application déclenche la fonctionnalité bokeh, elle doit définir ANDROID_CONTROL_MODE
vers ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
et
ANDROID_CONTROL_EXTENDED_SCENE_MODE
à l'un des modes Scène étendu compatibles.
Notez que l'implémentation du bokeh peut entraîner une consommation de mémoire supplémentaire en raison de
le calcul stéréo.
Si un mode Scène étendu compatible ne peut pas être appliqué par image et entraîne
les délais inattendus en cas d'activation/de désactivation, incluent
ANDROID_CONTROL_EXTENDED_SCENE_MODE
po
ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
Dans le même temps, mettez en œuvre
Méthode ICameraDeviceSession::isReconfigurationRequired()
à éviter
une reconfiguration pour les modes Scène étendus qui ne nécessitent aucune reconfiguration.
Validation
Pour valider la fonctionnalité bokeh sur votre appareil, exécutez les outils CTS, VTS et Tests CTS Verifier:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
dans CTS Verifier