Боке камеры — это эффект малой глубины резкости, создаваемый размытием отдельных участков сцены, которые оказываются не в фокусе. В камерах мобильных устройств боке достигается с помощью информации о глубине, получаемой с помощью стереозрения двух камер или двух фотодиодов (ФД) одной камеры.
Начиная с Android 11, платформа Android поддерживает реализации эффекта боке и предоставляет API, делающие эту функцию доступной для сторонних приложений.
Выполнение
Чтобы функция «Боке» камеры стала доступна на вашем устройстве, выполните следующие действия:
Рекламировать
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES:Этот тег представлен в формате массива кортежей из трёх целых чисел, где каждый кортеж имеет формат
{mode, maxWidth, maxHeight}. Помимо{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}, HAL камеры также должен содержать один или оба режимаANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTUREиANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUSс соответствующими им максимальными размерами потока.Рекламировать
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES:Этот тег имеет формат массива
{minZoomRatio, maxZoomRatio}, который содержит все диапазоны коэффициентов масштабирования для включённого расширенного режима сцены в том же порядке, что и вANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES. Диапазон масштабирования[1.0, 1.0]означает, что масштабирование не поддерживается.Заполните
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODEвANDROID_CONTROL_AVAILABLE_MODES.
Чтобы приложение активировало функцию боке, необходимо установить для параметра ANDROID_CONTROL_MODE значение ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE , а для ANDROID_CONTROL_EXTENDED_SCENE_MODE — один из поддерживаемых расширенных режимов сцены. Обратите внимание, что реализация боке может привести к дополнительному расходу памяти из-за вычислений стереоэффекта.
Если поддерживаемый расширенный режим сцены невозможно применить к каждому кадру и это приводит к непредвиденным задержкам при включении/отключении, включите ANDROID_CONTROL_EXTENDED_SCENE_MODE в ANDROID_REQUEST_AVAILABLE_SESSION_KEYS . Одновременно реализуйте метод ICameraDeviceSession::isReconfigurationRequired() , чтобы избежать перенастройки для расширенных режимов сцены, которые не требуют перенастройки.
Проверка
Чтобы проверить функцию боке на вашем устройстве, выполните следующие тесты CTS, VTS и CTS Verifier:
-
CtsCameraTestCases -
VtsHalCameraProviderV2_4TargetTest -
CameraBokehTestв CTS Verifier