एंड्रॉइड 13 से शुरू होकर, ऐप क्लाइंट वीडियो एनकोडर से प्रत्येक एन्कोडेड वीडियो फ्रेम के लिए एन्कोडिंग आंकड़े निर्यात करने का अनुरोध कर सकते हैं। वीडियो एनकोडर से प्राप्त आंकड़ों के साथ, ऐप्स अपने वीडियो एन्कोडिंग कार्यों जैसे मल्टीपास एन्कोडिंग और एन्कोडिंग से पहले फ्रेम प्रीप्रोसेसिंग को अनुकूलित कर सकते हैं।
वीडियो एन्कोडिंग आँकड़ों को निर्यात करने के लिए, SoC विक्रेताओं को वीडियो एनकोडर ड्राइवर को अपडेट में वर्णित अनुसार वीडियो एन्कोडर ड्राइवर में बदलना होगा।
वीडियो एन्कोडिंग सांख्यिकी डेटा
एंड्रॉइड 13 के साथ, वीडियो एनकोडर सांख्यिकी डेटा निर्यात करता है जैसा कि निम्न तालिका में दिखाया गया है।
एन्कोडर आँकड़ों का नाम | विवरण |
---|---|
प्रति फ्रेम औसत ब्लॉक क्यूपी | वीडियो फ्रेम में सभी ब्लॉक क्यूपी का औसत जो बिटस्ट्रीम में एन्कोड किया गया है |
चित्र प्रकार | टाइप I या P या B |
डेवलपर्स MediaFormat
डेवलपर वर्ग का उपयोग करके प्रत्येक फ़्रेम के लिए सांख्यिकी जानकारी पुनर्प्राप्त कर सकते हैं।
वीडियो एनकोडर ड्राइवर को अद्यतन
वीडियो एन्कोडिंग आँकड़ों के निर्यात का समर्थन करने के लिए, SoC विक्रेताओं को वीडियो एनकोडर ड्राइवर को बदलना होगा। एंड्रॉइड 13 में कोडेक 2.0 बेस में निम्नलिखित कुंजियाँ जोड़ी गई हैं:
KEY_VIDEO_QP_AVERAGE
प्रति-फ़्रेम औसत ब्लॉक QP का वर्णन करता है।KEY_VIDEO_QP_AVERAGE
कुंजी के कार्यान्वयन पर निम्नलिखित नियम लागू होते हैं:SoC एनकोडर को कोडेक 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
वीडियो एनकोडर से उत्सर्जित एन्कोडिंग सांख्यिकी जानकारी के स्तर का वर्णन इस प्रकार करता है:जब एनकोडर एन्कोडिंग आंकड़ों के बारे में कोई जानकारी उत्पन्न नहीं करता है, तो यह कुंजी
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
पर सेट हो जाती है।जब एनकोडर प्रत्येक फ्रेम के लिए
KEY_VIDEO_QP_AVERAGE
औरKEY_PICTURE_TYPE
उत्पन्न करता है, तो यह कुंजीVIDEO_ENCODING_STATISTICS_LEVEL_1
पर सेट हो जाती है।
संदर्भ कार्यान्वयन के लिए VideoEncodingStatisticsTest
देखें।
मान्यकरण
यह सत्यापित करने के लिए VideoEncodingStatisticsTest
CTS परीक्षण चलाएँ कि वीडियो एन्कोडिंग आँकड़ों का औसत QP भाग सही ढंग से काम करता है: CTS एक ही इनपुट वीडियो के दो एन्कोडिंग चलाता है, एक उच्च बिटरेट के साथ, और दूसरा कम बिटरेट के साथ। सीटीएस फिर दो एन्कोडिंग से दो निर्यातित औसत क्यूपी मूल्यों की तुलना करता है। यदि कम बिटरेट वाले एन्कोडिंग से औसत क्यूपी उच्च बिटरेट वाले एन्कोडिंग से औसत क्यूपी से अधिक है, तो सीटीएस पास हो जाता है।
सक्षम होने पर निर्यात वीडियो एन्कोडिंग सांख्यिकी सुविधा को बंद करने की पुष्टि करने के लिए, निम्नानुसार VIDEO_ENCODING_STATISTICS_LEVEL_NONE
कुंजी का उपयोग करें:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);