১০-বিট ক্যামেরা আউটপুট

Android 13 ও তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইসের জন্য, Android ডায়নামিক রেঞ্জ প্রোফাইলের মাধ্যমে ১০-বিট ক্যামেরা আউটপুট কাজ করে যা স্ট্রিম কনফিগারেশনের অংশ হিসেবে ক্যামেরা ক্লায়েন্ট কনফিগার করতে পারে। ডিভাইস প্রস্তুতকারক HLG10, HDR 10, HDR 10+ এবং Dolby Vision-এর মতো 10-বিট ডায়নামিক রেঞ্জ প্রোফাইলের জন্য সহায়তা যোগ করতে পারেন।

১০-বিট ক্যামেরা আউটপুট সাপোর্ট, ক্যামেরা ক্লায়েন্টকে getSupportedProfiles কল করে কোনও ডিভাইসের কাজ করে এমন ১০-বিট ডায়নামিক রেঞ্জ প্রোফাইল খুঁজে পেতে দেয়। তারপরে ফ্রেমওয়ার্ক DynamicRangeProfiles-এর একটি ইনস্ট্যান্স রিটার্ন করে, যার মধ্যে কাজ করে এমন ডায়নামিক রেঞ্জ প্রোফাইল এবং উপলভ্য হলে, ক্যাপচার অনুরোধ সংক্রান্ত বিধিনিষেধ সম্পর্কিত তথ্য অন্তর্ভুক্ত থাকে। HLG10 প্রোফাইল অবশ্যই কাজ করতে হবে। সাজেস্ট করা ডায়নামিক রেঞ্জ প্রোফাইলটি REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE ফিল্ডে দেখানো হয়েছে।

ক্যামেরা ক্লায়েন্টরা setDynamicRangeProfile কল করে স্ট্রিম কম্বিনেশন কনফিগার করতে পারে। বাধ্যতামূলক আউটপুট স্ট্রিম কম্বিনেশন সম্পর্কে আরও তথ্যের জন্য, রেগুলার ক্যাপচার-এ ১০-বিট আউটপুট অতিরিক্ত গ্যারান্টিযুক্ত কনফিগারেশন টেবিল দেখুন।

প্রয়োজনীয়তা

10-বিট ক্যামেরা আউটপুট সাপোর্ট করার জন্য, ডিভাইসে অবশ্যই 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 বাফারের স্ট্যাটিক বা ডায়নামিক মেটাডেটা বাফার সেট করুন।

Camera HAL-এ ১০-বিট ক্যামেরা আউটপুট সম্পর্কে আরও জানতে, metadata_definitions.xml-এ নিম্নলিখিতগুলি দেখুন:

১০-বিট ক্যামেরা আউটপুট সাপোর্ট করে এমন রেফারেন্স ক্যামেরা HAL ইমপ্লিমেন্টেশনের জন্য, /hardware/google/camera/devices/EmulatedCamera/hwl দেখুন।

যাচাইকরণ

১০-বিট ক্যামেরা আউটপুটের আপনার প্রয়োগকে যাচাই করতে এবং থার্ড-পার্টি অ্যাপ যাতে ফিচারটি চালু করতে পারে তা নিশ্চিত করতে, আমরা যাচাইকরণের নিম্নলিখিত তিনটি ধাপ সম্পাদন করার পরামর্শ দিই।

১০-বিট ক্যামেরা আউটপুটের ভিজ্যুয়াল ভ্যালিডেশনের জন্য, এটি ধরে নেওয়া হয় যে ডিভাইসটি HDR (১০০০+ নিট ডিসপ্লে) দেখাতে পারে এবং ভিডিও দেখার অ্যাপ (যেমন, Google Photos) HDR ভিডিও প্লেব্যাক করতে পারে।

API-এর ফাংশনাল সঠিকতা পরীক্ষা করা

১০-বিট ক্যামেরা আউটপুটের 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।

নেটিভ ক্যামেরা ও থার্ড-পার্টি অ্যাপের তুলনা করা

আমরা থার্ড-পার্টি অ্যাপের মাধ্যমে ১০-বিট ভিডিও ক্যাপচার করার ফলাফল নেটিভ ক্যামেরা অ্যাপের মতো, যদি অভিন্ন না হয়, তা নিশ্চিত করার জন্য দৃঢ়ভাবে সাজেস্ট করি। এর অর্থ হল, এক্সপোজার, ডায়নামিক রেঞ্জ এবং রঙের মতো টিউনিং পছন্দগুলি নেটিভ অ্যাপ থেকে থার্ড-পার্টি অ্যাপে ফরওয়ার্ড করা উচিত। আপনার ডিভাইসে ১০-বিট ক্যামেরা আউটপুট সাপোর্ট করে এমন থার্ড-পার্টি অ্যাপের ভিডিও রেকর্ডিংয়ের আচরণ যাচাই করতে, GitHub-এ Camera2Video স্যাম্পেল অ্যাপ ব্যবহার করুন। সেন্সর, প্যানেল, দেখার কন্ডিশন ও ভেন্ডর সংক্রান্ত পছন্দ সংক্রান্ত পরিবর্তনশীলতার কারণে, নিম্নলিখিত নির্দেশিকা উদ্দেশ্যমূলক সংখ্যা ছাড়াই HDR-এর দৃশ্যমান দিকগুলি ব্যাখ্যা করার জন্য কাজ করে।

তুলনা করার জন্য সাজেস্ট করা দৃশ্য

নেটিভ ক্যামেরা অ্যাপ ও থার্ড-পার্টি অ্যাপের মধ্যে তুলনা করতে, নেটিভ ক্যামেরা অ্যাপ ও Camera2Video স্যাম্পেল অ্যাপ, দু'টি দিয়েই বিভিন্ন ধরনের দৃশ্য ক্যাপচার করুন। তুলনা করার জন্য নিম্নলিখিত দৃশ্যগুলি ব্যবহার করার পরামর্শ দেওয়া হয়:

  • মাঝারি থেকে কম আলোয় আলোকিত দৃশ্য, যেখানে মোমবাতি বা ছোট উজ্জ্বল আলোর মতো কোনও উজ্জ্বল অবজেক্ট রয়েছে যা উজ্জ্বলতার একটি উল্লেখযোগ্য রেঞ্জ তৈরি করে। এটি অটো এক্সপোজার আচরণ এবং ডায়নামিক রেঞ্জ কনফার্ম করে।
  • উজ্জ্বল রঙ এবং প্রতিফলিত বস্তু সহ একটি উজ্জ্বল আউটডোর দৃশ্য, যেমন গাড়িতে ক্রোম বাম্পার, যা উজ্জ্বল হাইলাইট তৈরি করে। এটি আরও উজ্জ্বল হাইলাইট সহ উজ্জ্বল দৃশ্যের রেন্ডারিং নিশ্চিত করে।
  • মাঝারি রেঞ্জ, কম ডায়নামিক রেঞ্জের দৃশ্য, যেমন বাড়ি বা অফিসের ভেতরের প্রাকৃতিক দৃশ্য। এটি নিশ্চিত করে যে কম চরম আলোর পরিস্থিতি প্রত্যাশিত আচরণ করে।

সব দৃশ্যের ক্ষেত্রে, আমরা সাজেস্ট করি যে এক্সপোজার, রঙ এবং ত্বকের টোন ম্যানেজ করা যাচাই করার জন্য মানুষ ও মুখমণ্ডল যেন থাকে। শট-টু-শট ভেরিয়েশন কমালে, পরপর তুলনা করা সহজ হয়।

স্ট্যান্ডার্ড ডায়নামিক রেঞ্জ ও হাই ডায়নামিক রেঞ্জের মধ্যে তুলনা করা

স্ট্যান্ডার্ড ডায়নামিক রেঞ্জ প্রোফাইলের তুলনায় ১০-বিট ডায়নামিক রেঞ্জ প্রোফাইল ব্যবহার করার সুবিধা বোঝার জন্য, SDR (কোনও HDR প্রোফাইল নেই) ব্যবহার করে ক্যাপচার করা ভিডিওর সাথে HDR ভিডিওর তুলনা করুন, যাতে HDR-এর মূল দিকগুলি ক্যাপচারে দেখা যায়। SDR ও HDR-এর মধ্যে তুলনা করতে, নেটিভ ক্যামেরা অ্যাপ ও থার্ড-পার্টি অ্যাপের মধ্যে তুলনা করার জন্য Camera2Video স্যাম্পেল অ্যাপ ও সাজেস্ট করা দৃশ্য ব্যবহার করুন।

সাজেস্ট করা দৃশ্য যাচাই করার সময় নিম্নলিখিত বিষয়গুলি ভালোভাবে দেখে নিতে ভুলবেন না। HDR-এর জন্য উপযুক্ত ডিসপ্লে প্যানেলের ব্রাইটনেস লেভেল (নিট বা লুমেন এককে পরিমাপ করা হয়) আলাদা আলাদা হয়, তাই নিচে দেওয়া সংখ্যাগুলি উদাহরণ হিসেবে দেখানো হয়েছে:

  • মাঝারি থেকে কম আলোর দৃশ্যে, মোমবাতি বা ছোট আলোর উজ্জ্বল হাইলাইট HDR ক্লিপে ডিসপ্লের জন্য সর্বাধিক উজ্জ্বলতায় (সম্ভবত ১০০০ নিট পর্যন্ত) এবং SDR ক্লিপে SDR-এর জন্য সর্বাধিক উজ্জ্বলতায় (প্রায় ১০০ নিট) রেন্ডার করা হয়। HDR ক্লিপে, উজ্জ্বল হাইলাইটগুলি ডিসপ্লে থেকে উজ্জ্বল হওয়া উচিত, যা ব্যবহারকারীর ধারণাকে ক্যাপচার করে দৃশ্যটির আসল ডাইনামিক রেঞ্জ কী ছিল। HDR ক্লিপের তুলনায়, SDR ক্লিপটি ফ্ল্যাট ও কম উজ্জ্বল দেখাবে।
  • উজ্জ্বল আউটপুট দৃশ্যে, ডিভাইসের টিউনিংয়ের উপর নির্ভর করে, HDR ক্লিপটি SDR ক্লিপের তুলনায় স্ক্রিনের উজ্জ্বলতায় স্পষ্ট পার্থক্য দেখায়। HDR ক্লিপের ক্ষেত্রে, সামগ্রিক দৃশ্যের জন্য স্ক্রিন ব্রাইটনেস (হেডরুমের উপর নির্ভর করে) বেশি হওয়া উচিত, যেমন, ৮০০ নিট পর্যন্ত এবং এমনকি ক্রোম বাম্পারের মতো উজ্জ্বল হাইলাইটের ক্ষেত্রে আরও বেশি, যা সর্বাধিক ব্রাইটনেসের কাছাকাছি।
  • মিড-রেঞ্জে, কম ডায়নামিক রেঞ্জের ইনডোর ক্যাপচারে, HDR ও SDR ক্লিপের রঙ ও টোন একই রকম হয়, তবে HDR ক্যাপচারটি সম্ভাব্যভাবে SDR-এর চেয়ে বেশি উজ্জ্বল হয়। HDR, SDR-এর থেকে বেশি অন্ধকারাচ্ছন্ন হলে চলবে না। যদি টিউনিং সংক্রান্ত বিকল্পের জন্য এটি সম্ভব না হয়, তাহলে নিশ্চিত করুন যে থার্ড-পার্টি অ্যাপের আচরণ যেন নেটিভ ক্যামেরা অ্যাপের আচরণের সাথে মেলে।