เวอร์ชัน Android 13 มีการเปลี่ยนแปลงหลายอย่างใน Camera ITS นอกจากการเปลี่ยนแปลงเพิ่มเติม เช่น การอัปเดต Python และเวอร์ชันแพ็กเกจ รวมถึงการอัปเดตฮาร์ดแวร์สำหรับการทดสอบแล้ว Android 13 ยังรองรับการทดสอบวิดีโอด้วย
หน้านี้จะสรุปการเปลี่ยนแปลงของระบบไอทีในกล้องถ่ายรูปสำหรับ Android 13 การเปลี่ยนแปลงนี้แบ่งออกเป็น 7 หมวดหมู่หลักๆ ดังนี้
- เวอร์ชัน Python และแพ็กเกจ
- การเพิ่มไฟล์การกําหนดค่า
- ทดสอบการเปลี่ยนแปลง
- การทดสอบแบบใหม่บนแท็บเล็ต
- การทดสอบวิดีโอ
- การอัปเดตและการเพิ่มฮาร์ดแวร์
- การรองรับการทดสอบแบบพับได้
เวอร์ชันของ Python และแพ็กเกจ
Android 13 รองรับ Python เวอร์ชันต่อไปนี้นอกเหนือจากเวอร์ชันและไลบรารี Python ที่รองรับใน Android 12
- Python 3.9.2
- OpenCV 4.2.0
- ตัวเลข 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 ที่ใหญ่ที่สุด แม้ว่าสัดส่วนภาพจะแตกต่างกันก็ตาม
โหมด2_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 รายการสำหรับแท็บเล็ต การทดสอบทั้ง 2 รายการนี้เป็นคำสั่งสำหรับอุปกรณ์ที่ใช้ Android 13 แต่ข้ามไปสำหรับอุปกรณ์ที่อัปเกรดเป็น Android 13
ฉาก | ชื่อการทดสอบ | ระดับ API แรก | คำอธิบาย |
---|---|---|---|
2_ก | test_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
จะรวมโค้ดสำหรับควบคุมแสงในการทดสอบไว้ที่ส่วนกลาง
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 เพิ่มtest_yuv_jpeg_capture_sameness
test
พารามิเตอร์
streamUseCase
: กำหนดว่ากล้องรองรับกรณีการใช้งานสตรีมหรือไม่android.jpeg.quality
: ตั้งค่าคุณภาพ JPEG เป็น 100
วิธีการ
การทดสอบนี้จะจับภาพ 2 รูปโดยใช้รูปแบบ YUV และ JPEG ทั่วไปที่ใหญ่ที่สุด โดยมีสัดส่วนภาพเดียวกับรูปแบบ JPEG ที่ใหญ่ที่สุดซึ่งไม่เกินความละเอียด 1920x1440 การทดสอบตั้งค่า jpeg.quality
เป็น 100 และบันทึกคําขอพื้นผิวคู่ จากนั้นจะแปลงทั้ง 2 รูปภาพเป็นอาร์เรย์ RGB และคำนวณผลต่างค่าเฉลี่ยกำลังสอง (RMS) 3 มิติระหว่าง 2 รูปภาพ การตั้งค่าความคลาดเคลื่อนของความแตกต่างคือ 1%
การทดสอบวิดีโอ
ITS ของกล้องเพิ่มการรองรับการทดสอบวิดีโอใน Android 13
Android 13 เพิ่มการทดสอบต่อไปนี้
บรรยากาศ | ชื่อการทดสอบ | ระดับ API แรก | คำอธิบาย |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | ยืนยันว่าตัวอย่างวิดีโอไม่ได้ถูกครอบตัดมากเกินไปเมื่อเปิดใช้ระบบกันภาพสั่น |
4 | อัตราส่วนและการครอบตัดวิดีโอทดสอบ | 33 | ยืนยัน FoV, สัดส่วนภาพ และการครอบตัดของรูปแบบวิดีโอ |
เซ็นเซอร์ฟิวชัน | test_preview_stabilition | 33 | ยืนยันว่าระบบกันภาพตัวอย่างสั่นทำงานได้ |
sensor_fusion | test_video_stabilition | 33 | ยืนยันว่าระบบกันภาพวิดีโอสั่นทำงานได้ |
scene4/test_preview_stabilization_fov.py
Android 13 เพิ่มtest_preview_stabilization_fov
test การทดสอบนี้จะตรวจสอบขนาดตัวอย่างที่รองรับเพื่อให้แน่ใจว่า FoV ไม่ได้ถูกครอบตัดอย่างไม่เหมาะสม
วิธีการ
การทดสอบจะจับภาพวิดีโอ 2 รายการ โดยวิดีโอหนึ่งเปิดการป้องกันภาพสั่นไหวในตัวอย่าง และอีกวิดีโอหนึ่งปิดการป้องกันภาพสั่นไหวในตัวอย่าง ระบบจะเลือกเฟรมที่แสดงถึงลักษณะของวิดีโอแต่ละรายการ และวิเคราะห์เพื่อให้แน่ใจว่าการเปลี่ยนแปลง FoV ในวิดีโอ 2 รายการอยู่ภายในข้อกำหนด
กล่าวอย่างเจาะจงคือ การทดสอบจะตรวจสอบพารามิเตอร์ต่อไปนี้ทั้งที่มีและไม่มีการป้องกันภาพสั่นไหว
- ความกลมของวงกลมจะคงที่
- ตรงกลางวงกลมจะยังคงอยู่อย่างสม่ำเสมอ
- ขนาดของวงกลมจะเปลี่ยนแปลงไม่เกิน 20% ซึ่งหมายความว่า FoV จะเปลี่ยนแปลงไม่เกิน 20%
scene4/test_video_aspect_ratio_and_crop.py
Android 13 เพิ่มtest_video_aspect_ratio_and_crop
test การทดสอบนี้คล้ายกับ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 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