इस पेज पर Camera के इमेज टेस्ट सुइट (आईटीएस) के तहत किए जाने वाले टेस्ट की पूरी सूची दी गई है. यह Android कंपैटबिलिटी टेस्ट सुइट (सीटीएस) की पुष्टि करने वाली सुविधा का हिस्सा है. आईटीएस टेस्ट, फ़ंक्शन की जांच करने वाले टेस्ट होते हैं. इसका मतलब है कि इनसे इमेज क्वालिटी का आकलन नहीं किया जाता है. हालांकि, इनसे यह पता चलता है कि विज्ञापन में दिखाए गए कैमरे के सभी फ़ंक्शन, उम्मीद के मुताबिक काम कर रहे हैं या नहीं. इस दस्तावेज़ से डेवलपर और टेस्टर को यह समझने में मदद मिलती है कि अलग-अलग टेस्ट क्या करते हैं और टेस्ट में आने वाली गड़बड़ियों को डीबग कैसे करें.
कैमरा आईटीएस गेट, ज़रूरी कैमरा प्रॉपर्टी, एपीआई लेवल, और मीडिया परफ़ॉर्मेंस क्लास (एमपीसी) लेवल के हिसाब से जांच करता है. एपीआई लेवल के लिए, 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 देखें.
सीन1: फ़ुल साइज़ का चार्ट (बाएं). ⅔ स्केल वाला चार्ट (दाईं ओर).
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 इमेज के 5 बर्स्ट लेता है. साथ ही, यह देखता है कि वे सभी एक जैसे हैं या नहीं. इस जांच का इस्तेमाल यह पता लगाने के लिए किया जा सकता है कि क्या कभी-कभी ऐसे फ़्रेम दिखते हैं जिन्हें अलग तरह से प्रोसेस किया गया है या जिनमें आर्टफ़ैक्ट हैं.
इन एपीआई की जांच की गई है:
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
जांच_क्रॉप_क्षेत्र_करो
ऐसे टेस्ट जिनसे पता चलता है कि 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
परीक्षण_क्रॉप_क्षेत्र
यह जांच करता है कि फ़ोटो के हिस्से को काटने की सुविधा काम कर रही है या नहीं. यह पूरी इमेज लेता है और पांच अलग-अलग इलाकों (कोने और बीच) के पैच बनाता है. पांच क्षेत्रों के लिए क्रॉप सेट करके इमेज लेता है. पैच और काटी गई इमेज की वैल्यू की तुलना करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
पास: काटे गए हिस्से की इमेज, काटी गई इमेज से जुड़े पैच से मेल खाती है.
test_dng_noise_model
इस बात की पुष्टि करता है कि डीएनजी के रॉ मॉडल के पैरामीटर सही हैं या नहीं. इस प्लॉट में, अलग-अलग सेंसिटिविटी पर कैप्चर किए गए रॉ शॉट में, स्लेटी रंग के कार्ड के बीच के पैच के लिए, मापी गई वैरिएंस को दिखाया गया है. साथ ही, इन वैल्यू की तुलना, कैमरा एचएएल में 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
यह जांच करती है कि आईएसओ के हिसाब से लगातार एक्सपोज़र मिल रहा है और एक्सपोज़र का समय अलग-अलग है. एक से ज़्यादा शॉट लेता है. इन शॉट में, आईएसओ और एक्सपोज़र का समय एक-दूसरे के हिसाब से चुना जाता है.
नतीजों की चमक एक जैसी होनी चाहिए, लेकिन सीक्वेंस के दौरान इमेज में गड़बड़ी दिखनी चाहिए. सैंपल पिक्सल की पुष्टि का मतलब है कि वैल्यू एक-दूसरे के करीब हैं. यह पक्का करता है कि इमेज को 0 या 1 पर क्लैंप न किया गया हो. ऐसा करने पर, इमेज फ़्लैट लाइन की तरह दिखेंगी. अपनी कॉन्फ़िगरेशन फ़ाइल में debug
फ़्लैग सेट करके, RAW इमेज के साथ भी टेस्ट किया जा सकता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: इमेज की चमक एक जैसी है, लेकिन ज़्यादा आईएसओ के साथ नॉइज़ बढ़ जाता है. आरजीबी प्लेन सपाट होते हैं. ऐसा तब होता है, जब आईएसओ*एक्सपोज़र की वैल्यू, जांची गई जगह के मुकाबले एक जैसी हो.
काम न करने की वजह:
test_exposure_plot_means.png
में, गेन मल्टीप्लायर वैल्यू (x-ऐक्सिस) बढ़ने पर, सामान्य किए गए RGB प्लेन की औसत वैल्यू (y-ऐक्सिस), कम गेन मल्टीप्लायर वैल्यू से अलग होने लगती हैं.
जांच_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_latking_i=01.jpg | test_latching_i=02.jpg | |
test_latching_i=03.jpg | test_lat{6}_i=04.jpg | test_latging_i=05.jpg | |
test_latching_i=06.jpg | test_latching_i=07.jpg | test_latching_i=08.jpg | |
test_latching_i=09.jpg | test_latking_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_बर्स्ट_फ़्रेम2.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_ सुधार_req=0.jpg
test_param_color_correctness_req=1.jpg (R boost)
test_param_color_ अस्थायी_req=2.jpg (B बूस्ट)
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
पैरामीटर सही तरीके से लागू होता है या नहीं. कम रोशनी में कैमरे से इमेज कैप्चर करना. यह हाई एनालॉग गेन का इस्तेमाल करता है, ताकि यह पक्का किया जा सके कि कैप्चर की गई इमेज में नॉइज़ न हो. एनआर बंद, "तेज़", और "अच्छी क्वालिटी" के लिए, तीन इमेज कैप्चर की जाती हैं. यह कम गेन और एनआर बंद होने पर भी इमेज कैप्चर करता है. साथ ही, इसके वैरिएंस का इस्तेमाल बेसलाइन के तौर पर करता है. एसएनआर (सिग्नल-टू-नॉइज़ रेशियो) जितना ज़्यादा होगा, इमेज की क्वालिटी उतनी ही बेहतर होगी.
इन एपीआई की जांच की गई है:
पास: एसएनआर, शोर कम करने वाले अलग-अलग मोड के हिसाब से अलग-अलग होता है और यह नीचे दिए गए ग्राफ़ की तरह ही काम करता है.
परीक्षण_परम_नोइज़_रिडक्टन_plot_SNRs.png
0: बंद, 1: तेज़, 2: एचक्यू, 3: कम , 4: ज़ेडएसएल
test_param_noise_reaction_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 |
जांच_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
परीक्षण_पोस्ट_raw_संवेदनशीलता_बूस्ट_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
जांच_पोस्ट_raw_संवेदनशीलता_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
जांच_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
परीक्षण_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
परीक्षण_raw_संवेदनशीलता
बढ़ती संवेदनशीलता के साथ रॉ इमेज का सेट कैप्चर करता है. साथ ही, इमेज के बीच वाले 10% हिस्से में मौजूद नॉइज़ (वैरियंस) को मापता है. यह जांचता है कि हर शॉट में पिछले शॉट की तुलना में ज़्यादा शोर है.
इन एपीआई की जांच की गई है:
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
, अनुरोधों को फिर से प्रोसेस करने के लिए लागू किया जाता है.
यह सुविधा, दोबारा प्रोसेस की गई इमेज को कैमरे में कम रोशनी के साथ कैप्चर करती है. कैप्चर की गई इमेज में नॉइज़ न हो, यह पक्का करने के लिए हाई एनालॉग गेन का इस्तेमाल करता है. एनआर (नॉन-रेज़ोल्यूशन) बंद, "तेज़", और "अच्छी क्वालिटी" के लिए, फिर से प्रोसेस की गई तीन इमेज कैप्चर करता है. कम गेन और एनआईआर बंद करके, फिर से प्रोसेस की गई इमेज कैप्चर करता है. साथ ही, इस वैरिएंस का इस्तेमाल बेसलाइन के तौर पर करता है.
जांचे गए एपीआई:
पास: तेज़ >= बंद, HQ >= तेज़, HQ >> बंद
सामान्य 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_seq_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
परीक्षण_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
टेस्ट_ऑटोफ़्रेमिंग
कैमरा डिवाइस के ऑटोफ़्रेमिंग व्यवहार की जांच करता है. ज़ूम करके वीडियो को इतना बड़ा कर दिया जाता है कि स्क्रीन पर कोई भी चेहरा न दिखे. इसके बाद, 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
पास: तीनों चेहरों की पहचान की जाती है.
परीक्षण_display_p3
टेस्ट
ColorSpaceProfiles
एपीआई का इस्तेमाल करके, JPEG में Display P3 कैप्चर करने की सुविधा. यह जांच करता है कि कैप्चर किए गए 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 प्लेन को आपस में बदला नहीं गया है.
परीक्षण_रीप्रोसेस_रूवी_स्वैप.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% से कम है.
सीन2_सी
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 परफ़ॉर्मेंस क्लास के लिए कैमरे के लॉन्च में लगने वाले समय की जांच करता है.
पास: Camera2 के चालू होने में लगने वाला समय (पहले झलक दिखाने वाले फ़्रेम तक कैमरा खुलने में लगने वाला समय) 600 मि॰से॰ से कम होना चाहिए. दोनों मुख्य कैमरों के लिए, सीटीएस कैमरा PerformanceTest के तहत, इसकी लाइटिंग की शर्तों (3,000 हज़ार) को 600 मि॰से॰ से कम किया गया हो.
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 फ़्रेम कैप्चर करने के बाद सेट हो जाता है.
परीक्षण_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
सीन3, ISO12233 चार्ट का इस्तेमाल करता है. ज़्यादातर टेस्ट, सीन में चार्ट ढूंढने के लिए, चार्ट इकट्ठा करने वाले तरीके का इस्तेमाल करते हैं. इसी वजह से, सेव की गई ज़्यादातर इमेज के बॉर्डर 1, 2 या 4 की इमेज की तरह नहीं होते, बल्कि सिर्फ़ चार्ट होते हैं. चार्ट फ़ाइंडर के सही तरीके से काम करने के लिए, चार्ट सही ओरिएंटेशन में होना चाहिए.
Test_ Edge_enhancement
यह जांच करता है कि android.edge.mode
पैरामीटर सही तरीके से लागू किया गया है या नहीं. हर एज मोड के लिए, फिर से प्रोसेस न की गई इमेज कैप्चर करता है. साथ ही, आउटपुट इमेज की शार्पनेस और कैप्चर के नतीजे का मेटाडेटा दिखाता है. यह फ़ंक्शन, दिए गए एज मोड, संवेदनशीलता, एक्सपोज़र समय, फ़ोकस की दूरी, और आउटपुट के प्लैटफ़ॉर्म पैरामीटर के साथ, कैप्चर करने के अनुरोध को प्रोसेस करता है.
पास: OFF
मोड (0) की तुलना में HQ
मोड (2) बेहतर. FAST
मोड (1), OFF
मोड से बेहतर है. HQ
मोड, FAST
मोड के बराबर या उससे बेहतर है.
इन एपीआई की जांच की गई है:
इन कैमरा पैरामीटर पर असर पड़ा है:
EDGE_MODE
test_edge_enhancement_edge=0.jpg
test_Age_enhancement_ Edge=1.jpg (तेज़ मोड)
test_edge_enhancement_edge=2.jpg (अच्छी क्वालिटी वाला मोड)
test_flip_mirror
जांच करता है कि इमेज CDD सेक्शन 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
टेस्ट_लैंडस्केप_तो_पोर्ट्रेट
यह जांच करता है कि लैंडस्केप से पोर्ट्रेट में बदलने की सुविधा, लैंडस्केप ओरिएंटेशन वाले सेंसर के लिए सही तरीके से काम करती है या नहीं.
इन एपीआई की जांच की गई है:
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
का इस्तेमाल करके, डीयूटी और चार्ट के अलाइनमेंट की जांच की जा सकती है.
सीन4
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% से ज़्यादा का अंतर नहीं होता. साथ ही, ज़्यादा से ज़्यादा एफ़ओवी (फ़ील्ड ऑफ़ व्यू) को सुरक्षित रखा जाता है.
समस्या ठीक न होने के तरीके:
- कैमरा, कैप्चर किए गए सीन के बीच में टैबलेट पर दिख रहे सर्कल के साथ अलाइन नहीं है.
- प्रोसेसिंग पाइपलाइन की वजह से, कैप्चर की गई इमेज में मौजूद सर्कल का आकार बिगड़ गया है.
- इमेज पाइपलाइन में, कम रिज़ॉल्यूशन वाली इमेज को दो बार काटा जाता है. इससे, हाई और लो रिज़ॉल्यूशन वाली इमेज के बीच फ़ील्ड ऑफ़ व्यू (एफ़ओवी) अलग-अलग होता है.
- कैप्चर की गई इमेज में सर्कल को काटा गया है. ऐसा, आसपेक्ट रेशियो के लिए किए गए अनुरोध की वजह से हुआ है. इस अनुरोध की वजह से, इमेज की ऊंचाई या चौड़ाई कम हो गई है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में, किसी ऑब्जेक्ट का रेफ़्लेक्टन दिख रहा है. साथ ही, सर्कल पूरी तरह से भरा हुआ नहीं दिख रहा है.
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_ शोप
स्टिल कैप्चर के लिए 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% से ज़्यादा का अंतर नहीं होता, और ज़्यादा से ज़्यादा एफ़ओवी (फ़ील्ड ऑफ़ व्यू) को सेव रखा जाता है.
सीन5
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
पर सेट करने पर, ज़ूम रेंज में दो कैप्चर लिए जाते हैं. इनमें, फ़ील्ड ऑफ़ व्यू (एफ़ओवी) वाली पूरी 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 रूट मीन स्क्वेयर (आरएमएस) का अंतर, टेस्ट में सेट किए गए थ्रेशोल्ड से कम है.
जांच_ज़ूम
कैमरे के ज़ूम करने के तरीके की जांच करता है. इससे, ज़ूम रेंज से जुड़ी फ़ोटो ली जाती हैं. साथ ही, यह जांच की जाती है कि कैमरे के ज़ूम इन होने पर वृत्त बड़े होते हैं या नहीं. हर फ़ॉर्मैट (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 (ज़ूम करने के बाद)
जांच_झलक_ज़ूम
यह जांच करता है कि झलक दिखाने वाले हर फ़्रेम का ज़ूम रेशियो, उससे जुड़े कैप्चर मेटाडेटा से मेल खाता है या नहीं. यह जांच, ज़ूम रेंज के दौरान झलक फ़्रेम लेती है और बीच में मौजूद सर्कल के कॉन्टूर का पता लगाती है. इसके बाद, जांच की जाती है कि चुना गया गोला बड़ा हो गया है या नहीं. साथ ही, यह भी देखा जाता है कि कैमरे के ज़ूम इन करने पर, गोले का बीच का हिस्सा इमेज के बीच से हट गया है या नहीं.
इन एपीआई की जांच की गई है:
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 मार्कर, आयत के चार बाहरी कोनों की मदद से अलाइन किए गए हैं. इससे अलग-अलग ज़ूम रेशियो पर, मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने में मदद मिलती है.
सीन7
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 Lens इमेज के लिए, R/G और B/G वैल्यू के बीच का अंतर 0.5% से कम होना चाहिए.
- ऑटो फ़ोकस की जांच: UW और W लेंस की इमेज के बीच इमेज की शार्पनेस में बदलाव 2% से कम होना चाहिए.
सीन8
Scene8 एक आयताकार फ़्रेम है, जिसे चार बराबर हिस्सों में बांटा गया है. हर हिस्से में एक अलग एक्सपोज़र वाला पोर्ट्रेट है या अलग-अलग रंग के शेड (नीला शेड, ज़्यादा एक्सपोज़र, कम एक्सपोज़र, पीला शेड) के साथ ओवरले किया गया है. मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने के लिए, चार ArUco मार्कर को रेक्टैंगल के चार बाहरी कोनों के साथ अलाइन किया जाता है.
scene8
test_ae_awb_regions
यह जांच करता है कि अलग-अलग ऑटो एक्सपोज़र (AE) और ऑटो व्हाइट बैलेंस (AWB) क्षेत्रों में रिकॉर्डिंग की झलक देखते समय, RGB और ल्यूमा वैल्यू अलग-अलग होती हैं या नहीं.
यह टेस्ट, आठ सेकंड की झलक रिकॉर्ड करता है. इसमें हर क्वाड्रेंट पर दो सेकंड के लिए, एई और एडब्ल्यूबी मेज़रमेंट किया जाता है. इसके बाद, यह जांच हर इलाके की झलक वाली रिकॉर्डिंग से एक फ़्रेम निकालती है. साथ ही, निकाले गए फ़्रेम का इस्तेमाल करके, एई और एडब्ल्यूबी की ये जांच करती है:
- एई जांच: यह पुष्टि करता है कि कम एक्सपोज़र वाले क्षेत्र को मेज़र करने वाले फ़्रेम की ल्यूमा वैल्यू, ज़्यादा एक्सपोज़र वाले क्षेत्र को मेज़र करने वाले फ़्रेम की ल्यूमा वैल्यू से 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 दोनों पास की जांच करते हैं.
scene9
Square9 में, बिना किसी क्रम के साइज़ और रंग वाले हज़ारों सर्कल होते हैं. इस तरह के सीन में, 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
सीन में बाईं ओर एक पोर्ट्रेट और दाईं ओर कम कंट्रास्ट वाला क्यूआर कोड है.
सीन_एचडीआर
test_hdr_extension
एचडीआर एक्सटेंशन की जांच करता है. एक्सटेंशन चालू होने और न होने पर, क्यूआर कोड की इमेज कैप्चर करता है. साथ ही, यह भी जांच करता है कि एक्सटेंशन की मदद से क्यूआर कोड को आसानी से स्कैन किया जा सकता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
पास: HDR एक्सटेंशन, क्यूआर कोड का पता लगाने के लिए, कंट्रास्ट में होने वाले बदलावों की संख्या को कम करता है या क्यूआर कोड में ग्रेडिएंट को कम करता है.
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 के लिए की जाती है. अगर नाइट मोड कैमरा एक्सटेंशन काम करता है और एक्सटेंशन, कम रोशनी में बूस्ट करने वाले एई मोड के साथ काम करता है, तो नाइट मोड के कैमरा एक्सटेंशन के लिए भी यह जांच की जाएगी. यह टेस्ट AE मोड को कम रोशनी पर सेट करता है, झलक से एक फ़्रेम लेता है, और यह काम करता है:
- 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
हो जाता है.
सेंसर_फ़्यूजन
सेंसर फ़्यूज़न की जांच के लिए, चेकरबोर्ड पैटर्न और 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
पास: हर झलक फ़्रेम में, विरूपण की सामान्य गड़बड़ी, जांच में तय किए गए थ्रेशोल्ड से कम है.
जांच_झलक_स्टेबलाइज़ेशन
यह जांच करता है कि स्टेबलाइज़ किए गए झलक वाले वीडियो में, जियोस्कोप की तुलना में कम घुमाव हो.
इन एपीआई की जांच की गई है:
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
: जांच के दौरान, फ़ोन के लिए जाइरोस्कोप इवेंट दिखाता है. अगर फ़ोन, x और y दिशा में हिलता है, तो इसका मतलब है कि फ़ोन को माउंटिंग प्लेट पर ठीक से माउंट नहीं किया गया है. इससे टेस्ट पास होने की संभावना कम हो जाती है. प्लॉट में साइकल की संख्या, फ़्रेम सेव करने की लिखने की स्पीड पर निर्भर करती है.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
, DUT के साथ लंबे समय तक भरोसेमंद तरीके से कनेक्ट नहीं कर सकता, ताकि जांच की जा सके. - चार्ट को फ़्लैट माउंट नहीं किया गया है. प्लॉट
test_sensor_fusion_plot_rotations
में ऐसे फ़्रेम हैं जिनमें कैमरे के घूमने की दिशा और घुमने की स्पीड में काफ़ी अंतर है. ऐसा इसलिए है, क्योंकि कैमरा चार्ट के उन हिस्सों पर घूमता है जो सपाट नहीं हैं. - कैमरे को फ़्लैट माउंट नहीं किया गया है. प्लॉट
test_sensor_fusion_gyro_events
X और Y प्लेन में गति दिखाता है. यह समस्या, सामने वाले कैमरे में ज़्यादा होती है, क्योंकि रीयर कैमरे के लिए फ़ोन के बाकी हिस्से की तुलना में अक्सर उभार होता है. इससे फ़ोन के पीछे वाले हिस्से को माउंटिंग प्लेट पर माउंट करते समय, फ़ोन थोड़ा झुक जाता है.
जांच_वीडियो_स्टेबलाइज़ेशन
यह जांच करता है कि स्टेबलाइज़ किया गया वीडियो, जियोस्कोप से कम घूमता है या नहीं.
इन एपीआई की जांच की गई है:
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
के दायरे में आता है. - रिकॉर्ड की गई झलक वाली स्ट्रीम का कलर स्पेस, सेट किए गए कलर स्पेस से मेल खाता हो.
- अल्ट्रा एचडीआर कैप्चर में मान्य गेन मैप हो.