इस पेज पर, Camera Image Test Suite (ITS) में शामिल टेस्ट की पूरी सूची दी गई है. यह Android Compatibility Test Suite (CTS) Verifier का हिस्सा है. आईटीएस टेस्ट, फ़ंक्शन की जांच करने वाले टेस्ट होते हैं. इसका मतलब है कि इनसे इमेज क्वालिटी का पता नहीं चलता, बल्कि यह पता चलता है कि विज्ञापन में दिखाए गए कैमरे के सभी फ़ंक्शन ठीक से काम कर रहे हैं या नहीं. इस दस्तावेज़ से डेवलपर और टेस्टर को यह समझने में मदद मिलती है कि अलग-अलग टेस्ट क्या करते हैं और टेस्ट में आने वाली गड़बड़ियों को डीबग कैसे करें.
कैमरा ITS गेट्स, ज़रूरी कैमरा प्रॉपर्टी, एपीआई लेवल, और मीडिया परफ़ॉर्मेंस क्लास (एमपीसी) लेवल के हिसाब से टेस्ट करता है. एपीआई लेवल के लिए, ITS किसी खास एपीआई लेवल में जोड़े गए टेस्ट को गेट करने के लिए ro.product.first_api_level
का इस्तेमाल करता है. ये टेस्ट, एपीआई के निचले लेवल में फ़ंक्शन के लिए, उपयोगकर्ता अनुभव की खराब क्वालिटी का पता लगाते हैं. ITS, ro.vendor.api_level
का इस्तेमाल करके, एपीआई के किसी खास लेवल में जोड़ी गई उन सुविधाओं के लिए टेस्ट को गेट करता है जिनके लिए नए हार्डवेयर की ज़रूरत होती है. अगर किसी डिवाइस के लिए ro.odm.build.media_performance_class
तय किया गया है, तो एमपीसी लेवल के आधार पर, आईटीएस के लिए खास टेस्ट चलाने की ज़रूरत होती है.
टेस्ट को सीन के हिसाब से इस तरह ग्रुप किया जाता है:
scene0
: मेटाडेटा, जटर, जायरोस्कोप, वाइब्रेशन कैप्चर करनाscene1
: एक्सपोज़र, संवेदनशीलता, एक्सपोज़र वैल्यू (ईवी) के लिए कंपेसेशन, YUV बनाम JPEG और RAWscene2
: चेहरे की पहचान करने की सुविधा, कलर वाले सीन की ज़रूरत वाले टेस्टscene3
: किनारों को बेहतर बनाना, लेंस की मूवमेंटscene4
: आसपेक्ट रेशियो, काट-छांट करना, फ़ील्ड-ऑफ़-व्यूscene5
: लेंस पर गहरा छाया होनाscene6
: ज़ूम करेंscene7
: एक से ज़्यादा कैमरे के बीच स्विच करनाscene8
: ऑटो एक्सपोज़र (AE) और ऑटो व्हाइट बैलेंस (AWB) के लिए क्षेत्र के हिसाब से मेज़रमेंटscene9
: JPEG कम्प्रेशनscene_extensions
: कैमरे के एक्सटेंशनscene_tele
: टेलीफ़ोटो लेंस पर स्विच करनाscene_flash
: ऑटोफ़्लैश, कम से कम फ़्रेम रेटscene_video
: फ़्रेम ड्रॉपsensor_fusion
: कैमरे और जाइरोस्कोप के टाइमिंग ऑफ़सेटfeature_combination
: सुविधाओं के कॉम्बिनेशनscene_ip
: डिफ़ॉल्ट कैमरा ऐप्लिकेशन और Jetpack Camera ऐप्लिकेशन (JCA) के बीच इमेज की समानता
हर सीन की जानकारी के लिए, अलग-अलग सेक्शन देखें.
scene0
टेस्ट के लिए, किसी खास सीन की जानकारी की ज़रूरत नहीं होती. हालांकि, जायरोस्कोप और वाइब्रेशन की जांच के लिए, फ़ोन को एक जगह पर रखना ज़रूरी है.
test_jitter
कैमरे के टाइमस्टैंप में होने वाली झटके जैसी गतिविधियों को मेज़र करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
पास: फ़्रेम के बीच कम से कम 30 एमएस का डेल्टा है.
नीचे दी गई इमेज में, y-ऐक्सिस की छोटी रेंज पर ध्यान दें. इस प्लॉट में, असल में जटर कम है.
पहली इमेज. test_jitter प्लॉट.
test_metadata
कैप्चर किए गए रिज़ल्ट और कैमरे की विशेषताओं वाले ऑब्जेक्ट को देखकर, मेटाडेटा एंट्री की पुष्टि करता है. इस टेस्ट में auto_capture_request
एक्सपोज़र और गेन वैल्यू का इस्तेमाल किया जाता है, क्योंकि इमेज का कॉन्टेंट अहम नहीं होता.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
पास: हार्डवेयर लेवल, rollingShutterSkew
, frameDuration
टैग,
timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
,
फ़ील्ड ऑफ़ व्यू (एफ़ओवी), और हाइपरफ़ोकल डिस्टेंस मौजूद हैं और उनकी वैल्यू मान्य हैं.
test_request_capture_match
यह जांच करता है कि कैप्चर किए गए मेटाडेटा को पढ़कर, डिवाइस सही एक्सपोज़र और गेन वैल्यू लिखता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
पास: सभी शॉट में मेटाडेटा की वैल्यू मैच करने का अनुरोध करें और उन्हें कैप्चर करें.
test_sensor_events
सेंसर फ़्यूज़न की सुविधा का विज्ञापन करने वाले डिवाइसों के लिए, यह जांच की जाती है कि डिवाइस सेंसर इवेंट को क्वेरी करता है या नहीं और उन्हें प्रिंट करता है या नहीं. इनमें एक्सलरोमीटर, जाइरोस्कोप, और मैग्नेटोमीटर जैसे सेंसर होने चाहिए. यह जांच सिर्फ़ तब काम करती है, जब स्क्रीन चालू हो. इसका मतलब है कि डिवाइस स्टैंडबाय मोड में नहीं होना चाहिए.
इन एपीआई की जांच की गई है:
पास: हर सेंसर के लिए इवेंट मिलते हैं.
test_solid_color_test_pattern
यह जांच करता है कि कैमरे को म्यूट करने के लिए, सॉलिड कलर वाले टेस्ट पैटर्न सही तरीके से जनरेट हुए हैं या नहीं. अगर कैमरे को म्यूट करने की सुविधा काम करती है, तो एक ही रंग के टेस्ट पैटर्न काम करने चाहिए. अगर कैमरे को म्यूट करने की सुविधा काम नहीं करती है, तो एक ही रंग के टेस्ट पैटर्न का सिर्फ़ तब परीक्षण किया जाता है, जब इस सुविधा का विज्ञापन किया गया हो.
अगर रॉ इमेज काम करती हैं, तो रंग असाइन करने की सुविधा की भी जांच की जाती है. जिन रंगों पर जांच की गई है उनमें काला, सफ़ेद, लाल, नीला, और हरा शामिल है. जिन कैमरों में रॉ इमेज की सुविधा काम नहीं करती उनके लिए सिर्फ़ ब्लैक इमेज की जांच की जाती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
पास: सॉलिड टेस्ट पैटर्न सही रंग में हैं और इमेज में कम वैरिएशन है.
test_test_pattern
हर मान्य टेस्ट पैटर्न के लिए फ़्रेम कैप्चर करने के लिए, android.sensor.testPatternMode
पैरामीटर की जांच करता है. साथ ही, यह भी जांच करता है कि सॉलिड कलर और कलर बार के लिए फ़्रेम सही तरीके से जनरेट हुए हैं या नहीं. इस जांच में ये चरण शामिल हैं:
- काम करने वाले सभी टेस्ट पैटर्न के लिए इमेज कैप्चर करता है.
- यह सोलिड कलर टेस्ट पैटर्न और कलर बार के सही होने की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
पास: काम करने वाले टेस्ट पैटर्न सही तरीके से जनरेट किए गए हैं.
दूसरी इमेज. test_test_patterns का उदाहरण.
test_tonemap_curve
यह टेस्ट पैटर्न को लीनियर टोनमैप की मदद से, रॉ से YUV में बदलने की जांच करता है. इस जांच के लिए, android.sensor.testPatternMode = 2
(COLOR_BARS
) की ज़रूरत होती है, ताकि टोनमैप कन्वर्ज़न के लिए सही इमेज पैटर्न जनरेट किया जा सके. यह पुष्टि करता है कि पाइपलाइन में, लीनियर टोनमैप और सही इमेज इनपुट के साथ सही रंग आउटपुट हैं. यह test_test_patterns
पर निर्भर करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास: YUV और RAW फ़ॉर्मैट में मौजूद इमेज एक-दूसरे से मिलती-जुलती हैं.
तीसरा चित्र. test_tonemap_curve के रॉ डेटा का उदाहरण.
चौथी इमेज. test_tonemap_curve YUV का उदाहरण.
test_unified_timestamp
यह जांच करता है कि इमेज और मोशन सेंसर इवेंट, एक ही टाइम डोमेन में हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
पास: मोशन टाइमस्टैंप, दो इमेज टाइमस्टैंप के बीच में होते हैं.
test_vibration_restriction
यह जांच करता है कि डिवाइस का वाइब्रेशन ठीक से काम कर रहा है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
पास: कैमरे के ऑडियो पर पाबंदी लगाने वाले एपीआई की मदद से म्यूट करने पर, डिवाइस वाइब्रेट नहीं होता.
scene1_1
scene1
एक स्लेटी रंग का चार्ट है. स्लेटी रंग का चार्ट, कैमरे के फ़ील्ड ऑफ़ व्यू (FoV) के बीच के 30% हिस्से को कवर करना चाहिए. धूसर रंग के चार्ट में 3A (AE,
AWB, और AF) को थोड़ा चुनौती मिल सकती है, क्योंकि बीच के इलाके में कोई सुविधा नहीं है.
हालांकि, कैप्चर करने के अनुरोध में पूरे सीन की जानकारी होती है. इसमें 3A के लिए ज़रूरी सुविधाएं शामिल होती हैं.
आरएफ़ओवी कैमरों की जांच, डब्ल्यूएफ़ओवी या आरएफ़ओवी टेस्ट रिग में की जा सकती है. अगर किसी RFoV कैमरे की जांच WFoV टेस्ट रिग में की जाती है, तो फ़ोटोग्राफ़ी के लिए इस्तेमाल होने वाले क्षेत्र (एफ़ओवी) में मौजूद धूसर रंग के चार्ट की कुछ सीमाओं को तय करने के लिए, चार्ट को 2/3 के हिसाब से स्केल किया जाता है. इससे, 3A कंवरजेंस (तीन एलिमेंट को एक साथ काम करने की सुविधा) को बेहतर बनाने में मदद मिलती है. कैमरे के टेस्ट रिग के बारे में ज़्यादा जानकारी के लिए, कैमरे के लिए ITS-in-a-box देखें.
पांचवीं इमेज. पूरे साइज़ वाला सीन1 चार्ट (बाईं ओर), 2/3 स्केल वाला चार्ट (दाईं ओर).
test_ae_precapture_trigger
प्रीकैप्चर ट्रिगर का इस्तेमाल करते समय, एई स्टेट मशीन की जांच करता है. AE बंद होने पर, पांच मैन्युअल अनुरोध कैप्चर करता है. आखिरी अनुरोध में, एई (ऑटोमैटिक एक्सपोज़र) से पहले कैप्चर करने वाला ट्रिगर है. इसे अनदेखा कर दिया जाना चाहिए, क्योंकि एई बंद है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
पास: एई (ऑप्टिमाइज़ेशन एल्गोरिदम) एक नतीजे पर पहुंचता है.
test_auto_vs_manual
अपने-आप और मैन्युअल तरीके से कैप्चर किए गए शॉट एक जैसे दिखते हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
पास: हर कैप्चर के नतीजे में मैन्युअल वाइट बैलेंस गेन और ट्रांसफ़ॉर्म की रिपोर्ट, कैमरे के 3A एल्गोरिदम से मिले ऑटो वाइट बैलेंस estimate
से मैच होती है.
छठी इमेज. test_auto_vs_manual के लिए ऑटोमैटिक उदाहरण.
सातवीं इमेज. test_auto_vs_manual वाइट बैलेंस का उदाहरण.
इमेज 8. test_auto_vs_manual मैन्युअल व्हाइट बैलेंस ट्रांसफ़ॉर्म का उदाहरण.
test_black_white
यह जांच करता है कि डिवाइस, पूरी तरह से ब्लैक ऐंड व्हाइट इमेज जनरेट करता है या नहीं. यह दो कैप्चर लेता है. पहला कैप्चर, बहुत कम गेन और कम एक्सपोज़र के साथ लिया जाता है. इससे काली फ़ोटो मिलती है. दूसरा कैप्चर, बहुत ज़्यादा गेन और ज़्यादा एक्सपोज़र के साथ लिया जाता है. इससे सफ़ेद फ़ोटो मिलती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: इससे ब्लैक ऐंड व्हाइट इमेज बनती हैं. सफ़ेद इमेज के संतृप्त चैनलों की आरजीबी वैल्यू [255, 255, 255] होती है. साथ ही, गड़बड़ी का मार्जिन 1% से कम होता है.
नौवां इलस्ट्रेशन. test_black_white, ब्लैक इमेज का उदाहरण.
इमेज 10. test_black_white, सफ़ेद रंग का उदाहरण.
इमेज 11. test_black_white, प्लॉट का मतलब उदाहरण.
test_burst_capture
यह पुष्टि करता है कि कैप्चर करने की पूरी पाइपलाइन, पूरे साइज़ में कैप्चर करने की स्पीड और सीपीयू के समय के हिसाब से काम कर सकती है.
इन एपीआई की जांच की गई है:
पास: यह फ़ंक्शन, फ़ुल साइज़ की इमेज को कैप्चर करता है. साथ ही, फ़्रेम ड्रॉप और इमेज की चमक की जांच करता है.
test_burst_sameness_manual
मैन्युअल कैप्चर सेटिंग की मदद से, 50 इमेज के पांच बर्स्ट लेता है और यह जांच करता है कि वे सभी एक जैसी हैं या नहीं. इस टेस्ट का इस्तेमाल करके पता लगाएं कि क्या कभी-कभी ऐसे फ़्रेम होते हैं जिन्हें अलग तरीके से प्रोसेस किया जाता है या जिनमें आर्टफ़ैक्ट होते हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
पास: इमेज, विज़ुअल और आरजीबी वैल्यू में एक जैसी हैं.
अमान्य: हर बर्स्ट की शुरुआत में, आरजीबी औसत चार्ट में स्पाइक या गिरावट दिखती है
first_API_level
< 30 के लिए टॉलरेंस 3% हैfirst_API_level
>= 30 के लिए, टॉलरेंस 2% है
इमेज 12. test_burst_sameness_manual का मतलब बताने वाला उदाहरण.
इमेज 13. test_burst_sameness_manual_plot_means
test_crop_region_raw
यह जांच करता है कि RAW स्ट्रीम काटने लायक हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
पास: YUV इमेज को बीच से काटा जाता है, लेकिन RAW इमेज को नहीं.
इमेज 14. test_crop_region_raw comp रॉ फ़ॉर्मैट में काटे गए हिस्से का उदाहरण.
इमेज 15. test_crop_region_raw comp raw का पूरा उदाहरण.
इमेज 16. test_crop_region_raw comp YUV फ़ॉर्मैट में काटे गए हिस्से का उदाहरण.
इमेज 17. test_crop_region_raw YUV का पूरा उदाहरण.
test_crop_regions
यह जांच करता है कि फ़ोटो के हिस्से काटने की सुविधा काम कर रही है या नहीं. यह पूरी इमेज लेता है और पांच अलग-अलग इलाकों (कोने और बीच) के पैच बनाता है. पांच क्षेत्रों के लिए, क्रॉप सेट करके इमेज लेता है. पैच और काटी गई इमेज की वैल्यू की तुलना करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
पास: काटे गए हिस्से की इमेज, पैच से मेल खाती है.
test_ev_compensation
यह जांच करता है कि एक्सपोज़र वैल्यू (ईवी) का कंपेसेशन लागू किया गया है या नहीं. इस टेस्ट में एक बुनियादी सेक्शन और एक बेहतर सेक्शन होता है.
बुनियादी सेक्शन में यह जांच की जाती है कि ईवी के लिए मुआवजा, CONTROL_AE_COMPENSATION_STEP
से बनाई गई रेंज का इस्तेमाल करके लागू किया गया है या नहीं. हर एक कैंपेन वैल्यू पर आठ फ़्रेम कैप्चर किए जाते हैं.
बेहतर सेक्शन, आठ चरणों में एक्सपोज़र बढ़ाता है. साथ ही, मेज़र की गई चमक और उम्मीद की गई चमक की जांच करता है. अनुमानित वैल्यू का हिसाब, इमेज की चमक से लगाया जाता है. इसमें ईवी कंपेसेशन लागू नहीं किया जाता. अगर कैलकुलेट की गई वैल्यू, इमेज की असल वैल्यू की सीमा से ज़्यादा होती हैं, तो अनुमानित वैल्यू संतृप्त हो जाती है. अगर उम्मीद की गई वैल्यू और मेज़र की गई वैल्यू मेल नहीं खाती हैं या इमेज पांच चरणों में ज़्यादा एक्सपोज़ हो जाती हैं, तो टेस्ट पास नहीं होता.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.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_TIME
android.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.
तीसवीं इमेज. 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_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास: संवेदनशीलता बढ़ने के साथ, R, G, B वैल्यू रैखिक रूप से बढ़नी चाहिए.
इमेज 37. test_linearity प्लॉट का उदाहरण.
test_locked_burst
ऑटो सेटिंग का इस्तेमाल करके, 3A लॉक और YUV बर्स्ट की जांच करता है. इस टेस्ट को इस तरह से डिज़ाइन किया गया है कि यह उन सीमित डिवाइसों पर भी पास हो जाए जिनमें MANUAL_SENSOR
या PER_FRAME_CONTROLS
नहीं है.
इस टेस्ट में YUV इमेज की एक जैसी होने की जांच की जाती है, जबकि फ़्रेम रेट की जांच CTS में की जाती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
पास: कैप्चर एक जैसे दिखते हैं.
इमेज 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_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
पास: ट्रांसफ़ॉर्मेशन के हिसाब से R और B वैल्यू बढ़ जाती हैं.
चित्र 41. test_param_color_correction प्लॉट का मतलब बताने वाला उदाहरण.
नीचे दी गई इमेज में, एक्स-ऐक्सिस पर कैप्चर के अनुरोध हैं: 0 = यूनिटी, 1 = रेड बूस्ट, और 2 = ब्लू बूस्ट.
चित्र 42. test_param_color_correction req=0 unity का उदाहरण.
चित्र 43. test_param_color_correctness req=1 लाल रंग के लिए बूस्टर का उदाहरण.
चित्र 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: एचक्यू, 3: कम , 4: ज़ेडएसएल
इमेज 50. test_param_noise_reduction high gain nr=0 का उदाहरण.
इमेज 51. test_param_noise_reduction high gain nr=1 का उदाहरण.
इमेज 52. test_param_noise_reduction 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_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
पास: शेडिंग मोड स्विच हो जाते हैं और लेंस शेडिंग मैप में, उम्मीद के मुताबिक बदलाव हो जाते हैं.
इमेज 55. test_param_shading_mode लेंस शेडिंग मैप, मोड 0 लूप 0 का उदाहरण.
इमेज 56. test_param_shading_mode लेंस शेडिंग मैप, मोड 1 लूप 0 का उदाहरण.
इमेज 57. test_param_shading_mode लेंस शेडिंग मैप, मोड 2 लूप 0 का उदाहरण.
test_param_tonemap_mode
यह जांच करता है कि android.tonemap.mode
पैरामीटर लागू है या नहीं. यह हर R, G, B चैनल पर अलग-अलग टोनमैप कर्व लागू करता है. साथ ही, यह जांच करता है कि आउटपुट इमेज में उम्मीद के मुताबिक बदलाव हुए हैं या नहीं. इस टेस्ट में दो टेस्ट होते हैं, test1
और test2
.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास:
test1
: दोनों इमेज में लीनियर टोनमैप है, लेकिनn=1
में ज़्यादा तीव्र ग्रेडिएंट है.n=1
इमेज के लिए G (हरा) चैनल ज़्यादा चमकीला है.test2
: एक ही टोनमैप, लेकिन अलग-अलग लंबाई. इमेज एक जैसी हैं.
इमेज 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_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.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_RAW
android.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
, अनुरोधों को फिर से प्रोसेस करने के लिए लागू होता है.
कम रोशनी में कैमरे से फिर से प्रोसेस की गई इमेज कैप्चर करता है. कैप्चर की गई इमेज में नॉइज़ है या नहीं, इसकी पुष्टि करने के लिए हाई एनालॉग गेन का इस्तेमाल करता है. एनआर बंद, तेज़, और अच्छी क्वालिटी के लिए, फिर से प्रोसेस की गई तीन इमेज कैप्चर करता है. कम गेन और एनआर बंद करके, फिर से प्रोसेस की गई इमेज कैप्चर करता है. साथ ही, इस वैरिएंस का इस्तेमाल बेसलाइन के तौर पर करता है.
इन एपीआई की जांच की गई है:
पास: फ़ास्ट >= बंद, एचडी >= फ़ास्ट, और एचडी >> बंद.
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_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
पास: सभी इमेज सेंटर में, आरजीबी में बदली गई इमेज का रूट मीन स्क्वेयर (RMS) (सिग्नल की वैल्यू) अंतर, सबसे ज़्यादा रिज़ॉल्यूशन वाली 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_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
पास: मेटाडेटा सभी कैप्चर के लिए मान्य है और मैन्युअल सेटिंग, अपने-आप होने वाले दूसरे कैप्चर में लीक नहीं होती हैं. कैप्चर के लिए, लेंस के शेडिंग करेक्शन को प्लॉट करता है.
88वीं इमेज. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
यह पुष्टि करता है कि DNG रॉ मॉडल पैरामीटर सही हैं. इस प्लॉट में, अलग-अलग सेंसिटिविटी पर कैप्चर किए गए रॉ शॉट में, ग्रे कार्ड के बीच वाले पैच के मेज़र किए गए वैरिएंस को दिखाया गया है. साथ ही, इन वैल्यू की तुलना, कैमरा एचएएल में DNG नॉइज़ मॉडल के हिसाब से, हर सेंसिटिविटी पर होने वाले वैरिएंस से की गई है. यह तुलना, कैप्चर के नतीजे वाले ऑब्जेक्ट में दिखाए गए O,S पैरामीटर के आधार पर की जाती है. DNG नॉइज़ मॉडल के बारे में ज़्यादा जानकारी के लिए, DNG नॉइज़ मॉडल के बारे में यह दस्तावेज़ डाउनलोड करें.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
पास: DNG रॉ मॉडल के पैरामीटर सही हैं. अनुमानित आरजीबी वैल्यू, मेज़र की गई असल आरजीबी वैल्यू से मैच करती हैं.
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_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
पास: हर शॉट पिछले शॉट से ज़्यादा नॉइज़ी होता है, क्योंकि गेन बढ़ रहा है.
सेंटर के आंकड़ों वाली ग्रिड सेल के वैरिएंस का इस्तेमाल करता है.
पहली इमेज. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
यह बढ़ती संवेदनशीलता के साथ रॉ इमेज का एक सेट कैप्चर करता है और इमेज के बीच के 10% हिस्से में मौजूद गड़बड़ी (वैरिएंस) को मेज़र करता है. यह जांच करता है कि हर शॉट, पिछले शॉट से ज़्यादा शोर वाला है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
पास: हर शॉट के साथ वैरिएंस बढ़ता है.
इमेज 93. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
YUV और JPEG, दोनों आउटपुट के तौर पर एक फ़्रेम कैप्चर करने की जांच करता है. लीनियर टोनमैप के साथ मैन्युअल अनुरोध का इस्तेमाल करता है, ताकि image_processing_utils
मॉड्यूल से बदलने पर YUV और JPEG एक जैसे दिखें.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
पास: YUV और JPEG इमेज एक जैसी हैं और इनमें RMS (सिग्नल की वैल्यू) का अंतर 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_RAW
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
पास: YUV और रॉ इमेज एक जैसी हैं और इनमें आरएमएस (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) का अंतर 3.5% से कम है.
इमेज 96. test_yuv_plus_raw_shading=1_raw.jpg.
इमेज 97. test_yuv_plus_raw_shading=1_yuv.jpg.
test_sensitivity_priority
अलग-अलग ISO सेटिंग में CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
जांचें की जाती हैं, ताकि यह पुष्टि की जा सके कि ज़्यादा ISO और बढ़े हुए शोर के लेवल के बीच कोई संबंध है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.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_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
पास: अगर ISO, कंपेसेशन रेंज में है, तो एक्सपोज़र के सभी समयों में चमक स्थिर (टॉलरेंस के अंदर) रहती है.
स्किप करने की शर्तों की जांच करना
अगर इनमें से कोई भी शर्त पूरी होती है, तो 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_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
पास: तीनों चेहरों की पहचान की गई.
test_display_p3
ColorSpaceProfiles
API का इस्तेमाल करके, Display P3 कैप्चर को JPEG में बदलने की जांच करता है. यह जांच करता है कि कैप्चर किए गए JPEG के हेडर में सही ICC प्रोफ़ाइल है या नहीं. साथ ही, यह भी जांच करता है कि इमेज में sRGB गैमट से बाहर के रंग हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
पास: JPEG में Display P3 ICC प्रोफ़ाइल और sRGB gamut से बाहर के रंग शामिल हैं.
test_effects
यह कैमरे के उन इफ़ेक्ट के लिए फ़्रेम कैप्चर करता है जिनका इस्तेमाल किया जा सकता है. साथ ही, यह जांच करता है कि इफ़ेक्ट सही तरीके से जनरेट हुए हैं या नहीं. यह टेस्ट सिर्फ़ OFF
और MONO
इफ़ेक्ट की जांच करता है. हालांकि, काम करने वाले सभी इफ़ेक्ट के लिए इमेज सेव करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
पास: इफ़ेक्ट OFF
के साथ सीन की इमेज और इफ़ेक्ट MONO
पर सेट की गई एक मोनोक्रोम इमेज कैप्चर करता है.
पहली इमेज. test_effects_MONO.
test_exposure_keys_consistent
इस टेस्ट में, ईए (एलिमेंट एडजस्टमेंट) की सुविधा वाले कैप्चर के औसत ल्यूमा की तुलना, ईए की सुविधा बंद करके लिए गए कैप्चर से की जाती है. ईए की सुविधा बंद करके लिए गए कैप्चर में, ईए की सुविधा वाले कैप्चर के CaptureResult
में मिले एक्सपोज़र पैरामीटर (संवेदनशीलता, एक्सपोज़र का समय, फ़्रेम की अवधि, पोस्ट रॉ संवेदनशीलता बढ़ाने की सुविधा) को मैन्युअल तरीके से लागू किया जाता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
पास: दोनों कैप्चर के बीच ल्यूमा में अंतर 4 प्रतिशत से कम है.
test_format_combos
आउटपुट फ़ॉर्मैट के अलग-अलग कॉम्बिनेशन की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
पास: सभी कॉम्बिनेशन कैप्चर हो गए हैं.
test_num_faces
चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरों की पहचान करता है.
पहला इमेज. test_num_faces चेहरे की पहचान करने वाले मोड 1 का उदाहरण.
test_reprocess_uv_swap
यह जांच करता है कि YUV रीप्रोसेसिंग में, U और V प्लेन को स्वैप न किया गया हो. इसे पता लगाने के लिए, फिर से प्रोसेस की गई इमेज और फिर से प्रोसेस नहीं की गई इमेज के बीच के अंतर (एसएडी) का योग कैलकुलेट किया जाता है. अगर फिर से प्रोसेस किए गए कैप्चर के आउटपुट U और V प्लैन को स्वैप करने से एसएडी बढ़ जाता है, तो यह माना जाता है कि आउटपुट में सही U और V प्लैन हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraDevice#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
पास: U और V प्लेन को आपस में स्वैप नहीं किया गया है.
इमेज 101. test_reprocess_uv_swap का उदाहरण.
scene2_b
test_preview_num_faces
झलक में चेहरे की पहचान करने की सुविधा की जांच करता है. इसमें, चेहरे के अलग-अलग रंगों के साथ, अलग-अलग सीन का इस्तेमाल किया गया है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: चेहरे के बॉउंडिंग बॉक्स में, चेहरे के लैंडमार्क के साथ तीन चेहरे ढूंढता है.
इमेज 102. test_num_faces चेहरे की पहचान करने वाले मोड 1 का उदाहरण.
test_yuv_jpeg_capture_sameness
सबसे बड़े सामान्य YUV और JPEG फ़ॉर्मैट का इस्तेमाल करके दो इमेज कैप्चर करता है. इन इमेज का आसपेक्ट रेशियो, सबसे बड़े JPEG फ़ॉर्मैट के आसपेक्ट रेशियो जैसा ही होता है. साथ ही, इनका रिज़ॉल्यूशन 1920x1440 से ज़्यादा नहीं होता.
jpeg.quality
को 100 पर सेट करता है और दो स्क्रीन के लिए अनुरोध कैप्चर करता है. यह दोनों इमेज को RGB ऐरे में बदल देता है और दोनों इमेज के बीच के 3D रूट मीन स्क्वेयर (RMS) अंतर का हिसाब लगाता है.
साथ ही, इस टेस्ट से यह पुष्टि होती है कि स्ट्रीम के इस्तेमाल के सभी उदाहरणों के लिए YUV आउटपुट, STILL_CAPTURE
इस्तेमाल के उदाहरण के YUV से काफ़ी मिलते-जुलते हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
पास: STILL_CAPTURE
इस्तेमाल के उदाहरण के लिए, YUV और JPEG इमेज के बीच RMS (सिग्नल की रूट-मीन-स्क्वेयर वैल्यू) में 3% से कम का अंतर है. साथ ही, इस्तेमाल के सभी उदाहरणों के लिए, YUV इमेज के बीच RMS में STILL_CAPTURE
इस्तेमाल के उदाहरण के लिए, YUV इमेज के बीच RMS में 10% से कम का अंतर है.
scene2_c
test_num_faces
चेहरे के अलग-अलग सीन में, त्वचा की अलग-अलग रंगत के साथ चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरों की पहचान करता है.
इमेज 103. test_num_faces चेहरे की पहचान करने वाले मोड का उदाहरण.
test_jpeg_capture_perf_class
सीडीडी में सेक्शन 2.2.7.2 कैमरा में बताए गए मुताबिक, S परफ़ॉर्मेंस क्लास के लिए JPEG कैप्चर में लगने वाले समय की जांच करता है.
पास: 1080 पिक्सल रिज़ॉल्यूशन के लिए, camera2 JPEG कैप्चर में लगने वाला समय 1000 एमएस से कम होना चाहिए. यह समय, दोनों प्राइमरी कैमरों के लिए, आईटीएस लाइटिंग कंडीशन (3000K) में सीटीएस कैमरा परफ़ॉर्मेंस टेस्ट के हिसाब से मेज़र किया जाता है.
test_camera_launch_perf_class
सीडीडी में बताए गए सेक्शन 2.2.7.2 कैमरा के मुताबिक, S परफ़ॉर्मेंस क्लास के लिए कैमरे के लॉन्च में लगने वाले समय की जांच करता है.
पास: कैमरा चालू होने में लगने वाला समय (कैमरा चालू करने से लेकर, पहले स्क्रीन व्यू तक) 600 मिलीसेकंड से कम होना चाहिए. यह समय, दोनों मुख्य कैमरों के लिए, सीटीएस कैमरा परफ़ॉर्मेंस टेस्ट के तहत, रोशनी की उन स्थितियों (3000K) में मेज़र किया जाता है जिनमें कैमरा इस्तेमाल किया जाता है.
test_default_camera_hdr
यह जांच करता है कि कैमरे से डिफ़ॉल्ट रूप से ली जाने वाली फ़ोटो, परफ़ॉर्मेंस क्लास 15 के लिए अल्ट्रा एचडीआर में है या नहीं. इस बारे में सीडीडी के सेक्शन 2.2.7.2 कैमरा में बताया गया है.
पास: परफ़ॉर्मेंस क्लास 15 वाले डिवाइस के लिए, डिफ़ॉल्ट कैमरा पैकेज कैप्चर, अल्ट्रा एचडीआर होना चाहिए.
scene2_d
test_preview_num_faces
झलक में चेहरे की पहचान करने की सुविधा की जांच करता है. इसमें, चेहरे के अलग-अलग रंगों के साथ, अलग-अलग सीन का इस्तेमाल किया गया है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: चेहरे के बॉउंडिंग बॉक्स में, चेहरे के लैंडमार्क के साथ तीन चेहरे ढूंढता है.
scene2_e
test_continuous_picture
कैप्चर करने के अनुरोध की पहली सेटिंग में, 50 वीजीए रिज़ॉल्यूशन वाले फ़्रेम कैप्चर किए जाते हैं
android.control.afMode = 4 (CONTINUOUS_PICTURE).
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
पास: 3A सिस्टम, 50 फ़्रेम कैप्चर करने के बाद सेट हो जाता है.
test_num_faces
चेहरे के अलग-अलग सीन में, त्वचा की अलग-अलग रंगत के साथ चेहरे की पहचान करने की सुविधा की जांच करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: तीन चेहरे ढूंढता है.
scene2_f
scene2_f
में तीन चेहरे हैं. इनके बैकग्राउंड और कपड़े सफ़ेद हैं. चेहरों की त्वचा के रंग अलग-अलग हों और बैकग्राउंड के मुकाबले उनका कंट्रास्ट ज़्यादा हो.
इमेज 104. scene2_f का उदाहरण.
test_preview_num_faces
चेहरे की पहचान करने की सुविधा की जांच, चेहरे के अलग-अलग सीन में त्वचा की अलग-अलग रंगत के साथ की जाती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.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_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
पास: चेहरे के बॉउंडिंग बॉक्स में, चेहरे के लैंडमार्क के साथ तीन चेहरे ढूंढता है.
इमेज 107. test_preview_num_faces का उदाहरण.
scene3
scene3
, ISO12233 चार्ट का इस्तेमाल करता है. साथ ही, ज़्यादातर टेस्ट में चार्ट एक्सट्रैक्टर का तरीका इस्तेमाल करके, सीन में चार्ट ढूंढा जाता है. इस वजह से, सेव की गई ज़्यादातर इमेज में, सीन 1, 2 या 4 की इमेज की तरह बॉर्डर नहीं होते. इनमें सिर्फ़ चार्ट होता है. चार्ट फ़ाइंडर के बेहतर तरीके से काम करने के लिए, चार्ट सही ओरिएंटेशन में होना चाहिए.
test_edge_enhancement
यह जांच करता है कि android.edge.mode
पैरामीटर सही तरीके से लागू किया गया है या नहीं. हर एज मोड के लिए, फिर से प्रोसेस न की गई इमेज कैप्चर करता है. साथ ही, आउटपुट इमेज की शार्पनेस और कैप्चर के नतीजे का मेटाडेटा दिखाता है. यह फ़ंक्शन, दिए गए एज मोड, संवेदनशीलता, एक्सपोज़र समय, फ़ोकस की दूरी, और आउटपुट के प्लैटफ़ॉर्म पैरामीटर के साथ, कैप्चर करने के अनुरोध को प्रोसेस करता है.
पास: HQ
मोड (2) की इमेज, OFF
मोड (0) की इमेज से ज़्यादा शार्प है. FAST
मोड (1), OFF
मोड से बेहतर है. HQ
मोड, FAST
मोड के बराबर या उससे बेहतर है.
इन एपीआई की जांच की गई है:
इन कैमरा पैरामीटर पर असर पड़ा है:
EDGE_MODE
इमेज 108. test_edge_enhancement edge=0 का उदाहरण.
इमेज 109. test_edge_enhancement edge=1 (फास्ट मोड) का उदाहरण.
इमेज 110. test_edge_enhancement edge=2 (हाई क्वालिटी मोड) का उदाहरण.
test_flip_mirror
यह जांच करता है कि इमेज, सीडीडी में बताए गए 7.5.2 सामने वाला कैमरा के मुताबिक सही ओरिएंटेशन में है या नहीं.
मिरर की गई, फ़्लिप की गई या घुमाई गई इमेज की पहचान, बीच में मौजूद डायमंड की सुविधा से की जा सकती है.
पास: इमेज को फ़्लिप, मिरर या घुमाया नहीं गया है.
इमेज 111. test_flip_mirror सीन पैच का उदाहरण.
test_imu_drift
यह जांच करता है कि डिवाइस के स्थिर होने और हाई-डेफ़िनिशन झलक कैप्चर करने के दौरान, इनर्शियल मेज़रमेंट यूनिट (आईएमयू) का आउटपुट 30 सेकंड तक स्थिर है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_GYROSCOPE
android.hardware.Sensor#TYPE_ROTATION_VECTOR
पास:
- जांच के दौरान, जायरोस्कोप का ड्रिफ़्ट 0.01 रेडियन से कम है.
- जांच के दौरान, जायरोस्कोप रीडिंग का वैरिएंस 1E-7 rad2/s2/Hz से कम है.
- जांच के दौरान, रोटेशन वेक्टर का ड्रिफ़्ट 0.01 रेडियन से कम हो.
- (अभी ज़रूरी नहीं है) जाइरोस्कोप का ड्रिफ़्ट, एक सेकंड में एक डिग्री से कम हो.
इमेज 112. test_imu_drift के लिए, gyroscope drift का उदाहरण.
इमेज 113. test_imu_drift रोटेशन वेक्टर ड्रिफ़्ट का उदाहरण.
test_landscape_to_portrait
यह जांच करता है कि लैंडस्केप-ओरिएंटेशन वाले सेंसर के लिए, लैंडस्केप से पोर्ट्रेट में बदलने की सुविधा ठीक से काम करती है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
पास: टेस्ट में, चार्ट को सही रोटेशन में ढूंढा जाता है. लैंडस्केप से पोर्ट्रेट में बदलने की सुविधा बंद होने पर, चार्ट 0 डिग्री पर और चालू होने पर 90 डिग्री पर रोटेट होता है.
इमेज 114. test_landscape_to_portrait का उदाहरण.
test_lens_movement_reporting
यह जांच करता है कि लेंस के मूवमेंट के फ़्लैग की सही तरीके से शिकायत की गई है या नहीं. यह मोड, 24 इमेज का बर्स्ट कैप्चर करता है. इसमें पहले 12 फ़्रेम, ऑप्टिमम फ़ोकस डिस्टेंस (3A से पता चलता है) पर और आखिरी 12 फ़्रेम, कम से कम फ़ोकस डिस्टेंस पर कैप्चर किए जाते हैं. 12वें फ़्रेम के आस-पास, लेंस की जगह बदलने की वजह से फ़ोटो की क्वालिटी खराब हो जाती है. लेंस की आखिरी पोज़िशन पर पहुंचने के बाद, इमेज की क्वालिटी में कोई बदलाव नहीं होता.
लेंस मूवमेंट फ़्लैग को उन सभी फ़्रेम में दिखाया जाना चाहिए जिनमें पहले कुछ फ़्रेम में फ़ोकस की डिग्री मध्यम से बेहतर हो और लेंस, फ़ोकल लेंस की सबसे सही दूरी पर स्थिर हो. साथ ही, आखिरी कुछ फ़्रेम में फ़ोकस की डिग्री मध्यम से बेहतर हो और लेंस, फ़ोकल लेंस की सबसे कम दूरी पर स्थिर हो. यह ज़रूरी नहीं है कि लेंस किस फ़्रेम में हिले: ज़रूरी यह है कि लेंस हिलने पर, मूवमेंट फ़्लैग का इस्तेमाल किया जाए.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
पास: फ़्रेम में तीखेपन में बदलाव होने पर, लेंस मूवमेंट का फ़्लैग True
है.
काम न करने के तरीके:
test_log.DEBUG
मेंlens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) का इस्तेमाल सिर्फ़ उन फ़्रेम में किया जाता है जिनमें फ़ोटो की क्वालिटी में बदलाव नहीं हो रहा है.test_log.DEBUG
मेंlens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) वाले फ़्रेम की क्वालिटी, सबसे बेहतर फ़ोकल डिस्टेंस वाले शुरुआती कुछ फ़्रेम या सबसे कम फ़ोकल डिस्टेंस वाले आखिरी कुछ फ़्रेम की तुलना में अलग होती है.
test_reprocess_edge_enhancement
यह जांच करता है कि किन किन तरीकों से, एज बेहतर बनाने के लिए, फिर से प्रोसेस करने की सुविधा काम करती है. यह किसी दिए गए रीप्रोसेस एज मोड के साथ कैप्चर करने के अनुरोध को प्रोसेस करता है. साथ ही, रीप्रोसेस एज मोड बंद होने पर, कैप्चर करने के लिए अलग-अलग मोड की तुलना करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
पास: अलग-अलग किनारे मोड के लिए, तीक्ष्णता सही है. HQ
(मोड 2) की इमेज, OFF
(मोड 0) की इमेज से बेहतर है. साथ ही, अलग-अलग मोड के बीच का सुधार एक जैसा है.
इमेज 115. test_reprocess_edge_enhancement प्लॉट का उदाहरण.
scene4
scene4
में, स्क्वेयर के अंदर सफ़ेद बैकग्राउंड पर काला गोला होता है.
scene4 में मौजूद टेस्ट, अलाइनमेंट के हिसाब से संवेदनशील हो सकते हैं. इसलिए, Android 15 से, टूल डायरेक्ट्री में check_alignment.py
का इस्तेमाल करके, डीयूटी और चार्ट के अलाइनमेंट की जांच की जा सकती है.
इमेज 116. scene4 का उदाहरण.
test_30_60fps_preview_fov_match
यह जांच करता है कि 30 एफ़पीएस और 60 एफ़पीएस वाले झलक वीडियो का फ़ील्ड ऑफ़ व्यू (एफ़ओवी) एक जैसा है या नहीं. इस जांच में दो वीडियो कैप्चर किए जाते हैं. पहला वीडियो 30 एफ़पीएस और दूसरा 60 एफ़पीएस पर रिकॉर्ड किया जाता है. हर वीडियो से एक फ़्रेम चुना जाता है और उसका विश्लेषण किया जाता है. इससे यह पुष्टि की जाती है कि दोनों वीडियो में फ़ील्ड ऑफ़ व्यू में हुए बदलाव, तय की गई शर्तों के मुताबिक हैं या नहीं. यह जांच करता है कि घेरे का आसपेक्ट रेशियो एक जैसा रहे, घेरे का केंद्र एक जैसा रहे, और घेरे की त्रिज्या एक जैसी रहे.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
पास: इमेज स्ट्रेच नहीं हुई हैं, इमेज के बीच का अंतर 3% से ज़्यादा नहीं है, और 30 एफ़पीएस और 60 एफ़पीएस वाले वीडियो के बीच आसपेक्ट रेशियो में ज़्यादा से ज़्यादा 7.5% का बदलाव हुआ है
काम न करने के तरीके:
- 30 एफ़पीएस वाले वीडियो में मौजूद सर्कल का साइज़, 60 एफ़पीएस वाले वीडियो में मौजूद सर्कल के साइज़ से काफ़ी अलग है.
- प्रोसेसिंग पाइपलाइन की वजह से, कैप्चर की गई इमेज में मौजूद सर्कल का आकार खराब हो गया है.
- कैप्चर की गई इमेज में सर्कल को काटा गया है. ऐसा, आसपेक्ट रेशियो के लिए किए गए अनुरोध की वजह से हुआ है. इस अनुरोध की वजह से, इमेज की ऊंचाई या चौड़ाई कम हो गई है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में, उसका रेफ़्लेक्टन दिख रहा है. साथ ही, वह पूरी तरह से भरा हुआ नहीं दिख रहा है.
test_aspect_ratio_and_crop
यह जांच करता है कि इमेज पाइपलाइन में, इमेज को अनचाहे तरीके से डिस्टॉर्ट या काटा गया है या नहीं. सभी फ़ॉर्मैट में सर्कल की फ़ोटो लेता है. यह पुष्टि करता है कि सर्कल का आकार बिगड़ा हुआ नहीं है, वह इमेज के बीच में है, और अलग-अलग आसपेक्ट रेशियो या रिज़ॉल्यूशन के साथ उसका साइज़ गलत तरीके से नहीं बदलता.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
पास: इमेज स्ट्रेच नहीं हुई हैं, इमेज के बीच का फ़र्क़ 3% से ज़्यादा नहीं है, और ज़्यादा से ज़्यादा फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को बनाए रखा गया है.
काम न करने के तरीके:
- कैमरा, कैप्चर किए गए सीन के बीच में टैबलेट पर दिखाए गए सर्कल के साथ अलाइन नहीं है.
- प्रोसेसिंग पाइपलाइन की वजह से, कैप्चर की गई इमेज में मौजूद सर्कल का आकार खराब हो गया है.
- कम रिज़ॉल्यूशन वाली इमेज को इमेज पाइपलाइन में दो बार काटा जाता है, ताकि हाई और लो रिज़ॉल्यूशन वाली इमेज के बीच फ़ील्ड ऑफ़ व्यू अलग-अलग हो.
- कैप्चर की गई इमेज में सर्कल को काटा गया है. ऐसा, आसपेक्ट रेशियो के लिए किए गए अनुरोध की वजह से हुआ है. इस अनुरोध की वजह से, इमेज की ऊंचाई या चौड़ाई कम हो गई है.
- कैप्चर की गई इमेज में मौजूद सर्कल के बीच में, उसका रेफ़्लेक्टन दिख रहा है. साथ ही, वह पूरी तरह से भरा हुआ नहीं दिख रहा है.
test_multi_camera_alignment
यह कई कैमरे वाले सिस्टम के लिए, कैमरे की पोज़िशनिंग से जुड़े कैमरे कैलिब्रेशन पैरामीटर की जांच करता है. मल्टी-कैमरा फ़िज़िकल सबकैमरे का इस्तेमाल करके, किसी एक फ़िज़िकल कैमरे से फ़ोटो ली जाती है. सर्कल का केंद्र ढूंढता है. हर कैमरे के लिए, सर्कल के बीच को दुनिया के निर्देशांक में प्रोजेक्ट करता है. यह वर्ल्ड कोऑर्डिनेट में, कैमरों के सर्कल के बीच के अंतर की तुलना करता है. यह वर्ल्ड कोऑर्डिनेट को फिर से पिक्सल कोऑर्डिनेट में बदलता है. साथ ही, पुष्टि करने के लिए, ओरिजनल के साथ तुलना करता है. सर्कल के साइज़ की तुलना करके यह पता लगाता है कि कैमरों के फ़ोकल लेंथ अलग-अलग हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
पास: कैमरे के कैलिब्रेशन डेटा और फ़ोकल लेंथ का इस्तेमाल करके कैप्चर की गई इमेज की तुलना में, प्रोजेक्ट की गई इमेज में सर्कल के बीच और उनके साइज़, उम्मीद के मुताबिक हैं.
काम न करने के तरीके:
LENS_INTRINSIC_CALIBRATION
,LENS_POSE_TRANSLATION
, औरLENS_POSE_ROTATION
डिज़ाइन वैल्यू हैं, न कि कैलिब्रेशन का असल डेटा.- कैमरा सिस्टम, टेस्ट सेटअप के लिए सही नहीं है. उदाहरण के लिए, RFoV टेस्ट रिग की मदद से वाइड और अल्ट्रा-वाइड कैमरा सिस्टम की जांच करना. ज़्यादा जानकारी के लिए, कैमरे के ITS-in-a-box से जुड़े अक्सर पूछे जाने वाले सवालों का पहला सवाल देखें.
test_preview_aspect_ratio_and_crop
यह टेस्ट, स्टिल कैप्चर के लिए test_aspect_ratio_and_crop
टेस्ट की तरह ही काम करता है. यह जांच करता है कि झलक दिखाने के लिए इस्तेमाल किए जा सकने वाले फ़ॉर्मैट सही हैं या नहीं. इससे यह भी पता चलता है कि झलक दिखाने वाले फ़्रेम को ज़रूरत से ज़्यादा स्ट्रेच या काटा गया है या नहीं. यह पुष्टि करता है कि सर्कल का आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात नहीं बदलता, काटी गई इमेज में सर्कल को फ़्रेम के बीच में रखा जाता है, और सर्कल का साइज़ एक जैसे फ़ॉर्मैट या अलग-अलग रिज़ॉल्यूशन (फ़ील्ड ऑफ़ व्यू की जांच) के लिए नहीं बदलता.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
पास: इमेज स्ट्रेच नहीं हुई हैं, इमेज के बीच का फ़र्क़ 3% से ज़्यादा नहीं है, और ज़्यादा से ज़्यादा फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को बनाए रखा गया है.
test_preview_stabilization_fov
यह जांच करता है कि झलक के लिए कौनसे साइज़ इस्तेमाल किए जा सकते हैं. इससे यह पक्का करने में मदद मिलती है कि फ़ील्ड ऑफ़ व्यू को सही तरीके से काटा गया है. इस टेस्ट में दो वीडियो कैप्चर किए जाते हैं. पहला वीडियो, झलक में स्टेबलाइज़ेशन ON
के साथ और दूसरा वीडियो, झलक में स्टेबलाइज़ेशन OFF
के साथ. हर वीडियो से एक प्रतिनिधि फ़्रेम चुना जाता है. इसके बाद, इस बात की पुष्टि करने के लिए विश्लेषण किया जाता है कि दोनों वीडियो में फ़ील्ड ऑफ़ व्यू में हुए बदलाव, तय मानकों के मुताबिक हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
पास: सर्कल का आसपेक्ट रेशियो लगभग एक जैसा रहता है, सर्कल के बीच की जगह स्थिर रहती है, और सर्कल का साइज़ 20% से ज़्यादा नहीं बदलता.
test_video_aspect_ratio_and_crop
सभी वीडियो फ़ॉर्मैट में, स्क्वेयर के अंदर सर्कल के तौर पर वीडियो रिकॉर्ड करता है. यह मुख्य फ़्रेम को निकालता है और पुष्टि करता है कि सर्कल का आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात नहीं बदलता है. साथ ही, काटी गई इमेज में सर्कल को बीच में रखा जाता है और सर्कल का साइज़, एक जैसे फ़ॉर्मैट या अलग-अलग रिज़ॉल्यूशन (फ़ील्ड ऑफ़ व्यू की जांच) के लिए नहीं बदलता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
पास: वीडियो फ़्रेम स्ट्रेच नहीं किए गए हैं, फ़्रेम के बीच का अंतर 3% से ज़्यादा नहीं है, और ज़्यादा से ज़्यादा फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को बनाए रखा गया है.
scene5
scene5
के लिए, एक जैसी रोशनी वाला स्लेटी रंग का सीन होना ज़रूरी है. ऐसा करने के लिए, कैमरे के लेंस पर डिफ़्यूज़र लगाया जाता है. हमारा सुझाव है कि आप इस डिफ़्यूज़र का इस्तेमाल करें:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
वीडियो रिकॉर्ड करने के लिए, कैमरे के सामने डिफ़्यूज़र अटैच करें और कैमरे को करीब 2,000 लक्स के लाइटिंग सोर्स की तरफ़ करें. scene5
के लिए कैप्चर की गई इमेज में, रोशनी ऐसी होनी चाहिए जिससे कोई खास चीज़ न दिखे. यहां एक सैंपल इमेज दी गई है:
इमेज 117. scene5 कैप्चर का उदाहरण.
test_lens_shading_and_color_uniformity
यह जांच करता है कि लेंस के शेडिंग करेक्शन को सही तरीके से लागू किया गया है या नहीं. साथ ही, यह भी जांच करता है कि एक ही रंग वाले सीन का रंग समान रूप से डिस्ट्रिब्यूट किया गया है या नहीं. यह टेस्ट, ऑटो 3A के साथ YUV फ़्रेम पर किया जाता है. लेंस शेडिंग का आकलन, y चैनल के आधार पर किया जाता है. यह दिए गए हर सैंपल ब्लॉक के लिए, औसत y वैल्यू को मेज़र करता है. साथ ही, सेंटर y वैल्यू की तुलना करके यह तय करता है कि जांच पास हुई है या नहीं. कलर यूनिफ़ॉर्मिटी टेस्ट का आकलन, रेड-ग्रीन और ब्लू-ग्रीन स्पेस में किया जाता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
पास: टेस्ट पास करने के लिए, इमेज की तय की गई त्रिज्या में, लाल-हरे और नीले-हरे रंग की वैल्यू का अंतर 20% से कम होना चाहिए.
scene6
scene6
, यूनीक आइडेंटिफ़ायर वाले ArUco मार्कर का ग्रिड होता है.
scene6
में मौजूद टेस्ट, अलाइनमेंट के हिसाब से संवेदनशील हो सकते हैं. इसलिए, 15 से, टूल डायरेक्ट्री में check_alignment.py
का इस्तेमाल करके, डीयूटी और चार्ट अलाइनमेंट की जांच की जा सकती है.
इमेज 118. scene6 का उदाहरण.
test_in_sensor_zoom
कैमरे के सेंसर में मौजूद ज़ूम की सुविधा के काम करने के तरीके की जांच करता है. इससे काटी गई रॉ इमेज मिलती हैं.
स्ट्रीम के इस्तेमाल के उदाहरण को CROPPED_RAW
पर सेट करने पर, ज़ूम रेंज में दो कैप्चर लिए जाते हैं. पहला, फ़ुल एफ़ओवी रॉ इमेज और दूसरा, काटी गई रॉ इमेज. यह टेस्ट, इमेज को RGB ऐरे में बदल देता है. साथ ही, काटी गई फ़ुल साइज़ वाली रॉ इमेज को SCALER_RAW_CROP_REGION
के बताए गए साइज़ पर डाउनस्केल करता है. इसके बाद, दोनों इमेज के बीच के 3D आरएमएस अंतर का हिसाब लगाता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
पास: काटे गए हिस्से वाली कम किए गए स्केल की रॉ इमेज और पूरे फ़ील्ड ऑफ़ व्यू वाली रॉ इमेज के बीच का 3D आरएमएस अंतर, टेस्ट में सेट किए गए थ्रेशोल्ड से कम है.
test_zoom
अल्ट्रावाइड लेंस से वाइड लेंस पर कैमरे के ज़ूम करने के तरीके की जांच करता है. ज़ूम रेंज में कैप्चर लेता है और यह जांच करता है कि कैमरे के ज़ूम इन करने पर, ArUco मार्कर बड़े हो जाते हैं या नहीं. इस टेस्ट से यह भी पता चलता है कि हर कैप्चर में, सेंटर मार्कर की पोज़िशन में क्या कोई बदलाव होता है. सेंटर मार्कर के बीच की दूरी और इमेज के बीच की दूरी, ज़ूम रेशियो के हिसाब से एक जैसी रह सकती है. ऐसा तब तक होता है, जब तक कैमरे को एक से दूसरे पर स्विच नहीं किया जाता. इसके बाद, यह दूरी एक ही मार्कर की जगह के हिसाब से बदल सकती है. जांच करने से पहले, डिवाइस पर Jetpack Camera ऐप्लिकेशन (JCA) इंस्टॉल होना चाहिए.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: कैप्चर किए गए ArUco मार्कर का रिलेटिव साइज़, अनुरोध किए गए ज़ूम रेशियो के हिसाब से सटीक है. इससे यह पुष्टि होती है कि कैमरा सही तरीके से ज़ूम कर रहा है. साथ ही, टेस्ट के ब्यौरे में बताई गई शर्तों के हिसाब से, इमेज के बीच से मार्कर की दूरी में बदलाव होता है.
इमेज 119. केंद्र के सबसे नज़दीक मौजूद ArUco मार्कर का कॉन्टूर ढूंढने के लिए, test_zoom का इस्तेमाल किया जाता है.
test_low_latency_zoom
कैमरे के ज़ूम करने में लगने वाले समय की जांच करता है. android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
की मदद से, ज़ूम रेंज में कैप्चर करता है. साथ ही, यह जांच करता है कि आउटपुट इमेज में मौजूद मार्कर, कैप्चर के मेटाडेटा में मौजूद ज़ूम रेशियो से मैच करते हैं या नहीं. 3A और टाक कैप्चर को एक साथ लाने के लिए, कैमरे के उसी कैप्चर सेशन का इस्तेमाल किया जाता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
पास: ज़ूम रेशियो के नतीजे के मेटाडेटा के हिसाब से, कैप्चर किए गए मार्कर का रिलेटिव साइज़ सटीक है.
test_preview_video_zoom_match
यह जांच करता है कि रिकॉर्डिंग और ज़ूम करते समय, वीडियो की झलक और वीडियो आउटपुट एक ही आउटपुट दिखाते और रिकॉर्ड करते हैं या नहीं. अलग-अलग ज़ूम रेशियो पर, केंद्र के सबसे करीब मौजूद मार्कर के साइज़ का हिसाब लगाता है. साथ ही, यह भी जांचता है कि ज़ूम रेशियो बढ़ने पर, मार्कर का साइज़ बढ़ता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: कैप्चर किए गए मार्कर का रिलेटिव साइज़, वीडियो और झलक में अनुरोध किए गए ज़ूम रेशियो के हिसाब से सही है.
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_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.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_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
पास: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
में दी गई, काम करने वाली हर SessionConfiguration
के लिए, ज़ूम के कम से कम और ज़्यादा से ज़्यादा अनुपात तक पहुंचा जा सकता है.
scene7
scene7
एक आयताकार फ़्रेम है, जिसे चार बराबर क्वाड्रेंट में बांटा गया है. हर क्वाड्रेंट में एक अलग रंग भरा गया है. आयत के बीच में, तीखेपन की जांच के लिए एक तिरछा किनारा चार्ट होता है. चार ArUco मार्कर, रेक्टैंगल के चार बाहरी कोनों के साथ अलाइन किए जाते हैं. इससे, अलग-अलग ज़ूम रेशियो पर मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने में मदद मिलती है.
इमेज 125. सीन 7.
test_multi_camera_switch
इस टेस्ट से यह पुष्टि की जाती है कि अलग-अलग ज़ूम रेशियो में झलक रिकॉर्ड करने के दौरान, अल्ट्रा-वाइड (UW) और वाइड (W) लेंस के बीच स्विच करने पर, आरजीबी वैल्यू एक जैसी होती हैं.
यह जांच, पहले से तय की गई रेंज में अलग-अलग ज़ूम रेशियो का इस्तेमाल करके, डाइनैमिक झलक रिकॉर्डिंग करती है. साथ ही, उस पॉइंट की पहचान करती है जहां फ़िज़िकल कैमरा बदलता है. यह पॉइंट, UW से W लेंस में बदलाव का निशान होता है.
क्रॉसओवर पॉइंट पर और उससे पहले कैप्चर किए गए फ़्रेम का विश्लेषण, ऑटो एक्सपोज़र (एई), ऑटो व्हाइट बैलेंस (एडब्ल्यूबी), और ऑटोफ़ोकस (एएफ़) के लिए किया जाता है.
एई जांच से यह पुष्टि होती है कि यूडब्ल्यू और डब्ल्यू लेंस, दोनों की इमेज के लिए ल्यूमा में बदलाव, उम्मीद के मुताबिक रेंज में है. AWB जांच से यह पुष्टि होती है कि UW और W लेंस, दोनों की इमेज के लिए लाल-हरा और नीला-हरा अनुपात, थ्रेशोल्ड वैल्यू के अंदर है. ऑटो फ़ोकस की जांच, UW और W लेंस इमेज के बीच के औसत ग्रेडिएंट मैग्नीट्यूड के आधार पर, तीखेपन के अनुमान की वैल्यू का आकलन करती है.
अगर इस टेस्ट को करते समय, मॉइरे इफ़ेक्ट के नतीजों पर असर पड़ता है, तो Camera ITS की मंज़ूरी पा चुके टैबलेट की सूची में से, ज़्यादा रिज़ॉल्यूशन वाले टैबलेट का इस्तेमाल करें.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
पास: टेस्ट पास करने के लिए, AE और AWB की जांच पास होनी चाहिए. एएफ़ जांच के नतीजों का इस्तेमाल सिर्फ़ लॉग करने के लिए किया जाता है. हर जांच के लिए ये शर्तें हैं:
- एई की जांच: अगर डिवाइस में
ae_regions
औरawb_regions
, दोनों काम करते हैं, तो यूडब्ल्यू और डब्ल्यू लेंस की इमेज के बीच ल्यूमा में बदलाव (Y वैल्यू), सभी कलर पैच के लिए 4% से कम होना चाहिए. अगर सिर्फ़ae_regions
का इस्तेमाल किया जा सकता है, तो सिर्फ़ स्लेटी रंग के पैच की वैल्यू ही शर्तों के मुताबिक होनी चाहिए. - AWB जांच: अगर डिवाइस
ae_regions
औरawb_regions
, दोनों के साथ काम करता है, तो UW और W लेंस इमेज के लिए, लाल-हरे और नीले-हरे रंग की वैल्यू के बीच का अंतर, स्लेटी रंग के पैच के लिए 3% से कम और अन्य रंग के पैच के लिए 10% से कम होना चाहिए. - ऑटो फ़ोकस की जांच: वाइड लेंस से कैप्चर की गई इमेज की क्वालिटी, यूडब्ल्यू लेंस से कैप्चर की गई इमेज की क्वालिटी से बेहतर होनी चाहिए.
126वीं इमेज. UW लेंस से ली गई ग्रे पैच वाली फ़ोटो.
127वीं इमेज. W लेंस से लिया गया स्लेटी रंग का पैच.
scene8
scene8
एक आयताकार फ़्रेम है, जिसे चार बराबर हिस्सों में बांटा गया है. हर हिस्से में एक अलग एक्सपोज़र वाला पोर्ट्रेट है या अलग-अलग रंग के शेड (नीला शेड, ज़्यादा एक्सपोज़र, कम एक्सपोज़र, पीला शेड) के साथ ओवरले किया गया है.
मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने के लिए, चार ArUco मार्कर को रेक्टैंगल के चार बाहरी कोनों के साथ अलाइन किया जाता है.
इमेज 128. scene8 का उदाहरण.
test_ae_awb_regions
यह जांच करता है कि अलग-अलग AE और AWB क्षेत्रों में रिकॉर्डिंग की झलक देखते समय, RGB और ल्यूमा वैल्यू अलग-अलग हों.
यह टेस्ट, आठ सेकंड की झलक रिकॉर्ड करता है. इसमें हर क्वाड्रेंट पर दो सेकंड के लिए, एई और एडब्ल्यूबी मेज़रमेंट किया जाता है. इसके बाद, टेस्ट हर क्षेत्र की झलक वाली रिकॉर्डिंग से एक फ़्रेम निकालता है. साथ ही, निकाले गए फ़्रेम का इस्तेमाल करके, एई और एडब्ल्यूबी की ये जांच करता है:
- एई जांच: यह पुष्टि करता है कि कम एक्सपोज़र वाले क्षेत्र को मेज़र करने वाले फ़्रेम की ल्यूमा वैल्यू, ज़्यादा एक्सपोज़र वाले क्षेत्र को मेज़र करने वाले फ़्रेम की ल्यूमा वैल्यू से 1% से ज़्यादा है. इससे यह पुष्टि होती है कि किसी गहरे हिस्से को मेज़र करते समय, इमेज को ज़्यादा रोशन किया जाता है.
- ऑटो वाइट बैलेंस (एडब्ल्यूबी) की जांच: यह जांच की जाती है कि नीले मेज़रमेंट क्षेत्र वाले फ़्रेम में, इमेज की औसत आरजीबी वैल्यू के लाल और नीले रंग के अनुपात में, पीले मेज़रमेंट क्षेत्र वाले फ़्रेम से 2% ज़्यादा है या नहीं. इससे यह पुष्टि होती है कि पीले (गर्म) या नीले (ठंडे) रंग वाले हिस्से को मेज़र करते समय, इमेज की आरजीबी वैल्यू संतुलित है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AE
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
पास: AE और AWB, दोनों जांच पास हो गई हैं.
129वीं इमेज. ज़्यादा एक्सपोज़र के साथ, अंधेरे इलाके को फ़्रेम में मेज़र करना.
130वीं इमेज. कम एक्सपोज़र के साथ, हल्के इलाके को फ़्रेम में मेज़र करना.
काम न करने के तरीके:
इस जांच के लिए, चारों ArUco मार्कर का सही तरीके से पता लगाना ज़रूरी है. अगर शुरुआती डिटेक्शन नहीं हो पाता है, तो सिस्टम इमेज के ब्लैक ऐंड व्हाइट वर्शन का इस्तेमाल करके, दूसरी बार डिटेक्शन की कोशिश करता है. यहां दी गई ग्रेस्केल इमेज, प्रोसेस करने के दूसरे चरण को दिखाती है:
131वीं इमेज. ArUco मार्कर अलाइन नहीं हैं.
test_color_correction_mode_cct
अलग-अलग कलर टेंपरेचर और टिनट में COLOR_CORRECTION_MODE
का जांच करता है. साथ ही, कैप्चर किए गए सीन, scene8 के आरजीबी अनुपात में हुए बदलावों की पुष्टि करता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE
android.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
पास: आरजीबी अनुपात, चुने गए कलर टेंपरेचर और टिनट के हिसाब से, अनुमानित बढ़ोतरी या कमी दिखाते हैं.
स्किप करने की शर्तों की जांच करना
अगर इनमें से कोई भी शर्त पूरी होती है, तो test_color_correction_mode_cct
टेस्ट को छोड़ दिया जाता है:
- डिवाइस का पहला एपीआई लेवल (
first_api_level
) 35 या उससे कम हो. - डिवाइस,
COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
मेंCOLOR_CORRECTION_MODE_CCT
का विज्ञापन नहीं दिखाता.
scene9
scene9
में, अलग-अलग साइज़ और रंग के हज़ारों सर्कल होते हैं. इनका इस्तेमाल करके, JPEG कंप्रेशन एल्गोरिदम को चुनौती देने के लिए, ऐसा सीन बनाया जाता है जिसे दोबारा बनाने में काफ़ी समय लगता है.
इमेज 132. scene9 का उदाहरण.
test_jpeg_high_entropy
यह जांच करता है कि कैमरे का JPEG कंप्रेशन, scene9
पर काम करता है या नहीं. साथ ही, यह भी जांच करता है कि JPEG क्वालिटी फ़ैक्टर 100% पर सेट है या नहीं. ज़ूम फ़ैक्टर बढ़ाया जाता है, ताकि यह पुष्टि की जा सके कि टैबलेट पर दिखाया गया सीन, कैमरे के फ़ील्ड ऑफ़ व्यू (एफ़ओवी) को भरता है.
इन एपीआई की जांच की गई है:
पास: JPEG फ़ाइल को सही तरीके से कंप्रेस किया गया है, डिस्क पर लिखा गया है, और उससे पढ़ा गया है.
test_jpeg_quality
कैमरे के JPEG कंप्रेस करने की क्वालिटी की जांच करता है. android.jpeg.quality
की मदद से JPEG क्वालिटी में बदलाव करें और पुष्टि करें कि क्वांटिज़ेशन टेबल सही तरीके से बदलती हैं.
इन एपीआई की जांच की गई है:
पास: क्वालिटी बढ़ने के साथ, क्वांटाइज़ेशन मैट्रिक कम हो जाती है. (मैट्रिक्स, डिवीज़न फ़ैक्टर को दिखाता है.)
133वीं इमेज. Pixel 4 के पीछे के कैमरे के ल्यूमा और क्रोमा DQT मैट्रिक के औसत की तुलना, JPEG क्वालिटी से की गई है.
134वीं इमेज. जांच में फ़ेल होने का उदाहरण.
scene_video
scene_video
एक वीडियो सीन है, जिसमें सफ़ेद रंग के बैकग्राउंड पर, चार अलग-अलग रंग के गोले अलग-अलग फ़्रेम रेट पर आगे-पीछे मूव कर रहे हैं.
इमेज 135. scene_video का उदाहरण.
test_preview_frame_drop
यह जांच करता है कि अनुरोध किए गए झलक फ़्रेम रेट को डाइनैमिक सीन के साथ बनाए रखा गया है या नहीं. यह जांच उन सभी कैमरों पर की जाती है जिन्हें तीसरे पक्ष के ऐप्लिकेशन ऐक्सेस कर सकते हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
पास: झलक का फ़्रेम रेट, अनुरोध किए गए फ़्रेम रेट की रेंज में सबसे ज़्यादा है. साथ ही, एक-दूसरे के बाद वाले फ़्रेम के बीच का औसत अंतर, जांच में तय किए गए रिलेटिव टॉलरेंस से कम है.
scene_extensions
scene_extensions
टेस्ट, कैमरा एक्सटेंशन के लिए होते हैं. इनमें Camera ITS-in-a-Box का इस्तेमाल करना ज़रूरी है, क्योंकि इनमें टेस्टिंग एनवायरमेंट को सटीक तरीके से कंट्रोल करने की ज़रूरत होती है. इसके अलावा, लाइट के सभी लीकेज को कंट्रोल करना ज़रूरी है. इसके लिए, टेस्ट रिग, डीयूटी, और टैबलेट को ड्रॉप क्लॉथ से ढकना पड़ सकता है. साथ ही, डीयूटी की सामने वाली स्क्रीन से लाइट लीक होने की समस्या को भी ठीक करना पड़ सकता है.
scene_hdr
scene_hdr
सीन में बाईं ओर एक पोर्ट्रेट और दाईं ओर कम कंट्रास्ट वाला क्यूआर कोड है.
इमेज 136. scene_hdr का उदाहरण.
test_hdr_extension
एचडीआर एक्सटेंशन की जांच करता है. एक्सटेंशन चालू होने और न होने पर, क्यूआर कोड की इमेज कैप्चर करता है. साथ ही, यह भी जांचता है कि एक्सटेंशन की मदद से क्यूआर कोड को आसानी से स्कैन किया जा सकता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
पास: HDR एक्सटेंशन, क्यूआर कोड का पता लगाने के लिए, कंट्रास्ट में होने वाले बदलावों की संख्या को कम करता है या क्यूआर कोड में ग्रेडिएंट को कम करता है.
scene_low_light
scene_low_light
सीन में, काले रंग के बैकग्राउंड पर स्लेटी रंग के अलग-अलग शेड वाले स्क्वेयर का ग्रिड है. साथ ही, स्क्वेयर के ग्रिड को लाल रंग की आउटलाइन से बांध दिया गया है. स्क्वेयर, हिल्बर्ट कर्व ओरिएंटेशन में व्यवस्थित किए जाते हैं.
इमेज 137. scene_low_light का उदाहरण.
test_night_extension
नाइट ऐक्सटेंशन की जांच करता है. एक्सटेंशन चालू होने पर कैप्चर लेता है और ये काम करता है:
- 20 स्क्वेयर की मौजूदगी का पता लगाता है
- हर स्क्वेयर के बीच के ल्यूमा का हिसाब लगाता है
- पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू का हिसाब लगाता है. यह हिसाब, हिल्बर्ट कर्व ग्रिड ओरिएंटेशन के हिसाब से लगाया जाता है
- यह फ़ंक्शन, एक-दूसरे से जुड़े स्क्वेयर की ल्यूमा वैल्यू के अंतर का हिसाब लगाता है. उदाहरण के लिए, स्क्वेयर 2 - स्क्वेयर 1 से लेकर स्क्वेयर 5 और 6 - स्क्वेयर 5 तक. साथ ही, पांच अंतरों का औसत भी निकालता है.
Android 16 या इसके बाद के वर्शन वाले डिवाइसों के लिए, कैप्चर करने के अनुरोध में एक मेज़र किया गया क्षेत्र शामिल होता है. यह क्षेत्र, स्क्वेयर के ग्रिड को बॉर्डर करने वाले रेक्टैंगल से मेल खाता है. इस बदलाव से, थ्रेशोल्ड पास करने की शर्तें बदल जाती हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
पास:
- Android 16 या इसके बाद के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 80 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 18.75 होना चाहिए.
- Android 15 और उससे पहले के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 85 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 17 होना चाहिए.
नीचे दिए गए ल्यूमिनेंस प्लॉट में, टेस्ट पास होने का नतीजा कैसा दिखता है, यह दिखाया गया है.
138वीं इमेज. कम रोशनी में रात के समय ली गई फ़ोटो, टेस्ट पास करने का उदाहरण.
test_low_light_boost_extension
कम रोशनी वाले मोड में ऑटो इमेज एक्सपोज़र (एई) की जांच करता है. अगर Camera2, कम रोशनी में बेहतर एई मोड के साथ काम करता है, तो यह जांच Camera2 के लिए की जाती है. अगर नाइट मोड कैमरा एक्सटेंशन काम करता है और एक्सटेंशन में कम रोशनी में बेहतर एई मोड काम करता है, तो यह जांच नाइट मोड कैमरा एक्सटेंशन के लिए भी की जाती है. यह टेस्ट, एई मोड को कम रोशनी वाले मोड पर सेट करता है. साथ ही, झलक से एक फ़्रेम लेता है और ये काम करता है:
- 20 बॉक्स की मौजूदगी का पता लगाता है
- हर बॉक्स के हिसाब से ल्यूमा का हिसाब लगाता है
- पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू का हिसाब लगाता है. यह हिसाब, हिल्बर्ट कर्व ग्रिड ओरिएंटेशन के हिसाब से लगाया जाता है
- यह फ़ंक्शन, एक-दूसरे से जुड़े स्क्वेयर की ल्यूमा वैल्यू के अंतर का हिसाब लगाता है. उदाहरण के लिए, स्क्वेयर 2 - स्क्वेयर 1 से लेकर स्क्वेयर 5 और 6 - स्क्वेयर 5 तक. साथ ही, पांच अंतरों का औसत भी निकालता है.
Android 16 या इसके बाद के वर्शन वाले डिवाइसों के लिए, कैप्चर करने के अनुरोध में एक मेज़र किया गया क्षेत्र शामिल होता है. यह क्षेत्र, स्क्वेयर के ग्रिड को बॉर्डर करने वाले रेक्टैंगल से मेल खाता है. इस बदलाव से, थ्रेशोल्ड पास करने की शर्तें बदल जाती हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
पास:
Android 16 या इसके बाद के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 54 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 17 होना चाहिए.
Android 15 और उससे पहले के वर्शन वाले डिवाइसों के लिए, पहले छह स्क्वेयर की औसत ल्यूमा वैल्यू कम से कम 70 होनी चाहिए. साथ ही, पांचवें और छठे स्क्वेयर तक के स्क्वेयर की ल्यूमा वैल्यू में औसत अंतर कम से कम 18 होना चाहिए.
scene_tele
scene_tele
टेस्ट के लिए एक ज़रूरी शर्त यह है कि चार्ट की दूरी, कम से कम टेलीफ़ोटो लेंस की फ़ोकस की कम से कम दूरी होनी चाहिए. फ़ोकस करने की कम से कम दूरी, डिवाइसों के हिसाब से अलग-अलग हो सकती है. इसलिए, आपको अपने सेटअप को किसी खास टेलीफ़ोटो कैमरे के हिसाब से कॉन्फ़िगर करना होगा.
इमेज 139. वाइड और टेली कैमरे की फ़ोकस दूरी के आधार पर, scene_tele सेटअप.
टेस्ट हार्डवेयर सेटअप के बारे में ज़्यादा जानने के लिए, टेली एक्सटेंशन रिग सेटअप देखें.
scene6_tele
scene6_tele
सीन में, सफ़ेद रंग के बैकग्राउंड पर ArUco मार्कर का ग्रिड है.
अगर scene6_tele
कैप्चर, मॉड्यूलर रिग में ज़्यादा एक्सपोज़र में दिखते हैं, तो मॉड्यूलर रिग की सामने की प्लेट हटाएं.
WFoV टेस्ट रिग को एक्सटेंशन से डिसकनेक्ट करें और फ़ोन माउंट हटाएं.
140वीं इमेज. WFoV टेस्ट रिग को एक्सटेंशन से डिसकनेक्ट करें और फ़ोन माउंट हटाएं.
इमेज 141. सामने की प्लेट हटाएं.
test_zoom_tele
यह जांच करता है कि वाइड लेंस से टेलीफ़ोटो लेंस पर ज़ूम करने पर, कैमरे की परफ़ॉर्मेंस कैसी है. यह जांच, test_zoom
से मिलती-जुलती है. हालांकि, इसमें वाइड लेंस से टेलीफ़ोटो लेंस पर कैमरे के ज़ूम करने के व्यवहार की जांच की जाती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: कैप्चर किए गए ArUco मार्कर का रिलेटिव साइज़, अनुरोध किए गए ज़ूम रेशियो के हिसाब से सटीक है. इससे यह पुष्टि होती है कि कैमरा सही तरीके से ज़ूम कर रहा है. साथ ही, test_zoom
में दी गई शर्तों के हिसाब से, इमेज के बीच से मार्कर की दूरी बदलती है.
test_preview_zoom_tele
वाइड लेंस से टेलीफ़ोटो लेंस तक, झलक फ़्रेम के लिए कैमरे के ज़ूम व्यवहार की जांच करता है. यह टेस्ट test_preview_zoom
से मिलता-जुलता है. हालांकि, इसमें वाइड लेंस से टेलीफ़ोटो लेंस तक, झलक फ़्रेम के लिए कैमरे के ज़ूम व्यवहार की जांच की जाती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
पास: कैप्चर किए गए ArUco मार्कर का साइज़, अनुरोध किए गए ज़ूम रेशियो के हिसाब से सही है. इससे यह पुष्टि होती है कि कैमरा सही तरीके से ज़ूम कर रहा है. साथ ही, इमेज के बीच से मार्कर की दूरी, test_preview_zoom में बताई गई शर्तों के हिसाब से बदलती है.
scene7_tele
scene7_tele
, scene7
जैसा ही है, लेकिन इसे टेलीफ़ोटो लेंस की जांच के लिए सेट अप किया गया है. यह एक आयताकार फ़्रेम है, जिसे चार बराबर क्वाड्रेंट में बांटा गया है. हर क्वाड्रेंट को अलग रंग से भरा गया है. आयत के बीच में, तीखेपन की जांच के लिए एक तिरछा किनारा चार्ट होता है. चार ArUco मार्कर, रेक्टैंगल के चार बाहरी कोनों के साथ अलाइन किए जाते हैं. इससे, अलग-अलग ज़ूम रेशियो पर मुख्य रेक्टैंगल फ़्रेम के सटीक निर्देशांक पाने में मदद मिलती है.
test_multi_camera_switch_tele
इस टेस्ट से यह पुष्टि की जाती है कि अलग-अलग ज़ूम रेशियो में झलक रिकॉर्ड करने के दौरान, वाइड (W) और टेलीफ़ोटो (टेली) लेंस के बीच स्विच करने पर, आरजीबी वैल्यू एक जैसी होती हैं.
यह जांच, पहले से तय की गई रेंज में अलग-अलग ज़ूम रेशियो का इस्तेमाल करके, डाइनैमिक झलक रिकॉर्डिंग करती है. साथ ही, उस पॉइंट की पहचान करती है जहां फ़िज़िकल कैमरा बदलता है. यह पॉइंट, वाइड लेंस से टेली लेंस में बदलाव का निशान होता है.
क्रॉसओवर पॉइंट पर और उससे पहले कैप्चर किए गए फ़्रेम का विश्लेषण, AE, AWB, और AF के लिए किया जाता है.
एई जांच से यह पुष्टि होती है कि ल्यूमा में हुआ बदलाव, वाइड और टेली लेंस, दोनों इमेज के लिए तय सीमा के अंदर है. AWB की जांच से यह पुष्टि होती है कि वाइड और टेली लेंस, दोनों इमेज के लिए लाल-हरा और नीला-हरा अनुपात, थ्रेशोल्ड वैल्यू के अंदर है. एएफ़ जांच, वाइड और टेली लेंस इमेज के बीच औसत ग्रेडिएंट मैग्नीट्यूड के आधार पर, शार्पनेस के अनुमान की वैल्यू का आकलन करती है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
पास: टेस्ट पास करने के लिए, AE, AWB, और AF की सभी जांचें पास होनी चाहिए. हर जांच के लिए ज़रूरी शर्तें यहां दी गई हैं:
- एई की जांच: वाइड और टेली लेंस की इमेज के बीच ल्यूमा में बदलाव 4% से कम होना चाहिए.
- ऑटो वाइट बैलेंस (एडब्ल्यूबी) की जांच: एलएबी कलर स्पेस में, वाइड और टेलीफ़ोटो के लिए, लाल-हरे और नीले-हरे रंग के बीच डेल्टा सी 10 से ज़्यादा नहीं हो सकता.
- ऑटो फ़ोकस की जांच: टेली लेंस की इमेज की क्वालिटी, वाइड लेंस की तुलना में बेहतर होनी चाहिए.
scene_flash
scene_flash
टेस्ट के लिए, सेंसर फ़्यूज़न बॉक्स में अंधेरा सीन होना ज़रूरी है.
test_auto_flash
यह जांच करता है कि पीछे और सामने वाले कैमरे के लिए, अंधेरे में फ़्लैश अपने-आप चालू होता है या नहीं. फ़्रंट कैमरे के लिए, ऑटो-फ़्लैश सुविधा, स्क्रीन का इस्तेमाल करके सीन को रोशन करती है, न कि फ़्लैश यूनिट का. इस टेस्ट से यह पुष्टि की जाती है कि ऑटो-फ़्लैश चालू है या नहीं. इसके लिए, यह देखा जाता है कि ऑटो-फ़्लैश चालू होने पर टाइल इमेज का बीच का हिस्सा ज़्यादा चमकीला है या नहीं. ऑटो-फ़्लैश को ट्रिगर करने के लिए, जांच के लिए इस्तेमाल किए जा रहे रिग में लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. जांच ठीक से काम करे, इसके लिए ज़रूरी है कि सीन पूरी तरह से अंधेरा हो. जांच करने से पहले, डिवाइस पर Jetpack Camera ऐप्लिकेशन (JCA) इंस्टॉल होना चाहिए. पीछे वाले कैमरों के लिए ऑटो-फ़्लैश, एई मोड के ट्रिगर होने पर काम करता है. हालांकि, सामने वाले कैमरों के लिए ऑटो-फ़्लैश, एई मोड पर निर्भर नहीं करता और हमेशा ट्रिगर होता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
पास: अपने-आप फ़्लैश चालू होने की सुविधा के साथ, टाइल इमेज का बीच का हिस्सा सभी कैमरों के लिए, ओरिजनल सीन इमेज से ज़्यादा चमकीला है.
test_flash_strength
यह जांच करता है कि SINGLE
मोड में, फ़्लैश की रोशनी को कंट्रोल करने की सुविधा सही तरीके से लागू की गई है या नहीं.
यह पुष्टि करता है कि अगर डिवाइस में SINGLE
मोड में कैमरे का इस्तेमाल करने के दौरान, फ़्लैश की रोशनी को कंट्रोल करने की सुविधा काम करती है, तो फ़्लैश की रोशनी, अनुरोध किए गए अलग-अलग लेवल के हिसाब से बदलती है. यह पुष्टि करता है कि फ़्लैश की रोशनी के लेवल को कंट्रोल करने की सुविधा, अलग-अलग AE_MODES
के साथ काम करती है.
उदाहरण के लिए, अगर ऑटो-एक्सपोज़र मोड ON
या OFF
है, तो फ़्लैश की रोशनी के लेवल का चमक पर असर पड़ता है. वहीं, अगर मोड ON_AUTO_FLASH
है, तो फ़्लैश की रोशनी के लेवल का चमक पर कोई असर नहीं पड़ता.
टेस्ट करने के लिए, टेस्ट रिग में लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. जांच ठीक से काम करे, इसके लिए ज़रूरी है कि सीन पूरी तरह से अंधेरा हो.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
पास:
जब ऑटो-एक्सपोज़र मोड ON
या OFF
पर सेट होता है, तो फ़्लैश की रोशनी के लेवल के बढ़ने पर इमेज पैच की चमक बढ़ती है. फ़्लैश की रोशनी का लेवल, बिना फ़्लैश से लेकर FLASH_SINGLE_STRENGTH_MAX_LEVEL
तक हो सकता है.
जब ऑटो-एक्सपोज़र मोड ON_AUTO_FLASH
पर सेट होता है, तो इमेज पैच की चमक में अंतर, तय सीमा के अंदर होता है. ऐसा इसलिए होता है, क्योंकि फ़्लैश की रोशनी का लेवल, 'कोई फ़्लैश नहीं' से FLASH_SINGLE_STRENGTH_MAX_LEVEL
तक बढ़ जाता है.
test_led_snapshot
यह जांच करता है कि एलईडी स्नैपशॉट, इमेज को संतृप्त या रंगीन नहीं करते.
इस टेस्ट में, रोशनी को कंट्रोल करने के लिए, सेंसर फ़्यूज़न बॉक्स में लाइटिंग कंट्रोलर जोड़ा जाता है. लाइटें OFF
पर सेट होने पर, टेस्ट AUTO_FLASH
मोड को ON
पर सेट करके कैप्चर करता है. इस कैप्चर के दौरान, टेस्ट में aePrecapture
ट्रिगर को START
पर सेट करके, कैप्चर से पहले का सीक्वेंस चलाया जाता है. साथ ही, फ़्लैश के साथ कैप्चर लेने के लिए, कैप्चर इंटेंट को Preview
पर सेट किया जाता है.
फ़्लैश की वजह से, कैप्चर में एक खास हॉटस्पॉट होता है. इसलिए, जांच में पूरे कैप्चर की फ़्लैश इमेज का औसत निकाला जाता है और यह पुष्टि की जाती है कि वैल्यू (68, 102) की सीमा में है या नहीं. यह जांचने के लिए कि इमेज में सफ़ेद रंग का बैलेंस ठीक है या नहीं, इस टेस्ट में लाल-हरे और नीले-हरे रंग के अनुपात का हिसाब लगाया जाता है. साथ ही, यह भी जांचा जाता है कि ये अनुपात 0.95 और 1.05 के बीच हैं या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.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_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
पास: झलक का फ़्रेम रेट, अनुरोध किए गए फ़्रेम रेट की सीमा के कम से कम हिस्से पर है. साथ ही, फ़्रेम के बीच का अंतर, जांच में तय किए गए टोलरेंस से कम है.
test_torch_strength
यह जांच करता है कि TORCH
मोड में, फ़्लैश की रोशनी को कंट्रोल करने की सुविधा सही तरीके से लागू की गई है या नहीं.
यह पुष्टि करता है कि अगर डिवाइस पर TORCH
मोड में कैमरे का इस्तेमाल करते समय, फ़्लैश की रोशनी को कंट्रोल करने की सुविधा काम करती है, तो रोशनी के लिए अनुरोध किए गए अलग-अलग लेवल के हिसाब से, टॉर्च की रोशनी में बदलाव होता है. यह पुष्टि करता है कि फ़्लैश की रोशनी के लेवल को कंट्रोल करने की सुविधा, अलग-अलग AE_MODES
के साथ काम करती है.
उदाहरण के लिए, अगर ऑटो-एक्सपोज़र मोड ON
या OFF
है, तो फ़्लैश की रोशनी के लेवल का चमक पर असर पड़ता है. वहीं, अगर मोड ON_AUTO_FLASH
है, तो फ़्लैश की रोशनी के लेवल का चमक पर कोई असर नहीं पड़ता.
यह पुष्टि करता है कि वीडियो कैप्चर सेशन को सिम्युलेट करते समय, टॉर्च की रोशनी एक जैसी बनी रहे. टेस्ट करने के लिए, टेस्ट रिग में लाइटें बंद होनी चाहिए. Arduino कंट्रोलर की मदद से, लाइटें अपने-आप बंद हो सकती हैं. जांच ठीक से काम करे, इसके लिए ज़रूरी है कि सीन पूरी तरह से अंधेरा हो.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
पास:
जब ऑटो-एक्सपोज़र मोड ON
या OFF
पर सेट होता है, तो फ़्लैश की रोशनी के लेवल के बढ़ने पर इमेज के बर्स्ट पैच की रोशनी बढ़ जाती है. फ़्लैश की रोशनी का लेवल, बिना फ़्लैश से लेकर FLASH_TORCH_STRENGTH_MAX_LEVEL
तक हो सकता है.
ऑटो-एक्सपोज़र मोड ON_AUTO_FLASH
होने पर, इमेज बर्स्ट पैच की चमक में फ़र्क़, तय सीमा के अंदर होता है. ऐसा इसलिए होता है, क्योंकि फ़्लैश की रोशनी का लेवल, बिना फ़्लैश से लेकर FLASH_TORCH_STRENGTH_MAX_LEVEL
तक बढ़ता है.
sensor_fusion
सेंसर फ़्यूज़न टेस्ट के लिए, चेकरबोर्ड पैटर्न और ArUco मार्कर के सामने फ़ोन को खास तरीके से घुमाना ज़रूरी है. सबसे अच्छे नतीजे पाने के लिए, पुष्टि करें कि टेस्ट चार्ट को सपाट तरीके से माउंट किया गया हो. फ़्लैट नहीं होने वाले चार्ट, कई जांचों के लिए रोटेशन कैलकुलेशन पर असर डालते हैं. चार्ट को 17x17 इंच में प्रिंट करके, सेंसर फ़्यूज़न बॉक्स के पीछे की जगह को भरना चाहिए. (43x43 cm). सेंसर फ़्यूज़न बॉक्स की मदद से, sensor_fusion
टेस्ट को ऑटोमेट किया जा सकता है.
142वीं इमेज. सेंसर फ़्यूज़न चार्ट.
इमेज 143. सेंसर फ़्यूज़न चार्ट, जो सेंसर फ़्यूज़न बॉक्स के पीछे की जगह को भरता है.
test_lens_intrinsic_calibration
यह जांच करता है कि ऑप्टिकल इमेज स्टेबलाइज़ेशन (ओआईएस) की वजह से लेंस के हिलने पर, लेंस के ऑप्टिकल सेंटर में बदलाव होता है या नहीं. अगर लेंस के इंट्रिन्सिक सैंपल काम करते हैं, तो यह जांच की जाती है कि ओआईएस की वजह से लेंस के हिलने पर, लेंस के इंट्रिन्सिक सैंपल का ऑप्टिकल सेंटर बदलता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
पास: लेंस के ऑप्टिकल सेंटर में 1 पिक्सल या इससे ज़्यादा बदलाव होता है. अगर लेंस के इंट्रिन्सिक सैंपल काम करते हैं, तो लेंस के इंट्रिन्सिक सैंपल के ऑप्टिकल सेंटर में एक पिक्सल या उससे ज़्यादा का बदलाव होता है.
नीचे दिए गए उदाहरण में, test_lens_intrinsic_calibration
प्लॉट का एक उदाहरण दिया गया है. इसमें हर फ़्रेम के लिए, मुख्य पॉइंट में पिक्सल के हिसाब से हुए बदलावों को दिखाया गया है:
144वीं इमेज. test_lens_intrinsic_calibration प्लॉट का उदाहरण, जिसमें हर फ़्रेम के लिए मुख्य बिंदुओं के पिक्सल में हुए बदलाव दिखाए गए हैं.
test_multi_camera_frame_sync
यह जांच करता है कि लॉजिकल कैमरे से कैप्चर किए गए फ़्रेम के टाइमस्टैंप, 10 मिलीसेकंड के अंदर हों. इसके लिए, चेकरबोर्ड में मौजूद स्क्वेयर के ऐंगल का हिसाब लगाकर टाइमस्टैंप का पता लगाया जाता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
पास: फ़ोन को घुमाने पर, हर कैमरे से ली गई इमेज के बीच का ऐंगल काफ़ी नहीं बदलता.
test_preview_distortion
यह जांच करता है कि अलग-अलग ज़ूम लेवल पर लिए गए हर झलक फ़्रेम में, डिस्टॉर्शन ठीक किया गया है या नहीं. हर झलक फ़्रेम के लिए, जांच में कैमरे के इनट्रिन्सिक और एक्सट्रिन्सिक के आधार पर, आदर्श पॉइंट का हिसाब लगाया जाता है.
उदाहरण के तौर पर दी गई इमेज में, आदर्श पॉइंट हरे रंग में दिखाए गए हैं और असल पॉइंट लाल रंग में दिखाए गए हैं. विरूपण की गड़बड़ी का हिसाब, असल पॉइंट और आदर्श पॉइंट के बीच आरएमएस पिक्सल की दूरी के आधार पर लगाया जाता है. इमेज पर हरे और लाल रंग से हाइलाइट किए गए हिस्सों से, विरूपण की गड़बड़ी का पता चलता है.
145वीं इमेज. चेकरबोर्ड की इमेज, जिसमें सही पॉइंट हरे और असल पॉइंट लाल रंग के हैं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.media.CamcorderProfile
android.media.MediaRecorder
पास: हर झलक फ़्रेम में, विरूपण की सामान्य गड़बड़ी, जांच में तय किए गए थ्रेशोल्ड से कम है.
test_preview_stabilization
यह जांच करता है कि स्टेबलाइज़ किए गए झलक वाले वीडियो में, घूमने-फिरने की समस्या, जियोस्कोप की तुलना में कम है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
पास: फ़्रेम में ऐंगल का ज़्यादा से ज़्यादा रोटेशन, जीरोस्कोप के रोटेशन के 70% से कम है.
यहां स्टेबलाइज़ेशन की सुविधा के साथ और बिना सुविधा वाले वीडियो के सैंपल दिए गए हैं:
146वीं इमेज. स्टेबलाइज़ेशन की सुविधा वाले वीडियो का सैंपल.
147वीं इमेज. स्टेबलाइज़ेशन के बिना सैंपल वीडियो.
test_sensor_fusion
यह AR और VR ऐप्लिकेशन के लिए, कैमरे और जायरोस्कोप के बीच टाइमस्टैंप के अंतर की जांच करता है. चेकरबोर्ड पैटर्न के सामने, फ़ोन को 90 डिग्री पर 10 बार घुमाया गया है. मोशन में, एक बार में आने और जाने में करीब 2 सेकंड लगते हैं. अगर कोई गायरोस्कोप शामिल नहीं है या टाइमस्टैंप सोर्स REALTIME
पैरामीटर चालू नहीं है, तो यह जांच नहीं की जाती.
test_sensor_fusion
टेस्ट कई प्लॉट जनरेट करता है. डीबग करने के लिए, ये दो सबसे ज़रूरी प्लॉट हैं:
test_sensor_fusion_gyro_events
: जांच के दौरान, फ़ोन के लिए जाइरोस्कोप इवेंट दिखाता है. अगर फ़ोन, x और y दिशा में हिलता है, तो इसका मतलब है कि फ़ोन को माउंटिंग प्लेट पर ठीक से माउंट नहीं किया गया है. इससे, जांच में पास होने की संभावना कम हो जाती है. प्लॉट में साइकल की संख्या, फ़्रेम सेव करने के लिए लिखने की स्पीड पर निर्भर करती है.इमेज 148. test_sensor_fusion gyroscope इवेंट का उदाहरण.
test_sensor_fusion_plot_rotations
: जाइरोस्कोप और कैमरे के इवेंट का अलाइनमेंट दिखाता है. इस प्लॉट में, कैमरे और घुमाव-गति सेंसर के बीच की गति +/-1 मिलीसेकंड तक मैच करती हुई दिखनी चाहिए.पहली इमेज 149. test_sensor_fusion प्लॉट रोटेशन का उदाहरण.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
पास: सीडीडी में 7.3.9 हाई फ़िडेलिटी सेंसर के मुताबिक, कैमरे और जाइरोस्कोप के टाइमस्टैंप का ऑफ़सेट 1 एमएस से कम है.
काम न करने के तरीके:
- ऑफ़सेट गड़बड़ी: कैमरा-जाइरोस्कोप ऑफ़सेट को +/-1 एमएस के अंदर सही तरीके से कैलिब्रेट नहीं किया गया है.
- फ़्रेम ड्रॉप: लगातार 200 फ़्रेम कैप्चर करने के लिए, पाइपलाइन तेज़ नहीं है.
- सॉकेट से जुड़ी गड़बड़ियां:
adb
, जांच को पूरा करने के लिए ज़रूरत के मुताबिक डीयूटी से कनेक्ट नहीं हो पा रहा है. - चार्ट को फ़्लैट माउंट नहीं किया गया है. प्लॉट
test_sensor_fusion_plot_rotations
में ऐसे फ़्रेम हैं जिनमें कैमरे के घूमने की दिशा और घुमाव की स्पीड में काफ़ी अंतर है. ऐसा इसलिए है, क्योंकि कैमरा चार्ट के उन हिस्सों पर घूमता है जो सपाट नहीं हैं. - कैमरे को फ़्लैट माउंट नहीं किया गया है. प्लॉट
test_sensor_fusion_gyro_events
में X और Y प्लेन में हुई गतिविधि दिखती है. यह गड़बड़ी, सामने वाले कैमरे में ज़्यादा होती है, क्योंकि रीयर कैमरे के लिए फ़ोन के बाकी हिस्से की तुलना में अक्सर उभरा हुआ हिस्सा होता है. इससे फ़ोन के पीछे वाले हिस्से को माउंटिंग प्लेट पर माउंट करते समय, कैमरे में झुकाव आ जाता है.
test_video_stabilization
यह जांच करता है कि स्टेबलाइज़ किया गया वीडियो, जियोस्कोप की तुलना में कम घूमता है या नहीं.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
पास: फ़्रेम में ऐंगल का रोटेशन, जीरोस्कोप के रोटेशन के 60% से कम है.
यहां स्थिरीकरण की सुविधा के साथ और बिना स्थिरीकरण वाले वीडियो के सैंपल दिए गए हैं.
150वीं इमेज. स्टेबलाइज़ेशन की सुविधा वाले वीडियो का सैंपल.
151वीं इमेज. स्टेबलाइज़ेशन के बिना सैंपल वीडियो.
test_video_stabilization_jca
JCA का इस्तेमाल करके कैप्चर किए गए वीडियो को स्थिर करने पर, यह जियोस्कोप की तुलना में कम घूमता है. जांच करने से पहले, डिवाइस पर JCA इंस्टॉल होना चाहिए.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.CamcorderProfile
android.media.MediaRecorder
पास: JCA का इस्तेमाल करके कैप्चर किए गए वीडियो से निकाले गए फ़्रेम में, ऐंगल का ज़्यादा से ज़्यादा रोटेशन, जीरोस्कोप के रोटेशन के 70% से कम है.
feature_combination
feature_combination
टेस्ट से यह पुष्टि होती है कि एक साथ कई कैमरे की सुविधाएं चालू होने पर, सुविधाएं सही तरीके से काम करती हैं. इन टेस्ट में, उसी चेकरबोर्ड इमेज का इस्तेमाल किया जाता है जिसका इस्तेमाल सेंसर फ़्यूज़न सीन में किया जाता है.
test_feature_combination
यह कैमरा डिवाइस पर काम करने वाले अलग-अलग स्ट्रीम कॉम्बिनेशन, वीडियो स्टेबलाइज़ेशन मोड, टारगेट एफ़पीएस रेंज, 10-बिट एचडीआर वीडियो, और अल्ट्रा एचडीआर के सभी कॉम्बिनेशन की जांच करता है.
Android 16 और उसके बाद के वर्शन के लिए, टेस्ट में काम करने वाली सुविधाओं के सभी कॉम्बिनेशन चलाए जाते हैं. साथ ही, नतीजों को प्रोटो फ़ाइल में लॉग किया जाता है. गड़बड़ी के एश्योरेशन सिर्फ़ उन सुविधाओं के कॉम्बिनेशन के लिए कॉल किए जाते हैं जिनके लिए isSessionConfigurationSupported
, True
दिखाता है.
इन एपीआई की जांच की गई है:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
पास: काम करने वाले हर सुविधा कॉम्बिनेशन के लिए:
- अगर झलक को स्थिर करने की सुविधा चालू है, तो झलक की स्ट्रीम स्थिर हो जाती है.
- झलक का फ़्रेम रेट, कॉन्फ़िगर किए गए
AE_TARGET_FPS_RANGE
के अंदर आता है. - रिकॉर्ड की गई झलक वाली स्ट्रीम का कलर स्पेस, सेट किए गए कलर स्पेस से मेल खाता हो.
- अल्ट्रा एचडीआर कैप्चर में मान्य गेन मैप हो.
scene_ip
Android 16 और उसके बाद के वर्शन में, सीन scene_ip
की मदद से, डिफ़ॉल्ट कैमरा ऐप्लिकेशन और Jetpack कैमरा ऐप्लिकेशन (JCA) के बीच इमेज की तुलना की जा सकती है. इससे, कैप्चर की गई इमेज के बीच के बड़े अंतर की पहचान की जा सकती है. JCA, सोशल मीडिया ऐप्लिकेशन की कैप्चर की गई इमेज की नकल करता है और एक बेसलाइन इमेज उपलब्ध कराता है. इसके बाद, सोशल मीडिया ऐप्लिकेशन उस इमेज को प्रोसेस और बेहतर बनाते हैं.
हार्डवेयर सेटअप करने से जुड़ी ज़रूरी शर्तें
scene_ip
टेस्ट के लिए, यहां दिया गया हार्डवेयर सेटअप ज़रूरी है:
- टेस्ट, Gen2 कैमरे के एक बॉक्स में मौजूद आईटीएस में किए जाते हैं.
- Gen2 रिग में मौजूद लाइटिंग और सर्वो कंट्रोलर का इस्तेमाल, टेस्ट एनवायरमेंट को कंट्रोल करने के लिए किया जाता है
- Gen2 रिग में, टेस्ट की सुविधा का चार्ट रखा गया है.
152वीं इमेज. Gen2chart_sample का उदाहरण.
स्किप करने की शर्तों की जांच करना
इनमें से कोई भी शर्त पूरी होने पर, scene_ip
टेस्ट नहीं किए जाते:
- डिवाइस का पहला एपीआई लेवल (
first_api_level
) 35 या उससे कम हो. - डिवाइस, फ़ोन डिवाइस नहीं है. इसमें सामने और पीछे के मुख्य कैमरे डिवाइस नहीं हैं (उदाहरण के लिए, टैबलेट या टीवी).
test_default_jca_ip
डिफ़ॉल्ट कैमरा ऐप्लिकेशन और JCA का इस्तेमाल करके, लाइटिंग की कंट्रोल की गई स्थितियों में जांच की सुविधा वाले चार्ट को कैप्चर करता है. साथ ही, ये जांच करता है:
फ़ील्ड ऑफ़ व्यू (एफ़ओवी): यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और JCA कैप्चर में एक ही एफ़ओवी है या नहीं. यह जांच, कैप्चर किए गए चार्ट की इमेज से निकाले गए सेंटर क्यूआर कोड की सुविधा का इस्तेमाल करती है.
रोशनी: यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और JCA के बीच रोशनी में 10 से ज़्यादा का अंतर न हो. यह जांच, चमक को मेज़र करने के लिए डाइनैमिक रेंज पैच का इस्तेमाल करती है.
व्हाइट बैलेंस: यह जांच करता है कि डिफ़ॉल्ट कैमरा ऐप्लिकेशन और JCA के बीच व्हाइट बैलेंस का अंतर चार से ज़्यादा न हो. यह जांच, चमक को मेज़र करने के लिए डाइनैमिक रेंज पैच का इस्तेमाल करती है.
बुनियादी सेक्शन पास: फ़ील्ड ऑफ़ व्यू (FOV), चमक, और व्हाइट बैलेंस की जांच में पास. Android 16 में, इस टेस्ट को ज़रूरी नहीं माना जाता है
(NOT_YET_MANDATED
).