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

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

หน้านี้สรุปการเปลี่ยนแปลงใน Camera 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 รายการที่ใช้แท็บเล็ต อุปกรณ์ที่เปิดตัวด้วย Android 13 ต้องผ่านการทดสอบทั้ง 2 รายการ แต่ระบบจะข้ามการทดสอบสำหรับอุปกรณ์ที่อัปเกรดเป็น 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: กำหนดว่ากล้องรองรับ Use Case ของสตรีมหรือไม่
  • android.jpeg.quality: ตั้งค่าคุณภาพ JPEG เป็น 100

วิธีการ

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

การทดสอบวิดีโอ

Camera 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 อย่างไม่เหมาะสม

วิธีการ

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

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

  • ความกลมของวงกลมยังคงเท่าเดิม
  • จุดกึ่งกลางของวงกลมยังคงอยู่กับที่
  • ขนาดของวงกลมเปลี่ยนแปลงไม่เกิน 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 ยังมีฟังก์ชันยูทิลิตีใหม่ 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 เวอร์ชัน 2.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