HEIF ইমেজিং

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 টাইপ কোডেক হয় 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 কে সত্যে সেট করুন এবং ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT কে [1, 16] -এর মধ্যে একটি মান নির্ধারণ করুন, যা JPEG অ্যাপ সেগমেন্টের সংখ্যা নির্দেশ করে।

প্রতিটি বাধ্যতামূলক স্ট্রিম সংমিশ্রণের জন্য, আপনার ক্যামেরা ডিভাইসটিকে অবশ্যই একই আকারের একটি HEIC স্ট্রিমের সাথে একটি JPEG স্ট্রীম অদলবদল সমর্থন করতে হবে।

পাবলিক API-এ একটি HEIC আউটপুট স্ট্রিমের জন্য, ক্যামেরা পরিষেবা দুটি HAL অভ্যন্তরীণ স্ট্রীম তৈরি করে:

  • EXIF এবং থাম্বনেইল সেগমেন্ট সহ অ্যাপ সেগমেন্টগুলি সঞ্চয় করতে JPEG_APPS_SEGMENT ব্যবহারের পতাকা সহ একটি BLOB স্ট্রীম
  • একটি IMPLEMENTATION_DEFINED বা YCBCR_420_888 টার্গেট কোডেক এবং HEIC স্ট্রিম আকারের উপর নির্ভর করে HEIC স্ট্রিমের আকার স্ট্রীম করে

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 পরীক্ষা

ক্যামেরা ভিটিএস পরীক্ষা