카메라 ITS 테스트

이 페이지에서는 Android 호환성 테스트 모음(CTS) 인증 도구의 일부인 카메라 이미지 테스트 모음(ITS)의 전체 테스트 목록을 제공합니다. ITS 테스트는 기능 테스트입니다. 즉, 이미지 품질을 측정하는 것이 아니라 알려진 모든 카메라 기능이 예상대로 작동하는지 측정하는 것입니다. 이 문서를 통해 개발자와 테스터는 개별 테스트에서 실행하는 작업과 테스트 실패를 디버그하는 방법을 알 수 있습니다.

테스트는 다음과 같이 장면별로 그룹화됩니다.

  • scene0: 메타데이터, 잡음, 자이로스코프, 진동 감지
  • scene1: 노출, 감도, EV 보정, YUV와 JPEG/RAW 비교
  • scene2: 얼굴 인식, 색상 장면 또는 완전한 어두움이 필요한 테스트
  • scene3: 에지 개선, 렌즈 이동
  • scene4: 가로세로 비율, 자르기, 시야
  • scene5: 렌즈 음영
  • scene6: 확대/축소
  • sensor_fusion: 카메라/자이로스코프 타이밍 오프셋

각 장면에 관한 설명은 개별 섹션을 참고하세요.

scene0

Scene0 테스트에는 구체적인 장면 정보가 필요하지 않습니다. 그러나 휴대전화는 자이로스코프와 진동 테스트를 위해 고정되어 있어야 합니다.

test_burst_capture

전체 캡처 파이프라인이 원본 크기 캡처 속도와 CPU 시간을 따라잡을 수 있는지 확인합니다.

테스트 대상 API:

통과: 원본 크기 이미지의 버스트를 캡처하고 카메라가 충분히 빨라서 시간 초과를 방지합니다.

test_capture_result_dump

캡처 결과가 수동 캡처에서 반환되는지 테스트한 후 덤프합니다.

테스트 대상 API:

통과: 캡처를 완료하고 캡처 결과를 덤프합니다.

test_gyro_bias

기기가 고정 상태일 때 자이로스코프가 안정적으로 출력되는지 테스트합니다. 데이터는 평균 20개의 데이터 포인트로 표시됩니다.

테스트 대상 API:

통과: 자이로스코프 판독의 델타 값이 시간이 지남에 따라 0.01 미만입니다.

test_gyro_bias_plot.png

test_gyro_bias_plot.png

test_jitter

카메라 타임스탬프의 잡음을 측정합니다.

테스트 대상 API:

통과: 프레임과 프레임 사이에 최소 30ms 델타가 있습니다.

test_jitter_plot.png

test_jitter_plot.png(작은 y축 범위에 유의하세요. 잡음은 사실 이 도표에서는 작습니다.)

test_metadata

메타데이터 항목의 유효성을 테스트합니다. 캡처 결과와 카메라 특성 객체를 확인합니다. 이 테스트에서는 auto_capture_request 노출과 게인 값을 사용합니다. 이미지 콘텐츠가 중요하지 않기 때문입니다.

테스트 대상 API:

통과: 하드웨어 수준, rollingShutterSkew, frameDuration 태그, timestampSource, croppingType, blackLevelPattern, pixel_pitch, FOV, 과초점 거리가 있고 값이 유효합니다.

test_param_sensitivity_burst

android.sensor.sensitivity 매개변수가 버스트에서 올바르게 적용되는지 테스트합니다. 출력 메타데이터만 검사합니다.

테스트 대상 API:

통과: 출력 데이터의 허용 오차가 0.2% 미만입니다.

test_read_write

기기가 캡처 메타데이터를 다시 읽어 올바른 노출과 게인 값을 작성하는지 테스트합니다.

테스트 대상 API:

통과: 읽기 및 쓰기 값이 모든 장면에서 일치합니다.

test_sensor_events

기기가 센서 퓨전 지원을 공지하는 기기의 센서 이벤트를 쿼리하고 출력하는지 테스트합니다. 예상되는 센서는 가속도계, 자이로스코프, 자기계입니다. 이 테스트는 화면이 켜져 있는 경우, 즉, 기기가 대기 모드에 있지 않은 경우에만 작동합니다.

테스트 대상 API:

통과: 각 센서의 이벤트를 수신합니다.

test_solid_color_test_pattern

카메라 음소거 시 단색 테스트 패턴이 제대로 생성되는지 테스트합니다. 카메라 음소거가 지원되는 경우 단색 테스트 패턴이 지원되어야 합니다. 카메라 음소거가 지원되지 않는 경우 단색 테스트 패턴은 기능이 공지되는 경우에만 테스트됩니다.

RAW 이미지가 지원되는 경우 색상 할당도 테스트됩니다. 테스트 색상은 검은색, 흰색, 빨간색, 파란색, 초록색입니다. RAW 이미지를 지원하지 않는 카메라의 경우 검은색만 테스트됩니다.

테스트 대상 API:

통과: 지원되는 단색 테스트 패턴이 정확한 색상이며 이미지 편차가 적습니다.

test_test_pattern

android.sensor.testPatternMode 매개변수를 테스트하여 유효한 각 테스트 패턴의 프레임을 캡처하고 프레임이 단색과 색상 막대에서 올바르게 생성되는지 확인합니다. 이 테스트에는 다음 단계가 포함됩니다.

  1. 지원되는 모든 테스트 패턴의 이미지를 캡처합니다.
  2. 단색 테스트 패턴과 색상 막대의 간단한 정확성 검사를 실행합니다.

테스트 대상 API:

통과: 지원되는 테스트 패턴이 올바르게 생성됩니다.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

선형 톤맵을 사용하여 RAW에서 YUV로 테스트 패턴을 변환하는 것을 테스트합니다. 이 테스트에는 톤맵 변환을 위한 완벽한 이미지 패턴을 생성하기 위해 android.sensor.testPatternMode = 2(COLOR_BARS)가 필요합니다. 파이프라인에 선형 톤맵과 적합한 이미지 입력으로 적절한 색상 출력이 있는지 확인합니다(test_test_patterns에 의존).

테스트 대상 API:

통과: YUV와 RAW가 서로 유사하게 보입니다.

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

이미지 및 움직임 감지 센서 이벤트가 동일한 시간 도메인에 있는지 테스트합니다.

테스트 대상 API:

통과: 모션 타임스탬프가 두 이미지 타임스탬프 사이에 있습니다.

test_vibration_restriction

기기의 진동이 예상대로 작동하는지 테스트합니다.

테스트 대상 API:

통과: Camera Audio Restriction API로 음소거했을 때 기기가 진동하지 않습니다.

scene1

scene1은 회색 차트입니다. 회색 차트는 카메라 시야의 중앙 30%를 포함해야 합니다. 중앙 영역에는 특징이 없으므로 회색 차트는 3A(자동 노출, 자동 화이트 밸런스, 자동 초점)를 적절히 테스트할 것으로 예상됩니다. 그러나 캡처 요청은 3A가 수렴되기에 충분한 특징이 포함된 전체 장면을 지정합니다.

RFoV 카메라는 WFoV 또는 RFoV 테스트 장비에서 테스트할 수 있습니다. RFoV 카메라를 WFoV 테스트 장비에서 테스트하면 차트는 FoV에서 회색 차트의 일부 경계를 보장하도록 ⅔만큼 조정되어 3A 수렴을 지원합니다.

scene1

scene1: 원본 크기 차트(왼쪽). ⅔만큼 조정된 차트(오른쪽).

test_3a

다소 어려운 타겟으로 3A 수렴을 테스트합니다.

테스트 대상 API:

통과: 3A가 수렴되고 반환된 3A 값이 유효합니다.

test_ae_af

3A 자동 노출(AE) 및 자동 초점(AF) 알고리즘을 개별적으로 테스트합니다.

테스트 대상 API:

통과: 3A가 수렴되고 반환된 3A 값이 합법적입니다.

test_ae_precapture_trigger

사전 캡처 트리거를 사용할 때 AE 상태 머신을 테스트합니다. AE가 사용 중지된 수동 요청 5개를 캡처합니다. 마지막 요청에는 AE 사전 캡처 트리거가 있습니다. AE가 사용 중지되었으므로 무시되어야 합니다.

테스트 대상 API:

통과: AE가 수렴됩니다.

test_auto_vs_manual

캡처된 자동 및 수동 장면이 동일한지 테스트합니다.

테스트 대상 API:

통과: 각 캡처 결과에서 보고된 수동 화이트 밸런스 게인 및 변환이 카메라 3A 알고리즘의 자동 화이트 밸런스 estimate와 일치합니다.

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_black_white

기기에서 완전한 흑백 이미지를 생성하는지 테스트합니다. 두 번 캡처합니다. 매우 낮은 게인과 짧은 노출을 사용한 첫 번째 캡처를 통해 검은색 사진을 얻고 매우 높은 게인과 긴 노출을 사용한 두 번째 캡처를 통해 흰색 사진을 얻습니다.

테스트 대상 API:

통과: 흑백 이미지를 생성합니다. 백색 이미지의 채워진 채널은 RGB 값이 [255, 255, 255]이며 오차 범위의 차이는 1% 미만입니다.

test_black_white_black test_black_white_black
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

수동 캡처 설정으로 이미지 50개를 5번 버스트하고 모두 동일한지 확인합니다. 이 테스트는 다르게 처리되거나 아티팩트가 있는 프레임이 산발적으로 있는지 확인하는 데 사용할 수 있습니다.

테스트 대상 API:

통과: 이미지가 시각적으로 동일하고 RGB 값도 동일합니다.

실패: 각 버스트 시작 시 RGB 평균 차트의 급등 또는 하락을 보여 줍니다.

  • first_API_level이 30 미만인 경우 허용 오차는 3%입니다.
  • first_API_level이 30 이상인 경우 허용 오차는 2%입니다.

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

유효한 데이터가 CaptureResult 객체에 반환되는지 테스트합니다. 자동, 수동, 자동 캡처를 실행합니다.

테스트 대상 API:

통과: 메타데이터가 모든 캡처에 유효하고 수동 설정이 두 번째 자동 캡처로 유출되지 않습니다. 캡처의 렌즈 음영 보정을 표시합니다.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

RAW 스트림을 자를 수 없는지 테스트합니다.

테스트 대상 API:

통과: YUV 이미지는 중앙에서 잘리지만 RAW 이미지는 잘리지 않습니다.

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

자르기 영역이 작동하는지 테스트합니다. 전체 이미지를 가져와 다른 영역 5개(모서리, 중앙)의 패치를 만듭니다. 5개 영역의 자르기 세트로 이미지를 가져옵니다. 패치와 자르기 이미지 값을 비교합니다.

테스트 대상 API:

통과: 잘린 영역의 이미지가 자르기 이미지에 상응하는 패치와 일치합니다.

test_dng_noise_model

DNG 원시 모델 매개변수가 올바른지 확인합니다. 도표는 감도 범위에 걸쳐 캡처된 원본 장면에서 회색 카드의 중앙 패치에 관한 측정된 편차를 설명하고 이러한 값을 카메라 HAL의 DNG 노이즈 모델에서 각 감도에 예상되는 편차와 비교합니다(캡처 결과 객체에 반환된 O, S 매개변수에 기반함). DNG 노이즈 모델에 관해 자세히 알아보려면 DNG 노이즈 모델에 관한 다음 문서를 다운로드하세요.

테스트 대상 API:

통과: DNG 원시 모델 매개변수가 올바릅니다. 예상 RGB 값이 측정된 실제 RGB 값과 일치합니다.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

노출값(EV) 보정이 적용되는지 테스트합니다. 테스트에서는 8단계로 노출을 늘리고 예상 밝기를 기준으로 측정 밝기를 확인합니다. 예상값은 EV 보정이 적용되지 않은 이미지의 밝기로 계산되며 계산값이 실제 이미지 값 범위를 초과하면 예상값이 채워집니다. 예상값과 측정값이 일치하지 않거나 이미지가 5단계 이내에 과다 노출되면 테스트가 실패합니다.

테스트 대상 API:

통과: 이미지가 5단계 내에서 과다 노출되지 않고 노출을 늘리는 것을 보여 줍니다.

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

CONTROL_AE_COMPENSATION_STEP으로 만든 범위를 사용하여 EV 보상이 적용되는지 테스트합니다. 8개의 프레임이 각 보상 값에서 캡처됩니다.

테스트 대상 API:

통과: EV 보정 설정을 높여 루마 증가를 캡처합니다. 각 EV 보정 설정에서 캡처된 8개의 프레임은 안정적인 루마 값이 있습니다.

test_ev_compensation_basic

test_ev_compensation_basic.png

test_exposure

ISO 및 노출 시간이 다양할 때 일정한 노출이 달성되는지 테스트합니다. ISO 및 노출 시간이 서로 균형을 이루도록 선택한 일련의 장면을 찍습니다. 결과의 밝기는 동일해야 하지만 시퀀스에서 이미지의 노이즈가 더 커야 합니다. 샘플 픽셀의 평균값이 서로 비슷한지 확인합니다. 이미지가 0 또는 1로 고정되지 않는지 확인합니다(이미지를 직선처럼 보이게 함). 테스트는 구성 파일에서 debug 플래그를 설정하여 RAW 이미지로 실행할 수도 있습니다.

테스트 대상 API:

통과: 이미지의 밝기는 동일하지만 ISO가 더 높을수록 노이즈가 커집니다. RGB 평면은 ISO* 노출 값이 테스트된 게인 공간에서 일정하면 평평합니다.

test_exposure_plot_means

test_exposure_plot_means.png

test_exposure_mult=1.00 test_exposure_mult=64.00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

test_jpeg

변환된 YUV 이미지와 기기 JPEG 이미지가 동일한지 테스트합니다. 테스트는 이미지의 중앙 10%를 가져와 RGB 값을 계산하고 일치하는지 확인합니다.

테스트 대상 API:

통과: 각 이미지의 평균 RGB 차이가 3% 미만입니다.

test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_latching

설정(노출 및 게인)이 FULLLEVEL_3 카메라의 오른쪽 프레임에 고정되는지 테스트합니다. 연속 요청을 사용하여 일련의 장면을 찍어 장면 간 캡처 요청 매개변수를 다양하게 합니다. 이미지에 예상 속성이 있는지 확인합니다.

테스트 대상 API:

통과: 이미지 [2, 3, 6, 8, 10, 12, 13]은 ISO나 노출이 증가했고 test_latching_plot_means.png에서 더 높은 RGB 평균을 보여 줍니다.

test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

test_latching_plot_means

test_latching_plot_means.png

test_linearity

기기 처리가 선형 픽셀로 반전될 수 있는지 테스트합니다. 동일한 타겟을 가리키는 기기로 일련의 장면을 캡처합니다.

테스트 대상 API:

통과: 민감도가 증가하면 R, G, B 값이 선형으로 증가해야 합니다.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

3A 잠금 및 YUV 버스트를 테스트합니다(자동 설정 사용). 이 테스트는 MANUAL_SENSOR 또는 PER_FRAME_CONTROLS가 없는 제한된 기기에서도 통과하도록 설계되었습니다. 테스트는 프레임 속도 검사가 CTS에 있는 동안 YUV 이미지의 일관성을 확인합니다.

테스트 대상 API:

통과: 캡처가 일관되게 보입니다.

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_multi_camera_match

기기의 다중 카메라가 회색 패치에 유사한 RGB 값을 제공하는지 테스트합니다.

테스트 대상 API:

통과: 다양한 카메라가 동일한 회색 패치에 유사한 RGB 값을 생성합니다.

test_multi_camera+match_yuv_fl=4.38

test_multi_camera+match_yuv_fl=4.38.jpg

test_param_color_correction

설정할 때 android.colorCorrection.* 매개변수가 적용되는지 테스트합니다. 다른 변환 및 게인 값을 사용하여 장면을 찍고 이에 따라 장면이 다르게 보이는지 테스트합니다. 변환 및 게인을 선택하여 출력이 점점 더 빨간색이나 파란색이 되도록 합니다. 선형 톤맵을 사용합니다. 톤 매핑은 이미지 처리에서 사용되는 기법으로, 한 가지 색상 세트를 다른 색상 세트에 매핑하여 동적 범위가 더 제한된 매체의 HDR(High Dynamic Range) 이미지 모양을 추정합니다.

테스트 대상 API:

통과: R 및 B 값은 변환에 따라 증가합니다.

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*x축은 캡처 요청입니다. 0 = unity, 1=red boost, 2= blue boost

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (R boost)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (B boost)

test_param_exposure_time

android.sensor.exposureTime 매개변수가 적용되는지 테스트합니다.

테스트 대상 API:

통과: 각 장면이 이전 장면보다 밝습니다.

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

android.flash.mode 매개변수가 적용되는지 테스트합니다. 플래시가 터졌는지 명확하게 알 수 있도록 노출을 어두운 면으로 수동으로 설정하고 선형 톤맵을 사용합니다. 플래시가 터졌는지 확인하기 위해 만들어진 큰 그라데이션이 있는지 타일 이미지가 있는 중앙을 확인합니다.

테스트 대상 API:

통과: 타일 이미지의 중앙에 플래시가 터졌음을 의미하는 큰 그라데이션이 있습니다.

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

설정할 때 android.noiseReduction.mode 매개변수가 올바르게 적용되는지 테스트합니다. 어두운 조명의 카메라로 이미지를 캡처합니다. 높은 아날로그 게인을 사용하여, 캡처된 이미지에 노이즈가 있는지 확인합니다. NR 사용 안 함, '빠름', '고화질'로 세 가지 이미지를 캡처합니다. 게인이 낮고 NR을 사용하지 않는 이미지도 캡처하고 기준으로 이 편차를 사용합니다. SNR(신호 대 노이즈 비율)이 높을수록 이미지 품질이 좋아집니다.

테스트 대상 API:

통과: SNR이 다양한 노이즈 감소 모드에 따라 다르고 아래 그래프와 유사하게 동작합니다.

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0: OFF, 1: FAST, 2: HQ, 3: MIN , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensitivity

android.sensor.sensitivity 매개변수가 적용되는지 테스트합니다. 이 테스트는 5단계로 감도를 늘리며 각 장면의 노출은 고정되어 있습니다.

테스트 대상 API:

통과: 중앙 10%의 RGB 평균이 높아진 감도로 더 밝아집니다.

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

android.shading.mode 매개변수가 적용되는지 테스트합니다.

테스트 대상 API:

통과: 음영 모드가 전환되고 렌즈 음영 지도가 예상대로 수정됩니다.

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

android.tonemap.mode 매개변수가 적용되는지 테스트합니다. 각 R, G, B 채널에 다른 톤맵 곡선을 적용하고 출력 이미지가 예상대로 수정되는지 확인합니다. 이 테스트는 test1 및 test2라는 두 가지 테스트로 구성됩니다.

테스트 대상 API:

통과:

  • test1: 두 이미지에 모두 선형 톤맵이 있지만 n=1의 그라데이션이 더 가파릅니다. n=1 이미지의 경우 G(녹색) 채널이 더 밝습니다.
  • test2: 톤맵은 동일하지만 길이가 다릅니다. 이미지는 동일합니다.
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

RAW 감도 부스트 이후를 확인합니다. 감도가 다른 일련의 RAW 및 YUV 이미지를 캡처하고 RAW 감도 부스트 조합을 게시하며 출력 픽셀 평균이 요청 설정과 일치하는지 확인합니다.

테스트 대상 API:

통과: RAW 이미지는 부스트가 증가함에 따라 어두워지는 반면 YUV 이미지는 밝기가 일정하게 유지됩니다.

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensitivity

게인이 증가하는 일련의 원본 이미지를 캡처하고 노이즈를 측정합니다. 버스트에서 원본만 캡처합니다.

테스트 대상 API:

통과: 게인이 증가함에 따라 각 장면의 노이즈가 이전 장면보다 더 큽니다.

중앙 통계 그리드 셀의 편차를 사용합니다.

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposure

노출 시간이 증가하는 일련의 원본 이미지를 캡처하고 픽셀 값을 측정합니다.

테스트 대상 API:

통과: ISO(게인)를 높이면 픽셀이 빛에 더 민감해지므로 도표가 왼쪽으로 이동합니다.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰은 1ms, 10¹은 10ms, 10⁻¹은 0.1ms)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_raw_sensitivity

감도가 증가하는 일련의 원본 이미지를 캡처하고 이미지 중앙 10%의 노이즈(편차)를 측정합니다. 각 장면의 노이즈가 이전 장면보다 큰지 테스트합니다.

테스트 대상 API:

통과: 장면마다 편차가 증가합니다.

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

요청을 재처리하는 데 android.noiseReduction.mode가 적용되는지 테스트합니다. 재처리된 이미지를 어두운 조명의 카메라로 캡처합니다. 높은 아날로그 게인을 사용하여 캡처 이미지에 노이즈가 있는지 확인합니다. NR 사용 안 함, '빠름', '고화질'로 세 가지 재처리된 이미지를 캡처합니다. 게인이 낮고 NR을 사용하지 않는 재처리된 이미지를 캡처하고 이 편차를 기준으로 사용합니다.

테스트 대상 API:

통과: FAST >= OFF, HQ >= FAST, HQ >> OFF

일반적인 SNR 및 NR_MODE 도표

일반적인 SNR 및 NR_MODE 도표

test_tonemap_sequence

톤맵 곡선이 다른 일련의 장면을 테스트합니다. 선형 톤맵으로 수동 장면 3개를 캡처합니다. 기본 톤맵으로 수동 장면 3개를 캡처합니다. 각 연속 프레임 쌍 사이의 델타를 계산합니다.

테스트 대상 API:

통과: 동일한 프레임이 3개 있고 그다음에 이와는 다른 동일한 프레임이 3개 있습니다.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

이미지 캡처의 보고된 모든 크기와 형식이 작동하는지 테스트합니다. YUV 및 JPEG가 image_processing_utils 모듈에서 변환될 때 동일하게 보이도록 선형 톤맵이 있는 수동 요청을 사용합니다. 이미지는 기본적으로 저장되지 않지만 debug_mode를 사용 설정하면 저장할 수 있습니다.

테스트 대상 API:

통과: 모든 이미지 중앙은 RGB 변환 이미지에서 최고 해상도 YUV 이미지의 3%로 최대 RMS(신호의 제곱 평균값) 차이를 보유합니다.

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

이미지 캡처의 보고된 크기와 형식이 작동하는지 테스트합니다.

테스트 대상 API:

통과: 테스트가 완료되고 요청된 이미지를 반환합니다.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

단일 프레임을 YUV 및 JPEG 출력으로 모두 캡처하는 것을 테스트합니다. YUV 및 JPEG가 image_processing_utils 모듈에서 변환될 때 동일하게 보이도록 선형 톤맵이 있는 수동 요청을 사용합니다.

테스트 대상 API:

통과: YUV 및 JPEG 이미지가 유사하고 RMS(신호의 제곱 평균값) 차이가 1% 미만입니다.

test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

단일 프레임을 RAW 및 YUV 출력으로 모두 캡처하는 것을 테스트합니다. 선형 톤맵이 있는 수동 요청을 사용하므로 RAW 및 YUV가 동일할 것으로 예상됩니다. RGB 변환 이미지의 중앙 10% RGB 값을 비교합니다. android.shading.mode를 기록합니다.

테스트 대상 API:

통과: YUV 및 JPEG 이미지가 유사하고 RMS(신호의 제곱 평균값) 차이가 3.5% 미만입니다.

test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

test_yuv_plus_raw10

단일 프레임을 RAW10 및 YUV 출력으로 모두 캡처하는 것을 테스트합니다. 선형 톤맵이 있는 수동 요청을 사용하므로 RAW 및 YUV가 동일할 것으로 예상됩니다. RGB 변환 이미지의 중앙 10% RGB 값을 비교합니다. android.shading.mode를 기록합니다.

테스트 대상 API:

통과: RAW10 및 YUV 이미지가 유사하고 RMS(신호의 제곱 평균값) 차이가 3.5% 미만입니다.

test_yuv_plus_raw10_shading=1_raw test_yuv_plus_raw10_shading=1_yuv
test_yuv_plus_raw10_shading=1_raw.jpg test_yuv_plus_raw10_shading=1_yuv.jpg

test_yuv_plus_raw12

단일 프레임을 RAW12 및 YUV 출력으로 모두 캡처하는 것을 테스트합니다. 선형 톤맵이 있는 수동 요청을 사용하므로 RAW 및 YUV가 동일할 것으로 예상됩니다. RGB 변환 이미지의 중앙 10% RGB 값을 비교합니다. android.shading.mode를 기록합니다.

테스트 대상 API:

통과: RAW12 및 YUV 이미지가 유사하고 RMS(신호의 제곱 평균값) 차이가 3.5% 미만입니다.

test_yuv_plus_raw12_shading=1_raw.jpg test_yuv_plus_raw12_shading=1_yuv.jpg
test_yuv_plus_raw12_shading=1_raw.jpg test_yuv_plus_raw12_shading=1_yuv.jpg

scene2_a

scene2_a에는 세 가지 얼굴이 있고 배경도 회색, 옷도 회색입니다. 다양한 피부색을 나타내기 위해 선택된 얼굴입니다.

scene2_a

scene2_a

test_auto_flash

어두운 장면에서 자동 플래시가 트리거되는지 테스트합니다. 타일 이미지의 중앙에 큰 그라데이션이 있는지 검사하여 자동 플래시가 실행되는지 확인합니다. 자동 플래시를 트리거하려면 테스트 장비의 태블릿과 조명이 꺼져 있어야 합니다. 태블릿은 테스트에서 끄고 조명은 Arduino 컨트롤러를 통해 자동으로 끌 수 있습니다. 테스트가 올바르게 작동하려면 장면이 완전히 어두워야 합니다. 따라서 후면 태블릿 개구부는 장면 태블릿으로 완전히 덮어야 하고, 전면 개구부는 조리개 및 DUT 스마트폰으로 가려져서 장치에 잘못된 빛이 들어가는 것을 차단해야 합니다.

테스트 대상 API:

통과: 타일 이미지의 중앙에 자동 플래시가 실행되었음을 의미하는 큰 그라데이션이 있습니다.

test_effects

지원되는 카메라 효과의 프레임을 캡처하고 올바르게 생성되는지 확인합니다. 이 테스트는 OFFMONO 효과만 확인하지만 지원되는 모든 효과의 이미지를 저장합니다.

테스트 대상 API:

통과: OFF 효과가 있는 장면 이미지와 효과가 MONO로 설정된 흑백 이미지를 캡처합니다.

test_effects_MONO

test_effects_MONO.jpg

test_format_combos

다양한 출력 형식 조합을 테스트합니다.

테스트 대상 API:

통과: 모든 조합이 성공적으로 캡처됩니다.

test_jpeg_quality

카메라 JPEG 압축 품질을 테스트합니다. android.jpeg.quality를 통해 JPEG 품질을 조정하고 양자화 테이블이 올바르게 변경되는지 확인합니다.

테스트 대상 API:

통과: 품질 향상으로 양자화 행렬이 감소합니다. (행렬은 나눗셈 인수를 나타냅니다.)

test_jpeg_quality

Pixel 4 후면 카메라 루마/크로마 DQT 행렬 평균 대 JPEG 품질

test_jpeg_quality 실패

실패한 테스트 예

품질이 매우 낮은 이미지(jpeg.quality < 50)의 경우 양자화 행렬에서 압축이 증가하지 않습니다.

test_num_faces

얼굴 인식을 테스트합니다.

테스트 대상 API:

통과: 얼굴을 3개 찾습니다.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

scene2_b

test_num_faces

얼굴 장면에서 피부색의 다양성을 높여 얼굴 인식을 테스트합니다.

테스트 대상 API:

통과: 얼굴을 3개 찾습니다.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

해상도가 1920x1440을 초과하지 않는 최대 JPEG 형식과 가로세로 비율이 동일한 가장 큰 일반적인 YUV 및 JPEG 형식을 사용하여 두 개의 이미지를 캡처합니다. jpeg.quality를 100으로 설정하고 이중 노출 영역 요청을 캡처합니다. 두 이미지를 RGB 배열로 변환하고 두 이미지 간의 3D 제곱 평균값(RMS) 차이를 계산합니다.

테스트 대상 API:

통과: YUV 및 JPEG 이미지가 유사하고 RMS(신호의 제곱 평균값) 차이가 1% 미만입니다.

scene2_c

test_num_faces

얼굴 장면에서 피부색의 다양성을 높여 얼굴 인식을 테스트합니다.

테스트 대상 API:

통과: 얼굴을 3개 찾습니다.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

CDD의 섹션 2.2.7.2 카메라에 지정된 대로 S 성능 클래스의 JPEG 캡처 지연 시간을 테스트합니다.

통과: 두 개의 기본 카메라 모두 ITS 조명 조건(3000K)에서 CTS 카메라 PerformanceTest로 측정한 1080p 해상도의 camera2 JPEG 캡처 지연 시간이 1,000ms 미만이어야 합니다(MUST).

test_camera_launch_perf_class

CDD의 섹션 2.2.7.2 카메라에 지정된 대로 S 성능 클래스의 카메라 실행 지연 시간을 테스트합니다.

통과: 두 개의 기본 카메라 모두 ITS 조명 조건(3000K)에서 CTS 카메라 PerformanceTest로 측정한 camera2 시작 지연 시간(카메라를 첫 번째 미리보기 프레임으로 열기)이 600ms 미만이어야 합니다(MUST).

scene2_d

test_num_faces

얼굴 장면에서 피부색의 다양성을 높여 얼굴 인식을 테스트합니다.

테스트 대상 API:

통과: 얼굴을 3개 찾습니다.

scene2_e

test_continuous_picture

캡처 요청을 먼저 android.control.afMode = 4 (CONTINUOUS_PICTURE).로 설정하여 VGA 해상도 50프레임을 캡처합니다.

테스트 대상 API:

통과: 3A 시스템이 50프레임 캡처가 끝나면 안정됩니다.

test_num_faces

얼굴 장면에서 피부색의 다양성을 높여 얼굴 인식을 테스트합니다.

테스트 대상 API:

통과: 얼굴을 3개 찾습니다.

scene3

Scene3은 ISO12233 차트를 사용하고 테스트는 대부분 차트 추출기 메서드를 사용하여 장면에서 차트를 찾습니다. 이러한 이유로 저장된 이미지에는 대부분 장면 1, 2 또는 4의 이미지와 같은 테두리가 없고 차트만 있습니다.

test_3a_consistency

3A 일관성을 테스트합니다.

테스트 대상 API:

통과: 3A가 허용 오차 내에서 노출, 게인, awb(자동 화이트 밸런스), fd(초점 거리)를 위해 세 번 수렴됩니다.

test_edge_enhancement

android.edge.mode 매개변수가 올바르게 적용되는지 테스트합니다. 각 에지 모드의 재처리되지 않은 이미지를 캡처하고 출력 이미지의 선명도와 캡처 결과 메타데이터를 반환합니다. 지정된 에지 모드, 감도, 노출 시간, 초점 거리, 출력 표면 매개변수로 캡처 요청을 처리합니다.

통과: HQ 모드(2)가 OFF 모드(0)보다 선명합니다. FAST 모드(1)가 OFF 모드보다 선명합니다. HQ 모드는 더 선명하거나 FAST 모드와 같습니다.

테스트 대상 API:

영향을 받는 카메라 매개변수:

  • EDGE_MODE

test_edge_enhancement_edge=0

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (빠른 모드)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (고화질 모드)

test_flip_mirror

CDD 섹션 7.5.2 전면 카메라 [C-1-5]에 따라 이미지 방향이 올바른지 테스트합니다.

미러링되거나 뒤집히거나 회전된 이미지는 중앙 부근의 다이아몬드 모양으로 식별할 수 있습니다.

통과: 이미지가 뒤집히거나 미러링되거나 회전되지 않습니다.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_lens_movement_reporting

렌즈 이동 플래그가 올바르게 보고되는지 테스트합니다. 최적의 초점 거리(3A로 확인)에서 첫 12개 프레임과 최소 초점 거리에서 마지막 12개 프레임으로 24개 이미지 버스트를 캡처합니다. 12프레임 주위에서 렌즈가 움직이면서 선명도가 떨어집니다. 선명도는 렌즈가 최종 위치로 이동하면서 결국 안정화됩니다. 렌즈 이동 플래그는 최적 초점 거리에서 렌즈가 고정된 첫 10개 프레임과 최소 초점 거리에서 렌즈가 고정된 마지막 10개 프레임에서 선명도가 중간인 모든 프레임에 어셜션되어야 합니다. 렌즈가 이동하는 정확한 프레임은 중요하지 않습니다. 렌즈가 이동할 때 이동 플래그가 어설션되는지 확인하는 것이 중요합니다.

테스트 대상 API:

통과: 렌즈 이동 플래그는 선명도가 변경된 프레임에서 True입니다.

test_reprocess_edge_enhancement

에지 개선을 위해 지원되는 재처리 메서드가 올바르게 작동하는지 테스트합니다. 지정된 재처리 에지 모드로 캡처 요청을 처리하고 재처리 에지 모드가 사용 중지된 상태로 캡처하는 다른 모드를 비교합니다.

테스트 대상 API:

통과: 다양한 에지 모드의 선명도가 정확합니다. HQ(모드 2)는 OFF(모드 0)보다 더 선명하고, 다른 모드 간의 개선율도 비슷합니다.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

scene4

scene4는 정사각형 내부 흰색 배경에 검은색 원으로 구성되어 있습니다.

scene4

scene4

test_aspect_ratio_and_crop

모든 형식에서 정사각형 내부의 원 사진을 찍습니다. 원의 가로세로 비율이 변경되지 않고 잘린 이미지가 원을 중앙에 유지하며 원 크기가 일정한 형식이나 다른 해상도에서 변경되지 않는지(시야 검사) 확인합니다.

테스트 대상 API:

통과: 이미지가 늘어나지 않고 이미지 중앙이 3% 이상 차이 나지 않으며 가능한 최대 FOV(시야)가 유지됩니다.

test_multi_camera_alignment

카메라 간격과 관련된 다중 카메라 시스템 매개변수를 테스트합니다. 다중 카메라 물리적 하위 카메라를 사용하여 물리적 카메라 중 하나로 사진을 찍습니다. 원 중심을 찾습니다. 원 중심을 각 카메라의 세계 좌표에 투영합니다. 세계 좌표에서 카메라의 원 중심 간의 차이를 비교합니다. 세계 좌표를 다시 픽셀 좌표로 재투영하고 유효성 검사로 원본과 비교합니다. 카메라의 초점 거리가 다른지 확인하는 원 크기를 비교합니다.

테스트 대상 API:

통과: 초점 거리와 원 크기가 일관됩니다.

test_preview_stabilization_fov

지원되는 미리보기 크기를 확인하여 FoV가 적절하게 잘렸는지 확인합니다. 이 테스트는 두 개의 동영상을 캡처합니다. 하나는 미리보기 안정화를 ON으로 하고 다른 하나는 미리보기 안정화를 OFF로 합니다. 각 동영상에서 대표 프레임을 선택하고 이를 분석하여 두 동영상의 FoV 변화가 사양 내에 있는지 확인합니다.

테스트 대상 API:

통과: 원의 가로세로 비율이 일정하게 유지되고, 원의 중심 위치가 안정적으로 유지되며, 원의 크기 변경은 20%를 초과하지 않습니다.

test_video_aspect_ratio_and_crop

모든 동영상 형식에서 정사각형 내부의 원을 촬영합니다. 키 프레임을 추출하고 원의 가로세로 비율이 변경되지 않는지 확인합니다. 또한, 잘린 이미지 중심에 원이 유지되고 원 크기가 일정한 형식이나 다른 해상도에서 변경되지 않는지 확인합니다(시야 확인)

테스트 대상 API:

통과: 동영상 프레임이 늘어나지 않고 프레임 중앙이 3% 이상 차이 나지 않으며 가능한 최대 FoV(시야)를 유지합니다.

scene5/diffuser

test_lens_shading_and_color_uniformity

렌즈 음영 보정이 적절하게 적용되고 흑백 균일한 장면의 색상이 고르게 분포되는지 테스트합니다. 이 테스트를 자동 3A가 있는 YUV 프레임에서 실행합니다. 렌즈 음영은 y 채널에 기반하여 평가됩니다. 지정된 각 샘플 블록의 평균 y 값을 측정하고 중앙 y 값과 비교하여 통과 또는 실패를 결정합니다. 색상 균일성 테스트는 r/g 및 b/g 공간에서 평가됩니다.

테스트 대상 API:

통과: 지정된 이미지 반경에서 r/g 및 b/g 값의 편차가 20% 미만이어야 테스트에 통과합니다.

scene6

scene6는 작은 원의 그리드이며 한 모서리에 정사각형이 있어 방향을 나타냅니다. 넓은 범위에서 확대/축소 기능을 테스트하려면 작은 원이 필요합니다.

scene6

scene6

test_zoom

카메라 확대/축소 동작을 테스트합니다. 확대/축소 범위에서 캡처하고 카메라가 확대됨에 따라 원이 커지는지 확인합니다.

테스트 대상 API:

통과: 캡처된 원의 상대적 크기가 요청된 확대/축소 비율에 따라 정확하여 카메라가 제대로 확대/축소하는지 확인합니다.

test_zoom

중심에서 가장 가까운 원의 윤곽을 찾는 test_zoom

sensor_fusion

센서 융합 테스트에서는 격자무늬 패턴을 배경으로 휴대전화를 특정하게 움직여야 합니다. sensor_fusion 테스트는 센서 퓨전 상자를 사용하여 자동화할 수 있습니다.

격자무늬

격자무늬 이미지

test_multi_camera_frame_sync

타임스탬프를 결정하기 위해 격자무늬 내에서 정사각형의 각도를 계산하여 논리 카메라로 캡처한 프레임 타임스탬프가 10ms 이내에 있는지 테스트합니다.

테스트 대상 API:

통과: 각 카메라의 이미지 간 각도가 휴대전화가 회전할 때 눈에 띄게 변경되지 않습니다.

test_preview_stabilization

안정화된 미리보기 동영상이 자이로스코프보다 적게 회전하는지 테스트합니다.

테스트 대상 API:

통과: 프레임에 대한 최대 각도 회전이 자이로스코프 회전의 70% 미만입니다.

다음은 흔들림을 보정한 샘플 동영상과 보정하지 않은 샘플 동영상입니다.

  • 흔들림 보정이 적용된 샘플 동영상

  • 흔들림 보정이 적용되지 않은 샘플 동영상

    test_sensor_fusion

AR 및 VR 애플리케이션의 카메라와 자이로스코프 간 타임스탬프 차이를 테스트합니다. 휴대전화가 격자무늬 패턴을 배경으로 90도로 10번 회전합니다. 모션은 왕복 약 2초입니다. 자이로스코프가 포함되어 있지 않거나 타임스탬프 소스 REALTIME 매개변수가 사용 설정되어 있지 않다면 이 테스트는 건너뜁니다.

test_sensor_fusion 테스트는 여러 도표를 생성합니다. 디버깅에 가장 중요한 두 가지 플롯은 다음과 같습니다.

  • test_sensor_fusion_gyro_events: 테스트 중 휴대전화의 자이로스코프 이벤트를 표시합니다. x 및 y 방향으로의 이동은 휴대전화가 장착판에 안전하게 장착되지 않아 테스트 통과 가능성이 작아짐을 의미합니다. 도표의 사이클 수는 프레임 저장을 위한 쓰기 속도에 따라 다릅니다.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations: 자이로스코프와 카메라 이벤트의 정렬을 표시합니다. 이 도표는 카메라와 자이로스코프 사이의 이동이 +/-1ms로 일치함을 표시해야 합니다.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

테스트 대상 API:

통과: CDD 섹션 7.3.9 Hi-Fi 센서 [C-2-14]에 따라 카메라 및 자이로스코프 타임스탬프의 오프셋이 1ms 미만입니다.

test_video_stabilization

안정화된 동영상이 자이로스코프보다 적게 회전하는지 테스트합니다.

테스트 대상 API:

통과: 프레임에 대한 최대 각도 회전이 자이로스코프 회전의 60% 미만입니다.

다음은 흔들림을 보정한 샘플 동영상과 보정하지 않은 샘플 동영상입니다.

  • 흔들림 보정이 적용된 샘플 동영상

  • 흔들림 보정이 적용되지 않은 샘플 동영상