অ্যান্ড্রয়েড 12 ক্যামেরা ইমেজ টেস্ট স্যুট রিলিজ নোট

অ্যান্ড্রয়েড 12 রিলিজে বেশ কয়েকটি ক্যামেরা আইটিএস পরিবর্তন অন্তর্ভুক্ত করা হয়েছে। এই পৃষ্ঠাটি চারটি বিস্তৃত বিভাগে পড়া পরিবর্তনগুলির সংক্ষিপ্ত বিবরণ:

পাইথন 3 এর রিফ্যাক্টর

জানুয়ারী 2020-এ Python 2.7 অবচয় করার কারণে, সমগ্র ক্যামেরা ITS কোডবেস Python 3-তে রিফ্যাক্টর করা হয়েছিল। Android 12-এ নিম্নলিখিত Python সংস্করণ এবং লাইব্রেরি প্রয়োজন:

প্রধান পরীক্ষা লঞ্চার, tools/run_all_tests.py , Android 11 বা তার নিচের সংস্করণের মতোই থাকে এবং Python 3-এ রিফ্যাক্টর করা হয়।

সমস্ত পৃথক পরীক্ষা পুনরায় ফ্যাক্টর করা হয় এবং tests/its_base_test.py এ সংজ্ঞায়িত নতুন পরীক্ষা সেটআপ ক্লাস ব্যবহার করে। বেশিরভাগ পরীক্ষার নাম এবং কার্যকারিতা একই থাকে। অ্যান্ড্রয়েড 12-এ সমস্ত পৃথক পরীক্ষা এখন তাদের দৃশ্যগুলি লোড করে। যদিও প্রতিটি পরীক্ষার জন্য দৃশ্য লোডিং সামগ্রিক পরীক্ষার সময় বাড়ায়, এটি পৃথক পরীক্ষার ডিবাগিং সক্ষম করে।

পৃথক পরীক্ষার পরিবর্তন সম্পর্কে আরও তথ্যের জন্য, পরীক্ষা পরিবর্তনগুলি দেখুন।

নিম্নলিখিত পাইথন মডিউলগুলি নাম পরিবর্তনের সাথে রিফ্যাক্টর করা হয়েছে:

  • pymodules/its/caps.pyutils/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 টেস্ট ফ্রেমওয়ার্ক গ্রহণ

মোবলি হল একটি পাইথন-ভিত্তিক পরীক্ষার কাঠামো যা পরীক্ষার ক্ষেত্রে সমর্থন করে যার জন্য কাস্টম হার্ডওয়্যার সেটআপ সহ একাধিক ডিভাইস প্রয়োজন। ক্যামেরা আইটিএস মোবলি পরীক্ষার পরিকাঠামো ব্যবহার করে পরীক্ষাগুলির আরও ভাল নিয়ন্ত্রণ এবং লগিং সক্ষম করতে।

ক্যামেরা আইটিএস মোবলি পরীক্ষার পরিকাঠামো ব্যবহার করে পরীক্ষাগুলির আরও ভাল নিয়ন্ত্রণ এবং লগিং সক্ষম করতে। মোবলি হল একটি পাইথন-ভিত্তিক পরীক্ষার কাঠামো যা পরীক্ষার ক্ষেত্রে সমর্থন করে যার জন্য কাস্টম হার্ডওয়্যার সেটআপ সহ একাধিক ডিভাইস প্রয়োজন। Mobly সম্পর্কে আরও তথ্যের জন্য, google/mobly দেখুন।

config.yml ফাইল

Mobly ফ্রেমওয়ার্কের সাহায্যে, আপনি একটি ডিভাইস আন্ডার টেস্ট (DUT) এবং its_base_test ক্লাসে একটি চার্ট ট্যাবলেট সেট আপ করতে পারেন। একটি config.yml (YAML) ফাইল একটি Mobly testbed তৈরি করতে ব্যবহৃত হয়। এই কনফিগারেশন ফাইলের মধ্যে একাধিক টেস্টবেড কনফিগার করা যেতে পারে, উদাহরণস্বরূপ, একটি ট্যাবলেট এবং একটি সেন্সর ফিউশন টেস্টবেড। প্রতিটি টেস্টবেডের কন্ট্রোলার বিভাগের মধ্যে, আপনি টেস্ট রানারকে উপযুক্ত অ্যান্ড্রয়েড ডিভাইস সনাক্ত করতে 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 কীওয়ার্ডটি টেস্টবেড নামের মধ্যে উপস্থিত থাকতে হবে। ইনিশিয়ালাইজেশনের সময়, মোবলি টেস্ট রানার 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 দিয়ে পরীক্ষা করা হয়, তাহলে ট্যাবলেটটি অবশ্যই সংযুক্ত থাকতে হবে এবং ট্যাবলেটটি ব্যবহার না করা সত্ত্বেও ট্যাবলেট সিরিয়াল আইডি অবশ্যই বৈধ হতে হবে কারণ টেস্ট ক্লাস সেটআপ ট্যাবলেটটির জন্য সিরিয়াল আইডি মান নির্ধারণ করে৷

স্বতন্ত্র পরীক্ষা চালান

পৃথক পরীক্ষাগুলি শুধুমাত্র ডিবাগ উদ্দেশ্যে চালানো যেতে পারে কারণ তাদের ফলাফল CTS যাচাইকারীকে রিপোর্ট করা হয় না। যেহেতু 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-এ, ক্যামেরা আইটিএস-এর জন্য পরীক্ষামূলক নিদর্শনগুলি একইভাবে Android 11 বা তার নিচের দিকে সংরক্ষণ করা হয় তবে নিম্নলিখিত পরিবর্তনগুলি সহ:

  • টেস্ট আর্টিফ্যাক্ট /tmp ডিরেক্টরিতে স্পষ্টতার জন্য CameraITS_ 8-অক্ষরের র্যান্ডম স্ট্রিং-এর সাথে যুক্ত রয়েছে।
  • পরীক্ষার আউটপুট এবং ত্রুটি প্রতিটি পরীক্ষার জন্য test_name_stdout.txt এবং test_name_stderr.txt এর পরিবর্তে test_log.DEBUG এ সংরক্ষণ করা হয়।
  • প্রতিটি পৃথক পরীক্ষার DUT এবং ট্যাবলেট লগক্যাটগুলি /tmp/CameraITS_######## ডিবাগিংকে সরলীকরণকারী ডিরেক্টরিতে সংরক্ষিত রয়েছে কারণ 3A সমস্যাগুলি ডিবাগ করার জন্য প্রয়োজনীয় সমস্ত তথ্য লগ করা হয়েছে৷

পরীক্ষা পরিবর্তন

অ্যান্ড্রয়েড 12-এ ট্যাবলেট দৃশ্যগুলি পিডিএফ ফাইলের পরিবর্তে পিএনজি ফাইল। PNG ফাইলগুলির ব্যবহার দৃশ্যগুলি সঠিকভাবে প্রদর্শন করতে আরও ট্যাবলেট মডেলকে সক্ষম করে।

scene0/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-এ দুটি পৃথক পরীক্ষার বর্ণনা করে।

পরীক্ষার নাম প্রথম API স্তর দাবী
দৃশ্য1_1/test_black_white.py সমস্ত সংক্ষিপ্ত এক্সপোজার, কম লাভ RGB মান ~[0, 0, 0]
দীর্ঘ এক্সপোজার, উচ্চ লাভ RGB মান ~[255, 255, 255]
scene1_1/test_channel_saturation.py 29 সাদা ছবিতে রঙের আভা দূর করতে [255, 255, 255] পার্থক্যের সহনশীলতা হ্রাস করা হয়েছে।

নিম্নলিখিত সারণীটি Android 12-এ মার্জড টেস্ট, scene1_1/test_black_white.py, বর্ণনা করে।

পরীক্ষার নাম প্রথম API স্তর দাবী
দৃশ্য1_1/test_black_white.py সমস্ত সংক্ষিপ্ত এক্সপোজার, কম লাভ RGB মান ~[0, 0, 0]
দীর্ঘ এক্সপোজার, উচ্চ লাভ RGB মান ~[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 ক্যামেরায় চলে।

দৃশ্য1_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 ক্যামেরায় চলে।

দৃশ্য4/পরীক্ষা_আস্পেক্ট_অনুপাত_এন্ড_crop.py

Android 12-এ scene4/test_aspect_ratio_and_crop.py এ চেনাশোনা খুঁজে বের করা হয়েছে।

পূর্ববর্তী অ্যান্ড্রয়েড সংস্করণগুলি এমন একটি পদ্ধতি ব্যবহার করেছিল যা আকার এবং রঙের জন্য ফিল্টার সহ প্যারেন্ট কনট্যুরের (বর্গাকার) ভিতরে একটি শিশু কনট্যুর (বৃত্ত) খুঁজে পাওয়া জড়িত ছিল। অ্যান্ড্রয়েড 12 এমন একটি পদ্ধতি ব্যবহার করে যার মধ্যে রয়েছে সমস্ত কনট্যুর খুঁজে বের করা এবং তারপর ফিল্টার করা বৈশিষ্ট্যগুলি খুঁজে বের করে যা সবচেয়ে বেশি বৃত্তাকার । ডিসপ্লেতে জাল চেনাশোনাগুলি স্ক্রীন করার জন্য, একটি ন্যূনতম কনট্যুর এলাকা প্রয়োজন, এবং বৃত্তের কনট্যুর অবশ্যই কালো হতে হবে।

কনট্যুর এবং তাদের নির্বাচনের মানদণ্ড নিম্নলিখিত ছবিতে দেখানো হয়েছে।

কনট্যুর এবং নির্বাচনের মানদণ্ডের ধারণাগত অঙ্কন

চিত্র 1. কনট্যুর এবং নির্বাচনের মানদণ্ডের ধারণাগত অঙ্কন

অ্যান্ড্রয়েড 12 পদ্ধতিটি সহজ এবং কিছু ডিসপ্লে ট্যাবলেটে বাউন্ডিং বক্স ক্লিপিংয়ের সাথে সমস্যাটি সমাধান করতে কাজ করে। সমস্ত চেনাশোনা প্রার্থী ডিবাগিং উদ্দেশ্যে লগ ইন করা হয়.

অ্যান্ড্রয়েড 12-এ, FULL এবং LEVEL3 ডিভাইসের জন্য ক্রপ টেস্ট চালানো হয়। অ্যান্ড্রয়েড 11 বা নিম্ন সংস্করণগুলি FULL ডিভাইসগুলির জন্য ক্রপ পরীক্ষার দাবিগুলি এড়িয়ে যায়৷

নিম্নলিখিত সারণী test_aspect_ratio_and_crop.py জন্য দাবিগুলি তালিকাভুক্ত করে যা একটি প্রদত্ত ডিভাইস স্তর এবং প্রথম API স্তরের সাথে মিলে যায়৷

ডিভাইস স্তর প্রথম 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

scene4/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% কেন্দ্রে মাস্ক করে এবং সর্বাধিক বৈশিষ্ট্যগুলিকে সর্বনিম্ন বৈশিষ্ট্যের প্রয়োজনের দুইগুণে সীমাবদ্ধ করে।

নিম্নলিখিত চিত্রটি Android 11 এবং Android 12 বৈশিষ্ট্য সনাক্তকরণের মধ্যে পার্থক্য দেখায়। ন্যূনতম বৈশিষ্ট্যের প্রয়োজনীয়তা থ্রেশহোল্ড বাড়ানোর ফলে খারাপ মানের বৈশিষ্ট্যগুলি সনাক্ত হয় এবং পরিমাপকে নেতিবাচকভাবে প্রভাবিত করে।

Android 11 এর মধ্যে বৈশিষ্ট্য সনাক্তকরণের পার্থক্য এবং অ্যান্ড্রয়েড 12 সেন্সর_ফিউশন বৈশিষ্ট্য সনাক্তকরণ

চিত্র 2. Android 11 এবং Android 12 এর মধ্যে বৈশিষ্ট্য সনাক্তকরণে পার্থক্য

নতুন পরীক্ষা

scene0/test_solid_color_test_pattern.py

একটি নতুন পরীক্ষা, test_solid_color_test_pattern , Android 12 এর জন্য সক্ষম করা হয়েছে৷ এই পরীক্ষাটি সমস্ত ক্যামেরার জন্য সক্ষম করা হয়েছে এবং নিম্নলিখিত সারণীতে বর্ণনা করা হয়েছে৷

দৃশ্য পরীক্ষার নাম প্রথম API স্তর বর্ণনা
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 পরীক্ষার প্যাটার্নে সেট করা হয়েছে। যেহেতু সেন্সর বায়ার প্যাটার্ন অনুযায়ী টেস্ট প্যাটার্নের সংজ্ঞা, তাই নিচের টেবিলে দেখানো প্রতিটি রঙের জন্য কালার চ্যানেল সেট করতে হবে।

রঙ 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 এর জন্য পরীক্ষার দাবিগুলি বর্ণনা করে।

ক্যামেরা
প্রথম API স্তর
ক্যামেরার ধরন রং জোরদার
31 বায়ার কালো, সাদা, লাল, সবুজ, নীল
31 মনো কালো, সাদা
< 31 বায়ার/মোনো কালো

কর্মক্ষমতা ক্লাস পরীক্ষা

scene2_c/test_camera_launch_perf_class.py

দৃশ্য 2_c মুখের দৃশ্য সহ সামনের এবং পিছনের উভয় প্রাথমিক ক্যামেরার জন্য ক্যামেরা স্টার্টআপটি 500 ms এর কম তা যাচাই করে৷

scene2_c/test_jpeg_capture_perf_class.py

1080p JPEG ক্যাপচার লেটেন্সি যাচাই করে 1 সেকেন্ডেরও কম সামনের এবং পিছনের উভয় ক্যামেরারই দৃশ্য 2_c মুখের দৃশ্যের সাথে।