[Camera2] 카메라 장치에 관한 설정 변수 정리
카메라 정보 설정 변수
CameraCharacteristics 설정하는 함수 : CameraCharacteristics.set ( 설정변수, 설정 가능 값)
CameraCharacteristics.LENS_FACING
: 카메라의 렌즈 방향(기기 화면을 기준으로 카메라가 향하는 방향)
설정 가능 값 (CameraMetadata. ~ ) | 설명 |
LENS_FACING_FRONT | 전면 카메라 |
LENS_FACING_BACK | 후면 카메라 |
LENS_FACING_EXTERNAL | 기타 카메라 |
CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP
: 카메라 장치가 지원하는 사용 가능한 스트림 구성 또한 각 형식/크기 조합에 대한 최소 프레임 지속 시간 및 정지 지속 시간 정보를 가진 객체
가장 대표적인 정보 : 카메라가 제공하는 크기 목록
CameraCharacteristics.SENSOR_ORIENTATION
: 출력 이미지가 기본 방향으로 디바이스 화면에 수직이 되도록 회전해야 하는 시계 방향 각도
CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE
: 선명하게 초점을 맞출 수 있는 렌즈의 최전방 표면으로부터의 최단 거리 값
CaptureRequest.Builder 설정 변수
CaptureRequest.Builder 설정하는 함수 : CaptureRequest.Builder.set ( 설정변수, 설정 가능 값)
CaptureRequest.CONTROL_AF_MODE
: 자동 초점(AF)이 현재 활성화되어 있는지 여부와 어떤 모드로 설정되어 있는지 설정 정보
설정 가능 값 (CaptureRequest. ~ ) | 설명 |
CONTROL_AF_MODE_OFF | 자동 초점 모드 끄기 (수동 초점 모드) |
CONTROL_AF_MODE_AUTO | 기본 자동 초점 모드 |
CONTROL_AF_MODE_MACRO | 클로즈업 포커싱 자동 초점 모드 |
CONTROL_AF_MODE_CONTINUOUS_VIDEO | 지속적으로 초점이 맞는 이미지 스트림을 제공하기 위해 렌즈 위치를 지속적으로 수정하는 자동 초점 모드 (초점 동작은 양질의 비디오 녹화에 적합) |
CONTROL_AF_MODE_CONTINUOUS_PICTURE | 지속적으로 초점이 맞는 이미지 스트림을 제공하기 위해 렌즈 위치를 지속적으로 수정하는 자동 초점 모드 (초점 동작은 스틸 이미지 캡처에 적합) |
CONTROL_AF_MODE_EDOF | 확장 피사계 심도(디지털 초점) 모드 |
CaptureRequest.CONTROL_AF_TRIGGER
: 카메라 장치가 이 요청에 대해 자동 초점을 트리거할지 여부로, 자동 초점이 비활성화된 경우 이 트리거는 효과가 없다.
일반적으로 IDLE로 설정되거나 요청 설정에 전혀 포함되지 않는다.
설정 가능 값 (CameraMetadata. ~ ) | 설명 |
CONTROL_AF_TRIGGER_IDLE | 트리거가 사용되지 않는 상태 |
CONTROL_AF_TRIGGER_START | 자동 초점 트리거 시작 |
CONTROL_AF_TRIGGER_CANCEL | 자동 초점 트리거 취소 (트리거 시작 전으로 돌아감) |
CaptureRequest.JPEG_ORIENTATION
: JPEG 이미지의 방향으로, JPEG 사진을 똑바로 보기 위해 회전해야 하는 카메라 방향에 상대적인 시계 방향 회전 각도(도)
CaptureRequest.LENS_FOCUS_DISTANCE
: 렌즈의 가장 앞쪽 표면에서 측정한 가장 선명한 초점면까지의 원하는 거리 (초점거리 최댓 값)
previewRequestBuilder 설정 흐름
createCameraPreviewSession()에서 설정
→ CaptureRequest.CONTROL_AF_MODE : CONTROL_AF_MODE_CONTINUOUS_PICTURE
lockFocus()에서 설정
→ CaptureRequest.CONTROL_AF_TRIGGER : CONTROL_AF_TRIGGER_START
unlockFocus()에서 설정
→ CaptureRequest.CONTROL_AF_TRIGGER : CONTROL_AF_TRIGGER_CANCEL
Camera2 프리뷰띄우기 및 캡처 샘플 코드 - GitHub
GitHub - googlearchive/android-Camera2Basic: Migrated:
Migrated:. Contribute to googlearchive/android-Camera2Basic development by creating an account on GitHub.
github.com
AF_STATE 모드 상태 값에 대해서
ANDROID_CONTROL_AF_STATE 상태 값
3A 모드 및 상태 전환 | Android 오픈소스 프로젝트 | Android Open Source Project
3A 모드 및 상태 전환 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 실제 3A 알고리즘은 HAL 구현에 따라 달라지지만, HAL 인터페이스는 HAL 기기와 프레임워크
source.android.com
ANDROID_CONTROL_AF_STATE
: 결과 메타데이터에서 HAL에 의해 보고된 현재 AF 알고리즘 상태를 설명하는 동적 메타데이터이다.
INACTIVE (0)
: 초점이 맞춰지지 않았거나 알고리즘이 재설정된 상태. (항상 MODE_OFF 또는 MODE_EDOF 상태)
기기가 열리면 이 상태로 시작되어야 한다. [ 렌즈가 움직이지 않는다. ]
PASSIVE_SCAN (1)
: AF(연속 초점) 알고리즘이 적절한 초점을 맞추기 위해 현재 스캔 중인 상태. [ 렌즈가 움직이는 중이다. ]
PASSIVE_FOCUSED (2)
: AF 알고리즘이 초점이 잘 맞았다고 판단한 상태. HAL은 자발적으로 이 상태를 벗어날 수 있다. [ 렌즈가 움직이지 않는다. ]
ACTIVE_SCAN (3)
: 사용자가 트리거한 스캔이 진행 중인 상태.
FOCUSED_LOCKED (4)
: AF 알고리즘이 초점이 맞았다고 판단된 상태. [ 렌즈가 움직이지 않는다. ]
NOT_FOCUSED_LOCKED (5)
: AF 알고리즘이 초점을 맞출 수 없는 상태. [ 렌즈가 움직이지 않는다. ]
PASSIVE_UNFOCUSED (6)
: AF 알고리즘이 초점이 잘 맞지 않았다고 판단한 상태. HAL은 자발적으로 이 상태를 벗어날 수 있다. [ 렌즈가 움직이지 않는다. ]
CONTROL_AF_MODE_CONTINUOUS_PICTURE 모드일 때, ANDROID_CONTROL_AF_STATE 상태 변화
CaptureResult | Android Developers
developer.android.com
State | Transition Cause (전환 원인) | New State |
INACTIVE (0) | 카메라가 새로운 스캔을 시작 (Camera device intiates new scan) |
PASSIVE_SCAN |
PASSIVE_SCAN (1) | 카메라가 현재 스캔 성공 (Camera device completes current scan) |
PASSIVE_FOCUSED |
카메라 촬영 버튼 클릭 (자동 촬영) | ||
PASSIVE_FOCUSED (2) | AF_TRIGGER : AF_TRIGGER_START 했을 때 (ex. lockFocus 함수 호출 시) |
FOCUSED_LOCKED |
FOCUSED_LOCKED (4) | AF_CANCEL : AF_TRIGGER_CANCEL 했을 때 (ex. unlockFocus 함수 호출 시) |
INACTIVE |
촬영 종료 (Preview 모드) | ||
INACTIVE (0) | 카메라가 새로운 스캔을 시작 (Camera device intiates new scan) |
PASSIVE_SCAN |
PASSIVE_SCAN (1) | 카메라가 현재 스캔 성공 (Camera device completes current scan) |
PASSIVE_FOCUSED |
AE_STATE 모드 상태 값에 대해서
ANDROID_CONTROL_AE_STATE 상태 값
3A 모드 및 상태 전환 | Android 오픈소스 프로젝트 | Android Open Source Project
3A 모드 및 상태 전환 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 실제 3A 알고리즘은 HAL 구현에 따라 달라지지만, HAL 인터페이스는 HAL 기기와 프레임워크
source.android.com
ANDROID_CONTROL_AE_STATE
: 결과 메타데이터에서 HAL에 의해 보고된 현재 AE 알고리즘 상태를 설명하는 동적 메타데이터이다.
INACTIVE (0)
: 모드 전환 이후의 초기 AE 상태. 기기가 열리면 이 상태로 시작되어야 한다.
SEARCHING (1)
: AE가 적절한 값으로 수렴되지 않으며 노출 매개변수를 조정하는 상태.
CONVERGED (2)
: AE가 현재 장면의 적절한 노출 값을 찾았고 노출 매개변수는 변경되지 않는 상태. HAL은 더 나은 해결책을 찾기 위해 자발적으로 이 상태를 벗어날 수 있다.
LOCKED (3)
: AE가 AE_LOCK 컨트롤로 고정된 상태. 노출 값은 변경되지 않는다.
FLASH_REQUIRED (4)
: HAL이 노출을 수렴했지만, 충분히 밝은 사진을 찍으려면 플래시가 필요하다고 판단된 상태. 셔터 랙이 없는 프레임을 사용할 수 있는지 판단하는 데 사용된다.
PRECAPTURE (5)
: HAL이 PreCapture 시퀀스 중에 있는 상태로, 촬영 이전 노출이 제대로 설정되지 않은 상태. AE 모드에 따라, 이 모드에서는 측광을 위해 플래시를 발광하거나 적목 현상 감소를 위해 플래시 펄스를 연속하여 발광할 수 있다