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 le informazioni sulla profondità acquisite dalla visione stereo di due fotocamere o dai doppi fotodiodi (PD) di una singola fotocamera.

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

Implementazione

Per rendere disponibile la funzione bokeh della fotocamera sul tuo dispositivo, procedi come segue:

  • Pubblicizza ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Questo tag ha il formato di un array di tuple di tre interi, con ciascuna tupla nel formato {mode, maxWidth, maxHeight} . Oltre a {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} , l'HAL della fotocamera deve anche elencare una o entrambe le modalità ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE e ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS con le dimensioni massime di streaming corrispondenti.

  • Pubblicizza 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 rapporto di zoom per una modalità scena estesa abilitata, nello stesso ordine di ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES . Un intervallo di zoom pari a [1.0, 1.0] significa che lo zoom non è supportato.

  • Popolare ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE in ANDROID_CONTROL_AVAILABLE_MODES .

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

Se una modalità scena estesa supportata non può essere applicata per fotogramma e provoca ritardi imprevisti quando viene abilitata/disabilitata, includere ANDROID_CONTROL_EXTENDED_SCENE_MODE in ANDROID_REQUEST_AVAILABLE_SESSION_KEYS . Allo stesso tempo, implementa il metodo ICameraDeviceSession::isReconfigurationRequired() per evitare la riconfigurazione per le modalità scena estesa che non richiedono la riconfigurazione.

Validazione

Per convalidare la funzione bokeh sul tuo dispositivo, esegui i seguenti test CTS, VTS e CTS Verifier:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest nel verificatore CTS
,

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 le informazioni sulla profondità acquisite dalla visione stereo di due fotocamere o dai doppi fotodiodi (PD) di una singola fotocamera.

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

Implementazione

Per rendere disponibile la funzione bokeh della fotocamera sul tuo dispositivo, procedi come segue:

  • Pubblicizza ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Questo tag ha il formato di un array di tuple di tre interi, con ciascuna tupla nel formato {mode, maxWidth, maxHeight} . Oltre a {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} , l'HAL della fotocamera deve anche elencare una o entrambe le modalità ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE e ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS con le dimensioni massime di streaming corrispondenti.

  • Pubblicizza 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 rapporto di zoom per una modalità scena estesa abilitata, nello stesso ordine di ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES . Un intervallo di zoom pari a [1.0, 1.0] significa che lo zoom non è supportato.

  • Popolare ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE in ANDROID_CONTROL_AVAILABLE_MODES .

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

Se una modalità scena estesa supportata non può essere applicata per fotogramma e provoca ritardi imprevisti quando viene abilitata/disabilitata, includere ANDROID_CONTROL_EXTENDED_SCENE_MODE in ANDROID_REQUEST_AVAILABLE_SESSION_KEYS . Allo stesso tempo, implementa il metodo ICameraDeviceSession::isReconfigurationRequired() per evitare la riconfigurazione per le modalità scena estesa che non richiedono la riconfigurazione.

Validazione

Per convalidare la funzione bokeh sul tuo dispositivo, esegui i seguenti test CTS, VTS e CTS Verifier:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest nel verificatore CTS