تتيح الأجهزة التي تعمل بالإصدار 10 من نظام التشغيل Android تنسيق الصور المضغوطة 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
على "صحيح"،
و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
وما فوق) اختيارية. تتجاهل حزمة تطوير البرامج (SDK) للكاميرا علامات 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
اختبارات "ميزة التعرّف المرئي" عبر الكاميرا