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

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

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

ใน Android 17 ขึ้นไป การทดสอบ Camera ITS จะแบ่งออกเป็น 2 กิจกรรมใน CTS Verifier เพื่อให้สามารถดำเนินการพร้อมกันและลดเวลาในการทดสอบ โดยกิจกรรมหนึ่งสำหรับการทดสอบ feature_combination และ sensor_fusion และอีกกิจกรรมหนึ่งสำหรับการทดสอบอื่นๆ ทั้งหมด ดูข้อมูลเพิ่มเติมได้ที่การลดเวลาทดสอบ

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: บันทึกข้อมูลเมตา, ความผันผวน, เครื่องวัดการหมุน, การสั่น
  • scene1: การรับแสง ความไวแสง การชดเชยค่าการรับแสง (EV) YUV เทียบกับ JPEG และ RAW
  • scene2: การตรวจจับใบหน้า การทดสอบที่ต้องใช้ฉากสี
  • scene3: การปรับปรุงขอบ การเคลื่อนไหวของเลนส์
  • scene4: สัดส่วนภาพ การครอบตัด ขอบเขตการมองเห็น
  • scene6: Zoom
  • scene7: สวิตช์กล้องหลายตัว
  • scene8: การวัดแสงตามภูมิภาคสำหรับการเปิดรับแสงอัตโนมัติ (AE) และสมดุลแสงขาวอัตโนมัติ (AWB)
  • scene9: การบีบอัด JPEG
  • scene_extensions: ส่วนขยายกล้อง
  • scene_tele: การเปลี่ยนเลนส์เทเลโฟโต้
  • scene_video: เฟรมตก

ฉากทดสอบที่อิงตามอุปกรณ์ Gen2 / sensor_fusion

  • feature_combination: การรวมฟีเจอร์
  • scene_flash: แฟลชอัตโนมัติ, อัตราเฟรมขั้นต่ำ
  • scene_gen2_chart: การทดสอบโดยใช้แผนภูมิกระดาษ Gen2
  • scene_ip: ความเท่าเทียมกันของรูปภาพระหว่างแอปกล้องเริ่มต้นกับ Jetpack Camera App (JCA)
  • sensor_fusion: ออฟเซ็ตเวลาของกล้องและเครื่องวัดการหมุน

ฉากทดสอบที่ใช้ตัวกระจายแสง

  • scene5: การปรับแสงเงาของเลนส์

ฉากทดสอบที่ใช้แท็บเล็ตซึ่งมีขอบเขตสีกว้าง

  • scene_wide_gamut: โปรไฟล์และช่วงสีที่กว้าง

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

ฉากทดสอบที่ใช้แท็บเล็ต

scene0

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

test_jitter

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

API ที่ทดสอบ:

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

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

test_jitter plot

รูปที่ 1 test_jitter plot

test_metadata

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

API ที่ทดสอบ:

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

test_request_capture_match

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

API ที่ทดสอบ:

ผ่าน: ค่าข้อมูลเมตาของคำขอและการจับภาพตรงกันในทุกช็อต

test_sensor_events

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

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

test_tonemap_curve

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

API ที่ทดสอบ:

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

ตัวอย่างข้อมูลดิบ test_tonemap_curve

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

ตัวอย่าง test_tonemap_curve YUV

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

test_unified_timestamp

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

API ที่ทดสอบ:

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

test_vibration_restriction

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

API ที่ทดสอบ:

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

scene1_1

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

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

ตัวอย่าง scene1

รูปที่ 5 แผนภูมิ Scene1 ขนาดเต็ม (ซ้าย) แผนภูมิที่ปรับขนาด 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 auto

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, ตัวอย่างค่าเฉลี่ยของพล็อต

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 ตัวอย่างการครอบตัดไฟล์ RAW ของ test_crop_region_raw comp

test_crop_region_raw comp raw full example

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

ตัวอย่างการครอบตัด YUV ของ test_crop_region_raw comp

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

ตัวอย่าง test_crop_region_raw_yuv_full

รูปที่ 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 แต่ละรายการมีค่า Luma ที่คงที่

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

รูปที่ 37 ตัวอย่างค่าเฉลี่ยของพล็อต test_linearity

test_locked_burst

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

API ที่ทดสอบ:

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

test_locked_burst frame0 example

รูปที่ 38 ตัวอย่าง test_locked_burst frame0

test_locked_burst frame1 example

รูปที่ 39 ตัวอย่าง test_locked_burst frame1

test_locked_burst_frame2

รูปที่ 40 ตัวอย่าง test_locked_burst frame2

scene1_2

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

test_param_color_correction

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

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

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 ตัวอย่างการเพิ่มสีแดง req=1 ของ test_param_color_correctness

test_param_color_correction req=2 blue boost example

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

test_param_flash_mode

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

API ที่ทดสอบ:

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

ตัวอย่าง test_param_flash_mode 1

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

test_param_flash_mode 1 tile example

รูปที่ 46 ตัวอย่างไทล์ test_param_flash_mode 1 รายการ

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

API ที่ทดสอบ:

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

test_param_noise_reduction plot SNRs example

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

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 high gain nr=2

test_param_noise_reduction high gain nr=3 example

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

test_param_noise_reduction low gain example

รูปที่ 54 ตัวอย่างอัตราขยายต่ำของ test_param_noise_reduction

test_param_shading_mode

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

API ที่ทดสอบ:

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

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

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

ตัวอย่าง test_param_shading_mode lens shading map, mode 1 loop 0

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

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

รูปที่ 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 โดย n=1

รูปที่ 59 test_param_tonemap_mode โดยที่ n=1

test_post_raw_sensitivity_boost

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

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

test_post_raw_sensitivity_boost raw s=1792 boost=0200 example

รูปที่ 61 ตัวอย่าง test_post_raw_sensitivity_boost raw s=1792 boost=0200

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

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

test_post_raw_sensitivity_boost YUV s=0896 boost=0400 example

รูปที่ 69 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=0896 boost=0400

test_post_raw_sensitivity_boost YUV s=1792 boost=0200 example

รูปที่ 70 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=1792 boost=0200

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

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

API ที่ทดสอบ:

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

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

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

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

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

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

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

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

test_raw_exposure ISO=286 example

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

test_raw_exposure ISO=363 example

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

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

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

ตัวอย่าง test_tonemap_sequence_i=4

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

ตัวอย่าง test_tonemap_sequence i=5

รูปที่ 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

รูปที่ 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

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

API ที่ทดสอบ:

ผ่าน: พารามิเตอร์โมเดลไฟล์ข้อมูลดิบ 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 เท่านั้นในโหมดถ่ายต่อเนื่อง

API ที่ทดสอบ:

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

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

test_raw_burst_sensitivity_variance

รูปที่ 92 test_raw_burst_sensitivity_variance

test_raw_sensitivity

จับภาพชุดภาพข้อมูลดิบที่มีความไวเพิ่มขึ้นและวัดสัญญาณรบกวน (ความแปรปรวน) ในส่วน 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

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

API ที่ทดสอบ:

ผ่าน: รูปภาพ YUV และรูปภาพ RAW มีความคล้ายกันและมีความแตกต่างของ RMS (ค่า Root-Mean-Square ของสัญญาณ) น้อยกว่า 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

รูปที่ 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 ที่ทดสอบ:

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

test_effects_MONO

รูปที่ 99 test_effects_MONO

test_exposure_keys_consistent

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

API ที่ทดสอบ:

ผ่าน: ความแตกต่างสัมพัทธ์ของ Luma ระหว่างการจับภาพทั้ง 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

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

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 (ค่า Root-Mean-Square ของสัญญาณ) น้อยกว่า 3% รูปภาพ YUV สำหรับกรณีการใช้งานที่รองรับทั้งหมดมีความแตกต่างของ CIELAB น้อยกว่า 4% จากรูปภาพ 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 < 1000 มิลลิวินาทีสำหรับความละเอียด 1080p ตามที่วัดโดย PerformanceTest ของกล้อง CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้ง 2 ตัว

test_camera_launch_perf_class

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

ผ่าน: ต้องมีเวลาในการตอบสนองเมื่อเริ่มต้นใช้งาน camera2 (เปิดกล้องไปยังเฟรมตัวอย่างแรก) < 600 มิลลิวินาทีตามที่วัดโดย PerformanceTest ของกล้อง CTS ภายใต้สภาพแสง 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

รูปที่ 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

scene3

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

scene3_aruco_chart

รูปที่ 108 แผนภูมิฉากที่ 3

test_edge_enhancement

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

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

API ที่ทดสอบ:

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

  • EDGE_MODE

test_edge_enhancement_edge=0

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

test_edge_enhancement edge=1 example

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

test_edge_enhancement edge=2 example

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

test_flip_mirror

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

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

test_flip_mirror scene patch example

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

test_imu_drift

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

API ที่ทดสอบ:

บัตร:

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

ตัวอย่างการเบี่ยงเบนของเครื่องวัดการหมุน test_imu_drift

รูปที่ 113 ตัวอย่างการเบี่ยงเบนของเครื่องวัดการหมุน test_imu_drift

ตัวอย่างการเบี่ยงเบนของเวกเตอร์การหมุน test_imu_drift

รูปที่ 114 ตัวอย่างการเบี่ยงเบนของเวกเตอร์การหมุน test_imu_drift

test_landscape_to_portrait

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

API ที่ทดสอบ:

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

test_landscape_to_portrait example

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

test_lens_movement_reporting

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

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

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

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

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

scene4

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

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

scene4 example

ฉากที่ 4 ตัวอย่าง รูปที่ 117

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 สูงสุดที่เป็นไปได้ไว้

กลไกการทำงานที่ล้มเหลว

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

test_multi_camera_alignment

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

API ที่ทดสอบ:

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

กลไกการทำงานที่ล้มเหลว

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

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 สูงสุดที่เป็นไปได้ไว้

scene6

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

scene6

รูปที่ 118 ตัวอย่างฉากที่ 6

test_in_sensor_zoom

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

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

API ที่ทดสอบ:

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

test_zoom

ทดสอบลักษณะการซูมของกล้องจากเลนส์มุมกว้างพิเศษไปยังเลนส์มุมกว้าง จับภาพในช่วงการซูมและตรวจสอบว่าเครื่องหมาย ArUco มีขนาดใหญ่ขึ้นเมื่อกล้องซูมเข้าหรือไม่ การทดสอบยังตรวจสอบด้วยว่าตำแหน่งของเครื่องหมายตรงกลางเปลี่ยนไปตามที่คาดการณ์ไว้หรือไม่ในการจับภาพแต่ละครั้ง ระยะห่างจากจุดกึ่งกลางของเครื่องหมายกึ่งกลางไปยังจุดกึ่งกลางของรูปภาพอาจเปลี่ยนแปลงในอัตราคงที่ตามอัตราส่วนการซูมจนกว่าจะมีการเปลี่ยนกล้องจริง หรืออาจเปลี่ยนแปลงแบบโมโนโทนิกไปยังตำแหน่งของเครื่องหมายเดียวกันหลังจากเปลี่ยนกล้องจริง ต้องติดตั้งแอป Jetpack Camera (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 จะยืนยันว่าการเปลี่ยนแปลง Luma อยู่ในช่วงที่คาดไว้สำหรับทั้งรูปภาพจากเลนส์ UW และ W การตรวจสอบ AWB จะยืนยันว่าอัตราส่วนของสีแดง-เขียวและน้ำเงิน-เขียวอยู่ภายในค่าเกณฑ์สำหรับทั้งรูปภาพจากเลนส์ UW และ W การตรวจสอบ AF จะประเมินค่าการประมาณความคมชัดโดยอิงตามขนาดการไล่ระดับสีเฉลี่ยระหว่างรูปภาพจากเลนส์ UW และ W

ขณะทำการทดสอบนี้ หากเอฟเฟกต์มัวเร (Moire) รบกวนผลลัพธ์ ให้ใช้แท็บเล็ตที่มีความละเอียดสูงขึ้นจากรายการแท็บเล็ตที่ผ่านการรับรองของ Camera 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 ตัวอย่างฉากที่ 8

test_ae_awb_regions

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

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

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

API ที่ทดสอบ:

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

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 ตัวอย่างฉากที่ 9

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_extensions

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

scene_hdr

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

scene_hdr

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

test_hdr_extension

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

API ที่ทดสอบ:

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

scene_low_light

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

ตัวอย่าง scene_low_light

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

test_night_extension

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

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

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

API ที่ทดสอบ:

บัตร:

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

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

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

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

test_low_light_boost_extension

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

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

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

API ที่ทดสอบ:

บัตร:

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

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

scene_tele

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

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

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

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

scene6_tele

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

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

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

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

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

remove_front_plate

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

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 จะยืนยันว่าการเปลี่ยนแปลง Luma อยู่ในช่วงที่คาดไว้สำหรับทั้งรูปภาพจากเลนส์ W และเลนส์เทเล การตรวจสอบ AWB จะยืนยันว่าอัตราส่วนของสีแดง-เขียวและน้ำเงิน-เขียวอยู่ภายในค่าเกณฑ์สำหรับทั้งรูปภาพจากเลนส์ W และเลนส์เทเล การตรวจสอบ AF จะประเมินค่าการประมาณความคมชัดตามขนาดการไล่ระดับสีเฉลี่ยระหว่างรูปภาพจากเลนส์มุมกว้างและเลนส์เทเลโฟโต้

API ที่ทดสอบ:

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

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

scene_video

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

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

test_preview_frame_drop

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

API ที่ทดสอบ:

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

อุปกรณ์ Gen2 / ฉากทดสอบที่อิงตาม sensor_fusion

feature_combination

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

test_feature_combination

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

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

API ที่ทดสอบ:

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

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

scene_flash

การทดสอบ scene_flash ต้องใช้ฉากมืดในกล่อง Sensor Fusion ใน Android 17 ขึ้นไป คุณสามารถทดสอบ scene_flash โดยใช้อุปกรณ์ Gen2 ได้

test_auto_flash

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

ใน Android 17 ขึ้นไป ให้ทดสอบระดับการซูมที่ไม่ใช่ 1 เท่าเพื่อยืนยันฟังก์ชันการทำงานที่ถูกต้องในทุกช่วงการซูมที่รองรับ

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 เพื่อควบคุมแสง เมื่อตั้งค่าแสงเป็น OFF การทดสอบจะจับภาพโดยตั้งค่าโหมด AUTO_FLASH เป็น ON ในระหว่างการจับภาพนี้ การทดสอบจะเรียกใช้ลำดับก่อนจับภาพโดยตั้งค่าทริกเกอร์ aePrecapture เป็น START และตั้งค่าความตั้งใจในการจับภาพเป็น 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
    • ไฟจะเปิดขึ้นและระบบจะจับภาพเฟรมตัวอย่าง
    • การทดสอบจะยืนยันว่าสัญญาณบอกสถานะโหมดกลางคืนอยู่ในสถานะ 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

scene_gen2_chart

ใน Android 17 ขึ้นไป scene_gen2_chart จะใช้แผนภูมิกระดาษ Gen2

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

test_chart_gen2

รูปที่ 142 ตัวอย่างแผนภูมิ Gen2

test_tonemap_sequence

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

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

ทดสอบพล็อตลำดับการแมปโทน

รูปที่ 143 ทดสอบพล็อตลำดับโทนแมป

API ที่ทดสอบ:

ผ่าน: ความแตกต่างของความสว่างระหว่างเส้นโค้งเริ่มต้นและเส้นโค้งเชิงเส้นมากกว่า 15% ขณะที่ความแตกต่างระหว่างเส้นโค้งแบบเอกซ์โพเนนเชียล 2 เส้นน้อยกว่า 8%

test_multi_camera_switch

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

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

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

API ที่ทดสอบ:

ผ่าน: การทดสอบจะผ่านได้ก็ต่อเมื่อผ่านการตรวจสอบ AE และ AWB ต่อไปนี้

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

uw_dynamic_range_patch_cell_8

รูปที่ 144 แผ่นสีเทาที่ถ่ายด้วยเลนส์ UW

w_dynamic_range_patch_cell_7

รูปที่ 145 แผ่นสีเทาที่ถ่ายด้วยเลนส์ W

scene_ip

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

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

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

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

test_chart_gen2

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

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

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

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

test_default_jca_ip

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

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

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

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

  • การแสดงสี: ตรวจสอบว่าความแตกต่างของการแสดงสีระหว่างแอปกล้องเริ่มต้นกับ JCA ไม่เกิน 6

ผ่าน: การทดสอบผ่านการตรวจสอบ FoV, ความสว่าง และไวต์บาลานซ์ ใน Android 16 การทดสอบนี้ไม่ได้บังคับ (NOT_YET_MANDATED) สำหรับ Android 17 ขึ้นไป ระบบจะบังคับให้ตรวจสอบความเท่าเทียมกันของ FoV, ความสว่าง และสมดุลแสงขาว การตรวจสอบการแสดงผลสีไม่ได้บังคับ (NOT_YET_MANDATED) ใน Android 17

test_jca_jpegr_ip

ยืนยันว่าความแตกต่างของสมดุลแสงขาวระหว่างภาพตัวอย่าง JCA ของ JPEG_R และภาพที่ถ่ายไม่เกิน 4

API ที่ทดสอบ:

ผ่าน: ความแตกต่างของสมดุลแสงขาวระหว่างสแนปชอตตัวอย่าง JCA กับรูปภาพ JPEG_R ที่ถ่ายอยู่ในเกณฑ์ (ค่าเริ่มต้นคือ 4)

sensor_fusion

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

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

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

แผนภูมิการรวมเซ็นเซอร์ในอุปกรณ์ทดสอบ

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

test_lens_intrinsic_calibration

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

API ที่ทดสอบ:

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

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

test_lens_intrinsic_calibration_example.png

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

test_multi_camera_frame_sync

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

API ที่ทดสอบ:

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

test_preview_distortion

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

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

test_preview_distortion_example.jpg

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

API ที่ทดสอบ:

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

test_preview_stabilization

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

API ที่ทดสอบ:

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

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

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

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

test_sensor_fusion

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

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

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

    ตัวอย่างเหตุการณ์เครื่องวัดการหมุน test_sensor_fusion

    รูปที่ 153 ตัวอย่างเหตุการณ์เครื่องวัดการหมุน test_sensor_fusion

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

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

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

API ที่ทดสอบ:

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

กลไกการทำงานที่ล้มเหลว

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

test_video_stabilization

เลิกใช้งาน: การทดสอบนี้เลิกใช้งานแล้วตั้งแต่ Android 17 สำหรับ Android 17 ขึ้นไป การทดสอบนี้จะแทนที่ด้วย test_video_stabilization_jca

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

API ที่ทดสอบ:

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

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

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

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

test_video_stabilization_jca

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

API ที่ทดสอบ:

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

ฉากทดสอบที่ใช้ตัวกระจายแสง

scene5

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

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

scene5 example

รูปที่ 157 ตัวอย่างการจับภาพฉากที่ 5

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

test_lens_shading_and_color_uniformity

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

API ที่ทดสอบ:

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

กลไกการทำงานที่ล้มเหลว

  • รูปภาพมีขอบมืดมากเกินไป
  • อาร์ติแฟกต์ขอบสีดำในรูปภาพ

test_lens_shading_and_color_uniformity_y_plane

รูปที่ 158 test_lens_shading_and_color_uniformity_y_plane

test_lens_shading_and_color_uniformity_color_uniformity_result

รูปที่ 159 test_lens_shading_and_color_uniformity_color_uniformity

test_lens_shading_and_color_uniformity_lens_shading_result

รูปที่ 160 test_lens_shading_and_color_uniformity_lens_shading_result

ฉากทดสอบที่ใช้แท็บเล็ตที่มีขอบเขตสีกว้าง

scene_wide_gamut

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

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

test_display_p3

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

API ที่ทดสอบ:

ผ่าน: JPEG มีโปรไฟล์ ICC Display P3 และสีมากกว่า 1% อยู่นอกขอบเขต sRGB

test_display_p3 example

รูปที่ 161 ตัวอย่าง test_display_p3