التقاط صور 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 على "صحيح" في البيانات الوصفية الثابتة. ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT إلى قيمة بين [1, 16]، الذي يشير إلى عدد أجزاء تطبيق JPEG.

يجب أن تتيح الكاميرا ميزة التبديل بين البث لكل مجموعة بث إلزامية. بث JPEG بتدفق HEIC بنفس الحجم.

بالنسبة إلى بث إخراج HEIC في واجهة برمجة التطبيقات العامة، تنشئ خدمة الكاميرا اثنين من مستويات HAL ساحات المشاركات الداخلية:

  • مصدر بيانات كائن تخزين البيانات مع علامة استخدام 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 public API:

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

طبقة تجريد الأجهزة (HAL) للكاميرا

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

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

التحقُّق

للتأكّد من أنّ التنفيذ يتوافق مع صور HEIC، استخدِم TestingCamera2 اختبار التطبيق وإجراء اختبارات CTS وVTS الكاميرا التالية.

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

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