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

หน้านี้แสดงรายการการทดสอบที่ครอบคลุมภายใต้ชุดทดสอบภาพกล้อง (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

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

  • scene0 : บันทึกข้อมูลเมตา, ความกระวนกระวายใจ, ไจโรสโคป, การสั่นสะเทือน
  • ฉาก 1 : ค่าแสง, ความไวแสง, การชดเชย EV, YUV เทียบกับ JPEG/RAW
  • scene2 : การตรวจจับใบหน้า การทดสอบที่ต้องใช้ฉากสีหรือความมืดสนิท
  • ฉาก 3 : การปรับปรุงขอบ การเคลื่อนไหวของเลนส์
  • ฉาก 4 : อัตราส่วนภาพ, การครอบตัด, ขอบเขตการมองเห็น
  • ฉากที่ 5 : การบังแสงของเลนส์
  • ฉากที่ 6 : ซูม
  • scene_extensions : ส่วนขยายของกล้อง
  • sensor_fusion : ชดเชยเวลาของกล้อง/ไจโรสโคป

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

ฉาก0

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

test_burst_capture

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

API ที่ทดสอบแล้ว:

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

test_capture_result_dump

ทดสอบว่าผลลัพธ์การจับภาพจะถูกส่งกลับจากการจับภาพด้วยตนเอง แล้วจึงทิ้งข้อมูลนั้น

API ที่ทดสอบแล้ว:

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

test_gyro_bias

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

API ที่ทดสอบแล้ว:

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

test_gyro_bias_plot.png

test_gyro_bias_plot.png

ทดสอบ_กระวนกระวายใจ

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

API ที่ทดสอบแล้ว:

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

test_jitter_plot.png

test_jitter_plot.png (สังเกตช่วงแกน y เล็ก ๆ จริง ๆ แล้ว Jitter มีขนาดเล็กในพล็อตนี้)

test_metadata

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

API ที่ทดสอบแล้ว:

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

test_param_sensitivity_burst

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

API ที่ทดสอบแล้ว:

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

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

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

API ที่ทดสอบแล้ว:

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

test_sensor_เหตุการณ์

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

API ที่ทดสอบแล้ว:

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

test_solid_color_test_pattern

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

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

API ที่ทดสอบแล้ว:

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

test_test_รูปแบบ

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

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

API ที่ทดสอบแล้ว:

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

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

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

API ที่ทดสอบแล้ว:

ผ่าน: YUV และ RAW มีลักษณะคล้ายกัน

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

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

API ที่ทดสอบแล้ว:

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

ทดสอบ_การสั่นสะเทือน_ข้อจำกัด

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

API ที่ทดสอบแล้ว:

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

ฉาก1

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

สามารถทดสอบกล้อง RFoV ใน WFaV หรือแท่นทดสอบ RFoV ได้ หากมีการทดสอบกล้อง RFoV ในแท่นทดสอบ WFaV แผนภูมิจะถูกปรับขนาดเป็น ⅔ เพื่อให้แน่ใจว่าขอบเขตบางประการสำหรับแผนภูมิสีเทาใน FoV เพื่อช่วยให้ 3A มาบรรจบกัน สำหรับคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับแท่นทดสอบกล้อง โปรดดูที่ Camera ITS-in-a-box

ฉาก1

ฉากที่ 1: ตารางขนาดเต็ม (ซ้าย) ⅔ แผนภูมิมาตราส่วน (ขวา)

ทดสอบ_3a

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

API ที่ทดสอบแล้ว:

ผ่าน: 3A มาบรรจบกันและค่า 3A ที่ส่งคืนนั้นถูกต้อง

test_ae_af

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

API ที่ทดสอบแล้ว:

ผ่าน: 3A มาบรรจบกันและค่า 3A ที่ส่งคืนนั้นถูกต้องตามกฎหมาย

test_ae_precapture_trigger

ทดสอบเครื่องสถานะ AE เมื่อใช้ทริกเกอร์จับภาพล่วงหน้า บันทึกคำขอด้วยตนเองห้าคำขอโดยปิดใช้งาน 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

test_black_white

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

API ที่ทดสอบแล้ว:

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

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

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

ถ่ายภาพต่อเนื่อง 5 ภาพจาก 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

test_crop_region_raw

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

API ที่ทดสอบแล้ว:

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

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

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

API ที่ทดสอบแล้ว:

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

test_dng_noise_model

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

API ที่ทดสอบแล้ว:

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

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

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

API ที่ทดสอบแล้ว:

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

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

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

API ที่ทดสอบแล้ว:

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

test_ev_compensation_basic

test_ev_compensation_basic.png

ทดสอบ_แสง

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

API ที่ทดสอบแล้ว:

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

test_exposure_plot_means

test_exposure_plot_means.png

test_exposure_mult=1.00test_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.jpgtest_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.jpgtest_latching_i=01.jpgtest_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpgtest_latching_i=04.jpgtest_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpgtest_latching_i=07.jpgtest_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpgtest_latching_i=10.jpgtest_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

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 ถูกนำไปใช้อย่างถูกต้องเมื่อตั้งค่า ถ่ายภาพด้วยกล้องที่มีแสงสลัว ใช้เกนแบบอะนาล็อกที่สูงเพื่อให้แน่ใจว่าภาพที่ถ่ายจะมีสัญญาณรบกวน ถ่ายภาพสามภาพ สำหรับปิด NR, "เร็ว" และ "คุณภาพสูง" นอกจากนี้ยังจับภาพที่มีเกนต่ำและปิด NR และใช้ความแปรปรวนของสิ่งนี้เป็นพื้นฐาน ยิ่ง SNR (อัตราส่วนสัญญาณต่อสัญญาณรบกวน) สูงเท่าไร คุณภาพของภาพก็จะยิ่งดีขึ้นเท่านั้น

API ที่ทดสอบแล้ว:

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

test_param_noise_reduction_plot_SNR

test_param_noise_reduction_plot_SNRs.png

0: ปิด, 1: เร็ว, 2: HQ, 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_sensitivity

ทดสอบว่ามีการใช้พารามิเตอร์ 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 และตรวจสอบว่าภาพที่ส่งออกได้รับการแก้ไขตามที่คาดไว้ การทดสอบนี้ประกอบด้วยการทดสอบสองแบบ คือ การทดสอบ 1 และการทดสอบ 2

API ที่ทดสอบแล้ว:

ผ่าน:

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

ทดสอบ_post_raw_sensitivity_boost

ตรวจสอบการเพิ่มความไวของโพสต์ 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_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_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

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensitivity

จับภาพชุดภาพดิบโดยเพิ่มเกนและวัดสัญญาณรบกวน จับภาพแบบดิบเท่านั้นในการถ่ายภาพต่อเนื่อง

API ที่ทดสอบแล้ว:

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

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

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposure

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

API ที่ทดสอบแล้ว:

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

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ คือ 1 ms, 10¹ คือ 10 ms, 10⁻¹ คือ 0.1 ms)

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

test_raw_sensitivity

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

API ที่ทดสอบแล้ว:

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

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

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

API ที่ทดสอบแล้ว:

ผ่าน: เร็ว >= ปิด, HQ >= รวดเร็ว, 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

test_yuv_jpeg_all

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

API ที่ทดสอบแล้ว:

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

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

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

API ที่ทดสอบแล้ว:

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

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

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

API ที่ทดสอบแล้ว:

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

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

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

API ที่ทดสอบแล้ว:

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

test_yuv_plus_raw_shading=1_raw.jpgtest_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 มีสามหน้าโดยมีพื้นหลังสีเทาและเสื้อผ้าที่เป็นกลาง ใบหน้าถูกเลือกให้มีโทนสีผิวที่หลากหลาย แผนภูมิต้องมีการวางแนวที่ถูกต้องเพื่อให้การตรวจจับใบหน้าทำงานได้อย่างเหมาะสมที่สุด

ฉาก2_a

ฉาก2_a

ทดสอบ_อัตโนมัติ_แฟลช

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

API ที่ทดสอบแล้ว:

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

test_การจัดกรอบอัตโนมัติ

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

API ที่ทดสอบแล้ว:

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

test_display_p3

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

API ที่ทดสอบแล้ว:

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

ทดสอบ_ผลกระทบ

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

API ที่ทดสอบแล้ว:

ผ่าน: จับภาพฉากโดย OFF ฟเฟ็กต์ และภาพเอกรงค์โดยตั้งค่าเอฟเฟ็กต์เป็น MONO

ทดสอบ_ผลกระทบ_โมโน

test_effects_MONO.jpg

test_format_combos

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

API ที่ทดสอบแล้ว:

ผ่าน: การรวมกันทั้งหมดถูกจับได้สำเร็จ

test_jpeg_quality

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

API ที่ทดสอบแล้ว:

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

test_jpeg_quality

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

test_jpeg_quality ล้มเหลว

ตัวอย่างการทดสอบที่ล้มเหลว

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

ทดสอบ_num_faces

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

API ที่ทดสอบแล้ว:

ผ่าน: ค้นหาสามหน้า

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_preview_min_frame_rate

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

API ที่ทดสอบแล้ว:

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

test_reprocess_uv_swap

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

API ที่ทดสอบแล้ว:

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

test_reprocess_uv_swap

test_reprocess_uv_swap.png

ฉาก2_b

ทดสอบ_num_faces

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

API ที่ทดสอบแล้ว:

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

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

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

API ที่ทดสอบแล้ว:

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

ฉาก2_c

ทดสอบ_num_faces

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

API ที่ทดสอบแล้ว:

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

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

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

ผ่าน: ต้องมีเวลาแฝงในการจับภาพ JPEG ของกล้อง < 1000ms สำหรับความละเอียด 1080p ซึ่งวัดโดยการทดสอบประสิทธิภาพของกล้อง CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้งสองตัว

test_cam_launch_perf_class

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

ผ่าน: ต้องมีเวลาแฝงการเริ่มต้นของกล้อง 2 (เปิดกล้องเพื่อดูเฟรมแรก) < 600ms ซึ่งวัดโดยการทดสอบประสิทธิภาพของกล้อง CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้งสองตัว

ฉาก2_d

ทดสอบ_num_faces

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

API ที่ทดสอบแล้ว:

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

ฉาก2_e

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

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

API ที่ทดสอบแล้ว:

ผ่าน: ระบบ 3A จะตัดสินเมื่อสิ้นสุดการจับภาพ 50 เฟรม

ทดสอบ_num_faces

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

API ที่ทดสอบแล้ว:

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

ฉาก2_f

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

scene2_f.png

ฉาก2_f

ทดสอบ_num_faces

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

API ที่ทดสอบแล้ว:

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

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

ฉาก3

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

test_3a_ความสม่ำเสมอ

ทดสอบความสม่ำเสมอของ 3A

API ที่ทดสอบแล้ว:

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

test_edge_enhancement

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

ผ่าน: โหมด 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 (โหมดคุณภาพสูง)

test_flip_mirror

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

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

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

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_landscape_to_Portrait

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

API ที่ทดสอบแล้ว:

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

test_landscape_to_Portrait

test_landscape_to_Portrait.png

test_lens_movement_reporting

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

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 มีความแตกต่างด้านความคมชัดเมื่อเปรียบเทียบกับสองสามเฟรมแรกที่ระยะโฟกัสที่เหมาะสมหรือสองสามเฟรมสุดท้ายที่ระยะโฟกัสต่ำสุด

test_reprocess_edge_enhancement

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

API ที่ทดสอบแล้ว:

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

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

ฉาก4

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

ฉาก4

ฉาก4

test_aspect_ratio_and_crop

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

API ที่ทดสอบแล้ว:

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

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

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

test_multi_cam_alignment

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

API ที่ทดสอบแล้ว:

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

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

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

test_preview_aspect_ratio_and_crop

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

API ที่ทดสอบแล้ว:

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

test_preview_stabilization_fov

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

API ที่ทดสอบแล้ว:

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

test_video_aspect_ratio_and_crop

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

API ที่ทดสอบแล้ว:

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

ฉาก5

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

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

ฉาก5

การจับภาพฉากที่ 5

test_lens_shading_and_color_uniformity

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

API ที่ทดสอบแล้ว:

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

ฉาก6

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

ฉาก6

ฉาก6

test_in_sensor_zoom

ทดสอบพฤติกรรมของคุณสมบัติการซูมในเซนเซอร์ของกล้อง ซึ่งสร้างภาพ RAW ที่ครอบตัด

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

API ที่ทดสอบแล้ว:

ผ่าน: ความแตกต่าง 3D Root Mean Square (RMS) ระหว่างภาพ RAW ที่ครอบตัดและภาพ FoV RAW แบบเต็มนั้นน้อยกว่า 1%

ทดสอบ_ซูม

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

API ที่ทดสอบแล้ว:

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

ทดสอบ_ซูม

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

test_low_latency_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 (ก่อนซูม)

Preview_640x480_key_frame.png

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

VGA_640x480_key_frame_zoomed.png

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

Preview_640x480_key_frame_zoomed.png

Preview_640x480_key_frame.png (หลังจากซูม)

ฉาก_ส่วนขยาย

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

ฉาก_hdr

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

ฉาก_hdr

ฉาก_hdr

test_hdr_extension

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

API ที่ทดสอบแล้ว:

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

ฉาก_กลางคืน

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

ฉาก_กลางคืน

ฉาก_กลางคืน

test_night_extension

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

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

API ที่ทดสอบแล้ว:

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

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

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

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

รูปภาพของกระดานหมากรุก

test_multi_camer_frame_sync

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

API ที่ทดสอบแล้ว:

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

test_preview_เสถียรภาพ

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

API ที่ทดสอบแล้ว:

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

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

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

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

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

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

การทดสอบ test_sensor_fusion จะสร้างแปลงจำนวนหนึ่ง แผนการที่สำคัญที่สุดสองประการสำหรับการดีบักคือ:

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

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_เหตุการณ์

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

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

API ที่ทดสอบแล้ว:

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

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

  • ข้อผิดพลาดออฟเซ็ต: ออฟเซ็ตของกล้อง-ไจโรสโคปไม่ได้รับการปรับเทียบอย่างถูกต้องภายใน +/-1 ms
  • เฟรมตก: ไปป์ไลน์ไม่เร็วพอที่จะจับภาพ 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 ค่าเฉลี่ยของภาพแฟลชอยู่ในช่วง (68, 102)