Android 13 की रिलीज़ में कैमरा आईटी से जुड़े कई बदलाव शामिल हैं. 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
RAW के लिए बेहतर सहायता देने के लिए, test_yuv_plus_raw
टेस्ट में ऐसे सेंसर हैंडल किए जाते हैं जो 16:9 या 4:3 के अनुपात में नहीं होते. अगर जांच में सेंसर के RAW फ़ॉर्मैट और YUV कैप्चर फ़ॉर्मैट के बीच कोई सामान्य फ़ॉर्मैट नहीं मिलता है, तो जांच में RAW कैप्चर की तुलना सबसे बड़े YUV कैप्चर से की जाती है. भले ही, आसपेक्ट रेशियो अलग-अलग हों.
scene2_a/test_faces.py
test_faces
को test_num_faces
में रीफ़ैक्टर किया गया है.
सीन2_a/test_num_faces.py
test_num_faces
टेस्ट, सेंसर से काटे गए हिस्से को मैनेज करता है और काटे गए यूडब्ल्यू कैमरे कैप्चर पर, चेहरे के आयताकार हिस्से को सही तरीके से दिखाता है.
scene3/test_lens_position.py
Android 13 में test_lens_position
टेस्ट की सुविधा बंद कर दी गई है.
सीन6/test_zoom.py
test_zoom
टेस्ट को फिर से तैयार किया गया है, ताकि तीन और चार कैमरे वाले सिस्टम की आसानी से जांच की जा सके. अगर कैमरे की जांच, ज़ूम में 10 गुना से ज़्यादा रेशियो की रेंज में सही तरीके से होती है, तो जांच सही तरीके से पूरी हो जाती है. इससे, चार्ट की एक ही दूरी पर ज़ूम टेस्टिंग की जा सकती है.
scene_change/test_scene_change.py
Android 13 में test_scene_change
टेस्ट की सुविधा बंद कर दी गई है.
टैबलेट पर किए जाने वाले नए टेस्ट
Android 13 में, टैबलेट पर दो नए टेस्ट शामिल किए गए हैं. Android 13 के साथ लॉन्च होने वाले डिवाइसों के लिए, दोनों टेस्ट ज़रूरी हैं. हालांकि, Android 13 पर अपग्रेड करने वाले डिवाइसों के लिए, ये टेस्ट नहीं किए जाते.
सीन | टेस्ट का नाम | पहला एपीआई लेवल | ब्यौरा |
---|---|---|---|
2_ए | test_auto_flash | 33 | पुष्टि करता है कि गहरे सीन में ऑटो फ़्लैश ट्रिगर होता है. |
2_b | test_yuv_jpg_capture_sameness | 33 | यह पुष्टि करता है कि YUV और JPEG फ़ॉर्मैट में कैप्चर किए गए फ़ोटो, बिट-वाइज़ एक जैसे हैं. |
सीन2_a/test_auto_flash.py
Android 13 में test_auto_flash
टेस्ट जोड़ा गया है.
पैरामीटर
flash
: फ़्लैश उपलब्ध न होने पर, जांच नहीं की जाती.
Method
यह टेस्ट, अपने-आप फ़्लैश होने की सुविधा के लिए कैप्चर रिक्वेस्ट को कॉन्फ़िगर करता है. साथ ही, ऐसा सीन दिखाता है जिसमें फ़्लैश इवेंट की ज़रूरत होती है. ऑटो-एक्सपोज़र एल्गोरिदम के लिए
गहरे रंग वाला सीन दिखाने के लिए टेस्ट रिग और टैबलेट की लाइटिंग बंद कर दी जाती है. यह जांच, ऑटो-फ़्लैश की सुविधा चालू करके 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 पर सेट करता है.
Method
इस टेस्ट में, सबसे बड़े सामान्य YUV और JPEG फ़ॉर्मैट का इस्तेमाल करके दो इमेज कैप्चर की जाती हैं. इन इमेज का आसपेक्ट रेशियो, सबसे बड़े JPEG फ़ॉर्मैट के आसपेक्ट रेशियो जैसा होता है. साथ ही, इनका रिज़ॉल्यूशन 1920x1440 से ज़्यादा नहीं होता. यह टेस्ट, jpeg.quality
को 100 पर सेट करता है और ड्यूअल प्लैटफ़ॉर्म के लिए अनुरोध कैप्चर करता है. इसके बाद, यह दोनों इमेज को RGB ऐरे में बदल देता है और दोनों इमेज के बीच 3D रूट माध्य स्क्वेयर (RMS) अंतर का हिसाब लगाता है. अंतर सहनशीलता
1% पर सेट है.
वीडियो की जांच करना
Camera ITS, Android 13 में वीडियो की जांच करने की सुविधा जोड़ता है.
Android 13 में ये टेस्ट जोड़े गए हैं:
सीन | टेस्ट का नाम | पहला एपीआई लेवल | ब्यौरा |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | यह पक्का करना कि स्टेबलाइज़ेशन की सुविधा चालू होने पर, वीडियो की झलक का ज़्यादा हिस्सा न काटा गया हो. |
4 | test_video_aspect_ratio_and_crop | 33 | यह विकल्प वीडियो फ़ॉर्मैट के एफ़ओवी, आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात), और काटने की सुविधा के इस्तेमाल की पुष्टि करता है. |
sensor_fusion | test_preview_stabilition | 33 | यह पुष्टि करता है कि झलक को स्थिर करने की सुविधा काम कर रही है. |
sensor_fusion | test_video_stabilition | 33 | वीडियो स्टेबलाइज़ेशन की सुविधा के काम करने की पुष्टि करता है. |
scene4/test_preview_stabilization_fov.py
Android 13 में test_preview_stabilization_fov
टेस्ट जोड़ा गया है. यह टेस्ट, झलक के लिए इस्तेमाल किए जा सकने वाले साइज़ की जांच करता है, ताकि यह पक्का किया जा सके कि फ़ील्ड ऑफ़ व्यू को गलत तरीके से काटा न गया हो.
Method
इस जांच में दो वीडियो कैप्चर किए जाते हैं. पहला वीडियो, झलक को स्थिर करने की सुविधा चालू करके और दूसरा वीडियो, इस सुविधा को बंद करके. हर वीडियो से एक फ़्रेम चुना जाता है और उसका विश्लेषण करके यह पक्का किया जाता है कि दोनों वीडियो में फ़ील्ड ऑफ़ व्यू में हुए बदलाव, तय की गई शर्तों के मुताबिक हैं या नहीं.
खास तौर पर, यह टेस्ट झलक को स्थिर करने की सुविधा के साथ और उसके बिना, इन पैरामीटर की जांच करता है:
- सर्कल का गोल आकार एक जैसा रहता है.
- सर्कल का केंद्र स्थिर रहता है.
- सर्कल का साइज़ 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
method जोड़ा गया है. मौजूदा टेस्ट के साथ सामान्य कोड शेयर करने के लिए, Android 13 में दो नए यूटिलिटी फ़ंक्शन, image_fov_utils
और video_processing_utils
भी शामिल हैं.
Method
यह जांच, RAW फ़ॉर्मैट में रेफ़रंस इमेज कैप्चर करती है. अगर RAW फ़ॉर्मैट काम नहीं करता है, तो यह सबसे ज़्यादा रिज़ॉल्यूशन वाले JPEG फ़ॉर्मैट में रेफ़रंस इमेज कैप्चर करती है. रेफ़रंस इमेज से, सर्कल का साइज़ और जगह तय की जाती है. इसके बाद, वीडियो की सभी उपलब्ध क्वालिटी में शॉर्ट वीडियो बनाए जाते हैं. फ़ाइनल रेफ़रंस फ़्रेम को हर वीडियो क्वालिटी से निकाला जाता है. हर वीडियो क्वालिटी के लिए, रेफ़रंस फ़्रेम से फ़ील्ड-ऑफ़-व्यू (एफ़ओवी), सेंटरिंग (क्रोप), और आसपेक्ट रेशियो का हिसाब लगाया जाता है.
फ़ील्ड ऑफ़ व्यू का हिसाब लगाने के लिए, जांच में वीडियो फ़्रेम सर्कल के साइज़ की तुलना, रेफ़रंस इमेज और वीडियो फ़ॉर्मैट के साइज़ से कैलकुलेट किए गए सर्कल के साइज़ से की जाती है. काट-छांट की जांच के लिए, टेस्ट में वीडियो फ़्रेम के बीच में मौजूद ऑब्जेक्ट की तुलना, रेफ़रंस इमेज के बीच में मौजूद ऑब्जेक्ट से की जाती है. आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) की जांच करने के लिए, सीन का इस्तेमाल करके, सर्कल का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) तय किया जाता है. इस सीन में सफ़ेद बैकग्राउंड पर एक बड़ा काला गोला होता है. इस जांच से यह पुष्टि की जाती है कि फ़्रेम खराब तो नहीं है.
sensor_fusion/test_preview_stabilization.py
Android 13 में, test_preview_stabilization
टेस्ट को जोड़ा गया है. इससे 1920x1080 तक की झलक वाली सभी क्वालिटी की जांच की जा सकती है. इस टेस्ट में, सेंसर फ़्यूज़न टेस्ट रिग का इस्तेमाल किया जाता है. इसके लिए, रिविज़न 2 वाले सेंसर फ़्यूज़न कंट्रोलर या Arduino कंट्रोलर के पुराने वर्शन के फ़र्मवेयर को अपग्रेड करना ज़रूरी है. नए कंट्रोलर के बारे में ज़्यादा जानकारी के लिए,
हार्डवेयर से जुड़े अपडेट और नए फ़ीचर लेख पढ़ें.
Method
फ़ोन को धीरे-धीरे करीब 15 डिग्री के कोण पर घुमाया गया है. साथ ही, झटके को कम करने की सुविधा चालू है. इसके बाद, इमेज के घूमने की गति की तुलना, घिरौटे के घूमने की गति से की जाती है.
sensor_fusion/test_video_stabilization.py
Android 13 में, test_video_stabilization
टेस्ट को जोड़ा गया है. इससे 1920x1080 तक की वीडियो क्वालिटी की जांच की जा सकती है. QCIF लो रिज़ॉल्यूशन वाली वीडियो
क्वालिटी को बाहर रखा जाता है. इस जांच में सेंसर फ़्यूज़न टेस्ट रिग का इस्तेमाल किया जाता है. साथ ही, इसके लिए नए रिविज़न 2 सेंसर फ़्यूज़न कंट्रोलर या Arduino कंट्रोलर के पुराने वर्शन के फ़र्मवेयर को अपग्रेड की ज़रूरत होती है. नए कंट्रोलर के बारे में ज़्यादा जानकारी के लिए,
हार्डवेयर से जुड़े अपडेट और नए फ़ीचर लेख पढ़ें.
Method
टेस्ट रिग, फ़ोन को धीरे-धीरे करीब 15 डिग्री के कोण पर घुमाता है. इस दौरान, फ़ोन में झटके कम करने की सुविधा चालू होती है. इसके बाद, इमेज के घूमने की दिशा की तुलना, घिरौटे के घूमने की दिशा से की जाती है.
हार्डवेयर से जुड़े अपडेट और नए हार्डवेयर
Android 13 में, Arduino पर आधारित रिविज़न 2 सेंसर फ़्यूज़न कंट्रोलर को अपग्रेड किया गया है. इस अपग्रेड में, हार्डवेयर और फ़र्मवेयर, दोनों में बदलाव किए जाते हैं. अपग्रेड से कंट्रोलर को घुमाने की स्पीड और लाइटनिंग कंट्रोल सेट करने की सुविधा मिलती है. अपग्रेड में एक नया शील्ड भी शामिल है (जैसा कि फ़िगर 1 में दिखाया गया है). इसमें रोटेशन के तीन चैनल और लाइटिंग कंट्रोल के तीन चैनल होते हैं.
पहली इमेज. रोटेशन और लाइटिंग कंट्रोल के साथ Arduino शील्ड rev2.0
इसके अलावा, 13 के लिए, मौजूदा कंट्रोलर का फ़र्मवेयर अपडेट करना होगा, ताकि रोटेशन की स्पीड कंट्रोल की जा सके. इस फ़र्मवेयर को यहां से डाउनलोड किया जा सकता है:
नए कंट्रोलर के बारे में ज़्यादा जानकारी के लिए, Android 13 सेंसर फ़्यूज़न कंट्रोलर देखें.
फ़ोल्ड किए जा सकने वाले डिवाइसों की टेस्टिंग से जुड़ी सहायता
Android 13 में, फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए टेस्टिंग की सुविधा शामिल है. फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, मल्टी-कैमरा एपीआई को चालू करने के लिए, जांच के दौरान फ़ोन की स्थिति (Folded
या Unfolded
) ज़रूरी है.
फ़ोल्ड किए जा सकने वाले और न किए जा सकने वाले सभी डीयूटी के लिए, फ़ोन की स्थिति की जानकारी पाने की सुविधा चालू करने के लिए, डीयूटी को होस्ट से कनेक्ट करने के बाद, यह adb कमांड चलाएं.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier