หน้านี้จะแสดงรายการการทดสอบที่ครอบคลุมภายใต้ Camera Image Test Suite (ITS) ซึ่งเป็นส่วนหนึ่งของโปรแกรมตรวจสอบความเข้ากันได้ของ Android (CTS) การทดสอบ ITS เป็นการทดสอบการทำงาน ซึ่งหมายความว่าไม่ได้วัดคุณภาพของรูป แต่ฟังก์ชันกล้องทั้งหมดที่โฆษณาทำงานตามที่คาดไว้ เอกสารนี้จะช่วยให้นักพัฒนาซอฟต์แวร์และผู้ทดสอบเข้าใจสิ่งที่การทดสอบแต่ละรายการทำและวิธีแก้ไขข้อบกพร่องของการทดสอบที่ไม่สำเร็จ
ประตู ITS ของกล้องจะทดสอบตามคุณสมบัติของกล้องที่จำเป็น ระดับ API และระดับประสิทธิภาพสื่อ (MPC) สำหรับระดับ API ทาง ITS จะใช้ ro.product.first_api_level
เพื่อกำหนดการทดสอบที่เพิ่มในระดับ API ที่เจาะจง ซึ่งจะทดสอบประสบการณ์ของผู้ใช้ในแง่ลบสำหรับฟังก์ชันการทำงานใน API ระดับต่ำกว่า ITS ใช้ ro.vendor.api_level
เพื่อกำหนดการทดสอบสำหรับฟีเจอร์ที่เพิ่มในระดับ API ที่เจาะจง ซึ่งต้องใช้ความสามารถของฮาร์ดแวร์ใหม่ หากมีการกำหนด ro.odm.build.media_performance_class
สำหรับอุปกรณ์ ITS จะต้องมีการทดสอบที่เฉพาะเจาะจงโดยขึ้นอยู่กับระดับ MPC
การทดสอบจะจัดกลุ่มตามโหมดดังต่อไปนี้
- ฉาก 0: บันทึกข้อมูลเมตา เสียงรบกวน เครื่องวัดการหมุน การสั่น
- โหมด1: การเปิดรับแสง, ความไว, การชดเชย EV, YUV เทียบกับ JPEG/RAW
- ฉาก2: การตรวจจับใบหน้า การทดสอบที่ต้องมีฉากสีหรือความมืดสนิท
- ฉาก 3: การเพิ่มประสิทธิภาพขอบ การเคลื่อนไหวของเลนส์
- season4: สัดส่วนภาพ การครอบตัด ขอบเขตการมองเห็น
- progress5: การปรับแสงเลนส์
- events6: ซูม
- view_extensions: ส่วนขยายกล้อง
- sensor_fusion: ออฟเซ็ตเวลาของกล้อง/เครื่องวัดการหมุน
ดูคำอธิบายของแต่ละฉากในแต่ละส่วน
ฉาก0
การทดสอบฉาก 0 ไม่ต้องการข้อมูลฉากที่เจาะจง อย่างไรก็ตาม โทรศัพท์ต้องนิ่งเพื่อการทดสอบเครื่องวัดการหมุนและการสั่น
ทดสอบภาพถ่ายอัจฉริยะ
ยืนยันว่าไปป์ไลน์การบันทึกภาพทั้งท่อสามารถรองรับความเร็วการจับภาพขนาดเต็มและเวลา CPU ได้
API ที่ทดสอบ:
ผ่าน: ถ่ายภาพขนาดเต็มที่ถ่ายออกมาและกล้องถ่ายรูปมีความเร็วเพียงพอที่จะหลีกเลี่ยงการหมดเวลา
test_capture_result_dump
ทดสอบว่าได้ส่งคืนผลการจับภาพจากการบันทึกด้วยตนเอง แล้วถ่ายโอนไปยัง
API ที่ทดสอบ:
ผ่าน: จับภาพเสร็จสมบูรณ์และทิ้งผลลัพธ์การจับภาพ
ค่าความเอียงทดสอบ
ทดสอบว่า Gyro มีเอาต์พุตที่เสถียรหรือไม่เมื่ออุปกรณ์อยู่กับที่ ข้อมูลจะแสดงเป็นจุดข้อมูลเฉลี่ย 20 จุด
API ที่ทดสอบ:
ผ่าน: เดลต้าของการอ่านด้วยไจโรมีค่าน้อยกว่า 0.01 เมื่อเวลาผ่านไป
test_gyro_bias_plot.png
ทดสอบ Jitter
วัด Jitter ในการประทับเวลาของกล้อง
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
ผ่าน: มีเดลต้าอย่างน้อย 30 มิลลิวินาทีระหว่างเฟรม
test_jitter_plot.png (โปรดสังเกตช่วงแกน y ขนาดเล็ก Jitter ในแผนผังนี้ มีขนาดเล็ก)
test_metadata
ทดสอบความถูกต้องของรายการข้อมูลเมตา ดูที่การจับภาพและ
ที่ออบเจ็กต์ลักษณะเฉพาะกล้อง การทดสอบนี้ใช้จำนวนผู้ที่เห็น auto_capture_request
และรับค่าต่างๆ เนื่องจากเนื้อหารูปภาพไม่สำคัญ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
ผ่าน: ระดับฮาร์ดแวร์, rollingShutterSkew
, แท็ก frameDuration
,
timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
, FoV,
ระยะโฟกัสและมีค่าที่ถูกต้อง
test_param_sensitivity_burst
ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.sensitivity
ในภาพถ่ายอัจฉริยะอย่างถูกต้อง ตรวจสอบข้อมูลเมตาของเอาต์พุตเท่านั้น
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: ข้อมูลเอาต์พุตมีความอดทนต่อข้อผิดพลาดน้อยกว่า 0.2%
ทดสอบ_อ่าน_เขียน
การทดสอบว่าอุปกรณ์เขียนการรับแสงที่ถูกต้องและรับค่าด้วยการอ่านข้อมูลเมตาของการจับภาพกลับคืนมา
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
ผ่าน: การอ่านและเขียนค่าที่ตรงกันในทุกช็อต
test_sensor_events
ทดสอบว่าอุปกรณ์ค้นหาและพิมพ์เหตุการณ์เซ็นเซอร์สำหรับอุปกรณ์ที่โฆษณาการรองรับฟิวชันเซ็นเซอร์ เซ็นเซอร์ที่ควรใช้คือตัวตรวจวัดความเร่ง เครื่องวัดการหมุน และเครื่องวัดค่าความเข้มข้นของสนามแม่เหล็ก การทดสอบนี้จะทำงานเมื่อหน้าจอเปิดอยู่เท่านั้น ซึ่งหมายความว่า อุปกรณ์ไม่ได้อยู่ในโหมดสแตนด์บาย
API ที่ทดสอบ:
ผ่าน: ได้รับเหตุการณ์สำหรับเซ็นเซอร์แต่ละตัว
test_solid_color_test_pattern
การทดสอบว่าสร้างรูปแบบการทดสอบสีทึบขึ้นอย่างถูกต้องสำหรับการปิดเสียงกล้อง หากรองรับการปิดเสียงกล้อง ต้องรองรับรูปแบบการทดสอบสีทึบ หากไม่รองรับการปิดเสียงกล้อง รูปแบบการทดสอบสีทึบจะได้รับการทดสอบเมื่อมีการโฆษณาความสามารถเท่านั้น
หากรองรับรูปภาพ RAW จะมีการทดสอบการกำหนดสีด้วย สีที่ทดสอบ ได้แก่ ดำ ขาว แดง น้ำเงิน และเขียว สำหรับกล้องที่ไม่รองรับรูปภาพ RAW จะมีการทดสอบสีดำเท่านั้น
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
ผ่าน: รูปแบบการทดสอบแบบทึบที่รองรับเป็นสีที่ถูกต้องและมีความแปรปรวนในภาพต่ำ
test_test_pattern
ทดสอบพารามิเตอร์ android.sensor.testPatternMode
เพื่อบันทึกเฟรมสำหรับรูปแบบการทดสอบที่ถูกต้องแต่ละรูปแบบ และตรวจสอบว่าเฟรมสร้างขึ้นอย่างถูกต้องสำหรับสีทึบและแถบสี การทดสอบนี้จะมีขั้นตอนต่อไปนี้
- จับภาพสำหรับรูปแบบการทดสอบที่รองรับทั้งหมด
- ดำเนินการตรวจสอบความถูกต้องแบบง่ายๆ สำหรับรูปแบบการทดสอบสีทึบและแถบสี
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
ผ่าน: สร้างรูปแบบการทดสอบที่รองรับได้อย่างถูกต้อง
test_test_patterns_2.jpg
ทดสอบกราฟโทนสี
ทดสอบการแปลงรูปแบบทดสอบจาก RAW เป็น YUV ด้วยโทนสีเชิงเส้น การทดสอบนี้ต้องใช้ android.sensor.testPatternMode = 2
(COLOR_BARS) ในการสร้างรูปแบบรูปภาพที่สมบูรณ์แบบสำหรับการแปลงโทนสี ตรวจสอบว่าไปป์ไลน์มีเอาต์พุตสีที่เหมาะสมพร้อมโทนสีเชิงเส้นและอินพุตรูปภาพที่เหมาะสม (ขึ้นอยู่กับ test_test_patterns
)
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน: YUV และสขช.ดูคล้ายคลึงกัน
test_tonemap_curve_raw_2.jpg
test_tonemap_curve_yuv_2.jpg
test_unified_timestamp
ทดสอบว่าเหตุการณ์เซ็นเซอร์รูปภาพและการเคลื่อนไหวอยู่ในโดเมนเดียวกันหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
ผ่าน: การประทับเวลาการเคลื่อนไหวจะอยู่ระหว่างการประทับเวลารูปภาพ 2 รูป
การจำกัดทดสอบ_การสั่น
ทดสอบว่าการสั่นของอุปกรณ์ทำงานตามที่คาดไว้หรือไม่
API ที่ทดสอบ:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
ผ่าน: อุปกรณ์จะไม่สั่นเมื่อปิดเสียงโดย API การจำกัดเสียงของกล้อง
ฉาก 1
ฉาก 1 คือแผนภูมิสีเทา แผนภูมิสีเทาต้องครอบคลุมตรงกลาง 30% ของขอบเขตการมองเห็นกล้อง คาดว่าแผนภูมิสีเทาจะทดสอบ 3A (การเปิดรับแสงอัตโนมัติ สมดุลแสงขาวอัตโนมัติ โฟกัสอัตโนมัติ) ปานกลางเนื่องจากบริเวณตรงกลางไม่มีองค์ประกอบใดๆ แต่คำขอจับภาพจะระบุฉากทั้งหมดซึ่งมีฟีเจอร์ที่เพียงพอเพื่อให้ 3A บรรจบกัน
กล้อง RFoV สามารถทดสอบในอุปกรณ์ทดสอบ WFoV หรือ RFoV ได้ หากกล้อง RFoV ได้รับการทดสอบในอุปกรณ์ทดสอบ WFoV แผนภูมิจะมีการปรับขนาดเป็น 2⁄3 เพื่อให้มีขอบเขตบางส่วนสำหรับแผนภูมิสีเทาใน FoV เพื่อช่วยให้ 3A บรรจบกัน ดูรายละเอียดเพิ่มเติม เกี่ยวกับแท่นทดสอบกล้องได้ที่ อุปกรณ์ไอทีที่มาพร้อมกับอุปกรณ์
ฉาก 1: แผนภูมิขนาดเต็ม (ซ้าย) แผนภูมิที่ปรับขนาดแล้ว 2⁄3 (ขวา)
ทดสอบ 3a
ทดสอบการบรรจบกันของ 3A กับเป้าหมายที่ท้าทายปานกลาง
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
ผ่าน: ลู่เข้า 3A และค่า 3A ที่แสดงผลถูกต้อง
ทดสอบ_ae_af
ทดสอบอัลกอริทึมการรับแสงอัตโนมัติ (AE) และโฟกัสอัตโนมัติ (AF) แบบ 3A แยกกัน
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
ผ่าน: ลู่เข้า 3A และค่า 3A ที่แสดงผลเป็นค่าทางกฎหมาย
test_ae_precapture_trigger
ทดสอบเครื่องสถานะ AE เมื่อใช้ทริกเกอร์ Precapture บันทึกคำขอด้วยตนเอง 5 รายการเมื่อปิดใช้ AE คำขอสุดท้ายมีทริกเกอร์ล่วงหน้า AE ซึ่งควรละเว้นเนื่องจากมีการปิดใช้ AE
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
ผ่าน: ลู่ AE
test_auto_vs_manual
การทดสอบที่บันทึกช็อตอัตโนมัติและช็อตด้วยตนเองจะมีลักษณะเหมือนกัน
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
ผ่าน: ค่าไวท์บาลานซ์ที่กำหนดเองที่ได้รับและการเปลี่ยนรูปแบบที่รายงานในผลลัพธ์การจับภาพแต่ละรายการตรงกับค่าไวท์บาลานซ์อัตโนมัติ estimate
จากอัลกอริทึม 3A ของกล้อง
test_auto_vs_manual_auto.jpg
test_auto_vs_manual_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
ทดสอบสีขาวดำ
ทดสอบว่าอุปกรณ์สร้างรูปภาพขาวดำแบบเต็ม ถ่ายภาพ 2 ภาพ แบบแรกมีการปรับค่าความสว่างต่ำมากและรับแสงสั้นมาก ทำให้ได้รูปภาพสีดำ และภาพที่ 2 มีการเปิดรับแสงสูงมากและรับแสงนาน ส่งผลให้ได้รูปภาพสีขาว
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: สร้างรูปภาพขาวดำ ช่องสีอิ่มตัวของรูปภาพสีขาว มีค่า RGB ที่ [255, 255, 255] โดยมีความคลาดเคลื่อนน้อยกว่า 1%
test_black_white_black.jpg | test_black_white_white.jpg |
ทดสอบ_สีดำ_สีขาว_plot_means.png
test_burst_sameness_manual
ถ่ายภาพอัจฉริยะ 50 ภาพโดยใช้การตั้งค่าการจับภาพด้วยตนเองและตรวจสอบว่าทั้งหมดเหมือนกันหรือไม่ การทดสอบนี้ใช้เพื่อระบุว่ามีเฟรมที่ประมวลผลต่างออกไปเป็นระยะๆ หรือมีอาร์ติแฟกต์หรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
ผ่าน: รูปภาพเหมือนกันและเป็นค่า RGB
ไม่ผ่าน: แสดงการเพิ่มขึ้นหรือลดลงของแผนภูมิเฉลี่ย RGB ในช่วงเริ่มต้นของภาพถ่ายอัจฉริยะแต่ละครั้ง
- ความคลาดเคลื่อน 3% สำหรับ
first_API_level
< 30 - ความคลาดเคลื่อน 2% สำหรับ
first_API_level
>= 30
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_capture_result
การทดสอบว่าข้อมูลที่ถูกต้องจะกลับมาในออบเจ็กต์ CaptureResult
รายการ มีทั้งการจับภาพอัตโนมัติ
ด้วยตนเอง และอัตโนมัติ
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน: ข้อมูลเมตาใช้ได้กับการจับภาพทั้งหมด และการตั้งค่าด้วยตนเองจะไม่รั่วไหลในการบันทึกอัตโนมัติรายการที่สอง พล็อตการแก้ไขการแรเงาเลนส์สำหรับการจับภาพ
test_capture_result_plot_lsc_auto_ch0.png
ทดสอบการครอบตัดภูมิภาค_ข้อมูลดิบ
ทดสอบว่าครอบตัดสตรีม RAW ไม่ได้
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
ผ่าน: รูปภาพ YUV จะได้รับการครอบตัดที่กึ่งกลาง แต่จะไม่ตัดเป็นรูปภาพ RAW
test_crop_region_raw_comp_raw_crop.jpg
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_region
การทดสอบว่าพื้นที่ครอบตัดใช้งานได้หรือไม่ ถ่ายภาพเต็มและสร้างแพตช์ของ 5 พื้นที่ต่างๆ (มุมและตรงกลาง) ถ่ายภาพโดยตั้งค่าการครอบตัดสำหรับ 5 ภูมิภาค เปรียบเทียบแพตช์และค่าครอบตัดรูปภาพ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
ผ่าน: รูปภาพของส่วนที่ครอบตัดตรงกับแพตช์ที่ตรงกับรูปภาพที่ครอบตัด
โมเดลเสียงทดสอบ dng
ตรวจสอบว่าพารามิเตอร์โมเดลดิบ DNG ถูกต้อง แผนภูมินี้แสดงความแปรปรวนที่วัดได้ของแพทช์กึ่งกลางของการ์ดสีเทาในภาพดิบที่ถ่ายในช่วงความไวหลากหลาย และเปรียบเทียบค่าเหล่านี้กับความแปรปรวนที่คาดว่าจะเกิดที่ความไวแต่ละครั้งโดยโมเดลสัญญาณรบกวน DNG ใน HAL ของกล้อง (อิงตามพารามิเตอร์ O,S ที่แสดงผลในออบเจ็กต์ผลลัพธ์การจับภาพ) หากต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับโมเดลสัญญาณรบกวน DNG ให้ดาวน์โหลดเอกสารต่อไปนี้ในโมเดลเสียง DNG
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: พารามิเตอร์โมเดลดิบ DNG ถูกต้อง ค่า RGB ที่คาดไว้ตรงกับค่า RGB จริงที่วัด
test_dng_noise_model_plog.png
ทดสอบค่าตอบแทนขั้นสูง
ทดสอบว่ามีการใช้การชดเชยค่าการสัมผัส (EV) การทดสอบนี้จะเพิ่มการรับแสงใน 8 ขั้นตอน และตรวจสอบความสว่างที่วัดเทียบกับความสว่างที่คาดไว้ ค่าที่คาดไว้คำนวณจากความสว่างของรูปภาพที่ไม่ได้ใช้ค่าชดเชย EV และค่าที่คาดการณ์ไว้จะอิ่มตัวหากค่าที่คำนวณได้เกินช่วงค่าจริงของรูปภาพ ทดสอบไม่สำเร็จหากค่าที่คาดไว้และค่าที่วัดได้ไม่ตรงกัน หรือรูปภาพแสดงมากเกินไปภายใน 5 ขั้นตอน
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
ผ่าน: รูปภาพแสดงการรับแสงที่เพิ่มขึ้นโดยไม่สว่างเกินไปภายใน 5 ขั้นตอน
test_ev_compensation_advanced_plot_means.png
ทดสอบ_ค่าตอบแทน_พื้นฐาน
การทดสอบว่ามีการใช้การชดเชย EV โดยใช้ช่วงที่สร้างด้วย CONTROL_AE_COMPENSATION_STEP
ระบบจะจับภาพ 8 เฟรมที่ค่าชดเชยแต่ละค่า
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
ผ่าน: วัดค่า Luma ที่เพิ่มขึ้นด้วยการตั้งค่าการชดเชย EV เพิ่มขึ้นและเฟรมทั้ง 8 เฟรมที่จับภาพสำหรับการตั้งค่าการชดเชย EV แต่ละเฟรมมีค่าลูมาคงที่
test_ev_compensation_basic.png
test_exposure
การทดสอบเพื่อหาค่าการรับแสงคงที่เมื่อ ISO และเวลาการรับแสงจะแตกต่างกันไป ถ่ายชุดช็อตที่มี ISO และเวลารับแสงที่เลือกให้สมดุลกัน
ผลลัพธ์ควรมีความสว่างเท่ากัน แต่เมื่อเรียงลำดับแล้ว รูปภาพควรมีเสียงรบกวนมากขึ้น ยืนยันว่าค่าเฉลี่ยของพิกเซลตัวอย่างอยู่ใกล้กัน ตรวจสอบว่ารูปภาพไม่ได้บีบให้เหลือ 0 หรือ 1 (ซึ่งจะทำให้ดูเหมือนเส้นแบน) คุณทำการทดสอบกับรูปภาพ RAW ได้ด้วยโดยตั้งค่าแฟล็ก debug
ในไฟล์การกำหนดค่า
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: รูปภาพมีความสว่างเท่ากัน แต่จะมีเสียงดังกว่าเมื่อใช้ ISO ที่สูงขึ้น ระนาบ RGB จะแบนเมื่อค่า ISO*Exposure คงที่เหนือพื้นที่เกนที่ทดสอบ
test_exposure_plot_means.png
test_exposure_mult=1.00.jpg | test_exposure_mult=64.00.jpg |
ทดสอบ jpeg
การทดสอบที่แปลงรูปภาพ YUV และรูปภาพ JPEG ของอุปกรณ์จะเหมือนกัน การทดสอบจะใช้พื้นที่ตรงกลาง 10% ของรูปภาพ แล้วคำนวณค่า RGB และยืนยันว่าค่าทั้งสองตรงกัน
API ที่ทดสอบ:
ผ่าน: ความแตกต่างของ RGB โดยเฉลี่ยระหว่างรูปภาพแต่ละรูปน้อยกว่า 3%
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
test_latching [ล็อกการทดสอบ]
ทดสอบว่าการตั้งค่า (การรับแสงและการปรับค่า) สลักบนเฟรมที่ถูกต้องสำหรับกล้อง FULL
และ LEVEL_3
ถ่ายซีรีส์ช็อตต่างๆ โดยใช้คำขอต่อเนื่องกัน โดยปรับพารามิเตอร์คำขอจับภาพต่างๆ ระหว่างการถ่ายทำ ตรวจสอบว่ารูปภาพมีคุณสมบัติตามที่คาดไว้
API ที่ทดสอบ:
ผ่าน: รูปภาพ [2, 3, 6, 8, 10, 12, 13] มี ISO หรือการรับแสงเพิ่มขึ้น และแสดงขึ้นด้วยค่า RGB ที่สูงขึ้นในวันที่ test_latching_plot_means.png
test_latching_i=00.jpg | test_latching_i=01.jpg | test_latching_i=02.jpg | |
test_latching_i=03.jpg | test_latching_i=04.jpg | test_latching_i=05.jpg | |
test_latching_i=06.jpg | test_latching_i=07.jpg | test_latching_i=08.jpg | |
test_latching_i=09.jpg | test_latching_i=10.jpg | test_latching_i=11.jpg | |
test_latching_i=12.jpg |
test_latching_plot_means.png
ทดสอบเชิงเส้น
การทดสอบว่าการประมวลผลของอุปกรณ์สามารถกลับด้านเป็นพิกเซลเชิงเส้นได้ จับภาพต่อเนื่องของการถ่ายภาพด้วยอุปกรณ์ที่ชี้ไปยังเป้าหมายแบบเดียวกัน
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน: ค่า R, G, B ต้องเพิ่มขึ้นเป็นเชิงเส้นโดยมีความไวเพิ่มขึ้น
test_Linearity_plot_means.png
test_locked_burst
ทดสอบล็อก 3A และการถ่ายภาพอัจฉริยะ YUV (โดยใช้การตั้งค่าอัตโนมัติ) การทดสอบนี้ออกแบบมาเพื่อให้ผ่านแม้แต่ในอุปกรณ์แบบจำกัดที่ไม่มี MANUAL_SENSOR
หรือ PER_FRAME_CONTROLS
การทดสอบจะตรวจสอบความสอดคล้องของรูปภาพ YUV ขณะที่การตรวจสอบอัตราเฟรมอยู่ใน CTS
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
ผ่าน: การจับภาพดูสม่ำเสมอ
test_locked_burst_frame0.jpg
test_locked_burst_frame1.jpg
test_locked_burst_frame2.jpg
test_param_color_correction
ทดสอบว่ามีการใช้พารามิเตอร์ android.colorCorrection.*
เมื่อตั้งค่าแล้ว
ถ่ายภาพที่มีการเปลี่ยนรูปแบบต่างๆ และได้รับค่าต่างๆ และทดสอบว่าภาพดูแตกต่างกันทุกประการ เราเลือกการแปลงและการหากำไรเพื่อทำให้เอาต์พุต
เป็นสีแดงหรือสีน้ำเงินมากขึ้น ใช้โทนแผนที่เชิงเส้น การแมปโทนเป็นเทคนิคที่ใช้ในการประมวลผลรูปภาพเพื่อแมปสีชุดหนึ่งกับอีกชุดหนึ่ง เพื่อประมาณรูปลักษณ์ของรูปภาพที่มีช่วงไดนามิกสูงในสื่อที่มีช่วงไดนามิกที่จํากัดมากกว่า
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
ผ่าน: ค่า R และ B จะเพิ่มขึ้นตามการเปลี่ยนรูปแบบ
test_param_color_correction_plot_means.png
*แกน x คือคำขอจับภาพ: 0 = เป็นหนึ่งเดียวกัน, 1=เพิ่มสีแดง, 2= บูสต์สีฟ้า
test_param_color_correction_req=0.jpg
test_param_color_correctness_req=1.jpg (เพิ่มระดับ R)
test_param_color_correction_req=2.jpg (เพิ่มคุณภาพ B)
test_param_exposure_time
ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.exposureTime
แล้ว
API ที่ทดสอบ:
ผ่าน: แต่ละช็อตจะสว่างกว่าภาพก่อนหน้า
test_param_exposure_time_frame0.jpg
test_param_exposure_time_plot.png
test_param_flash_mode
ทดสอบว่ามีการใช้พารามิเตอร์ android.flash.mode
แล้ว ตั้งค่าการเปิดเผยให้อยู่ในด้านมืดด้วยตนเอง เพื่อให้เห็นได้ชัดเจนว่าแฟลชทำงานหรือไม่ และใช้โทนสีแบบเชิงเส้น ตรวจสอบตรงกลางด้วยภาพย่อยเพื่อดูว่า
มีการไล่ระดับสีขนาดใหญ่ที่สร้างขึ้นเพื่อตรวจสอบว่าแฟลชเริ่มทำงานหรือไม่
API ที่ทดสอบ:
ผ่าน: กึ่งกลางของรูปภาพการ์ดมีการไล่ระดับสีขนาดใหญ่หมายความว่าแฟลชทำงาน
test_param_flash_mode_1.jpg
test_param_flash_mode_1_tile.jpg
test_param_flash_mode_2.jpg
test_param_flash_mode_2_tile.jpg
test_param_noise_reduction
ทดสอบว่ามีการใช้พารามิเตอร์ android.noiseReduction.mode
อย่างถูกต้องเมื่อตั้งค่า จับภาพด้วยกล้องที่มีแสงสลัว ใช้อัตราขยายเสียงแบบแอนะล็อกสูง
เพื่อให้แน่ใจว่าภาพที่บันทึกนั้นไม่มีเสียงรบกวน จับภาพ 3 ภาพ สำหรับ "ปิด NR", "เร็ว" และ "คุณภาพสูง" รวมถึงถ่ายภาพที่มีการปรับเกนและปิด NR ต่ำ และใช้ความแปรปรวนของค่านี้เป็นเกณฑ์พื้นฐาน ยิ่ง SNR (อัตราส่วนสัญญาณต่อสัญญาณรบกวน) สูงเท่าไหร่ คุณภาพของภาพก็จะยิ่งดีขึ้นเท่านั้น
API ที่ทดสอบ:
ผ่าน: SNR จะแตกต่างกันไปตามโหมดการลดเสียงรบกวนที่แตกต่างกันและทำงานคล้ายกับกราฟด้านล่าง
test_param_noise_reduction_plot_SNRs.png
0: ปิด, 1: รวดเร็ว, 2: สำนักงานใหญ่, 3: นาที , 4: ZSL
test_param_noise_reduction_high_gain_nr=0.jpg
test_param_noise_reduction_high_gain_nr=1.jpg
test_param_noise_reduction_high_gain_nr=2.jpg
test_param_noise_reduction_high_gain_nr=3.jpg
test_param_noise_reduction_low_gain.jpg
test_param_ความไว
ทดสอบว่ามีการใช้พารามิเตอร์ android.sensor.sensitivity
แล้ว การทดสอบจะเพิ่มความไวใน 5 ขั้นตอนโดยปรับการรับแสงคงที่สำหรับแต่ละช็อต
API ที่ทดสอบ:
ผ่าน: ค่า RGB ที่กึ่งกลาง 10% จะสว่างขึ้นพร้อมกับความไวที่เพิ่มขึ้น
test_param_sensitivity_iso=0055.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
test_param_sensitivity_plot.png
test_param_shading_mode
ทดสอบว่ามีการใช้พารามิเตอร์ android.shading.mode
แล้ว
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
ผ่าน: ระบบจะเปลี่ยนโหมดการลงเฉดสีและแผนที่แรเงาเลนส์จะแก้ไขตามที่คาดไว้
test_param_shading_mode_ls_maps_mode_0_loop_0.png
test_param_shading_mode_ls_maps_mode_1_loop_0.png
test_param_shading_mode_ls_maps_mode_2_loop_0.png
test_param_tonemap_mode
ทดสอบว่าใช้พารามิเตอร์ android.tonemap.mode แล้ว ใช้เส้นโค้งโทนสีที่แตกต่างกันกับช่อง R, G, B แต่ละช่อง และตรวจสอบว่ารูปภาพเอาต์พุตได้รับการแก้ไขตามที่คาดไว้ การทดสอบนี้ประกอบด้วยการทดสอบ 2 รายการ คือ test1 และ test2
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
ผ่าน:
- test1: ทั้งสองรูปภาพมีโทนสีเชิงเส้น แต่ n=1 มีการไล่ระดับสีที่ชันกว่า ช่อง G (สีเขียว) จะสว่างกว่าสำหรับรูปภาพ n=1
- test2: มีโทนสีเดียวกัน แต่มีความยาวต่างกัน รูปภาพเหมือนกัน
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
test_post_raw_ความไว_การบูสต์
ตรวจสอบการเพิ่มความไวต่อไฟล์ข้อมูล RAW หลังการเพิ่มค่าข้อมูล RAW บันทึกชุดรูปภาพ RAW และ YUV ที่มีความไวแตกต่างกัน โพสต์ชุดค่าผสมความไวต่อไฟล์ข้อมูล RAW และตรวจสอบว่าพิกเซลเอาต์พุตตรงกับการตั้งค่าคำขอหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: รูปภาพ RAW จะมืดลงเมื่อบูสต์เพิ่มขึ้น ในขณะที่รูปภาพ YUV จะมีความสว่างคงที่
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
test_post_raw_ความไว_บูสต์_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
test_post_raw_ความไว_บูสต์_yuv_plot_means.png
test_raw_burst_ความไว
ถ่ายชุดรูปภาพดิบที่มีการเพิ่มค่ากำไรและการวัดสัญญาณรบกวน จับภาพไฟล์ข้อมูล RAW เท่านั้นแบบต่อเนื่อง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
ผ่าน: ช็อตแต่ละช็อตจะมีเสียงดังกว่าช็อตก่อนหน้าเนื่องจากอัตราขยายเพิ่มขึ้น
ใช้ความแปรปรวนของเซลล์ตารางสถิติที่อยู่ตรงกลาง
test_raw_burst_sensitivity_variance.png
test_raw_exposure
ถ่ายชุดรูปภาพดิบที่มีเวลาในการรับแสงเพิ่มขึ้นและวัดค่าพิกเซล
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
ผ่าน: การเพิ่ม ISO (gain) จะทำให้พิกเซลไวต่อแสงมากขึ้น พล็อตจึงเคลื่อนไปทางซ้าย
test_raw_exposure_s=55.png
(100 คือ 1 มิลลิวินาที, 101 เท่ากับ 10 มิลลิวินาที, 10−1 เท่ากับ 0.1 มิลลิวินาที)
test_raw_exposure_s=132.png
test_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
ความไวต่อการทดสอบ raw
ถ่ายภาพชุดข้อมูลดิบที่มีความไวเพิ่มขึ้นและวัดสัญญาณรบกวน (ความแปรปรวน) ตรงกลาง 10% ของรูปภาพ ทดสอบว่าแต่ละช็อตมีเสียงดัง กว่าภาพก่อนหน้า
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
ผ่าน: ความแปรปรวนจะเพิ่มขึ้นในแต่ละช็อต
test_raw_sensitivity_variance.png
ทดสอบการลดเสียงรบกวน
การทดสอบที่ใช้ android.noiseReduction.mode
กับการประมวลผลคำขออีกครั้ง
จับภาพที่ประมวลผลใหม่โดยกล้องมีแสงสลัว ใช้อัตราขยายเสียงแอนะล็อกสูง
เพื่อให้แน่ใจว่าภาพที่จับภาพนั้นไม่มีเสียงรบกวน จับภาพที่ประมวลผลอีกครั้ง 3 ภาพ สำหรับ
ปิด NR, "เร็ว" และ "คุณภาพสูง" จับภาพที่ประมวลผลใหม่โดยมีค่าเกนต่ำและ NR ปิดอยู่ และใช้ความแปรปรวนของค่านี้เป็นเกณฑ์พื้นฐาน
API ที่ทดสอบ:
ผ่าน: FAST >= ปิด, HQ >= FAST, HQ >> ปิด
พล็อต SNR ปกติเทียบกับ NR_mode
test_tonemap_sequence
ทดสอบลำดับของช็อตที่มีเส้นโค้งโทนสีต่างๆ ถ่ายช็อตด้วยตนเอง 3 ช็อต ด้วยโทนสีแบบเส้นตรง ถ่ายภาพด้วยตนเอง 3 ช็อตด้วยโทนสีเริ่มต้น คำนวณเดลต้าระหว่างคู่เฟรมแต่ละคู่ติดกัน
API ที่ทดสอบ:
ผ่าน: มีเฟรมที่เหมือนกัน 3 เฟรม ตามด้วยชุดที่มี 3 เฟรมที่เหมือนกันอีกชุดหนึ่ง
test_tonemap_sequence_i=0.jpg
test_tonemap_sequence_i=1.jpg
test_tonemap_sequence_i=2.jpg
test_tonemap_sequence_i=3.jpg
test_tonemap_sequence_i=4.jpg
test_tonemap_sequence_i=5.jpg
ทดสอบ yuv_jpeg_all
การทดสอบว่าขนาดและรูปแบบที่รายงานทั้งหมดสำหรับการจับภาพนั้นทำงานได้ ใช้คำขอด้วยตนเองที่มีโทนสีเชิงเส้นเพื่อให้ YUV และ JPEG ดูเหมือนกันเมื่อแปลงโดยโมดูล image_processing_utils
ระบบจะไม่บันทึกรูปภาพตามค่าเริ่มต้น แต่จะบันทึกได้ด้วยการเปิดใช้ debug_mode
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
ผ่าน: ศูนย์รูปภาพทั้งหมดมีความแตกต่างของสัญญาณ RMS (ค่าค่าเฉลี่ยรากกำลังสองของสัญญาณ) สูงสุดในรูปภาพที่แปลงค่า RGB โดยรูปภาพ YUV ที่มีความละเอียดสูงสุด 3%
test_yuv_jpeg_all.png
ทดสอบ yuv_plus_dng
ทดสอบว่าขนาดและรูปแบบที่รายงานสำหรับการจับภาพนั้นใช้งานได้
API ที่ทดสอบ:
ผ่าน: การทดสอบเสร็จสมบูรณ์และส่งคืนรูปภาพที่ขอ
test_yuv_plus_dng.jpg
ทดสอบ yuv_plus_jpeg
ทดสอบการจับภาพเฟรมเดียวเป็นทั้งเอาต์พุต YUV และ JPEG ใช้คำขอด้วยตนเองที่มีโทนสีเชิงเส้นเพื่อให้ YUV และ JPEG ดูเหมือนกันเมื่อแปลงโดยโมดูล image_processing_utils
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
ผ่าน: รูปภาพ YUV และ JPEG มีความคล้ายคลึงกันและมีค่า RMS ต่างกันน้อยกว่า 1% (ค่าฐานรากที่สองของสัญญาณ)
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
ทดสอบ yuv_plus_raw
ทดสอบการบันทึกเฟรมเดียวเป็นทั้งเอาต์พุต RAW/RAW10/RAW12 และ YUV หากมี ใช้คำขอด้วยตนเองที่มีโทนสีเชิงเส้นเพื่อให้คาดว่าไฟล์ข้อมูล RAW และ YUV จะเหมือนกัน เปรียบเทียบค่า RGB ที่แปลงจาก RGB จำนวน 10% บันทึกandroid.shading.mode
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
ผ่าน: รูปภาพ YUV และ RAW มีความคล้ายคลึงกันและมีความต่างของสัญญาณ RMS น้อยกว่า 3.5% (ค่าค่าเฉลี่ยที่เป็นกำลังสองของสัญญาณ)
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
ฉาก 2_a
Scene2_a มี 3 หน้าที่มีพื้นหลังสีเทาและสวมใส่เสื้อผ้าสีกลางๆ ใบหน้าได้รับเลือกให้มีโทนสีผิวที่หลากหลาย แผนภูมิต้องมีการวางแนวที่ถูกต้องเพื่อให้การตรวจจับใบหน้าทำงานได้อย่างเต็มประสิทธิภาพ
ฉาก 2_a
test_auto_flash
การทดสอบแฟลชอัตโนมัติจะทำงานในฉากที่มืด ยืนยันว่าแฟลชอัตโนมัติเริ่มทำงานโดยตรวจสอบว่ากึ่งกลางของรูปภาพไทล์มีการไล่ระดับสีขนาดใหญ่ ต้องปิดแท็บเล็ตและไฟในอุปกรณ์ทดสอบเพื่อให้แฟลชอัตโนมัติทำงาน การทดสอบจะปิดแท็บเล็ตและปิดไฟได้โดยอัตโนมัติด้วยตัวควบคุม Arduino โดยฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง ด้วยเหตุนี้ การเปิดแท็บเล็ตด้านหลังจึงต้องปิดทับด้วยแท็บเล็ตที่มีฉาก และช่องด้านหน้าต้องปิดด้วยรูรับแสงและโทรศัพท์ DUT เพื่อป้องกันไม่ให้แสงที่พร่าเลือนเข้ามาในอุปกรณ์
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
ผ่าน: ตรงกลางของชิ้นส่วนรูปภาพจะมีการไล่ระดับสีขนาดใหญ่ หมายความว่าจะใช้แฟลชอัตโนมัติได้
test_autoframe
ทดสอบลักษณะการทำงานในการจัดเฟรมอัตโนมัติของอุปกรณ์กล้อง ทำการซูมขนาดใหญ่เพื่อไม่ให้เห็นใบหน้าในฉาก เปิดใช้โหมดจัดเฟรมอัตโนมัติโดยตั้งค่า AUTOFRAMING
ใน CaptureRequest
เป็น True
และยืนยันว่าสามารถตรวจจับใบหน้าทั้งหมดในฉากต้นฉบับได้เมื่อสถานะบรรจบกัน (กล่าวคือ เมื่อตั้งค่า AUTOFRAMING_STATE
ใน CaptureResult
เป็น AUTOFRAMING_STATE_CONVERGED
)
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
ผ่าน: ระบบตรวจจับทั้ง 3 ใบหน้า
ทดสอบการแสดงผล [test_display_p3]
การทดสอบการจับภาพ
Display P3
ในรูปแบบ JPEG โดยใช้ ColorSpaceProfiles
API ทดสอบว่า JPEG ที่บันทึกมีโปรไฟล์ ICC ที่เหมาะสมในส่วนหัว และรูปภาพมีสีที่อยู่นอกขอบเขต sRGB
API ที่ทดสอบ:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
ผ่าน: JPEG มีโปรไฟล์ ICC ของ Display P3 และสีที่อยู่นอกขอบเขต sRGB
test_effects [การทดสอบ]
จับภาพเฟรมสำหรับเอฟเฟกต์กล้องที่รองรับ และตรวจสอบว่าสร้างอย่างถูกต้องหรือไม่ การทดสอบจะตรวจสอบเฉพาะเอฟเฟกต์ OFF
และ MONO
แต่จะบันทึกรูปภาพสำหรับเอฟเฟกต์ที่รองรับทั้งหมด
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
ผ่าน: ถ่ายภาพฉากโดยใช้เอฟเฟกต์ OFF
และรูปภาพโมโนโครม
ที่ตั้งค่าเอฟเฟกต์เป็น MONO
test_effects_MONO.jpg
test_format_combos [รูปแบบผสม]
ทดสอบชุดค่าผสมของรูปแบบเอาต์พุตต่างๆ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
ผ่าน: บันทึกชุดค่าผสมทั้งหมดเรียบร้อยแล้ว
ทดสอบคุณภาพ jpeg
ทดสอบคุณภาพการบีบอัด JPEG ของกล้อง Step JPEG มีคุณภาพผ่าน android.jpeg.quality
และตรวจสอบว่าตารางการวัดมีการเปลี่ยนแปลงอย่างถูกต้อง
API ที่ทดสอบ:
ผ่าน: เมทริกซ์การวัดลดลงเมื่อคุณภาพเพิ่มขึ้น (เมทริกซ์แทนตัวประกอบการหาร)
กล้องหลังของ Pixel 4 ค่าเฉลี่ยเมทริกซ์ DQT/ความสว่างของสี DQT เทียบกับคุณภาพ JPEG
ตัวอย่างการทดสอบที่ไม่สำเร็จ
โปรดทราบว่าสำหรับรูปภาพที่มีคุณภาพต่ำมาก (jpeg.quality < 50) การบีบอัดในเมทริกซ์เชิงปริมาณจะไม่เพิ่มขึ้น
จำนวนใบหน้าทดสอบ
ทดสอบการตรวจจับใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบ 3 ใบหน้า
test_num_faces_fd_mode_1.jpg
อัตราตัวอย่างขั้นต่ำของการทดสอบ [test_preview_min_frame_rate]
ทดสอบว่าอัตราเฟรมของตัวอย่างลดลงอย่างถูกต้องในฉากที่มืด เพื่อให้การทดสอบนี้ทำงานได้อย่างถูกต้อง ตัวควบคุมต้องปิดไฟในอุปกรณ์ทดสอบ หรือตัวดำเนินการทดสอบต้องปิดไฟในตัวทดสอบเอง
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
ผ่าน: อัตราเฟรมของตัวอย่างมีค่าต่ำสุดของช่วงอัตราเฟรมที่ขอ และความแปรปรวนระหว่างเฟรมน้อยกว่าค่าความอดทนสัมบูรณ์ที่ตั้งไว้ในการทดสอบ
ทดสอบการสลับฟังก์ชันใหม่
การทดสอบว่าการประมวลผล YUV ใหม่จะไม่สลับระนาบ U และ V ซึ่งตรวจพบโดยการคำนวณผลรวมของความแตกต่างสัมบูรณ์ (SAD) ระหว่างรูปภาพที่ประมวลผลซ้ำและจับภาพที่ไม่ได้ประมวลผลใหม่ หากการสลับระนาบเอาต์พุต U และ V ของการจับภาพที่ประมวลผลใหม่ส่งผลให้เกิด SAD เพิ่มขึ้น ระบบจะถือว่าเอาต์พุตมีระนาบ U และ V ที่ถูกต้อง
API ที่ทดสอบ:
android.hardware.camera2.CameraDevice#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
ผ่าน: เครื่องบิน U และ V ไม่ได้สลับกัน
test_reprocess_uv_swap.png
ฉาก 2_ข
จำนวนใบหน้าทดสอบ
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: ค้นหา 3 ใบหน้า
test_num_faces_fd_mode_1.jpg
test_yuv_jpeg_capture_sameness
จับภาพ 2 ภาพโดยใช้รูปแบบ YUV และ JPEG ทั่วไปที่มีสัดส่วนภาพเท่ากับรูปแบบ JPEG ที่ใหญ่ที่สุด ซึ่งมีความละเอียดไม่เกิน 1920x1440
ตั้งค่า jpeg.quality
เป็น 100 และจับภาพคำขอพื้นผิวคู่ แปลงรูปภาพทั้ง 2 รูปเป็นอาร์เรย์ RGB และคำนวณความแตกต่างของค่าเฉลี่ยกำลังสอง (RMS) แบบ 3 มิติระหว่างรูปภาพ 2 รูป
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
ผ่าน: รูปภาพ YUV และ JPEG มีความคล้ายคลึงกันและมีค่า RMS ต่างกันน้อยกว่า 1% (ค่าฐานรากที่สองของสัญญาณ)
ฉาก 2_c
จำนวนใบหน้าทดสอบ
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: ค้นหา 3 ใบหน้า
test_num_faces_fd_mode_1.jpg
test_jpeg_capture_perf_class
ทดสอบเวลาในการตอบสนองของการจับภาพ JPEG สำหรับคลาสประสิทธิภาพ S ตามที่ระบุในส่วน 2.2.7.2 กล้องใน CDD
ผ่าน: ต้องมีเวลาในการตอบสนองในการจับภาพ Camera2 JPEG < 1,000 มิลลิวินาทีสำหรับความละเอียด 1080p ตามที่วัดโดย PerformanceTest ของกล้อง CTS ภายใต้สภาพแสงของ ITS (3,000 K) สำหรับกล้องหลักทั้ง 2 ตัว
test_camera_launch_perf_class
ทดสอบเวลาในการตอบสนองเมื่อเปิดใช้งานกล้องสำหรับคลาสประสิทธิภาพ S ตามส่วนที่ 2.2.7.2 กล้องที่ระบุใน CDD
ผ่าน: ต้องมีเวลาในการตอบสนองในการเริ่มต้นการทำงานของกล้อง 2 (เปิดกล้องไปยังเฟรมแสดงตัวอย่างแรก) < 600 มิลลิวินาทีซึ่งวัดโดย PerformanceTest สำหรับกล้อง CTS ภายใต้สภาพแสงของ ITS (3,000 K) สำหรับกล้องหลักทั้ง 2 ตัว
ฉาก 2_ง
จำนวนใบหน้าทดสอบ
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: ค้นหา 3 ใบหน้า
ฉาก 2_e
รูปภาพทดสอบต่อเนื่อง
เฟรมความละเอียด VGA 50 เฟรมจะได้รับการบันทึกด้วยการตั้งค่าแรกของคำขอบันทึก
android.control.afMode = 4 (CONTINUOUS_PICTURE).
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
ผ่าน: ระบบ 3A จะแก้ปัญหาหลังการจับภาพ 50 เฟรมสิ้นสุดลง
จำนวนใบหน้าทดสอบ
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: ค้นหา 3 ใบหน้า
ฉาก 2_f
Scene2_f มี 3 หน้าที่มีพื้นหลังสีขาวและเสื้อผ้าสีขาว ใบหน้ามีสีผิวที่หลากหลายและคอนทราสต์สูงกับพื้นหลัง
ฉาก 2_f
จำนวนใบหน้าทดสอบ
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: ค้นหา 3 ใบหน้า
test_num_faces_fd_mode_1.jpg
ฉาก3
Scene3 ใช้แผนภูมิ ISO12233 และการทดสอบส่วนใหญ่จะใช้วิธีการแยกแผนภูมิเพื่อค้นหาแผนภูมิในฉาก ด้วยเหตุนี้ รูปภาพที่บันทึกไว้ส่วนใหญ่จึงไม่มีเส้นขอบเหมือนภาพสำหรับฉาก 1, 2 หรือ 4 แต่จะมีเพียงแผนภูมิเท่านั้น แผนภูมิต้องอยู่ในการวางแนวที่ถูกต้องเพื่อให้ตัวค้นหาแผนภูมิทำงานได้อย่างเต็มประสิทธิภาพ
ทดสอบ 3ก_ความสอดคล้อง
การทดสอบความสอดคล้อง 3A
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
ผ่าน: 3A บรรจบกันสำหรับการรับสัมผัส, เกน, awb (สมดุลแสงขาวอัตโนมัติ) และ fd (ระยะโฟกัส) 3 เท่าภายในความอดทน
test_edge_enhancement
ทดสอบว่าใช้พารามิเตอร์ android.edge.mode
อย่างถูกต้อง จับภาพที่ไม่ได้ประมวลผลใหม่สำหรับแต่ละโหมดขอบและแสดงความคมชัดของภาพเอาต์พุตและข้อมูลเมตาของผลการจับภาพ ดำเนินการตามคำขอจับภาพด้วยโหมดขอบ ความไว เวลาในการรับแสง ระยะโฟกัส และพารามิเตอร์พื้นผิวเอาต์พุตที่กำหนด
ผ่าน: โหมด HQ
(2) คมชัดกว่าโหมด OFF
(0) โหมด FAST
(1) คมชัด
กว่าโหมด OFF
โหมด HQ
คมชัดขึ้นหรือเท่ากับโหมด FAST
API ที่ทดสอบ:
พารามิเตอร์กล้องที่ได้รับผลกระทบ:
EDGE_MODE
test_edge_enhancement_edge=0.jpg
test_edge_enhancement_edge=1.jpg (โหมดด่วน)
test_edge_enhancement_edge=2.jpg (โหมดคุณภาพสูง)
ทดสอบ_พลิก_มิเรอร์
ทดสอบว่ารูปภาพมีทิศทางที่ถูกต้องตามส่วน CDD 7.5.2 กล้องหน้า [C-1-5] หรือไม่
ภาพแบบมิเรอร์ พลิก หรือหมุนจะระบุได้ด้วยฟีเจอร์เพชรบริเวณตรงกลาง
ผ่าน: ไม่พลิก มิเรอร์ หรือหมุนรูปภาพ
test_ Flip_mirror_โหมด_patch.jpg
ทดสอบแนวนอนเป็นแนวตั้ง
ทดสอบว่าการลบล้างแนวนอนเป็นแนวตั้งทำงานได้อย่างถูกต้องสำหรับเซ็นเซอร์ที่เน้นแนวนอนหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
ผ่าน: การทดสอบจะค้นหาแผนภูมิที่มีการหมุนตามความคาดหมาย (0 องศาเมื่อปิดใช้การลบล้างแนวนอนเป็นแนวตั้ง และ 90 องศาเมื่อเปิดใช้)
test_landscape_to_portrait.png
test_lens_movement_reporting
ทดสอบว่ามีการรายงานธงการเคลื่อนที่ของเลนส์อย่างถูกต้องหรือไม่ ถ่ายภาพต่อเนื่อง 24 ภาพ โดยเริ่มจาก 12 เฟรมแรกที่ระยะโฟกัสที่เหมาะสมที่สุด (ตามที่พบโดย 3A) และ 12 เฟรมสุดท้ายที่ระยะโฟกัสต่ำสุด สำหรับเฟรมที่ 12 เลนส์จะเคลื่อนที่ ทำให้ความคมชัดลดลง ในที่สุดความคมชัดจะคงที่เมื่อเลนส์ย้ายไปยังตำแหน่งสุดท้าย ควรยืนยันธงการเคลื่อนที่ของเลนส์ในทุกเฟรมที่ความคมชัดอยู่ในระดับปานกลางถึงความคมชัดใน 2-3 เฟรมแรกซึ่งมีเลนส์อยู่กับที่ที่ระยะโฟกัสที่ดีที่สุด และเฟรม 2-3 เฟรมสุดท้ายซึ่งเลนส์อยู่นิ่งกับระยะโฟกัสต่ำสุด เฟรมที่แน่นอนที่เลนส์เคลื่อนไหวไม่สำคัญ สิ่งที่ตรวจสอบก็คือจะมีการยืนยันธงการเคลื่อนที่เมื่อเลนส์เคลื่อนที่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.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 เฟรมแรกที่ระยะโฟกัสที่ดีที่สุดหรือไม่กี่เฟรมสุดท้ายที่ระยะโฟกัสต่ำสุด
test_reprocess_edge_enhancement
ทดสอบว่าวิธีการประมวลผลใหม่ที่รองรับสำหรับการเพิ่มประสิทธิภาพ Edge ทํางานได้อย่างถูกต้องหรือไม่ ประมวลผลคำขอจับภาพด้วยโหมดเอดจ์ประมวลผลใหม่และเปรียบเทียบโหมดต่างๆ เพื่อจับภาพโดยปิดใช้โหมดขอบประมวลผลใหม่
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
ผ่าน: ค่าความคมชัดสำหรับโหมดขอบต่างๆ ถูกต้อง HQ
(โหมด 2) คมกว่า OFF
(โหมด 0) และการปรับปรุงระหว่างโหมดต่างๆ นั้นคล้ายคลึงกัน
test_reprocess_edge_enhancement_plot.png
ฉาก 4
Scene4 ประกอบด้วยวงกลมสีดำบนพื้นหลังสีขาวภายในสี่เหลี่ยมจัตุรัส
ฉาก 4
ทดสอบอัตราส่วนและครอบตัด
ทดสอบว่ารูปภาพบิดเบี้ยวหรือครอบตัดโดยไม่คาดคิดในไปป์ไลน์รูปภาพหรือไม่ ถ่ายภาพวงกลมได้ทุกรูปแบบ ตรวจสอบว่าวงกลมไม่บิดเบี้ยว วงกลมไม่เคลื่อนจากกึ่งกลางรูปภาพ และวงกลมไม่เปลี่ยนขนาดอย่างไม่ถูกต้องด้วยสัดส่วนภาพหรือความละเอียดที่แตกต่างกัน
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.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_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
ผ่าน: จุดศูนย์กลางและขนาดวงกลมเป็นไปตามที่คาดไว้ในภาพฉายภาพ เมื่อเทียบกับภาพที่ถ่ายโดยใช้ข้อมูลการปรับเทียบกล้องและความยาวโฟกัส
กลไกที่ไม่สำเร็จ
LENS_INTRINSIC_CALIBRATION
,LENS_POSE_TRANSLATION
หรือLENS_POSE_ROTATION
เป็นค่าการออกแบบ ไม่ใช่ข้อมูลการปรับเทียบจริง- ระบบกล้องไม่เหมาะสำหรับการตั้งค่าทดสอบ เช่น การทดสอบระบบกล้องแบบภาพกว้างและมุมกว้างพิเศษด้วยอุปกรณ์ทดสอบ RFoV ดูข้อมูลเพิ่มเติมได้ที่คำถามที่พบบ่อยเกี่ยวกับไอทีที่มาพร้อมกับกล้อง 1
ทดสอบตัวอย่างอัตราส่วนและครอบตัด
การทดสอบนี้จะตรวจสอบรูปแบบตัวอย่างที่รองรับเพื่อให้มั่นใจว่าเฟรมตัวอย่างไม่ยืดหรือครอบตัดอย่างไม่เหมาะสม ซึ่งคล้ายกับการทดสอบ test_aspect_ratio_and_crop สำหรับการจับภาพต่อเนื่อง ตรวจสอบว่าสัดส่วนภาพของวงกลมไม่เปลี่ยนแปลง รูปภาพที่ครอบตัดจะรักษาวงกลมไว้ตรงกลางเฟรม และขนาดวงกลมไม่เปลี่ยนแปลงในรูปแบบที่คงที่หรือด้วยความละเอียดที่ต่างกัน (ตรวจสอบขอบเขตการมองเห็น)
API ที่ทดสอบ:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
ผ่าน: รูปภาพไม่ยืดออก กึ่งกลางของรูปภาพไม่ต่างกันเกิน 3% และจะเก็บ FoV (ขอบเขตการมองเห็น) สูงสุดไว้
test_preview_stabilization_fov
ตรวจสอบขนาดตัวอย่างที่รองรับเพื่อให้แน่ใจว่ามีการตัดมุมกล้องอย่างเหมาะสม
การทดสอบจะบันทึกวิดีโอ 2 รายการ โดยรายการหนึ่งมีระบบกันภาพสั่นสำหรับตัวอย่าง ON
และอีกวิดีโอมีระบบกันภาพสั่น OFF
ระบบจะเลือกเฟรมตัวแทนจากแต่ละวิดีโอและวิเคราะห์เพื่อให้แน่ใจว่าการเปลี่ยนแปลงใน FoV ของวิดีโอทั้ง 2 รายการเป็นไปตามข้อกำหนด
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
ผ่าน: อัตราส่วนของวงกลมมีความคงที่ ตำแหน่งศูนย์กลางของวงกลมจะคงที่ และขนาดวงกลมจะเปลี่ยนไปเพียง 20%
อัตราส่วนและการครอบตัดวิดีโอทดสอบ
ถ่ายวิดีโอวงกลมภายในสี่เหลี่ยมจัตุรัสในวิดีโอทุกรูปแบบ ดึงข้อมูลคีย์เฟรมและยืนยันว่าสัดส่วนภาพของวงกลมไม่เปลี่ยนแปลง รูปภาพที่ครอบตัดจะรักษาวงกลมไว้ตรงกลาง และขนาดวงกลมไม่เปลี่ยนแปลงหากรูปแบบคงที่หรือมีความละเอียดต่างกัน (ตรวจสอบขอบเขตการมองเห็น)
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
ผ่าน: เฟรมวิดีโอไม่ยืดออก กึ่งกลางของเฟรมไม่ต่างกันเกิน 3% และระบบจะเก็บ FoV (ขอบเขตการมองเห็น) สูงสุดไว้
ฉาก 5
ฉาก 5 ต้องมีฉากสีเทาที่สว่างสม่ำเสมอ ซึ่งทำได้ด้วยตัวกระจายแสง
ที่วางเหนือเลนส์กล้อง เราขอแนะนำให้ใช้หัวกระจายลมต่อไปนี้
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
ในการเตรียมฉาก ให้ติด Diffuser ที่ด้านหน้ากล้อง แล้วเล็งกล้องไปที่แหล่งแสงที่มีประมาณ 2, 000 ลักซ์ รูปภาพที่ถ่ายสำหรับฉาก 5 ต้องมีแสงแบบกระจายโดยไม่มีลักษณะที่มองเห็นได้ชัดเจน รูปภาพตัวอย่างมีดังต่อไปนี้
การจับภาพฉาก 5
test_lens_shading_and_color_uniformity
ทดสอบว่ามีการใช้การแก้ไขการแรเงาเลนส์อย่างเหมาะสม และสีของฉากแบบโมโนโครมที่มีการกระจายอย่างสม่ำเสมอ ทำการทดสอบนี้ กับเฟรม YUV ที่มี 3A อัตโนมัติ ระบบจะประเมินเฉดสีเลนส์ตามช่อง y วัดค่า y โดยเฉลี่ยสำหรับแต่ละบล็อกตัวอย่างที่ระบุ และพิจารณาผ่านหรือไม่ผ่านด้วยการเปรียบเทียบกับค่า y ที่อยู่ตรงกลาง การทดสอบความสม่ำเสมอของสีจะประเมินในปริภูมิ r/g และ b/g
API ที่ทดสอบ:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
ผ่าน: ณ รัศมีที่ระบุของรูปภาพ ความแปรปรวนของค่า r/g และ b/g ต้องน้อยกว่า 20% จึงจะผ่านการทดสอบ
ฉาก 6
Scene6 คือตารางกริดเป็นวงกลมขนาดเล็กที่มีสี่เหลี่ยมจัตุรัสที่มุมด้านหนึ่งเพื่อระบุการวางแนว วงกลมเล็กจำเป็นสำหรับการทดสอบฟังก์ชันการซูมในช่วงที่กว้าง
ฉาก 6
ทดสอบการซูมเซ็นเซอร์
ทดสอบลักษณะการทำงานของฟีเจอร์ซูมในเซ็นเซอร์ของกล้อง ซึ่งจะสร้างรูปภาพ RAW ที่มีการครอบตัด
เมื่อกำหนดกรณีการใช้งานสตรีมเป็น CROPPED_RAW
การทดสอบจะใช้เวลาจับภาพ 2 ช่วงในช่วงซูม ขอบเขตการมองเห็นแบบเต็ม (FoV) รูปภาพ RAW และรูปภาพ RAW ที่ครอบตัดแล้ว การทดสอบจะแปลงรูปภาพเป็นอาร์เรย์ RGB ลดขนาดรูปภาพ RAW ที่ครอบตัดขนาดเต็มให้เป็นขนาดที่ SCALER_RAW_CROP_REGION
รายงาน และคำนวณความแตกต่างระหว่างค่าเฉลี่ยสี่เหลี่ยมจัตุรัส (RMS) ของราก 3 มิติระหว่างรูปภาพ 2 รูป
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
ผ่าน: ความแตกต่างของค่าเฉลี่ยกำลังสอง (RMS) รากแบบ 3 มิติระหว่างรูปภาพ RAW ที่ครอบตัดลดสเกลและภาพ RAW แบบเต็มจะน้อยกว่า 1%
ทดสอบการซูม
ทดสอบลักษณะการซูมของกล้อง ถ่ายภาพระยะซูมและตรวจสอบว่าวงกลมขยายใหญ่ขึ้นเมื่อกล้องซูมเข้าหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
ผ่าน: ขนาดของวงกลมที่สัมพันธ์กันซึ่งถูกต้องตามอัตราส่วนการซูมที่ขอเพื่อให้แน่ใจว่ากล้องซูมได้อย่างถูกต้อง
test_zoom เพื่อหารูปร่างของวงกลมที่อยู่ใกล้กับจุดศูนย์กลางมากที่สุด
ทดสอบการซูมต่ำ
ทดสอบลักษณะการทำงานของการซูมที่มีเวลาในการตอบสนองต่ำสำหรับกล้อง จับภาพในช่วงการซูมด้วย android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
และตรวจสอบว่าวงกลมในรูปภาพเอาต์พุตตรงกับอัตราส่วนการซูมในข้อมูลเมตาการจับภาพหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
ผ่าน: ขนาดของวงกลมที่สัมพันธ์กันซึ่งถูกต้องเทียบกับข้อมูลเมตาของผลลัพธ์อัตราส่วนการซูม
test_preview_video_zoom_match
ทดสอบว่าขณะบันทึกและซูม ตัวอย่างวิดีโอ และเอาต์พุตวิดีโอจะแสดงและบันทึกเอาต์พุตเดียวกัน คำนวณขนาดของวงกลมที่ใกล้กับจุดศูนย์กลางที่สุดในอัตราส่วนการซูมต่างๆ และตรวจสอบว่าขนาดของวงกลมเพิ่มขึ้นเมื่ออัตราส่วนการซูมเพิ่มขึ้นหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
ผ่าน: ขนาดของวงกลมที่สัมพันธ์กันซึ่งถูกต้องตามอัตราส่วนการซูมที่ขอในวิดีโอและตัวอย่าง
VGA_640x480_key_frame.png (ก่อนซูม)
Preview_640x480_key_frame.png (ก่อนซูม)
VGA_640x480_key_frame.png (หลังการซูม)
example_640x480_key_frame.png (หลังการซูม)
ส่วนขยายฉาก
การทดสอบ scene_extensions
มีไว้สำหรับส่วนขยายกล้องและต้องใช้อุปกรณ์ไอทีที่มาพร้อมกับอุปกรณ์เนื่องจากต้องใช้การควบคุมสภาพแวดล้อมการทดสอบอย่างแม่นยำ
โหมด_hdr
ฉาก scene_hdr
ประกอบด้วยภาพบุคคลทางด้านซ้ายและคิวอาร์โค้ดที่มีคอนทราสต์ต่ำทางด้านขวา
โหมด_hdr
test_hdr_extension
ทดสอบส่วนขยาย HDR ถ่ายภาพที่มีและไม่มีการเปิดใช้ส่วนขยาย และตรวจสอบว่าส่วนขยายทำให้ตรวจหาคิวอาร์โค้ดได้มากขึ้นหรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
ผ่าน: ส่วนขยาย HDR จะลดจำนวนการเปลี่ยนแปลงคอนทราสต์ที่ต้องใช้เพื่อตรวจหาคิวอาร์โค้ดหรือลดการไล่ระดับสีในคิวอาร์โค้ด
คืนฉาก
ฉาก scene_night
ประกอบด้วยวงกลมสีขาวที่มีวงกลมขนาดเล็ก 4 วงด้านใน และทั้งหมดบนพื้นหลังสีดำ วงกลมขนาดเล็กที่มุมขวาบน
จะเข้มกว่าวงกลมอื่นๆ เพื่อระบุการวางแนว
คืนฉาก
test_night_extension
ทดสอบส่วนขยายกลางคืน ถ่ายภาพทั้งที่มีและไม่ได้เปิดใช้ส่วนขยาย พร้อมทั้งตรวจสอบสิ่งต่อไปนี้
- การจับภาพที่เปิดใช้ส่วนขยาย "กลางคืน" จะใช้เวลานานกว่า
- การจับภาพที่เปิดใช้ส่วนขยาย "กลางคืน" จะสว่างขึ้นหรือมีอาร์ติแฟกต์ฉากที่ดูเหมือนปรับปรุงแล้ว
API ที่ทดสอบ:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
ผ่าน: เมื่อเทียบกับการจับภาพที่ไม่ได้เปิดใช้การใช้ส่วนขยายกลางคืน การจับภาพที่เปิดใช้ส่วนขยายโหมดกลางคืนจะใช้เวลานานขึ้นอย่างน้อย 0.5 วินาที การจับภาพต้องสว่างขึ้นอย่างน้อย 10% หรือจุดสีเทาในฉากต้องมีค่าต่ำกว่าจุดกึ่งกลางของวงกลมที่ล้อมรอบ 20 พิกเซล
เซ็นเซอร์ฟิวชัน
การทดสอบการฟิวชันเซ็นเซอร์จำเป็นต้องให้โทรศัพท์เคลื่อนที่อย่างเฉพาะเจาะจงที่ด้านหน้าของรูปแบบลายกระดานหมากรุก เพื่อผลลัพธ์ที่ดีที่สุด โปรดตรวจสอบว่าแผนภูมิทดสอบติดตั้งในแนวราบ แผนภูมิที่ไม่แบนจะส่งผลต่อการคำนวณการหมุนสำหรับการทดสอบหลายรายการ
การทดสอบ sensor_fusion
จะดำเนินการโดยอัตโนมัติได้ด้วยกล่องฟิวชันเซ็นเซอร์
รูปกระดานหมากรุก
test_multi_camera_frame_sync
การทดสอบที่เฟรมการประทับเวลาที่กล้องเชิงตรรกะบันทึกไว้อยู่ภายใน 10 มิลลิวินาทีด้วยการคำนวณมุมของสี่เหลี่ยมจัตุรัสภายในกระดานหมากรุกเพื่อระบุการประทับเวลา
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
ผ่าน: มุมระหว่างรูปภาพจากกล้องแต่ละตัวไม่เปลี่ยนตามที่เห็นเมื่อโทรศัพท์หมุนอยู่
test_preview_stabilization
การทดสอบวิดีโอตัวอย่างที่มีความเสถียรจะหมุนน้อยกว่าเครื่องวัดการหมุน
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
ผ่าน: การหมุนมุมสูงสุดบนเฟรมน้อยกว่า 70% ของการหมุนด้วยเครื่องวัดการหมุน
ต่อไปนี้เป็นตัวอย่างวิดีโอทั้งที่มีและไม่มีระบบกันภาพสั่น
ตัวอย่างวิดีโอที่มีระบบกันภาพสั่น
วิดีโอตัวอย่างที่ไม่มีการป้องกันภาพสั่นไหว
ทดสอบเซ็นเซอร์ฟิวชัน
ทดสอบความแตกต่างของการประทับเวลาระหว่างกล้องกับเครื่องวัดการหมุนสำหรับแอปพลิเคชัน AR และ VR โทรศัพท์ถูกหมุน 90 องศา 10 ครั้งหน้ารูปแบบลายกระดานหมากรุก การเคลื่อนไหวต้องเดินทางไป-กลับประมาณ 2 วินาที ระบบจะข้ามการทดสอบนี้หากไม่ได้รวมเครื่องวัดการหมุนไว้ หรือหากไม่ได้เปิดใช้พารามิเตอร์ REALTIME
ของแหล่งที่มาของการประทับเวลา
การทดสอบ test_sensor_fusion
จะสร้างพล็อตจำนวนหนึ่ง ข้อมูลที่สำคัญที่สุด 2 ประการสำหรับการแก้ไขข้อบกพร่องมีดังนี้
test_sensor_fusion_gyro_events
: แสดงเหตุการณ์เครื่องวัดการหมุนของโทรศัพท์ ระหว่างการทดสอบ การเคลื่อนที่ในทิศทาง x และ y บ่งบอกว่าโทรศัพท์ไม่ได้ติดตั้งอยู่บนเพลตยึดอย่างปลอดภัย ซึ่งช่วยลดโอกาสในการทดสอบที่จะผ่าน จำนวนรอบในพล็อตขึ้นอยู่กับความเร็วในการเขียนสำหรับการบันทึกเฟรมtest_sensor_fusion_gyro_events
test_sensor_fusion_plot_rotations
: แสดงการปรับแนว ของเครื่องวัดการหมุนและเหตุการณ์จากกล้อง พล็อตนี้ต้องแสดงการเคลื่อนไหวที่ตรงกันระหว่างกล้องกับเครื่องวัดการหมุนถึง +/-1 มิลลิวินาทีtest_sensor_fusion_plot_rotations
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
ผ่าน: ออฟเซ็ตการประทับเวลาของกล้องและเครื่องวัดการหมุนน้อยกว่า 1 มิลลิวินาทีตาม ส่วน CDD 7.3.9 เซ็นเซอร์ความละเอียดสูง [C-2-14]
กลไกที่ไม่สำเร็จ
- ข้อผิดพลาดของออฟเซ็ต: ออฟเซ็ตกล้องวัดการหมุนไม่ได้รับการปรับเทียบอย่างถูกต้องภายใน +/-1 มิลลิวินาที
- การลดลงของเฟรม: ไปป์ไลน์ไม่เร็วพอที่จะจับภาพ 200 เฟรมติดต่อกัน
- ข้อผิดพลาดของซ็อกเก็ต:
adb
เชื่อมต่อกับ DUT อย่างเสถียรไม่ได้นานพอที่จะดำเนินการทดสอบ - แผนภูมิไม่ได้ติดตั้งในแนวราบ พล็อต
test_sensor_fusion_plot_rotations
มีเฟรมที่เครื่องวัดการหมุนและการหมุนกล้องแตกต่างกันอย่างมากเนื่องจากกล้องจะหมุนผ่านส่วนต่างๆ ของแผนภูมิที่ไม่แบน - กล้องไม่ได้ติดตั้งในแนวราบ พล็อต
test_sensor_fusion_gyro_events
แสดงการเคลื่อนที่ในระนาบ X และ Y ความล้มเหลวนี้พบได้บ่อยในกล้องหน้าเนื่องจากกล้องหลังมักยกตัวสูงขึ้นไปยังส่วนที่เหลือของตัวโทรศัพท์ ทำให้เกิดการเอียงเมื่อยึดด้านหลังของโทรศัพท์เข้ากับเพลตยึด
test_video_stabilization
การทดสอบที่แก้ภาพสั่นไหวจะหมุนได้น้อยกว่าเครื่องวัดการหมุน
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
ผ่าน: การหมุนมุมสูงสุดบนเฟรมน้อยกว่า 60% ของการหมุนด้วยเครื่องวัดการหมุน
ต่อไปนี้เป็นตัวอย่างวิดีโอทั้งที่มีและไม่มีระบบกันภาพสั่น
ตัวอย่างวิดีโอที่มีระบบกันภาพสั่น
วิดีโอตัวอย่างที่ไม่มีการป้องกันภาพสั่นไหว
test_led_snapshot นี้
ทดสอบว่าสแนปชอต LED ไม่อิ่มตัวหรือไม่แต้มสีรูปภาพ
การทดสอบนี้จะเพิ่มตัวควบคุมแสงเข้ากับกล่องฟิวชันเซ็นเซอร์เพื่อควบคุมแสงไฟ เมื่อตั้งแสงไฟเป็น OFF
การทดสอบจะจับภาพโดยตั้งค่าโหมด AUTO_FLASH
เป็น ON
ในระหว่างการจับภาพนี้ การทดสอบจะเรียกใช้ลำดับการเตรียมการโดยตั้งค่าทริกเกอร์ aePrecapture
เป็น START
และตั้งค่าความตั้งใจในการจับภาพเป็น Preview
เพื่อจับภาพด้วยแฟลช
เนื่องจากการจับภาพมีฮอตสปอตที่โดดเด่นเนื่องจากแฟลช การทดสอบจะคำนวณค่าเฉลี่ยของภาพที่ใช้แฟลชของการจับภาพทั้งหมดและยืนยันว่าค่าอยู่ในช่วง (68, 102) หรือไม่ หากต้องการตรวจสอบว่ารูปภาพมีความสมดุลขาวสมเหตุผลหรือไม่ การทดสอบจะคำนวณอัตราส่วน R/G และ B/G แล้วตรวจสอบว่าอัตราส่วนอยู่ในช่วง 0.95 และ 1.05 หรือไม่
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
ผ่าน: อัตราส่วน R/G และ B/G อยู่ในช่วง 0.95 และ 1.05 ค่าเฉลี่ยของรูปภาพ Flash จะอยู่ในช่วง (68, 102)