מעקב אחר תנועות הראש דרך LE audio

Bluetooth (BT) Low Energy (LE) audio מציג את מנגנוני התעבורה הלוגיים Asynchronous Connection-oriented Logical (LE-ACL) ו-Isochronous (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 ישירות מבקר ה-Bluetooth אל מעבד האותות הדיגיטלי (DSP) של האודיו.
  • 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), או כש-HT לא פעיל (כפי שמצוין על ידי המסגרת).

  • LOW: הערך הזה מציין חביון נמוך יחסית (למשל, פחות מ-100 אלפיות השנייה) שתואם לפעולת HT. השימוש במצב הזה מתבצע כשיש תמיכה בהשהיה נמוכה ו-HID מועבר דרך פרוטוקול ACL (כפי שמצוין על ידי HAL), או כש-HT פעיל ואין מצבים אחרים של השהיה נמוכה (כפי שמצוין על ידי המסגרת).

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE: המצב הזה משמש כשאחד מהתנאים הבאים מתקיים:

    • כשיש תמיכה בהשהיה נמוכה, נתוני HID מועברים באמצעות פרוטוקול ISO, ואי אפשר להעביר את נתוני ה-HID בטכניקת מנהור למנוע האפקטים של המרחב (כפי שמצוין ב-HAL).
    • כש-HT פעיל ומשתמשים בפרוטוקול ISO כשמסגרת האודיו מספקת את נתוני ה-HID למנוע האפקטים של המרחב (כפי שמצוין על ידי המסגרת).

    במצב הזה, ספריית המחשוב HT ב-framework מבצעת את כל העיבוד המקדים של נתוני ה-IMU והתאמה לתנועות הטלפון שמצוינות על ידי חיישני הטלפון.

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE: המצב הזה משמש כשאחד מהתנאים הבאים מתקיים:

    • כשיש תמיכה בזמן אחזור נמוך, נתוני HID מועברים באמצעות פרוטוקול ISO, וניתן להעביר אותם בטכניקת מנהור למנוע אפקטים של מרחב (כפי שמצוין ב-HAL).
    • כשה-HT פעיל ומשתמשים בפרוטוקול ISO כשנתוני ה-HID מועברים במנהור למנוע האפקטים של המרחב (כפי שמצוין על ידי המסגרת).

    במצב הזה, מנוע האפקטים של המרחב מקבל את נתוני ה-IMU שלא עברו עיבוד ישירות ממערך ה-BT או מבקר ה-BT. ההטמעה של אפקט המרחב מבצעת את כל העיבוד המקדים של נתוני ה-IMU והתאמה לתנועות הטלפון שמצוינות על ידי חיישני הטלפון.

הערכים של מצב ההשהיה ממופים למאפיין המערכת bluetooth.core.le.dsa_transport_preference ב-Spatializer.cpp.

תמיכה בטכנולוגיית Spatializer

הכלי spatializer ב-audio policy service שולט בבחירה של פרוטוקול HT transport על פני LE audio. ההטמעה של מנוע אפקטים של מרחב מצביעה על תמיכה במנהור נתונים של HT עם יכולת HeadTracking.ConnectionMode.

אלה מצבי החיבור הנתמכים של HT:

  • FRAMEWORK_PROCESSED: מסגרת האודיו מספקת ל-HAL נתונים מעובדים מראש של IMU בפורמט וקטורי מראש עד הבמה. מצב ברירת המחדל הזה תואם למצב הנוכחי עם BT classic.
  • DIRECT_TO_SENSOR_SW: מנוע אפקט המרחב מתחבר ישירות לחיישן דרך מחסנית התוכנה של החיישן. ה-framework של האודיו שולט רק במצב המופעל של החיישן. הטמעות של תוכנה שלא משתמשות בעיבוד מראש של נתוני IMU של AOSP libheadtracking או בהטמעות של מרחב צליל שהועברו ל-DSP יכולות להשתמש במצב DIRECT_TO_SENSOR_SW.
  • DIRECT_TO_SENSOR_TUNNEL: מנוע האפקטים של המרחב מתחבר ישירות לחיישן באמצעות מנהור חומרה. מסגרת האודיו שולטת רק במצב המופעל של החיישן. הטמעות של מרחב צליל שמועברות ל-DSP יכולות להשתמש במצב DIRECT_TO_SENSOR_TUNNEL.

בחירת מצב זמן האחזור

המסגרת בוחרת מצב השהיה מתוך רשימת מצבי ההשהיה הנתמכים שמדווחים על ידי HAL. מצב ההשהיה מוגדר על סמך המצב הנוכחי של הפעלת HT, התמיכה הנוכחית ב-spatializer ומאפיין המערכת שצוין על ידי הספק, שקובע סדר עדיפויות בין מנגנוני התעבורה.

התהליך הבא משמש את המסגרת ב-selectHeadtrackingConnectionMode_l לבחירת מצב השהיה:

  1. המסגרת טוענת את העדפת ההעברה מbluetooth.core.le.dsa_transport_preference מאפיין המערכת.
  2. מצבי השהייה הנתמכים שמדווחים על ידי ה-HAL של האודיו מסוננים ומסודרים לפי הרשימה שנטענה בשלב 1.
  3. אם מצב ההשהיה הנמוכה עם העדיפות הכי גבוהה הוא iso-hw וההטמעה של ה-spatializer תומכת בחיבור ישיר לחיישן (כלומר, אם DIRECT_TO_SENSOR_SW או DIRECT_TO_SENSOR_TUNNEL מוגדרים ב-spatializer), מצב ההשהיה מוגדר כ-DYNAMIC_SPATIAL_AUDIO_HARDWARE.
  4. אם מצב העדיפות הגבוהה ביותר של זמן האחזור הנמוך הוא iso-hw וההטמעה של ה-spatializer לא תומכת בחיבור ישיר של חיישן (DIRECT_TO_SENSOR_SW או DIRECT_TO_SENSOR_TUNNEL לא מוגדרים ב-spatializer), המצב המועדף הבא (שהוא iso-sw או le-acl) קובע את מצב זמן האחזור (שהוא DYNAMIC_SPATIAL_AUDIO_SOFTWARE או LOW).

    אם לא מצוין מצב מועדף הבא, המערכת מדווחת על שגיאת הגדרת מוצר.