ऑडियो वॉर्मअप

ऑडियो वॉर्मअप वह समय होता है जो आपके डिवाइस के ऑडियो ऐम्प्लफ़ायर सर्किट को पूरी तरह से चालू होने और सामान्य ऑपरेशन की स्थिति तक पहुंचने में लगता है. ऑडियो के वॉर्मअप में लगने वाले समय पर, पावर मैनेजमेंट और सर्किट को स्थिर करने के लिए "डी-पॉप" लॉजिक का बहुत ज़्यादा असर पड़ता है.

इस दस्तावेज़ में, ऑडियो के वॉर्मअप समय को मेज़र करने का तरीका बताया गया है. साथ ही, वॉर्मअप समय को कम करने के संभावित तरीकों के बारे में भी बताया गया है.

आउटपुट के वार्मअप को मेज़र करना

AudioFlinger की FastMixer थ्रेड, आउटपुट के वार्मअप को अपने-आप मेज़र करती है और dumpsys media.audio_flinger कमांड के आउटपुट के हिस्से के तौर पर इसकी रिपोर्ट देती है. वार्मअप के दौरान, FastMixer write() को बार-बार तब तक कॉल करता है, जब तक दो write() के बीच का समय तय समय के बराबर नहीं हो जाता. FastMixer, ऑडियो के वॉर्मअप का पता लगाने के लिए यह देखता है कि हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) write() को स्थिर होने में कितना समय लगता है.

ऑडियो के वार्मअप को मेज़र करने के लिए, डिवाइस में पहले से मौजूद स्पीकर और तार वाले हेडफ़ोन के लिए यह तरीका अपनाएं. साथ ही, डिवाइस के चालू होने के बाद अलग-अलग समय पर भी यह तरीका अपनाएं. आम तौर पर, हर आउटपुट डिवाइस के लिए और डिवाइस को बूट करने के तुरंत बाद, वार्मअप में लगने वाला समय अलग-अलग होता है:

  1. पक्का करें कि FastMixer चालू हो.
  2. डिवाइस पर सेटिंग > आवाज़ > टच साउंड को चुनकर, टच साउंड की सुविधा चालू करें.
  3. पक्का करें कि ऑडियो कम से कम तीन सेकंड के लिए बंद हो. पांच सेकंड या उससे ज़्यादा का विलंब बेहतर होता है, क्योंकि हो सकता है कि हार्डवेयर में AudioFlinger के तीन सेकंड के बाद, अपने हिसाब से पावर लॉजिक काम करे.
  4. होम बटन दबाएं. आपको क्लिक की आवाज़ सुनाई देगी.
  5. मेज़र किया गया वार्मअप पाने के लिए, यह कमांड चलाएं:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    आपको ऐसा आउटपुट दिखेगा:

    sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
    

    measuredWarmup=X, X मिलीसेकंड का वह समय है जो HAL write() के पहले सेट को पूरा करने में लगा.

    warmupCycles=X से पता चलता है कि write() के लागू होने में, HAL के कितने लिखने के अनुरोधों की ज़रूरत पड़ी.

  6. पांच माप लें और उन सभी के साथ-साथ औसत को रिकॉर्ड करें. अगर ये सभी मेज़रमेंट एक जैसे नहीं हैं, तो हो सकता है कि कोई मेज़रमेंट गलत हो. उदाहरण के लिए, अगर ऑडियो बंद होने के बाद ज़रूरत के मुताबिक इंतज़ार नहीं किया जाता है, तो आपको औसत वैल्यू से कम वॉर्मअप समय दिखेगा.

इनपुट को गर्म करने में लगने वाला समय मेज़र करना

फ़िलहाल, ऑडियो इनपुट के वार्मअप को मेज़र करने के लिए कोई टूल उपलब्ध नहीं है. हालांकि, इनपुट को गर्म होने में लगने वाले समय का अनुमान लगाने के लिए, startRecording() के रिटर्न में लगने वाले समय को देखें.

वार्मअप का समय कम करना

आम तौर पर, इन तरीकों को अपनाकर, वार्मअप का समय कम किया जा सकता है:

  • सर्किट का अच्छा डिज़ाइन
  • कर्नेल डिवाइस ड्राइवर में सटीक समय की देरी
  • अलग-अलग वॉर्मअप ऑपरेशन को क्रम से करने के बजाय, एक साथ करना
  • सर्किट को चालू रखना या क्लॉक को फिर से कॉन्फ़िगर न करना (बिना काम के पावर खर्च को बढ़ाता है)
  • कैलकुलेट किए गए पैरामीटर को कैश मेमोरी में सेव करना

हालांकि, ज़रूरत से ज़्यादा ऑप्टिमाइज़ेशन से बचें. आपको ऐसा लग सकता है कि आपको कम वॉर्मअप समय और पावर ट्रांज़िशन के दौरान पॉपिंग की कमी के बीच समझौता करना होगा.