Bokeh della fotocamera

Il bokeh della fotocamera è un effetto di profondità di campo creato sfocando parti di una scena in modo che non siano a fuoco. Sulle fotocamere dei dispositivi mobili, il bokeh si ottiene utilizzando informazioni sulla profondità acquisite con la visione stereo di due fotocamere o da doppi fotodiodi (PD) di un'unica fotocamera.

A partire da Android 11, la piattaforma Android supporta implementazioni bokeh e fornisce API per rendere la funzionalità disponibile alle app di terze parti.

Implementazione

Per rendere disponibile la funzionalità Bokeh della fotocamera sul tuo dispositivo:

  • Fai pubblicità su ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES:

    Questo tag è nel formato di un array di tuple di tre interi, con ogni tuple nel formato {mode, maxWidth, maxHeight}. Oltre a {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}, l'HAL della videocamera deve elencare anche una o entrambe le modalità ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE e ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS con le relative dimensioni massime dello streaming.

  • Fai pubblicità ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES:

    Questo tag ha il formato di un array {minZoomRatio, maxZoomRatio}, che contiene tutti gli intervalli di rapporti di zoom per una modalità di scena estesa abilitata, nello stesso ordine di ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES. Un intervallo di zoom di[1.0, 1.0] indica che lo zoom non è supportato.

  • Compila ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE in ANDROID_CONTROL_AVAILABLE_MODES.

Affinché un'app attivi la funzionalità bokeh, deve impostare ANDROID_CONTROL_MODE su ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE e ANDROID_CONTROL_EXTENDED_SCENE_MODE su una delle modalità scena estese supportate. Tieni presente che l'implementazione del bokeh potrebbe comportare un maggiore consumo di memoria a causa del calcolo stereo.

Se una modalità scena estesa supportata non può essere applicata per frame e causa ritardi imprevisti quando viene attivata/disattivata, includi ANDROID_CONTROL_EXTENDED_SCENE_MODE in ANDROID_REQUEST_AVAILABLE_SESSION_KEYS. Allo stesso tempo, implementa il metodo ICameraDeviceSession::isReconfigurationRequired() per evitare la ricofigurazione per le modalità di scena estese che non richiedono la ricofigurazione.

Convalida

Per convalidare la funzionalità Bokeh sul tuo dispositivo, esegui i seguenti test CTS, VTS e CTS Verifier:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest in CTS Verifier