यह पृष्ठ इनपुट और आउटपुट विलंबता को मापने के सामान्य तरीकों का वर्णन करता है।
आउटपुट विलंबता मापें
आउटपुट विलंबता को मापने के लिए नीचे वर्णित सटीकता और चलने में आसानी की अलग-अलग डिग्री के साथ कई तकनीकें उपलब्ध हैं। उदाहरण परीक्षण वातावरण के लिए परीक्षण सर्किट भी देखें।
एलईडी और ऑसिलोस्कोप परीक्षण
यह परीक्षण डिवाइस के एलईडी संकेतक के संबंध में विलंबता को मापता है। यदि आपके उत्पादन उपकरण में एलईडी नहीं है, तो आप प्रोटोटाइप फॉर्म फैक्टर डिवाइस पर एलईडी स्थापित कर सकते हैं। उजागर सर्किटी वाले प्रोटोटाइप उपकरणों पर और भी बेहतर सटीकता के लिए, प्रकाश सेंसर विलंबता को बायपास करने के लिए एक ऑसिलोस्कोप जांच को सीधे एलईडी से कनेक्ट करें।
यदि आप अपने उत्पादन या प्रोटोटाइप डिवाइस पर एलईडी स्थापित नहीं कर सकते हैं, तो निम्नलिखित समाधान आज़माएँ:
- इसी उद्देश्य के लिए सामान्य प्रयोजन इनपुट/आउटपुट (GPIO) पिन का उपयोग करें।
- JTAG या किसी अन्य डिबगिंग पोर्ट का उपयोग करें।
- स्क्रीन बैकलाइट का प्रयोग करें. यह जोखिम भरा हो सकता है क्योंकि बैकलाइट में नगण्य विलंबता हो सकती है, और गलत विलंबता रीडिंग में योगदान कर सकता है।
इस परीक्षण को आयोजित करने के लिए:
- एक ऐप चलाएं जो समय-समय पर एलईडी को पल्स करता है और उसी समय ऑडियो आउटपुट देता है।
नोट: उपयोगी परिणाम प्राप्त करने के लिए, परीक्षण ऐप में सही एपीआई का उपयोग करना महत्वपूर्ण है ताकि आप तेज़ ऑडियो आउटपुट पथ का उपयोग कर सकें। पृष्ठभूमि के लिए कम विलंबता के लिए डिज़ाइन देखें।
- एलईडी के बगल में एक लाइट सेंसर लगाएं।
- दोहरे चैनल ऑसिलोस्कोप की जांच को वायर्ड हेडफोन जैक (लाइन आउटपुट) और लाइट सेंसर दोनों से कनेक्ट करें।
- लाइन आउटपुट सिग्नल बनाम प्रकाश सेंसर सिग्नल के अवलोकन के बीच समय के अंतर को मापने के लिए ऑसिलोस्कोप का उपयोग करें।
समय में अंतर अनुमानित ऑडियो आउटपुट विलंबता है, यह मानते हुए कि एलईडी विलंबता और प्रकाश सेंसर विलंबता दोनों शून्य हैं। आमतौर पर, एलईडी और लाइट सेंसर प्रत्येक में एक मिलीसेकंड या उससे कम के क्रम पर अपेक्षाकृत कम विलंबता होती है, जिसे अनदेखा करना काफी कम है।
राउंड-ट्रिप विलंबता को मापें
राउंड-ट्रिप विलंबता आउटपुट विलंबता और इनपुट विलंबता का योग है।
लार्सन परीक्षण
सबसे आसान विलंबता परीक्षणों में से एक ऑडियो फीडबैक (लार्सन प्रभाव) परीक्षण है। यह एक आवेग प्रतिक्रिया लूप को समयबद्ध करके संयुक्त आउटपुट और इनपुट विलंबता का एक कच्चा माप प्रदान करता है। परीक्षण की प्रकृति के कारण यह परीक्षण अपने आप में विस्तृत विश्लेषण के लिए बहुत उपयोगी नहीं है, लेकिन यह अन्य परीक्षणों को कैलिब्रेट करने और ऊपरी सीमा स्थापित करने के लिए उपयोगी हो सकता है।
यह विधि घटक समय को विभाजित नहीं करती है, जो महत्वपूर्ण है जब आउटपुट विलंबता और इनपुट विलंबता स्वतंत्र होती है। इसलिए सटीक आउटपुट विलंबता या इनपुट विलंबता मानों को अलग से मापने के लिए इस विधि की अनुशंसा नहीं की जाती है, लेकिन यह मोटे अनुमान स्थापित करने के लिए उपयोगी हो सकती है।
ऑन-डिवाइस स्पीकर की आउटपुट विलंबता हेडसेट कनेक्टर की आउटपुट विलंबता से काफी अधिक हो सकती है। यह स्पीकर सुधार और सुरक्षा के कारण है।
इस परीक्षण को आयोजित करने के लिए:
- एक ऐप चलाएं जो माइक्रोफ़ोन से ऑडियो कैप्चर करता है और कैप्चर किए गए डेटा को तुरंत स्पीकर पर वापस चलाता है।
- बाहरी रूप से ध्वनि बनाएं, जैसे माइक्रोफ़ोन द्वारा पेंसिल को टैप करना। यह शोर एक फीडबैक लूप उत्पन्न करता है। वैकल्पिक रूप से, कोई सॉफ़्टवेयर का उपयोग करके लूप में एक आवेग इंजेक्ट कर सकता है।
- आउटपुट विलंबता, इनपुट विलंबता और एप्लिकेशन ओवरहेड का योग प्राप्त करने के लिए फीडबैक पल्स के बीच के समय को मापें।
लार्सन परीक्षण के लिए ऐप प्राप्त करने के लिए यहां कुछ संसाधन दिए गए हैं:
- डॉ. रिक ओ'रंग लूपबैक ऐप ऑडियो फीडबैक परीक्षण के लिए एक एंड्रॉइड ऐप है। आप Google Play से ऐप डाउनलोड कर सकते हैं या GitHub से सोर्स कोड प्राप्त कर सकते हैं ।
- हमने slesTestFeedback.cpp पर एक उदाहरण कार्यान्वयन भी प्रकाशित किया है। यह एक कमांड-लाइन ऐप है और इसे प्लेटफ़ॉर्म बिल्ड वातावरण का उपयोग करके बनाया गया है; हालाँकि अन्य परिवेशों के लिए कोड को अपनाना सरल होना चाहिए। आपको
audio_utils
लाइब्रेरी में स्थित नॉन-ब्लॉकिंग फीफो कोड की भी आवश्यकता होगी।
ऑडियो लूपबैक डोंगल
डॉ. रिक ओ'रंग ऑडियो लूपबैक डोंगल हेडसेट कनेक्टर पर राउंड-ट्रिप विलंबता को मापने के लिए उपयोगी है। नीचे दी गई छवि एक बार लूप में एक आवेग को इंजेक्ट करने और फिर फीडबैक लूप को दोलन करने की अनुमति देने के परिणाम को दर्शाती है। दोलनों की अवधि राउंड-ट्रिप विलंबता है। विशिष्ट उपकरण, सॉफ़्टवेयर रिलीज़ और परीक्षण स्थितियाँ यहाँ निर्दिष्ट नहीं हैं। दिखाए गए परिणामों को अतिरिक्त रूप से प्रस्तुत नहीं किया जाना चाहिए।
आपको शोर को कम करने के लिए यूएसबी केबल को हटाने और स्थिर दोलन प्राप्त करने के लिए वॉल्यूम स्तर को समायोजित करने की आवश्यकता हो सकती है।
इनपुट विलंबता मापें
आउटपुट विलंबता की तुलना में इनपुट विलंबता को मापना अधिक कठिन है। निम्नलिखित परीक्षण मदद कर सकते हैं।
एक दृष्टिकोण यह है कि पहले एलईडी और ऑसिलोस्कोप विधि का उपयोग करके आउटपुट विलंबता निर्धारित करें और फिर आउटपुट विलंबता और इनपुट विलंबता का योग निर्धारित करने के लिए ऑडियो फीडबैक (लार्सन) परीक्षण का उपयोग करें। इन दो मापों के बीच का अंतर इनपुट विलंबता है।
एक अन्य तकनीक प्रोटोटाइप डिवाइस पर GPIO पिन का उपयोग करना है। बाह्य रूप से, एक GPIO इनपुट को उसी समय पल्स करें जब आप डिवाइस पर एक ऑडियो सिग्नल प्रस्तुत करते हैं। एक ऐप चलाएं जो GPIO सिग्नल और ऑडियो डेटा के आगमन समय में अंतर की तुलना करता है।
विलंबता कम करें
कम ऑडियो विलंबता प्राप्त करने के लिए, पूरे सिस्टम में शेड्यूलिंग, इंटरप्ट हैंडलिंग, पावर प्रबंधन और डिवाइस ड्राइवर डिज़ाइन पर विशेष ध्यान दें। आपका लक्ष्य प्लेटफ़ॉर्म के किसी भी भाग को SCHED_FIFO
ऑडियो थ्रेड को कुछ मिलीसेकंड से अधिक समय तक अवरुद्ध करने से रोकना है। इस तरह के व्यवस्थित दृष्टिकोण को अपनाकर, आप ऑडियो विलंबता को कम कर सकते हैं और समग्र रूप से अधिक पूर्वानुमानित प्रदर्शन का अतिरिक्त लाभ प्राप्त कर सकते हैं।
ऑडियो अंडररन, जब वे होते हैं, अक्सर केवल कुछ शर्तों के तहत या केवल ट्रांज़िशन पर ही पता लगाए जा सकते हैं। नए ऐप्स लॉन्च करके और विभिन्न डिस्प्ले पर तेज़ी से स्क्रॉल करके सिस्टम पर दबाव डालने का प्रयास करें। लेकिन सावधान रहें कि कुछ परीक्षण स्थितियाँ इतनी तनावपूर्ण होती हैं कि डिज़ाइन लक्ष्यों से परे होती हैं। उदाहरण के लिए, बगरेपोर्ट लेने से सिस्टम पर इतना भारी भार पड़ता है कि उस स्थिति में अंडररन होना स्वीकार्य हो सकता है।
अंडररन के लिए परीक्षण करते समय:
- ऐप प्रोसेसर के बाद किसी भी डीएसपी को कॉन्फ़िगर करें ताकि यह न्यूनतम विलंबता जोड़ सके।
- विभिन्न परिस्थितियों में परीक्षण चलाएँ जैसे कि स्क्रीन चालू या बंद, यूएसबी प्लग इन या अनप्लग, वाईफाई चालू या बंद, ब्लूटूथ चालू या बंद, और टेलीफोनी और डेटा रेडियो चालू या बंद।
- अपेक्षाकृत शांत संगीत चुनें जिससे आप बहुत परिचित हों और जिसमें धीमी आवाज में सुनना आसान हो।
- अतिरिक्त संवेदनशीलता के लिए वायर्ड हेडफ़ोन का उपयोग करें।
- अपने आप को ब्रेक दें ताकि आपको "कान की थकान" का अनुभव न हो।
एक बार जब आप अंडररन के अंतर्निहित कारणों का पता लगा लें, तो इसका लाभ उठाने के लिए बफर संख्या और आकार को कम करें। अंडररन का विश्लेषण करने और अंडररन के कारणों को ठीक करने से पहले बफर गिनती और आकार को कम करने का उत्सुक दृष्टिकोण केवल निराशा में परिणाम देता है।
औजार
सिस्टम-स्तरीय प्रदर्शन गड़बड़ियों का निदान करने के लिए systrace
एक उत्कृष्ट सामान्य-उद्देश्यीय उपकरण है।
dumpsys media.audio_flinger
के आउटपुट में "सिंपल मूविंग स्टैटिस्टिक्स" नामक एक उपयोगी अनुभाग भी शामिल है। इसमें प्रत्येक ऑडियो मिश्रण और I/O चक्र के लिए बीते समय की परिवर्तनशीलता का सारांश है। आदर्श रूप से, सभी समय माप माध्य या नाममात्र चक्र समय के बराबर होने चाहिए। यदि आप बहुत कम न्यूनतम या उच्च अधिकतम देखते हैं, तो यह एक समस्या का संकेत है, संभवतः उच्च शेड्यूलिंग विलंबता या व्यवधान अक्षम समय। आउटपुट का पिछला भाग विशेष रूप से सहायक होता है, क्योंकि यह +/- 3 मानक विचलन से परे परिवर्तनशीलता को उजागर करता है।