ייצוא נתוני סטטיסטיקה של קידוד וידאו

החל מ-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 key:

    • מקודד ה-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 מתאר את רמת המידע של נתונים סטטיסטיים על קידוד שמופק ממקודד הווידאו, באופן הבא:

הטמעה לדוגמה מופיעה במאמר VideoEncodingStatisticsTest.

אימות

מריצים את בדיקת ה-CTS‏ VideoEncodingStatisticsTest כדי לוודא שהחלק של QP הממוצע בסטטיסטיקות של קידוד הווידאו פועל בצורה תקינה: מערכת ה-CTS מריצה שני קידודים של אותו סרטון קלט, אחד עם קצב העברת נתונים גבוה יותר ואחד עם קצב העברת נתונים נמוך יותר. לאחר מכן, מערכת CTS משווה בין שני ערכי QP הממוצעים שיוצאו משני הקידודים. אם ערך QP הממוצע מהקידוד עם קצב העברת הנתונים הנמוך יותר גבוה מערך QP הממוצע מהקידוד עם קצב העברת הנתונים הגבוה יותר, הבדיקה עוברת.

כדי לוודא שהשבתתם את התכונה של ייצוא נתוני קידוד הווידאו כשהיא מופעלת, משתמשים במקש VIDEO_ENCODING_STATISTICS_LEVEL_NONE באופן הבא:

format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);