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