Bokeh de l'appareil photo

L'effet bokeh de la caméra est un effet de faible profondeur de champ qui consiste à flouter certaines parties d'une scène pour qu'elles ne soient pas nettes. Sur les caméras des appareils mobiles, l'effet bokeh est obtenu à l'aide d'informations de profondeur acquises à partir de la vision stéréoscopique de deux caméras ou de deux photodiodes (PD) d'une seule caméra.

À partir d'Android 11, la plate-forme Android prend en charge les implémentations de bokeh et fournit des API pour rendre la fonctionnalité disponible pour les applications tierces.

Implémentation

Pour que la fonctionnalité de bokeh de l'appareil photo soit disponible sur votre appareil :

  • Annoncer ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Ce tag se présente sous la forme d'un tableau de tuples de trois entiers, chaque tuple étant au format {mode, maxWidth, maxHeight}. En plus de {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}, le HAL de l'appareil photo doit également lister un ou les deux modes ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE et ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS avec leurs tailles de flux maximales correspondantes.

  • Faire de la publicité ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    Ce tag se présente sous la forme d'un tableau {minZoomRatio, maxZoomRatio}, qui contient toutes les plages de rapports de zoom pour un mode scène étendue activé, dans le même ordre que dans ANDROID_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.

  • Renseignez ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE dans ANDROID_CONTROL_AVAILABLE_MODES.

Pour qu'une application déclenche la fonctionnalité de bokeh, elle doit définir ANDROID_CONTROL_MODE sur ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE et ANDROID_CONTROL_EXTENDED_SCENE_MODE sur l'un des modes scène étendus compatibles. Notez que l'implémentation du bokeh peut entraîner une consommation de mémoire supplémentaire en raison du calcul stéréo.

Si un mode scène étendu compatible ne peut pas être appliqué par frame et entraîne des retards inattendus lorsqu'il est activé/désactivé, incluez ANDROID_CONTROL_EXTENDED_SCENE_MODE dans ANDROID_REQUEST_AVAILABLE_SESSION_KEYS. En même temps, implémentez la méthode ICameraDeviceSession::isReconfigurationRequired() pour éviter la reconfiguration des modes scène étendus qui ne la nécessitent pas.

Validation

Pour valider la fonctionnalité bokeh sur votre appareil, exécutez les tests CTS, VTS et CTS Verifier suivants :

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest dans CTS Verifier