เสียงบลูทูธ (BT) พลังงานต่ำ (LE) นำเสนอกลไกการรับส่งข้อมูลเชิงตรรกะแบบไม่พร้อมกันที่มุ่งเน้นการเชื่อมต่อ (LE-ACL) และแบบพร้อมกัน (LE-ISO) สำหรับข้อมูลการติดตามการเคลื่อนไหวของศีรษะ (HT)
Android 15 รองรับการปรับโหมดเวลาในการตอบสนองสำหรับ HT โดยพิจารณาว่าจะใช้กลไกการรับส่งข้อมูล LE-ACL หรือ LE-ISO
หน้านี้อธิบายวิธีที่เฟรมเวิร์กเสียง, Audio HAL และสแต็กบลูทูธทำงานร่วมกันเพื่อค้นหาและเลือกกลไกการรับส่งข้อมูล LE-ACL หรือ LE-ISO ที่โฮสต์และชุดหูฟังรองรับ
การรองรับ LE-ACL และ LE-ISO
Android 15 รองรับกลไกการรับส่งข้อมูล LE-ACL และ LE-ISO โดยใช้พร็อพเพอร์ตี้ระบบที่ผู้ให้บริการกำหนด โหมดเวลาในการตอบสนองของ Audio 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 ในการระบุโหมดเวลาในการตอบสนองที่รองรับไปยัง Audio HAL และเฟรมเวิร์กเสียงจะเหมือนกับที่กำหนดไว้สำหรับ BT Classic (A2DP) Audio 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 การติดตั้งใช้งานเอฟเฟกต์ Spatializer จะระบุ
การรองรับการส่งข้อมูล HT ด้วยความสามารถ HeadTracking.ConnectionMode
โหมดการเชื่อมต่อ HT ที่รองรับมีดังนี้
FRAMEWORK_PROCESSED: เฟรมเวิร์กเสียงจะให้ข้อมูล IMU ที่ประมวลผลล่วงหน้าในรูปแบบเวกเตอร์จากศีรษะถึงเวทีแก่ HAL โหมดเริ่มต้นนี้สอดคล้องกับโหมดปัจจุบันที่มี BT ClassicDIRECT_TO_SENSOR_SW: เอฟเฟกต์ Spatializer จะเชื่อมต่อกับเซ็นเซอร์ผ่านสแต็กซอฟต์แวร์เซ็นเซอร์โดยตรง เฟรมเวิร์กเสียงจะควบคุมเฉพาะสถานะที่เปิดใช้ของเซ็นเซอร์ การติดตั้งใช้งานซอฟต์แวร์ที่ไม่ใช้การประมวลผลล่วงหน้าข้อมูล IMU ของlibheadtrackingAOSP หรือการติดตั้งใช้งาน Spatializer ที่โหลด DSP ออก สามารถใช้โหมดDIRECT_TO_SENSOR_SWได้DIRECT_TO_SENSOR_TUNNEL: เอฟเฟกต์ Spatializer จะเชื่อมต่อกับเซ็นเซอร์ผ่านการส่งข้อมูลฮาร์ดแวร์โดยตรง เฟรมเวิร์กเสียงจะควบคุมเฉพาะสถานะที่เปิดใช้ของเซ็นเซอร์ การติดตั้งใช้งาน Spatializer ที่โหลด DSP ออก สามารถใช้โหมดDIRECT_TO_SENSOR_TUNNELได้
การเลือกโหมดเวลาในการตอบสนอง
เฟรมเวิร์กจะเลือกโหมดเวลาในการตอบสนองจากรายการโหมดเวลาในการตอบสนองที่รองรับ ซึ่ง HAL รายงาน ระบบจะตั้งค่าโหมดเวลาในการตอบสนอง ตามสถานะการเปิดใช้ HT ปัจจุบัน การรองรับ Spatializer ปัจจุบัน และ พร็อพเพอร์ตี้ระบบที่ผู้ให้บริการระบุซึ่ง กำหนดลำดับความสำคัญระหว่างกลไกการรับส่งข้อมูล
เฟรมเวิร์กใช้กระบวนการต่อไปนี้ใน selectHeadtrackingConnectionMode_l
เพื่อเลือกโหมดเวลาในการตอบสนอง
- เฟรมเวิร์กจะโหลดการกำหนดค่าการรับส่งข้อมูลจาก
bluetooth.core.le.dsa_transport_preferenceพร็อพเพอร์ตี้ระบบ - ระบบจะกรองและจัดลำดับโหมดเวลาในการตอบสนองที่รองรับซึ่ง Audio HAL รายงานตามรายการที่โหลดในขั้นตอนที่ 1
- หากโหมดเวลาในการตอบสนองต่ำที่มีลำดับความสำคัญสูงสุดคือ
iso-hwและการติดตั้งใช้งาน Spatializer รองรับการเชื่อมต่อเซ็นเซอร์โดยตรง (นั่นคือ ระบบตั้งค่าDIRECT_TO_SENSOR_SWหรือDIRECT_TO_SENSOR_TUNNELใน Spatializer) ระบบจะตั้งค่าโหมดเวลาในการตอบสนองเป็นDYNAMIC_SPATIAL_AUDIO_HARDWARE หากโหมดเวลาในการตอบสนองต่ำที่มีลำดับความสำคัญสูงสุดคือ
iso-hwและการติดตั้งใช้งาน Spatializer ไม่รองรับการเชื่อมต่อเซ็นเซอร์โดยตรง (ระบบไม่ได้ตั้งค่าDIRECT_TO_SENSOR_SWหรือDIRECT_TO_SENSOR_TUNNELใน Spatializer) โหมดที่ต้องการถัดไป (ซึ่งอาจเป็นiso-swหรือle-acl) จะกำหนดโหมดเวลาในการตอบสนอง (ซึ่งอาจเป็นDYNAMIC_SPATIAL_AUDIO_SOFTWAREหรือLOW)หากไม่ได้ระบุโหมดที่ต้องการถัดไป ระบบจะรายงานข้อผิดพลาดในการกำหนดค่าผลิตภัณฑ์