Bokeh

Bokeh w aparacie to efekt płytkiej głębi ostrości, który polega na rozmyciu części sceny, 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:

    Ten tag ma format tablicy z 3 wartościami typu integer, a każda wartość ma format {mode, maxWidth, maxHeight}. Oprócz trybu {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} interfejs HAL aparatu musi również zawierać jeden lub oba tryby ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE i ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS z odpowiadającymi im maksymalnymi rozmiarami strumienia danych.

  • Reklamowanie: ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES:

    Ten tag ma format tablicy {minZoomRatio, maxZoomRatio}, która zawiera wszystkie zakresy współczynnika powiększenia dla włączonego trybu rozszerzonej sceny w tym samym porządku co w ANDROID_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_MODEANDROID_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/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