ब्लूटूथ (बीटी) लो एनर्जी (एलई) ऑडियो हेड ट्रैकिंग (एचटी) डेटा के लिए, एसिंक्रोनस कनेक्शन-ओरिएंटेड लॉजिकल (एलई-एसीएल) और आइसोक्रोनस (एलई-आईएसओ) लॉजिकल ट्रांसपोर्ट मैकेनिज़्म की सुविधा देता है.
Android 15 में, एचटी के लिए लेटेन्सी मोड को अडजस्ट करने की सुविधा मिलती है. यह सुविधा, एलई-एसीएल या एलई-आईएसओ ट्रांसपोर्ट मैकेनिज़्म के इस्तेमाल पर आधारित होती है.
इस पेज पर, ऑडियो फ़्रेमवर्क, ऑडियो एचएएल, और ब्लूटूथ स्टैक के बीच इंटरैक्शन के बारे में बताया गया है. इससे यह पता चलता है कि होस्ट और हेडसेट, एलई-एसीएल या एलई-आईएसओ ट्रांसपोर्ट मैकेनिज़्म की सुविधा देते हैं या नहीं. साथ ही, यह भी पता चलता है कि इनमें से कौनसे मैकेनिज़्म चुने गए हैं.
एलई-एसीएल और एलई-आईएसओ की सुविधा
Android 15 में, एलई-एसीएल और एलई-आईएसओ ट्रांसपोर्ट मैकेनिज़्म की सुविधा शामिल है. इसके लिए, वेंडर की तय की गई सिस्टम प्रॉपर्टी, ऑडियो एचएएल लेटेन्सी मोड, और स्पैशलाइज़र कनेक्शन मोड का इस्तेमाल किया जाता है.
सिस्टम प्रॉपर्टी
फ़ोन वेंडर के इंप्लिमेंटेशन में, काम करने वाले ट्रांसपोर्ट मैकेनिज़्म की सूची दी जाती है.
bluetooth.core.le.dsa_transport_preference सिस्टम प्रॉपर्टी में. इसकी वैल्यू, कॉमा लगाकर अलग की गई स्ट्रिंग की सूची होती है.
इसमें, प्राथमिकता के क्रम में काम करने वाले ट्रांसपोर्ट की सूची दी जाती है:
le-acl: एलई-एसीएल ट्रांसपोर्ट. इसका इस्तेमाल तब किया जाता है, जब इनर्शियल मेज़रमेंट यूनिट (आईएमयू) का डेटा, सेंसर स्टैक के ज़रिए रिपोर्ट किया जाता है.iso-hw: आईएसओ ट्रांसपोर्ट. इसमें, एचटी डेटा को सीधे ब्लूटूथ कंट्रोलर से ऑडियो डीएसपी में मौजूद स्पैशलाइज़र तक टनल करने की सुविधा होती है.iso-sw: आईएसओ ट्रांसपोर्ट. इसमें टनलिंग की सुविधा नहीं होती. इसका इस्तेमाल तब किया जाता है, जब आईएमयू का डेटा, सेंसर स्टैक के ज़रिए रिपोर्ट किया जाता है.
लेटेन्सी मोड
बीटी एलई ऑडियो के मामले में, बीटी स्टैक के लिए, ऑडियो एचएएल और ऑडियो फ़्रेमवर्क को काम करने वाले लेटेन्सी मोड की जानकारी देने का मैकेनिज़्म, बीटी क्लासिक (ए2डीपी) के लिए तय किए गए मैकेनिज़्म जैसा ही होता है. ऑडियो एचएएल, फ़िलहाल चुने गए ऑडियो डिवाइस के हिसाब से, काम करने वाले लेटेन्सी मोड की जानकारी देता है.
ए2डीपी इंप्लिमेंटेशन में, सिर्फ़ FREE और LOW_LATENCY मोड काम करते हैं.
इसके उलट, बीटी एलई ऑडियो के लिए, ऑडियो एचएएल में ये लेटेन्सी मोड तय किए गए हैं. इनकी मदद से, एलई-एसीएल और एलई-आईएसओ ट्रांसपोर्ट मैकेनिज़्म जोड़े जा सकते हैं:
FREE: इस वैल्यू से पता चलता है कि लेटेन्सी पर कोई खास पाबंदी नहीं है. इस मोड का इस्तेमाल तब किया जाता है, जब कम लेटेन्सी की सुविधा उपलब्ध नहीं होती (एचएएल से पता चलता है) या जब एचटी चालू नहीं होता (फ़्रेमवर्क से पता चलता है).LOW: इस वैल्यू से पता चलता है कि लेटेन्सी अपेक्षाकृत कम है (जैसे, 100 मि॰से॰ से कम). यह एचटी ऑपरेशन के साथ काम करती है. इस मोड का इस्तेमाल तब किया जाता है, जब कम लेटेन्सी की सुविधा उपलब्ध होती है और एचआईडी को एसीएल प्रोटोकॉल के ज़रिए भेजा जाता है (एचएएल से पता चलता है). इसके अलावा, इसका इस्तेमाल तब भी किया जाता है, जब एचटी चालू होता है और कम लेटेन्सी के अन्य मोड उपलब्ध नहीं होते (फ़्रेमवर्क से पता चलता है).DYNAMIC_SPATIAL_AUDIO_SOFTWARE: इस मोड का इस्तेमाल तब किया जाता है, जब इनमें से कोई एक शर्त पूरी होती है:- जब कम लेटेन्सी की सुविधा उपलब्ध होती है, एचआईडी को आईएसओ प्रोटोकॉल के ज़रिए भेजा जाता है, और एचआईडी को स्पैशलाइज़र इफ़ेक्ट इंजन में टनल नहीं किया जा सकता (एचएएल से पता चलता है).
- जब एचटी चालू होता है और आईएसओ प्रोटोकॉल का इस्तेमाल तब किया जाता है, जब ऑडियो फ़्रेमवर्क, एचआईडी डेटा को स्पैशलाइज़र इफ़ेक्ट इंजन को देता है (फ़्रेमवर्क से पता चलता है).
इस मोड में, फ़्रेमवर्क में मौजूद एचटी कंप्यूटिंग लाइब्रेरी, आईएमयू डेटा पर सभी प्री-प्रोसेसिंग करती है. साथ ही, फ़ोन के सेंसर से पता चलने वाली फ़ोन की गतिविधियों के साथ डेटा को मिलाती है.
DYNAMIC_SPATIAL_AUDIO_HARDWARE: इस मोड का इस्तेमाल तब किया जाता है, जब इनमें से कोई एक शर्त पूरी होती है:- जब कम लेटेन्सी की सुविधा उपलब्ध होती है, एचआईडी को आईएसओ प्रोटोकॉल के ज़रिए भेजा जाता है, और एचआईडी को स्पैशलाइज़र इफ़ेक्ट इंजन में टनल किया जा सकता है (एचएएल से पता चलता है).
- जब एचटी चालू होता है और आईएसओ प्रोटोकॉल का इस्तेमाल तब किया जाता है, जब एचआईडी डेटा को स्पैशलाइज़र इफ़ेक्ट इंजन में टनल किया जाता है (फ़्रेमवर्क से पता चलता है).
इस मोड में, स्पैशलाइज़र इफ़ेक्ट इंजन को, बिना प्रोसेस किया गया आईएमयू डेटा सीधे बीटी स्टैक या बीटी कंट्रोलर से मिलता है. स्पैशलाइज़र इफ़ेक्ट इंप्लिमेंटेशन, आईएमयू डेटा पर सभी प्री-प्रोसेसिंग करता है. साथ ही, फ़ोन के सेंसर से पता चलने वाली फ़ोन की गतिविधियों के साथ डेटा को मिलाता है.
लेटेन्सी मोड एनम को Spatializer.cpp में, bluetooth.core.le.dsa_transport_preference
सिस्टम प्रॉपर्टी पर मैप किया जाता है.
स्पैशलाइज़र की सुविधा
ऑडियो पॉलिसी सेवा में मौजूद स्पैशलाइज़र
कंट्रोलर, एलई ऑडियो पर एचटी ट्रांसपोर्ट
प्रोटोकॉल के चुनाव को कंट्रोल करता है. स्पैशलाइज़र इफ़ेक्ट इंजन इंप्लिमेंटेशन,
HeadTracking.ConnectionMode सुविधा की मदद से, एचटी डेटा टनलिंग की सुविधा के बारे में बताता है.
एचटी कनेक्शन के ये मोड काम करते हैं:
FRAMEWORK_PROCESSED: ऑडियो फ़्रेमवर्क, एचएएल को हेड-टू-स्टेज वेक्टर फ़ॉर्मैट में, प्री-प्रोसेस किया गया आईएमयू डेटा देता है. यह डिफ़ॉल्ट मोड, बीटी क्लासिक के साथ मौजूदा मोड के जैसा ही होता है.DIRECT_TO_SENSOR_SW: स्पैशलाइज़र इफ़ेक्ट इंजन, सेंसर सॉफ़्टवेयर स्टैक के ज़रिए सीधे सेंसर से कनेक्ट होता है. ऑडियो फ़्रेमवर्क, सेंसर की चालू स्थिति को ही कंट्रोल करता है. सॉफ़्टवेयर इंप्लिमेंटेशन, एओएसपीlibheadtrackingआईएमयू डेटा प्री-प्रोसेसिंग या डीएसपी ऑफ़लोड किए गए स्पैशलाइज़र इंप्लिमेंटेशन का इस्तेमाल नहीं करते. येDIRECT_TO_SENSOR_SWमोड का इस्तेमाल कर सकते हैं.DIRECT_TO_SENSOR_TUNNEL: स्पैशलाइज़र इफ़ेक्ट इंजन, हार्डवेयर टनलिंग के ज़रिए सीधे सेंसर से कनेक्ट होता है. ऑडियो फ़्रेमवर्क, सेंसर की चालू स्थिति को ही कंट्रोल करता है. डीएसपी ऑफ़लोड किए गए स्पैशलाइज़र इंप्लिमेंटेशन,DIRECT_TO_SENSOR_TUNNELमोड का इस्तेमाल कर सकते हैं.
लेटेन्सी मोड का चुनाव
फ़्रेमवर्क, एचएएल से रिपोर्ट किए गए, काम करने वाले लेटेन्सी मोड की सूची में से एक लेटेन्सी मोड चुनता है. लेटेन्सी मोड, एचटी की चालू स्थिति, फ़िलहाल स्पैशलाइज़र की सुविधा, और वेंडर की तय की गई सिस्टम प्रॉपर्टी के आधार पर सेट किया जाता है. इस प्रॉपर्टी से, ट्रांसपोर्ट मैकेनिज़्म के बीच प्राथमिकता का क्रम तय होता है.
फ़्रेमवर्क, लेटेन्सी मोड चुनने के लिए, selectHeadtrackingConnectionMode_l
में यह प्रोसेस इस्तेमाल करता है:
- फ़्रेमवर्क, ट्रांसपोर्ट की प्राथमिकता को
bluetooth.core.le.dsa_transport_preferenceसिस्टम प्रॉपर्टीसे लोड करता है. - ऑडियो एचएएल से रिपोर्ट किए गए, काम करने वाले लेटेन्सी मोड को फ़िल्टर किया जाता है. इसके बाद, इन्हें पहले चरण में लोड की गई सूची के हिसाब से क्रम में लगाया जाता है.
- अगर सबसे ज़्यादा प्राथमिकता वाला कम लेटेन्सी मोड
iso-hwहै और स्पैशलाइज़र इंप्लिमेंटेशन, सीधे सेंसर कनेक्शन की सुविधा देता है (यानी, स्पैशलाइज़र मेंDIRECT_TO_SENSOR_SWयाDIRECT_TO_SENSOR_TUNNELसेट हैं), तो लेटेन्सी मोड कोDYNAMIC_SPATIAL_AUDIO_HARDWAREपर सेट किया जाता है. अगर सबसे ज़्यादा प्राथमिकता वाला कम लेटेन्सी मोड
iso-hwहै और स्पैशलाइज़र इंप्लिमेंटेशन, सीधे सेंसर कनेक्शन की सुविधा नहीं देता है (यानी, स्पैशलाइज़र मेंDIRECT_TO_SENSOR_SWयाDIRECT_TO_SENSOR_TUNNELसेट नहीं हैं), तो अगली प्राथमिकता वाला मोड (जोiso-swयाle-aclमें से कोई एक हो सकता है) लेटेन्सी मोड तय करता है. यह मोड,DYNAMIC_SPATIAL_AUDIO_SOFTWAREयाLOWमें से कोई एक हो सकता है.अगर अगली प्राथमिकता वाला मोड तय नहीं किया जाता है, तो सिस्टम, प्रॉडक्ट कॉन्फ़िगरेशन में गड़बड़ी की जानकारी देता है.