บันทึกประจำรุ่นของชุดทดสอบรูปภาพกล้องของ Android 13

เวอร์ชัน Android 13 มีการเปลี่ยนแปลงหลายอย่างใน Camera ITS นอกจากการเปลี่ยนแปลงเพิ่มเติม เช่น การอัปเดต Python และเวอร์ชันแพ็กเกจ รวมถึงการอัปเดตฮาร์ดแวร์สำหรับการทดสอบแล้ว Android 13 ยังรองรับการทดสอบวิดีโอด้วย

หน้านี้จะสรุปการเปลี่ยนแปลง ITS ของกล้องสำหรับ Android 13 การเปลี่ยนแปลงนี้แบ่งออกเป็น 7 หมวดหมู่หลักๆ ดังนี้

เวอร์ชัน Python และแพ็กเกจ

Android 13 รองรับ Python เวอร์ชันต่อไปนี้นอกเหนือจากเวอร์ชันและไลบรารี Python ที่รองรับใน Android 12

การเพิ่มไฟล์การกําหนดค่า

เนื่องจากมีการเพิ่มการควบคุมแสงสำหรับทดสอบ test_auto_flash.py ไฟล์ config.yml จึงต้องมีพารามิเตอร์เพิ่มเติม 2 รายการสำหรับตัวควบคุมและแชแนลการติดสว่าง หากต้องการระบุว่าอุปกรณ์ทดสอบ (DUT) เป็นแบบพับได้หรือไม่ ไฟล์ config.yml จะต้องมีพารามิเตอร์เพิ่มเติมที่ 3 ซึ่งต้องเพิ่มลงในส่วนการผสานเซ็นเซอร์และส่วนที่ใช้แท็บเล็ต

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 จะจัดการเซ็นเซอร์ที่ไม่ใช่ 16:9 หรือ 4:3 เพื่อให้รองรับ RAW ได้ดียิ่งขึ้น หากการทดสอบไม่พบรูปแบบที่ตรงกันระหว่างรูปแบบ RAW ของเซ็นเซอร์และรูปแบบการจับภาพ YUV การทดสอบจะเปรียบเทียบการจับภาพ RAW กับการจับภาพ YUV ที่ใหญ่ที่สุด แม้ว่าสัดส่วนภาพจะแตกต่างกันก็ตาม

scene2_a/test_faces.py

test_faces ได้รับการแยกส่วนใหม่เป็น test_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 รายการสำหรับแท็บเล็ต การทดสอบทั้ง 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 test

พารามิเตอร์

  • streamUseCase: ระบุว่ากล้องรองรับ Use Case ของสตรีมหรือไม่
  • android.jpeg.quality: ตั้งค่าคุณภาพ JPEG เป็น 100

วิธีการ

การทดสอบนี้จะจับภาพ 2 รูปโดยใช้รูปแบบ YUV และ JPEG ทั่วไปที่ใหญ่ที่สุดซึ่งมีอัตราส่วนภาพเดียวกับรูปแบบ JPEG ที่ใหญ่ที่สุดที่มีความละเอียดไม่เกิน 1920x1440 การทดสอบตั้งค่า jpeg.quality เป็น 100 และบันทึกคําขอแบบ 2 พื้นผิว จากนั้นจะแปลงทั้ง 2 รูปภาพเป็นอาร์เรย์ RGB และคำนวณผลต่างค่าเฉลี่ยกำลังสอง (RMS) 3 มิติระหว่าง 2 รูปภาพ การตั้งค่าความคลาดเคลื่อนของความแตกต่างคือ 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 test การทดสอบนี้จะตรวจสอบขนาดตัวอย่างที่รองรับเพื่อให้แน่ใจว่า FoV ไม่ได้ถูกครอบตัดอย่างไม่เหมาะสม

วิธีการ

การทดสอบจะจับภาพวิดีโอ 2 รายการ โดยวิดีโอหนึ่งเปิดการป้องกันภาพสั่นไหวในตัวอย่าง และอีกวิดีโอหนึ่งปิดการป้องกันภาพสั่นไหวในตัวอย่าง ระบบจะเลือกเฟรมที่แสดงถึงลักษณะของวิดีโอแต่ละรายการ และวิเคราะห์เพื่อให้แน่ใจว่าการเปลี่ยนแปลง FoV ในวิดีโอ 2 รายการอยู่ภายในข้อกำหนด

กล่าวโดยละเอียดคือ การทดสอบจะตรวจสอบพารามิเตอร์ต่อไปนี้ทั้งที่มีและไม่มีแกนกันภาพตัวอย่าง

  • ความกลมของวงกลมจะคงที่
  • ตรงกลางวงกลมจะยังคงอยู่นิ่ง
  • ขนาดของวงกลมจะเปลี่ยนแปลงไม่เกิน 20% ซึ่งหมายความว่า FoV จะเปลี่ยนแปลงไม่เกิน 20%

scene4/test_video_aspect_ratio_and_crop.py

Android 13 เพิ่มtest_video_aspect_ratio_and_crop test การทดสอบนี้คล้ายกับtest_aspect_ratio_and_cropการทดสอบภาพนิ่ง แต่จะตรวจสอบรูปแบบวิดีโอที่รองรับเพื่อให้แน่ใจว่าเฟรมวิดีโอไม่ยืดหรือครอบตัดอย่างไม่เหมาะสม ระบบจะทดสอบคุณภาพวิดีโอทั้งหมดที่รายงานด้วยตนเอง นอกจากนี้ หากกล้องรองรับวิดีโอ HLG10 ระบบจะทดสอบวิดีโอ 10 บิต

Android 13 เพิ่มเมธอด get_available_video_qualities ลงใน its_session_utils Android 13 ยังมีฟังก์ชันยูทิลิตีใหม่ 2 รายการ ได้แก่ image_fov_utils และ video_processing_utils เพื่อแชร์โค้ดทั่วไปกับการทดสอบที่มีอยู่

วิธีการ

การทดสอบจะจับภาพอ้างอิงในรูปแบบ RAW หรือรูปแบบ JPEG ที่มีความละเอียดสูงสุดหากระบบไม่รองรับ RAW ระบบจะกำหนดขนาดและตำแหน่งของวงกลมจากรูปภาพอ้างอิง จากนั้นระบบจะตัดวิดีโอสั้นที่รองรับคุณภาพวิดีโอทั้งหมด ระบบจะดึงเฟรมอ้างอิงสุดท้ายจากคุณภาพวิดีโอแต่ละระดับ ระบบจะคำนวณมุมมอง (FoV), การกึ่งกลาง (ครอบตัด) และสัดส่วนภาพจากเฟรมอ้างอิงสำหรับคุณภาพวิดีโอแต่ละระดับ

สำหรับการคํานวณ FoV การทดสอบจะเปรียบเทียบขนาดวงกลมของเฟรมวิดีโอกับขนาดวงกลมที่คำนวณจากรูปภาพอ้างอิงและขนาดรูปแบบวิดีโอ สำหรับการทดสอบการครอบตัด การทดสอบจะเปรียบเทียบการกึ่งกลางเฟรมวิดีโอกับการกึ่งกลางรูปภาพอ้างอิง สำหรับการตรวจสอบสัดส่วนภาพ ระบบจะกำหนดสัดส่วนภาพของวงกลมและตรวจสอบว่าเฟรมไม่บิดเบี้ยวโดยใช้ฉากซึ่งเป็นวงกลมสีดําขนาดใหญ่บนพื้นหลังสีขาว

sensor_fusion/test_preview_stabilization.py

Android 13 เพิ่มการทดสอบ test_preview_stabilization ซึ่งจะทดสอบคุณภาพของตัวอย่างที่รองรับทั้งหมดสูงสุด 1920x1080 การทดสอบใช้แท่นทดสอบฟิวชันเซ็นเซอร์ และต้องใช้ตัวควบคุมฟิวชันเซ็นเซอร์เวอร์ชัน 2 ใหม่หรืออัปเกรดเฟิร์มแวร์ของตัวควบคุม Arduino เวอร์ชันเก่า ดูรายละเอียดเพิ่มเติมเกี่ยวกับรีโมตคอนโทรลเลอร์ใหม่ได้ที่การอัปเดตและการเพิ่มฮาร์ดแวร์

วิธีการ

โทรศัพท์จะค่อยๆ เคลื่อนไหวในมุมประมาณ 15 องศาโดยเปิดใช้ระบบกันภาพสั่นในตัวอย่าง จากนั้นระบบจะเปรียบเทียบการหมุนของภาพกับการหมุนของไจโรสโคป

sensor_fusion/test_video_stabilization.py

Android 13 เพิ่มการทดสอบ test_video_stabilization ซึ่งจะทดสอบคุณภาพวิดีโอที่รองรับสูงสุด 1920x1080 ยกเว้นวิดีโอความละเอียดต่ำระดับ QCIF การทดสอบใช้แท่นทดสอบฟิวชันเซ็นเซอร์ และต้องใช้ตัวควบคุมฟิวชันเซ็นเซอร์เวอร์ชัน 2 ใหม่หรืออัปเกรดเฟิร์มแวร์ของตัวควบคุม Arduino เวอร์ชันเก่า ดูรายละเอียดเพิ่มเติมเกี่ยวกับรีโมตคอนโทรลเลอร์ใหม่ได้ที่การอัปเดตและการเพิ่มฮาร์ดแวร์

วิธีการ

แท่นทดสอบจะค่อยๆ ขยับโทรศัพท์เป็นมุมประมาณ 15 องศาโดยเปิดใช้การป้องกันภาพสั่นไหวในตัวอย่าง จากนั้นระบบจะเปรียบเทียบการหมุนของภาพกับการหมุนของไจโรสโคป

การอัปเดตและการเพิ่มฮาร์ดแวร์

Android 13 มีการอัปเกรดตัวควบคุมการรวมเซ็นเซอร์รุ่นที่ 2ที่ใช้ Arduino การอัปเกรดนี้รวมถึงการเปลี่ยนแปลงทั้งฮาร์ดแวร์และเฟิร์มแวร์ การอัปเกรดนี้ช่วยให้ตัวควบคุมสามารถตั้งค่าความเร็วในการหมุนและการควบคุมแสงได้ การอัปเกรดนี้ยังรวมถึงชิลด์ใหม่ (แสดงในรูปที่ 1) ซึ่งมีการหมุน 3 ช่องและการควบคุมแสง 3 ช่อง

Arduino Shield rev2.0

รูปที่ 1 Arduino Shield rev2.0 พร้อมการควบคุมการหมุนและแสง

นอกจากนี้ สำหรับรุ่นที่ 13 จะต้องอัปเดตเฟิร์มแวร์ของตัวควบคุมที่มีอยู่เพื่อเปิดใช้การควบคุมความเร็วในการหมุน เฟิร์มแวร์นี้ดาวน์โหลดได้จาก

ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวควบคุมใหม่ได้ที่ตัวควบคุมการผสานเซ็นเซอร์ของ Android 13

การรองรับการทดสอบแบบพับได้

Android 13 รองรับการทดสอบสำหรับอุปกรณ์แบบพับได้ หากต้องการเปิดใช้ Multi-Camera API สำหรับอุปกรณ์แบบพับได้ คุณต้องตั้งค่าสถานะโทรศัพท์เป็น (Folded หรือ Unfolded) ในระหว่างการทดสอบ หากต้องการเปิดใช้การสำรวจสถานะของโทรศัพท์สำหรับ DUT ทั้งหมด ซึ่งรวมถึงโทรศัพท์แบบไม่พับ ให้เรียกใช้คำสั่ง adb ต่อไปนี้หลังจากที่ DUT เชื่อมต่อกับโฮสต์แล้ว

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