Harmonic Vector Excitation Coding

Harmonic Vector Excitation Coding、あるいは HVXC は、MPEG-4 オーディオ（MPEG-4 Part 3）で採用された低ビットレートの音声符号化方式である。人間の音声を対象とし、2 kbps と 4 kbps の2種類の固定ビットレート、および 1.2 ～ 1.7 kbps 程度の可変ビットレートをサポートする。
HVXC は、デジタル放送、携帯電話、インターネット電話、音声データベースなどの様々な用途に使うことができる。
概要.
HVXC は MPEG-4 オーディオの音声符号化方式の1つで、1999年に ISO/IEC 14496-3 Subpart 2 で定義され
その後 MPEG-4 Audio バージョン 2（ISO/IEC 14496-3:1999/Amd 1:2000）で拡張された
MPEG-4 オーディオの中で最も低いビットレートでの音声符号化を受けもち、固定ビットレート （2 kbps、4 kbps）、可変ビットレート（2 kbps 以下、4 kbps 以下）の両方をサポートする。
サンプリング周波数 8 kHz の 100 Hz - 3800 Hz の帯域幅の音声信号を、低ビットレートでは了解度のみが確保された通信用の品質で、高ビットレートでは有線電話に近い品質で符号化できる
また、HVXC では音声の波形を直接符号化するのではなくパラメータ化して符号化するため、デコード時に音声の速度とピッチ（音声の基本周波数）を独立して変えることができる。
HVXC の特徴は以下の通りである。
MPEG-4 オーディオでの位置付け.
MPEG-4 オーディオは多くのツールの組み合わせからなり、HVXC や MPEG-4 CELP は人間の自然な音声の符号化を行う自然音声符号化ツール（）の1つである。 MPEG-4 CELP が2種類のサンプリング周波数（8 kHz, 16 kHz）と比較的高いビットレートをカバーするのに対し、HVXC は MPEG-4 CELP でカバーできない超低ビットレートでの符号化を担当する。
さらに低ビットレートでの音声表現が必要な場合は、文字から音声を合成するツールである MPEG-4 TTS Interface（）を使用する。
また、HVXC が音声のみをサポートするのに対し、音楽をパラメトリックに符号化/復号するツールとして MPEG-4 HILN（）があり、超低ビットレートで音楽の符号化ができ、また HVXC と同様デコード時に音声の速度とピッチ（音声の基本周波数）を変更できる。
音楽と音声を含む信号の低ビットレート符号化には、HVXC と HILN とを信号の内容に応じ切り替えながら使うこともできる。
アルゴリズム.
HVXC の符号化アルゴリズムは、線形予測符号化（LPC）をベースに、LPC の残差信号の表現方法を工夫したものである。
人間の声は、声道の周波数選択特性と音源である声帯などの音の特性や有声・無声の区別でモデル化できる。 HVXC では、線形予測符号化と同様、声道に相当する合成フィルターのパラメータとして線形予測（LP）フィルターの係数を用い、有声音・無声音で LPC の残差信号にあたる音源のパラメータのモデル化方法を切り替える。
有声音での残差信号は、ハーモニックコーディング（）と呼ばれる方法を用い、声帯音の基本周波数にあたるピッチ周波数と共にそのスペクトル形状とゲインとをパラメータ化する。スペクトル形状は残差信号を 離散フーリエ変換（DFT）を使って分析することで求める。無声音での残差信号は、単純なホワイトノイズでモデル化するのではなく、CELP のようにあらかじめ用意した固定型コードブックを用い、コードブック値の中で適切なものを選ぶ VXC（）と呼ばれる方法で信号の形状とゲインのパラメータ化を行う。
有声・無声の区別を単純に行うのではなく４段階（有声1/2/3、無声）に区別することで音質の向上を行う。
ビットレートが高い場合は、線形予測係数の数や有声音でのスペクトル形状を表すビット数、無声音での形状/ゲインパラメータの更新周期を増やし、より音声信号が適切に表現できるようにする。
具体的な符号化は以下のように行われる。
復号時には、符号化とは逆に、有声/無声判定や各種パラメータから残差信号を生成し、線形予測係数から生成した合成フィルターの入力として加えることで、最終的な音声信号を再合成する。
復号時に音声の速度を変えたい場合には、各パラメータを時間軸方向に補間しながら再合成を行う。ピッチ周波数や線形予測フィルターで表現されたフォルマント周波数などを変えることなく速度の変更ができる。
ピッチ周波数も音声データの一部としてパラメータ化されているため、ピッチ周波数だけを独立して変えることも容易である。