Theo dõi chuyển động của đầu qua âm thanh LE

Â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 đầ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 hoặc LE-ISO có được sử dụng 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 LE-ACL hoặc LE-ISO mà 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 của bộ mở rộng âm thanh không gian.

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 chuỗi được phân tách bằng dấu phẩy, 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 tiện LE-ACL, khi dữ liệu của bộ đ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: ISO transport có khả năng truyền dữ liệu HT trực tiếp từ bộ điều khiển Bluetooth đến bộ tạo hiệu ứng âm thanh trong DSP âm thanh.
  • iso-sw: Phương thức truyề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 cũng 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.

Các chế độ triển khai A2DP chỉ hỗ trợ các 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ác cơ chế truyền tải LE-ACL và LE-ISO:

  • FREE: Giá trị này cho biết không có quy định hạn chế cụ thể nào về độ trễ. Chế độ này được 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 dùng khi có hỗ trợ độ trễ thấp và HID được truyền qua giao thức ACL (do HAL chỉ ra), hoặc khi HT đang hoạt động và không có chế độ độ trễ thấp nào khác (do khung chỉ ra).

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE: Chế độ này được dùng khi một trong các điều kiện sau đây được đáp ứng:

    • Khi được hỗ trợ độ trễ thấp, HID sẽ đượ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 (do HAL chỉ định).
    • Khi HT đang hoạt động và giao thức ISO được 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ỉ ra).

    Ở chế độ này, thư viện điện toán HT trong khung sẽ thực hiện tất cả các bước tiền xử lý trên dữ liệu IMU và đối chiếu với chuyển động của điện thoại do các cảm biến trê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 đây được đáp ứng:

    • Khi được hỗ trợ độ trễ thấp, HID sẽ đượ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ỉ định).
    • Khi HT hoạt động và giao thức ISO được dùng khi dữ liệu HID được chuyển đến công cụ hiệu ứng không gian (do khung cho biết).

    Ở chế độ này, công cụ hiệu ứng không gian hoá sẽ 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 hoá sẽ xử lý trước tất cả dữ liệu IMU và đối chiếu với các chuyển động của điện thoại do các cảm biến trê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ợ bộ mở rộng âm thanh

Bộ điều khiển spatializer 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. Việc triển khai công cụ hiệu ứng không gian hoá cho biết khả năng hỗ trợ đường hầm dữ liệu HT bằng tính 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ơ từ đầu đến sân khấu cho HAL. Chế độ mặc định này tương ứng với chế độ hiện tại có BT cổ điển.
  • 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. Những hoạt động triển khai phần mềm không sử dụng quy trình xử lý trước dữ liệu IMU libheadtracking của AOSP hoặc các hoạt động triển khai bộ không gian hoá DSP được tải lên có thể sử dụng chế độ DIRECT_TO_SENSOR_SW.
  • DIRECT_TO_SENSOR_TUNNEL: 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 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 phương thức triển khai bộ không gian hoá được chuyển sang 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 HAL báo cáo. Chế độ độ trễ được đặt dựa trên trạng thái bật HT hiện tại, khả năng hỗ trợ bộ tạo hiệu ứng âm thanh không gian 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 này sử dụng quy trình sau trong selectHeadtrackingConnectionMode_l để chọn chế độ trễ:

  1. Khung này tải lựa chọn ưu tiên về phương thức truyền 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 sẽ được lọc và sắp xếp theo danh sách được tải ở bước 1.
  3. Nếu chế độ có độ trễ thấp với mức độ ưu tiên cao nhất là iso-hw và việc triển khai bộ mở rộng âm thanh nổi hỗ trợ kết nối trực tiếp với cảm biến (tức là DIRECT_TO_SENSOR_SW hoặc DIRECT_TO_SENSOR_TUNNEL được đặt trong bộ mở rộng âm thanh nổi), thì chế độ độ trễ sẽ được đặt thành DYNAMIC_SPATIAL_AUDIO_HARDWARE.
  4. Nếu chế độ có độ trễ thấp có mức độ ưu tiên cao nhất là iso-hw và chế độ triển khai bộ mở rộng âm thanh nổi không hỗ trợ kết nối trực tiếp với cảm biến (DIRECT_TO_SENSOR_SW hoặc DIRECT_TO_SENSOR_TUNNEL không được đặt trong bộ mở rộng âm thanh nổi), thì chế độ ưu tiên tiếp theo (là iso-sw hoặc le-acl) sẽ xác định chế độ độ trễ (là 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.