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

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

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

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

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

การเพิ่มไฟล์คอนฟิก

เนื่องจากการเพิ่มการควบคุมแสงสำหรับการทดสอบ test_auto_flash.py ไฟล์ config.yml ต้องการพารามิเตอร์เพิ่มเติมสองตัวสำหรับตัวควบคุมและช่องแสง หากต้องการระบุว่าอุปกรณ์ที่ทดสอบ (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

ทดสอบการเปลี่ยนแปลง

ฉาก1_1/test_black_white.py

การทดสอบ test_black_white มีการตรวจสอบความอิ่มตัวของช่องสัญญาณที่สอดคล้องกับ Android เวอร์ชันก่อนหน้า ซึ่งหมายความว่าระดับ API แรกที่จำเป็นสำหรับการตรวจสอบความอิ่มตัวของช่องสัญญาณคือ Android 10

ฉาก1_2/test_yuv_plus_raw.py

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

ฉาก2_a/test_faces.py

test_faces ถูกปรับโครงสร้างใหม่เป็น test_num_faces

ฉาก2_a/test_num_faces.py

การทดสอบ test_num_faces จัดการการครอบตัดเซ็นเซอร์และวางสี่เหลี่ยมใบหน้าอย่างถูกต้องในการจับภาพของกล้อง UW ที่ครอบตัด

ฉาก3/test_lens_position.py

การทดสอบ test_lens_position เลิกใช้แล้วใน Android 13

ฉาก6/test_zoom.py

การทดสอบ test_zoom ได้รับการปรับโครงสร้างใหม่เพื่อให้สามารถทดสอบระบบกล้องสามและสี่ตัวได้ง่ายขึ้น หากกล้องทดสอบอย่างถูกต้องในช่วงอัตราส่วน 10x ในการซูม การทดสอบจะสิ้นสุดลงอย่างถูกต้อง สิ่งนี้ทำให้สามารถทดสอบการซูมที่ระยะแผนภูมิเดียว

scene_change/test_scene_change.py

การทดสอบ test_scene_change เลิกใช้แล้วใน Android 13

ใหม่การทดสอบบนแท็บเล็ต

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

ฉาก ชื่อการทดสอบ API ระดับแรก คำอธิบาย
2_a ทดสอบ_auto_flash 33 ยืนยันว่าฉากมืดจะเรียกใช้แฟลชอัตโนมัติ
2_b test_yuv_jpg_capture_sameness 33 ยืนยันว่าการจับภาพ YUV และ JPEG นั้นเหมือนกันในระดับบิต

ฉาก2_a/test_auto_flash.py

Android 13 เพิ่มการทดสอบ test_auto_flash

พารามิเตอร์

  • flash : ข้ามการทดสอบหากไม่มีแฟลช

วิธี

การทดสอบจะกำหนดค่าคำขอจับภาพสำหรับแฟลชอัตโนมัติและนำเสนอฉากที่ต้องใช้เหตุการณ์แฟลช แสงในอุปกรณ์ทดสอบและแท็บเล็ตถูกปิดเพื่อแสดงฉากมืดสำหรับอัลกอริทึมการเปิดรับแสงอัตโนมัติ การทดสอบกำหนดค่าลำดับของการถ่ายภาพ NUM_FRAMES โดยเปิดใช้แฟลชอัตโนมัติ หากการตั้งค่า AE_STATE ส่งกลับ FLASH_REQUIRED การทดสอบจะยืนยันว่ามีการยิงแฟลชในการจับภาพ

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

ฉาก2_a/test_yuv_jpeg_capture_sameness.py

Android 13 เพิ่มการทดสอบ test_yuv_jpeg_capture_sameness

พารามิเตอร์

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

วิธี

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

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

Camera ITS เพิ่มการสนับสนุนสำหรับการทดสอบวิดีโอใน Android 13

Android 13 เพิ่มการทดสอบต่อไปนี้:

ฉาก ชื่อการทดสอบ API ระดับแรก คำอธิบาย
4 test_preview_stabilization_fov 33 ยืนยันว่าตัวอย่างวิดีโอไม่ได้ครอบตัดมากเกินไปเมื่อเปิดใช้งานการป้องกันภาพสั่นไหว
4 test_video_aspect_ratio_and_crop 33 ยืนยันรูปแบบวิดีโอ FoV อัตราส่วนภาพ และการครอบตัด
เซนเซอร์_ฟิวชัน test_preview_stabilition 33 ยืนยันว่าการรักษาเสถียรภาพการแสดงตัวอย่างใช้งานได้
เซนเซอร์_ฟิวชัน test_video_stabilition 33 ยืนยันว่าระบบป้องกันภาพสั่นไหวทำงาน

ฉาก4/test_preview_stabilization_fov.py

Android 13 เพิ่มการทดสอบ test_preview_stabilization_fov การทดสอบนี้จะตรวจสอบขนาดตัวอย่างที่รองรับเพื่อให้แน่ใจว่า FoV จะไม่ถูกครอบตัดอย่างไม่เหมาะสม

วิธี

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

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

  • ความกลมของวงกลมยังคงที่
  • ศูนย์กลางของวงกลมยังคงมั่นคง
  • ขนาดของวงกลมเปลี่ยนแปลงไม่เกิน 20% ซึ่งหมายความว่า FoV เปลี่ยนแปลงสูงสุด 20%

ฉาก4/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 รวมการอัพเกรดเป็น ตัวควบคุมฟิวชั่นเซ็นเซอร์ที่ใช้ Arduino-revision 2 การอัปเกรดนี้มีทั้งการเปลี่ยนแปลงฮาร์ดแวร์และเฟิร์มแวร์ การอัปเกรดทำให้ตัวควบคุมสามารถตั้งค่าความเร็วในการหมุนและควบคุมสายฟ้าได้ การอัพเกรดยังรวมถึงชิลด์ใหม่ (แสดงในรูปที่ 1) ซึ่งให้ช่องหมุนสามช่องและช่องควบคุมไฟสามช่อง

โล่ Arduino rev2.0

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

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวควบคุมใหม่ โปรดดู ตัวควบคุมฟิวชันเซ็นเซอร์ Android 13

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

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

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