HAL CAMERA / User Guide

One frame.
Every callback.

사진과 메타데이터는 어떤 순서로 도착할까요.

앱이 받은 콜백을 같은 시간축에서 읽습니다. 점은 도착 시각, 오른쪽 숫자는 ms 값입니다.

촬영 프레임을 고정하세요

  1. Live에서 Callback을 켭니다.
  2. Hold 0s ↻ 버튼을 눌러 3s를 고릅니다.
  3. 사진을 한 장 찍습니다.
  4. 프레임 번호 앞에 일시정지 표시가 나타나면 이미지와 Metadata의 위치를 비교합니다.

더 왼쪽에 있는 점이 앱에 먼저 도착했습니다. 순서는 엔진·출력·기기에 따라 달라질 수 있습니다.

고정되는 것은 그래프이며 카메라와 녹화는 계속 동작합니다.

고정 중에도 늦은 결과가 채워집니다. Callback을 다시 누르면 그래프를 닫고 FPS·EXP·AE·AF·AWB 정보로 돌아갑니다.

시간 기준을 확인하세요

0ms는 이전 프레임의 Shutter 콜백을 앱에서 받은 시점입니다.

촬영 요청을 보낸 시점이나 현재 프레임의 시작이 아닙니다.

90ms라고 쓰여 있어도 현재 프레임에서 90ms 걸린 것은 아닙니다. · 설명용 예시

실측이 아닌 계산 예시입니다. 현재 Shutter가 33ms이므로 Metadata까지는 90 − 33 = 57ms, Preview까지는 95 − 33 = 62ms입니다.

실제 그래프에서는 해당 프레임의 Shutter 값을 빼세요. 첫 프레임의 Shutter만 0ms이며, 그다음부터는 직전 프레임과의 콜백 간격입니다.

센서 시각과 앱 시각을 구분하는 이유는 Timestamp에 있습니다.

시간축과 갱신 규칙

시간축은 값에 맞춰 늘어납니다. 작은 범위가 3초 동안 유지되면 줄어들며, 고정 중에는 늦은 결과를 담기 위한 확장만 합니다.

평상시에는 100ms 주기로 최신 결과가 모인 프레임을 표시합니다. 특정 출력이 250ms 이상 도착하지 않으면 다음 프레임으로 진행합니다.

그래프 재진입이나 출력 재구성 때 이전 촬영을 다시 고정하지 않습니다.

스트림별 도착 시각을 읽으세요

이미지 도착과 파일 저장 완료는 다릅니다. 그래프는 선택한 Service ID의 결과와 구성된 출력을 보여 줍니다.

카메라 출력 버퍼만 표시합니다. 앱의 YUV JPEG 변환 완료·PIP 합성 저장·GPU 인코더 출력은 제외합니다.

PIP를 켜면 무엇이 추가되나요?

Physical PIP는 메인 그래프에 (Phy) 메타데이터와 프리뷰를 추가합니다. 다른 Service ID를 열면 ID ↻로 카메라별 결과를 전환합니다.

PIP로 녹화하는데 Recording이 없나요? 두 카메라는 프리뷰 버퍼를 보내고, 앱이 이를 합성해 인코더에 전달합니다.

별도 HAL Recording 출력이 없으므로 해당 행도 없습니다. 녹화는 계속됩니다.

출력 크기는 Live Streams에서 확인하세요.

Camera2·CameraX·기존 Dual의 관측 차이

일반 Camera2의 Android 12 이하와 일반 CameraX는 Preview·Recording 버퍼를 직접 관측하지 못해 No callback을 표시합니다.

Camera2의 EIS 녹화도 인코더 직결이므로 Recording은 No callback입니다. PIP의 프리뷰 입력 수신은 별도로 기록합니다.

CameraX의 YUV는 ImageAnalysis, 카메라 JPEG는 ImageCapture의 수신 시각입니다. 앱의 변환·합성 완료 시각은 표시하지 않습니다.

저장 방식은 JPEG 출처를 확인하세요.

CLI 호환용 Dual의 Main/Sub Preview는 버퍼 수신을 직접 관측하지 못하므로 No callback입니다.

화면 갱신 시각을 대신 표시하지 않습니다. Camera2의 Main/Sub photo는 두 센서 이미지 수신입니다.

Camera2 VIDEO의 두 HAL Recording 출력은 No callback으로 표시합니다.

CameraX Dual은 프리뷰를 GPU로 인코더에 전달하므로 별도 Recording 행이 없습니다. 이 차이를 센서 동기화 성능으로 해석하지 마세요.

Multi는 프리뷰 위의 카메라 ID 이름표로 선택한 장치의 Preview·Photo를 표시합니다. 그래프 안에 별도 ID 선택 버튼은 없습니다.

영상은 프리뷰를 앱 인코더에 전달하므로 별도 HAL Recording 행을 만들지 않습니다.

이미지와 프레임은 센서 타임스탬프를 대조하여 연결합니다. 그래프 값은 앱 수신 시각이며 HAL 내부 처리 완료 시각을 직접 측정한 값은 아닙니다.

값이 없는 이유를 확인하세요

문제가 반복되면 진단 ZIP과 재현 조건을 저장하세요.

다음 단계: 같은 조건을 반복 측정하려면 Benchmark를 여세요.

문서 찾기

어디서 시작할지 모르겠다면

    ↑↓ 선택Enter 열기

    그림 크게 보기

    100%