بدءًا من نظام التشغيل Android 13، يمكن لبرامج التطبيقات طلب تصدير إحصاءات الترميز لكل إطار فيديو تم ترميزه من برنامج ترميز الفيديو. باستخدام الإحصاءات التي يتم الحصول عليها من برنامج ترميز الفيديو، يمكن للتطبيقات تحسين مهام ترميز الفيديو، مثل الترميز المتعدد المراحل والمعالجة المسبقة للّقطات قبل الترميز.
لتصدير إحصاءات ترميز الفيديو، على مورّدي نظام التشغيل على الشريحة تغيير برنامج تشغيل أداة ترميز الفيديو كما هو موضّح في تعديلات على برنامج تشغيل أداة ترميز الفيديو.
بيانات إحصاءات ترميز الفيديو
في نظام التشغيل Android 13، يصدّر برنامج ترميز الفيديو بيانات الإحصاءات كما هو موضّح في الجدول التالي.
اسم إحصاءات برنامج الترميز | الوصف |
---|---|
متوسط عدد وحدات البكسل في كل إطار | متوسط جميع QPs في إطار الفيديو الذي تم ترميزه في دفق البتات |
نوع الصورة | اكتب I أو P أو B |
يمكن للمطوّرين استرداد معلومات الإحصاءات لكل إطار باستخدام فئة المطوّرين
MediaFormat
.
تعديلات على برنامج تشغيل أداة ترميز الفيديو
لإتاحة تصدير إحصاءات ترميز الفيديو، على مورّدي نظام التشغيل على شريحة واحدة تغيير برنامج تشغيل برنامج ترميز الفيديو. تتم إضافة المفاتيح التالية في قاعدة بيانات Codec 2.0 في Android 13:
يمثّل
KEY_VIDEO_QP_AVERAGE
متوسط QP لكل إطار.تنطبق القواعد التالية على تنفيذ المفتاح
KEY_VIDEO_QP_AVERAGE
:يجب أن يقرِّب برنامج الترميز SoC متوسط قيم QP للكتل إلى أقرب عدد صحيح قبل إرساله إلى Codec 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);