অ্যান্ড্রয়েড ১০ চালিত ডিভাইসগুলো HEIC কম্প্রেসড ইমেজ ফরম্যাট সমর্থন করে, যা ISO/IEC 23008-12 -এ উল্লেখিত হাই এফিশিয়েন্সি ইমেজ ফাইল ফরম্যাট (HEIF)-এর একটি হাই এফিশিয়েন্সি ভিডিও এনকোডিং (HEVC) নির্দিষ্ট সংস্করণ । JPEG ফাইলের তুলনায় HEIC-এনকোডেড ছবিগুলো ছোট ফাইল সাইজে উন্নততর ছবির গুণমান প্রদান করে।
HEIC ইমেজ তৈরি করা হয় ক্যামেরা ফ্রেমওয়ার্কের মাধ্যমে, যা ক্যামেরা HAL থেকে একটি অসংকুচিত ইমেজের অনুরোধ করে এবং সেটিকে HEIC বা HEVC এনকোডার দ্বারা এনকোড করার জন্য মিডিয়া সাবসিস্টেমে পাঠায়।
প্রয়োজনীয়তা
HEIC ইমেজ ফরম্যাট সমর্থন করার জন্য, আপনার ডিভাইসে অবশ্যই একটি হার্ডওয়্যার এনকোডার থাকতে হবে যা কনস্ট্যান্ট কোয়ালিটি মোড সহ MIMETYPE_IMAGE_ANDROID_HEIC অথবা MIMETYPE_VIDEO_HEVC সমর্থন করে।
বাস্তবায়ন
আপনার ডিভাইসে HEIC ইমেজ ফরম্যাট সমর্থন করার জন্য, একটি HEIC/HEVC কোডেক প্রয়োগ করুন এবং প্রয়োজনীয় স্ট্রিম কনফিগারেশনগুলির জন্য সমর্থন প্রদান করুন, যেগুলো হলো IMPLEMENTATION_DEFINED / YUV স্ট্রিম এবং JPEG অ্যাপ সেগমেন্ট স্ট্রিম।
মিডিয়া
সংশ্লিষ্ট হার্ডওয়্যারের জন্য HEIC/HEVC কোডেকটি কনস্ট্যান্ট কোয়ালিটি (CQ) মোডে নিম্নরূপে প্রয়োগ করুন:
- HEVC টাইপ কোডেকটি ইমেজের আকারের উপর নির্ভর করে
GRALLOC_USAGE_HW_VIDEO_ENCODERব্যবহারসহIMPLEMENTATION_DEFINEDফরম্যাট অথবাHAL_PIXEL_FORMAT_YCBCR_420_888ফরম্যাট ব্যবহার করে। - HEIC টাইপ কোডেকটি
GRALLOC_USAGE_HW_IMAGE_ENCODERব্যবহারের সাথেIMPLEMENTATION_DEFINEDফরম্যাটটি গ্রহণ করে।
ক্যামেরা
স্ট্যাটিক মেটাডেটাতে, ANDROID_HEIC_INFO_SUPPORTED কে true এবং ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT কে [1, 16] -এর মধ্যে একটি মানে সেট করুন, যা JPEG অ্যাপ সেগমেন্টের সংখ্যা নির্দেশ করে।
প্রতিটি বাধ্যতামূলক স্ট্রিম সংমিশ্রণের জন্য, আপনার ক্যামেরা ডিভাইসটিকে অবশ্যই একই আকারের একটি JPEG স্ট্রিমের সাথে একটি HEIC স্ট্রিম অদলবদল করার সুবিধা থাকতে হবে।
পাবলিক এপিআই-তে একটি HEIC আউটপুট স্ট্রিমের জন্য, ক্যামেরা সার্ভিস দুটি HAL অভ্যন্তরীণ স্ট্রিম তৈরি করে:
- EXIF এবং থাম্বনেইল সেগমেন্ট সহ অ্যাপ সেগমেন্টগুলি সংরক্ষণ করার জন্য
JPEG_APPS_SEGMENTইউসেজ ফ্ল্যাগ সহ একটি BLOB স্ট্রিম। - টার্গেট কোডেক এবং HEIC স্ট্রিমের আকারের উপর নির্ভর করে একটি
IMPLEMENTATION_DEFINEDবাYCBCR_420_888স্ট্রিমের আকার HEIC স্ট্রিমের সমান হয়।
ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT এর উপর ভিত্তি করে, ক্যামেরা ফ্রেমওয়ার্ক ক্যামেরা HAL-কে JPEG অ্যাপ সেগমেন্টগুলি পূরণ করার জন্য যথেষ্ট বড় বাফার বরাদ্দ করে। APP1 সেগমেন্টটি আবশ্যক, কিন্তু এর পরবর্তী সেগমেন্টগুলি ( APP1 এবং তার উপরেরগুলি) ঐচ্ছিক। ক্যামেরা ফ্রেমওয়ার্ক APP2 সেগমেন্টের EXIF ট্যাগগুলিকে ওভাররাইড করে, যেগুলি ক্যাপচার ফলাফলের মেটাডেটা থেকে নেওয়া হতে পারে অথবা মূল ইমেজ বিটস্ট্রিমের সাথে সম্পর্কিত APP1 এবং সেগুলিকে MediaMuxer কাছে পাঠিয়ে দেয়।
যেহেতু মিডিয়া এনকোডার আউটপুট ইমেজের মেটাডেটাতে ওরিয়েন্টেশন এমবেড করে, তাই মূল ইমেজ এবং থাম্বনেইলের মধ্যে একটি সামঞ্জস্যপূর্ণ ওরিয়েন্টেশন নিশ্চিত করার জন্য, ক্যামেরা HAL অবশ্যই android.jpeg.orientation. ফ্রেমওয়ার্কটি EXIF মেটাডেটা এবং HEIC কন্টেইনারে ওরিয়েন্টেশনটি লিখে রাখে।
JPEG ফরম্যাটের সাথে সম্পর্কিত স্ট্যাটিক, কন্ট্রোল এবং ডাইনামিক মেটাডেটা ট্যাগগুলো HEIC ফরম্যাটের ক্ষেত্রেও প্রযোজ্য। উদাহরণস্বরূপ, ক্যাপচার রিকোয়েস্টে থাকা android.jpeg.orientation এবং android.jpeg.quality মেটাডেটা ট্যাগগুলো HEIC ইমেজের ওরিয়েন্টেশন এবং কোয়ালিটি নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
কোনো অ্যাপে HEIC ফরম্যাট ব্যবহার করতে, HEIC পাবলিক API ব্যবহার করুন।
আরও তথ্যের জন্য নিম্নলিখিত উৎসগুলো দেখুন।
ক্যামেরা এইচএএল
গ্রাফিক বাফার ডেটা স্পেস
গ্রাফিক বাফার ব্যবহারের স্থান
বৈধতা
আপনার ইমপ্লিমেন্টেশন HEIC ইমেজ সাপোর্ট করে কিনা তা যাচাই করতে, TestingCamera2 টেস্ট অ্যাপটি ব্যবহার করুন এবং নিম্নলিখিত ক্যামেরা CTS ও VTS টেস্টগুলো চালান।
ক্যামেরা CTS পরীক্ষা
-
NativeImageReaderTest#testHeic -
ImageReaderTest#testHeic -
ImageReaderTest#testRepeatingHeic -
ReprocessCaptureTest#testBasicYuvToHeicReprocessing -
ReprocessCaptureTest#testBasicOpaqueToHeicReprocessing -
RobustnessTest#testMandatoryOutputCombinations -
StillCaptureTest#testHeicExif
ক্যামেরা ভিটিএস পরীক্ষা