تتبُّع حركة الرأس على LE Audio

يقدّم صوت البلوتوث (BT) المنخفض الطاقة (LE) آليات النقل المنطقي غير المتزامن (LE-ACL) والموجَّهة للاتصال (LE-ISO) للبيانات المنطقية الخاصة بتتبُّع حركة الرأس (HT).

يتيح نظام التشغيل Android 15 إمكانية تعديل وضع وقت الاستجابة عند تشغيل HT استنادًا إلى ما إذا كان يتم استخدام آلية النقل LE-ACL أو LE-ISO.

توضِّح هذه الصفحة كيفية تفاعل إطار العمل الصوتي وواجهة HAL للصوت وحزمة Bluetooth لاكتشاف آليات النقل LE-ACL أو LE-ISO واختيارها التي يتوافق معها المضيف وسماعات الرأس.

إتاحة الوصول إلى LE-ACL وLE-ISO

يتضمّن نظام Android 15 إمكانات استخدام آليات النقل LE-ACL وLE-ISO من خلال خاصية نظام يحدّدها المصنّع، وأوضاع وقت الاستجابة لواجهة HAL للصوت، وأوضاع اتصال أداة المعالجة الصوتية المكانية.

سمة النظام

يعرض تنفيذ مورّد الهاتف آليات النقل المتوافقة في موقع نظام bluetooth.core.le.dsa_transport_preference. يجب أن تكون القيمة قائمة من السلاسل مفصولة بفواصل وتدرج وسائل النقل المتوافقة بترتيب الإعدادات المفضّلة:

  • le-acl: نقل LE-ACL، عندما يتم تسجيل بيانات وحدة القياس بالقصور الذاتي (IMU) من خلال حزمة الاستشعار
  • iso-hw: نقل ISO مع إمكانية إنشاء نفق لبيانات HT مباشرةً من وحدة التحكّم في البلوتوث إلى أداة المعالجة الصوتية في وحدة معالجة الإشارات الرقمية للصوت
  • iso-sw: نقل بيانات ISO بدون إمكانية النفق، عندما يتم تسجيل بيانات وحدة قياس السرعة والاتجاه (IMU) من خلال حزمة أدوات الاستشعار

أوضاع وقت الاستجابة

في حال استخدام BT LE audio، تكون آلية حزمة BT للإشارة إلى أوضاع وقت الاستجابة المتوافقة في HAL وإطار الصوت الصوتي هي نفسها الآلية المحددة في BT Classic (A2DP). يُبلغ HAL للصوت عن أوضاع وقت الاستجابة المتوافقة وفقًا لجهاز الصوت المحدّد حاليًا.

لا تتوافق آليات تنفيذ A2DP إلا مع الوضعَين FREE وLOW_LATENCY.

في المقابل، بالنسبة إلى BT LE audio، يتم تحديد أوضاع وقت الاستجابة التالية في طبقة تجريد الأجهزة (HAL) الصوتية لإتاحة إضافة آليات النقل LE-ACL وLE-ISO:

  • FREE: تشير هذه القيمة إلى عدم وجود قيد محدد على وقت الاستجابة. يتم استخدام هذا الوضع عندما لا يكون وقت الاستجابة المنخفض متاحًا (يشير إلى ذلك HAL)، أو عندما لا يكون وضع "العرض الفائق السرعة" مفعّلاً (يشير إلى ذلك إطار العمل).

  • LOW: تشير هذه القيمة إلى وقت استجابة سريع نسبيًا (مثلاً، أقل من 100 ملي ثانية) متوافق مع تشغيل HT. يُستخدم هذا الوضع عندما يتيح وقت الاستجابة المنخفض ويتم نقل واجهة HID عبر بروتوكول قائمة التحكم بالوصول (ACL) (يشار إليه ببروتوكول HAL)، أو عندما تكون HT نشطة ولا تتوفر أوضاع أخرى لوقت الاستجابة البطيء (يشار إليها في إطار العمل).

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE: يُستخدم هذا الوضع عند استيفاء أحد الشروط التالية:

    • عندما يكون وقت الاستجابة منخفضًا، يتم نقل HID عبر بروتوكول ISO، ولا يمكن توجيه HID إلى محرّك تأثيرات المعالجة المكانية (يُشار إليه بـ HAL).
    • عندما يكون HT مفعّلاً ويتم استخدام بروتوكول ISO عندما يقدّم إطار العمل الصوتي بيانات HID إلى محرّك تأثير "الصوت المكاني" (يُشار إليه بال إطار).

    في هذا الوضع، تُجري مكتبة حوسبة HT في إطار العمل جميع عمليات المعالجة المسبقة لبيانات مستشعر IMU والتسوية مع حركات الهاتف التي تدل عليها أجهزة استشعار الهاتف.

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE: يتم استخدام هذا الوضع عند استيفاء أحد الشروط التالية:

    • عند توفُّر وقت الاستجابة البطيء، يتم نقل واجهة بشرية HID عبر بروتوكول ISO، ويمكن توصيل واجهة HID إلى محرك التأثير المكاني (يشار إليه بواسطة HAL).
    • عندما يكون HT نشطًا ويتم استخدام بروتوكول ISO عند توجيه بيانات HID إلى محرّك تأثيرات "المحوِّل المكاني" (يُشار إليه من خلال إطار العمل).

    في هذا الوضع، يتلقّى محرّك تأثيرات المعالجة المكانية بيانات IMU غير المعالجة مباشرةً من حِزمة بلوتوث أو وحدة تحكّم بلوتوث. عند تنفيذ تأثير "المحوِّل المكاني"، تتم جميع عمليات المعالجة المُسبَقة لبيانات وحدة IMU ومطابقتها مع حركات الهاتف التي تشير إليها أدوات استشعار الهاتف.

يتم ربط تعدادات وضع وقت الاستجابة بخاصية النظام bluetooth.core.le.dsa_transport_preference في Spatializer.cpp.

إتاحة ميزة "الصوت المكاني"

يتحكّم عنصر التحكّم في التأثير المكاني في خدمة سياسة الصوت في اختيار بروتوكول نقل HT بدلاً من الصوت المنخفض الطاقة (LE). يشير تنفيذ محرّك تأثير "المحوِّل المكاني" إلى توفّر إمكانية إنشاء نفق لبيانات HT باستخدام HeadTracking.ConnectionMode.

في ما يلي أوضاع الاتصال المتاحة في HT:

  • FRAMEWORK_PROCESSED: يقدّم إطار العمل الصوتي بيانات وحدة قياس التسارع والانحراف (IMU) التي تمت معالجتها مسبقًا في تنسيق متّجه من الرأس إلى المرحلة إلى HAL. يتوافق هذا الوضع التلقائي مع الوضع الحالي في تطبيق BT الكلاسيكي.
  • DIRECT_TO_SENSOR_SW: يتصل محرّك تأثير "الصوت المكاني" مباشرةً بالجهاز من خلال حِزمة برامج الجهاز. يتحكم إطار العمل الصوتي فقط في الحالة المفعَّلة لجهاز الاستشعار. يمكن أن تستخدم عمليات تنفيذ البرامج التي لا تستخدم عمليات معالجة البيانات في وحدة IMU ضمن AOSP libheadtracking أو عمليات تنفيذ أداة DIRECT_TO_SENSOR_SW التي تم نقلها إلى وحدة معالجة إشارات رقمية وضع DIRECT_TO_SENSOR_SW.
  • DIRECT_TO_SENSOR_TUNNEL: يتصل محرّك تأثير "المحسِّن المكاني" مباشرةً بالجهاز من خلال النفق الآلي. لا يتحكّم إطار العمل الصوتي إلا في حالة تفعيل أداة الاستشعار. يمكن استخدام وضع DIRECT_TO_SENSOR_TUNNEL في عمليات التنفيذ التي تمّ تحميلها إلى وحدة التحكّم في الصوت في وحدة المعالجة الرقمية (DSP).

اختيار وضع وقت الاستجابة

ويختار إطار العمل وضع وقت الاستجابة من قائمة أوضاع وقت الاستجابة المتوافقة التي يتم تسجيلها من خلال طبقة تجريد الأجهزة (HAL). يتم ضبط وضع وقت الاستجابة استنادًا إلى حالة تفعيل HT الحالية ودعم أداة وضع الصوت المكاني الحالي وخاصية النظام التي يحدّدها المورّد والتي تُحدِّد ترتيب الأولوية بين آليات النقل.

يستخدم الإطار العمل العملية التالية في selectHeadtrackingConnectionMode_l لاختيار وضع وقت الاستجابة:

  1. تحمِّل الإطار المرجعي إعدادات النقل المفضّلة من bluetooth.core.le.dsa_transport_preference إعدادات النظام.
  2. تتم فلترة أوضاع وقت الاستجابة المتوافقة التي يُبلغ عنها HAL للصوت وترتيبها وفقًا للقائمة التي تم تحميلها في الخطوة 1.
  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).

    إذا لم يتم تحديد الوضع المفضل التالي، سيُبلغ النظام عن خطأ في إعداد المنتج.