صادر کردن آمار کدبندی ویدیو

از 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);