آمار رمزگذاری ویدیو را صادر کنید

با شروع Android 13، مشتریان برنامه می توانند از رمزگذار ویدیو درخواست کنند تا آمار رمزگذاری را برای هر فریم ویدیوی رمزگذاری شده صادر کند. با آمار به دست آمده از رمزگذار ویدیو، برنامه ها می توانند وظایف رمزگذاری ویدیوی خود را مانند رمزگذاری چند گذری و پیش پردازش فریم را قبل از رمزگذاری بهینه کنند.

برای صادر کردن آمار کدگذاری ویدیو، فروشندگان SoC باید درایور رمزگذار ویدیو را همانطور که در به‌روزرسانی‌ها توضیح داده شده است، به درایور رمزگذار ویدیو تغییر دهند.

داده های آمار رمزگذاری ویدیو

با اندروید 13، رمزگذار ویدیو داده های آماری را همانطور که در جدول زیر نشان داده شده است صادر می کند.

نام آمار رمزگذار توضیحات
میانگین بلوک QP در هر فریم میانگین تمام بلوک‌های QP در فریم ویدیویی که در جریان بیت کدگذاری شده‌اند
نوع تصویر نوع I یا P یا B

توسعه دهندگان می توانند اطلاعات آماری هر فریم را با استفاده از کلاس توسعه دهنده MediaFormat بازیابی کنند.

به روز رسانی درایور رمزگذار ویدیو

برای پشتیبانی از صادرات آمار رمزگذاری ویدیو، فروشندگان SoC باید درایور رمزگذار ویدیو را تغییر دهند. کلیدهای زیر در پایه کدک 2.0 در اندروید 13 اضافه شده است:

  • KEY_VIDEO_QP_AVERAGE میانگین بلوک QP در هر فریم را توصیف می کند.

    قوانین زیر برای اجرای کلید KEY_VIDEO_QP_AVERAGE اعمال می شود:

    • رمزگذار SoC قبل از ارسال به Codec 2.0 باید میانگین QPهای بلوک را به نزدیکترین عدد صحیح گرد کند.

    • مقدار متوسط ​​فقط از یک صفحه لوما محاسبه می شود.

    • اگر تمام بلوک‌های فریم فعلی در حالت پرش قرار دارند، رمزگذار 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);
،

با شروع Android 13، مشتریان برنامه می توانند از رمزگذار ویدیو درخواست کنند تا آمار رمزگذاری را برای هر فریم ویدیوی رمزگذاری شده صادر کند. با آمار به دست آمده از رمزگذار ویدیو، برنامه ها می توانند وظایف رمزگذاری ویدیوی خود را مانند رمزگذاری چند گذری و پیش پردازش فریم را قبل از رمزگذاری بهینه کنند.

برای صادر کردن آمار کدگذاری ویدیو، فروشندگان SoC باید درایور رمزگذار ویدیو را همانطور که در به‌روزرسانی‌ها توضیح داده شده است، به درایور رمزگذار ویدیو تغییر دهند.

داده های آمار رمزگذاری ویدیو

با اندروید 13، رمزگذار ویدیو داده های آماری را همانطور که در جدول زیر نشان داده شده است صادر می کند.

نام آمار رمزگذار توضیحات
میانگین بلوک QP در هر فریم میانگین تمام بلوک‌های QP در فریم ویدیویی که در جریان بیت کدگذاری شده‌اند
نوع تصویر نوع I یا P یا B

توسعه دهندگان می توانند اطلاعات آماری هر فریم را با استفاده از کلاس توسعه دهنده MediaFormat بازیابی کنند.

به روز رسانی درایور رمزگذار ویدیو

برای پشتیبانی از صادرات آمار رمزگذاری ویدیو، فروشندگان SoC باید درایور رمزگذار ویدیو را تغییر دهند. کلیدهای زیر در پایه کدک 2.0 در اندروید 13 اضافه شده است:

  • KEY_VIDEO_QP_AVERAGE میانگین بلوک QP در هر فریم را توصیف می کند.

    قوانین زیر برای اجرای کلید KEY_VIDEO_QP_AVERAGE اعمال می شود:

    • رمزگذار SoC قبل از ارسال به Codec 2.0 باید میانگین QPهای بلوک را به نزدیکترین عدد صحیح گرد کند.

    • مقدار متوسط ​​فقط از یک صفحه لوما محاسبه می شود.

    • اگر تمام بلوک‌های فریم فعلی در حالت پرش قرار دارند، رمزگذار 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);