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

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

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

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

  • ฉาก 0: บันทึกข้อมูลเมตา เสียงรบกวน เครื่องวัดการหมุน การสั่น
  • โหมด1: การเปิดรับแสง, ความไว, การชดเชย EV, YUV เทียบกับ JPEG/RAW
  • ฉาก2: การตรวจจับใบหน้า การทดสอบที่ต้องมีฉากสีหรือความมืดสนิท
  • ฉาก 3: การเพิ่มประสิทธิภาพขอบ การเคลื่อนไหวของเลนส์
  • season4: สัดส่วนภาพ การครอบตัด ขอบเขตการมองเห็น
  • progress5: การปรับแสงเลนส์
  • events6: ซูม
  • view_extensions: ส่วนขยายกล้อง
  • sensor_fusion: ออฟเซ็ตเวลาของกล้อง/เครื่องวัดการหมุน

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

ฉาก0

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

ทดสอบภาพถ่ายอัจฉริยะ

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

API ที่ทดสอบ:

ผ่าน: ถ่ายภาพขนาดเต็มที่ถ่ายออกมาและกล้องถ่ายรูปมีความเร็วเพียงพอที่จะหลีกเลี่ยงการหมดเวลา

test_capture_result_dump

ทดสอบว่าได้ส่งคืนผลการจับภาพจากการบันทึกด้วยตนเอง แล้วถ่ายโอนไปยัง

API ที่ทดสอบ:

ผ่าน: จับภาพเสร็จสมบูรณ์และทิ้งผลลัพธ์การจับภาพ

ค่าความเอียงทดสอบ

ทดสอบว่า Gyro มีเอาต์พุตที่เสถียรหรือไม่เมื่ออุปกรณ์อยู่กับที่ ข้อมูลจะแสดงเป็นจุดข้อมูลเฉลี่ย 20 จุด

API ที่ทดสอบ:

ผ่าน: เดลต้าของการอ่านด้วยไจโรมีค่าน้อยกว่า 0.01 เมื่อเวลาผ่านไป

test_gyro_bias_plot.png

test_gyro_bias_plot.png

ทดสอบ Jitter

วัด Jitter ในการประทับเวลาของกล้อง

API ที่ทดสอบ:

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

test_jitter_plot.png

test_jitter_plot.png (โปรดสังเกตช่วงแกน y ขนาดเล็ก Jitter ในแผนผังนี้ มีขนาดเล็ก)

test_metadata

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

API ที่ทดสอบ:

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

test_param_sensitivity_burst

ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.sensitivity ในภาพถ่ายอัจฉริยะอย่างถูกต้อง ตรวจสอบข้อมูลเมตาของเอาต์พุตเท่านั้น

API ที่ทดสอบ:

ผ่าน: ข้อมูลเอาต์พุตมีความอดทนต่อข้อผิดพลาดน้อยกว่า 0.2%

ทดสอบ_อ่าน_เขียน

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

API ที่ทดสอบ:

ผ่าน: การอ่านและเขียนค่าที่ตรงกันในทุกช็อต

test_sensor_events

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

API ที่ทดสอบ:

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

test_solid_color_test_pattern

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

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

API ที่ทดสอบ:

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

test_test_pattern

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

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

API ที่ทดสอบ:

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

test_test_patterns_2

test_test_patterns_2.jpg

ทดสอบกราฟโทนสี

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

API ที่ทดสอบ:

ผ่าน: YUV และสขช.ดูคล้ายคลึงกัน

ทดสอบเส้นโค้งของโทนสี 2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

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

API ที่ทดสอบ:

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

การจำกัดทดสอบ_การสั่น

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

API ที่ทดสอบ:

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

ฉาก 1

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

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

ฉาก 1

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

ทดสอบ 3a

ทดสอบการบรรจบกันของ 3A กับเป้าหมายที่ท้าทายปานกลาง

API ที่ทดสอบ:

ผ่าน: ลู่เข้า 3A และค่า 3A ที่แสดงผลถูกต้อง

ทดสอบ_ae_af

ทดสอบอัลกอริทึมการรับแสงอัตโนมัติ (AE) และโฟกัสอัตโนมัติ (AF) แบบ 3A แยกกัน

API ที่ทดสอบ:

ผ่าน: ลู่เข้า 3A และค่า 3A ที่แสดงผลเป็นค่าทางกฎหมาย

test_ae_precapture_trigger

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

API ที่ทดสอบ:

ผ่าน: ลู่ AE

test_auto_vs_manual

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

API ที่ทดสอบ:

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

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

ทดสอบสีขาวดำ

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

API ที่ทดสอบ:

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

ทดสอบสีดำสีขาว ทดสอบสีดำสีขาว
test_black_white_black.jpg test_black_white_white.jpg

ทดสอบสีดำกลางโลก

ทดสอบ_สีดำ_สีขาว_plot_means.png

test_burst_sameness_manual

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

API ที่ทดสอบ:

ผ่าน: รูปภาพเหมือนกันและเป็นค่า RGB

ไม่ผ่าน: แสดงการเพิ่มขึ้นหรือลดลงของแผนภูมิเฉลี่ย RGB ในช่วงเริ่มต้นของภาพถ่ายอัจฉริยะแต่ละครั้ง

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

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

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

API ที่ทดสอบ:

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

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

ทดสอบการครอบตัดภูมิภาค_ข้อมูลดิบ

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

API ที่ทดสอบ:

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

ครอบตัด_ภูมิภาค_ข้อมูลดิบ_comp_raw_ครอบตัด

test_crop_region_raw_comp_raw_crop.jpg

ทดสอบการครอบตัด_ภูมิภาค_raw_comp_raw_เต็ม

test_crop_region_raw_comp_raw_full.jpg

ครอบตัด_ภูมิภาค_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

ทดสอบการครอบตัดภูมิภาค raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_region

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

API ที่ทดสอบ:

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

โมเดลเสียงทดสอบ dng

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

API ที่ทดสอบ:

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

test_dng_noise_model_plog

test_dng_noise_model_plog.png

ทดสอบค่าตอบแทนขั้นสูง

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

API ที่ทดสอบ:

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

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

ทดสอบ_ค่าตอบแทน_พื้นฐาน

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

API ที่ทดสอบ:

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

ทดสอบ_ค่าตอบแทน_พื้นฐาน

test_ev_compensation_basic.png

test_exposure

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

API ที่ทดสอบ:

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

test_exposure_plot_means

test_exposure_plot_means.png

test_exposure_mult=1.00 test_exposure_mult=64.00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

ทดสอบ jpeg

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

API ที่ทดสอบ:

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

test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_latching [ล็อกการทดสอบ]

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

API ที่ทดสอบ:

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

test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

test_latching_plot_means

test_latching_plot_means.png

ทดสอบเชิงเส้น

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

API ที่ทดสอบ:

ผ่าน: ค่า R, G, B ต้องเพิ่มขึ้นเป็นเชิงเส้นโดยมีความไวเพิ่มขึ้น

ทดสอบ_เชิงเส้น_ความหมาย

test_Linearity_plot_means.png

test_locked_burst

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

API ที่ทดสอบ:

ผ่าน: การจับภาพดูสม่ำเสมอ

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_param_color_correction

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

API ที่ทดสอบ:

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

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*แกน x คือคำขอจับภาพ: 0 = เป็นหนึ่งเดียวกัน, 1=เพิ่มสีแดง, 2= บูสต์สีฟ้า

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (เพิ่มระดับ R)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (เพิ่มคุณภาพ B)

test_param_exposure_time

ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.exposureTime แล้ว

API ที่ทดสอบ:

ผ่าน: แต่ละช็อตจะสว่างกว่าภาพก่อนหน้า

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

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

API ที่ทดสอบ:

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

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

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

API ที่ทดสอบ:

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

test_param_noise_reduction_plot_SNR

test_param_noise_reduction_plot_SNRs.png

0: ปิด, 1: รวดเร็ว, 2: สำนักงานใหญ่, 3: นาที , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_ความไว

ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.sensitivity แล้ว การทดสอบจะเพิ่มความไวใน 5 ขั้นตอนโดยปรับการรับแสงคงที่สำหรับแต่ละช็อต

API ที่ทดสอบ:

ผ่าน: ค่า RGB ที่กึ่งกลาง 10% จะสว่างขึ้นพร้อมกับความไวที่เพิ่มขึ้น

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

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

API ที่ทดสอบ:

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

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

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

API ที่ทดสอบ:

ผ่าน:

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

test_post_raw_ความไว_การบูสต์

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

API ที่ทดสอบ:

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

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_ความไว_บูสต์_raw_s=1792_บูสต์=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_ความไว_บูสต์_raw_s=0896_บูสต์=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_ความไว_บูสต์_raw_s=0448_บูสต์=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_ความไว_บูสต์_raw_s=0224_บูสต์=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_ความไว_บูสต์_raw_s=0112_บูสต์=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

ทดสอบความไวของการประมวลผลหลังการเร่งความเร็ว_ประสิทธิภาพ_ข้อมูลจริง

test_post_raw_ความไว_บูสต์_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

ทดสอบความไวของการโพสต์หลังการอัปโหลด [boost_yuv_plot_means]

test_post_raw_ความไว_บูสต์_yuv_plot_means.png

test_raw_burst_ความไว

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

API ที่ทดสอบ:

ผ่าน: ช็อตแต่ละช็อตจะมีเสียงดังกว่าช็อตก่อนหน้าเนื่องจากอัตราขยายเพิ่มขึ้น

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

test_raw_burst_ความแปรปรวน_ความไว

test_raw_burst_sensitivity_variance.png

test_raw_exposure

ถ่ายชุดรูปภาพดิบที่มีเวลาในการรับแสงเพิ่มขึ้นและวัดค่าพิกเซล

API ที่ทดสอบ:

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

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(100 คือ 1 มิลลิวินาที, 101 เท่ากับ 10 มิลลิวินาที, 10−1 เท่ากับ 0.1 มิลลิวินาที)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

ความไวต่อการทดสอบ raw

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

API ที่ทดสอบ:

ผ่าน: ความแปรปรวนจะเพิ่มขึ้นในแต่ละช็อต

ความแปรปรวนของความไวของการทดสอบ [raw_sensitivity_variance]

test_raw_sensitivity_variance.png

ทดสอบการลดเสียงรบกวน

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

API ที่ทดสอบ:

ผ่าน: FAST >= ปิด, HQ >= FAST, HQ >> ปิด

พล็อต SNR ปกติเทียบกับ NR_mode

พล็อต SNR ปกติเทียบกับ NR_mode

test_tonemap_sequence

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

API ที่ทดสอบ:

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

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

ทดสอบ yuv_jpeg_all

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

API ที่ทดสอบ:

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

ทดสอบ yuv_jpeg_all

test_yuv_jpeg_all.png

ทดสอบ yuv_plus_dng

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

API ที่ทดสอบ:

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

ทดสอบ yuv_plus_dng

test_yuv_plus_dng.jpg

ทดสอบ yuv_plus_jpeg

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

API ที่ทดสอบ:

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

test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

ทดสอบ yuv_plus_raw

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

API ที่ทดสอบ:

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

test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

ฉาก 2_a

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

ฉาก 2_a

ฉาก 2_a

test_auto_flash

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

API ที่ทดสอบ:

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

test_autoframe

ทดสอบลักษณะการทำงานในการจัดเฟรมอัตโนมัติของอุปกรณ์กล้อง ทำการซูมขนาดใหญ่เพื่อไม่ให้เห็นใบหน้าในฉาก เปิดใช้โหมดจัดเฟรมอัตโนมัติโดยตั้งค่า 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

test_effects_MONO.jpg

test_format_combos [รูปแบบผสม]

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

API ที่ทดสอบ:

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

ทดสอบคุณภาพ jpeg

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

API ที่ทดสอบ:

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

ทดสอบคุณภาพ jpeg

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

test_jpeg_quality ไม่สำเร็จ

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

โปรดทราบว่าสำหรับรูปภาพที่มีคุณภาพต่ำมาก (jpeg.quality < 50) การบีบอัดในเมทริกซ์เชิงปริมาณจะไม่เพิ่มขึ้น

จำนวนใบหน้าทดสอบ

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

API ที่ทดสอบ:

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

จำนวนใบหน้า_ทดสอบ_โหมด_สภาพ_1

test_num_faces_fd_mode_1.jpg

อัตราตัวอย่างขั้นต่ำของการทดสอบ [test_preview_min_frame_rate]

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

API ที่ทดสอบ:

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

ทดสอบการสลับฟังก์ชันใหม่

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

API ที่ทดสอบ:

ผ่าน: เครื่องบิน U และ V ไม่ได้สลับกัน

ทดสอบการสลับฟังก์ชันใหม่

test_reprocess_uv_swap.png

ฉาก 2_ข

จำนวนใบหน้าทดสอบ

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

API ที่ทดสอบ:

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

จำนวนใบหน้า_ทดสอบ_โหมด_สภาพ_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

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

API ที่ทดสอบ:

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

ฉาก 2_c

จำนวนใบหน้าทดสอบ

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

API ที่ทดสอบ:

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

จำนวนใบหน้า_ทดสอบ_โหมด_สภาพ_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

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

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

test_camera_launch_perf_class

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

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

ฉาก 2_ง

จำนวนใบหน้าทดสอบ

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

API ที่ทดสอบ:

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

ฉาก 2_e

รูปภาพทดสอบต่อเนื่อง

เฟรมความละเอียด VGA 50 เฟรมจะได้รับการบันทึกด้วยการตั้งค่าแรกของคำขอบันทึก android.control.afMode = 4 (CONTINUOUS_PICTURE).

API ที่ทดสอบ:

ผ่าน: ระบบ 3A จะแก้ปัญหาหลังการจับภาพ 50 เฟรมสิ้นสุดลง

จำนวนใบหน้าทดสอบ

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

API ที่ทดสอบ:

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

ฉาก 2_f

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

ฉาก2_f.png

ฉาก 2_f

จำนวนใบหน้าทดสอบ

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

API ที่ทดสอบ:

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

จำนวนใบหน้า_ทดสอบ_โหมด_สภาพ_1

test_num_faces_fd_mode_1.jpg

ฉาก3

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

ทดสอบ 3ก_ความสอดคล้อง

การทดสอบความสอดคล้อง 3A

API ที่ทดสอบ:

ผ่าน: 3A บรรจบกันสำหรับการรับสัมผัส, เกน, awb (สมดุลแสงขาวอัตโนมัติ) และ fd (ระยะโฟกัส) 3 เท่าภายในความอดทน

test_edge_enhancement

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

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

API ที่ทดสอบ:

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

  • EDGE_MODE

test_edge_enhancement_edge=0

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (โหมดด่วน)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (โหมดคุณภาพสูง)

ทดสอบ_พลิก_มิเรอร์

ทดสอบว่ารูปภาพมีทิศทางที่ถูกต้องตามส่วน CDD 7.5.2 กล้องหน้า [C-1-5] หรือไม่

ภาพแบบมิเรอร์ พลิก หรือหมุนจะระบุได้ด้วยฟีเจอร์เพชรบริเวณตรงกลาง

ผ่าน: ไม่พลิก มิเรอร์ หรือหมุนรูปภาพ

แพตช์ทดสอบฉากมิเรอร์

test_ Flip_mirror_โหมด_patch.jpg

ทดสอบแนวนอนเป็นแนวตั้ง

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

API ที่ทดสอบ:

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

ทดสอบแนวนอนเป็นแนวตั้ง

test_landscape_to_portrait.png

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 เฟรมแรกที่ระยะโฟกัสที่ดีที่สุดหรือไม่กี่เฟรมสุดท้ายที่ระยะโฟกัสต่ำสุด

test_reprocess_edge_enhancement

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

API ที่ทดสอบ:

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

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

ฉาก 4

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

ฉาก 4

ฉาก 4

ทดสอบอัตราส่วนและครอบตัด

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

API ที่ทดสอบ:

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

กลไกที่ไม่สำเร็จ

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

การปรับแนวกล้องทดสอบหลายตัว (test_multi_camera_alignment)

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

API ที่ทดสอบ:

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

กลไกที่ไม่สำเร็จ

  • LENS_INTRINSIC_CALIBRATION, LENS_POSE_TRANSLATION หรือ LENS_POSE_ROTATION เป็นค่าการออกแบบ ไม่ใช่ข้อมูลการปรับเทียบจริง
  • ระบบกล้องไม่เหมาะสำหรับการตั้งค่าทดสอบ เช่น การทดสอบระบบกล้องแบบภาพกว้างและมุมกว้างพิเศษด้วยอุปกรณ์ทดสอบ RFoV ดูข้อมูลเพิ่มเติมได้ที่คำถามที่พบบ่อยเกี่ยวกับไอทีที่มาพร้อมกับกล้อง 1

ทดสอบตัวอย่างอัตราส่วนและครอบตัด

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

API ที่ทดสอบ:

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

test_preview_stabilization_fov

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

API ที่ทดสอบ:

ผ่าน: อัตราส่วนของวงกลมมีความคงที่ ตำแหน่งศูนย์กลางของวงกลมจะคงที่ และขนาดวงกลมจะเปลี่ยนไปเพียง 20%

อัตราส่วนและการครอบตัดวิดีโอทดสอบ

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

API ที่ทดสอบ:

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

ฉาก 5

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

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

ฉาก 5

การจับภาพฉาก 5

test_lens_shading_and_color_uniformity

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

API ที่ทดสอบ:

ผ่าน: ณ รัศมีที่ระบุของรูปภาพ ความแปรปรวนของค่า r/g และ b/g ต้องน้อยกว่า 20% จึงจะผ่านการทดสอบ

ฉาก 6

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

ฉาก 6

ฉาก 6

ทดสอบการซูมเซ็นเซอร์

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

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

API ที่ทดสอบ:

ผ่าน: ความแตกต่างของค่าเฉลี่ยกำลังสอง (RMS) รากแบบ 3 มิติระหว่างรูปภาพ RAW ที่ครอบตัดลดสเกลและภาพ RAW แบบเต็มจะน้อยกว่า 1%

ทดสอบการซูม

ทดสอบลักษณะการซูมของกล้อง ถ่ายภาพระยะซูมและตรวจสอบว่าวงกลมขยายใหญ่ขึ้นเมื่อกล้องซูมเข้าหรือไม่

API ที่ทดสอบ:

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

ทดสอบการซูม

test_zoom เพื่อหารูปร่างของวงกลมที่อยู่ใกล้กับจุดศูนย์กลางมากที่สุด

ทดสอบการซูมต่ำ

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

API ที่ทดสอบ:

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

test_preview_video_zoom_match

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

API ที่ทดสอบ:

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

VGA_640x480_key_frame.png

VGA_640x480_key_frame.png (ก่อนซูม)

แสดงตัวอย่าง_640x480_คีย์_เฟรม.png

Preview_640x480_key_frame.png (ก่อนซูม)

VGA_640x480_คีย์_เฟรม_ซูม.png

VGA_640x480_key_frame.png (หลังการซูม)

แสดงตัวอย่าง_640x480_คีย์_เฟรม_ซูม.png

example_640x480_key_frame.png (หลังการซูม)

ส่วนขยายฉาก

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

โหมด_hdr

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

โหมด_hdr

โหมด_hdr

test_hdr_extension

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

API ที่ทดสอบ:

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

คืนฉาก

ฉาก scene_night ประกอบด้วยวงกลมสีขาวที่มีวงกลมขนาดเล็ก 4 วงด้านใน และทั้งหมดบนพื้นหลังสีดำ วงกลมขนาดเล็กที่มุมขวาบน จะเข้มกว่าวงกลมอื่นๆ เพื่อระบุการวางแนว

คืนฉาก

คืนฉาก

test_night_extension

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

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

API ที่ทดสอบ:

ผ่าน: เมื่อเทียบกับการจับภาพที่ไม่ได้เปิดใช้การใช้ส่วนขยายกลางคืน การจับภาพที่เปิดใช้ส่วนขยายโหมดกลางคืนจะใช้เวลานานขึ้นอย่างน้อย 0.5 วินาที การจับภาพต้องสว่างขึ้นอย่างน้อย 10% หรือจุดสีเทาในฉากต้องมีค่าต่ำกว่าจุดกึ่งกลางของวงกลมที่ล้อมรอบ 20 พิกเซล

เซ็นเซอร์ฟิวชัน

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

ลายกระดานหมากรุก

รูปกระดานหมากรุก

test_multi_camera_frame_sync

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

API ที่ทดสอบ:

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

test_preview_stabilization

การทดสอบวิดีโอตัวอย่างที่มีความเสถียรจะหมุนน้อยกว่าเครื่องวัดการหมุน

API ที่ทดสอบ:

ผ่าน: การหมุนมุมสูงสุดบนเฟรมน้อยกว่า 70% ของการหมุนด้วยเครื่องวัดการหมุน

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

  • ตัวอย่างวิดีโอที่มีระบบกันภาพสั่น

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

ทดสอบเซ็นเซอร์ฟิวชัน

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

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

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

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

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

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

API ที่ทดสอบ:

ผ่าน: ออฟเซ็ตการประทับเวลาของกล้องและเครื่องวัดการหมุนน้อยกว่า 1 มิลลิวินาทีตาม ส่วน CDD 7.3.9 เซ็นเซอร์ความละเอียดสูง [C-2-14]

กลไกที่ไม่สำเร็จ

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

test_video_stabilization

การทดสอบที่แก้ภาพสั่นไหวจะหมุนได้น้อยกว่าเครื่องวัดการหมุน

API ที่ทดสอบ:

ผ่าน: การหมุนมุมสูงสุดบนเฟรมน้อยกว่า 60% ของการหมุนด้วยเครื่องวัดการหมุน

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

  • ตัวอย่างวิดีโอที่มีระบบกันภาพสั่น

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

test_led_snapshot นี้

ทดสอบว่าสแนปชอต LED ไม่อิ่มตัวหรือไม่แต้มสีรูปภาพ

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

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

API ที่ทดสอบ:

ผ่าน: อัตราส่วน R/G และ B/G อยู่ในช่วง 0.95 และ 1.05 ค่าเฉลี่ยของรูปภาพ Flash จะอยู่ในช่วง (68, 102)