카메라의 빛망울 효과

카메라의 빛망울 효과는 초점이 맞지 않도록 장면의 일부를 블러 처리하여 만들어진 얕은 피사계 심도 효과입니다. 휴대기기의 카메라에서 빛망울 효과는 두 카메라의 스테레오 비전이나 단일 카메라의 듀얼 포토다이오드(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_MODEANDROID_CONTROL_USE_EXTENDED_SCENE_MODE로, ANDROID_CONTROL_EXTENDED_SCENE_MODE를 지원되는 확장 장면 모드 중 하나로 설정해야 합니다. 빛망울 효과를 구현하면 스테레오 계산으로 인해 메모리가 추가로 소비될 수 있습니다.

지원되는 확장 장면 모드를 프레임별로 적용할 수 없어 사용 설정/사용 중지 시 예상치 못한 지연이 발생한다면 ANDROID_CONTROL_EXTENDED_SCENE_MODEANDROID_REQUEST_AVAILABLE_SESSION_KEYS에 포함합니다. 동시에 ICameraDeviceSession::isReconfigurationRequired() 메서드를 구현하여 재구성이 필요하지 않은 확장 장면 모드의 재구성을 방지합니다.

유효성 검사

기기의 빛망울 효과 기능을 검사하려면 다음 CTS, VTS, CTS 인증 도구 테스트를 실행하세요.

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CTS 인증 도구의 CameraBokehTest