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

ब्लूटूथ (बीटी) लो एनर्जी (LE) ऑडियो में, सिर की गति को ट्रैक करने (एचटी) से जुड़े डेटा के लिए, असिंक्रोनस कनेक्शन-ओरिएंटेड लॉजिकल (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 ट्रांसपोर्ट, जब इनर्शियल मेज़रमेंट यूनिट (आईएमयू) का डेटा, सेंसर स्टैक के ज़रिए रिपोर्ट किया जाता है.
  • iso-hw: ISO ट्रांसपोर्ट, जो एचटी डेटा को सीधे ब्लूटूथ कंट्रोलर से ऑडियो डीएसपी में स्पेसलाइज़र तक पहुंचाने की सुविधा देता है.
  • iso-sw: टनल करने की सुविधा के बिना ISO ट्रांसपोर्ट, जब IMU डेटा को सेंसर स्टैक के ज़रिए रिपोर्ट किया जाता है.

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

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

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

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

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

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

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

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

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

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

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

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

इंतज़ार का समय मोड के एनम को Spatializer.cpp में bluetooth.core.le.dsa_transport_preference सिस्टम प्रॉपर्टी पर मैप किया जाता है.

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

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

एचटी कनेक्शन के ये मोड काम करते हैं:

  • FRAMEWORK_PROCESSED: ऑडियो फ़्रेमवर्क, एचएएल को पहले से प्रोसेस किया गया आईएमयू डेटा, हेड-टू-स्टेज वेक्टर फ़ॉर्मैट में उपलब्ध कराता है. यह डिफ़ॉल्ट मोड, बीटी क्लासिक के मौजूदा मोड से मेल खाता है.
  • DIRECT_TO_SENSOR_SW: स्पेसलाइज़र इफ़ेक्ट इंजन, सेंसर सॉफ़्टवेयर स्टैक के ज़रिए सीधे सेंसर से कनेक्ट होता है. ऑडियो फ़्रेमवर्क, सिर्फ़ सेंसर के चालू होने की स्थिति को कंट्रोल करता है. ऐसे सॉफ़्टवेयर लागू करने के लिए DIRECT_TO_SENSOR_SW मोड का इस्तेमाल किया जा सकता है जो AOSP libheadtracking IMU डेटा को प्रोसेस करने से पहले या डीएसपी से ऑफ़लोड किए गए स्पेसिएलाइज़र को लागू करने के लिए इस्तेमाल नहीं करते.
  • 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).

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