Bokeh w aparacie to efekt małej głębi ostrości powstały przez rozmycie fragmentów sceny tak, aby nie były ostre. W przypadku aparatów w urządzeniach mobilnych efekt bokeh jest uzyskiwany dzięki informacjom o głębi uzyskanym z stereoskopowego widzenia z 2 aparatów lub z podwójnych fotodiod w pojedynczym aparacie.
Od Androida 11 platforma Android obsługuje implementacje bokeh i udostępnia interfejsy API, dzięki którym aplikacje innych firm mogą korzystać z tej funkcji.
Implementacja
Aby funkcja bokeh była dostępna na urządzeniu, wykonaj te czynności:
Reklamuj
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
:Tag ten ma format tablicy krotek z trzema liczbami całkowitymi, z której każda krotka ma format
{mode, maxWidth, maxHeight}
. Oprócz instrukcji{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
interfejs HAL kamery musi też zawierać jeden lub oba trybyANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
iANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
z odpowiadającymi im maksymalnymi rozmiarami strumieniowania.Reklamuj
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:Ten tag ma format tablicy
{minZoomRatio, maxZoomRatio}
, która zawiera wszystkie zakresy powiększenia dla włączonego trybu rozszerzonej sceny (w takiej samej kolejności jak w poluANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
). Zakres zooma[1.0, 1.0]
oznacza, że zoom nie jest obsługiwany.Wypełnij pole
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
w tabeliANDROID_CONTROL_AVAILABLE_MODES
.
Aby aplikacja mogła wywołać funkcję bokeh, musi ustawić wartość ANDROID_CONTROL_MODE
na ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
, a wartość ANDROID_CONTROL_EXTENDED_SCENE_MODE
na jeden z obsługiwanych rozszerzonych trybów sceny.
Pamiętaj, że implementacja bokeh może spowodować dodatkowe zużycie pamięci z powodu obliczeń stereo.
Jeśli obsługiwany rozszerzony tryb sceny nie może być stosowany w poszczególnych klatkach i powoduje nieoczekiwane opóźnienia po włączeniu lub wyłączeniu, dodaj ANDROID_CONTROL_EXTENDED_SCENE_MODE
do ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
. Jednocześnie zastosuj metodę ICameraDeviceSession::isReconfigurationRequired()
, aby uniknąć rekonfiguracji w przypadku rozszerzonych trybów sceny, które nie wymagają rekonfiguracji.
Weryfikacja
Aby zweryfikować funkcję bokeh na urządzeniu, uruchom te testy CTS, VTS i CTS Verifier:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
w weryfikatorze CTS