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