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: LE-ACL 전송: 관성 측정 장치 (IMU) 데이터가 센서 스택을 통해 보고되는 경우
  • iso-hw: 블루투스 컨트롤러에서 오디오 DSP의 스페이셜라이저로 HT 데이터를 직접 터널링할 수 있는 기능을 사용하여 ISO 전송.
  • iso-sw: IMU 데이터가 센서 스택을 통해 보고될 때 터널링 기능 없이 ISO 전송.

지연 시간 모드

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

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

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

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

  • LOW: 이 값은 HT 작업과 호환되는 상대적으로 낮은 지연 시간 (예: 100밀리초 미만)을 나타냅니다. 이 모드는 저지연이 지원되고 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 프로토콜이 사용됩니다 (프레임워크에서 표시됨).

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

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

스페이셜라이저 지원

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

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

  • FRAMEWORK_PROCESSED: 오디오 프레임워크는 HAL에 헤드 투 스테이지 벡터 형식의 사전 처리된 IMU 데이터를 제공합니다. 이 기본 모드는 BT classic의 현재 모드에 해당합니다.
  • 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)를 결정합니다.

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