التقاط صور HEIF

تتيح الأجهزة التي تعمل بالإصدار 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 للكاميرا

اختبارات "ميزة التعرّف المرئي" عبر الكاميرا