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

Bluetooth (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 אודיו ומצבי חיבור של spatializer.

מאפיין מערכת

במסגרת ההטמעה של ספק הטלפון, מנגנוני התעבורה הנתמכים מפורטים בנכס המערכת bluetooth.core.le.dsa_transport_preference. הערך הוא רשימה של מחרוזות המופרדות בפסיקים, שמציגה את סוגי התעבורה הנתמכים בסדר ההעדפה:

  • le-acl: העברה של LE-ACL, כשנתוני יחידת המדידה האינרציאלית (IMU) מדווחים דרך מקבץ החיישנים.
  • iso-hw: העברת ISO עם יכולת לנתב נתוני HT ישירות מהבקר של ה-Bluetooth למכשיר ליצירת אווירה סטריאופונית ב-DSP של האודיו.
  • iso-sw: העברת ISO ללא יכולת מנהרה, כאשר נתוני ה-IMU מדווחים דרך מחסנית החיישנים.

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

במקרה של אודיו BT LE, המנגנון של סטאק ה-BT להצגת מצבי זמן האחזור הנתמכים ל-HAL של האודיו ולמסגרת האודיו זהה למנגנון שהוגדר ל-BT Classic‏ (A2DP). ה-HAL של האודיו מדווח על מצבי זמן האחזור הנתמכים בהתאם למכשיר האודיו שנבחר כרגע.

הטמעות של A2DP תומכות רק במצבים FREE ו-LOW_LATENCY.

לעומת זאת, באודיו BT LE, מצבי זמן האחזור הבאים מוגדרים ב-HAL של האודיו כדי לתמוך בהוספה של מנגנוני התעבורה LE-ACL ו-LE-ISO:

  • FREE: הערך הזה מציין שאין אילוץ ספציפי על זמן האחזור. המצב הזה משמש כשאין תמיכה בזמן אחזור קצר (הדבר מצוין ב-HAL) או כש-HT לא פעיל (הדבר מצוין במסגרת).

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

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

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

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

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

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

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

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

תמיכה ב-Spatializer

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

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

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

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

המסגרת בוחרת מצב זמן אחזור מתוך רשימת מצבי זמן האחזור הנתמכים שמדווחים על ידי ה-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).

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