หน้านี้แสดงรายการการทดสอบทั้งหมดภายใต้ชุดโปรแกรมทดสอบรูปภาพจากกล้อง (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 และ RAWscene2: การตรวจจับใบหน้า การทดสอบที่ต้องใช้ฉากสีscene3: การปรับปรุงขอบ การเคลื่อนไหวของเลนส์scene4: สัดส่วนภาพ การครอบตัด ขอบเขตการมองเห็นscene6: Zoomscene7: สวิตช์กล้องหลายตัวscene8: การวัดแสงตามภูมิภาคสำหรับการเปิดรับแสงอัตโนมัติ (AE) และสมดุลแสงขาวอัตโนมัติ (AWB)scene9: การบีบอัด JPEGscene_extensions: ส่วนขยายกล้องscene_tele: การเปลี่ยนเลนส์เทเลโฟโต้scene_video: เฟรมตก
ฉากทดสอบที่อิงตามอุปกรณ์ Gen2 / sensor_fusion
feature_combination: การรวมฟีเจอร์scene_flash: แฟลชอัตโนมัติ, อัตราเฟรมขั้นต่ำscene_gen2_chart: การทดสอบโดยใช้แผนภูมิกระดาษ Gen2scene_ip: ความเท่าเทียมกันของรูปภาพระหว่างแอปกล้องเริ่มต้นกับ Jetpack Camera App (JCA)sensor_fusion: ออฟเซ็ตเวลาของกล้องและเครื่องวัดการหมุน
scene5: การปรับแสงเงาของเลนส์
ฉากทดสอบที่ใช้แท็บเล็ตซึ่งมีขอบเขตสีกว้าง
scene_wide_gamut: โปรไฟล์และช่วงสีที่กว้าง
ดูคำอธิบายของแต่ละฉากได้ในส่วนที่เกี่ยวข้อง
ฉากทดสอบที่ใช้แท็บเล็ต
scene0
การทดสอบไม่จำเป็นต้องมีข้อมูลฉากที่เฉพาะเจาะจง อย่างไรก็ตาม โทรศัพท์ต้องอยู่นิ่งๆ เพื่อทดสอบเครื่องวัดการหมุนและการสั่น
test_jitter
วัดความกระวนกระวายใจในการประทับเวลาของกล้อง
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
ผ่าน: มีเดลต้าอย่างน้อย 30 มิลลิวินาทีระหว่างเฟรม
ในรูปต่อไปนี้ โปรดสังเกตช่วงแกน Y ขนาดเล็ก ความผันผวนในแผนภาพนี้ มีขนาดเล็กมาก
รูปที่ 1 test_jitter plot
test_metadata
ทดสอบความถูกต้องของรายการข้อมูลเมตา โดยดูที่ผลลัพธ์การจับภาพและออบเจ็กต์ลักษณะเฉพาะของกล้อง การทดสอบนี้ใช้ค่าการรับแสงและค่าเกน auto_capture_request เนื่องจากเนื้อหารูปภาพไม่สำคัญ การทดสอบนี้เป็นการทดสอบที่ล้มเหลวอย่างรวดเร็วเนื่องจากใช้เวลาสั้นๆ ในการรัน ต้องมีการตั้งค่าเพียงเล็กน้อย และส่งสัญญาณว่าการทดสอบจำนวนมากไม่ผ่านในขั้นตอนถัดไป
ไม่ควรเรียกใช้ชุดโปรแกรมทดสอบทั้งหมดจนกว่า test_metadata จะ "ผ่าน"
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVELandroid.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPEandroid.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERNandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
ผ่าน: ระดับฮาร์ดแวร์, rollingShutterSkew, แท็ก frameDuration, timestampSource, croppingType, blackLevelPattern, pixel_pitch, ขอบเขตการมองเห็น (FoV) และระยะไฮเปอร์โฟคัลมีอยู่และมีค่าที่ถูกต้อง
test_request_capture_match
ทดสอบว่าอุปกรณ์เขียนค่าการเปิดรับแสงและค่าเกนที่ถูกต้องโดยการอ่านข้อมูลเมตาของการจับภาพอีกครั้ง การทดสอบนี้เป็นการทดสอบที่ล้มเหลวอย่างรวดเร็วเนื่องจากต้องมีการตั้งค่าเพียงเล็กน้อยและส่งสัญญาณว่าการทดสอบจำนวนมากไม่ผ่านในขั้นตอนถัดไป
ไม่ควรเรียกใช้ชุดโปรแกรมทดสอบทั้งหมดจนกว่า test_request_capture_match จะผ่าน
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
ผ่าน: ค่าข้อมูลเมตาของคำขอและการจับภาพตรงกันในทุกช็อต
test_sensor_events
สำหรับการทดสอบอุปกรณ์ที่โฆษณาว่ารองรับการรวมเซ็นเซอร์ การทดสอบนี้จะตรวจสอบว่าอุปกรณ์ค้นหาและพิมพ์เหตุการณ์เซ็นเซอร์หรือไม่ เซ็นเซอร์ที่คาดไว้คือตัวตรวจวัดความเร่ง เครื่องวัดการหมุน และเครื่องวัดค่าความเข้มข้นของสนามแม่เหล็ก การทดสอบนี้จะทำงานก็ต่อเมื่อหน้าจอเปิดอยู่ ซึ่งหมายความว่าอุปกรณ์ไม่ได้อยู่ในโหมดสแตนด์บาย การทดสอบนี้เป็นการทดสอบที่ล้มเหลวอย่างรวดเร็วเนื่องจากใช้เวลาสั้นๆ ต้องมีการตั้งค่าเพียงเล็กน้อย และส่งสัญญาณว่าการทดสอบการรวมเซ็นเซอร์ล้มเหลวในขั้นตอนถัดไป การทดสอบฉาก sensor_fusion ไม่ควรทำงาน เว้นแต่ test_sensor_events จะเป็น PASS หรือ SKIP
API ที่ทดสอบ:
ผ่าน: ได้รับเหตุการณ์สำหรับเซ็นเซอร์แต่ละตัว
test_solid_color_test_pattern
ทดสอบว่าระบบสร้างรูปแบบการทดสอบสีทึบอย่างถูกต้องสำหรับการปิดเสียงกล้อง หากรองรับการปิดเสียงกล้อง ก็ต้องรองรับรูปแบบการทดสอบสีทึบด้วย หากไม่รองรับการปิดเสียงกล้อง ระบบจะทดสอบรูปแบบการทดสอบสีทึบก็ต่อเมื่อมีการโฆษณาความสามารถดังกล่าวเท่านั้น
หากรองรับรูปภาพ RAW ระบบจะทดสอบการกำหนดสีด้วย สีที่ทดสอบ ได้แก่ ดำ ขาว แดง น้ำเงิน และเขียว สำหรับกล้องที่ไม่รองรับรูปภาพ RAW จะมีการทดสอบเฉพาะสีดำเท่านั้น
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATAandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
ผ่าน: รูปแบบการทดสอบสีทึบที่รองรับมีสีที่ถูกต้องและมีความแปรปรวนต่ำในรูปภาพ
test_test_pattern
ทดสอบพารามิเตอร์ android.sensor.testPatternMode เพื่อจับภาพเฟรมสำหรับรูปแบบการทดสอบที่ถูกต้องแต่ละรูปแบบ และตรวจสอบว่าเฟรมสร้างขึ้นอย่างถูกต้องสำหรับสีทึบและแถบสี การทดสอบนี้ประกอบด้วยขั้นตอนต่อไปนี้
- จับภาพสำหรับรูปแบบการทดสอบที่รองรับทั้งหมด
- ตรวจสอบความถูกต้องของรูปแบบการทดสอบสีทึบและแถบสี
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
ผ่าน: ระบบสร้างรูปแบบการทดสอบที่รองรับอย่างถูกต้อง
รูปที่ 2 ตัวอย่าง test_test_patterns
test_tonemap_curve
ทดสอบการแปลงรูปแบบการทดสอบจากข้อมูลดิบเป็น YUV ด้วยโทนแมปเชิงเส้น การทดสอบนี้ต้องใช้ android.sensor.testPatternMode = 2 (COLOR_BARS) เพื่อสร้างรูปแบบรูปภาพที่สมบูรณ์แบบสำหรับการแปลงโทนแมป ยืนยันว่าไปป์ไลน์มีเอาต์พุตสีที่เหมาะสมพร้อมโทนแมปเชิงเส้นและอินพุตรูปภาพที่เหมาะสม (ขึ้นอยู่กับ test_test_patterns)
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน: YUV และ RAW มีลักษณะคล้ายกัน
รูปที่ 3 ตัวอย่างไฟล์ RAW ของ test_tonemap_curve
รูปที่ 4 ตัวอย่าง YUV ของ test_tonemap_curve
test_unified_timestamp
ทดสอบว่าเหตุการณ์ของเซ็นเซอร์รูปภาพและเซ็นเซอร์ตรวจจับการเคลื่อนไหวอยู่ในโดเมนเวลาเดียวกันหรือไม่ การทดสอบนี้เป็นการทดสอบที่ล้มเหลวอย่างรวดเร็วเนื่องจากใช้เวลาสั้นๆ ในการทำงาน ต้องมีการตั้งค่าเพียงเล็กน้อย และส่งสัญญาณว่าการทดสอบการรวมเซ็นเซอร์ล้มเหลวในขั้นตอนถัดไป การทดสอบฉาก sensor_fusion ไม่ควรทำงาน เว้นแต่ test_unified_timestamp จะเป็น "ผ่าน" หรือ "ข้าม"
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.hardware.Sensor#TYPE_GYROSCOPE
ผ่าน: การประทับเวลาของการเคลื่อนไหวอยู่ระหว่างการประทับเวลาของรูปภาพ 2 รูป
test_vibration_restriction
ทดสอบว่าการสั่นของอุปกรณ์ทำงานตามที่คาดไว้หรือไม่
API ที่ทดสอบ:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.os.Vibratorandroid.hardware.camera2.CameraDevice#setCameraAudioRestriction
ผ่าน: อุปกรณ์ไม่สั่นเมื่อปิดเสียงโดย API การจำกัดเสียงของกล้อง
scene1_1
scene1 เป็นแผนภูมิสีเทา ชาร์ตสีเทาต้องครอบคลุมพื้นที่ 30% ตรงกลางของขอบเขตการมองเห็นของกล้อง แผนภูมิสีเทาคาดว่าจะท้าทาย 3A (AE, AWB และ AF) ในระดับปานกลางเนื่องจากบริเวณตรงกลางไม่มีฟีเจอร์
อย่างไรก็ตาม คำขอจับภาพจะระบุทั้งฉากซึ่งมีฟีเจอร์ที่เพียงพอสำหรับ 3A ในการรวมเข้าด้วยกัน
กล้อง RFoV สามารถทดสอบได้ในอุปกรณ์ทดสอบ WFoV หรือ RFoV หากทดสอบกล้อง RFoV ในอุปกรณ์ทดสอบ WFoV แผนภูมิจะปรับขนาดลง 2/3 เพื่อระบุขอบเขตบางอย่างสำหรับแผนภูมิสีเทาใน FoV เพื่อช่วยให้ 3A บรรจบกัน ดูคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับอุปกรณ์ทดสอบกล้องได้ที่ Camera ITS-in-a-box
รูปที่ 5 แผนภูมิ Scene1 ขนาดเต็ม (ซ้าย) แผนภูมิที่ปรับขนาด 2/3 (ขวา)
test_ae_precapture_trigger
ทดสอบเครื่องจักรสถานะ AE เมื่อใช้ทริกเกอร์การจับภาพล่วงหน้า บันทึกคำขอด้วยตนเอง 5 รายการโดยปิดใช้ AE คำขอล่าสุดมีทริกเกอร์การจับภาพล่วงหน้า AE ซึ่งควรละเว้นเนื่องจาก AE ปิดอยู่
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATE
ผ่าน: AE บรรจบกัน
test_auto_vs_manual
การทดสอบที่จับภาพอัตโนมัติและภาพที่จับด้วยตนเองจะมีลักษณะเหมือนกัน
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
ผ่าน: อัตราขยายสมดุลแสงขาวแบบแมนนวลและการแปลงที่รายงานในผลลัพธ์การจับภาพแต่ละรายการตรงกับสมดุลแสงขาวอัตโนมัติ estimate จากอัลกอริทึม 3A ของกล้อง
รูปที่ 6 ตัวอย่าง test_auto_vs_manual auto
รูปที่ 7 ตัวอย่างสมดุลแสงขาว test_auto_vs_manual
รูปที่ 8 ตัวอย่างการเปลี่ยนรูปแบบสมดุลแสงขาวด้วยตนเองของ test_auto_vs_manual
test_black_white
ทดสอบว่าอุปกรณ์สร้างรูปภาพขาวดำแบบเต็ม จับภาพ 2 ภาพ โดยภาพแรกมีอัตราขยายต่ำมากและเปิดรับแสงสั้น ซึ่งส่งผลให้ได้ภาพสีดำ และภาพที่ 2 มีอัตราขยายสูงมากและเปิดรับแสงนาน ซึ่งส่งผลให้ได้ภาพสีขาว
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: สร้างรูปภาพขาวดำ ช่องที่อิ่มตัวของรูปภาพสีขาวมีค่า RGB เป็น [255, 255, 255] โดยมีส่วนต่างข้อผิดพลาดน้อยกว่า 1%
รูปที่ 9 test_black_white, ตัวอย่างสีดำ
รูปที่ 10 test_black_white, ตัวอย่างสีขาว
รูปที่ 11 test_black_white, ตัวอย่างค่าเฉลี่ยของพล็อต
test_burst_capture
ยืนยันว่าไปป์ไลน์การจับภาพทั้งหมดสามารถทำงานได้ทันกับความเร็วของการจับภาพขนาดเต็มและเวลา CPU
API ที่ทดสอบ:
ผ่าน: จับภาพต่อเนื่องขนาดเต็ม ตรวจสอบเฟรมที่หายไปและความสว่างของรูปภาพ
test_burst_sameness_manual
ถ่ายภาพต่อเนื่อง 5 ครั้ง ครั้งละ 50 ภาพด้วยการตั้งค่าการจับภาพด้วยตนเอง และตรวจสอบว่าภาพทั้งหมดเหมือนกัน ใช้การทดสอบนี้เพื่อระบุว่ามีเฟรมที่กระจัดกระจายซึ่งได้รับการประมวลผลแตกต่างกันหรือมีอาร์ติแฟกต์หรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSORandroid.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
ผ่าน: รูปภาพเหมือนกันทั้งในด้านภาพและค่า RGB
ไม่ผ่าน: แสดงแผนภูมิค่าเฉลี่ย RGB ที่พุ่งสูงขึ้นหรือลดลงอย่างรวดเร็วที่จุดเริ่มต้นของแต่ละชุดภาพต่อเนื่อง
- ความคลาดเคลื่อนคือ 3% สำหรับ
first_API_level< 30 - ความคลาดเคลื่อนคือ 2% สำหรับ
first_API_level>= 30
รูปที่ 12 ตัวอย่างค่าเฉลี่ย test_burst_sameness_manual
รูปที่ 13 test_burst_sameness_manual_plot_means
test_crop_region_raw
ทดสอบว่าสตรีม RAW ครอบตัดไม่ได้
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureResult#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
ผ่าน: รูปภาพ YUV จะถูกครอบตัดตรงกลาง แต่รูปภาพ RAW จะไม่ถูกครอบตัด
รูปที่ 14 ตัวอย่างการครอบตัดไฟล์ RAW ของ test_crop_region_raw comp
รูปที่ 15 ตัวอย่างแบบเต็มของ test_crop_region_raw comp raw
รูปที่ 16 ตัวอย่างการครอบตัด YUV ของการเปรียบเทียบ test_crop_region_raw
รูปที่ 17 ตัวอย่าง test_crop_region_raw YUV แบบเต็ม
test_crop_regions
ทดสอบว่าพื้นที่ครอบตัดทำงานได้ ใช้รูปภาพเต็มและสร้างแพตช์ของ 5 ภูมิภาคที่แตกต่างกัน (มุมและตรงกลาง) ถ่ายภาพโดยตั้งค่าการครอบตัดสำหรับ 5 ภูมิภาค เปรียบเทียบค่าของแพตช์และรูปภาพที่ครอบตัด
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
ผ่าน: รูปภาพของพื้นที่ที่ครอบตัดตรงกับแพตช์ที่สอดคล้องกับรูปภาพที่ครอบตัด
test_ev_compensation
ทดสอบว่ามีการใช้การชดเชยค่าการรับแสง (EV) การทดสอบประกอบด้วย ส่วนพื้นฐานและส่วนขั้นสูง
ส่วนพื้นฐานจะทดสอบว่ามีการใช้การชดเชย EV โดยใช้ช่วงที่สร้างด้วย CONTROL_AE_COMPENSATION_STEP ระบบจะจับภาพ 8 เฟรมที่ค่าการชดเชยแต่ละค่า
ส่วนขั้นสูงจะเพิ่มการเปิดรับแสงใน 8 ขั้นตอน และตรวจสอบความสว่างที่วัดได้เทียบกับความสว่างที่คาดไว้ ค่าที่คาดหวังจะคำนวณจากความสว่างของรูปภาพที่ไม่มีการใช้การชดเชย EV และค่าที่คาดหวังจะอิ่มตัวหากค่าที่คำนวณได้เกินช่วงค่ารูปภาพจริง การทดสอบจะล้มเหลวหากค่าที่คาดไว้และค่าที่วัดได้ไม่ตรงกัน หรือหากรูปภาพมีแสงมากเกินไปภายใน 5 ขั้นตอน
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATIONandroid.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCKandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
ผ่านเกณฑ์พื้นฐาน: รูปภาพแสดงการเปิดรับแสงที่เพิ่มขึ้นโดยไม่เปิดรับแสงมากเกินไปภายใน 5 ขั้นตอน
รูปที่ 18 test_ev_compensation_basic
การผ่านส่วนขั้นสูง: จับภาพความสว่างที่เพิ่มขึ้นเมื่อการตั้งค่าการชดเชย EV เพิ่มขึ้น เฟรม 8 เฟรมที่จับภาพสำหรับการตั้งค่าการชดเชย EV แต่ละรายการมีค่า Luma ที่คงที่
รูปที่ 19 test_ev_compensation_advanced_plot_means
test_exposure_x_iso
ทดสอบว่าได้รับค่าแสงคงที่เมื่อ ISO และเวลาเปิดรับแสงแตกต่างกัน ถ่ายภาพชุดที่มี ISO และเวลาเปิดรับแสงที่เลือกไว้เพื่อปรับสมดุลซึ่งกันและกัน
ผลลัพธ์ควรมีความสว่างเท่ากัน แต่เมื่อลำดับภาพดำเนินไป ภาพควรมีนอยส์มากขึ้น ยืนยันว่าค่าเฉลี่ยของพิกเซลตัวอย่างใกล้เคียงกัน ตรวจสอบว่ารูปภาพไม่ได้ถูกจำกัดไว้ที่ 0 หรือ 1 (ซึ่งจะทำให้รูปภาพดูเหมือนเส้นแบนๆ) นอกจากนี้ คุณยังเรียกใช้การทดสอบด้วยรูปภาพ RAW ได้โดยตั้งค่าแฟล็ก debug ในไฟล์การกำหนดค่า
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: รูปภาพมีความสว่างเท่ากัน แต่มีนอยส์มากขึ้นเมื่อใช้ ISO สูงขึ้น ระนาบ RGB จะแบนเมื่อค่าของ ISO*exposure คงที่ตลอดพื้นที่เกนที่ทดสอบ
กลไกการไม่ผ่าน: ในรูปต่อไปนี้ เมื่อค่าตัวคูณเกน (แกน X) เพิ่มขึ้น ค่าเฉลี่ยระนาบ RGB ที่ปรับมาตรฐานแล้ว (แกน Y) จะเริ่มเบี่ยงเบนจากค่าตัวคูณเกนต่ำ
รูปที่ 20 test_exposure_plot_means
รูปที่ 21 test_exposure_mult=1.00
รูปที่ 22 test_exposure_mult=64.00
test_latching
ทดสอบว่าการตั้งค่า (การรับแสงและอัตราขยาย) ล็อกเฟรมที่ถูกต้องสำหรับกล้อง FULL และ LEVEL_3 ถ่ายภาพชุดโดยใช้คำขอแบบต่อเนื่อง
โดยเปลี่ยนพารามิเตอร์คำขอจับภาพระหว่างการถ่ายภาพแต่ละครั้ง ตรวจสอบว่ารูปภาพมีพร็อพเพอร์ตี้ที่คาดไว้
API ที่ทดสอบ:
ผ่าน: รูปภาพ [2, 3, 6, 8, 10, 12, 13] มี ISO หรือการเปิดรับแสงเพิ่มขึ้น และแสดงค่าเฉลี่ย RGB ที่สูงขึ้นในแผนภาพในรูปต่อไปนี้
รูปที่ 23 ตัวอย่างค่าเฉลี่ยของแผนภาพ test_latching
รูปที่ 24 test_latching i=00
รูปที่ 25 test_latching i=01
รูปที่ 26 test_latching i=02
รูปที่ 27 test_latching i=03
รูปที่ 28 test_latching i=04
รูปที่ 29 test_latching i=05
รูปที่ 30 test_latching i=06
รูปที่ 31 test_latching i=07
รูปที่ 32 test_latching i=08
รูปที่ 33 test_latching i=09
รูปที่ 34 test_latching i=10
รูปที่ 35 test_latching i=11
รูปที่ 36 test_latching i=12
test_linearity
ทดสอบว่าการประมวลผลอุปกรณ์สามารถเปลี่ยนกลับเป็นพิกเซลเชิงเส้นได้ จับภาพต่อเนื่องโดยเล็งอุปกรณ์ไปที่เป้าหมายที่สม่ำเสมอ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCKandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน: ค่า R, G, B ต้องเพิ่มขึ้นเป็นเส้นตรงเมื่อความไวเพิ่มขึ้น
รูปที่ 37 ตัวอย่างค่าเฉลี่ยของพล็อต test_linearity
test_locked_burst
ทดสอบการล็อก 3A และการถ่ายภาพต่อเนื่องแบบ YUV (โดยใช้การตั้งค่าอัตโนมัติ) การทดสอบนี้ออกแบบมาให้ผ่านแม้ในอุปกรณ์ที่มีข้อจำกัดซึ่งไม่มี MANUAL_SENSOR หรือ PER_FRAME_CONTROLS
การทดสอบจะตรวจสอบความสอดคล้องของรูปภาพ YUV ขณะที่การตรวจสอบอัตราเฟรมอยู่ใน CTS
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
ผ่าน: ภาพที่จับภาพได้ดูสอดคล้องกัน
รูปที่ 38 ตัวอย่าง test_locked_burst frame0
รูปที่ 39 ตัวอย่าง test_locked_burst frame1
รูปที่ 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 ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
ผ่าน: ค่า R และ B เพิ่มขึ้นตามการเปลี่ยนรูปแบบ
รูปที่ 41 ตัวอย่างค่าเฉลี่ยของพล็อต test_param_color_correction
ในรูปต่อไปนี้ แกน X คือคำขอการจับภาพ: 0 = ความสม่ำเสมอ, 1 = การเพิ่มสีแดง และ 2 = การเพิ่มสีน้ำเงิน
รูปที่ 42 ตัวอย่าง test_param_color_correction req=0 unity
รูปที่ 43 ตัวอย่างการเพิ่มสีแดง req=1 ของ test_param_color_correctness
รูปที่ 44 ตัวอย่าง req=2 ของ test_param_color_correction สำหรับการเพิ่มสีน้ำเงิน
test_param_flash_mode
ทดสอบว่ามีการใช้พารามิเตอร์ android.flash.mode ตั้งค่าการรับแสงให้มืดด้วยตนเอง เพื่อให้เห็นได้ชัดเจนว่าแฟลชทำงานหรือไม่ และใช้การแมปโทนสีเชิงเส้น ตรวจสอบตรงกลางด้วยรูปภาพไทล์เพื่อดูว่ามีการไล่ระดับสีขนาดใหญ่ที่สร้างขึ้นเพื่อยืนยันว่าแฟลชทำงานหรือไม่
API ที่ทดสอบ:
ผ่าน: ตรงกลางของรูปภาพไทล์มีการไล่ระดับสีขนาดใหญ่ ซึ่งหมายความว่าแฟลชทำงาน
รูปที่ 45 ตัวอย่าง test_param_flash_mode 1
รูปที่ 46 ตัวอย่างไทล์ test_param_flash_mode 1 รายการ
รูปที่ 47 ตัวอย่าง 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 จะแตกต่างกันไปตามโหมดการลดเสียงรบกวนต่างๆ และมีลักษณะการทำงานคล้ายกับกราฟต่อไปนี้
รูปที่ 49 ตัวอย่าง SNR ของพล็อต test_param_noise_reduction
0: ปิด, 1: เร็ว, 2: คุณภาพสูง, 3: ต่ำสุด , 4: ZSL
รูปที่ 50 ตัวอย่าง test_param_noise_reduction high gain nr=0
รูปที่ 51 ตัวอย่าง test_param_noise_reduction high gain nr=1
รูปที่ 52 ตัวอย่าง test_param_noise_reduction high gain nr=2
รูปที่ 53 ตัวอย่าง test_param_noise_reduction high gain nr=3
รูปที่ 54 ตัวอย่างอัตราขยายต่ำของ test_param_noise_reduction
test_param_shading_mode
ทดสอบว่ามีการใช้พารามิเตอร์ android.shading.mode
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
ผ่าน: มีการเปลี่ยนโหมดการปรับแสงเงาและแก้ไขแผนที่การปรับแสงเงาของเลนส์ตามที่คาดไว้
รูปที่ 55 ตัวอย่างแผนที่การปรับแสงเงาของเลนส์ test_param_shading_mode, โหมด 0 ลูป 0
รูปที่ 56 ตัวอย่างแผนที่การปรับแสงเงาของเลนส์ test_param_shading_mode, โหมด 1 ลูป 0
รูปที่ 57 ตัวอย่างแผนที่การปรับแสงเงาของเลนส์ test_param_shading_mode, โหมด 2 ลูป 0
test_param_tonemap_mode
ทดสอบว่ามีการใช้พารามิเตอร์ android.tonemap.mode ใช้เส้นโค้งการแมปโทนที่แตกต่างกันกับแต่ละช่อง R, G, B และตรวจสอบว่ารูปภาพเอาต์พุตได้รับการแก้ไขตามที่คาดไว้ การทดสอบนี้ประกอบด้วยการทดสอบ 2 รายการ ได้แก่ test1 และ test2
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
บัตร:
test1: รูปภาพทั้ง 2 รูปมีโทนแมปเชิงเส้น แต่n=1มีการไล่ระดับสีที่ชันกว่า ช่อง G (สีเขียว) จะสว่างกว่าสำหรับรูปภาพn=1test2: โทนแมปเดียวกัน แต่ความยาวต่างกัน รูปภาพเหมือนกัน
รูปที่ 58 test_param_tonemap_mode โดยที่ n=0
รูปที่ 59 test_param_tonemap_mode โดยที่ n=1
test_post_raw_sensitivity_boost
ตรวจสอบการเพิ่มความไวแบบข้อมูลดิบหลังการโพสต์ จับภาพชุดภาพดิบและภาพ YUV ที่มีความไวแสงต่างกัน โพสต์ชุดค่าผสมการเพิ่มความไวแสงของภาพดิบ และตรวจสอบว่าค่าเฉลี่ยพิกเซลเอาต์พุตตรงกับการตั้งค่าคำขอหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGEandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: รูปภาพ RAW จะมืดลงเมื่อการเพิ่มความสว่างเพิ่มขึ้น ขณะที่ความสว่างของรูปภาพ YUV ยังคงที่
รูปที่ 60 ตัวอย่าง test_post_raw_sensitivity_boost raw s=3583 boost=0100
รูปที่ 61 ตัวอย่าง test_post_raw_sensitivity_boost raw s=1792 boost=0200
รูปที่ 62 ตัวอย่าง test_post_raw_sensitivity_boost raw s=0896 boost=0400
รูปที่ 63 ตัวอย่าง test_post_raw_sensitivity_boost raw s=0448 boost=0800
รูปที่ 64 ตัวอย่าง test_post_raw_sensitivity_boost raw s=0224 boost=1600
รูปที่ 65 ตัวอย่าง test_post_raw_sensitivity_boost raw s=0112 boost=3199
รูปที่ 66 ค่าเฉลี่ยของพล็อตข้อมูลดิบ test_post_raw_sensitivity_boost
รูปที่ 67 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=0112 boost=3199
รูปที่ 68 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=0448 boost=0800
รูปที่ 69 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=0896 boost=0400
รูปที่ 70 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=1792 boost=0200
รูปที่ 71 ตัวอย่าง test_post_raw_sensitivity_boost YUV s=3585 boost=0100
รูปที่ 72 ตัวอย่าง test_post_raw_sensitivity_boost_yuv_plot_means
test_raw_exposure
จับภาพชุดภาพดิบที่มีเวลาเปิดรับแสงเพิ่มขึ้นและวัดค่าพิกเซล
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
ผ่าน: การเพิ่ม ISO (เกน) จะทำให้พิกเซลไวต่อแสงมากขึ้น ดังนั้นพล็อตจึงเลื่อนไปทางซ้าย
รูปที่ 73 ตัวอย่าง test_raw_exposure ISO=55
10⁰ คือ 1 มิลลิวินาที 10¹ คือ 10 มิลลิวินาที และ 10⁻¹ คือ 0.1 มิลลิวินาที
รูปที่ 74 ตัวอย่าง test_raw_exposure ISO=132
รูปที่ 75 ตัวอย่าง test_raw_exposure ISO=209
รูปที่ 76 ตัวอย่าง test_raw_exposure ISOs=286
รูปที่ 77 ตัวอย่าง test_raw_exposure ISO=363
รูปที่ 78 ตัวอย่าง test_raw_exposure ISO=440
test_reprocess_noise_reduction
การทดสอบที่ใช้ android.noiseReduction.mode สำหรับคำขอประมวลผลอีกครั้ง
จับภาพที่ประมวลผลใหม่โดยใช้กล้องที่มีแสงสลัว ใช้เกนแอนะล็อกสูงเพื่อยืนยันว่ารูปภาพที่ถ่ายมีนอยส์ จับภาพที่ประมวลผลใหม่ 3 ภาพสำหรับ NR ปิด, เร็ว และคุณภาพสูง จับภาพที่ประมวลผลใหม่โดยมีอัตราขยายต่ำและปิด NR และใช้ความแปรปรวนของภาพนี้เป็นเกณฑ์พื้นฐาน
API ที่ทดสอบ:
ผ่าน: FAST >= OFF, HQ >= FAST และ HQ >> OFF
รูปที่ 79 ตัวอย่างพล็อต SNR เทียบกับโหมด NR ทั่วไป
test_tonemap_sequence
ทดสอบลำดับช็อตที่มีเส้นโค้งการแมปโทนสีที่แตกต่างกัน จับภาพด้วยตนเอง 3 ภาพ ด้วยโทนแมปเชิงเส้น จับภาพด้วยตนเอง 3 ภาพด้วยโทนแมปเริ่มต้น คำนวณเดลต้าระหว่างเฟรมที่ต่อเนื่องกันแต่ละคู่
API ที่ทดสอบ:
ผ่าน: มีเฟรมที่เหมือนกัน 3 เฟรม ตามด้วยเฟรมที่เหมือนกันอีก 3 เฟรมซึ่งแตกต่างจากชุดแรก
รูปที่ 80 ตัวอย่าง test_tonemap_sequence i=0
รูปที่ 81 ตัวอย่าง test_tonemap_sequence i=1
รูปที่ 82 ตัวอย่าง test_tonemap_sequence i=2
รูปที่ 83 ตัวอย่าง test_tonemap_sequence i=3
รูปที่ 84 ตัวอย่าง test_tonemap_sequence i=4
รูปที่ 85 ตัวอย่าง test_tonemap_sequence i=5
test_yuv_jpeg_all
ทดสอบว่าขนาดและรูปแบบที่รายงานทั้งหมดสำหรับการจับภาพใช้งานได้ ใช้คำขอด้วยตนเองที่มีโทนแมปเชิงเส้นเพื่อให้ YUV และ JPEG มีลักษณะเหมือนกันเมื่อแปลงโดยโมดูล image_processing_utils ระบบจะไม่บันทึกรูปภาพโดยค่าเริ่มต้น แต่คุณสามารถบันทึกได้โดยเปิดใช้ debug_mode
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
ผ่าน: ศูนย์กลางรูปภาพทั้งหมดมีค่าความแตกต่างของค่าเฉลี่ยกำลังสอง (RMS) (ค่าของสัญญาณ) สูงสุดในรูปภาพที่แปลงเป็น RGB โดยมีรูปภาพ YUV ความละเอียดสูงสุด 3%
รูปที่ 86 ตัวอย่าง test_yuv_jpeg_all
test_yuv_plus_dng
ทดสอบว่าขนาดและรูปแบบที่รายงานสำหรับการจับภาพใช้งานได้
API ที่ทดสอบ:
ผ่าน: การทดสอบเสร็จสมบูรณ์และแสดงรูปภาพที่ขอ
รูปที่ 87 ตัวอย่าง test_yuv_plus_dng
scene1_3
scene 1_3 เป็นสำเนาที่เหมือนกันทุกประการกับ scene 1_1 โดยใช้โครงสร้างฉากย่อยเพื่อลดระยะเวลาที่ยาวนานของ scene 1
test_capture_result
ทดสอบว่าข้อมูลที่ถูกต้องแสดงผลในออบเจ็กต์ CaptureResult การทดสอบประกอบด้วยการจับภาพอัตโนมัติ การจับภาพด้วยตนเอง และการจับภาพอัตโนมัติครั้งที่ 2
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน: ข้อมูลเมตาถูกต้องสำหรับการจับภาพทั้งหมด และการตั้งค่าด้วยตนเองจะไม่รั่วไหลไปยังการจับภาพอัตโนมัติครั้งที่ 2 วางแผนการแก้ไขการปรับแสงเงาของเลนส์สำหรับการจับภาพ
รูปที่ 88 test_capture_result_plot_lsc_auto_ch0
test_dng_noise_model
ยืนยันว่าพารามิเตอร์โมเดลข้อมูลดิบ DNG ถูกต้อง แผนภาพแสดงความแปรปรวนที่วัดได้ของแพตช์ตรงกลางของการ์ดสีเทาในภาพดิบที่ถ่ายในช่วงความไวแสงต่างๆ และเปรียบเทียบค่าเหล่านี้กับความแปรปรวนที่คาดไว้ที่ความไวแสงแต่ละระดับโดยโมเดลนอยส์ DNG ใน HAL ของกล้อง (อิงตามพารามิเตอร์ O,S ที่แสดงผลในออบเจ็กต์ผลลัพธ์การจับภาพ) ดูรายละเอียดเพิ่มเติมเกี่ยวกับโมเดลนอยส์ DNG ได้โดยดาวน์โหลดเอกสารเกี่ยวกับโมเดลนอยส์ DNG
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: พารามิเตอร์โมเดลไฟล์ข้อมูลดิบ DNG ถูกต้อง ค่า RGB ที่คาดไว้ตรงกับค่า RGB จริงที่วัดได้
รูปที่ 89 test_dng_noise_model_plog
test_jpeg
การทดสอบที่รูปภาพ YUV ที่แปลงแล้วและรูปภาพ JPEG ของอุปกรณ์มีลักษณะเหมือนกัน การทดสอบจะใช้พื้นที่ 10% ตรงกลางของรูปภาพและคำนวณค่า RGB และยืนยันว่าค่าดังกล่าวตรงกัน
API ที่ทดสอบ:
ผ่าน: ความแตกต่างของ RGB โดยเฉลี่ยระหว่างแต่ละรูปภาพน้อยกว่า 3%
รูปที่ 90 test_jpeg_fmt=jpg.jpg
รูปที่ 91 test_jpeg=fmt=yuv.jpg
test_raw_burst_sensitivity
จับภาพชุดข้อมูลดิบที่มีอัตราขยายเพิ่มขึ้นและวัดสัญญาณรบกวน จับภาพแบบ Raw เท่านั้นในโหมดถ่ายต่อเนื่อง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
ผ่าน: แต่ละช็อตมีนอยส์มากกว่าช็อตก่อนหน้าเนื่องจากเกนเพิ่มขึ้น
ใช้ความแปรปรวนของเซลล์ตารางกริดสถิติส่วนกลาง
รูปที่ 92 test_raw_burst_sensitivity_variance
test_raw_sensitivity
จับภาพชุดภาพข้อมูลดิบที่มีความไวเพิ่มขึ้นและวัดสัญญาณรบกวน (ความแปรปรวน) ในส่วน 10% ตรงกลางของภาพ ทดสอบว่าแต่ละช็อตมีเสียงรบกวนมากกว่าช็อตก่อนหน้า
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
ผ่าน: ความแปรปรวนเพิ่มขึ้นตามการยิงแต่ละครั้ง
รูปที่ 93 test_raw_sensitivity_variance
test_yuv_plus_jpeg
ทดสอบการจับภาพเฟรมเดียวเป็นทั้งเอาต์พุต YUV และ JPEG ใช้คำขอด้วยตนเองที่มีโทนแมปเชิงเส้นเพื่อให้ YUV และ JPEG มีลักษณะเหมือนกันเมื่อแปลงโดยโมดูล image_processing_utils
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
ผ่าน: รูปภาพ YUV และ JPEG มีความคล้ายกันและมีค่า RMS (ค่าของสัญญาณ) แตกต่างกันน้อยกว่า 1%
รูปที่ 94 test_yuv_plus_jpeg ที่มีรูปแบบ JPEG
รูปที่ 95 test_yuv_plus_jpeg ที่มีรูปแบบ YUV
test_yuv_plus_raw
ทดสอบการจับภาพเฟรมเดียวเป็นทั้งเอาต์พุตข้อมูลดิบ (ข้อมูลดิบ 10 บิตและ 12 บิต) และ YUV หากรองรับ ใช้คำขอด้วยตนเองที่มีโทนแมปเชิงเส้น ดังนั้นจึงคาดว่าข้อมูลดิบและ YUV จะเหมือนกัน เปรียบเทียบค่า RGB 10% ตรงกลางของรูปภาพที่แปลงเป็น RGB บันทึกandroid.shading.mode
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#RAW10android.graphics.ImageFormat#RAW12
ผ่าน: รูปภาพ YUV และรูปภาพ RAW มีความคล้ายกันและมีความแตกต่างของ RMS (ค่า Root-Mean-Square ของสัญญาณ) น้อยกว่า 3.5%
รูปที่ 96 test_yuv_plus_raw_shading=1_raw.jpg
รูปที่ 97 test_yuv_plus_raw_shading=1_yuv.jpg
test_sensitivity_priority
ทดสอบ CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY ในการตั้งค่า ISO ต่างๆ เพื่อยืนยันความสัมพันธ์ระหว่าง ISO ที่สูงขึ้นกับระดับนอยส์ที่เพิ่มขึ้น
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
ผ่าน: ISO ที่สูงขึ้นส่งผลให้ระดับสัญญาณรบกวนเพิ่มขึ้น
เกณฑ์การข้ามการทดสอบ
ระบบจะข้ามการทดสอบ test_sensitivity_priority.py หากเป็นไปตามเกณฑ์ต่อไปนี้
- อุปกรณ์มีระดับ API แรก (
first_api_level) เป็น 35 หรือต่ำกว่า - อุปกรณ์ไม่ได้โฆษณา
CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYในCONTROL_AE_AVAILABLE_PRIORITY_MODES
test_exposure_time_priority
ทดสอบ CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY ในเวลาที่เปิดรับแสงต่างๆ โดยตรวจสอบความสว่างที่คงที่ในช่วงที่ ISO สามารถชดเชยได้
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
ผ่าน: ความสว่างคงที่ (ภายในค่าความคลาดเคลื่อน) ตลอดเวลาที่เปิดรับแสงหาก ISO อยู่ในช่วงการชดเชย
เกณฑ์การข้ามการทดสอบ
ระบบจะข้ามการทดสอบ test_exposure_time_priority หากเป็นไปตามเกณฑ์ต่อไปนี้
- อุปกรณ์มีระดับ API แรก (
first_api_level) เป็น 35 หรือต่ำกว่า - อุปกรณ์ไม่ได้โฆษณา
CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYในCONTROL_AE_AVAILABLE_PRIORITY_MODES
scene2_a
scene2_a มีใบหน้า 3 ใบหน้าพร้อมพื้นหลังสีเทาและเสื้อผ้าสีกลาง ใบหน้าที่เลือกมามีโทนสีผิวที่หลากหลาย แผนภูมิต้องมีการวางแนวที่ถูกต้องเพื่อให้การตรวจจับใบหน้าทำงานได้อย่างมีประสิทธิภาพสูงสุด
รูปที่ 98 ตัวอย่าง scene2_a
test_autoframing
ทดสอบลักษณะการจัดเฟรมอัตโนมัติของอุปกรณ์กล้อง ซูมขนาดใหญ่จนไม่เห็นใบหน้าใดๆ ในฉาก เปิดใช้โหมดการจัดเฟรมอัตโนมัติโดยตั้งค่า AUTOFRAMING ใน CaptureRequest เป็น True และยืนยันว่าระบบตรวจพบใบหน้าทั้งหมดในฉากต้นฉบับได้หรือไม่เมื่อสถานะบรรจบกัน (นั่นคือเมื่อตั้งค่า AUTOFRAMING_STATE ใน CaptureResult เป็น AUTOFRAMING_STATE_CONVERGED)
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
ผ่าน: ตรวจพบใบหน้าทั้ง 3 ใบหน้า
test_display_p3
ทดสอบการจับภาพ Display P3 ในรูปแบบ JPEG โดยใช้ ColorSpaceProfiles API ทดสอบว่า JPEG ที่จับภาพมีโปรไฟล์ ICC ที่เหมาะสมในส่วนหัว และรูปภาพมีสีที่อยู่นอกขอบเขต sRGB
API ที่ทดสอบ:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
ผ่าน: JPEG มีโปรไฟล์ ICC Display P3 และสีที่อยู่นอกขอบเขต sRGB
test_effects
จับภาพเฟรมสำหรับเอฟเฟกต์กล้องที่รองรับและตรวจสอบว่าสร้างขึ้นอย่างถูกต้องหรือไม่ การทดสอบจะตรวจสอบเฉพาะเอฟเฟกต์ OFF และ MONO แต่จะบันทึกรูปภาพสำหรับเอฟเฟกต์ที่รองรับทั้งหมด
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTSandroid.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Pass: จับภาพฉากที่มีเอฟเฟกต์ OFF และรูปภาพขาวดำที่มีเอฟเฟกต์ตั้งค่าเป็น MONO
รูปที่ 99 test_effects_MONO
test_exposure_keys_consistent
การทดสอบนี้จะเปรียบเทียบค่า Luma เฉลี่ยของการจับภาพที่เปิดใช้ AE กับการจับภาพที่ปิดใช้ AE ซึ่งใช้พารามิเตอร์การรับแสง (ความไว เวลาในการรับแสง ระยะเวลาเฟส การเพิ่มความไวหลังการจับภาพไฟล์ RAW) ที่ได้รับใน CaptureResult ของการจับภาพที่เปิดใช้ AE ด้วยตนเอง
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
ผ่าน: ความแตกต่างสัมพัทธ์ของ Luma ระหว่างการจับภาพทั้ง 2 ครั้งน้อยกว่า 4%
test_format_combos
ทดสอบการผสมผสานรูปแบบเอาต์พุตต่างๆ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAPandroid.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()android.hardware.camera2.CameraCaptureSession#captureBurst()
ผ่าน: ระบบบันทึกชุดค่าผสมทั้งหมดเรียบร้อยแล้ว
test_num_faces
ทดสอบการตรวจจับใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้า
รูปที่ 100 ตัวอย่างโหมดการตรวจจับใบหน้า test_num_faces 1
test_reprocess_uv_swap
ทดสอบว่าการประมวลผล YUV ซ้ำไม่ได้สลับระนาบ U และ V ซึ่งตรวจพบได้โดยการคำนวณผลรวมของความแตกต่างสัมบูรณ์ (SAD) ระหว่างรูปภาพที่ประมวลผลใหม่กับภาพที่จับได้ซึ่งไม่ได้ประมวลผลใหม่ หากการสลับระนาบ U และ V เอาต์พุตของผลลัพธ์การจับภาพที่ประมวลผลใหม่ส่งผลให้ SAD เพิ่มขึ้น ระบบจะถือว่าเอาต์พุตมีระนาบ U และ V ที่ถูกต้อง
API ที่ทดสอบ:
android.hardware.camera2.CameraDevice#createCaptureSessionandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSINGandroid.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
ผ่าน: ไม่มีการสลับระนาบ U และ V
รูปที่ 101 ตัวอย่าง test_reprocess_uv_swap
scene2_b
scene2_b มีใบหน้า 3 ใบหน้าพร้อมพื้นหลังสีเทาและเสื้อผ้าสีกลาง ใบหน้าที่เลือกมามีโทนสีผิวที่หลากหลาย แผนภูมิต้องมีการวางแนวที่ถูกต้องเพื่อให้การตรวจจับใบหน้าทำงานได้อย่างมีประสิทธิภาพสูงสุด
test_preview_num_faces
ทดสอบการตรวจจับใบหน้าในเวอร์ชันตัวอย่างด้วยความหลากหลายของสีผิวที่เพิ่มขึ้นในฉากที่มีใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้าที่มีจุดสังเกตบนใบหน้าในกรอบล้อมรอบใบหน้า
รูปที่ 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureRequest#JPEG_QUALITYandroid.graphics.ImageFormat#JPEG
ผ่าน: รูปภาพ YUV และ JPEG สำหรับกรณีการใช้งาน STILL_CAPTURE มีความแตกต่างของ RMS (ค่า Root-Mean-Square ของสัญญาณ) น้อยกว่า 3% รูปภาพ YUV สำหรับกรณีการใช้งานที่รองรับทั้งหมดมีความแตกต่างของ CIELAB น้อยกว่า 4% จากรูปภาพ YUV ที่มีกรณีการใช้งาน STILL_CAPTURE
scene2_c
test_num_faces
ทดสอบการตรวจจับใบหน้าด้วยความหลากหลายของสีผิวที่เพิ่มขึ้นในฉากที่มีใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้า
รูปที่ 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 ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้าที่มีจุดสังเกตบนใบหน้าในกรอบล้อมรอบใบหน้า
scene2_e
test_continuous_picture
ระบบจะจับภาพเฟรมความละเอียด VGA จำนวน 50 เฟรมด้วยการตั้งค่าแรกของคำขอการจับภาพ
android.control.afMode = 4 (CONTINUOUS_PICTURE).
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AF_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
ผ่าน: ระบบ 3A จะเสถียรเมื่อสิ้นสุดการจับภาพ 50 เฟรม
test_num_faces
ทดสอบการตรวจจับใบหน้าด้วยความหลากหลายของสีผิวที่เพิ่มขึ้นในฉากที่มีใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้า
scene2_f
scene2_f มีใบหน้า 3 ใบหน้าที่มีพื้นหลังสีขาวและเสื้อผ้าสีขาว ใบหน้ามีโทนสีผิวที่หลากหลายและคอนทราสต์สูงกับพื้นหลัง
รูปที่ 104 ตัวอย่าง scene2_f
test_preview_num_faces
ทดสอบการตรวจจับใบหน้าด้วยความหลากหลายของสีผิวที่เพิ่มขึ้นในฉากที่มีใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้าที่มีจุดสังเกตบนใบหน้าในกรอบล้อมรอบใบหน้า
รูปที่ 105 ตัวอย่าง test_num_faces_fd_mode_1
scene2_g
scene2_g มีใบหน้าโปรไฟล์ 3 ใบหน้าที่มีพื้นหลังสีขาวและเสื้อผ้าสีขาว
ใบหน้ามีโทนสีผิวที่หลากหลายและคอนทราสต์สูงกับพื้นหลัง
รูปที่ 106 ตัวอย่าง scene2_g
test_preview_num_faces
ทดสอบการตรวจจับใบหน้าด้วยความหลากหลายของสีผิวที่เพิ่มขึ้นในฉากที่มีใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้าที่มีจุดสังเกตบนใบหน้าในกรอบล้อมรอบใบหน้า
รูปที่ 107 ตัวอย่าง test_preview_num_faces
scene3
scene3 ใช้แผนภูมิ ISO12233 และการทดสอบส่วนใหญ่ใช้วิธีการแยกแผนภูมิเพื่อค้นหาแผนภูมิในฉาก ด้วยเหตุนี้ รูปภาพที่บันทึกไว้ส่วนใหญ่จึงไม่มีเส้นขอบเหมือนรูปภาพสำหรับฉากที่ 1, 2 หรือ 4 แต่มีเพียงแผนภูมิเท่านั้น แผนภูมิต้องอยู่ในแนวที่ถูกต้องเพื่อให้เครื่องมือค้นหาแผนภูมิทำงานได้อย่างมีประสิทธิภาพสูงสุด
ใน Android 17 ขึ้นไป scene3 จะใช้เครื่องหมาย ArUco สำหรับการตรวจจับแผนภูมิ
รูปที่ 108 แผนภูมิฉากที่ 3
test_edge_enhancement
ทดสอบว่าใช้พารามิเตอร์ android.edge.mode อย่างถูกต้อง จับภาพที่ไม่ต้องประมวลผลซ้ำสำหรับโหมดขอบแต่ละโหมด และแสดงผลความคมชัดของรูปภาพเอาต์พุตและข้อมูลเมตาของผลลัพธ์การจับภาพ ประมวลผลคำขอจับภาพด้วยโหมดขอบ ความไว เวลาเปิดรับแสง ระยะโฟกัส และพารามิเตอร์พื้นผิวเอาต์พุตที่ระบุ ใน Android 17 ขึ้นไป จะใช้เครื่องหมาย ArUco เพื่อกำหนดพื้นที่แผนภูมิที่มีขอบคมที่จำเป็น
ผ่าน: โหมด HQ (2) คมชัดกว่าโหมด OFF (0) โหมด FAST (1) คมชัดกว่าโหมด OFF โหมด HQ คมชัดกว่าหรือเท่ากับโหมด FAST
API ที่ทดสอบ:
พารามิเตอร์กล้องที่ได้รับผลกระทบ:
EDGE_MODE
รูปที่ 109 ตัวอย่าง test_edge_enhancement edge=0
รูปที่ 110 ตัวอย่าง test_edge_enhancement edge=1 (โหมดเร็ว)
รูปที่ 111 ตัวอย่าง test_edge_enhancement edge=2 (โหมดคุณภาพสูง)
test_flip_mirror
ทดสอบว่ารูปภาพมีการวางแนวอย่างถูกต้องตามกล้องหน้า 7.5.2 ใน CDD หรือไม่ ใน Android 17 ขึ้นไป จะใช้เครื่องหมาย ArUco เพื่อตรวจสอบทั้งการมีอยู่และการวางแนวของแผนภูมิ รูปภาพที่กลับด้าน พลิก หรือหมุนจะระบุได้ด้วยฟีเจอร์รูปเพชรใกล้กับตรงกลาง
ผ่าน: ระบบตรวจพบเครื่องหมายทั้งหมดและจัดตำแหน่งอย่างถูกต้อง รูปภาพไม่ได้พลิก กลับด้าน หรือหมุน
รูปที่ 112 ตัวอย่างแพตช์ฉาก test_flip_mirror
test_imu_drift
ทดสอบว่าหน่วยวัดแรงเฉื่อย (IMU) มีเอาต์พุตที่เสถียรเป็นเวลา 30 วินาทีขณะที่อุปกรณ์อยู่นิ่งและจับภาพตัวอย่างความละเอียดสูงหรือไม่
API ที่ทดสอบ:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_GYROSCOPEandroid.hardware.Sensor#TYPE_ROTATION_VECTOR
บัตร:
- การเบี่ยงเบนของเครื่องวัดการหมุนน้อยกว่า 0.01 เรเดียนตลอดระยะเวลาการทดสอบ
- ความแปรปรวนของค่าที่อ่านได้จากเครื่องวัดการหมุนน้อยกว่า 1E-7 rad2/s2/Hz ตลอดระยะเวลาการทดสอบ
- การเบี่ยงเบนของเวกเตอร์การหมุนน้อยกว่า 0.01 เรเดียนตลอดระยะเวลาการทดสอบ
- (ยังไม่ได้บังคับ) การเบี่ยงเบนของเครื่องวัดการหมุนน้อยกว่า 1 องศาต่อวินาที
รูปที่ 113 ตัวอย่างการเบี่ยงเบนของเครื่องวัดการหมุน test_imu_drift
รูปที่ 114 ตัวอย่างการเบี่ยงเบนของเวกเตอร์การหมุน test_imu_drift
test_landscape_to_portrait
ทดสอบว่าการลบล้างแนวนอนเป็นแนวตั้งทำงานได้อย่างถูกต้องสำหรับเซ็นเซอร์ที่วางแนวแนวนอนหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODESandroid.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATIONandroid.hardware.camera2.CameraManager#getCameraCharacteristics
ผ่าน: การทดสอบจะค้นหาแผนภูมิที่มีการหมุนตามที่คาดไว้ (0 องศาเมื่อปิดใช้การลบล้างแนวนอนเป็นแนวตั้ง และ 90 องศาเมื่อเปิดใช้)
รูปที่ 115 ตัวอย่าง test_landscape_to_portrait
test_lens_movement_reporting
ทดสอบว่ามีการรายงานแฟล็กการเคลื่อนไหวของเลนส์อย่างถูกต้องหรือไม่ จับภาพต่อเนื่อง 24 ภาพ โดย 12 เฟรมแรกอยู่ที่ระยะโฟกัสที่เหมาะสมที่สุด (ตามที่ 3A พบ) และ 12 เฟรมสุดท้ายอยู่ที่ระยะโฟกัสต่ำสุด ในเฟรมที่ 12 เลนส์จะขยับทำให้ความคมชัดลดลง ในที่สุดความคมชัดจะคงที่เมื่อเลนส์เคลื่อนไปยังตำแหน่งสุดท้าย
ควรมีการยืนยันแฟล็กการเคลื่อนไหวของเลนส์ในทุกเฟรมที่ความคมชัดอยู่ระหว่างความคมชัดใน 2-3 เฟรมแรกที่เลนส์อยู่กับที่ที่ระยะโฟกัสที่เหมาะสม และ 2-3 เฟรมสุดท้ายที่เลนส์อยู่กับที่ที่ระยะโฟกัสต่ำสุด เฟรมที่แน่นอนที่เลนส์เคลื่อนที่นั้นไม่สำคัญ สิ่งสำคัญคือต้องมีการยืนยันแฟล็กการเคลื่อนไหวเมื่อเลนส์เคลื่อนที่
ใน Android 17 ขึ้นไป การทดสอบนี้จะใช้เครื่องหมาย ArUco เพื่อกำหนดพื้นที่แผนภูมิที่มีขอบคมที่จำเป็น วิธีนี้ช่วยให้ตรวจจับกล้องได้อย่างเสถียรตั้งแต่กล้องแบบอัลตราไวด์ (UW) ไปจนถึงกล้องเทเลโฟโต้
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#LENS_STATEandroid.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
ผ่าน: แฟล็กการเคลื่อนไหวของเลนส์เป็น 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 ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
ผ่าน: ความคมชัดของโหมดขอบต่างๆ ถูกต้อง HQ (โหมด 2) คมชัดกว่า OFF (โหมด 0) และการปรับปรุงระหว่างโหมดต่างๆ มีลักษณะคล้ายกัน
รูปที่ 116 ตัวอย่างพล็อต test_reprocess_edge_enhancement
scene4
scene4 ประกอบด้วยวงกลมสีดำบนพื้นหลังสีขาวภายในสี่เหลี่ยมจัตุรัส
การทดสอบใน scene4 อาจไวต่อการจัดแนว ดังนั้นตั้งแต่ Android 15 เป็นต้นไป คุณสามารถใช้ check_alignment.py ในไดเรกทอรีเครื่องมือเพื่อเปิดใช้การตรวจสอบ DUT และการจัดแนวแผนภูมิได้
ฉากที่ 4 ตัวอย่าง รูปที่ 117
test_30_60fps_preview_fov_match
ทดสอบว่าวิดีโอตัวอย่าง 30 FPS และ 60 FPS มี FoV เดียวกัน การทดสอบจะจับภาพวิดีโอ 2 รายการ โดยรายการหนึ่งมี 30 FPS และอีกรายการมี 60 FPS ระบบจะเลือกเฟรมตัวแทนจากวิดีโอแต่ละรายการและวิเคราะห์เพื่อยืนยันว่าการเปลี่ยนแปลง FoV ในวิดีโอทั้ง 2 รายการเป็นไปตามข้อกำหนดเฉพาะ ทดสอบว่าสัดส่วนภาพของวงกลมยังคงที่ จุดศูนย์กลางของวงกลมยังคงเสถียร และรัศมีของวงกลมยังคงที่
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
ผ่าน: รูปภาพไม่ยืดออก จุดศูนย์กลางของรูปภาพแตกต่างกันไม่เกิน 3% และการเปลี่ยนแปลงสัดส่วนภาพสูงสุดระหว่างวิดีโอ 30 FPS กับ 60 FPS ไม่เกิน 7.5%
กลไกการทำงานที่ล้มเหลว
- วงกลมจากวิดีโอ 30 FPS มีขนาดแตกต่างจากวิดีโอ 60 FPS อย่างมาก
- วงกลมในรูปภาพที่ถ่ายบิดเบี้ยวเนื่องจากไปป์ไลน์การประมวลผล
- วงกลมในรูปภาพที่ถ่ายถูกครอบตัดเนื่องจากคำขอจับภาพที่มีสัดส่วนภาพไม่ปกติซึ่งลดความสูงหรือความกว้างของรูปภาพ
- วงกลมในภาพที่ถ่ายมีแสงสะท้อนตรงกลางและดูเหมือนว่ามีสีไม่เต็มวง
test_aspect_ratio_and_crop
ทดสอบว่ารูปภาพบิดเบี้ยวหรือครอบตัดโดยไม่คาดคิดในไปป์ไลน์รูปภาพหรือไม่ ถ่ายภาพวงกลมในทุกรูปแบบ ยืนยันว่าวงกลมไม่บิดเบี้ยว วงกลมไม่เคลื่อนออกจากกึ่งกลางของรูปภาพ และวงกลมไม่เปลี่ยนขนาดอย่างไม่ถูกต้องเมื่อใช้สัดส่วนภาพหรือความละเอียดที่แตกต่างกัน
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
ผ่าน: รูปภาพไม่ยืดออก จุดศูนย์กลางของรูปภาพแตกต่างกันไม่เกิน 3% และระบบจะคง FoV สูงสุดที่เป็นไปได้ไว้
กลไกการทำงานที่ล้มเหลว
- กล้องไม่ได้อยู่ในแนวเดียวกับวงกลมที่แสดงบนแท็บเล็ตตรงกลางฉากที่ถ่าย
- วงกลมในรูปภาพที่ถ่ายบิดเบี้ยวเนื่องจากไปป์ไลน์การประมวลผล
- รูปภาพที่มีความละเอียดต่ำจะถูกครอบตัด 2 ครั้งในไปป์ไลน์รูปภาพ ซึ่งทำให้ FoV ระหว่างรูปภาพที่มีความละเอียดสูงและต่ำแตกต่างกัน
- วงกลมในรูปภาพที่ถ่ายถูกครอบตัดเนื่องจากคำขอจับภาพที่มีสัดส่วนภาพไม่ปกติซึ่งลดความสูงหรือความกว้างของรูปภาพ
- วงกลมในภาพที่ถ่ายมีแสงสะท้อนตรงกลางและดูเหมือนว่ามีสีไม่เต็มวง
test_multi_camera_alignment
ทดสอบพารามิเตอร์การปรับเทียบกล้องที่เกี่ยวข้องกับการวางตำแหน่งกล้องสำหรับระบบกล้องหลายตัว ใช้กล้องย่อยจริงแบบหลายกล้องเพื่อถ่ายภาพด้วยกล้องจริงตัวใดตัวหนึ่ง ค้นหาจุดศูนย์กลางของวงกลม ฉายภาพจุดศูนย์กลางของวงกลมไปยังพิกัดโลกสำหรับกล้องแต่ละตัว เปรียบเทียบความแตกต่างระหว่างจุดศูนย์กลางวงกลมของกล้องในพิกัดโลก ฉายพิกัดโลกกลับไปยังพิกัดพิกเซลและเปรียบเทียบกับต้นฉบับเพื่อตรวจสอบความถูกต้อง เปรียบเทียบขนาดวงกลมเพื่อตรวจสอบว่าความยาวโฟกัสของกล้องแตกต่างกันหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraCharacteristics#LENS_DISTORTIONandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATIONandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
ผ่าน: จุดศูนย์กลางและขนาดของวงกลมเป็นไปตามที่คาดไว้ในรูปภาพที่ฉายเมื่อเทียบกับรูปภาพที่ถ่ายโดยใช้ข้อมูลการปรับเทียบกล้องและความยาวโฟกัส
กลไกการทำงานที่ล้มเหลว
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 ที่ทดสอบ:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
ผ่าน: รูปภาพไม่ยืดออก จุดศูนย์กลางของรูปภาพแตกต่างกันไม่เกิน 3% และระบบจะคง FoV สูงสุดที่เป็นไปได้ไว้
test_preview_stabilization_fov
ตรวจสอบขนาดตัวอย่างที่รองรับเพื่อช่วยให้มั่นใจว่า FoV ได้รับการครอบตัดอย่างเหมาะสม การทดสอบจะจับภาพวิดีโอ 2 รายการ โดยรายการหนึ่งเปิดใช้ระบบกันภาพสั่นไหวในตัวอย่างON และอีกรายการหนึ่งปิดใช้ระบบกันภาพสั่นไหวในตัวอย่างOFF ระบบจะเลือกเฟรมตัวแทนจากวิดีโอแต่ละรายการและวิเคราะห์เพื่อยืนยันว่าการเปลี่ยนแปลง FoV ในวิดีโอทั้ง 2 รายการเป็นไปตามข้อกำหนด
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
ผ่าน: สัดส่วนภาพของวงกลมยังคงที่ ตำแหน่งกึ่งกลางของวงกลมยังคงเสถียร และขนาดของวงกลมเปลี่ยนแปลงไม่เกิน 20%
test_video_aspect_ratio_and_crop
ถ่ายวิดีโอวงกลมภายในสี่เหลี่ยมจัตุรัสในวิดีโอทุกรูปแบบ ดึงข้อมูลคีย์เฟรมและยืนยันว่าสัดส่วนภาพของวงกลมไม่เปลี่ยนแปลง รูปภาพที่ครอบตัดจะคงวงกลมไว้ตรงกลาง และขนาดของวงกลมจะไม่เปลี่ยนแปลงสำหรับรูปแบบคงที่หรือมีความละเอียดต่างกัน (การตรวจสอบ FoV)
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
ผ่าน: เฟรมวิดีโอไม่ยืดออก จุดศูนย์กลางของเฟรมแตกต่างกันไม่เกิน 3% และคง FoV สูงสุดที่เป็นไปได้ไว้
scene6
scene6 คือตารางกริดของเครื่องหมาย ArUco ที่ระบุตัวตนได้อย่างแน่ชัด
การทดสอบใน scene6 อาจไวต่อการจัดแนว ดังนั้นตั้งแต่เวอร์ชัน 15 เป็นต้นไป คุณสามารถใช้ check_alignment.py ในไดเรกทอรีเครื่องมือเพื่อเปิดใช้การตรวจสอบ DUT และการจัดแนวแผนภูมิได้
รูปที่ 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
ผ่าน: ความแตกต่างของ RMS 3 มิติระหว่างภาพดิบที่ครอบตัดและลดขนาดกับภาพดิบที่มี FoV เต็มรูปแบบน้อยกว่าเกณฑ์ที่กำหนดไว้ในการทดสอบ
test_zoom
ทดสอบลักษณะการซูมของกล้องจากเลนส์มุมกว้างพิเศษไปยังเลนส์มุมกว้าง จับภาพในช่วงการซูมและตรวจสอบว่าเครื่องหมาย ArUco มีขนาดใหญ่ขึ้นเมื่อกล้องซูมเข้าหรือไม่ การทดสอบยังตรวจสอบด้วยว่าตำแหน่งของเครื่องหมายตรงกลางเปลี่ยนไปตามที่คาดการณ์ไว้หรือไม่ในการจับภาพแต่ละครั้ง ระยะห่างจากจุดกึ่งกลางของเครื่องหมายกึ่งกลางไปยังจุดกึ่งกลางของรูปภาพอาจเปลี่ยนแปลงในอัตราคงที่ตามอัตราส่วนการซูมจนกว่าจะมีการเปลี่ยนกล้องจริง หรืออาจเปลี่ยนแปลงแบบโมโนโทนิกไปยังตำแหน่งของเครื่องหมายเดียวกันหลังจากเปลี่ยนกล้องจริง ต้องติดตั้งแอป Jetpack Camera (JCA) ในอุปกรณ์ก่อนทดสอบ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย ArUco ที่จับภาพได้ถูกต้องเมื่อเทียบกับอัตราส่วนการซูมที่ขอเพื่อยืนยันว่ากล้องซูมอย่างถูกต้อง และระยะห่างของเครื่องหมายจากกึ่งกลางรูปภาพเปลี่ยนแปลงตามเกณฑ์ที่ระบุไว้ในคำอธิบายการทดสอบ
รูปที่ 119 test_zoom เพื่อค้นหาเส้นขอบของมาร์กเกอร์ ArUco ที่อยู่ใกล้กับศูนย์กลางมากที่สุด
test_low_latency_zoom
ทดสอบลักษณะการทำงานของการซูมที่มีเวลาในการตอบสนองต่ำของกล้อง จับภาพในช่วงการซูมด้วย android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) และตรวจสอบว่าเครื่องหมายในรูปภาพเอาต์พุตตรงกับอัตราส่วนการซูมในข้อมูลเมตาของภาพที่จับหรือไม่ ระบบจะใช้เซสชันการจับภาพด้วยกล้องเดียวกันเพื่อรวม 3A และจับภาพ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDESandroid.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมายที่จับภาพได้ถูกต้องเมื่อเทียบกับข้อมูลเมตาของผลลัพธ์อัตราส่วนการซูม
test_preview_video_zoom_match
ทดสอบว่าขณะบันทึกและซูม ตัวอย่างวิดีโอและเอาต์พุตวิดีโอจะแสดงและบันทึกเอาต์พุตเดียวกัน คำนวณขนาดของเครื่องหมายที่อยู่ใกล้กับจุดศูนย์กลางมากที่สุดที่อัตราส่วนการซูมต่างๆ และตรวจสอบว่าขนาดของเครื่องหมายเพิ่มขึ้นเมื่ออัตราส่วนการซูมเพิ่มขึ้นหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
ผ่าน: ขนาดสัมพัทธ์ของมาร์กเกอร์ที่จับภาพได้ถูกต้องเมื่อเทียบกับอัตราส่วนการซูมที่ขอในวิดีโอและตัวอย่าง
รูปที่ 120 HD_1280x720_key_frame.png (ก่อนซูม)
รูปที่ 121 preview_1280x720_key_frame.png (ก่อนซูม)
รูปที่ 122 HD_1280x720_key_frame.png (หลังซูม)
รูปที่ 123 preview_1280x720_key_frame.png (หลังซูม)
test_preview_zoom
ทดสอบว่าอัตราส่วนการซูมของเฟรมตัวอย่างแต่ละเฟรมตรงกับข้อมูลเมตาการจับภาพที่เกี่ยวข้องจากเลนส์มุมกว้างพิเศษไปยังเลนส์มุมกว้าง การทดสอบจะใช้เฟรมตัวอย่างในช่วงการซูมและค้นหาเครื่องหมาย ArUco ที่อยู่ใกล้กับศูนย์กลางมากที่สุด จากนั้นการทดสอบจะตรวจสอบว่าตำแหน่งของเครื่องหมายตรงกลางเปลี่ยนแปลงไปตามที่คาดการณ์ไว้หรือไม่ในการจับภาพแต่ละครั้ง ระยะห่างจากจุดกึ่งกลางของเครื่องหมายกึ่งกลางไปยังจุดกึ่งกลางของรูปภาพอาจเปลี่ยนแปลงในอัตราคงที่ตามอัตราส่วนการซูมจนกว่าจะมีการเปลี่ยนกล้องจริง หรืออาจเปลี่ยนแปลงแบบโมโนโทนิกไปยังตำแหน่งของเครื่องหมายเดียวกันหลังจากเปลี่ยนกล้องจริง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย ArUco ที่เลือกถูกต้องสำหรับอัตราส่วนการซูมที่รายงานของผลลัพธ์การจับภาพที่เกี่ยวข้องสำหรับเฟรมตัวอย่างทั้งหมด ระยะทางสัมพัทธ์ของเครื่องหมายที่เลือกจากกึ่งกลางของรูปภาพจะถูกต้องสำหรับอัตราส่วนการซูมที่รายงานของผลลัพธ์การจับภาพที่เกี่ยวข้องของเฟรมตัวอย่างทั้งหมด
รูปที่ 124. รูปภาพ test_preview_zoom แสดงเครื่องหมายที่เลือกซึ่งอยู่ใกล้กับกึ่งกลางมากที่สุด
test_session_characteristics_zoom
ทดสอบช่วงอัตราส่วนการซูมสำหรับการกำหนดค่าเซสชันที่รองรับทั้งหมดที่แสดงใน CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
สำหรับการกำหนดค่าแต่ละรายการ หาก
CameraDeviceSetup#isSessionConfigurationSupported
แสดงผลเป็น true การทดสอบจะยืนยันว่าสามารถเข้าถึงช่วงอัตราส่วนการซูมที่แสดงผลใน
CameraDeviceSetup#getSessionCharacteristics ได้
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSIONandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
ผ่าน: สามารถใช้ทั้งอัตราส่วนการซูมต่ำสุดและสูงสุดสำหรับ SessionConfiguration ที่รองรับแต่ละรายการซึ่งแสดงอยู่ใน CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
scene7
scene7 เป็นกรอบสี่เหลี่ยมผืนผ้าที่แบ่งออกเป็น 4 ส่วนเท่าๆ กัน โดยแต่ละส่วนมีสีแตกต่างกัน ตรงกลางของสี่เหลี่ยมผืนผ้าคือแผนภูมิขอบเอียงสำหรับการตรวจสอบความคมชัด เครื่องหมาย ArUco 4 ตัวจะจัดแนวให้ตรงกับมุมด้านนอก 4 มุมของสี่เหลี่ยมผืนผ้าเพื่อช่วยให้ได้พิกัดที่ถูกต้องของกรอบสี่เหลี่ยมผืนผ้าหลักที่อัตราส่วนการซูมต่างๆ
รูปที่ 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
ผ่าน: การทดสอบจะผ่านได้ก็ต่อเมื่อการตรวจสอบ 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
รูปที่ 126 แผ่นสีเทาที่ถ่ายด้วยเลนส์ UW
รูปที่ 127 แผ่นสีเทาที่ถ่ายด้วยเลนส์ W
scene8
scene8 เป็นกรอบสี่เหลี่ยมผืนผ้าที่แบ่งออกเป็น 4 ส่วนเท่าๆ กัน โดยแต่ละส่วนมีภาพบุคคลที่ถ่ายด้วยค่าการรับแสงที่แตกต่างกันหรือวางซ้อนด้วยเฉดสีที่แตกต่างกัน (เฉดสีน้ำเงิน ค่าการรับแสงเพิ่มขึ้น ค่าการรับแสงลดลง เฉดสีเหลือง)
เครื่องหมาย ArUco 4 ตัวจะจัดแนวให้ตรงกับมุมด้านนอก 4 มุมของสี่เหลี่ยมผืนผ้าเพื่อให้ได้พิกัดที่ถูกต้องของกรอบสี่เหลี่ยมผืนผ้าหลัก
รูปที่ 128 ตัวอย่างฉากที่ 8
test_ae_awb_regions
ทดสอบว่าค่า RGB และ Luma แตกต่างกันเมื่อแสดงตัวอย่างการบันทึกที่ภูมิภาค AE และ AWB ต่างกัน
การทดสอบจะบันทึกตัวอย่างวิดีโอความยาว 8 วินาที โดยทำการวัด AE และ AWB ในแต่ละจตุภาคเป็นเวลา 2 วินาที จากนั้นการทดสอบจะดึงเฟรมจากการบันทึกตัวอย่างของแต่ละภูมิภาค และใช้เฟรมที่ดึงมาเพื่อทำการตรวจสอบ AE และ AWB ต่อไปนี้
- การตรวจสอบ AE: ยืนยันว่าเฟรมที่วัดแสงในบริเวณที่มีการเปิดรับแสงลดลงมีค่า Luma เพิ่มขึ้นมากกว่า 1% เมื่อเทียบกับเฟรมที่วัดแสงในบริเวณที่มีการเปิดรับแสงเพิ่มขึ้น ซึ่งจะยืนยันว่ารูปภาพสว่างขึ้นเมื่อวัดแสงในบริเวณที่มืด
- การตรวจสอบ AWB: ยืนยันว่าอัตราส่วนของสีแดงต่อสีน้ำเงิน (ของค่า RGB เฉลี่ยของรูปภาพ) ในเฟรมที่มีพื้นที่วัดแสงสีน้ำเงินสูงกว่าเฟรมที่มีพื้นที่วัดแสงสีเหลืองมากกว่า 2% ซึ่งจะช่วยยืนยันว่ารูปภาพมีค่า RGB ที่สมดุลเมื่อวัดแสงในบริเวณสีเหลือง (อบอุ่น) หรือสีน้ำเงิน (เย็น)
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AEandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
ผ่าน: การตรวจสอบ AE และ AWB ผ่านทั้งคู่
รูปที่ 129 การวัดแสงในเฟรมบริเวณที่มืดโดยเพิ่มการรับแสง
รูปที่ 130 บริเวณที่สว่างกว่าในเฟรมวัดแสงโดยลดการเปิดรับแสง
กลไกการทำงานที่ล้มเหลว
การตรวจจับเครื่องหมาย ArUco ทั้ง 4 รายการอย่างแม่นยำเป็นสิ่งสำคัญสำหรับการทดสอบนี้ หากการตรวจจับครั้งแรกไม่สำเร็จ ระบบจะพยายามตรวจจับครั้งที่ 2 โดยใช้รูปภาพเวอร์ชันขาวดำ รูปภาพโทนสีเทาต่อไปนี้แสดงขั้นตอนการประมวลผลรอง
รูปที่ 131 เครื่องหมาย ArUco ไม่ตรงแนว
test_color_correction_mode_cct
ทดสอบ COLOR_CORRECTION_MODE ในอุณหภูมิสีและโทนสีต่างๆ เพื่อยืนยันการเปลี่ยนแปลงของอัตราส่วน RGB เทียบกับฉากที่ถ่าย scene8
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGEandroid.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
ผ่าน: อัตราส่วน RGB แสดงการเพิ่มขึ้นหรือลดลงที่คาดไว้ซึ่งสัมพันธ์กับอุณหภูมิสีและโทนสีที่เลือก
เกณฑ์การข้ามการทดสอบ
ระบบจะข้ามการทดสอบ test_color_correction_mode_cct หากเป็นไปตามเกณฑ์ต่อไปนี้
- อุปกรณ์มีระดับ API แรก (
first_api_level) เป็น 35 หรือต่ำกว่า - อุปกรณ์ไม่ได้โฆษณา
COLOR_CORRECTION_MODE_CCTในCOLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
scene9
scene9 ประกอบด้วยวงกลมขนาดและสีแบบสุ่มหลายพันวงเพื่อสร้างฉากที่มีความสามารถในการทำซ้ำต่ำมากเพื่อเน้นอัลกอริทึมการบีบอัด JPEG
รูปที่ 132 ตัวอย่างฉากที่ 9
test_jpeg_high_entropy
ทดสอบว่าการบีบอัด JPEG ของกล้องทำงานใน scene9 โดยมีเอนโทรปีสูงและปัจจัยคุณภาพ JPEG ตั้งค่าเป็น 100% ปัจจัยการซูมจะเพิ่มขึ้นเพื่อยืนยันว่าฉากที่แสดงบนแท็บเล็ตจะเติมเต็ม FoV ของกล้อง
API ที่ทดสอบ:
ผ่าน: ไฟล์ JPEG ได้รับการบีบอัด เขียน และอ่านกลับจากดิสก์อย่างถูกต้อง
test_jpeg_quality
ทดสอบคุณภาพการบีบอัด JPEG ของกล้อง ตรวจสอบคุณภาพ JPEG ผ่าน android.jpeg.quality และยืนยันว่าตารางการควอนไทซ์เปลี่ยนแปลงอย่างถูกต้อง
API ที่ทดสอบ:
ผ่าน: เมทริกซ์การควอนไทซ์ลดลงเมื่อคุณภาพเพิ่มขึ้น (เมทริกซ์แสดงถึงปัจจัยการหาร)
รูปที่ 133 ค่าเฉลี่ยเมทริกซ์ DQT ของความสว่างและสีของกล้องหลัง Pixel 4 เทียบกับคุณภาพ JPEG
รูปที่ 134 ตัวอย่างการทดสอบที่ไม่ผ่าน
scene_extensions
การทดสอบ scene_extensions มีไว้สำหรับส่วนขยายกล้องและต้องใช้ Camera ITS-in-a-Box เนื่องจากต้องมีการควบคุมสภาพแวดล้อมการทดสอบอย่างแม่นยำ นอกจากนี้
ต้องควบคุมแสงที่รั่วไหลทั้งหมด ซึ่งอาจต้องคลุมชุดทดสอบ, DUT และแท็บเล็ตด้วยผ้าคลุม รวมถึงกำจัดแสงที่ลอดผ่านจากหน้าจอด้านหน้าของ DUT
scene_hdr
ฉาก scene_hdr ประกอบด้วยภาพบุคคลทางด้านซ้ายและคิวอาร์โค้ดที่มีคอนทราสต์ต่ำทางด้านขวา
รูปที่ 135 ตัวอย่าง scene_hdr
test_hdr_extension
ทดสอบส่วนขยาย HDR จับภาพโดยเปิดและปิดใช้ส่วนขยาย และตรวจสอบว่าส่วนขยายช่วยให้ตรวจจับคิวอาร์โค้ดได้ง่ายขึ้นหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
ผ่าน: ส่วนขยาย HDR ช่วยลดจำนวนการเปลี่ยนแปลงคอนทราสต์ที่จำเป็นในการตรวจจับคิวอาร์โค้ด หรือลดการไล่ระดับสีในคิวอาร์โค้ด
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.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
บัตร:
- สำหรับอุปกรณ์ที่ใช้ 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.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_MODESandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITYandroid.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
บัตร:
สำหรับอุปกรณ์ที่ใช้ Android 16 ขึ้นไป ค่า Luma เฉลี่ยของสี่เหลี่ยมจัตุรัส 6 ช่องแรกต้องมีค่าอย่างน้อย 54 และความแตกต่างเฉลี่ยของค่า Luma ของสี่เหลี่ยมจัตุรัสที่อยู่ติดกันจนถึงสี่เหลี่ยมจัตุรัสช่องที่ 5 และ 6 ต้องมีค่าอย่างน้อย 17
สำหรับอุปกรณ์ที่ใช้ Android 15 และต่ำกว่า ค่า Luma เฉลี่ยของสี่เหลี่ยมจัตุรัส 6 อันแรกต้องมีค่าอย่างน้อย 70 และความแตกต่างเฉลี่ยของค่า Luma ของสี่เหลี่ยมจัตุรัสที่อยู่ติดกันจนถึงสี่เหลี่ยมจัตุรัสที่ 5 และ 6 ต้องมีค่าอย่างน้อย 18
scene_tele
ข้อกำหนดที่สำคัญสำหรับการทดสอบ scene_tele คือระยะห่างของแผนภูมิต้องมีระยะโฟกัสขั้นต่ำของเลนส์เทเลโฟโต้เป็นอย่างน้อย เนื่องจากระยะโฟกัสต่ำสุดนี้อาจแตกต่างกันไปในแต่ละอุปกรณ์ คุณจึงต้องกำหนดค่าการตั้งค่าให้เหมาะกับกล้องเทเลโฟโต้ที่เฉพาะเจาะจง
รูปที่ 138 การตั้งค่า scene_tele ตามระยะโฟกัสของกล้องมุมกว้างและกล้องเทเลโฟโต้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าฮาร์ดแวร์ทดสอบได้ที่การตั้งค่าอุปกรณ์ Tele Extension
scene6_tele
ฉาก scene6_tele ประกอบด้วยตารางกริดของเครื่องหมาย ArUco บนพื้นหลังสีขาว
หากภาพที่ scene6_tele ถ่ายดูสว่างเกินไปในอุปกรณ์แบบโมดูลาร์ ให้นำเพลตด้านหน้าของอุปกรณ์แบบโมดูลาร์ออก
ถอดอุปกรณ์ทดสอบ WFoV ออกจากส่วนขยายและถอดตัวยึดโทรศัพท์ออก
รูปที่ 139 ถอดอุปกรณ์ทดสอบ WFoV ออกจากส่วนขยายและถอดตัวยึดโทรศัพท์ออก
รูปที่ 140 ถอดเพลตด้านหน้าออก
test_zoom_tele
ทดสอบลักษณะการซูมของกล้องจากเลนส์มุมกว้างไปยังเลนส์เทเลโฟโต้ การทดสอบนี้เหมือนกับ test_zoom แต่จะทดสอบลักษณะการซูมของกล้องจากเลนส์มุมกว้างไปยังเลนส์เทเลโฟโต้
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย ArUco ที่จับภาพได้ถูกต้องเมื่อเทียบกับอัตราส่วนการซูมที่ขอเพื่อยืนยันว่ากล้องซูมได้อย่างถูกต้อง และระยะห่างของเครื่องหมายจากกึ่งกลางรูปภาพเปลี่ยนแปลงตามเกณฑ์ที่ระบุไว้ใน test_zoom
test_preview_zoom_tele
ทดสอบลักษณะการซูมของกล้องสำหรับเฟรมตัวอย่างจากเลนส์มุมกว้างไปยังเลนส์เทเลโฟโต้ การทดสอบนี้เหมือนกับ test_preview_zoom แต่จะทดสอบลักษณะการซูมกล้องสำหรับเฟรมตัวอย่างจากเลนส์มุมกว้างไปยังเลนส์เทเลโฟโต้
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
ผ่าน: ขนาดสัมพัทธ์ของเครื่องหมาย 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
ผ่าน: การตรวจสอบ 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
ผ่าน: อัตราเฟรมตัวอย่างอยู่ที่ค่าสูงสุดของช่วงอัตราเฟรมที่ขอ และความแปรปรวนเฉลี่ยระหว่างเฟรมที่ต่อเนื่องกันน้อยกว่าค่าความคลาดเคลื่อนสัมพัทธ์ที่ตั้งไว้ในการทดสอบ
อุปกรณ์ Gen2 / ฉากทดสอบที่อิงตาม sensor_fusion
feature_combination
การทดสอบ feature_combination จะยืนยันว่าฟีเจอร์ต่างๆ ทำงานอย่างถูกต้องเมื่อเปิดใช้ฟีเจอร์กล้องหลายรายการพร้อมกัน การทดสอบเหล่านี้ใช้รูปภาพกระดานหมากรุกแบบเดียวกับที่ใช้ในฉากการรวมเซ็นเซอร์
test_feature_combination
ทดสอบชุดค่าผสมทั้งหมดของชุดค่าผสมสตรีมต่างๆ, โหมดระบบป้องกันภาพสั่นไหวของวิดีโอ, ช่วง FPS เป้าหมาย, วิดีโอ HDR 10 บิต และ Ultra HDR ที่อุปกรณ์กล้องรองรับ
สำหรับ Android 16 ขึ้นไป การทดสอบจะเรียกใช้ฟีเจอร์ที่รองรับทั้งหมดร่วมกัน และบันทึกผลลัพธ์ลงในไฟล์ Proto ระบบจะเรียกใช้การยืนยันความล้มเหลวเฉพาะสำหรับชุดค่าผสมของฟีเจอร์ที่ isSessionConfigurationSupported แสดงผลเป็น True เท่านั้น
API ที่ทดสอบ:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
ผ่าน: สำหรับชุดค่าผสมของฟีเจอร์ที่รองรับแต่ละชุด
- สตรีมตัวอย่างจะมีระบบกันสั่นหากเปิดใช้ระบบกันสั่นในตัวอย่าง
- อัตราเฟรมตัวอย่างอยู่ในช่วง
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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
ผ่าน: ตรงกลางของรูปภาพไทล์ที่เปิดใช้แฟลชอัตโนมัติสว่างกว่ารูปภาพฉากต้นฉบับสำหรับกล้องทุกตัว
test_flash_strength
ทดสอบว่าการควบคุมความแรงของแฟลชในโหมด SINGLE ได้รับการติดตั้งใช้งานอย่างถูกต้อง
ยืนยันว่าหากอุปกรณ์รองรับการควบคุมความแรงของแฟลชระหว่างการใช้กล้องในโหมด SINGLE ความแรงของแฟลชจะเปลี่ยนไปตามระดับความแรงที่ขอ ยืนยันว่าการควบคุมความแรงของแฟลชทำงานร่วมกับ AE_MODES ต่างๆ ได้
ตัวอย่างเช่น หากโหมดการรับแสงอัตโนมัติเป็น ON หรือ OFF ระดับความแรงของแฟลชจะมีผลต่อความสว่าง และหากโหมดเป็น ON_AUTO_FLASH ระดับความแรงของแฟลชจะไม่มีผลต่อความสว่าง
หากต้องการทำการทดสอบ คุณต้องปิดไฟในอุปกรณ์ทดสอบ โดยสามารถปิดไฟโดยอัตโนมัติด้วยตัวควบคุม Arduino ฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
บัตร:
เมื่อโหมดการรับแสงอัตโนมัติเป็น 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
ผ่าน: อัตราส่วนสีแดง-เขียวและสีน้ำเงิน-เขียวอยู่ระหว่าง 0.95 ถึง 1.05 ค่าเฉลี่ยของรูปภาพที่ใช้แฟลชอยู่ในช่วง (68, 102)
test_night_mode_indicator
ทดสอบฟังก์ชันการทำงานของสัญญาณบอกสถานะโหมดกลางคืน ซึ่งเป็นฟีเจอร์ที่ระบุว่ากล้องทำงานในสภาวะแสงน้อยหรือไม่ และจะได้รับประโยชน์จากการจับภาพนิ่งของส่วนขยายกล้องในโหมดกลางคืนหรือไม่ ฟีเจอร์นี้ใช้ได้เฉพาะในอุปกรณ์ที่รองรับส่วนขยายกล้องโหมดกลางคืน
การทดสอบนี้จะตรวจสอบว่าสัญญาณบอกสถานะโหมดกลางคืนแสดงสภาพแสงระหว่างการแสดงตัวอย่างกล้องอย่างถูกต้อง การทดสอบจะทำตามขั้นตอนต่อไปนี้
- การเริ่มต้น: การทดสอบจะเริ่มต้น
ItsSessionและดึงข้อมูลพร็อพเพอร์ตี้ของกล้อง และยังสร้างการเชื่อมต่อกับตัวควบคุมแสงสว่างด้วย - เงื่อนไขการข้าม: ระบบจะข้ามการทดสอบหากอุปกรณ์ไม่รองรับระดับ API ที่จำเป็นหรือฟีเจอร์ตัวบ่งชี้โหมดกลางคืน
- เซสชัน Camera2:
- การทดสอบจะเริ่มเซสชันการจับภาพตัวอย่างโดยใช้เซสชัน
Camera2 - ไฟจะเปิดขึ้นและระบบจะจับภาพเฟรมตัวอย่าง
- การทดสอบจะยืนยันว่าสัญญาณบอกสถานะโหมดกลางคืนอยู่ในสถานะ
OFF - ไฟจะดับลงและระบบจะจับภาพเฟรมตัวอย่าง
- การทดสอบจะยืนยันว่าสัญญาณบอกสถานะโหมดกลางคืนอยู่ในสถานะ
ON
- การทดสอบจะเริ่มเซสชันการจับภาพตัวอย่างโดยใช้เซสชัน
- เซสชันส่วนขยายกล้อง:
- การทดสอบจะทำซ้ำขั้นตอนเดียวกับเซสชัน
Camera2แต่ใช้เซสชันCameraExtensionกับส่วนขยายEXTENSION_NIGHT
- การทดสอบจะทำซ้ำขั้นตอนเดียวกับเซสชัน
- การล้างข้อมูล: การทดสอบจะปิด
ItsSessionและปล่อยตัวควบคุมแสง
API ที่ทดสอบ:
บัตร:
- เมื่อไฟเปิดอยู่ สัญญาณบอกสถานะโหมดกลางคืนควรอยู่ในสถานะ
OFF - เมื่อไฟปิดอยู่ ตัวบ่งชี้โหมดกลางคืนควรอยู่ในสถานะ
ON - มีผลกับทั้งเซสชัน
Camera2และCameraExtension
test_preview_min_frame_rate
ทดสอบว่าอัตราเฟรมตัวอย่างลดลงอย่างถูกต้องในฉากที่มืด เพื่อให้การทดสอบนี้ทำงานได้อย่างถูกต้อง ตัวควบคุมหรือผู้ดำเนินการทดสอบต้องปิดไฟในอุปกรณ์ทดสอบด้วยตนเอง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
ผ่าน: อัตราเฟรมตัวอย่างอยู่ที่ค่าต่ำสุดของช่วงอัตราเฟรมที่ขอ และความแปรปรวนระหว่างเฟรมน้อยกว่าค่าความคลาดเคลื่อนสัมบูรณ์ที่ตั้งไว้ในการทดสอบ
test_torch_strength
ทดสอบว่าการควบคุมความแรงของแฟลชในโหมด TORCH ได้รับการติดตั้งใช้งานอย่างถูกต้อง
ยืนยันว่าหากอุปกรณ์รองรับการควบคุมความแรงของแฟลชระหว่างการใช้กล้องในโหมด TORCH ความแรงของไฟฉายจะเปลี่ยนไปตามระดับความแรงที่ขอ ยืนยันว่าการควบคุมความแรงของแฟลชทำงานร่วมกับ AE_MODES ต่างๆ ได้
ตัวอย่างเช่น หากโหมดการรับแสงอัตโนมัติเป็น ON หรือ OFF ระดับความแรงของแฟลชจะมีผลต่อความสว่าง และหากโหมดเป็น ON_AUTO_FLASH ระดับความแรงของแฟลชจะไม่มีผลต่อความสว่าง
ยืนยันว่าความสว่างของไฟฉายยังคงเท่าเดิมตลอดระยะเวลาของการถ่ายภาพต่อเนื่อง ซึ่งจำลองเซสชันการจับภาพวิดีโอ หากต้องการทำการทดสอบ คุณต้องปิดไฟในอุปกรณ์ทดสอบ โดยสามารถปิดไฟโดยอัตโนมัติด้วยตัวควบคุม Arduino ฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
บัตร:
เมื่อโหมดการรับแสงอัตโนมัติเป็น ON หรือ OFF ความสว่างของแพตช์ภาพต่อเนื่องจะเพิ่มขึ้นเมื่อระดับความแรงของแฟลชเพิ่มขึ้นจากไม่มีแฟลชเป็น FLASH_TORCH_STRENGTH_MAX_LEVEL
เมื่อโหมดการรับแสงอัตโนมัติเป็น ON_AUTO_FLASH ความแตกต่างของความสว่างของแพตช์ภาพต่อเนื่องจะอยู่ภายในค่าความคลาดเคลื่อนที่ยอมรับได้เมื่อระดับความแรงของแฟลชเพิ่มขึ้นจากไม่มีแฟลชเป็น FLASH_TORCH_STRENGTH_MAX_LEVEL
scene_gen2_chart
ใน Android 17 ขึ้นไป scene_gen2_chart จะใช้แผนภูมิกระดาษ Gen2
แผนภูมิทดสอบนี้ประกอบด้วยตัวอย่างใบหน้า คิวอาร์โค้ด แผ่นสีเทา ดาวซีเมนส์ แผนภูมิสี และสี่เหลี่ยมจัตุรัสเอียง
รูปที่ 142 ตัวอย่างแผนภูมิ Gen2
test_tonemap_sequence
การทดสอบนี้จะประเมินเส้นโค้งการแมปโทนสีเริ่มต้นของอุปกรณ์เทียบกับเส้นโค้งเชิงเส้นและเส้นโค้งแบบเอกซ์โพเนนเชียล 2 เส้น (เส้นหนึ่งมีจุดสม่ำเสมอและอีกเส้นหนึ่งมีจุดไม่สม่ำเสมอ) เพื่อให้ได้ผลลัพธ์ที่ผ่าน ความสว่างของเส้นโค้งเริ่มต้นต้องมากกว่าความสว่างของเส้นโค้งเชิงเส้นและเส้นโค้งแบบเอกซ์โพเนนเชียล นอกจากนี้ เส้นโค้งเชิงเส้นต้องสว่างกว่าเส้นโค้งแบบเอ็กซ์โพเนนเชียล และเส้นโค้งแบบเอ็กซ์โพเนนเชียลทั้ง 2 เส้นควรมีระดับความสว่างใกล้เคียงกัน
การทดสอบนี้ยังยืนยันความถูกต้องของเส้นโค้งเริ่มต้นของอุปกรณ์ด้วย โดยการดึงเส้นโค้งเริ่มต้น ป้อนข้อมูลอีกครั้ง แล้วเปรียบเทียบความสว่างของรูปภาพที่ได้กับรูปภาพของเส้นโค้งเริ่มต้นเดิม
รูปที่ 143 ทดสอบพล็อตลำดับโทนแมป
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน: ความแตกต่างของความสว่างระหว่างเส้นโค้งเริ่มต้นและเส้นโค้งเชิงเส้นมากกว่า 15% ขณะที่ความแตกต่างระหว่างเส้นโค้งแบบเอกซ์โพเนนเชียล 2 เส้นน้อยกว่า 8%
test_multi_camera_switch
การทดสอบนี้จะตรวจสอบความสอดคล้องของสีและการเปิดรับแสงระหว่างการเปลี่ยนการซูมแบบไดนามิก โดยจะตรวจสอบว่าการสลับระหว่างเลนส์มุมกว้างพิเศษ (UW) และเลนส์มุมกว้าง (W) ระหว่างการบันทึกตัวอย่างจะรักษาค่า CIELAB ที่ใกล้เคียงกัน เพื่อป้องกันไม่ให้เกิดการเปลี่ยนแปลงที่มองเห็นได้ในประสบการณ์ของผู้ใช้
การดำเนินการทดสอบจะดำเนินการบันทึกตัวอย่างแบบไดนามิกในช่วงการซูมที่กำหนดไว้ล่วงหน้าเพื่อทริกเกอร์จุด "ครอสโอเวอร์" ของกล้องจริง ซึ่งเลนส์มุมกว้างพิเศษจะเปลี่ยนเป็นเลนส์มุมกว้าง การทดสอบจะระบุเฟรมที่แน่นอนซึ่งมีการเปลี่ยนเลนส์ ระบบจะจับภาพและวิเคราะห์เฟรมที่อยู่ก่อนหน้าและหลังจุดครอสโอเวอร์นี้ทันทีเพื่อดูความเสถียรในการเปิดรับแสงอัตโนมัติ (AE) และสมดุลแสงขาวอัตโนมัติ (AWB)
การตรวจสอบ AE จะยืนยันว่าความผันผวนของ Luma ยังคงอยู่ในช่วงที่ยอมรับได้ในระหว่างการส่งต่อเลนส์ การตรวจสอบ AWB จะยืนยันว่าอัตราส่วนสีแดง-เขียวและน้ำเงิน-เขียวอยู่ภายในเกณฑ์ที่กำหนดของความเป็นกลางของสี
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
ผ่าน: การทดสอบจะผ่านได้ก็ต่อเมื่อผ่านการตรวจสอบ AE และ AWB ต่อไปนี้
- การตรวจสอบ AE: การเปลี่ยนแปลงความสว่าง (ค่า Y) ระหว่างรูปภาพจากเลนส์ UW และ W ต้องน้อยกว่า 4% สำหรับแถบสีทั้งหมดหากอุปกรณ์รองรับทั้ง
ae_regionsและawb_regionsหากรองรับเฉพาะae_regionsค่าแพตช์สีเทาเท่านั้นที่ต้องเป็นไปตามเกณฑ์ - การตรวจสอบ AWB: ความแตกต่างระหว่างค่าสีแดง-เขียวและน้ำเงิน-เขียวสำหรับรูปภาพจากเลนส์ UW และ W ต้องน้อยกว่า 3% สำหรับแถบสีเทา และต้องน้อยกว่า 10% สำหรับแถบสีอื่นๆ หากอุปกรณ์รองรับทั้ง
ae_regionsและawb_regions
รูปที่ 144 แผ่นสีเทาที่ถ่ายด้วยเลนส์ UW
รูปที่ 145 แผ่นสีเทาที่ถ่ายด้วยเลนส์ W
scene_ip
ใน Android 16 ขึ้นไป ฉาก scene_ip จะเปิดใช้การตรวจสอบความเท่าเทียมกันของรูปภาพระหว่างแอปกล้องเริ่มต้นกับแอปกล้อง Jetpack (JCA) เพื่อระบุความแตกต่างที่สำคัญระหว่างรูปภาพที่ถ่าย JCA จะจำลองการจับภาพของแอปโซเชียลมีเดียและให้รูปภาพพื้นฐานที่แอปโซเชียลมีเดียจะนำไปประมวลผลและปรับแต่งต่อไป
ข้อกำหนดในการตั้งค่าฮาร์ดแวร์
ต้องตั้งค่าฮาร์ดแวร์ต่อไปนี้สำหรับการทดสอบ scene_ip
- การทดสอบจะดำเนินการใน ITS-in-a-box ของกล้อง Gen2
- ระบบจะใช้ตัวควบคุมแสงและเซอร์โวซึ่งเป็นส่วนหนึ่งของอุปกรณ์ Gen2 เพื่อควบคุมสภาพแวดล้อมการทดสอบ
- แผนภูมิฟีเจอร์ทดสอบจะวางอยู่ภายในอุปกรณ์ 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
ผ่าน: ศูนย์กลางออปติคัลของค่าภายในของเลนส์เปลี่ยนไป 1 พิกเซลขึ้นไป หากรองรับตัวอย่างภายในของเลนส์ ศูนย์กลางออปติคอลของตัวอย่างภายในของเลนส์จะเปลี่ยนไป 1 พิกเซลขึ้นไป
ภาพต่อไปนี้เป็นตัวอย่างพล็อต test_lens_intrinsic_calibration ที่แสดงการเปลี่ยนแปลงของจุดหลักในหน่วยพิกเซลสำหรับแต่ละเฟรม
รูปที่ 149 ตัวอย่างของแผนภาพ test_lens_intrinsic_calibration ที่แสดงการเปลี่ยนแปลงของจุดหลักในหน่วยพิกเซลสำหรับแต่ละเฟรม
test_multi_camera_frame_sync
ทดสอบว่าการประทับเวลาของเฟรมที่กล้องเชิงตรรกะจับภาพได้อยู่ภายใน 10 มิลลิวินาทีโดยการคำนวณมุมของสี่เหลี่ยมจัตุรัสภายในกระดานหมากรุกเพื่อระบุการประทับเวลา
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPEandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
ผ่าน: มุมระหว่างรูปภาพจากกล้องแต่ละตัวไม่เปลี่ยนแปลงอย่างเห็นได้ชัดเมื่อหมุนโทรศัพท์
test_preview_distortion
ทดสอบว่ามีการแก้ไขการบิดเบี้ยวตลอดทั้งเฟรมตัวอย่างแต่ละเฟรมที่ถ่ายที่ระดับการซูมต่างๆ สำหรับการแสดงตัวอย่างแต่ละเฟรม การทดสอบจะคำนวณจุดที่เหมาะสมโดยอิงตามคุณสมบัติภายในและภายนอกของกล้อง
ในรูปภาพตัวอย่าง จุดที่เหมาะสมจะแสดงเป็นสีเขียว ส่วนจุดจริงจะแสดงเป็นสีแดง ข้อผิดพลาดในการบิดเบือนจะคำนวณตามระยะทางพิกเซล RMS ระหว่างจุดจริงกับจุดที่เหมาะสมที่สุด ไฮไลต์สีเขียวและสีแดงบนรูปภาพใช้เพื่อตรวจหาพื้นที่ที่มีข้อผิดพลาดจากการบิดเบี้ยวด้วยสายตา
รูปที่ 150 รูปภาพกระดานหมากรุกที่มีจุดที่เหมาะสมเป็นสีเขียวและจุดจริงเป็นสีแดง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.media.CamcorderProfileandroid.media.MediaRecorder
ผ่าน: ข้อผิดพลาดจากการบิดเบือนที่ปรับมาตรฐานแล้วของเฟรมตัวอย่างแต่ละเฟรมน้อยกว่าเกณฑ์ที่ตั้งไว้ในการทดสอบ
test_preview_stabilization
การทดสอบที่วิดีโอตัวอย่างแบบลดการสั่นไหวหมุนน้อยกว่าเครื่องวัดการหมุน
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
ผ่าน: การหมุนมุมสูงสุดในเฟรมน้อยกว่า 70% ของการหมุนเครื่องวัดการหมุน
ต่อไปนี้เป็นวิดีโอตัวอย่างที่มีและไม่มีระบบกันสั่น
รูปที่ 151 วิดีโอตัวอย่างที่มีระบบกันภาพสั่น
รูปที่ 152 วิดีโอตัวอย่างที่ไม่มีระบบกันภาพสั่น
test_sensor_fusion
ทดสอบความแตกต่างของการประทับเวลาระหว่างกล้องและเครื่องวัดการหมุนสำหรับแอปพลิเคชัน AR และ VR หมุนโทรศัพท์ 90 องศา 10 ครั้งที่ด้านหน้าของรูปแบบกระดานหมากรุก การเคลื่อนไหวใช้เวลาไปกลับประมาณ 2 วินาที ระบบจะข้ามการทดสอบนี้หากไม่มีเครื่องวัดการหมุนหรือหากไม่ได้เปิดใช้พารามิเตอร์แหล่งที่มาของการประทับเวลา REALTIME
การทดสอบ test_sensor_fusion จะสร้างแผนภาพจำนวนหนึ่ง ผังที่สำคัญที่สุด 2 ผังสำหรับการแก้ไขข้อบกพร่อง ได้แก่
test_sensor_fusion_gyro_events: แสดงเหตุการณ์เครื่องวัดการหมุนของโทรศัพท์ระหว่างการทดสอบ การเคลื่อนไหวในทิศทาง x และ y บ่งบอกว่าโทรศัพท์ไม่ได้ยึดติดกับเพลตยึดอย่างแน่นหนา ซึ่งจะลดโอกาสที่การทดสอบจะผ่าน จำนวนรอบในพล็อตจะขึ้นอยู่กับความเร็วในการเขียนเพื่อบันทึกเฟรม
รูปที่ 153 ตัวอย่างเหตุการณ์เครื่องวัดการหมุน test_sensor_fusion
test_sensor_fusion_plot_rotations: แสดงการจัดแนวของเครื่องวัดการหมุนและเหตุการณ์จากกล้อง แผนภาพนี้ต้องแสดงการเคลื่อนไหวที่ตรงกันระหว่างกล้องและเครื่องวัดการหมุนที่ +/-1 มิลลิวินาที
รูปที่ 154 ตัวอย่างการหมุนพล็อต test_sensor_fusion
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#LENS_FACINGandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
ผ่าน: ออฟเซ็ตของการประทับเวลาของกล้องและเครื่องวัดการหมุนน้อยกว่า 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 ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
ผ่าน: การหมุนมุมสูงสุดในเฟรมน้อยกว่า 60% ของการหมุนเครื่องวัดการหมุน
ต่อไปนี้เป็นวิดีโอตัวอย่างที่มีและไม่มีระบบกันสั่น
รูปที่ 155 วิดีโอตัวอย่างที่มีระบบกันภาพสั่น
รูปที่ 156 วิดีโอตัวอย่างที่ไม่มีระบบกันภาพสั่น
test_video_stabilization_jca
ทดสอบว่าวิดีโอที่มีระบบกันสั่นซึ่งบันทึกโดยใช้ JCA หมุนน้อยกว่าเครื่องวัดการหมุน ต้องติดตั้ง JCA ในอุปกรณ์ก่อนทำการทดสอบ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.CamcorderProfileandroid.media.MediaRecorder
ผ่าน: การหมุนมุมสูงสุดเหนือเฟรมที่ดึงมาจากวิดีโอที่บันทึกโดยใช้ JCA น้อยกว่า 70% ของการหมุนเครื่องวัดการหมุน 4)
ฉากทดสอบที่ใช้ตัวกระจายแสง
scene5
scene5 ต้องใช้ฉากสีเทาที่มีแสงสม่ำเสมอ ซึ่งทำได้โดยใช้แผ่นกระจายแสง
วางไว้เหนือเลนส์กล้อง เราขอแนะนำให้ใช้ตัวกระจายแสงต่อไปนี้
http://www.edmundoptics.com/optics/windows-diffusers/optical-diffusers/opal-diffusing-glass/46168/
ในการเตรียมฉาก ให้ติดแผ่นกระจายแสงที่ด้านหน้ากล้องและเล็งกล้องไปที่แหล่งกำเนิดแสงที่มีความสว่างประมาณ 2, 000 ลักซ์ รูปภาพที่ถ่ายสำหรับ scene5 ต้องใช้แสงแบบกระจายโดยไม่มีฟีเจอร์ที่ชัดเจน ตัวอย่างรูปภาพมีดังนี้
รูปที่ 157 ตัวอย่างการจับภาพฉากที่ 5
เนื่องจากฉากนี้ไม่จำเป็นต้องใช้แท็บเล็ตหรือตัวควบคุม การทดสอบจึงใช้เตียงทดสอบ TEST_BED_MANUAL ดูตัวอย่างได้ที่ไฟล์ config.yml ของการทดสอบด้วยตนเอง
ไฟล์ config.yml เริ่มต้นไม่มี TEST_BED_MANUAL แต่คุณสามารถแก้ไขไฟล์เพื่อรวมไว้ได้
test_lens_shading_and_color_uniformity
ทดสอบว่ามีการใช้การแก้ไขการปรับแสงเงาของเลนส์อย่างเหมาะสม และสีของฉากที่สม่ำเสมอแบบสีเดียวมีการกระจายอย่างสม่ำเสมอ ทำการทดสอบนี้ในเฟรม YUV ที่มี 3A อัตโนมัติ ระบบจะประเมินการปรับแสงเงาของเลนส์ตามช่อง Y วัดค่า y เฉลี่ยสำหรับบล็อกตัวอย่างแต่ละบล็อกที่ระบุ และพิจารณาว่าผ่านหรือไม่ผ่านโดยเปรียบเทียบกับค่า y ตรงกลาง การทดสอบความสม่ำเสมอของสีจะประเมินในพื้นที่สีแดง-เขียวและน้ำเงิน-เขียว
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
ผ่าน: ที่รัศมีที่ระบุของรูปภาพ ความแปรปรวนของค่าสีแดง-เขียวและน้ำเงิน-เขียวต้องน้อยกว่า 20% จึงจะผ่านการทดสอบ
กลไกการทำงานที่ล้มเหลว
- รูปภาพมีขอบมืดมากเกินไป
- อาร์ติแฟกต์ขอบสีดำในรูปภาพ
รูปที่ 158 test_lens_shading_and_color_uniformity_y_plane
รูปที่ 159 test_lens_shading_and_color_uniformity_color_uniformity
รูปที่ 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 ที่ทดสอบ:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
ผ่าน: JPEG มีโปรไฟล์ ICC Display P3 และสีมากกว่า 1% อยู่นอกขอบเขต sRGB
รูปที่ 161 ตัวอย่าง test_display_p3