تصویربرداری HEIF

دستگاه‌های دارای Android 10 از قالب تصویر فشرده HEIC پشتیبانی می‌کنند، که یک برند خاص کدبندی ویدیو با کارایی بالا (HEVC) از قالب فایل تصویری با کارایی بالا (HEIF) است، همان‌طور که در ISO/IEC 23008-12 مشخص شده است. تصاویر کدبندی‌شده با HEIC در مقایسه با فایل‌های JPEG، کیفیت تصویر بهتری با اندازه فایل کوچک‌تر ارائه می‌دهند.

تصاویر HEIC توسط چارچوب دوربین تولید می‌شوند که تصویر فشرده‌نشده‌ای را از Camera HAL درخواست می‌کند و آن را به زیرسیستم رسانه ارسال می‌کند تا توسط کدبند HEIC یا HEVC کدبندی شود.

الزامات

برای پشتیبانی از قالب تصویر HEIC، دستگاهتان باید کدبند سخت‌افزاری داشته باشد که از MIMETYPE_IMAGE_ANDROID_HEIC یا MIMETYPE_VIDEO_HEVC با حالت کیفیت ثابت پشتیبانی کند.

پیاده‌سازی

برای پشتیبانی از قالب تصویر HEIC در دستگاهتان، کدک HEIC/HEVC را پیاده‌سازی کنید و از پیکربندی‌های جاری‌سازی موردنیاز که عبارت‌اند از جاری‌سازی‌های IMPLEMENTATION_DEFINED/YUV و جاری‌سازی‌های بخش برنامه JPEG پشتیبانی کنید.

رسانه

کدک HEIC/HEVC را در حالت کیفیت ثابت (CQ) برای سخت‌افزار مربوطه به این صورت پیاده‌سازی کنید:

  • کدک نوع HEVC بسته به اندازه تصویر، از قالب IMPLEMENTATION_DEFINED با کاربرد GRALLOC_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 است.

برای هر ترکیب جاری‌سازی اجباری، دستگاه دوربین شما باید از جابه‌جایی جاری‌سازی JPEG با جاری‌سازی HEIC با همان اندازه پشتیبانی کند.

برای جاری‌سازی برونداد HEIC در API عمومی، سرویس دوربین دو جاری‌سازی داخلی HAL ایجاد می‌کند:

  • جاری‌سازی BLOB با پرچم استفاده JPEG_APPS_SEGMENT برای ذخیره کردن بخش‌های برنامه ازجمله بخش‌های EXIF و ریزعکس
  • جریان IMPLEMENTATION_DEFINED یا YCBCR_420_888 به اندازه جریان HEIC بسته به کدک هدف و اندازه جریان HEIC

براساس ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT، چارچوب دوربین بافرهای به‌اندازه کافی بزرگ را برای Camera 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 استفاده کنید.

برای اطلاعات بیشتر، منابع زیر را ببینید.

Camera HAL

فضای داده میان‌گیر گرافیکی

فضای استفاده از بافر گرافیکی

اعتبارسنجی

برای تأیید اینکه پیاده‌سازی شما از تصاویر HEIC پشتیبانی می‌کند، از برنامه آزمایشی TestingCamera2 استفاده کنید و آزمایش‌های CTS و VTS دوربین زیر را اجرا کنید.

آزمایش‌های «مجموعه آزمایش سازگاری» دوربین

آزمایش‌های VTS دوربین