החל מאנדרואיד 13, לקוחות אפליקציה יכולים לבקש ממקודד הווידאו לייצא סטטיסטיקות קידוד עבור כל פריים וידאו מקודד. בעזרת הנתונים הסטטיסטיים המתקבלים ממקודד הווידאו, אפליקציות יכולות לייעל את משימות קידוד הווידאו שלהן, כגון קידוד רב-מעבר ועיבוד מקדים של פריימים לפני הקידוד.
כדי לייצא נתונים סטטיסטיים של קידוד וידאו, ספקי SoC חייבים לשנות את מנהל ההתקן של מקודד הווידאו כמתואר ב'עדכונים למנהל ההתקן של מקודד הווידאו .
נתונים סטטיסטיים של קידוד וידאו
עם אנדרואיד 13, מקודד הווידאו מייצא נתונים סטטיסטיים כפי שמוצג בטבלה הבאה.
שם הנתונים הסטטיסטיים של המקודד | תיאור |
---|---|
QP בלוק ממוצע למסגרת | הממוצע של כל ה-QP של הבלוקים במסגרת הווידאו המקודדים בזרם הסיביות |
סוג תמונה | סוג I או P או B |
מפתחים יכולים לאחזר מידע סטטיסטי עבור כל מסגרת באמצעות מחלקת המפתחים MediaFormat
.
עדכונים למנהל ההתקן של מקודד הווידאו
כדי לתמוך בייצוא של סטטיסטיקות קידוד וידאו, ספקי SoC חייבים לשנות את מנהל ההתקן של מקודד הווידאו. המפתחות הבאים מתווספים בבסיס Codec 2.0 באנדרואיד 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);