تصوير 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.

وسائط

قم بتنفيذ برنامج الترميز 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 العامة .

لمزيد من المعلومات، راجع المصادر التالية.

كاميرا هال

مساحة البيانات المخزنة الرسومية

مساحة استخدام المخزن المؤقت للرسومات

تصديق

للتحقق من أن تطبيقك يدعم صور HEIC، استخدم تطبيق اختبار TestingCamera2 وقم بتشغيل اختبارات CTS وVTS التالية للكاميرا.

اختبارات كاميرا CTS

اختبارات كاميرا VTS