जैक बनाम पल्सीडियो - यह कैसे तेज है?


27

मुझे दावों का एक समूह दिखाई देता है कि जैक पल्स की तुलना में तेज़ है और इसमें विलंबता कम है। ऐसा कैसे है? पल्स खुद को हल्का क्यों कहता है, और जैक लोग इसे मोटा कहते हैं? क्या कोई आम आदमी को इन दोनों डेमों के आंतरिक मामलों को तोड़ सकता है?


2
जैसा कि मैं उन्हें समझता हूं कि वे विभिन्न उद्देश्यों के लिए डिज़ाइन किए गए हैं जो उनकी तुलना करने की समस्या की व्याख्या कर सकते हैं।
एनएन

जवाबों:


30

जैक को आपकी मशीन के लिए न्यूनतम संभव प्रसंस्करण विलंबता निर्धारित करने के लिए सर्वर को कॉन्फ़िगर करने के लिए - ज्ञानी उपयोगकर्ता की आवश्यकता होती है । (प्रोसेसिंग लेटेंसी वह समय है जो सर्वर को क्लाइंट एप्लिकेशन से / के पास डेटा ले जाने और फिर सिस्टम के बाहर ऑडियो नमूनों के अगले "चंक" को भेजने / प्राप्त करने के लिए लेता है।) जैक या तो समय पर ऑडियो डेटा के उन हिस्सों को वितरित करेगा, या। यह विफल हो जाएगा और आपको एक बफर अंडर्रन (कभी-कभी "ड्रॉपआउट", या पॉप और क्लिक कहा जाता है) देगा)। यदि जैक लगातार कम हो जाता है, तो यह आपका काम है कि सर्वर को अलग-अलग सेटिंग्स के साथ फिर से शुरू करें, या क्लाइंट एप्लिकेशन में कुछ परिवर्तन करके उन्हें अधिक कुशल बनाएं ताकि आप अपने ऑडियो समय सीमा को पूरा कर सकें। चूंकि आपकी सर्वर सेटिंग्स सभी ग्राहकों के लिए समान रूप से लागू होती हैं, जैक कई ऑडियो अनुप्रयोगों के बीच ऑडियो को रूट करने और अनुमानित परिणाम प्राप्त करने के लिए काफी उपयोगी है । (यानी, यह विभिन्न ऑडियो घटकों में "जैक" प्लग करने जैसा है।)

पल्स को सर्वर द्वारा सिस्टम से बाहर ऑडियो भेजने / प्राप्त करने की समय सीमा पूरी नहीं करने के कारण ऑडियो ड्रॉप आउट की संख्या को कम करने के लिए डिज़ाइन किया गया है। यह जाहिरा तौर पर क्लाइंट अनुप्रयोगों के लिए एक बड़े बफर को चुनकर ऐसा करने की कोशिश करता है जो कम प्रसंस्करण विलंबता का अनुरोध नहीं करता है , फिर ग्राहकों के अनुप्रयोगों के लिए उस बफर में "इंजेक्शन" नमूने जो कि एक समय सीमा है। यदि यह इतनी जल्दी नमूनों को इंजेक्ट करने की कोशिश करता है, तो यह एक समय सीमा समाप्त हो जाती है और इसके कारण कम हो जाता है, पल्स स्वचालित रूप से उस समय की सबसे कम मात्रा में वृद्धि करेगा, जो क्लाइंट को सर्वर पर ऑडियो अपडेट भेजने देगा। पल्स डॉक्स स्पष्ट रूप से बताता है कि अल्ट्रा लो लेटेंसी - कहते हैं, प्रसंस्करण लेटेंसी के 10ms से कम है- डिजाइन लक्ष्य नहीं है। यह देखते हुए कि स्वयं लिनक्स (और शायद आपका हार्डवेयर) ऑडियो के वास्तविक समय निर्धारण के लिए डिज़ाइन नहीं किया गया था, मैं उन पर विश्वास करने के लिए उपयुक्त हूं।

उपयोगकर्ता-विन्यास के संदर्भ में, पल्स "प्रकाश" है। (कोई कह सकता है कि पल्स में कम कॉन्फ़िगरेशन विलंबता है , कुछ ऐसा जो दुर्भाग्य से कई लिनक्स ऑडियो ऐप को स्पष्ट रूप से अवहेलना करता है।) जैक की तुलना में इसकी अंतर्निहित जटिलता के संदर्भ में, पल्स "वसा" है।

एक निश्चित उत्तर पाने के लिए जिस पर तेजी है, आपको बस एक लूपबैक डिवाइस प्राप्त करना होगा और सच्चाई को जानने के लिए अपने सिस्टम पर राउंड-ट्रिप लेटेंसी को मापना होगा । राउंड-ट्रिप लेटेंसी वह समय है जो आपके सिस्टम को ऑडियो प्रोसेस करने और प्राप्त करने के लिए सिस्टम में वापस संसाधित होने में ले जाता है। ऑनलाइन ट्यूटोरियल हैं जो बताते हैं कि लिनक्स के तहत यह कैसे करना है। इससे आपको पता चल जाएगा कि आप वास्तव में उसके बाद क्या कर रहे हैं, जो कि कथित विलंबता है - उस समय से जब आप किसी घटना को ट्रिगर करते हैं (उदाहरण के लिए, गिटार के तारों को टकराते हुए) जब आप पहली बार ध्वनि सुनते हैं। वह परिणाम (जैसे, गिटार राग सुनना)।

अंत में, ध्यान रखें कि पल्स और जैक दोनों अधिकांश GNU / लिनक्स वितरण पर ALSA के शीर्ष पर बैठते हैं। मुझे पता है कि आप केवल जैक बनाम पल्स के बारे में पूछ रहे हैं। लेकिन अगर आप एक एकल ऑडियो एप्लिकेशन का उपयोग कर रहे हैं, जो सीधे ALSA से जुड़ सकता है, तो कोई अनुमान योग्य तरीका नहीं है कि पल्स या जैक को जोड़ने से आपको अकेले ALSA की तुलना में कथित विलंबता कम मिलेगी । इस अर्थ में, पल्स और जैक दोनों "मोटे" हैं।

tldr; अकेले ALSA सबसे तेज़ है, जैक कई ऑडियो अनुप्रयोगों को एक साथ चलाने के लिए उपयोगी है, और जब आप अल्ट्रा लो लेटेंसी के बारे में परवाह नहीं करते हैं, तो पल्स का उपयोग करना सबसे आसान है। किसी भी दस्तावेज या चर्चा को अनदेखा करें जो यह बताए बिना विलंबता का उपयोग करता है कि किस प्रकार की विलंबता का मतलब है। (दुर्भाग्य से, पल्स के बारे में आधिकारिक जैक डॉक्स और लेनार्ट के ब्लॉग प्रविष्टियों दोनों इस श्रेणी में आते हैं।)

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


9

वे वास्तव में साउंड सर्वर होने के समान हैंJACK को वास्तविक समय / निम्न-विलंबता प्रतिक्रिया के लिए डिज़ाइन किया गया है, जो पेशेवर-स्तर के ऑडियो समाधानों के लिए आवश्यक है। सामान्य डेस्कटॉप पर पल्सएडियो अधिक लक्षित होता है (जहां कम सख्त आवश्यकताएं लागू होती हैं)। PA , JACK से अधिक भारी लगता है - अधिक जटिल होना अधिक उपरि को प्रेरित करता है। लिनक्स में दोनों अंत में वास्तविक आउटपुट के लिए ALSA का उपयोग करते हैं । पीए के साथ, डेटा को अक्सर एएलएसए (एप्लिकेशन आउटपुट) से पीए (प्रोसेसिंग) से एएलएसए (आउटपुट) में रूट किया जाता है, जो कि निश्चित रूप से जैक-एएलएसए मार्ग से धीमा है। दूसरी ओर, यह उन अनुप्रयोगों के लिए पारदर्शी है जो इसे मूल रूप से उपयोग नहीं कर सकते हैं, क्योंकि यह उन्हें एएलएसए इंटरफ़ेस के साथ आभासी साउंड कार्ड के साथ प्रस्तुत करता है।

किसी भी स्थिति में, जब तक आप संगीत का उत्पादन करने का इरादा नहीं रखते हैं या प्रति एप्लिकेशन वॉल्यूम नियंत्रण के बिना नहीं रह सकते हैं (या नेटवर्क पर किसी अन्य मशीन के लिए ध्वनि अग्रेषित करना), सादे ALSA कम ओवरहेड के साथ, बस ठीक करेंगे। कुछ ड्राइवर हार्डवेयर मिक्सिंग कर सकते हैं और यदि नहीं भी करते हैं, तो भी ALSA एक प्लगइन के माध्यम से मिश्रण कर सकते हैं (यकीनन JACK की तरह तेज़ नहीं, लेकिन "सामान्य" उपयोग ठीक होना चाहिए)।


क्या PA छवि का लिंक गलत है?
एनएन

@ एनएन ने मेरे लिए काम किया, लेकिन मैंने इसे अब बदल दिया है, इसलिए उम्मीद है कि यह बेहतर होगा।
पेटर्फ़

@Sukminder त्रुटि काफी यादृच्छिक प्रतीत होती है।
पीटरफ

1
मुझे नहीं लगता कि यह उत्तर इसे काटता है: पहले आप यह नहीं कहते कि जैक कैसे तेज है, और दूसरा आप एक उदाहरण के साथ उत्तर को पूरा करते हैं जिसमें एक प्रत्यक्ष पल्स सिंक के बजाय एक छद्म अल्सा चालक शामिल है। प्रश्न बहुत स्पष्ट है, लेकिन अधिक प्रत्यक्ष होना - पल्स की तुलना में जेके सबसे तेज कैसे है?
इवान कैरोल

मैं जैक टीम को यह कहते हुए सुनकर थक गया हूं कि यह तेज है क्योंकि यह बताए बिना हैवीवेट नहीं है कि क्यों हैवीवेट - और, क्या हैवीवेट में - पल्स को धीमा बनाता है। यह उत्तर प्रश्न में आधार के कार्टेशियन पुनर्संरचना की तरह लगता है।
इवान कैरोल

4

जैक उन अनुप्रयोगों के लिए है, जिन्हें कम अक्षांश की आवश्यकता होती है, उदाहरण के लिए: संगीतकारों, वीडियो निर्माताओं, आदि के लिए ऑडियो enginering / निर्माण

  • फिर से तैयार नहीं!
  • फोर्स सॉफ्टवेयर मिक्सिंग सोर्स
  • ऐप्स, डिवाइस, लैडस्पा / lv2 / vst प्लगइन्स, आदि के बीच उचित रूटिंग चीजें (ध्वनि, समय-सारिणी, आदि)
  • pulseaudio (पुल) के साथ इस्तेमाल किया जा सकता है

पल्स नियमित डेस्कटॉप अनुप्रयोगों के लिए है (कम अक्षांश की उम्मीद न करें)

  • ARts और esd के साथ सहानुभूति प्रदान करें
  • alsaऔर ossआउटपुट के रूप में इस्तेमाल किया जा सकता है
  • बल सॉफ्टवेयर को फिर से शुरू करना
  • फोर्स सॉफ्टवेयर मिक्सिंग सोर्स
  • सॉफ्टवेयर upmix, downmix, आदि
  • प्लगइन्स के लिए अच्छा एपीआई देता है (उदाहरण के लिए: पुलसिफ़ेक्ट्स )
  • सरल रूटिंग (आउटपुट को किसी अन्य डिवाइस या ऐप में प्लग करने के लिए)
  • प्रति ऐप वॉल्यूम नियंत्रण

अलसा उपयोगकर्ता परत (ड्राइवर नहीं) न्यूनतम ([*] के बीच अक्षांश)

  • [*] हार्डवेयर रेज़मैपलिंग, मिक्सिंग सोर्स, अपमिक्सिंग, आदि (आपको इसका उपयोग करने के लिए पर्याप्त साउंड कार्ड की आवश्यकता है, अन्यथा सॉफ़्टवेयर का उपयोग किया जाएगा)
  • लद्दासा प्लगइन्स जिसे आप बदसूरत कॉन्फिगर प्रारूप में सेट कर सकते हैं
  • सरल / वैश्विक मात्रा स्तर नियंत्रण

ज्यादातर मामलों में पल्स नियमित डेस्कटॉप उपयोगकर्ताओं के लिए सबसे अच्छा विकल्प है। संगीतकारों आदि के लिए जैक सबसे अच्छा विकल्प है।


मैंने एक उतार-चढ़ाव छोड़ दिया, लेकिन मुझे यकीन नहीं है कि यह सवाल का जवाब है जितना कि एक अच्छी तुलना है। यदि यह पुनः नमूना नहीं कर रहा है तो PulseAudio धीमा क्यों है?
इवान कैरोल

> क्यों पल्सएडियो धीमी है अगर यह फिर से नमूना नहीं कर रहा है?
3ED

नहीं? वे सॉफ्टवेयर में सामान करते हैं जैसे: बल पुनःसमर्पण (आप 2 के बीच चयन कर सकते हैं)। जैक आंशिक रूप से अलसा को बायपास करता है। जैक भी कुछ ऐसा ही है। विस्टा ऊपर की ओर से मानक विंडोज़ ध्वनि के समान पल्स। समान नहीं बल्कि समान अवधारणाएं। पल्स सस्ते / एकीकृत / ठीक से समर्थित साउंड कार्ड के लिए शानदार है जो हार्डवेयर में चीजें नहीं कर सकते हैं।
3ED

2

यह वास्तव में "बनाम" का सवाल नहीं है। पहले ब्लश पर हम देख सकते हैं कि वे दोनों "साउंड सर्वर" हैं। इस प्रकार, शायद, एक निष्कर्ष निकाला है कि उनके बीच चयन करने की जरूरत है। ऐसी बात नहीं है। उदाहरण के लिए, एक वीडियो कैमरा और एक FLIR कैमरा, दोनों कैमरे हैं। लेकिन, उनके बीच कोई "चयन" नहीं करता है। वे बहुत अलग भूमिकाएँ निभाते हैं, उन भूमिकाओं की तारीफ की जा सकती है, लेकिन वे किसी भी तरह से प्रतिस्पर्धी नहीं हैं। एक को जैक की जरूरत है, या किसी को पल्स की जरूरत है, या किसी को दोनों की आवश्यकता हो सकती है। विकल्प समस्या डोमेन द्वारा संचालित होता है, विशिष्ट विलंबता जैसी सुविधा-विशेषता नहीं।

"एफएटी" बनाम नहीं के रूप में, इस शब्द का कई मायनों में उपयोग किया जाता है ताकि यह सार्थक हो। लेकिन, आम तौर पर, एफएटी शब्द का उपयोग तब किया जाता है जब एप्लिकेशन "यह सब आपके लिए करता है", अधिक या कम। "लाइटवेट" आपको अपनी पसंद के फीकंटोनॉलिटी को लोड करने की ओर अग्रसर करता है, संभवतः विकल्पों के एक फूस से चुनना, और बाकी को त्यागना। पल्स एक "बड़ा बूँद" कार्यक्रम है जिसके लिए आप कुछ पैरामीटर देते हैं और, बहुत अधिक, बंद हो जाता है। जरूरत है, या नहीं, जब आप पल्स शुरू करते हैं, तो बड़ी मात्रा में कार्यशीलता लोड होती है। जैक अपने आप में एक छोटा और बेकार है, वह प्रोग्राम जिसे आप किसी भी संख्या में प्लगइन्स, प्रोग्राम आदि पर गोंद करते हैं, जो आप चाहते हैं। प्रोग्रामर मशीन संसाधनों के पक्ष से दुनिया को देखने के लिए करते हैं।

तो, पल्स एक चर विलंबता सर्वर है और जैक एक विलंबता निश्चित है। वे अपने विशिष्ट समस्या डोमेन हैं। यदि आप केवल टीवी देख रहे हैं, या किसी नेटवर्क पर संगीत सुन रहे हैं, तो आप निश्चित रूप से पल्स चाहते हैं। यदि आप लाइव इलेक्ट्रॉनिक संगीत चलाने की कोशिश कर रहे हैं, तो आपको निश्चित रूप से जैक की आवश्यकता है। यदि आप टीवी देख रहे हैं और साउंड स्ट्रीम पर कुछ भारी प्रोसेसिंग कर रहे हैं, तो आपको निश्चित रूप से दोनों की आवश्यकता होगी।


1
कुछ हद तक व्यक्तिपरक: मुझे लगता है कि ध्वनि सर्वर को JACK डिज़ाइन का पालन करना चाहिए, क्योंकि सर्वर द्वारा जोड़े गए किसी भी विलंब से छुटकारा पाना असंभव है। इसके बाद डिस्क या नेटवर्क I / O के लिए बड़े बफ़र्स का उपयोग करने के लिए एप्लिकेशन डेवलपर पर निर्भर है, नमूना दर रूपांतरण आदि। 10 एमएस के निशान से ऊपर की उच्चताएं हैं।
user877329
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.