Bokeh de la caméra

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Le bokeh de l'appareil photo est un effet de faible profondeur de champ créé en rendant floues des parties d'une scène afin qu'elles ne soient pas nettes. Sur les caméras des appareils mobiles, le bokeh est obtenu à l'aide des informations de profondeur acquises à partir de la vision stéréo de deux caméras ou des doubles photodiodes (PD) d'une seule caméra.

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

Mise en œuvre

Pour rendre la fonction bokeh de l'appareil photo disponible sur votre appareil, procédez comme suit :

  • Annoncez ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Cette balise est au format d'un tableau de tuples à trois entiers, avec chaque tuple au format {mode, maxWidth, maxHeight} . En plus de {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} , la caméra HAL doit également répertorier 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 diffusion maximales correspondantes.

  • Annoncez ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    Cette balise est au format d'un {minZoomRatio, maxZoomRatio} , qui contient toutes les plages de taux de zoom pour un mode scène étendu 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.

  • Remplir ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE dans ANDROID_CONTROL_AVAILABLE_MODES .

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

Si un mode scène étendu pris en charge ne peut pas être appliqué par image 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 ICameraDeviceSession::isReconfigurationRequired() pour éviter la reconfiguration des modes de scène étendus qui ne nécessitent pas de reconfiguration.

Validation

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

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest dans CTS Verifier