본문 바로가기

OnePIC (Android App)/카메라

[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
: 선명하게 초점을 맞출 수 있는 렌즈의 최전방 표면으로부터의 최단 거리 값

그림에서 minimum이 위 변수 값


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 모드에 따라, 이 모드에서는 측광을 위해 플래시를 발광하거나 적목 현상 감소를 위해 플래시 펄스를 연속하여 발광할 수 있다

 


 

 

반응형