コード励起線形予測( CELP ) は、 1985 年にManfred R. SchroederとBishnu S. Atalによって最初に提案された線形予測 音声符号化アルゴリズムです。当時、残差励起線形予測(RELP) や線形予測符号化(LPC)ボコーダ( FS-1015など) などの既存の低ビット レート アルゴリズムよりも大幅に優れた品質を提供しました。代数 CELP、リラックス CELP、低遅延 CELP、ベクトル和励起線形予測などの派生型とともに、現在最も広く使用されている音声符号化アルゴリズムです[出典が必要] 。MPEG -4 Audio の音声符号化でも使用されています。CELP は、特定のコーデックではなく、アルゴリズムのクラスの総称としてよく使用されます。
背景
CELP アルゴリズムは、次の 4 つの主要なアイデアに基づいています。
- 線形予測(LP)による音声生成のソース フィルター モデルを使用する(教科書「音声コーディング アルゴリズム」を参照)。
- 適応コードブックと固定コードブックを LP モデルの入力 (励起) として使用する。
- 「知覚的に重み付けされたドメイン」で閉ループで検索を実行します。
- ベクトル量子化(VQ)の適用
1983 年に Schroeder と Atal がシミュレートした元のアルゴリズムは、Cray-1スーパーコンピュータで実行した場合、1 秒の音声をエンコードするのに 150 秒かかりました。それ以来、コードブックをより効率的に実装する方法とコンピューティング機能の向上により、携帯電話などの組み込みデバイスでアルゴリズムを実行できるようになりました。
CELPデコーダー

CELP の複雑なエンコード プロセスを検討する前に、ここでデコーダーを紹介します。図 1 は、一般的な CELP デコーダーを示しています。励振は、固定 (別名、確率的または革新的) および適応型 (別名、ピッチ) コードブックからの寄与を合計することによって生成されます。
ここで、は固定 (別名、確率的または革新的) コードブックの寄与であり、は適応 (ピッチ) コードブックの寄与です。固定コードブックは、コーデックに (暗黙的または明示的に) ハードコードされたベクトル量子化辞書です。このコードブックは代数的 ( ACELP ) にすることも、明示的に保存することもできます (例: Speex )。適応コードブックのエントリは、励起の遅延バージョンで構成されます。これにより、有声音などの周期信号を効率的にコード化できます。
励起を整形するフィルタは、 という形式の全極モデルを持ちます。ここで、 は予測フィルタと呼ばれ、線形予測 (レビンソン・ダービンアルゴリズム) を使用して取得されます。全極フィルタは、人間の声道を適切に表現し、計算が容易なため使用されます。
CELP エンコーダ
CELP の背後にある主な原理は、分析と合成 (AbS) と呼ばれ、閉ループでデコードされた (合成) 信号を知覚的に最適化することでエンコード (分析) が実行されることを意味します。理論上は、すべての可能なビットの組み合わせを試し、最も良い音のデコード信号を生成するものを選択することで、最良の CELP ストリームが生成されます。これは、必要な複雑さが現在利用可能なハードウェアの範囲を超えていることと、「最も良い音」の選択基準が人間のリスナーを意味するという 2 つの理由から、実際には明らかに不可能です。
限られたコンピューティング リソースを使用してリアルタイム エンコーディングを実現するために、CELP 検索は、単純な知覚重み付け関数を使用して、より小さく、管理しやすい連続検索に分割されます。通常、エンコーディングは次の順序で実行されます。
- 線形予測係数(LPC) は、通常、線スペクトル対(LSP)として計算され、量子化されます。
- 適応型(ピッチ)コードブックが検索され、その寄与が除去されます。
- 固定(イノベーション)コードブックを検索します。
ノイズ重み付け
最近のオーディオ コーデックのほとんど (すべてではないにしても) は、コーディング ノイズを整形して、耳が感知できない周波数領域にノイズがほとんど現れるようにしています。たとえば、耳はスペクトルの音量が大きい部分のノイズに対してはより寛容であり、その逆も同様です。そのため、CELP は単純な 2 次誤差を最小化するのではなく、知覚的に重み付けされた領域の誤差を最小化します。重み付けフィルター W(z) は、通常、帯域幅拡張を使用して LPC フィルターから導出されます。
どこ。
参照
- MPEG-4 パート 3 (MPEG-4 オーディオ オブジェクト タイプとしての CELP)
- G.728 – 低遅延コード励起線形予測を用いた16kbit/sでの音声符号化
- G.718 – 2段階の符号化構造で、帯域(50~6400 Hz)の下位2層にCELPを使用する
- G.729.1 – 3段階の符号化構造で低帯域(50~4000 Hz)にCELP符号化を使用する
- オーディオコーディングフォーマットの比較
- CELT は、CELP からいくつかのアイデアを借用した関連オーディオ コーデックです。
参考文献
- BS Atal、「線形予測の歴史」、IEEE Signal Processing Magazine、第 23 巻、第 2 号、2006 年 3 月、154 ~ 161 ページ。
- MR Schroeder および BS Atal、「コード励起線形予測 (CELP): 非常に低いビット レートでの高品質音声」、IEEE国際音響、音声、および信号処理会議(ICASSP) の議事録、第 10 巻、937 ~ 940 ページ、1985 年。
外部リンク
- この記事はLinux.Conf.Auで発表された論文に基づいています。
- Speexコーデックマニュアルに基づく部分もあります
- CELP 1016A (CELP 3.2a) および LPC 10e のリファレンス実装。2016-12-12 にWayback Machineでアーカイブされました。
- 線形予測符号化 (LPC)
選ばれた読み物
- CELPコーディング入門
- 音声処理: LPC 分析と合成の理論 2014-06-15 にWayback Machineでアーカイブ
