इस पेज पर, Camera Image Test Suite (ITS) में शामिल टेस्ट की पूरी सूची दी गई है. यह Android Compatibility Test Suite (CTS) Verifier का हिस्सा है. आईटीएस टेस्ट, फ़ंक्शन की जांच करने वाले टेस्ट होते हैं. इसका मतलब है कि इनसे इमेज क्वालिटी का आकलन नहीं किया जाता है. हालांकि, इनसे यह पता चलता है कि विज्ञापन में दिखाए गए कैमरे के सभी फ़ंक्शन, उम्मीद के मुताबिक काम कर रहे हैं या नहीं. इस दस्तावेज़ से डेवलपर और टेस्टर को यह समझने में मदद मिलती है कि अलग-अलग टेस्ट क्या करते हैं और टेस्ट में होने वाली गड़बड़ियों को डीबग कैसे करें.
कैमरा आईटीएस गेट, ज़रूरी कैमरा प्रॉपर्टी, एपीआई लेवल, और मीडिया परफ़ॉर्मेंस क्लास (एमपीसी) लेवल के हिसाब से जांच करता है. एपीआई लेवल के लिए, ITS किसी खास एपीआई लेवल में जोड़े गए टेस्ट को गेट करने के लिए ro.product.first_api_level
का इस्तेमाल करता है. ये टेस्ट, एपीआई के निचले लेवल में फ़ंक्शन के लिए, उपयोगकर्ता अनुभव को खराब करने वाले एलिमेंट का पता लगाते हैं. ITS, किसी खास एपीआई लेवल में जोड़ी गई उन सुविधाओं के लिए टेस्ट को गेट करने के लिए ro.vendor.api_level
का इस्तेमाल करता है जिनके लिए नए हार्डवेयर की ज़रूरत होती है. अगर किसी डिवाइस के लिए ro.odm.build.media_performance_class
तय किया गया है, तो एमपीसी लेवल के आधार पर, आईटीएस को खास टेस्ट चलाने की ज़रूरत होती है.
टेस्ट को सीन के हिसाब से इस तरह ग्रुप किया जाता है:
- scene0: मेटाडेटा, जटर, जियोस्कोप, वाइब्रेशन कैप्चर करें
- scene1: एक्सपोज़र, सेंसिटिविटी, ईवी कंपेनसेशन, YUV बनाम JPEG/RAW
- scene2: चेहरे की पहचान करने की सुविधा, ऐसे टेस्ट जिनमें कलर सीन की ज़रूरत होती है
- scene3: किनारों को बेहतर बनाना, लेंस की मूवमेंट
- scene4: आसपेक्ट रेशियो, काट-छांट करना, फ़ील्ड-ऑफ़-व्यू
- scene5: लेंस के गहरा होने की समस्या
- scene6: ज़ूम
- scene7: एक से ज़्यादा कैमरे स्विच करना
- scene8: एई और एडब्ल्यूबी क्षेत्र मेज़रमेंट
- scene9: JPEG कम्प्रेशन
- scene_extensions: कैमरे के एक्सटेंशन
- scene_flash: ऑटोफ़्लैश, फ़्रेम रेट कम से कम
- scene_video: फ़्रेम ड्रॉप
- sensor_fusion: कैमरा/जाइरोस्कोप के टाइमिंग ऑफ़सेट की जानकारी
- feature_combination: सुविधा के कॉम्बिनेशन
हर सीन की जानकारी के लिए, अलग-अलग सेक्शन देखें.
scene0
Scene0 टेस्ट के लिए, सीन की खास जानकारी की ज़रूरत नहीं होती. हालांकि, जायरोस्कोप और वाइब्रेशन की जांच के लिए, फ़ोन को एक जगह पर रखना ज़रूरी है.
test_jitter
कैमरे के टाइमस्टैंप में होने वाली झटके जैसी गतिविधियों को मेज़र करता है.
इन एपीआई की जांच की गई है:
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
एक्सपोज़र और गेन वैल्यू का इस्तेमाल किया जाता है, क्योंकि इमेज का कॉन्टेंट ज़रूरी नहीं होता.
इन एपीआई की जांच की गई है:
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
, फ़ील्ड ऑफ़ व्यू,
हाइपरफ़ोकल डिस्टेंस मौजूद हैं और उनकी वैल्यू मान्य हैं.
test_request_capture_match
यह जांच करता है कि कैप्चर किए गए मेटाडेटा को पढ़कर, डिवाइस सही एक्सपोज़र और गेन वैल्यू लिखता है या नहीं.
इन एपीआई की जांच की गई है:
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
यह जांच करता है कि डिवाइस से की गई क्वेरी सही हैं या नहीं. साथ ही, सेंसर फ़्यूज़न की सुविधा का विज्ञापन करने वाले डिवाइसों के लिए सेंसर इवेंट प्रिंट करता है. इनमें एक्सलरोमीटर, जाइरोस्कोप, और मैग्नेटोमीटर जैसे सेंसर होने चाहिए. यह जांच सिर्फ़ तब काम करती है, जब स्क्रीन चालू हो. इसका मतलब है कि डिवाइस स्टैंडबाय मोड में नहीं होना चाहिए.
इन एपीआई की जांच की गई है:
पास: हर सेंसर के लिए इवेंट मिलते हैं.
test_solid_color_test_pattern
यह जांच करता है कि कैमरे को म्यूट करने के लिए, सॉलिड कलर वाले टेस्ट पैटर्न सही तरीके से जनरेट हुए हैं या नहीं. अगर कैमरे को म्यूट करने की सुविधा काम करती है, तो एक ही रंग के टेस्ट पैटर्न काम करने चाहिए. अगर कैमरे को म्यूट करने की सुविधा काम नहीं करती है, तो सिर्फ़ तब एक जैसे रंग के टेस्ट पैटर्न की जांच की जाती है, जब इस सुविधा का विज्ञापन किया गया हो.
अगर RAW इमेज इस्तेमाल की जा सकती हैं, तो कलर असाइनमेंट की भी जांच की जाती है. जिन रंगों पर जांच की गई है उनमें काला, सफ़ेद, लाल, नीला, और हरा शामिल है. जिन कैमरों में RAW इमेज की सुविधा काम नहीं करती उनके लिए सिर्फ़ ब्लैक कलर की जांच की जाती है.
इन एपीआई की जांच की गई है:
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
पैरामीटर की जांच करता है. साथ ही, यह भी जांच करता है कि सॉलिड रंगों और कलर बार के लिए फ़्रेम सही तरीके से जनरेट हुए हैं या नहीं. इस टेस्ट में ये चरण शामिल हैं:
- काम करने वाले सभी टेस्ट पैटर्न के लिए इमेज कैप्चर करता है.
- यह एक ही रंग के टेस्ट पैटर्न और कलर बार के लिए, सही होने की आसान जांच करता है.
इन एपीआई की जांच की गई है:
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
पर निर्भर करता है).
इन एपीआई की जांच की गई है:
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 और RAW फ़ॉर्मैट में मौजूद इमेज एक-दूसरे से मिलती-जुलती हैं.
test_tonemap_curve_raw_2.jpg
test_tonemap_curve_yuv_2.jpg
test_unified_timestamp
यह जांच करता है कि इमेज और मोशन सेंसर इवेंट, एक ही टाइम डोमेन में हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
पास: मोशन टाइमस्टैंप, दो इमेज टाइमस्टैंप के बीच में होते हैं.
test_vibration_restriction
यह जांच करता है कि डिवाइस का वाइब्रेशन उम्मीद के मुताबिक काम कर रहा है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
पास: कैमरे के ऑडियो पर पाबंदी लगाने वाले एपीआई की मदद से म्यूट करने पर, डिवाइस वाइब्रेट नहीं होता.
scene1
scene1 एक ग्रे चार्ट है. स्लेटी रंग का चार्ट, कैमरे के फ़ील्ड ऑफ़ व्यू के बीच के 30% हिस्से को कवर करना चाहिए. धूसर रंग के चार्ट में 3A (ऑटो एक्सपोज़र, ऑटो व्हाइट बैलेंस, ऑटो फ़ोकस) की सुविधाओं का इस्तेमाल कम किया गया है. ऐसा इसलिए किया गया है, क्योंकि बीच के हिस्से में कोई सुविधा नहीं है. हालांकि, कैप्चर करने के अनुरोध में पूरे सीन की जानकारी होती है. इसमें 3A के लिए ज़रूरी सुविधाएं शामिल होती हैं.
आरएफ़ओवी कैमरों की जांच, डब्ल्यूएफ़ओवी या आरएफ़ओवी टेस्ट रिग में की जा सकती है. अगर किसी RFoV कैमरे की जांच WFoV टेस्ट रिग में की जाती है, तो चार्ट को ⅔ तक स्केल किया जाता है. इससे, FoV में मौजूद स्लेटी रंग के चार्ट के लिए कुछ सीमाएं तय की जा सकती हैं, ताकि 3A कंवरजेंस में मदद मिल सके. कैमरे के टेस्ट रिग के बारे में ज़्यादा जानकारी के लिए, कैमरे के लिए ITS-in-a-box देखें.
scene1: फ़ुल साइज़ चार्ट (बाईं ओर). ⅔ स्केल वाला चार्ट (दाईं ओर).
test_ae_precapture_trigger
प्रीकैप्चर ट्रिगर का इस्तेमाल करते समय, एई स्टेट मशीन की जांच करता है. AE बंद होने पर, पांच मैन्युअल अनुरोध कैप्चर करता है. आखिरी अनुरोध में, एई प्रीकैप्चर ट्रिगर है. इसे अनदेखा किया जाना चाहिए, क्योंकि एई बंद है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
पास: एई (एलिमेंट एग्रीगेशन) एक साथ मिल जाता है.
test_auto_vs_manual
अपने-आप और मैन्युअल तरीके से कैप्चर किए गए शॉट एक जैसे दिखते हैं.
इन एपीआई की जांच की गई है:
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
पास: हर कैप्चर के नतीजे में मैन्युअल तौर पर किए गए वाइट बैलेंस में होने वाले बदलाव और ट्रांसफ़ॉर्मेशन की जानकारी, कैमरे के 3A एल्गोरिदम से मिलने वाले ऑटो वाइट बैलेंस estimate
से मेल खाती है.
test_auto_vs_manual_auto.jpg
test_auto_vs_manual_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
test_black_white
यह जांच करता है कि डिवाइस, पूरी तरह से ब्लैक ऐंड व्हाइट इमेज जनरेट करता है या नहीं. यह दो कैप्चर लेता है. पहला कैप्चर, बहुत कम गेन और कम एक्सपोज़र के साथ लिया जाता है, जिससे काली फ़ोटो मिलती है. दूसरा कैप्चर, बहुत ज़्यादा गेन और ज़्यादा एक्सपोज़र के साथ लिया जाता है, जिससे सफ़ेद फ़ोटो मिलती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: इससे ब्लैक ऐंड व्हाइट इमेज बनती हैं. सफ़ेद इमेज के संतृप्त चैनलों की आरजीबी वैल्यू [255, 255, 255] होती है. साथ ही, गड़बड़ी का मार्जिन 1% से कम होता है.
![]() |
![]() |
|
test_black_white_black.jpg | test_black_white_white.jpg |
test_black_white_plot_means.png
test_burst_capture
यह पुष्टि करता है कि कैप्चर करने की पूरी प्रोसेस, फ़ुल साइज़ में कैप्चर करने की स्पीड और सीपीयू के समय के हिसाब से काम कर सकती है.
इन एपीआई की जांच की गई है:
पास: यह फ़ंक्शन, फ़ुल साइज़ की इमेज को कैप्चर करता है. साथ ही, फ़्रेम ड्रॉप और इमेज की चमक की जांच करता है.
test_burst_sameness_manual
मैन्युअल कैप्चर सेटिंग की मदद से, 50 इमेज के पांच बर्स्ट लेता है और यह जांच करता है कि वे सभी एक जैसी हैं या नहीं. इस जांच का इस्तेमाल यह पता लगाने के लिए किया जा सकता है कि क्या कभी-कभी ऐसे फ़्रेम दिखते हैं जिन्हें अलग तरह से प्रोसेस किया गया है या जिनमें आर्टफ़ैक्ट हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
पास: इमेज, विज़ुअल और आरजीबी वैल्यू में एक जैसी हैं.
अमान्य: हर बर्स्ट की शुरुआत में, आरजीबी औसत चार्ट में स्पाइक या गिरावट दिखती है
first_API_level
< 30 के लिए, टॉलरेंस 3% हैfirst_API_level
>= 30 के लिए, टॉलरेंस 2% है
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_capture_result
यह जांच करता है कि CaptureResult
ऑब्जेक्ट में मान्य डेटा वापस आता है या नहीं. ऑटो, मैन्युअल, और ऑटो कैप्चर की सुविधा देता है.
इन एपीआई की जांच की गई है:
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
test_crop_region_raw
यह जांच करता है कि RAW स्ट्रीम को काटा जा सकता है या नहीं.
इन एपीआई की जांच की गई है:
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
यह जांच करता है कि फ़ोटो के हिस्से को काटने की सुविधा काम कर रही है या नहीं. यह पूरी इमेज लेता है और पांच अलग-अलग इलाकों (कोने और बीच) के पैच बनाता है. पांच क्षेत्रों के लिए क्रॉप सेट करके इमेज लेता है. पैच और काटी गई इमेज की वैल्यू की तुलना करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
पास: काटे गए हिस्से की इमेज, काटी गई इमेज से जुड़े पैच से मेल खाती है.
test_dng_noise_model
यह पुष्टि करता है कि DNG रॉ मॉडल पैरामीटर सही हैं. इस प्लॉट में, अलग-अलग सेंसिटिविटी पर कैप्चर किए गए रॉ शॉट में, स्लेटी रंग के कार्ड के बीच वाले पैच के लिए, मापा गया वैरिएंस दिखाया गया है. साथ ही, इन वैल्यू की तुलना, कैमरा एचएएल में DNG नॉइज़ मॉडल के हिसाब से, हर सेंसिटिविटी पर होने वाले वैरिएंस से की गई है. यह वैरिएंस, कैप्चर के नतीजे वाले ऑब्जेक्ट में दिखाए गए O,S पैरामीटर के आधार पर तय होता है. DNG नॉइज़ मॉडल के बारे में ज़्यादा जानकारी के लिए, DNG नॉइज़ मॉडल के बारे में यह दस्तावेज़ डाउनलोड करें.
इन एपीआई की जांच की गई है:
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 रॉ मॉडल के पैरामीटर सही हैं. अनुमानित आरजीबी वैल्यू, मेज़र की गई असल आरजीबी वैल्यू से मेल खाती हैं.
test_dng_noise_model_plog.png
test_ev_compensation_advanced
यह जांच करता है कि एक्सपोज़र वैल्यू (ईवी) का कंपेसेशन लागू किया गया है या नहीं. इस जांच में, आठ चरणों में एक्सपोज़र बढ़ाया जाता है. साथ ही, मेज़र की गई चमक और उम्मीद की गई चमक की तुलना की जाती है. अनुमानित वैल्यू का हिसाब, इमेज की चमक से लगाया जाता है. इसमें ईवी (एक्सपोज़र वैल्यू) का इस्तेमाल नहीं किया जाता. अगर कैलकुलेट की गई वैल्यू, इमेज की असल वैल्यू की सीमा से ज़्यादा हो जाती हैं, तो अनुमानित वैल्यू संतृप्त हो जाएगी. अगर उम्मीद की गई वैल्यू और मेज़र की गई वैल्यू मेल नहीं खाती हैं या पांच चरणों में इमेज ज़्यादा एक्सपोज़ हो जाती हैं, तो जांच पूरी नहीं होती.
इन एपीआई की जांच की गई है:
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
पास: इमेज में पांच चरणों में, ज़्यादा एक्सपोज़र दिए बिना एक्सपोज़र बढ़ाया गया है.
test_ev_compensation_advanced_plot_means.png
test_ev_compensation_basic
यह जांच करता है कि ईवी के लिए मुआवजा, CONTROL_AE_COMPENSATION_STEP
की मदद से बनाई गई रेंज का इस्तेमाल करके लागू किया गया है या नहीं. हर कंपेसेशन वैल्यू के लिए आठ फ़्रेम कैप्चर किए जाते हैं.
इन एपीआई की जांच की गई है:
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
पास: ज़्यादा ईवी कंपेसेशन सेटिंग के साथ ल्यूमा में बढ़ोतरी को कैप्चर करता है. साथ ही, हर ईवी कंपेसेशन सेटिंग के लिए कैप्चर किए गए आठ फ़्रेम में ल्यूमा वैल्यू स्थिर होती हैं.
test_ev_compensation_basic.png
test_exposure_x_iso
यह जांच करता है कि ISO और एक्सपोज़र समय अलग-अलग होने पर, लगातार एक्सपोज़र मिलता है या नहीं. एक से ज़्यादा शॉट लेता है. इनमें आईएसओ और एक्सपोज़र का समय, एक-दूसरे के हिसाब से चुना जाता है.
नतीजों की चमक एक जैसी होनी चाहिए, लेकिन क्रम में इमेज में गड़बड़ी दिखनी चाहिए. यह पुष्टि करता है कि सैंपल पिक्सल की औसत वैल्यू एक-दूसरे के करीब हैं. यह पक्का करता है कि इमेज को 0 या 1 पर क्लैंप न किया गया हो. ऐसा करने पर, इमेज फ़्लैट लाइन की तरह दिखेंगी. अपनी कॉन्फ़िगरेशन फ़ाइल में debug
फ़्लैग सेट करके, टेस्ट को RAW इमेज के साथ भी चलाया जा सकता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: इमेज की चमक एक जैसी है, लेकिन ज़्यादा आईएसओ के साथ नॉइज़ बढ़ जाता है. जब ISO*एक्सपोज़र की वैल्यू, जांचे गए गेन स्पेस में एक जैसी रहती है, तो आरजीबी प्लैन फ़्लैट होते हैं.
काम न करने की वजह:
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 |
test_jpeg
यह जांच करना कि YUV फ़ॉर्मैट में बदली गई इमेज और डिवाइस की JPEG इमेज एक जैसी दिखती हैं या नहीं. टेस्ट में, इमेज के बीच के 10% हिस्से का इस्तेमाल करके आरजीबी वैल्यू का हिसाब लगाया जाता है. साथ ही, यह पुष्टि की जाती है कि दोनों वैल्यू एक जैसी हैं या नहीं.
इन एपीआई की जांच की गई है:
पास: हर इमेज के बीच आरजीबी का औसत अंतर 3% से कम है.
![]() |
![]() |
|
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
test_latching
यह जांच करता है कि FULL
और
LEVEL_3
कैमरों के लिए, सेटिंग (एक्सपोज़र और गेन) सही फ़्रेम पर लॉच होती हैं या नहीं. यह फ़ंक्शन, एक के बाद एक अनुरोधों का इस्तेमाल करके, शॉट की एक सीरीज़ लेता है. साथ ही, शॉट के बीच कैप्चर के अनुरोध पैरामीटर में बदलाव करता है. यह जांच करता है कि इमेज में सही प्रॉपर्टी मौजूद हैं या नहीं.
इन एपीआई की जांच की गई है:
पास: इमेज [2, 3, 6, 8, 10, 12, 13] में आईएसओ या एक्सपोज़र बढ़ा है और 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
यह जांच करता है कि डिवाइस पर प्रोसेसिंग को लीनियर पिक्सल में बदला जा सकता है या नहीं. एक ही टारगेट पर फ़ोकस करके, डिवाइस से शॉट का एक सिलसिला कैप्चर करता है.
इन एपीआई की जांच की गई है:
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 में की जाती है.
इन एपीआई की जांच की गई है:
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.*
पैरामीटर लागू होते हैं या नहीं.
अलग-अलग ट्रांसफ़ॉर्म और गेन वैल्यू के साथ शॉट लेता है और यह जांचता है कि वे अलग-अलग दिखते हैं या नहीं. आउटपुट को ज़्यादा से ज़्यादा लाल या नीला बनाने के लिए, ट्रांसफ़ॉर्म और गेन चुने जाते हैं. लीनियर टोनमैप का इस्तेमाल करता है. टोन मैपिंग एक ऐसी तकनीक है जिसका इस्तेमाल इमेज प्रोसेसिंग में किया जाता है. इससे रंगों के एक सेट को दूसरे सेट पर मैप किया जाता है, ताकि हाई डाइनैमिक रेंज वाली इमेज को ऐसे मीडियम में दिखाया जा सके जिसकी डाइनैमिक रेंज सीमित हो.
इन एपीआई की जांच की गई है:
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
पैरामीटर लागू है या नहीं. मैन्युअल तरीके से एक्सपोज़र को गहरे रंग पर सेट करता है, ताकि यह साफ़ तौर पर पता चल सके कि फ़्लैश चालू हुआ है या नहीं. साथ ही, यह लीनियर टोनमैप का इस्तेमाल करता है. टाइल इमेज के साथ बीच में मौजूद जगह की जांच करके यह पता लगाया जाता है कि क्या फ़्लैश चालू हुआ है या नहीं.
इन एपीआई की जांच की गई है:
पास: टाइल इमेज के बीच में बड़ा ग्रेडिएंट है, जिसका मतलब है कि फ़्लैश ट्रिगर हुआ.
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
पैरामीटर सही तरीके से लागू होता है या नहीं. कम रोशनी में कैमरे से इमेज कैप्चर करना. यह एनालॉग गेन का इस्तेमाल करता है, ताकि यह पक्का किया जा सके कि कैप्चर की गई इमेज में नॉइज़ न हो. एनआर बंद, "तेज़", और "अच्छी क्वालिटी" के लिए, तीन इमेज कैप्चर की जाती हैं. यह कम गेन और एनआर बंद होने पर भी इमेज कैप्चर करता है. साथ ही, इसके वैरिएंस का इस्तेमाल बेसलाइन के तौर पर करता है. एसएनआर (सिग्नल-टू-नॉइज़ रेशियो) जितना ज़्यादा होगा, इमेज की क्वालिटी उतनी ही बेहतर होगी.
इन एपीआई की जांच की गई है:
पास: शोर कम करने के अलग-अलग मोड के हिसाब से, एसएनआर अलग-अलग होता है. यह नीचे दिए गए ग्राफ़ की तरह ही काम करता है.
test_param_noise_reduction_plot_SNRs.png
0: बंद, 1: तेज़, 2: एचक्यू, 3: कम , 4: ज़ेडएसएल
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
पैरामीटर लागू है या नहीं.
इन एपीआई की जांच की गई है:
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 चैनल पर अलग-अलग टोनमैप कर्व लागू करता है. साथ ही, यह जांच करता है कि आउटपुट इमेज में उम्मीद के मुताबिक बदलाव हुए हैं या नहीं. इस टेस्ट में दो टेस्ट शामिल हैं, test1 और test2.
इन एपीआई की जांच की गई है:
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 में ज़्यादा तीव्र ग्रेडिएंट है. n=1 इमेज के लिए G (हरा) चैनल ज़्यादा चमकीला है.
- test2: एक ही टोनमैप, लेकिन अलग-अलग लंबाई. इमेज एक जैसी हैं.
![]() |
![]() |
|
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
test_post_raw_sensitivity_boost
यह जांच करता है कि RAW फ़ॉर्मैट में, बेहतर इमेज क्वालिटी के लिए, डेटा इकट्ठा करने की क्षमता को बढ़ाने की सुविधा चालू है या नहीं. अलग-अलग सेंसिटिविटी के साथ RAW और YUV इमेज का सेट कैप्चर करता है. साथ ही, RAW सेंसिटिविटी को बढ़ाने वाले कॉम्बिनेशन को पोस्ट करता है और यह जांच करता है कि आउटपुट पिक्सल का माध्य, अनुरोध सेटिंग से मेल खाता है या नहीं.
इन एपीआई की जांच की गई है:
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_sensitivity
यह फ़ंक्शन, गैन को बढ़ाकर रॉ इमेज का सेट कैप्चर करता है और नॉइज़ को मेज़र करता है. बर्स्ट मोड में सिर्फ़ रॉ फ़ोटो कैप्चर करता है.
इन एपीआई की जांच की गई है:
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
एक्सपोज़र के समय को बढ़ाकर, रॉ इमेज का सेट कैप्चर करता है और पिक्सल वैल्यू को मेज़र करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
पास: आईएसओ (गेन) बढ़ाने से पिक्सल, लाइट के लिए ज़्यादा संवेदनशील हो जाते हैं. इसलिए, प्लॉट बाईं ओर बढ़ जाता है.
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
यह बढ़ती संवेदनशीलता के साथ रॉ इमेज का एक सेट कैप्चर करता है और इमेज के बीच के 10% हिस्से में मौजूद गड़बड़ी (वैरिएंस) को मेज़र करता है. यह जांच करता है कि हर शॉट, पिछले शॉट से ज़्यादा शोर वाला है या नहीं.
इन एपीआई की जांच की गई है:
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
, अनुरोधों को फिर से प्रोसेस करने के लिए लागू किया जाता है.
कम रोशनी में कैमरे से फिर से प्रोसेस की गई इमेज कैप्चर करता है. यह पक्का करने के लिए कि कैप्चर की गई इमेज में नॉइज़ न हो, इसमें हाई एनालॉग गेन का इस्तेमाल किया जाता है. एनआर (नॉन-रेज़ोल्यूशन) बंद, "तेज़", और "अच्छी क्वालिटी" के लिए, फिर से प्रोसेस की गई तीन इमेज कैप्चर करता है. कम गेन और एनआईआर बंद करके, फिर से प्रोसेस की गई इमेज कैप्चर करता है. साथ ही, इस वैरिएंस का इस्तेमाल बेसलाइन के तौर पर करता है.
इन एपीआई की जांच की गई है:
पास: फ़ास्ट >= बंद, एचक्यू >= फ़ास्ट, एचक्यू >> बंद
सामान्य SNR बनाम NR_MODE प्लॉट
test_tonemap_sequence
अलग-अलग टोनमैप कर्व के साथ शॉट के क्रम की जांच करता है. लीनियर टोनमैप की मदद से, मैन्युअल तरीके से तीन शॉट कैप्चर करता है. डिफ़ॉल्ट टोनमैप की मदद से, तीन मैन्युअल शॉट कैप्चर करता है. यह एक-दूसरे के बाद वाले हर फ़्रेम के बीच के डेल्टा का हिसाब लगाता है.
इन एपीआई की जांच की गई है:
पास: तीन एक जैसे फ़्रेम के बाद, तीन एक जैसे फ़्रेम का एक अलग सेट है.
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
यह जांच करता है कि इमेज कैप्चर करने के लिए, रिपोर्ट किए गए सभी साइज़ और फ़ॉर्मैट काम करते हैं या नहीं. लीनियर टोनमैप के साथ मैन्युअल अनुरोध का इस्तेमाल करता है, ताकि image_processing_utils
मॉड्यूल से बदलने पर YUV और JPEG एक जैसे दिखें. इमेज डिफ़ॉल्ट रूप से सेव नहीं होतीं. हालांकि, debug_mode
को चालू करके इन्हें सेव किया जा सकता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
पास: सभी इमेज सेंटर में, आरजीबी में बदली गई इमेज के बीच ज़्यादा से ज़्यादा आरएमएस (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) का अंतर, सबसे ज़्यादा रिज़ॉल्यूशन वाली YUV इमेज के 3% के बराबर है.
test_yuv_jpeg_all.png
test_yuv_plus_dng
यह जांच करता है कि इमेज कैप्चर करने के लिए, बताए गए साइज़ और फ़ॉर्मैट काम करते हैं या नहीं.
इन एपीआई की जांच की गई है:
पास: टेस्ट पूरा हो जाता है और अनुरोध की गई इमेज दिखाता है.
test_yuv_plus_dng.jpg
test_yuv_plus_jpeg
YUV और JPEG, दोनों आउटपुट के तौर पर एक फ़्रेम कैप्चर करने की जांच करता है. लीनियर टोनमैप के साथ मैन्युअल अनुरोध का इस्तेमाल करता है, ताकि image_processing_utils
मॉड्यूल से बदलने पर YUV और JPEG एक जैसे दिखें.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
पास: YUV और JPEG इमेज एक जैसी हैं और इनमें आरएमएस (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) का अंतर 1% से कम है.
![]() |
![]() |
|
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
test_yuv_plus_raw
यह जांच करता है कि एक फ़्रेम को RAW/RAW10/RAW12 और YUV आउटपुट, दोनों के तौर पर कैप्चर किया जा सकता है या नहीं. लीनियर टोनमैप के साथ मैन्युअल अनुरोध का इस्तेमाल करता है, ताकि रॉ और YUV एक जैसे हों. आरजीबी में बदली गई इमेज के बीच के 10% हिस्से की आरजीबी वैल्यू की तुलना करता है. लॉगandroid.shading.mode
.
इन एपीआई की जांच की गई है:
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 और रॉ इमेज एक जैसी हैं और इनमें आरएमएस (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) का अंतर 3.5% से कम है.
![]() |
![]() |
|
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
scene2_a
scene2_a में तीन चेहरे हैं. इनके बैकग्राउंड का रंग स्लेटी है और कपड़े न्यूट्रल हैं. इन चेहरों को चुनने का मकसद, त्वचा के अलग-अलग रंगों को शामिल करना है. चेहरे की पहचान करने की सुविधा सही तरीके से काम करे, इसके लिए चार्ट का ओरिएंटेशन सही होना चाहिए.
scene2_a
test_autoframing
कैमरा डिवाइस के ऑटोफ़्रेमिंग व्यवहार की जांच करता है. ज़ूम करके वीडियो को इतना बड़ा कर दिया जाता है कि स्क्रीन पर कोई भी चेहरा न दिखे. इसके बाद, CaptureRequest
में AUTOFRAMING
को True
पर सेट करके, ऑटोफ़्रेमिंग मोड चालू किया जाता है. साथ ही, यह भी जांच की जाती है कि स्टेटस के एक जैसे होने पर, ओरिजनल सीन में मौजूद सभी चेहरों का पता लगाया जा सकता है या नहीं. इसका मतलब है कि CaptureResult
में AUTOFRAMING_STATE
को AUTOFRAMING_STATE_CONVERGED
पर सेट करने पर.
इन एपीआई की जांच की गई है:
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
पास: तीनों चेहरों की पहचान की गई.
test_display_p3
ColorSpaceProfiles
API का इस्तेमाल करके, Display P3 कैप्चर को JPEG में बदलने की जांच करता है. यह जांच करता है कि कैप्चर किए गए JPEG के हेडर में सही ICC प्रोफ़ाइल है या नहीं. साथ ही, यह भी जांच करता है कि इमेज में sRGB गैमट से बाहर के रंग हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
पास: JPEG में Display P3 ICC प्रोफ़ाइल और sRGB के गैमुट से बाहर के रंग शामिल हैं.
test_effects
यह कैमरे के उन इफ़ेक्ट के लिए फ़्रेम कैप्चर करता है जिनका इस्तेमाल किया जा सकता है. साथ ही, यह जांच करता है कि इफ़ेक्ट सही तरीके से जनरेट हुए हैं या नहीं. यह टेस्ट सिर्फ़ OFF
और MONO
इफ़ेक्ट की जांच करता है. हालांकि, काम करने वाले सभी इफ़ेक्ट के लिए इमेज सेव करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
पास: इफ़ेक्ट OFF
के साथ सीन की इमेज और इफ़ेक्ट MONO
पर सेट की गई एक मोनोक्रोम इमेज कैप्चर करता है.
test_effects_MONO.jpg
test_format_combos
आउटपुट फ़ॉर्मैट के अलग-अलग कॉम्बिनेशन की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
पास: सभी कॉम्बिनेशन कैप्चर हो गए हैं.
test_num_faces
चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरों की पहचान करता है.
test_num_faces_fd_mode_1.jpg
test_reprocess_uv_swap
यह जांच करता है कि YUV रीप्रोसेसिंग में, U और V प्लेन को स्वैप न किया गया हो. इसे पता लगाने के लिए, फिर से प्रोसेस की गई इमेज और फिर से प्रोसेस नहीं की गई इमेज के बीच के अंतर (एसएडी) का योग कैलकुलेट किया जाता है. अगर फिर से प्रोसेस किए गए कैप्चर के आउटपुट U और V प्लैन को स्वैप करने से एसएडी बढ़ जाता है, तो यह माना जाता है कि आउटपुट में सही U और V प्लैन हैं.
इन एपीआई की जांच की गई है:
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
scene2_b
test_num_faces
चेहरे के अलग-अलग सीन में, त्वचा की अलग-अलग रंगत के साथ चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरे ढूंढता है.
test_num_faces_fd_mode_1.jpg
test_yuv_jpeg_capture_sameness
सबसे बड़े सामान्य YUV और JPEG फ़ॉर्मैट का इस्तेमाल करके दो इमेज कैप्चर करता है. इन इमेज का आसपेक्ट रेशियो, सबसे बड़े JPEG फ़ॉर्मैट के आसपेक्ट रेशियो जैसा ही होता है. साथ ही, इनका रिज़ॉल्यूशन 1920x1440 से ज़्यादा नहीं होता.
jpeg.quality
को 100 पर सेट करता है और ड्यूअल प्लैटफ़ॉर्म के लिए अनुरोध कैप्चर करता है. यह दोनों इमेज को RGB ऐरे में बदल देता है और दोनों इमेज के बीच 3D रूट मीन स्क्वेयर (RMS) अंतर का हिसाब लगाता है.
साथ ही, इस टेस्ट से यह पुष्टि की जाती है कि स्ट्रीम के इस्तेमाल के सभी उदाहरणों के लिए YUV आउटपुट, STILL_CAPTURE
इस्तेमाल के उदाहरण के YUV आउटपुट से काफ़ी हद तक मिलते-जुलते हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
पास: STILL_CAPTURE
इस्तेमाल के उदाहरण के लिए, YUV और JPEG इमेज के बीच RMS (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) का अंतर 3% से कम है. साथ ही, इस्तेमाल के सभी उदाहरणों के लिए, YUV इमेज के बीच RMS का अंतर STILL_CAPTURE
इस्तेमाल के उदाहरण के लिए, YUV इमेज के बीच RMS का अंतर 10% से कम है.
scene2_c
test_num_faces
चेहरे के अलग-अलग सीन में, त्वचा की अलग-अलग रंगत के साथ चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरे ढूंढता है.
test_num_faces_fd_mode_1.jpg
test_jpeg_capture_perf_class
सीडीडी में सेक्शन 2.2.7.2 कैमरा में बताए गए मुताबिक, S परफ़ॉर्मेंस क्लास के लिए JPEG कैप्चर में लगने वाले समय की जांच करता है.
पास: 1080p रिज़ॉल्यूशन के लिए, कैमरा2 JPEG कैप्चर में लगने वाला समय 1000 मिलीसेकंड से कम होना चाहिए. यह समय, दोनों प्राइमरी कैमरों के लिए, ITS लाइटिंग कंडीशन (3000K) में CTS कैमरा परफ़ॉर्मेंस टेस्ट के हिसाब से मेज़र किया जाता है.
test_camera_launch_perf_class
सीडीडी में बताए गए सेक्शन 2.2.7.2 कैमरा के मुताबिक, S परफ़ॉर्मेंस क्लास के लिए कैमरे के लॉन्च होने में लगने वाले समय की जांच करता है.
पास: कैमरा चालू होने में लगने वाला समय (कैमरा चालू करने से लेकर, स्क्रीन पर पहली झलक दिखने में लगने वाला समय) 600 मिलीसेकंड से कम होना चाहिए. यह समय, दोनों मुख्य कैमरों के लिए, सीटीएस कैमरा परफ़ॉर्मेंस टेस्ट के तहत, रोशनी की आईटीएस स्थितियों (3000K) में मेज़र किया जाता है.
test_default_camera_hdr
यह जांच करता है कि कैमरे से डिफ़ॉल्ट रूप से, परफ़ॉर्मेंस क्लास 15 के लिए अल्ट्रा एचडीआर में फ़ोटो ली जा रही है या नहीं. इस बारे में सीडीडी के सेक्शन 2.2.7.2 कैमरा में बताया गया है.
पास: परफ़ॉर्मेंस क्लास 15 वाले डिवाइस के लिए, डिफ़ॉल्ट कैमरा पैकेज कैप्चर, अल्ट्रा एचडीआर होना चाहिए.
scene2_d
test_num_faces
चेहरे के अलग-अलग सीन में, त्वचा की अलग-अलग रंगत के साथ चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरे ढूंढता है.
scene2_e
test_continuous_picture
कैप्चर करने के अनुरोध की पहली सेटिंग में, 50 वीजीए रिज़ॉल्यूशन वाले फ़्रेम कैप्चर किए जाते हैं
android.control.afMode = 4 (CONTINUOUS_PICTURE).
इन एपीआई की जांच की गई है:
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
चेहरे के अलग-अलग सीन में, त्वचा की अलग-अलग रंगत के साथ चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरे ढूंढता है.
scene2_f
scene2_f में तीन चेहरे हैं. इनके बैकग्राउंड और कपड़े सफ़ेद हैं. चेहरों की त्वचा के रंग अलग-अलग हों और बैकग्राउंड के मुकाबले उनका कंट्रास्ट ज़्यादा हो.
scene2_f
test_num_faces
चेहरे के अलग-अलग सीन में, त्वचा की अलग-अलग रंगत के साथ चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरे ढूंढता है.
test_num_faces_fd_mode_1.jpg
scene3
Scene3, ISO12233 चार्ट का इस्तेमाल करता है. साथ ही, ज़्यादातर टेस्ट में चार्ट एक्सट्रैक्टर का तरीका इस्तेमाल करके, सीन में चार्ट ढूंढा जाता है. इस वजह से, सेव की गई ज़्यादातर इमेज में, सीन 1, 2 या 4 की इमेज की तरह बॉर्डर नहीं होते. इनमें सिर्फ़ चार्ट होता है. चार्ट फ़ाइंडर के सही तरीके से काम करने के लिए, चार्ट सही ओरिएंटेशन में होना चाहिए.
test_edge_enhancement
यह जांच करता है कि android.edge.mode
पैरामीटर सही तरीके से लागू किया गया है या नहीं. हर एज मोड के लिए, फिर से प्रोसेस न की गई इमेज कैप्चर करता है. साथ ही, आउटपुट इमेज की शार्पनेस और कैप्चर के नतीजे का मेटाडेटा दिखाता है. यह फ़ंक्शन, दिए गए एज मोड, संवेदनशीलता, एक्सपोज़र समय, फ़ोकस की दूरी, और आउटपुट के प्लैटफ़ॉर्म पैरामीटर के साथ, कैप्चर करने के अनुरोध को प्रोसेस करता है.
पास: HQ
मोड (2) OFF
मोड (0) से ज़्यादा शार्प है. FAST
मोड (1), OFF
मोड से बेहतर है. HQ
मोड, FAST
मोड के बराबर या उससे बेहतर है.
इन एपीआई की जांच की गई है:
इन कैमरा पैरामीटर पर असर पड़ा है:
EDGE_MODE
test_edge_enhancement_edge=0.jpg
test_edge_enhancement_edge=1.jpg (फास्ट मोड)
test_edge_enhancement_edge=2.jpg (अच्छी क्वालिटी वाला मोड)
test_flip_mirror
यह जांच करता है कि इमेज, सीडीडी सेक्शन 7.5.2 सामने वाला कैमरा [C-1-5] के मुताबिक सही तरीके से ओरिएंट की गई है या नहीं.
मिरर की गई, फ़्लिप की गई या घुमाई गई इमेज की पहचान, बीच में मौजूद डायमंड की सुविधा से की जा सकती है.
पास: इमेज को फ़्लिप, मिरर या घुमाया नहीं गया है.
test_flip_mirror_scene_patch.jpg
test_imu_drift
यह जांच करता है कि डिवाइस के स्थिर होने और हाई डेफ़िनिशन में झलक कैप्चर करने के दौरान, इनर्शियल मेज़रमेंट यूनिट (आईएमयू) का आउटपुट 30 सेकंड तक स्थिर है या नहीं.
इन एपीआई की जांच की गई है:
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 रेडियन से कम है.
- (अभी ज़रूरी नहीं है) जाइरो का ड्रिफ़्ट, हर सेकंड में एक डिग्री से कम हो.
test_imu_drift_gyro_drift.png
test_imu_drift_rotation_vector_drift.png
test_landscape_to_portrait
यह जांच करता है कि लैंडस्केप से पोर्ट्रेट में बदलने की सुविधा, लैंडस्केप ओरिएंटेड सेंसर के लिए सही तरीके से काम करती है या नहीं.
इन एपीआई की जांच की गई है:
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वें फ़्रेम के आस-पास, लेंस के हिलने की वजह से फ़ोटो की क्वालिटी खराब हो गई है. लेंस की आखिरी पोज़िशन पर पहुंचने के बाद, इमेज की क्वालिटी में कोई बदलाव नहीं होता. लेंस मूवमेंट फ़्लैग को उन सभी फ़्रेम में दिखाया जाना चाहिए जिनमें फ़ोकस की डिग्री, सबसे पहले कुछ फ़्रेम में मध्यम से ज़्यादा और आखिरी कुछ फ़्रेम में कम से कम हो. यह ज़रूरी नहीं है कि लेंस किस फ़्रेम में हिले: यह देखा जाता है कि लेंस हिलने पर, मूवमेंट फ़्लैग का इस्तेमाल किया गया है या नहीं.
इन एपीआई की जांच की गई है:
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
है.
काम न करने के तरीके:
test_log.DEBUG
मेंlens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) का इस्तेमाल सिर्फ़ उन फ़्रेम में किया जाता है जिनमें फ़ोटो की क्वालिटी में बदलाव नहीं हो रहा है.test_log.DEBUG
मेंlens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) वाले फ़्रेम की क्वालिटी, सबसे बेहतर फ़ोकल डिस्टेंस वाले शुरुआती फ़्रेम या सबसे कम फ़ोकल डिस्टेंस वाले आखिरी फ़्रेम की तुलना में अलग होती है.
test_reprocess_edge_enhancement
यह जांच करता है कि किनारे को बेहतर बनाने के लिए, इस्तेमाल किए जा सकने वाले फिर से प्रोसेस करने के तरीके सही तरीके से काम करते हैं या नहीं. यह किसी दिए गए रीप्रोसेस एज मोड के साथ कैप्चर करने के अनुरोध को प्रोसेस करता है. साथ ही, रीप्रोसेस एज मोड बंद होने पर, कैप्चर करने के लिए अलग-अलग मोड की तुलना करता है.
इन एपीआई की जांच की गई है:
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
सीन 4 में, स्क्वेयर के अंदर सफ़ेद बैकग्राउंड पर काला गोला है.
scene4 में मौजूद टेस्ट, अलाइनमेंट के हिसाब से संवेदनशील हो सकते हैं. इसलिए, 15 से शुरू होने वाले वर्शन में, टूल डायरेक्ट्री में check_alignment.py
का इस्तेमाल करके, डीयूटी और चार्ट के अलाइनमेंट की जांच की जा सकती है.
scene4
test_30_60fps_preview_fov_match
यह जांच करता है कि 30 एफ़पीएस और 60 एफ़पीएस वाले झलक वीडियो का फ़ील्ड ऑफ़ व्यू (एफ़ओवी) एक जैसा है या नहीं. इस जांच में दो वीडियो कैप्चर किए जाते हैं. पहला वीडियो 30 एफ़पीएस और दूसरा 60 एफ़पीएस पर रिकॉर्ड किया जाता है. हर वीडियो से एक फ़्रेम चुना जाता है और उसका विश्लेषण किया जाता है, ताकि यह पक्का किया जा सके कि दोनों वीडियो में फ़ील्ड ऑफ़ व्यू में हुए बदलाव, तय शर्तों के मुताबिक हैं या नहीं. यह जांच करता है कि सर्कल का आसपेक्ट रेशियो एक जैसा रहे, सर्कल का सेंटर एक जैसा रहे, और सर्कल का दायरा एक जैसा रहे.
इन एपीआई की जांच की गई है:
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 एफ़पीएस और 60 एफ़पीएस वाले वीडियो के बीच आसपेक्ट रेशियो में ज़्यादा से ज़्यादा 7.5% का बदलाव हुआ है
काम न करने के तरीके:
- 30 एफ़पीएस वाले वीडियो में मौजूद सर्कल का साइज़, 60 एफ़पीएस वाले वीडियो में मौजूद सर्कल के साइज़ से काफ़ी अलग है.
- प्रोसेसिंग पाइपलाइन की वजह से, कैप्चर की गई इमेज में मौजूद सर्कल का आकार बिगड़ गया है.
- कैप्चर की गई इमेज में सर्कल को काटा गया है. ऐसा, आसपेक्ट रेशियो के लिए किए गए अनुरोध की वजह से हुआ है. इस अनुरोध की वजह से, इमेज की ऊंचाई या चौड़ाई कम हो गई है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में, उसका रेफ़्लेक्टन दिख रहा है. साथ ही, वह पूरी तरह से भरा हुआ नहीं दिख रहा है.
test_aspect_ratio_and_crop
यह जांच करता है कि इमेज पाइपलाइन में, इमेज को अनचाहे तरीके से डिस्टॉर्ट या काटा गया है या नहीं. सभी फ़ॉर्मैट में सर्कल की फ़ोटो लेता है. यह पुष्टि करता है कि सर्कल का आकार बिगड़ा हुआ नहीं है, वह इमेज के बीच में है, और अलग-अलग आसपेक्ट रेशियो या रिज़ॉल्यूशन के साथ उसका साइज़ गलत तरीके से नहीं बदलता.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
पास: इमेज स्ट्रेच नहीं हुई हैं, इमेज के बीच का अंतर 3% से ज़्यादा नहीं है, और ज़्यादा से ज़्यादा फ़ील्ड ऑफ़ व्यू (FOV) को बनाए रखा गया है.
काम न करने के तरीके:
- कैमरा, कैप्चर किए गए सीन के बीच में टैबलेट पर दिखाए गए सर्कल के साथ अलाइन नहीं है.
- प्रोसेसिंग पाइपलाइन की वजह से, कैप्चर की गई इमेज में मौजूद सर्कल का आकार बिगड़ गया है.
- इमेज पाइपलाइन में, कम रिज़ॉल्यूशन वाली इमेज को दो बार काटा जाता है. इससे, हाई और लो रिज़ॉल्यूशन वाली इमेज के बीच फ़ील्ड ऑफ़ व्यू (एफ़ओवी) अलग-अलग होता है.
- कैप्चर की गई इमेज में सर्कल का काटा गया हिस्सा, आसपेक्ट रेशियो के लिए किए गए अनुरोध की वजह से है. इस अनुरोध की वजह से, इमेज की ऊंचाई या चौड़ाई कम हो जाती है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में, उसका रेफ़्लेक्टन दिख रहा है. साथ ही, वह पूरी तरह से भरा हुआ नहीं दिख रहा है.
test_multi_camera_alignment
यह कई कैमरे वाले सिस्टम के लिए, कैमरे की पोज़िशनिंग से जुड़े कैलिब्रेशन पैरामीटर की जांच करता है. मल्टी-कैमरा फ़िज़िकल सब-कैमरों का इस्तेमाल करके, किसी एक फ़िज़िकल कैमरे से फ़ोटो ली जाती है. सर्कल का केंद्र ढूंढता है. हर कैमरे के लिए, सर्कल के बीच को दुनिया के निर्देशांक में प्रोजेक्ट करता है. दुनिया के निर्देशांक में, कैमरों के सर्कल के बीच के अंतर की तुलना करता है. यह वर्ल्ड कोऑर्डिनेट को फिर से पिक्सल कोऑर्डिनेट में बदलता है. साथ ही, पुष्टि करने के लिए, ओरिजनल कोऑर्डिनेट से तुलना करता है. सर्कल के साइज़ की तुलना करके यह पता लगाता है कि कैमरों के फ़ोकल लेंथ अलग-अलग हैं या नहीं.
इन एपीआई की जांच की गई है:
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 टेस्ट रिग की मदद से, वाइड और अल्ट्रा-वाइड कैमरा सिस्टम की जांच करना. ज़्यादा जानकारी के लिए, कैमरे के ITS-in-a-box से जुड़ा अक्सर पूछा जाने वाला पहला सवाल देखें.
test_preview_aspect_ratio_and_crop
स्टिल कैप्चर के लिए test_aspect_ratio_and_crop टेस्ट की तरह ही, यह टेस्ट भी झलक दिखाने के लिए इस्तेमाल किए जा सकने वाले फ़ॉर्मैट की जांच करता है. इससे यह पक्का किया जाता है कि झलक दिखाने वाले फ़्रेम को गलत तरीके से स्ट्रेच या काटा न गया हो. यह पुष्टि करता है कि सर्कल का आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात नहीं बदलता, काटी गई इमेज में सर्कल फ़्रेम के बीच में रहता है, और सर्कल का साइज़ एक जैसे फ़ॉर्मैट या अलग-अलग रिज़ॉल्यूशन (फ़ील्ड ऑफ़ व्यू की जांच) के लिए नहीं बदलता.
इन एपीआई की जांच की गई है:
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% से ज़्यादा का अंतर नहीं होता, और ज़्यादा से ज़्यादा फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को बनाए रखा जाता है.
test_preview_stabilization_fov
यह जांच करता है कि झलक के लिए कौनसे साइज़ इस्तेमाल किए जा सकते हैं, ताकि यह पक्का किया जा सके कि फ़ील्ड ऑफ़ व्यू को सही तरीके से काटा गया है.
इस टेस्ट में दो वीडियो कैप्चर किए जाते हैं. पहला वीडियो, झलक को स्टेबलाइज़ करने की सुविधा ON
के साथ और दूसरा वीडियो, झलक को स्टेबलाइज़ करने की सुविधा OFF
के साथ. हर वीडियो से एक प्रतिनिधि फ़्रेम चुना जाता है और उसका विश्लेषण किया जाता है, ताकि यह पक्का किया जा सके कि दोनों वीडियो में फ़ील्ड ऑफ़ व्यू में हुए बदलाव, तय किए गए मानक के मुताबिक हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
पास: सर्कल का आसपेक्ट रेशियो लगभग एक जैसा रहता है, सर्कल का केंद्र एक जैसा रहता है, और सर्कल का साइज़ 20% से ज़्यादा नहीं बदलता.
test_video_aspect_ratio_and_crop
सभी वीडियो फ़ॉर्मैट में, स्क्वेयर के अंदर सर्कल के तौर पर वीडियो रिकॉर्ड करता है. यह मुख्य फ़्रेम को निकालता है और पुष्टि करता है कि सर्कल का आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात नहीं बदलता है. साथ ही, काटी गई इमेज में सर्कल को बीच में रखा जाता है और सर्कल का साइज़, एक जैसे फ़ॉर्मैट या अलग-अलग रिज़ॉल्यूशन (फ़ील्ड ऑफ़ व्यू की जांच) के लिए नहीं बदलता है.
इन एपीआई की जांच की गई है:
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
Scene5 के लिए, एक जैसी रोशनी वाला स्लेटी रंग का सीन होना ज़रूरी है. ऐसा करने के लिए, कैमरे के लेंस पर डिफ़्यूज़र लगाया जाता है. हमारा सुझाव है कि आप इस डिफ़्यूज़र का इस्तेमाल करें:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
वीडियो रिकॉर्ड करने के लिए, कैमरे के सामने डिफ़्यूज़र अटैच करें और कैमरे को करीब 2,000 लक्स के लाइटिंग सोर्स पर फ़ोकस करें. सीन 5 के लिए कैप्चर की गई इमेज में, रोशनी ऐसी होनी चाहिए जिससे कोई चीज़ साफ़ न दिखे. यहां सैंपल इमेज दी गई है:
scene5 capture
test_lens_shading_and_color_uniformity
यह जांच करता है कि लेंस के शेडिंग करेक्शन को सही तरीके से लागू किया गया है या नहीं. साथ ही, यह भी जांच करता है कि एक ही रंग के एक जैसे सीन का रंग समान रूप से डिस्ट्रिब्यूट किया गया है या नहीं. यह टेस्ट, ऑटो 3A के साथ YUV फ़्रेम पर किया जाता है. लेंस शेडिंग का आकलन, y चैनल के आधार पर किया जाता है. यह दिए गए हर सैंपल ब्लॉक के लिए, औसत y वैल्यू को मेज़र करता है. साथ ही, सेंटर y वैल्यू की तुलना करके यह तय करता है कि जांच पास हुई है या नहीं. कलर यूनिफ़ॉर्मिटी टेस्ट का आकलन, r/g और b/g स्पेस में किया जाता है.
इन एपीआई की जांच की गई है:
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
का इस्तेमाल करके, डीयूटी और चार्ट के अलाइनमेंट की जांच की जा सकती है.
scene6
test_in_sensor_zoom
कैमरे के सेंसर में ज़ूम करने की सुविधा के काम करने के तरीके की जांच करता है. इससे काटी गई RAW इमेज मिलती हैं.
स्ट्रीम के इस्तेमाल के उदाहरण को CROPPED_RAW
पर सेट करने पर, ज़ूम रेंज में दो कैप्चर लिए जाते हैं. इनमें, फ़ील्ड ऑफ़ व्यू (FoV) वाली RAW इमेज और काटी गई RAW इमेज शामिल होती है. यह टेस्ट, इमेज को RGB ऐरे में बदल देता है. साथ ही, पूरी साइज़ वाली क्रॉप की गई RAW इमेज को SCALER_RAW_CROP_REGION
के बताए गए साइज़ पर डाउनस्केल करता है. इसके बाद, दोनों इमेज के बीच के 3D रूट मीन स्क्वेयर (RMS) अंतर का हिसाब लगाता है.
इन एपीआई की जांच की गई है:
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
पास: काटे गए हिस्से को छोटा करके बनाई गई RAW इमेज और पूरे फ़ील्ड ऑफ़ व्यू (एफ़ओवी) वाली RAW इमेज के बीच 3D रूट मीन स्क्वेयर (आरएमएस) का अंतर, टेस्ट में सेट किए गए थ्रेशोल्ड से कम है.
test_zoom
कैमरे के ज़ूम करने के तरीके की जांच करता है. ज़ूम रेंज में कैप्चर लेता है और यह जांच करता है कि कैमरे के ज़ूम इन करने पर, सर्कल बड़े हो जाते हैं या नहीं. हर फ़ॉर्मैट (YUV, JPEG) के लिए, 3A को कन्वर्ज़ करने और कैप्चर लेने के लिए, एक ही कैमरा कैप्चर सेशन का इस्तेमाल किया जाता है.
इन एपीआई की जांच की गई है:
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, केंद्र के सबसे नज़दीक सर्कल का कॉन्टूर ढूंढने के लिए.
test_low_latency_zoom
यह कैमरे के कम इंतज़ार वाले ज़ूम व्यवहार की जांच करता है. android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
की मदद से, ज़ूम रेंज में कैप्चर लेता है. साथ ही, यह जांच करता है कि आउटपुट इमेज में मौजूद सर्कल, कैप्चर के मेटाडेटा में मौजूद ज़ूम रेशियो से मेल खाते हैं या नहीं. 3A और टेक कैप्चर को एक साथ लाने के लिए, कैमरे के उसी कैप्चर सेशन का इस्तेमाल किया जाता है.
इन एपीआई की जांच की गई है:
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
यह जांच करता है कि रिकॉर्डिंग और ज़ूम करते समय, वीडियो की झलक और वीडियो आउटपुट एक ही आउटपुट दिखाते और रिकॉर्ड करते हैं या नहीं. अलग-अलग ज़ूम रेशियो पर, केंद्र के सबसे करीब मौजूद सर्कल के साइज़ का हिसाब लगाता है. साथ ही, यह भी जांचता है कि ज़ूम रेशियो बढ़ने पर, सर्कल का साइज़ बढ़ता है या नहीं.
इन एपीआई की जांच की गई है:
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
यह जांच करता है कि हर झलक फ़्रेम का ज़ूम रेशियो, उससे जुड़े कैप्चर मेटाडेटा से मेल खाता है या नहीं. यह जांच, ज़ूम रेंज के दौरान झलक फ़्रेम लेती है और बीच में मौजूद सर्कल के कॉन्टूर का पता लगाती है. इसके बाद, जांच की जाती है कि चुना गया गोला बड़ा हो गया है या नहीं. साथ ही, यह भी देखा जाता है कि कैमरे के ज़ूम इन करने पर, गोले का बीच का हिस्सा इमेज के बीच से हट गया है या नहीं.
इन एपीआई की जांच की गई है:
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
में दी गई ज़ूम रेशियो की रेंज तक पहुंचा जा सकता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
पास: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
में दी गई, काम करने वाली हर SessionConfiguration
के लिए, ज़ूम करने के कम से कम और ज़्यादा से ज़्यादा अनुपात, दोनों तक पहुंचा जा सकता है.
scene7
Scene7 एक आयताकार फ़्रेम है, जिसे चार बराबर क्वाड्रेंट में बांटा गया है. हर क्वाड्रेंट में एक अलग रंग भरा गया है. आयत के बीच में, तीखेपन की जांच के लिए एक तिरछा किनारा चार्ट होता है. चार ArUco मार्कर, रेक्टैंगल के चार बाहरी कोनों के साथ अलाइन किए जाते हैं. इससे, अलग-अलग ज़ूम रेशियो पर मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने में मदद मिलती है.
scene7
test_multi_camera_switch
इस टेस्ट से यह पुष्टि की जाती है कि अलग-अलग ज़ूम रेशियो में झलक रिकॉर्ड करने के दौरान, अल्ट्रा-वाइड (UW) और वाइड (W) लेंस के बीच स्विच करने पर, आरजीबी वैल्यू एक जैसी होती हैं.
यह जांच, पहले से तय की गई रेंज में अलग-अलग ज़ूम रेशियो का इस्तेमाल करके, डाइनैमिक झलक रिकॉर्डिंग करती है. साथ ही, उस पॉइंट की पहचान करती है जहां फ़िज़िकल कैमरा बदलता है. यह पॉइंट, UW से W लेंस में बदलाव का निशान होता है.
क्रॉसओवर पॉइंट पर और उससे पहले कैप्चर किए गए फ़्रेम का विश्लेषण, ऑटो एक्सपोज़र (एई), ऑटो व्हाइट बैलेंस (एडब्ल्यूबी), और ऑटोफ़ोकस (एएफ़) के लिए किया जाता है.
एई जांच से यह पक्का होता है कि यूडब्ल्यू और डब्ल्यू लेंस, दोनों की इमेज के लिए ल्यूमा में बदलाव, उम्मीद के मुताबिक रेंज में है. AWB जांच से यह पुष्टि होती है कि UW और W लेंस, दोनों की इमेज के लिए R/G और B/G के अनुपात, थ्रेशोल्ड वैल्यू के अंदर हैं. ऑटो फ़ोकस की जांच में, UW और W लेंस इमेज के बीच के औसत ग्रेडिएंट मैग्नीट्यूड के आधार पर, तीखेपन के अनुमान की वैल्यू का आकलन किया जाता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
पास: जांच पास होने के लिए, AE, AWB, और AF की सभी जांचें पास होनी चाहिए. हर जांच के लिए ज़रूरी शर्तें यहां दी गई हैं:
- एई की जांच: UW और W लेंस की इमेज के बीच ल्यूमा में बदलाव 0.5% से कम होना चाहिए.
- AWB की जांच: UW और W लेंस की इमेज के लिए R/G और B/G वैल्यू के बीच का अंतर 0.5% से कम होना चाहिए.
- ऑटो फ़ोकस की जांच: UW और W लेंस की इमेज के बीच इमेज की शार्पनेस में बदलाव 2% से कम होना चाहिए.
scene8
Scene8 एक आयताकार फ़्रेम है, जिसे चार बराबर हिस्सों में बांटा गया है. हर हिस्से में एक अलग एक्सपोज़र या अलग रंग के शेड (नीला शेड, ज़्यादा एक्सपोज़र, कम एक्सपोज़र, पीला शेड) के साथ लिया गया पोर्ट्रेट है. मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने के लिए, चार ArUco मार्कर को रेक्टैंगल के चार बाहरी कोनों के साथ अलाइन किया जाता है.
scene8
test_ae_awb_regions
यह जांच करता है कि ऑटो एक्सपोज़र (AE) और ऑटो व्हाइट बैलेंस (AWB) के अलग-अलग क्षेत्रों में रिकॉर्डिंग की झलक देखते समय, आरजीबी और ल्यूमा वैल्यू अलग-अलग होती हैं या नहीं.
इस टेस्ट में, आठ सेकंड की झलक रिकॉर्ड की जाती है. इसमें हर क्वाड्रेंट पर दो सेकंड के लिए, एई और एडब्ल्यूबी मेज़रमेंट किया जाता है. इसके बाद, यह जांच हर इलाके की झलक वाली रिकॉर्डिंग से एक फ़्रेम निकालती है. साथ ही, निकाले गए फ़्रेम का इस्तेमाल करके, एई और एडब्ल्यूबी की ये जांच करती है:
- एई जांच: यह पुष्टि करता है कि कम एक्सपोज़र वाले क्षेत्र को मेज़र करने वाले फ़्रेम की ल्यूमा वैल्यू, ज़्यादा एक्सपोज़र वाले क्षेत्र को मेज़र करने वाले फ़्रेम की ल्यूमा वैल्यू से 1% से ज़्यादा है. इससे यह पुष्टि होती है कि किसी गहरे हिस्से को मेज़र करते समय, इमेज को ज़्यादा चमकदार किया जाता है.
- ऑटो वाइट बैलेंस (एडब्ल्यूबी) की जांच: यह पुष्टि करता है कि नीले रंग के मेज़रमेंट वाले फ़्रेम में, इमेज की औसत आरजीबी वैल्यू के लाल रंग और नीले रंग के अनुपात में, पीले रंग के मेज़रमेंट वाले फ़्रेम से 2% ज़्यादा है. इससे यह पुष्टि होती है कि पीले (गर्म) या नीले (ठंडे) रंग वाले हिस्से को मेज़र करते समय, इमेज की आरजीबी वैल्यू संतुलित है.
इन एपीआई की जांच की गई है:
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, दोनों जांच पास हो गई हैं.
काम न करने के तरीके:
इस टेस्ट के लिए, चारों ArUco मार्कर का सही तरीके से पता लगाना ज़रूरी है. अगर शुरुआती डिटेक्शन नहीं हो पाता है, तो सिस्टम इमेज के ब्लैक ऐंड व्हाइट वर्शन का इस्तेमाल करके, दूसरी बार डिटेक्शन की कोशिश करता है. यहां दी गई ग्रेस्केल इमेज, प्रोसेस करने के दूसरे चरण को दिखाती है.
scene9
Scene9 में, अलग-अलग साइज़ और रंग के हज़ारों सर्कल होते हैं. इनका इस्तेमाल करके, JPEG कंप्रेशन एल्गोरिदम की जांच के लिए ऐसा सीन बनाया जाता है जिसे दोबारा इस्तेमाल करने की संभावना बहुत कम होती है.
scene9
test_jpeg_high_entropy
यह जांच करता है कि कैमरे का JPEG कंप्रेसन, ज़्यादा एन्ट्रापी और JPEG क्वालिटी फ़ैक्टर को 100% पर सेट करके, scene9 पर काम करता है या नहीं. ज़ूम फ़ैक्टर बढ़ाया जाता है, ताकि यह पक्का किया जा सके कि टैबलेट पर दिखाया गया सीन, कैमरे के फ़ील्ड ऑफ़ व्यू में दिखे.
इन एपीआई की जांच की गई है:
पास: JPEG फ़ाइल को सही तरीके से कंप्रेस किया गया है, डिस्क पर लिखा गया है, और उससे पढ़ा गया है.
test_jpeg_quality
कैमरे के JPEG कंप्रेस करने की क्वालिटी की जांच करता है. android.jpeg.quality
की मदद से, JPEG की क्वालिटी में बदलाव करें और पक्का करें कि क्वांटाइज़ेशन टेबल सही तरीके से बदलें.
इन एपीआई की जांच की गई है:
पास: क्वालिटी बढ़ने के साथ, क्वांटाइज़ेशन मैट्रिक कम हो जाती है. (मैट्रिक्स, डिवीज़न फ़ैक्टर को दिखाती है.)
Pixel 4 के रियर कैमरे के ल्यूमा/क्रोमा DQT मैट्रिक के औसत बनाम JPEG क्वालिटी
जांच न हो पाने का उदाहरण
ध्यान दें कि बहुत खराब क्वालिटी वाली इमेज (jpeg.quality < 50) के लिए, क्वांटिज़ेशन मैट्रिक्स में कंप्रेस करने की सुविधा में कोई बढ़ोतरी नहीं होती.
scene_video
scene_video
सीन, वीडियो का सीन है. इसमें चार अलग-अलग रंग के गोले हैं, जो सफ़ेद रंग के बैकग्राउंड पर अलग-अलग फ़्रेम रेट पर आगे-पीछे मूव कर रहे हैं.
scene_video
test_preview_frame_drop
यह जांच करता है कि अनुरोध किए गए झलक फ़्रेम रेट को डाइनैमिक सीन के साथ बनाए रखा गया है या नहीं. यह जांच उन सभी कैमरों पर की जाती है जिन्हें तीसरे पक्ष के ऐप्लिकेशन ऐक्सेस कर सकते हैं.
इन एपीआई की जांच की गई है:
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
scene_extensions
टेस्ट, कैमरा एक्सटेंशन के लिए होते हैं. इनमें Camera ITS-in-a-Box का इस्तेमाल करना ज़रूरी है, क्योंकि इनमें टेस्टिंग एनवायरमेंट को सटीक तरीके से कंट्रोल करने की ज़रूरत होती है. इसके अलावा, लाइट के सभी लीकेज को कंट्रोल करना ज़रूरी है. इसके लिए, टेस्ट रिग, डीयूटी, और टैबलेट को ड्रॉप क्लॉथ से ढकना पड़ सकता है. साथ ही, डीयूटी की सामने वाली स्क्रीन से लाइट लीक होने की समस्या को भी ठीक करना पड़ सकता है.
scene_hdr
scene_hdr
सीन में बाईं ओर एक पोर्ट्रेट और दाईं ओर कम कंट्रास्ट वाला क्यूआर कोड है.
scene_hdr
test_hdr_extension
एचडीआर एक्सटेंशन की जांच करता है. एक्सटेंशन चालू होने और न होने पर, क्यूआर कोड की इमेज कैप्चर करता है. साथ ही, यह भी जांच करता है कि एक्सटेंशन की मदद से क्यूआर कोड को आसानी से स्कैन किया जा सकता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
पास: HDR एक्सटेंशन, क्यूआर कोड का पता लगाने के लिए, कंट्रास्ट में होने वाले बदलावों की संख्या को कम करता है या क्यूआर कोड में ग्रेडिएंट को कम करता है.
scene_low_light
scene_low_light
सीन में, काले रंग के बैकग्राउंड पर स्लेटी रंग के अलग-अलग शेड वाले स्क्वेयर का ग्रिड है. साथ ही, स्क्वेयर के ग्रिड को लाल रंग की आउटलाइन से बांध दिया गया है. स्क्वेयर को हिल्बर्ट कर्व ओरिएंटेशन में व्यवस्थित किया जाता है.
scene_low_light
test_night_extension
नाइट एक्सटेंशन की जांच करता है. एक्सटेंशन चालू होने पर कैप्चर लेता है और ये काम करता है:
- 20 स्क्वेयर की मौजूदगी का पता लगाता है
- हर स्क्वेयर के बीच के ल्यूमा का हिसाब लगाता है
- पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू का हिसाब लगाता है. यह हिसाब, हिल्बर्ट कर्व ग्रिड ओरिएंटेशन के हिसाब से लगाया जाता है
- यह फ़ंक्शन, एक-दूसरे से जुड़े स्क्वेयर की ल्यूमा वैल्यू में अंतर का हिसाब लगाता है. उदाहरण के लिए, स्क्वेयर 2 - स्क्वेयर 1 से लेकर स्क्वेयर 5 और 6 - स्क्वेयर 5 तक. साथ ही, पांच अंतरों का औसत भी निकालता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
पास: पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 85 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 17 होना चाहिए.
नीचे दिए गए ल्यूमिनेंस प्लॉट में, टेस्ट पास होने का नतीजा कैसा दिखता है, यह दिखाया गया है.
test_low_light_boost_extension
कम रोशनी वाले मोड में ऑटो इमेज एक्सपोज़र (एई) की जांच करता है. अगर Camera2, कम रोशनी में बेहतर एई मोड के साथ काम करता है, तो यह जांच Camera2 के लिए की जाती है. अगर नाइट मोड कैमरा एक्सटेंशन काम करता है और एक्सटेंशन में कम रोशनी में बेहतर एई मोड काम करता है, तो यह जांच नाइट मोड कैमरा एक्सटेंशन के लिए भी की जाती है. यह टेस्ट, एई मोड को कम रोशनी वाले मोड पर सेट करता है. साथ ही, झलक से एक फ़्रेम लेता है और ये काम करता है:
- 20 बॉक्स की मौजूदगी का पता लगाता है
- हर बॉक्स के हिसाब से ल्यूमा का हिसाब लगाता है
- पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू का हिसाब लगाता है. यह हिसाब, हिल्बर्ट कर्व ग्रिड ओरिएंटेशन के हिसाब से लगाया जाता है
- यह फ़ंक्शन, एक-दूसरे से जुड़े स्क्वेयर की ल्यूमा वैल्यू में अंतर का हिसाब लगाता है. उदाहरण के लिए, स्क्वेयर 2 - स्क्वेयर 1 से लेकर स्क्वेयर 5 और 6 - स्क्वेयर 5 तक. साथ ही, पांच अंतरों का औसत भी निकालता है.
इन एपीआई की जांच की गई है:
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
पास: पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 70 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 17 होना चाहिए.
scene_flash
scene_flash
टेस्ट के लिए, सेंसर फ़्यूज़न बॉक्स में अंधेरा सीन होना ज़रूरी है.
test_auto_flash
यह जांच करता है कि पीछे और सामने वाले कैमरे के लिए, अंधेरे में ऑटो-फ़्लैश चालू होता है या नहीं. फ़्रंट कैमरे के लिए, ऑटो-फ़्लैश सुविधा, स्क्रीन का इस्तेमाल करके सीन को रोशन करती है, न कि फ़्लैश यूनिट का. इस टेस्ट से यह पुष्टि की जाती है कि ऑटो-फ़्लैश चालू है या नहीं. इसके लिए, यह देखा जाता है कि ऑटो-फ़्लैश चालू होने पर टाइल इमेज का बीच का हिस्सा ज़्यादा चमकीला है या नहीं. ऑटो-फ़्लैश को ट्रिगर करने के लिए, जांच के लिए इस्तेमाल किए जा रहे रिग में लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. जांच ठीक से काम करे, इसके लिए ज़रूरी है कि सीन पूरी तरह से अंधेरा हो. जांच करने से पहले, डिवाइस पर Jetpack Camera ऐप्लिकेशन (JCA) इंस्टॉल होना चाहिए. पीछे वाले कैमरों के लिए ऑटो-फ़्लैश, एई की स्थिति पर निर्भर करता है. हालांकि, सामने वाले कैमरों के लिए ऑटो-फ़्लैश, एई पर निर्भर नहीं करता और हमेशा ट्रिगर होता है.
इन एपीआई की जांच की गई है:
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 कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं.
जांच ठीक से काम करे, इसके लिए ज़रूरी है कि सीन पूरी तरह से अंधेरा हो.
इन एपीआई की जांच की गई है:
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
से FLASH_SINGLE_STRENGTH_MAX_LEVEL
पर सेट करने पर, इमेज पैच की चमक में ज़्यादा अंतर नहीं होता.
test_led_snapshot
यह जांच करता है कि एलईडी स्नैपशॉट, इमेज को संतृप्त या रंगीन नहीं करते.
इस टेस्ट में, लाइटों को कंट्रोल करने के लिए सेंसर फ़्यूज़न बॉक्स में लाइटिंग कंट्रोलर जोड़ा जाता है. लाइटें OFF
पर सेट होने पर, टेस्ट AUTO_FLASH
मोड को ON
पर सेट करके कैप्चर करता है. इस कैप्चर के दौरान, टेस्ट में aePrecapture
ट्रिगर को START
पर सेट करके, कैप्चर से पहले का क्रम चलाया जाता है. साथ ही, फ़्लैश के साथ कैप्चर लेने के लिए, कैप्चर इंटेंट को Preview
पर सेट किया जाता है.
फ़्लैश की वजह से, कैप्चर में एक खास हॉटस्पॉट होता है. इसलिए, जांच में पूरे कैप्चर की फ़्लैश इमेज का औसत कैलकुलेट किया जाता है और पुष्टि की जाती है कि वैल्यू (68, 102) की सीमा में है या नहीं. यह जांचने के लिए कि इमेज का व्हाइट-बैलेंस ठीक है या नहीं, जांच में R/G और B/G रेशियो का हिसाब लगाया जाता है. साथ ही, यह भी पुष्टि की जाती है कि रेशियो 0.95 और 1.05 के बीच है या नहीं.
इन एपीआई की जांच की गई है:
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
यह जांच करता है कि अंधेरे सीन में, झलक का फ़्रेम रेट सही तरीके से कम हो रहा है या नहीं. इस जांच के सही तरीके से काम करने के लिए, टेस्ट रिग में मौजूद लाइटों को कंट्रोल करने वाले डिवाइस से या टेस्ट ऑपरेटर के ज़रिए मैन्युअल तरीके से बंद किया जाना चाहिए.
इन एपीआई की जांच की गई है:
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
पास: झलक का फ़्रेम रेट, अनुरोध किए गए फ़्रेम रेट की सीमा के कम से कम लेवल पर है. साथ ही, फ़्रेम के बीच का अंतर, जांच में तय किए गए थ्रेशोल्ड से कम है.
test_torch_strength
यह जांच करता है कि TORCH
मोड में, फ़्लैश की रोशनी को कंट्रोल करने की सुविधा सही तरीके से लागू की गई है या नहीं.
यह पुष्टि करता है कि अगर डिवाइस पर TORCH
मोड में कैमरे का इस्तेमाल करते समय, फ़्लैश की रोशनी को कंट्रोल करने की सुविधा काम करती है, तो टॉर्च की रोशनी, अनुरोध किए गए अलग-अलग रोशनी के लेवल के हिसाब से बदलती है. यह पुष्टि करता है कि फ़्लैश की रोशनी कंट्रोल करने की सुविधा, अलग-अलग AE_MODES
के साथ काम करती है.
उदाहरण के लिए, अगर ऑटो-एक्सपोज़र मोड ON
या OFF
है, तो फ़्लैश की रोशनी के लेवल का चमक पर असर पड़ता है. वहीं, अगर मोड ON_AUTO_FLASH
है, तो फ़्लैश की रोशनी के लेवल का चमक पर कोई असर नहीं पड़ता.
यह पुष्टि करता है कि वीडियो कैप्चर सेशन को सिम्युलेट करते समय, टॉर्च की रोशनी एक जैसी बनी रहे. टेस्ट करने के लिए, टेस्ट रिग में लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. जांच ठीक से काम करे, इसके लिए ज़रूरी है कि सीन पूरी तरह से अंधेरा हो.
इन एपीआई की जांच की गई है:
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
टेस्ट को सेंसर फ़्यूज़न बॉक्स की मदद से ऑटोमेट किया जा सकता है.
सेंसर फ़्यूज़न चार्ट
सेंसर फ़्यूज़न चार्ट, जो सेंसर फ़्यूज़न बॉक्स के पीछे की जगह को भरता है
test_lens_intrinsic_calibration
यह जांच करता है कि ऑप्टिकल इमेज स्टेबलाइज़ेशन (ओआईएस) की वजह से लेंस के हिलने पर, लेंस के ऑप्टिकल सेंटर में बदलाव होता है या नहीं. अगर लेंस के इंट्रिन्सिक सैंपल काम करते हैं, तो यह जांच की जाती है कि ऑप्टिकल इमेज स्टेबलाइज़ेशन (ओआईएस) की वजह से लेंस के हिलने पर, लेंस के इंट्रिन्सिक सैंपल का ऑप्टिकल सेंटर बदलता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
पास: लेंस के ऑप्टिकल सेंटर में एक पिक्सल या उससे ज़्यादा का बदलाव होता है. अगर लेंस के इंट्रिन्सिक सैंपल काम करते हैं, तो लेंस के इंट्रिन्सिक सैंपल के ऑप्टिकल सेंटर एक पिक्सल या उससे ज़्यादा बदल जाते हैं.
test_lens_intrinsic_calibration
प्लॉट का उदाहरण, जिसमें हर फ़्रेम के लिए मुख्य बिंदुओं के बदलाव को पिक्सल में दिखाया गया है
test_multi_camera_frame_sync
यह जांच करता है कि लॉजिकल कैमरे से कैप्चर किए गए फ़्रेम के टाइमस्टैंप, 10 मिलीसेकंड के अंदर हों. इसके लिए, चेकरबोर्ड में स्क्वेयर के ऐंगल का हिसाब लगाकर टाइमस्टैंप का पता लगाया जाता है.
इन एपीआई की जांच की गई है:
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) दूरी के आधार पर लगाया जाता है. इमेज पर हरे और लाल रंग के हाइलाइट का इस्तेमाल, विरूपण की गड़बड़ी वाले हिस्से का पता लगाने के लिए किया जाता है.
चेकरबोर्ड की इमेज, जिसमें सही पॉइंट हरे और असल पॉइंट लाल रंग के हैं
इन एपीआई की जांच की गई है:
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
यह जांच करता है कि स्टेबलाइज़ किए गए झलक वाले वीडियो में, जियोस्कोप की तुलना में कम घुमाव हो.
इन एपीआई की जांच की गई है:
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
टेस्ट कई प्लॉट जनरेट करता है. डीबग करने के लिए, ये दो सबसे ज़रूरी प्लॉट हैं:
test_sensor_fusion_gyro_events
: जांच के दौरान, फ़ोन के लिए जाइरोस्कोप इवेंट दिखाता है. अगर फ़ोन, एक्स और वाई दिशा में हिलता है, तो इसका मतलब है कि फ़ोन को माउंटिंग प्लेट पर ठीक से माउंट नहीं किया गया है. इससे टेस्ट पास होने की संभावना कम हो जाती है. प्लॉट में साइकल की संख्या, फ़्रेम सेव करने के लिए लिखने की स्पीड पर निर्भर करती है.test_sensor_fusion_gyro_events
test_sensor_fusion_plot_rotations
: जाइरोस्कोप और कैमरे के इवेंट का अलाइनमेंट दिखाता है. इस प्लॉट में, कैमरे और घुमाव-गति सेंसर के बीच की गति +/-1 मिलीसेकंड तक मैच करनी चाहिए.test_sensor_fusion_plot_rotations
इन एपीआई की जांच की गई है:
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
पास: सीडीडी सेक्शन 7.3.9 हाई फ़िडेलिटी सेंसर [C-2-14] के मुताबिक, कैमरे और जाइरोस्कोप के टाइमस्टैंप का ऑफ़सेट 1 एमएस से कम है.
काम न करने के तरीके:
- ऑफ़सेट गड़बड़ी: कैमरा-जाइरोस्कोप ऑफ़सेट को +/-1 एमएस के अंदर सही तरीके से कैलिब्रेट नहीं किया गया है.
- फ़्रेम ड्रॉप: लगातार 200 फ़्रेम कैप्चर करने के लिए, पाइपलाइन तेज़ नहीं है.
- सॉकेट से जुड़ी गड़बड़ियां:
adb
, जांच को पूरा करने के लिए ज़रूरत के मुताबिक डीयूटी से कनेक्ट नहीं हो पा रहा है. - चार्ट को फ़्लैट माउंट नहीं किया गया है. प्लॉट
test_sensor_fusion_plot_rotations
में ऐसे फ़्रेम हैं जिनमें कैमरे के घूमने की दिशा और घुमाव की स्पीड में काफ़ी अंतर है. ऐसा इसलिए है, क्योंकि कैमरा चार्ट के उन हिस्सों पर घूमता है जो सपाट नहीं हैं. - कैमरा फ़्लैट नहीं है. प्लॉट
test_sensor_fusion_gyro_events
में X और Y प्लेन में हुई गतिविधि दिखती है. यह गड़बड़ी, सामने वाले कैमरे में ज़्यादा होती है, क्योंकि रीयर कैमरे के लिए फ़ोन के बाकी हिस्से की तुलना में अक्सर थोड़ा उभार होता है. इससे फ़ोन के पीछे वाले हिस्से को माउंटिंग प्लेट पर माउंट करते समय, कैमरे में झुकाव आ जाता है.
test_video_stabilization
यह जांच करता है कि स्टेबलाइज़ किया गया वीडियो, जियोस्कोप से कम घूमता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
पास: फ़्रेम में ऐंगल का रोटेशन, गायरोस्कोप के रोटेशन के 60% से कम है.
यहां स्थिरीकरण की सुविधा के साथ और बिना स्थिरीकरण के वीडियो के सैंपल दिए गए हैं.
स्टेबलाइज़ेशन की सुविधा वाले वीडियो का सैंपल
स्टेबलाइज़ेशन के बिना वीडियो का सैंपल
feature_combination
feature_combination
टेस्ट से यह पुष्टि होती है कि एक साथ कई कैमरे की सुविधाएं चालू होने पर, सुविधाएं सही तरीके से काम करती हैं. इन टेस्ट में, सेंसर फ़्यूज़न सीन में इस्तेमाल की गई उसी चेकरबोर्ड इमेज का इस्तेमाल किया जाता है.
test_feature_combination
यह कैमरा डिवाइस पर काम करने वाले अलग-अलग स्ट्रीम कॉम्बिनेशन, झिलमिलाहट को कम करने की सुविधा, टारगेट फ़्रेम रेट की सीमा, 10-बिट एचडीआर वीडियो, और अल्ट्रा एचडीआर के सभी कॉम्बिनेशन की जांच करता है. यह टेस्ट बहुत ज़्यादा मेमोरी का इस्तेमाल करता है. इसलिए, हमारा सुझाव है कि आप कम से कम 128 जीबी रैम वाले होस्ट का इस्तेमाल करें.
Android 15 और इसके बाद के वर्शन के लिए, कॉन्फ़िगरेशन फ़ाइल में एक log_feature_combo_support
फ़ील्ड शामिल होता है. यह डिफ़ॉल्ट रूप से False
पर सेट होता है. जब log_feature_combo_support
फ़ील्ड को True
पर सेट किया जाता है, तो टेस्ट, काम करने वाली सुविधाओं के सभी कॉम्बिनेशन चलाता है. साथ ही, टेस्ट में फ़ेल हुए बिना, नतीजों को प्रोटो फ़ाइल में लॉग करता है. नीतियों का पालन करने से जुड़ी जांच के लिए, log_feature_combo_support
फ़ील्ड को False
पर सेट करना ज़रूरी है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
पास: काम करने वाले हर सुविधा कॉम्बिनेशन के लिए:
- अगर झलक को स्थिर करने की सुविधा चालू है, तो झलक की स्ट्रीम स्थिर हो जाती है.
- झलक का फ़्रेम रेट, कॉन्फ़िगर किए गए
AE_TARGET_FPS_RANGE
के अंदर आता है. - रिकॉर्ड की गई झलक वाली स्ट्रीम का कलर स्पेस, सेट किए गए कलर स्पेस से मेल खाता हो.
- अल्ट्रा एचडीआर कैप्चर में मान्य गेन मैप हो.