AA(2019) なしのヘッドホンの音質向上のためのBluetoothスタック修正
(habr.com)Bluetoothスタック修正による音質改善
- ワイヤレスヘッドホンのユーザーは、標準Bluetooth SBCコーデックを使用すると、音質の低さや高音域の不足を体感する。
- aptXやLDACコーデック対応機器を購入するのが一般的な解決策だが、これらのコーデックはライセンス費用が発生するため、機器がより高価になる。
- 現在のBluetoothスタックとヘッドホンの人為的な制限によりSBCの低品質が生じており、これはソフトウェア修正だけですべての機器で回避できる。
SBCコーデック
- SBCは接続設定段階でネゴシエーションされるさまざまなパラメータを持つ: オーディオチャンネルの種類と数、周波数バンド数、パケットあたりのオーディオブロック数、量子化ビット割り当てアルゴリズム、量子化過程で使用される最大および最小ビットプール。
- 現在のBluetoothスタックは通常、Joint Stereo、8バンド、16ブロック、Loudness、ビットプール 2..53 のオプションセットをネゴシエーションする。
- ビットプール値はエンコードのビットレートを変更するパラメータで、高いほどビットレートと品質が向上する。
Bluetoothスタック修正
- すべてのA2DP互換BluetoothスタックはDual Channelモードをサポートしなければならないが、このモードを強制的に使用する方法がない。
- Android 8.1と9向けのパッチを作成し、開発者メニューにDual Channelモードを追加、Bluetoothデバイス設定では"HD Audio"コーデックとして表示される。
- このパッチは、LineageOS、Resurrection Remix、crDroid などの代替ファームウェアに統合された。
551 と 452 kbps の由来
- Bluetoothの時分割技術は、大容量の固定サイズパケットを効率的に送信するために設計されている。
- データ転送はスロットを通じて行われ、5スロットが1回の送信で送れる最大数である。
- 5スロットでは、2Mbps速度で最大679バイト、3Mbps速度で最大1021バイトを送信できる。
なぜこれらすべてが必要なのか?
- aptXの音質に関する一般的な認識とは異なり、場合によってはSBCが標準328kビットレートより悪い音質を生み出すことがある。
- SBCは周波数帯域に対して量子化ビットを動的に割り当てる一方、aptXは一定のビット数で周波数帯域を量子化する。
- 高ビットレートSBCを使えば、ほとんどの場合 aptX より優れた音質を得られ、EDR 3 Mb/s対応ヘッドホンでは aptX HD に非常に近い音質を提供する。
さらに先へ進めるか?
- Androidパッチセットは、EDR 2 mbps機器のビットレートを 452 kbps から 595 kbps にさらに引き上げられる追加オプションを提供する。
persist.bluetooth.sbc_hd_higher_bitrate変数を 1 に設定することで、より高いビットレートを有効化できる。
機器との互換性
- SBC Dual Channel は、ほぼすべてのヘッドホン、スピーカー、車載ヘッドユニットでサポートされている。
- このモードによって問題が発生する機器は非常にまれだが、互換性に関する詳細情報は 4pda と xda-developers で確認できる。
音質比較
- リアルタイムでブラウザ内でSBC(aptX および aptX HD も含む)にオーディオをエンコードするWebサービスを作成し、さまざまなSBCプロファイルとコーデックの音質を比較できる。
Android開発者への連絡
- GoogleのBluetoothスタック開発者に対し、AOSPにパッチを含めるよう要請したが、まだ返答を受け取っていない。
- Gerritコードレビューシステムでも、開発に関わる人々からいかなるコメントも得られていない。
結論
- LineageOS、Resurrection Remix、crDroid ファームウェアのユーザーは、Bluetoothデバイス設定でチェックボックスを選択することでBluetoothオーディオ品質を向上させられる。
- Linuxユーザーも、Pali Rohár のパッチをインストールすることで、より高いSBCビットレートを得られる。
GN⁺の見解
この記事で最も重要なのは、既存のBluetoothオーディオ品質をソフトウェア修正だけで改善できる点だ。これは、高価な新コーデック対応機器を購入しなくても、既存機器で高品質なオーディオを体験できる魅力的な解決策である。特に、オープンソースファームウェアを使うユーザーにとって、このような修正が可能であることは技術へのアクセス性を高め、ユーザーが自分の機器をより細かく制御できるようにする興味深い進展だ。
1件のコメント
Hacker Newsのコメント
SBCの幅広いサポートと自然な拡張性を肯定的に評価
Android Bluetoothスタック内のバグに対する詳細な分析と、ハードウェアの多様性の指摘
Windowsでの「Alternative A2DP Driver」によるSBCパラメータ調整、およびAAC、aptX、LDACの使用経験の共有
LinuxでSBC XQとmSBCを使って、より高いビットレートの音声やヘッドセット音声品質の向上が可能だという言及
Bluetoothオーディオプロファイルで、あらかじめ長いバッファリングを許可する機能の必要性を提起
LineageOSでの高音質オーディオ伝送機能の使用経験と、ユーザー体験改善の必要性への言及
タイトルへの年号(2019)追加の必要性と、PulseAudioおよびPipeWireでの実装済みであることへの言及
Dual ChannelとJoint Stereoのビットレート差が、実際の音質に与える影響への懐疑的な見方
macOSでHFP品質を改善する方法についての質問と、LinuxでmSBCを使った経験の共有
SBCを使っていたことに気づいていなかった経験と、その投稿への感謝