इस पेज पर, Camera Image Test Suite (ITS) में शामिल सभी टेस्ट की पूरी सूची दी गई है. यह Android Compatibility Test Suite (CTS) Verifier का हिस्सा है. आईटीएस टेस्ट, फ़ंक्शन की जांच करने वाले टेस्ट होते हैं. इसका मतलब है कि ये इमेज की क्वालिटी को मेज़र नहीं करते. हालांकि, ये इस बात की पुष्टि करते हैं कि विज्ञापन में बताए गए कैमरे के सभी फ़ंक्शन, उम्मीद के मुताबिक काम कर रहे हैं. इस दस्तावेज़ से डेवलपर और टेस्टर को यह समझने में मदद मिलती है कि अलग-अलग टेस्ट क्या करते हैं और टेस्ट के फ़ेल होने की समस्या को कैसे ठीक किया जाए.
कैमरा आईटीएस, ज़रूरी कैमरा प्रॉपर्टी, एपीआई लेवल, और मीडिया परफ़ॉर्मेंस क्लास (एमपीसी) लेवल के हिसाब से टेस्ट करता है. एपीआई लेवल के लिए, आईटीएस ro.product.first_api_level का इस्तेमाल करता है. इससे, किसी खास एपीआई लेवल में जोड़े गए टेस्ट को गेट किया जाता है. ये टेस्ट, कम एपीआई लेवल में काम करने वाली सुविधाओं के लिए, उपयोगकर्ता के खराब अनुभवों की जांच करते हैं. आईटीएस, ro.vendor.api_level का इस्तेमाल करता है. इससे, किसी खास एपीआई लेवल में जोड़ी गई सुविधाओं के लिए टेस्ट को गेट किया जा सकता है. इन सुविधाओं के लिए, नए हार्डवेयर की ज़रूरत होती है. अगर किसी डिवाइस के लिए ro.odm.build.media_performance_class तय किया गया है, तो आईटीएस को एमपीसी लेवल के हिसाब से कुछ खास टेस्ट चलाने होंगे.
टेस्ट को सीन के हिसाब से इस तरह ग्रुप किया जाता है:
scene0: मेटाडेटा, जिटर, जायरोस्कोप, वाइब्रेशन कैप्चर करेंscene1: एक्सपोज़र, सेंसिटिविटी, एक्सपोज़र वैल्यू (ईवी) की भरपाई, YUV बनाम JPEG और RAWscene2: चेहरे की पहचान करना, रंगीन सीन की ज़रूरत वाले टेस्टscene3: इमेज को ज़्यादा शार्प बनाना, लेंस का हिलनाscene4: आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात), काटना, फ़ील्ड ऑफ़ व्यूscene5: लेंस शेडिंगscene6: ज़ूम करेंscene7: एक से ज़्यादा कैमरे के बीच स्विच करने की सुविधाscene8: ऑटो एक्सपोज़र (AE) और ऑटो व्हाइट बैलेंस (AWB) रीजन मीटरिंगscene9: JPEG कंप्रेशनscene_extensions: कैमरा एक्सटेंशनscene_tele: टेलीफ़ोटो लेंस स्विच करनाscene_flash: ऑटोफ़्लैश, कम से कम फ़्रेम रेटscene_video: फ़्रेम ड्रॉप होनाsensor_fusion: कैमरा और जाइरोस्कोप के टाइमिंग ऑफ़सेटfeature_combination: सुविधाओं के कॉम्बिनेशनscene_ip: डिफ़ॉल्ट कैमरा ऐप्लिकेशन और Jetpack Camera App (JCA) से ली गई इमेज में समानता
हर सीन के बारे में जानकारी पाने के लिए, अलग-अलग सेक्शन देखें.
scene0
टेस्ट के लिए, सीन की किसी खास जानकारी की ज़रूरत नहीं होती. हालांकि, जायरोस्कोप और वाइब्रेशन की जांच के लिए, फ़ोन को स्थिर रखना ज़रूरी है.
test_jitter
यह कैमरे के टाइमस्टैंप में होने वाले बदलावों को मेज़र करता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
पास: फ़्रेम के बीच कम से कम 30 मि॰से॰ का अंतर है.
नीचे दिए गए डायग्राम में, y-ऐक्सिस की छोटी रेंज पर ध्यान दें. इस प्लॉट में जिटरिंग का असर कम है.
पहली इमेज. test_jitter प्लॉट.
test_metadata
यह मेटाडेटा एंट्री की वैधता की जांच करता है. इसके लिए, यह कैप्चर के नतीजों और कैमरे की विशेषताओं वाले ऑब्जेक्ट को देखता है. इस टेस्ट में, auto_capture_request एक्सपोज़र और गेन वैल्यू का इस्तेमाल किया जाता है, क्योंकि इमेज कॉन्टेंट ज़रूरी नहीं है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVELandroid.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPEandroid.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERNandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
पास: हार्डवेयर लेवल, rollingShutterSkew, frameDuration टैग,
timestampSource, croppingType, blackLevelPattern, pixel_pitch,
फ़ील्ड ऑफ़ व्यू (FoV) और हाइपरफ़ोकल दूरी मौजूद हैं और इनकी वैल्यू मान्य हैं.
test_request_capture_match
इन जांचों से यह पता चलता है कि डिवाइस, कैप्चर किए गए मेटाडेटा को पढ़कर, एक्सपोज़र और गेन की सही वैल्यू लिखता है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
पास: अनुरोध की गई और कैप्चर की गई मेटाडेटा वैल्यू, सभी शॉट में एक जैसी हैं.
test_sensor_events
जिन डिवाइसों पर सेंसर फ़्यूज़न की सुविधा का विज्ञापन दिखाया जाता है उनके लिए, यह टेस्ट यह जांच करता है कि डिवाइस, सेंसर इवेंट के बारे में क्वेरी करता है या नहीं और उन्हें प्रिंट करता है या नहीं. इसमें एक्सलरोमीटर, जाइरोस्कोप, और मैग्नेटोमीटर सेंसर होने चाहिए. यह जांच सिर्फ़ तब काम करती है, जब स्क्रीन चालू हो. इसका मतलब है कि डिवाइस स्टैंडबाय मोड में न हो.
जांचे गए एपीआई:
पास: हर सेंसर के लिए इवेंट मिले हैं.
test_solid_color_test_pattern
इन टेस्ट से यह पता चलता है कि कैमरा म्यूट करने के लिए, एक रंग वाले टेस्ट पैटर्न सही तरीके से जनरेट किए गए हैं या नहीं. अगर कैमरे को म्यूट करने की सुविधा काम करती है, तो सॉलिड कलर टेस्ट पैटर्न काम करने चाहिए. अगर कैमरा म्यूट करने की सुविधा काम नहीं करती है, तो सॉलिड कलर टेस्ट पैटर्न की जांच सिर्फ़ तब की जाती है, जब इस सुविधा का विज्ञापन किया गया हो.
अगर रॉ इमेज इस्तेमाल की जा सकती हैं, तो रंग असाइन करने की सुविधा की भी जांच की जाती है. जिन रंगों की जांच की गई है वे काले, सफ़ेद, लाल, नीले, और हरे रंग के हैं. जिन कैमरों में रॉ इमेज की सुविधा नहीं होती है उनके लिए, सिर्फ़ काले रंग की जांच की जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATAandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
पास: टेस्ट के लिए इस्तेमाल किए गए सॉलिड पैटर्न का रंग सही है और इमेज में कम अंतर है.
test_test_pattern
यह android.sensor.testPatternMode पैरामीटर की जांच करता है, ताकि हर मान्य टेस्ट पैटर्न के लिए फ़्रेम कैप्चर किए जा सकें. साथ ही, यह भी जांच करता है कि एक जैसे रंगों और कलर बार के लिए फ़्रेम सही तरीके से जनरेट हुए हैं या नहीं. इस जांच में ये चरण शामिल हैं:
- यह सुविधा, टेस्ट के लिए इस्तेमाल किए जा सकने वाले सभी पैटर्न के लिए इमेज कैप्चर करती है.
- यह फ़ंक्शन, सॉलिड कलर टेस्ट पैटर्न और कलर बार के सही होने की जांच करता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
पास: टेस्ट के लिए इस्तेमाल किए जा सकने वाले पैटर्न सही तरीके से जनरेट किए गए हैं.
दूसरी इमेज. test_test_patterns का उदाहरण.
test_tonemap_curve
यह टेस्ट, लीनियर टोनमैप की मदद से टेस्ट पैटर्न को रॉ से YUV में बदलने की प्रोसेस की जांच करता है. इस टेस्ट में, टोनमैप कन्वर्ज़न के लिए सही इमेज पैटर्न जनरेट करने के लिए android.sensor.testPatternMode = 2 (COLOR_BARS) की ज़रूरत होती है. इस टेस्ट से यह पुष्टि की जाती है कि पाइपलाइन में, लीनियर टोनमैप और सही इमेज इनपुट के साथ सही रंग आउटपुट हैं या नहीं. यह test_test_patterns पर निर्भर करता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास: YUV और रॉ इमेज, एक-दूसरे से मिलती-जुलती हैं.
तीसरी इमेज. test_tonemap_curve का रॉ उदाहरण.
चौथी इमेज. test_tonemap_curve YUV का उदाहरण.
test_unified_timestamp
यह कुकी जांच करती है कि इमेज और मोशन सेंसर इवेंट, एक ही टाइम डोमेन में हैं या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.hardware.Sensor#TYPE_GYROSCOPE
पास: मोशन टाइमस्टैंप, दोनों इमेज के टाइमस्टैंप के बीच में हैं.
test_vibration_restriction
इससे यह जांच की जाती है कि डिवाइस का वाइब्रेशन ठीक से काम कर रहा है या नहीं.
जांचे गए एपीआई:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.os.Vibratorandroid.hardware.camera2.CameraDevice#setCameraAudioRestriction
पास: कैमरा ऑडियो पाबंदी एपीआई से म्यूट करने पर, डिवाइस वाइब्रेट नहीं होता.
scene1_1
scene1 एक ग्रे चार्ट है. ग्रे चार्ट, कैमरे के फ़ील्ड ऑफ़ व्यू (FoV) के बीच के 30% हिस्से को कवर करना चाहिए. ग्रे चार्ट से 3A (AE,
AWB, और AF) को चुनौती मिलने की संभावना है, क्योंकि सेंटर रीजन में कोई सुविधा नहीं है.
हालांकि, कैप्चर अनुरोध में पूरा सीन शामिल होता है. इसमें 3A के लिए ज़रूरी सुविधाएं भी शामिल होती हैं.
RFoV कैमरों की जांच, WFoV या RFoV टेस्ट रिग में की जा सकती है. अगर RFoV कैमरे को WFoV टेस्ट रिग में टेस्ट किया जाता है, तो चार्ट को 2/3 के हिसाब से स्केल किया जाता है. इससे FoV में मौजूद ग्रे चार्ट के लिए कुछ सीमाएं तय की जाती हैं, ताकि 3A को कन्वर्ज करने में मदद मिल सके. कैमरे के टेस्ट रिग के बारे में ज़्यादा जानकारी के लिए, कैमरा आईटीएस-इन-अ-बॉक्स देखें.
पांचवीं इमेज. बाईं ओर, पूरे साइज़ का सीन1 चार्ट और दाईं ओर, 2/3 स्केल किया गया चार्ट.
test_ae_precapture_trigger
यह कुकी, प्रीकैप्चर ट्रिगर का इस्तेमाल करते समय एई स्टेट मशीन की जांच करती है. यह कुकी, एई की सुविधा बंद होने पर, मैन्युअल तरीके से किए गए पांच अनुरोधों को कैप्चर करती है. पिछले अनुरोध में एई प्रीकैप्चर ट्रिगर है. इसे अनदेखा किया जाना चाहिए, क्योंकि एई बंद है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATE
पास: AE कन्वर्ज होता है.
test_auto_vs_manual
ऑटो और मैन्युअल मोड में ली गई तस्वीरों के नतीजे एक जैसे दिखते हैं.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
पास: हर कैप्चर के नतीजे में रिपोर्ट किए गए मैन्युअल व्हाइट बैलेंस के फ़ायदे और बदलाव, कैमरे के 3A एल्गोरिदम से मिले ऑटो व्हाइट बैलेंस estimate से मेल खाते हैं.
छठी इमेज. test_auto_vs_manual का अपने-आप जनरेट हुआ उदाहरण.
सातवीं इमेज. टेस्ट_ऑटो_वर्सेस_मैन्युअल वाइट बैलेंस का उदाहरण.
आठवीं इमेज. test_auto_vs_manual में मैन्युअल तरीके से व्हाइट बैलेंस करने की सुविधा का इस्तेमाल करने का उदाहरण.
test_black_white
इस टेस्ट से यह पता चलता है कि डिवाइस पूरी तरह से ब्लैक ऐंड व्हाइट इमेज बनाता है या नहीं. यह दो इमेज कैप्चर करता है. पहली इमेज में बहुत कम गेन और कम एक्सपोज़र होता है. इससे फ़ोटो काली हो जाती है. दूसरी इमेज में बहुत ज़्यादा गेन और ज़्यादा एक्सपोज़र होता है. इससे फ़ोटो सफ़ेद हो जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: इससे ब्लैक ऐंड व्हाइट इमेज बनती हैं. सफ़ेद इमेज के सैचुरेटेड चैनलों में आरजीबी वैल्यू [255, 255, 255] होती हैं. साथ ही, गड़बड़ी का मार्जिन 1% से कम होता है.
नौवीं इमेज. test_black_white, ब्लैक ऐंड व्हाइट का उदाहरण.
इमेज 10. test_black_white, सफ़ेद रंग का उदाहरण.
ग्यारहवां डायग्राम. test_black_white, प्लॉट के उदाहरण का मतलब.
test_burst_capture
इससे यह पुष्टि की जाती है कि पूरी कैप्चर पाइपलाइन, फ़ुल-साइज़ कैप्चर और सीपीयू के समय की स्पीड के साथ काम कर सकती है.
जांचे गए एपीआई:
पास: इसमें फ़ुल साइज़ की कई इमेज कैप्चर की जाती हैं. साथ ही, फ़्रेम ड्रॉप और इमेज की चमक की जांच की जाती है.
test_burst_sameness_manual
यह मैन्युअल कैप्चर सेटिंग के साथ, 50 इमेज के पांच बर्स्ट लेता है. साथ ही, यह जांच करता है कि सभी इमेज एक जैसी हैं या नहीं. इस टेस्ट का इस्तेमाल यह पता लगाने के लिए करें कि क्या कुछ फ़्रेम ऐसे हैं जिन्हें अलग तरीके से प्रोसेस किया गया है या जिनमें आर्टफ़ैक्ट मौजूद हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSORandroid.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
पास: इमेज, विज़ुअल और आरजीबी वैल्यू के हिसाब से एक जैसी हैं.
फ़ेल: हर बर्स्ट की शुरुआत में, आरजीबी के औसत चार्ट में अचानक बढ़ोतरी या गिरावट दिखती है
first_API_level< 30 के लिए टॉलरेंस 3% हैfirst_API_level>= 30 के लिए टॉलरेंस 2% है
इमेज 12. test_burst_sameness_manual के औसत का उदाहरण.
13वीं इमेज. test_burst_sameness_manual_plot_means
test_crop_region_raw
इस टेस्ट से यह पता चलता है कि रॉ स्ट्रीम को काटा नहीं जा सकता.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureResult#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
पास: YUV इमेज को बीच से काटा जाता है, लेकिन RAW इमेज को नहीं.
आंकड़ा 14. test_crop_region_raw comp raw crop का उदाहरण.
आंकड़ा 15. test_crop_region_raw comp raw full example.
इमेज 16. test_crop_region_raw कंपोनेंट के YUV क्रॉप का उदाहरण.
इमेज 17. test_crop_region_raw YUV का पूरा उदाहरण.
test_crop_regions
इन कुकी से यह पता चलता है कि इमेज के कुछ हिस्से को क्रॉप करने की सुविधा काम कर रही है या नहीं. यह पूरी इमेज लेता है और पांच अलग-अलग हिस्सों (कोने और बीच) के पैच बनाता है. इसमें पांच क्षेत्रों के लिए, क्रॉप की गई इमेज शामिल होती हैं. यह पैच और काटी गई इमेज की वैल्यू की तुलना करता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
पास: काटी गई इमेज का हिस्सा, क्रॉप की गई इमेज के पैच से मेल खाता है.
test_ev_compensation
इस कुकी से यह जांच की जाती है कि एक्सपोज़र वैल्यू (ईवी) का मुआवजा लागू किया गया है या नहीं. इस टेस्ट में एक बुनियादी सेक्शन और एक ऐडवांस सेक्शन होता है.
बुनियादी सेक्शन में यह जांच की जाती है कि ईवी के लिए मुआवज़ा, CONTROL_AE_COMPENSATION_STEP से बनाई गई रेंज का इस्तेमाल करके दिया गया है या नहीं. हर कंपंसेशन वैल्यू पर आठ फ़्रेम कैप्चर किए जाते हैं.
ऐडवांस सेक्शन में आठ चरणों में एक्सपोज़र बढ़ता है. साथ ही, इसमें मेज़र की गई चमक की तुलना, अनुमानित चमक से की जाती है. अनुमानित वैल्यू का हिसाब, इन चीज़ों से लगाया जाता है: ईवी कॉम्पन्सेशन लागू न होने पर, इमेज की चमक और अगर हिसाब लगाई गई वैल्यू, इमेज की असल वैल्यू की सीमा से ज़्यादा हो जाती है, तो अनुमानित वैल्यू पूरी हो जाती है. अगर अनुमानित वैल्यू और मेज़र की गई वैल्यू मेल नहीं खाती हैं या अगर पांच चरणों के अंदर इमेज ज़्यादा एक्सपोज़ हो जाती हैं, तो टेस्ट पूरा नहीं होता.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATIONandroid.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCKandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
बेसिक सेक्शन पास: इमेज में पांच चरणों में, ओवरएक्सपोज़ किए बिना एक्सपोज़र को बढ़ता हुआ दिखाया गया है.
18वीं इमेज. test_ev_compensation_basic.
एडवांस सेक्शन पास: ईवी मुआवज़े की सेटिंग बढ़ने पर, यह ल्यूमा में हुई बढ़ोतरी को कैप्चर करता है. ईवी कॉम्पन्सेशन की हर सेटिंग के लिए कैप्चर किए गए आठ फ़्रेम में, ल्यूमा वैल्यू स्थिर होती हैं.
इमेज 19. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
ऐसे टेस्ट जिनसे यह पता चलता है कि आईएसओ और एक्सपोज़र टाइम अलग-अलग होने पर भी, एक जैसा एक्सपोज़र मिलता है. यह एक साथ कई फ़ोटो लेता है. इनमें आईएसओ और एक्सपोज़र टाइम को इस तरह से चुना जाता है कि दोनों एक-दूसरे को बैलेंस कर सकें.
नतीजों की चमक एक जैसी होनी चाहिए. हालांकि, क्रम के हिसाब से इमेज में नॉइज़ बढ़ता जाना चाहिए. यह जांच करता है कि सैंपल पिक्सेल की औसत वैल्यू एक-दूसरे के आस-पास हैं या नहीं. इससे यह पुष्टि होती है कि इमेज को 0 या 1 पर क्लैंप नहीं किया गया है. ऐसा होने पर, इमेज फ़्लैट लाइन की तरह दिखेंगी. कॉन्फ़िगरेशन फ़ाइल में debug फ़्लैग सेट करके, RAW इमेज के साथ भी टेस्ट चलाया जा सकता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: इमेज की चमक एक जैसी है, लेकिन आईएसओ बढ़ने पर नॉइज़ बढ़ जाता है. जब टेस्ट किए गए गेन स्पेस पर ISO*exposure की वैल्यू एक जैसी होती है, तब RGB प्लेन फ़्लैट होते हैं.
फ़ेल होने का तरीका: इस इमेज में, जैसे-जैसे गेन मल्टीप्लायर वैल्यू (x-ऐक्सिस) बढ़ती हैं वैसे-वैसे सामान्य किए गए आरजीबी प्लैन की औसत वैल्यू (y-ऐक्सिस), कम गेन मल्टीप्लायर वैल्यू से अलग होने लगती हैं.
20वीं इमेज. test_exposure_plot_means.
21वीं इमेज. test_exposure_mult=1.00.
आंकड़ा 22. test_exposure_mult=64.00.
test_latching
इन टेस्ट से यह पता चलता है कि FULL और LEVEL_3 कैमरों के लिए, एक्सपोज़र और गेन की सेटिंग सही फ़्रेम पर लॉक होती हैं या नहीं. यह एक के बाद एक अनुरोध करके कई फ़ोटो लेता है. साथ ही, हर फ़ोटो के लिए कैप्चर करने के अनुरोध के पैरामीटर बदलता है. यह कुकी, यह जांच करती है कि इमेज में ज़रूरी प्रॉपर्टी मौजूद हैं या नहीं.
जांचे गए एपीआई:
पास: इमेज [2, 3, 6, 8, 10, 12, 13] में आईएसओ या एक्सपोज़र बढ़ा है. साथ ही, ये इमेज नीचे दिए गए फ़िगर में प्लॉट में ज़्यादा आरजीबी वैल्यू के साथ दिखती हैं.
आंकड़ा 23. test_latching प्लॉट का मतलब उदाहरण है.
आंकड़ा 24. test_latching i=00.
आंकड़ा 25. test_latching i=01.
26वीं इमेज. test_latching i=02.
27वीं इमेज. test_latching i=03.
28वीं इमेज. test_latching i=04.
29वीं इमेज. test_latching i=05.
तीसवीं इमेज. test_latching i=06.
31वीं इमेज. test_latching i=07.
32वीं इमेज. test_latching i=08.
33वीं इमेज. test_latching i=09.
34वीं इमेज. test_latching i=10.
35वीं इमेज. test_latching i=11.
36वीं इमेज. test_latching i=12.
test_linearity
इस टेस्ट से यह पता चलता है कि डिवाइस प्रोसेसिंग को लीनियर पिक्सल में बदला जा सकता है या नहीं. इस मोड में, एक ही टारगेट पर डिवाइस को पॉइंट करके, कई फ़ोटो एक साथ ली जाती हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCKandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास: संवेदनशीलता बढ़ने के साथ-साथ, R, G, B वैल्यू में भी बढ़ोतरी होनी चाहिए.
आंकड़ा 37. test_linearity प्लॉट का मतलब उदाहरण.
test_locked_burst
यह 3A लॉक और YUV बर्स्ट की जांच करता है. इसके लिए, ऑटो सेटिंग का इस्तेमाल किया जाता है. इस टेस्ट को ऐसे सीमित डिवाइसों पर भी पास करने के लिए डिज़ाइन किया गया है जिनमें MANUAL_SENSOR या PER_FRAME_CONTROLS नहीं है.
इस टेस्ट में, YUV इमेज की एक जैसी क्वालिटी की जांच की जाती है. वहीं, फ़्रेम रेट की जांच CTS में की जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
पास: कैप्चर किए गए फ़्रेम एक जैसे दिखते हैं.
आकृति 38. test_locked_burst frame0 का उदाहरण.
आकृति 39. test_locked_burst frame1 का उदाहरण.
40वीं इमेज. test_locked_burst frame2 का उदाहरण.
scene1_2
scene 1_2, scene 1_1 की फ़ंक्शन के हिसाब से एक जैसी कॉपी है. इसमें सबसीन स्ट्रक्चर लागू किया गया है, ताकि scene 1 की अवधि को कम किया जा सके.
test_param_color_correction
यह टेस्ट करता है कि android.colorCorrection.* पैरामीटर सेट होने पर लागू किए गए हैं या नहीं.
यह अलग-अलग ट्रांसफ़ॉर्म और गेन वैल्यू के साथ इमेज कैप्चर करता है. साथ ही, यह जांच करता है कि वे अलग-अलग दिख रही हैं या नहीं. आउटपुट को ज़्यादा से ज़्यादा लाल या नीला बनाने के लिए, ट्रांसफ़ॉर्म और गेन को चुना जाता है. लीनियर टोनमैप का इस्तेमाल करता है.
टोन मैपिंग, इमेज प्रोसेसिंग में इस्तेमाल की जाने वाली एक तकनीक है. इसका इस्तेमाल, रंगों के एक सेट को दूसरे सेट पर मैप करने के लिए किया जाता है. इससे, ज़्यादा डाइनैमिक रेंज वाली इमेज को ऐसे मीडियम में दिखाया जा सकता है जिसकी डाइनैमिक रेंज कम होती है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
पास: ट्रांसफ़ॉर्मेशन के हिसाब से R और B वैल्यू बढ़ती हैं.
आंकड़ा 41. test_param_color_correction प्लॉट का मतलब बताने वाला उदाहरण.
नीचे दी गई इमेज में, x-ऐक्सिस पर कैप्चर करने के अनुरोध दिए गए हैं: 0 = यूनिटी, 1 = रेड बूस्ट, और 2 = ब्लू बूस्ट.
आंकड़ा 42. test_param_color_correction req=0 unity का उदाहरण.
आंकड़ा 43. test_param_color_correctness req=1 red boost का उदाहरण.
आंकड़ा 44. test_param_color_correction req=2 blue boost का उदाहरण.
test_param_flash_mode
इस कुकी से यह पता चलता है कि android.flash.mode पैरामीटर लागू किया गया है या नहीं. यह मैन्युअल तरीके से एक्सपोज़र को डार्क साइड पर सेट करता है, ताकि यह साफ़ तौर पर पता चल सके कि फ़्लैश चालू हुआ या नहीं. साथ ही, यह लीनियर टोनमैप का इस्तेमाल करता है. यह कुकी, टाइल इमेज के बीच के हिस्से की जांच करती है. इससे यह पता चलता है कि फ़्लैश चालू हुआ था या नहीं. इसके लिए, यह देखती है कि क्या कोई बड़ा ग्रेडिएंट बनाया गया है.
जांचे गए एपीआई:
पास: टाइल इमेज के बीच में बड़ा ग्रेडिएंट है. इसका मतलब है कि फ़्लैश चालू था.
45वीं इमेज. test_param_flash_mode 1 का उदाहरण.
इमेज 46. test_param_flash_mode का एक टाइल वाला उदाहरण.
47वीं इमेज. test_param_flash_mode 2 का उदाहरण.
इमेज 48. test_param_flash_mode के दो टाइल का उदाहरण.
test_param_noise_reduction
इस कुकी से यह जांच की जाती है कि android.noiseReduction.mode पैरामीटर को सेट करते समय, उसे सही तरीके से लागू किया गया है या नहीं. इस सुविधा की मदद से, कम रोशनी में भी कैमरे से इमेज कैप्चर की जा सकती हैं. यह ज़्यादा एनालॉग गेन का इस्तेमाल करता है, ताकि यह पक्का किया जा सके कि कैप्चर की गई इमेज में नॉइज़ है. यह कुकी तीन इमेज कैप्चर करती है. ये इमेज, नॉइज़ रिडक्शन की सुविधा बंद होने, तेज़ गति से इमेज कैप्चर करने, और अच्छी क्वालिटी में इमेज कैप्चर करने के लिए होती हैं. यह कम गेन और नॉइज़ रिडक्शन (एनआर) बंद करके भी एक इमेज कैप्चर करता है. साथ ही, इसके वैरिएंस को बेसलाइन के तौर पर इस्तेमाल करता है. सिग्नल-टू-नॉइज़ (एसएनआर) रेशियो जितना ज़्यादा होगा, इमेज की क्वालिटी उतनी ही बेहतर होगी.
जांचे गए एपीआई:
पास: नॉइज़ कम करने के अलग-अलग मोड के हिसाब से एसएनआर अलग-अलग होता है. यह इस ग्राफ़ के हिसाब से काम करता है:
आंकड़ा 49. test_param_noise_reduction प्लॉट एसएनआर का उदाहरण.
0: बंद, 1: तेज़, 2: ज़्यादा क्वालिटी, 3: कम , 4: ज़ेडएसएल
आंकड़ा 50. test_param_noise_reduction high gain nr=0 का उदाहरण.
आंकड़ा 51. test_param_noise_reduction high gain nr=1 का उदाहरण.
आंकड़ा 52. test_param_noise_reduction हाई गेन nr=2 का उदाहरण.
आंकड़ा 53. test_param_noise_reduction high gain nr=3 का उदाहरण.
54वीं इमेज. test_param_noise_reduction के कम गेन का उदाहरण.
test_param_shading_mode
इस कुकी से यह पता चलता है कि android.shading.mode पैरामीटर लागू किया गया है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
पास: शेडिंग मोड स्विच किए जाते हैं और लेंस शेडिंग मैप में उम्मीद के मुताबिक बदलाव किए जाते हैं.
55वीं इमेज. test_param_shading_mode लेंस शेडिंग मैप, मोड 0 लूप 0 का उदाहरण.
56वीं इमेज. test_param_shading_mode लेंस शेडिंग मैप, मोड 1 लूप 0 का उदाहरण.
57वीं इमेज. test_param_shading_mode लेंस शेडिंग मैप, मोड 2 लूप 0 का उदाहरण.
test_param_tonemap_mode
इस कुकी से यह पता चलता है कि android.tonemap.mode पैरामीटर लागू किया गया है या नहीं. यह हर R, G, B चैनल पर अलग-अलग टोनमैप कर्व लागू करता है. साथ ही, यह जांच करता है कि आउटपुट इमेज में उम्मीद के मुताबिक बदलाव हुए हैं या नहीं. इस टेस्ट में दो टेस्ट शामिल हैं: test1 और test2.
जांचे गए एपीआई:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास:
test1: दोनों इमेज में लीनियर टोनमैप है, लेकिनn=1में ज़्यादा ढलान वाला ग्रेडिएंट है.n=1इमेज के लिए, G (हरा) चैनल ज़्यादा चमकदार है.test2: एक ही टोनमैप, लेकिन अलग-अलग अवधि. इमेज एक जैसी हैं.
इमेज 58. n=0 के साथ test_param_tonemap_mode.
इमेज 59. n=1 के साथ test_param_tonemap_mode.
test_post_raw_sensitivity_boost
यह कुकी, पोस्ट रॉ सेंसिटिविटी बूस्ट की जांच करती है. यह अलग-अलग सेंसिटिविटी वाली रॉ और YUV इमेज का सेट कैप्चर करता है. साथ ही, रॉ सेंसिटिविटी बूस्ट कॉम्बिनेशन पोस्ट करता है. इसके अलावा, यह देखता है कि आउटपुट पिक्सल का औसत, अनुरोध की सेटिंग से मेल खाता है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGEandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: बूस्ट बढ़ने पर रॉ इमेज ज़्यादा डार्क हो जाती हैं, जबकि YUV इमेज की चमक एक जैसी रहती है.
आंकड़ा 60. test_post_raw_sensitivity_boost raw s=3583 boost=0100 का उदाहरण.
आंकड़ा 61. test_post_raw_sensitivity_boost raw s=1792 boost=0200 का उदाहरण.
आंकड़ा 62. test_post_raw_sensitivity_boost raw s=0896 boost=0400 का उदाहरण.
आंकड़ा 63. test_post_raw_sensitivity_boost raw s=0448 boost=0800 का उदाहरण.
आंकड़ा 64. test_post_raw_sensitivity_boost raw s=0224 boost=1600 उदाहरण.
65वीं इमेज. test_post_raw_sensitivity_boost raw s=0112 boost=3199 का उदाहरण.
आंकड़ा 66. test_post_raw_sensitivity_boost का मतलब है कि रॉ प्लॉट का उदाहरण.
इमेज 67. test_post_raw_sensitivity_boost YUV s=0112 boost=3199 का उदाहरण.
आंकड़ा 68. test_post_raw_sensitivity_boost YUV s=0448 boost=0800 का उदाहरण.
आंकड़ा 69. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 का उदाहरण.
आंकड़ा 70. test_post_raw_sensitivity_boost YUV s=1792 boost=0200 का उदाहरण.
आंकड़ा 71. test_post_raw_sensitivity_boost YUV s=3585 boost=0100 का उदाहरण.
72वीं इमेज. test_post_raw_sensitivity_boost_yuv_plot_means
test_raw_exposure
यह फ़ंक्शन, एक्सपोज़र टाइम को बढ़ाकर रॉ इमेज का एक सेट कैप्चर करता है और पिक्सल वैल्यू को मेज़र करता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
पास: आईएसओ (गेन) बढ़ाने से पिक्सल, रोशनी के लिए ज़्यादा संवेदनशील हो जाते हैं. इसलिए, प्लॉट बाईं ओर खिसक जाता है.
आंकड़ा 73. test_raw_exposure ISO=55 का उदाहरण.
10⁰ का मतलब 1 मि॰से॰, 10¹ का मतलब 10 मि॰से॰, और 10⁻¹ का मतलब 0.1 मि॰से॰ है.
आंकड़ा 74. test_raw_exposure ISO=132 का उदाहरण.
आंकड़ा 75. test_raw_exposure ISO=209 का उदाहरण.
आंकड़ा 76. test_raw_exposure ISOs=286 का उदाहरण.
आंकड़ा 77. test_raw_exposure ISO=363 का उदाहरण.
आंकड़ा 78. test_raw_exposure ISO=440 का उदाहरण.
test_reprocess_noise_reduction
ऐसे टेस्ट जिनके लिए, फिर से प्रोसेस करने के अनुरोधों को लागू किया जाता है.android.noiseReduction.mode
इस सुविधा की मदद से, कम रोशनी में कैमरे से ली गई फ़ोटो को फिर से प्रोसेस किया जाता है. यह पुष्टि करने के लिए कि कैप्चर की गई इमेज में नॉइज़ है, यह ज़्यादा एनालॉग गेन का इस्तेमाल करता है. यह कुकी, फिर से प्रोसेस की गई तीन इमेज कैप्चर करती है. ये इमेज, नॉइज़ रिडक्शन की सुविधा बंद होने, तेज़ गति से काम करने, और अच्छी क्वालिटी के लिए होती हैं. यह कम गेन और नॉइज़ रिडक्शन (एनआर) बंद करके, फिर से प्रोसेस की गई इमेज कैप्चर करता है. साथ ही, इसके अंतर का इस्तेमाल बेसलाइन के तौर पर करता है.
जांचे गए एपीआई:
पास: FAST >= OFF, HQ >= FAST, और HQ >> OFF.
79वीं इमेज. एसएनआर वर्सेस एनआर मोड के प्लॉट का उदाहरण.
test_tonemap_sequence
यह अलग-अलग टोनमैप कर्व के साथ, शॉट के क्रम की जांच करता है. इसमें मैन्युअल तरीके से तीन फ़ोटो ली जाती हैं. साथ ही, लीनियर टोनमैप का इस्तेमाल किया जाता है. यह डिफ़ॉल्ट टोनमैप के साथ, मैन्युअल तरीके से तीन फ़ोटो कैप्चर करता है. यह हर फ़्रेम पेयर के बीच के अंतर का हिसाब लगाता है.
जांचे गए एपीआई:
पास: इसमें एक जैसे तीन फ़्रेम हैं. इसके बाद, एक जैसे तीन फ़्रेम का दूसरा सेट है.
आंकड़ा 80. test_tonemap_sequence i=0 का उदाहरण.
आकृति 81. test_tonemap_sequence i=1 का उदाहरण.
82वीं इमेज. test_tonemap_sequence i=2 का उदाहरण.
आकृति 83. test_tonemap_sequence i=3 का उदाहरण.
84वीं इमेज. test_tonemap_sequence i=4 का उदाहरण.
आंकड़ा 85. test_tonemap_sequence i=5 का उदाहरण.
test_yuv_jpeg_all
यह कुकी, इमेज कैप्चर करने के लिए रिपोर्ट किए गए सभी साइज़ और फ़ॉर्मैट की जांच करती है. यह मैन्युअल अनुरोध का इस्तेमाल करता है. इसमें लीनियर टोनमैप होता है, ताकि image_processing_utils मॉड्यूल से बदलने पर YUV और JPEG एक जैसे दिखें. इमेज डिफ़ॉल्ट रूप से सेव नहीं की जाती हैं. हालांकि, debug_mode को चालू करके इन्हें सेव किया जा सकता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
पास: सभी इमेज सेंटर में, आरजीबी में बदली गई इमेज में ज़्यादा से ज़्यादा रूट मीन स्क्वेयर (आरएमएस) (सिग्नल की वैल्यू) का अंतर होता है. साथ ही, सबसे ज़्यादा रिज़ॉल्यूशन वाली वाईयूवी इमेज में 3% का अंतर होता है.
इमेज 86. test_yuv_jpeg_all का उदाहरण.
test_yuv_plus_dng
यह कुकी, इमेज कैप्चर करने के लिए बताए गए साइज़ और फ़ॉर्मैट के काम करने की जांच करती है.
जांचे गए एपीआई:
पास: टेस्ट पूरा हो गया है और इसमें अनुरोध की गई इमेज दिख रही हैं.
इमेज 87. test_yuv_plus_dng का उदाहरण.
scene1_3
scene 1_3, scene 1_1 की फ़ंक्शन के हिसाब से एक जैसी कॉपी है. इसमें सबसीन स्ट्रक्चर लागू किया गया है, ताकि scene 1 की अवधि को कम किया जा सके.
test_capture_result
इन कुकी से यह जांच की जाती है कि CaptureResult ऑब्जेक्ट में मान्य डेटा वापस आता है या नहीं. इस टेस्ट में, अपने-आप कैप्चर होने की सुविधा, मैन्युअल तरीके से कैप्चर करने की सुविधा, और दूसरी बार अपने-आप कैप्चर होने की सुविधा शामिल है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास: मेटाडेटा, सभी कैप्चर के लिए मान्य है. साथ ही, मैन्युअल सेटिंग दूसरे ऑटो कैप्चर में लीक नहीं होती हैं. यह कुकी, कैप्चर किए गए डेटा के लिए लेंस शेडिंग करेक्शन को प्लॉट करती है.
88वीं इमेज. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
इससे यह पुष्टि की जाती है कि DNG रॉ मॉडल के पैरामीटर सही हैं. इस प्लॉट में, अलग-अलग सेंसिटिविटी पर कैप्चर किए गए रॉ शॉट में, ग्रे कार्ड के सेंटर पैच के मेज़र किए गए वैरिएंस को दिखाया गया है. साथ ही, इन वैल्यू की तुलना, कैमरा HAL में मौजूद DNG नॉइज़ मॉडल से की गई है. यह मॉडल, कैप्चर के नतीजे के ऑब्जेक्ट में मिले O और S पैरामीटर के आधार पर, हर सेंसिटिविटी पर वैरिएंस का अनुमान लगाता है. डीएनजी नॉइज़ मॉडल के बारे में ज़्यादा जानकारी पाने के लिए, डीएनजी नॉइज़ मॉडल पर यह दस्तावेज़ डाउनलोड करें.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: DNG रॉ मॉडल के पैरामीटर सही हैं. अनुमानित आरजीबी वैल्यू, मेज़र की गई वास्तविक आरजीबी वैल्यू से मेल खाती हैं.
89वीं इमेज. test_dng_noise_model_plog.
test_jpeg
YUV इमेज और डिवाइस की JPEG इमेज को बदलने वाले टेस्ट एक जैसे दिखते हैं. टेस्ट में, इमेज के बीच के 10% हिस्से को लिया जाता है. इसके बाद, आरजीबी वैल्यू का हिसाब लगाया जाता है. साथ ही, यह पुष्टि की जाती है कि ये वैल्यू मेल खाती हैं.
जांचे गए एपीआई:
पास: हर इमेज के बीच आरजीबी का औसत अंतर 3% से कम है.
90वीं इमेज. test_jpeg_fmt=jpg.jpg.
91वीं इमेज. test_jpeg=fmt=yuv.jpg.
test_raw_burst_sensitivity
यह फ़ंक्शन, बढ़ती हुई ब्राइटनेस के साथ रॉ इमेज का एक सेट कैप्चर करता है और नॉइज़ को मेज़र करता है. इस मोड में, सिर्फ़ रॉ फ़ॉर्मैट में फ़ोटो कैप्चर की जाती हैं. साथ ही, बर्स्ट मोड में फ़ोटो कैप्चर की जाती हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
पास: हर शॉट, पिछले शॉट की तुलना में ज़्यादा नॉइज़ी है, क्योंकि गेन बढ़ रहा है.
यह सेंटर के आंकड़ों वाली ग्रिड सेल के वैरिएंस का इस्तेमाल करता है.
92वीं इमेज. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
यह इमेज, अलग-अलग सेंसिटिविटी वाली रॉ इमेज का एक सेट कैप्चर करती है. साथ ही, इमेज के बीच के 10% हिस्से में नॉइज़ (वैरिएशन) को मेज़र करती है. इस टेस्ट में यह देखा जाता है कि हर शॉट, पिछले शॉट से ज़्यादा नॉइज़ी है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
पास: हर शॉट के साथ वैरियंस बढ़ता है.
इमेज 93. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
यह टेस्ट, एक फ़्रेम को YUV और JPEG, दोनों फ़ॉर्मैट में कैप्चर करता है. यह मैन्युअल अनुरोध का इस्तेमाल करता है. इसमें लीनियर टोनमैप होता है, ताकि image_processing_utils मॉड्यूल से बदलने पर YUV और JPEG एक जैसे दिखें.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
पास: YUV और JPEG इमेज एक जैसी हैं. साथ ही, इनमें 1% से कम आरएमएस (सिग्नल की वैल्यू) का अंतर है.
आकृति 94. JPEG फ़ॉर्मैट में test_yuv_plus_jpeg.
इमेज 95. YUV फ़ॉर्मैट के साथ test_yuv_plus_jpeg.
test_yuv_plus_raw
अगर यह सुविधा काम करती है, तो यह टेस्ट एक फ़्रेम को रॉ (10-बिट और 12-बिट रॉ) और YUV, दोनों फ़ॉर्मैट में कैप्चर करता है. यह लीनियर टोनमैप के साथ मैन्युअल अनुरोध का इस्तेमाल करता है, इसलिए रॉ और YUV के एक जैसे होने की उम्मीद है. यह फ़ंक्शन, आरजीबी में बदली गई इमेज के सेंटर के 10% हिस्से की आरजीबी वैल्यू की तुलना करता है. लॉगandroid.shading.mode.
जांचे गए एपीआई:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.hardware.graphics.ImageFormat#RAW10android.hardware.graphics.ImageFormat#RAW12
पास: YUV और रॉ इमेज एक जैसी हैं. साथ ही, इनमें 3.5% से कम आरएमएस (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) का अंतर है.
96वीं इमेज. test_yuv_plus_raw_shading=1_raw.jpg.
97वीं इमेज. test_yuv_plus_raw_shading=1_yuv.jpg.
test_sensitivity_priority
ज़्यादा आईएसओ और नॉइज़ लेवल के बीच संबंध की पुष्टि करने के लिए, अलग-अलग आईएसओ सेटिंग पर CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY टेस्ट किए गए.
जांचे गए एपीआई:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
पास: आईएसओ ज़्यादा होने पर, नॉइज़ लेवल बढ़ जाता है.
टेस्ट स्किप करने की शर्तें
अगर इनमें से कोई भी शर्त पूरी होती है, तो test_sensitivity_priority.py टेस्ट को छोड़ दिया जाता है:
- डिवाइस का पहला एपीआई लेवल (
first_api_level) 35 या इससे कम हो. - डिवाइस,
CONTROL_AE_AVAILABLE_PRIORITY_MODESमेंCONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYका विज्ञापन नहीं दिखाता.
test_exposure_time_priority
अलग-अलग एक्सपोज़र टाइम पर CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY टेस्ट किए जाते हैं. साथ ही, यह देखा जाता है कि आईएसओ की रेंज में ब्राइटनेस स्थिर है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
पास: अगर आईएसओ, कंपंसेशन रेंज में है, तो एक्सपोज़र के समय के हिसाब से चमक स्थिर (टॉलरेंस के अंदर) है.
टेस्ट स्किप करने की शर्तें
अगर इनमें से कोई भी शर्त पूरी होती है, तो test_exposure_time_priority टेस्ट को छोड़ दिया जाता है:
- डिवाइस का पहला एपीआई लेवल (
first_api_level) 35 या इससे कम हो. - डिवाइस,
CONTROL_AE_AVAILABLE_PRIORITY_MODESमेंCONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYका विज्ञापन नहीं दिखाता.
scene2_a
scene2_a में तीन चेहरों को दिखाया गया है. इनका बैकग्राउंड स्लेटी रंग का है और इन्होंने सामान्य कपड़े पहने हैं. चेहरों को अलग-अलग तरह की त्वचा के रंग के हिसाब से चुना जाता है. चेहरे की पहचान करने की सुविधा के बेहतर तरीके से काम करने के लिए, चार्ट का ओरिएंटेशन सही होना चाहिए.
आंकड़ा 98. scene2_a का उदाहरण.
test_autoframing
यह कुकी, कैमरा डिवाइस की ऑटोफ़्रेमिंग की सुविधा के काम करने के तरीके की जांच करती है. यह बहुत ज़्यादा ज़ूम करता है, ताकि सीन में मौजूद कोई भी चेहरा न दिखे. साथ ही, CaptureRequest में AUTOFRAMING को True पर सेट करके, ऑटोफ़्रेमिंग मोड चालू करता है. इसके अलावा, यह पुष्टि करता है कि जब स्थिति एक जैसी हो जाती है, तब ओरिजनल सीन में मौजूद सभी चेहरों का पता लगाया जा सकता है या नहीं. इसका मतलब है कि जब CaptureResult में AUTOFRAMING_STATE को AUTOFRAMING_STATE_CONVERGED पर सेट किया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
पास: तीनों चेहरों की पहचान की गई है.
test_display_p3
ColorSpaceProfiles API का इस्तेमाल करके, JPEG फ़ॉर्मैट में Display P3 टेस्ट कैप्चर किए जाते हैं. इस टेस्ट में यह देखा जाता है कि कैप्चर की गई JPEG इमेज के हेडर में सही ICC प्रोफ़ाइल मौजूद है या नहीं. साथ ही, यह भी देखा जाता है कि इमेज में sRGB गैमट के बाहर के रंग शामिल हैं या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
पास: JPEG में Display P3 ICC प्रोफ़ाइल और sRGB गैमुट से बाहर के रंग शामिल हैं.
test_effects
यह कुकी, कैमरे के साथ काम करने वाले इफ़ेक्ट के लिए फ़्रेम कैप्चर करती है. साथ ही, यह देखती है कि वे सही तरीके से जनरेट हुए हैं या नहीं. यह टेस्ट सिर्फ़ OFF और MONO इफ़ेक्ट की जांच करता है. हालांकि, यह सभी इफ़ेक्ट के लिए इमेज सेव करता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTSandroid.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
पास: इससे सीन की इमेज को इफ़ेक्ट OFF के साथ कैप्चर किया जाता है. साथ ही, इफ़ेक्ट को MONO पर सेट करके मोनोक्रोम इमेज कैप्चर की जाती है.
99वीं इमेज. test_effects_MONO.
test_exposure_keys_consistent
इस टेस्ट में, एई की सुविधा चालू करके कैप्चर की गई इमेज के औसत ल्यूमा की तुलना, एई की सुविधा बंद करके कैप्चर की गई इमेज के औसत ल्यूमा से की जाती है. एई की सुविधा बंद करके कैप्चर की गई इमेज में, एई की सुविधा चालू करके कैप्चर की गई इमेज के CaptureResult में मिले एक्सपोज़र पैरामीटर (सेंसिटिविटी, एक्सपोज़र टाइम, फ़्रेम की अवधि, पोस्ट रॉ सेंसिटिविटी बूस्ट) को मैन्युअल तरीके से लागू किया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
पास: दोनों कैप्चर के बीच ल्यूमा का अंतर चार प्रतिशत से कम है.
test_format_combos
यह आउटपुट फ़ॉर्मैट के अलग-अलग कॉम्बिनेशन की जांच करता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAPandroid.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()android.hardware.camera2.CameraCaptureSession#captureBurst()
पास: सभी कॉम्बिनेशन को कैप्चर कर लिया गया है.
test_num_faces
यह कुकी, चेहरे की पहचान करने की सुविधा की जांच करती है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: इसमें तीन चेहरों की पहचान की गई है.
आंकड़ा 100. test_num_faces फ़ेस डिटेक्शन मोड 1 का उदाहरण.
test_reprocess_uv_swap
ऐसे टेस्ट जिनमें YUV रीप्रोसेसिंग, U और V प्लैन को स्वैप नहीं करती है. इसका पता लगाने के लिए, फिर से प्रोसेस की गई इमेज और प्रोसेस न की गई इमेज के बीच के अंतर (एसएडी) का हिसाब लगाया जाता है. अगर फिर से प्रोसेस किए गए कैप्चर के आउटपुट U और V प्लैन को स्वैप करने से SAD बढ़ जाता है, तो यह माना जाता है कि आउटपुट में सही U और V प्लैन हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraDevice#createCaptureSessionandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSINGandroid.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
पास: U और V प्लैन स्वैप नहीं किए गए हैं.
इमेज 101. test_reprocess_uv_swap का उदाहरण.
scene2_b
test_preview_num_faces
इस टेस्ट में, चेहरे की पहचान करने की सुविधा की जांच की जाती है. इसमें, चेहरे के सीन में स्किन टोन की विविधता को बढ़ाया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: इसमें चेहरे के बाउंडिंग बॉक्स में, चेहरे के लैंडमार्क के साथ तीन चेहरे मिलते हैं.
आंकड़ा 102. test_num_faces फ़ेस डिटेक्शन मोड 1 का उदाहरण.
test_yuv_jpeg_capture_sameness
यह सबसे बड़े सामान्य YUV और JPEG फ़ॉर्मैट का इस्तेमाल करके दो इमेज कैप्चर करता है. इनका आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) सबसे बड़े JPEG फ़ॉर्मैट के बराबर होता है. साथ ही, इनका रिज़ॉल्यूशन 1920x1440 से ज़्यादा नहीं होता.
यह कुकी, jpeg.quality को 100 पर सेट करती है और ड्यूअल सर्फ़ेस अनुरोध कैप्चर करती है. यह फ़ंक्शन, दोनों इमेज को RGB ऐरे में बदलता है. इसके बाद, दोनों इमेज के बीच 3D रूट मीन स्क्वेयर (आरएमएस) अंतर का हिसाब लगाता है.
इसके अलावा, इस टेस्ट से यह पुष्टि की जाती है कि स्ट्रीम करने के सभी तरीकों के लिए YUV आउटपुट, STILL_CAPTURE इस्तेमाल करने के तरीके के YUV से मिलते-जुलते हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureRequest#JPEG_QUALITYandroid.graphics.ImageFormat#JPEG
पास: STILL_CAPTURE इस्तेमाल के उदाहरण के लिए, YUV और JPEG इमेज में 3% से कम आरएमएस (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) का अंतर है. साथ ही, इस्तेमाल के सभी उदाहरणों के लिए, YUV इमेज में STILL_CAPTURE इस्तेमाल के उदाहरण वाली YUV इमेज से 10% से कम आरएमएस का अंतर है.
scene2_c
test_num_faces
इस टेस्ट में, चेहरे की पहचान करने की सुविधा को परखा जाता है. इसमें चेहरे वाले सीन में अलग-अलग स्किन टोन का इस्तेमाल किया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: इसमें तीन चेहरों की पहचान की गई है.
आंकड़ा 103. test_num_faces फ़ेस डिटेक्शन मोड का उदाहरण.
test_jpeg_capture_perf_class
यह टेस्ट, CDD के सेक्शन 2.2.7.2 कैमरा में बताई गई S परफ़ॉर्मेंस क्लास के लिए, JPEG कैप्चर करने में लगने वाले समय की जांच करता है.
पास: दोनों प्राइमरी कैमरों के लिए, 1080 पिक्सल रिज़ॉल्यूशन पर Camera2 JPEG कैप्चर करने में लगने वाला समय 1000 मि॰से॰ से कम होना चाहिए. यह समय, ITS लाइटिंग की स्थितियों (3000K) में CTS कैमरा PerformanceTest से मापा जाता है.
test_camera_launch_perf_class
यह टेस्ट, CDD के सेक्शन 2.2.7.2 कैमरा में बताए गए S परफ़ॉर्मेंस क्लास के लिए, कैमरा लॉन्च होने में लगने वाले समय की जांच करता है.
पास: दोनों प्राइमरी कैमरों के लिए, Camera2 के चालू होने में लगने वाला समय (कैमरा खुलने से लेकर पहले प्रीव्यू फ़्रेम तक) 600 मि॰से॰ से कम होना चाहिए. यह समय, आईटीएस की रोशनी की स्थितियों (3000K) में, CTS के camera PerformanceTest से मापा जाता है.
test_default_camera_hdr
इस टेस्ट में यह जांच की जाती है कि परफ़ॉर्मेंस क्लास 15 के लिए, डिफ़ॉल्ट कैमरा कैप्चर अल्ट्रा एचडीआर है या नहीं. इसके बारे में सीडीडी के सेक्शन 2.2.7.2 कैमरा में बताया गया है.
पास: परफ़ॉर्मेंस क्लास 15 वाले डिवाइस के लिए, डिफ़ॉल्ट कैमरा पैकेज से ली गई इमेज, अल्ट्रा एचडीआर फ़ॉर्मैट में होनी चाहिए.
scene2_d
test_preview_num_faces
इस टेस्ट में, चेहरे की पहचान करने की सुविधा की जांच की जाती है. इसमें, चेहरे के सीन में स्किन टोन की विविधता को बढ़ाया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.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_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AF_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
पास: 3A सिस्टम, 50 फ़्रेम कैप्चर होने के बाद सेटल हो जाता है.
test_num_faces
इस टेस्ट में, चेहरे की पहचान करने की सुविधा को परखा जाता है. इसमें चेहरे वाले सीन में अलग-अलग स्किन टोन का इस्तेमाल किया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: इसमें तीन चेहरों का पता चला है.
scene2_f
scene2_f में तीन चेहरे हैं. इनका बैकग्राउंड और कपड़े सफ़ेद रंग के हैं. चेहरों में अलग-अलग तरह के स्किन टोन हैं और बैकग्राउंड के साथ ज़्यादा कंट्रास्ट है.
इमेज 104. scene2_f का उदाहरण.
test_preview_num_faces
इस टेस्ट में, चेहरे की पहचान करने की सुविधा को परखा जाता है. इसमें चेहरे वाले सीन में अलग-अलग स्किन टोन का इस्तेमाल किया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: इसमें चेहरे के बाउंडिंग बॉक्स में, चेहरे के लैंडमार्क के साथ तीन चेहरे मिलते हैं.
105वीं इमेज. test_num_faces_fd_mode_1 का उदाहरण.
scene2_g
scene2_g में तीन प्रोफ़ाइल फ़ेस हैं. इनका बैकग्राउंड और कपड़े सफ़ेद रंग के हैं.
चेहरों में अलग-अलग तरह के स्किन टोन हैं और बैकग्राउंड के साथ ज़्यादा कंट्रास्ट है.
106वीं इमेज. scene2_g का उदाहरण.
test_preview_num_faces
इस टेस्ट में, चेहरे की पहचान करने की सुविधा को परखा जाता है. इसमें चेहरे वाले सीन में अलग-अलग स्किन टोन का इस्तेमाल किया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: इसमें चेहरे के बाउंडिंग बॉक्स में, चेहरे के लैंडमार्क के साथ तीन चेहरे मिलते हैं.
आंकड़ा 107. test_preview_num_faces का उदाहरण.
scene3
scene3 ISO12233 चार्ट का इस्तेमाल करता है. साथ ही, ज़्यादातर टेस्ट में चार्ट एक्सट्रैक्टर तरीके का इस्तेमाल किया जाता है, ताकि सीन में मौजूद चार्ट का पता लगाया जा सके. इस वजह से, सेव की गई ज़्यादातर इमेज में, सीन 1, 2 या 4 की इमेज की तरह बॉर्डर नहीं होते, बल्कि सिर्फ़ चार्ट होता है. चार्ट फ़ाइंडर के बेहतर तरीके से काम करने के लिए, चार्ट का ओरिएंटेशन सही होना चाहिए.
test_edge_enhancement
इस कुकी से यह जांच की जाती है कि android.edge.mode पैरामीटर सही तरीके से लागू किया गया है या नहीं. यह फ़ंक्शन, हर एज मोड के लिए, फिर से प्रोसेस न की गई इमेज कैप्चर करता है. साथ ही, आउटपुट इमेज की शार्पनेस और कैप्चर के नतीजे का मेटाडेटा दिखाता है. यह फ़ंक्शन, कैप्चर करने के अनुरोध को प्रोसेस करता है. इसके लिए, यह एज मोड, संवेदनशीलता, एक्सपोज़र टाइम, फ़ोकस दूरी, और आउटपुट सर्फ़ेस पैरामीटर का इस्तेमाल करता है.
पास: HQ मोड (2), OFF मोड (0) से ज़्यादा शार्प है. FAST मोड (1) OFF मोड से ज़्यादा शार्प है. HQ मोड, FAST मोड से ज़्यादा शार्प या इसके बराबर है.
जांचे गए एपीआई:
कैमरे के इन पैरामीटर पर असर पड़ा है:
EDGE_MODE
आंकड़ा 108. test_edge_enhancement edge=0 का उदाहरण.
आंकड़ा 109. test_edge_enhancement edge=1 (फ़ास्ट मोड) का उदाहरण.
आंकड़ा 110. test_edge_enhancement edge=2 (हाई क्वालिटी मोड) का उदाहरण.
test_flip_mirror
इस टेस्ट से यह पता चलता है कि इमेज, सीडीडी में दिए गए 7.5.2 फ्रंट-फ़ेसिंग कैमरा के मुताबिक सही ओरिएंटेशन में है या नहीं.
मिरर की गई, फ़्लिप की गई या घुमाई गई इमेज की पहचान, बीच में मौजूद डायमंड फ़ीचर से की जा सकती है.
पास: इमेज को फ़्लिप, मिरर या रोटेट नहीं किया गया है.
इमेज 111. test_flip_mirror सीन पैच का उदाहरण.
test_imu_drift
इस टेस्ट में यह देखा जाता है कि डिवाइस के स्थिर रहने और हाई-डेफ़िनिशन प्रीव्यू कैप्चर करने के दौरान, इनर्शियल मेज़रमेंट यूनिट (आईएमयू) का आउटपुट 30 सेकंड तक स्थिर रहता है या नहीं.
जांचे गए एपीआई:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_GYROSCOPEandroid.hardware.Sensor#TYPE_ROTATION_VECTOR
पास:
- टेस्ट के दौरान, जायरोस्कोप का ड्रिफ़्ट 0.01 रेडियन से कम है.
- टेस्ट के दौरान, जायरोस्कोप की रीडिंग का वैरिएंस 1E-7 rad2/s2/Hz से कम है.
- टेस्ट के दौरान, रोटेशन वेक्टर का ड्रिफ़्ट 0.01 रेडियन से कम है.
- (अभी ज़रूरी नहीं है) जाइरोस्कोप का ड्रिफ़्ट, एक डिग्री प्रति सेकंड से कम है.
112वीं इमेज. test_imu_drift में जायरोस्कोप के ड्रिफ़्ट का उदाहरण.
आंकड़ा 113. test_imu_drift रोटेशन वेक्टर ड्रिफ़्ट का उदाहरण.
test_landscape_to_portrait
इस टेस्ट से यह पता चलता है कि लैंडस्केप मोड से पोर्ट्रेट मोड में बदलने की सुविधा, लैंडस्केप मोड वाले सेंसर के लिए ठीक से काम कर रही है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODESandroid.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATIONandroid.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
पास: इस टेस्ट में, उम्मीद के मुताबिक रोटेशन वाला चार्ट मिलता है. लैंडस्केप से पोर्ट्रेट मोड में बदलने की सुविधा बंद होने पर, रोटेशन 0 डिग्री होता है. वहीं, यह सुविधा चालू होने पर, रोटेशन 90 डिग्री होता है.
114वीं इमेज. test_landscape_to_portrait का उदाहरण.
test_lens_movement_reporting
इस कुकी का इस्तेमाल यह जांचने के लिए किया जाता है कि लेंस के मूवमेंट का फ़्लैग सही तरीके से रिपोर्ट किया गया है या नहीं. यह सुविधा, 24 इमेज कैप्चर करती है. इनमें से पहले 12 फ़्रेम, ऑप्टिमल फ़ोकस दूरी (3A के हिसाब से) पर और आखिरी 12 फ़्रेम, कम से कम फ़ोकस दूरी पर कैप्चर किए जाते हैं. फ़्रेम 12 के आस-पास, लेंस हिलता है. इस वजह से, इमेज की शार्पनेस कम हो जाती है. आखिरी पोज़िशन पर पहुंचने के बाद, लेंस की शार्पनेस स्थिर हो जाती है.
लेंस के हिलने का फ़्लैग, उन सभी फ़्रेम में सेट होना चाहिए जिनमें फ़ोकस की दूरी ऑप्टिमल होने पर, लेंस के स्थिर रहने के दौरान पहले कुछ फ़्रेम में फ़ोकस की शार्पनेस और फ़ोकस की दूरी कम से कम होने पर, लेंस के स्थिर रहने के दौरान आखिरी कुछ फ़्रेम में फ़ोकस की शार्पनेस के बीच की शार्पनेस हो. लेंस किस फ़्रेम में घूम रहा है, यह अहम नहीं है. अहम यह है कि लेंस के घूमने पर, मूवमेंट फ़्लैग को असर्ट किया जाए.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#LENS_STATEandroid.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
पास: फ़्रेम में लेंस के हिलने का फ़्लैग True है और शार्पनेस में बदलाव हुआ है.
काम न करने की वजहें:
lens_moving: True(android.hardware.camera2.CaptureResult#LENS_STATE= 1) intest_log.DEBUGकी पुष्टि सिर्फ़ उन फ़्रेम में की जाती है जिनमें शार्पनेस में बदलाव नहीं हो रहा है.test_log.DEBUGमेंlens_moving: False(android.hardware.camera2.CaptureResult#LENS_STATE= 0) वाले फ़्रेम की शार्पनेस में, ऑप्टिमम फ़ोकल दूरी पर मौजूद शुरुआती फ़्रेम या कम से कम फ़ोकस दूरी पर मौजूद आखिरी फ़्रेम की तुलना में अंतर है.
test_reprocess_edge_enhancement
इस कुकी से यह जांच की जाती है कि इमेज को बेहतर बनाने के लिए, फिर से प्रोसेस करने के तरीके सही तरीके से काम कर रहे हैं या नहीं. यह फ़ंक्शन, दिए गए रीप्रोसेस एज मोड के साथ कैप्चर करने के अनुरोध को प्रोसेस करता है. साथ ही, रीप्रोसेस एज मोड बंद होने पर, कैप्चर करने के लिए अलग-अलग मोड की तुलना करता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
पास: अलग-अलग एज मोड के लिए शार्पनेस सही है. HQ (मोड 2) OFF (मोड 0) से ज़्यादा शार्प है. साथ ही, अलग-अलग मोड के बीच का अंतर एक जैसा है.
इमेज 115. test_reprocess_edge_enhancement प्लॉट का उदाहरण.
scene4
scene4 में एक स्क्वेयर के अंदर, सफ़ेद बैकग्राउंड पर एक काला सर्कल होता है.
scene4 में किए जाने वाले टेस्ट, अलाइनमेंट के हिसाब से संवेदनशील हो सकते हैं. इसलिए, Android 15 से, check_alignment.py का इस्तेमाल किया जा सकता है. यह टूल डायरेक्ट्री में मौजूद होता है. इससे, DUT और चार्ट के अलाइनमेंट की जांच की जा सकती है.
116वीं इमेज. scene4 का उदाहरण.
test_30_60fps_preview_fov_match
ऐसे टेस्ट जिनसे पता चलता है कि 30 एफ़पीएस और 60 एफ़पीएस वाले झलक वीडियो का फ़ील्ड ऑफ़ व्यू (एफ़ओवी) एक जैसा है. इस टेस्ट में दो वीडियो कैप्चर किए जाते हैं. एक वीडियो 30 एफ़पीएस और दूसरा 60 एफ़पीएस पर कैप्चर किया जाता है. हर वीडियो से एक फ़्रेम चुना जाता है. इसके बाद, उसका विश्लेषण किया जाता है. इससे यह पुष्टि की जाती है कि दोनों वीडियो में FoV में हुए बदलाव, तय किए गए स्पेसिफ़िकेशन के मुताबिक हैं. इन टेस्ट से यह पता चलता है कि सर्कल का आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात एक जैसा है या नहीं, सर्कल का सेंटर स्थिर है या नहीं, और सर्कल का रेडियस एक जैसा है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
पास: इमेज को स्ट्रेच नहीं किया गया है, इमेज के बीच का अंतर 3% से ज़्यादा नहीं है, और 30 फ़्रेम प्रति सेकंड (एफ़पीएस) और 60 एफ़पीएस वाले वीडियो के बीच आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) में ज़्यादा से ज़्यादा 7.5% का बदलाव हुआ है
काम न करने की वजहें:
- 30 एफ़पीएस वाले वीडियो में मौजूद सर्कल का साइज़, 60 एफ़पीएस वाले वीडियो में मौजूद सर्कल के साइज़ से काफ़ी अलग है.
- कैप्चर की गई इमेज में मौजूद सर्कल, प्रोसेसिंग पाइपलाइन की वजह से खराब हो गया है.
- कैप्चर की गई इमेज में मौजूद सर्कल को काट दिया गया है. ऐसा इसलिए हुआ है, क्योंकि कैप्चर करने के अनुरोध में आसपेक्ट रेशियो बहुत ज़्यादा है. इससे इमेज की ऊंचाई या चौड़ाई कम हो जाती है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में रिफ़्लेक्शन है और वह पूरी तरह से भरा हुआ नहीं दिखता.
test_aspect_ratio_and_crop
इस टेस्ट से यह पता चलता है कि इमेज पाइपलाइन में इमेज खराब तो नहीं हो गई हैं या उन्हें अनचाहे तरीके से काटा तो नहीं गया है. यह कुकी, सभी फ़ॉर्मैट में एक सर्कल की इमेज लेती है. इससे यह पुष्टि की जाती है कि सर्कल में कोई गड़बड़ी नहीं है, सर्कल इमेज के बीच से नहीं हटता है, और अलग-अलग आसपेक्ट रेशियो या रिज़ॉल्यूशन के साथ सर्कल का साइज़ गलत तरीके से नहीं बदलता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
पास: इमेज को स्ट्रेच नहीं किया गया है. इमेज के बीच वाले हिस्से में 3% से ज़्यादा का अंतर नहीं है. साथ ही, फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को ज़्यादा से ज़्यादा रखा गया है.
काम न करने की वजहें:
- कैमरा, कैप्चर किए गए सीन के बीच में मौजूद टैबलेट पर दिखने वाले सर्कल के साथ अलाइन नहीं है.
- कैप्चर की गई इमेज में मौजूद सर्कल, प्रोसेसिंग पाइपलाइन की वजह से खराब हो गया है.
- इमेज पाइपलाइन में कम रिज़ॉल्यूशन वाली इमेज को दो बार काटा जाता है. इससे हाई और लो रिज़ॉल्यूशन वाली इमेज के बीच अलग-अलग फ़ील्ड ऑफ़ व्यू (FoV) बनता है.
- कैप्चर की गई इमेज में मौजूद सर्कल को काट दिया गया है. ऐसा इसलिए हुआ है, क्योंकि कैप्चर करने के अनुरोध में आसपेक्ट रेशियो बहुत ज़्यादा है. इससे इमेज की ऊंचाई या चौड़ाई कम हो जाती है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में रिफ़्लेक्शन है और वह पूरी तरह से भरा हुआ नहीं दिखता.
test_multi_camera_alignment
यह टेस्ट, मल्टी-कैमरा सिस्टम के लिए कैमरे की पोज़िशनिंग से जुड़े कैमरा कैलिब्रेशन पैरामीटर की जांच करता है. मल्टी-कैमरा फ़िज़िकल सबकैमरों का इस्तेमाल करके, किसी एक फ़िज़िकल कैमरे से फ़ोटो लेता है. इससे सर्कल का सेंटर पता चलता है. यह फ़ंक्शन, हर कैमरे के लिए सर्कल के सेंटर को दुनिया के कोऑर्डिनेट पर प्रोजेक्ट करता है. यह दुनिया के कोऑर्डिनेट में, कैमरों के सर्कल सेंटर के बीच के अंतर की तुलना करता है. यह दुनिया के कोऑर्डिनेट को वापस पिक्सल कोऑर्डिनेट में बदलता है और वैधता की जांच के लिए, ओरिजनल कोऑर्डिनेट से तुलना करता है. यह सर्कल के साइज़ की तुलना करता है और यह पता लगाता है कि कैमरों की फ़ोकल लेंथ अलग-अलग है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraCharacteristics#LENS_DISTORTIONandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATIONandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
पास: कैमरे के कैलिब्रेशन डेटा और फ़ोकल लेंथ का इस्तेमाल करके कैप्चर की गई इमेज की तुलना में, प्रोजेक्ट की गई इमेज में सर्कल के सेंटर और साइज़ उम्मीद के मुताबिक हैं.
काम न करने की वजहें:
LENS_INTRINSIC_CALIBRATION,LENS_POSE_TRANSLATION, औरLENS_POSE_ROTATIONडिज़ाइन वैल्यू हैं, न कि कैलिब्रेशन का असल डेटा.- कैमरा सिस्टम, टेस्ट सेटअप के लिए सही नहीं है. उदाहरण के लिए, RFoV टेस्ट रिग की मदद से वाइड और अल्ट्रा-वाइड कैमरा सिस्टम की टेस्टिंग करना. ज़्यादा जानकारी के लिए, कैमरा आईएसटी-इन-अ-बॉक्स के बारे में अक्सर पूछे जाने वाले सवाल Q1 देखें.
test_preview_aspect_ratio_and_crop
यह टेस्ट, स्टिल कैप्चर के लिए test_aspect_ratio_and_crop टेस्ट की तरह ही काम करता है. इसमें, झलक दिखाने के लिए इस्तेमाल किए जा सकने वाले फ़ॉर्मैट की जांच की जाती है. इससे यह पुष्टि की जाती है कि झलक दिखाने वाले फ़्रेम को गलत तरीके से स्ट्रेच या काटा न गया हो. इससे यह पुष्टि की जाती है कि सर्कल का आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात नहीं बदलता है, काटी गई इमेज में सर्कल फ़्रेम के बीच में रहता है, और सर्कल का साइज़ एक जैसे फ़ॉर्मैट या अलग-अलग रिज़ॉल्यूशन के लिए नहीं बदलता है (FoV की जांच).
जांचे गए एपीआई:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: इमेज को स्ट्रेच नहीं किया गया है. इमेज के बीच वाले हिस्से में 3% से ज़्यादा का अंतर नहीं है. साथ ही, फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को ज़्यादा से ज़्यादा रखा गया है.
test_preview_stabilization_fov
यह फ़ंक्शन, झलक दिखाने के लिए इस्तेमाल किए जा सकने वाले साइज़ की जांच करता है. इससे यह पक्का करने में मदद मिलती है कि FoV को सही तरीके से काटा गया है. इस टेस्ट में दो वीडियो कैप्चर किए जाते हैं. एक में झलक को स्टेबलाइज़ करने की सुविधा ON और दूसरे में झलक को स्टेबलाइज़ करने की सुविधा OFF इस्तेमाल की जाती है. हर वीडियो से एक प्रतिनिधि फ़्रेम चुना जाता है. इसके बाद, यह पुष्टि करने के लिए उसका विश्लेषण किया जाता है कि दोनों वीडियो में FoV में हुए बदलाव, तय सीमा के अंदर हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: सर्कल का आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) लगभग एक जैसा रहता है, सर्कल की सेंटर लोकेशन स्थिर रहती है, और सर्कल का साइज़ 20% से ज़्यादा नहीं बदलता.
test_video_aspect_ratio_and_crop
यह सभी वीडियो फ़ॉर्मैट में, स्क्वेयर के अंदर मौजूद सर्कल के वीडियो बनाता है. यह मुख्य फ़्रेम निकालता है. साथ ही, यह पुष्टि करता है कि सर्कल का आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात न बदले, काटी गई इमेज में सर्कल बीच में रहे, और सर्कल का साइज़ एक जैसा रहे. इसके अलावा, यह पुष्टि करता है कि अलग-अलग रिज़ॉल्यूशन (FoV की जांच) के लिए, सर्कल का साइज़ न बदले.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: वीडियो फ़्रेम स्ट्रेच नहीं किए गए हैं, फ़्रेम के बीच का अंतर 3% से ज़्यादा नहीं है, और ज़्यादा से ज़्यादा FoV को बनाए रखा गया है.
scene5
scene5 के लिए, एक जैसे रंग का ग्रे सीन ज़रूरी है. इसके लिए, कैमरे के लेंस पर एक डिफ़्यूज़र लगाया जाता है. हमारा सुझाव है कि आप इस डिफ़्यूज़र का इस्तेमाल करें:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.
सीन तैयार करने के लिए, कैमरे के सामने एक डिफ़्यूज़र लगाएं. इसके बाद, कैमरे को 2000 लक्स की रोशनी वाले सोर्स की तरफ़ करें. scene5 के लिए ली गई इमेज में, रोशनी का फैलाव होना चाहिए. साथ ही, इमेज में कोई भी सुविधा साफ़ तौर पर नहीं दिखनी चाहिए. यहां एक सैंपल इमेज दी गई है:
इमेज 117. scene5 कैप्चर करने का उदाहरण.
test_lens_shading_and_color_uniformity
इस टेस्ट से यह पता चलता है कि लेंस शेडिंग को सही तरीके से ठीक किया गया है या नहीं. साथ ही, यह भी पता चलता है कि एक रंग वाली यूनिफ़ॉर्म सीन की इमेज में रंग एक जैसा है या नहीं. यह टेस्ट, ऑटो 3A के साथ YUV फ़्रेम पर किया जाता है. लेंस शेडिंग का आकलन, y चैनल के आधार पर किया जाता है. यह तय किए गए हर सैंपल ब्लॉक के लिए, औसत y वैल्यू को मेज़र करता है. साथ ही, सेंटर y वैल्यू से तुलना करके, पास या फ़ेल होने का पता लगाता है. रंग की एकरूपता की जांच, लाल-हरे और नीले-हरे रंग के स्पेस में की जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
पास: इमेज के तय किए गए रेडियस में, लाल-हरे और नीले-हरे रंग की वैल्यू का अंतर 20% से कम होना चाहिए.
scene6
scene6, ArUco मार्कर का एक ऐसा ग्रिड है जिसकी खास पहचान की जा सकती है.
scene6 में किए जाने वाले टेस्ट, अलाइनमेंट के हिसाब से संवेदनशील हो सकते हैं. इसलिए, 15 से, टूल डायरेक्ट्री में check_alignment.py का इस्तेमाल किया जा सकता है. इससे, DUT और चार्ट के अलाइनमेंट की जांच की जा सकती है.
118वीं इमेज. scene6 का उदाहरण.
test_in_sensor_zoom
यह टेस्ट, कैमरे में मौजूद सेंसर ज़ूम करने की सुविधा के काम करने के तरीके की जांच करता है. यह सुविधा, काटी गई रॉ इमेज जनरेट करती है.
स्ट्रीम के इस्तेमाल के उदाहरण को CROPPED_RAW पर सेट करने पर, टेस्ट में ज़ूम रेंज पर दो कैप्चर किए जाते हैं. इनमें, फ़ुल फ़ील्ड ऑफ़ व्यू (एफ़ओवी) वाली रॉ इमेज और काटी गई रॉ इमेज शामिल होती है. यह टेस्ट, इमेज को RGB ऐरे में बदलता है. साथ ही, काटी गई पूरी रॉ इमेज को SCALER_RAW_CROP_REGION की ओर से बताए गए साइज़ में छोटा करता है. इसके बाद, दोनों इमेज के बीच 3D RMS अंतर का हिसाब लगाता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
पास: डाउनस्केल की गई, काटी गई रॉ इमेज और पूरे फ़ील्ड ऑफ़ व्यू (एफ़ओवी) वाली रॉ इमेज के बीच 3D आरएमएस का अंतर, टेस्ट में सेट किए गए थ्रेशोल्ड से कम है.
test_zoom
यह टेस्ट, अल्ट्रावाइड लेंस से वाइड लेंस तक कैमरे के ज़ूम करने की सुविधा की जांच करता है. यह टेस्ट, ज़ूम रेंज के हिसाब से इमेज कैप्चर करता है. साथ ही, यह जांच करता है कि कैमरा ज़ूम इन करने पर, ArUco मार्कर बड़े होते हैं या नहीं. इस टेस्ट में यह भी देखा जाता है कि हर कैप्चर के दौरान, सेंटर मार्कर की पोज़िशन में अनुमान के मुताबिक बदलाव होता है या नहीं. ज़ूम करने के अनुपात के हिसाब से, सेंटर मार्कर के बीच से इमेज के बीच की दूरी, कैमरे के फ़िज़िकल स्विच तक एक जैसी दर से बदल सकती है. इसके अलावा, कैमरे के फ़िज़िकल स्विच के बाद, यह दूरी उसी मार्कर की जगह की ओर एक जैसी दर से बदल सकती है. टेस्टिंग से पहले, डिवाइस पर Jetpack Camera ऐप्लिकेशन (JCA) इंस्टॉल होना चाहिए.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: कैप्चर किए गए ArUco मार्कर का साइज़, अनुरोध किए गए ज़ूम अनुपात के हिसाब से सटीक है. इससे यह पुष्टि होती है कि कैमरा सही तरीके से ज़ूम कर रहा है. साथ ही, मार्कर की दूरी, इमेज के सेंटर से टेस्ट के ब्यौरे में बताई गई शर्तों के मुताबिक बदलती है.
आकृति 119. test_zoom का इस्तेमाल करके, सेंटर के सबसे नज़दीक मौजूद ArUco मार्कर का कॉन्टूर ढूंढें.
test_low_latency_zoom
यह टेस्ट करता है कि कम इंतज़ार के समय में ज़ूम करने की सुविधा, कैमरे पर कैसे काम करती है. यह android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) की मदद से, ज़ूम रेंज में इमेज कैप्चर करता है. साथ ही, यह देखता है कि आउटपुट इमेज में मौजूद मार्कर, कैप्चर किए गए मेटाडेटा में मौजूद ज़ूम रेशियो से मेल खाते हैं या नहीं. 3A को कन्वर्ज करने और कैप्चर करने के लिए, एक ही कैमरा कैप्चर सेशन का इस्तेमाल किया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDESandroid.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
पास: कैप्चर किए गए मार्कर का साइज़, ज़ूम रेशियो के नतीजे के मेटाडेटा के हिसाब से सटीक है.
test_preview_video_zoom_match
इन टेस्ट से यह पता चलता है कि रिकॉर्डिंग और ज़ूम करने के दौरान, वीडियो की झलक और वीडियो आउटपुट में एक जैसा आउटपुट दिखता है और रिकॉर्ड होता है. यह फ़ंक्शन, अलग-अलग ज़ूम लेवल पर, सेंटर के सबसे नज़दीक मौजूद मार्कर के साइज़ का हिसाब लगाता है. साथ ही, यह भी देखता है कि ज़ूम लेवल बढ़ने पर मार्कर का साइज़ बढ़ता है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: वीडियो और झलक में, कैप्चर किए गए मार्कर का साइज़, ज़ूम करने के अनुरोध किए गए अनुपात के हिसाब से सही है.
120वीं इमेज. HD_1280x720_key_frame.png (ज़ूम करने से पहले).
आंकड़ा 121. preview_1280x720_key_frame.png (ज़ूम करने से पहले).
122वीं इमेज. HD_1280x720_key_frame.png (ज़ूम करने के बाद).
आंकड़ा 123. preview_1280x720_key_frame.png (ज़ूम करने के बाद).
test_preview_zoom
इस टेस्ट में यह देखा जाता है कि क्या हर झलक वाले फ़्रेम का ज़ूम रेशियो, अल्ट्रावाइड लेंस से वाइड लेंस तक के कैप्चर मेटाडेटा से मेल खाता है. यह टेस्ट, ज़ूम रेंज के हिसाब से प्रीव्यू फ़्रेम लेता है. साथ ही, सेंटर के सबसे करीब मौजूद ArUco मार्कर का पता लगाता है. इसके बाद, टेस्ट में यह देखा जाता है कि हर कैप्चर के दौरान, सेंटर मार्कर की पोज़िशन में अनुमान के मुताबिक बदलाव होता है या नहीं. ज़ूम करने के अनुपात के हिसाब से, सेंटर मार्कर के बीच से इमेज के बीच की दूरी, कैमरे के फ़िज़िकल स्विच तक एक जैसी दर से बदल सकती है. इसके अलावा, कैमरे के फ़िज़िकल स्विच के बाद, यह दूरी उसी मार्कर की जगह की ओर एक जैसी दर से बदल सकती है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: चुने गए ArUco मार्कर का साइज़, सभी प्रीव्यू फ़्रेम के लिए, कैप्चर किए गए नतीजे के रिपोर्ट किए गए ज़ूम रेशियो के हिसाब से सही है. चुने गए मार्कर की इमेज के सेंटर से दूरी, सभी झलक फ़्रेम के कैप्चर किए गए नतीजे के रिपोर्ट किए गए ज़ूम रेशियो के हिसाब से सही है.
आंकड़ा 124. test_preview_zoom इमेज में, सेंटर के सबसे नज़दीक चुना गया मार्कर दिखाया गया है
test_session_characteristics_zoom
यह CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION में दी गई, सहायता पाने वाले सभी सेशन कॉन्फ़िगरेशन के लिए ज़ूम रेशियो की सीमा की जांच करता है.
इनमें से हर कॉन्फ़िगरेशन के लिए, अगर CameraDeviceSetup#isSessionConfigurationSupported true दिखाता है, तो टेस्ट यह पुष्टि करता है कि CameraDeviceSetup#getSessionCharacteristics में दिखाया गया ज़ूम रेशियो हासिल किया जा सकता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSIONandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
पास: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION में दी गई हर SessionConfiguration के लिए, कम से कम और ज़्यादा से ज़्यादा ज़ूम रेशियो तक पहुंचा जा सकता है.
scene7
scene7 एक आयताकार फ़्रेम है, जिसे चार बराबर क्वाड्रेंट में बांटा गया है. हर क्वाड्रेंट में अलग-अलग रंग भरा गया है. आयत के बीच में, शार्पनेस की जांच के लिए एक स्लांटेड एज चार्ट है. चार ArUco मार्कर, आयत के चार बाहरी कोनों के साथ अलाइन किए गए हैं. इससे अलग-अलग ज़ूम रेशियो पर, मुख्य आयत के फ़्रेम के सटीक निर्देशांक पाने में मदद मिलती है.
125वीं इमेज. scene7.
test_multi_camera_switch
इस टेस्ट से यह पुष्टि की जाती है कि अलग-अलग ज़ूम रेशियो पर झलक रिकॉर्ड करने के दौरान, अल्ट्रावाइड (UW) और वाइड (W) लेंस के बीच स्विच करने पर, RGB वैल्यू एक जैसी होती हैं.
इस टेस्ट में, पहले से तय की गई रेंज में अलग-अलग ज़ूम रेशियो का इस्तेमाल किया जाता है. इससे डाइनैमिक प्रीव्यू रिकॉर्डिंग की जाती है और यह पता लगाया जाता है कि फ़िज़िकल कैमरा कब बदलता है. इस पॉइंट से, यूडब्ल्यू लेंस से डब्ल्यू लेंस पर स्विच किया जाता है.
क्रॉसओवर पॉइंट पर और उससे पहले कैप्चर किए गए फ़्रेमों का विश्लेषण किया जाता है. इससे ऑटो एक्सपोज़र (एई), ऑटो व्हाइट बैलेंस (एडब्ल्यूबी), और ऑटोफ़ोकस (एएफ़) का पता चलता है.
AE की जांच से यह पुष्टि होती है कि ल्यूमा में बदलाव, UW और W लेंस की इमेज, दोनों के लिए तय सीमा के अंदर है. AWB की जांच में यह पुष्टि की जाती है कि लाल-हरे और नीले-हरे रंग के अनुपात, UW और W लेंस, दोनों की इमेज के लिए थ्रेशोल्ड वैल्यू के अंदर हैं. एएफ़ चेक, यूडब्ल्यू और डब्ल्यू लेंस की इमेज के बीच औसत ग्रेडिएंट मैग्नीट्यूड के आधार पर, शार्पनेस के अनुमान की वैल्यू का आकलन करता है.
अगर इस टेस्ट को पूरा करते समय, मोइरे इफ़ेक्ट की वजह से नतीजों में गड़बड़ी होती है, तो कैमरा आईटीएस से मंज़ूरी पा चुके टैबलेट की सूची में से ज़्यादा रिज़ॉल्यूशन वाले टैबलेट का इस्तेमाल करें.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: टेस्ट पास होने के लिए, AE और AWB की जांच पास होनी चाहिए. एएफ़ की जांच के नतीजों का इस्तेमाल सिर्फ़ लॉगिंग के लिए किया जाता है. हर जांच के लिए, ये शर्तें पूरी होनी चाहिए:
- एई की जांच: अगर डिवाइस
ae_regionsऔरawb_regions, दोनों को सपोर्ट करता है, तो सभी कलर पैच के लिए, यूडब्ल्यू और डब्ल्यू लेंस की इमेज के बीच ल्यूमा में बदलाव (Y वैल्यू) 4% से कम होना चाहिए. अगर सिर्फ़ae_regionsका इस्तेमाल किया जा सकता है, तो सिर्फ़ ग्रे कलर पैच की वैल्यू को ज़रूरी शर्तें पूरी करनी होंगी. - AWB की जांच: UW और W लेंस की इमेज के लिए, लाल-हरे और नीले-हरे रंग की वैल्यू के बीच का अंतर, ग्रे कलर पैच के लिए 3% से कम होना चाहिए. साथ ही, अगर डिवाइस
ae_regionsऔरawb_regions, दोनों को सपोर्ट करता है, तो अन्य कलर पैच के लिए यह अंतर 10% से कम होना चाहिए. - ऑटो फ़ोकस की जांच: W लेंस से कैप्चर की गई इमेज की शार्पनेस, UW लेंस से कैप्चर की गई इमेज की शार्पनेस से ज़्यादा होनी चाहिए.
126वीं इमेज. UW लेंस से ली गई ग्रे रंग की इमेज.
127वीं इमेज. W लेंस से ली गई स्लेटी रंग की इमेज.
scene8
scene8 एक आयताकार फ़्रेम है, जिसे चार बराबर हिस्सों में बांटा गया है. हर हिस्से में, अलग-अलग एक्सपोज़र में ली गई या अलग-अलग रंग के शेड (नीला शेड, बढ़ा हुआ एक्सपोज़र, घटा हुआ एक्सपोज़र, पीला शेड) के साथ ओवरले की गई एक पोर्ट्रेट फ़ोटो है.
मुख्य आयत के फ़्रेम के सटीक निर्देशांक पाने के लिए, चार ArUco मार्कर को आयत के चार बाहरी कोनों के साथ अलाइन किया जाता है.
इमेज 128. scene8 का उदाहरण.
test_ae_awb_regions
इस टेस्ट में यह देखा जाता है कि अलग-अलग एई और एडब्ल्यूबी क्षेत्रों में, पूर्वावलोकन रिकॉर्डिंग के दौरान आरजीबी और ल्यूमा वैल्यू अलग-अलग होती हैं.
इस टेस्ट में, आठ सेकंड की झलक रिकॉर्ड की जाती है. इसमें हर क्वाड्रेंट पर दो-दो सेकंड के लिए, एई और एडब्ल्यूबी मीटरिंग की जाती है. इसके बाद, टेस्ट में हर क्षेत्र की झलक की रिकॉर्डिंग से एक फ़्रेम निकाला जाता है. साथ ही, निकाले गए फ़्रेम का इस्तेमाल करके, एई और एडब्ल्यूबी की इन जांचों को पूरा किया जाता है:
- AE की जांच: इससे यह पुष्टि की जाती है कि जिस फ़्रेम में कम रोशनी वाली जगह को मेज़र किया जा रहा है उसकी ल्यूमा वैल्यू, ज़्यादा रोशनी वाली जगह को मेज़र करने वाले फ़्रेम की ल्यूमा वैल्यू से 1% से ज़्यादा है. इससे यह पुष्टि होती है कि किसी अंधेरे हिस्से की मीटरिंग करते समय, इमेज को ज़्यादा रोशनी दी जाती है.
- ऑटोमैटिक व्हाइट बैलेंस (एडब्ल्यूबी) की जांच: इससे यह पुष्टि की जाती है कि नीले रंग के मीटरिंग क्षेत्र वाले फ़्रेम में, लाल रंग से नीले रंग का अनुपात (इमेज की औसत आरजीबी वैल्यू के हिसाब से) 2% से ज़्यादा है. यह अनुपात, पीले रंग के मीटरिंग क्षेत्र वाले फ़्रेम में मौजूद अनुपात से ज़्यादा होना चाहिए. इससे यह पुष्टि होती है कि पीले (गर्म) या नीले (ठंडे) रंग वाले हिस्से को मेज़र करते समय, इमेज में आरजीबी वैल्यू संतुलित है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AEandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
पास: एई और एडब्ल्यूबी, दोनों की जांच पास हो गई है.
129वीं इमेज. फ़्रेम मीटरिंग में, एक्सपोज़र बढ़ने की वजह से अंधेरा हो गया है.
130वीं इमेज. फ़्रेम मीटरिंग में, कम एक्सपोज़र के साथ हल्का हिस्सा दिखाया गया है.
काम न करने की वजहें:
इस टेस्ट के लिए, सभी चार ArUco मार्कर का सटीक पता लगाना ज़रूरी है. अगर शुरुआती जांच में कोई गड़बड़ी मिलती है, तो सिस्टम इमेज के ब्लैक ऐंड व्हाइट वर्शन का इस्तेमाल करके, दूसरी बार जांच करता है. यहां दी गई ग्रेस्केल इमेज में, दूसरी प्रोसेसिंग का चरण दिखाया गया है:
131वीं इमेज. ArUco मार्कर का अलाइनमेंट सही नहीं है.
test_color_correction_mode_cct
यह टेस्ट, अलग-अलग कलर टेम्परेचर और टिंट के हिसाब से COLOR_CORRECTION_MODE की जांच करता है. साथ ही, कैप्चर किए गए सीन scene8 के हिसाब से, आरजीबी रेशियो में हुए बदलावों की पुष्टि करता है.
जांचे गए एपीआई:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGEandroid.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
पास: आरजीबी अनुपात, चुने गए रंग के तापमान और टिंट के हिसाब से अनुमानित बढ़ोतरी या गिरावट दिखाते हैं.
टेस्ट स्किप करने की शर्तें
अगर इनमें से कोई भी शर्त पूरी होती है, तो test_color_correction_mode_cct टेस्ट को छोड़ दिया जाता है:
- डिवाइस का पहला एपीआई लेवल (
first_api_level) 35 या इससे कम हो. - डिवाइस,
COLOR_CORRECTION_AVAILABLE_ABERRATION_MODESमेंCOLOR_CORRECTION_MODE_CCTका विज्ञापन नहीं दिखाता.
scene9
scene9 में अलग-अलग साइज़ और रंग के हज़ारों सर्कल शामिल हैं. इससे एक ऐसा सीन बनता है जिसमें JPEG कंप्रेशन एल्गोरिदम पर ज़ोर देने के लिए, बहुत कम दोहराव होता है.
आंकड़ा 132. scene9 का उदाहरण.
test_jpeg_high_entropy
इन टेस्ट से यह पता चलता है कि scene9 पर, ज़्यादा एंट्रॉपी के साथ कैमरा JPEG कंप्रेशन काम करता है या नहीं. साथ ही, JPEG क्वालिटी फ़ैक्टर 100% पर सेट है या नहीं. ज़ूम फ़ैक्टर को बढ़ाया जाता है, ताकि यह पुष्टि की जा सके कि टैबलेट पर दिखने वाला सीन, कैमरे के फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को भरता है.
जांचे गए एपीआई:
पास: JPEG फ़ाइल को सही तरीके से कंप्रेस किया गया है. साथ ही, इसे डिस्क से लिखा और पढ़ा गया है.
test_jpeg_quality
यह कुकी, कैमरे की JPEG फ़ाइल को कंप्रेस करने की क्वालिटी की जांच करती है. यह android.jpeg.quality के ज़रिए JPEG क्वालिटी की जांच करता है. साथ ही, यह पुष्टि करता है कि क्वांटाइज़ेशन टेबल सही तरीके से बदलती हैं.
जांचे गए एपीआई:
पास: क्वालिटी बढ़ने पर, क्वांटाइज़ेशन मैट्रिक्स कम हो जाता है. (मैट्रिक्स, डिविज़न फ़ैक्टर को दिखाता है.)
133वीं इमेज. Pixel 4 के रियर कैमरे की ल्यूमा और क्रोमा डीक्यूटी मैट्रिक्स की औसत वैल्यू की तुलना, JPEG क्वालिटी से की गई है.
134वीं इमेज. जांच पूरी न होने का उदाहरण.
scene_video
scene_video एक वीडियो सीन है. इसमें अलग-अलग रंग के चार सर्कल, सफ़ेद बैकग्राउंड पर अलग-अलग फ़्रेम रेट पर आगे-पीछे घूम रहे हैं.
इमेज 135. scene_video का उदाहरण.
test_preview_frame_drop
इस कुकी से यह जांच की जाती है कि डाइनैमिक सीन के साथ, अनुरोध किए गए झलक फ़्रेम रेट को बनाए रखा गया है या नहीं. यह जांच, तीसरे पक्ष के ऐप्लिकेशन के साथ शेयर किए गए सभी कैमरों पर की जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: प्रीव्यू फ़्रेम रेट, अनुरोध किए गए फ़्रेम रेट की रेंज के ज़्यादा से ज़्यादा फ़्रेम रेट पर है. साथ ही, लगातार फ़्रेम के बीच का औसत अंतर, टेस्ट में सेट की गई रिलेटिव टॉलरेंस से कम है.
scene_extensions
scene_extensions टेस्ट, कैमरा एक्सटेंशन के लिए होते हैं. इनमें Camera ITS-in-a-Box का इस्तेमाल करना ज़रूरी है, क्योंकि इनके लिए टेस्टिंग एनवायरमेंट को सटीक तरीके से कंट्रोल करना ज़रूरी होता है. इसके अलावा, लाइट लीक होने की समस्या को भी कंट्रोल किया जाना चाहिए. इसके लिए, टेस्ट रिग, DUT, और टैबलेट को ड्रॉप क्लॉथ से ढकना पड़ सकता है. साथ ही, DUT की सामने वाली स्क्रीन से रोशनी को बाहर निकलने से रोकना पड़ सकता है.
scene_hdr
scene_hdr सीन में, बाईं ओर एक पोर्ट्रेट और दाईं ओर कम कंट्रास्ट वाला क्यूआर कोड दिखाया गया है.
इमेज 136. scene_hdr का उदाहरण.
test_hdr_extension
यह HDR एक्सटेंशन की जांच करता है. यह एक्सटेंशन चालू होने और बंद होने, दोनों स्थितियों में इमेज कैप्चर करता है. साथ ही, यह देखता है कि एक्सटेंशन की वजह से क्यूआर कोड ज़्यादा आसानी से स्कैन हो पा रहा है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
पास: एचडीआर एक्सटेंशन, क्यूआर कोड का पता लगाने के लिए ज़रूरी कंट्रास्ट में बदलावों की संख्या को कम करता है या क्यूआर कोड में ग्रेडिएंट को कम करता है.
scene_low_light
scene_low_light सीन में, काले रंग के बैकग्राउंड पर अलग-अलग शेड वाले स्क्वेयर की ग्रिड दिखाई गई है. स्क्वेयर की ग्रिड को लाल रंग की आउटलाइन से बाउंड किया गया है. स्क्वेयर को हिल्बर्ट कर्व ओरिएंटेशन में व्यवस्थित किया गया है.
137वीं इमेज. कम रोशनी वाले सीन का उदाहरण.
test_night_extension
यह कुकी, Night extension की जांच करती है. यह एक्सटेंशन चालू होने पर कैप्चर करता है और ये काम करता है:
- इससे 20 स्क्वेयर के मौजूद होने का पता चलता है
- यह फ़ंक्शन, हर स्क्वेयर से बंधी हुई ल्यूमा का हिसाब लगाता है
- यह फ़ंक्शन, हिल्बर्ट कर्व ग्रिड ओरिएंटेशन के हिसाब से, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू का हिसाब लगाता है
- यह लगातार दो स्क्वेयर की ल्यूमा वैल्यू के अंतर का हिसाब लगाता है. उदाहरण के लिए, स्क्वेयर 2 - स्क्वेयर 1. यह स्क्वेयर 5 और 6 (स्क्वेयर 6 - स्क्वेयर 5) तक के अंतर का हिसाब लगाता है. इसके बाद, यह पांच अंतरों का औसत निकालता है.
Android 16 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, कैप्चर करने के अनुरोध में, मीटर के हिसाब से तय की गई कीमत वाला ऐसा क्षेत्र शामिल होता है जो स्क्वेयर के ग्रिड को बाउंड करने वाले आयत से मेल खाता है. इस बदलाव से, थ्रेशोल्ड पास करने की शर्तें बदल जाती हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
पास:
- Android 16 या इसके बाद के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 80 होनी चाहिए. साथ ही, लगातार स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर, स्क्वेयर 5 और 6 तक कम से कम 18.75 होना चाहिए.
- Android 15 और इससे पुराने वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 85 होनी चाहिए. साथ ही, स्क्वेयर 5 और 6 तक के लगातार स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 17 होना चाहिए.
यहां दिए गए ल्यूमिनेंस प्लॉट में, टेस्ट पास होने पर मिलने वाला नतीजा दिखाया गया है.
138वीं इमेज. कम रोशनी में रात के सीन की फ़ोटो लेने के टेस्ट का उदाहरण.
test_low_light_boost_extension
यह कम रोशनी में बेहतर फ़ोटो लेने की सुविधा वाले एई मोड की जांच करता है. अगर Camera2, कम रोशनी में बेहतर फ़ोटो लेने की सुविधा वाले एई मोड के साथ काम करता है, तो यह टेस्ट Camera2 के लिए किया जाता है. अगर नाइट मोड कैमरा एक्सटेंशन काम करता है और एक्सटेंशन, कम रोशनी में बेहतर फ़ोटो लेने की सुविधा वाले एई मोड के साथ काम करता है, तो यह टेस्ट नाइट मोड कैमरा एक्सटेंशन के लिए भी किया जाता है. इस टेस्ट में, एई मोड को कम रोशनी में बेहतर फ़ोटो खींचने की सुविधा पर सेट किया जाता है. इसके बाद, यह पूर्वावलोकन से एक फ़्रेम लेता है और ये काम करता है:
- इससे 20 बॉक्स की मौजूदगी का पता चलता है
- हर बॉक्स के हिसाब से ल्यूमा का हिसाब लगाता है
- यह फ़ंक्शन, हिल्बर्ट कर्व ग्रिड ओरिएंटेशन के हिसाब से, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू का हिसाब लगाता है
- यह लगातार दो स्क्वेयर की ल्यूमा वैल्यू के अंतर का हिसाब लगाता है. उदाहरण के लिए, स्क्वेयर 2 - स्क्वेयर 1. यह स्क्वेयर 5 और 6 (स्क्वेयर 6 - स्क्वेयर 5) तक के अंतर का हिसाब लगाता है. इसके बाद, यह पांच अंतरों का औसत निकालता है.
Android 16 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, कैप्चर करने के अनुरोध में, मीटर के हिसाब से तय की गई कीमत वाला ऐसा क्षेत्र शामिल होता है जो स्क्वेयर के ग्रिड को बाउंड करने वाले आयत से मेल खाता है. इस बदलाव से, थ्रेशोल्ड पास करने की शर्तें बदल जाती हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODESandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITYandroid.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
पास:
Android 16 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 54 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के लगातार स्क्वेयर की औसत ल्यूमा वैल्यू में कम से कम 17 का अंतर होना चाहिए.
Android 15 और इससे पहले के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 70 होनी चाहिए. साथ ही, लगातार स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 18 होना चाहिए. यह अंतर, स्क्वेयर 5 और 6 तक होना चाहिए.
scene_tele
scene_tele टेस्ट के लिए ज़रूरी है कि चार्ट की दूरी, टेलीफ़ोटो लेंस की कम से कम फ़ोकस दूरी के बराबर हो. कम से कम फ़ोकस करने की यह दूरी, डिवाइसों के हिसाब से अलग-अलग हो सकती है. इसलिए, आपको अपने सेटअप को टेलीफ़ोटो कैमरे के हिसाब से कॉन्फ़िगर करना होगा.
आंकड़ा 139. वाइड और टेलीफ़ोटो कैमरे की फ़ोकस दूरी के आधार पर scene_tele सेटअप.
टेस्ट हार्डवेयर सेटअप करने के बारे में ज़्यादा जानकारी के लिए, टेली एक्सटेंशन रिग सेटअप करना लेख पढ़ें.
scene6_tele
scene6_tele सीन में, सफ़ेद बैकग्राउंड पर ArUco मार्कर की ग्रिड दिखाई गई है.
अगर मॉड्यूलर रिग में कैप्चर की गई इमेज ज़्यादा ब्राइट दिखती हैं, तो मॉड्यूलर रिग का फ्रंट प्लेट हटा दें.scene6_tele
WFoV टेस्ट रिग को एक्सटेंशन से डिसकनेक्ट करें और फ़ोन माउंट को हटा दें.
140वीं इमेज. WFoV टेस्ट रिग को एक्सटेंशन से डिसकनेक्ट करें और फ़ोन माउंट को हटा दें.
इमेज 141. सामने की प्लेट हटाएं.
test_zoom_tele
यह टेस्ट, वाइड लेंस से लेकर टेलीफ़ोटो लेंस तक, कैमरे के ज़ूम करने के तरीके की जांच करता है. यह टेस्ट, test_zoom जैसा ही है. हालांकि, इसमें वाइड लेंस से टेलीफ़ोटो लेंस तक, कैमरे के ज़ूम करने के तरीके की जांच की जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: कैप्चर किए गए ArUco मार्कर का साइज़, अनुरोध किए गए ज़ूम रेशियो के हिसाब से सही है. इससे यह पुष्टि होती है कि कैमरा सही तरीके से ज़ूम कर रहा है. साथ ही, मार्कर की दूरी, इमेज के सेंटर से test_zoom में दी गई शर्तों के मुताबिक बदलती है.
test_preview_zoom_tele
यह कुकी, वाइड लेंस से लेकर टेलीफ़ोटो लेंस तक, झलक वाले फ़्रेम के लिए कैमरे के ज़ूम करने के तरीके की जांच करती है. यह टेस्ट, test_preview_zoom जैसा ही है. हालांकि, इसमें वाइड लेंस से टेलीफ़ोटो लेंस तक, कैमरे के ज़ूम करने के तरीके की जांच की जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: कैप्चर किए गए ArUco मार्कर का साइज़, अनुरोध किए गए ज़ूम अनुपात के हिसाब से सही है. इससे यह पुष्टि की जाती है कि कैमरा सही तरीके से ज़ूम कर रहा है. साथ ही, मार्कर की दूरी, इमेज के बीच में मौजूद बदलावों के हिसाब से बदलती है. यह बदलाव, test_preview_zoom में दी गई शर्तों के मुताबिक होता है.
scene7_tele
scene7_tele, scene7 जैसा ही है. हालांकि, इसे टेलीफ़ोटो लेंस की जांच के लिए सेट अप किया गया है. यह एक आयताकार फ़्रेम है, जिसे चार बराबर क्वाड्रेंट में बांटा गया है. हर क्वाड्रेंट में अलग-अलग रंग भरा गया है. आयत के बीच में, शार्पनेस की जांच के लिए एक स्लांटेड एज चार्ट है. चार ArUco मार्कर, आयत के चार बाहरी कोनों के साथ अलाइन किए गए हैं. इससे अलग-अलग ज़ूम रेशियो पर, मुख्य आयत के फ़्रेम के सटीक निर्देशांक पाने में मदद मिलती है.
test_multi_camera_switch_tele
इस टेस्ट से यह पुष्टि की जाती है कि अलग-अलग ज़ूम रेशियो पर झलक रिकॉर्डिंग के दौरान, वाइड (W) और टेलीफ़ोटो (टेली) लेंस के बीच स्विच करने पर, RGB वैल्यू एक जैसी होती हैं.
इस टेस्ट में, पहले से तय की गई रेंज में अलग-अलग ज़ूम रेशियो का इस्तेमाल किया जाता है. इससे डाइनैमिक प्रीव्यू रिकॉर्डिंग की जाती है और यह पता लगाया जाता है कि फ़िज़िकल कैमरा कब बदलता है. इस पॉइंट से पता चलता है कि वाइड ऐंगल लेंस से टेलीफ़ोटो लेंस पर कब स्विच किया जाता है.
क्रॉसओवर पॉइंट पर और उससे पहले कैप्चर किए गए फ़्रेम का विश्लेषण, एई, एडब्ल्यूबी, और एएफ़ के लिए किया जाता है.
AE की जांच से यह पुष्टि की जाती है कि ल्यूमा में बदलाव, W और टेली लेंस, दोनों की इमेज के लिए तय सीमा के अंदर है. AWB की जांच में यह पुष्टि की जाती है कि लाल-हरे और नीले-हरे रंग के अनुपात, W और टेली लेंस, दोनों की इमेज के लिए थ्रेशोल्ड वैल्यू के अंदर हैं. एएफ़ चेक, डब्ल्यू और टेलीफ़ोटो लेंस की इमेज के बीच औसत ग्रेडिएंट मैग्नीट्यूड के आधार पर, शार्पनेस के अनुमान की वैल्यू का आकलन करता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: टेस्ट पास होने के लिए, AE, AWB, और AF की सभी जांचों का पास होना ज़रूरी है. हर जांच के लिए ये शर्तें पूरी होनी चाहिए:
- AE की जांच: वाइड और टेलीफ़ोटो लेंस की इमेज के बीच ल्यूमा में बदलाव 4% से कम होना चाहिए.
- AWB की जांच: LAB कलर स्पेस में, वाइड और टेलीफ़ोटो के लिए लाल-हरे और नीले-हरे रंग के बीच का डेल्टा C 10 से ज़्यादा नहीं होना चाहिए.
- ऑटो फ़ोकस की जांच: टेलीफ़ोटो लेंस की इमेज शार्पनेस, वाइड ऐंगल लेंस से ज़्यादा होनी चाहिए.
scene_flash
scene_flash टेस्ट के लिए, सेंसर फ़्यूज़न बॉक्स में डार्क सीन की ज़रूरत होती है.
test_auto_flash
इस जांच में यह देखा जाता है कि पीछे और सामने की ओर मौजूद कैमरों से अंधेरे में फ़ोटो लेते समय, फ़्लैश अपने-आप चालू होता है या नहीं. फ़्रंट कैमरे के लिए, ऑटो-फ़्लैश की सुविधा सीन को रौशन करने के लिए स्क्रीन का इस्तेमाल करती है. इसके लिए, फ़िज़िकल फ़्लैश यूनिट का इस्तेमाल नहीं किया जाता. इस टेस्ट में यह पुष्टि की जाती है कि ऑटो-फ़्लैश की सुविधा चालू है या नहीं. इसके लिए, यह देखा जाता है कि ऑटो-फ़्लैश की सुविधा चालू होने पर, टाइल इमेज का सेंटर ज़्यादा चमकदार है या नहीं. ऑटो-फ़्लैश को ट्रिगर करने के लिए, टेस्ट रिग में मौजूद लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. टेस्ट के ठीक से काम करने के लिए, सीन पूरी तरह से अंधेरा होना चाहिए. टेस्टिंग से पहले, डिवाइस पर Jetpack Camera ऐप्लिकेशन (JCA) इंस्टॉल होना चाहिए. पीछे की ओर लगे कैमरे के लिए ऑटो-फ़्लैश की सुविधा, एई की स्थिति पर निर्भर करती है. हालांकि, सामने की ओर लगे कैमरे के लिए ऑटो-फ़्लैश की सुविधा, एई पर निर्भर नहीं करती और हमेशा चालू रहती है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
पास: ऑटो-फ़्लैश की सुविधा चालू होने पर, सभी कैमरों के लिए टाइल इमेज का सेंटर, ओरिजनल सीन इमेज से ज़्यादा चमकदार है.
test_flash_strength
इन टेस्ट से यह पता चलता है कि SINGLE मोड में फ़्लैश की रोशनी को कंट्रोल करने की सुविधा सही तरीके से लागू की गई है या नहीं.
इस टेस्ट में यह पुष्टि की जाती है कि अगर डिवाइस, SINGLE मोड में कैमरा इस्तेमाल करने के दौरान फ़्लैश की रोशनी को कंट्रोल करने की सुविधा के साथ काम करता है, तो फ़्लैश की रोशनी के अलग-अलग लेवल के लिए अनुरोध करने पर, फ़्लैश की रोशनी बदलती है. इस कुकी से यह पुष्टि की जाती है कि फ़्लैश की रोशनी को कंट्रोल करने की सुविधा, अलग-अलग AE_MODES के साथ काम करती है.
उदाहरण के लिए, अगर ऑटो-एक्सपोज़र मोड ON या OFF पर सेट है, तो फ़्लैश की रोशनी के लेवल से चमक पर असर पड़ता है. वहीं, अगर मोड ON_AUTO_FLASH पर सेट है, तो फ़्लैश की रोशनी के लेवल से चमक पर कोई असर नहीं पड़ता.
टेस्ट करने के लिए, टेस्ट रिग में मौजूद लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. जांच ठीक से काम करे, इसके लिए सीन पूरी तरह से अंधेरा होना चाहिए.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
पास:
ऑटो-एक्सपोज़र मोड ON या OFF पर सेट होने पर, फ़्लैश की रोशनी के लेवल के बढ़ने पर इमेज पैच की चमक बढ़ती है. फ़्लैश की रोशनी का लेवल, फ़्लैश बंद होने से लेकर FLASH_SINGLE_STRENGTH_MAX_LEVEL तक बढ़ता है.
ऑटो-एक्सपोज़र मोड ON_AUTO_FLASH पर सेट होने पर, इमेज पैच की चमक में अंतर, तय सीमा के अंदर होता है. ऐसा इसलिए होता है, क्योंकि फ़्लैश की रोशनी का लेवल, फ़्लैश बंद होने से लेकर FLASH_SINGLE_STRENGTH_MAX_LEVEL तक बढ़ता है.
test_led_snapshot
इन टेस्ट से यह पता चलता है कि एलईडी स्नैपशॉट से इमेज में ज़्यादा रंग नहीं भरते या इमेज का रंग नहीं बदलता.
इस टेस्ट में, सेंसर फ़्यूज़न बॉक्स में एक लाइटिंग कंट्रोलर जोड़ा जाता है, ताकि लाइटों को कंट्रोल किया जा सके. लाइट को OFF पर सेट करने पर, टेस्ट में AUTO_FLASH मोड को ON पर सेट करके फ़ोटो कैप्चर की जाती है. इस कैप्चर के दौरान, टेस्ट में प्रीकैप्चर सीक्वेंस चलता है. इसमें aePrecapture ट्रिगर को START पर सेट किया जाता है. साथ ही, फ़्लैश के साथ कैप्चर करने के लिए, कैप्चर इंटेंट को Preview पर सेट किया जाता है.
फ़्लैश की वजह से कैप्चर में एक खास हॉटस्पॉट है. इसलिए, टेस्ट पूरे कैप्चर की फ़्लैश इमेज का औसत निकालता है और पुष्टि करता है कि वैल्यू (68, 102) रेंज में है या नहीं. यह जांच करने के लिए कि इमेज में सफ़ेद रंग का संतुलन सही है या नहीं, टेस्ट में लाल-हरे और नीले-हरे रंग के अनुपात का हिसाब लगाया जाता है. साथ ही, यह पुष्टि की जाती है कि अनुपात 0.95 और 1.05 के बीच है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
पास: लाल-हरे और नीले-हरे रंग के अनुपात, 0.95 और 1.05 के बीच हैं. फ़्लैश इमेज का औसत मान, (68, 102) रेंज में है.
test_night_mode_indicator
यह टेस्ट, नाइट मोड इंडिकेटर की सुविधा की जांच करता है. यह सुविधा बताती है कि कैमरा कम रोशनी में काम कर रहा है या नहीं. साथ ही, यह भी बताती है कि नाइट मोड कैमरा एक्सटेंशन से फ़ोटो कैप्चर करने पर, फ़ोटो की क्वालिटी बेहतर होगी या नहीं. यह सुविधा सिर्फ़ उन डिवाइसों पर उपलब्ध है जिन पर नाइट मोड कैमरा एक्सटेंशन काम करते हैं.
इस टेस्ट से यह पता चलता है कि नाइट मोड इंडिकेटर, कैमरे की झलक के दौरान रोशनी की स्थिति को सही तरीके से दिखाता है या नहीं. जांच में ये चरण पूरे किए जाते हैं:
- शुरुआत: टेस्ट,
ItsSessionको शुरू करता है और कैमरे की प्रॉपर्टी को वापस पाता है. यह लाइटिंग कंट्रोलर से भी कनेक्ट होता है. - टेस्ट को स्किप करने की शर्तें: अगर डिवाइस, ज़रूरी एपीआई लेवल या नाइट मोड इंडिकेटर की सुविधा के साथ काम नहीं करता है, तो टेस्ट को स्किप कर दिया जाता है.
- Camera2 सेशन:
- यह टेस्ट,
Camera2सेशन का इस्तेमाल करके, झलक कैप्चर करने का सेशन शुरू करता है. - लाइट चालू हो जाती है और झलक वाला फ़्रेम कैप्चर हो जाता है.
- इस टेस्ट से यह पुष्टि की जाती है कि नाइट मोड इंडिकेटर,
OFFस्थिति में है. - लाइट बंद कर दी जाती है और झलक दिखाने वाला फ़्रेम कैप्चर किया जाता है.
- इस टेस्ट से यह पुष्टि की जाती है कि नाइट मोड इंडिकेटर,
ONस्थिति में है.
- यह टेस्ट,
- कैमरा एक्सटेंशन सेशन:
- इस टेस्ट में,
Camera2सेशन के लिए इस्तेमाल की गई प्रक्रिया को दोहराया जाता है. हालांकि, इसमेंEXTENSION_NIGHTएक्सटेंशन के साथCameraExtensionसेशन का इस्तेमाल किया जाता है.
- इस टेस्ट में,
- सफ़ाई: टेस्ट बंद हो जाता है
ItsSessionऔर लाइटिंग कंट्रोलर को रिलीज़ कर देता है.
जांचे गए एपीआई:
पास:
- लाइट चालू होने पर, नाइट मोड इंडिकेटर
OFFस्थिति में होना चाहिए. - लाइट बंद होने पर, नाइट मोड इंडिकेटर
ONस्थिति में होना चाहिए. - यह
Camera2औरCameraExtension, दोनों सेशन पर लागू होता है.
test_preview_min_frame_rate
इस टेस्ट में यह देखा जाता है कि अंधेरे सीन में, झलक दिखाने वाले फ़्रेम का रेट सही तरीके से कम होता है या नहीं. इस टेस्ट के सही तरीके से काम करने के लिए, टेस्ट रिग की लाइटें बंद होनी चाहिए. इन्हें कंट्रोलर या टेस्ट ऑपरेटर को मैन्युअल तरीके से बंद करना होगा.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: झलक का फ़्रेम रेट, अनुरोध किए गए फ़्रेम रेट की कम से कम सीमा पर है. साथ ही, फ़्रेम के बीच का अंतर, टेस्ट में सेट की गई पूरी टॉलरेंस से कम है.
test_torch_strength
इन टेस्ट से यह पता चलता है कि TORCH मोड में फ़्लैश की रोशनी को कंट्रोल करने की सुविधा सही तरीके से लागू की गई है या नहीं.
इसकी मदद से यह पुष्टि की जाती है कि अगर डिवाइस, TORCH मोड में कैमरा इस्तेमाल करने के दौरान फ़्लैश की रोशनी को कंट्रोल करने की सुविधा के साथ काम करता है, तो रोशनी के अलग-अलग लेवल के लिए टॉर्च की रोशनी बदलती है. इस कुकी से यह पुष्टि की जाती है कि फ़्लैश की रोशनी को कंट्रोल करने की सुविधा, अलग-अलग AE_MODES के साथ काम करती है.
उदाहरण के लिए, अगर ऑटो-एक्सपोज़र मोड ON या OFF पर सेट है, तो फ़्लैश की रोशनी के लेवल से चमक पर असर पड़ता है. वहीं, अगर मोड ON_AUTO_FLASH पर सेट है, तो फ़्लैश की रोशनी के लेवल से चमक पर कोई असर नहीं पड़ता.
यह पुष्टि करता है कि वीडियो कैप्चर सेशन के दौरान, टॉर्च की रोशनी एक जैसी रहती है. टेस्ट करने के लिए, टेस्ट रिग में मौजूद लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. टेस्ट के ठीक से काम करने के लिए, सीन पूरी तरह से अंधेरा होना चाहिए.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
पास:
ऑटो-एक्सपोज़र मोड ON या OFF पर सेट होने पर, फ़्लैश की रोशनी के बंद से लेकर FLASH_TORCH_STRENGTH_MAX_LEVEL तक बढ़ने पर, इमेज के बर्स्ट पैच की चमक बढ़ जाती है.
ऑटो-एक्सपोज़र मोड ON_AUTO_FLASH पर सेट होने पर, फ़्लैश की रोशनी के लेवल में बदलाव होने पर भी, इमेज बर्स्ट पैच की चमक में ज़्यादा अंतर नहीं होता. ऐसा इसलिए होता है, क्योंकि फ़्लैश बंद होने से लेकर FLASH_TORCH_STRENGTH_MAX_LEVEL तक, फ़्लैश की रोशनी के लेवल में बदलाव होने पर भी, इमेज बर्स्ट पैच की चमक में ज़्यादा अंतर नहीं होता.
sensor_fusion
सेंसर फ़्यूज़न टेस्ट के लिए, फ़ोन को चेकरबोर्ड पैटर्न और ArUco मार्कर के सामने खास तरीके से घुमाना होता है. बेहतर नतीजों के लिए, पुष्टि करें कि टेस्ट चार्ट को
सपाट तरीके से लगाया गया हो. फ़्लैट नहीं होने वाले चार्ट, कई टेस्ट के रोटेशन कैलकुलेशन पर असर डालते हैं. चार्ट को सेंसर फ़्यूज़न बॉक्स के पीछे की तरफ़ 17x17 इंच के साइज़ में प्रिंट करके चिपकाया जाना चाहिए. (43x43 cm). सेंसर फ़्यूज़न बॉक्स की मदद से, sensor_fusion टेस्ट को अपने-आप होने वाले टेस्ट के तौर पर सेट अप किया जा सकता है.
142वीं इमेज. सेंसर फ़्यूज़न चार्ट.
143वीं इमेज. सेंसर फ़्यूज़न चार्ट, जो सेंसर फ़्यूज़न बॉक्स के बैकग्राउंड में दिखता है.
test_lens_intrinsic_calibration
इस टेस्ट में यह देखा जाता है कि ऑप्टिकल इमेज स्टेबलाइज़ेशन (ओआईएस) की वजह से, लेंस के हिलने पर लेंस का ऑप्टिकल सेंटर बदलता है या नहीं. अगर लेंस के इंट्रिंसिक सैंपल काम करते हैं, तो यह टेस्ट करता है कि ओआईएस की वजह से लेंस के हिलने पर, लेंस के इंट्रिंसिक सैंपल का ऑप्टिकल सेंटर बदलता है या नहीं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: लेंस का ऑप्टिकल सेंटर, एक पिक्सल या इससे ज़्यादा बदल गया है. अगर लेंस इंट्रिंसिक सैंपल काम करते हैं, तो लेंस इंट्रिंसिक सैंपल के ऑप्टिकल सेंटर में एक पिक्सल या इससे ज़्यादा का बदलाव होता है.
नीचे दिए गए फ़िगर में, हर फ़्रेम के लिए पिक्सल में मुख्य बिंदुओं के बदलाव दिखाने वाला test_lens_intrinsic_calibration प्लॉट
दिया गया है:
144वीं इमेज. test_lens_intrinsic_calibration प्लॉट का उदाहरण. इसमें हर फ़्रेम के लिए, पिक्सल में मुख्य बिंदुओं में हुए बदलाव दिखाए गए हैं.
test_multi_camera_frame_sync
इन टेस्ट में, लॉजिकल कैमरे से कैप्चर किए गए टाइमस्टैंप की जांच की जाती है. इसके लिए, चेकरबोर्ड में मौजूद स्क्वेयर के ऐंगल का हिसाब लगाया जाता है. इससे टाइमस्टैंप का पता चलता है. यह जांच 10 मिलीसेकंड में पूरी हो जाती है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPEandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
पास: फ़ोन को घुमाने पर, हर कैमरे से ली गई इमेज के बीच का ऐंगल ज़्यादा नहीं बदलता.
test_preview_distortion
इन टेस्ट से यह पता चलता है कि अलग-अलग ज़ूम लेवल पर ली गई हर झलक वाली फ़्रेम में, इमेज में होने वाली गड़बड़ी को ठीक किया गया है या नहीं. हर झलक वाले फ़्रेम के लिए, टेस्ट में कैमरे के इंट्रिंसिक और एक्सट्रिंसिक के आधार पर, सबसे सही पॉइंट का हिसाब लगाया जाता है.
उदाहरण के तौर पर दी गई इमेज में, आदर्श पॉइंट हरे रंग में दिखाए गए हैं. वहीं, असल पॉइंट लाल रंग में दिखाए गए हैं. डिस्टॉर्शन की गड़बड़ी का हिसाब, असल पॉइंट और आइडियल पॉइंट के बीच आरएमएस पिक्सल की दूरी के आधार पर लगाया जाता है. इमेज में हरे और लाल रंग के हाइलाइट का इस्तेमाल, गड़बड़ी वाले हिस्से का पता लगाने के लिए किया जाता है.
145वीं इमेज. चेकरबोर्ड की इमेज, जिसमें हरे रंग के पॉइंट, टारगेट किए गए पॉइंट और लाल रंग के पॉइंट, असल पॉइंट के तौर पर दिखाए गए हैं.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.media.CamcorderProfileandroid.media.MediaRecorder
पास: हर झलक फ़्रेम की सामान्य की गई गड़बड़ी, टेस्ट में सेट की गई थ्रेशोल्ड वैल्यू से कम है.
test_preview_stabilization
ऐसे टेस्ट जिनमें झलक वाले वीडियो को स्थिर रखा गया है. इनमें वीडियो को जायरोस्कोप से कम घुमाया जाता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: फ़्रेम के हिसाब से ज़्यादा से ज़्यादा ऐंगल रोटेशन, जायरोस्कोप के रोटेशन के 70% से कम है.
यहां स्टेबलाइज़ेशन की सुविधा वाले और बिना स्टेबलाइज़ेशन की सुविधा वाले वीडियो के सैंपल दिए गए हैं:
146वीं इमेज. स्टेबलाइज़ेशन की सुविधा के साथ सैंपल वीडियो.
इमेज 147. बिना स्टेबलाइज़ेशन वाला सैंपल वीडियो.
test_sensor_fusion
यह टेस्ट, एआर और वीआर ऐप्लिकेशन के लिए, कैमरे और जायरोस्कोप के टाइमस्टैंप के बीच के अंतर की जांच करता है. फ़ोन को चेकरबोर्ड पैटर्न के सामने 90 डिग्री पर 10 बार घुमाया जाता है. मोशन का पता लगाने में करीब दो सेकंड लगते हैं. अगर डिवाइस में जायरोस्कोप शामिल नहीं है या टाइमस्टैंप सोर्स REALTIME पैरामीटर चालू नहीं है, तो इस टेस्ट को छोड़ दिया जाता है.
test_sensor_fusion टेस्ट से कई प्लॉट जनरेट होते हैं. डीबग करने के लिए, ये दो सबसे ज़रूरी प्लॉट हैं:
test_sensor_fusion_gyro_events: इस इमेज में, टेस्ट के दौरान फ़ोन के जाइरोस्कोप इवेंट दिखाए गए हैं. x और y दिशा में होने वाली हलचल से पता चलता है कि फ़ोन को माउंटिंग प्लेट पर ठीक से नहीं लगाया गया है. इससे टेस्ट पास होने की संभावना कम हो जाती है. प्लॉट में साइकल की संख्या, फ़्रेम सेव करने की स्पीड पर निर्भर करती है.
आंकड़ा 148. test_sensor_fusion gyroscope इवेंट का उदाहरण.
test_sensor_fusion_plot_rotations: इससे जाइरोस्कोप और कैमरे की गतिविधियों के अलाइनमेंट के बारे में पता चलता है. इस प्लॉट में, कैमरा और जायरोस्कोप के बीच +/-1 मिलीसेकंड का अंतर होना चाहिए.
आकृति 149. test_sensor_fusion प्लॉट रोटेशन का उदाहरण.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#LENS_FACINGandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
पास: सीडीडी में 7.3.9 हाई फ़िडेलिटी सेंसर के मुताबिक, कैमरे और जाइरोस्कोप के टाइमस्टैंप का ऑफ़सेट 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_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: फ़्रेम के हिसाब से ज़्यादा से ज़्यादा ऐंगल रोटेशन, जायरोस्कोप के रोटेशन के 60% से कम है.
यहां स्टेबलाइज़ेशन की सुविधा चालू और बंद करके बनाए गए वीडियो के सैंपल दिए गए हैं.
इमेज 150. स्टेबलाइज़ेशन की सुविधा के साथ सैंपल वीडियो.
151वीं इमेज. बिना स्टेबलाइज़ेशन वाला सैंपल वीडियो.
test_video_stabilization_jca
JCA का इस्तेमाल करके कैप्चर किए गए वीडियो को स्थिर करने वाले टेस्ट में, जायरोस्कोप की तुलना में कम रोटेशन होता है. टेस्टिंग से पहले, डिवाइस पर JCA इंस्टॉल होना चाहिए.
जांचे गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: जेसीए का इस्तेमाल करके कैप्चर किए गए वीडियो से निकाले गए फ़्रेम में, ज़्यादा से ज़्यादा ऐंगल रोटेशन, जायरोस्कोप रोटेशन के 70% से कम है.
feature_combination
feature_combination टेस्ट से यह पुष्टि की जाती है कि एक साथ कई कैमरा सुविधाएं चालू होने पर, वे सही तरीके से काम करती हैं. इन टेस्ट में, चेकरबोर्ड वाली उसी इमेज का इस्तेमाल किया जाता है जिसका इस्तेमाल सेंसर फ़्यूज़न सीन में किया जाता है.
test_feature_combination
यह अलग-अलग स्ट्रीम कॉम्बिनेशन, वीडियो स्टेबलाइज़ेशन मोड, टारगेट एफ़पीएस रेंज, 10-बिट एचडीआर वीडियो, और अल्ट्रा एचडीआर के सभी कॉम्बिनेशन की जांच करता है. ये सभी कॉम्बिनेशन, कैमरा डिवाइस के साथ काम करते हैं.
Android 16 और इसके बाद के वर्शन के लिए, यह टेस्ट उन सभी सुविधाओं के कॉम्बिनेशन पर काम करता है जो काम करती हैं. साथ ही, नतीजों को एक प्रोटो फ़ाइल में लॉग करता है. फ़ेल होने की पुष्टि करने वाले दावे सिर्फ़ उन सुविधाओं के कॉम्बिनेशन के लिए किए जाते हैं जिनके लिए isSessionConfigurationSupported, True दिखाता है.
जांचे गए एपीआई:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
पास: सुविधा के हर कॉम्बिनेशन के लिए:
- अगर झलक को स्थिर करने की सुविधा चालू है, तो झलक वाली स्ट्रीम स्थिर हो जाती है.
- झलक का फ़्रेम रेट, कॉन्फ़िगर किए गए
AE_TARGET_FPS_RANGEके अंदर हो. - रिकॉर्ड की गई झलक वाली स्ट्रीम का कलर स्पेस, सेट किए गए कलर स्पेस से मेल खाता हो.
- अल्ट्रा एचडीआर कैप्चर में मान्य गेन मैप है.
scene_ip
Android 16 और इसके बाद के वर्शन में, सीन scene_ip की मदद से डिफ़ॉल्ट कैमरा ऐप्लिकेशन और Jetpack कैमरा ऐप्लिकेशन (JCA) के बीच इमेज पैरिटी की जांच की जा सकती है. इससे कैप्चर की गई इमेज के बीच के मुख्य अंतरों का पता लगाया जा सकता है. JCA, सोशल मीडिया ऐप्लिकेशन से कैप्चर की गई इमेज को कॉपी करता है. साथ ही, एक बेसलाइन इमेज उपलब्ध कराता है. इसके बाद, सोशल मीडिया ऐप्लिकेशन उस इमेज को प्रोसेस करते हैं और उसे बेहतर बनाते हैं.
हार्डवेयर सेटअप करने से जुड़ी ज़रूरी शर्तें
scene_ip टेस्ट के लिए, यह हार्डवेयर सेटअप ज़रूरी है:
- टेस्ट, Gen2 कैमरा ITS-in-a-box में किए जाते हैं.
- Gen2 रिग में शामिल लाइटिंग और सर्वो कंट्रोलर का इस्तेमाल, टेस्ट एनवायरमेंट को कंट्रोल करने के लिए किया जाता है
- Gen2 रिग के अंदर, टेस्ट फ़ीचर चार्ट रखा गया है.
152वीं इमेज. Gen2chart_sample का उदाहरण.
टेस्ट स्किप करने की शर्तें
इनमें से कोई भी शर्त पूरी होने पर, scene_ip टेस्ट नहीं किए जाते:
- डिवाइस का पहला एपीआई लेवल (
first_api_level) 35 या इससे कम हो. - डिवाइस, सामने और पीछे की ओर प्राइमरी कैमरा वाला फ़ोन नहीं होना चाहिए. उदाहरण के लिए, टैबलेट या टीवी.
test_default_jca_ip
यह टेस्ट फ़ीचर चार्ट की इमेज कैप्चर करता है. इसके लिए, यह डिफ़ॉल्ट कैमरा ऐप्लिकेशन और जेसीए का इस्तेमाल करता है. साथ ही, यह नियंत्रित लाइटिंग की स्थितियों में इन इमेज को कैप्चर करता है. इसके बाद, यह इन इमेज की जांच करता है:
FoV: इससे यह पता चलता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और JCA कैप्चर का FoV एक जैसा है या नहीं. इस जांच में, कैप्चर किए गए चार्ट की इमेज से निकाले गए सेंटर क्यूआर कोड की सुविधा का इस्तेमाल किया जाता है.
रोशनी: यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और JCA के बीच, रोशनी का अंतर 10 से ज़्यादा न हो. इस जांच में, चमक को मेज़र करने के लिए डाइनैमिक रेंज पैच का इस्तेमाल किया जाता है.
व्हाइट बैलेंस: यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और JCA के बीच व्हाइट बैलेंस का अंतर 4 से ज़्यादा न हो. इस जांच में, चमक को मेज़र करने के लिए डाइनैमिक रेंज पैच का इस्तेमाल किया जाता है.
बुनियादी सेक्शन पास: टेस्ट में, फ़ील्ड ऑफ़ व्यू (FoV), चमक, और सफ़ेद रंग के बैलेंस की जांच पास की गई हो. Android 16 में, इस टेस्ट को करना ज़रूरी नहीं है
(NOT_YET_MANDATED).