Android 12 कैमरा इमेज टेस्ट सूट रिलीज़ नोट्स

Android 12 रिलीज़ में कई कैमरा ITS परिवर्तन शामिल हैं। यह पृष्ठ उन परिवर्तनों को सारांशित करता है जो चार व्यापक श्रेणियों में आते हैं:

पायथन 3 के लिए रिफैक्टरिंग

जनवरी 2020 में Python 2.7 के बहिष्करण के कारण, संपूर्ण कैमरा ITS कोडबेस को Python 3 में पुन: सक्रिय किया गया था। Android 12 में निम्नलिखित पायथन संस्करणों और पुस्तकालयों की आवश्यकता है:

मुख्य परीक्षण लांचर, tools/run_all_tests.py , Android 11 या उससे पहले के संस्करणों के समान ही रहता है और इसे Python 3 में पुन: सक्रिय किया जाता है।

सभी व्यक्तिगत परीक्षणों को पुन: सक्रिय किया जाता है और tests/its_base_test.py में परिभाषित नए परीक्षण सेटअप वर्ग का उपयोग किया जाता है। अधिकांश परीक्षण नाम और कार्यक्षमता समान रहती है। Android 12 में सभी व्यक्तिगत परीक्षण अब अपने दृश्यों को लोड करते हैं। जबकि प्रत्येक परीक्षण के लिए दृश्य लोडिंग समग्र परीक्षण समय को बढ़ाता है, यह व्यक्तिगत परीक्षणों के डिबगिंग को सक्षम बनाता है।

व्यक्तिगत परीक्षण परिवर्तनों के बारे में अधिक जानकारी के लिए, परीक्षण परिवर्तन देखें।

निम्नलिखित पायथन मॉड्यूल को एक नाम परिवर्तन के साथ पुन: सक्रिय किया गया है:

  • pymodules/its/caps.pyutils/camera_properties_utils.py camera_properties_utils.py
  • pymodules/its/cv2image.pyutils/opencv_processing_utils.py
  • pymodules/its/device.pyutils/its_session_utils.py
  • pymodules/its/error.pyutils/error_util.py
  • pymodules/its/image.pyutils/image_processing_utils.py
  • pymodules/its/objects.pyutils/capture_request_utils.py
  • pymodules/its/target.pyutils/target_exposure_utils.py
  • tools/hw.pyutils/sensor_fusion_utils.py

मोबली टेस्ट फ्रेमवर्क को अपनाना

Mobly एक पायथन-आधारित परीक्षण ढांचा है जो परीक्षण मामलों का समर्थन करता है जिसके लिए कस्टम हार्डवेयर सेटअप के साथ कई उपकरणों की आवश्यकता होती है। कैमरा ITS बेहतर नियंत्रण और परीक्षणों की लॉगिंग को सक्षम करने के लिए Mobly परीक्षण अवसंरचना का उपयोग करता है।

कैमरा ITS बेहतर नियंत्रण और परीक्षणों की लॉगिंग को सक्षम करने के लिए Mobly परीक्षण अवसंरचना का उपयोग करता है। Mobly एक पायथन-आधारित परीक्षण ढांचा है जो परीक्षण मामलों का समर्थन करता है जिसके लिए कस्टम हार्डवेयर सेटअप के साथ कई उपकरणों की आवश्यकता होती है। Mobly के बारे में अधिक जानकारी के लिए, google/mobly देखें।

config.yml फ़ाइलें

Mobly फ्रेमवर्क के साथ, आप एक डिवाइस अंडर टेस्ट (DUT) और एक चार्ट टैबलेट its_base_test क्लास में सेट कर सकते हैं। Mobly टेस्टबेड बनाने के लिए config.yml (YAML) फ़ाइल का उपयोग किया जाता है। इस कॉन्फ़िग फ़ाइल में एकाधिक टेस्टबेड कॉन्फ़िगर किए जा सकते हैं, उदाहरण के लिए, एक टैबलेट और एक सेंसर फ़्यूज़न टेस्टबेड। प्रत्येक टेस्टबेड के कंट्रोलर सेक्शन में, आप टेस्ट रनर के लिए उपयुक्त एंड्रॉइड डिवाइस की पहचान करने के लिए 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 फ़ाइल मानों के साथ चलते हैं। इसके अतिरिक्त, आप एंड्रॉइड 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

मैनुअल परीक्षण

एंड्रॉइड 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 के साथ किया जाता है, तो टैबलेट कनेक्ट होना चाहिए और टैबलेट सीरियल आईडी मान्य होना चाहिए, भले ही टैबलेट का उपयोग न किया गया हो क्योंकि टेस्ट क्लास सेटअप टैबलेट के लिए सीरियल आईडी मान निर्दिष्ट करता है।

व्यक्तिगत परीक्षण चलाना

व्यक्तिगत परीक्षण केवल डीबग उद्देश्यों के लिए चलाए जा सकते हैं क्योंकि उनके परिणाम सीटीएस सत्यापनकर्ता को रिपोर्ट नहीं किए जाते हैं। चूँकि config.yml फ़ाइलों को camera और scene के लिए कमांड लाइन पर अधिलेखित नहीं किया जा सकता है, ये पैरामीटर config.yml फ़ाइल में विचाराधीन व्यक्तिगत परीक्षण के लिए सही होना चाहिए। इसके अतिरिक्त, यदि कॉन्फ़िगरेशन फ़ाइल में एक से अधिक टेस्टबेड हैं, तो आपको टेस्टबेड को --test_bed ध्वज के साथ निर्दिष्ट करना होगा। उदाहरण के लिए:

python tests/scene1_1/test_black_white.py --config config.yml --test_bed TEST_BED_TABLET_SCENES

परीक्षण कलाकृतियों

एंड्रॉइड 12 में, कैमरा आईटीएस के लिए परीक्षण कलाकृतियों को एंड्रॉइड 11 या उससे कम के समान ही संग्रहीत किया जाता है, लेकिन निम्नलिखित परिवर्तनों के साथ:

  • परीक्षण विरूपण साक्ष्य /tmp निर्देशिका में CameraITS_ स्पष्टता के लिए 8-वर्ण यादृच्छिक स्ट्रिंग में जोड़ा गया है।
  • परीक्षण आउटपुट और त्रुटियों को test_name_stdout.txt और test_name_stderr.txt के बजाय प्रत्येक परीक्षण के लिए test_log.DEBUG में संग्रहीत किया जाता है।
  • प्रत्येक व्यक्तिगत परीक्षण से DUT और टैबलेट /tmp/CameraITS_######## निर्देशिका में डिबगिंग को सरल बनाने के लिए संग्रहीत किए जाते हैं क्योंकि 3A मुद्दों को डीबग करने के लिए आवश्यक सभी जानकारी लॉग की जाती है।

परीक्षण परिवर्तन

एंड्रॉइड 12 में टैबलेट के दृश्य पीडीएफ फाइलों के बजाय पीएनजी फाइलें हैं। पीएनजी फाइलों का उपयोग अधिक टैबलेट मॉडल को दृश्यों को ठीक से प्रदर्शित करने में सक्षम बनाता है।

दृश्य0/test_jitter.py

test_jitter परीक्षण Android 12 में भौतिक छिपे हुए कैमरों पर चलता है।

दृश्य1_1/test_black_white.py

Android 12 के लिए, test_black_white में test_black_white और test_channel_saturation दोनों की कार्यक्षमता है।

निम्न तालिका Android 11 में दो अलग-अलग परीक्षणों का वर्णन करती है।

परीक्षण का नाम पहला एपीआई स्तर इस प्रकार के दावे
दृश्य1_1/test_black_white.py सब कम जोखिम, कम लाभ आरजीबी मूल्य ~[0, 0, 0]
लंबे समय तक एक्सपोजर, उच्च लाभ आरजीबी मूल्य ~ [255, 255, 255]
दृश्य1_1/test_channel_saturation.py 29 सफेद छवियों में रंग टिंट को खत्म करने के लिए [255, 255, 255] अंतर पर कम सहनशीलता।

निम्न तालिका Android 12 में मर्ज किए गए परीक्षण, scene1_1/test_black_white.py का वर्णन करती है।

परीक्षण का नाम पहला एपीआई स्तर इस प्रकार के दावे
दृश्य1_1/test_black_white.py सब कम जोखिम, कम लाभ आरजीबी मूल्य ~[0, 0, 0]
लंबे समय तक एक्सपोजर, उच्च लाभ आरजीबी मूल्य ~ [255, 255, 255] और सफेद छवियों में रंग टिंट को खत्म करने के लिए मूल्यों के बीच कम सहनशीलता।

दृश्य1_1/test_burst_sameness_manual.py

test_burst_sameness_manual परीक्षण Android 12 में भौतिक छिपे हुए कैमरों पर चलता है।

दृश्य1_2/test_tonemap_sequence.py

test_tonemap_sequence परीक्षण Android 12 में सीमित कैमरों पर चलता है।

दृश्य1_2/test_yuv_plus_raw.py

test_yuv_plus_raw परीक्षण Android 12 में भौतिक छिपे हुए कैमरों पर चलता है।

सीन2_ए/टेस्ट_फॉर्मेट_कॉम्बोस.py

test_format_combos परीक्षण Android 12 में सीमित कैमरों पर चलता है।

सीन3/टेस्ट_फ्लिप_मिरर.py

test_flip_mirror टेस्ट एंड्रॉइड 12 में सीमित कैमरों पर चलता है।

सीन4/test_aspect_ratio_and_crop.py

एंड्रॉइड 12 में scene4/test_aspect_ratio_and_crop.py में मंडलियां ढूंढना फिर से शुरू किया गया था।

पहले के एंड्रॉइड संस्करणों में एक विधि का उपयोग किया जाता था जिसमें आकार और रंग के लिए फिल्टर के साथ पैरेंट कॉन्टूर (वर्ग) के अंदर एक चाइल्ड कॉन्टूर (सर्कल) ढूंढना शामिल था। एंड्रॉइड 12 एक ऐसी विधि का उपयोग करता है जिसमें सभी कंट्रोवर्सी को ढूंढना और फिर सबसे अधिक सर्किलिश सुविधाओं को ढूंढकर फ़िल्टर करना शामिल है। डिस्प्ले पर नकली सर्किलों को स्क्रीन करने के लिए, न्यूनतम समोच्च क्षेत्र की आवश्यकता होती है, और सर्कल का समोच्च काला होना चाहिए।

आकृति और उनके चयन मानदंड निम्न छवि में दिखाए गए हैं।

रूपरेखा और चयन मानदंड की वैचारिक ड्राइंग

चित्र 1. आकृति और चयन मानदंड की वैचारिक ड्राइंग

एंड्रॉइड 12 विधि सरल है और कुछ डिस्प्ले टैबलेट में बाउंडिंग बॉक्स क्लिपिंग के साथ समस्या को हल करने के लिए काम करती है। सभी मंडली के उम्मीदवारों को डिबगिंग उद्देश्यों के लिए लॉग इन किया जाता है।

Android 12 में FULL और LEVEL3 डिवाइस के लिए क्रॉप टेस्ट चलाया जाता है। Android 11 या उससे कम के संस्करण FULL उपकरणों के लिए फसल परीक्षण अभिकथन को छोड़ देते हैं।

निम्न तालिका test_aspect_ratio_and_crop.py के लिए test_aspect_ratio_and_crop.py को सूचीबद्ध करती है जो किसी दिए गए डिवाइस स्तर और पहले API स्तर के अनुरूप होते हैं।

डिवाइस स्तर पहला एपीआई स्तर इस प्रकार के दावे
सीमित सब आस्पेक्ट अनुपात
4:3, 16:9, 2:1 प्रारूपों के लिए FoV
भरा हुआ <31 आस्पेक्ट अनुपात
4:3, 16:9, 2:1 प्रारूपों के लिए FoV
भरा हुआ 31 काटना
आस्पेक्ट अनुपात
4:3, 16:9, 2:1 प्रारूपों के लिए FoV
स्तर 3 सब काटना
आस्पेक्ट अनुपात
4:3, 16:9, 2:1 प्रारूपों के लिए FoV

सीन4/test_multi_camera_alignment.py

सीन scene4/test_multi_camera_alignment.py में YUV कैप्चर के लिए undo_zoom() विधि को सेंसर पर क्रॉप करने के लिए और अधिक सटीक रूप से हिसाब करने के लिए फिर से तैयार किया गया था जो कैप्चर के पहलू अनुपात से मेल नहीं खाते।

एंड्रॉइड 11 पायथन 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

एंड्रॉइड 12 पायथन 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

एंड्रॉइड 12 में, सेंसर फ्यूजन टेस्ट के लिए छवियों में सुविधाओं का पता लगाने की एक विधि जोड़ी जाती है।

एंड्रॉइड 12 से कम संस्करणों में, पूरी छवि का उपयोग सर्वोत्तम 240 सुविधाओं को खोजने के लिए किया जाता है, जिन्हें बाद में केंद्र में 20% तक मास्क किया जाता है ताकि रोलिंग शटर प्रभाव से बचने के लिए न्यूनतम सुविधा आवश्यकता 30 सुविधाओं के साथ हो।

यदि इस पद्धति द्वारा पाई जाने वाली सुविधाएँ अपर्याप्त हैं, तो Android 12 सुविधा का पता लगाने वाले क्षेत्र को केंद्र में 20% पहले मास्क करता है, और अधिकतम सुविधाओं को न्यूनतम सुविधा आवश्यकता से दो गुना तक सीमित करता है।

निम्न छवि एंड्रॉइड 11 और एंड्रॉइड 12 फीचर डिटेक्शन के बीच अंतर दिखाती है। न्यूनतम सुविधा आवश्यकता थ्रेशोल्ड को बढ़ाने से खराब गुणवत्ता वाली विशेषताओं का पता चलता है और मापन पर नकारात्मक प्रभाव पड़ता है।

एंड्रॉइड 11 और एंड्रॉइड 12 सेंसर_फ्यूजन फीचर डिटेक्शन के बीच फीचर डिटेक्शन में अंतर

चित्र 2. एंड्रॉइड 11 और एंड्रॉइड 12 के बीच फीचर डिटेक्शन में अंतर

नए परीक्षण

सीन0/टेस्ट_सॉलिड_कलर_टेस्ट_पैटर्न.py

Android 12 के लिए एक नया परीक्षण, test_solid_color_test_pattern सक्षम किया गया है। यह परीक्षण सभी कैमरों के लिए सक्षम है और निम्न तालिका में वर्णित है।

दृश्य परीक्षण का नाम पहला एपीआई स्तर विवरण
0 टेस्ट_सॉलिड_कलर_टेस्ट_पैटर्न 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 टेस्ट पैटर्न पर सेट हैं। जैसा कि परीक्षण पैटर्न की परिभाषा सेंसर बायर पैटर्न के अनुसार है, रंग चैनलों को प्रत्येक रंग के लिए सेट किया जाना चाहिए जैसा कि निम्न तालिका में दिखाया गया है।

रंग टेस्टपैटर्नडेटा (आरजीजीबी)
काला (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 के लिए परीक्षण test_solid_color_test_pattern.py का वर्णन करती है।

कैमरा
पहला एपीआई स्तर
कैमरा प्रकार रंग जोर दिया
31 बायर काला, सफेद, लाल, हरा, नीला
31 मोनो काला सफ़ेद
<31 बायर/मोनो काला

प्रदर्शन वर्ग परीक्षण

दृश्य 2_c/test_camera_launch_perf_class.py

सीन2_c फेस सीन वाले फ्रंट और रियर दोनों प्राइमरी कैमरों के लिए कैमरा स्टार्टअप 500 एमएस से कम है, इसकी पुष्टि करता है।

दृश्य 2_c/test_jpeg_capture_perf_class.py

सीन2_c फेस सीन के साथ फ्रंट और रियर दोनों प्राइमरी कैमरों के लिए 1080p JPEG कैप्चर लेटेंसी 1 सेकंड से कम की पुष्टि करता है।