Theo dõi chuyển động của đầu qua Âm thanh năng lượng thấp

Âm thanh Bluetooth (BT) năng lượng thấp (LE) giới thiệu các cơ chế truyền tải logic theo hướng kết nối không đồng bộ (LE-ACL) và đồng bộ (LE-ISO) cho dữ liệu theo dõi chuyển động đầu (HT).

Android 15 hỗ trợ điều chỉnh chế độ độ trễ cho HT dựa trên việc có sử dụng cơ chế truyền tải LE-ACL hay LE-ISO hay không.

Trang này mô tả cách khung âm thanh, HAL âm thanh và ngăn xếp Bluetooth tương tác để khám phá và chọn cơ chế truyền tải LE-ACL hoặc LE-ISO do máy chủ và tai nghe hỗ trợ.

Hỗ trợ LE-ACL và LE-ISO

Android 15 hỗ trợ các 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 trình tạo không gian.

Thuộc tính hệ thống

Quy trình triển khai của nhà cung cấp điện thoại sẽ 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 chuỗi được phân tách bằng dấu phẩy, liệt kê các phương tiện vận chuyển được hỗ trợ theo thứ tự ưu tiên:

  • le-acl: Truyền tải LE-ACL, khi dữ liệu đơn vị đo lường quán tính (IMU) được báo cáo thông qua ngăn xếp cảm biến.
  • iso-hw: Chuyển tải ISO có khả năng tạo đường hầm dữ liệu HT trực tiếp từ trình điều khiển Bluetooth đến bộ tạo âm thanh không gian trong DSP âm thanh.
  • iso-sw: Vận chuyển ISO không có khả năng tạo đường hầm, 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 Cổ điển (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.

Các phương thức triển khai A2DP chỉ hỗ trợ chế độ FREELOW_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:

  • FREE: Giá trị này cho biết không có quy tắc ràng buộc cụ thể nào về độ trễ. Chế độ này được dùng khi độ trễ thấp không được hỗ trợ (được biểu thị bằng HAL) hoặc khi HT không hoạt động (được biểu thị bằng khung).

  • LOW: Giá trị này cho biết độ trễ tương đối thấp (chẳng hạn như dưới 100 ms) tương thích với hoạt động HT. Chế độ này được dùng khi hỗ trợ độ trễ thấp và HID được truyền qua giao thức ACL (do HAL chỉ báo) hoặc khi HT đang hoạt động và không có chế độ độ trễ thấp nào khác (do khung chỉ báo).

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE: Chế độ này được 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 tải qua giao thức ISO và không thể đường hầm đến công cụ hiệu ứng không gian (được biểu thị bằng HAL).
    • 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 (do khung chỉ báo).

    Ở chế độ này, thư viện điện toán HT trong khung thực hiện tất cả các bước xử lý trước trên dữ liệu IMU và điều chỉnh 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 dùng khi một trong các điều kiện sau được đáp ứng:

    • Khi hỗ trợ độ trễ thấp, 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 (do HAL chỉ báo).
    • 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 (do khung chỉ báo).

    Ở chế độ này, công cụ hiệu ứng âm thanh không gian nhận dữ liệu IMU chưa xử lý trực tiếp từ ngăn xếp BT hoặc bộ điều khiển BT. Việc triển khai hiệu ứng không gian sẽ thực hiện toàn bộ quá trình xử lý trước đối với dữ liệu IMU và điều chỉnh bằng chuyển động của điện thoại do các cảm biến điện thoại chỉ định.

Các enum chế độ độ trễ được liên kết với thuộc tính hệ thống bluetooth.core.le.dsa_transport_preference trong Spatializer.cpp.

Hỗ trợ bộ điều khiển không gian

Trình điều khiển tạo không gian âm thanh trong dịch vụ chính sách âm thanh kiểm soát lựa chọn giao thức truyền tải HT qua âm thanh LE. Việc triển khai công cụ hiệu ứng không gian cho biết tính năng hỗ trợ đường hầm dữ liệu HT bằng khả năng HeadTracking.ConnectionMode.

Sau đây là các chế độ kết nối HT được hỗ trợ:

  • FRAMEWORK_PROCESSED: Khung âm thanh cung cấp dữ liệu IMU đã xử lý trước ở định dạng vectơ đầ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 cũ.
  • DIRECT_TO_SENSOR_SW: Công cụ hiệu ứng không gian 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 hoạt động triển khai phần mềm không sử dụng tính năng xử lý trước dữ liệu IMU libheadtracking AOSP hoặc các hoạt động triển khai trình tạo không gian được giảm tải DSP có thể sử dụng chế độ DIRECT_TO_SENSOR_SW.
  • DIRECT_TO_SENSOR_TUNNEL: Công cụ tạo hiệu ứng không gian kết nối trực tiếp với cảm biến thông qua kỹ thuật tạo đường hầm 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 hoạt động triển khai bộ không gian giảm tải DSP có thể sử dụng chế độ DIRECT_TO_SENSOR_TUNNEL.

Chọn chế độ độ trễ

Khung này chọn một chế độ độ trễ trong danh sách các chế độ độ trễ được hỗ trợ mà 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ợ bộ tạo âm thanh không gian hiện tại và thuộc tính hệ thống do nhà cung cấp chỉ định, giúp thiết lập thứ tự ưu tiên giữa các cơ chế truyền tải.

Khung này sử dụng quy trình sau trong selectHeadtrackingConnectionMode_l để chọn chế độ độ trễ:

  1. Khung tải tuỳ chọn truyền tải từ bluetooth.core.le.dsa_transport_preference thuộc tính hệ thống.
  2. 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.
  3. Nếu chế độ độ trễ thấp có mức độ ưu tiên cao nhất là iso-hw và việc triển khai trình tạo không gian hỗ trợ kết nối cảm biến trực tiếp (tức là DIRECT_TO_SENSOR_SW hoặc DIRECT_TO_SENSOR_TUNNEL được đặt trong trình tạo không gian), thì chế độ độ trễ sẽ được đặt thành DYNAMIC_SPATIAL_AUDIO_HARDWARE.
  4. Nếu chế độ độ trễ thấp có mức độ ưu tiên cao nhất là iso-hw và việc triển khai trình tạo không gian không hỗ trợ kết nối cảm biến trực tiếp (DIRECT_TO_SENSOR_SW hoặc DIRECT_TO_SENSOR_TUNNEL không được đặt trong trình tạo không gian), thì chế độ ưu tiên tiếp theo (iso-sw hoặc le-acl) sẽ xác định chế độ độ trễ (DYNAMIC_SPATIAL_AUDIO_SOFTWARE hoặc LOW).

    Nếu bạn không chỉ định chế độ ưu tiên tiếp theo, hệ thống sẽ báo cáo lỗi cấu hình sản phẩm.