Bluetooth(BT)Low Energy(LE)Audio には、ヘッド トラッキング(HT)データ用の非同期接続指向論理(LE-ACL)およびアイソクロナス(LE-ISO)論理の転送メカニズムが導入されています。
Android 15 では、LE-ACL または LE-ISO 転送メカニズムが使用されているかどうかに基づいて、HT のレイテンシ モードの調整がサポートされます。
このページでは、オーディオ フレームワーク、オーディオ HAL、Bluetooth スタックがどのように相互作用して、ホストとヘッドセットでサポートされている 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
: HT データを Bluetooth コントローラから直接オーディオ DSP のスペイシャライザーにトンネリングする機能を備えた ISO 転送。iso-sw
: IMU データがセンサー スタックを通じて報告される場合の、トンネリング機能のない ISO 転送。
レイテンシ モード
BT LE Audio の場合、BT スタックがオーディオ HAL とオーディオ フレームワークにサポートされているレイテンシ モードを示すメカニズムは、BT Classic(A2DP)に対して定義されているものと同じです。オーディオ HAL は、現在選択されているオーディオ デバイスに応じて、サポートされているレイテンシ モードを報告します。
A2DP 実装では、FREE
および LOW_LATENCY
モードのみがサポートされています。
一方、BT LE Audio の場合、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 プロトコルが使用される場合(フレームワークによって示される)。
このモードでは、スペイシャライザー エフェクト エンジンは、未処理の IMU データを BT スタックまたは BT コントローラから直接受信します。スペイシャライザー エフェクトの実装が、IMU データのすべての前処理を行い、スマートフォンのセンサーによって示されたスマートフォンの動きと照合します。
レイテンシ モードの列挙型は、Spatializer.cpp
の bluetooth.core.le.dsa_transport_preference
システム プロパティにマッピングされます。
スペイシャライザーのサポート
オーディオ ポリシー サービス内のスペイシャライザー コントローラは、LE Audio を介して HT トランスポート プロトコルの選択を管理します。スペイシャライザー エフェクト エンジンの実装は、HeadTracking.ConnectionMode
機能を通じて、HT データ トンネリングをサポートしていることを示します。
サポートされている HT 接続モードは次のとおりです。
FRAMEWORK_PROCESSED
: オーディオ フレームワークは、前処理された IMU データをヘッドからステージまでのベクター形式で HAL に提供します。このデフォルトのモードは、現在の BT Classic モードに対応しています。DIRECT_TO_SENSOR_SW
: スペイシャライザー エフェクト エンジンは、センサー ソフトウェア スタックを通じてセンサーに直接接続します。オーディオ フレームワークは、センサーの有効状態のみを管理します。AOSPlibheadtracking
の IMU データ前処理や、DSP をオフロードするスペイシャライザーの実装を使用しないソフトウェア実装では、DIRECT_TO_SENSOR_SW
モードを使用できます。DIRECT_TO_SENSOR_TUNNEL
: スペイシャライザー エフェクト エンジンは、ハードウェア トンネリングを通じてセンサーに直接接続します。オーディオ フレームワークは、センサーの有効状態のみを管理します。DSP をオフロードするスペーシャライザーの実装では、DIRECT_TO_SENSOR_TUNNEL
モードを使用できます。
レイテンシ モードの選択
フレームワークは、サポートされているレイテンシ モード(HAL によって報告される)のリストからレイテンシ モードを選択します。現在の HT 有効状態、現在のスペイシャライザーのサポート、および転送メカニズム間の優先順位を確立するベンダー指定のシステム プロパティに基づいて、レイテンシ モードが設定されています。
フレームワークは、selectHeadtrackingConnectionMode_l
で次のプロセスを使用してレイテンシ モードを選択します。
- フレームワークは、
bluetooth.core.le.dsa_transport_preference
システム プロパティから転送設定を読み込みます。 - オーディオ HAL によって報告されたサポートされているレイテンシ モードは、手順 1 で読み込まれたリストと比較してフィルタされ、順序付けられます。
- 最も優先度の高い低レイテンシ モードが
iso-hw
であり、スペイシャライザーの実装が直接センサー接続をサポートしている(つまり、スペイシャライザーでDIRECT_TO_SENSOR_SW
またはDIRECT_TO_SENSOR_TUNNEL
が設定されている)場合、レイテンシ モードはDYNAMIC_SPATIAL_AUDIO_HARDWARE
に設定されます。 最も優先度の高い低レイテンシ モードが
iso-hw
であり、スペイシャライザーの実装が直接センサー接続をサポートしていない(スペイシャライザーでDIRECT_TO_SENSOR_SW
またはDIRECT_TO_SENSOR_TUNNEL
が設定されていない)場合、次の優先モード(iso-sw
またはle-acl
)によってレイテンシ モード(DYNAMIC_SPATIAL_AUDIO_SOFTWARE
またはLOW
)が決まります。次の優先モードが指定されていない場合、システムは製品の構成エラーを報告します。