Android 13 के Camera इमेज टेस्ट सुइट की रिलीज़ की जानकारी

Android 13 की रिलीज़ में, Camera ITS में कई बदलाव किए गए हैं. Android 13 में, कई तरह के बदलाव किए गए हैं. जैसे, Python और पैकेज के अपडेट किए गए वर्शन और टेस्ट हार्डवेयर के अपडेट. इसके अलावा, इसमें वीडियो टेस्टिंग की सुविधा भी मिलती है.

इस पेज पर, Android 13 के लिए Camera ITS में हुए बदलावों के बारे में खास जानकारी दी गई है. बदलावों को सात मुख्य कैटगरी में बांटा गया है:

Python और पैकेज के वर्शन

Android 13 में, Android 12 में काम करने वाले Python वर्शन और लाइब्रेरी के अलावा, ये Python वर्शन भी काम करते हैं:

कॉन्फ़िगरेशन फ़ाइल में जोड़े गए आइटम

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 फ़ॉर्मैट को बेहतर तरीके से सपोर्ट किया जा सके. अगर टेस्ट को सेंसर के रॉ फ़ॉर्मैट और YUV कैप्चर फ़ॉर्मैट के बीच कोई सामान्य फ़ॉर्मैट नहीं मिलता है, तो टेस्ट, रॉ कैप्चर की तुलना सबसे बड़े 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

test_scene_change टेस्ट को Android 13 में बंद कर दिया गया है.

टैबलेट पर आधारित नई परीक्षाएं

Android 13 में, टैबलेट के लिए दो नए टेस्ट शामिल हैं. Android 13 के साथ लॉन्च किए जा रहे डिवाइसों के लिए, दोनों टेस्ट ज़रूरी हैं. हालांकि, Android 13 पर अपग्रेड किए जा रहे डिवाइसों के लिए, इन्हें स्किप किया जा सकता है.

दृश्य टेस्ट का नाम पहला एपीआई लेवल Description
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 पर सेट करती है और डुअल सर्फ़ेस अनुरोध को कैप्चर करती है. इसके बाद, यह दोनों इमेज को RGB ऐरे में बदलता है और दोनों इमेज के बीच 3D रूट मीन स्क्वेयर (आरएमएस) अंतर का हिसाब लगाता है. अंतर की स्वीकार्य सीमा 1% पर सेट है.

वीडियो को टेस्ट करने की सुविधा

Camera ITS में, Android 13 में वीडियो की टेस्टिंग के लिए सहायता जोड़ी गई है.

Android 13 में ये टेस्ट जोड़े गए हैं:

दृश्य टेस्ट का नाम पहला एपीआई लेवल Description
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 पर आधारित revision 2 sensor fusion controller को अपग्रेड किया गया है. इस अपग्रेड में, हार्डवेयर और फ़र्मवेयर, दोनों में बदलाव शामिल हैं. अपग्रेड करने के बाद, कंट्रोलर को रोटेशन की स्पीड और लाइटनिंग कंट्रोल सेट करने की अनुमति मिलती है. अपग्रेड में एक नई शील्ड भी शामिल है, जिसे पहले फ़िगर में दिखाया गया है. इसमें रोटेशन के तीन चैनल और लाइटिंग कंट्रोल के तीन चैनल दिए गए हैं.

Arduino shield rev2.0

पहली इमेज. रोटेशन और लाइटिंग कंट्रोल के साथ Arduino शील्ड rev2.0.

इसके अलावा, Android 13 के लिए, रोटेशन की स्पीड कंट्रोल करने की सुविधा चालू करने के लिए, मौजूदा कंट्रोलर के फ़र्मवेयर को अपडेट करना होगा. इस फ़र्मवेयर को Android 13 Arduino Micro-code VarSpeedServo_and_lighting_control.ino से डाउनलोड किया जा सकता है.

नए कंट्रोलर के बारे में ज़्यादा जानने के लिए, Android 13 सेंसर फ़्यूज़न कंट्रोलर लेख पढ़ें.

फ़ोल्ड किए जा सकने वाले डिवाइसों पर टेस्टिंग से जुड़ी सहायता

Android 13 में, फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए टेस्टिंग की सुविधा शामिल है. फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, मल्टी-कैमरा एपीआई चालू करने के लिए, टेस्टिंग के दौरान फ़ोन से जुड़ी जानकारी (Folded या Unfolded) ज़रूरी है. सभी DUT के लिए, फ़ोन से जुड़ी जानकारी की पोलिंग की सुविधा चालू करने के लिए, यह adb कमांड चलाएँ. इसमें फ़ोल्ड नहीं किए जा सकने वाले फ़ोन भी शामिल हैं. यह कमांड तब चलाएँ, जब DUT होस्ट से कनेक्ट हो जाए:

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier