MPEG-4 CELPMPEG-4 CELPは、MPEG-4 オーディオ(MPEG-4 Part 3)で採用された音声符号化方式である。音声符号化アルゴリズムとして良く知られている CELP(code excited linear prediction)をベースとし、様々なアプリケーションで使えるよう2つのサンプリング周波数と複数のビットレートとをサポートする。人間の音声を 3.85 kbps ~ 23.8 kbps に符号化できる。 MPEG-4 CELP は、デジタル放送、携帯電話、インターネット電話、音声データベースなどの様々な用途に使うことができる。 概要MPEG-4 CELP は MPEG-4 オーディオの低ビットレート音声符号化方式の1つで、1999年に ISO/IEC 14496-3 Subpart 3 で定義され[1]、 その後 MPEG-4 Audio バージョン 2(ISO/IEC 14496-3:1999/Amd 1:2000)でエラー耐性と無音圧縮の拡張が行われた[2][3]。 MPEG-4 CELP は人間の音声の符号化を行うためのもので、8 kHz と 16 kHz の 2 種類のサンプリング周波数をサポートする。サンプリング周波数 8 kHz(帯域幅 100 Hz - 3800 Hz)では 3.85~12.2 kbps の 28 種類のビット・レートで、サンプリング周波数 16 kHz(帯域幅 50 Hz - 7000 Hz)では 10.9~23.8 kbps の 30 種類のビット・レートで符号化ができる[4][5]。 符号化ビットストリームは階層的な構成になっており、コアとなる基本層とそれに追加されたいくつかの拡張層からなる。基本層は音声の復号に必要な最低限の情報を表し、拡張層はそれに対する追加情報を表現する。使用環境に応じて必要な階層の情報を取り出すことで、同じ符号化結果から音質と帯域幅が異なる様々なビットレートの情報を取り出すことができる。 使用する符号化アルゴリズムは、MPE(multipulse excitation、マルチパルス励起)あるいは RPE(regular pulse excitation、レギュラーパルス励起)を用いたもののいずれかを選択できる。 MPE を用いたものは音質と拡張性に優れ、RPE を用いたものはそれらを犠牲にする代わりに符号化に必要な演算量が少ない。 MPEG-4 CELP の特徴は以下の通りである[5]。
また、無音時の情報圧縮のため、無音期間を音声区間検出機能(voice activity detector、VAD)で検出し SID(silence descriptor)と呼ばれるデータのみを使い低いビットレートで符号化する。復号時には、全くの無音を避けるため、SID を検出すると適度なレベルの背景雑音(コンフォートノイズ)を再生する。 MPEG-4 オーディオでの位置付けMPEG-4 オーディオは多くのツールの組み合わせからなり、MPEG-4 CELP や MPEG-4 HVXC(harmonic vector excitation coding) は人間の自然な音声の符号化を行う自然音声符号化ツール(natural speech coding tools)の1つである[4]。 自然音声符号化ツールは、MPEG-4 AAC などの汎用的なオーディオ符号化ツールでは十分な音質が得られない低いビットレートで音声符号化を行うツールである。 HVXC は MPEG-4 CELP がカバーできない超低ビットレート(2 - 4 kbps)での音声符号化を担当し、MPEG-4 CELP はそれ以上のビットレートをカバーする。 さらに低ビットレートでの音声表現が必要な場合は、文字から音声を合成するツールである MPEG-4 TTS Interface(Text-to-speech interface)を使用する。 アルゴリズムMPEG-4 CELP のアルゴリズムは CELP に MPE(multipulse excitation)あるいは RPE(regular pulse excitation)を組み合わせたものである。 MPEG-4 CELP のベースとなる CELP は、声道に相当する合成フィルターとして線形予測フィルターを用い、有声音のような繰り返しの多い波形を適応型コードブックで効率的にパラメータ化する。線形予測と適応型コードブックで符号化できなかった残差信号の符号化には固定型コードブックを使用する。 最後の残差信号の符号化において、MPE では任意の間隔で並んだ複数のパルス信号の組み合わせ(マルチパルス)をコードブックとして用い、RPE では一定間隔に配置した振幅の異なるパルス信号の組み合わせ(レギュラーパルス)で表現する。 RPE は MPE より音質が劣るがアルゴリズムが単純で必要な演算量が少ない[5]。単純化のためサンプリング周波数は 16 kHz のみを使用できる。符号化/復号の際の演算量を抑えたい場合に使用する。全体のアルゴリズムは GSM-FullRate コーデックで使用される RPE-LTP と同様のものである。 MPE はより高い音質や拡張性が必要な場合に使用する。サンプリング周波数が 8/16 kHz の両方が使え、また高域成分などを拡張層の情報として扱うことができるため、同じ符号化結果から音質の異なる様々なビットレートのビットストリームを取り出すことができる。その分全体のアルゴリズムは複雑で必要な演算量が多い。 一般的な意味での MPE(マルチパルス励起)は任意の位置/振幅のパルス列を用いる手法だが[6]、 MPEG-4 CELP の MPE は演算量を抑えるためパルスの振幅を+1/-1のみに制限した代数的コードを使用する [7]。 これは ACELP で使われているものと同様の手法である。 以下に MPEG-4 CELP での各方式の特徴をまとめる[5][8]。 MPEMPE を用いた MPEG-4 CELP の符号化処理は以下の機能を持つツールの組み合わせからなる[7]。
CELP コアエンコーダは CELP アルゴリズムを使って符号化結果のコアとなる基本層の符号化を行う。ビットレート拡張ツールは拡張層を担当し、下の階層で符号化できなかった元信号との残差の符号化を行う。ビットレートを段階的に拡張するため、ビットレート拡張ツールを最大3階層まで組み合わせて使うことができる[8]。これら2つは入力信号の低域成分のみを処理する。サンプリング周波数が 16 kHz の場合は 8 kHz にダウンサンプリングする。 バンド幅拡張ツールは広帯域の入力信号を扱い、前記のツールで符号化できなかった高域成分と低域残差成分とを CELP アルゴリズムで符号化する。 符号化したビットストリームと同様にツール間の関係も階層的になっており、後のツールほど階層が高い。下の階層で抽出したパラメータを上位のツールで使用し残差の符号化を行うことで、ツール間の整合性をとる。 CELP コアエンコーダCELP コアエンコーダは通常の CELP アルゴリズムと MPE を使い符号化を行う。符号化処理は大まかに以下のようになる。
ビットレート拡張ツールビットレート拡張ツールは下位のエンコーダで符号化できなかった元信号との残差を入力とし、パルス位置/振幅の組み合わせ(MPE)とゲインとでパラメータ化する。 パラメータ化の際には、コアエンコーダで求めた線形予測係数を用い、CELP での固定型コードブック探索と同じ合成による分析の手法を使って、線形予測係数による合成フィルターを用いた復号結果と入力信号との誤差が最小になるようなパルス位置/振幅の組み合わせ(MPE)とゲインとを探索する。また、パルス位置の選択の際には下位のエンコーダでの固定型コードブックのパルス位置を考慮して決める。 バンド幅拡張ツールバンド幅拡張ツールはサンプリング周波数が 16kHz の広帯域信号を入力とし、コアエンコーダとビットレート拡張ツールで符号化できなかった成分のみを符号化する。 バンド幅拡張ツールの符号化処理は大まかに以下のようになる。
固定型コードブック探索の際には以下の2つのパラメータも用い、下位ツールで符号化できている成分を除いてパラメータ化する。
固定型コードブックの合成値はサンプリング周波数を合わせるためアップサンプリングしたものを用いる。 脚注
参考文献
関連項目外部リンク
|