Android 13 카메라 이미지 테스트 모음 출시 노트

Android 13 출시에는 카메라 ITS의 여러 변경사항이 포함되어 있습니다. Android 13에서는 업데이트된 Python 및 패키지 버전, 테스트 하드웨어 업데이트와 같은 증분 변경사항 외에도 동영상 테스트를 지원합니다.

이 페이지에는 Android 13의 카메라 ITS 변경사항이 요약되어 있습니다. 변경사항은 크게 일곱 가지 카테고리로 분류됩니다.

Python 및 패키지 버전

Android 13은 Android 12에서 지원되는 Python 버전과 라이브러리 외에도 다음 Python 버전을 지원합니다.

구성 파일 추가

test_auto_flash.py 테스트에 조명 제어가 추가되므로 config.yml 파일에 컨트롤러와 조명 채널을 위한 2개의 추가 매개변수가 필요합니다. 테스트 대상 기기(DUT)가 폴더블인지 아닌지 식별하려면 config.yml 파일에 태블릿 기반 섹션과 센서 퓨전 섹션에 모두 추가해야 하는 세 번째 추가 매개변수가 필요합니다.

TestBeds:
  - Name: TEST_BED_TABLET_SCENES
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"  # "True" or "False"; quotes needed
      lighting_cntl: <controller-type>  # "arduino" or "None"; quotes needed
      lighting_ch: <controller-channel>
      camera: 0
      foldable_device: "False". # set "True" if testing foldable
      scene: <scene-name>  # if <scene-name> runs all scenes

테스트 변경사항

scene1_1/test_black_white.py

test_black_white 테스트에는 이전 버전의 Android와 일치하는 채널 채도 확인이 있습니다. 즉, 채널 채도 확인에 필요한 첫 번째 API 수준은 Android 10입니다.

scene1_2/test_yuv_plus_raw.py

test_yuv_plus_raw 테스트는 RAW를 더 효율적으로 지원하기 위해 16:9 또는 4:3이 아닌 센서를 처리합니다. 테스트에서 센서 RAW 형식과 YUV 캡처 형식 간의 공통 형식을 찾을 수 없다면 가로세로 비율이 다르더라도 테스트는 RAW 캡처를 최대 YUV 캡처와 비교합니다.

scene2_a/test_faces.py

test_facestest_num_faces로 리팩터링되었습니다.

scene2_a/test_num_faces.py

test_num_faces 테스트는 센서 자르기를 처리하고 잘린 UW 카메라 캡처에 얼굴 직사각형을 올바르게 배치합니다.

scene3/test_lens_position.py

test_lens_position 테스트는 Android 13에서 지원 중단됩니다.

scene6/test_zoom.py

test_zoom 테스트가 리팩터링되어 카메라 시스템이 3개인 경우와 4개인 경우를 더 쉽게 테스트할 수 있습니다. 확대/축소의 경우 카메라가 10배의 비율 범위에서 올바르게 테스트되면 테스트가 올바르게 종료됩니다. 이렇게 하면 단일 차트 거리에서 확대/축소 테스트를 실행할 수 있습니다.

scene_change/test_scene_change.py

test_scene_change 테스트는 Android 13에서 지원 중단됩니다.

새로운 태블릿 기반 테스트

Android 13에는 2가지 새로운 태블릿 기반 테스트가 포함되어 있습니다. 두 테스트는 모두 Android 13으로 출시되는 기기에서는 필수이지만 Android 13으로 업그레이드하는 기기에서는 건너뜁니다.

장면 테스트 이름 첫 번째 API 수준 설명
2_a test_auto_flash 33 어두운 장면에서 자동 플래시가 트리거되는지 확인합니다.
2_b test_yuv_jpg_capture_sameness 33 YUV 및 JPEG 스틸 캡처가 비트별로 동일한지 확인합니다.

scene2_a/test_auto_flash.py

Android 13에서는 test_auto_flash 테스트를 추가합니다.

매개변수

  • flash: 플래시를 사용할 수 없으면 테스트를 건너뜁니다.

메서드

테스트는 자동 플래시의 캡처 요청을 구성하고 플래시 이벤트가 필요한 장면을 표시합니다. 자동 노출 알고리즘의 어두운 장면을 표현하기 위해 테스트 장비와 태블릿의 조명을 끕니다. 이 테스트는 자동 플래시를 사용 설정하여 NUM_FRAMES 캡처의 시퀀스를 구성합니다. AE_STATE 설정이 FLASH_REQUIRED를 반환하면 테스트는 캡처에서 플래시가 실행되었는지 확인합니다.

조명은 표시된 메시지를 통해 수동으로 제어하거나 자동 테스트를 위해 조명 컨트롤이 추가된 Arduino 컨트롤러를 사용하여 자동으로 제어할 수 있습니다. 새로운 유틸리티 폴더 lighting_control_utils는 테스트의 조명을 제어하는 코드를 중앙화합니다.

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13에서는 test_yuv_jpeg_capture_sameness 테스트를 추가합니다.

매개변수

  • streamUseCase: 카메라가 스트림 사용 사례를 지원하는지 결정합니다.
  • android.jpeg.quality: JPEG 화질을 100으로 설정합니다.

메서드

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

동영상 테스트

카메라 ITS는 Android 13에서 동영상 테스트를 지원합니다.

Android 13에서는 다음 테스트를 추가합니다.

장면 테스트 이름 첫 번째 API 수준 설명
4 test_preview_stabilization_fov 33 흔들림 보정이 사용 설정된 상태에서 동영상 미리보기가 너무 많이 잘리지 않는지 확인합니다.
4 test_video_aspect_ratio_and_crop 33 동영상 형식 FoV, 가로세로 비율, 자르기를 확인합니다.
sensor_fusion test_preview_stabilition 33 미리보기 흔들림 보정이 작동하는지 확인합니다.
sensor_fusion test_video_stabilition 33 동영상 흔들림 보정이 작동하는지 확인합니다.

scene4/test_preview_stabilization_fov.py

Android 13에서는 test_preview_stabilization_fov 테스트를 추가합니다. 이 테스트는 지원되는 미리보기 크기를 확인하여 FoV가 부적절하게 잘리지 않았는지 확인합니다.

메서드

이 테스트는 미리보기 흔들림 보정이 사용 설정된 동영상 1개와 미리보기 흔들림 보정이 사용 중지된 동영상 1개를 각각 캡처합니다. 각 동영상에서 대표 프레임을 선택하고 이를 분석하여 두 동영상의 FoV 변화가 사양 내에 있는지 확인합니다.

특히 테스트에서는 다음과 같이 미리보기 흔들림 보정이 있는 매개변수와 없는 매개변수를 확인합니다.

  • 원의 둥글기가 일정하게 유지됩니다.
  • 원의 중심이 안정적으로 유지됩니다.
  • 원의 크기 변경이 20%를 넘지 않습니다. 즉, FoV가 최대 20%까지만 변경됩니다.

scene4/test_video_aspect_ratio_and_crop.py

Android 13에서는 test_video_aspect_ratio_and_crop 테스트를 추가합니다. 스틸 캡처를 위한 test_aspect_ratio_and_crop 테스트와 마찬가지로 이 테스트는 지원되는 동영상 형식을 확인하여 동영상 프레임이 부적절하게 늘어나거나 잘리지 않도록 합니다. 직접 보고한 모든 동영상 품질이 테스트됩니다. 또한 카메라에서 HLG10 동영상을 지원하는 경우 10비트 동영상도 테스트됩니다.

Android 13에서는 get_available_video_qualities 메서드를 its_session_utils에 추가합니다. 기존 테스트와 공통 코드를 공유하기 위해 Android 13에는 두 가지 새로운 유틸리티 함수 image_fov_utilsvideo_processing_utils도 포함되어 있습니다.

메서드

테스트는 RAW 형식 또는 RAW 형식이 지원되지 않는 경우 가장 높은 해상도의 JPEG 형식으로 참조 이미지를 캡처합니다. 참조 이미지에서 원 크기와 위치가 결정됩니다. 그러면 짧은 동영상이 촬영되며 모든 동영상 품질이 지원됩니다. 최종 참조 프레임은 각 동영상 품질에서 추출됩니다. 참조 프레임으로부터 시야(FoV), 가운데 맞춤(자르기), 가로세로 비율은 각 동영상 품질에 맞게 계산됩니다.

FoV 계산의 경우 테스트는 동영상 프레임 원 크기를 참조 이미지와 동영상 형식 크기에서 계산된 원 크기와 비교합니다. 자르기 검사의 경우 테스트는 동영상 프레임의 중심을 참조 이미지의 중심과 비교합니다. 가로세로 비율 검사의 경우 테스트는 흰색 배경의 큰 검은색 원이 표시된 장면을 사용하여 원의 가로세로 비율을 결정하고 프레임이 왜곡되지 않는지 확인합니다.

sensor_fusion/test_preview_stabilization.py

Android 13에서는 최대 1920x1080까지 지원되는 모든 미리보기 품질을 테스트하는 test_preview_stabilization 테스트를 추가합니다. 테스트는 센서 퓨전 테스트 장비를 사용하며 새 버전 2 센서 퓨전 컨트롤러 또는 이전 Arduino 컨트롤러 버전의 펌웨어 업그레이드가 필요합니다. 새 컨트롤러에 관한 자세한 내용은 하드웨어 업데이트 및 추가사항을 참고하세요.

메서드

미리보기 흔들림 보정이 사용 설정된 상태에서 휴대전화가 약 15도 이상 천천히 움직입니다. 그런 다음 이미지 회전을 자이로스코프의 회전과 비교합니다.

sensor_fusion/test_video_stabilization.py

Android 13에서는 최대 1920x1080까지 지원되는 동영상 품질을 테스트하는 test_video_stabilization 테스트를 추가합니다. QCIF 저해상도 동영상 품질은 제외됩니다. 테스트는 센서 퓨전 테스트 장비를 사용하며 새 버전 2 센서 퓨전 컨트롤러 또는 이전 Arduino 컨트롤러 버전의 펌웨어 업그레이드가 필요합니다. 새 컨트롤러에 관한 자세한 내용은 하드웨어 업데이트 및 추가사항을 참고하세요.

메서드

미리보기 흔들림 보정을 사용 설정한 상태에서 테스트 장비가 휴대전화를 약 15도 이상 천천히 이동합니다. 그런 다음 이미지 회전을 자이로스코프의 회전과 비교합니다.

하드웨어 업데이트 및 추가사항

Android 13에는 Arduino 기반 버전 2 센서 퓨전 컨트롤러로의 업그레이드가 포함되어 있습니다. 이 업그레이드에는 하드웨어 및 펌웨어 변경사항이 모두 포함됩니다. 업그레이드를 통해 컨트롤러는 회전 속도 및 조명 제어를 설정할 수 있습니다. 이 업그레이드에는 그림 1에 표시된 새로운 실드도 포함되어 있어 3개의 회전 채널과 3개의 조명 제어 채널을 제공합니다.

Arduino 실드 버전 2.0

그림 1. 회전 및 조명 제어 기능을 갖춘 Arduino 실드 버전 2.0

또한 13의 경우 회전 속도 제어를 사용 설정하려면 기존 컨트롤러의 펌웨어를 업데이트해야 합니다. 이 펌웨어는 다음에서 다운로드할 수 있습니다.

새 컨트롤러에 관한 자세한 내용은 Android 13 센서 퓨전 컨트롤러를 참고하세요.

폴더블 테스트 지원

Android 13에는 폴더블 기기용 테스트 지원이 포함되어 있습니다. 폴더블에 multi-camera API를 사용 설정하려면 테스트 중에 휴대전화 상태(Folded 또는 Unfolded)가 필요합니다. 폴더블이 아닌 휴대전화를 포함한 모든 DUT에서 휴대전화 상태 폴링을 사용 설정하려면 DUT가 호스트에 연결된 후 다음 adb 명령어를 실행합니다.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier