Android 13 की रिलीज़ में, Camera ITS में कई बदलाव किए गए हैं. Android 13 में वीडियो की जांच की जा सकती है. इसके अलावा, इसमें Python और पैकेज के अपडेट किए गए वर्शन, टेस्ट हार्डवेयर के अपडेट जैसे कई बदलाव किए गए हैं.
इस पेज पर, Android 13 के लिए Camera ITS में किए गए बदलावों की खास जानकारी दी गई है. इन बदलावों को सात मुख्य कैटगरी में बांटा गया है:
- Python और पैकेज के वर्शन
- कॉन्फ़िगरेशन फ़ाइल में जोड़े गए पैरामीटर
- टेस्ट में किए गए बदलाव
- टैबलेट पर किए जाने वाले नए टेस्ट
- वीडियो की जांच करने की सुविधा
- हार्डवेयर के अपडेट और जोड़े गए नए हार्डवेयर
- फ़ोल्ड किए जा सकने वाले डिवाइसों की जांच करने की सुविधा
Python और पैकेज के वर्शन
Android 13 में, Python के इन वर्शन और लाइब्रेरी के अलावा, Android 12 में काम करने वाले Python के वर्शन और लाइब्रेरी भी काम करती हैं:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
कॉन्फ़िगरेशन फ़ाइल में जोड़े गए पैरामीटर
test_auto_flash.py टेस्ट के लिए, लाइटिंग कंट्रोल की सुविधा जोड़ी गई है. इसलिए, config.yml फ़ाइल में कंट्रोलर और लाइटिंग चैनल के लिए दो अतिरिक्त पैरामीटर जोड़ने होंगे. यह पता लगाने के लिए कि टेस्ट किया जा रहा डिवाइस (डीयूटी) फ़ोल्ड किया जा सकता है या नहीं, 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 टेस्ट में, चैनल सैचुरेशन की जांच, Android के पिछले वर्शन के मुताबिक की जाती है. इसका मतलब है कि चैनल सैचुरेशन की जांच के लिए, ज़रूरी पहला एपीआई लेवल Android 10 है.
scene1_2/test_yuv_plus_raw.py
test_yuv_plus_raw टेस्ट, 16:9 या 4:3 सेंसर के अलावा दूसरे सेंसर के साथ भी काम करता है. इससे RAW फ़ॉर्मैट के लिए बेहतर सहायता मिलती है. अगर टेस्ट में, सेंसर RAW फ़ॉर्मैट और YUV कैप्चर फ़ॉर्मैट के बीच कोई सामान्य फ़ॉर्मैट नहीं मिलता है, तो टेस्ट, RAW कैप्चर की तुलना सबसे बड़े YUV कैप्चर से करता है. भले ही, दोनों के आसपेक्ट रेशियो अलग-अलग हों.
scene2_a/test_faces.py
test_faces को बदलकर test_num_faces कर दिया गया है.
scene2_a/test_num_faces.py
test_num_faces टेस्ट, सेंसर क्रॉप को मैनेज करता है. साथ ही, क्रॉप की गई यूडब्ल्यू कैमरा कैप्चर पर, चेहरे के रेक्टैंगल को सही जगह पर रखता है.
scene3/test_lens_position.py
test_lens_position टेस्ट को Android 13 में बंद कर दिया गया है.
scene6/test_zoom.py
test_zoom टेस्ट को बदलकर, तीन और चार कैमरा सिस्टम की आसानी से जांच करने की सुविधा जोड़ी गई है. ज़ूम में 10x रेशियो की रेंज में, अगर कैमरा सही तरीके से काम करता है, तो टेस्ट सही तरीके से पूरा हो जाता है. इससे, ज़ूम की जांच एक ही चार्ट की दूरी पर की जा सकती है.
scene_change/test_scene_change.py
test_scene_change टेस्ट को Android 13 में बंद कर दिया गया है.
टैबलेट पर किए जाने वाले नए टेस्ट
Android 13 में, टैबलेट पर किए जाने वाले दो नए टेस्ट शामिल हैं. Android 13 के साथ लॉन्च होने वाले डिवाइसों के लिए, ये दोनों टेस्ट ज़रूरी हैं. हालांकि, Android 13 में अपग्रेड होने वाले डिवाइसों के लिए, ये टेस्ट नहीं किए जाते.
| सीन | टेस्ट का नाम | पहला एपीआई लेवल | ब्यौरा |
|---|---|---|---|
| 2_a | test_auto_flash | 33 | इससे पुष्टि होती है कि अंधेरे सीन में, फ़्लैश अपने-आप चालू होता है. |
| 2_b | 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 पर सेट किया जाता है और डुअल सर्फ़ेस अनुरोध कैप्चर किया जाता है. इसके बाद, दोनों इमेज को आरजीबी ऐरे में बदला जाता है और दोनों इमेज के बीच, 3D रूट मीन स्क्वेयर (आरएमएस) अंतर का हिसाब लगाया जाता है. अंतर की टॉलरेंस वैल्यू 1% पर सेट की जाती है.
वीडियो की जांच करने की सुविधा
Camera ITS में, Android 13 में वीडियो की जांच करने की सुविधा जोड़ी गई है.
Android 13 में ये टेस्ट जोड़े गए हैं:
| सीन | टेस्ट का नाम | पहला एपीआई लेवल | ब्यौरा |
|---|---|---|---|
| 4 | test_preview_stabilization_fov | 33 | इससे पुष्टि होती है कि स्टेबलाइज़ेशन की सुविधा चालू होने पर, वीडियो की झलक में ज़्यादा क्रॉपिंग नहीं होती. |
| 4 | test_video_aspect_ratio_and_crop | 33 | इससे वीडियो फ़ॉर्मैट के FoV, आसपेक्ट रेशियो, और क्रॉपिंग की पुष्टि होती है. |
| sensor_fusion | test_preview_stabilition | 33 | इससे पुष्टि होती है कि झलक में स्टेबलाइज़ेशन की सुविधा काम करती है. |
| sensor_fusion | test_video_stabilition | 33 | इससे पुष्टि होती है कि वीडियो में स्टेबलाइज़ेशन की सुविधा काम करती है. |
scene4/test_preview_stabilization_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 तरीका जोड़ा गया है. मौजूदा टेस्ट के साथ सामान्य कोड
शेयर करने के लिए, Android 13 में दो नए
यूटिलिटी फ़ंक्शन भी शामिल हैं: image_fov_utils और video_processing_utils.
तरीका
टेस्ट में, RAW फ़ॉर्मैट या सबसे ज़्यादा रिज़ॉल्यूशन वाले JPEG फ़ॉर्मैट में इमेज का रेफ़रंस कैप्चर किया जाता है. अगर RAW फ़ॉर्मैट काम नहीं करता है, तो JPEG फ़ॉर्मैट का इस्तेमाल किया जाता है. इमेज के रेफ़रंस से, सर्कल का साइज़ और जगह तय की जाती है. इसके बाद, काम करने वाली सभी वीडियो क्वालिटी में छोटे वीडियो लिए जाते हैं. हर वीडियो क्वालिटी से, फ़ाइनल रेफ़रंस फ़्रेम निकाला जाता है. रेफ़रंस फ़्रेम से, हर वीडियो क्वालिटी के लिए, फ़ील्ड ऑफ़ व्यू (FoV), सेंटरिंग (क्रॉप), और आसपेक्ट रेशियो का हिसाब लगाया जाता है.
FoV का हिसाब लगाने के लिए, टेस्ट में वीडियो फ़्रेम के सर्कल के साइज़ की तुलना, रेफ़रंस इमेज और वीडियो फ़ॉर्मैट के साइज़ से हिसाब लगाए गए सर्कल के साइज़ से की जाती है. क्रॉप की जांच के लिए, टेस्ट में वीडियो फ़्रेम की सेंटरिंग की तुलना, रेफ़रंस इमेज की सेंटरिंग से की जाती है. आसपेक्ट रेशियो की जांच के लिए, टेस्ट में सीन का इस्तेमाल किया जाता है. यह सीन, सफ़ेद बैकग्राउंड पर एक बड़ा काला सर्कल होता है. टेस्ट में सर्कल का आसपेक्ट रेशियो तय किया जाता है और यह पक्का किया जाता है कि फ़्रेम में कोई गड़बड़ी न हो.
sensor_fusion/test_preview_stabilization.py
Android 13 में, test_preview_stabilization टेस्ट जोड़ा गया है. इसमें, 1920x1080 तक की सभी काम करने वाली झलक क्वालिटी की जांच की जाती है. टेस्ट में,
सेंसर फ़्यूज़न टेस्ट रिग का इस्तेमाल किया जाता है.
इसके लिए, सेंसर फ़्यूज़न का नया कंट्रोलर (रिविज़न 2) या
Arduino कंट्रोलर के पुराने वर्शन के फ़र्मवेयर का अपग्रेड ज़रूरी है. नए कंट्रोलर के बारे में ज़्यादा जानने के लिए,
हार्डवेयर के अपडेट और जोड़े गए नए हार्डवेयर देखें.
तरीका
फ़ोन को धीरे-धीरे करीब 15 डिग्री के ऐंगल पर घुमाया जाता है. इस दौरान, झलक में स्टेबलाइज़ेशन की सुविधा चालू होती है. इसके बाद, इमेज के रोटेशन की तुलना, जायरोस्कोप के रोटेशन से की जाती है.
sensor_fusion/test_video_stabilization.py
Android 13 में, test_video_stabilization टेस्ट जोड़ा गया है. इसमें, 1920x1080 तक की काम करने वाली वीडियो क्वालिटी की जांच की जाती है. इसमें, QCIF लो रिज़ॉल्यूशन वाली वीडियो क्वालिटी शामिल नहीं है. टेस्ट में, सेंसर फ़्यूज़न टेस्ट रिग का इस्तेमाल किया जाता है. इसके लिए, सेंसर फ़्यूज़न का नया कंट्रोलर (रिविज़न 2) या Arduino कंट्रोलर के पुराने वर्शन के फ़र्मवेयर का अपग्रेड ज़रूरी है. नए कंट्रोलर के बारे में ज़्यादा जानने के लिए,
हार्डवेयर के अपडेट और जोड़े गए नए हार्डवेयर देखें.
तरीका
टेस्ट रिग, फ़ोन को धीरे-धीरे करीब 15 डिग्री के ऐंगल पर घुमाता है. इस दौरान, झलक में स्टेबलाइज़ेशन की सुविधा चालू होती है. इसके बाद, इमेज के रोटेशन की तुलना, जायरोस्कोप के रोटेशन से की जाती है.
हार्डवेयर के अपडेट और जोड़े गए नए हार्डवेयर
Android 13 में, Arduino पर आधारित सेंसर फ़्यूज़न कंट्रोलर (रिविज़न 2) को अपग्रेड किया गया है. इस अपग्रेड में, हार्डवेयर और फ़र्मवेयर, दोनों में बदलाव किए गए हैं. अपग्रेड के बाद, कंट्रोलर, रोटेशन की स्पीड और लाइटिंग कंट्रोल सेट कर सकता है. अपग्रेड में एक नई शील्ड भी शामिल है. यह शील्ड, पहली इमेज में दिखाई गई है. इसमें रोटेशन के तीन चैनल और लाइटिंग कंट्रोल के तीन चैनल दिए गए हैं.
पहली इमेज. रोटेशन और लाइटिंग कंट्रोल के साथ Arduino शील्ड rev2.0
इसके अलावा, Android 13 के लिए, मौजूदा कंट्रोलर के फ़र्मवेयर को अपडेट करना होगा, ताकि रोटेशन की स्पीड को कंट्रोल किया जा सके. इस फ़र्मवेयर को यहां से डाउनलोड किया जा सकता है:
नए कंट्रोलर के बारे में ज़्यादा जानने के लिए, Android 13 सेंसर फ़्यूज़न कंट्रोलर देखें.
फ़ोल्ड किए जा सकने वाले डिवाइसों की जांच करने की सुविधा
Android 13 में, फ़ोल्ड किए जा सकने वाले डिवाइसों की जांच करने की सुविधा जोड़ी गई है. फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, मल्टी-कैमरा एपीआई की सुविधा चालू करने के लिए, जांच के दौरान फ़ोन की स्थिति
(Folded या Unfolded) की जानकारी ज़रूरी होती है.
फ़ोल्ड किए जा सकने वाले फ़ोन के अलावा, सभी डीयूटी के लिए, फ़ोन से जुड़ी जानकारी पाने की सुविधा चालू करने के लिए, डीयूटी को होस्ट से कनेक्ट करने के बाद, यह एडीबी निर्देश चलाएं.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier