מעקב אחר תנועות הראש באמצעות 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 לא פעיל (המידע הזה מצוין על ידי ה-framework).

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

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

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

    במצב הזה, ספריית מחשוב ה-HT שב-framework מבצעת את כל העיבוד מראש של נתוני ה-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.

תמיכה במרחבים משותפים

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

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

  • FRAMEWORK_PROCESSED: מסגרת האודיו מספקת ל-HAL נתוני IMU שעברו עיבוד מראש בפורמט וקטור ראש-לשלב. מצב ברירת המחדל הזה תואם למצב הנוכחי עם BT הקלאסי.
  • DIRECT_TO_SENSOR_SW: מנוע האפקט המרחבי מתחבר ישירות לחיישן דרך סטאק התוכנות של החיישן. מסגרת האודיו קובעת רק את מצב ההפעלה של החיישן. הטמעות תוכנה שלא משתמשות בעיבוד נתוני ה-IMU של libheadtracking ב-AOSP או בהטמעות של מרחיב מרחבי שהועברו ל-DSP יכולות להשתמש במצב 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 וההטמעה של ה-spatializer לא תומכת בחיבור ישיר לחיישן (DIRECT_TO_SENSOR_SW או DIRECT_TO_SENSOR_TUNNEL לא מוגדרים ב-spatializer), מצב הזמן האחזור (DYNAMIC_SPATIAL_AUDIO_SOFTWARE או LOW) נקבע לפי המצב המועדף הבא (iso-sw או le-acl).

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