การติดตามการเคลื่อนไหวของศีรษะผ่าน LE Audio

เสียงบลูทูธ (BT) พลังงานต่ำ (LE) เปิดตัวกลไกการรับส่งข้อมูลเชิงตรรกะแบบไม่พร้อมกันที่มุ่งเน้นการเชื่อมต่อ (LE-ACL) และแบบไอโซโครนัส (LE-ISO) สำหรับข้อมูลการติดตามศีรษะ (HT)

Android 15 รองรับการปรับโหมดเวลาในการตอบสนองสำหรับ HT โดยขึ้นอยู่กับว่าใช้กลไกการรับส่ง LE-ACL หรือ LE-ISO หรือไม่

หน้านี้อธิบายวิธีที่เฟรมเวิร์กเสียง, HAL เสียง และสแต็กบลูทูธ ทำงานร่วมกันเพื่อค้นหาและเลือกกลไกการรับส่ง 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 โดยตรงจาก ตัวควบคุมบลูทูธไปยัง Spatializer ใน DSP เสียง
  • iso-sw: การรับส่ง ISO ที่ไม่มีความสามารถในการทำอุโมงค์ เมื่อมีการรายงานข้อมูล IMU ผ่านสแต็กเซ็นเซอร์

โหมดเวลาในการตอบสนอง

ในกรณีของเสียง BT LE กลไกสำหรับสแต็ก 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 จะไม่สามารถส่งผ่านไปยังเอ็นจินเอฟเฟกต์ Spatializer (ระบุโดย HAL)
    • เมื่อ HT ทำงานอยู่และใช้โปรโตคอล ISO เมื่อเฟรมเวิร์กเสียง ให้ข้อมูล HID แก่เอ็นจินเอฟเฟกต์ Spatializer (ระบุโดยเฟรมเวิร์ก )

    ในโหมดนี้ ไลบรารีการคำนวณ HT ในเฟรมเวิร์กจะทำการประมวลผลล่วงหน้าทั้งหมดในข้อมูล IMU และการปรับให้สอดคล้องกับการเคลื่อนไหวของโทรศัพท์ที่ระบุโดยเซ็นเซอร์ของโทรศัพท์

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE: โหมดนี้ใช้เมื่อตรงกับเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้

    • เมื่อรองรับเวลาในการตอบสนองต่ำ HID จะส่งผ่านโปรโตคอล ISO และสามารถส่งผ่าน HID ไปยังเอ็นจินเอฟเฟกต์ Spatializer (ระบุโดย HAL)
    • เมื่อ HT ทำงานและใช้โปรโตคอล ISO เมื่อมีการส่งผ่านข้อมูล HID ไปยังเอ็นจินเอฟเฟกต์ Spatializer (ระบุโดยเฟรมเวิร์ก)

    ในโหมดนี้ เครื่องมือเอฟเฟกต์ Spatializer จะรับข้อมูล IMU ที่ยังไม่ได้ประมวลผลจากสแต็ก BT หรือคอนโทรลเลอร์ BT โดยตรง การใช้งานเอฟเฟกต์ Spatializer จะทำการประมวลผลล่วงหน้าทั้งหมดในข้อมูล IMU และการปรับ ให้สอดคล้องกับการเคลื่อนไหวของโทรศัพท์ที่ระบุโดยเซ็นเซอร์ของโทรศัพท์

การแมป Enum ของโหมดเวลาในการตอบสนองกับพร็อพเพอร์ตี้ของระบบ bluetooth.core.le.dsa_transport_preference ใน Spatializer.cpp

การรองรับ Spatializer

ตัวควบคุมSpatializer ในบริการนโยบายเสียงจะควบคุมการเลือกโปรโตคอลการรับส่ง HT ผ่าน LE Audio การติดตั้งใช้งานเอ็นจินเอฟเฟกต์ Spatializer แสดงถึง การรองรับการทำอุโมงค์ข้อมูล HT ด้วยความสามารถ HeadTracking.ConnectionMode

โหมดการเชื่อมต่อ HT ที่รองรับมีดังนี้

  • FRAMEWORK_PROCESSED: เฟรมเวิร์กเสียงจะให้ข้อมูล IMU ที่ประมวลผลล่วงหน้าในรูปแบบเวกเตอร์จากศีรษะถึงเวทีแก่ HAL โหมดเริ่มต้นนี้สอดคล้องกับ โหมดปัจจุบันที่มี BT แบบคลาสสิก
  • DIRECT_TO_SENSOR_SW: เครื่องมือเอฟเฟกต์ Spatializer จะเชื่อมต่อกับ เซ็นเซอร์โดยตรงผ่านสแต็กซอฟต์แวร์ของเซ็นเซอร์ เฟรมเวิร์กเสียงจะควบคุม เฉพาะสถานะที่เปิดใช้ของเซ็นเซอร์ การติดตั้งใช้งานซอฟต์แวร์ที่ไม่ได้ ใช้การประมวลผลล่วงหน้าของข้อมูล IMU ของ AOSP libheadtracking หรือการติดตั้งใช้งาน Spatializer ที่มีการออฟโหลด DSP สามารถใช้DIRECT_TO_SENSOR_SWโหมดได้
  • DIRECT_TO_SENSOR_TUNNEL: เครื่องมือเอฟเฟกต์ Spatializer จะเชื่อมต่อกับเซ็นเซอร์โดยตรง ผ่านการเชื่อมต่อฮาร์ดแวร์ เฟรมเวิร์กเสียงจะควบคุมเฉพาะ สถานะที่เปิดใช้ของเซ็นเซอร์ การติดตั้งใช้งาน Spatializer ที่ออฟโหลด 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)

    หากไม่ได้ระบุโหมดที่ต้องการถัดไป ระบบจะรายงานข้อผิดพลาดในการกำหนดค่าผลิตภัณฑ์