WEBマガジン詳細

Webマガジン Vol.54- Mar., 2022

Column: Bluetooth A2DP 音途切れと解析ポイントについて

本コラムの構成

■はじめに
■音途切れのメカニズム
■音途切れ発生例と解析ポイント

 

■はじめに

昨今、スマートフォンやスマートスピーカーなど多くの場面で利用されるBluetooth無線技術の音楽再生では、音楽転送プロファイル「A2DP(Advanced Audio Distribution Profile)」に対応した機器同士をペアリングすると、送信側(SRC)が音声データを連続的に伝送し、受信側(SNK)ではデータを受信しながら再生できます。電波としては2.4GHz帯のISMバンドを使用しており、他のBluetooth機器に限らず、同帯域を使用している無線LANなどからの干渉を受けるケースも考慮した仕様になっています。
 
A2DPが使用するACL(Asynchronous Connection Less)の非同期データ転送では、受信側が送信データの受信に失敗した際、送信側は繰り返し送信することが可能です。そのため、ある程度の干渉には耐えられる仕様になっていますが、音の途切れなく再生可能なことが求められるA2DPにおいては、繰り返し再送できる回数は制限されます。

ある程度の再送を繰り返しても音が途切れないようにするため、A2DP対応機器ではSRC、SNK共に「バッファ(一時的にデータを記憶するエリア)」を備えています。SNKはSRCからデータを受信できない時間があっても再生データが絶えぬよう、一定量データを貯めてから再生を開始します。また、SRCもHost側で連続的にエンコードされた音データを干渉等で送信できない時間があっても送信バッファにデータを一時的に貯え、伝搬環境が回復した際、貯えたデータをまとめて送信します。  

本コラムでは音が途切れるメカニズムと、プロトコルアナライザーでの確認方法について、ご紹介します。

 

■音途切れのメカニズム

<干渉発生による音途切れのメカニズム>

SNKはSRCから送られてきたMediaパケットを受信バッファに貯め、一定量貯まった時点で再生を開始します。(一般に再生時間で約100~150msec分)干渉等でSRCからのMediaパケットが受信できなくなると、SNKは受信バッファに貯めたデータを再生し続けますが、滞った時間がバッファ内音楽データの再生時間を超えると再生するデータが枯渇し、音が途切れます。
一方で、SRC側も送信不可の時間が長くなるとHostから連続的に転送されてくるデータを送信バッファに貯め続け、送信バッファが一杯になった時点でデータを破棄します。 破棄されたデータは音声の欠落となり、音途切れとして聞こえます。

 

<転送遅延による音途切れのメカニズム>

SRC内のHostにおいて別処理でデータ転送が滞留すれば、送信バッファのオーバーフローや受信バッファのアンダーフローにつながり易くなります。他のSRC起因の遅延要因としては、SRCがBluetooth A2DP以外の2.4GHzの無線LANや他のBluetooth(Classic、LE)を同時に使用したとき、それぞれが時分割で使用されるため、一時的にA2DPの通信ができない時間が発生することで再送可能回数が減り、その結果干渉を受けた時と同様に音が途切れ易くなります。 SRCとSNKのバッファサイズが共に大きければ音は途切れにくくなりますが、SRC/SNKいずれか一方のバッファが大きくても意味はなく、バッファサイズが小さい方によって音の途切れ易さは決まります(SNKの再生を開始するバッファ量が大きいと遅延時間もその分大きくなるため、バッファ量が大きすぎるのも問題となります)。
また、Bit Rateが高いCodecでは単位時間あたりに転送が必要なパケット数が多くなるため、同じ時間のバッファ量で比較すると、オーバーフローやアンダーフローは起きやすくなります。リレー方式を採用した完全ワイヤレスのヘッドセットでは、左右間のデータ転送中はSNKはSRCからのデータを受信できないため、SRCは送信を待たされることで送信バッファにデータが貯まり、音が途切れやすくなります。

 

 

■音途切れ発生例と解析ポイント

音途切れが発生する原因を調査するためには、Bluetoothプロトコルアナライザで実際のBluetooth無線通信データを記録して解析することが欠かせません。  

Teledyne LeCroy Frontline社のBluetoothプロトコルアナライザのソフトウェア「WPS (Wireless Protocol Suite)」ではBluetoothパケットを時系列に表示するSummary表示があります。AVDTP Media Tabには下図のように表示され、Sequence No.やTime StampでMedia Packetが欠けなく送信されているか確認可能です。欠けた個所は音途切れの可能性が高く、送信バッファが溢れた場合は数字が飛んで表示されます(CRC ErrorやLength Errorが原因で欠けている場合、Baseband TabでACK(ARQN=1)の返信が確認できれば、正常に送られています)。

また、前後のパケットの間隔(Delta)やTimestampからMedia Packetの送信間隔を調べることで、音の途切れやす易さやその原因調査に役立てることができます。例えば、送信間隔が100msec以上ある個所ではほぼ音途切れに繋がるため、その際何が原因で間隔が空いたのかを調べます。

下図のSummary表示でのBaseband Tabでは、再送されたメディアパケットを見ることができます。

再送の連続は音途切れの原因になります。ここではCentralが送信したメディアパケットに対してPeripheralがレスポンスを返していないため、連続10回再送が繰り返されています。また、画面下部に表示されているTimeline表示においても再送パケットの確認が可能です。

さらに、Packet Error Rateを利用することで、チャネル毎のGoodとRetransmitted(再送パケット)の割合を見ることができます。時系列の中で選択範囲を短くして前後に移動させることで、再送が増えている時間帯の特定が可能です。  

このように、Bluetoothプロトコルアナライザで実際のBluetooth無線通信データを記録して解析することで、音途切れの原因を素早く的確に把握し、通信品質の向上に役立ちます。

以下のリンクでBluetoothプロトコルアナライザ製品をご紹介させていただいておりますので、Bluetoothの音途切れ原因の解析のお役に立てれば幸いです。

Teledyne LeCroy Frontline社 Bluetoothプロトコルアナライザ製品一覧ページ
https://www.cornestech.co.jp/tech/frontline/ 

Bluetoothプロトコルアナライザに関するご質問やご要望等ございましたら、ページ下部のWEBマガジンお問い合わせフォームより、お気軽にお問い合わせください。

ページトップへ戻る