Android 12 में, Camera ITS से जुड़े कई बदलाव किए गए हैं. इस पेज पर, इन बदलावों के बारे में बताया गया है. इन्हें चार मुख्य कैटगरी में बांटा गया है:
Python 3 में रिफ़ैक्टर करना
जनवरी 2020 में Python 2.7 को बंद कर दिया गया था. इसलिए, Camera ITS के पूरे कोडबेस को Python 3 में रिफ़ैक्टर किया गया है. Android 12 में, Python के ये वर्शन और लाइब्रेरी ज़रूरी हैं:
- Python 3.7.9 या Python 3.7.10
- OpenCV 3.4.2
- Numpy 1.19.2
- Matplotlib 3.3.2
- Scipy 1.5.2
- pySerial 3.5
- Pillow 8.1.0
- PyYAML 5.3.1
मुख्य टेस्ट लॉन्चर, tools/run_all_tests.py, Android 11 या उससे पहले के वर्शन जैसा ही है. इसे Python 3 में रिफ़ैक्टर किया गया है.
सभी अलग-अलग टेस्ट को रिफ़ैक्टर किया गया है. साथ ही, इनमें tests/its_base_test.py में तय की गई नई टेस्ट सेटअप क्लास का इस्तेमाल किया गया है. ज़्यादातर टेस्ट के नाम और उनकी सुविधाएं पहले जैसी ही हैं.
Android 12 में, सभी अलग-अलग टेस्ट अब अपने सीन लोड करते हैं. हर टेस्ट के लिए सीन लोड करने से, टेस्ट में लगने वाला कुल समय बढ़ जाता है. हालांकि, इससे अलग-अलग टेस्ट को डीबग किया जा सकता है.
अलग-अलग टेस्ट में किए गए बदलावों के बारे में ज़्यादा जानने के लिए, टेस्ट में किए गए बदलाव देखें.
Python के इन मॉड्यूल को नाम बदलकर रिफ़ैक्टर किया गया है:
pymodules/its/caps.py→utils/camera_properties_utils.pypymodules/its/cv2image.py→utils/opencv_processing_utils.pypymodules/its/device.py→utils/its_session_utils.pypymodules/its/error.py→utils/error_util.pypymodules/its/image.py→utils/image_processing_utils.pypymodules/its/objects.py→utils/capture_request_utils.pypymodules/its/target.py→utils/target_exposure_utils.pytools/hw.py→utils/sensor_fusion_utils.py
Mobly टेस्ट फ़्रेमवर्क को अपनाना
Mobly, Python पर आधारित एक टेस्ट फ़्रेमवर्क है. यह ऐसे टेस्ट केस के साथ काम करता है जिनके लिए, कस्टम हार्डवेयर सेटअप वाले कई डिवाइसों की ज़रूरत होती है. Camera ITS, टेस्ट को बेहतर तरीके से कंट्रोल करने और उनकी लॉगिंग करने के लिए, Mobly टेस्ट इन्फ़्रास्ट्रक्चर का इस्तेमाल करता है.
Camera ITS, टेस्ट को बेहतर तरीके से कंट्रोल करने और उनकी लॉगिंग करने के लिए, Mobly टेस्ट इन्फ़्रास्ट्रक्चर का इस्तेमाल करता है. Mobly, Python पर आधारित एक टेस्ट फ़्रेमवर्क है. यह ऐसे टेस्ट केस के साथ काम करता है जिनके लिए, कस्टम हार्डवेयर सेटअप वाले कई डिवाइसों की ज़रूरत होती है. Mobly के बारे में ज़्यादा जानने के लिए, google/mobly देखें.
config.yml फ़ाइलें
Mobly फ़्रेमवर्क की मदद से, its_base_test क्लास में, टेस्ट किए जाने वाले डिवाइस (डीयूटी) और चार्ट टैबलेट सेट अप किया जा सकता है. Mobly टेस्टबेड बनाने के लिए, config.yml (YAML) फ़ाइल का इस्तेमाल किया जाता है. इस कॉन्फ़िगरेशन फ़ाइल में, कई टेस्टबेड कॉन्फ़िगर किए जा सकते हैं. जैसे, टैबलेट और सेंसर फ़्यूज़न टेस्टबेड. हर टेस्टबेड के कंट्रोलर सेक्शन में, टेस्ट रनर के लिए सही Android डिवाइसों की पहचान करने के लिए, device_ids तय किए जा सकते हैं. डिवाइस आईडी के अलावा, टेस्ट क्लास में टैबलेट brightness, chart_distance, debug_mode, camera_id, और scene_id जैसे अन्य पैरामीटर भी पास किए जाते हैं. टेस्ट के सामान्य पैरामीटर की वैल्यू ये हैं:
brightness: 192 (all tablets except Pixel C)
chart_distance: 31.0 (rev1/rev1a box for FoV < 90° cameras)
chart_distance: 22.0 (rev2 test rig for FoV > 90° cameras)
टैबलेट पर आधारित टेस्टिंग
टैबलेट पर आधारित टेस्टिंग के लिए, टेस्टबेड के नाम में TABLET कीवर्ड होना ज़रूरी है. शुरू होने के दौरान, Mobly टेस्ट रनर, TestParams को शुरू करता है और उन्हें अलग-अलग टेस्ट में पास करता है.
टैबलेट पर आधारित रन के लिए, यहां 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"
chart_loc_arg: ""
camera: 0
scene: <scene-name> # if <scene-name> runs all scenes
tools/run_all_tests.py का इस्तेमाल करके, टेस्टबेड को शुरू किया जा सकता है. अगर कमांड लाइन की कोई वैल्यू मौजूद नहीं है, तो टेस्ट, config.yml फ़ाइल की वैल्यू के साथ रन होते हैं.
इसके अलावा, Android 11 या उससे पहले के वर्शन जैसे कमांड का इस्तेमाल करके, कमांड लाइन पर camera और scene कॉन्फ़िगरेशन फ़ाइल की वैल्यू को बदला जा सकता है.
उदाहरण के लिए:
python tools/run_all_tests.py
python tools/run_all_tests.py camera=1
python tools/run_all_tests.py scenes=2,1,0
python tools/run_all_tests.py camera=1 scenes=2,1,0
सेंसर फ़्यूज़न टेस्टिंग
सेंसर फ़्यूज़न टेस्टिंग के लिए, टेस्टबेड के नाम में कीवर्ड होना ज़रूरी है.SENSOR_FUSION टेस्ट किए गए सीन के आधार पर, सही टेस्टबेड तय किया जाता है. Android 12 में, सेंसर फ़्यूज़न के लिए Arduino
और Canakit
, दोनों कंट्रोलर काम करते हैं.
सेंसर फ़्यूज़न रन के लिए, यहां config.yml फ़ाइल का एक सैंपल दिया गया है.
Testbeds
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion/test_sensor_fusion.py
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: arduino # cntl can be arduino or canakit
rotator_ch: 1
camera: 0
सेंसर फ़्यूज़न टेस्ट रिग के साथ सेंसर फ़्यूज़न टेस्ट रन करने के लिए, सेंसर फ़्यूज़न टेस्ट रिग, इसका इस्तेमाल करें:
python tools/run_all_tests.py scenes=sensor_fusion
python tools/run_all_tests.py scenes=sensor_fusion camera=0
एक से ज़्यादा टेस्टबेड
कॉन्फ़िगरेशन फ़ाइल में, एक से ज़्यादा टेस्टबेड शामिल किए जा सकते हैं. सबसे आम कॉम्बिनेशन, टैबलेट टेस्टबेड और सेंसर फ़्यूज़न टेस्टबेड, दोनों का होना है.
यहां टैबलेट और सेंसर फ़्यूज़न, दोनों टेस्टबेड के साथ 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"
chart_loc_arg: ""
camera: 0
scene: <scene-name> # if <scene-name> runs all scenes
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion/test_sensor_fusion.py
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: arduino # cntl can be arduino or canakit
rotator_ch: 1
camera: 0
मैन्युअल टेस्टिंग
Android 12 में, मैन्युअल टेस्टिंग की सुविधा अब भी उपलब्ध है.
हालांकि, टेस्टबेड के नाम में MANUAL कीवर्ड का इस्तेमाल करके, टेस्टबेड को मैन्युअल टेस्टिंग के तौर पर पहचानना ज़रूरी है. इसके अलावा, टेस्टबेड में टैबलेट आईडी शामिल नहीं किया जा सकता.
मैन्युअल टेस्टिंग के लिए, यहां config.yml फ़ाइल का एक सैंपल दिया गया है.
TestBeds:
- Name: TEST_BED_MANUAL
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
debug_mode: "False"
chart_distance: 31.0
camera: 0
scene: scene1
बिना टैबलेट वाले टेस्ट सीन
सीन 0 और सीन 5 की टेस्टिंग, TEST_BED_TABLET_SCENES या TEST_BED_MANUAL की मदद से की जा सकती है. हालांकि, अगर TEST_BED_TABLET_SCENES की मदद से टेस्टिंग की जाती है, तो टैबलेट कनेक्ट होना चाहिए और टैबलेट का सीरियल आईडी मान्य होना चाहिए. भले ही, टैबलेट का इस्तेमाल न किया जा रहा हो. ऐसा इसलिए, क्योंकि टेस्ट क्लास सेटअप, टैबलेट के लिए सीरियल आईडी वैल्यू असाइन करता है.
अलग-अलग टेस्ट रन करना
अलग-अलग टेस्ट सिर्फ़ डीबग करने के लिए रन किए जा सकते हैं, क्योंकि उनके नतीजे
CTS Verifier को नहीं भेजे जाते. camera और scene के लिए, कमांड लाइन पर config.yml फ़ाइलों को बदला नहीं जा सकता. इसलिए, सवाल में मौजूद अलग-अलग टेस्ट के लिए, config.yml फ़ाइल में ये पैरामीटर सही होने चाहिए. इसके अलावा, अगर कॉन्फ़िगरेशन फ़ाइल में एक से ज़्यादा टेस्टबेड हैं, तो आपको --test_bed फ़्लैग के साथ टेस्टबेड तय करना होगा. उदाहरण के लिए:
python tests/scene1_1/test_black_white.py --config config.yml --test_bed TEST_BED_TABLET_SCENES
टेस्ट आर्टफ़ैक्ट
Android 12 में, Camera ITS के टेस्ट आर्टफ़ैक्ट, Android 11 या उससे पहले के वर्शन की तरह ही सेव किए जाते हैं. हालांकि, इनमें ये बदलाव किए गए हैं:
- साफ़ तौर पर समझने के लिए, टेस्ट आर्टफ़ैक्ट
/tmpडायरेक्ट्री में, आठ वर्णों वाली रैंडम स्ट्रिंग से पहलेCameraITS_जोड़ा गया है. - टेस्ट के आउटपुट और गड़बड़ियां,
test_name_stdout.txtऔरtest_name_stderr.txtके बजाय, हर टेस्ट के लिएtest_log.DEBUGमें सेव की जाती हैं. - डीयूटी और टैबलेट के लॉगकैट, हर अलग-अलग टेस्ट से
/tmp/CameraITS_########डायरेक्ट्री में सेव किए जाते हैं. इससे डीबग करना आसान हो जाता है, क्योंकि 3A से जुड़ी समस्याओं को डीबग करने के लिए ज़रूरी सभी जानकारी लॉग की जाती है.
टेस्ट में किए गए बदलाव
Android 12 में, टैबलेट सीन, PDF फ़ाइलों के बजाय PNG फ़ाइलें हैं. PNG फ़ाइलों का इस्तेमाल करने से, ज़्यादा टैबलेट मॉडल पर सीन सही तरीके से दिखते हैं.
scene0/test_jitter.py
test_jitter टेस्ट, Android 12 में, छिपे हुए फ़िज़िकल कैमरों पर रन होता है.
scene1_1/test_black_white.py
Android 12 के लिए, test_black_white में test_black_white और test_channel_saturation, दोनों की सुविधाएं हैं.
यहां दी गई टेबल में, Android 11 में मौजूद दो अलग-अलग टेस्ट के बारे में बताया गया है.
| टेस्ट का नाम | पहला एपीआई लेवल | दावे |
|---|---|---|
| scene1_1/test_black_white.py | सभी | कम एक्सपोज़र, कम गेन वाली आरजीबी वैल्यू ~[0, 0, 0] ज़्यादा एक्सपोज़र, ज़्यादा गेन वाली आरजीबी वैल्यू ~[255, 255, 255] |
| scene1_1/test_channel_saturation.py | 29 | [255, 255, 255] के अंतर पर कम टॉलरेंस, ताकि सफ़ेद इमेज में कलर टिंट न हो. |
यहां दी गई टेबल में, Android 12 में मर्ज किए गए टेस्ट, scene1_1/test_black_white.py के बारे में बताया गया है.
| टेस्ट का नाम | पहला एपीआई लेवल | दावे |
|---|---|---|
| scene1_1/test_black_white.py | सभी | कम एक्सपोज़र, कम गेन वाली आरजीबी वैल्यू ~[0, 0, 0] ज़्यादा एक्सपोज़र, ज़्यादा गेन वाली आरजीबी वैल्यू ~[255, 255, 255] और कम टॉलरेंस, ताकि सफ़ेद इमेज में कलर टिंट न हो. |
scene1_1/test_burst_sameness_manual.py
test_burst_sameness_manual टेस्ट, Android 12 में, छिपे हुए फ़िज़िकल कैमरों पर रन होता है.
scene1_2/test_tonemap_sequence.py
test_tonemap_sequence टेस्ट, Android 12 में, LIMITED कैमरों पर रन होता है.
scene1_2/test_yuv_plus_raw.py
test_yuv_plus_raw टेस्ट, Android 12 में, छिपे हुए फ़िज़िकल कैमरों पर रन होता है.
scene2_a/test_format_combos.py
test_format_combos टेस्ट, Android 12 में, LIMITED कैमरों पर रन होता है.
scene3/test_flip_mirror.py
test_flip_mirror टेस्ट, Android 12 में, LIMITED कैमरों पर रन होता है.
scene4/test_aspect_ratio_and_crop.py
Android 12 में, scene4/test_aspect_ratio_and_crop.py में सर्कल ढूंढने की प्रोसेस को रिफ़ैक्टर किया गया है.
Android के पुराने वर्शन में, साइज़ और रंग के फ़िल्टर की मदद से, पैरंट कंटूर (स्क्वेयर) के अंदर चाइल्ड कंटूर (सर्कल) ढूंढने का तरीका इस्तेमाल किया जाता था. Android 12 में, सभी कंटूर ढूंढने और फिर सबसे ज़्यादा सर्कल जैसे दिखने वाले फ़ीचर ढूंढकर फ़िल्टर करने का तरीका इस्तेमाल किया जाता है. डिसप्ले पर नकली सर्कल को हटाने के लिए, कंटूर का कम से कम एरिया होना ज़रूरी है. साथ ही, सर्कल का कंटूर काले रंग का होना चाहिए.
कंटूर और उन्हें चुनने के मानदंड, इस इमेज में दिखाए गए हैं.
पहली इमेज. कंटूर और उन्हें चुनने के मानदंड का कॉन्सेप्ट दिखाने वाली इमेज
Android 12 का तरीका ज़्यादा आसान है. साथ ही, यह कुछ डिसप्ले टैबलेट में बाउंडिंग बॉक्स क्लिपिंग की समस्या को हल करने में मदद करता है. डीबग करने के लिए, सर्कल के सभी कैंडिडेट लॉग किए जाते हैं.
Android 12 में, क्रॉप टेस्ट, FULL और LEVEL3 डिवाइसों के लिए रन किया जाता है. Android 11 या उससे पहले के वर्शन में, FULL डिवाइसों के लिए क्रॉप टेस्ट के दावे छोड़ दिए जाते हैं.
यहां दी गई टेबल में, test_aspect_ratio_and_crop.py के उन दावों के बारे में बताया गया है जो किसी डिवाइस लेवल और पहले एपीआई लेवल के हिसाब से तय किए जाते हैं.
| डिवाइस लेवल | पहला एपीआई लेवल | दावे |
|---|---|---|
| LIMITED | सभी | आसपेक्ट रेशियो 4:3, 16:9, 2:1 फ़ॉर्मैट के लिए FoV |
| FULL | < 31 | आसपेक्ट रेशियो 4:3, 16:9, 2:1 फ़ॉर्मैट के लिए FoV |
| FULL | ≥ 31 | क्रॉप आसपेक्ट रेशियो 4:3, 16:9, 2:1 फ़ॉर्मैट के लिए FoV |
| LEVEL3 | सभी | क्रॉप आसपेक्ट रेशियो 4:3, 16:9, 2:1 फ़ॉर्मैट के लिए FoV |
scene4/test_multi_camera_alignment.py
scene4/test_multi_camera_alignment.py में, YUV कैप्चर के लिए undo_zoom() तरीके को रिफ़ैक्टर किया गया है. इससे उन सेंसर पर ज़्यादा सटीक तरीके से क्रॉप किया जा सकता है जिनका आसपेक्ट रेशियो, कैप्चर के आसपेक्ट रेशियो से मेल नहीं खाता.
Android 11 Python 2 कोड
zoom_ratio = min(1.0 * yuv_w / cr_w, 1.0 * yuv_h / cr_h)
circle[i]['x'] = cr['left'] + circle[i]['x'] / zoom_ratio
circle[i]['y'] = cr['top'] + circle[i]['y'] / zoom_ratio
circle[i]['r'] = circle[i]['r'] / zoom_ratio
Android 12 Python 3 कोड
yuv_aspect = yuv_w / yuv_h
relative_aspect = yuv_aspect / (cr_w/cr_h)
if relative_aspect > 1:
zoom_ratio = yuv_w / cr_w
yuv_x = 0
yuv_y = (cr_h - cr_w / yuv_aspect) / 2
else:
zoom_ratio = yuv_h / cr_h
yuv_x = (cr_w - cr_h * yuv_aspect) / 2
yuv_y = 0
circle['x'] = cr['left'] + yuv_x + circle['x'] / zoom_ratio
circle['y'] = cr['top'] + yuv_y + circle['y'] / zoom_ratio
circle['r'] = circle['r'] / zoom_ratio
sensor_fusion/test_sensor_fusion.py
Android 12 में, सेंसर फ़्यूज़न टेस्ट के लिए, इमेज में फ़ीचर का पता लगाने का एक तरीका जोड़ा गया है.
Android 12 से पहले के वर्शन में, सबसे अच्छे 240 फ़ीचर ढूंढने के लिए, पूरी इमेज का इस्तेमाल किया जाता है. इसके बाद, रोलिंग शटर इफ़ेक्ट से बचने के लिए, उन्हें बीच के 20% हिस्से पर मास्क किया जाता है. इसमें कम से कम 30 फ़ीचर की ज़रूरत होती है.
अगर इस तरीके से मिले फ़ीचर की संख्या कम है, तो Android 12, फ़ीचर का पता लगाने वाले एरिया को पहले बीच के 20% हिस्से पर मास्क करता है. साथ ही, ज़्यादा से ज़्यादा फ़ीचर की संख्या को, कम से कम फ़ीचर की ज़रूरत के दोगुने तक सीमित करता है.
यहां दी गई इमेज में, Android 11 और Android 12 में फ़ीचर का पता लगाने के तरीके के बीच का अंतर दिखाया गया है. कम से कम फ़ीचर की ज़रूरत की थ्रेशोल्ड बढ़ाने से, खराब क्वालिटी वाले फ़ीचर का पता चलता है. साथ ही, मेज़रमेंट पर भी बुरा असर पड़ता है.
दूसरी इमेज. Android 11 और Android 12 में फ़ीचर का पता लगाने के तरीके के बीच का अंतर
नए टेस्ट
scene0/test_solid_color_test_pattern.py
Android 12 के लिए, एक नया टेस्ट, test_solid_color_test_pattern चालू किया गया है. यह टेस्ट सभी कैमरों के लिए चालू है. इसके बारे में, यहां दी गई टेबल में बताया गया है.
| सीन | टेस्ट का नाम | पहला एपीआई लेवल | ब्यौरा |
|---|---|---|---|
| 0 | test_solid_color_test_pattern | 31 | सॉलिड कलर इमेज आउटपुट और इमेज कलर प्रोग्राम करने की सुविधा की पुष्टि करता है. |
कैमरा प्राइवसी मोड की सुविधा देने के लिए, सॉलिड कलर टेस्ट पैटर्न चालू होने चाहिए.
test_solid_color_test_pattern टेस्ट, चुने गए पैटर्न के हिसाब से तय किए गए रंग के साथ, सॉलिड कलर YUV इमेज आउटपुट की पुष्टि करता है. साथ ही, यह पुष्टि करता है कि इमेज का रंग, तय की गई जानकारी के मुताबिक बदलता है.
पैरामीटर
cameraPrivacyModeSupport: इससे पता चलता है कि कैमरा, प्राइवसी मोड के साथ काम करता है या नहीं.android.sensor.testPatternMode: इससे टेस्ट पैटर्न मोड सेट किया जाता है. इस टेस्ट में,SOLID_COLORका इस्तेमाल किया जाता है.android.sensor.testPatternData: इससे टेस्ट पैटर्न मोड के लिए, R, Gr, Gb, G टेस्ट पैटर्न की वैल्यू सेट की जाती हैं.
सॉलिड कलर टेस्ट पैटर्न के बारे में जानने के लिए, देखें
SENSOR_TEST_PATTERN_MODE_SOLID_COLOR.
तरीका
सेट किए गए पैरामीटर के लिए, YUV फ़्रेम कैप्चर किए जाते हैं और इमेज के कॉन्टेंट की पुष्टि की जाती है. टेस्ट पैटर्न, इमेज सेंसर से सीधे आउटपुट होता है. इसलिए, किसी खास सीन की ज़रूरत नहीं होती. अगर PER_FRAME_CONTROL की सुविधा उपलब्ध है, तो टेस्ट की गई हर सेटिंग के लिए, एक YUV फ़्रेम कैप्चर किया जाता है. अगर PER_FRAME_CONTROL की सुविधा उपलब्ध नहीं है, तो चार फ़्रेम कैप्चर किए जाते हैं. इनमें से सिर्फ़ आखिरी फ़्रेम का विश्लेषण किया जाता है, ताकि LIMITED कैमरों में टेस्ट कवरेज को ज़्यादा से ज़्यादा किया जा सके.
YUV कैप्चर को पूरी तरह से सैचुरेटेड BLACK, WHITE, RED, GREEN, और BLUE टेस्ट पैटर्न पर सेट किया जाता है. टेस्ट पैटर्न की परिभाषा, सेंसर बेयर पैटर्न के हिसाब से होती है. इसलिए, हर रंग के लिए कलर चैनल सेट करने होंगे. जैसा कि यहां दी गई टेबल में दिखाया गया है.
| रंग | testPatternData (RGGB) |
|---|---|
| काला |
(0, 0, 0, 0)
|
| सफ़ेद |
(1, 1, 1, 1)
|
| लाल |
(1, 0, 0, 0)
|
| हरा |
(0, 1, 1, 0)
|
| नीला |
(0, 0, 0, 1)
|
दावों की टेबल
यहां दी गई टेबल में, test_solid_color_test_pattern.py के टेस्ट के दावों के बारे में बताया गया है.
| कैमरा पहला एपीआई लेवल |
कैमरा टाइप | दावा किए गए रंग |
|---|---|---|
| 31 | बेयर | काला, सफ़ेद, लाल, हरा, नीला |
| 31 | मोनो | काला, सफ़ेद |
| < 31 | बेयर/मोनो | काला |
परफ़ॉर्मेंस क्लास टेस्ट
scene2_c/test_camera_launch_perf_class.py
इस टेस्ट से पुष्टि की जाती है कि सीन2_c फ़ेस सीन के साथ, प्राइमरी फ़्रंट और रियर, दोनों कैमरों के लिए कैमरा स्टार्टअप में 500 मिसेकंड से कम समय लगता है.
scene2_c/test_jpeg_capture_perf_class.py
इस टेस्ट से पुष्टि की जाती है कि सीन2_c फ़ेस सीन के साथ, प्राइमरी फ़्रंट और रियर, दोनों कैमरों के लिए 1080 पिक्सल JPEG कैप्चर की लेटेन्सी एक सेकंड से कम है.