Боке камеры — это эффект небольшой глубины резкости, создаваемый путем размытия частей сцены, чтобы они не были в фокусе. На камерах мобильных устройств боке достигается с использованием информации о глубине, полученной в результате стереозрения от двух камер или от двойных фотодиодов (ФД) одной камеры.
Начиная с 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
Боке камеры — это эффект небольшой глубины резкости, создаваемый путем размытия частей сцены, чтобы они не были в фокусе. На камерах мобильных устройств боке достигается с использованием информации о глубине, полученной в результате стереозрения от двух камер или от двойных фотодиодов (ФД) одной камеры.
Начиная с 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
Боке камеры — это эффект небольшой глубины резкости, создаваемый путем размытия частей сцены так, чтобы они не были в фокусе. На камерах мобильных устройств боке достигается с использованием информации о глубине, полученной в результате стереозрения от двух камер или от двойных фотодиодов (ФД) одной камеры.
Начиная с 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