การติดตามการเคลื่อนไหวของศีรษะผ่าน 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 เสียง และโหมดการเชื่อมต่อโปรแกรมจำลองเสียงเชิงพื้นที่

พร็อพเพอร์ตี้ของระบบ

การใช้งานของผู้ให้บริการโทรศัพท์จะแสดงกลไกการขนส่งที่รองรับในพร็อพเพอร์ตี้ระบบ bluetooth.core.le.dsa_transport_preference ค่าคือรายการสตริงที่คั่นด้วยคอมมา ซึ่งแสดงตัวนำส่งที่รองรับตามลำดับความชอบ ดังนี้

  • le-acl: การรับส่ง LE-ACL เมื่อมีการรายงานข้อมูลหน่วยวัดความเฉื่อย (IMU) ผ่านกองเซ็นเซอร์
  • iso-hw: การรับส่ง ISO ที่มีความสามารถในการส่งข้อมูล HT จากตัวควบคุมบลูทูธไปยังโปรแกรมจำลองเสียงใน DSP เสียงโดยตรง
  • iso-sw: การส่ง ISO โดยไม่มีความสามารถในการอุโมงค์ข้อมูล เมื่อมีการรายงานข้อมูล IMU ผ่านสแต็กเซ็นเซอร์

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

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

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

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE: โหมดนี้จะใช้เมื่อตรงตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้

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

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

รายการค่าของโหมดเวลาในการตอบสนองจะเชื่อมโยงกับพร็อพเพอร์ตี้ระบบ bluetooth.core.le.dsa_transport_preference ใน Spatializer.cpp

การรองรับโปรแกรมจำลองเสียงรอบทิศทาง

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

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

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

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

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

เฟรมเวิร์กใช้กระบวนการต่อไปนี้ใน selectHeadtrackingConnectionMode_l เพื่อเลือกโหมดเวลาในการตอบสนอง

  1. เฟรมเวิร์กจะโหลดค่ากําหนดการขนส่งจากbluetooth.core.le.dsa_transport_preference พร็อพเพอร์ตี้ของระบบ
  2. ระบบจะกรองและจัดเรียงโหมดเวลาในการตอบสนองที่รองรับซึ่ง HAL เสียงรายงานตามรายการที่โหลดในขั้นตอนที่ 1
  3. หากโหมดเวลาในการตอบสนองต่ำที่มีลำดับความสำคัญสูงสุดคือ iso-hw และการใช้งานโปรแกรมจำลองเสียง 3 มิติรองรับการเชื่อมต่อเซ็นเซอร์โดยตรง (นั่นคือ มีการตั้งค่า DIRECT_TO_SENSOR_SW หรือ DIRECT_TO_SENSOR_TUNNEL ในโปรแกรมจำลองเสียง 3 มิติ) ระบบจะตั้งค่าโหมดเวลาในการตอบสนองเป็น DYNAMIC_SPATIAL_AUDIO_HARDWARE
  4. หากโหมดเวลาในการตอบสนองต่ำที่มีลำดับความสำคัญสูงสุดคือ iso-hw และการใช้งานโปรแกรมจำลองเสียง 3 มิติไม่รองรับการเชื่อมต่อเซ็นเซอร์โดยตรง (ไม่ได้ตั้งค่า DIRECT_TO_SENSOR_SW หรือ DIRECT_TO_SENSOR_TUNNEL ในโปรแกรมจำลองเสียง 3 มิติ) โหมดที่ต้องการถัดไป (iso-sw หรือ le-acl) จะกำหนดโหมดเวลาในการตอบสนอง (DYNAMIC_SPATIAL_AUDIO_SOFTWARE หรือ LOW)

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