تدعم الأجهزة التي تعمل بنظام 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.
وسائل الإعلام
قم بتنفيذ برنامج ترميز 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 في واجهة برمجة التطبيقات العامة ، تنشئ خدمة الكاميرا دفقين داخليين لـ HAL:
- دفق BLOB مع علامة استخدام
JPEG_APPS_SEGMENT
لتخزين مقاطع التطبيق بما في ذلك EXIF وشرائح الصور المصغرة - تدفق
IMPLEMENTATION_DEFINED
أوYCBCR_420_888
بحجم تدفق HEIC اعتمادًا على برنامج الترميز المستهدف وحجم تدفق 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 العامة .
لمزيد من المعلومات ، راجع المصادر التالية.
كاميرا HAL
مساحة بيانات المخزن الرسومي
مساحة استخدام المخزن الرسومي
تصديق
للتحقق من أن تطبيقك يدعم صور HEIC ، استخدم تطبيق اختبار TestingCamera2
وقم بتشغيل اختبارات CTS و VTS التالية للكاميرا.
اختبارات كاميرا CTS
-
NativeImageReaderTest#testHeic
-
ImageReaderTest#testHeic
-
ImageReaderTest#testRepeatingHeic
-
ReprocessCaptureTest#testBasicYuvToHeicReprocessing
-
ReprocessCaptureTest#testBasicOpaqueToHeicReprocessing
-
RobustnessTest#testMandatoryOutputCombinations
-
StillCaptureTest#testHeicExif
اختبارات الكاميرا VTS