इस पेज पर, Camera Image Test Suite (आईटीएस) के तहत किए जाने वाले टेस्ट की पूरी सूची दी गई है. यह Android Compatibility Test Suite (सीटीएस) वेरिफ़ायर का हिस्सा है. आईटीएस टेस्ट, फ़ंक्शन की जांच करने के लिए होते हैं. इसका मतलब है कि ये इमेज क्वालिटी को मेज़र नहीं करते. हालांकि, ये यह जांच करते हैं कि कैमरे के सभी फ़ंक्शन उम्मीद के मुताबिक काम कर रहे हैं या नहीं. इस दस्तावेज़ से डेवलपर और टेस्टर को यह समझने में मदद मिलती है कि अलग-अलग टेस्ट क्या करते हैं और टेस्ट फ़ेलियर को कैसे डीबग किया जाता है.
आईटीएस टेस्ट को Android के हर वर्शन के साथ अपडेट किया जाता है या जोड़ा जाता है. इसके बारे में, Android के उस वर्शन के लिए Camera ITS के रिलीज़ नोट में बताया गया है. उपयोगकर्ता या डेवलपर की ओर से रिपोर्ट किए गए बग के आधार पर अपडेट किए जाते हैं. उपयोगकर्ता या डेवलपर की ओर से रिपोर्ट की गई गड़बड़ियों और कैमरा फ़्रेमवर्क की नई सुविधाओं के सही तरीके से काम करने की पुष्टि करने के आधार पर, नए टेस्ट जोड़े जाते हैं.
Android 17 और इसके बाद के वर्शन में, Camera ITS टेस्ट को CTS Verifier में दो गतिविधियों में बांटा गया है. इससे, टेस्ट को एक साथ चलाया जा सकता है और टेस्ट में लगने वाले समय को कम किया जा सकता है: एक गतिविधि feature_combination और sensor_fusion टेस्ट के लिए और दूसरी गतिविधि अन्य सभी टेस्ट के लिए. ज़्यादा जानकारी के लिए, टेस्ट में लगने वाले समय को कम करना लेख पढ़ें.
कैमरा आईटीएस, कैमरे की ज़रूरी प्रॉपर्टी, एपीआई लेवल, और मीडिया परफ़ॉर्मेंस क्लास (एमपीसी) लेवल के हिसाब से टेस्ट को गेट करता है. आईटीएस, एपीआई लेवल के लिए ro.product.first_api_level का इस्तेमाल करता है. इससे, किसी खास एपीआई लेवल में जोड़े गए टेस्ट को गेट किया जाता है. ये टेस्ट, कम एपीआई लेवल में फ़ंक्शन के लिए, उपयोगकर्ता के खराब अनुभवों की जांच करते हैं. आईटीएस, ro.vendor.api_level का इस्तेमाल करके उन सुविधाओं के टेस्ट को रोकता है जिन्हें किसी खास एपीआई लेवल में जोड़ा गया है और जिनके लिए नए हार्डवेयर की ज़रूरत होती है. अगर किसी डिवाइस के लिए ro.odm.build.media_performance_class तय किया गया है, तो आईटीएस के लिए एमपीसी लेवल के हिसाब से कुछ टेस्ट चलाने ज़रूरी हैं.
टेस्ट को सीन के हिसाब से, इन सेक्शन में बांटा गया है:
scene0: मेटाडेटा, जिटर, जाइरोस्कोप, और वाइब्रेशन कैप्चर करनाscene1: एक्सपोज़र, सेंसिटिविटी, एक्सपोज़र वैल्यू (ईवी) कंपंसेशन, YUV बनाम JPEG और RAWscene2: चेहरे की पहचान करने की सुविधा, ऐसे टेस्ट जिनके लिए रंगीन सीन की ज़रूरत होती हैscene3: एज को बेहतर बनाने की सुविधा, लेंस का मूवमेंटscene4: आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात), क्रॉप करना, फ़ील्ड-ऑफ़-व्यूscene6: Zoomscene7: मल्टी कैमरा स्विचscene8: ऑटो एक्सपोज़र (एई) और ऑटो व्हाइट बैलेंस (एडब्ल्यूबी) रीजन मीटरिंगscene9: JPEG कंप्रेशनscene_extensions: कैमरा एक्सटेंशनscene_tele: टेलीफ़ोटो लेंस पर स्विच करनाscene_video: फ़्रेम ड्रॉप
Gen2 rig / sensor_fusion-based test scenes
feature_combination: सुविधाओं के कॉम्बिनेशनscene_flash: ऑटोफ़्लैश, कम से कम फ़्रेम रेटscene_gen2_chart: Gen2 पेपर चार्ट का इस्तेमाल करके किए गए टेस्टscene_ip: डिफ़ॉल्ट कैमरा ऐप्लिकेशन और Jetpack Camera App (जेसीए) के बीच इमेज की समानताsensor_fusion: कैमरा और जाइरोस्कोप की टाइमिंग ऑफ़सेट
डिफ़्यूज़र पर आधारित टेस्ट सीन
scene5: लेंस शेडिंग
वाइड-गैमट टैबलेट पर आधारित टेस्ट सीन
scene_wide_gamut: वाइड गैमट कलर प्रोफ़ाइल और रेंज
हर सीन की जानकारी के लिए, अलग-अलग सेक्शन देखें.
टैबलेट पर टेस्ट सीन
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 एक्सपोज़र और गेन वैल्यू का इस्तेमाल किया जाता है, क्योंकि इमेज का कॉन्टेंट ज़रूरी नहीं होता. यह एक फ़ास्ट-फ़ेल टेस्ट है. इसका मतलब है कि यह कम समय में चलता है, इसके लिए कम से कम सेटअप की ज़रूरत होती है, और यह डाउनस्ट्रीम में फ़ेल होने वाले कई टेस्ट का सिग्नल देता है.
जब तक test_metadata पास नहीं हो जाता, तब तक पूरा टेस्ट सुइट नहीं चलाया जाना चाहिए.
टेस्ट किए गए एपीआई:
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
यह टेस्ट करता है कि डिवाइस, कैप्चर किए गए मेटाडेटा को पढ़कर, सही एक्सपोज़र और गेन वैल्यू लिखता है या नहीं. यह एक फ़ास्ट-फ़ेल टेस्ट है. इसमें कम से कम सेटअप की ज़रूरत होती है. साथ ही, यह डाउनस्ट्रीम में कई टेस्ट के फ़ेल होने का सिग्नल देता है.
जब तक 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
सेंसर फ़्यूज़न की सुविधा वाले डिवाइसों के लिए, यह टेस्ट यह जांच करता है कि डिवाइस, सेंसर इवेंट के बारे में क्वेरी करता है और उन्हें प्रिंट करता है या नहीं. इन सेंसर में एक्सलरोमीटर, जाइरोस्कोप, और मैग्नेटोमीटर शामिल हैं. यह टेस्ट सिर्फ़ तब काम करता है, जब स्क्रीन चालू हो. इसका मतलब है कि डिवाइस स्टैंडबाय मोड में न हो. यह एक फ़ास्ट-फ़ेल टेस्ट है. इसे चलाने में कम समय लगता है और इसके लिए कम से कम सेटअप की ज़रूरत होती है. साथ ही, यह सेंसर फ़्यूज़न टेस्ट के फ़ेल होने का सिग्नल देता है. sensor_fusion सीन टेस्ट तब तक नहीं चलने चाहिए, जब तक test_sensor_events को PASS या SKIP न किया जाए.
टेस्ट किए गए एपीआई:
पास: हर सेंसर के लिए इवेंट मिले हैं.
test_solid_color_test_pattern
इससे यह जांच होती है कि कैमरा म्यूट करने के लिए, सॉलिड कलर वाले टेस्ट पैटर्न सही तरीके से जनरेट हो रहे हैं या नहीं. अगर कैमरे को म्यूट करने की सुविधा काम करती है, तो सॉलिड कलर टेस्ट पैटर्न भी काम करने चाहिए. अगर कैमरा म्यूट करने की सुविधा काम नहीं करती है, तो सॉलिड कलर टेस्ट पैटर्न की जांच सिर्फ़ तब की जाती है, जब इस सुविधा का विज्ञापन दिया गया हो.
अगर रॉ इमेज काम करती हैं, तो कलर असाइनमेंट की भी जांच की जाती है. इन रंगों को टेस्ट किया गया: काला, सफ़ेद, लाल, नीला, और हरा. जिन कैमरों में रॉ इमेज की सुविधा नहीं होती है उनके लिए सिर्फ़ ब्लैक कलर की जांच की जाती है.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#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.CameraCharacteristics#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 और RAW एक जैसे दिखते हैं.
तीसरी इमेज. test_tonemap_curve का रॉ उदाहरण.
चौथी इमेज. test_tonemap_curve YUV का उदाहरण.
test_unified_timestamp
यह टेस्ट करता है कि इमेज और मोशन सेंसर इवेंट, एक ही टाइम डोमेन में हैं या नहीं. यह एक फ़ास्ट-फ़ेल टेस्ट है. इसका मतलब है कि यह कम समय में पूरा हो जाता है और इसके लिए कम से कम सेटअप की ज़रूरत होती है. साथ ही, यह सेंसर फ़्यूज़न टेस्ट के फ़ेल होने का सिग्नल देता है. sensor_fusion सीन के टेस्ट तब तक नहीं चलने चाहिए, जब तक test_unified_timestamp को PASS या SKIP न किया जाए.
टेस्ट किए गए एपीआई:
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 एक ग्रे चार्ट है. ग्रे चार्ट, कैमरे के एफ़ओवी के बीच के 30% हिस्से को कवर करना चाहिए. ग्रे चार्ट से 3A (एई, एडब्ल्यूबी, और एएफ़) को सामान्य तौर पर चुनौती मिलने की उम्मीद है, क्योंकि इसके बीच के हिस्से में कोई सुविधा नहीं है.
हालांकि, कैप्चर अनुरोध में पूरे सीन की जानकारी दी जाती है. इसमें 3A को कन्वर्ज करने के लिए ज़रूरी सुविधाएं शामिल होती हैं.
आरएफ़ओवी कैमरों की जांच, डब्ल्यूएफ़ओवी या आरएफ़ओवी टेस्ट रिग में की जा सकती है. अगर आरएफ़ओवी कैमरे को डब्ल्यूएफ़ओवी टेस्ट रिग में टेस्ट किया जाता है, तो चार्ट को 2/3 से स्केल किया जाता है. ऐसा इसलिए किया जाता है, ताकि एफ़ओवी में ग्रे चार्ट के लिए कुछ सीमाएं तय की जा सकें. इससे 3A को कन्वर्ज करने में मदद मिलती है. कैमरे की जांच करने वाले रिग के बारे में ज़्यादा जानकारी के लिए, कैमरा ITS-in-a-box देखें.
पांचवीं इमेज. फ़ुल-साइज़ scene1 चार्ट (बाएं), 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
पास: एई कन्वर्ज करता है.
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 auto का उदाहरण.
सातवीं इमेज. test_auto_vs_manual व्हाइट बैलेंस का उदाहरण.
इमेज 8. 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, सफ़ेद रंग का उदाहरण.
इमेज 11. test_black_white, प्लॉट का मतलब उदाहरण है.
test_burst_capture
यह पुष्टि करता है कि पूरी कैप्चर पाइपलाइन, फ़ुल-साइज़ कैप्चर और सीपीयू समय की स्पीड के साथ काम कर सकती है.
टेस्ट किए गए एपीआई:
Pass: यह टेस्ट, फ़ुल-साइज़ इमेज की एक सीरीज़ कैप्चर करता है. साथ ही, फ़्रेम ड्रॉप और इमेज की रोशनी की जांच करता है.
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 mean का उदाहरण.
इमेज 13. test_burst_sameness_manual_plot_means
test_crop_region_raw
यह टेस्ट करता है कि 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 का उदाहरण.
इमेज 16. test_crop_region_raw comp 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*एक्सपोज़र की वैल्यू एक जैसी होती है, तब आरजीबी प्लेन फ़्लैट होते हैं.
फ़ेल मैकेनिज़्म: नीचे दी गई इमेज में, गेन मल्टीप्लायर की वैल्यू (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 इमेज की एक जैसी क्वालिटी की जांच करता है. वहीं, फ़्रेम रेट की जांच सीटीएस में की जाती है.
टेस्ट किए गए एपीआई:
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 नीले रंग को बूस्ट करने का उदाहरण.
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: HQ, 3: कम से कम , 4: ZSL
इमेज 50. test_param_noise_reduction high gain nr=0 का उदाहरण.
इमेज 51. test_param_noise_reduction high gain nr=1 का उदाहरण.
इमेज 52. test_param_noise_reduction high gain nr=2 का उदाहरण.
इमेज 53. test_param_noise_reduction high gain nr=3 का उदाहरण.
54वीं इमेज. test_param_noise_reduction low gain का उदाहरण.
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 lens shading map, mode 0 loop 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_CURVEandroid.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
पास: सभी इमेज के सेंटर में, आरजीबी में बदली गई इमेज में रूट मीन स्क्वेयर (आरएमएस) (सिग्नल की वैल्यू) का ज़्यादा से ज़्यादा अंतर, सबसे ज़्यादा रिज़ॉल्यूशन वाली YUV इमेज के 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
यह पुष्टि करता है कि डीएनजी रॉ मॉडल के पैरामीटर सही हैं. प्लॉट में, अलग-अलग सेंसिटिविटी पर कैप्चर किए गए रॉ शॉट में, ग्रे कार्ड के सेंटर पैच के मेज़र किए गए वैरियंस को दिखाया जाता है. साथ ही, इन वैल्यू की तुलना उस वैरियंस से की जाती है जो कैमरा एचएएल में डीएनजी नॉइज़ मॉडल के हिसाब से, हर सेंसिटिविटी पर मिलने की उम्मीद होती है. यह वैरियंस, कैप्चर किए गए रिज़ल्ट ऑब्जेक्ट में दिखाए गए 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.graphics.ImageFormat#RAW10android.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 एपीआई का इस्तेमाल करके, 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
Pass: यह 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
पास: कैप्चर की गई दोनों इमेज के ल्यूमा में अंतर 4 प्रतिशत से कम है.
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 प्लेन को स्वैप करने से एसएडी बढ़ता है, तो माना जाता है कि आउटपुट में सही 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
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
यह सबसे बड़े JPEG फ़ॉर्मैट के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) के साथ, सबसे बड़े कॉमन YUV और JPEG फ़ॉर्मैट का इस्तेमाल करके दो इमेज कैप्चर करता है. यह आसपेक्ट रेशियो, 1920x1440 के रिज़ॉल्यूशन से ज़्यादा नहीं होना चाहिए.
jpeg.quality को 100 पर सेट करता है और ड्यूअल सरफ़ेस अनुरोध कैप्चर करता है. दोनों इमेज को आरजीबी ऐरे में बदलता है और दोनों इमेज के बीच 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 इमेज से 4% से कम CIELAB का अंतर है.
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
यह टेस्ट, S परफ़ॉर्मेंस क्लास के लिए JPEG कैप्चर लेटेंसी की जांच करता है. इसके बारे में सीडीडी के सेक्शन 2.2.7.2 कैमरा में बताया गया है.
पास: दोनों मुख्य कैमरों के लिए, 1080p रिज़ॉल्यूशन पर Camera2 JPEG कैप्चर लेटेंसी 1,000 मि॰से॰ से कम होनी चाहिए. इसे आईटीएस लाइटिंग कंडीशन (3000K) में सीटीएस कैमरा PerformanceTest से मेज़र किया जाता है.
test_camera_launch_perf_class
इससे S परफ़ॉर्मेंस क्लास के लिए, कैमरा लॉन्च होने में लगने वाले समय की जांच होती है. इसके बारे में सीडीडी के सेक्शन 2.2.7.2 कैमरा में बताया गया है.
पास: दोनों मुख्य कैमरों के लिए, camera2 स्टार्टअप लेटेंसी (कैमरा खोलने से लेकर पहली झलक वाला फ़्रेम दिखने तक का समय) 600 मि॰से॰ से कम होनी चाहिए. इसे सीटीएस कैमरे के PerformanceTest से मापा जाता है. यह टेस्ट, आईटीएस लाइटिंग कंडीशन (3000K) के तहत किया जाता है.
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 की इमेज की तरह बॉर्डर नहीं होते. इनमें सिर्फ़ चार्ट होता है. चार्ट फ़ाइंडर के बेहतर तरीके से काम करने के लिए, चार्ट सही ओरिएंटेशन में होना चाहिए.
Android 17 और इसके बाद के वर्शन में, scene3 चार्ट का पता लगाने के लिए ArUco मार्कर का इस्तेमाल करता है.
इमेज 108. scene3 चार्ट.
test_edge_enhancement
यह जांच करता है कि android.edge.mode पैरामीटर सही तरीके से लागू किया गया है या नहीं. यह हर एज मोड के लिए, ऐसी इमेज कैप्चर करता है जिन्हें फिर से प्रोसेस नहीं किया जा सकता. साथ ही, आउटपुट इमेज की शार्पनेस और कैप्चर किए गए नतीजे का मेटाडेटा दिखाता है. यह दिए गए एज मोड, सेंसिटिविटी, एक्सपोज़र टाइम, फ़ोकस डिस्टेंस, और आउटपुट सरफ़ेस पैरामीटर के साथ कैप्चर करने के अनुरोध को प्रोसेस करता है. Android 17 और इसके बाद के वर्शन में, ArUco मार्कर का इस्तेमाल करके चार्ट के उस हिस्से को तय किया जाता है जिसमें ज़रूरी शार्प एज मौजूद होते हैं.
पास: HQ मोड (2), OFF मोड (0) से ज़्यादा शार्प है. FAST मोड (1), OFF मोड से ज़्यादा साफ़ है. HQ मोड, FAST मोड से ज़्यादा शार्प है या इसके बराबर है.
टेस्ट किए गए एपीआई:
कैमरे के इन पैरामीटर पर असर पड़ा है:
EDGE_MODE
इमेज 109. test_edge_enhancement edge=0 का उदाहरण.
इमेज 110. test_edge_enhancement edge=1 (फ़ास्ट मोड) का उदाहरण.
इमेज 111. test_edge_enhancement edge=2 (अच्छी क्वालिटी वाला मोड) का उदाहरण.
test_flip_mirror
यह टेस्ट करता है कि इमेज, सीडीडी में 7.5.2 सामने वाले कैमरे के मुताबिक सही तरीके से ओरिएंट की गई है या नहीं. Android 17 और इसके बाद के वर्शन में, चार्ट की मौजूदगी और ओरिएंटेशन की पुष्टि करने के लिए, ArUco मार्कर का इस्तेमाल किया जाता है. मिरर की गई, फ़्लिप की गई या घुमाई गई इमेज की पहचान, सेंटर के पास मौजूद डायमंड फ़ीचर से की जा सकती है.
पास: सभी मार्कर का पता चल गया है और वे सही तरीके से अलाइन किए गए हैं. इमेज को फ़्लिप, मिरर या रोटेट न किया गया हो.
इमेज 112. 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 रेडियन से कम हो.
- (अभी तक ज़रूरी नहीं है) जाइरोस्कोप का ड्रिफ़्ट, एक डिग्री प्रति सेकंड से कम हो.
इमेज 113. test_imu_drift gyroscope drift का उदाहरण.
इमेज 114. test_imu_drift रोटेशन वेक्टर ड्रिफ़्ट का उदाहरण.
test_landscape_to_portrait
यह जांच करता है कि लैंडस्केप-ओरिएंटेड सेंसर के लिए, लैंडस्केप-टू-पोर्ट्रेट ओवरराइड सही तरीके से काम करता है या नहीं.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODESandroid.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATIONandroid.hardware.camera2.CameraManager#getCameraCharacteristics
पास: टेस्ट में, उम्मीद के मुताबिक रोटेशन वाला चार्ट दिखता है. लैंडस्केप-टू-पोर्ट्रेट ओवरराइड की सुविधा बंद होने पर, रोटेशन 0 डिग्री होता है. वहीं, सुविधा चालू होने पर रोटेशन 90 डिग्री होता है.
इमेज 115. test_landscape_to_portrait का उदाहरण.
test_lens_movement_reporting
यह टेस्ट करता है कि लेंस के मूवमेंट फ़्लैग की जानकारी सही तरीके से दी गई है या नहीं. यह एक क्लिक में 24 फ़ोटो कैप्चर करता है. इनमें से पहले 12 फ़्रेम, फ़ोकस की सबसे सही दूरी (3A के हिसाब से) पर कैप्चर किए जाते हैं. वहीं, आखिरी 12 फ़्रेम, फ़ोकस की कम से कम दूरी पर कैप्चर किए जाते हैं. फ़्रेम 12 के आस-पास, लेंस हिलता है. इस वजह से, शार्पनेस कम हो जाती है. लेंस के अपनी आखिरी पोज़िशन पर पहुंचने के बाद, फ़ोकस स्थिर हो जाता है.
लेंस के मूवमेंट फ़्लैग को उन सभी फ़्रेम में शामिल किया जाना चाहिए जिनमें शार्पनेस, पहले कुछ फ़्रेम की शार्पनेस के बीच की हो. इन फ़्रेम में, लेंस सबसे सही फ़ोकल दूरी पर स्थिर होता है. साथ ही, आखिरी कुछ फ़्रेम में लेंस, कम से कम फ़ोकल दूरी पर स्थिर होता है. यह ज़रूरी नहीं है कि लेंस किस फ़्रेम में मूव करता है: ज़रूरी यह है कि लेंस के मूव करने पर, मूवमेंट फ़्लैग को असर्ट किया जाए.
Android 17 और इसके बाद के वर्शन में, यह टेस्ट ArUco मार्कर का इस्तेमाल करता है. इससे चार्ट के उस हिस्से को तय किया जाता है जिसमें ज़रूरी शार्प एज मौजूद होते हैं. इस तरीके से, अल्ट्रा-वाइड (यूडब्ल्यू) से लेकर टेली ऐप्लिकेशन तक के कैमरों के लिए, स्टेबल डिटेक्शन की सुविधा मिलती है.
टेस्ट किए गए एपीआई:
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) से ज़्यादा शार्प है. साथ ही, अलग-अलग मोड के बीच सुधार एक जैसा है.
इमेज 116. test_reprocess_edge_enhancement प्लॉट का उदाहरण.
scene4
scene4 में एक स्क्वेयर के अंदर सफ़ेद बैकग्राउंड पर काले रंग का सर्कल होता है.
scene4 में किए जाने वाले टेस्ट, अलाइनमेंट के हिसाब से संवेदनशील हो सकते हैं. इसलिए, Android 15 से, टूल डायरेक्ट्री में check_alignment.py का इस्तेमाल किया जा सकता है. इससे डीयूटी और चार्ट अलाइनमेंट की जांच की जा सकती है.
इमेज 117. scene4 का उदाहरण.
test_30_60fps_preview_fov_match
यह टेस्ट करता है कि 30 एफ़पीएस और 60 एफ़पीएस की झलक वाले वीडियो का एफ़ओवी एक जैसा हो. इस टेस्ट में दो वीडियो कैप्चर किए जाते हैं. एक 30 एफ़पीएस और दूसरा 60 एफ़पीएस पर. हर वीडियो से एक फ़्रेम चुना जाता है और उसका विश्लेषण किया जाता है. इससे यह पुष्टि की जाती है कि दोनों वीडियो में एफ़ओवी में हुए बदलाव, तय की गई शर्तों के मुताबिक हैं. इससे यह जांच की जाती है कि सर्कल का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) और सर्कल की त्रिज्या एक जैसी रहे. साथ ही, सर्कल का केंद्र स्थिर रहे.
टेस्ट किए गए एपीआई:
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% से ज़्यादा का अंतर नहीं है, और ज़्यादा से ज़्यादा एफ़ओवी को सुरक्षित रखा गया है.
गड़बड़ी के तरीके:
- कैमरा, कैप्चर किए गए सीन के बीच में मौजूद टैबलेट पर दिखाए गए सर्कल के साथ अलाइन नहीं है.
- कैप्चर की गई इमेज में मौजूद सर्कल, प्रोसेसिंग पाइपलाइन की वजह से खराब हो गया है.
- कम रिज़ॉल्यूशन वाली इमेज को इमेज पाइपलाइन में दो बार काटा जाता है. इससे हाई और लो रिज़ॉल्यूशन वाली इमेज के बीच अलग-अलग एफ़ओवी बनता है.
- कैप्चर की गई इमेज में मौजूद सर्कल को क्रॉप कर दिया गया है. ऐसा इसलिए हुआ है, क्योंकि कैप्चर करने के अनुरोध में आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बहुत ज़्यादा है. इससे इमेज की ऊंचाई या चौड़ाई कम हो गई है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में रिफ़्लेक्शन है और वह पूरी तरह से भरा हुआ नहीं दिख रहा है.
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डिज़ाइन वैल्यू हैं, न कि असल कैलिब्रेशन डेटा.- कैमरा सिस्टम, टेस्ट सेटअप के लिए सही नहीं है. उदाहरण के लिए, आरएफ़ओवी टेस्ट रिग की मदद से, वाइड और अल्ट्रा-वाइड कैमरा सिस्टम की जांच करना. ज़्यादा जानकारी के लिए, कैमरा आईटीएस-इन-अ-बॉक्स के बारे में अक्सर पूछे जाने वाले सवाल का पहला सवाल देखें.
test_preview_aspect_ratio_and_crop
स्टिल कैप्चर के लिए test_aspect_ratio_and_crop टेस्ट की तरह ही, यह टेस्ट भी झलक दिखाने वाले फ़ॉर्मैट की जांच करता है. इससे यह पुष्टि की जाती है कि झलक दिखाने वाले फ़्रेम, गलत तरीके से स्ट्रेच या क्रॉप न किए गए हों. यह पुष्टि करता है कि सर्कल का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) न बदले. साथ ही, क्रॉप की गई इमेज में सर्कल, फ़्रेम के बीच में रहे. इसके अलावा, एक जैसे फ़ॉर्मैट या अलग-अलग रिज़ॉल्यूशन (एफ़ओवी की जांच) के लिए, सर्कल का साइज़ न बदले.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: इमेज स्ट्रेच नहीं की गई हैं, इमेज के सेंटर में 3% से ज़्यादा का अंतर नहीं है, और ज़्यादा से ज़्यादा एफ़ओवी को सुरक्षित रखा गया है.
test_preview_stabilization_fov
यह झलक के लिए इस्तेमाल किए जा सकने वाले साइज़ की जांच करता है, ताकि यह पक्का किया जा सके कि एफ़ओवी को सही तरीके से काटा गया है. टेस्ट के दौरान दो वीडियो कैप्चर किए जाते हैं. एक वीडियो में झलक को स्टैबलाइज़ करने की सुविधा ON और दूसरे वीडियो में झलक को स्टैबलाइज़ करने की सुविधा OFF होती है. हर वीडियो से एक फ़्रेम चुना जाता है और उसका विश्लेषण किया जाता है. इससे यह पुष्टि की जाती है कि दोनों वीडियो में एफ़ओवी में हुए बदलाव, तय की गई सीमा के अंदर हैं.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: सर्कल का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) करीब-करीब एक जैसा रहता है. सर्कल का सेंटर पॉइंट स्थिर रहता है. साथ ही, सर्कल के साइज़ में 20% से ज़्यादा का बदलाव नहीं होता.
test_video_aspect_ratio_and_crop
यह सभी वीडियो फ़ॉर्मैट में, स्क्वेयर के अंदर मौजूद सर्कल के वीडियो रिकॉर्ड करता है. यह की फ़्रेम को एक्सट्रैक्ट करता है और पुष्टि करता है कि सर्कल का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) न बदले. साथ ही, क्रॉप की गई इमेज में सर्कल बीच में रहे और सर्कल का साइज़ किसी कॉन्स्टेंट फ़ॉर्मैट या अलग रिज़ॉल्यूशन (एफ़ओवी की जांच) के लिए न बदले.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_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% से ज़्यादा का अंतर नहीं है, और ज़्यादा से ज़्यादा एफ़ओवी को सुरक्षित रखा गया है.
scene6
scene6, ArUco मार्कर का एक ग्रिड है. इसमें मौजूद हर मार्कर की पहचान अलग-अलग की जा सकती है.
scene6 में मौजूद टेस्ट, अलाइनमेंट के हिसाब से संवेदनशील हो सकते हैं. इसलिए, 15 से शुरू करके, टूल डायरेक्ट्री में check_alignment.py का इस्तेमाल किया जा सकता है. इससे डीयूटी और चार्ट अलाइनमेंट की जांच चालू की जा सकती है.
इमेज 118. छठे सीन का उदाहरण.
test_in_sensor_zoom
यह टेस्ट, कैमरे के इन-सेंसर ज़ूम की सुविधा की जांच करता है. इससे, रॉ इमेज को क्रॉप किया जाता है.
स्ट्रीम के इस्तेमाल के उदाहरण को
CROPPED_RAW पर सेट करने पर,
टेस्ट में ज़ूम रेंज के हिसाब से दो कैप्चर लिए जाते हैं. इनमें एक फ़ुल एफ़ओवी
रॉ इमेज और एक क्रॉप की गई रॉ इमेज शामिल होती है. यह टेस्ट, इमेज को आरजीबी अरे में बदलता है. साथ ही, क्रॉप की गई फ़ुल-साइज़ रॉ इमेज को SCALER_RAW_CROP_REGION के बताए गए साइज़ में छोटा करता है. इसके बाद, दोनों इमेज के बीच 3D आरएमएस के अंतर का हिसाब लगाता है.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_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 ऐप्लिकेशन (जेसीए) इंस्टॉल होना चाहिए.
टेस्ट किए गए एपीआई:
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 लेंस पर स्विच किया जाता है.
क्रॉसओवर पॉइंट पर और उससे पहले कैप्चर किए गए फ़्रेम का विश्लेषण, ऑटो एक्सपोज़र (एई), ऑटो व्हाइट बैलेंस (एडब्ल्यूबी), और ऑटोफ़ोकस (एएफ़) के लिए किया जाता है.
एई की जांच से यह पुष्टि होती है कि ल्यूमा में हुआ बदलाव, यूडब्ल्यू और डब्ल्यू लेंस, दोनों से ली गई इमेज के लिए तय की गई रेंज में है. एडब्ल्यूबी की जांच से यह पुष्टि होती है कि लाल-हरे और नीले-हरे रंग का अनुपात, UW और W लेंस की इमेज, दोनों के लिए थ्रेशोल्ड वैल्यू के अंदर है. एएफ़ की जांच, यूडब्ल्यू और डब्ल्यू लेंस की इमेज के बीच के औसत ग्रेडिएंट मैग्नीट्यूड के आधार पर, शार्पनेस के अनुमान की वैल्यू का आकलन करती है.
इस टेस्ट को करते समय, अगर मोइरे इफ़ेक्ट की वजह से नतीजों में रुकावट आती है, तो Camera ITS से मंज़ूरी पा चुके टैबलेट की सूची में से ज़्यादा रिज़ॉल्यूशन वाला टैबलेट इस्तेमाल करें.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: टेस्ट पास करने के लिए, एई और एडब्ल्यूबी की जांच पास करनी होगी. एएफ़ की जांच के नतीजों का इस्तेमाल, सिर्फ़ लॉग करने के लिए किया जाता है. हर जांच के लिए, ये शर्तें पूरी करनी होंगी:
- एई की जांच: अगर डिवाइस
ae_regionsऔरawb_regions, दोनों के साथ काम करता है, तो सभी कलर पैच के लिए, यूडब्ल्यू और डब्ल्यू लेंस की इमेज के बीच ल्यूमा में बदलाव (Y वैल्यू) 4% से कम होना चाहिए. अगर सिर्फ़ae_regionsका इस्तेमाल किया जा सकता है, तो सिर्फ़ ग्रे कलर पैच की वैल्यू को ज़रूरी शर्तें पूरी करनी होंगी. - एडब्ल्यूबी की जांच: अगर डिवाइस
ae_regionsऔरawb_regions, दोनों के साथ काम करता है, तो यूडब्ल्यू और डब्ल्यू लेंस की इमेज के लिए, लाल-हरे और नीले-हरे रंग की वैल्यू के बीच का अंतर, ग्रे कलर पैच के लिए 3% से कम और अन्य कलर पैच के लिए 10% से कम होना चाहिए. - एएफ़ की जांच: वाइड लेंस से ली गई इमेज की शार्पनेस, अल्ट्रावाइड लेंस से ली गई इमेज की शार्पनेस से ज़्यादा होनी चाहिए.
126वीं इमेज. अल्ट्रा वाइड लेंस से ली गई ग्रे पैच की इमेज.
इमेज 127. W लेंस से ली गई ग्रे पैच की फ़ोटो.
scene8
scene8 एक रेक्टैंगल फ़्रेम है, जिसे चार बराबर हिस्सों में बांटा गया है. हर हिस्से में एक पोर्ट्रेट है, जिसे अलग-अलग एक्सपोज़र के साथ लिया गया है या जिस पर अलग-अलग रंग का शेड (नीला शेड, ज़्यादा एक्सपोज़र, कम एक्सपोज़र, पीला शेड) ओवरले किया गया है.
मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने के लिए, चार ArUco मार्कर को रेक्टैंगल के चारों बाहरी कोनों के साथ अलाइन किया जाता है.
इमेज 128. scene8 का उदाहरण.
test_ae_awb_regions
यह टेस्ट करता है कि अलग-अलग एई और एडब्ल्यूबी क्षेत्रों में रिकॉर्डिंग की झलक देखने पर, आरजीबी और ल्यूमा वैल्यू अलग-अलग होती हैं या नहीं.
इस टेस्ट में, आठ सेकंड की झलक रिकॉर्ड की जाती है. इसमें हर क्वाड्रेंट पर दो सेकंड के लिए, एई और एडब्ल्यूबी मीटरिंग की जाती है. इसके बाद, टेस्ट हर क्षेत्र की झलक वाली रिकॉर्डिंग से एक फ़्रेम निकालता है. साथ ही, निकाले गए फ़्रेम का इस्तेमाल करके, एई और एडब्ल्यूबी की ये जांच करता है:
- एई की जांच: इससे यह पुष्टि होती है कि कम एक्सपोज़र वाले क्षेत्र को मापने वाले फ़्रेम की ल्यूमा वैल्यू, ज़्यादा एक्सपोज़र वाले क्षेत्र को मापने वाले फ़्रेम की तुलना में 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 में अलग-अलग साइज़ और रंग के हज़ारों सर्कल होते हैं. इससे एक ऐसा सीन बनता है जिसमें बहुत कम दोहराव होता है. इससे जेपीईजी कंप्रेशन एल्गोरिदम पर दबाव पड़ता है.
इमेज 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_extensions
scene_extensions टेस्ट, कैमरा एक्सटेंशन के लिए हैं. इनमें Camera ITS-in-a-Box का इस्तेमाल करना ज़रूरी है, क्योंकि इनके लिए टेस्ट एनवायरमेंट को सटीक तरीके से कंट्रोल करना ज़रूरी होता है. इसके अलावा,
लाइट लीक होने की समस्या को कंट्रोल करना होगा. इसके लिए, टेस्ट रिग, डीयूटी, और टैबलेट को ड्रॉप क्लॉथ से ढकना पड़ सकता है. साथ ही, डीयूटी की सामने वाली स्क्रीन से लाइट लीक को रोकना पड़ सकता है.
scene_hdr
scene_hdr सीन में, बाईं ओर एक पोर्ट्रेट और दाईं ओर कम कंट्रास्ट वाला क्यूआर कोड है.
इमेज 135. scene_hdr का उदाहरण.
test_hdr_extension
एचडीआर एक्सटेंशन की जांच करता है. यह एक्सटेंशन चालू होने और बंद होने पर, कैप्चर करता है. साथ ही, यह जांच करता है कि एक्सटेंशन की मदद से, क्यूआर कोड को ज़्यादा आसानी से पहचाना जा सकता है या नहीं.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
पास: एचडीआर एक्सटेंशन, क्यूआर कोड का पता लगाने के लिए ज़रूरी कंट्रास्ट में होने वाले बदलावों की संख्या को कम करता है या क्यूआर कोड में ग्रेडिएंट को कम करता है.
scene_low_light
scene_low_light सीन में, काले बैकग्राउंड पर ग्रे रंग के अलग-अलग शेड वाले स्क्वेयर की ग्रिड है. साथ ही, स्क्वेयर की ग्रिड को लाल रंग की आउटलाइन से घेरा गया है. स्क्वेयर को हिलबर्ट कर्व ओरिएंटेशन में व्यवस्थित किया गया है.
इमेज 136. scene_low_light का उदाहरण.
test_night_extension
नाइट एक्सटेंशन की जांच करता है. एक्सटेंशन चालू होने पर कैप्चर करता है और ये काम करता है:
- 20 स्क्वेयर की मौजूदगी का पता लगाता है
- हर स्क्वेयर से सीमित ल्यूमा की गणना करता है
- हिल्बर्ट कर्व ग्रिड ओरिएंटेशन के हिसाब से, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू का हिसाब लगाता है
- यह लगातार आने वाले स्क्वेयर (उदाहरण के लिए, स्क्वेयर2 - स्क्वेयर1) की ल्यूमा वैल्यू में अंतर का हिसाब लगाता है. यह स्क्वेयर 5 और 6 (स्क्वेयर6 - स्क्वेयर5) तक के स्क्वेयर की ल्यूमा वैल्यू में अंतर का हिसाब लगाता है. साथ ही, हिसाब लगाए गए पांच अंतरों का औसत निकालता है.
Android 16 या इसके बाद के वर्शन वाले डिवाइसों के लिए, कैप्चर करने के अनुरोध में एक मीटर वाला इलाका शामिल होता है. यह इलाका, स्क्वेयर के ग्रिड को घेरने वाले रेक्टैंगल के हिसाब से होता है. इस बदलाव से, थ्रेशोल्ड पास करने की ज़रूरी शर्तें बदल जाती हैं.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
पास:
- Android 16 या इसके बाद के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 80 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के लगातार स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 18.75 होना चाहिए.
- Android 15 और इससे पहले के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 85 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के लगातार स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 17 होना चाहिए.
यहां दिए गए ल्यूमिनेंस प्लॉट से पता चलता है कि टेस्ट पास करने पर नतीजा कैसा दिखता है.
इमेज 137. कम रोशनी में रात के समय ली गई फ़ोटो का उदाहरण, जो टेस्ट में पास हो गई है.
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 होना चाहिए.
scene_tele
scene_tele टेस्ट के लिए एक ज़रूरी शर्त यह है कि चार्ट की दूरी, टेलीफ़ोटो लेंस की कम से कम फ़ोकस दूरी के बराबर होनी चाहिए. फ़ोकस करने की कम से कम दूरी, अलग-अलग डिवाइसों के लिए अलग-अलग हो सकती है. इसलिए, आपको अपने सेटअप को खास टेलीफ़ोटो कैमरे के हिसाब से कॉन्फ़िगर करना होगा.
इमेज 138. वाइड और टेली कैमरे के फ़ोकस डिस्टेंस के आधार पर scene_tele सेटअप.
टेस्ट हार्डवेयर सेटअप के बारे में ज़्यादा जानने के लिए, टेली एक्सटेंशन रिग सेटअप देखें.
scene6_tele
scene6_tele सीन में, सफ़ेद बैकग्राउंड पर ArUco मार्कर का एक ग्रिड होता है.
अगर scene6_tele से ली गई फ़ोटो, मॉड्यूलर रिग में ज़्यादा एक्सपोज़र वाली दिखती हैं, तो मॉड्यूलर रिग की सामने वाली प्लेट को हटा दें.
WFoV टेस्ट रिग को एक्सटेंशन से डिसकनेक्ट करें और फ़ोन माउंट को हटाएं.
इमेज 139. WFoV टेस्ट रिग को एक्सटेंशन से डिसकनेक्ट करें और फ़ोन माउंट को हटाएं.
इमेज 140. फ़्रंट प्लेट हटाएं.
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) और टेलीफ़ोटो (टेली) लेंस के बीच स्विच करने पर, आरजीबी वैल्यू एक जैसी मिलती हैं.
इस टेस्ट में, पहले से तय की गई रेंज में अलग-अलग ज़ूम रेशियो का इस्तेमाल किया जाता है. इससे डाइनैमिक झलक की रिकॉर्डिंग की जाती है और उस पॉइंट की पहचान की जाती है जहां फ़िज़िकल कैमरा बदलता है. यह पॉइंट, वाइड लेंस से टेलीफ़ोटो लेंस पर स्विच करने की सुविधा को दिखाता है.
क्रॉसओवर पॉइंट पर और उससे पहले कैप्चर किए गए फ़्रेम का विश्लेषण, एई, एडब्ल्यूबी, और एएफ़ के लिए किया जाता है.
एई की जांच से यह पुष्टि होती है कि ल्यूमा में हुआ बदलाव, वाइड और टेलीफ़ोटो लेंस से ली गई इमेज, दोनों के लिए तय की गई रेंज में है. एडब्ल्यूबी की जांच से यह पुष्टि होती है कि लाल-हरे और नीले-हरे रंग का अनुपात, वाइड और टेलीफ़ोटो लेंस से ली गई इमेज, दोनों के लिए थ्रेशोल्ड वैल्यू के अंदर है. एएफ़ की जांच, वाइड और टेलीफ़ोटो लेंस से ली गई इमेज के बीच के ग्रेडिएंट मैग्नीट्यूड के औसत के आधार पर, शार्पनेस के अनुमान की वैल्यू का आकलन करती है.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: टेस्ट पास करने के लिए, एई, एडब्ल्यूबी, और एएफ़ की जांच पास करना ज़रूरी है. हर जांच के लिए ये शर्तें पूरी करनी होंगी:
- एई की जांच: वाइड और टेलीफ़ोटो लेंस से ली गई इमेज के बीच ल्यूमा में बदलाव 4% से कम होना चाहिए.
- एडब्ल्यूबी की जांच: LAB कलर स्पेस में, वाइड और टेलीफ़ोटो के लिए लाल-हरे और नीले-हरे के बीच डेल्टा C, 10 से ज़्यादा नहीं हो सकता.
- एएफ़ की जांच: टेली लेंस की इमेज की शार्पनेस, डब्ल्यू लेंस से ज़्यादा होनी चाहिए.
scene_video
scene_video एक वीडियो सीन है, जिसमें सफ़ेद बैकग्राउंड पर चार अलग-अलग रंगों के सर्कल, अलग-अलग फ़्रेम रेट पर आगे-पीछे घूमते हैं.
इमेज 141. scene_video का उदाहरण.
test_preview_frame_drop
यह टेस्ट करता है कि डाइनैमिक सीन के साथ, झलक के लिए अनुरोध किया गया फ़्रेम रेट बना रहे. यह टेस्ट उन सभी कैमरों पर चलता है जिन्हें तीसरे पक्ष के ऐप्लिकेशन ऐक्सेस कर सकते हैं.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: झलक का फ़्रेम रेट, अनुरोध किए गए फ़्रेम रेट की रेंज के हिसाब से ज़्यादा से ज़्यादा है. साथ ही, लगातार आने वाले फ़्रेम के बीच का औसत अंतर, टेस्ट में सेट किए गए रिलेटिव टॉलरेंस से कम है.
Gen2 रिग / sensor_fusion पर आधारित टेस्ट सीन
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_flash
scene_flash टेस्ट के लिए, सेंसर फ़्यूज़न बॉक्स में अंधेरा होना ज़रूरी है.
Android 17 और इसके बाद के वर्शन में, scene_flash की जांच Gen2 रिग का इस्तेमाल करके की जा सकती है.
test_auto_flash
इससे यह जांच की जाती है कि अंधेरे में, पीछे और सामने वाले कैमरे के लिए ऑटो-फ़्लैश की सुविधा चालू होती है या नहीं. सामने वाले कैमरे के लिए, ऑटो-फ़्लैश की सुविधा स्क्रीन का इस्तेमाल करके सीन को रोशन करती है, न कि फ़िज़िकल फ़्लैश यूनिट का. इस टेस्ट से यह पुष्टि होती है कि ऑटो-फ़्लैश चालू होने पर, टाइल इमेज का बीच का हिस्सा ज़्यादा चमकदार है. ऑटो-फ़्लैश की सुविधा को ट्रिगर करने के लिए, टेस्ट रिग की लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. टेस्ट सही तरीके से काम करे, इसके लिए ज़रूरी है कि सीन में पूरी तरह से अंधेरा हो. टेस्टिंग से पहले, डिवाइस पर Jetpack Camera ऐप्लिकेशन (JCA) इंस्टॉल होना चाहिए. रियर कैमरे के लिए ऑटो-फ़्लैश की सुविधा, एई स्टेट के ट्रिगर होने पर निर्भर करती है. हालांकि, फ़्रंट कैमरे के लिए ऑटो-फ़्लैश की सुविधा, एई पर निर्भर नहीं करती और हमेशा ट्रिगर होती है.
Android 17 और इसके बाद के वर्शन में, 1x के अलावा अन्य ज़ूम लेवल की जांच करता है, ताकि यह पुष्टि की जा सके कि ज़ूम करने की सभी रेंज सही तरीके से काम कर रही हैं.
टेस्ट किए गए एपीआई:
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#SCALER_AVAILABLE_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 तक बढ़ जाता है.
scene_gen2_chart
Android 17 और इसके बाद के वर्शन में, scene_gen2_chart, Gen2 पेपर चार्ट का इस्तेमाल करता है.
इस टेस्ट चार्ट में चेहरे के सैंपल, एक क्यूआर कोड, ग्रे-स्केल पैच, एक सीमेंस स्टार, एक कलर चार्ट, और तिरछे स्क्वेयर शामिल हैं.
इमेज 142. Gen2 चार्ट का सैंपल.
test_tonemap_sequence
इस टेस्ट में, डिवाइस के डिफ़ॉल्ट टोन मैप कर्व का आकलन, लीनियर कर्व और दो एक्स्पोनेंशियल कर्व के आधार पर किया जाता है. इनमें से एक कर्व में यूनिफ़ॉर्म पॉइंट होते हैं और दूसरे में नॉन-यूनिफ़ॉर्म पॉइंट होते हैं. पास होने के लिए, डिफ़ॉल्ट कर्व की चमक, लीनियर और एक्स्पोनेंशियल कर्व की चमक से ज़्यादा होनी चाहिए. इसके अलावा, लीनियर कर्व, एक्स्पोनेंशियल कर्व से ज़्यादा ब्राइट होना चाहिए. साथ ही, दोनों एक्स्पोनेंशियल कर्व की ब्राइटनेस का लेवल एक जैसा होना चाहिए.
इस टेस्ट से, डिवाइस के डिफ़ॉल्ट कर्व की सटीक जानकारी की भी पुष्टि होती है. इसके लिए, डिफ़ॉल्ट कर्व को निकाला जाता है और उसे फिर से इनपुट किया जाता है. इसके बाद, नतीजे के तौर पर मिली इमेज की चमक की तुलना, ओरिजनल डिफ़ॉल्ट कर्व की इमेज से की जाती है.
इमेज 143. टोनमैप सीक्वेंस प्लॉट की जांच करें.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास: डिफ़ॉल्ट और लीनियर कर्व के बीच ब्राइटनेस का अंतर 15% से ज़्यादा है. वहीं, दोनों एक्स्पोनेंशियल कर्व के बीच का अंतर 8% से कम है.
test_multi_camera_switch
इस टेस्ट में, डाइनैमिक ज़ूम ट्रांज़िशन के दौरान रंग और एक्सपोज़र की एक जैसी क्वालिटी की पुष्टि की जाती है. यह टेस्ट पुष्टि करता है कि रिकॉर्डिंग की झलक देखते समय, अल्ट्रावाइड (यूडब्ल्यू) और वाइड (डब्ल्यू) लेंस के बीच स्विच करने पर, CIELAB वैल्यू करीब-करीब एक जैसी रहती हैं. इससे उपयोगकर्ता अनुभव में कोई खास बदलाव नहीं दिखता.
इस जांच में, पहले से तय की गई ज़ूम रेंज में डाइनैमिक झलक की रिकॉर्डिंग की जाती है. इससे, फ़िज़िकल कैमरे का "क्रॉसओवर" पॉइंट ट्रिगर होता है. इस पॉइंट पर, अल्ट्रा वाइड लेंस से वाइड लेंस पर स्विच किया जाता है. इस टेस्ट से उस फ़्रेम का पता चलता है जहां लेंस स्विच होता है. इस क्रॉसओवर पॉइंट से ठीक पहले और बाद के फ़्रेम कैप्चर किए जाते हैं. साथ ही, ऑटो एक्सपोज़र (एई) और ऑटो व्हाइट बैलेंस (एडब्ल्यूबी) में स्थिरता के लिए उनका विश्लेषण किया जाता है.
एई की जांच से यह पुष्टि होती है कि लेंस हैंडऑफ़ के दौरान, ल्यूमा में होने वाले उतार-चढ़ाव स्वीकार की जाने वाली रेंज में रहें. एडब्ल्यूबी की जांच से यह पुष्टि होती है कि लाल-हरे और नीले-हरे रंग का अनुपात, कलर न्यूट्रैलिटी के लिए तय की गई सीमाओं के अंदर रहे.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: टेस्ट पास करने के लिए, एई और एडब्ल्यूबी की ये जांच पास करनी होंगी:
- एई की जांच: अगर डिवाइस
ae_regionsऔरawb_regions, दोनों के साथ काम करता है, तो सभी कलर पैच के लिए, यूडब्ल्यू और डब्ल्यू लेंस की इमेज के बीच ल्यूमा में बदलाव (Y वैल्यू) 4% से कम होना चाहिए. अगर सिर्फ़ae_regionsका इस्तेमाल किया जा सकता है, तो सिर्फ़ ग्रे कलर पैच की वैल्यू को ज़रूरी शर्तें पूरी करनी होंगी. - एडब्ल्यूबी की जांच: अगर डिवाइस
ae_regionsऔरawb_regions, दोनों के साथ काम करता है, तो यूडब्ल्यू और डब्ल्यू लेंस की इमेज के लिए, लाल-हरे और नीले-हरे रंग की वैल्यू के बीच का अंतर, ग्रे कलर पैच के लिए 3% से कम और अन्य कलर पैच के लिए 10% से कम होना चाहिए.
इमेज 144. अल्ट्रा वाइड लेंस से ली गई ग्रे पैच की इमेज.
इमेज 145. W लेंस से ली गई ग्रे पैच की फ़ोटो.
scene_ip
Android 16 और इसके बाद के वर्शन में, सीन scene_ip की मदद से, डिफ़ॉल्ट कैमरा ऐप्लिकेशन और Jetpack कैमरा ऐप्लिकेशन (जेसीए) के बीच इमेज की समानता की जांच की जा सकती है. इससे, कैप्चर की गई इमेज के बीच के मुख्य अंतर का पता लगाया जा सकता है. जेसीए, सोशल मीडिया ऐप्लिकेशन से ली गई इमेज को कॉपी करता है और एक बेसलाइन इमेज उपलब्ध कराता है. इसके बाद, सोशल मीडिया ऐप्लिकेशन उस इमेज को प्रोसेस और बेहतर बनाते हैं.
हार्डवेयर सेटअप करने से जुड़ी ज़रूरी शर्तें
scene_ip टेस्ट के लिए, यह हार्डवेयर सेटअप ज़रूरी है:
- टेस्ट, Gen2 कैमरा ITS-in-a-box में किए जाते हैं.
- Gen2 रिग में मौजूद लाइटिंग और सर्वो कंट्रोलर का इस्तेमाल, टेस्ट एनवायरमेंट को कंट्रोल करने के लिए किया जाता है.
- Gen2 रिग में, टेस्ट फ़ीचर चार्ट रखा गया है.
इमेज 146. Gen2chart_sample का उदाहरण.
टेस्ट स्किप करने की शर्तें
अगर इनमें से कोई भी शर्त पूरी होती है, तो scene_ip टेस्ट को स्किप कर दिया जाता है:
- डिवाइस का पहला एपीआई लेवल (
first_api_level) 35 या इससे कम हो. - डिवाइस, ऐसा फ़ोन नहीं है जिसमें सामने और पीछे की ओर मुख्य कैमरा मौजूद हो. उदाहरण के लिए, टैबलेट या टीवी.
test_default_jca_ip
यह टेस्ट फ़ीचर चार्ट की फ़ोटो लेता है. इसके लिए, रोशनी को कंट्रोल किया जाता है. साथ ही, डिफ़ॉल्ट कैमरा ऐप्लिकेशन और जेसीए का इस्तेमाल किया जाता है. इसके बाद, यह जांच की जाती है:
एफ़ओवी: इससे यह जांच की जाती है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और जेसीए कैप्चर का एफ़ओवी एक जैसा हो. इस जांच में, कैप्चर की गई चार्ट इमेज से निकाले गए सेंटर क्यूआर कोड की सुविधा का इस्तेमाल किया जाता है.
ब्राइटनेस: यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और जेसीए के बीच ब्राइटनेस का अंतर 10 से ज़्यादा न हो. इस जांच में, चमक को मापने के लिए डाइनैमिक रेंज पैच का इस्तेमाल किया जाता है.
वाइट बैलेंस: यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और जेसीए के बीच वाइट बैलेंस का अंतर, चार से ज़्यादा न हो. इस जांच में, चमक को मापने के लिए डाइनैमिक रेंज पैच का इस्तेमाल किया जाता है.
कलर रेंडरिंग: यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और जेसीए के बीच कलर रेंडरिंग का अंतर छह से ज़्यादा न हो.
पास: टेस्ट में एफ़ओवी, ब्राइटनेस, और व्हाइट बैलेंस की जांच पास हो जाती है. Android 16 में, यह टेस्ट ज़रूरी नहीं है (NOT_YET_MANDATED). Android 17 और इसके बाद के वर्शन के लिए, एफ़ओवी, ब्राइटनेस, और व्हाइट बैलेंस की समानता की जांच करना ज़रूरी है. Android 17 में, कलर रेंडरिंग की जांच करना ज़रूरी नहीं है (NOT_YET_MANDATED).
test_jca_jpegr_ip
यह पुष्टि करता है कि JPEG_R JCA की झलक वाले स्नैपशॉट और कैप्चर की गई इमेज के बीच, व्हाइट बैलेंस का अंतर 4 से ज़्यादा न हो.
टेस्ट किए गए एपीआई:
पास: JCA की झलक वाले स्नैपशॉट और कैप्चर की गई JPEG_R इमेज के बीच व्हाइट बैलेंस का अंतर, थ्रेशोल्ड के अंदर है. डिफ़ॉल्ट रूप से, यह थ्रेशोल्ड 4 है.
sensor_fusion
सेंसर फ़्यूज़न टेस्ट के लिए, फ़ोन को चेकरबोर्ड पैटर्न और ArUco मार्कर के सामने खास तरीके से मूव करना ज़रूरी है. बेहतर नतीजे पाने के लिए, पक्का करें कि टेस्ट चार्ट को फ़्लैट माउंट किया गया हो. जो चार्ट फ़्लैट नहीं होते हैं वे कई टेस्ट के लिए, रोटेशन के कैलकुलेशन पर असर डालते हैं. चार्ट को 17x17 इंच के साइज़ में प्रिंट करके, सेंसर फ़्यूज़न बॉक्स के पिछले हिस्से को पूरी तरह से कवर करना चाहिए. (43x43 से॰मी॰). sensor_fusion टेस्ट को सेंसर फ़्यूज़न बॉक्स की मदद से ऑटोमेट किया जा सकता है.
इमेज 147. सेंसर फ़्यूज़न चार्ट.
इमेज 148. सेंसर फ़्यूज़न चार्ट, जो सेंसर फ़्यूज़न बॉक्स के पिछले हिस्से को भरता है.
test_lens_intrinsic_calibration
यह टेस्ट करता है कि ऑप्टिकल इमेज स्टेबलाइज़ेशन (ओआईएस) की वजह से लेंस के हिलने पर, लेंस के इंट्रिन्सिक का ऑप्टिकल सेंटर बदलता है या नहीं. अगर लेंस के इंट्रिन्सिक सैंपल काम करते हैं, तो यह टेस्ट करता है कि ओआईएस की वजह से लेंस के हिलने पर, लेंस के इंट्रिन्सिक सैंपल का ऑप्टिकल सेंटर बदलता है या नहीं.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: लेंस के इंट्रिन्सिक का ऑप्टिकल सेंटर, एक पिक्सल या उससे ज़्यादा बदलता है. अगर लेंस के इंट्रिन्सिक सैंपल काम करते हैं, तो लेंस के इंट्रिन्सिक सैंपल के ऑप्टिकल सेंटर में एक पिक्सल या उससे ज़्यादा का बदलाव होता है.
नीचे दी गई इमेज, test_lens_intrinsic_calibration प्लॉट का एक उदाहरण है. इसमें हर फ़्रेम के लिए, पिक्सल में प्रिंसिपल पॉइंट में हुए बदलावों को दिखाया गया है:
इमेज 149. 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
यह टेस्ट, ज़ूम करने के अलग-अलग लेवल पर ली गई हर झलक के फ़्रेम में मौजूद डिस्टॉर्शन को ठीक करता है. हर झलक वाले फ़्रेम के लिए, टेस्ट कैमरे की आंतरिक और बाहरी विशेषताओं के आधार पर आइडियल पॉइंट का हिसाब लगाता है.
उदाहरण के तौर पर दी गई इमेज में, आइडियल पॉइंट हरे रंग में दिखाए गए हैं. असल पॉइंट लाल रंग में दिखाए गए हैं. डिस्टॉर्शन एरर को असल पॉइंट और आइडियल पॉइंट के बीच की आरएमएस पिक्सल दूरी के आधार पर कैलकुलेट किया जाता है. इमेज में हरे और लाल रंग की हाइलाइट का इस्तेमाल, डिस्टॉर्शन की गड़बड़ी वाले हिस्से का पता लगाने के लिए किया जाता है.
इमेज 150. चेकरबोर्ड की इमेज, जिसमें सही पॉइंट हरे रंग में और असल पॉइंट लाल रंग में दिख रहे हैं.
टेस्ट किए गए एपीआई:
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#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: फ़्रेम के दौरान, रोटेशन का ज़्यादा से ज़्यादा ऐंगल, जाइरोस्कोप रोटेशन के 70% से कम हो.
यहां स्टेबलाइज़ेशन की सुविधा के साथ और इसके बिना बनाए गए सैंपल वीडियो दिए गए हैं:
इमेज 151. स्टेबलाइज़ेशन की सुविधा के साथ सैंपल वीडियो.
इमेज 152. स्टेबलाइज़ेशन के बिना सैंपल वीडियो.
test_sensor_fusion
यह एआर और वीआर ऐप्लिकेशन के लिए, कैमरे और जाइरोस्कोप के टाइमस्टैंप के बीच के अंतर की जांच करता है. फ़ोन को चेकरबोर्ड पैटर्न के सामने 90 डिग्री पर 10 बार घुमाया जाता है. मोशन की दोतरफ़ा यात्रा में करीब दो सेकंड लगते हैं. अगर कोई जाइरोस्कोप शामिल नहीं है या टाइमस्टैंप सोर्स REALTIME पैरामीटर चालू नहीं है, तो इस टेस्ट को छोड़ दिया जाता है.
test_sensor_fusion टेस्ट से कई प्लॉट जनरेट होते हैं. डीबग करने के लिए, दो सबसे अहम प्लॉट ये हैं:
test_sensor_fusion_gyro_events: टेस्ट के दौरान, फ़ोन के लिए जाइरोस्कोप इवेंट दिखाता है. X और Y दिशा में मूवमेंट का मतलब है कि फ़ोन, माउंटिंग प्लेट पर सुरक्षित तरीके से माउंट नहीं किया गया है. इससे टेस्ट पास होने की संभावना कम हो जाती है. प्लॉट में साइकल की संख्या, फ़्रेम सेव करने के लिए डेटा लिखने की स्पीड पर निर्भर करती है.
इमेज 153. test_sensor_fusion जाइरोस्कोप इवेंट का उदाहरण.
test_sensor_fusion_plot_rotations: इससे जाइरोस्कोप और कैमरे के इवेंट का अलाइनमेंट दिखता है. इस प्लॉट में, कैमरे और जाइरोस्कोप के बीच +/-1 मिलीसेकंड का मैचिंग मूवमेंट दिखना चाहिए.
इमेज 154. 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.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
पास: सीडीडी में 7.3.9 हाई फ़िडेलिटी सेंसर के मुताबिक, कैमरे और जाइरोस्कोप के टाइमस्टैंप का ऑफ़सेट एक मिलीसेकंड से कम है.
गड़बड़ी के तरीके:
- ऑफ़सेट से जुड़ी गड़बड़ी: कैमरा-जाइरोस्कोप ऑफ़सेट को +/-1 मि॰से॰ के अंदर सही तरीके से कैलिब्रेट नहीं किया गया है.
- फ़्रेम ड्रॉप: पाइपलाइन इतनी तेज़ नहीं है कि लगातार 200 फ़्रेम कैप्चर कर सके.
- सॉकेट से जुड़ी गड़बड़ियां:
adb, डीयूटी से लंबे समय तक कनेक्ट नहीं रह सकता, ताकि टेस्ट को पूरा किया जा सके. - चार्ट को फ़्लैट माउंट नहीं किया गया है. प्लॉट
test_sensor_fusion_plot_rotationsमें ऐसे फ़्रेम हैं जिनमें जाइरोस्कोप और कैमरे के रोटेशन में काफ़ी अंतर है. ऐसा इसलिए है, क्योंकि कैमरा चार्ट के उन हिस्सों से होकर घूमता है जो फ़्लैट नहीं हैं. - कैमरा, फ़्लैट माउंट नहीं किया गया है. प्लॉट
test_sensor_fusion_gyro_events, X और Y प्लेन में मूवमेंट दिखाता है. यह गड़बड़ी, फ़्रंट कैमरे में ज़्यादा आम है. इसकी वजह यह है कि रियर कैमरे का लेंस, फ़ोन के बाकी हिस्से से थोड़ा उभरा हुआ होता है. इस वजह से, फ़ोन के पिछले हिस्से को माउंटिंग प्लेट पर माउंट करने पर, वह थोड़ा झुक जाता है.
test_video_stabilization
अब इस्तेमाल नहीं किया जाता: इस टेस्ट का इस्तेमाल, Android 17 से नहीं किया जाता. Android 17 और इसके बाद के वर्शन के लिए, इस टेस्ट की जगह test_video_stabilization_jca का इस्तेमाल किया जाता है.
टेस्ट से पता चला कि स्टेबलाइज़ किया गया वीडियो, जाइरोस्कोप की तुलना में कम रोटेट होता है.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
पास: फ़्रेम के दौरान, ज़्यादा से ज़्यादा ऐंगल रोटेशन, जाइरोस्कोप रोटेशन के 60% से कम हो.
यहां कुछ सैंपल वीडियो दिए गए हैं. इनमें से कुछ वीडियो में स्टेबलाइज़ेशन की सुविधा का इस्तेमाल किया गया है और कुछ में नहीं.
इमेज 155. स्टेबलाइज़ेशन की सुविधा के साथ सैंपल वीडियो.
इमेज 156. स्टेबलाइज़ेशन के बिना सैंपल वीडियो.
test_video_stabilization_jca
टेस्ट से पता चला है कि जेसीए का इस्तेमाल करके कैप्चर किए गए वीडियो को स्टेबलाइज़ करने पर, वह जाइरोस्कोप की तुलना में कम रोटेट होता है. जांच करने से पहले, डिवाइस पर JCA इंस्टॉल होना चाहिए.
टेस्ट किए गए एपीआई:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.CamcorderProfileandroid.media.MediaRecorder
पास: जेसीए का इस्तेमाल करके कैप्चर किए गए वीडियो से निकाले गए फ़्रेम पर, ज़्यादा से ज़्यादा ऐंगल रोटेशन, जाइरोस्कोप रोटेशन 4 के 70% से कम है.
डिफ़्यूज़र-आधारित टेस्ट सीन
scene5
scene5 के लिए, एक समान रोशनी वाले ग्रे सीन की ज़रूरत होती है. इसके लिए, कैमरे के लेंस पर एक डिफ़्यूज़र लगाया जाता है. हमारा सुझाव है कि आप इस डिफ़्यूज़र का इस्तेमाल करें:
http://www.edmundoptics.com/optics/windows-diffusers/optical-diffusers/opal-diffusing-glass/46168/.
सीन तैयार करने के लिए, कैमरे के सामने एक डिफ़्यूज़र अटैच करें. इसके बाद, कैमरे को करीब 2,000 लक्स की रोशनी वाले सोर्स की ओर फ़ोकस करें. scene5 के लिए कैप्चर की गई इमेज में, डिफ़्यूज़ लाइटिंग होनी चाहिए. साथ ही, कोई भी फ़ीचर साफ़ तौर पर नहीं दिखना चाहिए. यहां एक सैंपल इमेज दी गई है:
इमेज 157. सीन 5 को कैप्चर करने का उदाहरण.
इस सीन के लिए, किसी टैबलेट या कंट्रोलर की ज़रूरत नहीं होती. इसलिए, टेस्ट के लिए TEST_BED_MANUAL टेस्टबेड का इस्तेमाल किया जाता है. उदाहरण के लिए, मैन्युअल टेस्टिंग config.yml फ़ाइल देखें.
डिफ़ॉल्ट config.yml फ़ाइल में TEST_BED_MANUAL शामिल नहीं है. हालांकि, फ़ाइल में बदलाव करके इसे शामिल किया जा सकता है.
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% से कम होना चाहिए. ऐसा होने पर ही, टेस्ट पास माना जाएगा.
गड़बड़ी के तरीके:
- इमेज में बहुत ज़्यादा विनेटिंग
- इमेज में काले बॉर्डर वाली आर्टफ़ैक्ट
इमेज 158. test_lens_shading_and_color_uniformity_y_plane.
इमेज 159. test_lens_shading_and_color_uniformity_color_uniformity.
इमेज 160. test_lens_shading_and_color_uniformity_lens_shading_result.
वाइड-गैमट टैबलेट पर आधारित टेस्ट सीन
scene_wide_gamut
scene_wide_gamut एक आयताकार फ़्रेम है, जिसे चार बराबर क्वाड्रेंट में बांटा गया है.
हर क्वाड्रेंट में अलग रंग भरा हुआ है. इसके लिए, टैबलेट को चार्ट को वाइड गैमट में दिखाना होगा. साथ ही, डीयूटी को स्क्रीन की वाइड गैमट फ़ोटोग्राफ़ कैप्चर करनी होगी.
इन टेस्ट से यह पुष्टि होती है कि कैप्चर की गई इमेज, सही कलर प्रोफ़ाइल और कलर रेंज के मुताबिक है.
test_display_p3
ColorSpaceProfiles एपीआई का इस्तेमाल करके, JPEG में Display P3 कैप्चर की जांच करता है. यह टेस्ट करता है कि कैप्चर की गई JPEG इमेज के हेडर में सही आईसीसी प्रोफ़ाइल है या नहीं. साथ ही, यह भी टेस्ट करता है कि इमेज में एसआरजीबी गैमट के बाहर के रंगों का कुछ पर्सेंटाइल है या नहीं.
टेस्ट किए गए एपीआई:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
पास: JPEG में Display P3 ICC प्रोफ़ाइल और sRGB गैमट के बाहर के एक प्रतिशत से ज़्यादा रंग शामिल हैं.
इमेज 161. test_display_p3 का उदाहरण.