Bluetooth A2DPのコーデック

Bluetoothは近接無線技術の1つであり、そのプロファイルの中にA2DP(Advanced Audio Distribution Profile)と呼ばれるものがあります。
このプロファイルは高音質のオーディオを扱うためのもので、データ量を削減するためにオーディオコーデックを使用します。今回はそのオーディオコーデックについて、書いてみようと思います。

A2DPでは必須コーデック(必ずサポートしなければならないコーデック)としてSBCと呼ばれる非可逆圧縮オーディオコーデックが使われています。最初はこのSBCから。

「SBC」はMPEG Audio Layer1,2と同様にサブバンドによる帯域分割を用いた方式です。ただし、SBCは軽さを重視してより簡易なフォーマットとなっており、例えばサブバンド分割数は8バンド又は4バンドと規定されています(MPEG Audio Layer1,2では32バンド)。そのため他の同様の手法を用いるコーデックと比較して音質的には不利となります。
一方、そのリファレンス実装は非常にシンプルなものになっており、実際に処理はかなり軽いと思われます。
規定の最大のbitrateは345kbpsです。これが十分かどうかはソースによっても変わるので一概には言えません。ただ、常にこのレートが選択されるのであればそこまで音質は悪くないと思います。
しかしながら過去には(もしかすると今も)通常状態で、音質より安定度を重視してもっと低いビットレートでネゴシエーションされてしまう機器があったようで(※1)、もしかしたらこの辺がSBCは音が悪い、という評判につながったのかも知れません。

他には「MPEG-1,2 Audio」や「MPEG-2,4 AAC」、「ATRAC」についても必須ではありませんが、仕様書で定義されているコーデックです。これらは名前のままです。ユーザ側のファイルをデコードせずにそのまま転送して、受け側の機器で直接デコードできるのが最大の強みかと思います。
もっとも、現在ではMPEG-2,4 AAC (AAC-LC)に対応した機器くらいしか市場には出回っていないようです。

次に「AptX」について。
高音質という評判で採用が進んでいるこのコーデックは英CSR社で開発され業務用(放送局など)で使われていたADPCM系のコーデックをA2DPに持ち込んだものです。このコーデックの特徴は一般的な非可逆コーデックで用いられる心理聴覚的な手法(マスキング効果など)を使わない点です。また周波数帯域分割や周波数領域への変換なども行いません。それもあって非常に軽く、レイテンシ(遅延)も短いです。このコーデックも非可逆なものですが、基本となるビットレートが高い(352kbps)ことも相まって音質は安定しています。

最後に「LDAC」について。
最近、SONYから発表されたハイレゾ対応コーデックです。技術的な詳しい内容は分かりませんが、標準ビットレートが660kbps。また最高で990kbps、最低330kbpsということで、単純にビットレートだけみても他のコーデックよりも高く、良い音質を得られそうです。
ただ、大きなデータの安定した伝送が必要になるため機器の設計は大変かも知れません。もっともその辺はベンダーさんが考えることなんだろうとは思います。

!以下は間違っている内容を含むかも知れません。
このコーデックの技術的な部分について少し考えて(想像も交えて)みます。
音声データを周波数領域に変換して部分毎に精度を変えデータ量を減らしていく、というのは開発者へのインタビュー記事(※2)を読む限り多分あっているかと思います。ただしその際係数の0への切り捨ては行わないようです。
またそれに加えて特に高い周波数については通常の手法よりも荒い精度・少ないデータ量で、大まかなオーディオデータを再現(復元)する仕組みがあるかも知れません。これは高周波数領域についてはざっくりとデータを削減しないとデータ量的に厳しいと思われるからです。逆に言えば大きくデータ量を削減しても聴覚的な問題が起きにくいという前提にたっています。
またマスキングの計算はまじめにやると重くなるので、ラウドネスベースで量子化の精度を変えていると妄想します。

以上、今回はbluetooth、A2DPのコーデックについて書いてみました。
それではまた。

Bluetooth A2DPのコーデック” への1件のフィードバック

コメントを残す