Âm thanh Bluetooth (BT) năng lượng thấp (LE) giới thiệu cơ chế truyền tải logic hướng kết nối không đồng bộ (LE-ACL) và đồng bộ (LE-ISO) cho dữ liệu theo dõi cử động đầu (HT).
Android 15 hỗ trợ điều chỉnh chế độ độ trễ cho HT dựa trên việc cơ chế truyền tải LE-ACL hay LE-ISO được sử dụng.
Trang này mô tả cách khung âm thanh, HAL âm thanh và ngăn xếp Bluetooth tương tác để phát hiện và chọn cơ chế truyền tải LE-ACL hoặc LE-ISO được máy chủ và tai nghe hỗ trợ.
Hỗ trợ LE-ACL và LE-ISO
Android 15 hỗ trợ cơ chế truyền tải LE-ACL và LE-ISO bằng cách sử dụng thuộc tính hệ thống do nhà cung cấp xác định, chế độ độ trễ HAL âm thanh, và chế độ kết nối không gian hoá.
Thuộc tính hệ thống
Quá trình triển khai của nhà cung cấp điện thoại liệt kê các cơ chế truyền tải được hỗ trợ trong thuộc tính hệ thống
bluetooth.core.le.dsa_transport_preference. Giá trị này là một danh sách được phân tách bằng dấu phẩy các chuỗi, liệt kê các phương thức truyền tải được hỗ trợ theo thứ tự ưu tiên:
le-acl: Phương thức truyền tải LE-ACL, khi dữ liệu đơn vị đo quán tính (IMU) được báo cáo thông qua ngăn xếp cảm biến.iso-hw: Phương thức truyền tải ISO có khả năng chuyển trực tiếp dữ liệu HT từ bộ điều khiển Bluetooth đến không gian hoá trong DSP âm thanh.iso-sw: Phương thức truyền tải ISO không có khả năng chuyển, khi dữ liệu IMU được báo cáo thông qua ngăn xếp cảm biến.
Chế độ độ trễ
Trong trường hợp âm thanh BT LE, cơ chế để ngăn xếp BT cho biết các chế độ độ trễ được hỗ trợ cho HAL âm thanh và khung âm thanh giống như cơ chế được xác định cho BT Classic (A2DP). HAL âm thanh báo cáo các chế độ độ trễ được hỗ trợ theo thiết bị âm thanh hiện được chọn.
Quá trình triển khai A2DP chỉ hỗ trợ các chế độ FREE và LOW_LATENCY.
Ngược lại, đối với âm thanh BT LE, các chế độ độ trễ sau đây được xác định trong HAL âm thanh để hỗ trợ việc bổ sung cơ chế truyền tải LE-ACL và LE-ISO truyền tải:
FREE: Giá trị này cho biết không có ràng buộc cụ thể nào về độ trễ. Chế độ này được sử dụng khi độ trễ thấp không được hỗ trợ (do HAL cho biết) hoặc khi HT không hoạt động (do khung cho biết).LOW: Giá trị này cho biết độ trễ tương đối thấp (chẳng hạn như dưới 100 mili giây) tương thích với hoạt động HT. Chế độ này được sử dụng khi độ trễ thấp được hỗ trợ và HID được truyền qua giao thức ACL (do HAL cho biết) hoặc khi HT đang hoạt động và không có chế độ độ trễ thấp nào khác (do khung cho biết).DYNAMIC_SPATIAL_AUDIO_SOFTWARE: Chế độ này được sử dụng khi một trong các điều kiện sau được đáp ứng:- Khi độ trễ thấp được hỗ trợ, HID được truyền qua giao thức ISO và HID không thể được chuyển đến công cụ hiệu ứng không gian hoá (do HAL cho biết).
- Khi HT đang hoạt động và giao thức ISO được sử dụng khi khung âm thanh cung cấp dữ liệu HID cho công cụ hiệu ứng không gian hoá (do khung cho biết).
Ở chế độ này, thư viện tính toán HT trong khung sẽ thực hiện tất cả quá trình tiền xử lý trên dữ liệu IMU và đối chiếu với các chuyển động của điện thoại do cảm biến điện thoại cho biết.
DYNAMIC_SPATIAL_AUDIO_HARDWARE: Chế độ này được sử dụng khi một trong các điều kiện sau được đáp ứng:- Khi độ trễ thấp được hỗ trợ, HID được truyền qua giao thức ISO và HID có thể được chuyển đến công cụ hiệu ứng không gian hoá (do HAL cho biết).
- Khi HT đang hoạt động và giao thức ISO được sử dụng khi dữ liệu HID được chuyển đến công cụ hiệu ứng không gian hoá (do khung cho biết).
Ở chế độ này, công cụ hiệu ứng không gian hoá nhận trực tiếp dữ liệu IMU chưa xử lý từ ngăn xếp BT hoặc bộ điều khiển BT. Quá trình triển khai hiệu ứng không gian hoá thực hiện tất cả quá trình tiền xử lý trên dữ liệu IMU và đối chiếu với các chuyển động của điện thoại do cảm biến điện thoại cho biết.
Các enum chế độ độ trễ được ánh xạ đến thuộc tính hệ thống bluetooth.core.le.dsa_transport_preference
trong Spatializer.cpp.
Hỗ trợ không gian hoá
Bộ điều khiển không gian hoá
trong dịch vụ chính sách âm thanh kiểm soát việc lựa chọn giao thức truyền tải HT
qua âm thanh LE. Quá trình triển khai công cụ hiệu ứng không gian hoá cho biết
hỗ trợ chuyển dữ liệu HT bằng tính năng HeadTracking.ConnectionMode.
Các chế độ kết nối HT được hỗ trợ như sau:
FRAMEWORK_PROCESSED: Khung âm thanh cung cấp dữ liệu IMU đã được tiền xử lý ở định dạng vectơ từ đầu đến giai đoạn cho HAL. Chế độ mặc định này tương ứng với chế độ hiện tại với BT classic.DIRECT_TO_SENSOR_SW: Công cụ hiệu ứng không gian hoá kết nối trực tiếp với cảm biến thông qua ngăn xếp phần mềm cảm biến. Khung âm thanh chỉ kiểm soát trạng thái đã bật của cảm biến. Các quá trình triển khai phần mềm không sử dụng quá trình tiền xử lý dữ liệu IMUlibheadtrackingAOSP hoặc các quá trình triển khai không gian hoá được chuyển sang DSP có thể sử dụng chế độDIRECT_TO_SENSOR_SW.DIRECT_TO_SENSOR_TUNNEL: Công cụ hiệu ứng không gian hoá kết nối trực tiếp với cảm biến thông qua việc chuyển phần cứng. Khung âm thanh chỉ kiểm soát trạng thái đã bật của cảm biến. Các quá trình triển khai không gian hoá được chuyển sang DSP có thể sử dụng chế độDIRECT_TO_SENSOR_TUNNEL.
Lựa chọn chế độ độ trễ
Khung chọn một chế độ độ trễ trong danh sách các chế độ độ trễ được hỗ trợ do HAL báo cáo. Chế độ độ trễ được đặt dựa trên trạng thái bật HT hiện tại, hỗ trợ không gian hoá hiện tại, và thuộc tính hệ thống do nhà cung cấp chỉ định để thiết lập thứ tự ưu tiên giữa các cơ chế truyền tải.
Khung sử dụng quy trình sau trong selectHeadtrackingConnectionMode_l
để chọn chế độ độ trễ:
- Khung tải tuỳ chọn truyền tải từ thuộc tính hệ thống
bluetooth.core.le.dsa_transport_preference. - Các chế độ độ trễ được hỗ trợ do HAL âm thanh báo cáo được lọc và sắp xếp theo danh sách được tải ở bước 1.
- Nếu chế độ độ trễ thấp có mức độ ưu tiên cao nhất là
iso-hwvà quá trình triển khai không gian hoá hỗ trợ kết nối cảm biến trực tiếp (tức làDIRECT_TO_SENSOR_SWhoặcDIRECT_TO_SENSOR_TUNNELđược đặt trong không gian hoá), thì chế độ độ trễ được đặt thànhDYNAMIC_SPATIAL_AUDIO_HARDWARE. Nếu chế độ độ trễ thấp có mức độ ưu tiên cao nhất là
iso-hwvà quá trình triển khai không gian hoá không hỗ trợ kết nối cảm biến trực tiếp (DIRECT_TO_SENSOR_SWhoặcDIRECT_TO_SENSOR_TUNNELkhông được đặt trong không gian hoá), thì chế độ ưu tiên tiếp theo (làiso-swhoặcle-acl) sẽ xác định chế độ độ trễ (làDYNAMIC_SPATIAL_AUDIO_SOFTWAREhoặcLOW).Nếu chế độ ưu tiên tiếp theo không được chỉ định, hệ thống sẽ báo cáo lỗi cấu hình sản phẩm.