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