หน้านี้แสดงรายการการทดสอบที่ครอบคลุมภายใต้ชุดทดสอบภาพจากกล้อง (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: บันทึกข้อมูลเมตา เสียงรบกวน เครื่องวัดการหมุน การสั่น
- scene1: การเปิดรับแสง ความไวแสง การชดเชย EV, YUV เทียบกับ JPEG/RAW
- ฉาก2: การตรวจจับใบหน้า การทดสอบที่ต้องมีฉากสี
- scene3: การเพิ่มคุณภาพขอบ การเคลื่อนไหวของเลนส์
- scene4: สัดส่วนภาพ การครอบตัด มุมมอง
- scene5: การแรเงาของเลนส์
- scene6: ซูม
- events7: สลับกล้องหลายตัว
- scene8: การวัดแสงแบบเป็นพื้นที่ของ AE และ AWB
- scene9: การบีบอัด JPEG
- scene_extensions: ส่วนขยายกล้อง
- scene_flash: แฟลชอัตโนมัติ อัตราเฟรมขั้นต่ำ
- scene_video: เฟรมตก
- sensor_fusion: ระยะห่างของเวลาของกล้อง/ไจโรสโคป
- feature_combination: ชุดค่าผสมของฟีเจอร์
ดูคำอธิบายของแต่ละฉากได้ในส่วนต่างๆ
ฉาก0
การทดสอบ Scene0 ไม่จำเป็นต้องมีข้อมูลฉากที่เฉพาะเจาะจง อย่างไรก็ตาม โทรศัพท์ต้องอยู่กับที่สำหรับการทดสอบไจโรสโคปและการสั่น
test_jitter
วัด Jitter ในการประทับเวลาของกล้อง
API ที่ทดสอบแล้ว:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
ผ่าน: มีเดลต้าอย่างน้อย 30 มิลลิวินาทีระหว่างเฟรม
test_jitter_plot.png (สังเกตช่วงแกน y ที่แคบ จริงๆ แล้วความผันผวนมีน้อยมากในผังนี้)
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_request_capture_match
ทดสอบว่าอุปกรณ์เขียนค่าการเปิดรับแสงและค่ารับแสงที่ถูกต้องโดยการอ่านข้อมูลเมตาการจับภาพ
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
test_tonemap_curve
ทดสอบการเปลี่ยนรูปแบบการทดสอบจาก 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 รูป
test_vibration_restriction
ทดสอบว่าการสั่นของอุปกรณ์ทำงานตามที่คาดไว้หรือไม่
API ที่ทดสอบแล้ว:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
ผ่าน: อุปกรณ์ไม่สั่นเมื่อปิดเสียงโดย API การจำกัดเสียงของกล้อง
scene1
scene1 คือแผนภูมิสีเทา แผนภูมิสีเทาต้องครอบคลุมตรงกลาง 30% ของขอบเขตการมองเห็นของกล้อง คาดว่าแผนภูมิสีเทาจะทดสอบ 3A (การเปิดรับแสงอัตโนมัติ สมดุลแสงขาวอัตโนมัติ โฟกัสอัตโนมัติ) ปานกลางเนื่องจากบริเวณตรงกลางไม่มีองค์ประกอบใดๆ แต่คำขอจับภาพจะระบุฉากทั้งหมดซึ่งมีฟีเจอร์ที่เพียงพอเพื่อให้ 3A บรรจบกัน
กล้อง RFoV ทดสอบได้ใน WFoV หรือแท่นทดสอบ RFoV หากทดสอบกล้อง RFoV ในแท่นทดสอบ WFoV ระบบจะปรับขนาดแผนภูมิเป็น ⅔ เพื่อให้ขอบเขตของแผนภูมิสีเทาใน FoV ช่วยในการรวม 3A ดูรายละเอียดเพิ่มเติมเกี่ยวกับแท่นทดสอบกล้องได้ที่ ITS-in-a-box สำหรับกล้อง
scene1: แผนภูมิขนาดเต็ม (ซ้าย) แผนภูมิที่ปรับขนาด ⅔ (ขวา)
test_ae_precapture_trigger
ทดสอบสถานะการทำงานของ AE เมื่อใช้ทริกเกอร์การจับภาพก่อน บันทึกคำขอที่ดำเนินการด้วยตนเอง 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
test_black_white
ทดสอบว่าอุปกรณ์สร้างรูปภาพขาวดําได้เต็มรูปแบบ ถ่ายภาพ 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 |
test_black_white_plot_means.png
test_burst_capture
ยืนยันว่าไปป์ไลน์การจับภาพทั้งหมดทำงานได้ทันกับความเร็วในการจับภาพขนาดเต็มและเวลาที่ใช้ CPU
API ที่ทดสอบแล้ว:
ผ่าน: ถ่ายภาพขนาดเต็มอัจฉริยะ ตรวจสอบการลดลงของเฟรมและความสว่างของภาพ
test_burst_sameness_manual
ถ่ายภาพ 50 ภาพแบบต่อเนื่อง 5 ชุดด้วยการตั้งค่าการจับภาพด้วยตนเอง และตรวจสอบว่ารูปภาพทั้งหมดเหมือนกัน การทดสอบนี้ใช้เพื่อระบุว่ามีเฟรมที่ประมวลผลต่างกันหรือมีสิ่งรบกวนหรือไม่
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
ผ่าน: ข้อมูลเมตาใช้ได้กับการจับภาพทั้งหมด และการตั้งค่าด้วยตนเองจะไม่ส่งผลต่อการจับภาพอัตโนมัติครั้งที่ 2 พล็อตการแก้ไขการแรเงาเลนส์สำหรับการจับภาพ
test_capture_result_plot_lsc_auto_ch0.png
test_crop_region_raw
ทดสอบว่าสตรีม 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_regions
การทดสอบว่าพื้นที่ครอบตัดใช้งานได้หรือไม่ นำรูปภาพเต็มมาสร้างแพทช์ของภูมิภาคต่างๆ 5 ภูมิภาค (มุมและตรงกลาง) ถ่ายภาพโดยตั้งค่าการครอบตัดสำหรับภูมิภาค 5 แห่ง เปรียบเทียบค่าของแพทช์กับค่าของรูปภาพที่ครอบตัด
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
ผ่าน: รูปภาพของพื้นที่ที่ครอบตัดตรงกับแพทช์ที่ตรงกับรูปภาพที่ครอบตัด
test_dng_noise_model
ตรวจสอบว่าพารามิเตอร์โมเดลดิบ DNG ถูกต้อง ผังแสดงค่าความแปรปรวนที่วัดได้ของแพตช์ตรงกลางของการ์ดสีเทาในช็อต RAW ที่ถ่ายในย่านความไวแสงต่างๆ และเปรียบเทียบค่าเหล่านี้กับความแปรปรวนที่คาดไว้ที่ความไวแสงแต่ละระดับโดยโมเดลสัญญาณรบกวน 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
ผ่าน: พารามิเตอร์รูปแบบไฟล์ RAW ของ DNG ถูกต้อง ค่า RGB ที่คาดไว้ตรงกับค่า RGB จริงที่วัดได้
test_dng_noise_model_plog.png
test_ev_compensation_advanced
ทดสอบว่าใช้ค่าชดเชยการเปิดรับแสง (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
test_ev_compensation_basic
ทดสอบว่าระบบใช้การชดเชย 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_x_iso
ทดสอบว่าได้รับค่าการเปิดรับแสงคงที่เมื่อ ISO และเวลาการเปิดรับแสงแตกต่างกัน ถ่ายชุดช็อตที่มี ISO และเวลารับแสงที่เลือกให้สมดุลกัน
ผลลัพธ์ควรมีความสว่างเท่ากัน แต่รูปภาพควรมีสัญญาณรบกวนมากขึ้นเมื่อถ่ายทำต่อเนื่อง ยืนยันว่าค่าเฉลี่ยพิกเซลตัวอย่างใกล้เคียงกัน ตรวจสอบว่ารูปภาพไม่ได้ถูกจำกัดอยู่ที่ 0 หรือ 1 (ซึ่งจะทำให้รูปภาพดูเหมือนเส้นตรง) นอกจากนี้ คุณยังทำการทดสอบกับรูปภาพ RAW ได้โดยตั้งค่า Flag debug
ในไฟล์การกําหนดค่า
API ที่ทดสอบแล้ว:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
ผ่าน: รูปภาพมีความสว่างเท่าเดิม แต่มีสัญญาณรบกวนมากขึ้นเมื่อ ISO สูงขึ้น ระนาบ RGB จะแบนเมื่อค่า ISO*Exposure คงที่เหนือพื้นที่เกนที่ทดสอบ
กลไกการทำงานที่ไม่สําเร็จ:
- ใน
test_exposure_plot_means.png
เมื่อค่าตัวคูณอัตราขยาย (แกน x) เพิ่มขึ้น ค่าเฉลี่ยของระนาบ RGB ที่แปลงค่าให้เป็นมาตรฐาน (แกน y) จะเริ่มเบี่ยงเบนจากค่าตัวคูณอัตราขยายต่ำ
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
test_linearity
ทดสอบว่าระบบประมวลผลของอุปกรณ์สามารถเปลี่ยนพิกเซลเชิงเส้นเป็นพิกเซลเชิงเส้นได้ จับภาพต่อเนื่องของการถ่ายภาพด้วยอุปกรณ์ที่ชี้ไปยังเป้าหมายแบบเดียวกัน
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.*
เมื่อตั้งค่า
ถ่ายภาพด้วยค่าการเปลี่ยนรูปแบบและค่ารับแสงที่แตกต่างกัน และทดสอบว่าภาพดูแตกต่างกันตามลำดับ ระบบจะเลือกการเปลี่ยนรูปแบบและอัตราขยายเพื่อให้เอาต์พุตเป็นสีแดงหรือน้ำเงินมากขึ้น ใช้โทนแผนที่เชิงเส้น การแมปโทนสีเป็นเทคนิคที่ใช้ในระบบประมวลผลภาพเพื่อแมปชุดสีหนึ่งกับอีกชุดหนึ่งเพื่อให้รูปภาพแบบ High Dynamic Range ปรากฏในสื่อที่มีช่วงไดนามิกจำกัดมากขึ้น
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 boost)
test_param_color_correction_req=2.jpg (B boost)
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: HQ, 3: MIN , 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_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: รูปภาพทั้ง 2 รูปมีแผนที่โทนสีเชิงเส้น แต่ 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 และ 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_sensitivity_boost_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_sensitivity_boost_yuv_plot_means.png
test_raw_burst_ความไว
ถ่ายชุดรูปภาพ RAW ที่มีการเพิ่มค่ากำไรและการวัดสัญญาณรบกวน จับภาพไฟล์ข้อมูล 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
จับภาพชุดรูปภาพ RAW โดยเพิ่มเวลาเปิดรับแสงและวัดค่าพิกเซล
API ที่ทดสอบ:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
ผ่าน: การเพิ่ม ISO (gain) จะทำให้พิกเซลไวต่อแสงมากขึ้น พล็อตจึงเคลื่อนไปทางซ้าย
test_raw_exposure_s=55.png
(10⁰ คือ 1 มิลลิวินาที, 10¹ คือ 10 มิลลิวินาที, 10⁻¹ คือ 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
test_raw_sensitivity
จับภาพชุดรูปภาพ 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
test_reprocess_noise_reduction
การทดสอบว่า android.noiseReduction.mode
ใช้กับคำขอประมวลผลอีกครั้งหรือไม่
ถ่ายภาพที่ประมวลผลใหม่ด้วยกล้องที่มีแสงสลัว ใช้อัตราขยายแบบแอนะล็อกสูงเพื่อให้รูปภาพที่จับได้มีสัญญาณรบกวน จับภาพ 3 รูปภาพที่ประมวลผลใหม่สำหรับ NR ที่ปิดอยู่ "เร็ว" และ "คุณภาพสูง" จับภาพที่ได้รับการประมวลผลใหม่โดยเปิดรับแสงต่ำและปิด NR และใช้ความแปรปรวนของภาพนี้เป็นฐาน
API ที่ทดสอบแล้ว:
ผ่าน: FAST >= OFF, HQ >= FAST, HQ >> OFF
ผัง 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
test_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
test_yuv_plus_dng
ทดสอบว่าขนาดและรูปแบบที่รายงานสำหรับการจับภาพรูปภาพใช้งานได้
API ที่ทดสอบแล้ว:
ผ่าน: การทดสอบเสร็จสมบูรณ์และส่งคืนรูปภาพที่ขอ
test_yuv_plus_dng.jpg
test_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 คล้ายกันและมีความแตกต่างกันน้อยกว่า 1% RMS (ค่ารากค่าเฉลี่ยกำลังสองของสัญญาณ)
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
test_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.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
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 คล้ายกันและมีความแตกต่างกันน้อยกว่า 3.5% RMS (ค่าเฉลี่ยกำลังสองของรากของสัญญาณ)
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
scene2_a
scene2_a มีใบหน้า 3 ใบหน้าที่มีพื้นหลังสีเทาและเสื้อผ้าสีกลาง ใบหน้าเหล่านี้ได้รับการเลือกให้มีสีผิวที่หลากหลาย แผนภูมิต้องอยู่ในการวางแนวที่ถูกต้องเพื่อให้การตรวจจับใบหน้าทำงานได้อย่างมีประสิทธิภาพสูงสุด
scene2_a
test_autoframing
ทดสอบลักษณะการทำงานในการจัดเฟรมอัตโนมัติของอุปกรณ์กล้อง ทำการซูมเข้าจนไม่เห็นใบหน้าใดๆ ในฉาก เปิดใช้โหมดการจัดเฟรมอัตโนมัติโดยตั้งค่า 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()
ผ่าน: บันทึกชุดค่าผสมทั้งหมดเรียบร้อยแล้ว
test_num_faces
ทดสอบการตรวจจับใบหน้า
API ที่ทดสอบแล้ว:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้า
test_num_faces_fd_mode_1.jpg
test_reprocess_uv_swap
ทดสอบว่าระบบประมวลผล 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_ข
test_num_faces
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
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 รูป
นอกจากนี้ การทดสอบนี้จะยืนยันว่าเอาต์พุต YUV สำหรับ Use Case ของสตรีมที่รองรับทั้งหมดมีความคล้ายคลึงกับ YUV ในกรณีการใช้งาน STILL_CAPTURE
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
ผ่าน: รูปภาพ YUV และ JPEG สำหรับกรณีการใช้งาน STILL_CAPTURE
มีความแตกต่าง RMS (ค่ารากค่าเฉลี่ยสี่เหลี่ยมจัตุรัสของสัญญาณ) น้อยกว่า 3%; รูปภาพ YUV สำหรับกรณีการใช้งานที่รองรับทั้งหมดมีความแตกต่าง RMS น้อยกว่า 10% จากรูปภาพ YUV ที่มีกรณีการใช้งาน STILL_CAPTURE
scene2_c
test_num_faces
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
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
ผ่าน: ต้องมีความล่าช้าในการจับภาพ JPEG ของ camera2 น้อยกว่า 1,000 มิลลิวินาทีสำหรับความละเอียด 1080p ตามที่วัดโดย PerformanceTest ของกล้อง CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้ง 2 ตัว
test_camera_launch_perf_class
ทดสอบเวลาในการตอบสนองของการเปิดกล้องสำหรับคลาสประสิทธิภาพ S ตามที่ระบุไว้ในส่วนที่ 2.2.7.2 กล้องใน CDD
ผ่าน: ต้องมีความล่าช้าในการเริ่มต้นของ camera2 (เปิดกล้องเพื่อดูตัวอย่างเฟรมแรก) < 600ms โดยวัดจาก PerformanceTest ของกล้อง CTS ภายใต้สภาพแสง ITS (3000K) สำหรับกล้องหลักทั้ง 2 ตัว
ทดสอบ [default_camera_hdr]
ทดสอบว่าภาพจากกล้องเริ่มต้นเป็น Ultra HDR สำหรับประสิทธิภาพระดับ 15 ตามที่ระบุไว้ในส่วนที่ 2.2.7.2 กล้องของ CDD
ผ่าน: การจับภาพแพ็กเกจกล้องเริ่มต้นต้องเป็น Ultra HDR สำหรับอุปกรณ์ระดับประสิทธิภาพ 15
scene2_d
test_num_faces
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
API ที่ทดสอบแล้ว:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.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_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
ผ่าน: ระบบ 3A ทำงานเสร็จสิ้นภายในช่วงการจับภาพ 50 เฟรม
test_num_faces
ทดสอบการตรวจจับใบหน้าที่มีสีผิวที่หลากหลายยิ่งขึ้นในฉากใบหน้า
API ที่ทดสอบแล้ว:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
ผ่าน: พบใบหน้า 3 ใบหน้า
scene2_f
scene2_f มีใบหน้า 3 ใบหน้าที่มีพื้นหลังสีขาวและเสื้อผ้าสีขาว ใบหน้ามีสีผิวที่หลากหลายและคอนทราสต์สูงกับพื้นหลัง
scene2_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 แต่มีเฉพาะแผนภูมิเท่านั้น แผนภูมิต้องอยู่ในการวางแนวที่ถูกต้องเพื่อให้ตัวค้นหาแผนภูมิทำงานได้อย่างเต็มประสิทธิภาพ
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 (โหมดคุณภาพสูง)
test_flip_mirror
ทดสอบว่ารูปภาพมีทิศทางที่ถูกต้องตามส่วน CDD 7.5.2 กล้องหน้า [C-1-5] หรือไม่
รูปภาพที่สะท้อน กลับด้าน หรือหมุนจะระบุได้ด้วยสัญลักษณ์เพชรซึ่งอยู่ใกล้กับตรงกลาง
ผ่าน: ไม่พลิก มิเรอร์ หรือหมุนรูปภาพ
test_ Flip_mirror_Events_patch.jpg
test_imu_drift
ทดสอบว่าหน่วยวัดความเฉื่อย (IMU) มีเอาต์พุตที่เสถียรเป็นเวลา 30 วินาทีขณะที่อุปกรณ์อยู่กับที่และจับภาพตัวอย่างความละเอียดสูง
API ที่ทดสอบแล้ว:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_GYROSCOPE
android.hardware.Sensor#TYPE_ROTATION_VECTOR
บัตร:
- ความคลาดเคลื่อนของเครื่องวัดการหมุนน้อยกว่า 0.01 เรเดียนในช่วงเวลาทดสอบ
- ความแปรปรวนของการอ่านค่าของไจโรน้อยกว่า 1E-7 rad2/s2/Hz ตลอดระยะเวลาการทดสอบ
- การหลุดของเวกเตอร์การหมุนน้อยกว่า 0.01 rad ในช่วงเวลาทดสอบ
- (ยังไม่บังคับใช้) ความคลาดเคลื่อนของไจโรน้อยกว่า 1 องศาต่อวินาที
test_imu_drift_gyro_drift.png
test_imu_drift_rotation_vector_drift.png
ทดสอบแนวนอนเป็นแนวตั้ง
ทดสอบว่าฟังก์ชันการลบล้างภาพแนวนอนเป็นภาพแนวตั้งทำงานอย่างถูกต้องสำหรับเซ็นเซอร์ที่วางแนวนอนหรือไม่
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
ทดสอบว่ามีการรายงาน Flag การเคลื่อนไหวของเลนส์อย่างถูกต้องหรือไม่ ถ่ายภาพต่อเนื่อง 24 ภาพ จาก 12 เฟรมแรกที่ระยะโฟกัสที่เหมาะสมที่สุด (ตามที่พบโดย 3A) และ 12 เฟรมสุดท้ายที่ระยะโฟกัสต่ำสุด ประมาณเฟรมที่ 12 เลนส์เคลื่อนไหวทำให้ความคมชัดลดลง ในที่สุดความคมชัดจะคงที่เมื่อเลนส์เลื่อนไปยังตำแหน่งสุดท้าย ควรระบุ Flag การเคลื่อนไหวของเลนส์ในทุกเฟรมที่ความคมชัดอยู่ในระดับปานกลางไปจนถึงคมชัดในเฟรม 2-3 เฟรมแรกเมื่อเลนส์ไม่เคลื่อนไหวในระยะโฟกัสที่เหมาะสม และเฟรม 2-3 เฟรมสุดท้ายเมื่อเลนส์ไม่เคลื่อนไหวในระยะโฟกัสต่ำสุด เฟรมที่เลนส์เคลื่อนไหวนั้นไม่สำคัญ สิ่งที่ระบบจะตรวจสอบคือมีการยืนยัน Flag การเคลื่อนไหวเมื่อเลนส์เคลื่อนไหว
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
ผ่าน: Flag การเคลื่อนไหวของเลนส์คือ 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_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
ผ่าน: ค่าความคมชัดสำหรับโหมดขอบต่างๆ ถูกต้อง HQ
(โหมด 2) คมกว่า OFF
(โหมด 0) และการปรับปรุงระหว่างโหมดต่างๆ นั้นคล้ายคลึงกัน
test_reprocess_edge_enhancement_plot.png
scene4
Scene4 ประกอบด้วยวงกลมสีดำบนพื้นหลังสีขาวภายในสี่เหลี่ยมจัตุรัส
การทดสอบใน Scene4 อาจมีความไวต่อการจัดแนว ดังนั้นตั้งแต่ 15 เป็นต้นไป คุณจะใช้ check_alignment.py
ในไดเรกทอรีเครื่องมือเพื่อเปิดใช้การตรวจสอบ DUT และการปรับแผนภูมิได้
scene4
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_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.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_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_preview_aspect_ratio_and_crop
การทดสอบนี้คล้ายกับการทดสอบ 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%
test_video_aspect_ratio_and_crop
ถ่ายวิดีโอวงกลมภายในสี่เหลี่ยมจัตุรัสในวิดีโอทุกรูปแบบ ดึงข้อมูลเฟรมหลักและยืนยันว่าสัดส่วนภาพของวงกลมไม่เปลี่ยนแปลง รูปภาพที่ครอบตัดจะรักษาวงกลมไว้ตรงกลาง และขนาดวงกลมไม่เปลี่ยนแปลงหากเป็นรูปแบบที่คงที่หรือมีความละเอียดต่างกัน (ตรวจสอบขอบเขตการมองเห็น)
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 (มุมมอง) สูงสุดที่เป็นไปได้
scene5
ฉาก 5 ต้องใช้ฉากสีเทาที่มีแสงสม่ำเสมอ ซึ่งทำได้ด้วยตัวกระจายแสง
ที่วางเหนือเลนส์กล้อง เราขอแนะนำให้ใช้หัวกระจายลมต่อไปนี้
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
ในการเตรียมฉาก ให้ใส่แผ่นกระจายแสงไว้ด้านหน้ากล้องและเล็งกล้องไปยังแหล่งแสงที่มีค่าประมาณ 2, 000 ลักซ์ รูปภาพที่ถ่ายสำหรับฉาก 5 ต้องมีแสงแบบกระจายโดยไม่มีลักษณะที่มองเห็นได้ชัดเจน ต่อไปนี้เป็นตัวอย่างรูปภาพ
scene5 capture
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% จึงจะผ่านการทดสอบ
scene6
Scene6 เป็นตารางกริดเป็นวงกลมขนาดเล็กที่มีสี่เหลี่ยมจัตุรัสที่มุมด้านหนึ่งเพื่อระบุการวางแนว วงกลมเล็กจำเป็นสำหรับการทดสอบฟังก์ชันการซูมในช่วงที่กว้าง
การทดสอบใน scene6 อาจไวต่อการจัดแนว ดังนั้นตั้งแต่เวอร์ชัน 15 เป็นต้นไป คุณจะใช้ check_alignment.py
ในไดเรกทอรีเครื่องมือเพื่อเปิดใช้การตรวจสอบ DUT และการจัดแนวแผนภูมิได้
ฉาก 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_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 มุมมองเต็มน้อยกว่าเกณฑ์ที่กำหนดในการทดสอบ
ทดสอบการซูม
ทดสอบลักษณะการซูมของกล้อง ถ่ายภาพระยะซูมและตรวจสอบว่าวงกลมขยายใหญ่ขึ้นเมื่อกล้องซูมเข้าหรือไม่ สำหรับแต่ละรูปแบบ (YUV, JPEG) ระบบจะใช้เซสชันการจับภาพด้วยกล้องเดียวกันเพื่อรวม 3A และทำการจับภาพ
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)
และตรวจสอบว่าวงกลมในรูปภาพเอาต์พุตตรงกับสัดส่วนการซูมในข้อมูลเมตาของการจับภาพหรือไม่ ระบบจะใช้เซสชันการจับภาพกล้องเดียวกันเพื่อรวม 3A และทำการจับภาพ
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 (หลังจากซูม)
Preview_640x480_key_frame.png (หลังซูม)
test_preview_zoom
ทดสอบว่าอัตราส่วนการซูมของเฟรมตัวอย่างแต่ละเฟรมตรงกับข้อมูลเมตาการจับภาพที่สอดคล้องกัน การทดสอบจะจับเฟรมตัวอย่างในช่วงการซูมและค้นหาเส้นขอบของวงกลมที่อยู่ใกล้กับจุดศูนย์กลางมากที่สุด จากนั้นระบบจะตรวจสอบว่าวงกลมที่เลือกนั้นใหญ่ขึ้นและศูนย์กลางของวงกลมนั้นเคลื่อนออกจากศูนย์กลางของรูปภาพเมื่อกล้องซูมเข้า
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_preview_zoom ที่แสดงวงกลมที่เลือกซึ่งอยู่ใกล้กับตรงกลางมากที่สุด
test_session_characteristics_zoom
ทดสอบช่วงอัตราส่วนการซูมสำหรับการกำหนดค่าเซสชันที่รองรับทั้งหมดที่แสดงใน CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
สำหรับการกำหนดค่าเหล่านี้ หาก
CameraDeviceSetup#isSessionConfigurationSupported
แสดงผลเป็น "จริง" การทดสอบจะยืนยันว่าช่วงอัตราส่วนการซูมที่แสดงผลใน
CameraDeviceSetup#getSessionCharacteristics
เข้าถึงได้
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
ผ่าน: อัตราส่วนการซูมต่ำสุดและสูงสุดของ SessionConfiguration
ที่รองรับแต่ละรายการที่แสดงใน CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
ใช้งานได้
scene7
Scene7 เป็นเฟรมสี่เหลี่ยมผืนผ้าที่แบ่งออกเป็นสี่ส่วนเท่าๆ กัน โดยแต่ละส่วนจะเติมสีต่างกัน ตรงกลางสี่เหลี่ยมผืนผ้าคือแผนภูมิขอบเอียงสำหรับตรวจสอบความคมชัด เครื่องหมาย ArUco 4 ตัวจะจัดแนวกับมุมด้านนอกทั้ง 4 มุมของสี่เหลี่ยมผืนผ้าเพื่อช่วยในการหาพิกัดที่แม่นยําของเฟรมสี่เหลี่ยมผืนผ้าหลักในอัตราส่วนการซูมที่แตกต่างกัน
scene7
test_multi_camera_switch
การทดสอบนี้ยืนยันว่าระหว่างการบันทึกตัวอย่างด้วยอัตราส่วนการซูมที่แตกต่างกัน การสลับระหว่างเลนส์มุมกว้างพิเศษ (UW) กับเลนส์มุมกว้าง (W) จะให้ค่า RGB ที่คล้ายกัน
การทดสอบใช้อัตราส่วนการซูมที่แตกต่างกันภายในช่วงที่กําหนดไว้ล่วงหน้าเพื่อบันทึกตัวอย่างแบบไดนามิกและระบุจุดที่กล้องจริงเปลี่ยนแปลง จุดนี้แสดงการครอสโอเวอร์จากเลนส์ UW ไปยังเลนส์ W
ระบบจะวิเคราะห์เฟรมที่บันทึกไว้ ณ และก่อนจุดตัดกันเพื่อหาค่าการเปิดรับแสงอัตโนมัติ (AE), สมดุลแสงขาวอัตโนมัติ (AWB) และโฟกัสอัตโนมัติ (AF)
การตรวจสอบ AE ช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงความสว่างอยู่ในช่วงที่คาดไว้สำหรับทั้งรูปภาพจากเลนส์ UW และเลนส์ W การตรวจสอบ AWB จะยืนยันว่าอัตราส่วน R/G และ B/G อยู่ภายในค่าเกณฑ์สำหรับทั้งรูปภาพจากเลนส์ UW และเลนส์ W การตรวจสอบ AF จะประเมินค่าการประมาณความคมชัดตามขนาดการไล่ระดับสีเฉลี่ยระหว่างรูปภาพเลนส์ UW กับ W
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
ผ่าน: การตรวจสอบ AE, AWB และ AF ต้องผ่านทั้งหมดจึงจะถือว่าการทดสอบผ่าน เกณฑ์การตรวจสอบแต่ละรายการมีดังนี้
- การตรวจสอบ AE: การเปลี่ยนแปลงความสว่างระหว่างรูปภาพจากเลนส์ UW กับเลนส์ W ต้องน้อยกว่า 0.5%
- การตรวจสอบ AWB: ความแตกต่างระหว่างค่า R/G และ B/G สำหรับรูปภาพจากเลนส์ UW และเลนส์ W ต้องน้อยกว่า 0.5%
- การตรวจสอบ AF: การเปลี่ยนแปลงความคมชัดของภาพระหว่างภาพจากเลนส์ UW และ W ต้องน้อยกว่า 2%
ฉาก 8
Scene8 คือเฟรมสี่เหลี่ยมผืนผ้าที่แบ่งออกเป็น 4 ภูมิภาคเท่าๆ กัน โดยแต่ละภูมิภาคจะมีภาพบุคคลที่ถ่ายโดยใช้การเปิดรับแสงที่แตกต่างกันหรือวางซ้อนกันด้วยเฉดสีที่ต่างกัน (เฉดสีน้ำเงิน การเปิดรับแสงเพิ่มขึ้น การเปิดรับแสงลดลง เฉดสีเหลือง) เครื่องหมาย ArUco 4 ตัวจะจัดแนวให้ตรงกับมุมด้านนอกทั้ง 4 มุมของสี่เหลี่ยมผืนผ้าเพื่อให้ได้พิกัดที่แม่นยำของกรอบสี่เหลี่ยมผืนผ้าหลัก
scene8
test_ae_awb_regions
ทดสอบว่าค่า RGB และค่าความสว่างแตกต่างกันเมื่อแสดงตัวอย่างการบันทึกในภูมิภาคการเปิดรับแสงอัตโนมัติ (AE) และการปรับสมดุลแสงสีขาวอัตโนมัติ (AWB) ที่ต่างกัน
การทดสอบจะบันทึกการบันทึกตัวอย่างความยาว 8 วินาที ซึ่งทำการวัด AE และ AWB ในควอแดรนท์แต่ละควอแดรนท์เป็นเวลา 2 วินาทีต่อ 2 วินาที จากนั้นการทดสอบจะดึงเฟรมจากไฟล์บันทึกตัวอย่างของภูมิภาคแต่ละแห่ง และใช้เฟรมที่ดึงมาเพื่อดำเนินการตรวจสอบ AE และ AWB ต่อไปนี้
- การตรวจสอบ AE: ยืนยันว่าเฟรมที่วัดแสงบริเวณที่มีการเปิดรับแสงลดลงมีค่า Luma เพิ่มขึ้นมากกว่า 1% เมื่อเทียบกับเฟรมที่วัดแสงบริเวณที่มีการเปิดรับแสงเพิ่มขึ้น วิธีนี้ช่วยให้มั่นใจว่ารูปภาพจะสว่างขึ้นเมื่อวัดแสงบริเวณที่มืด
- การตรวจสอบ AWB: ยืนยันว่าอัตราส่วนของสีแดงต่อสีน้ำเงิน (ของค่า RGB เฉลี่ยของรูปภาพ) ในเฟรมที่มีขอบเขตการวัดสีฟ้าสูงกว่าเฟรมที่มีพื้นที่การวัดสีเหลืองมากกว่า 2% วิธีนี้ช่วยให้มั่นใจว่ารูปภาพมีค่า RGB ที่สมดุลเมื่อวัดแสงบริเวณสีเหลือง (อบอุ่น) หรือสีน้ำเงิน (เย็น)
API ที่ทดสอบแล้ว:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AE
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
ผ่าน: ผ่านการตรวจสอบ AE และ AWB ทั้ง 2 รายการ
ฉาก 9
Scene9 ประกอบด้วยวงกลมหลายพันวงที่มีขนาดและสีแบบสุ่มเพื่อสร้างฉากที่มีความซ้ำกันต่ำมากเพื่อทดสอบอัลกอริทึมการบีบอัด JPEG
ฉาก 9
test_jpeg_high_entropy
ทดสอบว่าการบีบอัด JPEG ของกล้องทำงานในโหมด 9 ที่มีเอนโทรปีสูง และตั้งค่าคุณภาพ JPEG เป็น 100% ระบบจะเพิ่มอัตราส่วนการซูมเพื่อให้แน่ใจว่าฉากที่แสดงบนแท็บเล็ตจะเต็มมุมมองของกล้อง
API ที่ทดสอบแล้ว:
ผ่าน: ไฟล์ JPEG ได้รับการบีบอัด เขียน และอ่านจากดิสก์อย่างถูกต้อง
test_jpeg_quality
ทดสอบคุณภาพการบีบอัด JPEG ของกล้อง ปรับคุณภาพ JPEG ทีละระดับผ่าน android.jpeg.quality
และตรวจสอบว่าตารางการแปลงค่าเปลี่ยนแปลงอย่างถูกต้อง
API ที่ทดสอบแล้ว:
ผ่าน: เมทริกซ์การวัดลดลงเมื่อคุณภาพเพิ่มขึ้น (เมทริกซ์แทนตัวประกอบการหาร)
ค่าเฉลี่ยของเมทริกซ์ DQT ของค่าความสว่าง/ความต่างของสีของกล้องหลัง Pixel 4 เทียบกับคุณภาพ JPEG
ตัวอย่างการทดสอบที่ไม่สําเร็จ
โปรดทราบว่าสำหรับรูปภาพคุณภาพต่ำมาก (jpeg.quality < 50) จะไม่มีการเพิ่มการบีบอัดในเมทริกซ์การแปลงเชิงปริมาณ
scene_video
ฉาก scene_video
เป็นฉากวิดีโอ ประกอบด้วยวงกลม 4 สีที่เคลื่อนไหวไปมาด้วยอัตราเฟรมที่แตกต่างกันบนพื้นหลังสีขาว
scene_video
test_preview_frame_drop
ทดสอบว่าเฟรมเรตของตัวอย่างที่ขอได้รับการคงไว้ด้วยฉากแบบไดนามิก การทดสอบนี้จะทำงานกับกล้องทั้งหมดที่แสดงต่อแอปของบุคคลที่สาม
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
ผ่าน: อัตราเฟรมของตัวอย่างอยู่ที่สูงสุดของช่วงอัตราเฟรมที่ขอ และค่าความผันผวนเฉลี่ยระหว่างเฟรมที่ต่อเนื่องกันน้อยกว่าความคลาดเคลื่อนสัมพัทธ์ที่ตั้งไว้ในการทดสอบ
ส่วนขยายฉาก
การทดสอบ scene_extensions
มีไว้สำหรับส่วนขยายกล้องและต้องใช้
ระบบไอทีที่มาพร้อมกับกล้อง
เนื่องจากต้องมีการควบคุมสภาพแวดล้อมการทดสอบอย่างแม่นยำ นอกจากนี้ ต้องควบคุมการรั่วไหลของแสงทั้งหมด ซึ่งอาจต้องคลุมแท่นทดสอบ, DUT และแท็บเล็ตด้วยผ้าคลุม รวมถึงกำจัดแสงที่ลอดออกมาจากหน้าจอด้านหน้าของ DUT
scene_hdr
ฉาก scene_hdr
ประกอบด้วยภาพบุคคลทางด้านซ้ายและคิวอาร์โค้ดที่มีคอนทราสต์ต่ำทางด้านขวา
scene_hdr
test_hdr_extension
ทดสอบส่วนขยาย HDR ถ่ายภาพโดยเปิดและปิดใช้ส่วนขยาย แล้วตรวจสอบว่าส่วนขยายช่วยให้ตรวจพบคิวอาร์โค้ดได้ง่ายขึ้นหรือไม่
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
ผ่าน: ส่วนขยาย HDR จะลดจำนวนการเปลี่ยนแปลงคอนทราสต์ที่จําเป็นต่อการตรวจจับคิวอาร์โค้ด หรือลดการไล่ระดับสีในคิวอาร์โค้ด
แสงน้อย
ฉาก scene_low_light
ประกอบด้วยตารางกริดของสี่เหลี่ยมจัตุรัสเฉดสีเทาต่างๆ บนพื้นหลังสีดำ และตารางกริดของสี่เหลี่ยมจัตุรัสจะมีเส้นขอบสีแดงล้อมรอบ สี่เหลี่ยมจัตุรัสจะจัดเรียงในแนวโค้งฮิลเบิร์ต
scene_low_light
test_night_extension
ทดสอบส่วนขยายกลางคืน ถ่ายภาพโดยเปิดใช้ส่วนขยาย และดำเนินการต่อไปนี้
- ตรวจหาสี่เหลี่ยมจัตุรัส 20 รูป
- คำนวณ Luma ที่ล้อมรอบด้วยกำลังสอง
- คํานวณค่าความสว่างเฉลี่ยของสี่เหลี่ยมจัตุรัส 6 ช่องแรกตามการวางแนวตารางรูปโค้งฮิลเบิร์ต
- คํานวณความแตกต่างของค่าความสว่างของสี่เหลี่ยมจัตุรัสติดต่อกัน (เช่น สี่เหลี่ยมจัตุรัส 2 - สี่เหลี่ยมจัตุรัส 1) จนถึงสี่เหลี่ยมจัตุรัส 5 และ 6 (สี่เหลี่ยมจัตุรัส 6 - สี่เหลี่ยมจัตุรัส 5) และหาค่าเฉลี่ยของความแตกต่างที่คำนวณได้ 5 รายการ
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
ผ่าน: ค่าความส่องสว่างโดยเฉลี่ยของสี่เหลี่ยมจัตุรัส 6 ช่องแรกต้องไม่ต่ำกว่า 85 และค่าความแตกต่างโดยเฉลี่ยของความส่องสว่างของสี่เหลี่ยมจัตุรัสติดต่อกันจนถึงสี่เหลี่ยมจัตุรัสที่ 5 และ 6 ต้องไม่ต่ำกว่า 17
ผังความสว่างต่อไปนี้แสดงลักษณะของผลการทดสอบที่ผ่าน
test_low_light_boost_extension
ทดสอบโหมด AE การเพิ่มแสงในสภาวะแสงน้อย หาก Camera2 รองรับโหมด AE เพิ่มแสงในที่แสงน้อย ระบบจะทำการทดสอบนี้สำหรับ Camera2 หากระบบรองรับส่วนขยายกล้องโหมดกลางคืนและส่วนขยายรองรับโหมด AE เพิ่มแสงต่ำ ระบบจะทำการทดสอบนี้กับส่วนขยายกล้องโหมดกลางคืนด้วย การทดสอบนี้จะตั้งค่าโหมด AE เป็นการเพิ่มคุณภาพในโหมดแสงน้อย นำเฟรมจากตัวอย่างไปดำเนินการต่อไปนี้
- ตรวจหากล่อง 20 กล่อง
- คํานวณค่าความสว่างที่ขอบเขตโดยแต่ละช่อง
- คํานวณค่าความสว่างเฉลี่ยของสี่เหลี่ยมจัตุรัส 6 ช่องแรกตามการวางแนวตารางรูปโค้งฮิลเบิร์ต
- คํานวณความแตกต่างของค่าความสว่างของสี่เหลี่ยมจัตุรัสติดต่อกัน (เช่น สี่เหลี่ยมจัตุรัส 2 - สี่เหลี่ยมจัตุรัส 1) จนถึงสี่เหลี่ยมจัตุรัส 5 และ 6 (สี่เหลี่ยมจัตุรัส 6 - สี่เหลี่ยมจัตุรัส 5) และหาค่าเฉลี่ยของความแตกต่างที่คำนวณได้ 5 รายการ
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
ผ่าน: ค่าความส่องสว่างเฉลี่ยของสี่เหลี่ยมจัตุรัส 6 ช่องแรกต้องไม่ต่ำกว่า 70 และค่าความแตกต่างของความส่องสว่างเฉลี่ยของสี่เหลี่ยมจัตุรัสติดต่อกันจนถึงสี่เหลี่ยมจัตุรัสที่ 5 และ 6 ต้องไม่ต่ำกว่า 17
แฟลชฉาก
การทดสอบ scene_flash
ต้องใช้ฉากที่มีแสงน้อยในช่องการผสานเซ็นเซอร์
test_auto_flash
ทดสอบว่าระบบเปิดแฟลชอัตโนมัติในฉากมืดสำหรับกล้องหลังและกล้องหน้า สำหรับกล้องหน้า แฟลชอัตโนมัติจะใช้หน้าจอในการส่องสว่างภายในฉาก ไม่ใช่แฟลชหน่วยจริง การทดสอบจะยืนยันว่าระบบเปิดแฟลชอัตโนมัติโดยตรวจสอบว่าตรงกลางของภาพการ์ดสว่างขึ้นเมื่อเปิดใช้แฟลชอัตโนมัติ หากต้องการเรียกให้แฟลชอัตโนมัติทำงาน คุณต้องปิดไฟในแท่นทดสอบ ซึ่งสามารถปิดไฟโดยอัตโนมัติด้วยตัวควบคุม Arduino ฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง ต้องติดตั้งแอป Jetpack Camera (JCA) ในอุปกรณ์ก่อนการทดสอบ แฟลชอัตโนมัติสำหรับกล้องหลังจะขึ้นอยู่กับสถานะ AE ที่จะทริกเกอร์ แต่แฟลชอัตโนมัติสำหรับกล้องหน้าจะไม่ขึ้นอยู่กับ AE และทริกเกอร์เสมอ
API ที่ทดสอบ:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.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_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.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 ไม่ทำให้รูปภาพมีสีจัดหรือมีสี
การทดสอบนี้จะเพิ่มตัวควบคุมแสงลงในกล่องฟิวชันเซ็นเซอร์เพื่อควบคุมไฟ เมื่อตั้งค่าไฟเป็น 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 ค่าเฉลี่ยของภาพแฟลชอยู่ในช่วง (68, 102)
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
ผ่าน: อัตราเฟรมของตัวอย่างอยู่ที่ค่าต่ำสุดของช่วงอัตราเฟรมที่ขอ และความแตกต่างระหว่างเฟรมน้อยกว่าความคลาดเคลื่อนสัมบูรณ์ที่ตั้งไว้ในการทดสอบ
ทดสอบความแรงของไฟฉาย
ทดสอบว่าการควบคุมความแรงของแฟลชในโหมด TORCH
ทำงานอย่างถูกต้อง
ยืนยันว่าหากอุปกรณ์รองรับการควบคุมความแรงของแฟลชระหว่างการใช้กล้องในโหมด TORCH
ความแรงของไฟฉายจะเปลี่ยนไปตามระดับความแรงที่ขอ ยืนยันว่าการควบคุมความแรงแฟลชทำงานร่วมกับAE_MODES
แบบต่างๆ ได้
เช่น หากโหมดการรับแสงอัตโนมัติคือ ON
หรือ OFF
ระดับความแรงของแฟลชจะมีผลกับความสว่าง และหากอยู่ในโหมด ON_AUTO_FLASH
ระดับความแรงของแฟลชจะไม่มีผลกับความสว่าง
ยืนยันว่าความแรงของไฟฉายจะคงที่ตลอดระยะเวลาของพลุ โดยจำลองเซสชันการจับภาพวิดีโอ หากต้องการทำการทดสอบ คุณต้องปิดไฟในแท่นทดสอบ ซึ่งสามารถปิดไฟโดยอัตโนมัติด้วยตัวควบคุม Arduino ฉากต้องมืดสนิทเพื่อให้การทดสอบทำงานได้อย่างถูกต้อง
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
บัตร:
เมื่อโหมดการรับแสงอัตโนมัติเป็น ON
หรือ OFF
ความสว่างของจุดแสงแฟลชจะเพิ่มขึ้นเมื่อระดับความแรงของแฟลชเพิ่มขึ้นจากไม่มีแฟลชเป็น FLASH_TORCH_STRENGTH_MAX_LEVEL
เมื่อโหมดการเปิดรับแสงอัตโนมัติเป็น ON_AUTO_FLASH
ความแตกต่างของความสว่างของแพตช์ภาพแบบต่อเนื่องจะอยู่ในเกณฑ์ที่ยอมรับได้เมื่อระดับความแรงของแฟลชเพิ่มขึ้นจากไม่มีแฟลชเป็น FLASH_TORCH_STRENGTH_MAX_LEVEL
sensor_fusion
การทดสอบการผสานเซ็นเซอร์ต้องใช้การเคลื่อนไหวของโทรศัพท์ในลักษณะที่เฉพาะเจาะจงหน้ารูปแบบตารางหมากรุกและเครื่องหมาย ArUco ตรวจสอบว่าแผนภูมิทดสอบติดตั้งอย่างราบเรียบเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด แผนภูมิที่ไม่แบนจะส่งผลต่อการคำนวณการหมุนสําหรับการทดสอบหลายรายการ แผนภูมิต้องเติมที่ด้านหลังของกล่องฟิวชันเซ็นเซอร์โดยการพิมพ์ที่
17"x17" (43x43 ซม.) การทดสอบ sensor_fusion
สามารถทำแบบอัตโนมัติได้ด้วยกล่อง Sensor Fusion
แผนภูมิการผสานเซ็นเซอร์
แผนภูมิการผสานเซ็นเซอร์ที่เติมเต็มด้านหลังของกล่องการผสานเซ็นเซอร์
test_lens_intrinsic_calibration
ทดสอบว่าจุดศูนย์กลางของเลนส์มีการเปลี่ยนแปลงเมื่อเลนส์เคลื่อนไหวเนื่องจากระบบกันภาพสั่นแบบออปติคัล (OIS) หากรองรับตัวอย่างจากเลนส์จริง ให้ทดสอบว่าจุดศูนย์กลางของแสงจากตัวอย่างจากเลนส์จริงเปลี่ยนแปลงเมื่อเลนส์เคลื่อนไหวเนื่องจากระบบกันภาพสั่นแบบออปติคัล (OIS) หรือไม่
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
ผ่าน: ศูนย์กลางเชิงแสงของเลนส์มีการเปลี่ยนแปลงอย่างน้อย 1 พิกเซล หากระบบรองรับตัวอย่างจากเลนส์ ศูนย์กลางเชิงแสงของตัวอย่างจากเลนส์จะเปลี่ยนแปลงอย่างน้อย 1 พิกเซล
ตัวอย่างผัง test_lens_intrinsic_calibration
ที่แสดงการเปลี่ยนแปลงของจุดหลักเป็นพิกเซลสำหรับแต่ละเฟรม
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_distortion
ทดสอบว่าระบบแก้ไขการบิดเบือนในเฟรมตัวอย่างแต่ละเฟรมที่ถ่ายในระดับการซูมต่างๆ สําหรับเฟรมตัวอย่างแต่ละเฟรม การทดสอบจะคํานวณจุดที่เหมาะสมโดยอิงตามปัจจัยภายในและภายนอกของกล้อง ในภาพตัวอย่าง จุดที่เหมาะสมจะแสดงเป็นสีเขียว ส่วนจุดจริงจะแสดงเป็นสีแดง ข้อผิดพลาดในการบิดเบี้ยวจะคำนวณตามระยะห่างของพิกเซลค่าเฉลี่ยกำลังสอง (RMS) ระหว่างจุดจริงกับจุดอุดมคติ การใช้ไฮไลต์สีเขียวและสีแดงในรูปภาพมีไว้เพื่อตรวจหาพื้นที่ของข้อผิดพลาดในการบิดเบือนด้วยสายตา
รูปภาพกระดานหมากรุกที่มีจุดในอุดมคติเป็นสีเขียวและจุดจริงเป็นสีแดง
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.media.CamcorderProfile
android.media.MediaRecorder
ผ่าน: ข้อผิดพลาดในการบิดเบือนที่แปลงเป็นมาตรฐานของเฟรมตัวอย่างแต่ละเฟรมน้อยกว่าเกณฑ์ที่ตั้งไว้ในการทดสอบ
test_preview_stabilization
ทดสอบว่าวิดีโอตัวอย่างที่ระบบกันภาพสั่นหมุนน้อยกว่าไจโรสโคป
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
ผ่าน: การหมุนมุมสูงสุดในเฟรมน้อยกว่า 70% ของการหมุนของไจโรสโคป
ต่อไปนี้คือตัวอย่างวิดีโอที่มีและไม่มีแกนกันภาพสั่น
ตัวอย่างวิดีโอที่มีระบบกันภาพสั่น
ตัวอย่างวิดีโอที่ไม่มีระบบกันภาพสั่น
test_sensor_fusion
ทดสอบความแตกต่างของการประทับเวลาระหว่างกล้องกับไจโรสโคปสําหรับแอปพลิเคชัน 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 ms
- การลดลงของเฟรม: ไปป์ไลน์ไม่เร็วพอที่จะจับภาพ 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% ของการหมุนของไจโรสโคป
ต่อไปนี้เป็นตัวอย่างวิดีโอทั้งที่มีและไม่มีระบบกันภาพสั่น
ตัวอย่างวิดีโอที่มีระบบกันภาพสั่น
ตัวอย่างวิดีโอที่ไม่มีระบบกันภาพสั่น
ชุดค่าผสมฟีเจอร์ [feature_combination]
การทดสอบ feature_combination
จะยืนยันว่าฟีเจอร์ทำงานได้อย่างถูกต้องเมื่อเปิดใช้ฟีเจอร์กล้องหลายรายการพร้อมกัน การทดสอบเหล่านี้ใช้รูปภาพตารางหมากรุกเดียวกันกับที่ใช้ในฉากการผสานเซ็นเซอร์
test_feature_combination
ทดสอบชุดค่าผสมทั้งหมดของสตรีมต่างๆ การปรับภาพตัวอย่างให้นิ่ง ช่วง FPS เป้าหมาย วิดีโอ HDR 10 บิต และ Ultra HDR ที่อุปกรณ์กล้องรองรับ การทดสอบนี้ใช้หน่วยความจำมาก เราจึงแนะนำให้ใช้โฮสต์ที่มี RAM อย่างน้อย 128 GB
สำหรับ Android 15 ขึ้นไป ไฟล์การกำหนดค่าจะมีช่อง log_feature_combo_support
ซึ่งมีค่าเริ่มต้นเป็น False
เมื่อตั้งค่าช่อง log_feature_combo_support
เป็น True
การทดสอบจะเรียกใช้ชุดค่าผสมทั้งหมดของฟีเจอร์ที่รองรับ และบันทึกผลลัพธ์ลงในไฟล์ proto โดยไม่มีการทดสอบไม่ผ่าน สำหรับการทดสอบการปฏิบัติตามข้อกำหนด คุณต้องตั้งค่าช่อง log_feature_combo_support
เป็น False
API ที่ทดสอบแล้ว:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
ผ่าน: สำหรับชุดค่าผสมฟีเจอร์ที่รองรับแต่ละชุด
- สตรีมตัวอย่างจะมีความเสถียรหากเปิดการทำให้ตัวอย่างมีความเสถียรไว้
- อัตราเฟรมของตัวอย่างวิดีโออยู่ภายใน
AE_TARGET_FPS_RANGE
ที่กําหนดค่าไว้ - พื้นที่สีของสตรีมตัวอย่างที่บันทึกไว้จะตรงกับค่าที่ตั้งไว้
- การจับภาพ Ultra HDR มีแผนที่ค่าเกนที่ถูกต้อง