카메라의 빛망울 효과는 초점이 맞지 않도록 장면의 일부를 블러 처리하여 만들어진 얕은 피사계 심도 효과입니다. 휴대기기의 카메라에서 빛망울 효과는 두 카메라의 스테레오 비전이나 단일 카메라의 듀얼 포토다이오드(PD)에서 가져온 심도 정보를 사용하여 만듭니다.
Android 11부터 Android 플랫폼은 빛망울 효과 구현을 지원하고 타사 앱에서 이 기능을 사용할 수 있도록 API를 제공합니다.
구현
기기에서 카메라의 빛망울 효과 기능을 사용하려면 다음을 실행합니다.
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
를 알립니다.이 태그는 3자리 정수 튜플 배열 형식으로, 각 튜플은
{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_AVAILABLE_MODES
에서ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
를 채웁니다.
앱에서 빛망울 효과 기능을 트리거하려면 앱에서 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 인증 도구 테스트를 실행하세요.
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
- CTS 인증 도구의
CameraBokehTest