LE Audio पर हेड ट्रैकिंग

ब्लूटूथ (BT) कम ऊर्जा (LE) ऑडियो से, हेड ट्रैकिंग (HT) डेटा के लिए एसिंक्रोनस कनेक्शन-ओरिएंटेड लॉजिकल (LE-ACL) और आइसोक्रोनस (LE-ISO) लॉजिकल ट्रांसपोर्ट मैकेनिज़्म पेश किया जाता है.

Android 15 में, लेटलेंसी मोड में बदलाव करने की सुविधा उपलब्ध है. यह सुविधा, इस बात पर निर्भर करती है कि LE-ACL या LE-ISO ट्रांसपोर्ट मैकेनिज्म का इस्तेमाल किया जा रहा है या नहीं.

इस पेज पर बताया गया है कि ऑडियो फ़्रेमवर्क, ऑडियो एचएएल, और ब्लूटूथ स्टैक, होस्ट और हेडसेट के साथ काम करने वाले LE-ACL या LE-ISO ट्रांसपोर्ट मैकेनिज्म को कैसे खोजते और चुनते हैं.

LE-ACL और LE-ISO के लिए सहायता

Android 15 में, वेंडर की तय की गई सिस्टम प्रॉपर्टी, ऑडियो एचएएल देरी मोड, और स्पेशलाइज़र कनेक्शन मोड का इस्तेमाल करके, LE-ACL और LE-ISO ट्रांसपोर्ट मैकेनिज्म के लिए सहायता शामिल है.

सिस्टम प्रॉपर्टी

फ़ोन वेंडर, bluetooth.core.le.dsa_transport_preference सिस्टम प्रॉपर्टी में, ट्रांसपोर्ट के काम करने वाले तरीकों की सूची दिखाता है. यह वैल्यू, स्ट्रिंग की कॉमा-सेपरेटेड लिस्ट होती है. इसमें प्राथमिकता के हिसाब से, इस्तेमाल किए जा सकने वाले ट्रांसपोर्ट की सूची मौजूद होती है:

  • le-acl: LE-ACL ट्रांसपोर्ट, जब इनर्शियल मेज़रमेंट यूनिट (IMU) का डेटा, सेंसर स्टैक के ज़रिए रिपोर्ट किया जाता है.
  • iso-hw: आईएसओ के डेटा को एचटी डेटा के साथ टनल करने की सुविधा. इसकी मदद से, ब्लूटूथ कंट्रोलर से ऑडियो डीएस में मौजूद स्पेशलाइज़र तक डेटा ट्रांसफ़र किया जा सकता है.
  • iso-sw: टनल करने की सुविधा के बिना ISO ट्रांसपोर्ट, जब IMU डेटा को सेंसर स्टैक के ज़रिए रिपोर्ट किया जाता है.

इंतज़ार के समय के मोड

BT LE Audio के मामले में, ब्लूटूथ स्टैक का इस्तेमाल करके ऑडियो एचएएल और ऑडियो फ़्रेमवर्क में काम करने वाले इंतज़ार के समय के बारे में बताया जाना चाहिए. यह तरीका वही है जो BT क्लासिक (A2DP) के लिए तय किया गया है. ऑडियो एचएएल, फ़िलहाल चुने गए ऑडियो डिवाइस के हिसाब से, इंतज़ार के समय के काम करने वाले मोड की जानकारी देता है.

A2DP प्रोटोकॉल सिर्फ़ FREE और LOW_LATENCY मोड के साथ काम करता है.

BT LE Audio के लिए, ऑडियो एचएएल में नीचे दिए गए लेटेंसी मोड के बारे में बताया गया है. इससे LE-ACL और LE-ISO ट्रांसपोर्ट सिस्टम को जोड़ने में मदद मिलेगी:

  • FREE: इस वैल्यू से पता चलता है कि इंतज़ार इस मोड का इस्तेमाल तब किया जाता है, जब कम इंतज़ार का समय काम नहीं करता (इसकी जानकारी एचएएल से मिलती है) या जब एचटी चालू नहीं होता (इसकी जानकारी फ़्रेमवर्क से मिलती है).

  • LOW: इस वैल्यू से पता चलता है कि इंतज़ार का समय कम है. जैसे, 100 मि॰से॰ से कम. यह वैल्यू, एचटी मोड के साथ काम करती है. इस मोड का इस्तेमाल तब किया जाता है, जब इंतज़ार का समय कम हो और एचआईडी को एसीएल प्रोटोकॉल (एचएएल से पता चलता है) के ज़रिए भेजा जाता हो. इसके अलावा, यह मोड तब भी इस्तेमाल किया जाता है, जब एचटी चालू हो और इंतज़ार का समय कम करने वाला कोई दूसरा मोड उपलब्ध न हो (फ़्रेमवर्क से पता चलता है).

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE: इस मोड का इस्तेमाल तब किया जाता है, जब इनमें से कोई एक शर्त पूरी होती है:

    • कम इंतज़ार का समय होने पर, एचआईडी को आईएसओ प्रोटोकॉल के ज़रिए भेजा जाता है. साथ ही, एचआईडी को स्पेसलाइज़र इफ़ेक्ट इंजन (एचएएल से दिखाया गया) में टनल नहीं किया जा सकता.
    • जब एचटी चालू होता है और ऑडियो फ़्रेमवर्क, स्पेसलाइज़र इफ़ेक्ट इंजन को एचआईडी डेटा उपलब्ध कराता है, तो आईएसओ प्रोटोकॉल का इस्तेमाल किया जाता है. इसकी जानकारी, फ़्रेमवर्क से मिलती है.

    इस मोड में, फ़्रेमवर्क में मौजूद HT कंप्यूटिंग लाइब्रेरी, IMU डेटा पर सभी प्रीप्रोसेसिंग करती है. साथ ही, फ़ोन के सेंसर से पता चलने वाली फ़ोन की गतिविधियों के साथ मिलान करती है.

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE: इस मोड का इस्तेमाल तब किया जाता है, जब इनमें से कोई एक शर्त पूरी होती है:

    • कम इंतज़ार का समय होने पर, एचआईडी को आईएसओ प्रोटोकॉल के ज़रिए भेजा जाता है. साथ ही, एचआईडी को स्पेसलाइज़र इफ़ेक्ट इंजन (एचएएल से दिखाया गया) में टनल किया जा सकता है.
    • जब एचटी चालू हो और एचआईडी डेटा को स्पेसलाइज़र इफ़ेक्ट इंजन (फ़्रेमवर्क से दिखाया गया) में टनल किया जाता है, तो आईएसओ प्रोटोकॉल का इस्तेमाल किया जाता है.

    इस मोड में, स्पेसलाइज़र इफ़ेक्ट इंजन को सीधे BT स्टैक या BT कंट्रोलर से, प्रोसेस नहीं किया गया IMU डेटा मिलता है. स्पेसिएलाइज़र इफ़ेक्ट लागू करने के लिए, IMU डेटा को पहले से प्रोसेस किया जाता है. साथ ही, फ़ोन के सेंसर से पता चलने वाली फ़ोन की गतिविधियों के साथ डेटा को अलाइन किया जाता है.

इंतज़ार के समय वाले मोड की वैल्यू को Spatializer.cpp में मौजूद bluetooth.core.le.dsa_transport_preference सिस्टम प्रॉपर्टी के साथ मैप किया जाता है.

स्पेसिएलाइज़र की सुविधा

ऑडियो नीति सेवा में मौजूद स्पेशलाइज़र कंट्रोलर, LE ऑडियो पर HT ट्रांसपोर्ट प्रोटोकॉल के चुने जाने को कंट्रोल करता है. स्पेशलाइज़र इफ़ेक्ट इंजन को लागू करने से यह पता चलता है कि HeadTracking.ConnectionMode सुविधा के साथ HT डेटा टनलिंग की जा सकती है.

HT कनेक्शन के ये मोड काम करते हैं:

  • FRAMEWORK_PROCESSED: ऑडियो फ़्रेमवर्क, एचएएल को पहले से प्रोसेस किया गया IMU डेटा, हेड-टू-स्टेज वेक्टर फ़ॉर्मैट में उपलब्ध कराता है. यह डिफ़ॉल्ट मोड, बीटी क्लासिक के साथ मौजूदा मोड के जैसा है.
  • DIRECT_TO_SENSOR_SW: स्पेशलाइज़र इफ़ेक्ट इंजन, सेंसर सॉफ़्टवेयर स्टैक की मदद से सीधे सेंसर से कनेक्ट हो जाता है. ऑडियो फ़्रेमवर्क सिर्फ़ सेंसर की चालू स्थिति को कंट्रोल करता है. AOSP libheadtracking IMU डेटा को प्रीप्रोसेस करने या डीएसपी से ऑफ़लोड किए गए स्पेसिएलाइज़र को लागू करने वाले सॉफ़्टवेयर, DIRECT_TO_SENSOR_SW मोड का इस्तेमाल कर सकते हैं.
  • DIRECT_TO_SENSOR_TUNNEL: स्पेसलाइज़र इफ़ेक्ट इंजन, हार्डवेयर टनल के ज़रिए सीधे सेंसर से कनेक्ट होता है. ऑडियो फ़्रेमवर्क सिर्फ़ सेंसर के चालू होने की स्थिति को कंट्रोल करता है. डीएसपी के ऑफ़लोड किए गए स्पेसिएलाइज़र लागू करने के लिए, DIRECT_TO_SENSOR_TUNNEL मोड का इस्तेमाल किया जा सकता है.

लेटेंसी मोड चुनना

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

फ़्रेमवर्क, इंतज़ार का समय चुनने के लिए selectHeadtrackingConnectionMode_l में इस प्रोसेस का इस्तेमाल करता है:

  1. फ़्रेमवर्क, ट्रांसपोर्ट की प्राथमिकता को bluetooth.core.le.dsa_transport_preference सिस्टम प्रॉपर्टी से लोड करता है.
  2. ऑडियो एचएएल की रिपोर्ट में, इंतज़ार के समय के लिए काम करने वाले मोड की जानकारी दी जाती है. इन मोड को फ़िल्टर किया जाता है और पहले चरण में लोड की गई सूची के हिसाब से क्रम में लगाया जाता है.
  3. अगर कम इंतज़ार का समय वाला सबसे ज़्यादा प्राथमिकता वाला मोड iso-hw है और स्पेसिएलाइज़र लागू करने की सुविधा, सेंसर से सीधे तौर पर कनेक्ट करने की सुविधा के साथ काम करती है (यानी, स्पेसिएलाइज़र में DIRECT_TO_SENSOR_SW या DIRECT_TO_SENSOR_TUNNEL सेट हैं), तो इंतज़ार का समय वाला मोड DYNAMIC_SPATIAL_AUDIO_HARDWARE पर सेट होता है.
  4. अगर सबसे ज़्यादा प्राथमिकता वाला लो इंतज़ार के समय वाला मोड iso-hw है और स्पेशलाइज़र की सुविधा, डायरेक्ट सेंसर कनेक्शन के साथ काम नहीं करती (DIRECT_TO_SENSOR_SW या DIRECT_TO_SENSOR_TUNNEL को स्पेशलाइज़र में सेट नहीं किया गया है), तो अगला पसंदीदा मोड (जो iso-sw या le-acl है) तय करेगा कि इंतज़ार का समय DYNAMIC_SPATIAL_AUDIO_SOFTWARE या LOW है.

    अगर अगले पसंदीदा मोड की जानकारी नहीं दी गई है, तो सिस्टम प्रॉडक्ट कॉन्फ़िगरेशन से जुड़ी गड़बड़ी की शिकायत करता है.