LE 오디오를 통한 헤드 트래킹

블루투스 (BT) 저전력 (LE) 오디오는 헤드 추적 (HT) 데이터를 위한 비동기 연결 지향 논리(LE-ACL) 및 동기 (LE-ISO) 논리 전송 메커니즘을 도입합니다.

Android 15에서는 LE-ACL 또는 LE-ISO 전송 메커니즘 사용 여부에 따라 HT의 지연 시간 모드 조정을 지원합니다.

이 페이지에서는 오디오 프레임워크, 오디오 HAL, 블루투스 스택이 상호작용하여 호스트와 헤드셋에서 지원하는 LE-ACL 또는 LE-ISO 전송 메커니즘을 검색하고 선택하는 방법을 설명합니다.

LE-ACL 및 LE-ISO 지원

Android 15에는 공급업체 정의 시스템 속성, 오디오 HAL 지연 시간 모드, 공간화 장치 연결 모드를 사용하여 LE-ACL 및 LE-ISO 전송 메커니즘 지원이 포함됩니다.

시스템 속성

전화 공급업체 구현은 bluetooth.core.le.dsa_transport_preference 시스템 속성에 지원되는 전송 메커니즘을 나열합니다. 값은 쉼표로 구분된 문자열 목록으로, 지원되는 전송이 선호도 순으로 나열됩니다.

  • le-acl: 센서 스택을 통해 관성 측정 장치 (IMU) 데이터가 보고되는 경우 LE-ACL 전송
  • iso-hw: 블루투스 컨트롤러에서 오디오 DSP의 공간화 장치로 HT 데이터를 직접 터널링하는 기능이 있는 ISO 전송입니다.
  • iso-sw: 터널링 기능이 없는 ISO 전송(IMU 데이터가 센서 스택을 통해 보고되는 경우)

지연 시간 모드

BT LE 오디오의 경우 BT 스택이 지원되는 지연 시간 모드를 오디오 HAL 및 오디오 프레임워크에 나타내는 메커니즘은 BT Classic (A2DP)에 정의된 메커니즘과 동일합니다. 오디오 HAL은 현재 선택된 오디오 기기에 따라 지원되는 지연 시간 모드를 보고합니다.

A2DP 구현은 FREELOW_LATENCY 모드만 지원합니다.

반면 BT LE 오디오의 경우 LE-ACL 및 LE-ISO 전송 메커니즘 추가를 지원하기 위해 오디오 HAL에 다음 지연 시간 모드가 정의되어 있습니다.

  • FREE: 이 값은 지연 시간에 특정 제약 조건이 없음을 나타냅니다. 이 모드는 HAL에서 나타낸 대로 지연 시간이 짧은 것이 지원되지 않거나 프레임워크에서 나타낸 대로 HT가 활성 상태가 아닌 경우에 사용됩니다.

  • LOW: 이 값은 HT 작업과 호환되는 비교적 낮은 지연 시간 (예: 100ms 미만)을 나타냅니다. 이 모드는 지연 시간이 짧은 모드가 지원되고 HID가 ACL 프로토콜을 통해 전달되거나 (HAL로 표시됨) HT가 활성 상태이고 다른 지연 시간이 짧은 모드가 없는 경우(프레임워크로 표시됨) 사용됩니다.

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE: 이 모드는 다음 조건 중 하나가 충족될 때 사용됩니다.

    • 지연 시간이 짧은 경우 HID는 ISO 프로토콜을 통해 전달되며 HID는 스페이셜라이저 효과 엔진 (HAL로 표시됨)으로 터널링할 수 없습니다.
    • HT가 활성 상태이고 오디오 프레임워크가 공간화기 효과 엔진에 HID 데이터를 제공할 때 ISO 프로토콜이 사용됩니다 (프레임워크에서 표시).

    이 모드에서 프레임워크의 HT 컴퓨팅 라이브러리는 IMU 데이터의 모든 사전 처리와 휴대전화 센서로 표시된 휴대전화 움직임과의 조정을 실행합니다.

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE: 이 모드는 다음 조건 중 하나가 충족될 때 사용됩니다.

    • 지연 시간이 짧은 경우 HID는 ISO 프로토콜을 통해 전달되며 HID는 스페이셜라이저 효과 엔진 (HAL로 표시됨)으로 터널링될 수 있습니다.
    • HT가 활성 상태이고 HID 데이터가 스페이셜라이저 효과 엔진으로 터널링될 때 ISO 프로토콜이 사용됩니다 (프레임워크에서 표시).

    이 모드에서 공간 음향 효과 엔진은 처리되지 않은 IMU 데이터를 BT 스택이나 BT 컨트롤러에서 직접 수신합니다. 스페이셜라이저 효과 구현은 IMU 데이터의 모든 사전 처리와 휴대전화 센서로 표시된 휴대전화 움직임과의 조정을 실행합니다.

지연 시간 모드 enum은 Spatializer.cppbluetooth.core.le.dsa_transport_preference 시스템 속성에 매핑됩니다.

공간화 장치 지원

오디오 정책 서비스의 spatializer 컨트롤러는 LE 오디오를 통한 HT 전송 프로토콜 선택을 제어합니다. 스페이셜라이저 효과 엔진 구현은 HeadTracking.ConnectionMode 기능으로 HT 데이터 터널링을 지원함을 나타냅니다.

지원되는 HT 연결 모드는 다음과 같습니다.

  • FRAMEWORK_PROCESSED: 오디오 프레임워크는 사전 처리된 IMU 데이터를 헤드-스테이지 벡터 형식으로 HAL에 제공합니다. 이 기본 모드는 BT 클래식의 현재 모드에 해당합니다.
  • DIRECT_TO_SENSOR_SW: 스페이셜라이저 효과 엔진이 센서 소프트웨어 스택을 통해 센서에 직접 연결됩니다. 오디오 프레임워크는 센서의 사용 설정 상태만 제어합니다. AOSP libheadtracking IMU 데이터 사전 처리나 DSP 오프로드 공간 음향화 구현을 사용하지 않는 소프트웨어 구현은 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이고 공간 음향 구현이 직접 센서 연결을 지원하는 경우 (즉, 공간 음향에서 DIRECT_TO_SENSOR_SW 또는 DIRECT_TO_SENSOR_TUNNEL가 설정됨) 지연 시간 모드는 DYNAMIC_SPATIAL_AUDIO_HARDWARE로 설정됩니다.
  4. 우선순위가 가장 높은 지연 시간 감소 모드가 iso-hw이고 공간 음향화 구현이 직접 센서 연결을 지원하지 않는 경우 (DIRECT_TO_SENSOR_SW 또는 DIRECT_TO_SENSOR_TUNNEL이 공간 음향화에서 설정되지 않음) 다음으로 선호하는 모드 (iso-sw 또는 le-acl)가 지연 시간 감소 모드 (DYNAMIC_SPATIAL_AUDIO_SOFTWARE 또는 LOW)를 결정합니다.

    다음으로 선호하는 모드가 지정되지 않으면 시스템에서 제품 구성 오류를 보고합니다.