Bokeh

Efekt bokeh w aparacie to mała głębia ostrości, która powstaje przez rozmycie części sceny, tak aby nie były ostre. W aparatach na urządzeniach mobilnych efekt bokeh uzyskuje się za pomocą informacji o głębi pochodzących z widzenia stereoskopowego z dwóch aparatów lub z dwóch fotodiod (PD) pojedynczego aparatu.

Od Androida 11 platforma Android obsługuje implementacje efektu bokeh i udostępnia interfejsy API, które umożliwiają korzystanie z tej funkcji w aplikacjach innych firm.

Implementacja

Aby udostępnić funkcję bokeh aparatu na urządzeniu:

  • Reklamuj ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES:

    Ten tag ma format tablicy 3-elementowych krotek, a każda krotka ma format {mode, maxWidth, maxHeight}. Oprócz tego {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} interfejs HAL aparatu musi też zawierać jeden lub oba tryby ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE i ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS z odpowiednimi maksymalnymi rozmiarami strumieniowania.

  • ReklamujANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES:

    Tag ten ma format {minZoomRatio, maxZoomRatio}tablicyANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES, która zawiera wszystkie zakresy współczynnika powiększenia dla włączonego trybu rozszerzonej sceny w tej samej kolejności co w ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES. Zakres powiększenia [1.0, 1.0] oznacza, że powiększenie nie jest obsługiwane.

  • Wypełnij pole ANDROID_CONTROL_USE_EXTENDED_SCENE_MODEANDROID_CONTROL_AVAILABLE_MODES.

Aby aplikacja mogła wywołać funkcję bokeh, musi ustawić wartość ANDROID_CONTROL_MODE na ANDROID_CONTROL_USE_EXTENDED_SCENE_MODEANDROID_CONTROL_EXTENDED_SCENE_MODE na jeden z obsługiwanych rozszerzonych trybów sceny. Pamiętaj, że wdrożenie efektu bokeh może prowadzić do większego zużycia pamięci z powodu obliczeń stereo.

Jeśli obsługiwany tryb rozszerzonej sceny nie może być zastosowany do klatki i powoduje nieoczekiwane opóźnienia po włączeniu lub wyłączeniu, w ANDROID_REQUEST_AVAILABLE_SESSION_KEYS umieść ANDROID_CONTROL_EXTENDED_SCENE_MODE. Jednocześnie zaimplementuj metodę ICameraDeviceSession::isReconfigurationRequired(), aby uniknąć ponownej konfiguracji w przypadku rozszerzonych trybów scen, które nie wymagają ponownej konfiguracji.

Weryfikacja

Aby sprawdzić funkcję bokeh na urządzeniu, uruchom te testy CTS, VTS i CTS Verifier:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest w weryfikatorze CTS