การทดสอบ ITS ของกล้อง

หน้านี้แสดงรายการการทดสอบทั้งหมดใน Camera Image Test Suite (ITS) ซึ่งเป็นส่วนหนึ่งของ Android Compatibility Test Suite (CTS) Verifier การทดสอบ ITS เป็นการทดสอบการทำงาน ซึ่งหมายความว่าไม่ได้วัดคุณภาพของรูปภาพ แต่ฟังก์ชันกล้องทั้งหมดที่โฆษณาทำงานได้ตามที่คาดไว้ เอกสารนี้ช่วยให้นักพัฒนาแอปและผู้ทดสอบเข้าใจว่าการทดสอบแต่ละรายการทำอะไรและวิธีแก้ไขข้อบกพร่องของการทดสอบที่ไม่สำเร็จ

ITS ของกล้องจะควบคุมการทดสอบตามพร็อพเพอร์ตี้ของกล้องที่จำเป็น ระดับ API และ ระดับ Media Performance Class (MPC) สำหรับระดับ API นั้น ITS ใช้ ro.product.first_api_level เพื่อควบคุมการทดสอบที่เพิ่มในระดับ API ที่เฉพาะเจาะจง ซึ่ง ทดสอบประสบการณ์ของผู้ใช้ในเชิงลบสำหรับฟังก์ชันการทำงานในระดับ API ที่ต่ำกว่า ITS ใช้ ro.vendor.api_level เพื่อควบคุมการทดสอบฟีเจอร์ที่เพิ่มใน API ระดับหนึ่งๆ ซึ่งต้องใช้ความสามารถของฮาร์ดแวร์ใหม่ หากมีการกำหนด ro.odm.build.media_performance_class สำหรับอุปกรณ์ ITS จะกำหนดให้มีการทดสอบเฉพาะที่ต้องดำเนินการโดยขึ้นอยู่กับระดับ MPC

การทดสอบจะจัดกลุ่มตามฉากดังนี้

  • scene0: จับข้อมูลเมตา ความกระวนกระวาย ไจโรสโคป การสั่น
  • scene1: การเปิดรับแสง ความไว ค่าการเปิดรับแสง (EV) การชดเชย YUV เทียบกับ JPEG และ RAW
  • scene2: การตรวจจับใบหน้า การทดสอบที่ต้องใช้ฉากสี
  • scene3: การขยายสัญญาณ การเคลื่อนที่ของเลนส์
  • scene4: สัดส่วนภาพ การครอบตัด มุมมอง
  • scene5: การไล่ระดับสีของเลนส์
  • scene6: ซูม
  • scene7: สวิตช์กล้องหลายตัว
  • scene8: การรับแสงอัตโนมัติ (AE) และสมดุลสีขาวอัตโนมัติ (AWB) การวัดแสงในภูมิภาค
  • scene9: การบีบอัด JPEG
  • scene_extensions: ส่วนขยายกล้อง
  • scene_tele: การสลับเลนส์เทเลโฟโต้
  • scene_flash: แฟลชอัตโนมัติ อัตราเฟรมขั้นต่ำ
  • scene_video: เฟรมหลุด
  • sensor_fusion: ออฟเซ็ตเวลาของกล้องและเครื่องวัดการหมุน
  • feature_combination: การรวมฟีเจอร์
  • scene_ip: ความเท่าเทียมของรูปภาพระหว่างแอปกล้องเริ่มต้นกับ แอปกล้อง Jetpack (JCA)

ดูคำอธิบายของแต่ละฉากได้ในส่วนต่างๆ

scene0

การทดสอบไม่จำเป็นต้องมีข้อมูลฉากที่เฉพาะเจาะจง อย่างไรก็ตาม โทรศัพท์ต้องอยู่กับที่เพื่อทดสอบไจโรสโคปและการสั่น

test_jitter

วัดความกระตุกในการประทับเวลาของกล้อง

API ที่ทดสอบ:

ผ่าน: มีเดลต้าอย่างน้อย 30 มิลลิวินาทีระหว่างเฟรม

ในรูปต่อไปนี้ โปรดสังเกตช่วงแกน y ขนาดเล็ก จริงๆ แล้วความผันผวนมีน้อย ในพล็อตนี้

แผนภูมิ test_jitter

รูปที่ 1 พล็อต test_jitter

test_metadata

ทดสอบความถูกต้องของรายการข้อมูลเมตา โดยดูผลการจับภาพและออบเจ็กต์ลักษณะกล้อง การทดสอบนี้ใช้ค่าการรับแสงและค่าเกนเนื่องจากเนื้อหาของรูปภาพไม่สำคัญauto_capture_request

API ที่ทดสอบ:

ผ่าน: แท็กระดับฮาร์ดแวร์ rollingShutterSkew, frameDuration timestampSource, croppingType, blackLevelPattern, pixel_pitch มุมมอง (FoV) และระยะชัดลึกมีอยู่และมีค่าที่ถูกต้อง

test_request_capture_match

การทดสอบที่อุปกรณ์เขียนค่าการรับแสงและค่าเกนที่ถูกต้องโดยการอ่านข้อมูลเมตาของการจับภาพ

API ที่ทดสอบ:

ผ่าน: คำขอและค่าข้อมูลเมตาที่บันทึกไว้ตรงกันในทุกช็อต

test_sensor_events

สำหรับอุปกรณ์ที่โฆษณาการรองรับ Sensor Fusion การทดสอบนี้จะตรวจสอบว่า อุปกรณ์ค้นหาและพิมพ์เหตุการณ์เซ็นเซอร์หรือไม่ เซ็นเซอร์ที่คาดไว้คือ ตัวตรวจวัดความเร่ง เครื่องวัดการหมุน และเครื่องวัดค่าความเข้มข้นของสนามแม่เหล็ก การทดสอบนี้จะทำงานได้ก็ต่อเมื่อหน้าจอ เปิดอยู่ ซึ่งหมายความว่าอุปกรณ์ไม่ได้อยู่ในโหมดสแตนด์บาย

API ที่ทดสอบ:

ผ่าน: ได้รับเหตุการณ์สำหรับเซ็นเซอร์แต่ละตัว

test_solid_color_test_pattern

การทดสอบว่ารูปแบบการทดสอบสีทึบสร้างขึ้นอย่างถูกต้องสำหรับการปิดเสียงกล้อง หากรองรับการปิดเสียงกล้อง จะต้องรองรับรูปแบบการทดสอบสีทึบ หากไม่รองรับการปิดเสียงกล้อง ระบบจะทดสอบรูปแบบการทดสอบสีทึบเฉพาะในกรณีที่มีการโฆษณาความสามารถนี้

หากระบบรองรับรูปภาพดิบ เราจะทดสอบการกำหนดสีด้วย สีที่ทดสอบคือดำ ขาว แดง น้ำเงิน และเขียว สำหรับกล้องที่ไม่รองรับ รูปภาพ RAW จะมีการทดสอบเฉพาะสีดำ

API ที่ทดสอบ:

ผ่าน: รูปแบบการทดสอบสีทึบที่รองรับมีสีที่ถูกต้องและมีความแปรปรวนต่ำ ในรูปภาพ

test_test_pattern

ทดสอบพารามิเตอร์ android.sensor.testPatternMode เพื่อ บันทึกเฟรมสำหรับรูปแบบการทดสอบที่ถูกต้องแต่ละรูปแบบ และตรวจสอบว่าเฟรม สร้างขึ้นอย่างถูกต้องสำหรับสีทึบและแถบสี การทดสอบนี้มีขั้นตอนต่อไปนี้

  1. บันทึกรูปภาพสำหรับรูปแบบการทดสอบที่รองรับทั้งหมด
  2. ทำการตรวจสอบความถูกต้องสำหรับรูปแบบการทดสอบสีเดียวและแถบสี

API ที่ทดสอบ:

ผ่าน: สร้างรูปแบบการทดสอบที่รองรับได้อย่างถูกต้อง

ตัวอย่าง test_test_patterns

รูปที่ 2 ตัวอย่าง test_test_patterns

test_tonemap_curve

ทดสอบการแปลงรูปแบบการทดสอบจาก RAW เป็น YUV ด้วยการแมปโทนเชิงเส้น การทดสอบนี้ ต้องใช้ android.sensor.testPatternMode = 2 (COLOR_BARS) เพื่อสร้าง รูปแบบรูปภาพที่สมบูรณ์แบบสำหรับการแปลงโทนแมป ตรวจสอบว่าไปป์ไลน์มี เอาต์พุตสีที่เหมาะสมพร้อมการแมปโทนเชิงเส้นและอินพุตรูปภาพที่เหมาะสม (ขึ้นอยู่กับ test_test_patterns)

API ที่ทดสอบ:

ผ่าน: YUV และ RAW ดูคล้ายกัน

test_tonemap_curve raw example

รูปที่ 3. ตัวอย่างไฟล์ดิบของ test_tonemap_curve

ตัวอย่าง YUV ของ test_tonemap_curve

รูปที่ 4 ตัวอย่าง YUV ของ test_tonemap_curve

test_unified_timestamp

ทดสอบว่าเหตุการณ์เซ็นเซอร์ตรวจจับภาพและเซ็นเซอร์ตรวจจับความเคลื่อนไหวอยู่ในโดเมนเวลาเดียวกันหรือไม่

API ที่ทดสอบ:

ผ่าน: การประทับเวลาการเคลื่อนไหวอยู่ระหว่างการประทับเวลารูปภาพ 2 รายการ

test_vibration_restriction

ทดสอบว่าการสั่นของอุปกรณ์ทำงานตามที่คาดไว้หรือไม่

API ที่ทดสอบ:

ผ่าน: อุปกรณ์ไม่สั่นเมื่อปิดเสียงโดย API การจำกัดเสียงของกล้อง

scene1_1

scene1 เป็นแผนภูมิสีเทา ชาร์ตสีเทาต้องครอบคลุม 30% ตรงกลางของ FoV กล้อง คาดว่าชาร์ตสีเทาจะท้าทาย 3A (AE, AWB และ AF) ในระดับปานกลางเนื่องจากภูมิภาคตรงกลางไม่มีฟีเจอร์ อย่างไรก็ตาม คำขอจับภาพจะระบุฉากทั้งหมด ซึ่งรวมถึง ฟีเจอร์ที่เพียงพอสำหรับ 3A ในการรวมกัน

คุณทดสอบกล้อง RFoV ได้ในแท่นทดสอบ WFoV หรือ RFoV หากทดสอบกล้อง RFoV ในแท่นทดสอบ WFoV ระบบจะปรับขนาดแผนภูมิเป็น 2/3 เพื่อระบุขอบเขตบางส่วนสำหรับแผนภูมิสีเทาใน FoV เพื่อช่วยให้ 3A ทำงานร่วมกัน ดูคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับแท่นทดสอบกล้องได้ที่ ITS กล้องในกล่อง

scene1 example

รูปที่ 5 แผนภูมิฉาก 1 ขนาดเต็ม (ซ้าย), แผนภูมิที่ปรับขนาด 2/3 (ขวา)

test_ae_precapture_trigger

ทดสอบเครื่องสถานะ AE เมื่อใช้ทริกเกอร์ก่อนการจับภาพ บันทึกคำขอที่กำหนดเอง 5 รายการโดยปิดใช้ AE คำขอสุดท้ายมีทริกเกอร์ก่อนการจับภาพ AE ซึ่งควรละเว้นเนื่องจากปิดใช้ AE

API ที่ทดสอบ:

ผ่าน: AE บรรจบกัน

test_auto_vs_manual

การทดสอบที่บันทึกภาพอัตโนมัติและภาพที่ถ่ายด้วยตนเองจะมีลักษณะเหมือนกัน

API ที่ทดสอบ:

ผ่าน: การเพิ่มค่าสมดุลสีขาวด้วยตนเองและการแปลงที่รายงานในผลลัพธ์การจับภาพแต่ละรายการ ตรงกับสมดุลสีขาวอัตโนมัติ estimate จากอัลกอริทึม 3A ของกล้อง

test_auto_vs_manual auto example

รูปที่ 6. ตัวอย่างการทดสอบอัตโนมัติเทียบกับแคมเปญที่สร้างด้วยตนเอง

test_auto_vs_manual white balance example

รูปที่ 7 ตัวอย่างไวท์บาลานซ์ test_auto_vs_manual

ตัวอย่างการแปลงการปรับสมดุลแสงขาวด้วยตนเอง test_auto_vs_manual

รูปที่ 8. ตัวอย่างการแปลงการปรับสมดุลแสงขาวด้วยตนเอง test_auto_vs_manual

test_black_white

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

API ที่ทดสอบ:

ผ่าน: สร้างรูปภาพขาวดำ ช่องที่อิ่มตัวของรูปภาพสีขาวมีค่า RGB เป็น [255, 255, 255] โดยมีส่วนต่างของข้อผิดพลาดน้อยกว่า 1%

test_black_white, black example

รูปที่ 9 test_black_white, ตัวอย่างสีดำ

ตัวอย่างการแปลงการปรับสมดุลแสงขาวด้วยตนเอง test_auto_vs_manual

รูปที่ 10 test_black_white, ตัวอย่างสีขาว

test_black_white plot means example

รูปที่ 11 test_black_white, plot means example

test_burst_capture

ยืนยันว่าไปป์ไลน์การจับภาพทั้งหมดสามารถรองรับความเร็วของ การจับภาพขนาดเต็มและเวลา CPU ได้

API ที่ทดสอบ:

ผ่าน: ถ่ายภาพต่อเนื่องขนาดเต็ม ตรวจสอบการหลุดของเฟรมและความสว่างของรูปภาพ

test_burst_sameness_manual

ถ่ายภาพต่อเนื่อง 5 ชุด ชุดละ 50 ภาพด้วยการตั้งค่าการจับภาพด้วยตนเอง และตรวจสอบว่าภาพทั้งหมดเหมือนกัน ใช้การทดสอบนี้เพื่อระบุว่ามีเฟรมเป็นครั้งคราว ที่ประมวลผลแตกต่างกันหรือมีอาร์ติแฟกต์หรือไม่

API ที่ทดสอบ:

ผ่าน: รูปภาพเหมือนกันทั้งในด้านภาพและค่า RGB

ไม่ผ่าน: แสดงจุดสูงสุดหรือจุดต่ำสุดของแผนภูมิค่าเฉลี่ย RGB ที่จุดเริ่มต้นของ แต่ละการระเบิด

  • ความคลาดเคลื่อนคือ 3% สำหรับ first_API_level < 30
  • ความคลาดเคลื่อนคือ 2% สำหรับ first_API_level >= 30

test_burst_sameness_manual_mean

รูปที่ 12. ตัวอย่างค่าเฉลี่ยของ test_burst_sameness_manual

test_burst_sameness_manual_plot_means

รูปที่ 13 test_burst_sameness_manual_plot_means

test_crop_region_raw

ทดสอบว่าสตรีม RAW ครอบตัดไม่ได้

API ที่ทดสอบ:

ผ่าน: ระบบจะครอบตัดตรงกลางรูปภาพ YUV แต่จะไม่ครอบตัดรูปภาพ RAW

test_crop_region_raw comp raw crop example

รูปที่ 14 ตัวอย่างการครอบตัดดิบของ test_crop_region_raw comp

test_crop_region_raw comp raw full example

รูปที่ 15. test_crop_region_raw comp raw full example

test_crop_region_raw comp YUV crop example

รูปที่ 16 ตัวอย่างการครอบตัด YUV ของ test_crop_region_raw comp

test_crop_region_raw_yuv_full example

รูปที่ 17 ตัวอย่างแบบเต็มของ test_crop_region_raw YUV

test_crop_regions

ทดสอบว่าการครอบตัดภูมิภาคใช้งานได้ รับรูปภาพเต็มและสร้างแพตช์ของ 5 ภูมิภาคที่แตกต่างกัน (มุมและตรงกลาง) ถ่ายภาพโดยตั้งค่าการครอบตัดสำหรับทั้ง 5 ภูมิภาค เปรียบเทียบค่าของแพตช์และรูปภาพที่ครอบตัด

API ที่ทดสอบ:

ผ่าน: รูปภาพของภูมิภาคที่ครอบตัดตรงกับแพตช์ที่สอดคล้องกับ รูปภาพที่ครอบตัด

test_ev_compensation

ทดสอบว่ามีการชดเชยค่าการรับแสง (EV) หรือไม่ การทดสอบประกอบด้วย ส่วนพื้นฐานและส่วนขั้นสูง

ส่วนพื้นฐานจะทดสอบว่ามีการชดเชย EV โดยใช้ช่วง ที่สร้างด้วย CONTROL_AE_COMPENSATION_STEP ระบบจะบันทึก 8 เฟรมที่ค่าชดเชยแต่ละค่า

ส่วนขั้นสูงจะเพิ่มการเปิดรับแสงใน 8 ขั้นตอน และตรวจสอบความสว่างที่วัดได้เทียบกับความสว่างที่คาดไว้ ระบบจะคำนวณค่าที่คาดไว้จาก ความสว่างของรูปภาพที่ไม่มีการชดเชย EV และ ค่าที่คาดไว้จะอิ่มตัวหากค่าที่คำนวณเกินช่วงค่าของรูปภาพจริง การทดสอบจะล้มเหลวหากค่าที่คาดไว้และค่าที่วัดได้ไม่ตรงกัน หรือหากรูปภาพสว่างเกินไปภายใน 5 ขั้นตอน

API ที่ทดสอบ:

การผ่านส่วนพื้นฐาน: รูปภาพแสดงการเปิดรับแสงที่เพิ่มขึ้นโดยไม่เปิดรับแสงมากเกินไป ภายใน 5 ขั้นตอน

test_ev_compensation_basic

รูปที่ 18 test_ev_compensation_basic

การผ่านส่วนขั้นสูง: จับภาพการเพิ่มขึ้นของลูมาเมื่อการตั้งค่าการชดเชย EV เพิ่มขึ้น เฟรมทั้ง 8 ที่บันทึกไว้สำหรับการตั้งค่าการชดเชย EV แต่ละรายการมีค่าความสว่างที่เสถียร

test_ev_compensation_advanced_plot_means

รูปที่ 19 test_ev_compensation_advanced_plot_means

test_exposure_x_iso

การทดสอบที่แสดงให้เห็นว่าการเปิดรับแสงคงที่เกิดขึ้นเมื่อ ISO และเวลาเปิดรับแสงแตกต่างกัน ถ่ายภาพหลายๆ ช็อตโดยมี ISO และเวลาเปิดรับแสงที่เลือกให้สมดุลกัน ผลลัพธ์ควรมีความสว่างเท่ากัน แต่ภาพควรมีสัญญาณรบกวนมากขึ้นเมื่อเวลาผ่านไป ยืนยันว่าค่าเฉลี่ยของพิกเซลตัวอย่างอยู่ใกล้กัน ตรวจสอบ ว่ารูปภาพไม่ได้ถูกจำกัดไว้ที่ 0 หรือ 1 (ซึ่งจะทำให้รูปภาพดูเหมือนเส้นตรง แบนๆ) นอกจากนี้ คุณยังเรียกใช้การทดสอบกับรูปภาพ RAW ได้โดยตั้งค่าแฟล็ก debug ใน ไฟล์การกำหนดค่า

API ที่ทดสอบ:

ผ่าน: รูปภาพมีความสว่างเท่ากัน แต่มีสัญญาณรบกวนมากขึ้นเมื่อ ISO สูงขึ้น ระนาบ RGB จะแบนเมื่อค่าของ ISO*exposure คงที่ในพื้นที่เกนที่ทดสอบ

กลไกการล้มเหลว: ในรูปต่อไปนี้ เมื่อค่าตัวคูณเกน (แกน x) เพิ่มขึ้น ค่าเฉลี่ยของระนาบ RGB ที่ปรับให้เป็นมาตรฐาน (แกน y) จะเริ่ม เบี่ยงเบนจากค่าตัวคูณเกนต่ำ

test_exposure_plot_means

รูปที่ 20 test_exposure_plot_means

test_exposure_mult=1.00.jpg

รูปที่ 21. test_exposure_mult=1.00

test_exposure_mult=64.00

รูปที่ 22. test_exposure_mult=64.00

test_latching

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

API ที่ทดสอบ:

ผ่าน: รูปภาพ [2, 3, 6, 8, 10, 12, 13] มี ISO หรือการเปิดรับแสงเพิ่มขึ้นและ แสดงค่าเฉลี่ย RGB ที่สูงขึ้นในพล็อตในรูปต่อไปนี้

test_latching plot means example

รูปที่ 23 พล็อต test_latching หมายถึงตัวอย่าง

test_latching i=00

รูปที่ 24 test_latching i=00

test_latching i=01

รูปที่ 25. test_latching i=01

test_latching i=02

รูปที่ 26 test_latching i=02

test_latching i=03

รูปที่ 27 test_latching i=03

test_latching i=04

รูปที่ 28. test_latching i=04

test_latching i=05

รูปที่ 29. test_latching i=05

test_latching i=06

รูปที่ 30. test_latching i=06

test_latching i=07

รูปที่ 31. test_latching i=07

test_latching i=08

รูปที่ 32. test_latching i=08

test_latching i=09

รูปที่ 33. test_latching i=09

test_latching i=10

รูปที่ 34. test_latching i=10

test_latching i=11

รูปที่ 35. test_latching i=11

test_latching i=12

รูปที่ 36 test_latching i=12

test_linearity

การทดสอบที่สามารถกลับการประมวลผลของอุปกรณ์เป็นพิกเซลเชิงเส้น บันทึกลำดับภาพด้วยอุปกรณ์ที่ชี้ไปยังเป้าหมายที่สม่ำเสมอ

API ที่ทดสอบ:

ผ่าน: ค่า R, G, B ต้องเพิ่มขึ้นเป็นเส้นตรงเมื่อความไวเพิ่มขึ้น

test_linearity plot means example

รูปที่ 37 พล็อต test_linearity หมายถึงตัวอย่าง

test_locked_burst

ทดสอบการล็อก 3A และการถ่ายภาพต่อเนื่อง YUV (ใช้การตั้งค่าอัตโนมัติ) การทดสอบนี้ออกแบบมาให้ผ่าน แม้ในอุปกรณ์ที่มีข้อจำกัดซึ่งไม่มี MANUAL_SENSOR หรือ PER_FRAME_CONTROLS การทดสอบจะตรวจสอบความสอดคล้องของรูปภาพ YUV ขณะที่การตรวจสอบอัตราเฟรมอยู่ใน CTS

API ที่ทดสอบ:

ผ่าน: ภาพที่บันทึกดูสอดคล้องกัน

test_locked_burst frame0 example

รูปที่ 38. ตัวอย่างเฟรม 0 ของ test_locked_burst

test_locked_burst frame1 example

รูปที่ 39 ตัวอย่างเฟรม 1 ของ test_locked_burst

test_locked_burst_frame2

รูปที่ 40 ตัวอย่างเฟรม 2 ของ test_locked_burst

scene1_2

scene 1_2 เป็นสำเนาของ scene 1_1 ที่มีฟังก์ชันการทำงานเหมือนกันทุกประการ โดยใช้โครงสร้างฉากย่อยเพื่อลดระยะเวลาที่ยาวนานของ scene 1

test_param_color_correction

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

การแมปโทนเป็นเทคนิคที่ใช้ในการประมวลผลรูปภาพเพื่อแมปชุดสีหนึ่ง ไปยังอีกชุดหนึ่งเพื่อประมาณลักษณะของรูปภาพที่มีช่วงไดนามิกสูงใน สื่อที่มีช่วงไดนามิกจำกัดกว่า

API ที่ทดสอบ:

ผ่าน: ค่า R และ B จะเพิ่มขึ้นตามการแปลง

test_param_color_correction plot means example

รูปที่ 41. พล็อต test_param_color_correction หมายถึงตัวอย่าง

ในรูปต่อไปนี้ แกน x คือคำขอการจับภาพ: 0 = ความเท่ากัน, 1 = การเพิ่มสีแดง และ 2 = การเพิ่มสีน้ำเงิน

test_param_color_correction req=0 unity example

รูปที่ 42. test_param_color_correction req=0 ตัวอย่าง Unity

test_param_color_correctness req=1 red boost example

รูปที่ 43. test_param_color_correctness req=1 ตัวอย่างการเพิ่มสีแดง

test_param_color_correction req=2 blue boost example

รูปที่ 44. test_param_color_correction req=2 ตัวอย่างการเพิ่มสีน้ำเงิน

test_param_flash_mode

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

API ที่ทดสอบ:

ผ่าน: ตรงกลางของรูปภาพไทล์มีการไล่ระดับสีมาก ซึ่งหมายความว่า แฟลชทำงาน

ตัวอย่าง test_param_flash_mode 1

รูปที่ 45 ตัวอย่าง test_param_flash_mode 1

ตัวอย่างไทล์ test_param_flash_mode 1

รูปที่ 46. ตัวอย่างไทล์เดียวของ test_param_flash_mode

ตัวอย่าง test_param_flash_mode_2

รูปที่ 47. ตัวอย่าง test_param_flash_mode 2

ตัวอย่างไทล์ test_param_flash_mode 2

รูปที่ 48 ตัวอย่างการ์ด 2 ใบของ test_param_flash_mode

test_param_noise_reduction

ทดสอบว่าใช้พารามิเตอร์ android.noiseReduction.mode อย่างถูกต้อง เมื่อตั้งค่า ถ่ายภาพด้วยกล้องในที่แสงน้อย ใช้เกนแอนะล็อกสูงเพื่อ ช่วยให้มั่นใจว่ารูปภาพที่ถ่ายมีสัญญาณรบกวน ถ่ายภาพ 3 ภาพสำหรับปิด NR, เร็ว และคุณภาพสูง นอกจากนี้ ยังจับภาพที่มีเกนต่ำและปิด NR ไว้ แล้วใช้ ความแปรปรวนของภาพนี้เป็นพื้นฐาน ยิ่งอัตราส่วนสัญญาณต่อสัญญาณรบกวน (SNR) สูงขึ้น คุณภาพของภาพก็จะยิ่งดีขึ้น

API ที่ทดสอบ:

ผ่าน: SNR จะแตกต่างกันไปตามโหมดการลดเสียงรบกวนต่างๆ และมีลักษณะคล้ายกับกราฟต่อไปนี้

test_param_noise_reduction plot SNRs example

รูปที่ 49 พล็อต test_param_noise_reduction ตัวอย่าง SNR

0: ปิด, 1: เร็ว, 2: คุณภาพสูง, 3: ต่ำสุด , 4: ZSL

test_param_noise_reduction high gain nr=0 example

รูปที่ 50 ตัวอย่าง test_param_noise_reduction high gain nr=0

test_param_noise_reduction high gain nr=1 example

รูปที่ 51 ตัวอย่าง test_param_noise_reduction high gain nr=1

test_param_noise_reduction high gain nr=2 example

รูปที่ 52. ตัวอย่าง test_param_noise_reduction ที่มี nr=2 และอัตราขยายสูง

test_param_noise_reduction high gain nr=3 example

รูปที่ 53. ตัวอย่าง test_param_noise_reduction high gain nr=3

ตัวอย่าง test_param_noise_reduction ที่มีค่าเกนต่ำ

รูปที่ 54 ตัวอย่างการลดสัญญาณรบกวนของ test_param_noise_reduction ที่มีค่าเกนต่ำ

test_param_shading_mode

การทดสอบที่ใช้พารามิเตอร์ android.shading.mode

API ที่ทดสอบ:

ผ่าน: ระบบจะสลับโหมดการแรเงาและแก้ไขแผนที่การแรเงาเลนส์ตามที่คาดไว้

test_param_shading_mode lens shading map, mode 0 loop 0 example

รูปที่ 55. แผนที่การแรเงาเลนส์ test_param_shading_mode, ตัวอย่างลูป 0 โหมด 0

test_param_shading_mode lens shading map, mode 1 loop 0 example

รูปที่ 56. แผนที่การชดเชยแสงเลนส์ test_param_shading_mode, ตัวอย่างลูป 0 โหมด 1

test_param_shading_mode lens shading map, mode 2 loop 0 example

รูปที่ 57. แผนที่การแรเงาเลนส์ test_param_shading_mode ตัวอย่างโหมด 2 ลูป 0

test_param_tonemap_mode

การทดสอบที่ใช้พารามิเตอร์ android.tonemap.mode ใช้เส้นโค้งการแมปโทนที่แตกต่างกันกับแต่ละช่อง R, G, B และตรวจสอบว่ารูปภาพเอาต์พุตได้รับการแก้ไขตามที่คาดไว้ การทดสอบนี้ประกอบด้วยการทดสอบ 2 รายการ ได้แก่ test1 และ test2

API ที่ทดสอบ:

บัตร:

  • test1: รูปภาพทั้ง 2 มีการแมปโทนแบบเส้นตรง แต่ n=1 มีการไล่ระดับสีที่ชันกว่า แชแนล G (สีเขียว) จะสว่างกว่าสำหรับn=1รูปภาพ
  • test2: การแมปโทนเหมือนกัน แต่ความยาวต่างกัน รูปภาพเหมือนกัน

test_param_tonemap_mode ที่มี n=0

รูปที่ 58 test_param_tonemap_mode โดยมี n=0

test_param_tonemap_mode with n=1

รูปที่ 59. test_param_tonemap_mode ที่มี n=1

test_post_raw_sensitivity_boost

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

API ที่ทดสอบ:

ผ่าน: รูปภาพ RAW จะมืดลงเมื่อเพิ่มการบูสต์ ในขณะที่ความสว่างของรูปภาพ YUV จะคงที่

test_post_raw_sensitivity_boost raw s=3583 boost=0100 example

รูปที่ 60. test_post_raw_sensitivity_boost raw s=3583 boost=0100 example

test_post_raw_sensitivity_boost raw s=1792 boost=0200 example

รูปที่ 61. test_post_raw_sensitivity_boost raw s=1792 boost=0200 example

test_post_raw_sensitivity_boost raw s=0896 boost=0400 example

รูปที่ 62. ตัวอย่าง test_post_raw_sensitivity_boost raw s=0896 boost=0400

test_post_raw_sensitivity_boost raw s=0448 boost=0800 example

รูปที่ 63. ตัวอย่าง test_post_raw_sensitivity_boost raw s=0448 boost=0800

test_post_raw_sensitivity_boost raw s=0224 boost=1600 example

รูปที่ 64 ตัวอย่าง test_post_raw_sensitivity_boost raw s=0224 boost=1600

test_post_raw_sensitivity_boost raw s=0112 boost=3199 example

รูปที่ 65. ตัวอย่าง test_post_raw_sensitivity_boost raw s=0112 boost=3199

test_post_raw_sensitivity_boost raw plot means example

รูปที่ 66 test_post_raw_sensitivity_boost raw plot หมายถึงตัวอย่าง

test_post_raw_sensitivity_boost YUV s=0112 boost=3199 example

รูปที่ 67 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=0112 boost=3199

test_post_raw_sensitivity_boost YUV s=0448 boost=0800 example

รูปที่ 68. test_post_raw_sensitivity_boost YUV s=0448 boost=0800 example

test_post_raw_sensitivity_boost YUV s=0896 boost=0400 example

รูปที่ 69. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 example

test_post_raw_sensitivity_boost YUV s=1792 boost=0200 example

รูปที่ 70 test_post_raw_sensitivity_boost YUV s=1792 boost=0200 example

test_post_raw_sensitivity_boost YUV s=3585 boost=0100 example

รูปที่ 71. ตัวอย่าง test_post_raw_sensitivity_boost YUV s=3585 boost=0100

test_post_raw_sensitivity_boost_yuv_plot_means

รูปที่ 72. test_post_raw_sensitivity_boost_yuv_plot_means

test_raw_exposure

จับภาพชุดรูปภาพ RAW โดยเพิ่มเวลาเปิดรับแสงและวัดค่าพิกเซล

API ที่ทดสอบ:

ผ่าน: การเพิ่ม ISO (เกน) จะทำให้พิกเซลมีความไวต่อแสงมากขึ้น จึงทำให้พล็อตเลื่อนไปทางซ้าย

ตัวอย่าง test_raw_exposure ISO=55

รูปที่ 73 ตัวอย่าง ISO=55 ของ test_raw_exposure

10⁰ คือ 1 มิลลิวินาที, 10¹ คือ 10 มิลลิวินาที และ 10⁻¹ คือ 0.1 มิลลิวินาที

test_raw_exposure ISO=132 example

รูปที่ 74 ตัวอย่าง test_raw_exposure ISO=132

ตัวอย่าง test_raw_exposure ISO=209

รูปที่ 75. ตัวอย่าง test_raw_exposure ISO=209

ตัวอย่าง test_raw_exposure ISO=286

รูปที่ 76 ตัวอย่าง ISO ของ test_raw_exposure=286

ตัวอย่าง test_raw_exposure ISO=363

รูปที่ 77. ตัวอย่าง ISO=363 ของ test_raw_exposure

test_raw_exposure_s=440

รูปที่ 78. ตัวอย่าง test_raw_exposure ISO=440

test_reprocess_noise_reduction

การทดสอบที่ใช้กับคำขอประมวลผลซ้ำandroid.noiseReduction.mode จับภาพที่ประมวลผลซ้ำด้วยกล้องที่มีแสงสลัว ใช้เกนแอนะล็อกสูง เพื่อยืนยันว่ารูปภาพที่จับภาพมีสัญญาณรบกวน ถ่ายภาพที่ประมวลผลใหม่ 3 ภาพ สำหรับปิด NR, เร็ว และคุณภาพสูง บันทึกรูปภาพที่ประมวลผลซ้ำโดยมีเกนต่ำ และปิด NR แล้วใช้ความแปรปรวนของรูปภาพนี้เป็นพื้นฐาน

API ที่ทดสอบ:

ผ่าน: FAST >= OFF, HQ >= FAST และ HQ >> OFF

พล็อต SNR ทั่วไปเทียบกับโหมด NR

รูปที่ 79 ตัวอย่างพล็อต SNR ทั่วไปเทียบกับโหมด NR

test_tonemap_sequence

ทดสอบลำดับช็อตด้วยเส้นโค้งการแมปโทนที่แตกต่างกัน ถ่ายภาพด้วยการตั้งค่าด้วยตนเอง 3 ภาพ พร้อมการแมปโทนแบบเชิงเส้น ถ่ายภาพด้วยตนเอง 3 ภาพพร้อมการแมปโทนสีเริ่มต้น คำนวณ เดลต้าระหว่างคู่เฟรมที่ต่อเนื่องกันแต่ละคู่

API ที่ทดสอบ:

ผ่าน: มีเฟรมที่เหมือนกัน 3 เฟรมตามด้วยเฟรมที่เหมือนกันอีก 3 เฟรม แต่เป็นชุดเฟรมที่แตกต่างกัน

test_tonemap_sequence i=0 example

รูปที่ 80. ตัวอย่าง test_tonemap_sequence i=0

test_tonemap_sequence i=1 example

รูปที่ 81. ตัวอย่าง test_tonemap_sequence i=1

test_tonemap_sequence i=2 example

รูปที่ 82 ตัวอย่าง test_tonemap_sequence i=2

test_tonemap_sequence i=3 example

รูปที่ 83. ตัวอย่าง test_tonemap_sequence i=3

test_tonemap_sequence_i=4 example

รูปที่ 84. ตัวอย่าง test_tonemap_sequence i=4

test_tonemap_sequence i=5 example

รูปที่ 85. ตัวอย่าง test_tonemap_sequence i=5

test_yuv_jpeg_all

การทดสอบที่รายงานขนาดและรูปแบบทั้งหมดสำหรับการจับภาพทำงาน ใช้คำขอที่กำหนดเอง พร้อมการทำโทนแมปเชิงเส้นเพื่อให้ YUV และ JPEG มีลักษณะเหมือนกันเมื่อ แปลงโดยโมดูล image_processing_utils ระบบจะไม่บันทึกรูปภาพโดยค่าเริ่มต้น แต่จะบันทึกได้โดยการเปิดใช้debug_mode

API ที่ทดสอบ:

ผ่าน: จุดกึ่งกลางของรูปภาพทั้งหมดมีค่าความแตกต่างของค่าเฉลี่ยความคลาดเคลื่อนกำลังสอง (RMS) สูงสุด (ค่าของสัญญาณ) ในรูปภาพ RGB ที่แปลงแล้ว โดยมีรูปภาพ YUV ที่มีความละเอียดสูงสุด 3%

test_yuv_jpeg_all example

รูปที่ 86 ตัวอย่าง test_yuv_jpeg_all

test_yuv_plus_dng

ทดสอบว่าขนาดและรูปแบบที่รายงานสำหรับการจับภาพทำงานได้

API ที่ทดสอบ:

ผ่าน: การทดสอบเสร็จสมบูรณ์และแสดงรูปภาพที่ขอ

ตัวอย่าง test_yuv_plus_dng

รูปที่ 87. ตัวอย่าง test_yuv_plus_dng

scene1_3

scene 1_3 เป็นสำเนาของ scene 1_1 ที่มีฟังก์ชันการทำงานเหมือนกันทุกประการ โดยใช้โครงสร้างฉากย่อยเพื่อลดระยะเวลาที่ยาวนานของ scene 1

test_capture_result

ทดสอบว่าข้อมูลที่ถูกต้องจะกลับมาในออบเจ็กต์ CaptureResult การทดสอบ ประกอบด้วยการจับภาพอัตโนมัติ การจับภาพด้วยตนเอง และการจับภาพอัตโนมัติครั้งที่ 2

API ที่ทดสอบ:

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

test_capture_result_plot_lsc_auto_ch0

รูปที่ 88. test_capture_result_plot_lsc_auto_ch0

test_dng_noise_model

ตรวจสอบว่าพารามิเตอร์โมเดล RAW ของ DNG ถูกต้อง พล็อตแสดงความแปรปรวนที่วัดได้ของแพตช์ตรงกลางของการ์ดสีเทาในช็อต RAW ที่ถ่ายในช่วงความไวต่างๆ และเปรียบเทียบค่าเหล่านี้กับความแปรปรวนที่คาดไว้ที่ความไวแต่ละระดับโดยโมเดลสัญญาณรบกวน DNG ใน HAL ของกล้อง (อิงตามพารามิเตอร์ O,S ที่ส่งคืนในออบเจ็กต์ผลลัพธ์การจับภาพ) ดูรายละเอียดเพิ่มเติม เกี่ยวกับโมเดลสัญญาณรบกวน DNG ได้โดยดาวน์โหลดเอกสารต่อไปนี้ใน โมเดลสัญญาณรบกวน DNG

API ที่ทดสอบ:

ผ่าน: พารามิเตอร์โมเดล RAW ของ DNG ถูกต้อง ค่า RGB ที่คาดไว้ตรงกับค่า RGB จริงที่วัดได้

test_dng_noise_model_plog

รูปที่ 89. test_dng_noise_model_plog

test_jpeg

การทดสอบที่แปลงรูปภาพ YUV และรูปภาพ JPEG ของอุปกรณ์จะมีลักษณะเหมือนกัน การทดสอบจะใช้ ส่วนกลาง 10% ของรูปภาพและคำนวณค่า RGB แล้วตรวจสอบว่าค่าเหล่านั้น ตรงกัน

API ที่ทดสอบ:

ผ่าน: ความแตกต่างของ RGB โดยเฉลี่ยระหว่างแต่ละรูปภาพน้อยกว่า 3%

test_jpeg_fmt=jpg.jpg

รูปที่ 90. test_jpeg_fmt=jpg.jpg

test_jpeg=fmt=yuv.jpg

รูปที่ 91. test_jpeg=fmt=yuv.jpg

test_raw_burst_sensitivity

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

API ที่ทดสอบ:

ผ่าน: ภาพแต่ละภาพมีสัญญาณรบกวนมากกว่าภาพก่อนหน้า เนื่องจากมีการเพิ่มค่าเกน

ใช้ความแปรปรวนของเซลล์ตารางสถิติส่วนกลาง

test_raw_burst_sensitivity_variance

รูปที่ 92. test_raw_burst_sensitivity_variance

test_raw_sensitivity

บันทึกชุดรูปภาพ RAW ที่มีความไวเพิ่มขึ้นและวัด สัญญาณรบกวน (ความแปรปรวน) ในส่วนกลาง 10% ของรูปภาพ การทดสอบที่แต่ละช็อตมีสัญญาณรบกวนมากกว่าช็อตก่อนหน้า

API ที่ทดสอบ:

ผ่าน: ความแปรปรวนจะเพิ่มขึ้นตามการยิงแต่ละครั้ง

test_raw_sensitivity_variance

รูปที่ 93. test_raw_sensitivity_variance

test_yuv_plus_jpeg

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

API ที่ทดสอบ:

ผ่าน: รูปภาพ YUV และ JPEG มีความคล้ายคลึงกันและมีค่า RMS (ค่าของสัญญาณ) แตกต่างกันน้อยกว่า 1%

test_yuv_plus_jpeg ที่มีรูปแบบ JPEG

รูปที่ 94. test_yuv_plus_jpeg ในรูปแบบ JPEG

test_yuv_plus_jpeg ที่มีรูปแบบ YUV

รูปที่ 95. test_yuv_plus_jpeg ที่มีรูปแบบ YUV

test_yuv_plus_raw

ทดสอบการจับภาพเฟรมเดียวเป็นทั้งเอาต์พุต RAW (RAW 10 บิตและ 12 บิต) และ YUV หากรองรับ ใช้คำขอที่กำหนดเองที่มีการแมปโทนเชิงเส้น ดังนั้นจึงคาดว่ารูปแบบ Raw และ YUV จะเหมือนกัน เปรียบเทียบค่า RGB 10% ตรงกลางของรูปภาพที่แปลงเป็น RGB บันทึกandroid.shading.mode

API ที่ทดสอบ:

ผ่าน: รูปภาพ YUV และรูปภาพดิบมีความคล้ายคลึงกันและมีค่า RMS (ค่าเฉลี่ยกำลังสองของสัญญาณ) แตกต่างกันน้อยกว่า 3.5%

test_yuv_plus_raw_shading=1_raw.jpg

รูปที่ 96. test_yuv_plus_raw_shading=1_raw.jpg

test_yuv_plus_raw_shading=1_yuv.jpg

รูปที่ 97. test_yuv_plus_raw_shading=1_yuv.jpg

test_sensitivity_priority

ทดสอบ CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY ในการตั้งค่า ISO ต่างๆ เพื่อยืนยันความสัมพันธ์ระหว่าง ISO ที่สูงขึ้นกับ ระดับสัญญาณรบกวนที่เพิ่มขึ้น

API ที่ทดสอบ:

ผ่าน: ISO ที่สูงขึ้นจะทำให้ระดับสัญญาณรบกวนเพิ่มขึ้น

เกณฑ์การทดสอบการข้าม

ระบบจะข้ามการทดสอบ test_sensitivity_priority.py หากเป็นไปตามเกณฑ์ต่อไปนี้

test_exposure_time_priority

การทดสอบ CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY ในเวลาเปิดรับแสงต่างๆ เพื่อตรวจสอบความสว่างที่คงที่ในช่วง ที่ ISO สามารถชดเชยได้

API ที่ทดสอบ:

ผ่าน: ความสว่างคงที่ (อยู่ในค่าความคลาดเคลื่อน) ในช่วงเวลาเปิดรับแสงต่างๆ หาก ISO อยู่ในช่วงการชดเชย

เกณฑ์การทดสอบการข้าม

ระบบจะข้ามการทดสอบ test_exposure_time_priority หากเป็นไปตามเกณฑ์ต่อไปนี้

scene2_a

scene2_a มีใบหน้า 3 ใบหน้าพร้อมพื้นหลังสีเทาและเสื้อผ้าสีกลาง โดยเราเลือกใบหน้าที่มีสีผิวหลากหลาย แผนภูมิต้องมี การวางแนวที่ถูกต้องเพื่อให้การตรวจจับใบหน้าทำงานได้อย่างมีประสิทธิภาพสูงสุด

scene2_a example

รูปที่ 98. ตัวอย่าง scene2_a

test_autoframing

ทดสอบลักษณะการทำงานของการจัดเฟรมอัตโนมัติของอุปกรณ์กล้อง ซูมอย่างมากจนมองไม่เห็นใบหน้าใดๆ ในฉาก เปิดใช้โหมดการจัดเฟรมอัตโนมัติโดยตั้งค่า AUTOFRAMING ใน CaptureRequest เป็น True และตรวจสอบว่าระบบตรวจจับใบหน้าทั้งหมดในฉากต้นฉบับได้หรือไม่เมื่อสถานะบรรจบกัน (กล่าวคือ เมื่อตั้งค่า AUTOFRAMING_STATE ใน CaptureResult เป็น AUTOFRAMING_STATE_CONVERGED)

API ที่ทดสอบ:

ผ่าน: ตรวจพบใบหน้าทั้ง 3

test_display_p3

การทดสอบ Display P3 บันทึกในรูปแบบ JPEG โดยใช้ ColorSpaceProfiles API ทดสอบว่า JPEG ที่แคปเจอร์มีโปรไฟล์ ICC ที่เหมาะสมในส่วนหัว และรูปภาพมีสีที่อยู่นอกขอบเขตสี sRGB

API ที่ทดสอบ:

ผ่าน: JPEG มีโปรไฟล์ ICC ของ Display P3 และสีที่อยู่นอกช่วงสี sRGB

test_effects

จับภาพเฟรมสำหรับเอฟเฟกต์กล้องที่รองรับและตรวจสอบว่าระบบสร้างเอฟเฟกต์อย่างถูกต้องหรือไม่ การทดสอบจะตรวจสอบเฉพาะเอฟเฟกต์ OFF และ MONO แต่จะบันทึกรูปภาพสำหรับ เอฟเฟกต์ที่รองรับทั้งหมด

API ที่ทดสอบ:

ส่ง: จับภาพฉากพร้อมเอฟเฟกต์ OFF และภาพขาวดำ พร้อมเอฟเฟกต์ที่ตั้งค่าเป็น MONO

test_effects_MONO

รูปที่ 99. test_effects_MONO

test_exposure_keys_consistent

การทดสอบนี้จะเปรียบเทียบความสว่างเฉลี่ยของการจับภาพที่เปิดใช้ AE กับการจับภาพที่ปิดใช้ AE ซึ่งใช้พารามิเตอร์การรับแสง (ความไว เวลาการรับแสง ระยะเวลาเฟรม การเพิ่มความไวหลังการประมวลผล RAW) ที่ได้รับใน CaptureResult ของการจับภาพที่เปิดใช้ AE

API ที่ทดสอบ:

ผ่าน: ความแตกต่างสัมพัทธ์ของความสว่างระหว่างการจับภาพ 2 ครั้งน้อยกว่า 4 เปอร์เซ็นต์

test_format_combos

ทดสอบการผสมผสานรูปแบบเอาต์พุตต่างๆ

API ที่ทดสอบ:

ผ่าน: บันทึกการผสมผสานทั้งหมดเรียบร้อยแล้ว

test_num_faces

ทดสอบการตรวจจับใบหน้า

API ที่ทดสอบ:

ผ่าน: พบใบหน้า 3 ใบ

test_num_faces โหมดการตรวจจับใบหน้า 1 ตัวอย่าง

รูปที่ 100. ตัวอย่างโหมดการตรวจจับใบหน้า test_num_faces 1

test_reprocess_uv_swap

การทดสอบที่การประมวลผล YUV ซ้ำไม่ได้สลับระนาบ U และ V ระบบจะตรวจจับความแตกต่างนี้โดยการคำนวณผลรวมของความแตกต่างสัมบูรณ์ (SAD) ระหว่างรูปภาพที่ประมวลผลซ้ำกับภาพที่ไม่ได้ประมวลผลซ้ำ หากการสลับระนาบ U และ V ของเอาต์พุตจากผลการจับภาพที่ประมวลผลซ้ำทำให้ SAD เพิ่มขึ้น ระบบจะถือว่าเอาต์พุตมีระนาบ U และ V ที่ถูกต้อง

API ที่ทดสอบ:

ผ่าน: ไม่ได้สลับระนาบ U และ V

test_reprocess_uv_swap

รูปที่ 101. ตัวอย่าง test_reprocess_uv_swap

scene2_b

test_preview_num_faces

ทดสอบการตรวจหาใบหน้าในตัวอย่างโดยเพิ่มความหลากหลายของโทนสีผิวในฉากที่มีใบหน้า

API ที่ทดสอบ:

ผ่าน: ค้นหาใบหน้า 3 ใบหน้าที่มีจุดสังเกตของใบหน้าในกรอบล้อมรอบใบหน้า

test_num_faces_fd_mode_1

รูปที่ 102. ตัวอย่างโหมดตรวจจับใบหน้า test_num_faces 1

test_yuv_jpeg_capture_sameness

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

นอกจากนี้ การทดสอบนี้ยังยืนยันว่าเอาต์พุต YUV สำหรับ Use Case ของสตรีมที่รองรับทั้งหมด มีความคล้ายคลึงกับ YUV ที่มี Use Case STILL_CAPTURE อย่างสมเหตุสมผล

API ที่ทดสอบ:

ผ่าน: รูปภาพ YUV และ JPEG สำหรับกรณีการใช้งาน STILL_CAPTURE มีความแตกต่างของ RMS (ค่ารูทมีนสแควร์ของสัญญาณ) น้อยกว่า 3% รูปภาพ YUV สำหรับกรณีการใช้งานที่รองรับทั้งหมดมีความแตกต่างของ RMS น้อยกว่า 10% จากรูปภาพ YUV ที่มีกรณีการใช้งาน STILL_CAPTURE

scene2_c

test_num_faces

ทดสอบการตรวจจับใบหน้าด้วยโทนสีผิวที่หลากหลายมากขึ้นในฉากที่มีใบหน้า

API ที่ทดสอบ:

ผ่าน: พบใบหน้า 3 ใบ

test_num_faces_fd_mode_1

รูปที่ 103 ตัวอย่างโหมดการตรวจจับใบหน้า test_num_faces

test_jpeg_capture_perf_class

ทดสอบเวลาในการตอบสนองของการจับภาพ JPEG สำหรับคลาสประสิทธิภาพ S ตามที่ระบุไว้ใน ส่วน 2.2.7.2 กล้อง ใน CDD

ผ่าน: ต้องมีเวลาในการตอบสนองการจับภาพ JPEG ของ camera2 น้อยกว่า 1,000 มิลลิวินาทีสำหรับความละเอียด 1080p ตามที่วัดโดย Camera PerformanceTest ของ CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้ง 2 ตัว

test_camera_launch_perf_class

ทดสอบเวลาในการตอบสนองของการเปิดกล้องสำหรับคลาสประสิทธิภาพ S ตามที่ระบุไว้ใน ส่วน 2.2.7.2 กล้อง ใน CDD

ผ่าน: ต้องมีเวลาในการตอบสนองเมื่อเริ่มต้นกล้อง 2 (เปิดกล้องไปยังเฟรมตัวอย่างแรก) น้อยกว่า 600 มิลลิวินาทีตามที่วัดโดย CTS camera PerformanceTest ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้ง 2 ตัว

test_default_camera_hdr

ทดสอบว่าการจับภาพจากกล้องเริ่มต้นเป็น Ultra HDR เพื่อประสิทธิภาพ คลาส 15 ตามที่ระบุไว้ใน ส่วน 2.2.7.2 กล้อง ของ CDD

ผ่าน: การจับภาพแพ็กเกจกล้องเริ่มต้นต้องเป็น Ultra HDR สำหรับอุปกรณ์ประสิทธิภาพ คลาส 15

scene2_d

test_preview_num_faces

ทดสอบการตรวจหาใบหน้าในตัวอย่างโดยเพิ่มความหลากหลายของโทนสีผิวในฉากที่มีใบหน้า

API ที่ทดสอบ:

ผ่าน: ค้นหาใบหน้า 3 ใบหน้าที่มีจุดสังเกตของใบหน้าในกรอบล้อมรอบใบหน้า

scene2_e

test_continuous_picture

ระบบจะจับภาพเฟรมความละเอียด VGA 50 เฟรมโดยใช้การตั้งค่าคำขอการจับภาพครั้งแรก android.control.afMode = 4 (CONTINUOUS_PICTURE).

API ที่ทดสอบ:

ผ่าน: ระบบ 3A จะปรับค่าภายในสิ้นสุดการจับภาพ 50 เฟรม

test_num_faces

ทดสอบการตรวจจับใบหน้าด้วยโทนสีผิวที่หลากหลายมากขึ้นในฉากที่มีใบหน้า

API ที่ทดสอบ:

ผ่าน: พบใบหน้า 3 ใบ

scene2_f

scene2_f มี 3 หน้าโดยมีพื้นหลังสีขาวและเสื้อผ้าสีขาว ใบหน้า มีโทนสีผิวที่หลากหลายและมีคอนทราสต์สูงกับพื้นหลัง

scene2_f example

รูปที่ 104 ตัวอย่าง scene2_f

test_preview_num_faces

ทดสอบการตรวจจับใบหน้าด้วยโทนสีผิวที่หลากหลายมากขึ้นในฉากที่มีใบหน้า

API ที่ทดสอบ:

ผ่าน: ค้นหาใบหน้า 3 ใบหน้าที่มีจุดสังเกตของใบหน้าในกรอบล้อมรอบใบหน้า

test_num_faces_fd_mode_1

รูปที่ 105 ตัวอย่าง test_num_faces_fd_mode_1

scene2_g

scene2_g มีภาพใบหน้าโปรไฟล์ 3 ภาพที่มีพื้นหลังสีขาวและเสื้อผ้าสีขาว ใบหน้ามีโทนสีผิวที่หลากหลายและมีคอนทราสต์สูงกับพื้นหลัง

scene2_g.png

รูปที่ 106. ตัวอย่าง scene2_g

test_preview_num_faces

ทดสอบการตรวจจับใบหน้าด้วยโทนสีผิวที่หลากหลายมากขึ้นในฉากที่มีใบหน้า

API ที่ทดสอบ:

ผ่าน: ค้นหาใบหน้า 3 ใบหน้าที่มีจุดสังเกตของใบหน้าในกรอบล้อมรอบใบหน้า

test_preview_num_faces

รูปที่ 107 ตัวอย่าง test_preview_num_faces

ฉากที่ 3

scene3 ใช้ชาร์ต ISO12233 และการทดสอบส่วนใหญ่ใช้วิธีการแยกชาร์ตเพื่อ ค้นหาชาร์ตในฉาก ด้วยเหตุนี้ รูปภาพที่บันทึกไว้ส่วนใหญ่จึงไม่มี ขอบเหมือนรูปภาพสำหรับฉากที่ 1, 2 หรือ 4 แต่มีเพียงแผนภูมิเท่านั้น แผนภูมิต้องอยู่ในแนวนอนที่ถูกต้องเพื่อให้เครื่องมือค้นหาแผนภูมิทำงานได้อย่างมีประสิทธิภาพสูงสุด

test_edge_enhancement

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

ผ่าน: โหมด HQ (2) คมชัดกว่าโหมด OFF (0) FAST (1) คมชัดกว่าOFF HQ โหมดคมชัดกว่าหรือเท่ากับ FAST โหมด

API ที่ทดสอบ:

พารามิเตอร์ของกล้องที่ได้รับผลกระทบ

  • EDGE_MODE

test_edge_enhancement_edge=0

รูปที่ 108. ตัวอย่าง test_edge_enhancement edge=0

test_edge_enhancement edge=1 example

รูปที่ 109. ตัวอย่าง test_edge_enhancement edge=1 (โหมดเร็ว)

ตัวอย่าง test_edge_enhancement edge=2

รูปที่ 110. ตัวอย่าง test_edge_enhancement edge=2 (โหมดคุณภาพสูง)

test_flip_mirror

ทดสอบว่ารูปภาพวางแนวอย่างถูกต้องตาม 7.5.2 กล้องหน้าใน CDD

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

ผ่าน: รูปภาพไม่ได้พลิก กลับด้าน หรือหมุน

ตัวอย่างแพตช์ฉาก test_flip_mirror

รูปที่ 111 ตัวอย่างแพตช์ฉาก test_flip_mirror

test_imu_drift

ทดสอบว่าหน่วยวัดความเฉื่อย (IMU) มีเอาต์พุตที่เสถียรเป็นเวลา 30 วินาทีหรือไม่ ขณะที่อุปกรณ์อยู่กับที่และบันทึกตัวอย่างความละเอียดสูง

API ที่ทดสอบ:

บัตร:

  • ดริฟต์ของไจโรสโคปน้อยกว่า 0.01 เรเดียนในช่วงเวลาทดสอบ
  • ความแปรปรวนของการอ่านค่าไจโรสโคปน้อยกว่า 1E-7 rad2/s2/Hz ในช่วงเวลาทดสอบ
  • การดริฟต์ของเวกเตอร์การหมุนน้อยกว่า 0.01 เรเดียนในช่วงเวลาทดสอบ
  • (ยังไม่มีข้อกำหนด) การดริฟต์ของไจโรสโคปน้อยกว่า 1 องศา ต่อวินาที

ตัวอย่างการดริฟต์ของไจโรสโคป test_imu_drift

รูปที่ 112. ตัวอย่างการดริฟท์ของไจโรสโคป test_imu_drift

test_imu_drift rotation vector drift example

รูปที่ 113 ตัวอย่างการดริฟต์ของเวกเตอร์การหมุน test_imu_drift

test_landscape_to_portrait

ทดสอบว่าการลบล้างจากแนวนอนเป็นแนวตั้งทำงานได้อย่างถูกต้องสำหรับ เซ็นเซอร์ที่วางในแนวนอนหรือไม่

API ที่ทดสอบ:

ผ่าน: การทดสอบจะค้นหาแผนภูมิที่มีการหมุนตามที่คาดไว้ (0 องศา เมื่อปิดใช้การลบล้างจากแนวนอนเป็นแนวตั้ง และ 90 องศาเมื่อ เปิดใช้)

ตัวอย่าง test_landscape_to_portrait

รูปที่ 114. ตัวอย่าง test_landscape_to_portrait

test_lens_movement_reporting

ทดสอบว่ามีการรายงานแฟล็กการเคลื่อนที่ของเลนส์อย่างถูกต้องหรือไม่ จับภาพต่อเนื่อง 24 ภาพ โดย 12 เฟรมแรกจะอยู่ที่ระยะโฟกัสที่เหมาะสม (ตามที่ 3A พบ) และ 12 เฟรมสุดท้ายจะอยู่ที่ระยะโฟกัสต่ำสุด ที่เฟรมประมาณ 12 เลนส์ จะเคลื่อนที่ทำให้ความคมชัดลดลง ความคมชัดจะคงที่ในที่สุดเมื่อ เลนส์เคลื่อนไปยังตำแหน่งสุดท้าย

ควรตั้งค่าสถานะการเคลื่อนที่ของเลนส์ในทุกเฟรมที่ความคมชัด อยู่ระหว่างความคมชัดใน 2-3 เฟรมแรกที่เลนส์อยู่กับที่ ที่ระยะโฟกัสที่เหมาะสม และ 2-3 เฟรมสุดท้ายที่เลนส์อยู่กับที่ ที่ระยะโฟกัสต่ำสุด เฟรมที่เลนส์เคลื่อนที่นั้นไม่สำคัญ สิ่งที่สำคัญคือต้องมีการยืนยันแฟล็กการเคลื่อนที่เมื่อเลนส์เคลื่อนที่

API ที่ทดสอบ:

ผ่าน: แฟล็กการเคลื่อนไหวของเลนส์เป็น True ในเฟรมที่มีการเปลี่ยนแปลงความคมชัด

กลไกการล้มเหลว:

  • lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1) ใน test_log.DEBUG จะได้รับการยืนยันในเฟรมที่ความคมชัดไม่เปลี่ยนแปลงเท่านั้น
  • เฟรมที่มี lens_moving: False (android.hardware.camera2.CaptureResult#LENS_STATE = 0) ใน test_log.DEBUG มีความคมชัดแตกต่างจาก 2-3 เฟรมแรก ที่ระยะโฟกัสที่เหมาะสมหรือ 2-3 เฟรมสุดท้ายที่ระยะโฟกัสต่ำสุด

test_reprocess_edge_enhancement

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

API ที่ทดสอบ:

ผ่าน: ความคมชัดสำหรับโหมดขอบต่างๆ ถูกต้อง HQ (โหมด 2) จะคมชัดกว่า OFF (โหมด 0) และการปรับปรุงระหว่างโหมดต่างๆ จะคล้ายกัน

test_reprocess_edge_enhancement plot example

รูปที่ 115. ตัวอย่างพล็อต test_reprocess_edge_enhancement

scene4

scene4 ประกอบด้วยวงกลมสีดำบนพื้นหลังสีขาวภายในสี่เหลี่ยมจัตุรัส

การทดสอบใน Scene4 อาจมีความไวต่อการจัดแนว ดังนั้นตั้งแต่ Android 15 เป็นต้นไป คุณจะใช้ check_alignment.py ในไดเรกทอรี เครื่องมือเพื่อเปิดใช้การตรวจสอบการจัดแนว DUT และแผนภูมิได้

ตัวอย่าง scene4

รูปที่ 116 ตัวอย่าง scene4

test_30_60fps_preview_fov_match

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

API ที่ทดสอบ:

ผ่าน: รูปภาพไม่ยืดออก จุดกึ่งกลางของรูปภาพไม่แตกต่างกันเกิน 3% และการเปลี่ยนแปลงสัดส่วนภาพสูงสุดระหว่างวิดีโอ 30 FPS กับ 60 FPS ไม่เกิน 7.5%

กลไกการล้มเหลว:

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

test_aspect_ratio_and_crop

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

API ที่ทดสอบ:

ผ่าน: รูปภาพไม่ยืดออก จุดกึ่งกลางของรูปภาพไม่แตกต่างกันเกิน 3% และรักษา FoV ที่เป็นไปได้สูงสุดไว้

กลไกการล้มเหลว:

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

test_multi_camera_alignment

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

API ที่ทดสอบ:

ผ่าน: วงกลมมีจุดศูนย์กลางและขนาดตามที่คาดไว้ในรูปภาพที่ฉาย เมื่อเทียบกับรูปภาพที่ถ่ายโดยใช้ข้อมูลการปรับเทียบกล้องและความยาวโฟกัส

กลไกการล้มเหลว:

  • LENS_INTRINSIC_CALIBRATION, LENS_POSE_TRANSLATION และ LENS_POSE_ROTATION เป็นค่าการออกแบบ ไม่ใช่ข้อมูลการปรับเทียบจริง
  • ระบบกล้องไม่เหมาะกับการตั้งค่าการทดสอบ เช่น การทดสอบระบบกล้องไวด์และอัลตร้าไวด์ด้วยแท่นทดสอบ RFoV ดูข้อมูลเพิ่มเติมได้ที่คำถามที่พบบ่อยเกี่ยวกับ ITS-in-a-box ของกล้อง Q1

test_preview_aspect_ratio_and_crop

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

API ที่ทดสอบ:

ผ่าน: รูปภาพไม่ยืดออก จุดกึ่งกลางของรูปภาพไม่แตกต่างกันเกิน 3% และรักษา FoV ที่เป็นไปได้สูงสุดไว้

test_preview_stabilization_fov

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

API ที่ทดสอบ:

ผ่าน: สัดส่วนภาพของวงกลมยังคงเกือบคงที่ ตำแหน่งกึ่งกลางของ วงกลมยังคงเสถียร และขนาดของวงกลมเปลี่ยนแปลงไม่เกิน 20%

test_video_aspect_ratio_and_crop

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

API ที่ทดสอบ:

ผ่าน: เฟรมวิดีโอไม่ยืด กึ่งกลางของเฟรมไม่แตกต่างกันเกิน 3% และรักษา FoV ที่เป็นไปได้สูงสุดไว้

scene5

scene5 ต้องใช้ฉากสีเทาที่มีแสงสว่างสม่ำเสมอ ซึ่งทำได้โดยใช้แผ่นกระจายแสง วางไว้เหนือเลนส์กล้อง เราขอแนะนำให้ใช้ตัวกระจายแสงต่อไปนี้ www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168

หากต้องการเตรียมฉาก ให้ติดตัวกระจายแสงไว้หน้ากล้องและเล็งกล้องไปยังแหล่งกำเนิดแสงที่มีความสว่างประมาณ 2, 000 ลักซ์ รูปภาพที่ถ่ายสำหรับ scene5 ต้องมีแสงแบบกระจายโดยไม่มีฟีเจอร์ที่ชัดเจน ตัวอย่างรูปภาพมีดังนี้

ตัวอย่าง scene5

รูปที่ 117 ตัวอย่างการจับภาพ scene5

test_lens_shading_and_color_uniformity

ทดสอบว่ามีการใช้การแก้ไขการแรเงาเลนส์อย่างเหมาะสม และ สีของฉากที่เป็นสีเดียวสม่ำเสมอมีการกระจายอย่างสม่ำเสมอ ทำการทดสอบนี้ใน เฟรม YUV ที่มี 3A อัตโนมัติ การแรเงาเลนส์จะได้รับการประเมินตามช่อง y วัดค่า y เฉลี่ยสำหรับแต่ละบล็อกตัวอย่างที่ระบุ และกำหนด ผ่านหรือไม่ผ่านโดยการเปรียบเทียบกับค่า y ตรงกลาง การทดสอบความสม่ำเสมอของสี จะได้รับการประเมินในพื้นที่สีแดง-เขียวและน้ำเงิน-เขียว

API ที่ทดสอบ:

ผ่าน: ที่รัศมีที่ระบุของรูปภาพ ความแปรปรวนของค่าสีแดง-เขียวและ สีน้ำเงิน-เขียวต้องน้อยกว่า 20% จึงจะผ่านการทดสอบ

scene6

scene6 คือตารางเครื่องหมาย ArUco ที่ระบุได้ไม่ซ้ำกัน การทดสอบใน scene6 อาจมีความไวต่อการจัดแนว ดังนั้นตั้งแต่เวอร์ชัน 15 เป็นต้นไป คุณจะใช้ check_alignment.py ในไดเรกทอรีเครื่องมือเพื่อเปิดใช้การตรวจสอบการจัดแนว DUT และแผนภูมิได้

scene6

รูปที่ 118 ตัวอย่าง scene6

test_in_sensor_zoom

ทดสอบลักษณะการทำงานของฟีเจอร์ซูมในเซ็นเซอร์ของกล้อง ซึ่งจะสร้าง รูปภาพ RAW ที่ครอบตัด

เมื่อตั้งค่ากรณีการใช้งานสตรีมเป็น CROPPED_RAW การทดสอบจะจับภาพ 2 ภาพในช่วงการซูม ได้แก่ ภาพดิบที่มี FoV เต็ม และภาพดิบที่ครอบตัด การทดสอบจะแปลงรูปภาพเป็นอาร์เรย์ RGB ลดขนาดรูปภาพ RAW ที่ครอบตัดขนาดเต็มให้เป็นขนาดที่รายงานโดย SCALER_RAW_CROP_REGION และคำนวณความแตกต่าง RMS 3 มิติ ระหว่างรูปภาพ 2 รูป

API ที่ทดสอบ:

ผ่าน: ความแตกต่างของ RMS แบบ 3 มิติระหว่างรูปภาพ RAW ที่ครอบตัดและลดขนาด กับรูปภาพ RAW แบบ FoV เต็มน้อยกว่าเกณฑ์ที่ตั้งไว้ในการทดสอบ

test_zoom

ทดสอบลักษณะการซูมของกล้องจากเลนส์มุมกว้างพิเศษไปยังเลนส์มุมกว้าง ถ่ายภาพ ในช่วงการซูมและตรวจสอบว่าเครื่องหมาย ArUco มีขนาดใหญ่ขึ้นเมื่อ กล้องซูมเข้าหรือไม่ การทดสอบยังตรวจสอบด้วยว่าตำแหน่งของเครื่องหมายกึ่งกลางมีการเปลี่ยนแปลง อย่างคาดการณ์ได้ในแต่ละการจับภาพหรือไม่ ระยะห่างจากกึ่งกลางของเครื่องหมายกึ่งกลางถึง กึ่งกลางของรูปภาพอาจเปลี่ยนแปลงในอัตราคงที่เมื่อเทียบกับอัตราส่วนการซูม จนกว่าจะมีการสลับกล้องจริง หรืออาจเปลี่ยนแปลงแบบโมโนโทนไปยัง ตำแหน่งของเครื่องหมายเดียวกันหลังจากสลับกล้องจริง ต้องติดตั้งแอปกล้อง Jetpack (JCA) ในอุปกรณ์ก่อนทำการทดสอบ

API ที่ทดสอบ:

ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย ArUco ที่จับได้ถูกต้องตามอัตราส่วนการซูมที่ขอ เพื่อยืนยันว่ากล้องซูมได้อย่างถูกต้อง และระยะห่างของเครื่องหมาย จากกึ่งกลางของรูปภาพเปลี่ยนแปลงตามเกณฑ์ที่ระบุไว้ในการทดสอบ คำอธิบาย

test_zoom เพื่อค้นหาเส้นขอบของเครื่องหมาย ArUco ที่อยู่ใกล้กับกึ่งกลางมากที่สุด

รูปที่ 119. test_zoom เพื่อค้นหาเส้นชั้นความสูงของเครื่องหมาย ArUco ที่ใกล้กับกึ่งกลางมากที่สุด

test_low_latency_zoom

ทดสอบลักษณะการทำงานของการซูมที่มีเวลาในการตอบสนองที่รวดเร็วของกล้อง ถ่ายภาพในช่วงการซูม ด้วย android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) และตรวจสอบ ว่าเครื่องหมายในรูปภาพเอาต์พุตตรงกับอัตราส่วนการซูมในข้อมูลเมตา ของการจับภาพหรือไม่ ระบบจะใช้เซสชันการจับภาพจากกล้องเดียวกันเพื่อรวม 3A และ ถ่ายภาพ

API ที่ทดสอบ:

ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมายที่จับได้ถูกต้องเมื่อเทียบกับอัตราส่วนการซูม ข้อมูลเมตาของผลลัพธ์

test_preview_video_zoom_match

การทดสอบที่ขณะบันทึกและซูม ตัวอย่างวิดีโอและเอาต์พุตวิดีโอจะแสดง และบันทึกเอาต์พุตเดียวกัน คำนวณขนาดของเครื่องหมายที่ใกล้กับ กึ่งกลางมากที่สุดที่อัตราส่วนการซูมต่างๆ และตรวจสอบว่าขนาดของเครื่องหมาย เพิ่มขึ้นเมื่ออัตราส่วนการซูมเพิ่มขึ้นหรือไม่

API ที่ทดสอบ:

ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมายที่จับภาพถูกต้องเมื่อเทียบกับอัตราส่วนการซูมที่ขอในวิดีโอและตัวอย่าง

HD_1280x720_key_frame.png

รูปที่ 120 HD_1280x720_key_frame.png (ก่อนซูม)

preview_1280x720_key_frame.png

รูปที่ 121. preview_1280x720_key_frame.png (ก่อนซูม)

HD_1280x720_key_frame_zoomed.png

รูปที่ 122 HD_1280x720_key_frame.png (หลังซูม)

preview_1280x720_key_frame_zoomed.png

รูปที่ 123. preview_1280x720_key_frame.png (หลังซูม)

test_preview_zoom

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

API ที่ทดสอบ:

ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย ArUco ที่เลือกถูกต้องสำหรับ อัตราส่วนการซูมที่รายงานของผลลัพธ์การจับภาพที่เกี่ยวข้องสำหรับเฟรมตัวอย่างทั้งหมด ระยะทางสัมพัทธ์ของเครื่องหมายที่เลือกจากกึ่งกลางของ รูปภาพจะถูกต้องสำหรับอัตราส่วนการซูมที่รายงานของผลการจับภาพที่เกี่ยวข้อง ของเฟรมตัวอย่างทั้งหมด

รูปภาพ test_preview_zoom แสดงเครื่องหมายที่เลือกซึ่งอยู่ใกล้กึ่งกลางมากที่สุด

รูปที่ 124. รูปภาพ test_preview_zoom ที่แสดงเครื่องหมายที่เลือกซึ่งอยู่ใกล้กึ่งกลางมากที่สุด

test_session_characteristics_zoom

ทดสอบช่วงอัตราส่วนการซูมสำหรับการกำหนดค่าเซสชันที่รองรับทั้งหมดซึ่งแสดงอยู่ใน CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION สำหรับการกำหนดค่าแต่ละรายการ หาก CameraDeviceSetup#isSessionConfigurationSupported แสดงผลเป็น true การทดสอบจะยืนยันว่าช่วงอัตราส่วนการซูมที่แสดงผลใน CameraDeviceSetup#getSessionCharacteristics สามารถเข้าถึงได้

API ที่ทดสอบ:

ผ่าน: อัตราส่วนการซูมทั้งขั้นต่ำและสูงสุดสามารถเข้าถึงได้สำหรับแต่ละSessionConfigurationที่รองรับซึ่งระบุไว้ใน CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION

scene7

scene7 คือกรอบสี่เหลี่ยมผืนผ้าที่แบ่งออกเป็น 4 ส่วนเท่าๆ กัน โดยแต่ละส่วนจะเติม ด้วยสีที่แตกต่างกัน ตรงกลางสี่เหลี่ยมผืนผ้าคือแผนภูมิขอบเอียง สำหรับการตรวจสอบความคมชัด เครื่องหมาย ArUco 4 อันจะจัดแนวให้ตรงกับมุมด้านนอกทั้ง 4 มุม ของสี่เหลี่ยมผืนผ้าเพื่อช่วยในการรับพิกัดที่แม่นยำของกรอบ สี่เหลี่ยมผืนผ้าหลักที่อัตราส่วนการซูมต่างๆ

scene7

รูปที่ 125. scene7

test_multi_camera_switch

การทดสอบนี้จะยืนยันว่าในระหว่างการบันทึกตัวอย่างที่อัตราส่วนการซูมต่างๆ การสลับระหว่างเลนส์อัลตร้าไวด์ (UW) กับเลนส์ไวด์ (W) จะส่งผลให้ค่า RGB คล้ายกัน

การทดสอบจะใช้อัตราส่วนการซูมที่แตกต่างกันภายในช่วงที่กำหนดไว้ล่วงหน้าเพื่อทำการ บันทึกตัวอย่างแบบไดนามิกและระบุจุดที่กล้องจริง เปลี่ยน จุดนี้เป็นจุดที่เลนส์เปลี่ยนจาก UW เป็น W

ระบบจะวิเคราะห์เฟรมที่จับภาพ ณ จุดครอสโอเวอร์และก่อนหน้านั้นเพื่อหา การเปิดรับแสงอัตโนมัติ (AE), สมดุลสีขาวอัตโนมัติ (AWB) และโฟกัสอัตโนมัติ (AF)

การตรวจสอบ AE จะยืนยันว่าการเปลี่ยนแปลงความสว่างอยู่ในช่วงที่คาดไว้สำหรับ ทั้งรูปภาพเลนส์ UW และ W การตรวจสอบ AWB จะยืนยันว่าอัตราส่วนของสีแดง-เขียว และสีน้ำเงิน-เขียวอยู่ภายในค่าเกณฑ์สำหรับทั้งรูปภาพเลนส์ UW และ W การตรวจสอบ AF จะประเมินค่าการประมาณความคมชัดตามขนาดการไล่ระดับเฉลี่ยระหว่างภาพเลนส์ UW และ W

ขณะทำการทดสอบนี้ หากเอฟเฟกต์มัวเร่รบกวนผลลัพธ์ ให้ใช้แท็บเล็ตที่มีความละเอียดสูงกว่าจากรายการรายการแท็บเล็ตที่ผ่านการรับรอง ITS ของกล้อง

API ที่ทดสอบ:

ผ่าน: การทดสอบจะผ่านเมื่อการตรวจสอบ AE และ AWB ผ่าน ผลการตรวจสอบ AF จะใช้เพื่อวัตถุประสงค์ในการบันทึกเท่านั้น เกณฑ์สำหรับการตรวจสอบแต่ละรายการมีดังนี้

  • การตรวจสอบ AE: การเปลี่ยนแปลงความสว่าง (ค่า Y) ระหว่างรูปภาพเลนส์ UW และ W ต้องน้อยกว่า 4% สำหรับแพตช์สีทั้งหมด หากอุปกรณ์รองรับทั้ง ae_regions และ awb_regions หากรองรับเฉพาะ ae_regions ค่าแพตช์สีเทาเท่านั้นที่ต้องเป็นไปตามเกณฑ์
  • การตรวจสอบ AWB: ความแตกต่างระหว่างค่าสีแดง-เขียวและสีน้ำเงิน-เขียวสำหรับ รูปภาพเลนส์ UW และ W ต้องน้อยกว่า 3% สำหรับแพตช์สีเทาและ ต้องน้อยกว่า 10% สำหรับแพตช์สีอื่นๆ หากอุปกรณ์รองรับทั้ง ae_regions และ awb_regions
  • การตรวจสอบ AF: ความคมชัดของรูปภาพที่ถ่ายด้วยเลนส์ W ต้องสูงกว่าความคมชัดที่ถ่ายด้วยเลนส์ UW

test_multi_camera_switch_gray_uw_y

รูปที่ 126 แพตช์สีเทาที่ถ่ายด้วยเลนส์ UW

test_multi_camera_switch_gray_w_y

รูปที่ 127 แพตช์สีเทาที่ถ่ายด้วยเลนส์ W

scene8

scene8 คือกรอบสี่เหลี่ยมผืนผ้าที่แบ่งออกเป็น 4 ส่วนเท่าๆ กัน โดยแต่ละส่วนมี ภาพบุคคลที่ถ่ายด้วยค่าแสงที่แตกต่างกันหรือซ้อนทับด้วยเฉดสีที่แตกต่างกัน (เฉดสีน้ำเงิน ค่าแสงเพิ่มขึ้น ค่าแสงลดลง เฉดสีเหลือง) เครื่องหมาย ArUco 4 อันเรียงตามมุมด้านนอกทั้ง 4 ของสี่เหลี่ยมผืนผ้า เพื่อให้ได้พิกัดที่ถูกต้องของกรอบสี่เหลี่ยมผืนผ้าหลัก

ตัวอย่าง scene8

รูปที่ 128 ตัวอย่าง scene8

test_ae_awb_regions

การทดสอบที่ค่า RGB และค่าความสว่างแตกต่างกันเมื่อดูตัวอย่างการบันทึกในภูมิภาค AE และ AWB ที่ต่างกัน

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

  • การตรวจสอบ AE: ตรวจสอบว่าเฟรมที่วัดแสงในรีเจียนที่มีการลด ค่าแสงมีค่าความสว่างเพิ่มขึ้นมากกว่า 1% เมื่อเทียบกับเฟรม ที่วัดแสงในรีเจียนที่มีการเพิ่มค่าแสง ซึ่งจะยืนยันว่าระบบจะ เพิ่มความสว่างให้รูปภาพเมื่อวัดแสงในพื้นที่มืด
  • การตรวจสอบ AWB: ตรวจสอบว่าอัตราส่วนของสีแดงต่อสีน้ำเงิน (ของค่า RGB เฉลี่ยของรูปภาพ) ในเฟรมที่มีพื้นที่วัดแสงสีน้ำเงินสูงกว่าเฟรมที่มีพื้นที่วัดแสงสีเหลืองมากกว่า 2% ซึ่งจะยืนยันว่า รูปภาพมีค่า RGB ที่สมดุลเมื่อวัดแสงในพื้นที่สีเหลือง (โทนอุ่น) หรือสีน้ำเงิน (โทนเย็น)

API ที่ทดสอบ:

ผ่าน: การตรวจสอบ AE และ AWB ผ่านทั้ง 2 รายการ

test_ae_awb_regions_dark_region

รูปที่ 129 วัดแสงในเฟรมของพื้นที่มืดโดยเพิ่มค่าแสง

test_ae_awb_regions_light_region

รูปที่ 130 การวัดแสงตามเฟรมในบริเวณที่สว่างขึ้นพร้อมการลดการเปิดรับแสง

กลไกการล้มเหลว:

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

    เครื่องหมาย ArUco ไม่ตรงกัน

    รูปที่ 131 เครื่องหมาย ArUco ไม่ตรงกัน

test_color_correction_mode_cct

การทดสอบ COLOR_CORRECTION_MODE ในอุณหภูมิสีและเฉดสีต่างๆ โดยตรวจสอบการเปลี่ยนแปลงในอัตราส่วน RGB เทียบกับฉากที่บันทึก scene8

API ที่ทดสอบ:

ผ่าน: อัตราส่วน RGB แสดงการเพิ่มขึ้นหรือลดลงตามที่คาดการณ์ไว้เมื่อเทียบกับ อุณหภูมิสีและสีที่เลือก

เกณฑ์การทดสอบการข้าม

ระบบจะข้ามการทดสอบ test_color_correction_mode_cct หากเป็นไปตามเกณฑ์ต่อไปนี้

scene9

scene9 ประกอบด้วยวงกลมหลายพันวงที่มีขนาดและสีแบบสุ่มเพื่อสร้าง ฉากที่มีความสามารถในการทำซ้ำต่ำมากเพื่อทดสอบอัลกอริทึมการบีบอัด JPEG

ตัวอย่าง scene9

รูปที่ 132 ตัวอย่าง scene9

test_jpeg_high_entropy

การทดสอบที่การบีบอัด JPEG ของกล้องทำงานบน scene9 ที่มีเอนโทรปีสูงและ ตั้งค่าปัจจัยคุณภาพ JPEG เป็น 100% เพิ่มปัจจัยการซูมเพื่อยืนยันว่า ฉากที่แสดงบนแท็บเล็ตจะเติมเต็ม FoV ของกล้อง

API ที่ทดสอบ:

ผ่าน: บีบอัดไฟล์ JPEG อย่างถูกต้อง เขียน และอ่านจากดิสก์

test_jpeg_quality

ทดสอบคุณภาพการบีบอัด JPEG ของกล้อง คุณภาพ JPEG ผ่าน android.jpeg.quality และยืนยันว่าตารางการหาปริมาณเปลี่ยนแปลง อย่างถูกต้อง

API ที่ทดสอบ:

ผ่าน: เมทริกซ์การหาปริมาณจะลดลงเมื่อคุณภาพเพิ่มขึ้น (เมทริกซ์ แสดงถึงปัจจัยการหาร)

ค่าเฉลี่ยเมทริกซ์ DQT ของความสว่างและสีของกล้องหลัง Pixel 4 เทียบกับคุณภาพ JPEG

รูปที่ 133 ค่าเฉลี่ยเมทริกซ์ DQT ของความสว่างและสีของกล้องหลัง Pixel 4 เทียบกับคุณภาพ JPEG

ตัวอย่างการทดสอบ test_jpeg_quality ที่ไม่สําเร็จ

รูปที่ 134 ตัวอย่างการทดสอบที่ไม่สำเร็จ

scene_video

scene_video เป็นฉากวิดีโอที่มีวงกลมสีต่างกัน 4 วง เคลื่อนที่ไปมาด้วยอัตราเฟรมที่ต่างกันบนพื้นหลังสีขาว

รูปที่ 135. ตัวอย่าง scene_video

test_preview_frame_drop

ทดสอบว่ารักษาอัตราเฟรมตัวอย่างที่ขอไว้กับฉากแบบไดนามิกได้ การทดสอบนี้จะทำงานในกล้องทั้งหมดที่แชร์กับแอปของบุคคลที่สาม

API ที่ทดสอบ:

ผ่าน: อัตราเฟรมของตัวอย่างอยู่ที่อัตราเฟรมสูงสุดของช่วงอัตราเฟรมที่ขอ และความผันผวนโดยเฉลี่ยระหว่างเฟรมที่ต่อเนื่องกันน้อยกว่าค่าความคลาดเคลื่อนสัมพัทธ์ที่ตั้งไว้ในการทดสอบ

scene_extensions

การทดสอบ scene_extensions มีไว้สำหรับส่วนขยายของกล้องและต้องใช้ Camera ITS-in-a-Box เนื่องจากต้องมีการควบคุมสภาพแวดล้อมในการทดสอบอย่างแม่นยำ นอกจากนี้ ต้องควบคุมการรั่วไหลของแสงทั้งหมด ซึ่งอาจต้องคลุมแท่นทดสอบ DUT และแท็บเล็ตด้วยผ้าคลุม รวมถึงป้องกันไม่ให้แสงรั่วจาก หน้าจอด้านหน้าของ DUT

scene_hdr

ฉาก scene_hdr ประกอบด้วยภาพบุคคลทางด้านซ้ายและคิวอาร์โค้ดที่มีคอนทราสต์ต่ำ ทางด้านขวา

scene_hdr

รูปที่ 136. ตัวอย่าง scene_hdr

test_hdr_extension

ทดสอบส่วนขยาย HDR ถ่ายภาพโดยเปิดและปิดใช้ส่วนขยาย แล้วตรวจสอบว่าส่วนขยายช่วยให้ตรวจหาคิวอาร์โค้ดได้ง่ายขึ้นหรือไม่

API ที่ทดสอบ:

ผ่าน: ส่วนขยาย HDR จะลดจำนวนการเปลี่ยนแปลงคอนทราสต์ที่จำเป็นต่อการ ตรวจหาคิวอาร์โค้ดหรือลดการไล่ระดับสีในคิวอาร์โค้ด

scene_low_light

ฉาก scene_low_light ประกอบด้วยตารางสี่เหลี่ยมจัตุรัสที่มีเฉดสีเทาแตกต่างกันบนพื้นหลังสีดำ และตารางสี่เหลี่ยมจัตุรัสมีเส้นขอบสีแดง โดยสี่เหลี่ยมจัตุรัสจะจัดเรียงตามเส้นโค้งฮิลเบิร์ต

scene_low_light example

รูปที่ 137 ตัวอย่าง scene_low_light

test_night_extension

ทดสอบส่วนขยาย กลางคืน ถ่ายภาพโดยเปิดใช้ส่วนขยาย แล้วดำเนินการต่อไปนี้

  • ตรวจจับการมีอยู่ของสี่เหลี่ยม 20 รูป
  • คำนวณความสว่างที่ล้อมรอบด้วยสี่เหลี่ยมจัตุรัสแต่ละรูป
  • คำนวณค่าความสว่างเฉลี่ยของ 6 สี่เหลี่ยมแรกตาม การวางแนวตารางเส้นโค้งฮิลเบิร์ต
  • คำนวณความแตกต่างของค่าความสว่างของสี่เหลี่ยมจัตุรัสที่อยู่ติดกัน (เช่น square2 - square1) จนถึงสี่เหลี่ยมจัตุรัสที่ 5 และ 6 (square6 - square5) และหา ค่าเฉลี่ยของความแตกต่างที่คำนวณได้ 5 ค่า

สำหรับอุปกรณ์ที่ใช้ Android 16 ขึ้นไป คำขอจับภาพ จะมีภูมิภาคที่วัดการใช้งานซึ่งสอดคล้องกับสี่เหลี่ยมผืนผ้าที่ล้อมรอบ ตารางสี่เหลี่ยม การเพิ่มนี้จะเปลี่ยนเกณฑ์การผ่านเกณฑ์

API ที่ทดสอบ:

บัตร:

  • สำหรับอุปกรณ์ที่ใช้ Android 16 ขึ้นไป ค่าความสว่างเฉลี่ยของสี่เหลี่ยมจัตุรัส 6 ช่องแรกต้องมีค่าอย่างน้อย 80 และ ความแตกต่างของค่าความสว่างเฉลี่ยของสี่เหลี่ยมจัตุรัสที่อยู่ติดกันจนถึงสี่เหลี่ยมจัตุรัสที่ 5 และ 6 ต้องมีค่าอย่างน้อย 18.75
  • สำหรับอุปกรณ์ที่ใช้ Android 15 และต่ำกว่า ค่าความสว่างเฉลี่ย ของสี่เหลี่ยมจัตุรัส 6 ช่องแรกต้องมีค่าอย่างน้อย 85 และความแตกต่างเฉลี่ย ของค่าความสว่างของสี่เหลี่ยมจัตุรัสที่อยู่ติดกันจนถึงสี่เหลี่ยมจัตุรัสช่องที่ 5 และ 6 ต้องมีค่าอย่างน้อย 17

แผนภาพความสว่างต่อไปนี้แสดงลักษณะของผลการทดสอบที่ผ่าน

ตัวอย่างการทดสอบฉากกลางคืนที่มีแสงน้อย

รูปที่ 138 ตัวอย่างการผ่านการทดสอบฉากกลางคืนที่มีแสงน้อย

test_low_light_boost_extension

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

  • ตรวจหาการมีอยู่ของกล่อง 20 กล่อง
  • คำนวณความสว่างที่ล้อมรอบด้วยแต่ละกล่อง
  • คำนวณค่าความสว่างเฉลี่ยของ 6 สี่เหลี่ยมแรกตาม การวางแนวตารางเส้นโค้งฮิลเบิร์ต
  • คำนวณความแตกต่างของค่าความสว่างของสี่เหลี่ยมจัตุรัสที่อยู่ติดกัน (เช่น square2 - square1) จนถึงสี่เหลี่ยมจัตุรัสที่ 5 และ 6 (square6 - square5) และหา ค่าเฉลี่ยของความแตกต่างที่คำนวณได้ 5 ค่า

สำหรับอุปกรณ์ที่ใช้ Android 16 ขึ้นไป คำขอจับภาพ จะมีภูมิภาคที่วัดการใช้งานซึ่งสอดคล้องกับสี่เหลี่ยมผืนผ้าที่ล้อมรอบ ตารางสี่เหลี่ยม การเพิ่มนี้จะเปลี่ยนเกณฑ์การผ่านเกณฑ์

API ที่ทดสอบ:

บัตร:

  • สำหรับอุปกรณ์ที่ใช้ Android 16 ขึ้นไป ค่าความสว่างเฉลี่ยของ 6 ช่องแรกต้องมีค่าอย่างน้อย 54 และความแตกต่างของค่าความสว่างเฉลี่ยของช่องที่อยู่ติดกันจนถึงช่องที่ 5 และ 6 ต้องมีค่าอย่างน้อย 17

  • สำหรับอุปกรณ์ที่ใช้ Android 15 และต่ำกว่า ค่าความสว่างเฉลี่ย ของสี่เหลี่ยมจัตุรัส 6 ช่องแรกต้องมีค่าอย่างน้อย 70 และความแตกต่างเฉลี่ย ของค่าความสว่างของสี่เหลี่ยมจัตุรัสที่อยู่ติดกันจนถึงสี่เหลี่ยมจัตุรัสที่ 5 และ 6 ต้องมีค่าอย่างน้อย 18

scene_tele

ข้อกำหนดที่สำคัญสำหรับการทดสอบ scene_tele คือระยะห่างของชาร์ตต้องเป็นระยะห่างโฟกัสขั้นต่ำของเลนส์เทเลโฟโต้เป็นอย่างน้อย เนื่องจากระยะโฟกัสต่ำสุดนี้อาจแตกต่างกันไปในแต่ละอุปกรณ์ คุณจึงต้องกำหนดค่าการตั้งค่า ให้เหมาะกับกล้องเทเลโฟโต้เฉพาะ

การตั้งค่า scene_tele ตามระยะโฟกัสของกล้องไวด์และกล้องเทเล

รูปที่ 139 การตั้งค่า scene_tele ตามระยะโฟกัสของกล้องมุมกว้างและกล้องเทเล

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าฮาร์ดแวร์ทดสอบได้ที่ การตั้งค่าอุปกรณ์เสริมสำหรับ Tele

scene6_tele

ฉาก scene6_tele ประกอบด้วยตารางเครื่องหมาย ArUco บนพื้นหลังสีขาว

หากscene6_teleภาพที่ถ่ายดูสว่างเกินไปในริกแบบแยกส่วน ให้นำเพลตด้านหน้าของริกแบบแยกส่วนออก

ถอดแท่นทดสอบ WFoV ออกจากส่วนขยายและถอดที่ยึดโทรศัพท์ออก

ถอดอุปกรณ์ทดสอบ WFoV ออกจากส่วนขยายและถอดที่ยึดโทรศัพท์

รูปที่ 140 ถอดแท่นทดสอบ WFoV ออกจากส่วนขยายและถอดที่ยึดโทรศัพท์ออก

remove_front_plate

รูปที่ 141 ถอดเพลตด้านหน้าออก

test_zoom_tele

ทดสอบลักษณะการซูมของกล้องจากเลนส์มุมกว้างไปยังเลนส์เทเลโฟโต้ การทดสอบนี้เหมือนกับ test_zoom แต่จะทดสอบลักษณะการทำงานของการซูมกล้อง จากเลนส์มุมกว้างไปยังเลนส์เทเลโฟโต้

API ที่ทดสอบ:

ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย ArUco ที่จับได้ถูกต้องตามอัตราส่วนการซูมที่ขอ เพื่อยืนยันว่ากล้องซูมได้อย่างถูกต้อง และระยะห่างของเครื่องหมาย จากกึ่งกลางของรูปภาพเปลี่ยนแปลงตามเกณฑ์ที่ระบุไว้ใน test_zoom

test_preview_zoom_tele

ทดสอบลักษณะการทำงานของการซูมกล้องสำหรับเฟรมตัวอย่างจากเลนส์มุมกว้างไปยัง เลนส์เทเลโฟโต้ การทดสอบนี้เหมือนกับ test_preview_zoom แต่จะทดสอบการซูมกล้อง สำหรับเฟรมตัวอย่างจากเลนส์มุมกว้างไปยังเลนส์เทเลโฟโต้

API ที่ทดสอบ:

ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย ArUco ที่จับได้ถูกต้องตามอัตราส่วนการซูมที่ขอเพื่อยืนยันว่ากล้องซูมได้อย่างถูกต้อง และระยะห่างของเครื่องหมายจากกึ่งกลางของรูปภาพเปลี่ยนแปลงตามเกณฑ์ที่ระบุไว้ใน test_preview_zoom

scene7_tele

scene7_tele เหมือนกับ scene7 แต่ตั้งค่าสำหรับการทดสอบเลนส์เทเลโฟโต้ โดยเป็นกรอบสี่เหลี่ยมผืนผ้าที่แบ่งออกเป็น 4 ส่วนเท่าๆ กัน ซึ่งแต่ละส่วนจะเติม ด้วยสีที่แตกต่างกัน ตรงกลางสี่เหลี่ยมผืนผ้าคือแผนภูมิขอบเอียง สำหรับการตรวจสอบความคมชัด เครื่องหมาย ArUco 4 อันจะจัดแนวให้ตรงกับมุมด้านนอกทั้ง 4 มุม ของสี่เหลี่ยมผืนผ้าเพื่อช่วยในการรับพิกัดที่แม่นยำของกรอบ สี่เหลี่ยมผืนผ้าหลักที่อัตราส่วนการซูมต่างๆ

test_multi_camera_switch_tele

การทดสอบนี้จะยืนยันว่าในระหว่างการบันทึกตัวอย่างที่อัตราส่วนการซูมต่างๆ การสลับระหว่างเลนส์ไวด์ (W) กับเลนส์เทเลโฟโต้ (tele) จะส่งผลให้ค่า RGB คล้ายกัน

การทดสอบจะใช้อัตราส่วนการซูมที่แตกต่างกันภายในช่วงที่กำหนดไว้ล่วงหน้าเพื่อทำการ บันทึกตัวอย่างแบบไดนามิกและระบุจุดที่กล้องจริง เปลี่ยน จุดนี้เป็นจุดที่เลนส์ W เปลี่ยนเป็นเลนส์เทเล

เฟรมที่จับภาพ ณ จุดครอสโอเวอร์และก่อนหน้านั้นจะได้รับการวิเคราะห์เพื่อหา AE, AWB และ AF

การตรวจสอบ AE จะยืนยันว่าการเปลี่ยนแปลงความสว่างอยู่ในช่วงที่คาดไว้สำหรับ ทั้งรูปภาพเลนส์ W และเลนส์เทเล การตรวจสอบ AWB จะยืนยันว่าอัตราส่วนของสีแดง-เขียว และสีน้ำเงิน-เขียวอยู่ในค่าเกณฑ์สำหรับทั้งรูปภาพเลนส์ W และเลนส์เทเล การตรวจสอบ AF จะประเมินค่าการประมาณความคมชัดตามขนาดการไล่ระดับเฉลี่ย ระหว่างภาพเลนส์ W และเลนส์เทเล

API ที่ทดสอบ:

ผ่าน: การทดสอบจะผ่านได้ก็ต่อเมื่อการตรวจสอบ AE, AWB และ AF ผ่านทั้งหมด เกณฑ์สำหรับการตรวจสอบแต่ละรายการมีดังนี้

  • การตรวจสอบ AE: การเปลี่ยนแปลงความสว่างระหว่างรูปภาพเลนส์ W และเลนส์เทเลโฟโต้ต้องน้อยกว่า 4%
  • การตรวจสอบ AWB: ในพื้นที่สี LAB ค่าเดลต้า C ระหว่างสีแดง-เขียวและ สีน้ำเงิน-เขียวสำหรับเลนส์ไวด์และเทเลโฟโต้ต้องไม่เกิน 10
  • การตรวจสอบ AF: ความคมชัดของภาพจากเลนส์เทเลต้องสูงกว่าเลนส์ W

scene_flash

scene_flash การทดสอบต้องใช้ฉากมืดในกล่อง Sensor Fusion

test_auto_flash

การทดสอบที่ทริกเกอร์แฟลชอัตโนมัติในฉากมืดสำหรับกล้องหลังและ กล้องหน้า สำหรับกล้องหน้า แฟลชอัตโนมัติจะใช้หน้าจอเพื่อ ส่องสว่างฉาก ไม่ใช่หน่วยแฟลชจริง การทดสอบจะยืนยันว่า เปิดใช้แฟลชอัตโนมัติโดยตรวจสอบว่ากึ่งกลางของรูปภาพไทล์ สว่างขึ้นเมื่อเปิดใช้แฟลชอัตโนมัติ หากต้องการทริกเกอร์แฟลชอัตโนมัติ คุณต้องปิดไฟใน แท่นทดสอบ และปิดไฟได้โดยอัตโนมัติด้วย ตัวควบคุม Arduino ฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง ต้องติดตั้งแอปกล้อง Jetpack (JCA) ในอุปกรณ์ก่อนทำการทดสอบ แฟลชอัตโนมัติสำหรับกล้องหลัง จะขึ้นอยู่กับสถานะ AE ในการทริกเกอร์ แต่แฟลชอัตโนมัติสำหรับกล้องหน้า จะไม่ขึ้นอยู่กับ AE และจะทริกเกอร์เสมอ

API ที่ทดสอบ:

ผ่าน: กึ่งกลางของรูปภาพไทล์ที่เปิดใช้แฟลชอัตโนมัติจะสว่างกว่า รูปภาพฉากต้นฉบับสำหรับกล้องทุกรุ่น

test_flash_strength

ทดสอบว่ามีการควบคุมความแรงของแฟลชในโหมด SINGLE อย่างถูกต้อง

ตรวจสอบว่าหากอุปกรณ์รองรับการควบคุมความแรงของแฟลชขณะใช้กล้องในโหมด SINGLE ความแรงของแฟลชจะเปลี่ยนไปตามระดับความแรงที่ขอ ยืนยันว่าการควบคุมความแรงของแฟลชทำงานร่วมกับ AE_MODESต่างๆ ได้ เช่น หากโหมดการรับแสงอัตโนมัติเป็น ON หรือ OFF ระดับความแรงของแฟลช จะมีผลต่อความสว่าง และหากโหมดเป็น ON_AUTO_FLASH ระดับความแรงของแฟลช จะไม่มีผลต่อความสว่าง

หากต้องการทำการทดสอบ ต้องปิดไฟในแท่นทดสอบ คุณสามารถปิดไฟโดยอัตโนมัติด้วยตัวควบคุม Arduino ฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง

API ที่ทดสอบ:

บัตร:

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

test_led_snapshot

การทดสอบว่าภาพรวมของ LED ไม่ทำให้รูปภาพอิ่มตัวหรือมีสี

การทดสอบนี้จะเพิ่มตัวควบคุมแสงลงใน Sensor Fusion Box เพื่อ ควบคุมไฟ เมื่อตั้งค่าไฟเป็น OFF การทดสอบจะถ่ายภาพโดยตั้งค่าโหมด AUTO_FLASH เป็น ON ในระหว่างการจับภาพนี้ การทดสอบจะเรียกใช้ลำดับก่อนการจับภาพโดยมีทริกเกอร์ aePrecapture ตั้งค่าเป็น START และตั้งค่า Capture Intent เป็น Preview เพื่อจับภาพด้วยแฟลช

เนื่องจากการจับภาพมีฮอตสปอตที่โดดเด่นเนื่องจากแฟลช การทดสอบจึงคำนวณค่าเฉลี่ยของรูปภาพแฟลชของการจับภาพทั้งหมดและตรวจสอบว่าค่าอยู่ในช่วง (68, 102) หรือไม่ การทดสอบจะคำนวณอัตราส่วนสีแดงต่อสีเขียวและสีน้ำเงินต่อสีเขียว และตรวจสอบว่าอัตราส่วนอยู่ระหว่าง 0.95 ถึง 1.05 หรือไม่ เพื่อตรวจสอบว่ารูปภาพมีการปรับสมดุลสีขาวอย่างเหมาะสมหรือไม่

API ที่ทดสอบ:

ผ่าน: อัตราส่วนแดง-เขียวและน้ำเงิน-เขียวอยู่ระหว่าง 0.95 ถึง 1.05 ค่าเฉลี่ยของรูปภาพ แฟลชอยู่ในช่วง (68, 102)

test_night_mode_indicator

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

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

  1. การเริ่มต้น: การทดสอบจะเริ่มต้น ItsSession และเรียกข้อมูล พร็อพเพอร์ตี้ของกล้อง และยังสร้างการเชื่อมต่อกับตัวควบคุมแสงสว่างด้วย
  2. เงื่อนไขการข้าม: ระบบจะข้ามการทดสอบหากอุปกรณ์ไม่รองรับ ระดับ API ที่จำเป็นหรือฟีเจอร์ตัวบ่งชี้โหมดกลางคืน
  3. เซสชัน Camera2:
    • การทดสอบจะเริ่มเซสชันการจับภาพตัวอย่างโดยใช้Camera2 session
    • ไฟจะเปิดขึ้นและระบบจะจับภาพเฟรมตัวอย่าง
    • การทดสอบจะยืนยันว่าตัวบ่งชี้โหมดกลางคืนอยู่ในสถานะ OFF
    • ระบบจะปิดไฟและจับภาพเฟรมตัวอย่าง
    • การทดสอบจะยืนยันว่าตัวบ่งชี้โหมดกลางคืนอยู่ในสถานะ ON
  4. เซสชันส่วนขยายกล้อง:
    • การทดสอบจะทำตามขั้นตอนเดียวกับเซสชัน Camera2 แต่ ใช้เซสชัน CameraExtension ที่มีส่วนขยาย EXTENSION_NIGHT
  5. การล้างข้อมูล: การทดสอบจะปิด ItsSession และปล่อยตัวควบคุมแสง

API ที่ทดสอบ:

บัตร:

  • เมื่อไฟเปิดอยู่ ตัวบ่งชี้โหมดกลางคืนควรอยู่ในสถานะ OFF
  • เมื่อปิดไฟแล้ว ตัวบ่งชี้โหมดกลางคืนควรอยู่ในสถานะ ON
  • มีผลกับทั้งเซสชัน Camera2 และ CameraExtension

test_preview_min_frame_rate

การทดสอบที่อัตราเฟรมตัวอย่างลดลงอย่างถูกต้องในฉากมืด หากต้องการให้การทดสอบนี้ทำงานได้อย่างถูกต้อง ผู้ควบคุมหรือผู้ปฏิบัติงานทดสอบต้องปิดไฟในแท่นทดสอบด้วยตนเอง

API ที่ทดสอบ:

ผ่าน: อัตราเฟรมของตัวอย่างอยู่ที่อัตราเฟรมขั้นต่ำของช่วงอัตราเฟรมที่ขอ และความแตกต่างระหว่างเฟรมน้อยกว่าค่าความคลาดเคลื่อนสัมบูรณ์ที่ตั้งไว้ในการทดสอบ

test_torch_strength

ทดสอบว่ามีการควบคุมความแรงของแฟลชในโหมด TORCH อย่างถูกต้อง

ตรวจสอบว่าหากอุปกรณ์รองรับการควบคุมความแรงของแฟลชขณะใช้กล้องในโหมด TORCH ความแรงของไฟฉายจะเปลี่ยนไปตามระดับความแรงที่ขอ ที่แตกต่างกัน ยืนยันว่าการควบคุมความแรงของแฟลชทำงานร่วมกับ AE_MODESต่างๆ ได้ เช่น หากโหมดการรับแสงอัตโนมัติเป็น ON หรือ OFF ระดับความแรงของแฟลช จะมีผลต่อความสว่าง และหากโหมดเป็น ON_AUTO_FLASH ระดับความแรงของแฟลช จะไม่มีผลต่อความสว่าง ยืนยันว่าความแรงของไฟฉายจะคงที่ตลอดระยะเวลาของ การถ่ายภาพต่อเนื่อง ซึ่งจำลองเซสชันการจับภาพวิดีโอ หากต้องการทำการทดสอบ ต้องปิดไฟใน แท่นทดสอบ ไฟจะปิดโดยอัตโนมัติได้ด้วย ตัวควบคุม Arduino ฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง

API ที่ทดสอบ:

บัตร:

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

sensor_fusion

การทดสอบการรวมเซ็นเซอร์ต้องมีการเคลื่อนไหวโทรศัพท์ที่เฉพาะเจาะจงด้านหน้า รูปแบบตารางหมากรุกและเครื่องหมาย ArUco โปรดตรวจสอบว่าชาร์ตทดสอบติดตั้งในแนวราบเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ชาร์ตที่ไม่คงที่ส่งผลต่อการคำนวณการหมุนเวียนสำหรับการทดสอบหลายรายการ แผนภูมิต้องเต็มด้านหลังของกล่องฟิวชันเซ็นเซอร์โดยการพิมพ์ ที่ 17x17 นิ้ว (43x43 ซม.) sensor_fusion การทดสอบสามารถทำให้เป็นอัตโนมัติ ได้ด้วยกล่องรวมเซ็นเซอร์

แผนภูมิการรวมเซ็นเซอร์

รูปที่ 142 แผนภูมิการรวมเซ็นเซอร์

แผนภูมิการรวมเซ็นเซอร์ใน Rig

รูปที่ 143 แผนภูมิการรวมเซ็นเซอร์ที่เติมด้านหลังของกล่องการรวมเซ็นเซอร์

test_lens_intrinsic_calibration

การทดสอบที่ศูนย์กลางออปติคัลของการเปลี่ยนแปลงโดยธรรมชาติของเลนส์เมื่อเลนส์เคลื่อนที่ เนื่องจากระบบกันภาพสั่นแบบออปติคัล (OIS) หากระบบรองรับตัวอย่างพารามิเตอร์ภายในของเลนส์ ระบบจะทดสอบว่าศูนย์กลางออปติคัลของตัวอย่างพารามิเตอร์ภายในของเลนส์มีการเปลี่ยนแปลงเมื่อเลนส์เคลื่อนที่เนื่องจาก OIS หรือไม่

API ที่ทดสอบ:

ผ่าน: ศูนย์กลางออปติคอลของการเปลี่ยนแปลงโดยธรรมชาติของเลนส์เปลี่ยนแปลง 1 พิกเซลขึ้นไป หากรองรับตัวอย่างพารามิเตอร์ภายในของเลนส์ ศูนย์กลางออปติคัลของตัวอย่างพารามิเตอร์ภายในของเลนส์จะเปลี่ยนไปอย่างน้อย 1 พิกเซล

รูปต่อไปนี้เป็นตัวอย่างtest_lens_intrinsic_calibrationกราฟ ที่แสดงการเปลี่ยนแปลงของจุดหลักในหน่วยพิกเซลสำหรับแต่ละเฟรม

test_lens_intrinsic_calibration_example.png

รูปที่ 144 ตัวอย่างของพล็อต test_lens_intrinsic_calibration ที่แสดงการเปลี่ยนแปลงของจุดหลัก เป็นพิกเซลสําหรับแต่ละเฟรม

test_multi_camera_frame_sync

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

API ที่ทดสอบ:

ผ่าน: มุมระหว่างรูปภาพจากกล้องแต่ละตัวไม่เปลี่ยนแปลงอย่างเห็นได้ชัด เมื่อหมุนโทรศัพท์

test_preview_distortion

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

ในภาพตัวอย่าง จุดที่เหมาะสมจะแสดงเป็นสีเขียว ส่วนจุดจริงจะแสดงเป็นสีแดง ข้อผิดพลาดในการบิดเบือนจะคำนวณตามระยะพิกเซล RMS ระหว่างจุดจริงกับจุดที่เหมาะสม ไฮไลต์สีเขียวและสีแดงใน รูปภาพใช้เพื่อตรวจหาพื้นที่ที่มีข้อผิดพลาดจากการบิดเบือนด้วยสายตา

test_preview_distortion_example.jpg

รูปที่ 145 รูปภาพกระดานหมากรุกที่มีจุดที่เหมาะสมเป็นสีเขียวและจุดจริงเป็นสีแดง

API ที่ทดสอบ:

ผ่าน: ข้อผิดพลาดความผิดเพี้ยนที่ปรับให้เป็นมาตรฐานของเฟรมตัวอย่างแต่ละเฟรมน้อยกว่า เกณฑ์ที่ตั้งไว้ในการทดสอบ

test_preview_stabilization

การทดสอบที่ทำให้วิดีโอตัวอย่างคงที่หมุนน้อยกว่าไจโรสโคป

API ที่ทดสอบ:

ผ่าน: การหมุนมุมสูงสุดในเฟรมน้อยกว่า 70% ของการหมุน ไจโรสโคป

วิดีโอตัวอย่างที่มีและไม่มีการกันภาพสั่นมีดังนี้

รูปที่ 146 วิดีโอตัวอย่างที่มีการป้องกันภาพสั่นไหว

รูปที่ 147 วิดีโอตัวอย่างที่ไม่มีการป้องกันภาพสั่นไหว

test_sensor_fusion

ทดสอบความแตกต่างของไทม์สแตมป์ระหว่างกล้องกับไจโรสโคปสำหรับแอปพลิเคชัน AR และ VR หมุนโทรศัพท์ 90 องศา 10 ครั้งหน้า รูปแบบตารางหมากรุก การเคลื่อนไหวจะใช้เวลาประมาณ 2 วินาทีไปกลับ ระบบจะข้ามการทดสอบนี้หากไม่มีไจโรสโคปหรือหากไม่ได้เปิดใช้พารามิเตอร์แหล่งที่มาของการประทับเวลา REALTIME

test_sensor_fusion การทดสอบจะสร้างพล็อตจำนวนหนึ่ง พล็อตที่สำคัญที่สุด 2 รายการสำหรับการแก้ไขข้อบกพร่องมีดังนี้

  • test_sensor_fusion_gyro_events: แสดงเหตุการณ์เครื่องวัดการหมุนของโทรศัพท์ ระหว่างการทดสอบ การเคลื่อนที่ในทิศทาง x และ y แสดงว่าโทรศัพท์ไม่ได้ ติดตั้งบนเพลตยึดอย่างแน่นหนา ซึ่งจะลดโอกาสที่การทดสอบจะ ผ่าน จำนวนรอบในพล็อตขึ้นอยู่กับความเร็วในการเขียน สำหรับการบันทึกเฟรม

    ตัวอย่างเหตุการณ์ไจโรสโคป test_sensor_fusion

    รูปที่ 148 ตัวอย่างเหตุการณ์ไจโรสโคป test_sensor_fusion

  • test_sensor_fusion_plot_rotations: แสดงการจัดแนวของเครื่องวัดการหมุน และเหตุการณ์จากกล้อง พล็อตนี้ต้องแสดงการเคลื่อนไหวที่ตรงกันระหว่างกล้องกับ ไจโรสโคปที่ +/-1 มิลลิวินาที

    ตัวอย่างการหมุนแปลงพล็อต test_sensor_fusion

    รูปที่ 149. ตัวอย่างการหมุนแปลงพล็อต test_sensor_fusion

API ที่ทดสอบ:

ผ่าน: ออฟเซ็ตของกล้องและเครื่องวัดการหมุนมีคําประทับเวลาที่น้อยกว่า 1 มิลลิวินาทีตาม 7.3.9 High Fidelity Sensors ใน CDD

กลไกการล้มเหลว:

  • ข้อผิดพลาดเกี่ยวกับออฟเซ็ต: ออฟเซ็ตของไจโรสโคปกล้องไม่ได้รับการปรับเทียบอย่างถูกต้อง ภายใน +/-1 มิลลิวินาที
  • เฟรมหลุด: ไปป์ไลน์ไม่เร็วพอที่จะจับภาพ 200 เฟรม ติดต่อกัน
  • ข้อผิดพลาดของซ็อกเก็ต: adb เชื่อมต่อกับ DUT ได้ไม่นานพอที่จะ เรียกใช้การทดสอบ
  • ชาร์ตไม่ได้ติดเรียบ พล็อต test_sensor_fusion_plot_rotations มีเฟรมที่ไจโรสโคปและการหมุนของกล้องแตกต่างกันอย่างมากเนื่องจาก กล้องหมุนผ่านส่วนของแผนภูมิที่ไม่แบน
  • กล้องไม่ได้ติดตั้งในแนวราบ พล็อต test_sensor_fusion_gyro_events แสดงการเคลื่อนไหวในระนาบ X และ Y ความล้มเหลวนี้มักเกิดขึ้นในกล้องหน้ามากกว่าเนื่องจากกล้องหลังมัก มีส่วนที่นูนขึ้นจากส่วนอื่นๆ ของตัวโทรศัพท์ ทำให้เกิดการเอียงเมื่อ ติดด้านหลังของโทรศัพท์กับเพลตยึด

test_video_stabilization

การทดสอบที่ทำให้วิดีโอที่ปรับไม่ให้สั่นหมุนน้อยกว่าไจโรสโคป

API ที่ทดสอบ:

ผ่าน: การหมุนมุมสูงสุดในเฟรมต่ำกว่า 60% ของการหมุน ไจโรสโคป

วิดีโอตัวอย่างที่มีและไม่มีการป้องกันภาพสั่นไหวมีดังนี้

รูปที่ 150 วิดีโอตัวอย่างที่มีการป้องกันภาพสั่นไหว

รูปที่ 151 วิดีโอตัวอย่างที่ไม่มีการป้องกันภาพสั่นไหว

test_video_stabilization_jca

การทดสอบที่ทำให้วิดีโอที่บันทึกโดยใช้ JCA มีเสถียรภาพจะหมุนน้อยกว่าเครื่องวัดการหมุน คุณต้องติดตั้ง JCA ในอุปกรณ์ก่อนทำการทดสอบ

API ที่ทดสอบ:

ผ่าน: การหมุนมุมสูงสุดในเฟรมที่ดึงมาจากวิดีโอที่บันทึกโดยใช้ JCA น้อยกว่า 70% ของการหมุนไจโรสโคป

feature_combination

feature_combination การทดสอบจะยืนยันว่าฟีเจอร์ทำงานได้อย่างถูกต้องเมื่อ เปิดใช้ฟีเจอร์กล้องหลายรายการพร้อมกัน การทดสอบเหล่านี้ใช้ภาพตารางหมากรุกเดียวกันกับที่ใช้ในฉากฟิวชันเซ็นเซอร์

test_feature_combination

ทดสอบการผสมผสานทั้งหมดของการผสมผสานสตรีมที่แตกต่างกัน โหมด การป้องกันภาพสั่นของวิดีโอ ช่วง FPS เป้าหมาย วิดีโอ HDR 10 บิต และ Ultra HDR ที่อุปกรณ์ กล้องรองรับ

สำหรับ Android 16 ขึ้นไป การทดสอบจะเรียกใช้ฟีเจอร์ที่รองรับทั้งหมด และบันทึกผลลัพธ์ลงในไฟล์ Proto การยืนยันความล้มเหลว จะเรียกใช้เฉพาะชุดค่าผสมของฟีเจอร์ที่ isSessionConfigurationSupported แสดงผล True

API ที่ทดสอบ:

ผ่าน: สำหรับชุดค่าผสมฟีเจอร์ที่รองรับแต่ละชุด

  • ระบบจะปรับสตรีมตัวอย่างให้เสถียรหากเปิดการปรับตัวอย่างให้เสถียร
  • อัตราเฟรมของตัวอย่างจะอยู่ภายในAE_TARGET_FPS_RANGEที่กำหนดค่าไว้
  • พื้นที่สีของสตรีมตัวอย่างที่บันทึกไว้จะตรงกับที่ตั้งค่าไว้
  • การจับภาพ Ultra HDR มีแผนที่เกนที่ถูกต้อง

scene_ip

ใน Android 16 ขึ้นไป ฉาก scene_ip จะเปิดใช้การตรวจสอบความเท่าเทียมของรูปภาพ ระหว่างแอปกล้องเริ่มต้นกับแอปกล้อง Jetpack (JCA) เพื่อ ระบุความแตกต่างที่สำคัญระหว่างรูปภาพที่ถ่าย JCA จะจำลองการจับภาพของแอปโซเชียลมีเดียและให้รูปภาพพื้นฐานที่แอปโซเชียลมีเดียจะนำไปประมวลผลและปรับแต่ง

ข้อกำหนดในการตั้งค่าฮาร์ดแวร์

ต้องตั้งค่าฮาร์ดแวร์ต่อไปนี้สำหรับการทดสอบ scene_ip

  • การทดสอบจะดำเนินการใน Gen2 camera ITS-in-a-box
  • โดยจะใช้ตัวควบคุมแสงและเซอร์โวที่เป็นส่วนหนึ่งของอุปกรณ์ Gen2 เพื่อ ควบคุมสภาพแวดล้อมการทดสอบ
  • วางแผนภูมิฟีเจอร์ทดสอบไว้ภายในแท่นขุดเจาะ Gen2

test_chart_gen2

รูปที่ 152 ตัวอย่าง Gen2chart_sample

เกณฑ์การทดสอบการข้าม

ระบบจะข้ามscene_ipการทดสอบหากเป็นไปตามเกณฑ์ต่อไปนี้

  • อุปกรณ์มี API ระดับแรก (first_api_level) เป็น 35 หรือต่ำกว่า
  • อุปกรณ์ไม่ใช่โทรศัพท์ที่มีกล้องหลักด้านหน้าและด้านหลัง (เช่น แท็บเล็ตหรือทีวี)

test_default_jca_ip

ถ่ายภาพชาร์ตฟีเจอร์ทดสอบภายใต้สภาพแสงที่ควบคุม โดยใช้แอปกล้องเริ่มต้นและ JCA แล้วทำการตรวจสอบต่อไปนี้

  • FoV: ตรวจสอบว่าแอปกล้องเริ่มต้นและภาพที่ JCA จับมี FoV เดียวกัน การตรวจสอบนี้ใช้ฟีเจอร์คิวอาร์โค้ดตรงกลางที่ดึงมาจากภาพแผนภูมิ การจับภาพ

  • ความสว่าง: ตรวจสอบว่าความแตกต่างของความสว่างที่วัดระหว่าง แอปกล้องเริ่มต้นกับ JCA ไม่เกิน 10 การตรวจสอบนี้ใช้แพตช์ช่วง ไดนามิกสำหรับการวัดความสว่าง

  • สมดุลสีขาว: ตรวจสอบว่าความแตกต่างของสมดุลสีขาวระหว่าง แอปกล้องเริ่มต้นกับ JCA ไม่เกิน 4 การตรวจสอบนี้ใช้แพตช์ช่วง ไดนามิกสำหรับการวัดความสว่าง

ผ่านส่วนพื้นฐาน: การทดสอบผ่านการตรวจสอบ FoV, ความสว่าง และไวต์บาลานซ์ ใน Android 16 ไม่ได้กำหนดให้ต้องทำการทดสอบนี้ (NOT_YET_MANDATED)