এই পৃষ্ঠায় ক্যামেরা ইমেজ টেস্ট স্যুটের (ITS) অধীনে থাকা টেস্টের একটি বিস্তারিত তালিকা দেওয়া আছে, যা Android কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) ভেরিফায়ারের অংশ। ITS টেস্ট হল ফাংশনাল টেস্ট, যার অর্থ হল এগুলি ছবির কোয়ালিটি পরিমাপ করে না, তবে বিজ্ঞাপনে দেখানো ক্যামেরার সব ফাংশন প্রত্যাশা অনুযায়ী কাজ করছে কিনা তা নিশ্চিত করে। এই ডকুমেন্ট থেকে ডেভেলপার ও টেস্টাররা বুঝতে পারবেন যে আলাদা আলাদা টেস্ট কী করে এবং টেস্ট করার সময় সমস্যা হলে কীভাবে তা ডিবাগ করতে হয়।
প্রতিটি Android ভার্সনের সাথে ITS টেস্ট আপডেট বা যোগ করা হয়, যেমনটি সেই Android ভার্সনের জন্য ক্যামেরা ITS রিলিজ নোটের বিবরণে উল্লেখ করা আছে। ব্যবহারকারী বা ডেভেলপারের রিপোর্ট করা সমস্যার ভিত্তিতে আপডেট করা হয়। ব্যবহারকারী বা ডেভেলপারদের রিপোর্ট করা বাগ এবং নতুন ক্যামেরা ফ্রেমওয়ার্ক ফিচারের সঠিক আচরণ যাচাই করার উপর ভিত্তি করে এই সংযোজনগুলি করা হয়।
Android 17 ও এর পরবর্তী ভার্সনে, সমান্তরাল এক্সিকিউশন ও টেস্টের সময় কমানোর জন্য
CTS Verifier-এ ক্যামেরা ITS টেস্ট দুটি অ্যাক্টিভিটিতে
বিভক্ত করা হয়েছে: একটি অ্যাক্টিভিটি feature_combination ও sensor_fusion টেস্টের জন্য
এবং অন্যটি বাকি সব টেস্টের জন্য। আরও তথ্যের জন্য, টেস্টের সময় কমানো দেখুন।
ক্যামেরা ITS, প্রয়োজনীয় ক্যামেরা প্রপার্টি, API লেভেল ও
মিডিয়া পারফর্ম্যান্স ক্লাস (MPC) লেভেল অনুযায়ী টেস্ট গেট করে। API লেভেলের জন্য, ITS
ro.product.first_api_level ব্যবহার করে নির্দিষ্ট API লেভেলে যোগ করা টেস্ট গেট করে যা
নিম্ন API লেভেলে কার্যকারিতার জন্য নেতিবাচক ব্যবহারকারীর অভিজ্ঞতা টেস্ট করে। ITS
নির্দিষ্ট API লেভেলে যোগ করা ফিচারের জন্য গেট টেস্ট করতে ro.vendor.api_level ব্যবহার করে
যার জন্য নতুন হার্ডওয়্যার ক্ষমতা প্রয়োজন। কোনও ডিভাইসের জন্য
ro.odm.build.media_performance_class সংজ্ঞায়িত করা থাকলে, MPC লেভেলের উপর নির্ভর করে ITS-এর জন্য নির্দিষ্ট টেস্ট রান করতে হয়।
টেস্টগুলি দৃশ্য অনুসারে নিম্নলিখিত বিভাগে গ্রুপ করা হয়েছে:
scene0: মেটাডেটা, জিটার, জাইরোস্কোপ, ভাইব্রেশন ক্যাপচার করাscene1: এক্সপোজার, সেনসিটিভিটি, এক্সপোজার ভ্যালু (EV) কম্পেনসেশন, YUV বনাম JPEG এবং RAWscene2: ফেস ডিটেকশন, টেস্টের জন্য রঙিন দৃশ্য প্রয়োজনscene3: এজ এনহ্যান্সমেন্ট, লেন্স মুভমেন্টscene4: অ্যাস্পেক্ট রেশিও, ক্রপ করা, ফিল্ড-অফ-ভিউscene6: জুমscene7: মাল্টি ক্যামেরা সুইচscene8: অটো এক্সপোজার (AE) এবং অটো হোয়াইট ব্যালেন্স (AWB) রিজিয়ন মিটারিংscene9: JPEG কম্প্রেশনscene_extensions: ক্যামেরা এক্সটেনশনscene_tele: টেলিফটো লেন্স পরিবর্তন করাscene_video: ফ্রেম ড্রপ
Gen2 রিগ / sensor_fusion-ভিত্তিক টেস্ট সিন
feature_combination: ফিচারের কম্বিনেশনscene_flash: অটোফ্ল্যাশ, ন্যূনতম ফ্রেম রেটscene_gen2_chart: Gen2 পেপার চার্ট ব্যবহার করে টেস্ট করাscene_ip: ডিফল্ট ক্যামেরা অ্যাপ এবং Jetpack Camera App (JCA)-এর মধ্যে ছবির সমতাsensor_fusion: ক্যামেরা ও জাইরোস্কোপ টাইমিং অফসেট
scene5: লেন্স শেডিং
ট্যাবলেট-ভিত্তিক টেস্ট সিন, যাতে ওয়াইড-গ্যামাট আছে
scene_wide_gamut: ওয়াইড গ্যামাট কালার প্রোফাইল ও রেঞ্জ
প্রতিটি দৃশ্যের বিবরণ দেখতে আলাদা আলাদা বিভাগ দেখুন।
ট্যাবলেট-ভিত্তিক টেস্ট সিন
scene0
পরীক্ষার জন্য কোনও নির্দিষ্ট দৃশ্যের তথ্যের প্রয়োজন নেই। তবে, জাইরোস্কোপ ও ভাইব্রেশন টেস্টিংয়ের জন্য ফোনটি অবশ্যই স্থির থাকতে হবে।
test_jitter
ক্যামেরা টাইমস্ট্যাম্পে জিটার পরিমাপ করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
পাস: ফ্রেমের মধ্যে অন্তত ৩০ মিলিসেকেন্ডের ডেল্টা আছে।
নিচের ছবিতে, ছোট y-অ্যাক্সিস রেঞ্জটি লক্ষ্য করুন। এই প্লটে জিটার আসলে ছোট।
ছবি ১. test_jitter প্লট।
test_metadata
ক্যাপচার ফলাফল এবং ক্যামেরা বৈশিষ্ট্য অবজেক্ট দেখে মেটাডেটা এন্ট্রির বৈধতা পরীক্ষা করে। এই টেস্টে
auto_capture_request এক্সপোজার ও গেন ভ্যালু ব্যবহার করা হয় কারণ ছবির কন্টেন্ট
গুরুত্বপূর্ণ নয়। এটি একটি ফাস্ট-FAIL টেস্ট, কারণ এটি অল্প সময়ের মধ্যে চলে, এর জন্য ন্যূনতম সেট-আপের প্রয়োজন হয় এবং ডাউনস্ট্রিমে উল্লেখযোগ্য সংখ্যক টেস্ট ব্যর্থ হওয়ার ইঙ্গিত দেয়।
test_metadata পাস না করা পর্যন্ত সম্পূর্ণ টেস্ট স্যুট রান করা উচিত নয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVELandroid.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPEandroid.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERNandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
পাস: হার্ডওয়্যার লেভেল, rollingShutterSkew, frameDuration ট্যাগ,
timestampSource, croppingType, blackLevelPattern, pixel_pitch,
ফিল্ড অফ ভিউ (FoV) এবং হাইপারফোকাল দূরত্ব আছে এবং সেগুলির সঠিক ভ্যালু আছে।
test_request_capture_match
ক্যাপচার মেটাডেটা রিড-ব্যাক করে ডিভাইস সঠিক এক্সপোজার ও গেইন ভ্যালু লিখছে কিনা তা পরীক্ষা করে। এটি একটি ফাস্ট-FAIL টেস্ট কারণ এতে
ন্যূনতম সেট-আপের প্রয়োজন হয় এবং এটি ডাউনস্ট্রিমে উল্লেখযোগ্য সংখ্যক টেস্টের ব্যর্থতার ইঙ্গিত দেয়।
test_request_capture_match পাস না করা পর্যন্ত
সম্পূর্ণ টেস্ট স্যুট রান করা উচিত নয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
পাস: অনুরোধ ও ক্যাপচার করা মেটাডেটা ভ্যালু সব শট জুড়ে ম্যাচ করে।
test_sensor_events
যেসব ডিভাইস সেন্সর ফিউশন সাপোর্ট করে বলে বিজ্ঞাপন দেয়, এই টেস্ট চেক করে দেখে যে
ডিভাইসটি সেন্সর ইভেন্ট কোয়েরি ও প্রিন্ট আউট করে কিনা। যেসব সেন্সর থাকতে হবে সেগুলি হল
অ্যাকসিলরোমিটার, জাইরোস্কোপ ও ম্যাগনেটোমিটার। স্ক্রিন চালু থাকলে তবেই এই টেস্ট কাজ করে, অর্থাৎ ডিভাইস স্ট্যান্ডবাই মোডে থাকলে হবে না। এটি একটি ফাস্ট-FAIL টেস্ট
কারণ এটি অল্প সময়ের জন্য চলে, ন্যূনতম সেটআপের প্রয়োজন হয় এবং ডাউনস্ট্রিমে সেন্সর ফিউশন টেস্ট
ব্যর্থ হওয়ার সংকেত দেয়। test_sensor_events-এর স্ট্যাটাস PASS বা SKIP না হলে
sensor_fusion সিন টেস্ট রান করা উচিত নয়।
API টেস্ট করা হয়েছে:
পাস: প্রতিটি সেন্সরের জন্য ইভেন্ট পাওয়া গেছে।
test_solid_color_test_pattern
ক্যামেরা মিউট করার জন্য সলিড কালার টেস্ট প্যাটার্ন সঠিকভাবে তৈরি হয়েছে কিনা তা পরীক্ষা করে। ক্যামেরা মিউট করার সুবিধা থাকলে, সলিড কালার টেস্ট প্যাটার্ন অবশ্যই থাকতে হবে। ক্যামেরা মিউট করার সুবিধা কাজ না করলে, সলিড কালার টেস্ট প্যাটার্ন তখনই পরীক্ষা করা হয় যদি সেই ক্ষমতা বিজ্ঞাপিত হয়।
র-ইমেজ কাজ করলে, কালার অ্যাসাইনমেন্টও পরীক্ষা করা হয়। যেসব রঙ পরীক্ষা করা হয়েছে সেগুলি হল কালো, সাদা, লাল, নীল ও সবুজ। যেসব ক্যামেরায় র ইমেজ কাজ করে না, সেগুলির ক্ষেত্রে শুধু কালো রঙ পরীক্ষা করা হয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATAandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
পাস: সলিড টেস্ট প্যাটার্ন সঠিক রঙে দেখানো হয়েছে এবং ছবিতে খুব কম তারতম্য আছে।
test_test_pattern
প্রতিটি সঠিক টেস্ট প্যাটার্নের জন্য ফ্রেম ক্যাপচার করতে android.sensor.testPatternMode প্যারামিটার টেস্ট করে এবং সলিড কালার ও কালার বারের জন্য ফ্রেম সঠিকভাবে জেনারেট হয়েছে কিনা তা চেক করে। এই টেস্টে নিম্নলিখিত
ধাপগুলি অন্তর্ভুক্ত:
- সব কাজ করে এমন টেস্ট প্যাটার্নের জন্য ছবি ক্যাপচার করে।
- সলিড কালার টেস্ট প্যাটার্ন ও কালার বারের জন্য সঠিকতা চেক করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
পাস: কাজ করে এমন টেস্ট প্যাটার্ন সঠিকভাবে তৈরি করা হয়েছে।
ছবি ২. test_test_patterns-এর উদাহরণ।
test_tonemap_curve
লিনিয়ার টোনেম্যাপ সহ র থেকে YUV-তে টেস্ট প্যাটার্নের কনভার্সন টেস্ট করে। টোনম্যাপ কনভার্সনের জন্য
নিখুঁত ইমেজ প্যাটার্ন তৈরি করতে এই টেস্টের
জন্য android.sensor.testPatternMode = 2 (COLOR_BARS) প্রয়োজন। পাইপলাইনে লিনিয়ার টোনম্যাপ ও আদর্শ ইমেজ ইনপুট (test_test_patterns-এর উপর নির্ভর করে) সহ
সঠিক কালার আউটপুট আছে কিনা তা
যাচাই করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
পাস: YUV এবং RAW একে অপরের মতো দেখতে।
ছবি ৩. test_tonemap_curve র-এর উদাহরণ।
ছবি ৪. test_tonemap_curve YUV উদাহরণ।
test_unified_timestamp
ছবি ও মোশন সেন্সর ইভেন্ট একই টাইম ডোমেনে আছে কিনা তা পরীক্ষা করে। এটি একটি
ফাস্ট-FAIL টেস্ট কারণ এটি অল্প সময়ের মধ্যে চলে, ন্যূনতম সেটআপের প্রয়োজন হয় এবং
সেন্সর ফিউশন টেস্ট ডাউনস্ট্রিমে ব্যর্থ হওয়ার সংকেত দেয়। test_unified_timestamp-এর স্ট্যাটাস PASS বা SKIP না হলে
sensor_fusion দৃশ্য টেস্ট রান করা উচিত নয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.hardware.Sensor#TYPE_GYROSCOPE
পাস: মোশন টাইমস্ট্যাম্প দুটি ছবির টাইমস্ট্যাম্পের মধ্যে রয়েছে।
test_vibration_restriction
ডিভাইসের ভাইব্রেশন প্রত্যাশা অনুযায়ী কাজ করছে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.os.Vibratorandroid.hardware.camera2.CameraDevice#setCameraAudioRestriction
পাস: ক্যামেরা অডিও বিধিনিষেধ API-এর মাধ্যমে মিউট করা হলে ডিভাইস ভাইব্রেট করে না।
scene1_1
scene1 হল একটি ধূসর চার্ট। ধূসর চার্টটি অবশ্যই ক্যামেরার FoV-এর কেন্দ্রস্থলের ৩০% কভার করতে হবে। ধূসর চার্টটি 3A (AE, AWB এবং AF)-কে মাঝারিভাবে চ্যালেঞ্জ করবে বলে আশা করা হচ্ছে কারণ কেন্দ্র অঞ্চলে কোনও ফিচার নেই।
তবে, ক্যাপচার অনুরোধে সম্পূর্ণ দৃশ্যটি নির্দিষ্ট করা থাকে যার মধ্যে
3A কনভার্জ করার জন্য পর্যাপ্ত ফিচার অন্তর্ভুক্ত থাকে।
RFoV ক্যামেরা WFoV বা RFoV টেস্ট রিগে পরীক্ষা করা যেতে পারে। RFoV ক্যামেরা WFoV টেস্ট রিগে পরীক্ষা করা হলে, 3A কনভার্জ করতে সাহায্য করার জন্য FoV-তে গ্রে চার্টের কিছু সীমানা নির্দিষ্ট করতে চার্টটি ২/৩ স্কেল করা হয়। ক্যামেরা টেস্ট রিগ সম্পর্কে আরও বিস্তারিত বিবরণের জন্য, ক্যামেরা ITS-in-a-box দেখুন।
ছবি ৫. সম্পূর্ণ সাইজের scene1 চার্ট (বাঁদিকে), ২/৩ স্কেল করা চার্ট (ডানদিকে)।
test_ae_precapture_trigger
প্রিক্যাপচার ট্রিগার ব্যবহার করার সময় AE স্টেট মেশিন পরীক্ষা করে। AE বন্ধ করে পাঁচটি ম্যানুয়াল অনুরোধ ক্যাপচার করে। শেষ অনুরোধে AE প্রিক্যাপচার ট্রিগার আছে, যা উপেক্ষা করা উচিত কারণ AE বন্ধ করা আছে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATE
পাস: AE কনভার্জ করে।
test_auto_vs_manual
অটোমেটিক ও ম্যানুয়াল শট ক্যাপচার করা টেস্ট একই রকম দেখায়।
API পরীক্ষা করা হয়েছে:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
পাস: প্রতিটি ক্যাপচার ফলাফলে রিপোর্ট করা ম্যানুয়াল হোয়াইট ব্যালেন্স গেন ও ট্রান্সফর্ম,
ক্যামেরার 3A অ্যালগরিদম থেকে অটো হোয়াইট ব্যালেন্স estimate-এর সাথে ম্যাচ করে।
ছবি ৬. test_auto_vs_manual অটোমেটিক উদাহরণ।
ছবি ৭. test_auto_vs_manual হোয়াইট ব্যালেন্সের উদাহরণ।
ছবি ৮. test_auto_vs_manual ম্যানুয়াল হোয়াইট ব্যালেন্স ট্রান্সফর্মের উদাহরণ।
test_black_white
ডিভাইসটি সম্পূর্ণ সাদা-কালো ছবি তৈরি করে কিনা তা পরীক্ষা করে। দুটি ক্যাপচার নেয়, প্রথমটি অত্যন্ত কম গেইন এবং শর্ট এক্সপোজার সহ, যার ফলে একটি কালো ফটো হয় এবং দ্বিতীয়টি অত্যন্ত বেশি গেইন এবং লং এক্সপোজার সহ, যার ফলে একটি সাদা ফটো হয়।
API পরীক্ষা করা হয়েছে:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
পাস: সাদা-কালো ছবি ক্যাপচার করে। সাদা ছবির স্যাচুরেটেড চ্যানেলের RGB ভ্যালু [২৫৫, ২৫৫, ২৫৫] এবং ১%-এর কম পার্থক্য সহ মার্জিন অফ এরর থাকে।
ছবি ৯. test_black_white, কালো উদাহরণ।
ছবি ১০. test_black_white, সাদা উদাহরণ।
ছবি ১১. test_black_white, প্লট মানে উদাহরণ।
test_burst_capture
যাচাই করে যে সম্পূর্ণ ক্যাপচার পাইপলাইন ফুল-সাইজ ক্যাপচার এবং সিপিইউ টাইমের গতির সাথে তাল মিলিয়ে চলতে পারে।
API পরীক্ষা করা হয়েছে:
পাস: ফুল-সাইজ ছবির বার্স্ট ক্যাপচার করে, ফ্রেম ড্রপ ও ছবির উজ্জ্বলতা চেক করে।
test_burst_sameness_manual
ম্যানুয়াল ক্যাপচার সেটিংয়ের মাধ্যমে ৫০টি ছবির ৫টি বার্স্ট নেয় এবং সেগুলি সব একই রকম কিনা তা চেক করে। এই টেস্টের মাধ্যমে বিক্ষিপ্ত ফ্রেম আছে কিনা তা শনাক্ত করুন, যেগুলি আলাদাভাবে প্রসেস করা হয় বা আর্টিফ্যাক্ট থাকে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSORandroid.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
পাস: ছবিগুলি দেখতে এবং RGB ভ্যালুর দিক থেকে একই রকম।
ব্যর্থ: প্রতিটি বার্স্টের শুরুতে RGB গড় চার্টের স্পাইক বা ড্রপ দেখায়
first_API_level< ৩০-এর জন্য টলারেন্স হল ৩%first_API_level>= ৩০-এর জন্য টলারেন্স হল ২%
ছবি ১২. test_burst_sameness_manual mean-এর উদাহরণ।
ছবি ১৩. test_burst_sameness_manual_plot_means
test_crop_region_raw
RAW স্ট্রিম ক্রপ করা যায় কিনা তা পরীক্ষা করে।
API পরীক্ষা করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureResult#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
পাস: YUV ছবি সেন্টার-ক্রপ করা হয়, কিন্তু RAW ছবি নয়।
ছবি ১৪. test_crop_region_raw comp raw ক্রপ করার উদাহরণ।
ছবি ১৫. test_crop_region_raw comp raw সম্পূর্ণ উদাহরণ।
ছবি ১৬. test_crop_region_raw comp YUV ক্রপ করার উদাহরণ।
ছবি ১৭. test_crop_region_raw YUV সম্পূর্ণ উদাহরণ।
test_crop_regions
ক্রপ করা অঞ্চল কাজ করে কিনা তা পরীক্ষা করে। সম্পূর্ণ ছবি নিয়ে পাঁচটি আলাদা অঞ্চলের (কোণ ও কেন্দ্র) প্যাচ তৈরি করে। পাঁচটি অঞ্চলের জন্য ক্রপ সেট সহ ছবি তোলে। প্যাচ ও ক্রপ করা ছবির ভ্যালু তুলনা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
পাস: ক্রপ করা অংশের ছবি ক্রপ করা ছবির সাথে সম্পর্কিত প্যাচের সাথে মিলে যায়।
test_ev_compensation
এক্সপোজার ভ্যালু (EV) কম্পেনসেশন প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে। পরীক্ষায় একটি প্রাথমিক বিভাগ এবং একটি উন্নত বিভাগ রয়েছে।
বেসিক বিভাগটি পরীক্ষা করে যে EV ক্ষতিপূরণ CONTROL_AE_COMPENSATION_STEP-এর মাধ্যমে তৈরি করা রেঞ্জ ব্যবহার করে প্রয়োগ করা হয়েছে কিনা। প্রতিটি ক্ষতিপূরণ ভ্যালুতে আটটি ফ্রেম
ক্যাপচার করা হয়।
উন্নত বিভাগটি আটটি ধাপে এক্সপোজার বাড়ায় এবং প্রত্যাশিত উজ্জ্বলতার বিপরীতে পরিমাপ করা উজ্জ্বলতা পরীক্ষা করে। প্রত্যাশিত মান গণনা করা হয় কোনও EV ক্ষতিপূরণ প্রয়োগ না করা ছবির উজ্জ্বলতা থেকে এবং প্রত্যাশিত মান স্যাচুরেট করে যদি গণনা করা মান আসল ছবির মানের রেঞ্জকে ছাড়িয়ে যায়। প্রত্যাশিত ভ্যালু এবং পরিমাপ করা ভ্যালু না মিললে অথবা পাঁচটি ধাপের মধ্যে ছবি ওভারএক্সপোজ হলে টেস্ট ব্যর্থ হয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATIONandroid.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCKandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
বেসিক সেকশন পাস: ছবিতে পাঁচ ধাপের মধ্যে ওভারএক্সপোজ না করে ক্রমবর্ধমান এক্সপোজার দেখানো হয়।
ছবি ১৮. test_ev_compensation_basic.
উন্নত বিভাগ পাস: EV ক্ষতিপূরণ সেটিং বাড়ার সাথে সাথে লুমায় বৃদ্ধি ক্যাপচার করে। প্রতিটি EV ক্ষতিপূরণ সেটিংয়ের জন্য ক্যাপচার করা আটটি ফ্রেমে স্টেবল লুমা ভ্যালু আছে।
ছবি ১৯. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
ISO এবং এক্সপোজার টাইম পরিবর্তিত হওয়ার সাথে সাথে কনস্ট্যান্ট এক্সপোজার পাওয়া যাচ্ছে কিনা তা পরীক্ষা করে। এমন
সিরিজের শট নেয় যার ISO ও এক্সপোজার টাইম একে অপরের সাথে ব্যালেন্স করার জন্য বেছে নেওয়া হয়েছে।
ফলাফলে একই উজ্জ্বলতা থাকতে হবে, তবে সিকোয়েন্স জুড়ে ছবিটিতে
আরও নয়েজ থাকতে হবে। স্যাম্পেল পিক্সেলের গড় ভ্যালু একে অপরের কাছাকাছি কিনা তা যাচাই করে। যাচাই করে
যে ছবিগুলি 0 বা 1-এ ক্ল্যাম্প করা হয়নি (যা তাদের ফ্ল্যাট লাইনের মতো দেখাবে)। আপনার কনফিগারেশন ফাইলে debug ফ্ল্যাগ সেট করে RAW ছবির সাথেও টেস্ট রান করা যেতে পারে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
পাস: ছবির উজ্জ্বলতা একই থাকে, কিন্তু ISO বেশি হলে নয়েজ বেশি হয়। RGB প্লেন ফ্ল্যাট হয় যখন ISO*এক্সপোজার-এর ভ্যালু টেস্ট করা গেন স্পেসের উপর কনস্ট্যান্ট থাকে।
ব্যর্থতার মেকানিজম: নিম্নলিখিত চিত্রে, গেইন মাল্টিপ্লায়ার ভ্যালু (x-অ্যাক্সিস) বৃদ্ধি পাওয়ার সাথে সাথে, নরমালাইজড RGB প্লেন অ্যাভারেজ ভ্যালু (y-অ্যাক্সিস) কম গেইন মাল্টিপ্লায়ার ভ্যালু থেকে বিচ্যুত হতে শুরু করে।
ছবি ২০. test_exposure_plot_means.
ছবি ২১. test_exposure_mult=১.০০.
ছবি ২২. test_exposure_mult=64.00.
test_latching
FULL এবং
LEVEL_3 ক্যামেরার জন্য সেটিংস (এক্সপোজার এবং গেইন) সঠিক ফ্রেমে ল্যাচ করে কিনা তা পরীক্ষা করে। পরপর অনুরোধ ব্যবহার করে একাধিক শট নেয়,
শটগুলির মধ্যে ক্যাপচার অনুরোধের প্যারামিটার পরিবর্তন করে। ছবিতে প্রত্যাশিত প্রপার্টি
আছে কিনা তা চেক করে।
API টেস্ট করা হয়েছে:
পাস: ছবি [২, ৩, ৬, ৮, ১০, ১২, ১৩]-এর ISO বা এক্সপোজার বাড়ানো হয়েছে এবং নিচের ছবিতে প্লটে বেশি RGB গড় সহ দেখানো হয়েছে।
ছবি ২৩. test_latching প্লট মানে উদাহরণ।
Figure 24. test_latching i=00.
ছবি ২৫. test_latching i=01.
ছবি ২৬. test_latching i=02.
ছবি ২৭. test_latching i=03.
ছবি ২৮. test_latching i=04.
ছবি ২৯. test_latching i=05.
ছবি ৩০. test_latching i=06.
ছবি ৩১. test_latching i=07.
ছবি ৩২. test_latching i=08.
ছবি ৩৩. test_latching i=09.
ছবি ৩৪. test_latching i=১০.
ছবি ৩৫. test_latching i=১১.
ছবি ৩৬. test_latching i=১২.
test_linearity
ডিভাইস প্রসেসিং লিনিয়ার পিক্সেলে ইনভার্ট করা যায় কিনা তা পরীক্ষা করে। ডিভাইসটি একটি অভিন্ন টার্গেটে পয়েন্ট করে শটের একটি ক্রম ক্যাপচার করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCKandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
পাস: সংবেদনশীলতা বাড়ার সাথে সাথে R, G, B ভ্যালু অবশ্যই লিনিয়ারভাবে বাড়তে হবে।
ছবি ৩৭. test_linearity প্লট মানে উদাহরণ।
test_locked_burst
3A লক এবং YUV বার্স্ট (অটোমেটিক সেটিংস ব্যবহার করে) পরীক্ষা করে। এই টেস্টটি এমনভাবে ডিজাইন করা হয়েছে যাতে
MANUAL_SENSOR বা PER_FRAME_CONTROLS নেই এমন সীমিত ডিভাইসেও এটি পাস করে।
CTS-এ ফ্রেম রেট চেক করার সময় এই টেস্ট YUV ছবির ধারাবাহিকতা চেক করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
পাস: ক্যাপচার করা ছবিগুলি সামঞ্জস্যপূর্ণ।
ছবি ৩৮. test_locked_burst frame0-এর উদাহরণ।
ছবি ৩৯. test_locked_burst frame1-এর উদাহরণ।
ছবি ৪০. test_locked_burst frame2-এর উদাহরণ।
scene1_2
scene 1_2 হল scene 1_1-এর একটি ফাংশনালি আইডেন্টিক্যাল কপি, যা scene 1-এর বর্ধিত সময়সীমা কমানোর জন্য একটি সাবসিন স্ট্রাকচার প্রয়োগ করে।
test_param_color_correction
সেট করা হলে android.colorCorrection.* প্যারামিটার প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে।
বিভিন্ন ট্রান্সফর্ম ও গেন ভ্যালু সহ শট নেয় এবং সেগুলি যে আলাদা আলাদা দেখতে লাগছে তা
পরীক্ষা করে। আউটপুট আরও লাল বা নীল করার জন্য ট্রান্সফর্ম ও গেন বেছে নেওয়া হয়। একটি লিনিয়ার টোনম্যাপ ব্যবহার করে।
টোন ম্যাপিং হল ইমেজ প্রসেসিংয়ে ব্যবহৃত একটি কৌশল যার মাধ্যমে এক সেট রঙকে অন্য সেটে ম্যাপ করা হয়। এর ফলে, আরও সীমিত ডায়নামিক রেঞ্জ আছে এমন মাধ্যমে হাই-ডায়নামিক-রেঞ্জ ইমেজের মতো দেখতে ইমেজ তৈরি করা যায়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
পাস: ট্রান্সফর্মেশন অনুযায়ী R ও B ভ্যালু বুস্ট হয়।
ছবি ৪১. test_param_color_correction প্লট মানে উদাহরণ।
নিম্নলিখিত চিত্রে, x-অক্ষ হল ক্যাপচার অনুরোধ: ০ = ইউনিটি, ১ = রেড বুস্ট এবং ২ = ব্লু বুস্ট।
ছবি ৪২. test_param_color_correction req=0 ইউনিটি উদাহরণ।
ছবি ৪৩. test_param_color_correctness req=1 লাল রঙ বুস্ট করার উদাহরণ।
ছবি ৪৪. test_param_color_correction req=2 নীল রঙ বুস্ট করার উদাহরণ।
test_param_flash_mode
android.flash.mode প্যারামিটার প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে। ম্যানুয়ালি এক্সপোজারকে
ডার্ক সাইডে সেট করে, যাতে ফ্ল্যাশ ফায়ার হয়েছে কিনা তা বোঝা যায়
এবং লিনিয়ার টোনম্যাপ ব্যবহার করে। ফ্ল্যাশ ফায়ার করা হয়েছে কিনা তা যাচাই করার জন্য তৈরি করা কোনও বড় গ্রেডিয়েন্ট আছে কিনা তা দেখতে
টাইল ইমেজের সাথে কেন্দ্র চেক করে।
API টেস্ট করা হয়েছে:
পাস: টাইল ছবির কেন্দ্রে একটি বড় গ্রেডিয়েন্ট আছে, যার অর্থ হল ফ্ল্যাশ ফায়ার করা হয়েছে।
ছবি ৪৫. test_param_flash_mode 1-এর উদাহরণ।
ছবি ৪৬. test_param_flash_mode একটি টাইল উদাহরণ।
ছবি ৪৭. test_param_flash_mode 2-এর উদাহরণ।
ছবি ৪৮. test_param_flash_mode দুটি টাইল উদাহরণ।
test_param_noise_reduction
সেট করা হলে android.noiseReduction.mode প্যারামিটার সঠিকভাবে প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে। ক্যামেরার আলো কম থাকলে ছবি ক্যাপচার করে। ক্যাপচার করা ছবিতে যাতে নয়েজ থাকে তা নিশ্চিত করতে
হাই অ্যানালগ গেন ব্যবহার করে। NR বন্ধ, দ্রুত ও খুব ভালো কোয়ালিটির জন্য
তিনটি ছবি ক্যাপচার করে। এছাড়াও, কম গেন ও NR বন্ধ করে ছবি ক্যাপচার করে এবং
এটির ভ্যারিয়েন্স বেসলাইন হিসেবে ব্যবহার করে। সিগন্যাল টু নয়েজ (SNR) অনুপাত যত বেশি হবে, ছবির কোয়ালিটি তত ভালো হবে।
API টেস্ট করা হয়েছে:
পাস: SNR বিভিন্ন নয়েজ রিডাকশন মোডের সাথে পরিবর্তিত হয় এবং নিম্নলিখিত গ্রাফের মতো একইভাবে কাজ করে:
ছবি ৪৯. test_param_noise_reduction প্লট SNR-এর উদাহরণ।
0: বন্ধ, 1: দ্রুত, 2: HQ, 3: MIN , 4: ZSL
ছবি ৫০. test_param_noise_reduction high gain nr=0 উদাহরণ।
ছবি ৫১. test_param_noise_reduction high gain nr=1 উদাহরণ।
ছবি ৫২. test_param_noise_reduction high gain nr=২ উদাহরণ।
ছবি ৫৩. test_param_noise_reduction high gain nr=3 উদাহরণ।
ছবি ৫৪. test_param_noise_reduction কম গেন সংক্রান্ত উদাহরণ।
test_param_shading_mode
android.shading.mode প্যারামিটার প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
পাস: শেডিং মোড পরিবর্তন করা হয়েছে এবং লেন্স শেডিং ম্যাপ প্রত্যাশা অনুযায়ী পরিবর্তন করা হয়েছে।
ছবি ৫৫. test_param_shading_mode লেন্স শেডিং ম্যাপ, মোড ০ লুপ ০ উদাহরণ।
ছবি ৫৬. test_param_shading_mode লেন্স শেডিং ম্যাপ, মোড ১ লুপ ০ উদাহরণ।
ছবি ৫৭. test_param_shading_mode লেন্স শেডিং ম্যাপ, মোড ২ লুপ ০ উদাহরণ।
test_param_tonemap_mode
android.tonemap.mode প্যারামিটার প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে। প্রতিটি R, G, B চ্যানেলে আলাদা আলাদা
টোনম্যাপ কার্ভ প্রয়োগ করে এবং আউটপুট ছবি প্রত্যাশা অনুযায়ী
পরিবর্তিত হয়েছে কিনা তা চেক করে। এই টেস্টে দুটি টেস্ট আছে, test1 এবং test2।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
পাস:
test1: দুটি ছবিতেই লিনিয়ার টোনম্যাপ আছে, তবেn=1-এ আরও খাড়া গ্রেডিয়েন্ট আছে।n=1ছবির জন্য G (সবুজ) চ্যানেলটি আরও উজ্জ্বল।test2: একই টোনম্যাপ, কিন্তু দৈর্ঘ্য আলাদা। ছবিগুলি একই।
ছবি ৫৮. n=0 সহ test_param_tonemap_mode.
ছবি ৫৯. n=১ সহ test_param_tonemap_mode।
test_post_raw_sensitivity_boost
পোস্টের র' সংবেদনশীলতা বুস্ট চেক করে। বিভিন্ন সংবেদনশীলতা সহ র এবং YUV ছবির একটি সেট ক্যাপচার করে, র সংবেদনশীলতা বুস্ট কম্বিনেশন পোস্ট করে এবং আউটপুট পিক্সেল গড় অনুরোধ সেটিংসের সাথে মেলে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGEandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
পাস: বুস্ট বাড়ার সাথে সাথে র ইমেজ আরও ডার্ক হয়ে যায়, তবে YUV ইমেজের উজ্জ্বলতা একই থাকে।
ছবি ৬০. test_post_raw_sensitivity_boost raw s=3583 boost=0100 উদাহরণ।
ছবি ৬১. test_post_raw_sensitivity_boost raw s=1792 boost=0200 উদাহরণ।
ছবি ৬২. test_post_raw_sensitivity_boost raw s=0896 boost=0400 উদাহরণ।
ছবি ৬৩. test_post_raw_sensitivity_boost raw s=0448 boost=0800 উদাহরণ।
ছবি ৬৪. test_post_raw_sensitivity_boost raw s=0224 boost=1600 উদাহরণ।
ছবি ৬৫. test_post_raw_sensitivity_boost raw s=0112 boost=3199 উদাহরণ।
ছবি ৬৬. test_post_raw_sensitivity_boost র প্লট মানে উদাহরণ।
ছবি ৬৭. test_post_raw_sensitivity_boost YUV s=0112 boost=3199 উদাহরণ।
ছবি ৬৮. test_post_raw_sensitivity_boost YUV s=0448 boost=0800 উদাহরণ।
ছবি ৬৯. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 উদাহরণ।
ছবি ৭০. test_post_raw_sensitivity_boost YUV s=1792 boost=0200 উদাহরণ।
ছবি ৭১. test_post_raw_sensitivity_boost YUV s=3585 boost=0100 উদাহরণ।
ছবি ৭২. test_post_raw_sensitivity_boost_yuv_plot_means-এর উদাহরণ।
test_raw_exposure
এক্সপোজার টাইম বাড়িয়ে র-ইমেজের সেট ক্যাপচার করে এবং পিক্সেল ভ্যালু পরিমাপ করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
পাস: ISO (গেন) বাড়ালে পিক্সেল আলোর প্রতি আরও সংবেদনশীল হয়ে ওঠে, তাই প্লট বাঁদিকে সরে যায়।
ছবি ৭৩. test_raw_exposure ISO=৫৫ উদাহরণ।
১০⁰ হল ১ মিলি.সে., ১০¹ হল ১০ মিলি.সে. এবং ১০⁻¹ হল ০.১ মিলি.সে.।
ছবি ৭৪. test_raw_exposure ISO=১৩২ উদাহরণ।
ছবি ৭৫. test_raw_exposure ISO=২০৯ উদাহরণ।
ছবি ৭৬. test_raw_exposure ISOs=২৮৬ উদাহরণ।
ছবি ৭৭. test_raw_exposure ISO=363 উদাহরণ।
ছবি ৭৮. test_raw_exposure ISO=৪৪০ উদাহরণ।
test_reprocess_noise_reduction
আবার প্রসেস করার অনুরোধের জন্য android.noiseReduction.mode প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে।
ক্যামেরার আলো কম থাকলে, আবার প্রসেস করা ছবি ক্যাপচার করে। ক্যাপচার করা ছবি নয়েজি কিনা তা যাচাই করতে
হাই অ্যানালগ গেন ব্যবহার করে। NR বন্ধ, দ্রুত ও খুব ভাল কোয়ালিটির জন্য,
তিনটি রিপ্রসেস করা ছবি ক্যাপচার করে। কম গেন ও NR বন্ধ করে আবার প্রসেস করা ছবি ক্যাপচার করে
এবং এর ভ্যারিয়েন্সকে বেসলাইন হিসেবে ব্যবহার করে।
API টেস্ট করা হয়েছে:
পাস: FAST >= OFF, HQ >= FAST এবং HQ >> OFF.
ছবি ৭৯. সাধারণ SNR বনাম NR মোড প্লটের উদাহরণ।
test_tonemap_sequence
বিভিন্ন টোনম্যাপ কার্ভ সহ শটের একটি ক্রম পরীক্ষা করে। লিনিয়ার টোনম্যাপের সাহায্যে ৩টি ম্যানুয়াল শট ক্যাপচার করে। ডিফল্ট টোনম্যাপ সহ ৩টি ম্যানুয়াল শট ক্যাপচার করে। প্রতিটি পরপর ফ্রেম পেয়ারের মধ্যে ডেল্টা গণনা করে।
API টেস্ট করা হয়েছে:
পাস: তিনটি অভিন্ন ফ্রেমের পরে অন্য একটি সেট রয়েছে যেখানে তিনটি অভিন্ন ফ্রেম আছে।
ছবি ৮০. test_tonemap_sequence i=0 উদাহরণ।
ছবি ৮১. test_tonemap_sequence i=১ উদাহরণ।
ছবি ৮২. test_tonemap_sequence i=২ উদাহরণ।
ছবি ৮৩. test_tonemap_sequence i=3 উদাহরণ।
ছবি ৮৪. test_tonemap_sequence i=৪ উদাহরণ।
ছবি ৮৫. test_tonemap_sequence i=5 উদাহরণ।
test_yuv_jpeg_all
ইমেজ ক্যাপচারের জন্য রিপোর্ট করা সব সাইজ ও ফর্ম্যাট কাজ করছে কিনা তা পরীক্ষা করে। একটি লিনিয়ার টোনম্যাপ সহ ম্যানুয়াল অনুরোধ ব্যবহার করে যাতে image_processing_utils মডিউল দ্বারা কনভার্ট করার সময় YUV এবং JPEG একই রকম দেখায়। ছবি সাধারণত সেভ করা হয় না, তবে debug_mode চালু করে সেভ করা যেতে পারে।
API পরীক্ষা করা হয়েছে:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
পাস: সব ছবির কেন্দ্রে সর্বাধিক রুট মিন স্কোয়ার (RMS) (সিগন্যালের ভ্যালু) পার্থক্য আছে, যা RGB-তে কনভার্ট করা ছবিতে ৩% সর্বাধিক রেজোলিউশন YUV ছবির সমান।
ছবি ৮৬. test_yuv_jpeg_all উদাহরণ।
test_yuv_plus_dng
ইমেজ ক্যাপচার কাজ করার জন্য রিপোর্ট করা সাইজ ও ফর্ম্যাট পরীক্ষা করে।
API টেস্ট করা হয়েছে:
পাস: টেস্ট সম্পূর্ণ হয় এবং অনুরোধ করা ছবি ফেরত দেয়।
ছবি ৮৭. test_yuv_plus_dng-এর উদাহরণ।
scene1_3
scene 1_3 হল scene 1_1-এর একটি ফাংশনালি আইডেন্টিক্যাল কপি, যা scene 1-এর বর্ধিত সময়সীমা কমানোর জন্য একটি সাবসিন স্ট্রাকচার প্রয়োগ করে।
test_capture_result
CaptureResult অবজেক্টে সঠিক ডেটা ফিরে আসে কিনা তা পরীক্ষা করে। পরীক্ষায়
অটোমেটিক ক্যাপচার, ম্যানুয়াল ক্যাপচার ও দ্বিতীয় অটোমেটিক ক্যাপচার অন্তর্ভুক্ত।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
পাস: সব ক্যাপচারের জন্য মেটাডেটা সঠিক এবং ম্যানুয়াল সেটিংস দ্বিতীয় অটো ক্যাপচারে লিক হয় না। ক্যাপচারের জন্য লেন্স শেডিং কারেকশন প্লট করে।
ছবি ৮৮. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
DNG র মডেল প্যারামিটার সঠিক কিনা তা যাচাই করে। প্লটটি সংবেদনশীলতার একটি রেঞ্জে ক্যাপচার করা র শটে গ্রে কার্ডের একটি সেন্টার প্যাচের পরিমাপ করা বৈচিত্র্যকে চিত্রিত করে এবং ক্যামেরা HAL-এ DNG নয়েজ মডেল দ্বারা প্রতিটি সংবেদনশীলতায় প্রত্যাশিত বৈচিত্র্যের সাথে এই মানগুলির তুলনা করে (ক্যাপচার ফলাফল অবজেক্টে ফিরে আসা O,S প্যারামিটারের উপর ভিত্তি করে)। DNG নয়েজ মডেল সম্পর্কে আরও জানতে, DNG নয়েজ মডেল-এর নিম্নলিখিত ডকুমেন্ট ডাউনলোড করুন।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
পাস: DNG র মডেল প্যারামিটার সঠিক। প্রত্যাশিত RGB ভ্যালু পরিমাপ করা প্রকৃত RGB ভ্যালুর সাথে মিলে যায়।
ছবি ৮৯. test_dng_noise_model_plog.
test_jpeg
কনভার্ট করা YUV ছবি এবং ডিভাইসের JPEG ছবি একই রকম দেখতে কিনা তা পরীক্ষা করে। টেস্ট ছবির কেন্দ্রের ১০% অংশ নেয় এবং RGB ভ্যালু গণনা করে এবং সেগুলি মিলছে কিনা তা যাচাই করে।
API টেস্ট করা হয়েছে:
পাস: প্রতিটি ছবির মধ্যে গড় RGB পার্থক্য ৩%-এর কম।
ছবি ৯০. test_jpeg_fmt=jpg.jpg.
ছবি ৯১. test_jpeg=fmt=yuv.jpg.
test_raw_burst_sensitivity
ক্রমবর্ধমান গেন সহ র-ইমেজের একটি সেট ক্যাপচার করে এবং নয়েজ পরিমাপ করে। বার্স্টে, শুধুমাত্র র-ফটো ক্যাপচার করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
পাস: প্রতিটি শট আগের শটের চেয়ে বেশি নয়েজযুক্ত, কারণ গেইন বাড়ছে।
সেন্টার স্ট্যাটস গ্রিড সেলের ভ্যারিয়েন্স ব্যবহার করে।
ছবি ৯২. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
ক্রমবর্ধমান সংবেদনশীলতা সহ র-ইমেজের একটি সেট ক্যাপচার করে এবং ছবির কেন্দ্রে ১০% নয়েজ (ভেরিয়েন্স) পরিমাপ করে। প্রতিটি শট আগেরটির চেয়ে বেশি কোলাহলপূর্ণ কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
পাস: প্রতিটি শটের সাথে ভ্যারিয়েন্স বাড়ে।
ছবি ৯৩. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
YUV এবং JPEG আউটপুট হিসেবে একটি ফ্রেম ক্যাপচার করার টেস্ট। একটি লিনিয়ার টোনম্যাপ সহ ম্যানুয়াল অনুরোধ ব্যবহার করে যাতে image_processing_utils মডিউল দ্বারা কনভার্ট করার সময় YUV এবং JPEG একই রকম দেখায়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
পাস: YUV এবং JPEG ছবি একই রকম এবং ১% RMS-এর (সিগন্যালের মান) কম পার্থক্য আছে।
ছবি ৯৪. JPEG ফর্ম্যাট সহ test_yuv_plus_jpeg.
ছবি ৯৫. YUV ফর্ম্যাট সহ test_yuv_plus_jpeg.
test_yuv_plus_raw
র (১০-বিট এবং ১২-বিট র) এবং YUV আউটপুট, দুটি হিসেবেই একটি ফ্রেম ক্যাপচার করার পরীক্ষা করে,
যদি কাজ করে। লিনিয়ার টোনেম্যাপ সহ ম্যানুয়াল অনুরোধ ব্যবহার করে যাতে র এবং
YUV একই হবে বলে আশা করা হয়। RGB-তে কনভার্ট করা ছবির কেন্দ্রের
১০% RGB ভ্যালু তুলনা করে। লগandroid.shading.mode।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#RAW10android.graphics.ImageFormat#RAW12
পাস: YUV এবং র' ইমেজ একই রকম এবং ৩.৫% RMS-এর (সিগন্যালের রুট-মিন-স্কোয়ার ভ্যালু) কম পার্থক্য আছে।
ছবি ৯৬. test_yuv_plus_raw_shading=1_raw.jpg.
ছবি ৯৭. test_yuv_plus_raw_shading=1_yuv.jpg.
test_sensitivity_priority
আরও বেশি ISO এবং
বেড়ে যাওয়া নয়েজ লেভেলের মধ্যে পারস্পরিক সম্পর্ক কনফার্ম করতে বিভিন্ন ISO সেটিংস জুড়ে CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
পাস: ISO বেশি হলে নয়েজ লেভেলও বেশি হয়।
পরীক্ষা এড়িয়ে যাওয়ার মাপকাঠি
নিম্নলিখিত শর্তগুলির মধ্যে যেকোনও একটি পূরণ হলে test_sensitivity_priority.py টেস্ট
এড়িয়ে যাওয়া হয়:
- ডিভাইসে প্রথম API লেভেল (
first_api_level) ৩৫ বা তার কম। - ডিভাইসটি
CONTROL_AE_AVAILABLE_PRIORITY_MODES-এCONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYবিজ্ঞাপন দেখায় না।
test_exposure_time_priority
ISO ক্ষতিপূরণ করতে পারে এমন রেঞ্জে স্থিতিশীল উজ্জ্বলতা চেক করে, বিভিন্ন এক্সপোজার টাইম জুড়ে CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
টেস্ট করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
পাস: ISO তার ক্ষতিপূরণ রেঞ্জের মধ্যে থাকলে, এক্সপোজার টাইম জুড়ে উজ্জ্বলতা স্থিতিশীল (সহনশীলতার মধ্যে) থাকে।
পরীক্ষা এড়িয়ে যাওয়ার মাপকাঠি
নিম্নলিখিত শর্তগুলির মধ্যে যেকোনও একটি পূরণ হলে test_exposure_time_priority টেস্ট
এড়িয়ে যাওয়া হয়:
- ডিভাইসে প্রথম API লেভেল (
first_api_level) ৩৫ বা তার কম। - ডিভাইসটি
CONTROL_AE_AVAILABLE_PRIORITY_MODES-এCONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYবিজ্ঞাপন দেখায় না।
scene2_a
scene2_a-এ ধূসর ব্যাকগ্রাউন্ড ও নিউট্রাল পোশাক সহ তিনটি মুখ আছে। বিভিন্ন ধরনের স্কিন টোন দেখানোর জন্য
মুখগুলি বেছে নেওয়া হয়েছে। ফেস ডিটেকশন যাতে সবচেয়ে ভালোভাবে কাজ করতে পারে তার জন্য চার্টের
সঠিক ওরিয়েন্টেশন থাকতে হবে।
ছবি ৯৮. scene2_a-এর উদাহরণ।
test_autoframing
ক্যামেরা ডিভাইসের অটোফ্রেমিং আচরণ পরীক্ষা করে। এমনভাবে বড় জুম করে যাতে
দৃশ্যের কোনও মুখ দেখা না যায়, CaptureRequest-এ AUTOFRAMING-কে True-এ সেট করে
অটোফ্রেমিং মোড চালু করে এবং স্টেট কনভার্জ করলে (অর্থাৎ,
CaptureResult-এ AUTOFRAMING_STATE-কে AUTOFRAMING_STATE_CONVERGED-এ সেট করা হলে)
আসল দৃশ্যের সব মুখ শনাক্ত করা যায় কিনা তা যাচাই করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
পাস: তিনটি মুখই শনাক্ত করা হয়েছে।
test_display_p3
ColorSpaceProfiles API ব্যবহার করে JPEG-তে
ডিসপ্লে P3
ক্যাপচার করার পরীক্ষা করে। ক্যাপচার করা JPEG-এর
হেডারে উপযুক্ত
ICC প্রোফাইল
আছে কিনা এবং ছবিতে sRGB গ্যামাটের বাইরের রঙ আছে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
পাস: JPEG-তে Display P3 ICC প্রোফাইল এবং sRGB গ্যামাটের বাইরের রঙ রয়েছে।
test_effects
কাজ করে এমন ক্যামেরা এফেক্টের জন্য ফ্রেম ক্যাপচার করে এবং সেগুলি সঠিকভাবে তৈরি হয়েছে কিনা তা
চেক করে। টেস্টটি শুধুমাত্র OFF এবং MONO এফেক্ট চেক করে, কিন্তু সব কাজ করে এমন এফেক্টের জন্য
ছবি সেভ করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTSandroid.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
পাস: OFF এফেক্ট সহ দৃশ্যের ছবি এবং MONO এফেক্ট সহ মোনোক্রোম ছবি
ক্যাপচার করে।
ছবি ৯৯. test_effects_MONO.
test_exposure_keys_consistent
এই টেস্ট AE-চালু থাকা ক্যাপচারের গড় লুমাকে AE-বন্ধ থাকা ক্যাপচারের সাথে তুলনা করে যা ম্যানুয়ালি এক্সপোজার প্যারামিটার (সংবেদনশীলতা,
এক্সপোজার সময়, ফ্রেমের সময়কাল, পোস্ট র সংবেদনশীলতা বুস্ট) প্রয়োগ করে যা
CaptureResult
AE-চালু থাকা ক্যাপচারে পাওয়া যায়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
পাস: দুটি ক্যাপচারের মধ্যে লুমার আপেক্ষিক পার্থক্য ৪ শতাংশের কম।
test_format_combos
আউটপুট ফর্ম্যাটের বিভিন্ন কম্বিনেশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAPandroid.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()android.hardware.camera2.CameraCaptureSession#captureBurst()
পাস: সব কম্বিনেশন ক্যাপচার করা হয়েছে।
test_num_faces
ফেস ডিটেকশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
পাস: তিনটি ফেস খুঁজে পায়।
ছবি ১০০. test_num_faces ফেস ডিটেকশন মোড ১-এর উদাহরণ।
test_reprocess_uv_swap
YUV রিপ্রসেসিং U এবং V প্লেন অদলবদল করে না তা পরীক্ষা করে। এটি শনাক্ত করা হয় রিপ্রসেস করা ছবি এবং রিপ্রসেস না করা ক্যাপচারের মধ্যে পরম পার্থক্যের যোগফল (SAD) গণনা করে। আবার প্রসেস করা ক্যাপচারের আউটপুট U ও V প্লেন অদলবদল করার ফলে SAD বেড়ে গেলে, আউটপুটে সঠিক U ও V প্লেন আছে বলে ধরে নেওয়া হয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraDevice#createCaptureSessionandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSINGandroid.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
পাস: U এবং V প্লেন সোয়্যাপ করা হয়নি।
ছবি ১০১. test_reprocess_uv_swap উদাহরণ।
scene2_b
scene2_b-এ ধূসর ব্যাকগ্রাউন্ড ও নিউট্রাল পোশাক সহ তিনটি মুখ আছে। বিভিন্ন ধরনের স্কিন টোন দেখানোর জন্য
মুখগুলি বেছে নেওয়া হয়েছে। ফেস ডিটেকশন যাতে সবচেয়ে ভালোভাবে কাজ করতে পারে তার জন্য চার্টের
সঠিক ওরিয়েন্টেশন থাকতে হবে।
test_preview_num_faces
ফেস সিনগুলিতে স্কিন টোনের বৈচিত্র্য বাড়িয়ে প্রিভিউতে ফেস ডিটেকশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
পাস: ফেস বাউন্ডিং বক্সে ফেস ল্যান্ডমার্ক সহ তিনটি মুখ খুঁজে পায়।
ছবি ১০২. test_num_faces ফেস ডিটেকশন মোড ১-এর উদাহরণ।
test_yuv_jpeg_capture_sameness
সবচেয়ে বড় JPEG ফর্ম্যাটের মতো একই অ্যাস্পেক্ট রেশিও সহ সবচেয়ে বড় সাধারণ YUV এবং JPEG ফর্ম্যাট ব্যবহার করে দুটি ছবি ক্যাপচার করে, যার রেজোলিউশন ১৯২০x১৪৪০-এর বেশি নয়।
jpeg.quality-কে ১০০-তে সেট করে এবং ডুয়াল সারফেস অনুরোধ ক্যাপচার করে। দুটি ছবিকেই
RGB অ্যারেতে কনভার্ট করে এবং দুটি ছবির মধ্যে 3D রুট মিন স্কোয়ার (RMS) পার্থক্য
গণনা করে।
এছাড়াও, এই টেস্ট যাচাই করে যে সব কাজ করে এমন স্ট্রিম ব্যবহারের ক্ষেত্রে YUV আউটপুট
STILL_CAPTURE ব্যবহারের ক্ষেত্রে YUV-এর সাথে যুক্তিসঙ্গতভাবে একই রকম।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureRequest#JPEG_QUALITYandroid.graphics.ImageFormat#JPEG
পাস: STILL_CAPTURE ব্যবহারের ক্ষেত্রে YUV এবং JPEG ছবির মধ্যে
৩% RMS (সিগন্যালের রুট-মিন-স্কোয়ার ভ্যালু) পার্থক্যের কম; সব সমর্থিত ব্যবহারের ক্ষেত্রে
YUV ছবির মধ্যে STILL_CAPTURE ব্যবহারের ক্ষেত্রে YUV ছবির থেকে ৪% CIELAB পার্থক্যের কম।
scene2_c
test_num_faces
ফেস সিনগুলিতে ত্বকের রঙের বৈচিত্র্য বাড়িয়ে ফেস ডিটেকশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
পাস: তিনটি ফেস খুঁজে পায়।
ছবি ১০৩. test_num_faces ফেস ডিটেকশন মোডের উদাহরণ।
test_jpeg_capture_perf_class
CDD-এর বিভাগ ২.২.৭.২ ক্যামেরা -তে উল্লেখ করা S পারফর্ম্যান্স ক্লাসের জন্য JPEG ক্যাপচার লেটেন্সি টেস্ট করে।
পাস: দুটি প্রাইমারি ক্যামেরার ক্ষেত্রেই ITS লাইটিং কন্ডিশনে (3000K) CTS ক্যামেরা PerformanceTest দ্বারা পরিমাপ করা 1080p রেজোলিউশনের জন্য camera2 JPEG ক্যাপচার লেটেন্সি < 1000 ms হতেই হবে।
test_camera_launch_perf_class
CDD-তে বিভাগ ২.২.৭.২ ক্যামেরা হিসেবে উল্লেখ করা S পারফর্ম্যান্স ক্লাসের জন্য ক্যামেরা লঞ্চ লেটেন্সি পরীক্ষা করে।
পাস: ক্যামেরা২ স্টার্টআপ লেটেন্সি (ক্যামেরা থেকে প্রথম প্রিভিউ ফ্রেম) < ৬০০ মিলি সেকেন্ড হতে হবে, যা CTS ক্যামেরা পারফর্ম্যান্স টেস্টের মাধ্যমে দুটি প্রাইমারি ক্যামেরার জন্য ITS লাইটিং কন্ডিশনে (৩০০০K) পরিমাপ করা হয়।
test_default_camera_hdr
CDD-এর বিভাগ ২.২.৭.২ ক্যামেরা -তে যেমন উল্লেখ করা আছে, পারফর্ম্যান্স ক্লাস ১৫-এর জন্য ডিফল্ট ক্যামেরা ক্যাপচার আলট্রা HDR কিনা তা পরীক্ষা করে।
পাস: পারফর্ম্যান্স ক্লাস ১৫ ডিভাইসের জন্য ডিফল্ট ক্যামেরা প্যাকেজ ক্যাপচার অবশ্যই Ultra HDR হতে হবে।
scene2_d
test_preview_num_faces
ফেস সিনগুলিতে স্কিন টোনের বৈচিত্র্য বাড়িয়ে প্রিভিউতে ফেস ডিটেকশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
পাস: ফেস বাউন্ডিং বক্সে ফেস ল্যান্ডমার্ক সহ তিনটি মুখ খুঁজে পায়।
scene2_e
test_continuous_picture
ক্যাপচার অনুরোধের প্রথম সেটিংয়ের মাধ্যমে ৫০টি VGA রেজোলিউশন ফ্রেম ক্যাপচার করা হয়
android.control.afMode = 4 (CONTINUOUS_PICTURE).
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AF_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
পাস: ৫০-ফ্রেম ক্যাপচার করার শেষে 3A সিস্টেম সেটেল করে।
test_num_faces
ফেস সিনগুলিতে ত্বকের রঙের বৈচিত্র্য বাড়িয়ে ফেস ডিটেকশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
পাস: ৩টি মুখ খুঁজে পায়।
scene2_f
scene2_f-এ সাদা ব্যাকগ্রাউন্ড ও সাদা পোশাক সহ তিনটি মুখ আছে। মুখগুলিতে
বিভিন্ন ধরনের স্কিন টোন এবং ব্যাকগ্রাউন্ডের সাথে হাই-কনট্রাস্ট রয়েছে।
ছবি ১০৪. scene2_f-এর উদাহরণ।
test_preview_num_faces
ফেস সিনগুলিতে ত্বকের রঙের বৈচিত্র্য বাড়িয়ে ফেস ডিটেকশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
পাস: ফেস বাউন্ডিং বক্সে ফেস ল্যান্ডমার্ক সহ তিনটি মুখ খুঁজে পায়।
ছবি ১০৫. test_num_faces_fd_mode_1-এর উদাহরণ।
scene2_g
scene2_g-এ সাদা ব্যাকগ্রাউন্ড ও সাদা পোশাক পরে থাকা তিনটি প্রোফাইল ফেস আছে।
মুখগুলিতে বিভিন্ন ধরনের স্কিন টোন এবং ব্যাকগ্রাউন্ডের সাথে হাই-কনট্রাস্ট রয়েছে।
ছবি ১০৬. scene2_g-এর উদাহরণ।
test_preview_num_faces
ফেস সিনগুলিতে ত্বকের রঙের বৈচিত্র্য বাড়িয়ে ফেস ডিটেকশন পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
পাস: ফেস বাউন্ডিং বক্সে ফেস ল্যান্ডমার্ক সহ তিনটি মুখ খুঁজে পায়।
ছবি ১০৭. test_preview_num_faces-এর উদাহরণ।
scene3
scene3 ISO12233 চার্ট ব্যবহার করে এবং বেশিরভাগ টেস্টে দৃশ্যে চার্ট খুঁজে পেতে চার্ট এক্সট্র্যাক্টর পদ্ধতি ব্যবহার করা হয়। এই কারণে, সেভ করা বেশিরভাগ ছবিতে দৃশ্য ১, ২ বা ৪-এর মতো বর্ডার থাকে না, শুধু চার্ট থাকে। চার্ট ফাইন্ডার যাতে সবচেয়ে ভালোভাবে কাজ করতে পারে তার জন্য চার্টটি সঠিক ওরিয়েন্টেশনে থাকতে হবে।
Android 17 ও তার পরবর্তী ভার্সনে, চার্ট শনাক্তকরণের জন্য scene3 ArUco মার্কার ব্যবহার করে।
ছবি ১০৮. scene3 চার্ট।
test_edge_enhancement
android.edge.mode প্যারামিটার সঠিকভাবে প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে। প্রতিটি এজ মোডের জন্য নন-রিপ্রসেস ছবি ক্যাপচার করে এবং আউটপুট ছবির শার্পনেস ও ক্যাপচার ফলাফলের মেটাডেটা রিটার্ন করে। প্রদত্ত এজ মোড, সংবেদনশীলতা, এক্সপোজার টাইম, ফোকাস ডিস্ট্যান্স এবং আউটপুট সারফেস প্যারামিটার সহ ক্যাপচার অনুরোধ প্রসেস করে। Android 17 এবং তার পরবর্তী যেকোনও ভার্সনে, ArUco মার্কার ব্যবহার করে
চার্ট এরিয়া নির্ধারণ করা হয় যাতে প্রয়োজনীয় শার্প এজ থাকে।
পাস: HQ মোড (২) OFF মোডের (০) চেয়ে বেশি শার্প। FAST মোড (১) OFF মোডের
চেয়ে শার্প। HQ মোড FAST মোডের থেকে শার্প বা সমান।
API টেস্ট করা হয়েছে:
প্রভাবিত ক্যামেরা প্যারামিটার:
EDGE_MODE
ছবি ১০৯. test_edge_enhancement edge=0 উদাহরণ।
ছবি ১১০. test_edge_enhancement edge=1 (ফাস্ট মোড) উদাহরণ।
ছবি ১১১. test_edge_enhancement edge=২ (খুব ভাল কোয়ালিটি মোড) উদাহরণ।
test_flip_mirror
CDD-তে ৭.৫.২ ফ্রন্ট-ফেসিং ক্যামেরা অনুযায়ী ছবি সঠিকভাবে ওরিয়েন্টেড কিনা তা পরীক্ষা করে। Android 17 ও তার পরবর্তী ভার্সনে, চার্টের উপস্থিতি ও ওরিয়েন্টেশন, দুটিই যাচাই করতে ArUco মার্কার ব্যবহার করা হয়। মিরর করা, ফ্লিপ করা বা ঘোরানো ছবি কেন্দ্রের কাছাকাছি ডায়মন্ড ফিচার দ্বারা শনাক্ত করা যেতে পারে।
পাস: সব মার্কার শনাক্ত করা হয়েছে এবং সঠিকভাবে অ্যালাইন করা হয়েছে। ছবিটি ফ্লিপ, মিরর বা রোটেট করা হয়নি।
ছবি ১১২. test_flip_mirror সিন প্যাচের উদাহরণ।
test_imu_drift
ডিভাইসটি স্থির থাকা অবস্থায় এবং হাই-ডেফিনেশন প্রিভিউ ক্যাপচার করার সময় ইনার্শিয়াল মেজারমেন্ট ইউনিট (IMU) ৩০ সেকেন্ডের জন্য স্থিতিশীল আউটপুট দেয় কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_GYROSCOPEandroid.hardware.Sensor#TYPE_ROTATION_VECTOR
পাস:
- পরীক্ষার সময় জাইরোস্কোপের ড্রিফ্ট ০.০১ রেডিয়ানের কম।
- পরীক্ষার সময় জাইরোস্কোপ রিডিংয়ের ভ্যারিয়েন্স 1E-7 rad2/s2/Hz-এর কম।
- টেস্টের সময় রোটেশন ভেক্টরের ড্রিফ্ট ০.০১ রেডিয়ানের কম।
- (এখনও বাধ্যতামূলক নয়) জাইরোস্কোপের ড্রিফ্ট প্রতি সেকেন্ডে ১ ডিগ্রির কম।
ছবি ১১৩. test_imu_drift জাইরোস্কোপ ড্রিফ্টের উদাহরণ।
ছবি ১১৪. test_imu_drift রোটেশন ভেক্টর ড্রিফ্টের উদাহরণ।
test_landscape_to_portrait
ল্যান্ডস্কেপ-ওরিয়েন্টেড সেন্সরের জন্য ল্যান্ডস্কেপ-টু-পোর্ট্রেট ওভাররাইড ফাংশন সঠিকভাবে কাজ করে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODESandroid.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATIONandroid.hardware.camera2.CameraManager#getCameraCharacteristics
পাস: টেস্টটি প্রত্যাশিত রোটেশন সহ একটি চার্ট খুঁজে পায় (ল্যান্ডস্কেপ-টু-পোর্ট্রেট ওভাররাইড বন্ধ থাকলে ০ ডিগ্রি, চালু থাকলে ৯০ ডিগ্রি)।
ছবি ১১৫. test_landscape_to_portrait-এর উদাহরণ।
test_lens_movement_reporting
লেন্স মুভমেন্ট ফ্ল্যাগ সঠিকভাবে রিপোর্ট করা হয়েছে কিনা তা পরীক্ষা করে। প্রথম ১২টি ফ্রেম সবচেয়ে ভালো ফোকাস দূরত্বে (3A-এর মাধ্যমে যেমন পাওয়া যায়) এবং শেষ ১২টি ফ্রেম ন্যূনতম ফোকাস দূরত্বে রেখে ২৪টি ছবির একটি বার্স্ট ক্যাপচার করে। ১২ নম্বর ফ্রেমের কাছাকাছি, লেন্স নড়ে যায়, যার ফলে শার্পনেস কমে যায়। লেন্স চূড়ান্ত পজিশনে পৌঁছালে শার্পনেস অবশেষে স্থির হয়ে যায়।
লেন্স মুভমেন্ট ফ্ল্যাগ সব ফ্রেমে অ্যাসার্ট করতে হবে যেখানে শার্পনেস প্রথম কয়েকটি ফ্রেমে শার্পনেসের ইন্টারমিডিয়েট হয়, যেখানে লেন্স অপ্টিমাম ফোকাল ডিস্ট্যান্সে স্থির থাকে এবং শেষ কয়েকটি ফ্রেমে যেখানে লেন্স ন্যূনতম ফোকাল ডিস্ট্যান্সে স্থির থাকে। লেন্সটি যে সঠিক ফ্রেমে চলে তা গুরুত্বপূর্ণ নয়: গুরুত্বপূর্ণ হল লেন্সটি চলার সময় মুভমেন্ট ফ্ল্যাগটি অ্যাসার্ট করা হয়।
Android 17 ও তার পরবর্তী যেকোনও ভার্সনে, এই টেস্ট ArUco মার্কার ব্যবহার করে চার্ট এরিয়া নির্ধারণ করে যাতে প্রয়োজনীয় শার্প এজ থাকে। এই পদ্ধতি আল্ট্রা-ওয়াইড (UW) থেকে টেলি অ্যাপ্লিকেশনের ক্যামেরার জন্য একটি স্থিতিশীল শনাক্তকরণ প্রদান করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#LENS_STATEandroid.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
পাস: শার্পনেস পরিবর্তনের সাথে ফ্রেমে লেন্স মুভমেন্ট ফ্ল্যাগ হল True।
ব্যর্থতার মেকানিজম:
lens_moving: True(android.hardware.camera2.CaptureResult#LENS_STATE= 1) intest_log.DEBUGশুধুমাত্র সেইসব ফ্রেমেই অ্যাসার্ট করা হয় যেখানে শার্পনেস পরিবর্তন হচ্ছে না।test_log.DEBUG-এlens_moving: False(android.hardware.camera2.CaptureResult#LENS_STATE= 0) সহ ফ্রেমে শার্পনেসের পার্থক্য আছে, যা প্রথম কয়েকটি ফ্রেমের সাথে তুলনা করলে বোঝা যায়। এই ফ্রেমগুলি অপ্টিমাম ফোকাল দূরত্বে বা শেষ কয়েকটি ফ্রেম ন্যূনতম ফোকাস দূরত্বে আছে।
test_reprocess_edge_enhancement
এজ এনহান্সমেন্টের জন্য কাজ করা রিপ্রসেস পদ্ধতি সঠিকভাবে কাজ করে কিনা তা পরীক্ষা করে। প্রদত্ত রিপ্রসেস এজ মোডের সাথে ক্যাপচার অনুরোধ প্রসেস করে এবং রিপ্রসেস এজ মোড বন্ধ করে ক্যাপচার করার জন্য বিভিন্ন মোডের তুলনা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
পাস: বিভিন্ন এজ মোডের জন্য শার্পনেস সঠিক আছে। HQ (মোড ২)
OFF (মোড ০)-এর চেয়ে শার্প এবং বিভিন্ন মোডের মধ্যে উন্নতি একই রকম।
ছবি ১১৬. test_reprocess_edge_enhancement প্লটের উদাহরণ।
দৃশ্য৪
scene4-এ একটি বর্গক্ষেত্রের মধ্যে সাদা ব্যাকগ্রাউন্ডে একটি কালো বৃত্ত থাকে।
scene4-এ টেস্ট অ্যালাইনমেন্টের ক্ষেত্রে সংবেদনশীল হতে পারে, তাই Android 15 থেকে শুরু করে, আপনি DUT এবং চার্ট অ্যালাইনমেন্টের চেক চালু করতে
টুল ডিরেক্টরিতে check_alignment.py ব্যবহার করতে পারবেন।
ছবি ১১৭. scene4-এর উদাহরণ।
test_30_60fps_preview_fov_match
৩০ FPS ও ৬০ FPS প্রিভিউ ভিডিওর FoV একই কিনা তা পরীক্ষা করে। পরীক্ষাটি দুটি ভিডিও ক্যাপচার করে, একটি ৩০ FPS এবং অন্যটি ৬০ FPS সহ। প্রতিটি ভিডিও থেকে একটি করে প্রতিনিধিত্বমূলক ফ্রেম বেছে নেওয়া হয় এবং দুটি ভিডিওতে FoV-এর পরিবর্তন নির্দিষ্ট সীমার মধ্যে আছে কিনা তা যাচাই করার জন্য বিশ্লেষণ করা হয়। সার্কেলের অ্যাস্পেক্ট রেশিও কনস্ট্যান্ট থাকে, সার্কেলের কেন্দ্র স্থির থাকে এবং সার্কেলের ব্যাসার্ধ কনস্ট্যান্ট থাকে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
পাস: ছবি স্ট্রেচ করা হয়নি, ছবির কেন্দ্র ৩%-এর বেশি আলাদা নয় এবং ৩০ FPS ও ৬০ FPS ভিডিওর মধ্যে সর্বাধিক অ্যাস্পেক্ট রেশিও পরিবর্তন ৭.৫%-এর বেশি নয়
ব্যর্থতার মেকানিজম:
- ৩০ FPS ভিডিওর বৃত্তের সাইজ ৬০ FPS ভিডিওর বৃত্তের সাইজের থেকে উল্লেখযোগ্যভাবে আলাদা।
- ক্যাপচার করা ছবিতে বৃত্তটি প্রসেসিং পাইপলাইনের মাধ্যমে বিকৃত করা হয়েছে।
- ক্যাপচার করা ছবিতে বৃত্তটি ক্রপ করা হয়েছে কারণ ক্যাপচার অনুরোধের অ্যাস্পেক্ট রেশিও খুব বেশি যার ফলে ছবির উচ্চতা বা প্রস্থ কমে গেছে।
- ক্যাপচার করা ছবিতে বৃত্তের কেন্দ্রে প্রতিফলন আছে এবং এটি সম্পূর্ণভাবে পূরণ করা বলে মনে হচ্ছে না।
test_aspect_ratio_and_crop
ইমেজ পাইপলাইনে ছবি বিকৃত বা অপ্রত্যাশিতভাবে ক্রপ করা হয়েছে কিনা তা পরীক্ষা করে। সব ফর্ম্যাটে বৃত্তের ছবি তোলে। যাচাই করে দেখে যে বৃত্তটি বিকৃত নয়, বৃত্তটি ছবির কেন্দ্র থেকে সরে যায় না এবং বৃত্তটি বিভিন্ন অ্যাস্পেক্ট রেশিও বা রেজোলিউশনের সাথে ভুলভাবে সাইজ পরিবর্তন করে না।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
পাস: ছবি স্ট্রেচ করা হয়নি, ছবির কেন্দ্র ৩%-এর বেশি আলাদা নয় এবং সর্বাধিক সম্ভাব্য FoV বজায় রাখা হয়েছে।
ব্যর্থতার মেকানিজম:
- ক্যাপচার করা দৃশ্যের কেন্দ্রে ট্যাবলেটে দেখানো বৃত্তের সাথে ক্যামেরাটি সারিবদ্ধ নয়।
- ক্যাপচার করা ছবিতে বৃত্তটি প্রসেসিং পাইপলাইনের মাধ্যমে বিকৃত করা হয়েছে।
- কম রেজোলিউশনের ছবি, ইমেজ পাইপলাইনে ডবল ক্রপ করা হয়, যার ফলে হাই ও কম রেজোলিউশনের ছবির মধ্যে আলাদা FoV তৈরি হয়।
- ক্যাপচার করা ছবিতে বৃত্তটি ক্রপ করা হয়েছে কারণ ক্যাপচার অনুরোধের অ্যাস্পেক্ট রেশিও খুব বেশি যার ফলে ছবির উচ্চতা বা প্রস্থ কমে গেছে।
- ক্যাপচার করা ছবিতে বৃত্তের কেন্দ্রে প্রতিফলন আছে এবং এটি সম্পূর্ণভাবে পূরণ করা বলে মনে হচ্ছে না।
test_multi_camera_alignment
মাল্টি-ক্যামেরা সিস্টেমের জন্য ক্যামেরা পজিশনিং সম্পর্কিত ক্যামেরা ক্যালিব্রেশন প্যারামিটার পরীক্ষা করে। মাল্টি-ক্যামেরা ফিজিক্যাল সাবক্যামেরা ব্যবহার করে, ফিজিক্যাল ক্যামেরার একটির মাধ্যমে ছবি তোলে। বৃত্তের কেন্দ্রস্থল খুঁজে বের করে। প্রতিটি ক্যামেরার জন্য বৃত্তের কেন্দ্রকে ওয়ার্ল্ড কোঅর্ডিনেটে প্রজেক্ট করে। ওয়ার্ল্ড কোঅর্ডিনেটে ক্যামেরার বৃত্তের কেন্দ্রের মধ্যে পার্থক্য তুলনা করে। বৈধতা চেক করার জন্য, বিশ্বের স্থানাঙ্ককে আবার পিক্সেল স্থানাঙ্কে রিপ্রোজেক্ট করে এবং আসলটির সাথে তুলনা করে। ক্যামেরার ফোকাল দৈর্ঘ্য আলাদা কিনা তা চেক করে বৃত্তের আকার তুলনা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraCharacteristics#LENS_DISTORTIONandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATIONandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
পাস: ক্যামেরা ক্যালিব্রেশন ডেটা এবং ফোকাল দৈর্ঘ্য ব্যবহার করে ক্যাপচার করা ছবির সাথে তুলনা করে প্রজেক্ট করা ছবিতে বৃত্তের কেন্দ্র এবং আকার প্রত্যাশিত।
ব্যর্থতার মেকানিজম:
LENS_INTRINSIC_CALIBRATION,LENS_POSE_TRANSLATIONএবংLENS_POSE_ROTATIONহল ডিজাইন ভ্যালু এবং প্রকৃত ক্যালিব্রেশন ডেটা নয়।- ক্যামেরা সিস্টেম টেস্ট সেট-আপের জন্য উপযুক্ত নয়, যেমন, RFoV টেস্ট রিগ দিয়ে ওয়াইড ও আল্ট্রা-ওয়াইড ক্যামেরা সিস্টেম টেস্ট করা। আরও তথ্যের জন্য, Camera ITS-in-a-box সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী Q1 দেখুন।
test_preview_aspect_ratio_and_crop
স্টিল ক্যাপচারের জন্য test_aspect_ratio_and_crop টেস্টের
মতোই, প্রিভিউ ফ্রেমগুলি অনুপযুক্তভাবে প্রসারিত বা ক্রপ করা হয়নি তা যাচাই করতে
সমর্থিত প্রিভিউ ফর্ম্যাটগুলি চেক করে। এটি যাচাই করে যে
বৃত্তের অ্যাস্পেক্ট রেশিও পরিবর্তিত হয় না, ক্রপ করা ছবিতে বৃত্তটি ফ্রেমের
কেন্দ্রে থাকে এবং বৃত্তের সাইজ কনস্ট্যান্ট ফর্ম্যাট বা
বিভিন্ন রেজোলিউশনের (FoV চেক) জন্য পরিবর্তিত হয় না।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
পাস: ছবি স্ট্রেচ করা হয়নি, ছবির কেন্দ্র ৩%-এর বেশি আলাদা নয় এবং সর্বাধিক সম্ভাব্য FoV বজায় রাখা হয়েছে।
test_preview_stabilization_fov
FoV যাতে সঠিকভাবে ক্রপ করা হয় তা নিশ্চিত করতে সাহায্য করার জন্য কাজ করে এমন প্রিভিউ সাইজ চেক করে। টেস্টটি দুটি ভিডিও ক্যাপচার করে, একটি প্রিভিউ স্টেবিলাইজেশন
ON সহ এবং অন্যটি প্রিভিউ স্টেবিলাইজেশন OFF সহ। প্রতিটি ভিডিও থেকে একটি করে প্রতিনিধিত্বমূলক ফ্রেম বেছে নেওয়া হয় এবং দুটি ভিডিওর FoV-তে হওয়া পরিবর্তন স্পেসিফিকেশনের মধ্যে আছে কিনা তা যাচাই করার জন্য বিশ্লেষণ করা হয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
পাস: বৃত্তের অ্যাস্পেক্ট রেশিও প্রায় একই থাকে, বৃত্তের কেন্দ্রস্থল স্থির থাকে এবং বৃত্তের সাইজ ২০%-এর বেশি পরিবর্তিত হয় না।
test_video_aspect_ratio_and_crop
সব ভিডিও ফর্ম্যাট জুড়ে বর্গক্ষেত্রের মধ্যে থাকা বৃত্তের ভিডিও নেয়। মূল ফ্রেমগুলি এক্সট্র্যাক্ট করে এবং যাচাই করে যে বৃত্তের অ্যাস্পেক্ট রেশিও পরিবর্তিত হয় না, ক্রপ করা ছবিগুলি বৃত্তটিকে কেন্দ্রে রাখে এবং বৃত্তের আকার একটি ধ্রুবক ফর্ম্যাটের জন্য বা বিভিন্ন রেজোলিউশনের (FoV চেক) সাথে পরিবর্তিত হয় না।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
পাস: ভিডিও ফ্রেম স্ট্রেচ করা হয়নি, ফ্রেমের কেন্দ্র ৩%-এর বেশি আলাদা নয় এবং সর্বাধিক সম্ভাব্য FoV সংরক্ষিত আছে।
দৃশ্য৬
scene6 হল অনন্যভাবে শনাক্তযোগ্য ArUco মার্কারের গ্রিড।
scene6-এ টেস্ট অ্যালাইনমেন্টের ক্ষেত্রে সংবেদনশীল হতে পারে, তাই
15 থেকে শুরু করে, আপনি টুল ডিরেক্টরিতে check_alignment.py ব্যবহার করে
DUT এবং চার্ট অ্যালাইনমেন্টের চেক চালু করতে পারেন।
ছবি ১১৮. scene6-এর উদাহরণ।
test_in_sensor_zoom
ক্যামেরার ইন-সেন্সর জুম ফিচারের আচরণ পরীক্ষা করে, যা ক্রপ করা র' ছবি তৈরি করে।
স্ট্রিম ব্যবহারের কেস
CROPPED_RAW-এ সেট করা থাকলে,
পরীক্ষাটি জুম রেঞ্জে দুটি ক্যাপচার নেয়, একটি সম্পূর্ণ FoV
র-ইমেজ এবং একটি ক্রপ করা র-ইমেজ। পরীক্ষাটি ছবিগুলিকে RGB অ্যারেতে রূপান্তর করে, ফুল-সাইজের ক্রপ করা র' ছবিকে SCALER_RAW_CROP_REGION-এর রিপোর্ট করা সাইজে ডাউনস্কেল করে এবং দুটি ছবির মধ্যে 3D RMS পার্থক্য গণনা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
পাস: ডাউনস্কেল করা ক্রপ করা র' ইমেজ এবং সম্পূর্ণ FoV র' ইমেজের মধ্যে 3D RMS পার্থক্য টেস্টে সেট করা থ্রেশহোল্ডের থেকে কম।
test_zoom
আল্ট্রাওয়াইড লেন্স থেকে ওয়াইড লেন্স পর্যন্ত ক্যামেরা জুমের আচরণ পরীক্ষা করে। জুম রেঞ্জ জুড়ে ক্যাপচার নেয় এবং ক্যামেরা জুম ইন করার সাথে সাথে ArUco মার্কারগুলি বড় হয় কিনা তা পরীক্ষা করে। এছাড়াও, প্রতিটি ক্যাপচারে সেন্টার মার্কারের অবস্থান অনুমানযোগ্যভাবে পরিবর্তিত হয় কিনা তা পরীক্ষা করে। সেন্টার মার্কারের কেন্দ্র থেকে ছবির কেন্দ্রের দূরত্ব ফিজিক্যাল ক্যামেরা সুইচ না করা পর্যন্ত জুম অনুপাতের সাপেক্ষে একটি ধ্রুবক হারে পরিবর্তিত হতে পারে, অথবা ফিজিক্যাল ক্যামেরা সুইচ করার পরে একই মার্কারের লোকেশনের দিকে একঘেয়েভাবে পরিবর্তিত হতে পারে। পরীক্ষা করার আগে ডিভাইসে Jetpack Camera App (JCA) ইনস্টল করা থাকতে হবে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
পাস: ক্যামেরা সঠিকভাবে জুম করছে কিনা তা যাচাই করার জন্য অনুরোধ করা জুম অনুপাতের বিপরীতে ক্যাপচার করা ArUco মার্কারের আপেক্ষিক আকার সঠিক এবং পরীক্ষার বিবরণে বর্ণিত মানদণ্ড অনুযায়ী ছবির কেন্দ্রে মার্কারের দূরত্ব পরিবর্তিত হয়।
ছবি ১১৯. কেন্দ্রের সবচেয়ে কাছাকাছি ArUco মার্কারের কনট্যুর খুঁজে পেতে test_zoom।
test_low_latency_zoom
ক্যামেরার কম লেটেন্সি জুম আচরণ পরীক্ষা করে। android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)-এর সাহায্যে জুম রেঞ্জে ক্যাপচার করে এবং
আউটপুট ছবিতে মার্কারগুলি ক্যাপচার মেটাডেটাতে জুম অনুপাতের সাথে মেলে কিনা তা পরীক্ষা করে। একই ক্যামেরা ক্যাপচার সেশন ব্যবহার করে 3A কনভার্জ করা এবং
ক্যাপচার নেওয়া হয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDESandroid.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
পাস: ক্যাপচার করা মার্কারের আপেক্ষিক সাইজ জুম অনুপাত ফলাফলের মেটাডেটার সাথে মিলে যায়।
test_preview_video_zoom_match
রেকর্ডিং ও জুম করার সময় ভিডিও প্রিভিউ ও ভিডিও আউটপুট একই আউটপুট দেখায় ও রেকর্ড করে কিনা তা পরীক্ষা করে। বিভিন্ন জুম অনুপাতে কেন্দ্রের সবচেয়ে কাছের মার্কারের সাইজ গণনা করে এবং জুম অনুপাত বাড়ার সাথে সাথে মার্কারের সাইজ বাড়ে কিনা তা চেক করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
পাস: ভিডিও ও প্রিভিউতে অনুরোধ করা জুম অনুপাতের তুলনায় ক্যাপচার করা মার্কারের আপেক্ষিক সাইজ সঠিক।
ছবি ১২০. HD_1280x720_key_frame.png (জুম করার আগে)।
ছবি ১২১. preview_1280x720_key_frame.png (জুম করার আগে)।
ছবি ১২২. HD_1280x720_key_frame.png (জুম করার পরে)।
ছবি ১২৩. preview_1280x720_key_frame.png (জুম করার পরে)।
test_preview_zoom
প্রতিটি প্রিভিউ ফ্রেমের জুম অনুপাত আল্ট্রাওয়াইড লেন্স থেকে ওয়াইড লেন্স পর্যন্ত সংশ্লিষ্ট ক্যাপচার মেটাডেটার সাথে মেলে কিনা তা পরীক্ষা করে। এই টেস্টে জুম রেঞ্জ জুড়ে প্রিভিউ ফ্রেম নেওয়া হয় এবং কেন্দ্রের সবচেয়ে কাছাকাছি ArUco মার্কার খুঁজে বের করা হয়। তারপর, প্রতিটি ক্যাপচারে সেন্টার মার্কারের পজিশন প্রত্যাশিতভাবে পরিবর্তিত হচ্ছে কিনা তা টেস্ট চেক করে দেখে। সেন্টার মার্কারের কেন্দ্র থেকে ছবির কেন্দ্রের দূরত্ব ফিজিক্যাল ক্যামেরা সুইচ না করা পর্যন্ত জুম অনুপাতের সাপেক্ষে একটি ধ্রুবক হারে পরিবর্তিত হতে পারে, অথবা ফিজিক্যাল ক্যামেরা সুইচ করার পরে একই মার্কারের লোকেশনের দিকে একঘেয়েভাবে পরিবর্তিত হতে পারে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
পাস: বেছে নেওয়া ArUco মার্কারের আপেক্ষিক সাইজ, সব প্রিভিউ ফ্রেমের জন্য সংশ্লিষ্ট ক্যাপচার ফলাফলের রিপোর্ট করা জুম অনুপাতের জন্য সঠিক। ছবির কেন্দ্র থেকে বেছে নেওয়া মার্কারের আপেক্ষিক দূরত্ব, সব প্রিভিউ ফ্রেমের সংশ্লিষ্ট ক্যাপচার ফলাফলের রিপোর্ট করা জুম অনুপাতের জন্য সঠিক।
ছবি ১২৪. test_preview_zoom ছবিতে কেন্দ্রের সবচেয়ে কাছে বেছে নেওয়া মার্কার দেখানো হচ্ছে
test_session_characteristics_zoom
CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION-এ তালিকাভুক্ত সব কাজ করা সেশন কনফিগারেশনের জন্য জুম অনুপাতের রেঞ্জ পরীক্ষা করে।
এইসব কনফিগারেশনের প্রতিটির জন্য, যদি
CameraDeviceSetup#isSessionConfigurationSupported
true রিটার্ন করে, তাহলে টেস্ট যাচাই করে যে
CameraDeviceSetup#getSessionCharacteristics-এ
রিটার্ন করা জুম অনুপাতের রেঞ্জে পৌঁছানো যাবে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSIONandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
পাস: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION-এ তালিকাভুক্ত প্রতিটি কাজ করা SessionConfiguration-এর জন্য ন্যূনতম এবং সর্বাধিক জুম অনুপাত
উভয়ই অর্জন করা যেতে পারে।
scene7
scene7 হল একটি আয়তাকার ফ্রেম যা চারটি সমান চতুর্থাংশে বিভক্ত, প্রতিটি চতুর্থাংশ
আলাদা রঙে পূর্ণ। শার্পনেস চেক করার জন্য আয়তক্ষেত্রের কেন্দ্রে একটি স্ল্যান্টেড এজ চার্ট
রয়েছে। চারটি ArUco মার্কার আয়তক্ষেত্রের চারটি বাইরের কোণের সাথে
অ্যালাইন করা থাকে যাতে বিভিন্ন জুম অনুপাতে মূল আয়তক্ষেত্র ফ্রেমের সঠিক স্থানাঙ্ক
পাওয়া যায়।
ছবি ১২৫. scene7.
test_multi_camera_switch
এই টেস্টের মাধ্যমে যাচাই করা হয় যে বিভিন্ন জুম অনুপাতে প্রিভিউ রেকর্ডিংয়ের সময়, আল্ট্রাওয়াইড (UW) ও ওয়াইড (W) লেন্সের মধ্যে পরিবর্তন করলে একই ধরনের RGB ভ্যালু পাওয়া যায় কিনা।
ডায়নামিক প্রিভিউ রেকর্ডিং পারফর্ম করতে এবং ফিজিক্যাল ক্যামেরা পরিবর্তন হওয়ার পয়েন্ট শনাক্ত করতে, এই টেস্টে পূর্বনির্ধারিত রেঞ্জের মধ্যে বিভিন্ন জুম রেশিও ব্যবহার করা হয়। এই পয়েন্টটি UW থেকে W লেন্সে ক্রসওভার চিহ্নিত করে।
ক্রসওভার পয়েন্টে এবং তার আগে ক্যাপচার করা ফ্রেমগুলি অটো এক্সপোজার (AE), অটো হোয়াইট ব্যালেন্স (AWB) এবং অটোফোকাস (AF)-এর জন্য বিশ্লেষণ করা হয়।
AE চেক যাচাই করে যে UW এবং W লেন্সের ছবি দুটির জন্য লুমার পরিবর্তন প্রত্যাশিত সীমার মধ্যে আছে কিনা। AWB চেক, UW এবং W লেন্সের ছবির জন্য লাল-সবুজ এবং নীল-সবুজ অনুপাত থ্রেশহোল্ড মানের মধ্যে আছে কিনা তা যাচাই করে। AF চেক UW এবং W লেন্সের ছবির মধ্যে গড় গ্রেডিয়েন্ট ম্যাগনিটিউডের উপর ভিত্তি করে শার্পনেস অনুমান ভ্যালু মূল্যায়ন করে।
এই টেস্ট করার সময় যদি Moire এফেক্ট ফলাফলে হস্তক্ষেপ করে, তাহলে ক্যামেরা ITS অনুমোদিত ট্যাবলেটের তালিকা থেকে আরও বেশি রেজোলিউশন সহ ট্যাবলেট ব্যবহার করুন।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
পাস: টেস্টে পাস করতে হলে, AE ও AWB চেক অবশ্যই পাস করতে হবে। AF চেক ফলাফল শুধুমাত্র লগিংয়ের উদ্দেশ্যে ব্যবহার করা হয়। প্রতিটি চেকের জন্য মাপকাঠি নিচে দেওয়া হল:
- AE চেক: UW এবং W লেন্সের ছবির মধ্যে লুমার পরিবর্তন (Y ভ্যালু) অবশ্যই
সব কালার প্যাচের জন্য ৪%-এর কম হতে হবে, যদি ডিভাইস
ae_regionsএবংawb_regionsউভয়কেই সাপোর্ট করে। শুধুমাত্রae_regionsকাজ করলে, ধূসর রঙের প্যাচ ভ্যালুকে অবশ্যই মাপকাঠি পূরণ করতে হবে। - AWB চেক: ডিভাইসে
ae_regionsএবংawb_regions, দুটিই কাজ করলে, UW এবং W লেন্সের ছবির জন্য লাল-সবুজ এবং নীল-সবুজ ভ্যালুর মধ্যে পার্থক্য ধূসর রঙের প্যাচের জন্য ৩%-এর কম এবং অন্যান্য রঙের প্যাচের জন্য ১০%-এর কম হতে হবে। - AF চেক: W লেন্স ক্যাপচারের জন্য ছবির শার্পনেস অবশ্যই UW ক্যাপচারের শার্পনেসের চেয়ে বেশি হতে হবে।
ছবি ১২৬. UW লেন্স দিয়ে তোলা ধূসর প্যাচ।
ছবি ১২৭. W লেন্স দিয়ে তোলা ধূসর প্যাচ।
scene8
scene8 হল একটি আয়তাকার ফ্রেম যা চারটি সমান অংশে বিভক্ত, যার প্রতিটিতে
আলাদা এক্সপোজার সহ তোলা বা আলাদা রঙের শেড (নীল শেড, বেশি এক্সপোজার, কম এক্সপোজার, হলুদ শেড) সহ ওভারলে করা একটি পোর্ট্রেট রয়েছে।
প্রধান আয়তক্ষেত্রাকার ফ্রেমের সঠিক স্থানাঙ্ক পেতে,
চারটি ArUco মার্কার আয়তক্ষেত্রের চারটি বাইরের কোণের সাথে অ্যালাইন করা আছে।
ছবি ১২৮. scene8-এর উদাহরণ।
test_ae_awb_regions
বিভিন্ন AE এবং AWB অঞ্চলে প্রিভিউ রেকর্ডিং করার সময় RGB এবং লুমা ভ্যালু আলাদা কিনা তা পরীক্ষা করে।
টেস্টটি ৮ সেকেন্ডের প্রিভিউ রেকর্ডিং রেকর্ড করে, প্রতিটি কোয়াড্রেন্টে ২ সেকেন্ডের জন্য AE এবং AWB মিটারিং পারফর্ম করে। তারপর, টেস্টটি প্রতিটি অঞ্চলের প্রিভিউ রেকর্ডিং থেকে একটি ফ্রেম এক্সট্র্যাক্ট করে এবং এক্সট্র্যাক্ট করা ফ্রেমগুলি ব্যবহার করে নিম্নলিখিত AE এবং AWB চেকগুলি সম্পাদন করে:
- AE চেক: এটি যাচাই করে যে, কম এক্সপোজার সহ অঞ্চল পরিমাপকারী ফ্রেমের লুমা ভ্যালু, বেশি এক্সপোজার সহ অঞ্চল পরিমাপকারী ফ্রেমের লুমা ভ্যালুর চেয়ে ১%-এর বেশি বৃদ্ধি পেয়েছে কিনা। এটি যাচাই করে যে অন্ধকার অঞ্চল পরিমাপ করার সময় ছবিগুলি উজ্জ্বল হয়েছে কিনা।
- AWB চেক: নীল মিটারিং অঞ্চল সহ ফ্রেমে লাল থেকে নীলের অনুপাত (ছবির গড় RGB মান) হলুদ মিটারিং অঞ্চল সহ ফ্রেমের চেয়ে ২% বেশি কিনা তা যাচাই করে। এটি যাচাই করে যে হলুদ (উষ্ণ) বা নীল (শীতল) অঞ্চল পরিমাপ করার সময় ছবিতে একটি ভারসাম্যপূর্ণ RGB মান আছে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AEandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
পাস: AE এবং AWB চেক উভয়ই পাস করে।
ছবি ১২৯. ফ্রেম মিটারিং ডার্ক রিজিয়ন, এক্সপোজার বাড়ানো সহ।
ছবি ১৩০. কম এক্সপোজার সহ ফ্রেম মিটারিং লাইটার অঞ্চল।
ব্যর্থতার মেকানিজম:
এই পরীক্ষার জন্য চারটি ArUco মার্কারই সঠিকভাবে শনাক্ত করা জরুরি। প্রাথমিক শনাক্তকরণ ব্যর্থ হলে, সিস্টেম ছবির সাদা-কালো ভার্সন ব্যবহার করে দ্বিতীয়বার শনাক্ত করার চেষ্টা করে। নিচের গ্রে-স্কেল ছবিটি সেকেন্ডারি প্রসেসিং ধাপকে বোঝায়:
ছবি ১৩১. ArUco মার্কার মিসঅ্যালাইনমেন্ট।
test_color_correction_mode_cct
বিভিন্ন কালার টেম্পারেচার ও টিন্ট জুড়ে COLOR_CORRECTION_MODE
পরীক্ষা করে, ক্যাপচার করা দৃশ্যের সাথে RGB অনুপাতের পরিবর্তন যাচাই করে, scene8।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGEandroid.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
পাস: RGB অনুপাত, বেছে নেওয়া কালার টেম্পারেচার ও টিন্টের সাপেক্ষে প্রত্যাশিত বৃদ্ধি বা হ্রাস দেখায়।
পরীক্ষা এড়িয়ে যাওয়ার মাপকাঠি
নিম্নলিখিত শর্তগুলির মধ্যে যেকোনও একটি পূরণ হলে test_color_correction_mode_cct টেস্ট
এড়িয়ে যাওয়া হয়:
- ডিভাইসে প্রথম API লেভেল (
first_api_level) ৩৫ বা তার কম। - ডিভাইসটি
COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES-এCOLOR_CORRECTION_MODE_CCTবিজ্ঞাপন দেখায় না।
দৃশ্য৯
scene9-এ হাজার হাজার এলোমেলো সাইজ ও রঙের বৃত্ত থাকে যা JPEG কম্প্রেশন অ্যালগরিদমকে
স্ট্রেস করার জন্য খুব কম পুনরাবৃত্তিযোগ্যতা সহ একটি দৃশ্য তৈরি করে।
ছবি ১৩২. scene9-এর উদাহরণ।
test_jpeg_high_entropy
scene9-এ ক্যামেরা JPEG কম্প্রেশন কাজ করে কিনা তা পরীক্ষা করে, যেখানে হাই এন্ট্রপি এবং
JPEG কোয়ালিটি ফ্যাক্টর ১০০% সেট করা থাকে। ট্যাবলেটে দেখানো দৃশ্য ক্যামেরার FoV পূরণ করে কিনা তা যাচাই করতে
জুম ফ্যাক্টর বাড়ানো হয়।
API টেস্ট করা হয়েছে:
পাস: JPEG ফাইল সঠিকভাবে কম্প্রেস করা, লেখা এবং ডিস্ক থেকে রিড করা হয়েছে।
test_jpeg_quality
ক্যামেরার JPEG কম্প্রেশন কোয়ালিটি টেস্ট করে। JPEG কোয়ালিটি
android.jpeg.quality-এর মাধ্যমে স্টেপ করে এবং কোয়ান্টাইজেশন টেবিল সঠিকভাবে পরিবর্তন হয়েছে কিনা তা যাচাই করে।
API টেস্ট করা হয়েছে:
পাস: কোয়ালিটি বাড়ার সাথে সাথে কোয়ান্টাইজেশন ম্যাট্রিক্স কমে যায়। (ম্যাট্রিক্স বিভাজন ফ্যাক্টরকে উপস্থাপন করে।)
ছবি ১৩৩. Pixel 4 রিয়ার ক্যামেরা লুমা ও ক্রোমা DQT ম্যাট্রিক্সের গড় বনাম JPEG কোয়ালিটি।
ছবি ১৩৪. ব্যর্থ টেস্টের উদাহরণ।
scene_extensions
scene_extensions টেস্ট ক্যামেরা এক্সটেনশনের জন্য এবং অবশ্যই
Camera ITS-in-a-Box ব্যবহার করতে হবে,
কারণ এগুলির জন্য টেস্টিং এনভায়রনমেন্টের সুনির্দিষ্ট কন্ট্রোল প্রয়োজন। এছাড়াও,
সব লাইট লিকেজ অবশ্যই কন্ট্রোল করতে হবে। এর জন্য টেস্ট রিগ, DUT ও ট্যাবলেট ড্রপ ক্লথ দিয়ে ঢেকে দিতে হতে পারে এবং DUT-এর সামনের স্ক্রিন থেকে আলো লিক হওয়া বন্ধ করতে হতে পারে।
scene_hdr
scene_hdr দৃশ্যে বাঁদিকে একটি পোর্ট্রেট এবং ডানদিকে একটি কম-কন্ট্রাস্টের
QR কোড রয়েছে।
ছবি ১৩৫. scene_hdr-এর উদাহরণ।
test_hdr_extension
HDR এক্সটেনশন পরীক্ষা করে। এক্সটেনশন চালু করে এবং চালু না করে ক্যাপচার করে এবং এক্সটেনশনটি QR কোডকে আরও শনাক্তযোগ্য করে তোলে কিনা তা চেক করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
পাস: QR কোড শনাক্ত করার জন্য HDR এক্সটেনশন কন্ট্রাস্ট পরিবর্তনের সংখ্যা কমায় অথবা QR কোড জুড়ে গ্রেডিয়েন্ট কমায়।
scene_low_light
scene_low_light দৃশ্যে কালো ব্যাকগ্রাউন্ডে ধূসর রঙের বিভিন্ন শেডের বর্গক্ষেত্রের গ্রিড রয়েছে এবং বর্গক্ষেত্রের গ্রিডটি একটি লাল
আউটলাইন দ্বারা আবদ্ধ। বর্গক্ষেত্রগুলি হিলবার্ট কার্ভ ওরিয়েন্টেশনে সাজানো হয়েছে।
ছবি ১৩৬. scene_low_light-এর উদাহরণ।
test_night_extension
নাইট এক্সটেনশন পরীক্ষা করে। এক্সটেনশন চালু করে ক্যাপচার করে এবং নিম্নলিখিত কাজগুলি করে:
- ২০টি বর্গক্ষেত্রের উপস্থিতি শনাক্ত করে
- প্রতিটি বর্গক্ষেত্র দ্বারা আবদ্ধ লুমা গণনা করে
- হিলবার্ট কার্ভ গ্রিড ওরিয়েন্টেশন অনুযায়ী প্রথম ৬টি বর্গক্ষেত্রের গড় লুমা ভ্যালু গণনা করে
- পরপর বর্গক্ষেত্রের (যেমন, বর্গক্ষেত্র২ - বর্গক্ষেত্র১) লুমা ভ্যালুর পার্থক্য গণনা করে, বর্গক্ষেত্র ৫ ও ৬ (বর্গক্ষেত্র৬ - বর্গক্ষেত্র৫) পর্যন্ত এবং পাঁচটি গণনা করা পার্থক্যের গড় খুঁজে বের করে।
Android 16 বা তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইসের ক্ষেত্রে, ক্যাপচার অনুরোধে বর্গক্ষেত্রের গ্রিডকে আবদ্ধ করা আয়তক্ষেত্রের সাথে সম্পর্কিত একটি মিটারযুক্ত অঞ্চল অন্তর্ভুক্ত থাকে। এই সংযোজন থ্রেশহোল্ড পাস করার মাপকাঠি পরিবর্তন করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
পাস:
- Android 16 বা তার পরবর্তী ভার্সনে চলা ডিভাইসের ক্ষেত্রে, প্রথম ৬টি স্কোয়ারের গড় লুমা ভ্যালু কমপক্ষে ৮০ হতে হবে এবং ৫ ও ৬ নম্বর স্কোয়ার পর্যন্ত পরপর স্কোয়ারের লুমা ভ্যালুর গড় পার্থক্য কমপক্ষে ১৮.৭৫ হতে হবে।
- Android 15 এবং এর আগের যেকোনও ভার্সনে চলা ডিভাইসের ক্ষেত্রে, প্রথম ৬টি স্কোয়ারের গড় লুমা ভ্যালু কমপক্ষে ৮৫ হতে হবে এবং ৫ ও ৬ নম্বর স্কোয়ার পর্যন্ত পরপর স্কোয়ারের লুমা ভ্যালুর গড় পার্থক্য কমপক্ষে ১৭ হতে হবে।
নিম্নলিখিত লুমিন্যান্স প্লট থেকে বোঝা যায় যে টেস্টে পাস করলে ফলাফল কেমন দেখায়।
ছবি ১৩৭. কম আলোয় রাতের দৃশ্যের পাসিং টেস্টের উদাহরণ।
test_low_light_boost_extension
লো লাইট বুস্ট AE মোড পরীক্ষা করে। Camera2 যদি কম আলোয় বুস্ট AE মোড সাপোর্ট করে, তাহলে এই পরীক্ষাটি Camera2-এর জন্য করা হয়। নাইট মোড ক্যামেরা এক্সটেনশন কাজ করলে এবং এক্সটেনশনটি কম আলোতে বুস্ট AE মোড সাপোর্ট করলে, এই পরীক্ষাটি নাইট মোড ক্যামেরা এক্সটেনশনের জন্যও করা হয়। এই টেস্ট AE মোডকে কম আলোয় বুস্ট করার জন্য সেট করে, প্রিভিউ থেকে একটি ফ্রেম নেয় এবং নিম্নলিখিত কাজগুলি করে:
- ২০টি বক্সের উপস্থিতি শনাক্ত করে
- প্রতিটি বক্সের দ্বারা বাউন্ড করা লুমা গণনা করে
- হিলবার্ট কার্ভ গ্রিড ওরিয়েন্টেশন অনুযায়ী প্রথম ৬টি বর্গক্ষেত্রের গড় লুমা ভ্যালু গণনা করে
- পরপর বর্গক্ষেত্রের (যেমন, বর্গক্ষেত্র২ - বর্গক্ষেত্র১) লুমা ভ্যালুর পার্থক্য গণনা করে, বর্গক্ষেত্র ৫ ও ৬ (বর্গক্ষেত্র৬ - বর্গক্ষেত্র৫) পর্যন্ত এবং পাঁচটি গণনা করা পার্থক্যের গড় খুঁজে বের করে।
Android 16 বা তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইসের ক্ষেত্রে, ক্যাপচার অনুরোধে বর্গক্ষেত্রের গ্রিডকে আবদ্ধ করা আয়তক্ষেত্রের সাথে সম্পর্কিত একটি মিটারযুক্ত অঞ্চল অন্তর্ভুক্ত থাকে। এই সংযোজন থ্রেশহোল্ড পাস করার মাপকাঠি পরিবর্তন করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_MODESandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITYandroid.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
পাস:
Android 16 বা তার পরবর্তী ভার্সনে চলা ডিভাইসের ক্ষেত্রে, প্রথম ৬টি স্কোয়ারের গড় লুমা ভ্যালু কমপক্ষে ৫৪ হতে হবে এবং ৫ ও ৬ নম্বর স্কোয়ার পর্যন্ত পরপর স্কোয়ারের লুমা ভ্যালুর গড় পার্থক্য কমপক্ষে ১৭ হতে হবে।
Android 15 এবং এর আগের যেকোনও ভার্সনে চলা ডিভাইসের ক্ষেত্রে, প্রথম ৬টি স্কোয়ারের গড় লুমা ভ্যালু কমপক্ষে ৭০ হতে হবে এবং ৫ ও ৬ নম্বর স্কোয়ার পর্যন্ত পরপর স্কোয়ারের লুমা ভ্যালুর গড় পার্থক্য কমপক্ষে ১৮ হতে হবে।
scene_tele
scene_tele পরীক্ষার জন্য একটি মূল প্রয়োজনীয়তা হল যে চার্টের দূরত্ব অবশ্যই
টেলিফটো লেন্সের ন্যূনতম ফোকাস দূরত্বের সমান হতে হবে। যেহেতু এই ন্যূনতম ফোকাস
দূরত্ব ডিভাইস অনুযায়ী আলাদা হতে পারে, তাই নির্দিষ্ট টেলিফটো ক্যামেরার সাথে মানানসই
হওয়ার জন্য আপনাকে সেট-আপ কনফিগার করতে হবে।
ছবি ১৩৮. ওয়াইড ও টেলি ক্যামেরার ফোকাস দূরত্বের উপর ভিত্তি করে scene_tele সেট-আপ।
হার্ডওয়্যার সেট-আপ পরীক্ষা করার ব্যাপারে আরও জানতে, টেলি এক্সটেনশন রিগ সেট-আপ দেখুন।
scene6_tele
scene6_tele দৃশ্যে সাদা ব্যাকগ্রাউন্ডে ArUco মার্কারের গ্রিড
রয়েছে।
মডিউলার রিগ-এ scene6_tele ক্যাপচার
অতিরিক্ত এক্সপোজড বলে মনে হলে, মডিউলার রিগ-এর
সামনের প্লেটটি সরিয়ে দিন।
এক্সটেনশন থেকে WFoV টেস্ট রিগ ডিসকানেক্ট করুন এবং ফোন মাউন্ট সরিয়ে দিন।
ছবি ১৩৯. এক্সটেনশন থেকে WFoV টেস্ট রিগ ডিসকানেক্ট করুন এবং ফোন মাউন্ট সরিয়ে দিন।
ছবি ১৪০. সামনের প্লেটটি সরিয়ে দিন।
test_zoom_tele
ওয়াইড লেন্স থেকে টেলিফটো লেন্স পর্যন্ত ক্যামেরা জুমের আচরণ পরীক্ষা করে। test_zoom-এর মতোই
এই পরীক্ষাটি করা হয়, তবে এটি ওয়াইড লেন্স থেকে টেলিফটো লেন্স পর্যন্ত ক্যামেরা জুমের
আচরণ পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
পাস: ক্যামেরা সঠিকভাবে জুম করছে কিনা তা যাচাই করার জন্য অনুরোধ করা জুম অনুপাতের বিপরীতে ক্যাপচার করা ArUco মার্কারের আপেক্ষিক আকার সঠিক এবং ছবির কেন্দ্রে মার্কারের দূরত্ব test_zoom-এ তালিকাভুক্ত মানদণ্ড অনুযায়ী পরিবর্তিত হয়।
test_preview_zoom_tele
ওয়াইড লেন্স থেকে টেলিফটো লেন্স পর্যন্ত প্রিভিউ ফ্রেমের জন্য ক্যামেরা জুমের আচরণ পরীক্ষা করে। এই পরীক্ষাটি
test_preview_zoom-এর মতো একই, তবে এটি ওয়াইড লেন্স থেকে টেলিফটো লেন্স পর্যন্ত প্রিভিউ ফ্রেমের জন্য ক্যামেরা জুম
আচরণ পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
পাস: ক্যামেরা সঠিকভাবে জুম করছে কিনা তা যাচাই করার জন্য অনুরোধ করা জুম অনুপাতের বিপরীতে ক্যাপচার করা ArUco মার্কারের আপেক্ষিক আকার সঠিক এবং test_preview_zoom-এ তালিকাভুক্ত মানদণ্ড অনুযায়ী ছবির কেন্দ্রে মার্কারের দূরত্ব পরিবর্তিত হয়।
scene7_tele
scene7_tele, scene7-এর মতোই, তবে টেলিফটো লেন্স
টেস্ট করার জন্য সেট-আপ করা হয়েছে। এটি একটি আয়তাকার ফ্রেম যা চারটি সমান চতুর্ভুজে বিভক্ত, প্রতিটি আলাদা রঙে
ভরা। শার্পনেস চেক করার জন্য আয়তক্ষেত্রের মাঝখানে একটি স্ল্যান্টেড এজ চার্ট
রয়েছে। চারটি ArUco মার্কার আয়তক্ষেত্রের চারটি বাইরের কোণের সাথে অ্যালাইন করা থাকে,
যাতে বিভিন্ন জুম অনুপাতে মূল আয়তক্ষেত্র ফ্রেমের সঠিক স্থানাঙ্ক পেতে
সাহায্য করা যায়।
test_multi_camera_switch_tele
এই টেস্টের মাধ্যমে যাচাই করা হয় যে বিভিন্ন জুম অনুপাতে প্রিভিউ রেকর্ডিংয়ের সময়, ওয়াইড (W) ও টেলিফটো (tele) লেন্সের মধ্যে পরিবর্তন করলে একই ধরনের RGB ভ্যালু পাওয়া যায় কিনা।
ডায়নামিক প্রিভিউ রেকর্ডিং পারফর্ম করতে এবং ফিজিক্যাল ক্যামেরা পরিবর্তন হওয়ার পয়েন্ট শনাক্ত করতে, এই টেস্টে পূর্বনির্ধারিত রেঞ্জের মধ্যে বিভিন্ন জুম রেশিও ব্যবহার করা হয়। এই পয়েন্টটি W থেকে টেলি লেন্সে ক্রসওভার চিহ্নিত করে।
ক্রসওভার পয়েন্টে এবং তার আগে ক্যাপচার করা ফ্রেমগুলি AE, AWB এবং AF-এর জন্য বিশ্লেষণ করা হয়।
AE চেক যাচাই করে যে W এবং টেলি লেন্স, দুটির ক্ষেত্রেই লুমার পরিবর্তন প্রত্যাশিত রেঞ্জের মধ্যে আছে কিনা। AWB চেক লাল-সবুজ এবং নীল-সবুজের অনুপাত W এবং টেলি লেন্স ইমেজ উভয়ের জন্য থ্রেশহোল্ড মানের মধ্যে আছে কিনা তা যাচাই করে। AF চেক W এবং টেলি লেন্সের ছবির মধ্যে গড় গ্রেডিয়েন্ট ম্যাগনিটিউডের উপর ভিত্তি করে শার্পনেস অনুমান মান মূল্যায়ন করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
পাস: টেস্টে পাস করতে হলে, AE, AWB ও AF চেক অবশ্যই পাস করতে হবে। প্রতিটি চেকের জন্য নিম্নলিখিত মাপকাঠি রয়েছে:
- AE চেক: W এবং টেলি লেন্সের ছবির মধ্যে লুমার পরিবর্তন ৪%-এর কম হতে হবে।
- AWB চেক: LAB কালার স্পেসে, ওয়াইড ও টেলিফোটোর জন্য লাল-সবুজ ও নীল-সবুজের মধ্যে ডেল্টা C-এর মান ১০-এর বেশি হতে পারবে না।
- AF চেক: টেলি লেন্সের ছবির শার্পনেস W লেন্সের চেয়ে বেশি হতে হবে।
scene_video
scene_video হল একটি ভিডিও দৃশ্য যেখানে সাদা ব্যাকগ্রাউন্ডে চারটি আলাদা রঙের বৃত্ত
বিভিন্ন ফ্রেম রেটে সামনে ও পিছনে
ঘুরছে।
ছবি ১৪১. scene_video-এর উদাহরণ।
test_preview_frame_drop
অনুরোধ করা প্রিভিউ ফ্রেম রেট ডায়নামিক দৃশ্যের সাথে বজায় রাখা হয়েছে কিনা তা পরীক্ষা করে। থার্ড-পার্টি অ্যাপে অ্যাক্সেস আছে এমন সব ক্যামেরায় এই পরীক্ষা করা হয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
পাস: প্রিভিউ ফ্রেম রেট অনুরোধ করা ফ্রেম রেট রেঞ্জের সর্বাধিক সীমায় আছে এবং পরপর ফ্রেমের মধ্যে গড় তারতম্য টেস্টে সেট করা আপেক্ষিক সহনশীলতার চেয়ে কম।
Gen2 রিগ / sensor_fusion-ভিত্তিক টেস্ট সিন
feature_combination
feature_combination টেস্টের মাধ্যমে যাচাই করা হয় যে একই সময়ে একাধিক ক্যামেরা ফিচার চালু করা থাকলে
ফিচারগুলি সঠিকভাবে কাজ করছে কিনা। এইসব টেস্টে একই চেকারবোর্ড ছবি ব্যবহার করা হয় যা সেন্সর ফিউশন দৃশ্যে ব্যবহার করা হয়।
test_feature_combination
ক্যামেরা ডিভাইসে কাজ করে এমন বিভিন্ন স্ট্রিম কম্বিনেশন, ভিডিও স্টেবিলাইজেশন মোড, টার্গেট FPS রেঞ্জ, ১০-বিট HDR ভিডিও এবং আল্ট্রা HDR-এর সব কম্বিনেশন পরীক্ষা করে।
Android 16 ও এর পরবর্তী যেকোনও ভার্সনের জন্য, টেস্টটি কাজ করে এমন ফিচারের সব কম্বিনেশন রান করে
এবং ফলাফল একটি প্রোটো ফাইলে লগ করে। ব্যর্থতার অ্যাসারশন
শুধুমাত্র সেইসব ফিচারের কম্বিনেশনের জন্য কল করা হয় যার জন্য
isSessionConfigurationSupported, True রিটার্ন করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
পাস: প্রতিটি কাজ করে এমন ফিচার কম্বিনেশনের জন্য:
- প্রিভিউ স্টেবিলাইজেশন চালু থাকলে প্রিভিউ স্ট্রিম স্টেবিলাইজ করা হয়।
- প্রিভিউ ফ্রেম রেট কনফিগার করা
AE_TARGET_FPS_RANGE-এর মধ্যে পড়ে। - রেকর্ড করা প্রিভিউ স্ট্রিমের কালার স্পেস সেট করা কালার স্পেসের সাথে ম্যাচ করে।
- আলট্রা HDR ক্যাপচারে সঠিক গেইন ম্যাপ আছে।
scene_flash
scene_flash টেস্টের জন্য সেন্সর ফিউশন বক্সে অন্ধকার দৃশ্য প্রয়োজন।
Android 17 ও তার পরবর্তী যেকোনও ভার্সনে, scene_flash টেস্টিং
Gen2 রিগ ব্যবহার করে
করা যেতে পারে।
test_auto_flash
ফ্রন্ট ও রিয়ার ক্যামেরার জন্য অন্ধকার দৃশ্যে অটো-ফ্ল্যাশ ট্রিগার করা হয়েছে কিনা তা পরীক্ষা করে। সামনের ক্যামেরার জন্য, অটো-ফ্ল্যাশ দৃশ্যটি আলোকিত করতে স্ক্রিন ব্যবহার করে, কোনও ফিজিক্যাল ফ্ল্যাশ ইউনিট নয়। অটো-ফ্ল্যাশ চালু থাকলে টাইল ইমেজের কেন্দ্রস্থল উজ্জ্বল কিনা তা চেক করে অটো-ফ্ল্যাশ কাজ করছে কিনা এই টেস্টের মাধ্যমে তা যাচাই করা হয়। অটো-ফ্ল্যাশ ট্রিগার করতে, টেস্ট রিগের আলো বন্ধ করতে হবে। Arduino কন্ট্রোলারের সাহায্যে আলো অটোমেটিক বন্ধ করা যেতে পারে। পরীক্ষাটি সঠিকভাবে কাজ করার জন্য দৃশ্যটি সম্পূর্ণ অন্ধকার হতে হবে। পরীক্ষা করার আগে ডিভাইসে Jetpack Camera App (JCA) ইনস্টল করা থাকতে হবে। রিয়ার-ফেসিং ক্যামেরার জন্য অটো-ফ্ল্যাশ AE স্টেট ট্রিগার হওয়ার উপর নির্ভর করে, কিন্তু ফ্রন্ট-ফেসিং ক্যামেরার জন্য অটো-ফ্ল্যাশ AE-এর উপর নির্ভর করে না এবং সবসময় ট্রিগার হয়।
Android 17 ও তার পরবর্তী ভার্সনে, সব কাজ করছে কিনা তা যাচাই করতে নন-1x জুম লেভেল টেস্ট করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
পাস: অটো-ফ্ল্যাশ চালু থাকা অবস্থায় টাইল ইমেজের কেন্দ্রটি সব ক্যামেরার জন্য আসল দৃশ্যের ছবির চেয়ে উজ্জ্বল।
test_flash_strength
SINGLE
মোডে ফ্ল্যাশ স্ট্রেংথ কন্ট্রোল সঠিকভাবে প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে।
ক্যামেরা ব্যবহার করার সময় ডিভাইসটি ফ্ল্যাশ স্ট্রেংথ কন্ট্রোল সাপোর্ট করে কিনা তা যাচাই করে
SINGLE মোডে, ফ্ল্যাশ স্ট্রেংথ বিভিন্ন অনুরোধ করা স্ট্রেংথ লেভেলের সাথে পরিবর্তিত হয়। বিভিন্ন
AE_MODES-এর সাথে ফ্ল্যাশ স্ট্রেন্থ কন্ট্রোল কাজ করে কিনা তা যাচাই করে।
যেমন, অটো-এক্সপোজার মোড ON বা OFF হলে, ফ্ল্যাশের তীব্রতার লেভেল
উজ্জ্বলতার উপর প্রভাব ফেলে এবং মোড ON_AUTO_FLASH হলে, ফ্ল্যাশের তীব্রতার লেভেল
উজ্জ্বলতার উপর কোনও প্রভাব ফেলে না।
পরীক্ষাটি করার জন্য, টেস্ট রিগের আলো অবশ্যই বন্ধ করতে হবে। Arduino কন্ট্রোলারের সাহায্যে আলো অটোমেটিক বন্ধ করা যেতে পারে। পরীক্ষাটি সঠিকভাবে কাজ করার জন্য দৃশ্যটি সম্পূর্ণ অন্ধকার হতে হবে।
API পরীক্ষা করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
পাস:
অটো-এক্সপোজার মোড ON বা OFF হলে, ফ্ল্যাশ না থাকা থেকে FLASH_SINGLE_STRENGTH_MAX_LEVEL পর্যন্ত ফ্ল্যাশের তীব্রতা বাড়ার সাথে সাথে ছবির প্যাচের উজ্জ্বলতা বাড়ে।
অটো-এক্সপোজার মোড ON_AUTO_FLASH হলে, ফ্ল্যাশ না থাকা থেকে FLASH_SINGLE_STRENGTH_MAX_LEVEL পর্যন্ত ফ্ল্যাশের তীব্রতা বাড়ার সাথে সাথে
ইমেজ প্যাচের উজ্জ্বলতার পার্থক্য সহনশীলতার মধ্যে থাকে।
test_led_snapshot
LED স্ন্যাপশট যাতে ছবিকে স্যাচুরেট বা টিন্ট না করে তা পরীক্ষা করে।
এই টেস্টে লাইট কন্ট্রোল করার জন্য সেন্সর ফিউশন বক্সে একটি লাইটিং কন্ট্রোলার যোগ করা হয়। আলো OFF-এ সেট করা থাকলে, টেস্টটি AUTO_FLASH মোড ON-এ সেট করে
একটি ক্যাপচার নেয়। এই ক্যাপচার চলাকালীন, টেস্টটি aePrecapture ট্রিগার START-এ সেট করে একটি প্রি-ক্যাপচার সিকোয়েন্স রান করে এবং ফ্ল্যাশ সহ ক্যাপচার করার জন্য ক্যাপচার ইনটেন্ট Preview-এ সেট করে।
ফ্ল্যাশের কারণে ক্যাপচারে একটি স্বতন্ত্র হটস্পট রয়েছে, তাই পরীক্ষাটি সম্পূর্ণ ক্যাপচারের ফ্ল্যাশ ইমেজের গড় গণনা করে এবং যাচাই করে যে মানটি (৬৮, ১০২) রেঞ্জের মধ্যে আছে কিনা। ছবিতে হোয়াইট ব্যালেন্স ঠিক আছে কিনা তা চেক করার জন্য, টেস্টটি লাল-সবুজ ও নীল-সবুজ অনুপাত হিসেব করে এবং অনুপাত ০.৯৫ থেকে ১.০৫-এর মধ্যে আছে কিনা তা যাচাই করে।
API পরীক্ষা করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
পাস: লাল-সবুজ এবং নীল-সবুজ অনুপাত ০.৯৫ এবং ১.০৫-এর মধ্যে। ফ্ল্যাশ ইমেজের গড় (৬৮, ১০২) রেঞ্জের মধ্যে আছে।
test_night_mode_indicator
নাইট মোড ইন্ডিকেটরের কার্যকারিতা পরীক্ষা করে, এটি এমন একটি ফিচার যা নির্দেশ করে ক্যামেরা কম আলোর পরিস্থিতিতে কাজ করছে কিনা এবং নাইট মোড ক্যামেরা এক্সটেনশন স্টিল ক্যাপচার থেকে উপকৃত হবে কিনা। এই ফিচার শুধুমাত্র সেইসব ডিভাইসে উপলভ্য যেখানে নাইট মোড ক্যামেরা এক্সটেনশন কাজ করে।
এই টেস্টের মাধ্যমে চেক করা হয় যে নাইট মোড ইন্ডিকেটর ক্যামেরা প্রিভিউয়ের সময় আলোর অবস্থা সঠিকভাবে দেখাচ্ছে কিনা। পরীক্ষাটি নিম্নলিখিত ধাপগুলি সম্পাদন করে:
- ইনিশিয়ালাইজেশন: টেস্টটি একটি
ItsSessionইনিশিয়ালাইজ করে এবং ক্যামেরার প্রপার্টি পুনরুদ্ধার করে। এটি লাইটিং কন্ট্রোলারের সাথেও কানেকশন স্থাপন করে। - এড়িয়ে যাওয়ার শর্ত: ডিভাইসে প্রয়োজনীয় API লেভেল বা নাইট মোড ইন্ডিকেটর ফিচার না থাকলে টেস্ট এড়িয়ে যাওয়া হয়।
- Camera2 সেশন:
- এই টেস্ট
Camera2সেশন ব্যবহার করে প্রিভিউ ক্যাপচার সেশন শুরু করে। - লাইট চালু করা হয় এবং একটি প্রিভিউ ফ্রেম ক্যাপচার করা হয়।
- এই টেস্টের মাধ্যমে যাচাই করা হয় যে নাইট মোড ইন্ডিকেটর
OFFঅবস্থায় আছে কিনা। - লাইট বন্ধ হয়ে যায় এবং প্রিভিউ ফ্রেম ক্যাপচার করা হয়।
- এই টেস্টের মাধ্যমে যাচাই করা হয় যে নাইট মোড ইন্ডিকেটর
ONঅবস্থায় আছে কিনা।
- এই টেস্ট
- ক্যামেরা এক্সটেনশন সেশন:
- এই টেস্টে
Camera2সেশনের মতো একই পদ্ধতি অনুসরণ করা হয়, তবেEXTENSION_NIGHTএক্সটেনশন সহCameraExtensionসেশন ব্যবহার করা হয়।
- এই টেস্টে
- ক্লিন-আপ: পরীক্ষাটি
ItsSessionবন্ধ করে এবং লাইটিং কন্ট্রোলার রিলিজ করে।
API টেস্ট করা হয়েছে:
পাস:
- লাইট চালু থাকলে, নাইট মোড ইন্ডিকেটর
OFFঅবস্থায় থাকতে হবে। - লাইট বন্ধ থাকলে, নাইট মোড ইন্ডিকেটর
ONঅবস্থায় থাকতে হবে। Camera2এবংCameraExtensionসেশন, দুটির ক্ষেত্রেই প্রযোজ্য।
test_preview_min_frame_rate
অন্ধকার দৃশ্যে প্রিভিউ ফ্রেম রেট সঠিকভাবে কমে কিনা তা পরীক্ষা করে। এই পরীক্ষা সঠিকভাবে কাজ করার জন্য, টেস্ট রিগের আলো অবশ্যই কন্ট্রোলার বা টেস্ট অপারেটরকে ম্যানুয়ালি বন্ধ করতে হবে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
পাস: প্রিভিউ ফ্রেম রেট অনুরোধ করা ফ্রেম রেট রেঞ্জের ন্যূনতম এবং ফ্রেমের মধ্যে তারতম্য টেস্টে সেট করা অ্যাবসোলিউট টলারেন্সের থেকে কম।
test_torch_strength
TORCH
মোডে ফ্ল্যাশ স্ট্রেংথ কন্ট্রোল সঠিকভাবে প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করে।
ক্যামেরা ব্যবহার করার সময় ডিভাইসটি TORCH মোডে ফ্ল্যাশের তীব্রতা নিয়ন্ত্রণ করতে পারে কিনা তা যাচাই করে, বিভিন্ন অনুরোধ করা তীব্রতার লেভেল অনুযায়ী টর্চের তীব্রতা পরিবর্তন করে। বিভিন্ন
AE_MODES-এর সাথে ফ্ল্যাশ স্ট্রেন্থ কন্ট্রোল কাজ করে কিনা তা যাচাই করে।
যেমন, অটো-এক্সপোজার মোড ON বা OFF হলে, ফ্ল্যাশের তীব্রতার লেভেল
উজ্জ্বলতার উপর প্রভাব ফেলে এবং মোড ON_AUTO_FLASH হলে, ফ্ল্যাশের তীব্রতার লেভেল
উজ্জ্বলতার উপর কোনও প্রভাব ফেলে না।
ভিডিও ক্যাপচার সেশন সিমুলেট করে, বার্স্ট চলাকালীন টর্চের আলো একই থাকে কিনা তা যাচাই করে। পরীক্ষাটি করার জন্য, টেস্ট রিগের আলো বন্ধ করতে হবে। Arduino কন্ট্রোলারের সাহায্যে আলো অটোমেটিক বন্ধ করা যেতে পারে। পরীক্ষাটি সঠিকভাবে কাজ করার জন্য দৃশ্যটি সম্পূর্ণ অন্ধকার হতে হবে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
পাস:
অটো-এক্সপোজার মোড ON বা OFF হলে, ফ্ল্যাশ না থাকা থেকে
FLASH_TORCH_STRENGTH_MAX_LEVEL-এ
ফ্ল্যাশ স্ট্রেন্থ লেভেল বাড়ার সাথে সাথে ছবির বার্স্ট প্যাচের উজ্জ্বলতা বাড়ে।
অটো-এক্সপোজার মোড ON_AUTO_FLASH হলে, ইমেজ বার্স্ট প্যাচের
উজ্জ্বলতার পার্থক্য সহনশীলতার মধ্যে থাকে
কারণ ফ্ল্যাশ স্ট্রেন্থ লেভেল নো ফ্ল্যাশ থেকে
FLASH_TORCH_STRENGTH_MAX_LEVEL পর্যন্ত বৃদ্ধি পায়।
scene_gen2_chart
Android 17 ও তার পরবর্তী যেকোনও ভার্সনে, scene_gen2_chart
Gen2 পেপার চার্ট ব্যবহার করে।
এই টেস্ট চার্টে মুখের স্যাম্পেল, QR কোড, গ্রে-স্কেল প্যাচ, সিমেন্স স্টার, কালার চার্ট ও বাঁকানো বর্গক্ষেত্র থাকে।
ছবি ১৪২. Gen2 চার্টের স্যাম্পেল উদাহরণ।
test_tonemap_sequence
এই টেস্ট, লিনিয়ার কার্ভ ও দুটি এক্সপোনেনশিয়াল কার্ভের (একটি ইউনিফর্ম পয়েন্ট সহ ও অন্যটি নন-ইউনিফর্ম পয়েন্ট সহ) সাপেক্ষে ডিভাইসের ডিফল্ট টোন ম্যাপ কার্ভ মূল্যায়ন করে। পাসিং ফলাফলের জন্য, ডিফল্ট কার্ভের উজ্জ্বলতা অবশ্যই লিনিয়ার এবং এক্সপোনেনশিয়াল কার্ভের চেয়ে বেশি হতে হবে। এছাড়াও, লিনিয়ার কার্ভটি এক্সপোনেনশিয়াল কার্ভের চেয়ে উজ্জ্বল হতে হবে এবং দুটি এক্সপোনেনশিয়াল কার্ভের উজ্জ্বলতার লেভেল একই হতে হবে।
এছাড়াও, এই টেস্ট ডিভাইসের ডিফল্ট কার্ভের নির্ভুলতা যাচাই করে। ডিফল্ট কার্ভ এক্সট্র্যাক্ট করে, এটি আবার ইনপুট করে এবং তারপরে আসল ডিফল্ট কার্ভের ছবির সাথে ফলাফল হিসেবে পাওয়া ছবির উজ্জ্বলতা তুলনা করে এটি করা হয়।
ছবি ১৪৩. টোনম্যাপ সিকোয়েন্স প্লট পরীক্ষা করুন।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
পাস: ডিফল্ট ও লিনিয়ার কার্ভের মধ্যে উজ্জ্বলতার পার্থক্য ১৫%-এর বেশি, যেখানে দুটি এক্সপোনেনশিয়াল কার্ভের মধ্যে পার্থক্য ৮%-এর কম।
test_multi_camera_switch
ডায়নামিক জুম ট্রানজিশনের সময় এই টেস্ট রঙ ও এক্সপোজারের ধারাবাহিকতা যাচাই করে। এটি যাচাই করে যে প্রিভিউ রেকর্ডিংয়ের সময় আল্ট্রাওয়াইড (UW) ও ওয়াইড (W) লেন্সের মধ্যে পরিবর্তন করলে প্রায় একই CIELAB ভ্যালু বজায় থাকে, যার ফলে ব্যবহারকারীর অভিজ্ঞতায় দৃশ্যমান পরিবর্তন হয় না।
টেস্টটি একটি পূর্বনির্ধারিত জুম রেঞ্জ জুড়ে একটি ডাইনামিক প্রিভিউ রেকর্ডিং এক্সিকিউট করে ফিজিক্যাল ক্যামেরা "ক্রসওভার" পয়েন্ট ট্রিগার করতে, যেখানে আল্ট্রা ওয়াইড লেন্স ওয়াইড লেন্সে সুইচ করে। এই টেস্টের মাধ্যমে সেই সঠিক ফ্রেম শনাক্ত করা হয় যেখানে লেন্স সুইচ করা হয়। এই ক্রসওভার পয়েন্টের ঠিক আগে ও পরের ফ্রেম ক্যাপচার করা হয় এবং অটো এক্সপোজার (AE) ও অটো হোয়াইট ব্যালেন্স (AWB) স্টেবল কিনা তা বিশ্লেষণ করা হয়।
AE চেক কনফার্ম করে যে লেন্স হ্যান্ডঅফের সময় Luma-র ওঠানামা গ্রহণযোগ্য রেঞ্জের মধ্যেই থাকে। AWB চেক যাচাই করে যে লাল-সবুজ এবং নীল-সবুজ অনুপাত রঙের নিরপেক্ষতার নির্ধারিত থ্রেশহোল্ডের মধ্যে থাকে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
পাস: টেস্টে পাস করতে হলে, নিম্নলিখিত AE ও AWB চেক পাস করতে হবে:
- AE চেক: UW এবং W লেন্সের ছবির মধ্যে লুমার পরিবর্তন (Y ভ্যালু) অবশ্যই
সব কালার প্যাচের জন্য ৪%-এর কম হতে হবে, যদি ডিভাইস
ae_regionsএবংawb_regionsউভয়কেই সাপোর্ট করে। শুধুমাত্রae_regionsকাজ করলে, ধূসর রঙের প্যাচ ভ্যালুকে অবশ্যই মাপকাঠি পূরণ করতে হবে। - AWB চেক: ডিভাইসে
ae_regionsএবংawb_regions, দুটিই কাজ করলে, UW এবং W লেন্সের ছবির জন্য লাল-সবুজ এবং নীল-সবুজ ভ্যালুর মধ্যে পার্থক্য ধূসর রঙের প্যাচের জন্য ৩%-এর কম এবং অন্যান্য রঙের প্যাচের জন্য ১০%-এর কম হতে হবে।
ছবি ১৪৪. UW লেন্স দিয়ে তোলা ধূসর প্যাচ।
ছবি ১৪৫. W লেন্স দিয়ে তোলা ধূসর প্যাচ।
scene_ip
Android 16 এবং তার পরবর্তী ভার্সনে, দৃশ্য scene_ip ডিফল্ট ক্যামেরা অ্যাপ এবং Jetpack ক্যামেরা অ্যাপের (JCA) মধ্যে ক্যাপচার করা ছবির মধ্যে বড় পার্থক্য শনাক্ত করতে ইমেজ প্যারিটি চেক করার সুবিধা চালু করে। JCA সোশ্যাল মিডিয়া অ্যাপের ক্যাপচার রেপ্লিকেট করে এবং একটি বেসলাইন ছবি প্রদান করে যা সোশ্যাল মিডিয়া অ্যাপ প্রসেস ও রিফাইন করে।
হার্ডওয়্যার সেট-আপ সংক্রান্ত প্রয়োজনীয়তা
scene_ip টেস্টের জন্য নিম্নলিখিত হার্ডওয়্যার সেট-আপ প্রয়োজন:
- Gen2 ক্যামেরা ITS-in-a-box-এ পরীক্ষা করা হয়।
- Gen2 রিগের অংশ হিসেবে লাইটিং ও সার্ভো কন্ট্রোলার ব্যবহার করে টেস্ট এনভায়রনমেন্ট নিয়ন্ত্রণ করা হয়।
- Gen2 রিগের মধ্যে একটি টেস্ট ফিচার চার্ট রাখা হয়েছে।
ছবি ১৪৬. Gen2chart_sample উদাহরণ।
পরীক্ষা এড়িয়ে যাওয়ার মাপকাঠি
নিম্নলিখিত শর্তগুলির মধ্যে যেকোনও একটি পূরণ হলে scene_ip টেস্ট এড়িয়ে যাওয়া হয়:
- ডিভাইসে প্রথম API লেভেল (
first_api_level) ৩৫ বা তার কম। - ডিভাইসটি ফ্রন্ট ও রিয়ার প্রাইমারি ক্যামেরা ডিভাইস সহ ফোন ডিভাইস নয় (যেমন, ট্যাবলেট বা টিভি)।
test_default_jca_ip
নিয়ন্ত্রিত আলোর পরিস্থিতিতে ডিফল্ট ক্যামেরা অ্যাপ ও JCA ব্যবহার করে টেস্ট ফিচার চার্টের ক্যাপচার নেয় এবং নিম্নলিখিত বিষয়গুলি চেক করে:
FoV: ডিফল্ট ক্যামেরা অ্যাপ ও JCA ক্যাপচারে একই FoV আছে কিনা তা চেক করে। এই চেকটি ক্যাপচার করা চার্ট ইমেজ থেকে এক্সট্র্যাক্ট করা সেন্টার QR কোড ফিচার ব্যবহার করে।
উজ্জ্বলতা: ডিফল্ট ক্যামেরা অ্যাপ ও JCA-এর মধ্যে পরিমাপ করা উজ্জ্বলতার পার্থক্য ১০-এর বেশি কিনা তা চেক করে। এই চেক উজ্জ্বলতা পরিমাপের জন্য ডায়নামিক রেঞ্জ প্যাচ ব্যবহার করে।
হোয়াইট ব্যালেন্স: ডিফল্ট ক্যামেরা অ্যাপ ও JCA-এর মধ্যে হোয়াইট ব্যালেন্সের পার্থক্য ৪-এর বেশি কিনা তা চেক করে। এই চেক উজ্জ্বলতা পরিমাপের জন্য ডাইনামিক রেঞ্জ প্যাচ ব্যবহার করে।
কালার রেন্ডারিং: ডিফল্ট ক্যামেরা অ্যাপ ও JCA-এর মধ্যে কালার রেন্ডারিংয়ের পার্থক্য ৬-এর বেশি কিনা তা চেক করে।
পাস: টেস্টটি FoV, উজ্জ্বলতা এবং হোয়াইট ব্যালেন্স চেক পাস করে। Android
16-এ, এই টেস্ট বাধ্যতামূলক নয় (NOT_YET_MANDATED)। Android
17 এবং তার পরবর্তী ভার্সনের জন্য, FoV, উজ্জ্বলতা এবং হোয়াইট ব্যালেন্স
প্যারিটি চেক বাধ্যতামূলক। Android 17-এ কালার রেন্ডারিং চেক বাধ্যতামূলক নয়
(NOT_YET_MANDATED)।
test_jca_jpegr_ip
JPEG_R JCA প্রিভিউ স্ন্যাপশট এবং ক্যাপচার করা ছবির মধ্যে হোয়াইট ব্যালেন্সের পার্থক্য ৪-এর বেশি না হওয়ার বিষয়টি যাচাই করে।
API টেস্ট করা হয়েছে:
পাস: JCA প্রিভিউ স্ন্যাপশট এবং ক্যাপচার করা JPEG_R ছবির মধ্যে হোয়াইট ব্যালেন্সের পার্থক্য থ্রেশহোল্ডের মধ্যে (ডিফল্ট হল ৪)।
sensor_fusion
সেন্সর ফিউশন টেস্টের জন্য চেকারবোর্ড প্যাটার্ন ও ArUco মার্কারের সামনে নির্দিষ্ট ফোন মুভমেন্টের প্রয়োজন হয়। সেরা ফলাফল পেতে, টেস্ট চার্টটি সমতলভাবে মাউন্ট করা হয়েছে কিনা তা যাচাই করুন। চার্ট সমতল না হলে, অনেক পরীক্ষার জন্য রোটেশন সংক্রান্ত গণনা
প্রভাবিত হয়। চার্টটি অবশ্যই ১৭x১৭ ইঞ্চিতে প্রিন্ট করে সেন্সর ফিউশন বক্সের পিছনের অংশটি পূরণ করতে হবে। (৪৩x৪৩ সেমি)। sensor_fusion টেস্ট সেন্সর ফিউশন বক্স-এর
মাধ্যমে অটোমেট করা যেতে পারে।
ছবি ১৪৭. সেন্সর ফিউশন চার্ট।
ছবি ১৪৮. সেন্সর ফিউশন চার্ট যা সেন্সর ফিউশন বক্সের পিছনের অংশ পূরণ করে।
test_lens_intrinsic_calibration
অপ্টিক্যাল ইমেজ স্টেবিলাইজেশনের (OIS) কারণে লেন্স সরানোর সময় লেন্সের অন্তর্নিহিত অপ্টিক্যাল সেন্টার পরিবর্তিত হয় কিনা তা পরীক্ষা করে। লেন্সের ইন্ট্রিনসিক স্যাম্পেল কাজ করলে, OIS-এর কারণে লেন্স সরানোর সময় লেন্সের ইন্ট্রিনসিক স্যাম্পেলের অপটিক্যাল সেন্টার পরিবর্তন হয় কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
পাস: লেন্সের অন্তর্নিহিত অপটিক্যাল সেন্টার ১ পিক্সেল বা তার বেশি পরিবর্তিত হয়। লেন্সের ইন্ট্রিনসিক স্যাম্পেল কাজ করলে, লেন্সের ইন্ট্রিনসিক স্যাম্পেলের অপটিক্যাল সেন্টার ১ পিক্সেল বা তার বেশি পরিবর্তিত হয়।
নিচের ছবিটি হল একটি উদাহরণ test_lens_intrinsic_calibration প্লট
প্রতিটি ফ্রেমের জন্য পিক্সেলে প্রধান পয়েন্টের পরিবর্তন দেখানো হচ্ছে:
ছবি ১৪৯. test_lens_intrinsic_calibration প্লটের উদাহরণ যা প্রতিটি ফ্রেমের জন্য পিক্সেলে প্রিন্সিপাল পয়েন্টের পরিবর্তন দেখায়।
test_multi_camera_frame_sync
টাইমস্ট্যাম্প নির্ধারণ করার জন্য চেকারবোর্ডের মধ্যে বর্গক্ষেত্রের কোণ গণনা করে লজিক্যাল ক্যামেরার মাধ্যমে ক্যাপচার করা ফ্রেম টাইমস্ট্যাম্প ১০ মিলি সেকেন্ডের মধ্যে আছে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPEandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
পাস: ফোন ঘোরানোর সময় প্রতিটি ক্যামেরার ছবির মধ্যেকার অ্যাঙ্গেল উল্লেখযোগ্যভাবে পরিবর্তিত হয় না।
test_preview_distortion
বিভিন্ন জুম লেভেলে নেওয়া প্রতিটি প্রিভিউ ফ্রেম জুড়ে বিকৃতি সংশোধন করা হয়েছে কিনা তা পরীক্ষা করে। প্রতিটি প্রিভিউ ফ্রেমের জন্য, টেস্টটি ক্যামেরার ইন্ট্রিনসিক্স এবং এক্সট্রিনসিক্সের উপর ভিত্তি করে আদর্শ পয়েন্ট গণনা করে।
উদাহরণ হিসেবে দেওয়া ছবিতে, আদর্শ পয়েন্ট সবুজ রঙে দেখানো হয়েছে; আসল পয়েন্ট লাল রঙে দেখানো হয়েছে। আসল পয়েন্ট ও আদর্শ পয়েন্টের মধ্যে RMS পিক্সেল দূরত্বের ভিত্তিতে ডিস্টরশন সংক্রান্ত সমস্যা গণনা করা হয়। ছবির উপর সবুজ ও লাল হাইলাইট ব্যবহার করে বিকৃতি সংক্রান্ত ত্রুটি শনাক্ত করা হয়।
ছবি ১৫০. চেকারবোর্ডের ছবি যেখানে আদর্শ পয়েন্ট সবুজ ও আসল পয়েন্ট লাল রঙে দেখানো হয়েছে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.media.CamcorderProfileandroid.media.MediaRecorder
পাস: প্রতিটি প্রিভিউ ফ্রেমের নরমালাইজড ডিস্টরশন এরর, টেস্টে সেট করা থ্রেশহোল্ডের চেয়ে কম।
test_preview_stabilization
পরীক্ষা করে দেখা গেছে যে স্টেবিলাইজ করা প্রিভিউ ভিডিও জাইরোস্কোপের চেয়ে কম ঘোরে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
পাস: ফ্রেমের উপর সর্বাধিক অ্যাঙ্গেল রোটেশন জাইরোস্কোপ রোটেশনের ৭০%-এর কম।
স্টেবিলাইজেশন সহ ও ছাড়া স্যাম্পেল ভিডিও নিচে দেওয়া হল:
ছবি ১৫১. স্টেবিলাইজেশন সহ স্যাম্পেল ভিডিও।
ছবি ১৫২. স্টেবিলাইজেশন ছাড়া স্যাম্পেল ভিডিও।
test_sensor_fusion
AR এবং VR অ্যাপ্লিকেশনের জন্য ক্যামেরা এবং জাইরোস্কোপের মধ্যে টাইমস্ট্যাম্পের পার্থক্য পরীক্ষা করে। চেকারবোর্ড প্যাটার্নের সামনে ফোনটি ৯০ ডিগ্রি করে ১০ বার
ঘোরানো হয়। মোশন হল প্রায় ২ সেকেন্ডের রাউন্ড ট্রিপ। জাইরোস্কোপ অন্তর্ভুক্ত না থাকলে অথবা টাইমস্ট্যাম্প সোর্স
REALTIME প্যারামিটার চালু না থাকলে এই
পরীক্ষাটি এড়িয়ে যাওয়া হয়।
test_sensor_fusion টেস্টে একাধিক প্লট জেনারেট করা হয়। ডিবাগ করার জন্য সবচেয়ে গুরুত্বপূর্ণ
দুটি প্লট হল:
test_sensor_fusion_gyro_events: টেস্ট চলাকালীন ফোনের জাইরোস্কোপ ইভেন্ট দেখায়। x এবং y অক্ষ বরাবর নড়াচড়া করার অর্থ হল ফোনটি ওয়াল মাউন্টে নিরাপদে মাউন্ট করা নেই, যার ফলে টেস্ট পাস করার সম্ভাবনা কমে যায়। প্লটে চক্রের সংখ্যা ফ্রেম সেভ করার জন্য রাইট স্পিডের উপর নির্ভর করে।
ছবি ১৫৩. test_sensor_fusion জাইরোস্কোপ ইভেন্টের উদাহরণ।
test_sensor_fusion_plot_rotations: জাইরোস্কোপ ও ক্যামেরা ইভেন্টের অ্যালাইনমেন্ট দেখায়। এই প্লটে ক্যামেরা ও জাইরোস্কোপের মধ্যে +/-১ মি.সে. পর্যন্ত ম্যাচিং মুভমেন্ট দেখাতে হবে।
ছবি ১৫৪. test_sensor_fusion প্লট রোটেশনের উদাহরণ।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#LENS_FACINGandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
পাস: ক্যামেরা ও জাইরোস্কোপ টাইমস্ট্যাম্পের অফসেট ১ মি.সে.-এর কম, যা CDD-তে ৭.৩.৯ হাই ফিডেলিটি সেন্সর অনুযায়ী।
ব্যর্থতার মেকানিজম:
- অফসেট সংক্রান্ত সমস্যা: ক্যামেরা-জাইরোস্কোপ অফসেট +/-১ মিলিসেকেন্ডের মধ্যে সঠিকভাবে ক্যালিব্রেট করা হয়নি।
- ফ্রেম ড্রপ: ২০০টি ফ্রেম পরপর ক্যাপচার করার জন্য পাইপলাইন যথেষ্ট দ্রুত নয়।
- সকেট সংক্রান্ত সমস্যা:
adb, DUT-এর সাথে নির্ভরযোগ্যভাবে কানেক্ট করতে পারছে না, যাতে পরীক্ষাটি সম্পূর্ণ করার জন্য পর্যাপ্ত সময় পাওয়া যায়। - চার্টটি সমতলভাবে মাউন্ট করা নেই।
test_sensor_fusion_plot_rotationsপ্লটে এমন ফ্রেম আছে যেখানে জাইরোস্কোপ ও ক্যামেরা রোটেশন উল্লেখযোগ্যভাবে পরিবর্তিত হয়, কারণ চার্টের যে অংশগুলি ফ্ল্যাট নয়, সেগুলির মধ্য দিয়ে ক্যামেরা রোটেট করে। - ক্যামেরাটি সমতলে মাউন্ট করা নেই। প্লট
test_sensor_fusion_gyro_eventsX এবং Y প্লেনে মুভমেন্ট দেখায়। এই সমস্যাটি ফ্রন্ট-ফেসিং ক্যামেরার ক্ষেত্রে বেশি দেখা যায়, কারণ রিয়ার ক্যামেরা প্রায়শই ফোনের বাকি অংশের তুলনায় একটু উঁচু হয়, যার ফলে ফোনের পিছনের অংশটি ওয়াল মাউন্টে মাউন্ট করার সময় সেটি একটু ঝুঁকে থাকে।
test_video_stabilization
অননুমোদিত: এই পরীক্ষা Android 17 থেকে অননুমোদিত করা হয়েছে। Android 17 ও তার পরবর্তী ভার্সনের জন্য, এই টেস্টের পরিবর্তে test_video_stabilization_jca ব্যবহার করা হয়।
স্টেবিলাইজ করা ভিডিও জাইরোস্কোপের চেয়ে কম ঘোরে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
পাস: ফ্রেমের উপর সর্বাধিক অ্যাঙ্গেল রোটেশন জাইরোস্কোপ রোটেশনের ৬০%-এর কম।
নিচে স্টেবিলাইজেশন সহ ও ছাড়া স্যাম্পেল ভিডিও দেওয়া হল।
ছবি ১৫৫. স্টেবিলাইজেশন সহ স্যাম্পেল ভিডিও।
ছবি ১৫৬. স্টেবিলাইজেশন ছাড়া স্যাম্পেল ভিডিও।
test_video_stabilization_jca
JCA ব্যবহার করে ক্যাপচার করা স্টেবিলাইজড ভিডিও জাইরোস্কোপের চেয়ে কম ঘোরে কিনা তা পরীক্ষা করে। পরীক্ষা করার আগে ডিভাইসে JCA ইনস্টল করা থাকতে হবে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.CamcorderProfileandroid.media.MediaRecorder
পাস: JCA ব্যবহার করে ক্যাপচার করা ভিডিও থেকে এক্সট্র্যাক্ট করা ফ্রেমের উপর সর্বাধিক অ্যাঙ্গেল রোটেশন, জাইরোস্কোপ রোটেশন ৪)-এর ৭০%-এর কম।
ডিফিউজার-ভিত্তিক টেস্ট সিন
scene5
scene5-এর জন্য একটি সমানভাবে আলোকিত ধূসর দৃশ্য প্রয়োজন। ক্যামেরা লেন্সের উপর ডিফিউজার
বসিয়ে এটি করা হয়। আমরা নিম্নলিখিত ডিফিউজার সাজেস্ট করি:
http://www.edmundoptics.com/optics/windows-diffusers/optical-diffusers/opal-diffusing-glass/46168/.
দৃশ্যটি প্রস্তুত করতে, ক্যামেরার সামনে একটি ডিফিউজার অ্যাটাচ করুন এবং ক্যামেরাটি প্রায় ২০০০ লাক্সের একটি আলোর উৎসের দিকে তাক করুন। scene5-এর জন্য ক্যাপচার করা ছবিতে
ডিফিউজ লাইটিং প্রয়োজন, যাতে কোনও ফিচার স্পষ্ট না হয়। নিচে একটি স্যাম্পেল
ছবি দেওয়া হল:
ছবি ১৫৭. scene5 ক্যাপচার করার উদাহরণ।
এই দৃশ্যের জন্য কোনও ট্যাবলেট বা কন্ট্রোলারের প্রয়োজন নেই, তাই টেস্টে
TEST_BED_MANUAL টেস্টবেড ব্যবহার করা হয়। উদাহরণ হিসেবে, ম্যানুয়াল টেস্টিং config.yml ফাইল দেখুন।
ডিফল্ট config.yml ফাইলে TEST_BED_MANUAL অন্তর্ভুক্ত নেই, তবে আপনি
ফাইলটি পরিবর্তন করে একটি অন্তর্ভুক্ত করতে পারেন।
test_lens_shading_and_color_uniformity
লেন্স শেডিং কারেকশন সঠিকভাবে প্রয়োগ করা হয়েছে কিনা এবং মনোক্রোম ইউনিফর্ম দৃশ্যের রঙ সমানভাবে ডিস্ট্রিবিউট করা হয়েছে কিনা তা পরীক্ষা করে। অটো 3A সহ YUV ফ্রেমে এই টেস্ট পারফর্ম করে। y চ্যানেলের ভিত্তিতে লেন্স শেডিং মূল্যায়ন করা হয়। নির্দিষ্ট করা প্রতিটি স্যাম্পেল ব্লকের জন্য গড় y ভ্যালু পরিমাপ করে এবং সেন্টার y ভ্যালুর সাথে তুলনা করে পাস বা ফেল নির্ধারণ করে। রঙের অভিন্নতা পরীক্ষা লাল-সবুজ এবং নীল-সবুজ স্পেসে মূল্যায়ন করা হয়।
API টেস্ট করা হয়েছে:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
পাস: ছবির নির্দিষ্ট ব্যাসার্ধে, লাল-সবুজ এবং নীল-সবুজ মানের পার্থক্য পরীক্ষায় পাস করার জন্য ২০%-এর কম হতে হবে।
ব্যর্থতার মেকানিজম:
- ছবিতে অত্যধিক ভিনিয়েটিং
- ছবিতে কালো বর্ডার আর্টিফ্যাক্ট
ছবি ১৫৮. test_lens_shading_and_color_uniformity_y_plane.
ছবি ১৫৯. test_lens_shading_and_color_uniformity_color_uniformity.
ছবি ১৬০. test_lens_shading_and_color_uniformity_lens_shading_result.
ট্যাবলেট-ভিত্তিক টেস্ট সিন, যাতে ওয়াইড-গ্যামাট আছে
scene_wide_gamut
scene_wide_gamut হল একটি আয়তাকার ফ্রেম যা চারটি সমান চতুর্থাংশে বিভক্ত,
প্রতিটি আলাদা রঙে পূর্ণ। এর জন্য ট্যাবলেটকে ওয়াইড গ্যামাটে চার্ট দেখাতে হবে এবং DUT-কে স্ক্রিনের ওয়াইড গ্যামাট ফটোগ্রাফ ক্যাপচার করতে হবে।
এইসব টেস্টের মাধ্যমে যাচাই করা হয় যে ক্যাপচার করা ছবি সঠিক কালার প্রোফাইল ও কালার রেঞ্জ মেনে চলছে কিনা।
test_display_p3
ColorSpaceProfiles API ব্যবহার করে JPEG-তে Display P3 ক্যাপচার টেস্ট করে। ক্যাপচার করা JPEG-এর হেডারে উপযুক্ত ICC প্রোফাইল আছে কিনা এবং
ছবিতে sRGB গ্যামাটের বাইরে নির্দিষ্ট শতাংশ রঙ আছে কিনা তা পরীক্ষা করে।
API টেস্ট করা হয়েছে:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
পাস: JPEG-তে Display P3 ICC প্রোফাইল এবং sRGB গ্যামাটের বাইরে ১ শতাংশের বেশি রং রয়েছে।
ছবি ১৬১. test_display_p3 উদাহরণ।