از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
آمار رمزگذاری ویدیو را صادر کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با شروع 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
سطح اطلاعات آماری رمزگذاری منتشر شده از رمزگذار ویدیو را به شرح زیر توصیف می کند:
برای اجرای مرجع به 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);
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Export video encoding statistics\n\nStarting with Android 13, app clients can request the\nvideo encoder to export encoding statistics for each encoded video frame. With\nthe statistics obtained from the video encoder, apps can optimize their video\nencoding tasks such as multipass encoding and frame preprocessing prior to\nencoding.\n\nTo export video encoding statistics, SoC vendors must change the video encoder\ndriver as described in [Updates to the video encoder driver](#updates-encoder).\n\nVideo encoding statistics data\n------------------------------\n\nWith Android 13, the video encoder exports statistics\ndata as shown in the following table.\n\n| Name of encoder statistics | Description |\n|----------------------------|-------------------------------------------------------------------------------------|\n| Average block QP per frame | The average of all block QPs in the video frame that are encoded into the bitstream |\n| Picture type | Type I or P or B |\n\nDevelopers can retrieve statistics information for each frame by using the\n[`MediaFormat`](https://developer.android.com/reference/android/media/MediaFormat)\ndeveloper class.\n\nUpdates to the video encoder driver\n-----------------------------------\n\nTo support the export of video encoding statistics, SoC vendors must change the\nvideo encoder driver. The following keys are added in the Codec 2.0 base in\nAndroid 13:\n\n- [`KEY_VIDEO_QP_AVERAGE`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1154) describes the per-frame\n average block QP.\n\n The following rules apply to the implementation of the `KEY_VIDEO_QP_AVERAGE`\n key:\n - The SoC encoder must round the average of the block QPs to the nearest\n integer before emitting to Codec 2.0.\n\n - The average value is computed only from a luma plane.\n\n - The SoC encoder must return `INT_MAX` if all the blocks in the current\n frame are in the skipped mode. This condition occurs when no coefficients are\n encoded and no significant QP info is encoded in the frame.\n\n- [`KEY_PICTURE_TYPE`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1163)\n describes the picture type of the encoded frame as [`PICTURE_TYPE_I`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_I),\n [`PICTURE_TYPE_P`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_P),\n [`PICTURE_TYPE_B`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_B),\n or [`PICTURE_TYPE_UNKNOWN`](https://developer.android.com/reference/android/media/MediaFormat#PICTURE_TYPE_UNKNOWN).\n\n- [`KEY_VIDEO_ENCODING_STATISTICS_LEVEL`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1122) describes the level of\n encoding statistics information emitted from video encoder, as follows:\n\n - When the encoder generates no information about encoding statistics,\n this key is set to [`VIDEO_ENCODING_STATISTICS_LEVEL_NONE`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1129).\n\n - When the encoder generates `KEY_VIDEO_QP_AVERAGE` and `KEY_PICTURE_TYPE`\n for each frame, this key is set to [`VIDEO_ENCODING_STATISTICS_LEVEL_1`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/media/java/android/media/MediaFormat.java;drc=5ad6db77423479d027abb791ad3c02da39513a2c;l=1136).\n\nSee [`VideoEncodingStatisticsTest`](https://cs.android.com/android/platform/superproject/+/android-latest-release:cts/tests/tests/media/codec/src/android/media/codec/cts/VideoEncodingStatisticsTest.java;drc=77bafd18279c8d6dad49fd74dac2e369fdc6ba69;l=56)\nfor a reference implementation.\n\nValidation\n----------\n\nRun the [`VideoEncodingStatisticsTest`](https://cs.android.com/android/platform/superproject/+/android-latest-release:cts/tests/tests/media/codec/src/android/media/codec/cts/VideoEncodingStatisticsTest.java;drc=77bafd18279c8d6dad49fd74dac2e369fdc6ba69;l=56)\nCTS test to validate that the average QP part of the video encoding statistics\nworks correctly: CTS runs two encodings of the same input video, one with a\nhigher bitrate, and another with a lower bitrate. CTS then compares the two\nexported average QP values from the two encodings. If the average QP from the encoding\nwith the lower bitrate is higher than the average QP from the encoding with the\nhigher bitrate, CTS passes.\n\nTo validate turning off the exporting video encoding statistics feature when\nenabled, use the `VIDEO_ENCODING_STATISTICS_LEVEL_NONE` key as follows: \n\n format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);"]]