Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SSDC 2022 삼성 갤럭시 카메라 에코시스템

Amos Lim
November 15, 2022

SSDC 2022 삼성 갤럭시 카메라 에코시스템

Samsung Software Developer Conference 2022 (현 Samsung Developer Conference Korea)
삼성 갤럭시 카메라 에코시스템
https://ssdc2022.sdc-korea.com/sessions/detail/37

Amos Lim

November 15, 2022
Tweet

More Decks by Amos Lim

Other Decks in Programming

Transcript

  1. Proprietary and confidential 1 삼성 갤럭시 카메라 에코시스템 Samsung Galaxy

    Camera Ecosystem 임의상 삼성전자 / MX사업부 Visual S/W개발그룹 Samsung Software Developer Conference 2022
  2. Proprietary and confidential 2 발표자 소개 ▪ 임의상 삼성전자 MX사업부에

    2014년에 입사하여 2020년부터 Visual S/W개발그룹에서 Camera Framework 및 Camera SDK 개발 업무를 하고 있습니다. Android Camera Framework, Camera SDK
  3. Proprietary and confidential 3 삼성 갤럭시에서 개발 가능한 카메라 기능

    소개 이런 분들을 위해 준비했습니다. 삼성 갤럭시에서 제공하는 카메라 기능 소개 for 삼성 갤럭시 카메라 이용자 for 안드로이드 앱 개발자
  4. Proprietary and confidential 4 Samsung Galaxy Camera Powerful Hardware |

    Fascinating Visual Experiences | Intelligent Software Lenses Sensors Multi-frame Adaptive Pixel
  5. Proprietary and confidential 8 · Computational RAW · High Quality,

    High Dynamic Range ·UW, Wide, Tele Lenses · Camera control options Expert RAW
  6. Proprietary and confidential 10 1. Android Camera API & Framework

    2. Android 13 Collaboration with Google 3. Camera Extensions 4. Samsung Camera SDK 5. Video Call Effects Samsung Galaxy Camera Ecosystem
  7. Proprietary and confidential 12 Android Camera API & Framework https://source.android.com/docs/core/camera#architecture

    Application Framework Hardware Abstraction Layer (HAL) Image Quality Solution …
  8. Proprietary and confidential 13 Android Camera API & Framework Compatibility

    Definition Document (CDD) 호환성 요구사항을 명문화한 일종의 Spec 문서 Compatibility Test Suite (CTS) 비호환성을 조기에 발견하고 호환성을 유지하기 위한 목적의 테스트 Vendor Test Suite (VTS) OS 구현 외의 Vendor Interface 의 호환성과 구현 내용을 테스트 Camera Image Test Suite (ITS) 노출 조건 등 환경에 따라 다양하게 동작하는 카메라 시나리오 테스트
  9. Proprietary and confidential 14 Android Camera App Camera Framework Camera

    HAL Samsung Camera App HIDL / AIDL Android Camera2 API Android Camera API & Framework Samsung HIDL / AIDL Samsung private API Custom Interface Samsung Framework
  10. Proprietary and confidential 15 Android Camera API & Framework Samsung

    HIDL / AIDL Samsung private API · 갤럭시 플래그십, 폴더블 특화 기능 · 칩셋, 이미지 센서 등의 하드웨어 종속성 · 복합적인 시나리오 테스트의 한계 · 카메라 솔루션 제약 · 성능 · … Custom Interface
  11. Proprietary and confidential 16 Android Camera API & Framework Camera

    Framework Camera HAL Samsung HIDL / AIDL Samsung private API Android Camera2 API Custom Interface HIDL / AIDL Samsung Camera App Android Camera App Samsung Framework
  12. Proprietary and confidential 17 Android Camera API & Framework Camera

    Framework Camera HAL New Android Public API HIDL / AIDL Samsung Camera App Android Camera App Android Camera2 API
  13. Proprietary and confidential 19 Android 13 Collaboration with Google 삼성이

    자체적으로 개발하여 사용하던 일부 기능을 구글과 협업하여 public API 로 공개 일반 안드로이드 카메라 앱에서도 사용 가능 Torch Flash Strength Control Stream Use Case Preview Mirror Mode Camera Preview Stabilization Camera Display Sync …
  14. Proprietary and confidential 20 Torch Flash Strength Control 길게 누르기

    손전등 밝기 조절 빠른 실행의 손전등 밝기 조절 기능 이전 OS CameraManager 비공개 API 구현 HIDL Interface 을 통해 HAL 에서 제어 * Android 13 부터 public API 으로 공개
  15. Proprietary and confidential 21 Torch Flash Strength Control 플래시 on/off

    제어를 위한 Camera2 API setTorchMode 함수 (Added in API level 23) + 플래시 조명의 레벨을 변경할 수 있는 신규 메소드 및 콜백 추가 개발자 문서 https://source.android.com/docs/core/camera/torch-strength-control https://developer.android.com/reference/android/hardware/camera2/CameraManager#turnOnTorchWithStrengthLevel(j ava.lang.String,%20int)
  16. Proprietary and confidential 22 val cameraId = "0" val cameraManager

    = context.getSystemService(CAMERA_SERVICE) as CameraManager val torchCallback = object : TorchCallback() { override fun onTorchModeChanged(cameraId: String, enabled: Boolean) { // get enabled } } // register cameraManager.registerTorchCallback(torchCallback, handler) // 플래시 켜기 cameraManager.setTorchMode(cameraId, true) val defaultLevel = cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_STRENGTH_DEFAULT_LEVEL) val maxLevel = cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_STRENGTH_MAXIMUM_LEVEL) // 특정 level 로 플래시 켜기 cameraManager.turnOnTorchWithStrengthLevel(cameraId, 3) // 현재 flash level 읽어오기 val currentLevel = cameraManager.getTorchStrengthLevel(id) // return 3 Since API level 23
  17. Proprietary and confidential 23 val cameraId = "0" val cameraManager

    = context.getSystemService(CAMERA_SERVICE) as CameraManager val torchCallback = object : TorchCallback() { override fun onTorchStrengthLevelChanged(cameraId: String, newStrengthLevel: Int) { // get newStrengthLevel } } // register cameraManager.registerTorchCallback(torchCallback, handler)) // default level 과 max level 값 읽기 val cameraCharacteristics = cameraManager.getCameraCharacteristics(cameraId) val defaultLevel = cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_STRENGTH_DEFAULT_LEVEL) val maxLevel = cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_STRENGTH_MAXIMUM_LEVEL) // 특정 level 로 플래시 켜기 cameraManager.turnOnTorchWithStrengthLevel(cameraId, 3) // 현재 flash level 읽어오기 val currentLevel = cameraManager.getTorchStrengthLevel(id) // return 3 Since API level 33 (Android 13)
  18. Proprietary and confidential 24 Stream Use Case stream 의 목적에

    따라 OutputConfiguration 에 추가로 값을 선언하여 사용 PREVIEW, RECORD, VIDEO_SNAPSHOT, SNAPSHOT, VIDEO_CALL 등 지원 Use Case 에 맞는 output format 선언 필요 Use Case 에 따른 화질 개선, 소모 전류, 성능 최적화 개발자 문서 https://source.android.com/docs/core/camera/stream-config https://developer.android.com/reference/android/hardware/camera2/params/OutputConfiguration#setStreamUseCase(lo ng)
  19. Proprietary and confidential 27 Preview Mirror Mode OutputConfiguration 에 카메라

    프리뷰 화면의 mirroring 설정 가능 MIRROR_MODE_AUTO 전면 카메라(셀피)의 경우 자동 좌우 반전 (기존과 동일) Galaxy Z Fold 시리즈 Rear Cam Selfie 모드 MIRROR_MODE_H 좌우 반전 적용 Galaxy Z Flip 시리즈 Quick Shot 모드 MIRROR_MODE_V 상하 반전 적용 개발자 문서 https://developer.android.com/reference/android/hardware/camera2/params/OutputConfiguration#setMirrorMode(int)
  20. Proprietary and confidential 28 Rear Cam Selfie Mode & Quick

    Shot Mode 뒷면 왼팔 앞면 왼팔 좌우 반전 적용 필요 MIRROR_MODE_H 적용 왼팔 상하 반전 적용 필요 MIRROR_MODE_V 적용
  21. Proprietary and confidential 29 Camera Preview Stabilization 비디오 흔들림 방지

    기능 CONTROL_VIDEO_STABILIZATION_MODE_ON (Added in API level 21) 실제 녹화 상태 녹화 중인 프리뷰 화면 녹화된 화면 녹화 중인 화면과 결과물이 다름
  22. Proprietary and confidential 30 Camera Preview Stabilization Non-RAW Preview stream

    에 적용 가능한 새로운 설정 값 추가 CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION 녹화 중인 프리뷰 프리뷰 화면 녹화된 화면 PREVIEW_STABILIZATION 적용 WYSIWYG 최대 10% 감소 녹화 중인 화면이 그대로 녹화됨 https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
  23. Proprietary and confidential 35 CameraX 2019년 Jetpack Library CameraX 발표

    OS 호환성을 고려, Android 5.0 (API level 21) 까지 하위 호환 일관되고 사용하기 쉬운 API 로 카메라 앱 개발을 더 쉽게 할 수 있도록 제공 Preview Image Analysis Image Capture Video Capture
  24. Proprietary and confidential 36 Camera Application CameraX Extensions Camera Framework

    Samsung Framework Android Framework CameraX Library Core Extensions OEM Vendor Library AUTO Bokeh HDR Face Retouch Night 카메라 특화 기능 Extensions 개발 초기부터 구글과 협력하여 구체적인 시나리오, Interface 등 설계 및 개발 참여
  25. Proprietary and confidential 37 Camera2 Extensions Camera2 API 를 사용하는

    기존 앱들이 CameraX Extensions 를 사용할 수 있도록 새로운 Camera2 API Interface 를 제공 https://source.android.com/docs/core/camera/camerax-vendor-extensions#architecture
  26. Proprietary and confidential 39 Camera Application Camera Framework Samsung Framework

    Samsung Camera SDK Samsung Camera SDK Client Android Framework Samsung Camera SDK Samsung Camera SDK Service HDR Super Night Smooth Zoom Super Resolution Video HDR VDIS …
  27. Proprietary and confidential 42 Video Call Effects 영상 통화 앱에

    삼성 카메라 솔루션 효과 적용 앱 코드 수정없이 추가 기능 지원 설정 > 유용한 기능 > 영상통화 효과 영상 화면에 생기는 플로팅 버튼으로 제어
  28. Proprietary and confidential 43 Video Call Effects 배경 모드 적용

    (Blur, Color, Image) 자동 프레이밍 모드 적용
  29. Proprietary and confidential 44 Video Call App Camera Framework Camera

    HAL Samsung Framework Video Call Effects App Video Call Effects Samsung Camera Solution
  30. Proprietary and confidential 45 Video Call App Camera Framework Camera

    HAL Samsung Framework Video Call Effects App Video Call Effects Samsung Camera Solution
  31. Proprietary and confidential 46 1. Android Camera API & Framework

    2. Android 13 Collaboration with Google 3. Camera Extensions 4. Samsung Camera SDK 5. Video Call Effects Samsung Galaxy Camera Ecosystem