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
टेस्ट, 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
टेस्ट, सेंसर से काटे गए हिस्से को मैनेज करता है और काटे गए यूडब्ल्यू कैमरे कैप्चर पर, चेहरे के आयताकार हिस्से को सही तरीके से दिखाता है.
scene3/test_lens_position.py
Android 13 में test_lens_position
टेस्ट का इस्तेमाल नहीं किया जा सकता.
scene6/test_zoom.py
test_zoom
टेस्ट को फिर से तैयार किया गया है, ताकि तीन और चार कैमरे वाले सिस्टम की आसानी से जांच की जा सके. अगर कैमरे की जांच, ज़ूम में 10 गुना से ज़्यादा रेशियो की रेंज में सही तरीके से होती है, तो जांच सही तरीके से पूरी हो जाती है. इससे, चार्ट की एक ही दूरी पर ज़ूम टेस्टिंग की जा सकती है.
scene_change/test_scene_change.py
Android 13 में test_scene_change
टेस्ट का इस्तेमाल नहीं किया जा सकता.
टैबलेट पर किए जाने वाले नए टेस्ट
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
: अगर फ़्लैश उपलब्ध नहीं है, तो जांच को छोड़ देता है.
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 | वीडियो फ़ॉर्मैट के फ़ील्ड ऑफ़ व्यू (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
टेस्ट जोड़ा गया है. यह टेस्ट, झलक के लिए इस्तेमाल किए जा सकने वाले साइज़ की जांच करता है, ताकि यह पक्का किया जा सके कि फ़ील्ड ऑफ़ व्यू को गलत तरीके से काटा न गया हो.
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 सेंसर फ़्यूज़न कंट्रोलर को अपग्रेड किया गया है. इस अपग्रेड में, हार्डवेयर और फ़र्मवेयर, दोनों में बदलाव किए जाते हैं. इस अपग्रेड की मदद से, कंट्रोलर को रोटेशन की स्पीड और लाइटनिंग कंट्रोल सेट करने की अनुमति मिलती है. अपग्रेड में एक नया शील्ड भी शामिल है (जैसा कि पहली इमेज में दिखाया गया है). इसमें रोटेशन के तीन चैनल और लाइटिंग कंट्रोल के तीन चैनल होते हैं.
पहली इमेज. रोटेशन और लाइटिंग कंट्रोल के साथ Arduino शील्ड rev2.0
इसके अलावा, 13 के लिए, मौजूदा कंट्रोलर का फ़र्मवेयर अपडेट करना होगा, ताकि रोटेशन की स्पीड कंट्रोल की जा सके. इस फ़र्मवेयर को यहां से डाउनलोड किया जा सकता है:
नए कंट्रोलर के बारे में ज़्यादा जानकारी के लिए, Android 13 सेंसर फ़्यूज़न कंट्रोलर देखें.
फ़ोल्ड किए जा सकने वाले डिवाइसों की टेस्टिंग से जुड़ी सहायता
Android 13 में, फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए टेस्टिंग की सुविधा शामिल है. फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, मल्टी-कैमरा एपीआई को चालू करने के लिए, जांच के दौरान फ़ोन की स्थिति (Folded
या Unfolded
) ज़रूरी है.
फ़ोल्ड किए जा सकने वाले और न किए जा सकने वाले सभी डीयूटी के लिए, फ़ोन की स्थिति की जानकारी पाने की सुविधा चालू करने के लिए, डीयूटी को होस्ट से कनेक्ट करने के बाद, यह adb कमांड चलाएं.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier