অ্যান্ড্রয়েড ১৩ এবং তার পরবর্তী সংস্করণে চালিত ডিভাইসগুলোর জন্য, অ্যান্ড্রয়েড ডাইনামিক রেঞ্জ প্রোফাইলের মাধ্যমে ১০-বিট ক্যামেরা আউটপুট সমর্থন করে, যা ক্যামেরা ক্লায়েন্ট স্ট্রিম কনফিগারেশনের অংশ হিসেবে কনফিগার করতে পারে। ডিভাইস নির্মাতারা HLG10, HDR 10, HDR 10+, এবং Dolby Vision-এর মতো ১০-বিট ডাইনামিক রেঞ্জ প্রোফাইলগুলোর জন্য সমর্থন যোগ করতে পারেন।
১০-বিট ক্যামেরা আউটপুট সাপোর্ট ক্যামেরা ক্লায়েন্টদেরকে getSupportedProfiles কল করার মাধ্যমে কোনো ডিভাইসের সমর্থিত ১০-বিট ডাইনামিক রেঞ্জ প্রোফাইলগুলো খুঁজে বের করতে দেয়। এরপর ফ্রেমওয়ার্কটি DynamicRangeProfiles এর একটি ইনস্ট্যান্স রিটার্ন করে, যাতে সমর্থিত ডাইনামিক রেঞ্জ প্রোফাইলগুলো এবং, যদি উপলব্ধ থাকে, ক্যাপচার রিকোয়েস্টের সীমাবদ্ধতা সম্পর্কিত তথ্য অন্তর্ভুক্ত থাকে। HLG10 প্রোফাইলটি অবশ্যই সমর্থিত হতে হবে। প্রস্তাবিত ডাইনামিক রেঞ্জ প্রোফাইলটি REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE ফিল্ডে তালিকাভুক্ত থাকে।
ক্যামেরা ক্লায়েন্টরা setDynamicRangeProfile কল করে স্ট্রিম কম্বিনেশন কনফিগার করতে পারে। বাধ্যতামূলক আউটপুট স্ট্রিম কম্বিনেশন সম্পর্কে আরও তথ্যের জন্য, Regular capture- এর 10-বিট আউটপুট অতিরিক্ত নিশ্চিত কনফিগারেশন টেবিলটি দেখুন।
প্রয়োজনীয়তা
১০-বিট ক্যামেরা আউটপুট সমর্থন করার জন্য, ডিভাইসটিতে অবশ্যই সংশ্লিষ্ট আইএসপি (ISP) সমর্থনসহ একটি ১০-বিট বা উচ্চতর ক্ষমতাসম্পন্ন ক্যামেরা সেন্সর থাকতে হবে। ১০-বিট সমর্থনের জন্য সম্পর্কিত সামঞ্জস্যতার প্রয়োজনীয়তা সম্পর্কে বিস্তারিত জানতে, অনুচ্ছেদ ৭.৫. সিডিডি-তে থাকা ক্যামেরাসমূহ দেখুন।
বাস্তবায়ন
১০-বিট ক্যামেরা আউটপুটের জন্য সমর্থন প্রদান করতে, ডিভাইস প্রস্তুতকারকদের অবশ্যই নিম্নলিখিত ক্যামেরা AIDL HAL ইন্টিগ্রেশনগুলি সম্পাদন করতে হবে:
- ক্যামেরার সক্ষমতার মধ্যে
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BITঅন্তর্ভুক্ত করুন। -
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAPসমস্ত সমর্থিত ডাইনামিক রেঞ্জ প্রোফাইল এবং তাদের সীমাবদ্ধতার একটি বিটম্যাপ দিয়ে পূরণ করুন।HLG10প্রোফাইলটি অবশ্যই সমর্থিত হতে হবে। ক্যামেরা ক্লায়েন্টদের সর্বোত্তম সমর্থিত ফরম্যাট সম্পর্কে জানানোর জন্য আপনাকে একটি প্রস্তাবিত ডাইনামিক রেঞ্জ প্রোফাইলও অন্তর্ভুক্ত করতে হবে। - P010 ফরম্যাট ব্যবহারকারী স্ট্রিমগুলির জন্য অথবা একটি ইমপ্লিমেন্টেশন-সংজ্ঞায়িত ফরম্যাটের (
ImageFormat.PRIVATE) সমর্থনের জন্য, স্ট্রিম কনফিগারেশনের সময় ডায়নামিক রেঞ্জ প্রোফাইল মানের সমর্থন নিশ্চিত করুন। - ডাইনামিক রেঞ্জ প্রোফাইলের ওপর নির্ভর করে, ক্যামেরা সার্ভিসকে অবহিত করার আগে প্রসেস করা Gralloc 4 বাফারগুলোর স্ট্যাটিক বা ডাইনামিক মেটাডেটা বাফার সেট করুন।
ক্যামেরা HAL-এ 10-বিট ক্যামেরা আউটপুট সম্পর্কে আরও বিস্তারিত জানতে, metadata_definitions.xml এ নিম্নলিখিতটি দেখুন:
-
DYNAMIC_RANGE_TEN_BIT -
availableDynamicRangeProfilesMapরেঞ্জ প্রোফাইল ম্যাপের জন্য HAL বিবরণ -
recommendedTenBitDynamicRangeProfile -
10BIT_OUTPUT
১০-বিট ক্যামেরা আউটপুট সমর্থনকারী একটি রেফারেন্স ক্যামেরা এইচএএল (HAL) ইমপ্লিমেন্টেশনের জন্য, /hardware/google/camera/devices/EmulatedCamera/hwl দেখুন।
বৈধতা
আপনার ১০-বিট ক্যামেরা আউটপুটের বাস্তবায়ন যাচাই করতে এবং থার্ড-পার্টি অ্যাপগুলো যাতে এই ফিচারটি চালু করতে পারে তা নিশ্চিত করতে, আমরা যাচাইকরণের নিম্নলিখিত তিনটি পর্যায় সম্পন্ন করার পরামর্শ দিই।
- এপিআই-এর কার্যকারিতার সঠিকতা পরীক্ষা করুন
- নেটিভ ক্যামেরা এবং থার্ড-পার্টি অ্যাপের তুলনা করুন
- স্ট্যান্ডার্ড ডাইনামিক রেঞ্জ এবং হাই ডাইনামিক রেঞ্জের তুলনা করুন
১০-বিট ক্যামেরা আউটপুটের চাক্ষুষ যাচাইকরণের জন্য, ধরে নেওয়া হয় যে ডিভাইসটি HDR প্রদর্শনে সক্ষম (১০০০+ নিটস ডিসপ্লে), এবং ভিডিও দেখার অ্যাপটি (যেমন, গুগল ফটোস) HDR ভিডিও প্লেব্যাক করতে পারে।
এপিআই-এর কার্যকারিতার সঠিকতা পরীক্ষা করুন
১০-বিট ক্যামেরা আউটপুটের API ফাংশনাল সঠিকতা যাচাই করার জন্য, নিম্নলিখিত CTS, ক্যামেরা ITS, এবং VTS টেস্টগুলো চালান:
-
hardware/interfaces/camera/provider/aidl/vts/: প্রাথমিক শনাক্তকরণ, কনফিগারেশন এবং স্ট্রিমিং পরীক্ষা করে, এবং প্রয়োজন অনুযায়ী HDR মেটাডেটার উপস্থিতি যাচাই করে। -
tests/camera/src/android/hardware/camera2/cts/: ক্যামেরাটি AOSP API স্পেসিফিকেশন অনুযায়ী কাজ করছে কিনা তা নিশ্চিত করে। -
cts/apps/CameraITS: HDR প্রোফাইল ব্যবহার করা হলে ভিডিওর সাধারণ আচরণ সামঞ্জস্যপূর্ণ থাকে কিনা তা নিশ্চিত করে। নির্দিষ্ট পরীক্ষাটি হলোtests/scene4/test_video_aspect_ratio_and_crop.py।
নেটিভ ক্যামেরা এবং থার্ড-পার্টি অ্যাপের তুলনা করুন
আমরা দৃঢ়ভাবে সুপারিশ করছি যে, কোনো থার্ড-পার্টি অ্যাপ দিয়ে ১০-বিট ভিডিও ধারণ করার ফলাফল যেন নেটিভ ক্যামেরা অ্যাপের ফলাফলের অনুরূপ, এমনকি অভিন্ন হয়। এর অর্থ হলো, এক্সপোজার, ডাইনামিক রেঞ্জ এবং রঙের মতো টিউনিংয়ের বিকল্পগুলো নেটিভ অ্যাপ থেকে থার্ড-পার্টি অ্যাপেও কার্যকর থাকবে। আপনার ডিভাইসে ১০-বিট ক্যামেরা আউটপুট সমর্থনকারী কোনো থার্ড-পার্টি অ্যাপের ভিডিও রেকর্ডিং আচরণ যাচাই করতে, গিটহাবে থাকা Camera2Video স্যাম্পল অ্যাপটি ব্যবহার করুন। সেন্সর, প্যানেল, দেখার পরিস্থিতি এবং বিক্রেতার পছন্দের ভিন্নতার কারণে, বস্তুনিষ্ঠ সংখ্যা ছাড়াই HDR-এর দৃশ্যমান দিকগুলো তুলে ধরার জন্যই নিম্নলিখিত নির্দেশিকাটি দেওয়া হয়েছে।
তুলনার জন্য প্রস্তাবিত দৃশ্য
নেটিভ ক্যামেরা অ্যাপ এবং একটি থার্ড-পার্টি অ্যাপের মধ্যে তুলনা করার জন্য, নেটিভ ক্যামেরা অ্যাপ এবং Camera2Video স্যাম্পল অ্যাপ উভয় ব্যবহার করে বিভিন্ন সিনে ভিডিও ধারণ করুন। তুলনার জন্য নিম্নলিখিত সিনগুলো ব্যবহারের পরামর্শ দেওয়া হলো:
- মাঝারি থেকে কম আলোর কোনো দৃশ্যে মোমবাতি বা ছোট উজ্জ্বল আলোর মতো কোনো উজ্জ্বল বস্তু থাকলে, যা উজ্জ্বলতার একটি উল্লেখযোগ্য পরিসর তৈরি করে। এটি অটো এক্সপোজারের আচরণ এবং ডাইনামিক রেঞ্জ যাচাই করে।
- প্রাণবন্ত রঙ এবং গাড়ির ক্রোম বাম্পারের মতো প্রতিফলক বস্তুসহ একটি উজ্জ্বল বহিরাঙ্গনের দৃশ্য, যা উজ্জ্বল হাইলাইট তৈরি করে। এটি আরও উজ্জ্বল হাইলাইটসহ উজ্জ্বল দৃশ্যগুলোর রেন্ডারিং নিশ্চিত করে।
- একটি মাঝারি-পরিসরের, কম ডাইনামিক রেঞ্জের দৃশ্য, যেমন বাড়ি বা অফিসের ভেতরের কোনো প্রাকৃতিক দৃশ্য। এটি নিশ্চিত করে যে কম তীব্র আলোর পরিস্থিতি প্রত্যাশিতভাবেই কাজ করে।
সব দৃশ্যের ক্ষেত্রেই এক্সপোজার, রঙ এবং ত্বকের টোনের সঠিক বিন্যাস যাচাই করার জন্য মানুষ ও মুখমণ্ডল রাখার পরামর্শ দেওয়া হয়। শট-টু-শট পার্থক্য কমালে পরপর তুলনা করা সহজ হয়।
স্ট্যান্ডার্ড ডাইনামিক রেঞ্জ এবং হাই ডাইনামিক রেঞ্জের তুলনা করুন
একটি স্ট্যান্ডার্ড ডাইনামিক রেঞ্জ প্রোফাইলের তুলনায় একটি ১০-বিট ডাইনামিক রেঞ্জ প্রোফাইল ব্যবহারের সুবিধা আছে কিনা তা নিশ্চিত করতে, SDR (কোনো HDR প্রোফাইল ছাড়া) দিয়ে ধারণ করা ভিডিওর সাথে HDR ভিডিওগুলির তুলনা করুন এবং দেখুন যে ধারণ করা ভিডিওগুলিতে HDR-এর মূল দিকগুলি দেখা যাচ্ছে কিনা। SDR এবং HDR তুলনা করার জন্য, Camera2Video স্যাম্পল অ্যাপ এবং নেটিভ ক্যামেরা অ্যাপ ও থার্ড-পার্টি অ্যাপগুলির মধ্যে তুলনা করার জন্য প্রস্তাবিত সিনগুলি ব্যবহার করুন।
প্রস্তাবিত দৃশ্যগুলিতে যাচাই করার জন্য নিম্নলিখিতগুলি হল মূল দিক। HDR সক্ষম ডিসপ্লে প্যানেলগুলির উজ্জ্বলতার মাত্রা (নিটস বা লুমেন্সে পরিমাপ করা) ভিন্ন ভিন্ন হয়, তাই নিম্নলিখিত সংখ্যাগুলি উদাহরণ হিসাবে দেওয়া হয়েছে:
- মাঝারি থেকে কম আলোর দৃশ্যে, মোমবাতি বা ছোট আলোর উজ্জ্বল অংশগুলো HDR ক্লিপে ডিসপ্লের জন্য সর্বোচ্চ উজ্জ্বলতায় (সম্ভবত ১০০০ নিটস পর্যন্ত) এবং SDR ক্লিপে SDR-এর জন্য সর্বোচ্চ উজ্জ্বলতায় (প্রায় ১০০ নিটস) রেন্ডার করা হয়। HDR ক্লিপে, উজ্জ্বল অংশগুলো ডিসপ্লে থেকে ঠিকরে বের হয়ে আসবে, যা দৃশ্যটির প্রকৃত ডাইনামিক রেঞ্জ সম্পর্কে ব্যবহারকারীর ধারণাকে তুলে ধরবে। HDR ক্লিপের তুলনায়, SDR ক্লিপটিকে আরও অনুজ্জ্বল এবং কম উজ্জ্বল দেখাবে।
- উজ্জ্বল আউটপুট দৃশ্যে, ডিভাইসের টিউনিংয়ের ওপর নির্ভর করে, SDR ক্লিপের তুলনায় HDR ক্লিপে স্ক্রিনের উজ্জ্বলতায় একটি সুস্পষ্ট পার্থক্য দেখা যায়। HDR ক্লিপের ক্ষেত্রে, সামগ্রিক দৃশ্যের জন্য স্ক্রিনের উজ্জ্বলতা (হেডরুমের ওপর নির্ভর করে) বেশি হওয়া উচিত, যেমন—৮০০ নিটস পর্যন্ত, এবং ক্রোম বাম্পারের মতো উজ্জ্বল অংশগুলোর জন্য তা আরও বেশি, প্রায় সর্বোচ্চ উজ্জ্বলতার কাছাকাছি হওয়া উচিত।
- মাঝারি-পরিসরের, কম ডাইনামিক রেঞ্জের ইনডোর ক্যাপচারে, HDR এবং SDR ক্লিপগুলো রঙ ও টোনের দিক থেকে একই রকম হয়, তবে HDR ক্যাপচারটি SDR-এর চেয়ে কিছুটা উজ্জ্বল হতে পারে। HDR কোনোভাবেই SDR-এর চেয়ে অনুজ্জ্বল হওয়া উচিত নয়। যদি টিউনিংয়ের কারণে এটি অসম্ভব হয়ে পড়ে, তবে নিশ্চিত করুন যে থার্ড-পার্টি অ্যাপের আচরণ নেটিভ ক্যামেরা অ্যাপের আচরণের সাথে মিলে যায়।