از Android 13 به بعد، کارخواههای برنامه میتوانند از کدبند ویدیو درخواست کنند آمار کدبندی را برای هر قاب ویدیو کدبندیشده صادر کند. با آمار بهدستآمده از کدبند ویدیو، برنامهها میتوانند کارهای کدبندی ویدیو خود را بهینهسازی کنند، مانند کدبندی چندگذر و پیشپردازش فریم قبلاز کدبندی.
برای صادر کردن آمار کدبندی ویدیو، فروشندگان SoC باید درایور کدبند ویدیو را همانطور که در بهروزرسانیهای درایور کدبند ویدیو شرح داده شده است تغییر دهند.
دادههای آماری کدبندی ویدیو
در Android 13، کدبند ویدیو دادههای آماری را همانطور که در جدول زیر نشان داده شده است صادر میکند.
| نام آمار کدبند | شرح |
|---|---|
| میانگین QP بلوک در هر قاب | میانگین همه QPهای بلوک در قاب ویدیو که در جاریسازی بیت کدبندی شدهاند |
| نوع تصویر | حرف I یا P یا B را تایپ کنید |
توسعهدهندگان میتوانند بااستفاده از کلاس توسعهدهنده
MediaFormat
اطلاعات آماری هر قاب را بازیابی کنند.
بهروزرسانیهای درایور کدبند ویدیو
برای پشتیبانی از برونبرد آمار کدبندی ویدیو، فروشندگان SoC باید گرداننده کدبند ویدیو را تغییر دهند. کلیدهای زیر در پایه 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);