Bokeh de la caméra

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 des ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE et ANDROID_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 que 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.

  • 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