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

بدءًا من 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);