تصدير إحصاءات ترميز الفيديوهات

بدءًا من Android 13، يمكن لعملاء التطبيقات طلب مشفِّر الفيديو لتصدير إحصاءات التشفير لكل إطار فيديو تم تشفيره. باستخدام الإحصاءات التي يتم الحصول عليها من برنامج ترميز الفيديو، يمكن للتطبيقات تحسين مهام ترميز الفيديو، مثل الترميز المتعدّد المراحل والمعالجة المسبقة للإطارات قبل التشفير.

لتصدير إحصاءات ترميز الفيديو، على مورّدي شرائح المنظومة المتكاملة (SoC) تغيير برنامج تشغيل ملف ترميز الفيديو كما هو موضّح في التعديلات على برنامج تشغيل ملف ترميز الفيديو.

بيانات إحصاءات ترميز الفيديو

في Android 13، يصدِّر برنامج ترميز الفيديو بيانات الإحصاءات كما هو موضَّح في الجدول التالي.

اسم إحصاءات برنامج الترميز الوصف
متوسط معدل الوحدات الكميّة للبلوكات لكل إطار متوسّط جميع قيم QP للكتلة في إطار الفيديو التي يتم تشفيرها في بث البتات
نوع الصورة النوع I أو P أو B

يمكن للمطوّرين استرداد معلومات الإحصاءات لكل إطار باستخدام فئة المطوّر MediaFormat.

تعديلات على برنامج تشغيل برنامج ترميز الفيديو

لتفعيل ميزة تصدير إحصاءات ترميز الفيديو، على مورّدي شرائح المنظومة المتكاملة تغيير برنامج تشغيل برنامج ترميز الفيديو. تمت إضافة المفاتيح التالية في قاعدة الترميز 2.0 في Android 13:

  • يصف KEY_VIDEO_QP_AVERAGE متوسط QP للوحدة في كل إطار.

    تنطبق القواعد التالية على تنفيذ مفتاح KEY_VIDEO_QP_AVERAGE:

    • يجب أن يُقرِّب برنامج ترميز SoC متوسط قيم QP للكتلة إلى أقرب عدد صحيح قبل نقله إلى الترميز 2.0.

    • لا يتم احتساب متوسط القيمة إلا من مستوى الإضاءة.

    • يجب أن يعرض برنامج ترميز SoC القيمة INT_MAX إذا كانت جميع الكتل في الإطار الحالي في وضع التخطّي. يحدث هذا الشرط عندما لا يتم ترميز أيّ معاملات ولا يتم ترميز أيّ معلومات مهمة عن QP في الإطار.

  • KEY_PICTURE_TYPE يصف نوع الصورة للإطار المشفَّر على النحو التالي: PICTURE_TYPE_I، PICTURE_TYPE_P، PICTURE_TYPE_B، أو PICTURE_TYPE_UNKNOWN.

  • يصف KEY_VIDEO_ENCODING_STATISTICS_LEVEL مستوى معلومات إحصاءات الترميز الصادرة من برنامج ترميز الفيديو، على النحو التالي:

    • عندما لا يُنشئ برنامج الترميز أي معلومات عن إحصاءات الترميز، يتم ضبط هذا المفتاح على VIDEO_ENCODING_STATISTICS_LEVEL_NONE.

    • عندما يُنشئ برنامج الترميز KEY_VIDEO_QP_AVERAGE وKEY_PICTURE_TYPE لكل إطار، يتم ضبط هذا المفتاح على VIDEO_ENCODING_STATISTICS_LEVEL_1.

اطّلِع على VideoEncodingStatisticsTest للاطّلاع على مثال على التنفيذ.

التحقُّق

يمكنك إجراء اختبار VideoEncodingStatisticsTest CTS للتأكّد من أنّ متوسط جزء QP من إحصاءات ترميز الفيديو يعمل بشكلٍ سليم: يُجري CTS عمليتَي ترميز للفيديو الوارد نفسه، إحداهما بمعدل نقل بيانات أعلى والأخرى بمعدل نقل بيانات أقل. بعد ذلك، تقارن أداة CTS بين متوسط قيم QP المُصدَّرَين من عمليتَي الترميز. إذا كان متوسّط QP من الترميز بمعدل البت المنخفض أعلى من متوسّط QP من الترميز بمعدل البت الأعلى، يتم اجتياز CTS.

للتأكّد من إيقاف ميزة تصدير إحصاءات ترميز الفيديو عند تفعيلها، استخدِم المفتاح VIDEO_ENCODING_STATISTICS_LEVEL_NONE على النحو التالي:

format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);