RCELP(relaxed code excited linear prediction、relaxation code excited linear prediction)、あるいは Relaxed CELP は CELP を改良し符号化の圧縮率を高めた音声符号化アルゴリズムである。入力信号の波形をそのまま符号化するのではなく、圧縮率が上がるように信号をわずかに修正して符号化を行うことで、音声を効率的に符号化する。
RCELP は 携帯電話用の音声符号化方式である EVRC(CDMA2000用)、SMV(CDMA2000用)、VMR-WB(CDMA2000用のワイドバンド版)などで使用されている。
RCELP は音声符号化アルゴリズムの CELP を改良したもので、ベル研究所のクレイジン(W.B. Kleijn)らが開発した [1] [2]。
元となる CELP は、人間の音声を声道に相当する線形予測フィルターと声帯に相当する適応型と固定型のコードブックとでモデル化する。合成による分析(analysis-by-synthesis)の手法を用い、音声波形を再合成し元の信号とを比較することで、コードブックから誤差が最小になるものを探索する。 CELP では元の信号をそのまま比較対象とするのに対し、RCELP はその制限を緩め、時間軸方向に波形を修正した信号を比較対象にする手法である。
一般に、人間の音声の大部分はほぼ同じ波形の特定周波数(ピッチ周波数)での繰り返しからなり、その周波数は細かい周期で変動している。この波形を忠実に再現しようとすると 5 ms 程度の短い周期での分析と符号化が必要になり、必要な情報量が増加してしまう。 20 ms 程度の周期で分析と符号化を行えば情報量は削減できるが、合成による分析の手法を用いた場合、ピッチ周波数の誤差のため実信号との比較がうまくできず音質が低下する。多くの符号化方式では信号を 5 ms 前後のサブフレームに分割しピッチ周波数の分析と符号化を行っている。
RCELP ではピッチ周波数の細かい変動を無視し 20 ms 程度の大まかな周期で分析と符号化を行い、その間は補間で求めたピッチ周波数の軌跡と実際のピッチ周波数との誤差分だけ元の信号を時間軸方向に伸長/圧縮することで、合成による分析の手法を用いた場合の音質低下を避ける。 ピッチ周波数の細かい変動を無視しても聴感上の音質はほとんど変わらないことが分かっており [3]、 元信号の修正のため符号化時の演算量は増加するが、音質を低下させることなく情報量を削減することができる。
RCELP は "Generalized Analysis-by-Synthesis"(合成による分析の一般化、汎用AbS)として提案された手法の応用例として最初に発表され[1]、その後 RCELP と命名された[2]。
合成による分析の一般化とは、合成による分析の際に入力信号にも何らかの変更を行い誤差の最小化を行う方法で、入力信号は聴感上同じに聞こえるよう変更を行う。RCELP はこの手法をピッチ周波数の時間軸方向の修正に適用したものと見なせる。
RCELP の構成は通常の CELP に以下の機能を追加したものになる。
実際に使用される場合、時間軸方向に伸長/圧縮する信号は入力信号だけに限らない。 例えば、携帯電話用のコーデックとして CDMA2000 ネットワークで使われている EVRC や VMR-WB では、入力信号を直接修正するのではなく、線形予測フィルターを通した後の残差信号を修正する [4] [5]。