LC3
Low Complexity Communication Codec
ドルビーが提供
8kHz, 16kHz, 24kHz, 32kHz, 48kHz に対応、44.1kHzは使えるけど若干遅延多め?
フレーム間隔により遅延やビットレートも違い
320kbps から 430kbps
1 はじめに
LC3仕様は、オーディオプロファイルで使用するための効率的なBluetoothオーディオコーデックを定義します。このコーデックは、音声と音楽を様々なビットレートでエンコードできます。
LC3は、あらゆるBluetoothオーディオプロファイルに組み込むことができます。あらゆるチャネル条件下で満足のいくオーディオ品質を提供するために、オーディオ接続の受信側に何らかの形式のパケットロス隠蔽(PLC)を実装することを強く推奨します。
PLCの目的は、デコード時に利用できない、または破損したフレームデータの影響を隠蔽することです。本仕様の付録Bに記載されているPLCアルゴリズムの例を使用できます。この例のPLCの典型的なパケットロス条件下でのオーディオ品質は満足のいくものと考えられます。実装において代替のPLC方式を変更または実装する場合、そのような代替PLCの性能は、付録Bに記載されているPLCの例の性能を満たすか、それを上回る必要があります。
LC3コーデックのエンコーダとデコーダの両方の参照実行ファイルは、1のLC3相互運用性テストソフトウェアの一部として入手可能です。 注: LC3 ソース コード (エンコーダ用またはデコーダ用) は、仕様の一部としては提供されません。
1.1 適合性
本仕様の各機能は、規定された方法でサポートされなければならない。本仕様は、例えば一部の製品が本仕様のすべての部分を実装していないなどの理由により、設計の柔軟性を高めるためのオプションを提供する場合がある。サポートされる各実装オプションについては、規定された方法でサポートされなければならない。
1.2 Bluetooth仕様リリースの互換性
この仕様は、LC3を必須またはオプションのコーデックとして含むすべてのプロファイルで使用されるものとする。
1.3 変更履歴
このセクションでは、中程度の詳細レベルで変更点をまとめていますが、すべての変更点を網羅しているわけではありません。
(略)
1.4 言語
1.4.1 言語規則
Bluetooth SIGは、仕様策定におけるshall、must、will、should、may、can、is、noteなどの用語の使用について、以下の規則を定めています。
(略)
2 LC3の説明
このセクションでは、LC3の概要と設計原則について説明します。
2.1 概要
LC3は、ブロックベース変換オーディオコーデックであり、アルゴリズム遅延が小さく、実装の複雑さが少なく、非常に幅広いビットレートに対応します。エンコーダとデコーダは、8kHz、16kHz、24kHz、32kHz、48kHzのサンプリング周波数において、フレーム間隔10msと7.5msで動作します。入力信号のサンプリング周波数が44.1kHzの場合、48kHzの場合と同じフレーム長が使用されるため、実際のフレーム期間はわずかに長くなります。10msのフレーム間隔では10.884ms、7.5msのフレーム間隔では8.16msです。
LC3のコーデックアルゴリズム遅延の合計は、フレーム期間とエンコーダ側のMDCT(修正離散コサイン変換)ルックアヘッドの期間の合計です。フレーム間隔が10msの場合、サンプリング周波数が8kHz、16kHz、24kHz、32kHz、48kHzのとき、コーデックアルゴリズム遅延の合計は12.5msです。一方、44.1kHz信号の場合はフレームサイズが48kHzのため、コーデックアルゴリズム遅延の合計は13.605msです。フレーム間隔が7.5msの場合、サンプリング周波数が8kHz、16kHz、24kHz、32kHz、48kHzのとき、コーデックアルゴリズム遅延の合計は11.5msです。一方、44.1kHz信号の場合はフレームサイズが48kHzのため、コーデックアルゴリズム遅延の合計は12.517msです。
LC3エンコーダアルゴリズムは、外部で設定されたビットレートに基づいて、チャネルごとに単一のPCM(パルス符号変調)フレームを圧縮し、各チャネル(ペイロード)のソースエンコードされたビットを提供します。このペイロードには、トランスポートチャネルエラー保護は追加されません。1チャネルのペイロードのサイズは、フレームごとに20バイトから400バイトの範囲で、10ミリ秒のフレームでは全体の圧縮ビットレート範囲が16,000 bpsから320,000 bps、7.5ミリ秒のフレームでは全体の圧縮ビットレート範囲が21,334 bpsから426,667 bpsに相当します。 44.1 kHz のサンプリング周波数で使用される 10.884 ms のフレーム期間の場合、対応するビットレート範囲は、10 ms のフレームサイズでは 14,700 bps ~ 294,000 bps、7.5 ms のフレームサイズでは 19,600 bps ~ 392,000 bps です。LC3 は、固定ビットレートまたは外部制御の可変ビットレートで動作できます。
LC3 デコーダーは、受信したペイロードをデコードするために、外部で決定された Bad Frame Indication (BFI) フラグと各チャネルのペイロードサイズパラメータを使用します。BFI フラグは、ペイロードの損失、または受信ペイロード内で検出されたビットエラーの存在をデコーダーに通知するために使用されます。この仕様では、ペイロード内の内部フィールドも定義されており、外部アプリケーションがデコーダーに破損したペイロードを通知することができます。ペイロードビットが破損しているとフラグ付けされた場合、LC3デコーダはペイロードビットの読み取りをスキップし、代わりにPLCアルゴリズムを起動して非圧縮出力PCM信号を生成します。ペイロードサイズパラメータにより、LC3デコーダは受信した各ペイロードを正しく解析できます。
LC3ペイロードには、タイムスタンプやシーケンス番号などのタイミング情報は含まれません。
この仕様は、様々なアーキテクチャ上でコーデックを効率的に実装できるように、方程式と整数擬似コードを用いて記述されています。例としては、限られた24ビットアキュムレータを備えた電力制限のある補聴器や、効率的な浮動小数点ユニットを備えたデバイスなどが挙げられます。