(57)【要約】  分割マルチレート格子ベクトル量子化の量子化パラメータを効率的に符号化する音響／音声符号化装置、音響／音声復号装置、音響／音声符号化方法および音響／音声復号方法を提供すること。本発明では、はじめにコードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、利用可能な総ビット数および他のサブベクトルのビット使用状況についての情報に基づいて、そのコードブックの値を推定する。実際の値と推定値との差分値を計算する。最後に、最も多くのビットを消費するコードブック指示を送信する代わりに、コードブック指示が最も多くのビットを消費するサブベクトルの位置、および実際の値と推定値との差分値を送信する。本発明の方法を適用することにより、コードブック指示からビットを節減することができる。
2013118476.tif 000002
【特許請求の範囲】
【請求項１】
時間領域入力信号を周波数スペクトルに変換する時間周波数領域変換部と、
前記周波数スペクトルの入力信号をサブバンドに分割し、サブバンドに分割した入力信号を量子化して、コードブック指示を生成するベクトル量子化部と、
前記コードブック指示を変換するコードブック指示変換部と、
を具備し、
前記コードブック指示変換部は、
前記コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、特定した位置、および、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化し、
前記コードブック指示が最も多くのビットを消費するコードブックを推定し、
実際のコードブック指示と推定されたコードブック指示との差分を符号化する、
音響／音声符号化装置。
【請求項２】
前記コードブック指示変換部は、前記コードブック指示が前記閾値より大きい場合、
前記コードブック指示が最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化し、
利用可能な総ビット数および他のサブベクトルのビット使用状況の情報に基づいて、最も多くのビットを消費するコードブック指示を推定し、
実際のコードブック指示と推定されたコードブック指示との差分と、前記コードブック指示が最も多くのビットを消費するサブベクトルの位置とを符号化する、
請求項１に記載の音響／音声符号化装置。
【請求項３】
前記コードブック指示変換部は、前記コードブック指示が前記閾値以下である場合、
所定のサブバンド以外のすべてのサブバンドのコードブック指示を符号化し、
利用可能な総ビット数および他のサブベクトルのビット使用状況の情報に基づいて、前記所定のサブバンドのコードブック指示を推定し、
実際のコードブック指示と推定されたコードブック指示との差分を符号化する、
請求項１に記載の音響／音声符号化装置。
【請求項４】
前記コードブック指示変換部は、総消費ビット数が割り振られた総ビット数より大きい場合、
残りのビットがなくなるまで前記サブベクトルのコードブック指示を符号化する、
請求項１に記載の音響／音声符号化装置。
【請求項５】
前記コードブック指示変換部は、
最も大きなエネルギーを有するサブベクトルに未使用ビットを配分し、前記未使用ビットを配分したサブベクトルのコードブックおよびコードベクトルを更新する、
請求項２に記載の音響／音声符号化装置。
【請求項６】
前記コードブック指示変換部は、
零ベクトルとして符号化されるサブベクトルに前記未使用ビットを配分し、前記未使用ビットを配分したサブベクトルのコードブックおよびコードベクトルを更新する、
請求項２に記載の音響／音声符号化装置。
【請求項７】
音響／音声符号化装置によって符号化されたコードブック指示が最も多くのビットを消費するサブベクトルの位置を復号し、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を復号し、前記コードブック指示が最も多くのビットを消費するコードブック指示を推定し、実際のコードブック指示と推定したコードブック指示との差分を復号し、推定した前記コードブック指示に復号した前記差分を加算してコードブック指示を復号するコードブック指示変換部と、
復号された前記コードブック指示を含む各サブベクトルのスペクトル係数を逆量子化するベクトル逆量子化部と、
前記逆量子化されたスペクトル係数を時間領域に変換する周波数時間領域変換部と、
を具備する音響／音声復号装置。
【請求項８】
前記コードブック指示変換部は、
サブベクトルのコードブック指示を順次復号し、すべてのサブベクトルのコードブック指示が復号される前に残りのビット数が０より大きい場合、利用可能な総ビット数と他のサブベクトルのビット使用状況に基づいて、前記音響／音声符号化装置によって符号化されたコードブック指示を推定し、前記残りのビット数が０になる場合、復号処理を終了する、
請求項７に記載の音響／音声復号装置。
【請求項９】
前記コードブック指示変換部は、
復号された前記コードブック指示が所定の閾値より大きい場合、サブベクトルの位置を復号し、復号された前記コードブック指示を対応するサブベクトルに割り当て、
復号された前記コードブック指示が前記閾値以下である場合、復号された前記コードブック指示を所定のサブバンドに割り当てる、
請求項８に記載の音響／音声復号装置。
【請求項１０】
時間領域入力信号を周波数スペクトルに変換する時間周波数領域変換工程と、
前記周波数スペクトルの入力信号をサブバンドに分割し、サブバンドに分割した入力信号を量子化して、コードブック指示を生成するベクトル量子化工程と、
前記コードブック指示を変換するコードブック指示変換工程と、
を具備し、
前記コードブック指示変換工程は、
前記コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、特定した位置、および、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化し、
前記コードブック指示が最も多くのビットを消費するコードブックを推定し、
実際のコードブック指示と推定されたコードブック指示との差分を符号化する、
音響／音声符号化方法。
【請求項１１】
音響／音声符号化装置によって符号化されたコードブック指示が最も多くのビットを消費するサブベクトルの位置を復号し、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を復号し、前記コードブック指示が最も多くのビットを消費するコードブック指示を推定し、実際のコードブック指示と推定したコードブック指示との差分を復号し、推定した前記コードブック指示に復号した前記差分を加算してコードブック指示を復号するコードブック指示変換工程と、
復号された前記コードブック指示を含む各サブベクトルのスペクトル係数を逆量子化するベクトル逆量子化工程と、
前記逆量子化されたスペクトル係数を時間領域に変換する周波数時間領域変換工程と、
を具備する音響／音声復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル量子化を使用した、音響／音声符号化装置、音響／音声復号装置、音響／音声符号化方法および音響／音声復号方法に関する。
【背景技術】
【０００２】
音響および音声の符号化には、主として変換符号化と線形予測符号化の２種類の符号化方式がある。【０００３】
変換符号化は、離散フーリエ変換（ＤＦＴ: Discrete Fourier Transform）または修正離散コサイン変換（ＭＤＣＴ: Modified Discrete Cosine Transform）などを使用して、信号を時間領域からスペクトル領域に変換するものである。スペクトル係数を量子化し、符号化する。量子化または符号化の過程では、通常は音響心理学モデルを適用してスペクトル係数の知覚的重要度を判断した後、その知覚的重要度に応じてスペクトル係数を量子化または符号化する。広く使用される変換コーデックには、ＭＰＥＧ ＭＰ３、ＭＰＥＧ ＡＡＣ（非特許文献１参照）、およびＤｏｌｂｙ ＡＣ３がある。変換符号化は、音楽または一般的な音響信号に有効である。変換コーデックの単純な構成を図１に示す。【０００４】
図１に示すエンコーダでは、離散フーリエ変換（ＤＦＴ）または修正離散コサイン変換（ＭＤＣＴ）などの時間から周波数領域への変換方法を使用して、時間領域信号Ｓ（ｎ）を周波数領域信号Ｓ（ｆ）に変換する（１０１）。【０００５】
周波数領域信号Ｓ（ｆ）に音響心理学モデル解析を行って、マスキング曲線を導出する（１０３）。音響心理学モデル解析で導出されたマスキング曲線に従って周波数領域信号Ｓ（ｆ）を量子化して、量子化ノイズが不可聴になるようにする（１０２）。【０００６】
量子化パラメータを多重化し（１０４）、デコーダ側に送信する。【０００７】
図１に示すデコーダでは、はじめにすべてのビットストリーム情報が逆多重化される（１０５）。量子化パラメータを逆量子化して、復号周波数領域信号Ｓ~（ｆ）を復元する（１０６）。【０００８】
逆離散フーリエ変換（ＩＤＦＴ: Inverse Discrete Fourier Transform）または逆修正離散コサイン変換（ＩＭＤＣＴ: Inverse Modified Discrete Cosine Transform）などの周波数から時間領域への変換方法を使用して、復号周波数領域信号Ｓ~（ｆ）を変換して時間領域に戻すことにより、復号時間領域信号Ｓ~（ｎ）を復元する（１０７）。【０００９】
一方、線形予測符号化は、時間領域で音声信号が予測可能である性質を利用し、入力音声信号に線形予測を適用することによって残差励振信号を取得する。音声信号、特に、共振効果と、ピッチ周期の倍数であるタイムシフトに伴う高い類似度とを持つ有声領域に対しては、このモデル化で非常に効率的な音声表現が生成される。線形予測の後、残差励振信号は、主として２つの異なる方法、ＴＣＸおよびＣＥＬＰで符号化される。【００１０】
ＴＣＸ（非特許文献２参照）では、残差励振信号は周波数領域で効率的に変換および符号化される。広く使用されるＴＣＸコーデックには、３ＧＰＰ ＡＭＲ−ＷＢ＋、ＭＰＥＧ ＵＳＡＣがある。ＴＣＸコーデックの単純な構成を図２に示す。【００１１】
図２に示すエンコーダでは、入力信号にＬＰＣ解析を行って、時間領域における信号の予測可能性を利用する（２０１）。ＬＰＣ解析で得られたＬＰＣパラメータを量子化し（２０２）、量子化インデックスを多重化して（２０７）、デコーダ側に送信する。逆量子化部（２０３）によって逆量子化されたＬＰＣパラメータを使用して、入力信号Ｓ（ｎ）にＬＰＣ逆フィルタリングを適用することにより、残差（励振）信号Ｓｒ（ｎ）を得る（２０４）。【００１２】
離散フーリエ変換（ＤＦＴ）または修正離散コサイン変換（ＭＤＣＴ）などの時間から周波数領域への変換方法を使用して、残差信号Ｓｒ（ｎ）を周波数領域信号Ｓｒ（ｆ）に変換する（２０５）。【００１３】
Ｓｒ（ｆ）を量子化し（２０６）、量子化パラメータを多重化して（２０７）、デコーダ側に送信する。【００１４】
図２に示すデコーダでは、はじめにすべてのビットストリーム情報を逆多重化する（２０８）。【００１５】
量子化パラメータを逆量子化して、復号周波数領域残差信号Ｓｒ~（ｆ）を復元する（２１０）。【００１６】
逆離散フーリエ変換（ＩＤＦＴ）または逆修正離散コサイン変換（ＩＭＤＣＴ）などの周波数から時間領域への変換方法を使用して、復号周波数領域残差信号Ｓｒ~（ｆ）を変換して時間領域に戻すことにより、復号時間領域残差信号Ｓｒ~（ｎ）を復元する（２１１）。【００１７】
逆量子化部（２０９）によって逆量子化されたＬＰＣパラメータを使用して、復号時間領域残差信号Ｓｒ~（ｎ）をＬＰＣ合成フィルタ（２１２）で処理して復号時間領域信号Ｓ~（ｎ）を得る。【００１８】
ＣＥＬＰ符号化では、何らかの所定のコードブックを使用して残差励振信号を量子化する。そして、音質をさらに向上させるために、元の信号とＬＰＣ合成信号との差分信号を周波数領域に変換し、さらに符号化するのが一般的である。広く使用されるＣＥＬＰコーデックには、ＩＴＵ−Ｔ Ｇ．７２９．１（非特許文献３参照）、ＩＴＵ−Ｔ Ｇ．７１８（非特許文献４参照）がある。ＣＥＬＰ符号化および変換符号化の階層符号化（層化符号化、埋め込み符号化）の単純な構成を図３に示す。【００１９】
図３に示すエンコーダでは、入力信号にＣＥＬＰ符号化を行って、時間領域における信号の予測可能性を利用する（３０１）。ＣＥＬＰパラメータを用いて、ＣＥＬＰローカルデコーダ（３０２）で合成信号を復元する。入力信号から合成信号を減算することにより予測誤差信号Ｓｅ（ｎ）（入力信号と合成信号との差分信号）を得る。【００２０】
離散フーリエ変換（ＤＦＴ）または修正離散コサイン変換（ＭＤＣＴ）などの時間から周波数領域への変換方法を使用して、予測誤差信号Ｓｅ（ｎ）を周波数領域信号Ｓｅ（ｆ）に変換する（３０３）。【００２１】
Ｓｅ（ｆ）を量子化し（３０４）、量子化パラメータを多重化して（３０５）、デコーダ側に送信する。【００２２】
図３に示すデコーダでは、はじめにすべてのビットストリーム情報を逆多重化する（３０６）。【００２３】
量子化パラメータを逆量子化して、復号周波数領域残差信号Ｓｅ~（ｆ）を復元する（３０８）。【００２４】
逆離散フーリエ変換（ＩＤＦＴ）または逆修正離散コサイン変換（ＩＭＤＣＴ）などの周波数から時間領域への変換方法を使用して、復号された周波数領域残差信号Ｓｅ~（ｆ）を変換して時間領域に戻すことにより、復号時間領域残差信号Ｓｅ~（ｎ）を復元する（３０９）。【００２５】
ＣＥＬＰパラメータを使用して、ＣＥＬＰデコーダ（３０７）で合成信号Ｓｓｙｎ（ｎ）を復元し、ＣＥＬＰ合成信号Ｓｓｙｎ（ｎ）と復号予測誤差信号Ｓｅ~（ｎ）とを加算することにより、復号時間領域信号Ｓ~（ｎ）を復元する。【００２６】
変換符号化および線形予測符号化の変換符号化部分は、通常、何らかの量子化方法を利用して行われる。【００２７】
ベクトル量子化方法の１つは、分割マルチレート格子ＶＱまたは代数ＶＱ（ＡＶＱ）（非特許文献５参照）と呼ばれるものである。ＡＭＲ−ＷＢ＋（非特許文献６参照）では、分割マルチレート格子ＶＱを使用してＴＣＸ領域でＬＰＣ残差を量子化する（図４に示す）。新たに標準化された音声コーデックＩＴＵ−Ｔ Ｇ．７１８でも、分割マルチレート格子ＶＱを使用して、ＭＤＣＴ領域で残差符号化レイヤ３としてＬＰＣ残差を量子化する。【００２８】
分割マルチレート格子ＶＱは、格子量子化器に基づくベクトル量子化方法である。具体的には、ＡＭＲ−ＷＢ＋（非特許文献６参照）で使用される分割マルチレート格子ＶＱの場合は、ＲＥ８格子と呼ばれるＧｏｓｓｅｔ格子のサブセットからなるベクトルコードブックを使用して、８個のスペクトル係数からなるブロックにスペクトルを量子化する（非特許文献５参照）。【００２９】
所与の格子のすべての点は、格子のいわゆる二乗生成行列Ｇからｃ＝ｓ・Ｇとして生成することができる。ここで、ｓは整数値の行ベクトルであり、ｃは生成される格子点である。【００３０】
所与のレートでベクトルコードブックを形成するために、所与の半径の球（８次元）の内側にある格子点だけを取り出す。従って、半径が異なる球の内側にある格子点のサブセットを取得することによって、マルチレートのコードブックを形成することができる。【００３１】
ＴＣＸコーデックで分割マルチレートベクトル量子化を利用する単純な構成を図４に示す。【００３２】
図４に示すエンコーダでは、入力信号にＬＰＣ解析を行って時間領域における信号の予測可能性を利用する（４０１）。ＬＰＣ解析で得られるＬＰＣパラメータを量子化し（４０２）、量子化インデックスを多重化して（４０７）、デコーダ側に送信する。逆量子化部（４０３）によって逆量子化されたＬＰＣパラメータを使用して、入力信号Ｓ（ｎ）にＬＰＣ逆フィルタリングを適用することにより残差（励振）信号Ｓｒ（ｎ）を得る（４０４）。【００３３】
離散フーリエ変換（ＤＦＴ）または修正離散コサイン変換（ＭＤＣＴ）などの時間から周波数領域への変換方法を使用して、残差信号Ｓｒ（ｎ）を周波数領域信号Ｓｒ（ｆ）に変換する（４０５）。【００３４】
Ｓｒ（ｆ）に分割マルチレート格子ベクトル量子化方法を適用し（４０６）、量子化パラメータを多重化して（４０７）、デコーダ側に送信する。【００３５】
図４に示すデコーダでは、はじめにすべてのビットストリーム情報が逆多重化される（４０８）。【００３６】
分割マルチレート格子ベクトル逆量子化方法で量子化パラメータを逆量子化して、復号された周波数領域残差信号Ｓｒ~（ｆ）を得る（４１０）。【００３７】
逆離散フーリエ変換（ＩＤＦＴ）または逆修正離散コサイン変換（ＩＭＤＣＴ）などの周波数から時間領域への変換方法を使用して、復号周波数領域残差信号Ｓｒ~（ｆ）を変換して時間領域に戻すことにより、復号時間領域残差信号Ｓｒ~（ｎ）を復元する（４１１）。【００３８】
逆量子化部（４０９）によって逆量子化されたＬＰＣパラメータを使用して、復号時間領域残差信号Ｓｒ~（ｎ）をＬＰＣ合成フィルタ（４１２）で処理して、復号時間領域信号Ｓ~（ｎ）を得る。【００３９】
図５に、分割マルチレート格子ＶＱの工程を示す。この工程では、入力スペクトルＳ（ｆ）をいくつかの８次元ブロック（またはベクトル）に分割し（５０１）、各ブロック（またはベクトル）をマルチレート格子ベクトル量子化方法で量子化する（５０２）。量子化ステップでは、利用可能なビット数と全スペクトルのエネルギーレベルに従って総ゲインを計算する。次いで、ブロック（ベクトル）ごとに、元のスペクトルと総ゲインとの比をいくつかの異なるコードブックで量子化する。分割マルチレート格子ＶＱの量子化パラメータは、総ゲインの量子化インデックス、各ブロック（またはベクトル）のコードブック指示、および各ブロック（またはベクトル）のコードベクトルインデックスである。【００４０】
図６は、ＡＭＲ−ＷＢ＋（非特許文献６参照）で採用される分割マルチレート格子ＶＱのコードブックのリストをまとめたものである。表中、コードブックＱ０、Ｑ２、Ｑ３、およびＱ４がベースコードブックである。所与の格子点がそれらのベースコードブックに含まれていない場合は、ベースコードブックのＱ３またはＱ４部分のみを使用してボロノイ拡張（非特許文献７参照）を適用する。例として、表では、Ｑ５がＱ３のボロノイ拡張であり、Ｑ６がＱ４のボロノイ拡張である。【００４１】
各コードブックは、いくつかのコードベクトルで構成される。コードブックのコードベクトルインデックスはいくつかのビットで表される。ビット数は下記の式（１）によって導出される。
【数１】
2013118476.tif 000003
【００４２】
ここで、Ｎｂｉｔｓはコードベクトルインデックスで消費されるビット数であり、Ｎｃｖはコードブック中のコードベクトルの数である。【００４３】
コードブックＱ０には１つのみのベクトルである零ベクトルがあり、これはベクトルの量子化値が０であることを意味する。したがって、このコードベクトルインデックスにはビットが必要とされない。【００４４】
分割マルチレート格子ＶＱの場合は、総ゲインのインデックス、コードブック指示、およびコードベクトルインデックスの３つの量子化パラメータのセットがある。ビットストリームは通常２つの方式で形成される。第１の方法を図７に示し、第２の方法を図８に示す。【００４５】
図７では、はじめに入力信号Ｓ（ｆ）がいくつかのベクトルに分割される。次いで、利用可能なビット数とスペクトルのエネルギーレベルに従って、総ゲインを導出する。総ゲインをスカラー量子化器で量子化し、Ｓ（ｆ）／Ｇをマルチレート格子ベクトル量子化器で量子化する。ビットストリームが形成される際には、総ゲインのインデックスが第１の部分を形成し、すべてのコードブック指示が共にまとめられて第２の部分を形成し、コードベクトルのすべてのインデックスが共にまとめられて最後の部分を形成する。【００４６】
図８では、はじめに入力信号Ｓ（ｆ）がいくつかのベクトルに分割される。次いで、利用可能なビット数とスペクトルのエネルギーレベルに従って、総ゲインを導出する。総ゲインをスカラー量子化器で量子化し、Ｓ（ｆ）／Ｇをマルチレート格子ベクトル量子化器で量子化する。ビットストリームが形成される際には、総ゲインのインデックスが第１の部分を形成し、コードブック指示とその後に続く各ベクトルのコードベクトルインデックスが第２の部分を形成することになる。
【先行技術文献】
【非特許文献】
【００４７】
【非特許文献１】Karl Heinz Brandenburg, "MP3 and AAC Explained", AES 17th International Conference, Florence, Italy, September 1999.
【非特許文献２】Lefebvre, et al., "High quality coding of wideband audio signals using transform coded excitation (TCX)", IEEE International Conference on Acoustics, Speech, and Signal Processing, vol. 1, pp. I/193-I/196, Apr. 1994
【非特許文献３】ITU-T Recommendation G.729.1 (2007) "G.729-based embedded variable bit-rate coder: An 8-32kbit/s scalable wideband coder bitstream interoperable with G.729"
【非特許文献４】T. Vaillancourt et al, "ITU-T EV-VBR: A Robust 8-32 kbit/s Scalable Coder for Error Prone Telecommunication Channels", in Proc. Eusipco, Lausanne, Switzerland, August 2008
【非特許文献５】M. Xie and J.-P. Adoul, "Embedded algebraic vector quantization (EAVQ) with application to wideband audio coding" IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), Atlanta, GA, U.S.A, 1996, vol. 1, pp. 240-243
【非特許文献６】3GPP TS 26.290 "Extended AMR Wideband Speech Codec (AMR-WB+)"
【非特許文献７】S. Ragot, B. Bessette and R. Lefebvre, "Low-complexity Multi-Rate Lattice Vector Quantization with Application to Wideband TCX Speech Coding at 32kbit/s," Proc. IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), Montreal, QC, Canada,May,2004, vol. 1, pp. 501-504
【発明の概要】
【発明が解決しようとする課題】
【００４８】
入力スペクトルは、通常はすべてのサブベクトルが同じエネルギーを有するのではなく、サブベクトルの一部にエネルギーが集中している。一例として、図９に示すスペクトルの場合は、８個のサブベクトルのうちサブベクトルｖ３のエネルギーが最も大きく、分割マルチレート格子ベクトル量子化の処理に従うと、ｖ３のコードブックは、サブベクトルの中で最も大きいコードブック番号を持つ（ここでは、Ｑｎの整数ｎをコードブック番号と呼ぶ）。【００４９】
図６のコードブック指示表に示すように、コードブック番号が大きいほどコードブック指示が消費するビット数が多くなる。よって、この例では、サブベクトルｖ３がコードブック指示に最も多くのビットを消費する。コードブック番号が大きいコードブックは過度に多くのビットを消費する場合があるため（例えば、コードブック番号が小さいコードブックのコードブック指示の数倍）、コードブック番号が大きいコードブックのコードブック指示の消費ビット数を減らすことが望ましい。【００５０】
非特許文献７では、ＴＣＸ音声コーデックに分割マルチレート格子ＶＱを使用し、サブベクトルの数Ｎｓｖ＝８と、利用可能なビット数Ｂｉｔｓａｖａｉｌａｂｌｅ＝１３２ビットがパラメータとなる。そして、実際には、最高で「１１」のコードブック番号が計測されたことが述べられている。【００５１】
図９のスペクトルの場合に、ｖ３がＱ１１のコードブックを利用し、ｖ４がＱ３のコードブックを利用し、それ以外のすべてのサブベクトルのコードブックがＱ２であると仮定する。このビット消費情報をまとめると図１０のようになる。【００５２】
図１０に示すように、ｖ３のコードブック指示は１１ビットを消費し、ｖ４のコードブック指示は３ビットを消費し、その他のベクトルのコードブック指示は２ビットを消費する。ｖ３のコードブック指示は、ｖ１（ｖ２、ｖ５、ｖ６、ｖ７、またはｖ８）のコードブック指示の５倍以上のビットを消費する。【００５３】
従来技術では、コードブック指示およびコードベクトルインデックスを直接２進数に変換してビットストリームを形成する。そのため、全ベクトルの総消費ビット数は以下のように計算することができる。
【数２】
2013118476.tif 000004
【００５４】
ここで、Ｂｉｔｓｔｏｔａｌは、総消費ビット数であり、Ｂｉｔｓｇａｉｎ＿ｑは、総ゲインを量子化するための消費ビット数であり、Ｂｉｔｓｃｂ＿ｉｎｄｉｃａｔｉｏｎは、各ベクトルのコードブック指示に消費されるビット数であり、Ｂｉｔｓｃｖ＿ｉｎｄｅｘは、各ベクトルのコードベクトルインデックスに消費されるビット数であり、Ｎは、スペクトル全体の合計ベクトル数である。【００５５】
ビットを多く消費し過ぎるため、コードブック番号が大きいコードブックのコードブック指示によるビット消費を減らすことが望ましい。
【課題を解決するための手段】
【００５６】
本発明では、分割マルチレート格子ベクトル量子化の量子化パラメータを効率的に符号化するための発想を導入する。まず、コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、利用可能な総ビット数および他のサブベクトルのビット使用状況についての情報に基づいて、そのコードブックの値を推定する。実際の値と推定値との差分値を計算する。そして、最も多くのビットを消費するコードブック指示を送信する代わりに、そのコードブックを使用するサブベクトルの位置、および実際の値と推定値との差分値を送信する。本発明の方法を適用することにより、コードブック指示のビットを節減することができる。【００５７】
エンコーダにおける詳細な工程は以下の通りである。
１）すべてのサブベクトルのコードブック指示を算出する。
２）コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、その位置を符号化する。そして、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を符号化する。【００５８】
デコーダにおける詳細な工程は以下の通りである。
１）コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。
２）それ以外のすべてのサブベクトルのコードブック指示を復号する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を復号する。
５）推定値と差分を加算することにより、復号された値を算出する。【００５９】
図９のスペクトルを詳細な説明のための例として使用する。
１）図６のコードブック指示表を参照して、すべてのサブベクトルのコードブック指示を算出する。この詳細な結果を図１１に示す。
２）コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、その位置を符号化する。そして、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。図１１に示すように、サブベクトルｖ３のコードブック指示が最も多くのビットを消費する。一例として、図１２に示すコードブックを使用して位置を符号化する。図１２を参照すると、ｖ３の位置は「０１０」に符号化される。
３）以下の式に従って、指示が最も多くのビットを消費するコードブックを推定する。
【数３】
2013118476.tif 000005
【００６０】
ここで、ｃｂ’ｍａｘは、最も多くのビットを消費するコードブックの推定値であり、Ｂｉｔｓａｖａｉｌａｂｌｅは利用可能な総ビット数であり、Ｂｉｔｓｃｂｖｉは、コードブック指示ｖｉのビット消費である。
４）実際の値と推定値との差分を符号化する。差分値は下記の式（４）に従って計算し、図１３の表を参照して符号化する。図１３に示すように、差分が取り得る値は負になる。その理由は、推定値は、すべての利用可能なビット数が量子化で使用されることを想定して計算されるためである。利用可能なビット数を超えるビットが量子化で消費されることは起こりえない。推定値は最大の可能な値である。したがって、実際の値が推定値より大きくなることは決してない。
【数４】
2013118476.tif 000006
【００６１】
ここで、ｃｂ’ｍａｘは、最も多くのビットを消費するコードブックの推定値であり、ｃｂｍａｘは、最も多くのビットを消費するコードブックの実際の値であり、ｃｂｄｉｆｆは、実際の値と推定値との差分値である。【００６２】
デコーダにおける詳細な工程は以下の通りである。
１）コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。図１２の表を参照すると、「０１０」がｖ３に対応する。
２）ｖ３以外のすべてのサブベクトルのコードブック指示を復号する。
３）指示が最も多くのビットを消費するコードブックを推定する。これは式（３）により行う。
４）実際の値と推定値との差分を復号する。差分値は図１３の表を参照して復号し、差分のコード０は差分０に対応する。
５）推定値と差分を加算することにより、復号された値を算出する。詳細な計算は次の式（５）で得られる。
【数５】
2013118476.tif 000007
【００６３】
ここで、ｃｂ’ｍａｘは、最も多くのビットを消費するコードブックの推定値であり、ｃｂｍａｘは、最も多くのビットを消費するコードブックの実際の値であり、ｃｂｄｉｆｆは、実際の値と推定値との差分値である。
【発明の効果】
【００６４】
本発明の方法を適用することにより、消費するビットを節減することができる。【００６５】
本発明で提案される方法による節減ビット数は以下の式（６）のように計算される。
【数６】
2013118476.tif 000008
【００６６】
ここで、Ｂｉｔｓｓａｖｅは、本発明で提案される方法による節減ビット数であり、Ｂｉｔｓｃｂｍａｘは最も多くのビットを消費するコードブックのビット消費であり、Ｂｉｔｓｐｏｓｉｔｉｏｎ＿ｃｂｍａｘは、最も多くのビットを消費するコードブックの位置に消費されるビット数であり、Ｂｉｔｓｃｂｄｉｆｆは差分値を符号化するために消費されるビット数である。【００６７】
上記の式（６）で、最も多くのビットを消費するコードブックのビット消費は、そのコードブック番号に比例する。通常は、スペクトルに利用可能なビットが多い場合、最大のコードブック番号は大きい値になる。上記の例に示すように、最大のコードブック番号は１１であり、そのコードブック指示に消費されるビット数は１１ビットである。【００６８】
最も多くのビットを消費するコードブックの位置のビット消費は、固定されたビット数（Ｂｉｔｓｐｏｓｉｔｉｏｎ＿ｃｂｍａｘ＝ｌｏｇ２（Ｎｓｖ））を消費する。上記例に示すように、サブベクトルの数は８個である。最大のコードブックの位置を知らせるためのビット消費は３ビットとなる。【００６９】
差分値の消費ビット数は、最も多くのビットを消費するコードブックの消費ビット数より少ない。これは、差分値はコードブック指示より小さいためである。上記の例に示すように、差分値を符号化するための消費ビット数は１ビットである。【００７０】
この例における節減ビット数は、以下の式（７）のように計算される。
【数７】
2013118476.tif 000009
【図面の簡単な説明】
【００７１】
【図１】変換コーデックの単純な構成を示す図
【図２】ＴＣＸコーデックの単純な構成を示す図
【図３】階層コーデック（ＣＥＬＰ符号化と変換符号化の組み合わせ）の単純な構成を示す図
【図４】分割マルチレート格子ベクトル量子化を利用するＴＣＸコーデックの構成の図
【図５】分割マルチレート格子ベクトル量子化の工程を説明する図
【図６】分割マルチレート格子ＶＱのコードブックの表を示す図
【図７】ビットストリーム形成の１方式を説明する図
【図８】ビットストリーム形成の別の方式を説明する図
【図９】入力スペクトルの例を示す図
【図１０】図９のスペクトルのコードブック情報を示す図
【図１１】すべてのサブベクトルについてのコードブック指示を示す図
【図１２】コードブック指示が最も多くのビットを消費するサブベクトルの位置についてのコード表を示す図
【図１３】差分値のコード表を示す図
【図１４】本発明の実施の形態１に係るコーデックの構成を説明する図
【図１５】本発明の実施の形態２に係るコーデックの構成を説明する図
【図１６】本発明の実施の形態３に係るコーデックの構成を説明する図
【図１７】スペクトルの一部のみを符号化する一例を示す図
【図１８】図１７の例の場合のｖ２以外の符号化パラメータを示す図
【図１９】実施の形態７で提案される符号化工程のフローチャート
【図２０】実施の形態７で提案される復号工程のフローチャート
【図２１】従来の分割マルチレート格子ＶＱのフローチャート
【図２２】実施の形態８で提案される分割マルチレートＶＱのフローチャート
【発明を実施するための形態】
【００７２】
この項では、本発明の基本となる原理を図１４〜図１６を参照して説明する。当業者は、本発明の主旨から逸脱しない範囲で、本発明を改変および適合することができる。説明の助けとして図示を提供する。
【００７３】
（実施の形態１）
図１４に本発明のコーデックを示す。このコーデックは、分割マルチレート格子ベクトル量子化を適用するエンコーダおよびデコーダを備える。
【００７４】
図１４に示すエンコーダでは、離散フーリエ変換（ＤＦＴ）または修正離散コサイン変換（ＭＤＣＴ）などの時間から周波数領域への変換方法を使用して、時間領域信号Ｓ（ｎ）を周波数領域信号Ｓ（ｆ）に変換する（１４０１）。
【００７５】
周波数領域信号Ｓ（ｆ）に音響心理学モデル解析を行ってマスキング曲線を得る（１４０２）。音響心理学モデル解析で導出されたマスキング曲線に従って、周波数領域信号Ｓ（ｆ）に分割マルチレート格子ベクトル量子化を適用して、量子化ノイズが不可聴になるようにする（１４０３）。
【００７６】
分割マルチレート格子ベクトル量子化では、総ゲインの量子化インデックス、コードブック指示、およびコードベクトルインデックスの３つの量子化パラメータセットが生成される。
【００７７】
コードブック指示は、以下の要領で変換される（１４０４）。
１）すべてのサブベクトルのコードブック指示を計算する。
２）コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、その位置を符号化する。そして、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を符号化する。
【００７８】
総ゲインインデックス、コードベクトルインデックス、最大のコードブックの位置、実際の値と推定値との差分値、および他のサブベクトルのコードブック指示を多重化し（１４０５）、デコーダ側に送信する。
【００７９】
図１４に示すデコーダでは、はじめにすべてのビットストリーム情報を逆多重化部（１４０６）で逆多重化する。
【００８０】
最大のコードブックの位置および実際の値と推定値との差分値を、コードブック指示変換部（１４０７）で最大のコードブック指示に変換する。
【００８１】
コードブック指示変換部（１４０７）における詳細な工程は以下の通りである。
１）コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。
２）それ以外のすべてのサブベクトルのコードブック指示を復号する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を復号する。
５）推定値と差分を加算することにより、復号された値を計算する。
【００８２】
総ゲインインデックス、コードベクトルインデックス、および元のコードブック指示を分割マルチレート格子ベクトル逆量子化方法で逆量子化して、復号周波数領域信号Ｓ~（ｆ）を復元する（１４０８）。
【００８３】
逆離散フーリエ変換（ＩＤＦＴ）または逆修正離散コサイン変換（ＩＭＤＣＴ）などの周波数から時間領域への変換方法を使用して、復号周波数領域信号Ｓ~（ｆ）を変換して時間領域に戻すことにより、復号時間領域信号Ｓ~（ｎ）を復元する（１４０９）。
【００８４】
この実施の形態では、スペクトルに関して最大のコードブックの値を推定し、最大のコードブック指示を、最大のコードブックの位置、および、実際の値と推定値との差分値に変換することにより、消費ビット数を減らすことができる。
【００８５】
（実施の形態２）
この実施の形態の特徴は、本発明の方法をＴＣＸコーデックで適用する点である。
【００８６】
図１５に示すエンコーダでは、入力信号にＬＰＣ解析を行って、時間領域における信号の予測可能性を利用する（１５０１）。ＬＰＣ解析で得られたＬＰＣパラメータを量子化し（１５０２）、量子化インデックスを多重化して（１５０８）、デコーダ側に送信する。逆量子化部（１５０３）によって量子化されたＬＰＣパラメータを使用して、入力信号Ｓ（ｎ）にＬＰＣ逆フィルタリングを適用することにより、残差（励振）信号Ｓｒ（ｎ）を得る（１５０４）。
【００８７】
離散フーリエ変換（ＤＦＴ）または修正離散コサイン変換（ＭＤＣＴ）などの時間から周波数領域への変換方法を使用して、残差信号Ｓｒ（ｎ）を周波数領域信号Ｓｒ（ｆ）に変換する（１５０５）。
【００８８】
周波数領域信号Ｓｒ（ｆ）に分割マルチレート格子ベクトル量子化を適用する（１５０６）。
【００８９】
分割マルチレート格子ベクトル量子化では、総ゲインの量子化インデックス、コードブック指示、およびコードベクトルインデックス、の３つの量子化パラメータのセットが生成される。
【００９０】
コードブック指示は、以下の要領で変換される（１５０７）。
１）すべてのサブベクトルのコードブック指示を算出する。
２）コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、その位置を符号化する。そして、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を符号化する。
【００９１】
総ゲインインデックス、コードベクトルインデックス、最大のコードブックの位置、実際の値と推定値との差分値、およびその他のサブベクトルのコードブック指示を多重化し（１５０８）、デコーダ側に送信する。
【００９２】
図１５に示すデコーダでは、はじめにすべてのビットストリーム情報を逆多重化部（１５０９）で逆多重化する。
【００９３】
最大のコードブックの位置および実際の値と推定値との差分値を、コードブック指示変換部（１５１０）で最大のコードブック指示に変換する。
【００９４】
コードブック指示変換部（１５１０）における詳細な工程は以下の通りである。
１）コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。
２）それ以外のすべてのサブベクトルのコードブック指示を復号する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を復号する。
５）推定値と差分を加算することにより、復号された値を計算する。
【００９５】
総ゲインインデックス、コードベクトルインデックス、および元のコードブック指示を分割マルチレート格子ベクトル逆量子化方法で逆量子化して、復号周波数領域信号Ｓｒ~（ｆ）を復元する（１５１１）。
【００９６】
逆離散フーリエ変換（ＩＤＦＴ）または逆修正離散コサイン変換（ＩＭＤＣＴ）などの周波数領域から時間領域への変換方法を使用して、復号周波数領域残差信号Ｓｒ~（ｆ）を変換して時間領域に戻すことにより、復号時間領域残差信号Ｓｒ~（ｎ）を復元する（１５１２）。
【００９７】
逆量子化部（１５１３）によって逆量子化されたＬＰＣパラメータを使用して、復号時間領域残差信号Ｓｒ~（ｎ）をＬＰＣ合成フィルタ（１５１４）で処理して復号時間領域信号Ｓ~（ｎ）を得る。
【００９８】
（実施の形態３）
この実施の形態の特徴は、ＣＥＬＰ符号化および変換符号化の階層符号化（層化符号化、埋め込み符号化）においてスペクトルクラスタ解析法を適用する点である。
【００９９】
図１６に示すエンコーダでは、入力信号にＣＥＬＰ符号化を行って、時間領域における信号の予測可能性を利用する（１６０１）。ＣＥＬＰパラメータを用いて、ＣＥＬＰデコーダ（１６０２）で合成信号を復元し、ＣＥＬＰパラメータを多重化し（１６０６）、デコーダ側に送信する。入力信号から合成信号を減算することにより、予測誤差信号Ｓｅ（ｎ）（入力信号と合成信号との差分信号）を得る。
【０１００】
離散フーリエ変換（ＤＦＴ）または修正離散コサイン変換（ＭＤＣＴ）などの時間から周波数領域への変換方法を使用して、予測誤差信号Ｓｅ（ｎ）を周波数領域信号Ｓｅ（ｆ）に変換する（１６０３）。
【０１０１】
周波数領域信号Ｓｅ（ｆ）に分割マルチレート格子ベクトル量子化を適用する（１６０４）。
【０１０２】
分割マルチレート格子ベクトル量子化では、総ゲインの量子化インデックス、コードブック指示、およびコードベクトルインデックスの３つの量子化パラメータセットが生成される。
【０１０３】
コードブック指示は、以下の要領で変換される（１６０５）。
１）すべてのサブベクトルのコードブック指示を算出する。
２）コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、その位置を符号化する。そして、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を符号化する。
【０１０４】
総ゲインインデックス、コードベクトルインデックス、最大のコードブックの位置、実際の値と指定値との差分値、および他のサブベクトルのコードブック指示を多重化し（１６０６）、デコーダ側に送信する。
【０１０５】
図１６に示すデコーダでは、はじめにすべてのビットストリーム情報を逆多重化部（１６０７）で逆多重化する。
【０１０６】
最大のコードブックの位置および実際の値と推定値との差分値を、コードブック指示変換部（１６０８）で最大のコードブック指示に変換する。
【０１０７】
コードブック指示変換部（１６０８）における詳細な工程は以下の通りである。
１）コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。
２）それ以外のすべてのサブベクトルのコードブック指示を復号する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を復号する。
５）推定値と差分を加算することにより、復号された値を計算する。
【０１０８】
総ゲインインデックス、コードベクトルインデックス、および元のコードブック指示を分割マルチレート格子ベクトル逆量子化方法で逆量子化して、復号周波数領域信号Ｓｅ~（ｆ）を復元する（１６０９）。
【０１０９】
逆離散フーリエ変換（ＩＤＦＴ）または逆修正離散コサイン変換（ＩＭＤＣＴ）などの周波数から時間領域への変換方法を使用して、復号周波数領域信号Ｓｅ~（ｆ）を変換して時間領域に戻すことにより、復号時間領域信号Ｓｅ~（ｎ）を復元する（１６１０）。
【０１１０】
ＣＥＬＰパラメータを使用して、ＣＥＬＰデコーダで合成信号Ｓｓｙｎ（ｎ）を復元し（１６１１）、ＣＥＬＰ合成信号Ｓｓｙｎ（ｎ）と復号予測誤差信号Ｓｅ~（ｎ）とを加算することにより、復号時間領域信号Ｓ~（ｎ）を復元する。
【０１１１】
（実施の形態４）
この実施の形態では、本発明の新規の方法が、元となった分割マルチレート格子ＶＱ法よりも多くのビットを消費する可能性を防ぐための発想を説明する。
【０１１２】
実施の形態１、実施の形態２および実施の形態３で提案した構成では、最大のコードブックがそれほど多くのビットを消費しない場合には、本発明の新規の方法のビット消費が従来の方法よりも多くなる可能性がある。式（６）に示すように、Ｂｉｔｓｃｂｍａｘ＜Ｂｉｔｓｐｏｓｉｔｉｏｎ＿ｃｂｍａｘ＋Ｂｉｔｓｃｂｄｉｆｆの場合は、本発明の新規の方法のビット消費が従来の方法より多くなる。この問題を防ぐために、この実施の形態では１つの発想を提案する。
【０１１３】
この発想は、最も多くのビットを消費するコードブックの位置を示すための消費ビット数を減らすというものである。エンコーダ側で、固定されたサブベクトルのコードブック、例えば、最後のサブベクトルのコードブックを、利用可能な総ビット数およびすべての他のサブベクトルのビット使用状況に基づいて推定する。実際のコードブックの代わりに、実際のコードブック指示と推定値との差分値を符号化し、デコーダ側に送信する。分割マルチレートＶＱでは、総ゲインの計算により、割り振られたビットの大半がサブベクトルの符号化で利用され、すべてのビットが利用されるという想定で計算される推定コードブック指示が実際の値に非常に近くなり、差分の絶対値が実際のコードブック指示より小さくなり、差分値を符号化するための消費ビット数が実際の値より小さくなることが保証される。
【０１１４】
詳細な符号化工程は以下の通りである。
１）すべてのサブベクトルのコードブック指示を算出する。
２）コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定する。
３）コードブック指示を所定の閾値と比較する（閾値は、本発明の方法のビット消費が従来の方法よりも確実に少なくなるように、大きなデータベースに基づいて計算された所定の値である）。
【０１１５】
Ａ．コードブック指示が閾値より大きい場合は、以下を行う。
ａ）指示が最も多くのビットを消費するコードブック指示のコードブックインデックスを推定する。
ｂ）実際の値と推定値との差分を符号化する。
ｃ）コードブック指示が最も多くのビットを消費するサブベクトルの位置を符号化し、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
【０１１６】
Ｂ．コードブック指示が閾値以下の場合は、以下を行う。
ａ）最後のサブベクトルのコードブック指示を推定する。
ｂ）実際の値と推定値の差分を符号化し、最後のサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
【０１１７】
詳細な符号化工程は以下の通りである。
１）すべての他のサブベクトルのコードブック指示を復号する。
２）コードブック指示が変換されたサブベクトルのコードブック指示を推定する。
３）実際の値と推定値との差分を復号する。
４）推定値と差分を加算することにより、復号された値を計算する。
５）復号された値を所定の閾値と比較する。
【０１１８】
Ａ．復号された値が閾値より大きい場合は、以下を行う。
ａ）コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。
【０１１９】
Ｂ．復号された値が閾値以下の場合は、ｃｂｌａｓｔ＝ｃｂｍａｘを行う。
【０１２０】
この実施の形態では、最大のビット数を消費するコードブック指示を何らかの所定の閾値と比較することにより、本発明の方法によって実現される消費ビット数が、元となった分割マルチレートＶＱより多くなる状況を回避する。これにより、ビット節減が常に実現されることが保証される。
【０１２１】
なお、固定サブベクトルは、最後のサブベクトルに限定されず、入力スペクトルの特性に応じて決定してよい。例として、最初のサブベクトルのコードブックが統計的に他のサブベクトルより大きい場合は、最初のサブベクトルを選択することができる。
【０１２２】
この実施の形態では、最大のコードブックの消費ビット数がそれほど多くない状況では、最後のコードベクトルが最大のコードブックとして符号化され、その位置が固定されるため、最大のコードブックの位置を知らせるためのビット消費が回避される。そして、本発明の方法による節減ビット数が正の値になることを保証することができる。
【０１２３】
（実施の形態５）
従来技術では、コードブック指示はコードブック使用の確率に応じて設計されるのではなく、単に、図６に示すようなコードブック指示表が広く使用される。
【０１２４】
ビットレートまたはサブベクトル数が異なるなど、状況が異なると、コードブックの使用についての統計は変化する。
【０１２５】
非特許文献７におけるＲＥ８コードブックの使用の統計を図１７にまとめている（コードブック番号についての統計（単位％））。
【０１２６】
この統計情報から、図６のコードブック指示表の設計は非特許文献７で適用するには効率的でないことが見て取れる。Ｑ０の指示は消費ビット数が最も少ない（１ビット）が、その確率は非常に低く、わずか３％である。Ｑ２の使用確率は最も高い（２９％）が、その消費ビット数は最小ではない。
【０１２７】
したがって、各コードブックの確率に従って、固定された条件（同じビットレート、同じ数の量子化サブベクトル）ごとに、ハフマン表設計方法を使用してコードブック指示を設計し、そのコードブック指示にビットを割り振ることが望ましく、確率が高いコードブックにより少ないビットを割り振り、確率が低いコードブックにより多くのビットを割り振ることが基本方針となる。
【０１２８】
そして、本発明の方法を、最大のコードブック番号を持つコードブック指示ではなく、最も多くのビットを消費するコードブック指示に適用する。
【０１２９】
エンコーダにおける詳細な工程は以下の通りである。
１）すべてのサブベクトルのコードブック指示を符号化する。
２）コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定し、符号化する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を符号化する。
【０１３０】
デコーダにおける詳細な工程は以下の通りである。
１）コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。
２）それ以外のすべてのサブベクトルのコードブック指示を復号する。
３）指示が最も多くのビットを消費するコードブックを推定する。
４）実際の値と推定値との差分を復号する。
５）推定値と差分を加算することにより、復号された値を算出する。
【０１３１】
（実施の形態６）
この実施の形態の特徴は、本発明のコードブック指示変換方法で節減されたビットを利用して、量子化されたベクトルのゲイン精度を向上させる点である。
【０１３２】
この実施の形態では、コードブック指示変換方法で節減されたビットを利用して、スペクトルを小さいバンドに分割し、各バンドに「ゲイン補正率」を割り当てることにより、総ゲインにより細かい分解能を与える。節減されたビットを利用してゲイン補正率を送信することにより、量子化の性能を向上させ、音質を向上させることができる。
【０１３３】
本発明のコードブック指示変換方法は、ステレオ信号または多チャネル信号の符号化に適用することができる。例えば、本発明の方法をサイド信号の符号化に適用し、節減されたビットを主信号の符号化に使用する。主信号は、サイド信号よりも知覚的に重要であるため、これにより主観的な音質の向上が得られる。
【０１３４】
さらに、本発明のコードブック指示変換方法は、複数のフレーム単位（または複数のサブフレーム単位）でスペクトル係数を符号化するコーデックに適用することができる。この応用例では、コードブック指示変換方法で節減されたビットを蓄積し、次の符号化段階でスペクトル係数または何らかの他のパラメータを符号化する際に利用することができる。
【０１３５】
さらに、コードブック指示変換方法で節減されたビットをＦＥＣ（フレーム消去隠蔽）で利用することにより、フレーム損失のある状況で音質を維持することができる。
【０１３６】
なお、上記の各実施の形態では、すべて分割マルチレート格子ベクトル量子化を使用して説明したが、本発明は、分割マルチレート格子ベクトル量子化の使用に限定されず、他のスペクトル係数符号化方法も適用することができる。当業者は、本発明の主旨から逸脱しない範囲で本発明を改変および適合することができる。
【０１３７】
（実施の形態７）
この実施の形態では、実際のコードブック指示ｃｂｍａｘと推定されるコードブック指示ｃｂ’ｍａｘとの差分ｃｂｄｉｆｆが正になる可能性を防ぐための発想である。
【０１３８】
実施の形態１、実施の形態２および実施の形態３で提案した構成では、すべてのサブベクトルをＡＶＱで量子化することを前提としている。すべてのサブベクトルがＡＶＱで量子化される場合、ｃｂｄｉｆｆのすべての取り得る値は負になる。その理由は、推定コードブック指示は、すべての利用可能なビット数が量子化で使用されることを想定して計算されるためである。利用可能なビット数を超えるビットが量子化で消費されることは起こりえない。推定コードブック指示は最大の可能な値である。従って、実際のコードブック指示が推定コードブック指示より大きくなることは決してない。
【０１３９】
ただし、サブベクトルのすべてがＡＶＱで量子化される訳ではない場合は、ｃｂｄｉｆｆが正になる可能性がある。特に、エネルギーがスペクトルの低周波数部分に集中している場合は、ビットはすべて低周波数のサブベクトルに分散され、高周波数のサブベクトルにはビットが割り振られない。例として、８個のサブベクトルスペクトルを量子化するために割り振られる合計ビット数は７２ビットであり、すべてのサブベクトルのコードブック指示を図１７に示す。最後の２つのサブベクトルでは、それらのコードブック指示を符号化するためのビットが残らないことが分かる。この場合は、本発明の方法を適用するために、最後の２つのサブベクトルのコードブック指示を送信する必要があり、２ビットがそれらの指示に利用される。
【０１４０】
コードブック指示が最も多くのビットを消費するサブベクトルであるｖ２以外のすべてのサブベクトルのビット消費を図１８に示す。ｖ２のコードブックを下記の式（８）で推定する。
【数８】
2013118476.tif 000010
【０１４１】
実際のコードブック指示と推定コードブック指示の差分は、以下の式（９）により計算する。
【数９】
2013118476.tif 000011
【０１４２】
この問題を解決するために、この実施の形態でいくつかの発想を提案する。
【０１４３】
単純な方法は、ｃｂｄｉｆｆについて正の値をコードブックに含めるものである。ただし、この方法ではｃｂｄｉｆｆを符号化するためのビット消費が増大する。
【０１４４】
別の発想は、サブベクトルのすべてがＡＶＱで量子化されるのではない場合に、本発明が提案する発想を無効にするものである。問題点は、提案される発想を有効にするか否かを示すためのフラグが必要となることである。フラグの送信を回避するために、入手可能な情報からこの情報を引き出すことができる発想を導入する。
【０１４５】
この発想は、従来行われるようにエンコーダ側でＡＶＱパラメータを符号化し、デコーダ側でビットの使用情報を使用して、本発明の提案する方法を有効にするか否かを判断するものである。
【０１４６】
詳細な符号化工程は以下の通りである（図１９のフローチャート参照）。ステップ（以下、「ＳＴ」と省略する）１７０１では、すべてのサブベクトルの合計消費ビット数Ｎ’ｂｉｔｓを計算する。
【０１４７】
ＳＴ１７０２では、利用可能なビット数Ｎｂｉｔｓが、すべてのサブベクトルのＡＶＱパラメータを符号化するのに十分であるかどうか（Ｎｂｉｔｓ≧Ｎ’ｂｉｔｓ）を調べる。利用可能なビット数がすべてのサブベクトルのＡＶＱパラメータを符号化するのに十分である場合は、ＳＴ１７０３に移行し、十分ではない場合は、ＳＴ１７１３に移行する。
【０１４８】
ＳＴ１７０３では、コードブック指示が最も多くのビットを消費するサブベクトルの位置を特定する。
【０１４９】
ＳＴ１７０４では、コードブック指示を所定の閾値と比較し、コードブック指示が閾値より大きい場合は、ＳＴ１７０５に移行し、コードブック指示が閾値以下の場合は、ＳＴ１７０９に移行する。
【０１５０】
ＳＴ１７０５では、最も多くのビットを消費するサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
【０１５１】
ＳＴ１７０６では、コードブック指示を最も多くのビットを消費するサブベクトルのコードブック指示と推定する。
【０１５２】
ＳＴ１７０７では、実際のコードブック指示（ｃｂｍａｘ）と推定コードブック指示（ｃｂ’ｍａｘ）との差分（ｃｂｄｉｆｆ）を計算する。
【０１５３】
ＳＴ１７０８では、コードブック指示が最も多くのビットを消費するサブベクトルの位置を符号化し、差分ｃｂｄｉｆｆを符号化する。
【０１５４】
ＳＴ１７０４において、コードブック指示が閾値以下の場合、ＳＴ１７０９において、所定のサブベクトル、例えば、最後のサブベクトル以外のすべてのサブベクトルのコードブック指示を符号化する。
【０１５５】
ＳＴ１７１０では、所定のサブベクトル、例えば、最後のサブベクトルのコードブック指示ｃｂｌａｓｔを推定する。
【０１５６】
ＳＴ１７１１では、実際のコードブック指示（ｃｂｌａｓｔ）と推定コードブック指示（ｃｂ’ｌａｓｔ）との差分（ｃｂｄｉｆｆ）を計算する。
【０１５７】
ＳＴ１７１２では、差分ｃｂｄｉｆｆを符号化する。
【０１５８】
ＳＴ１７０２において、利用可能なビット数がすべてのサブベクトルのＡＶＱパラメータを符号化するのに十分でない場合は、ＳＴ１７１３において、残りのビットがなくなるまで、サブベクトルのコードブック指示を符号化する。
【０１５９】
詳細な復号工程は以下の通りである（図２０のフローチャート参照）。ＳＴ１８０１では、ｉ＝０に初期化し、ＳＴ１８０２では、サブベクトルｓｖ（ｉ）のコードブック指示を復号し、ＳＴ１８０３では、残りのビット数を計算する。
【０１６０】
ＳＴ１８０４では、すべてのサブベクトルが復号される前に残りのビット数が０になる場合は、以降の処理を行わず、復号工程を終了する。一方、すべての他のサブベクトルが復号された後に残りのビット数が０より大きい場合は、ＳＴ１８０５に移行する。
【０１６１】
ＳＴ１８０５では、ｉがサブベクトル数Ｎｓｖから１減算した値より小さい（ｉ＜Ｎｓｖ−１）かどうかを調べ、小さい場合にはＳＴ１８０６においてｉをインクリメントしてＳＴ１８０２に戻り、ｉ≧Ｎｓｖ−１である場合にはＳＴ１８０７に移行する。
【０１６２】
ＳＴ１８０７では、コードブック指示が変換されたサブベクトルのコードブック指示を推定する。すなわち、推定コードブック指示ｃｂ’ｍａｘを計算する。
【０１６３】
ＳＴ１８０８では、実際のコードブック指示と推定コードブック指示との差分ｃｂｄｉｆｆを復号する。
【０１６４】
ＳＴ１８０９では、推定コードブック指示と差分を加算することにより、復号されたコードブック指示を計算する。
【０１６５】
ＳＴ１８１０では、復号されたコードブック指示を所定の閾値と比較し、復号されたコードブック指示が閾値より大きい場合は、ＳＴ１８１１に移行し、復号されたコードブック指示が閾値以下の場合は、ＳＴ１８１２に移行する。
【０１６６】
ＳＴ１８１１では、コードブック指示が最も多くのビットを消費するサブベクトルの位置を復号する。
【０１６７】
ＳＴ１８１０において、復号されたコードブック指示が閾値以下の場合は、ＳＴ１８１２において、ｃｂｍａｘを所定のサブベクトル、例えば、最後のサブベクトルに割り当てる（ｃｂｌａｓｔ＝ｃｂｍａｘ）。
【０１６８】
この実施の形態では、デコーダ側で各サブベクトルが復号された後に残るビット数の情報を利用することにより、フラグ情報を用いずに、ｃｂｄｉｆｆの値が正になる問題を解決する。
【０１６９】
（実施の形態８）
この実施の形態では、本発明の新規の方法が、元となった分割マルチレート格子ＶＱ法よりも多くのビットを消費する可能性を防ぐための発想を説明する。
【０１７０】
実施の形態１、実施の形態２および実施の形態３で提案した構成では、未使用ビット数がかなり多い場合には、本発明の新規の方法のビット消費が従来の方法よりも多くなる可能性がある。非特許文献５では、ビットの使用量が割り振られたビット数より少ない場合があることも述べられている。式（６）に示すように、Ｂｉｔｓｃｂｍａｘ＜Ｂｉｔｓｐｏｓｉｔｉｏｎ＿ｃｂｍａｘ＋Ｂｉｔｓｃｂｄｉｆｆfの場合は、本発明の新規の方法のビット消費が従来の方法より多くなり、多数の未使用ビットがあると、ｃｂｄｉｆｆの値が大きくなり、したがってその消費ビット数も多くなり、本発明の新規の方法のビット消費が従来の方法より多くなる可能性がある。この実施の形態ではこの問題を防止するための発想を提案する。
【０１７１】
この発想は、割り振られたビットをすべてベクトル量子化で利用するというものである。可能な方式の１つは、未使用ビットを利用して最大のエネルギーを有するサブベクトルのコードブック番号を増大させるものであり、別の可能な方式は、未使用ビットを利用して、零ベクトルとして符号化されるサブベクトルを符号化するものである。
【０１７２】
エンコーダ側において、推定総ゲインでビット消費を推定した後に未使用ビット数を計算し、最も大きなエネルギーを有するサブベクトル、または零ベクトルとして符号化されるサブベクトルに、未使用ビットを配分する。元となった分割マルチレート格子ＶＱのフローチャートを図２１に示し、本発明が提案する方法のフローチャートを図２２に示す。
【０１７３】
図２２において、ＳＴ１９０１では、スペクトルを８次元のサブベクトルに分割し、ＳＴ１９０２では、総ゲインｇを推定する。
【０１７４】
ＳＴ１９０３では、推定した総ゲインｇを使用してサブベクトルを正規化し、ＳＴ１９０４では、正規化したサブベクトルをＲＥ８格子に量子化する。
【０１７５】
ＳＴ１９０５では、コードブック指示およびコードベクトルインデックスを計算し、ＳＴ１９０６では、合計消費ビット数Ｎ’ｂｉｔｓを計算する。
【０１７６】
ＳＴ１９０７では、未使用ビット数を計算し、ＳＴ１９０８では、最大のエネルギーを有するサブベクトル（選択されたサブベクトル）に未使用ビットを配分し、この選択されたサブベクトルのコードブックおよびコードベクトルを更新する。
【０１７７】
この実施の形態では、未使用ビットを選択されたサブベクトルに配分することにより、２つの技術的利益が得られる。１つは、割り振られたビットの大半が現在のフレームのサブベクトルの符号化に利用されることである。２つ目は、差分値ｃｂｄｉｆｆが非常に小さくなり、そのため、差分値の符号化に使用されるビット数が減ることである。その結果、より多くのビットが節減される。
【０１７８】
２０１２年２月１０日出願の特願２０１２−０２７７０２の日本出願に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０１７９】
本発明にかかる音響／音声符号化装置、音響／音声復号装置、音響／音声符号化方法および音響／音声復号方法は、移動通信システムのワイヤレス通信端末装置、基地局装置、遠隔会議端末装置、テレビ会議端末装置、およびボイスオーバーインターネットプロトコル（ＶｏＩＰ）端末装置に適用することができる。
【符号の説明】
【０１８０】
１４０１、１５０５、１６０３  Ｔ／Ｆ変換部
１４０２  音響心理学的モデル解析部
１４０３、１５０６、１６０４  分割マルチレート格子ＶＱ部
１４０４、１４０７、１５０７、１５１０、１６０５、１６０８  コードブック指示変換部
１４０５、１５０８、１６０６  多重化部
１４０６、１５０９、１６０７  逆多重化部
１４０８、１５１１、１６０９  分割マルチレート格子ＶＱ−１部
１４０９、１５１２、１６１０  Ｆ／Ｔ変換部
１５０１  ＬＰＣ解析部
１５０２  量子化部
１５０３、１５１３  逆量子化部
１５０４  ＬＰＣ逆フィルタ
１５１４  ＬＰＣ合成フィルタ
１６０１  ＣＥＬＰエンコーダ
１６０２  ＣＥＬＰローカルデコーダ
１６１１  ＣＥＬＰデコーダ
【図１】
2013118476.tif 000012
【図２】
2013118476.tif 000013
【図３】
2013118476.tif 000014
【図４】
2013118476.tif 000015
【図５】
2013118476.tif 000016
【図６】
2013118476.tif 000017
【図７】
2013118476.tif 000018
【図８】
2013118476.tif 000019
【図９】
2013118476.tif 000020
【図１０】
2013118476.tif 000021
【図１１】
2013118476.tif 000022
【図１２】
2013118476.tif 000023
【図１３】
2013118476.tif 000024
【図１４】
2013118476.tif 000025
【図１５】
2013118476.tif 000026
【図１６】
2013118476.tif 000027
【図１７】
2013118476.tif 000028
【図１８】
2013118476.tif 000029
【図１９】
2013118476.tif 000030
【図２０】
2013118476.tif 000031
【図２１】
2013118476.tif 000032
【図２２】
2013118476.tif 000033
【国際調査報告】
2013118476.tif 000034
2013118476.tif 000035
2013118476.tif 000036
2013118476.tif 000037