(57)【要約】【課題】必要なビット数が足りず、復号後に信号の欠損が生じてしまう場合であっても、ミュージカルノイズを軽減する。【解決手段】本発明の符号化方法では、誤差計算ステップは、第１量子化信号の値が０の場合は、第１符号化対象信号の絶対値と量子化正規化値から誤差信号を求め、第１量子化信号の値が０以外の場合は、第１符号化対象信号の絶対値と第１量子化信号の絶対値から誤差信号を求める。本発明の復号方法では、誤差修正ステップは、第１復号量子化信号の値が０の場合は、復号量子化正規化値と第２復号量子化信号の加重加算を用いた計算結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号とする。第１復号量子化信号の値が０以外の場合は、第１復号量子化信号の絶対値と第２復号量子化信号の和を用いた計算結果を復号信号とする。【選択図】図８
2011009861.tif 000002
【特許請求の範囲】
【請求項１】
所定サンプル数ごとの符号化対象の信号サンプル（以下、「第１符号化対象信号」という）に対する正規化値を求める正規化値計算ステップと、
前記正規化値を量子化した量子化正規化値と該量子化正規化値に対応する正規化値量子化インデックスを求める正規化値量子化ステップと、
前記量子化正規化値を用いて前記第１符号化対象信号を正規化して正規化第１符号化対象信号を求め、前記正規化第１符号化対象信号を複数サンプル纏めてベクトル量子化した第１量子化信号の列と該第１量子化信号の列に対応する第１ベクトル量子化インデックスを求める第１ベクトル量子化ステップと、
前記第１量子化信号の値が０の場合は、前記第１符号化対象信号の絶対値と前記量子化正規化値との重み付き誤差信号を求め、第１量子化信号の値が０以外の場合は、前記第１符号化対象信号の絶対値と前記第１量子化信号の絶対値の誤差信号を求める誤差計算ステップと、
前記誤差信号または前記誤差信号に対応した信号を複数サンプル纏めてベクトル量子化して第２ベクトル量子化インデックスを求める第２ベクトル量子化ステップと、
を有する符号化方法。
【請求項２】
請求項１記載の符号化方法であって、
前記誤差計算ステップは、
値が０の前記第１量子化信号に対応する前記誤差信号だけを求める
ことを特徴とする符号化方法。
【請求項３】
請求項２記載の符号化方法であって、
前記量子化正規化値をＸ−、前記所定サンプル数をＬ、前記第１量子化信号のパワーの合計ｔｍｐ、値が０の前記第１量子化信号の数をＭ、再計算正規化値Ｅ−とするときに、
【数７】
2011009861.tif 000009
の関係となる再計算正規化値Ｅ−を求める正規化値再計算ステップ
も有し、
第２ベクトル量子化ステップは、前記再計算正規化値を用いて前記誤差信号を正規化して正規化誤差信号を求め、前記正規化誤差信号を複数サンプル纏めてベクトル量子化して前記第２ベクトル量子化インデックスを求める
ことを特徴とする符号化方法。
【請求項４】
請求項２記載の符号化方法であって、
前記量子化正規化値をＸ−、前記所定サンプル数をＬ、前記第１量子化信号のパワーの合計ｔｍｐ、値が０の前記第１量子化信号の数をＭ、第１再計算値をＥ−１、第２再計算値をＥ−２とするときに、
【数８】
2011009861.tif 000010
の関係となる第１再計算値をＥ−１と第２再計算値をＥ−２を求め、
前記第１再計算値と前記第２再計算値と前記正規化値のいずれかを再計算正規化値とする正規化値再計算ステップ
も有し、
前記第２ベクトル量子化ステップは、前記再計算正規化値を用いて前記誤差信号を正規化して正規化誤差信号を求め、前記正規化誤差信号を複数サンプル纏めてベクトル量子化して、前記第２ベクトル量子化インデックスを求める
ことを特徴とする符号化方法。
【請求項５】
第１ベクトル量子化インデックスと第２ベクトル量子化インデックスと正規化値量子化インデックスを含む符号から、復号信号を求める復号方法であって、
前記正規化値量子化インデックスに対応する復号正規化値を求め、復号量子化正規化値として出力する正規化値復号ステップと、
前記第１ベクトル量子化インデックスに対応した正規化第１復号量子化信号を求め、前記正規化第１復号量子化信号と前記復号量子化正規化値を用いて第１復号量子化信号を求める第１ベクトル復号ステップと、
前記第２ベクトル量子化インデックスに対応した正規化第２復号量子化信号を求め、前記正規化第２復号量子化信号と前記復号量子化正規化値を用いて第２復号量子化信号を求める第２ベクトル復号ステップと、
第１復号量子化信号の値が０の場合は、前記復号量子化正規化値と前記第２復号量子化信号の加重加算を用いた計算結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号とし、第１復号量子化信号の値が０以外の場合は、前記第１復号量子化信号と前記第２復号量子化信号の和を用いた計算結果を復号信号とする誤差修正ステップと
を有する復号方法。
【請求項６】
請求項５記載の復号方法であって、
前記誤差修正ステップが、
第１復号量子化信号の値が０の場合は、前記復号量子化正規化値と前記第２復号量子化信号の加重加算にランダムに生成した１または−１を乗算した結果を復号信号とし、第１復号量子化信号の値が負の場合は、前記第１復号量子化信号の絶対値と前記第２復号量子化信号の和に−１を乗算した結果を復号信号とし、第１復号量子化信号の値が正の場合は、前記第１復号量子化信号の絶対値と前記第２復号量子化信号の和を復号信号とする
ことを特徴とする復号方法。
【請求項７】
請求項６記載の復号方法であって、
前記正規化値復号ステップが、
１フレーム前の復号正規化値が０の場合は、現在のフレームの復号正規化値を、復号量子化正規化値として出力し、
１フレーム前の復号正規化値が０でない場合は、現在のフレームの復号正規化値と１フレーム前の復号正規化値との加重加算の結果を、復号量子化正規化値として出力する
ことを特徴とする復号方法。
【請求項８】
請求項５記載の復号方法であって、
誤差修正ステップが、
第１復号量子化信号の値が０かつ１フレーム過去の復号量子化正規化値が０の場合は、現在のフレームの復号量子化正規化値と前記第２復号量子化信号の加重加算の結果にランダムに生成した１または−１を乗算した結果を復号信号とし、
第１復号量子化信号の値が０かつ１フレーム過去の復号量子化正規化値が０以外の場合は、現在のフレームの復号量子化正規化値と前記第２復号量子化信号と１フレーム過去の復号量子化正規化値との加重加算の結果にランダムに生成した１または−１を乗算した結果を復号信号とし、
第１復号量子化信号の値が負の場合は、前記第１復号量子化信号の絶対値と前記第２復号量子化信号の和に−１を乗算した結果を復号信号とし、第１復号量子化信号の値が正の場合は、前記第１復号量子化信号の絶対値と前記第２復号量子化信号の和を復号信号とする
を有する復号方法。
【請求項９】
請求項５から８のいずれかに記載の復号方法であって、
値が０の前記第１復号量子化信号の数Ｍを求めるＭ値計算ステップも有しており、
前記誤差修正ステップは、
前記第２復号量子化信号が、値が０の前記第１復号量子化信号に対応する信号だけの場合には、
前記第１復号量子化信号の値が０以外のときには、前記第１復号量子化信号を復号信号とする
ことを特徴とする復号方法。
【請求項１０】
請求項９記載の復号方法であって、
前記復号量子化正規化値をＸ−、前記第１復号量子化信号の数をＬ、前記第１復号量子化信号のパワーの合計ｔｍｐ、値が０の前記第１復号量子化信号の数をＭ、再計算正規化値Ｅ−とするときに、
【数９】
2011009861.tif 000011
の関係となる再計算正規化値Ｅ−を求める正規化値再計算ステップ
も有し、
前記第２ベクトル復号ステップは、前記第２ベクトル量子化インデックスに対応した正規化第２復号量子化信号を求め、前記正規化第２復号量子化信号と前記再計算正規化値を用いて前記第２復号量子化信号を求める
ことを特徴とする復号方法。
【請求項１１】
請求項９記載の復号方法であって、
前記復号量子化正規化値をＸ−、前記第１復号量子化信号の数をＬ、前記第１復号量子化信号のパワーの合計ｔｍｐ、値が０の前記第１復号量子化信号の数をＭ、第１再計算値をＥ−１、第２再計算値をＥ−２とするときに、
【数１０】
2011009861.tif 000012
の関係となる第１再計算値をＥ−１と第２再計算値をＥ−２を求め、
前記第１再計算値と前記第２再計算値と前記正規化値のいずれかを再計算正規化値とする正規化値再計算ステップ
も有し、
前記第２ベクトル復号ステップは、前記第２ベクトル量子化インデックスに対応した正規化第２復号量子化信号を求め、前記正規化第２復号量子化信号と前記再計算正規化値を用いて前記第２復号量子化信号を求める
ことを特徴とする復号方法。
【請求項１２】
所定サンプル数ごとの符号化対象の信号サンプル（以下、「第１符号化対象信号」という）に対する正規化値を求める正規化値計算部と、
前記正規化値を量子化した量子化正規化値と該量子化正規化値に対応する正規化値量子化インデックスを求める正規化値量子化部と、
前記量子化正規化値を用いて前記第１符号化対象信号を正規化して正規化第１符号化対象信号を求め、前記正規化第１符号化対象信号を複数サンプル纏めてベクトル量子化した第１量子化信号の列と該第１量子化信号の列に対応する第１ベクトル量子化インデックスを求める第１ベクトル量子化部と、
第１量子化信号の値が０の場合は、前記第１符号化対象信号の絶対値と前記量子化正規化値との重み付き誤差信号を求め、第１量子化信号の値が０以外の場合は、前記第１符号化対象信号の絶対値と前記第１量子化信号の絶対値の誤差信号を求める誤差計算部と、
前記誤差信号または前記誤差信号に対応した信号を複数サンプル纏めてベクトル量子化して第２ベクトル量子化インデックスを求める第２ベクトル量子化部と、
を備える符号化器。
【請求項１３】
第１ベクトル量子化インデックスと第２ベクトル量子化インデックスと正規化値量子化インデックスを含む符号から、復号信号を求める復号器であって、
前記正規化値量子化インデックスに対応する復号正規化値を求め、復号量子化正規化値として出力する正規化値復号部と、
前記第１ベクトル量子化インデックスに対応した正規化第１復号量子化信号を求め、前記正規化第１復号量子化信号と前記復号量子化正規化値を用いて第１復号量子化信号を求める第１ベクトル復号部と、
前記第２ベクトル量子化インデックスに対応した正規化第２復号量子化信号を求め、前記正規化第２復号量子化信号と前記復号量子化正規化値を用いて第２復号量子化信号を求める第２ベクトル復号部と、
第１復号量子化信号の値が０の場合は、前記復号量子化正規化値と前記第２復号量子化信号の加重加算を用いた計算結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号とし、第１復号量子化信号の値が０以外の場合は、前記第１復号量子化信号と前記第２復号量子化信号の和を用いた計算結果を復号信号とする誤差修正部と
を備える復号器。
【請求項１４】
請求項１から１１のいずれかに記載の方法の各ステップをコンピュータにより実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は音響信号の符号化方法と復号方法に関し、特に多段にベクトル量子化する符号化方法と復号方法に関する。
【背景技術】
【０００２】
信号系列をサンプルあたり１ビット以下で量子化する際は、ベクトル量子化が有効な手段である。この手法は入力のベクトルと、歪が最も小さいベクトルとを符号帳から選んで、その番号（以下、「インデックス」という。）を伝送するもので、量子化対象に即した符号帳を作成しておけば量子化歪の小さい量子化が可能である。しかしながら、符号帳のメモリ量や歪を計算する演算量は量子化ビット数の指数関数で増大するため、量子化ビット数の多いときの量子化は実現が困難である。これを解決する１つの手法が多段ベクトル量子化（特許文献１）である。また、近年、量子化ノイズの少ない高能率なベクトル量子化手法として、例えばSpherical Vector Quantization（SVQ）法（非特許文献１）など、予め設定された量子化ビット数の範囲内で、周波数成分をパルスとして立てていくベクトル量子化手法が広く利用されている。
【０００３】
図１は、多段ベクトル量子化手法を用いた符号化器と復号器の機能構成例を示す図である。図２は符号化器と復号器の処理フローを示す図である。図２（Ａ）は符号化器の処理フローを示しており、図２（Ｂ）は復号器の処理フローを示している。多段ベクトル量子化では、量子化部が多段に接続され、初段の第１量子化部は入力信号について動作し，次段以降は入力信号と前段までの量子化出力の誤差について動作する。このようにすると、メモリ量や演算量を現実的な範囲に抑えたままで、ベクトル量子化が可能となる。図中の多段ベクトル量子化の段数は、分かり易くするため２としてあるが、段数は２以上を用いた構成でも良い。量子化手法には、周波数領域に変換した成分を量子化する手法（非特許文献１）を例として用いた。
【０００４】
符号化器１００は、周波数領域変換部１０１、正規化値計算部１０２、正規化値量子化部１０３、第１ベクトル量子化部１０４、誤差計算部１０５、第２ベクトル量子化部１０６を備える。復号器１００’は、正規化値復号部１０７、第１ベクトル復号部１０８、第２ベクトル復号部１０９、誤差修正部１１０、時間領域変換部１１１を備える。
【０００５】
周波数領域変換部１０１は、入力信号ｘ（ｎ）を入力とし、Ｌ個の入力信号ｘ（ｎ）ごと（フレームごと）にＬ点の周波数成分を示す信号である周波数領域信号Ｘ（ｋ）に変換する（Ｓ１０１）。ただし、ｎは時間領域での信号の番号（離散時間番号）を、ｋは周波数領域での信号の番号（離散周波数番号）を示している。所定の数Ｌとは、例えば６４や８０である。また、周波数領域変換方法としては、例えばＭＤＣＴ(Modified Discrete Cosine Transform)がある。
【０００６】
正規化値計算部１０２は、周波数領域信号Ｘ（ｋ）を入力として、Ｌ点または各サブバンド（Ｌ点をさらに分割した周波数帯域で、例えば８点で１つのサブバンドを形成する）に応じた点数の周波数領域信号Ｘ（ｋ）のパワーの平均値の平方根を、周波数領域信号Ｘ（ｋ）の正規化値Ｘ−０として出力する。Ｌ点の正規化値をＸ−０として、例えばＸ−０を次式のように計算する（Ｓ１０２）。
【０００７】
【数１】
2011009861.tif 000003
【０００８】
以下の説明では、サブバンドでの正規化ではなく、Ｌ点の正規化値Ｘ−０を用いた場合について説明する。
正規化値量子化部１０３は、正規化値計算部１０２で求めた正規化値Ｘ−０を入力とし、正規化値Ｘ−０を量子化して、正規化値量子化インデックスＣＳと、正規化値量子化インデックスＣＳに対応する量子化正規化値Ｘ−を出力する（Ｓ１０３）。
【０００９】
第１ベクトル量子化部１０４は、周波数領域信号Ｘ（ｋ）と量子化正規化値Ｘ−を入力として、周波数領域信号Ｘ（ｋ）を、量子化正規化値Ｘ−で割り算する、もしくは逆数を乗ずることで正規化し、正規化周波数領域信号を求める。そして、正規化周波数領域信号を複数サンプル纏めてベクトル量子化して、量子化代表ベクトルのインデックスである第１ベクトル量子化インデックスＣ１と、第１ベクトル量子化インデックスＣ１に対応する信号に量子化正規化値Ｘ−を乗算して第１量子化信号Ｘ＾（ｋ）を求め、第１ベクトル量子化インデックスＣ１と第１量子化信号Ｘ＾（ｋ）出力する（Ｓ１０４）。
【００１０】
誤差計算部１０５は、周波数領域信号Ｘ（ｋ）と第１量子化信号Ｘ＾（ｋ）を入力として、周波数領域信号Ｘ（ｋ）と第１量子化信号Ｘ＾（ｋ）の間の誤差を、例えば、
Ｅ（ｋ）＝Ｘ（ｋ）−Ｘ＾（ｋ）          （２）
のように計算し、誤差信号Ｅ（ｋ）を出力する（Ｓ１０５）。
【００１１】
第２ベクトル量子化部１０６は、誤差信号Ｅ（ｋ）と量子化正規化値Ｘ−を入力とし、誤差信号Ｅ（ｋ）を、量子化正規化値Ｘ−で割り算する、もしくは逆数を乗ずることで正規化し、正規化誤差信号を求める。そして、正規化誤差信号を複数サンプル纏めてベクトル量子化して、量子化代表ベクトルのインデックスを第２ベクトル量子化インデックスＣ２として出力する（Ｓ１０６）。
【００１２】
符号化器１００は、第１ベクトル量子化インデックスＣ１と第２ベクトル量子化インデックスＣ２と正規化値量子化インデックスＣＳが含まれる符号を、復号器１００’に送る。そして、復号器１００’では、以下のような処理が行われる。
正規化値復号部１０７は、正規化値量子化インデックスＣＳを入力とし、正規化値量子化インデックスＣＳに対応する復号正規化値を求め、復号量子化正規化値Ｘ−として出力する（Ｓ１０７）。
【００１３】
第１ベクトル復号部１０８、第１ベクトル量子化インデックスＣ１と復号量子化正規化値Ｘ−を入力とし、第１ベクトル量子化インデックスＣ１を復号し、フレーム単位の正規化された信号を正規化第１復号量子化信号として求め、正規化第１復号量子化信号に復号量子化正規化値Ｘ−を乗算することで逆正規化し、第１復号量子化信号Ｘ＾（ｋ）として出力する（Ｓ１０８）。
【００１４】
第２ベクトル復号部１０９は、第２ベクトル量子化インデックスＣ２と復号量子化正規化値Ｘ−を入力とし、第２ベクトル量子化インデックスＣ２を復号し、正規化された信号を正規化誤差信号として求め、正規化誤差信号に復号量子化正規化値Ｘ−を乗算することで逆正規化し、復号量子化誤差信号Ｅ＾（ｋ）として出力する（Ｓ１０９）。
【００１５】
誤差修正部１１０は、第１復号量子化信号Ｘ＾（ｋ）と復号量子化誤差信号Ｅ＾（ｋ）を入力とし、復号信号Ｚ（ｋ）を、例えば、
Ｚ（ｋ）＝Ｘ＾（ｋ）＋Ｅ＾（ｋ）          （３）
のように求め、復号信号Ｚ（ｋ）を出力する（Ｓ１１０）。
時間領域変換部１１１は、復号信号Ｚ（ｋ）を入力とし、例えばフレーム点数Ｌ分の逆ＭＤＣＴを用いて時間領域変換を行い、フレーム点数Ｌ分の出力信号ｚ（ｎ）を出力する（Ｓ１１１）。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特許２７７６４７４号明細書
【非特許文献】
【００１７】
【非特許文献１】ITU-T Recommendation G.729.1, SERIES G: TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS, Digital terminal equipments - Coding of analogue signals by methods other than PCM, G.729-based embedded variable bit-rate coder: An 8-32 kbit/s scalable wideband coder bitstream interoperable with G.729, 05/2006.
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上述の符号化器１００と復号器１００’では、周波数領域信号を量子化するために必要なビット数が足りないと、入力信号に存在するはずの周波数成分が出力信号には存在しないこと（周波数成分の欠損）が生じてしまうことがある。
【００１９】
しかし、符号化器１００と復号器１００’は、第１量子化信号の値（前段のベクトル量子化で得られた量子化された信号の値）が０か０以外かに関係なく、第１量子化信号と符号化対象の信号との誤差を示す信号を後段のベクトル量子化の対象としている。つまり、従来技術には、ミュージカルノイズ（ある周波数成分の有無が時間的に変化したときに生じることが多い人間が敏感に感じるノイズ）のような人間が敏感に感じるノイズを無くすための特別な工夫はない。したがって、元の信号と復号された信号との誤差のパワーが数値の上では小さくなったとしても、人間の感覚が敏感な誤差に着目した符号化ではないので、ミュージカルノイズが残りやすいという課題がある。
【００２０】
本発明は、このような課題に鑑みてなされたものであり、符号化対象信号を多段量子化するために必要なビット数が足りず、復号後に信号の欠損が生じてしまう場合であっても、２段目以降のベクトル量子化でミュージカルノイズを軽減できる多段ベクトル量子化方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の符号化方法は、少なくとも正規化値計算ステップ、正規化値量子化ステップ、第１ベクトル量子化ステップ、誤差計算ステップ、第２ベクトル量子化ステップを有する。正規化値計算ステップは、所定サンプル数ごとの符号化対象の信号サンプル（以下、「第１符号化対象信号」という）の正規化値を求める。「第１符号化対象信号」としては、周波数領域に変換された音響信号、周波数領域の音響信号の中の特定の周波数帯（例えば、８ｋＨｚ〜１４ｋＨｚなど）の音響信号、フレーム単位に分割された時間領域の音響信号などがありえるが、これらに限定する必要はない。所定サンプル数とは、１フレームを構成する信号のサンプル数の場合には８０、６４などの数がある。また、１フレームを構成する信号をさらに分割した、サブフレーム、サブバンド、サブベクトルと呼ばれる単位の場合には、８などの数がある。正規化値量子化ステップは、正規化値を量子化し、正規化値量子化インデックスと量子化正規化値を求める。第１ベクトル量子化ステップは、量子化正規化値を用いて第１符号化対象信号を正規化して正規化第１符号化対象信号を求め、正規化第１符号化対象信号を複数サンプル纏めてベクトル量子化して、第１ベクトル量子化インデックスと第１量子化信号を求める。誤差計算ステップは、第１量子化信号の値が０の場合は、第１符号化対象信号の絶対値と量子化正規化値から誤差信号を求め、第１量子化信号の値が０以外の場合は、第１符号化対象信号の絶対値と第１量子化信号の絶対値から誤差信号を求める。第２ベクトル量子化ステップは、誤差信号または誤差信号に対応した信号を複数サンプル纏めてベクトル量子化し、第２ベクトル量子化インデックスを求める。
【００２２】
本発明の復号方法は、正規化値復号ステップ、第１ベクトル復号ステップ、第２ベクトル復号ステップ、誤差修正ステップを有する。復号方法では、第１ベクトル量子化インデックスと第２ベクトル量子化インデックスと正規化値量子化インデックスを含む符号から、復号信号を求める。正規化値復号ステップは、正規化値量子化インデックスに対応する復号正規化値を求め、復号量子化正規化値として出力する。第１ベクトル復号ステップは、第１ベクトル量子化インデックスに対応した正規化第１復号量子化信号を求め、正規化第１復号量子化信号と復号量子化正規化値を用いて第１復号量子化信号を求める。第２ベクトル復号ステップは、第２ベクトル量子化インデックスに対応した正規化第２復号量子化信号を求め、正規化第２復号量子化信号と前記復号量子化正規化値を用いて第２復号量子化信号を求める。
【００２３】
誤差修正ステップは、第１復号量子化信号の値が０の場合は、復号量子化正規化値と第２復号量子化信号の加重加算を用いた計算結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号とする。あるいは、第１復号量子化信号の値が０かつ１フレーム過去の復号量子化正規化値が０の場合は、現在のフレームの復号量子化正規化値と前記第２復号量子化信号の加重加算の結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号とし、第１復号量子化信号の値が０かつ１フレーム過去の復号量子化正規化値が０以外の場合は、現在のフレームの復号量子化正規化値と第２復号量子化信号と１フレーム過去の復号量子化正規化値との加重加算の結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号としてもよい。また、第１復号量子化信号の値が０以外の場合は、第１復号量子化信号の絶対値と第２復号量子化信号の和を用いた計算結果を復号信号とする。例えば、第１復号量子化信号の値が負の場合は、第１復号量子化信号の絶対値と第２復号量子化信号の和に−１を乗算し、乗算結果を復号信号とする。第１復号量子化信号の値が正の場合は、第１復号量子化信号の絶対値と第２復号量子化信号の和を復号信号とする。
【発明の効果】
【００２４】
本発明の符号化方法と復号方法によれば、二段以降のベクトル量子化部において、第１符号化対象信号と第１量子化信号との間の誤差でなく、第１符号化対象信号を絶対値領域に置き換え、第１符号化対象信号の絶対値と第１量子化信号の絶対値の間の差分を量子化する。したがって、第１符号化対象信号と第１量子化信号の間の誤差と比べ、二段以降で量子化すべき誤差のダイナミックレンジを２分の１以下にできる。
【００２５】
また、前段までのベクトル量子化部においてパルスが立たなかった第１量子化信号の値は０であるため、第１符号化対象信号の絶対値との間の誤差が大きい。本発明では、前段までの量子化出力の値が０である第１符号化対象信号については、第１符号化対象信号の絶対値と量子化正規化値の間の差分を量子化するので、ベクトル量子化する誤差を小さくできる。
【００２６】
このように、本発明の符号化方法と復号方法は、量子化する誤差の大きさを大幅に減らすことができるため、ベクトル量子化の効率を上げることができる。
【図面の簡単な説明】
【００２７】
【図１】従来の多段ベクトル量子化手法を用いた符号化器と復号器の機能構成例を示す図。
【図２】従来の符号化器と復号器の処理フローを示す図。
【図３】従来の多段ベクトル量子化のイメージを示す図。
【図４】本発明の多段ベクトル量子化のイメージを示す図。
【図５】初段のベクトル量子化後に、第１符号化対象信号と第１量子化信号とを絶対値で表した図。
【図６】図５で示した信号と一緒にサブベクトルごとに求めた量子化正規化値を示した図。
【図７】第１符号化対象信号の例と本発明の誤差信号を生成するための基準となる信号とを比較するための図。
【図８】実施例１、実施例２、実施例３の符号化器と復号器の構成例を示す図。
【図９】実施例１、実施例２、実施例３の符号化器と復号器の処理フロー例を示す図。
【図１０】誤差計算部２０５の具体的な処理フロー例を示す図。
【図１１】誤差修正部２１０の具体的な処理フロー例を示す図。
【図１２】誤差修正部２７５の具体的な処理フローの例を示す図。
【図１３】実施例４〜６で追加される原理を説明するための図。
【図１４】実施例４、実施例４変形例１、実施例４変形例２の符号化器と復号器の構成例を示す図。
【図１５】実施例４、実施例４変形例１、実施例４変形例２の符号化器と復号器の処理フロー例を示す図。
【図１６】誤差信号Ｅ（ｍ）と数Ｍを求めるための処理フローの例を示す図。
【図１７】値が０である第１復号量子化信号Ｘ＾（ｋ）の数Ｍを求める処理フローの例を示す図。
【図１８】誤差修正部３１０、３７５の具体的な処理フローの例を示す図。
【図１９】ステップＳ３７５１の処理フローの例を示す図。
【図２０】実施例５、実施例５変形例１、実施例５変形例２の符号化器と復号器の構成例を示す図。
【図２１】実施例５、実施例５変形例１、実施例５変形例２の符号化器と復号器の処理フロー例を示す図。
【図２２】実施例５の再計算正規化値Ｅ−を求める処理フローの例を示す図。
【図２３】実施例５の再計算正規化値Ｅ−を求める別の処理フローの例を示す図。
【図２４】実施例６、実施例６変形例１、実施例６変形例２の符号化器と復号器の構成例を示す図。
【図２５】実施例６、実施例６変形例１、実施例６変形例２の符号化器と復号器の処理フロー例を示す図。
【図２６】実施例６の再計算正規化値Ｅ−を求める処理フローの例を示す図。
【図２７】実施例６の再計算正規化値Ｅ−を求める別の処理フローの例を示す図。
【図２８】楽器のみのオーケストラを対象としたときの実験結果を示す図。
【図２９】歌を含んでいるオーケストラを対象としたときの実験結果を示す図。
【図３０】楽器のみのストリングを対象としたときの実験結果を示す図。
【図３１】歌を含んでいるポップスを対象としたときの実験結果を示す図。
【図３２】管楽器（歌なし）を対象としたときの実験結果を示す図。
【図３３】歌のみを対象としたときの実験結果を示す図。
【発明を実施するための形態】
【００２８】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例１】
【００２９】
原理
図３は、従来の多段ベクトル量子化のイメージを示す図である。横軸は周波数成分の番号、縦軸は各周波数成分の値を示している。この図では、初段のベクトル量子化の対象となる信号（第１符号化対象信号）は、周波数領域信号（ＭＤＣＴ係数）であり、細い線で示されている。初段のベクトル量子化後の信号（第１量子化信号）は、太い線で示されている。少ないビット（例えば３７ビット）でベクトル量子化した場合、値が０の第１量子化信号（周波数成分において値が０の箇所）が多数発生する。また、従来の後段のベクトル量子化では、図の第１符号化対象信号と第１量子化信号との差分を複数サンプル纏めてベクトル量子化している。
【００３０】
図４は、本発明の多段ベクトル量子化のイメージを示す図である。この図も横軸は周波数成分の番号、縦軸は各周波数成分の値を示している。また、細い線は第１符号化対象信号の絶対値を、太い線は第１量子化信号の絶対値を示している。本発明では、第１量子化信号の値が０のときには、第１符号化対象信号の絶対値と量子化正規化値との差分を後段でベクトル量子化とする。なお、図４の量子化正規化値は、８サンプルごとに求めた例である。
【００３１】
次に、図５〜７を用いて手順について説明する。図５のように、初段のベクトル量子化後に、第１符号化対象信号と第１量子化信号とを絶対値で表す。そして、図６に示すように、サブベクトルごとに量子化正規化値を求める。この図からも、値が０の第１量子化信号と第１符号化対象信号との誤差よりも、量子化正規化値と第１符号化対象信号との差分の方が小さいことが分かる。したがって、第１量子化信号の値が０のときには、第１符号化対象信号の絶対値と量子化正規化値との差分を後段でベクトル量子化する方が効率的である。また、量子化正規化値は、従来の復号器でも知る情報なので、量子化正規化値を符号化に利用しても復号器に新たな情報を伝える必要はない。図６では８サンプルごとに量子化正規化値を求めているが、６４サンプルで１つの量子化正規化値を求めてもよいし、他の数ごとに量子化正規化値を求めてもよい。ただし、適当なサンプル数ごとに量子化正規化値を求めれば、量子化正規化値と第１符号化対象信号との差分を小さくできる。図７は、第１符号化対象信号の例と本発明の誤差信号を生成するための基準となる信号とを比較するための図である。細い線は第１符号化対象信号の絶対値の例である。太い線は、第１量子化信号の値が０以外のときには第１量子化信号の絶対値とし、第１量子化信号の値が０のときには量子化正規化値としたときの線である。この図から、差分を求めるときに正規化値を基準とすれば、差分を小さくできることがわかる。
【００３２】
具体例
図８に実施例１の符号化器と復号器の構成例を示す。図９に実施例１の符号化器と復号器の処理フロー例を示す。図９（Ａ）は符号化器の処理フローを示しており、図９（Ｂ）は復号器の処理フローを示している。符号化器２００は、周波数領域変換部１０１、正規化値計算部１０２、正規化値量子化部１０３、第１ベクトル量子化部１０４、誤差計算部２０５、第２ベクトル量子化部１０６を備える。復号器２００’は、正規化値復号部１０７、第１ベクトル復号部１０８、第２ベクトル復号部１０９、誤差修正部２１０、時間領域変換部１１１を備える。符号化器２００は、符号化器１００と誤差計算部２０５が異なる。また、復号器２００’は、復号器１００’と誤差修正部２１０が異なる。その他の構成部は、符号化器１００、復号器１００’と同じである。なお、この実施例での第１符号化対象信号は周波数領域信号である。
【００３３】
誤差計算部２０５は、第１量子化信号Ｘ＾（ｋ）の値が０の場合は、周波数領域信号Ｘ（ｋ）の絶対値と量子化正規化値Ｘ−から誤差信号を求め、第１量子化信号Ｘ＾（ｋ）の値が０以外の場合は、周波数領域信号Ｘ（ｋ）の絶対値と第１量子化信号Ｘ＾（ｋ）の絶対値から誤差信号Ｅ（ｋ）を求める（Ｓ２０５）。図１０に誤差計算部２０５の具体的な処理フロー例を示す。ｋ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ２０５１）。ステップＳ２０５１がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ２０５２）。ステップＳ２０５２がＹｅｓの場合（第１量子化信号Ｘ＾（ｋ）の値が０の場合）、周波数領域信号Ｘ（ｋ）の絶対値と量子化正規化値Ｘ−の差分
｜Ｘ（ｋ）｜−Ａ・Ｘ−
を誤差信号Ｅ（ｋ）とする（Ｓ２０５３）。ここで、Ａは正規化値の調整用の正の数（例えば１．０）である。ステップＳ２０５２がＮｏの場合（第１量子化信号Ｘ＾（ｋ）の値が０以外の場合）、周波数領域信号Ｘ（ｋ）の絶対値と第１量子化信号Ｘ＾（ｋ）の絶対値の差分である
｜Ｘ（ｋ）｜−｜Ｘ＾（ｋ）｜
を誤差信号Ｅ（ｋ）とする（Ｓ２０５４）。ｋを１増加させ（Ｓ２０５５）、ステップＳ２０５１に戻る。ステップＳ２０５１がＮｏの場合、処理を終了する。
【００３４】
復号器２００’の誤差修正部２１０は、第１復号量子化信号Ｘ＾（ｋ）の値が０の場合は、復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）の加重加算を用いた計算結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とし、第１復号量子化信号Ｘ＾（ｋ）の値が０以外の場合は、第１復号量子化信号Ｘ＾（ｋ）と第２復号量子化信号Ｅ＾（ｋ）の和を用いた計算結果を復号信号Ｚ（ｋ）とする（Ｓ２１０）。図１１に誤差修正部２１０の具体的な処理フロー例を示す。ｋ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ２１０１）。ステップＳ２１０１がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ２１０２）。ステップＳ２１０２がＹｅｓの場合（第１復号量子化信号Ｘ＾（ｋ）の値が０の場合）、復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）の加重加算Ａ・Ｘ−＋Ｅ＾（ｋ）にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする（Ｓ２１０３）。ここで、Ａは正規化値の調整用の正の数（例えば１．０）である。また、図中のｒａｎｄ（ｋ）は、ランダムに１または−１を生成する関数を示しており、乱数などを用いて計算してもよい。このように、ランダムに１または−１を乗算するのは、すべての周波数で復号信号が正の値となったのでは、歪んだ音になってしまうからであり、ランダムに１または−１を乗算することによって自然な音を作り出すことができる。ステップＳ２１０２がＮｏの場合は、Ｘ＾（ｋ）が負かを確認する（Ｓ２１０４）。ステップＳ２１０４がＹｅｓの場合（第１復号量子化信号の値が負の場合）は、第１復号量子化信号Ｘ＾（ｋ）の絶対値と第２復号量子化信号Ｅ＾（ｋ）の和に−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする（Ｓ２１０５）。ステップＳ２１０４がＮｏの場合（第１復号量子化信号の値が正の場合）は、第１復号量子化信号Ｘ＾（ｋ）の絶対値と第２復号量子化信号Ｅ＾（ｋ）の和を復号信号Ｚ（ｋ）とする（Ｓ２１０６）。ｋを１増加させ（Ｓ２１０７）、ステップＳ２１０１に戻る。ステップＳ２１０１がＮｏの場合、処理を終了する。
【００３５】
実施例１の符号化方法と復号方法では、絶対値を利用するので符号の情報（±の情報）が失われる場合がある。しかし、二段以降のベクトル量子化部において、第１符号化対象信号（本実施例では周波数領域信号）と第１量子化信号との間の誤差でなく、第１符号化対象信号を絶対値領域に置き換え、第１符号化対象信号の絶対値と第１量子化信号の絶対値の間の差分を量子化する。したがって、第１符号化対象信号と第１量子化信号の間の誤差と比べ、二段以降で量子化すべき誤差のダイナミックレンジを２分の１以下にできる。また、前段までのベクトル量子化部においてパルスが立たなかった第１量子化信号の値は０であるため、第１符号化対象信号の絶対値との間の誤差が大きい。本発明では、前段までの量子化出力の値が０である第１符号化対象信号については、第１符号化対象信号の絶対値と量子化正規化値の間の差分を量子化するので、ベクトル量子化する誤差を小さくできる。
【００３６】
このように、本実施例の符号化方法と復号方法は、量子化する誤差の大きさを大幅に減らすことができるため、符号の情報が失われたとしても、総合的にはベクトル量子化の効率を上げることができる。
【００３７】
なお、本実施例では、第１ベクトル量子化部１０４の符号化の対象となる信号（第１符号化対象信号）は周波数領域に変換された音響信号を前提としていた。しかし、この信号に限定する必要はなく、周波数領域の音響信号の中の特定の周波数帯（例えば、８ｋＨｚ〜１４ｋＨｚなど）の音響信号を第１符号化対象信号としてもよいし、フレーム単位に分割された時間領域の音響信号を第１符号化対象信号としてもよい。
【実施例２】
【００３８】
実施例２では、復号器側の量子化正規化値を決めるときに、１つ過去のフレームの量子化正規化値も考慮する点が実施例１と異なる。構成と処理フローを示す図は実施例１と同じであり、図８が実施例２の符号化器と復号器の構成例を、図９が実施例２の符号化器と復号器の処理フロー例を示す。図９（Ａ）は符号化器の処理フローを示しており、図９（Ｂ）は復号器の処理フローを示している。実施例２の符号化器２００は実施例１と同じである。実施例２の復号器２５０’は、正規化値復号部１５７、第１ベクトル復号部１０８、第２ベクトル復号部１０９、誤差修正部２１０、時間領域変換部１１１を備える。復号器２５０’は、復号器２００’と正規化値復号部１５７が異なる。その他の構成部は実施例１と同じである。
【００３９】
正規化値復号部１５７は、正規化値量子化インデックスに対応する復号正規化値Ｘ−Ｃを求める。復号正規化値Ｘ−Ｃは処理対象となっている現在のフレームの復号正規化値である。そして、１フレーム前（１フレーム過去）の復号正規化値Ｘ−Ｐが０の場合は、現在のフレームの復号正規化値Ｘ−Ｃを、復号量子化正規化値Ｘ−として出力する。１フレーム前の復号正規化値Ｘ−Ｐが０でない場合は、現在のフレームの復号正規化値Ｘ−Ｃと１フレーム前の復号正規化値Ｘ−Ｐとの加重加算
Ｘ−＝αＸ−Ｃ＋βＸ−Ｐ
を、復号量子化正規化値Ｘ−として出力する（Ｓ１５７）。αとβは調整係数を表し、例えばそれぞれ０．５とすればよい。
【００４０】
実施例２の符号化方法と復号方法はこのような処理なので、実施例１の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。本実施例では、周波数成分全ての復号正規化値に基づき復号量子化正規化値を計算する方法を示したが、例えば、８点ずつのサブベクトルごとに纏めてベクトル量子化する量子化方法を用いる場合、８点ずつの復号正規化値から求められた復号量子化正規化値に基づき、各サブベクトルの復号量子化正規化値を計算してもよい。
【００４１】
なお、本実施例では、第１ベクトル量子化部１０４の符号化の対象となる信号（第１符号化対象信号）は周波数領域に変換された音響信号を前提としていた。しかし、この信号に限定する必要はなく、周波数領域の音響信号の中の特定の周波数帯（例えば、８ｋＨｚ〜１４ｋＨｚなど）の音響信号を第１符号化対象信号としてもよいし、フレーム単位に分割された時間領域の音響信号を第１符号化対象信号としてもよい。
【実施例３】
【００４２】
実施例３では、誤差修正部での復号信号の生成方法が実施例１と異なる。構成と処理フローを示す図は実施例１と同じであり、図８が実施例３の符号化器と復号器の構成例を、図９が実施例３の符号化器と復号器の処理フロー例を示す。図９（Ａ）は符号化器の処理フローを示しており、図９（Ｂ）は復号器の処理フローを示している。実施例３の符号化器２００は実施例１と同じである。実施例３の復号器２７０’は、正規化値復号部１０７、第１ベクトル復号部１０８、第２ベクトル復号部１０９、誤差修正部２７５、時間領域変換部１１１を備える。復号器２７０’は、復号器２００’と誤差修正部２７５が異なる。その他の構成部は実施例１と同じである。
【００４３】
誤差修正部２７５は、第１復号量子化信号Ｘ＾（ｋ）の値が０かつ１フレーム過去の復号量子化正規化値Ｘ−’が０の場合は、現在のフレームの復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）の加重加算の結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする。第１復号量子化信号Ｘ＾（ｋ）の値が０かつ１フレーム過去の復号量子化正規化値Ｘ−’が０以外の場合は、現在のフレームの復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）と１フレーム過去の復号量子化正規化値Ｘ−’との加重加算の結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号とする。また、第１復号量子化信号の値が０以外の場合は、第１復号量子化信号Ｘ＾（ｋ）の絶対値と第２復号量子化信号Ｅ＾（ｋ）の和を用いた計算結果を復号信号とする（Ｓ２７５）。
【００４４】
図１２に誤差修正部２７５の具体的な処理フローの例を示す。ｋ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ２８０１）。ステップＳ２８０１がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ２８０２）。ステップＳ２８０２がＹｅｓの場合（第１復号量子化信号Ｘ＾（ｋ）の値が０の場合）、１フレーム過去の復号量子化正規化値Ｘ−’が０かを確認する（Ｓ２８０３）。ステップＳ２８０３がＹｅｓの場合、復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）の加重加算Ａ・Ｘ−＋Ｅ＾（ｋ）にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする（Ｓ２８０４）。ステップＳ２８０３がＮｏの場合、現在のフレームの復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）と１フレーム過去の復号量子化正規化値Ｘ−’との加重加算
［α（Ａ・Ｘ−＋Ｅ＾（ｋ））＋β・Ａ・Ｘ−’］
にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする（Ｓ２８０５）。図中のｒａｎｄ（ｋ）は、ランダムに１または−１を生成する関数を示しており、乱数などを用いて計算してもよい。このように、ランダムに１または−１を乗算するのは、すべての周波数で復号信号が正の値となったのでは、歪んだ音になってしまうからであり、ランダムに１または−１を乗算することによって自然な音を作り出すことができる。ステップＳ２８０２がＮｏの場合は、Ｘ＾（ｋ）が負かを確認する（Ｓ２８０６）。ステップＳ２８０６がＹｅｓの場合（第１復号量子化信号の値が負の場合）は、第１復号量子化信号Ｘ＾（ｋ）の絶対値と第２復号量子化信号Ｅ＾（ｋ）の和に−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする（Ｓ２８０７）。ステップＳ２８０６がＮｏの場合（第１復号量子化信号の値が正の場合）は、第１復号量子化信号Ｘ＾（ｋ）の絶対値と第２復号量子化信号Ｅ＾（ｋ）の和を復号信号Ｚ（ｋ）とする（Ｓ２８０８）。ｋを１増加させ（Ｓ２８０９）、ステップＳ２８０１に戻る。ステップＳ２８０１がＮｏの場合、処理を終了する。
【００４５】
実施例３の符号化方法と復号方法はこのような処理なので、実施例１の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。本実施例では、周波数成分全ての復号正規化値に基づき復号量子化正規化値を計算する方法を示したが、例えば、８点ずつのサブベクトルごとに纏めてベクトル量子化する量子化方法を用いる場合、８点ずつの復号正規化値から求められた復号量子化正規化値に基づき、各サブベクトルの復号量子化正規化値を計算してもよい。
【００４６】
なお、本実施例では、第１ベクトル量子化部１０４の符号化の対象となる信号（第１符号化対象信号）は周波数領域に変換された音響信号を前提としていた。しかし、この信号に限定する必要はなく、周波数領域の音響信号の中の特定の周波数帯（例えば、８ｋＨｚ〜１４ｋＨｚなど）の音響信号を第１符号化対象信号としてもよいし、フレーム単位に分割された時間領域の音響信号を第１符号化対象信号としてもよい。
【実施例４】
【００４７】
原理
図１３は、実施例４〜６で追加される原理を説明するための図である。横軸は周波数を示す６４点のサンプル、縦軸は各周波数での信号の値を示している。細い線は、１つのフレーム（６４個の時間領域の信号）を周波数領域に変換して得られた６４点の周波数成分を示す信号（周波数領域信号）を示している。また、太い線は、細い線で示された周波数領域信号を第１ベクトル量子化部１０４でベクトル量子化したときに得られる第１量子化信号の例を示している。
【００４８】
従来の符号化器１００、および実施例１から実施例３の符号化器２００では、周波数領域信号と第１量子化信号との誤差信号を求めていた。つまり、値が０以外の第１量子化信号と周波数領域信号との誤差が大きい場合は、この誤差を修正するために第２ベクトル量子化インデックスのビットを使用することになる。したがって、値が０の第１量子化信号の誤差を修正するため使われる第２ベクトル量子化インデックスのビットが少なくなり、Ｘ−（ｋ）と｜Ｘ（ｋ）｜の間の誤差が修正されない場合がある。よって、周波数領域信号を量子化するために必要なビット数が足りないと、入力信号に存在するはずの周波数成分が復号信号には存在しないこと（周波数成分の欠損）が生じてしまい、ミュージカルノイズの原因の１つとなっていた。また、入力信号に存在しないはずの周波数成分が復号信号に存在することが生じてしまい、量子化ノイズ発生の原因となっていた。
【００４９】
そこで、実施例４〜６では、値が０の第１量子化信号に対応する周波数領域信号だけで次のベクトル量子化の対象となる信号（誤差信号）を生成する。そして、後段のベクトル量子化では、その誤差信号を複数サンプル纏めてベクトル量子化する。つまり、値が０の第１量子化信号に対応する周波数領域信号だけをベクトル量子化するので、復号信号では、Ｘ−（ｋ）と｜Ｘ（ｋ）｜の間の誤差が修正されやすくなる。したがって、周波数成分の欠損や量子化ノイズが生じにくくなり、ミュージカルノイズを低減できる。
【００５０】
具体例
図１４に実施例４の符号化器と復号器の構成例を示す。図１５に実施例４の符号化器と復号器の処理フロー例を示す。図１５（Ａ）は符号化器の処理フローを示しており、図１５（Ｂ）は復号器の処理フローを示している。符号化器３００は、周波数領域変換部１０１、正規化値計算部１０２、正規化値量子化部１０３、第１ベクトル量子化部１０４、誤差計算部３１２、第２ベクトル量子化部３０６を備える。復号器３００’は、正規化値復号部１０７、第１ベクトル復号部１０８、Ｍ値計算部３１３、第２ベクトル復号部３０９、誤差修正部３１０、時間領域変換部１１１を備える。符号化器３００は、符号化器２００と誤差計算部３１２、第２ベクトル量子化部３０６が異なる。また、復号器３００’は、復号器２００’とＭ値計算部３１３、第２ベクトル復号部３０９、誤差修正部３１０が異なる。その他の構成部は実施例１と同じである。なお、本実施例での第１符号化対象信号は周波数領域信号である。
【００５１】
誤差計算部３１２は、周波数領域信号Ｘ（ｋ）と第１量子化信号Ｘ＾（ｋ）を入力とし、第１ベクトル量子化部１０４においてパルスが立てられなかった周波数領域信号Ｘ（ｋ）（値が０の第１量子化信号に対応する周波数領域信号）だけを抜き出した誤差信号Ｅ（ｍ）と、第１ベクトル量子化部においてパルスが立てられなかった周波数領域信号の数Ｍ（値が０の第１量子化信号の数）を求め、誤差信号Ｅ（ｍ）と数Ｍを出力する（Ｓ３１２）。ここで、ｍは配列番号を表す整数値である。
【００５２】
図１６に、誤差信号Ｅ（ｍ）と数Ｍを求めるための処理フローの例を示す。まず、ｋ＝０、ｍ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ３１２１）。ステップＳ３１２１がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ３１２２）。ステップＳ３１２２がＹｅｓの場合、周波数領域信号Ｘ（ｋ）の絶対値と量子化正規化値Ｘ−の誤差信号である
｜Ｘ（ｋ）｜−Ａ・Ｘ−
をＥ（ｍ）とし、ｍの値を１つ増加させる（Ｓ３１２３）。ステップＳ３１２２がＮｏの場合、ステップＳ３１２４に進む。ステップＳ３１２４では、ｋの値を１つ増加させ、ステップＳ３１２１に戻る。Ｓ３１２１がＮｏの場合、ｍの値をＭとし（Ｓ３１２５）、処理を終了する。
【００５３】
第２ベクトル量子化部３０６は、誤差信号Ｅ（ｍ）と量子化正規化値Ｘ−と値が０の第１量子化信号の数Ｍを入力とする。第２ベクトル量子化部３０６は、誤差信号Ｅ（ｍ）を量子化正規化値Ｘ−で割り算する、もしくは逆数を乗ずることで正規化し、正規化誤差信号を求める。そして、正規化誤差信号を、Ｍ点または量子化ベクトルの次数の倍数Ｔｈの範囲でベクトル量子化し、量子化代表ベクトルのインデックスを第２ベクトル量子化インデックスＣ２として出力する（Ｓ３０６）。量子化ベクトルの次数とは、例えば８がある。この場合、倍数Ｔｈは、８，１６，…，６４などがあり、Ｍに最も近い数、Ｍ以下で最も近い数、あるいはＭ以上で最も近い数をＴｈとして選べばよい。例えば、Ｍ以下で最も近い数をＴｈとして選んだ場合、Ｍ個の正規化誤差信号の中からＴｈ個分だけベクトル量子化してもよい。
【００５４】
次に復号器３００’について説明する。Ｍ値計算部３１３は、第１ベクトル復号部１０８において求められた第１復号量子化信号Ｘ＾（ｋ）を入力とし、第１復号量子化信号Ｘ＾（ｋ）の値が０である第１復号量子化信号Ｘ＾（ｋ）の数Ｍを求める。図１７は、値が０である第１復号量子化信号Ｘ＾（ｋ）の数Ｍを求める処理フローの例である。ｋ＝０、ｍ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ３１３１）。ステップＳ３１３１がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ３１３２）。ステップＳ３１３２がＹｅｓの場合、ｍの値を１つ増加させる（Ｓ３１３３）。ステップＳ３１３２がＮｏの場合、ステップＳ３１３４に進む。ステップＳ３１３４では、ｋの値を１つ増加させ、ステップＳ３１３１に戻る。Ｓ３１３１がＮｏの場合、ｍの値をＭとし（Ｓ３１３５）、処理を終了する。符号化器側の正規化で復号量子化正規化値Ｘ−を用いていることと、復号器側がＭ値計算部３１３を備えていることで、数Ｍを示す情報を符号化器から復号器に送る必要がない（数Ｍを伝えるためにビットを使う必要がない）。
【００５５】
第２ベクトル復号部３０９は、第２ベクトル量子化インデックスＣ２と復号量子化正規化値Ｘ−と値が０である第１復号量子化信号Ｘ＾（ｋ）の数Ｍとを入力とする。第２ベクトル復号部２０９は、Ｍ点または量子化ベクトルの次数の倍数Ｔｈで第２ベクトル量子化インデックスＣ２を復号し、正規化された信号を正規化第２復号量子化信号として求め、正規化第２復号量子化信号に復号量子化正規化値Ｘ−を乗算することで逆正規化し、第２復号量子化信号Ｅ＾（ｍ）として出力する（Ｓ３０９）。
【００５６】
誤差修正部３１０は、第１復号量子化信号Ｘ＾（ｋ）、第２復号量子化信号Ｅ＾（ｍ）、第２ベクトル復号部３０９が復号するときに用いた量子化ベクトルの次数の倍数Ｔｈ、値が０である第１復号量子化信号Ｘ＾（ｋ）の数Ｍを入力とする。誤差修正部３１０は、第１復号量子化信号Ｘ＾（ｋ）の値が０以外の場合は第１復号量子化信号Ｘ＾（ｋ）を復号信号Ｚ（ｋ）とし、第１復号量子化信号Ｘ＾（ｋ）の値が０の場合は第２復号量子化信号Ｅ＾（ｍ）を順次復号信号Ｚ（ｋ）とすることで、復号信号Ｚ（ｋ）を求め、出力する（Ｓ３１４）。言い換えると、本実施例の場合、第１復号量子化信号の値が０以外のときには第２復号量子化信号はないので、単に第１復号量子化信号を復号信号とする。これは、図１１のステップＳ２１０５、Ｓ２１０６、図１２のステップＳ２８０７、Ｓ２８０８のＥ＾（ｍ）に０を代入した場合の同じである。
【００５７】
図１８は誤差修正部３１０の具体的な処理フローの例を示す図である。ｋ＝０、ｍ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ３１０１）。ステップＳ３１０１がＹｅｓの場合、ｍがＭより小さいことを確認する（Ｓ３１０２）。ステップＳ３１０２がＹｅｓの場合、ｍがＴｈより小さいことを確認する（Ｓ３１０３）。ステップＳ３１０３がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ３１０４）。ステップＳ３１０４がＹｅｓの場合、復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）の加重加算Ａ・Ｘ−＋Ｅ＾（ｋ）にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とし、ｍの値を１つ増加させる（Ｓ３１０５）。ここで、Ａは正規化値の調整用の正の数（例えば１．０）である。また、図中のｒａｎｄ（ｋ）は、ランダムに１または−１を生成する関数を示しており、乱数などを用いて計算してもよい。このように、ランダムに１または−１を乗算するのは、すべての周波数で復号信号が正の値となったのでは、歪んだ音になってしまうからであり、ランダムに１または−１を乗算することによって自然な音を作り出すことができる。ステップＳ３１０２、Ｓ３１０３、Ｓ３１０４がＮｏの場合、Ｘ＾（ｋ）をＺ（ｋ）とする（Ｓ３１０６）。そして、ｋの値を１つ増加させ（Ｓ３１０７）、ステップＳ３１０１に戻る。Ｓ３１０１がＮｏの場合、処理を終了する。
【００５８】
このような処理なので、実施例１の符号化方法、復号方法と同様の効果が得られる。さらに、実施例４の符号化方法と復号方法では、誤差信号には、値が０以外の第１量子化信号に対応する第１符号化対象信号は含まれておらず、値が０の第１量子化信号に対応する第１符号化対象信号だけが含まれている。つまり、第２ベクトル量子化ステップは、第１ベクトル量子化では値が０になってしまった第１符号化対象信号に０以外の値を付ける処理である。したがって、ミュージカルノイズの原因のひとつであるフレームごとに周波数成分の有無が変化することを避けながら、第１符号化対象信号と第１量子化信号との誤差を小さくするための符号である第２ベクトル量子化インデックスを求めることができる。したがって、限られたビット数での効率的なベクトル量子化を実現できる。
【００５９】
また、実施例１の符号化方法と復号方法によれば、例えば、１フレーム中の周波数成分の数を８０点（８０個の周波数領域信号）とし、第１ベクトル量子化部においてパルスが立てられた周波数成分の数が４０点（値が０以外の第１量子化信号が４０個）とすると、第１ベクトル量子化部１０４でベクトル量子化する点数が８０点であることに対し、第２ベクトル量子化部２０６でベクトル量子化する点数は４０点と半減できるので、ベクトル量子化の効率を向上させることも期待できる。
【００６０】
なお、本実施例では、第１ベクトル量子化部１０４の符号化の対象となる信号（第１符号化対象信号）は周波数領域に変換された音響信号を前提としていた。しかし、この信号に限定する必要はなく、周波数領域の音響信号の中の特定の周波数帯（例えば、８ｋＨｚ〜１４ｋＨｚなど）の音響信号を第１符号化対象信号としてもよいし、フレーム単位に分割された時間領域の音響信号を第１符号化対象信号としてもよい。
【００６１】
［変形例１］
実施例４変形例１は、復号器側の復号量子化正規化値を決めるときに、１つ過去のフレームの復号量子化正規化値も考慮する点が実施例４と異なる。構成と処理フローを示す図は実施例４と同じであり、図１４が実施例４変形例１の符号化器と復号器の構成例を、図１５が実施例４変形例１の符号化器と復号器の処理フロー例を示す。図１５（Ａ）は符号化器の処理フローを示しており、図１５（Ｂ）は復号器の処理フローを示している。実施例４変形例１の符号化器３００は実施例４と同じである。実施例４変形例１の復号器３５０’は、正規化値復号部１５７、第１ベクトル復号部１０８、Ｍ値計算部３１３、第２ベクトル復号部３０９、誤差修正部３１０、時間領域変換部１１１を備える。復号器３５０’は、復号器３００’と正規化値復号部１５７が異なる。その他の構成部は実施例４と同じである。また、正規化値復号部１５７は実施例２で説明した内容と同じ処理を行う。
【００６２】
実施例４変形例１の符号化方法と復号方法はこのような処理なので、実施例４の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。
【００６３】
［変形例２］
実施例４変形例２は、誤差修正部での復号信号の生成方法が実施例４と異なる。構成と処理フローを示す図は実施例４と同じであり、図１４が実施例４変形例２の符号化器と復号器の構成例を、図１５が実施例４変形例２の符号化器と復号器の処理フロー例を示す。図１５（Ａ）は符号化器の処理フローを示しており、図１５（Ｂ）は復号器の処理フローを示している。実施例４変形例２の符号化器３００は実施例４と同じである。実施例４変形例２の復号器３７０’は、正規化値復号部１０７、第１ベクトル復号部１０８、Ｍ値計算部３１３、第２ベクトル復号部３０９、誤差修正部３７５、時間領域変換部１１１を備える。復号器３７０’は、復号器３００’と誤差修正部３７５が異なる。その他の構成部は実施例４と同じである。
【００６４】
誤差修正部３７５は、第１復号量子化信号Ｘ＾（ｋ）の値が０かつ１フレーム過去の復号量子化正規化値Ｘ−’が０の場合は、現在のフレームの復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）の加重加算の結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする。第１復号量子化信号Ｘ＾（ｋ）の値が０かつ１フレーム過去の復号量子化正規化値Ｘ−’が０以外の場合は、現在のフレームの復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）と１フレーム過去の復号量子化正規化値Ｘ−’との加重加算の結果にランダムに生成した１または−１を乗算し、乗算結果を復号信号とする。また、第１復号量子化信号の値が０以外の場合は、第１復号量子化信号Ｘ＾（ｋ）を復号信号とする（Ｓ３７５）。
【００６５】
図１８に誤差修正部３７５の具体的な処理フローの例を示す。また、図１９にステップＳ３７５１の処理フローの例を示す。ｋ＝０、ｍ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ３１０１）。ステップＳ３１０１がＹｅｓの場合、ｍがＭより小さいことを確認する（Ｓ３１０２）。ステップＳ３１０２がＹｅｓの場合、ｍがＴｈより小さいことを確認する（Ｓ３１０３）。ステップＳ３１０３がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ３１０４）。ステップＳ３１０４がＹｅｓの場合、復号信号Ｚ（ｋ）を計算し、ｍの値を１つ増加させる（Ｓ３７５１）。ステップＳ３７５１では、次のような処理が行われる（図１９参照）。１フレーム過去の復号量子化正規化値Ｘ−’が０かを確認する（Ｓ３７５２）。ステップＳ３７５２がＹｅｓの場合、復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）の加重加算Ａ・Ｘ−＋Ｅ＾（ｋ）にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする（Ｓ３７５３）。ステップＳ３７５２がＮｏの場合、現在のフレームの復号量子化正規化値Ｘ−と第２復号量子化信号Ｅ＾（ｋ）と１フレーム過去の復号量子化正規化値Ｘ−’との加重加算
［α（Ａ・Ｘ−＋Ｅ＾（ｋ））＋β・Ａ・Ｘ−’］
にランダムに生成した１または−１を乗算し、乗算結果を復号信号Ｚ（ｋ）とする（Ｓ３７５４）。ここで、Ａは正規化値の調整用の正の数（例えば１．０）である。また、図中のｒａｎｄ（ｋ）は、ランダムに１または−１を生成する関数を示しており、乱数などを用いて計算してもよい。このように、ランダムに１または−１を乗算するのは、すべての周波数で復号信号が正の値となったのでは、歪んだ音になってしまうからであり、ランダムに１または−１を乗算することによって自然な音を作り出すことができる。ステップＳ３１０２、Ｓ３１０３、Ｓ３１０４がＮｏの場合、Ｘ＾（ｋ）をＺ（ｋ）とする（Ｓ３１０６）。そして、ｋの値を１つ増加させ（Ｓ３１０７）、ステップＳ３１０１に戻る。Ｓ３１０１がＮｏの場合、処理を終了する。
【００６６】
実施例４変形例２の符号化方法と復号方法はこのような処理なので、実施例４の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。
【実施例５】
【００６７】
実施例４では、第２ベクトル量子化部３０６において、量子化正規化値Ｘ−を用いて正規化する。また、第２ベクトル復号部３０９においても、復号量子化正規化値Ｘ−を用いて逆正規化する。しかしながら、第２ベクトル量子化部では、値が０であった第１量子化信号Ｘ＾（ｋ）に対応する周波数領域信号のみで構成された誤差信号Ｅ（ｍ）をベクトル量子化する。したがって、誤差信号Ｅ（ｍ）用の正規化値を用いた方が、正規化の精度が向上し、効率的にベクトル量子化できる。そこで、本実施例では、誤差信号Ｅ（ｍ）から求められた正規化値（以下、「再計算正規化値Ｅ−」という。）で正規化する。
【００６８】
図２０に実施例５の符号化器と復号器の構成例を示す。図２１に実施例５の符号化器と復号器の処理フロー例を示す。図２１（Ａ）は符号化器の処理フローを示しており、図２１（Ｂ）は復号器の処理フローを示している。符号化器４００は、周波数領域変換部１０１、正規化値計算部１０２、正規化値量子化部１０３、第１ベクトル量子化部１０４、誤差計算部３１２、正規化値再計算部４１５、第２ベクトル量子化部４０６を備える。復号器４００’は、正規化値復号部１０７、第１ベクトル復号部１０８、Ｍ値計算部３１３、正規化値再計算部４１６、第２ベクトル復号部４０９、誤差修正部３１０、時間領域変換部１１１を備える。符号化器４００は、符号化器３００と正規化値再計算部４１５、第２ベクトル量子化部４０６が異なる。また、復号器４００’は、復号器３００’と正規化値再計算部４１６、第２ベクトル復号部４０９が異なる。その他の構成部は実施例４と同じである。
【００６９】
正規化値再計算部４１５は、第１量子化信号Ｘ＾（ｋ）と、量子化正規化値Ｘ−と、値が０の第１量子化信号の数Ｍと、第２ベクトル量子化部４０６で用いられる数Ｍに近い量子化ベクトルの次数の倍数Ｔｈが入力される。正規化値再計算部４１５は、誤差信号Ｅ（ｍ）に対する正規化値を再計算し、再計算正規化値Ｅ−として出力する（Ｓ４１５）。図２２は再計算正規化値Ｅ−を求める処理フローの例である。ｋ＝０、ｔｍｐ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ４１５１）。ステップＳ４１５１がＹｅｓの場合、ｔｍｐに｜Ｘ＾（ｋ）｜２を加算する（Ｓ４１５６）。ｋの値を１つ増加させ（Ｓ４１５７）、ステップＳ４１５１に戻る。Ｓ４１５１がＮｏの場合、再計算正規化値Ｅ−を
【００７０】
【数２】
2011009861.tif 000004
【００７１】
のように求め（Ｓ４１５８）、処理を終了する。
また、図２３は再計算正規化値Ｅ−を求める別の処理フローの例である。このフローでは値が０の第１量子化信号の数を再度計算している。ｋ＝０、ｍ＝０、ｔｍｐ＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ４１５１）。ステップＳ４１５１がＹｅｓの場合、ｍがＭより小さいことを確認する（Ｓ４１５２）。ステップＳ４１５２がＹｅｓの場合、ｍがＴｈより小さいことを確認する（Ｓ４１５３）。ステップＳ４１５３がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ４１５４）。ステップＳ４１５４がＹｅｓの場合、ｍの値を１つ増加させる（Ｓ４１５５）。ステップＳ４１５２、Ｓ４１５３、Ｓ４１５４がＮｏの場合、ｔｍｐに｜Ｘ＾（ｋ）｜２を加算する（Ｓ４１５６）。そして、ｋの値を１つ増加させ（Ｓ４１５７）、ステップＳ４１５１に戻る。Ｓ４１５１がＮｏの場合、再計算正規化値Ｅ−を
【００７２】
【数３】
2011009861.tif 000005
【００７３】
のように求め（Ｓ４１５８’）、処理を終了する。図２２の処理フローでも、図２３の処理フローでも、再計算正規化値Ｅ−は、量子化正規化値Ｘ−の二乗に周波数領域信号Ｘ（ｋ）の数Ｌを乗算し、乗算結果から第１量子化信号Ｘ＾（ｋ）のパワー｜Ｘ＾（ｋ）｜２の合計を減算し、減算結果を値が０の第１量子化信号の数Ｍで除算し、除算結果の平方根を再計算正規化値Ｅ−としている。
【００７４】
第２ベクトル量子化部４０６は、正規化に再計算正規化値Ｅ−を用いることが実施例４の第２ベクトル量子化部３０６と異なるが、その他は同じである。すなわち、第２ベクトル量子化部４０６は、誤差信号Ｅ（ｍ）と再計算正規化値Ｅ−と値が０の第１量子化信号の数Ｍを入力とする。第２ベクトル量子化部４０６は、誤差信号Ｅ（ｍ）を再計算正規化値Ｅ−で割り算する、もしくは逆数を乗ずることで正規化し、正規化誤差信号を求める。そして、正規化誤差信号を、Ｍ点または量子化ベクトルの次数の倍数Ｔｈでベクトル量子化し、量子化代表ベクトルのインデックスを第２ベクトル量子化インデックスＣ２として出力する（Ｓ４０６）。
【００７５】
次に復号器４００’の相違点について説明する。正規化値再計算部４１６は、正規化値再計算部４１５と同じ処理によって復号器４００’用の再計算正規化値Ｅ−を求める。再計算正規化値Ｅ−を図２２や図２３の処理フローにしたがって求めるのであれば、再計算正規化値Ｅ−の情報を符号化器から復号器に伝える必要はなく、ビットの使用を避けることができる。
【００７６】
第２ベクトル復号部４０９は、正規化に再計算正規化値Ｅ−を用いることが実施例４の第２ベクトル復号部３０９と異なるが、その他は同じである。すなわち、第２ベクトル復号部４０９は、第２ベクトル量子化インデックスＣ２と再計算正規化値Ｅ−と値が０である第１復号量子化信号Ｘ＾（ｋ）の数Ｍを入力とする。第２ベクトル復号部４０９は、Ｍ点または量子化ベクトルの次数の倍数Ｔｈで第２ベクトル量子化インデックスＣ２を復号し、正規化された信号である正規化第２復号量子化信号を求め、正規化第２復号量子化信号に再計算正規化値Ｅ−を乗算することで逆正規化し、第２復号量子化信号Ｅ＾（ｍ）として出力する（Ｓ４０９）。
【００７７】
このような処理なので、実施例５の符号化方法と復号方法によれば、実施例４の符号化方法と復号方法と同じ効果が得られる。そして、誤差信号Ｅ（ｍ）用の正規化値を用いているので、正規化の精度が向上し、さらに効率的にベクトル量子化できる。
【００７８】
なお、本実施例では、第１ベクトル量子化部１０４の符号化の対象となる信号（第１符号化対象信号）は周波数領域に変換された音響信号を前提としていた。しかし、この信号に限定する必要はなく、周波数領域の音響信号の中の特定の周波数帯（例えば、８ｋＨｚ〜１４ｋＨｚなど）の音響信号を第１符号化対象信号としてもよいし、フレーム単位に分割された時間領域の音響信号を第１符号化対象信号としてもよい。
【００７９】
［変形例１］
実施例５変形例１は、復号器側の復号量子化正規化値を決めるときに、１つ過去のフレームの復号量子化正規化値も考慮する点が実施例５と異なる。構成と処理フローを示す図は実施例５と同じであり、図２０が実施例５変形例１の符号化器と復号器の構成例を、図２１が実施例５変形例１の符号化器と復号器の処理フロー例を示す。図２１（Ａ）は符号化器の処理フローを示しており、図２１（Ｂ）は復号器の処理フローを示している。実施例５変形例１の符号化器４００は実施例５と同じである。実施例５変形例１の復号器４５０’は、正規化値復号部１５７、第１ベクトル復号部１０８、Ｍ値計算部３１３、正規化値再計算部４１６、第２ベクトル復号部４０９、誤差修正部３１０、時間領域変換部１１１を備える。復号器４５０’は、復号器４００’と正規化値復号部１５７が異なる。その他の構成部は実施例５と同じである。また、正規化値復号部１５７は実施例２で説明した内容と同じ処理を行う。
【００８０】
実施例５変形例１の符号化方法と復号方法はこのような処理なので、実施例５の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。
【００８１】
［変形例２］
実施例５変形例２は、誤差修正部での復号信号の生成方法が実施例５と異なる。構成と処理フローを示す図は実施例５と同じであり、図２０が実施例５変形例２の符号化器と復号器の構成例を、図２１が実施例５変形例２の符号化器と復号器の処理フロー例を示す。図２１（Ａ）は符号化器の処理フローを示しており、図２１（Ｂ）は復号器の処理フローを示している。実施例５変形例２の符号化器４００は実施例５と同じである。実施例５変形例２の復号器４７０’は、正規化値復号部１０７、第１ベクトル復号部１０８、Ｍ値計算部３１３、正規化値再計算部４１６、第２ベクトル復号部４０９、誤差修正部３７５、時間領域変換部１１１を備える。復号器４７０’は、復号器４００’と誤差修正部３７５が異なる。その他の構成部は実施例５と同じである。誤差修正部３７５は、実施例４変形例２で説明した内容と同じ処理を行う（図１８、図１９参照）。
【００８２】
実施例５変形例２の符号化方法と復号方法はこのような処理なので、実施例５の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。
【実施例６】
【００８３】
量子化正規化値Ｘ−及び第１量子化信号Ｘ＾（ｋ）と目標値（周波数領域信号の正規化値Ｘ−０及び周波数領域信号Ｘ（ｋ））との誤差が大きい場合、実施例５の再計算正規化値Ｅ−の計算方法では、再計算正規化値Ｅ−を精度良く計算できないときがある。この場合、例えば再計算正規化値Ｅ−を小さく見積もりすぎれば周波数成分の欠損の原因となり、再計算正規化値Ｅ−を大きく見積もりすぎれば量子化ノイズ発生の原因となる。そこで、本実施例では、正規化値再計算部５１５、５１６において、以下の方法で再計算正規化値Ｅ−を計算する。
【００８４】
図２４に実施例６の符号化器と復号器の構成例を示す。図２５に実施例６の符号化器と復号器の処理フロー例を示す。図２６（Ａ）は符号化器の処理フローを示しており、図２６（Ｂ）は復号器の処理フローを示している。符号化器５００は、周波数領域変換部１０１、正規化値計算部１０２、正規化値量子化部１０３、第１ベクトル量子化部１０４、誤差計算部３１２、正規化値再計算部５１５、第２ベクトル量子化部４０６を備える。復号器５００’は、正規化値復号部１０７、第１ベクトル復号部１０８、Ｍ値計算部３１３、正規化値再計算部５１６、第２ベクトル復号部４０９、誤差修正部３１０、時間領域変換部１１１を備える。符号化器５００は、符号化器４００と正規化値再計算部５１５が異なる。また、復号器５００’は、復号器４００’と正規化値再計算部５１６が異なる。その他の構成部は実施例５と同じである。
【００８５】
正規化値再計算部５１５、５１６では、以下のように再計算正規化値Ｅ−を求める。図２６は再計算正規化値Ｅ−を求める処理フローの例である。ｋ＝０、ｔｍｐ＝０、ｔｍｐ２＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ５１５１）。ステップＳ５１５１がＹｅｓの場合、ｔｍｐに｜Ｘ＾（ｋ）｜２を加算し、ｔｍｐ２に｜Ｘ＾（ｋ）｜を加算する（Ｓ５１５６）。ｋの値を１つ増加させ（Ｓ５１５７）、ステップＳ５１５１に戻る。Ｓ５１５１がＮｏの場合、第１再計算値Ｅ−１と第２再計算値Ｅ−２を
【００８６】
【数４】
2011009861.tif 000006
【００８７】
のように求める（Ｓ５１５８）。Ｅ−１がＥ−２のＡ１倍より大きいかを確認する（Ｓ５１５９）。Ａ１は、どちらの候補を選ぶかの基準となる調整用の定数であり、例えばＡ１＝０．５である。ステップＳ５１５９がＹｅｓの場合、第１再計算値Ｅ−１を再計算正規化値Ｅ−とし（Ｓ５１６０）、ステップＳ５１５９がＮｏの場合、第２再計算値Ｅ−２を再計算正規化値Ｅ−とする（Ｓ５１６１）。Ｅ−がＸ−のＡ２倍より小さいかを確認する（Ｓ５１６２）。Ａ２は、Ｅ−が矛盾する値となっていないかを確認するための定数であり、例えばＡ２＝１である。ステップＳ５１６２がＹｅｓの場合処理を終了し、ステップＳ５１６２がＮｏの場合、再計算正規化値Ｅ−を量子化正規化値Ｘ−に置き換え（Ｓ５１６３）、処理を終了する。
【００８８】
図２７は再計算正規化値Ｅ−を求める別の処理フローの例である。このフローでは値が０の第１量子化信号の数を再度計算している。ｋ＝０、ｍ＝０、ｔｍｐ＝０、ｔｍｐ２＝０として処理を始める。ｋがＬ（周波数領域信号Ｘ（ｋ）の数）よりも小さいかを確認する（Ｓ５１５１）。ステップＳ５１５１がＹｅｓの場合、ｍがＭより小さいことを確認する（Ｓ５１５２）。ステップＳ５１５２がＹｅｓの場合、ｍがＴｈより小さいことを確認する（Ｓ５１５３）。ステップＳ５１５３がＹｅｓの場合、Ｘ＾（ｋ）が０かを確認する（Ｓ５１５４）。ステップＳ５１５４がＹｅｓの場合、ｍの値を１つ増加させる（Ｓ５１５５）。ステップＳ５１５２、Ｓ５１５３、Ｓ５１５４がＮｏの場合、ｔｍｐに｜Ｘ＾（ｋ）｜２を加算し、ｔｍｐ２に｜Ｘ＾（ｋ）｜を加算する（Ｓ５１５６）。ｋの値を１つ増加させ（Ｓ５１５７）、ステップＳ５１５１に戻る。Ｓ５１５１がＮｏの場合、第１再計算値Ｅ−１と第２再計算値Ｅ−２を
【００８９】
【数５】
2011009861.tif 000007
【００９０】
のように求める（Ｓ５１５８’）。ステップＳ５１５９からＳ５１６３までの処理は図２６と同じである。図２６の処理フローでも、図２７の処理フローでも、第１再計算値Ｅ−１は、量子化正規化値Ｘ−の二乗に周波数領域信号Ｘ（ｋ）の数Ｌを乗算し、乗算結果から第１量子化信号Ｘ＾（ｋ）のパワー｜Ｘ＾（ｋ）｜２の合計を減算し、減算結果を値が０の第１量子化信号の数Ｍで除算し、除算結果の平方根を第１再計算値Ｅ−１としている。また、第２再計算値Ｅ−２は、量子化正規化値Ｘ−に周波数領域信号Ｘ（ｋ）の数Ｌを乗算し、乗算結果から第１量子化信号Ｘ＾（ｋ）の絶対値｜Ｘ＾（ｋ）｜の合計を減算し、減算結果を値が０の第１量子化信号の数Ｍで除算し、除算結果を第２再計算値Ｅ−２としている。
【００９１】
このような処理なので、実施例６の符号化方法と復号方法によれば、実施例５の符号化方法と復号方法と同じ効果が得られる。そして、再計算正規化値Ｅ−をより精度良く計算できるので、正規化の精度が向上し、さらに効率的にベクトル量子化できる。
【００９２】
［変形例１］
実施例６変形例１は、復号器側の復号量子化正規化値を決めるときに、１つ過去のフレームの復号量子化正規化値も考慮する点が実施例６と異なる。構成と処理フローを示す図は実施例６と同じであり、図２４が実施例６変形例１の符号化器と復号器の構成例を、図２５が実施例６変形例１の符号化器と復号器の処理フロー例を示す。図２５（Ａ）は符号化器の処理フローを示しており、図２５（Ｂ）は復号器の処理フローを示している。実施例６変形例１の符号化器４００は実施例６と同じである。実施例６変形例１の復号器５５０’は、正規化値復号部１５７、第１ベクトル復号部１０８、Ｍ値計算部３１３、正規化値再計算部５１６、第２ベクトル復号部４０９、誤差修正部３１０、時間領域変換部１１１を備える。復号器５５０’は、復号器５００’と正規化値復号部１５７が異なる。その他の構成部は実施例６と同じである。また、正規化値復号部１５７は実施例２で説明した内容と同じ処理を行う。
【００９３】
実施例６変形例１の符号化方法と復号方法はこのような処理なので、実施例６の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。
【００９４】
［変形例２］
実施例６変形例２は、誤差修正部での復号信号の生成方法が実施例６と異なる。構成と処理フローを示す図は実施例６と同じであり、図２４が実施例６変形例２の符号化器と復号器の構成例を、図２５が実施例６変形例２の符号化器と復号器の処理フロー例を示す。図２６（Ａ）は符号化器の処理フローを示しており、図２５（Ｂ）は復号器の処理フローを示している。実施例６変形例２の符号化器５００は実施例６と同じである。実施例６変形例２の復号器５７０’は、正規化値復号部１０７、第１ベクトル復号部１０８、Ｍ値計算部３１３、正規化値再計算部５１６、第２ベクトル復号部４０９、誤差修正部３７５、時間領域変換部１１１を備える。復号器５７０’は、復号器５００’と誤差修正部３７５が異なる。その他の構成部は実施例６と同じである。誤差修正部３７５は、実施例４変形例２で説明した内容と同じ処理を行う（図１８、図１９参照）。
【００９５】
実施例６変形例２の符号化方法と復号方法はこのような処理なので、実施例６の符号化方法、復号方法と同様の効果が得られる。さらに、復号器側の復号量子化正規化値Ｘ−の時間軸方向の不連続性によって量子化出力に生じるミュージカルノイズを軽減することができる。
【００９６】
実験結果
実施例６変形例２の方法での効果を確認するため、実験を行った。図２８は楽器のみのオーケストラを対象としたときの実験結果を示す図、図２９は歌を含んでいるオーケストラを対象としたときの実験結果を示す図、図３０は楽器のみのストリングを対象としたときの実験結果を示す図、図３１は歌を含んでいるポップスを対象としたときの実験結果を示す図、図３２は管楽器（歌なし）を対象としたときの実験結果を示す図、図３３は歌のみを対象としたときの実験結果を示す図である。各図とも、横軸は時間、縦軸は次式に示すＳＮ比を示しており、大きい値ほど品質がよい。
【００９７】
【数６】
2011009861.tif 000008
【００９８】
また、点線は従来の方法で符号化、復号した場合、実線は実施例６変形例２の方法で符号化、復号した場合を示している。なお、第１符号化対象信号は、ＭＤＣＴ(Modified Discrete Cosine Transform)で周波数領域に変換された周波数領域信号である。どの実験結果でも、本発明の品質の方がよいことが分かる。このことからも、本発明が限られたビット数での効率的なベクトル量子化を実現できることが分かる。
【００９９】
プログラムなど
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１００】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０１０１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０１０２】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【０１０３】
１００、２００、３００、４００、５００  符号化器
１００’、２００’、２５０’、２７０’、３００’、３５０’、３７０’  復号器
４００’、４５０’、４７０’、５００’、５５０’、５７０’  復号器
１０１  周波数領域変換部
１０２  正規化値計算部
１０３  正規化値量子化部
１０４  第１ベクトル量子化部
１０５、２０５、３１２  誤差計算部
１０６、２０６、３０６、４０６  第２ベクトル量子化部
１０７、１５７  正規化値復号部
１０８  第１ベクトル復号部
１０９、２０９、３０９、４０９  第２ベクトル復号部
１１０、２１０、２７５、３１０、３７５  誤差修正部
１１１  時間領域変換部
３１３  Ｍ値計算部
４１５、４１６、５１５、５１６  正規化値再計算部
【図１】
2011009861.tif 000013
【図２】
2011009861.tif 000014
【図３】
2011009861.tif 000015
【図４】
2011009861.tif 000016
【図５】
2011009861.tif 000017
【図６】
2011009861.tif 000018
【図７】
2011009861.tif 000019
【図８】
2011009861.tif 000020
【図９】
2011009861.tif 000021
【図１０】
2011009861.tif 000022
【図１１】
2011009861.tif 000023
【図１２】
2011009861.tif 000024
【図１３】
2011009861.tif 000025
【図１４】
2011009861.tif 000026
【図１５】
2011009861.tif 000027
【図１６】
2011009861.tif 000028
【図１７】
2011009861.tif 000029
【図１８】
2011009861.tif 000030
【図１９】
2011009861.tif 000031
【図２０】
2011009861.tif 000032
【図２１】
2011009861.tif 000033
【図２２】
2011009861.tif 000034
【図２３】
2011009861.tif 000035
【図２４】
2011009861.tif 000036
【図２５】
2011009861.tif 000037
【図２６】
2011009861.tif 000038
【図２７】
2011009861.tif 000039
【図２８】
2011009861.tif 000040
【図２９】
2011009861.tif 000041
【図３０】
2011009861.tif 000042
【図３１】
2011009861.tif 000043
【図３２】
2011009861.tif 000044
【図３３】
2011009861.tif 000045