การเปิดตัว Android 13 มีการเปลี่ยนแปลงหลายอย่างกับ Camera ITS นอกเหนือจากการเปลี่ยนแปลงที่เพิ่มขึ้น เช่น Python และเวอร์ชันแพ็กเกจที่อัปเดต และการทดสอบการอัปเดตฮาร์ดแวร์แล้ว Android 13 ยังรองรับการทดสอบวิดีโออีกด้วย
หน้านี้สรุปการเปลี่ยนแปลง ITS ของกล้องสำหรับ Android 13 การเปลี่ยนแปลงแบ่งออกเป็นเจ็ดหมวดหมู่กว้างๆ:
- Python และเวอร์ชันแพ็คเกจ
- กำหนดค่าการเพิ่มไฟล์
- ทดสอบการเปลี่ยนแปลง
- การทดสอบบนแท็บเล็ตใหม่
- การทดสอบวิดีโอ
- การอัปเดตและเพิ่มเติมฮาร์ดแวร์
- รองรับการทดสอบแบบพับได้
Python และเวอร์ชันแพ็คเกจ
Android 13 รองรับเวอร์ชัน Python ต่อไปนี้ นอกเหนือจากเวอร์ชัน Python และไลบรารีที่รองรับใน Android 12:
- หลาม 3.9.2
- โอเพ่นซีวี 4.2.0
- จำนวน 1.20.3
- Matplotlib 3.3.4
- ไซปี 1.6.2
- ไพซีเรียล 3.5
- หมอน 8.3.1
- ไพยอเอ็มแอล 5.4.1
- โมบาย 1.11
- FFmpeg 4.4.1
กำหนดค่าการเพิ่มไฟล์
เนื่องจากการเพิ่มการควบคุมแสงสำหรับการทดสอบ test_auto_flash.py
ไฟล์ config.yml
จึงจำเป็นต้องมีพารามิเตอร์เพิ่มเติมอีก 2 ตัวสำหรับตัวควบคุมและช่องแสง เพื่อระบุว่าอุปกรณ์ที่อยู่ระหว่างการทดสอบ (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
ทดสอบการเปลี่ยนแปลง
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
ได้รับการปรับโครงสร้างใหม่เพื่อให้สามารถทดสอบระบบกล้องสามและสี่ระบบได้ง่ายขึ้น หากกล้องทดสอบอย่างถูกต้องในช่วงอัตราส่วน 10x ในการซูม การทดสอบจะออกอย่างถูกต้อง ซึ่งทำให้การทดสอบการซูมสามารถทำได้ที่ระยะแผนภูมิเดียว
scene_change/test_scene_change.py
การทดสอบ test_scene_change
เลิกใช้งานแล้วใน Android 13
การทดสอบบนแท็บเล็ตใหม่
Android 13 มีการทดสอบบนแท็บเล็ตใหม่ 2 รายการ การทดสอบทั้งสองได้รับคำสั่งสำหรับอุปกรณ์ที่เปิดตัวด้วย Android 13 แต่จะข้ามไปสำหรับอุปกรณ์ที่อัปเกรดเป็น Android 13
ฉาก | ชื่อการทดสอบ | ระดับ API แรก | คำอธิบาย |
---|---|---|---|
2_ก | ทดสอบ_อัตโนมัติ_แฟลช | 33 | ยืนยันว่าฉากที่มืดจะเรียกใช้แฟลชอัตโนมัติ |
2_ข | 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
: กำหนดว่ากล้องรองรับกรณีการใช้งานสตรีมหรือไม่ -
android.jpeg.quality
: ตั้งค่าคุณภาพ JPEG เป็น 100
วิธี
การทดสอบนี้จะจับภาพสองภาพโดยใช้รูปแบบ YUV และ JPEG ทั่วไปที่ใหญ่ที่สุด โดยมีอัตราส่วนภาพเดียวกันกับรูปแบบ JPEG ที่ใหญ่ที่สุดที่มีความละเอียดไม่เกิน 1920x1440 การทดสอบจะตั้งค่า jpeg.quality
เป็น 100 และบันทึกคำขอพื้นผิวคู่ จากนั้นจะแปลงรูปภาพทั้งสองเป็นอาร์เรย์ RGB และคำนวณผลต่างค่าเฉลี่ยกำลังสองรูท 3 มิติ (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 | ยืนยันว่าการรักษาเสถียรภาพของวิดีโอใช้งานได้ |
scene4/test_preview_stabilization_fov.py
Android 13 เพิ่มการทดสอบ test_preview_stabilization_fov
การทดสอบนี้จะตรวจสอบขนาดตัวอย่างที่รองรับเพื่อให้แน่ใจว่า FoV ไม่ได้ครอบตัดอย่างไม่เหมาะสม
วิธี
การทดสอบจะบันทึกวิดีโอ 2 รายการ รายการหนึ่งเปิดระบบป้องกันภาพสั่นไหวของตัวอย่าง และอีกรายการหนึ่งปิดระบบป้องกันภาพสั่นไหวของตัวอย่าง เฟรมตัวแทนจะถูกเลือกจากวิดีโอแต่ละรายการ และวิเคราะห์เพื่อให้แน่ใจว่าการเปลี่ยนแปลง FoV ในวิดีโอทั้งสองนั้นอยู่ภายในข้อกำหนดเฉพาะ
โดยเฉพาะอย่างยิ่ง การทดสอบจะตรวจสอบพารามิเตอร์ต่อไปนี้ทั้งที่มีและไม่มีความเสถียรในการดูตัวอย่าง:
- ความกลมของวงกลมคงที่
- ศูนย์กลางของวงกลมยังคงมีเสถียรภาพ
- ขนาดของวงกลมเปลี่ยนแปลงไม่เกิน 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) ซึ่งมีการหมุนสามช่องและการควบคุมแสงสามช่อง
รูปที่ 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