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