دستگاههای دارای 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 دوربین زیر را اجرا کنید.
آزمایشهای «مجموعه آزمایش سازگاری» دوربین
NativeImageReaderTest#testHeicImageReaderTest#testHeicImageReaderTest#testRepeatingHeicReprocessCaptureTest#testBasicYuvToHeicReprocessingReprocessCaptureTest#testBasicOpaqueToHeicReprocessingRobustnessTest#testMandatoryOutputCombinationsStillCaptureTest#testHeicExif
آزمایشهای VTS دوربین