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 trybyANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
iANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
z odpowiednimi maksymalnymi rozmiarami strumieniowania.Reklamuj
ANDROID_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 wANDROID_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_MODE
wANDROID_CONTROL_AVAILABLE_MODES
.
Aby aplikacja mogła wywołać funkcję bokeh, musi ustawić wartość ANDROID_CONTROL_MODE
na ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
i ANDROID_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