การเปิดตัว Android 13 มีการเปลี่ยนแปลงหลายอย่างใน Camera ITS นอกจากการเปลี่ยนแปลงทีละน้อย เช่น Python และเวอร์ชันแพ็กเกจที่อัปเดตแล้ว รวมถึงการอัปเดตฮาร์ดแวร์ทดสอบ Android 13 ยังรองรับการทดสอบวิดีโอด้วย
หน้านี้สรุปการเปลี่ยนแปลงใน Camera ITS สำหรับ Android 13 โดยการเปลี่ยนแปลงจะแบ่งออกเป็น 7 หมวดหมู่กว้างๆ ดังนี้
- Python และเวอร์ชันแพ็กเกจ
- การเพิ่มไฟล์การกำหนดค่า
- การเปลี่ยนแปลงการทดสอบ
- การทดสอบใหม่ที่ใช้แท็บเล็ต
- การทดสอบวิดีโอ
- การอัปเดตและการเพิ่มฮาร์ดแวร์
- การรองรับการทดสอบอุปกรณ์พับได้
Python และเวอร์ชันแพ็กเกจ
Android 13 รองรับ Python เวอร์ชันต่อไปนี้ นอกเหนือจาก Python เวอร์ชันและไลบรารีที่รองรับใน Android 12
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
การเพิ่มไฟล์การกำหนดค่า
เนื่องจากการเพิ่มการควบคุมแสงสำหรับการทดสอบ 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 ช่อง
รูปที่ 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