Android 13 रिलीज़ में कैमरा ITS में कई बदलाव शामिल हैं। अद्यतन पायथन और पैकेज संस्करण और परीक्षण हार्डवेयर अपडेट जैसे वृद्धिशील परिवर्तनों के अलावा, एंड्रॉइड 13 वीडियो परीक्षण का समर्थन करता है।
यह पृष्ठ Android 13 के लिए कैमरा ITS परिवर्तनों का सारांश प्रस्तुत करता है। परिवर्तन सात व्यापक श्रेणियों में आते हैं:
- पायथन और पैकेज संस्करण
- कॉन्फ़िगरेशन फ़ाइल परिवर्धन
- परीक्षण परिवर्तन
- नए टैबलेट-आधारित परीक्षण
- वीडियो परीक्षण
- हार्डवेयर अद्यतन और परिवर्धन
- फ़ोल्ड करने योग्य परीक्षण समर्थन
पायथन और पैकेज संस्करण
एंड्रॉइड 13 एंड्रॉइड 12 में समर्थित पायथन संस्करणों और लाइब्रेरीज़ के अलावा निम्नलिखित पायथन संस्करणों का समर्थन करता है:
- पायथन 3.9.2
- ओपनसीवी 4.2.0
- नम्पी 1.20.3
- मैटप्लोटलिब 3.3.4
- स्काइपी 1.6.2
- पायसीरियल 3.5
- तकिया 8.3.1
- PyYAML 5.4.1
- मोबली 1.11
- एफएफएमपीईजी 4.4.1
कॉन्फ़िगरेशन फ़ाइल परिवर्धन
test_auto_flash.py
परीक्षण के लिए प्रकाश नियंत्रण जोड़ने के कारण, config.yml
फ़ाइल को नियंत्रक और प्रकाश चैनल के लिए दो अतिरिक्त मापदंडों की आवश्यकता होती है। यह पहचानने के लिए कि परीक्षण के तहत डिवाइस (DUT) फोल्डेबल है या नहीं, config.yml
फ़ाइल को एक तीसरे अतिरिक्त पैरामीटर की आवश्यकता होती है जिसे टैबलेट-आधारित और सेंसर फ़्यूज़न अनुभाग दोनों में जोड़ा जाना चाहिए।
TestBeds:
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "True" or "False"; quotes needed
lighting_cntl: <controller-type> # "arduino" or "None"; quotes needed
lighting_ch: <controller-channel>
camera: 0
foldable_device: "False". # set "True" if testing foldable
scene: <scene-name> # if <scene-name> runs all scenes
परीक्षण परिवर्तन
scene1_1/test_black_white.py
test_black_white
परीक्षण में एंड्रॉइड के पिछले संस्करणों के अनुरूप चैनल संतृप्ति जांच है, जिसका अर्थ है कि चैनल संतृप्ति जांच के लिए आवश्यक पहला एपीआई स्तर एंड्रॉइड 10 है।
scene1_2/test_yuv_plus_raw.py
RAW के लिए बेहतर समर्थन प्रदान करने के लिए test_yuv_plus_raw
परीक्षण गैर 16:9 या 4:3 सेंसर को संभालता है। यदि परीक्षण सेंसर RAW प्रारूप और YUV कैप्चर प्रारूपों के बीच एक सामान्य प्रारूप नहीं ढूंढ पाता है, तो परीक्षण RAW कैप्चर की तुलना सबसे बड़े YUV कैप्चर से करता है, भले ही पहलू अनुपात भिन्न हो।
scene2_a/test_faces.py
test_faces
test_num_faces
में पुनः सक्रिय किया गया है।
scene2_a/test_num_faces.py
test_num_faces
परीक्षण सेंसर क्रॉप को संभालता है और क्रॉप किए गए UW कैमरा कैप्चर पर चेहरे के आयतों को सही ढंग से रखता है।
scene3/test_lens_position.py
एंड्रॉइड 13 में test_lens_position
परीक्षण को हटा दिया गया है।
scene6/test_zoom.py
तीन और चार कैमरा सिस्टम के आसान परीक्षण को सक्षम करने के लिए test_zoom
परीक्षण को दोबारा तैयार किया गया है। यदि कैमरा ज़ूम में 10x अनुपात रेंज पर सही ढंग से परीक्षण करता है, तो परीक्षण सही ढंग से समाप्त हो जाता है। यह ज़ूम परीक्षण को एकल चार्ट दूरी पर निष्पादित करने में सक्षम बनाता है।
scene_change/test_scene_change.py
एंड्रॉइड 13 में test_scene_change
परीक्षण को हटा दिया गया है।
नए टैबलेट-आधारित परीक्षण
एंड्रॉइड 13 में दो नए टैबलेट-आधारित परीक्षण शामिल हैं। दोनों परीक्षण एंड्रॉइड 13 के साथ लॉन्च होने वाले उपकरणों के लिए अनिवार्य हैं, लेकिन एंड्रॉइड 13 में अपग्रेड करने वाले उपकरणों के लिए छोड़ दिए गए हैं।
दृश्य | परीक्षण का नाम | पहला एपीआई स्तर | विवरण |
---|---|---|---|
2_ए | test_auto_flash | 33 | पुष्टि करता है कि अंधेरे दृश्य ऑटो फ़्लैश ट्रिगर करते हैं। |
2_बी | test_yuv_jpg_capture_sameness | 33 | पुष्टि करता है कि YUV और JPEG अभी भी कैप्चर बिट-वार समान हैं। |
scene2_a/test_auto_flash.py
Android 13 test_auto_flash
परीक्षण जोड़ता है।
पैरामीटर
-
flash
: यदि फ़्लैश उपलब्ध नहीं है तो परीक्षण छोड़ देता है।
तरीका
परीक्षण ऑटो-फ़्लैश के लिए कैप्चर अनुरोध को कॉन्फ़िगर करता है और एक फ़्लैश ईवेंट की आवश्यकता वाला दृश्य प्रस्तुत करता है। ऑटो-एक्सपोज़र एल्गोरिदम के लिए एक अंधेरा दृश्य प्रस्तुत करने के लिए परीक्षण रिग और टैबलेट में प्रकाश बंद कर दिया गया है। परीक्षण ऑटो-फ्लैश सक्षम होने के साथ NUM_FRAMES
कैप्चर के अनुक्रम को कॉन्फ़िगर करता है। यदि AE_STATE
सेटिंग FLASH_REQUIRED
लौटाती है तो परीक्षण सत्यापित करता है कि कैप्चर में फ़्लैश सक्रिय है।
संकेत मिलने पर प्रकाश को मैन्युअल रूप से नियंत्रित किया जा सकता है, या स्वचालित परीक्षण के लिए प्रकाश नियंत्रण के साथ Arduino नियंत्रक के साथ स्वचालित रूप से नियंत्रित किया जा सकता है। एक नया उपयोगिता फ़ोल्डर lighting_control_utils
परीक्षणों में प्रकाश व्यवस्था को नियंत्रित करने के लिए कोड को केंद्रीकृत करता है।
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 test_yuv_jpeg_capture_sameness
परीक्षण जोड़ता है।
पैरामीटर
-
streamUseCase
: यह निर्धारित करता है कि कैमरा स्ट्रीम उपयोग के मामले का समर्थन करता है या नहीं। -
android.jpeg.quality
: JPEG गुणवत्ता को 100 पर सेट करता है।
तरीका
यह परीक्षण सबसे बड़े सामान्य YUV और JPEG प्रारूपों का उपयोग करके दो छवियों को कैप्चर करता है, जिनका पहलू अनुपात सबसे बड़े JPEG प्रारूप के समान है, जिसका रिज़ॉल्यूशन 1920x1440 से अधिक नहीं है। परीक्षण jpeg.quality
100 पर सेट करता है और दोहरी सतह अनुरोध को कैप्चर करता है। इसके बाद यह दोनों छवियों को आरजीबी सरणियों में परिवर्तित करता है और दोनों छवियों के बीच 3डी रूट माध्य वर्ग (आरएमएस) अंतर की गणना करता है। अंतर सहनशीलता 1% पर सेट है।
वीडियो परीक्षण
कैमरा ITS एंड्रॉइड 13 में वीडियो परीक्षण के लिए समर्थन जोड़ता है।
Android 13 निम्नलिखित परीक्षण जोड़ता है:
दृश्य | परीक्षण का नाम | पहला एपीआई स्तर | विवरण |
---|---|---|---|
4 | परीक्षण_पूर्वावलोकन_स्थिरीकरण_फ़ोव | 33 | पुष्टि करता है कि स्थिरीकरण सक्षम होने पर वीडियो पूर्वावलोकन बहुत अधिक क्रॉप नहीं होता है। |
4 | परीक्षण_वीडियो_पहलू_अनुपात_और_फसल | 33 | वीडियो प्रारूप FoV, पहलू अनुपात और क्रॉपिंग की पुष्टि करता है। |
सेंसर_फ्यूजन | परीक्षण_पूर्वावलोकन_स्थिरता | 33 | पूर्वावलोकन स्थिरीकरण कार्यों की पुष्टि करता है। | सेंसर_फ्यूजन | परीक्षण_वीडियो_स्थिरीकरण | 33 | वीडियो स्थिरीकरण कार्य की पुष्टि करता है। |
scene4/test_preview_stability_fov.py
Android 13 test_preview_stabilization_fov
परीक्षण जोड़ता है। यह परीक्षण यह सुनिश्चित करने के लिए समर्थित पूर्वावलोकन आकारों की जाँच करता है कि FoV को अनुचित तरीके से नहीं काटा गया है।
तरीका
परीक्षण दो वीडियो कैप्चर करता है, एक पूर्वावलोकन स्थिरीकरण चालू है, और एक पूर्वावलोकन स्थिरीकरण बंद है। प्रत्येक वीडियो से एक प्रतिनिधि फ़्रेम का चयन किया जाता है, और यह सुनिश्चित करने के लिए विश्लेषण किया जाता है कि दोनों वीडियो में FoV परिवर्तन विनिर्देशों के भीतर हैं।
विशेष रूप से, परीक्षण पूर्वावलोकन स्थिरीकरण के साथ और उसके बिना निम्नलिखित मापदंडों की जाँच करता है:
- वृत्त की गोलाई स्थिर रहती है।
- वृत्त का केन्द्र स्थिर रहता है।
- वृत्त का आकार 20% से अधिक नहीं बदलता है, जिसका अर्थ है कि FoV अधिकतम 20% बदलता है।
scene4/test_video_aspect_ratio_and_crop.py
Android 13 test_video_aspect_ratio_and_crop
परीक्षण जोड़ता है। स्टिल कैप्चर के लिए test_aspect_ratio_and_crop
परीक्षण के समान, यह परीक्षण यह सुनिश्चित करने के लिए समर्थित वीडियो प्रारूपों की जांच करता है कि वीडियो फ़्रेम को अनुचित तरीके से खींचा या काटा नहीं गया है। सभी स्व-रिपोर्ट किए गए वीडियो गुणों का परीक्षण किया जाता है। इसके अतिरिक्त, यदि कैमरा HLG10
वीडियो का समर्थन करता है, तो 10-बिट वीडियो का परीक्षण किया जाता है।
Android 13 its_session_utils
में get_available_video_qualities
विधि जोड़ता है। मौजूदा परीक्षणों के साथ सामान्य कोड साझा करने के लिए, एंड्रॉइड 13 में दो नए उपयोगिता फ़ंक्शन, image_fov_utils
और video_processing_utils
भी शामिल हैं।
तरीका
यदि RAW समर्थित नहीं है तो परीक्षण RAW प्रारूप या उच्चतम रिज़ॉल्यूशन JPEG प्रारूप के साथ एक संदर्भ छवि कैप्चर करता है। संदर्भ छवि से, वृत्त का आकार और स्थान निर्धारित किया जाता है। फिर सभी समर्थित वीडियो गुणों के साथ लघु वीडियो लिए जाते हैं। प्रत्येक वीडियो गुणवत्ता से अंतिम संदर्भ फ़्रेम निकाला जाता है। संदर्भ फ़्रेम से, प्रत्येक वीडियो गुणवत्ता के लिए फ़ील्ड-ऑफ़-व्यू (FoV), सेंटरिंग (क्रॉप), और पहलू अनुपात की गणना की जाती है।
FoV गणना के लिए, परीक्षण वीडियो फ़्रेम सर्कल आकार की तुलना संदर्भ छवि और वीडियो प्रारूप आकार से गणना किए गए सर्कल आकार से करता है। क्रॉप जांच के लिए, परीक्षण वीडियो फ्रेम सेंटरिंग की तुलना संदर्भ छवि सेंटरिंग से करता है। पहलू अनुपात की जांच के लिए, दृश्य का उपयोग करके, जो एक सफेद पृष्ठभूमि पर एक बड़ा काला वृत्त है, परीक्षण सर्कल के पहलू अनुपात को निर्धारित करता है और सत्यापित करता है कि फ्रेम विकृत नहीं है।
सेंसर_फ़्यूज़न/टेस्ट_प्रीव्यू_स्टैबिलाइज़ेशन.py
एंड्रॉइड 13 test_preview_stabilization
test जोड़ता है, जो 1920x1080 तक सभी समर्थित पूर्वावलोकन गुणों का परीक्षण करता है। परीक्षण सेंसर फ़्यूज़न परीक्षण रिग का उपयोग करता है और नए संशोधन 2 सेंसर फ़्यूज़न नियंत्रक या पुराने Arduino नियंत्रक संस्करणों के फर्मवेयर अपग्रेड की आवश्यकता होती है। नए नियंत्रक के बारे में अधिक जानकारी के लिए, हार्डवेयर अपडेट और परिवर्धन देखें।
तरीका
पूर्वावलोकन स्थिरीकरण सक्षम होने पर फोन को लगभग 15 डिग्री के कोण पर धीरे-धीरे घुमाया जाता है। फिर छवियों के घूर्णन की तुलना जाइरोस्कोप के घूर्णन से की जाती है।
सेंसर_फ़्यूज़न/टेस्ट_वीडियो_स्टैबिलाइज़ेशन.py
एंड्रॉइड 13 test_video_stabilization
test जोड़ता है, जो 1920x1080 तक समर्थित वीडियो गुणों का परीक्षण करता है। QCIF कम रिज़ॉल्यूशन वाली वीडियो गुणवत्ता को बाहर रखा गया है। परीक्षण सेंसर फ़्यूज़न परीक्षण रिग का उपयोग करता है और नए संशोधन 2 सेंसर फ़्यूज़न नियंत्रक या पुराने Arduino नियंत्रक संस्करणों के फर्मवेयर अपग्रेड की आवश्यकता होती है। नए नियंत्रक के बारे में अधिक जानकारी के लिए, हार्डवेयर अपडेट और परिवर्धन देखें।
तरीका
पूर्वावलोकन स्थिरीकरण सक्षम होने पर परीक्षण रिग फोन को लगभग 15 डिग्री के कोण पर धीरे-धीरे घुमाता है। फिर छवियों के घूर्णन की तुलना जाइरोस्कोप के घूर्णन से की जाती है।
हार्डवेयर अद्यतन और परिवर्धन
एंड्रॉइड 13 में Arduino-आधारित रिवीजन 2 सेंसर फ़्यूज़न कंट्रोलर का अपग्रेड शामिल है। इस अपग्रेड में हार्डवेयर और फ़र्मवेयर दोनों परिवर्तन शामिल हैं। अपग्रेड नियंत्रक को रोटेशन गति और बिजली नियंत्रण सेट करने की अनुमति देता है। अपग्रेड में एक नया शील्ड भी शामिल है (चित्र 1 में दिखाया गया है), जो रोटेशन के तीन चैनल और प्रकाश नियंत्रण के तीन चैनल प्रदान करता है।
चित्र 1. रोटेशन और प्रकाश नियंत्रण के साथ Arduino शील्ड Rev2.0
इसके अतिरिक्त, 13 के लिए, रोटेशन गति नियंत्रण को सक्षम करने के लिए मौजूदा नियंत्रकों के फर्मवेयर को अद्यतन किया जाना चाहिए। इस फर्मवेयर को यहां से डाउनलोड किया जा सकता है:
नए नियंत्रक के बारे में अधिक जानकारी के लिए, Android 13 सेंसर फ़्यूज़न नियंत्रक देखें।
फ़ोल्ड करने योग्य परीक्षण समर्थन
एंड्रॉइड 13 में फोल्डेबल डिवाइस के लिए परीक्षण समर्थन शामिल है। फोल्डेबल के लिए मल्टी-कैमरा एपीआई को सक्षम करने के लिए, परीक्षण के दौरान फोन स्थिति ( Folded
या Unfolded
) की आवश्यकता होती है। नॉन-फ़ोल्डेबल फ़ोन सहित सभी DUTs के लिए फ़ोन स्थिति के मतदान को सक्षम करने के लिए, DUT को होस्ट से कनेक्ट करने के बाद निम्नलिखित adb कमांड चलाएँ।
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier