การเปิดตัว 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
test ไฟล์ 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
test
พารามิเตอร์
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%
การทดสอบวิดีโอ
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
test
ซึ่งจะทดสอบคุณภาพการแสดงตัวอย่างที่รองรับทั้งหมดสูงสุด 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 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