(57)【要約】  多段ベクトル量子化において、前段のベクトル量子化結果に適応して後段のベクトル量子化を行い、より少ない計算量およびビットレートで、量子化精度を向上させることができるベクトル量子化装置。この装置において、積集合円算出部（１０８）は、第１コードブック（１０１）の中から第１段目の量子化結果として選択された第１コードベクトルのクラスタ円と、第２コードブック（１０５）の中から第２段目の量子化結果として選択された第２コードベクトルのクラスタ円との積集合を表す積集合円を算出し、調整部（１０９）は、第３コードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第３コードブックのクラスタ円と、積集合円算出部（１０８）で算出された積集合円とが合致するように、第２段目の量子化誤差または第３コードブックを調整する。
2009090875.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、
第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。
【請求項２】
前記積集合円算出手段は、
前記第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円の半径と前記第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円の半径とを用いて、前記積集合円の半径および中心を算出する、
請求項１記載のベクトル量子化装置。
【請求項３】
前記調整手段は、
前記第Ｎコードブックのクラスタ円に対して中心の移動および半径の変更を行う、
請求項１記載のベクトル量子化装置。
【請求項４】
前記調整手段は、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルの移動および大きさの変更を行う、
請求項１記載のベクトル量子化装置。
【請求項５】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、
前記第ｍ−１コードブックを用いて入力ベクトルもしくは前記第ｍ−１残差ベクトルをベクトル量子化して第ｍ−１符号を得るとともに、前記第ｍ残差ベクトルをベクトル量子化して第ｍ符号を得る量子化手段と、
第Ｎ−２符号及び第Ｎ−１符号に基づいて、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径と中心とを選択して出力する積集合円算出手段と、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。
【請求項６】
前記積集合円算出手段は、第１符号及び前記第ｍ符号により前記半径及び前記中心が一意に決定できる積集合円コードブックを有する、
請求項５記載のベクトル量子化装置。
【請求項７】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、
第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ−２，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択し、第Ｎ−１コードブックの中から第Ｎ−２残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。
【請求項８】
ベクトル量子化装置において入力ベクトルに対して第ｎ（ｎ＝１，２，…，Ｎ；Ｎは３以上の整数）段目の量子化を行って得られた第ｎ符号を受信する受信手段と、
それぞれが複数のコードベクトルを記憶する第１から第ＮまでのＮ個のコードブックと、
第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、
第１コードブックのうち第１符号が示すコードベクトルと、第２コードブックのうち第２符号が示すコードベクトルと、を加算して第１加算ベクトルを得る第１加算手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックのうち第ｍ符号が示すコードベクトルと、第ｍ−１加算ベクトルとを加算して第ｍ加算ベクトルを得る第ｍ加算手段と、
第Ｎ−２コードブックのうち第Ｎ−２符号が示すコードベクトルのクラスタ円と、第Ｎ−１コードブックのうち第Ｎ−１符号が示すコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Ｎコードブックのうち第Ｎ符号が示すコードベクトルである第Ｎコードベクトルのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１加算ベクトルまたは前記第Ｎコードベクトルを調整する調整手段と、
前記調整された第Ｎコードベクトルと、前記第Ｎ−１加算ベクトルとを加算する、または、前記調整された第Ｎ−１加算ベクトルと、前記第Ｎコードベクトルとを加算することにより量子化ベクトルを得る第Ｎ加算手段と、
を具備するベクトル逆量子化装置。
【請求項９】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックからＮ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックとを用いて、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出ステップと、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出ステップと、
第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出ステップと、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整ステップと、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出ステップと、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択ステップと、
を実行するベクトル量子化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトルの量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関し、特にインターネット通信に代表されるパケット通信システムや、移動通信システム等の分野で、音声信号の伝送を行う音声符号化・復号装置に用いられる、ＬＳＰ（Line Spectral Pairs）パラメータのベクトル量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関する。
【背景技術】
【０００２】
ディジタル無線通信や、インターネット通信に代表されるパケット通信、あるいは音声蓄積などの分野においては、電波などの伝送路容量や記憶媒体の有効利用を図るため、音声信号の符号化・復号技術が不可欠である。その中で特に、ＣＥＬＰ（Code Excited Linear Prediction）方式の音声符号化・復号技術が主流の技術となっている。【０００３】
ＣＥＬＰ方式の音声符号化装置は、予め記憶された音声モデルに基づいて入力音声を符号化する。具体的には、ＣＥＬＰ方式の音声符号化装置は、ディジタル化された音声信号を１０〜２０ｍｓ程度の一定時間間隔のフレームに区切り、各フレーム内の音声信号に対して線形予測分析を行い線形予測係数（ＬＰＣ：Linear Prediction Coefficient）と線形予測残差ベクトルを求め、線形予測係数と線形予測残差ベクトルとをそれぞれ個別に符号化する。線形予測係数を符号化する方法としては、線形予測係数をＬＳＰ（Line Spectral Pairs）パラメータに変換し、ＬＳＰパラメータを符号化することが一般的である。また、ＬＳＰパラメータを符号化する方法としては、ＬＳＰパラメータに対してベクトル量子化を行うことが多い。ベクトル量子化とは、代表的なベクトル（コードベクトル）を複数持つ符号帳（コードブック）の中から、量子化対象のベクトルに最も近いコードベクトルを選択し、選択されたコードベクトルに付与されているインデクス（符号）を量子化結果として出力する方法である。ベクトル量子化においては、使用できる情報量に応じてコードブックのサイズが決まる。例えば、８ビットの情報量でベクトル量子化を行う場合、コードブックは２５６（＝２８）種類のコードベクトルを用いて構成することができる。【０００４】
また、ベクトル量子化における情報量、計算量を低減するために、例えば非特許文献１記載の多段ベクトル量子化（ＭＳＶＱ：Multi-Stage Vector Quantization）、または分割ベクトル量子化（ＳＶＱ：Split Vector Quantization）などの様々な技術が用いられている。多段ベクトル量子化とは、ベクトルを一度ベクトル量子化した後に量子化誤差を更にベクトル量子化する方法であり、分割ベクトル量子化とは、ベクトルを複数に分割して得られた分割ベクトルをそれぞれ量子化する方法である。
【非特許文献１】Allen Gersho、Robert M. Gray著、古井、外３名訳、「ベクトル量子化と情報圧縮」、コロナ社、１９９８年１１月１０日、p.506、524-531
【発明の開示】
【発明が解決しようとする課題】
【０００５】
多段ベクトル量子化においては、各段で選択されるコードベクトルの組み合わせでターゲットベクトルが表現される。従って、各段のコードベクトルのすべての組み合わせが代表するクラスタを重複せず各々独立して持っている方が、量子化精度も向上し量子化効率も向上する。ここで、クラスタとはコードベクトルにより代表されるターゲットベクトルの集合をいう。しかしながら、非特許文献１記載の多段ベクトル量子化において、各段のコードベクトルの各組み合わせが代表するクラスタは、一部重複してしまう。従って、一部クラスタを表現することができる、各段のコードベクトルの組み合わせが２つ以上存在してしまい、量子化精度の劣化および量子化ビットレートの増加が発生してしまう。【０００６】
図１は、非特許文献１記載の多段ベクトル量子化における問題点を説明するための図である。【０００７】
図１Ａにおいて、黒丸は、１段目のベクトル量子化で用いられる第１コードブックを構成する第１コードベクトルの一部を例示する。実線で区切られる２次元空間は、第１コードベクトルそれぞれが代表するベクトル集合の領域（クラスタ）を示す。なお、以下においては、コードブックを構成するすべてのコードベクトルそれぞれが代表するベクトルの集合を、このコードブックのクラスタと称す。図１Ａに示すように、互いに異なる第１コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。【０００８】
ベクトル量子化とは、量子化対象であるターゲットベクトルが属するクラスタを代表するコードベクトルを探索することである。始めに、１段目のベクトル量子化が行われ、１つの第１コードベクトルが選択される。図１Ｂは、１段目のベクトル量子化において１つの第１コードベクトルが選択された状態を表す図である。図１Ｂにおいては、十字丸１１はターゲットベクトルを示し、破線に囲まれる空間は、ターゲットベクトルが属するクラスタを示す。また、黒丸１２は、ターゲットベクトルが属するクラスタを代表する第１コードベクトルを示す。【０００９】
次いで、２段目のベクトル量子化が行われ、第２コードブックを構成する第２コードベクトルのうちの１つが選択される。図１Ｃは、２段目のベクトル量子化が行われ、１つの第２コードベクトルが選択される状態を表す図である。図１Ｃは、図１Ｂを基に、さらに白丸１３を用いて、２段目のベクトル量子化で選択された第２コードベクトルを示している。また、点破線で囲まれる空間は、２段目のベクトル量子化で選択された第２コードベクトルが代表するクラスタを模式的に表している。便宜上図示していないものの、選択された第２コードベクトルの周りにも、他の第２コードベクトルと、これら他の第２コードベクトルが代表するクラスタが存在する。なお、ここでも、互いに異なる第２コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。２段目のベクトル量子化は、１段目のベクトル量子化で選択された第１コードベクトル（黒丸１２）を中心として行われ、これにより、量子化結果である第２コードベクトル（白丸１３）をターゲットベクトル（十字丸１１）に更に近付ける。【００１０】
図１に示したように、１段目のベクトル量子化（図１Ｂ参照）で黒丸１２の第１コードベクトルが選択され、２段目のベクトル量子化（図１Ｃ参照）で白丸１３の第２コードベクトルが選択された。ここで、上述（図１Ｂ、図１Ｃ参照）したように、第１コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、また、第２コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル（十字丸１１）は必ず、黒丸１２が代表するクラスタと、白丸１３が代表するクラスタとの積集合に含まれるはずである。しかしながら、非特許文献１記載の多段ベクトル量子化においては、続いて行われる３段目のベクトル量子化を、２段目のベクトル量子化で選択された第２コードベクトル（白丸１３）を中心として行い、上記の積集合以外の領域も探索して第３コードベクトルを選択する。従って、３段目のベクトル量子化の効率および量子化精度が劣化してしまう。【００１１】
本発明の目的は、多段ベクトル量子化において、前段のベクトル量子化結果に適応して後段のベクトル量子化を行い、量子化精度を向上させることができるベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。【００１３】
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、前記第ｍ−１コードブックを用いて入力ベクトルもしくは前記第ｍ−１残差ベクトルをベクトル量子化して第ｍ−１符号を得るとともに、前記第ｍ残差ベクトルをベクトル量子化して第ｍ符号を得る量子化手段と、第Ｎ−２符号及び第Ｎ−１符号に基づいて、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径と中心とを選択して出力する積集合円算出手段と、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。【００１４】
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ−２，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択し、第Ｎ−１コードブックの中から第Ｎ−２残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコードベクトルを選択する選択手段と、を具備する構成を採る。【００１５】
本発明のベクトル逆量子化装置は、ベクトル量子化装置において入力ベクトルに対して第ｎ（ｎ＝１，２，…，Ｎ；Ｎは３以上の整数）段目の量子化を行って得られた第ｎ符号を受信する受信手段と、それぞれが複数のコードベクトルを記憶する第１から第ＮまでのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、第１コードブックのうち第１符号が示すコードベクトルと、第２コードブックのうち第２符号が示すコードベクトルと、を加算して第１加算ベクトルを得る第１加算手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックのうち第ｍ符号が示すコードベクトルと、第ｍ−１加算ベクトルとを加算して第ｍ加算ベクトルを得る第ｍ加算手段と、第Ｎ−２コードブックのうち第Ｎ−２符号が示すコードベクトルのクラスタ円と、第Ｎ−１コードブックのうち第Ｎ−１符号が示すコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Ｎコードブックのうち第Ｎ符号が示すコードベクトル（第Ｎコードベクトル）のクラスタ円と、前記積集合円とが合致するように、第Ｎ−１加算ベクトルまたは第Ｎコードベクトルを調整する調整手段と、前記調整された第Ｎコードベクトルと、前記第Ｎ−１加算ベクトルとを加算する、または、前記調整された第Ｎ−１加算ベクトルと、前記第Ｎコードベクトルと、を加算することにより量子化ベクトルを得る第Ｎ加算手段と、を具備する構成を採る。【００１６】
本発明のベクトル量子化方法は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックとを用いて、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出ステップと、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出ステップと、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出ステップと、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整ステップと、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出ステップと、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択ステップと、を実行するようにした。
【発明の効果】
【００１７】
本発明によれば、ＬＳＰパラメータ等のベクトルに対して複数段階の量子化を行う際に、そのうち２つの前段の量子化結果に基づき、後段の量子化に用いられるコードベクトルのベクトル空間を適応的に調整するため、量子化精度を向上することができる。
【図面の簡単な説明】
【００１８】
【図１】従来技術に係る多段ベクトル量子化の問題点を説明するための図
【図２】本発明の原理について説明するための図
【図３】図２に示した本発明の原理をより詳細に説明するための図
【図４】図２に示した本発明の原理をより詳細に説明するための図
【図５】本発明の実施の形態１に係るベクトル量子化装置の主要な構成を示すブロック図
【図６】本発明の実施の形態１に係る積集合円算出部の内部の構成を示すブロック図
【図７】本発明の実施の形態１に係るベクトル逆量子化装置の主要な構成を示すブロック図
【図８】本発明の実施の形態２に係るベクトル量子化装置の主要な構成を示すブロック図
【図９】本発明の実施の形態２に係る積集合円算出部の構成を示すブロック図
【図１０】本発明の実施の形態３に係るベクトル量子化装置の主要な構成を示すブロック図
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。【００２０】
（実施の形態１）
まず、本発明の原理について説明する。【００２１】
図２は、本発明の原理について説明するための図である。なお、図２は、図１と基本的に同様であり、図２Ｄが追加された点のみが相違する。すなわち、図２Ａ〜Ｃは、図１Ａ〜Ｃと同様であり、ここでは詳細な説明を省略する。【００２２】
図２Ｄは、１段目のベクトル量子化で選択された第１コードベクトル（黒丸１２）が代表するクラスタと、２段目のベクトル量子化で選択された第２コードベクトル（白丸）が代表するクラスタと、の積集合を網掛けの空間で表す図である。上述（図１Ｂ、図１Ｃ参照）したように、第１コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、第２コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル（十字丸１１）は必ず、黒丸１２が代表するクラスタと、白丸１３が代表するクラスタとの積集合に含まれるはずである。本発明においては、２段目以降の、例えば３段目のベクトル量子化でのコードベクトル探索を、上記積集合の領域内に限定して行うために、２段目以降（例えば３段目）のベクトル量子化に用いるコードブック（例えば第３コードブック）を構成するすべてのコードベクトル（例えば第３コードベクトル）が代表するクラスタの平均と分散を積集合（網掛けの空間）内部に収まるように適応制御する。これにより、全てのコードベクトルの組み合わせが代表するクラスタ群の独立性を保ち、２段目以降、例えば３段目のベクトル量子化において第３コードベクトルの探索範囲を積集合内部に制限することができる。従って、２段目以降のベクトル量子化の効率および精度が向上する。【００２３】
図３は、図２に示した本発明の原理をより詳細に説明するための図である。【００２４】
図３Ａにおいて、黒丸は、１段目のベクトル量子化で用いられる第１コードブックを構成する第１コードベクトルの一部を例示する。破線で区切られる２次元空間は、第１コードベクトルのクラスタを示し、これら各第１コードベクトルのクラスタは、円によって近似的に表されている。各クラスタを近似表現する円（以下、クラスタ円と称す）は、第１コードベクトルを中心とする。そして、各クラスタ円の半径は、第１コードブックの学習時において、各第１コードベクトルのクラスタに属する学習用ベクトルのうち、第１コードベクトルに最も遠い学習用ベクトルと、第１コードベクトルとの距離をとる。また、クラスタ円の中により多くのターゲットベクトルが包含されるように、上記の方法で求められるクラスタ円の半径に定数を掛け、半径を拡張しても良い。ここで、各コードベクトルのクラスタ円の半径は、全てのコードブックの学習時に予め求められ、クラスタ半径コードブックに格納される。図３Ａにおいて、クラスタ円の判定の例として、ｒ１を用いて、黒丸１２の第１コードベクトルが代表するクラスタ円の半径を示す。【００２５】
図３Ｂは、１段目のベクトル量子化により選択される第１コードベクトルのクラスタ円と２段目のベクトル量子化により選択される第２コードベクトルのクラスタ円との位置関係を例示する図である。本発明に係るベクトル量子化装置は、各段のベクトル量子化を行ってコードベクトルを選択し、各段で選択したコードベクトルのクラスタ円の半径をクラスタ半径コードブックから選び出す。図３Ｂにおいて、ｒ１は第１コードベクトル（黒丸１２）のクラスタ円の半径を示し、ｒ２は第２コードベクトル（白丸１３）の半径を示す。これにより、各段のベクトル量子化において選択されたコードベクトルのクラスタの位置関係を、クラスタ円で近似的に表現する。以下、第１コードベクトル（黒丸１２）のクラスタ円をクラスタ円ｒ１とも称し、第２コードベクトル（白丸１３）のクラスタ円をクラスタ円ｒ２とも称す。【００２６】
次いで、クラスタ円ｒ１とクラスタ円ｒ２との積集合を円で近似的に表す。以下、クラスタ円ｒ１とクラスタ円ｒ２との積集合を表す円を積集合円とも称す。図３Ｃは、クラスタ円ｒ１とクラスタ円ｒ２との積集合円の中点を示す図である。具体的には、破線丸１４を用いて、クラスタ円ｒ１とクラスタ円ｒ２との積集合を積集合円で近似的に表した場合の中心を示す。積集合円の中心（破線丸１４）は、クラスタ円ｒ１の中心と、クラスタ円ｒ２の中心とを通る直線上に位置する。破線丸１４から直線上の両方向それぞれへ向かって、クラスタ円ｒ１とクラスタ円ｒ２との積集合の周辺までの距離は両方ともｄである。すなわち、この２つの距離は同様にｄである。【００２７】
図３Ｄは、クラスタ円ｒ１とクラスタ円ｒ２との積集合円を示す図である。図３Ｄにおいては、表示の便宜上クラスタ円ｒ１を実線円で示し、クラスタ円ｒ２を破線円で示す。なお、これらのクラスタ円の半径および中心は図示していない。図３Ｄにおいて、距離ｄは、図３Ｃにおける距離ｄと同様であり、ｒ３は、積集合円の半径を示す。また、積集合円を点破線円で示す。積集合円の中心および半径は、第１コードベクトルと第２コードベクトルとの距離、クラスタ円の半径ｒ１、ｒ２から求めることができる。そして、本発明に係るベクトル量子化においては、第３コードブックのクラスタ円を積集合円ｒ３と合致するように調整を行ってから３段目のベクトル量子化を行う。【００２８】
なお、図４Ａのように、クラスタ円ｒ１の中にクラスタ円ｒ２が完全に内包される場合には、積集合円ｒ３としてクラスタ円ｒ２をそのまま用いる。すなわち、ｒ３＝ｒ２とする。また、図４Ｂのように、クラスタ円ｒ１とクラスタ円ｒ２との積集合が存在しない場合にも、積集合円ｒ３としてクラスタ円ｒ２をそのまま用いる。【００２９】
本発明に係るベクトル量子化においては、３段目のベクトル量子化を行う際に、第３コードブックのクラスタを、この積集合円ｒ３の中に収まるように、第３コードブック全体に対し係数を加算および乗算する。これにより、２段目以降のベクトル量子化の効率および精度を向上させる。以下、本発明の実施の形態において、この積集合円ｒ３の中心および半径の求め方について説明する。【００３０】
図５は、本発明の実施の形態１に係るベクトル量子化装置１００の主要な構成を示すブロック図である。ベクトル量子化装置１００の量子化対象としては、例えばＬＳＰベクトルまたは他のベクトルが挙げられる。なお、ここでは、ベクトル量子化装置１００の量子化対象である入力ベクトルを３段階の多段ベクトル量子化によりベクトル量子化する場合を例にとって説明する。【００３１】
ベクトル量子化装置１００は、第１コードブック１０１、加算器１０２、誤差最小化部１０３、第１半径コードブック１０４、第２コードブック１０５、加算器１０６、第２半径コードブック１０７、積集合円算出部１０８、調整部１０９、第３コードブック１１０、および加算器１１１を備える。【００３２】
第１コードブック１０１は、誤差最小化部１０３から指示された第１コードベクトルを、内蔵のコードブックの中から選択し加算器１０２に出力する。【００３３】
加算器１０２は、ベクトル量子化のターゲットとして外部から入力される入力ベクトルと、第１コードブック１０１から入力される第１コードベクトルとの差を求め、この差のベクトルを第１残差ベクトルとして誤差最小化部１０３と加算器１０６とに出力する。【００３４】
誤差最小化部１０３は、加算器１０２から入力される第１残差ベクトルを用いて入力ベクトルと第１コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第１コードベクトルを第１コードブック１０１の中から選択する。次いで、誤差最小化部１０３は、加算器１０６から入力される第２残差ベクトルを用いて第１残差ベクトルと第２コードベクトルとの二乗誤差を求め、誤差が最小となる第２コードベクトルを第２コードブック１０５の中から選択する。次いで、誤差最小化部１０３は、加算器１１１から入力される第３残差ベクトルを用いて第２残差ベクトルと第３コードベクトルとの二乗誤差を求め、誤差が最小となる第３コードベクトルを第３コードブック１１０の中から選択する。これらのコードベクトルを選択する処理は、１つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部１０３は、コードベクトルが選択される毎に、第１コードベクトルのインデクスを第１半径コードブック１０４に出力し、第２コードベクトルのインデクスを第２半径コードブック１０７に出力し、第２コードベクトルを積集合円算出部１０８に出力する。次いで、誤差最小化部１０３は、選択された３つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。【００３５】
第１半径コードブック１０４は、誤差最小化部１０３から第１コードベクトルのインデクスを入力し、このインデクスに対応する第１半径を内蔵のコードブックの中から選択して積集合円算出部１０８に出力する。ここで、第１半径とは、第１コードベクトルのクラスタ円の半径を指す。第１半径は、第１コードブック１０１を学習アルゴリズムにより予め作成する際に、同時に求めておく。【００３６】
第２コードブック１０５は、誤差最小化部１０３から指示された第２コードベクトルを内蔵のコードブックの中から選択し、加算器１０６に出力する。【００３７】
加算器１０６は、加算器１０２から入力される第１残差ベクトルと、第２コードブック１０５から入力される第２コードベクトルとの差を求め、この差のベクトルを第２残差ベクトルとして誤差最小化部１０３と調整部１０９とに出力する。【００３８】
第２半径コードブック１０７は、誤差最小化部１０３から第２コードベクトルのインデクスを入力し、このインデクスに対応する第２半径を内蔵のコードブックの中から選択して積集合円算出部１０８に出力する。ここで、第２半径とは、第２コードベクトルのクラスタ円の半径を指す。第２半径は、第２コードブック１０５を学習アルゴリズムにより予め作成する際に、同時に求めておく。【００３９】
積集合円算出部１０８は、第１半径コードブック１０４から入力される第１半径、第２半径コードブック１０７から入力される第２半径、誤差最小化部１０３から入力される第２コードベクトルを用いて、積集合円の中心および半径を求めて調整部１０９に出力する。なお、積集合円算出部１０８の詳細については後述する。【００４０】
調整部１０９は、加算器１０６から第２残差ベクトルを入力し、積集合円算出部１０８から入力される積集合円の中心および半径を用いて第２残差ベクトルを調整し、調整後の第２残差ベクトルを加算器１１１に出力する。３段目のベクトル量子化においては、積集合円の中心および半径に基づき第２残差ベクトルを調整してベクトル量子化を行う結果と、同様の積集合円の中心および半径に基づき第３コードブック１１０に対し逆の調整を行ってベクトル量子化する結果は同様となる。このため、調整部１０９においては、積集合円の中心および半径に基づき第２残差ベクトルの移動および大きさの変更を行う調整処理により、第３コードブック１１０に対し中心の移動および半径の変更を行う調整処理と同様な効果を得ている。【００４１】
第３コードブック１１０は、誤差最小化部１０３から指示された第３コードベクトルを、内蔵のコードブックの中から選択し加算器１１１に出力する。【００４２】
加算器１１１は、調整部１０９から入力される調整後の第２残差ベクトルと、第３コードブック１１０から入力される第３コードベクトルとの差を求め、この差のベクトルを第３残差ベクトルとして誤差最小化部１０３に出力する。【００４３】
図６は、積集合円算出部１０８の内部の構成を示すブロック図である。【００４４】
図６において、距離算出部１８１は、誤差最小化部１０３から入力される第２コードベクトルを用い、積集合円の中心および半径を算出するためのパラメータである距離ｄを求め、中心半径算出部１８２に出力する。【００４５】
中心半径算出部１８２は、第１半径コードブック１０４から入力される第１半径、第２半径コードブック１０７から入力される第２半径、誤差最小化部１０３から入力される第２コードベクトル、および距離算出部１８１から入力される距離ｄを用いて、積集合円の中心および半径を求めて調整部１０９に出力する。【００４６】
以下、ベクトル量子化装置１００の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がＲ次である場合を例にとって説明し、この入力ベクトルをＶ（ｉ）（ｉ＝０，１，…，Ｒ−１）と記す。【００４７】
第１コードブック１０１は、誤差最小化部１０３からの指示ｄ１’により、内蔵のコードブックを構成する各第１コードベクトルＣＯＤＥ＿１（ｄ１）（ｉ）（ｄ１＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）の中から、第１コードベクトルＣＯＤＥ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器１０２に出力する。ここで、Ｄ１は、第１コードブック１０１のコードベクトルの総数であり、ｄ１は、コードベクトルのインデクスである。誤差最小化部１０３は、ｄ１’＝０からｄ１’＝Ｄ１−１までｄ１’の値を順次変えながら、出力するコードベクトルを第１コードブック１０１に指示するものとする。【００４８】
加算器１０２は、量子化対象である入力ベクトルＶ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、第１コードブック１０１から入力される第１コードベクトルＣＯＤＥ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）との差を下記の式（１）に従って求め、この差のベクトルＥｒｒ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を第１残差ベクトルとして誤差最小化部１０３と加算器１０６とに出力する。【００４９】
【数１】
2009090875.tif 000003
誤差最小化部１０３は、第１コードブック１０１にコードベクトルのインデクスｄ１’を指示し、指示する毎に加算器１０２から入力される第１残差ベクトルＥｒｒ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（２）に従って二乗誤差Ｅｒｒを求める。【００５０】
【数２】
2009090875.tif 000004
次いで、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第１コードベクトルのインデクスｄ１’を第１インデクスｄ１＿ｍｉｎとして記憶すると共に第１インデクスｄ１＿ｍｉｎを第１半径コードブック１０４に出力する。【００５１】
第１半径コードブック１０４は、内蔵のコードブックを構成する各第１半径ｒ＿１（ｄ１）（ｄ１＝０，１，…，Ｄ１−１）の中から、誤差最小化部１０３から入力される第１インデクスｄ１＿ｍｉｎに対応する第１半径ｒ＿１（ｄ１＿ｍｉｎ）を積集合円算出部１０８に出力する。【００５２】
第２コードブック１０５は、誤差最小化部１０３からの指示ｄ２’により、内蔵のコードブックを構成する各第２コードベクトルＣＯＤＥ＿２（ｄ２）（ｉ）（ｄ２＝０，１，…，Ｄ２−１、ｉ＝０，１，…，Ｒ−１）の中から、第２コードベクトルＣＯＤＥ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器１０６に出力する。ここで、Ｄ２は、第２コードブック１０５のコードベクトルの総数であり、ｄ２は、コードベクトルのインデクスである。誤差最小化部１０３は、ｄ２’＝０からｄ２’＝Ｄ２−１までｄ２’の値を順次変えながら、出力するコードベクトルを第２コードブック１０５に指示するものとする。【００５３】
加算器１０６は、加算器１０２から入力される第１残差ベクトルＥｒｒ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と、第２コードブック１０５から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）との差を下記の式（３）に従って求め、この差のベクトルＥｒｒ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を第２残差ベクトルとして誤差最小化部１０３と調整部１０９とに出力する。【００５４】
【数３】
2009090875.tif 000005
誤差最小化部１０３は、第２コードブック１０５にコードベクトルのインデクスｄ２’を指示し、指示する毎に加算器１０６から入力される第２残差ベクトルＥｒｒ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（４）に従って二乗誤差Ｅｒｒを求める。【００５５】
【数４】
2009090875.tif 000006
次いで、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第２コードベクトルのインデクスｄ２’を第２インデクスｄ２＿ｍｉｎとして記憶すると共に第２インデクスｄ２＿ｍｉｎを第２半径コードブック１０７に出力する。また、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を積集合円算出部１０８に出力する。【００５６】
第２半径コードブック１０７は、内蔵のコードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、誤差最小化部１０３から入力される第２インデクスｄ２＿ｍｉｎに対応する第２半径ｒ＿２（ｄ２＿ｍｉｎ）を積集合円算出部１０８に出力する。【００５７】
積集合円算出部１０８において、距離算出部１８１は、誤差最小化部１０３から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用い、下記の式（５）に従って第１コードベクトルと第２コードベクトルとの距離ｄを求め、中心半径算出部１８２に出力する。式（５）では距離ｄを求める際に第１コードベクトルを用いていないが、これは第２コードベクトルの原点が第１コードベクトルに相当するためである。従って、第２コードベクトルの長さ自体がコードベクトル間の距離に相当する。【００５８】
【数５】
2009090875.tif 000007
次いで、積集合円算出部１０８の中心半径算出部１８２は、第１半径コードブック１０４から入力される第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径コードブック１０７から入力される第２半径ｒ＿２（ｄ２＿ｍｉｎ）と誤差最小化部１０３から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と距離算出部１８１から入力される距離ｄとを用い、下記の式（６），（７）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の中心および半径を近似的に求める。【００５９】
【数６】
2009090875.tif 000008
【００６０】
【数７】
2009090875.tif 000009
式（６），（７）において、ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）は積集合円の中心を表すベクトルであり、第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を始点として、積集合円の中心を終点とするベクトルである。また、ｃｅｎｔ＿ｒは積集合円の半径である。ここで、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合が存在しない場合、もしくは、一方のクラスタ円が他方のクラスタ円を完全に内包する場合には、式（６）に従い、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）を零ベクトル、積集合円の半径ｃｅｎｔ＿ｒを第２半径ｒ＿２（ｄ２＿ｍｉｎ）とする。すなわち、第２コードベクトルのクラスタ円をそのまま積集合円として用いる。また、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合が存在し、一方のクラスタ円が他方のクラスタ円を完全には内包しない場合は、式（７）に従い、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを求める。【００６１】
次いで、積集合円算出部１０８は、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを調整部１０９に出力する。【００６２】
調整部１０９は、積集合円算出部１０８から入力される積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）および半径ｃｅｎｔ＿ｒを用い下記の式（８）に従って、加算器１０６から入力される第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）に対して調整を行う。【００６３】
【数８】
2009090875.tif 000010
式（８）において、ＣＢＲ＿３は第３コードブック１１０の広がりを表す値であり、第３コードブック１１０が持つ第３コードベクトルの内、零点から最も遠い第３コードベクトルの、零点からの距離である。この値は、第３コードブック１１０を学習アルゴリズムにより予め作成する際に、同時に求めておく。また、調整後の第２残差ベクトルであるＡＤ＿Ｅｒｒ＿２（ｉ）（ｉ＝０，１，…，Ｒ−１）を、以下、調整第２残差ベクトルと呼ぶ。式（８）を用いて、３段目のベクトル量子化のターゲットである第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を調整することにより、第３コードブック１１０の平均および分散を積集合円に適応させることができる。すなわち、調整部１０９は、第３コードブック１１０のクラスタを積集合円の中に包含させるように、第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を調整する。【００６４】
次いで、調整部１０９は、調整第２残差ベクトルＡＤ＿Ｅｒｒ＿２（ｉ）（ｉ＝０，１，…，Ｒ−１）を加算器１１１に出力する。【００６５】
第３コードブック１１０は、誤差最小化部１０３からの指示ｄ３’により、内蔵のコードブックを構成する各第３コードベクトルＣＯＤＥ＿３（ｄ３）（ｉ）（ｄ３＝０，１，…，Ｄ３−１、ｉ＝０，１，…，Ｒ−１）の中から、第３コードベクトルＣＯＤＥ＿３（ｄ３´）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器１１１に出力する。ここで、Ｄ３は、第３コードブック１１０のコードベクトルの総数であり、ｄ３は、コードベクトルのインデクスである。誤差最小化部１０３は、ｄ３’＝０からｄ３’＝Ｄ３−１までｄ３’の値を順次変えながら、出力するコードベクトルを第３コードブック１１０に指示するものとする。【００６６】
加算器１１１は、調整部１０９から入力される調整第２残差ベクトルＡＤ＿Ｅｒｒ＿２（ｉ）（ｉ＝０，１，…，Ｒ−１）と第３コードブック１１０から入力される第３コードベクトルＣＯＤＥ＿３（ｄ３’）（ｉ）（ｉ＝０，１，…，Ｒ−１）との差を下記の式（９）に従って求め、この差のベクトルＥｒｒ＿３（ｄ３’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を第３残差ベクトルとして誤差最小化部１０３に出力する。【００６７】
【数９】
2009090875.tif 000011
誤差最小化部１０３は、第３コードブック１１０にコードベクトルのインデクスｄ３’を指示し、指示する毎に加算器１１１から入力される第３残差ベクトルＥｒｒ＿３（ｄ３’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（１０）に従って二乗誤差Ｅｒｒを求める。【００６８】
【数１０】
2009090875.tif 000012
次いで、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第３コードベクトルのインデクスｄ３’を第３インデクスｄ３＿ｍｉｎとして記憶する。【００６９】
次いで、誤差最小化部１０３は、第１インデクスｄ１＿ｍｉｎ、第２インデクスｄ２＿ｍｉｎ、第３インデクスｄ３＿ｍｉｎを纏めて符号化し、符号化データとして出力する。【００７０】
図７は、本発明の実施の形態１に係るベクトル逆量子化装置２００の主要な構成を示すブロック図である。ベクトル逆量子化装置２００は、ベクトル量子化装置１００において出力される符号化データを復号して量子化ベクトルを生成する。【００７１】
図７において、ベクトル逆量子化装置２００は、符号分離部２０１、第１コードブック２０２、第１半径コードブック２０３、第２コードブック２０４、加算器２０５、第２半径コードブック２０６、積集合円算出部２０７、第３コードブック２０８、調整部２０９、および加算器２１０を備える。なお、第１コードブック２０２は、第１コードブック１０１が備えるコードブックと同一内容のコードブックを備え、第１半径コードブック２０３は、第１半径コードブック１０４が備えるコードブックと同一内容のコードブックを備え、第２コードブック２０４は、第２コードブック１０５が備えるコードブックと同一内容のコードブックを備え、第２半径コードブック２０６は、第２半径コードブック１０７が備えるコードブックと同一内容のコードブックを備え、第３コードブック２０８は、第３コードブック１１０が備えるコードブックと同一内容のコードブックを備える。【００７２】
符号分離部２０１は、符号化データを入力し、第１〜第３インデクスを求める。次いで、符号分離部２０１は、第１インデクスに相当するコードベクトルを出力するように第１コードブック２０２に指示する。また、符号分離部２０１は、第１インデクスを第１半径コードブック２０３に出力する。次いで、符号分離部２０１は、第２インデクスに相当するコードベクトルを出力するように第２コードブック２０４に指示する。また、符号分離部２０１は、第２インデクスを第２半径コードブック２０６に出力する。次いで、符号分離部２０１は、第３インデクスに相当するコードベクトルを出力するように第３コードブック２０８に指示する。【００７３】
第１コードブック２０２は、符号分離部２０１から指示されたコードベクトルを第１コードベクトルとして加算器２０５に出力する。【００７４】
第１半径コードブック２０３は、符号分離部２０１から第１インデクスを入力し、第１インデクスに対応する第１半径を内蔵のコードブックの中から選択して積集合円算出部２０７に出力する。【００７５】
第２コードブック２０４は、符号分離部２０１から指示されたコードベクトルを第２コードベクトルとして加算器２０５と積集合円算出部２０７とに出力する。【００７６】
加算器２０５は、第１コードブック２０２から入力される第１コードベクトルと、第２コードブック２０４から入力される第２コードベクトルとを加算し、加算後のコードベクトルを調整部２０９に出力する。【００７７】
第２半径コードブック２０６は、符号分離部２０１から第２インデクスを入力し、第２インデクスに対応する第２半径を内蔵の半径コードブックの中から選択して積集合円算出部２０７に出力する。【００７８】
積集合円算出部２０７は、第１半径コードブック２０３から入力される第１半径、第２半径コードブック２０６から入力される第２半径、および第２コードブック２０４から入力される第２コードベクトルを用い、積集合円の中心および半径を求めて調整部２０９に出力する。【００７９】
第３コードブック２０８は、符号分離部２０１から指示されたコードベクトルを第３コードベクトルとして加算器２１０に出力する。【００８０】
調整部２０９は、積集合円算出部２０７から入力された積集合円の中心および半径を用いて、加算器２０５から第１コードベクトルと第２コードベクトルとの加算結果を調整し、調整後のコードベクトルを加算器２１０に出力する。３段目のベクトル逆量子化において、積集合円の中心および半径を用いてこの加算結果を調整しベクトル逆量子化を行う結果は、同様の積集合円の中心および半径を用いて第３コードブック２０８を調整しベクトル逆量子化を行う結果と同様となる。【００８１】
加算器２１０は、調整部２０９から入力される調整後のコードベクトルと、第３コードブック２０８から入力される第３コードベクトルとを加算し、加算後のベクトルを量子化ベクトルとして出力する。【００８２】
以下、ベクトル逆量子化装置２００の各構成要素の動作について説明する。【００８３】
符号分離部２０１は、符号化データを分離して第１インデクスｄ１＿ｍｉｎと第２インデクスｄ２＿ｍｉｎと第３インデクスｄ３＿ｍｉｎとを求める。そして、符号分離部２０１は、第１インデクスｄ１＿ｍｉｎに相当するコードベクトルを出力するように第１コードブック２０２に指示し、第２インデクスｄ２＿ｍｉｎに相当するコードベクトルを出力するように第２コードブック２０４に指示し、第３インデクスｄ３＿ｍｉｎに相当するコードベクトルを出力するように第３コードブック２０８に指示する。【００８４】
次いで、符号分離部２０１は、第１インデクスｄ１＿ｍｉｎを第１半径コードブック２０３に出力し、第２インデクスｄ２＿ｍｉｎを第２半径コードブック２０６に出力する。【００８５】
第１コードブック２０２は、符号分離部２０１からの指示ｄ１＿ｍｉｎにより、内蔵のコードブックを構成する各第１コードベクトルＣＯＤＥ＿１（ｄ１）（ｉ）（ｄ１＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）の中から、コードベクトルＣＯＤＥ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択し加算器２０５に出力する。【００８６】
第１半径コードブック２０３は、第１インデクスｄ１＿ｍｉｎを入力し、内蔵のコードブックを構成する各第１半径ｒ＿１（ｄ１）（ｄ１＝０，１，…，Ｄ１−１）の中から、第１インデクスｄ１＿ｍｉｎに対応する第１半径ｒ＿１（ｄ１＿ｍｉｎ）を選択し積集合円算出部２０７に出力する。【００８７】
第２コードブック２０４は、符号分離部２０１からの指示ｄ２＿ｍｉｎにより、内蔵のコードブックを構成する各第２コードベクトルＣＯＤＥ＿２（ｄ２）（ｉ）（ｄ２＝０，１，…，Ｄ２−１、ｉ＝０，１，…，Ｒ−１）の中から、コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択し、加算器２０５と積集合円算出部２０７とに出力する。【００８８】
加算器２０５は、第１コードブック２０２から入力される第１コードベクトルＣＯＤＥ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と、第２コードブック２０４から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）とを下記の式（１１）に従って加算し、加算後のベクトルＴＭＰ（ｉ）（ｉ＝０，１，…，Ｒ−１）を調整部２０９に出力する。【００８９】
【数１１】
2009090875.tif 000013
第２半径コードブック２０６は、第２インデクスｄ２＿ｍｉｎを入力し、コードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、第２インデクスｄ２＿ｍｉｎに対応する第２半径ｒ＿２（ｄ２＿ｍｉｎ）を選択し積集合円算出部２０７に出力する。【００９０】
積集合円算出部２０７は、第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を入力し、下記の式（１２）に従って第１コードベクトルと第２コードベクトルとの距離ｄを求める。式（１２）では距離ｄを求める際に第１コードベクトルを用いていないが、これは第２コードベクトルの原点が第１コードベクトルに相当するためである。従って、第２コードベクトルの長さ自体がコードベクトル間の距離に相当する。【００９１】
【数１２】
2009090875.tif 000014
次いで、積集合円算出部２０７は、第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径ｒ＿２（ｄ２＿ｍｉｎ）とを入力し、下記の式（１３），（１４）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の中心および半径を求める。【００９２】
【数１３】
2009090875.tif 000015
【００９３】
【数１４】
2009090875.tif 000016
次いで、積集合円算出部２０７は、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを調整部２０９に出力する。【００９４】
第３コードブック２０８は、符号分離部２０１からの指示ｄ３＿ｍｉｎにより、内蔵のコードブックを構成する各第３コードベクトルＣＯＤＥ＿３（ｄ３）（ｉ）（ｄ３＝０，１，…，Ｄ３−１、ｉ＝０，１，…，Ｒ−１）の中から、コードベクトルＣＯＤＥ＿３（ｄ３＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器２１０に出力する。【００９５】
調整部２０９は、積集合円算出部２０７から入力される積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）および積集合円の半径ｃｅｎｔ＿ｒを用いて、下記の式（１５）に従い、加算器２０５から入力される加算後のベクトルＴＭＰ（ｉ）（ｉ＝０，１，…，Ｒ−１）に対して調整を行う。【００９６】
【数１５】
2009090875.tif 000017
次いで、調整部２０９は、調整後のベクトルＡＤ＿ＣＯＤＥ＿３（ｉ）（ｉ＝０，１，…，Ｒ−１）を加算器２１０に出力する。【００９７】
加算器２１０は、第３コードブック２０８から第３コードベクトルＣＯＤＥ＿３（ｄ３＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と、調整部２０９から入力される調整後のベクトルＡＤ＿ＣＯＤＥ＿３（ｉ）（ｉ＝０，１，…，Ｒ−１）と、を下記の式（１６）に従って加算し、加算後のベクトルＱ＿Ｖ（ｉ）を量子化ベクトルとして出力する。【００９８】
【数１６】
2009090875.tif 000018
ベクトル量子化装置１００およびベクトル逆量子化装置２００で用いられる第１コードブック、第２コードブック、第３コードブック、第１半径コードブック、および第２半径コードブックは、学習により求めて予め作成されたものであり、これらのコードブックの学習方法について説明する。【００９９】
第１コードブック１０１および２０２が備える第１コードブックを学習により求めるためには、まず多数の学習用のデータとして、例えばＶ個の学習用ベクトルを用意する。次いで、Ｖ個の学習用ベクトルを用いて、ＬＢＧ(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いＤ１個の第１コードベクトルＣＯＤＥ＿１（ｄ１）（ｉ）（ｄ１＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）を求め第１コードブックを生成する。【０１００】
第１コードブックの学習の後、第１半径コードブックを生成する。具体的には、生成された第１コードブックを用いて上記Ｖ個の学習用ベクトルのベクトル量子化を各々行い、Ｖ個の学習用ベクトルが何れの第１コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第１コードベクトルにおいて、第１コードベクトルのクラスタに属する学習用ベクトルの中から、第１コードベクトルと学習用ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第１コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第１コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第１コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第１半径コードブックを構成する。【０１０１】
第２コードブック１０５および２０４が備える第２コードブックを学習により求めるためには、上記Ｖ個の学習用ベクトルを用いて、上記方法で求めた第１コードブックによる１段目のベクトル量子化を行い、加算器１０２が出力する第１残差ベクトルＥｒｒ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）をＶ個求める。次いで、Ｖ個の第１残差ベクトルＥｒｒ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、ＬＢＧアルゴリズム等の学習アルゴリズムに従いＤ２個の第２コードベクトルＣＯＤＥ＿２（ｄ２）（ｉ）（ｄ２＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）を求め、第２コードブックを生成する。【０１０２】
また、第２コードブックの学習の後、第２半径コードブックを生成する。具体的には、生成された第２コードブックを用いて上記Ｖ個の第１残差ベクトルのベクトル量子化を各々行い、Ｖ個の第１残差ベクトルが何れの第２コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第２コードベクトルにおいて、第２コードベクトルのクラスタに属する第１残差ベクトルの中から、第２コードベクトルと第１残差ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第２コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第２コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第２コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第２半径コードブックを構成する。【０１０３】
第３コードブック１１０および２０８が備える第３コードブックを学習により求めるためには、上記Ｖ個の第１残差ベクトルを用いて、上記方法で求めた第１コードブックおよび第２コードブックによる１段目と２段目とのベクトル量子化を行い、加算器１０６が出力する第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）をＶ個求める。次いで、Ｖ個の第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、ＬＢＧアルゴリズム等の学習アルゴリズムに従いＤ３個の第３コードベクトルＣＯＤＥ＿３（ｄ３）（ｉ）（ｄ３＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）を求め、第３コードブックを生成する。【０１０４】
これらの学習の方法は一例であって、上記の方法以外で各コードブックを生成しても本発明の効果は同様に得ることができる。【０１０５】
このように、本実施の形態によれば、各コードベクトルのクラスタを円で近似的に表し、各クラスタ円の半径を半径コードブックとして記憶し、３段目のベクトル量子化において第３コードブックを、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に一致させるため、３段目のベクトル量子化の量子化精度を向上させることができる。【０１０６】
なお、本実施の形態では、積集合円の中心および半径を用いて第２残差ベクトルを調整する場合を例にとって説明したが、本発明はこれに限定されず、積集合円の中心および半径を用いて第３コードブックを調整しても同様な量子化結果が得られる。【０１０７】
また、本実施の形態では、３段のベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、２段のベクトル量子化、もしくは、４段以上のベクトル量子化を行っても良い。【０１０８】
例えば、本発明を２段のベクトル量子化に適用する場合、クラスタ円の積集合の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）を零ベクトル、積集合円の半径ｃｅｎｔ＿ｒを第１半径ｒ＿１（ｄ１＿ｍｉｎ）とすることにより、第１コードベクトルのクラスタ円をそのまま積集合円として用い、下記の式（１７）に従って第１残差ベクトルの調整を行う。【０１０９】
【数１７】
2009090875.tif 000019
式（１７）において、ＣＢＲ＿２は第２コードブック１０５の広がりを表す値であり、第２コードブック１０５が持つ第２コードベクトルのうち、零点から最も遠い第２コードベクトルの、零点からの距離である。この値は、第２コードブック１０５を学習アルゴリズムにより作成する際に、同時に求めておく。【０１１０】
また、例えば、本発明を４段以上のベクトル量子化に適用する場合、３段目以降に用いるコードブックを生成する際に３段目以降の半径コードブックを生成しておく。そして、本実施の形態で説明した３段のベクトル量子化を行った後、例えば４段目のベクトル量子化において、積集合円算出部１０８は、第３半径ｒ＿３（ｄ３＿ｍｉｎ）と前段までの積集合円の半径ｃｅｎｔ＿ｒとを入力し、下記の式（１８）〜（２０）に従って第３コードベクトルのクラスタ円と前段までの積集合円との積集合円を新たに求める。【０１１１】
【数１８】
2009090875.tif 000020
【０１１２】
【数１９】
2009090875.tif 000021
【０１１３】
【数２０】
2009090875.tif 000022
このように、本発明を４段以上のベクトル量子化に適用する場合、積集合円を段数の増加に伴い次々と求める。【０１１４】
また、本実施の形態では、第１コードベクトルのクラスタ円および第２コードベクトルのクラスタ円それぞれの半径を用いて、第３コードブックを第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に適応させる場合を例にとって説明した。しかし、本発明はこれに限定されず、他の方法を用いて第３コードブックを第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に適応させても良い。【０１１５】
また、本実施の形態では、各コードベクトルのクラスタを円で近似する方法を用いたことにより、第１コードベクトルと第２コードベクトルとの距離ｄを求める際に第１コードベクトルを用いなかったが、異なる近似方法を適用するなどの場合には、必要に応じて第１コードベクトルも用いても良い。【０１１６】
また、本実施の形態では、ベクトル逆量子化装置２００は、ベクトル量子化装置１００から伝送された量子化ベクトル符号を復号するとしたが、これに限らず、量子化ベクトル符号として、ベクトル逆量子化装置２００で復号可能な形式の符号化データであれば、ベクトル量子化装置１００から伝送されたものでなくてもベクトル逆量子化装置２００で受信して復号することが可能であることは言うまでもない。【０１１７】
（実施の形態２）
図８は、本発明の実施の形態２に係るベクトル量子化装置７００の構成を示すブロック図である。なお、ベクトル量子化装置７００は、実施の形態１に示したベクトル量子化装置１００（図５参照）と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。【０１１８】
誤差最小化部１０３ａは、加算器１０２から入力される第１残差ベクトルを用いて入力ベクトルと第１コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第１コードベクトルを第１コードブック１０１の中から選択する。次いで、誤差最小化部１０３ａは、加算器１０６から入力される第２残差ベクトルを用いて第１残差ベクトルと第２コードベクトルとの二乗誤差を求め、誤差が最小となる第２コードベクトルを第２コードブック１０５の中から選択する。次いで、誤差最小化部１０３ａは、加算器１１１から入力される第３残差ベクトルを用いて第２残差ベクトルと第３コードベクトルとの二乗誤差を求め、誤差が最小となる第３コードベクトルを第３コードブック１１０の中から選択する。これらのコードベクトルを選択する処理は、１つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部１０３ａは、コードベクトルが選択される毎に、第１コードベクトルのインデクスを積集合円算出部７０１に出力し、第２コードベクトルのインデクスを積集合円算出部７０１に出力する。次いで、誤差最小化部１０３ａは、選択された３つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。【０１１９】
積集合円算出部７０１は、後述する積集合円コードブックを具備する。また、積集合円算出部７０１は、誤差最小化部１０３ａから第１コードベクトルのインデクス（第１インデクス）及び第２コードベクトルのインデクス（第２インデクス）を入力し、積集合円コードブック及び入力したインデクスに基づいて、積集合円の中心および半径を選択して調整部１０９に出力する。【０１２０】
図９は、本発明の実施の形態２に係る積集合円算出部７０１の構成を示すブロック図である。積集合円算出部７０１は、積集合円コードブック８０１及び演算部８０２を具備する。【０１２１】
積集合円コードブック８０１は、積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）（ｉ＝０，１，…，Ｒ−１）、および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）をｉｄｘと対応付けて、コードブックとして内部に有している。ここで、ｉｄｘは第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎの二つのインデクスの組み合わせに対応する代表値である。例えば、ｄ１＿ｍｉｎが０〜Ｄ１−１のＤ１種類の値を取り得るとともに、ｄ２＿ｍｉｎが０〜Ｄ２−１のＤ２種類の値を取り得る場合、ｉｄｘは式（２１）のように表すことができる。つまり、積集合円コードブック８０１は、第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎにより、積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）が一意に決定できる積集合円コードブックである。【０１２２】
【数２１】
2009090875.tif 000023
演算部８０２は、誤差最小化部１０３ａから第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎを入力し、式（２１）を用いてｉｄｘを求める。次いで、演算部８０２は、求めたｉｄｘに対応する積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）（ｉ＝０，１，…，Ｒ−１）、および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）を、それぞれ積集合円コードブック８０１のコードブックの中から取り出し、これらを調整部１０９に出力する。【０１２３】
全ての第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎの組み合わせに対するｉｄｘに対応して、式（６），（７）を用いて積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）（ｉ＝０，１，…，Ｒ−１）および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）を求めておくことにより、積集合円コードブック８０１が有するコードブックを予め作成しておくことができる。【０１２４】
このように、本実施の形態によれば、積集合円算出部が行う計算（式（６），（７））を予め行っておき、計算結果をコードブックとして具備しておくという特徴を有する。この構成により、本実施の形態によれば、上記実施の形態１の効果に加えて、符号化の際に計算（式（６），（７））を行う必要が無くなるため、計算量を削減することができる。即ち、上記実施の形態１では、第１半径、第２半径、第１コードベクトル、第２コードベクトルを用いて積集合円の半径と中心とを計算により求めたが、本実施の形態のように、全ての組み合わせでの半径と中心とを計算により予め求めておき、求めた半径と中心とをコードブックとして具備しておいても、本発明の効果は得ることができる。この場合、半径と中心とを予め計算しておくので、量子化時に半径と中心とを改めて計算する必要が無く、実施の形態１に比べて計算量を少なくすることができる。【０１２５】
（実施の形態３）
図１０は、本発明の実施の形態３に係るベクトル量子化装置５００の主要な構成を示すブロック図である。なお、ベクトル量子化装置５００は、実施の形態１に示したベクトル量子化装置１００（図５参照）と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。【０１２６】
ベクトル量子化装置５００は、第１コードブック１０１、加算器１０２、誤差最小化部５０１、第１半径コードブック１０４、第２コードブック１０５、加算器１０６、第２半径コードブック１０７、積集合円算出部５０２、調整部１０９、第３コードブック１１０、および加算器１１１を備える。【０１２７】
誤差最小化部５０１は、加算器１０２から入力される第１残差ベクトルを用いて、入力ベクトルと第１コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第１コードベクトルを第１コードブック１０１の中から選択する。また、誤差最小化部５０１は、選択した第１コードベクトルのインデクスを第１半径コードブック１０４に出力する。【０１２８】
次いで、誤差最小化部５０１は、加算器１０６から入力される第２残差ベクトルを用いて、第１残差ベクトルと第２コードベクトルとの二乗誤差を求め、第２コードブック１０５の中から、この二乗誤差の小さい順に複数の第２コードベクトルを選択候補として選択する。換言すると、誤差最小化部５０１は、第２コードブック１０５の中から、第１残差ベクトルにより近い順に複数の第２コードベクトルを選択候補として抽出する。そして、誤差最小化部５０１は、選択候補として選択された複数の第２コードベクトル各々のインデクスを第２半径コードブック１０７に出力し、選択候補として選択された複数の第２コードベクトルを積集合円算出部５０２に出力する。また、誤差最小化部５０１は、積集合円算出部５０２から入力される、選択候補として選択された複数の第２コードベクトル各々における積集合円の半径のうち、積集合円の半径が最小となる第２コードベクトルを選択する。そして、誤差最小化部５０１は、積集合円の半径が最小となる第２コードベクトルのインデクスを改めて第２半径コードブック１０７に出力する。【０１２９】
次いで、誤差最小化部５０１は、加算器１１１から入力される第３残差ベクトルを用いて、第２残差ベクトルと第３コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第３コードベクトルを第３コードブック１１０の中から選択する。これらのコードベクトルを選択する処理は、１つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。そして、誤差最小化部５０１は、選択された３つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。【０１３０】
積集合円算出部５０２は、第１半径コードブック１０４から入力される第１半径、第２半径コードブック１０７から入力される、誤差最小化部５０１で選択候補として選択された複数の第２コードベクトル各々に対応する第２半径、および、誤差最小化部５０１から入力される複数の第２コードベクトルを用いて、誤差最小化部５０１で選択候補として選択された複数の第２コードベクトルの各々について積集合円の半径を求め、全ての積集合円の半径を誤差最小化部５０１に出力する。次いで、積集合円算出部５０２は、実施の形態１と同様にして、第１半径、第２半径コードブック１０７から改めて入力される第２半径、および、第２コードベクトルを用いて、第３コードブック１１０の調整（実際には第２残差ベクトルの調整）に用いるベクトルおよび係数（すなわち、積集合円の中心および半径）を求めて調整部１０９に出力する。【０１３１】
以下、ベクトル量子化装置５００の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がＲ次である場合を例にとって説明する。【０１３２】
誤差最小化部５０１は、第２コードブック１０５にコードベクトルのインデクスｄ２’を指示し、指示する毎に加算器１０６から入力される第２残差ベクトルＥｒｒ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（２２）に従って二乗誤差Ｅｒｒを求める。【０１３３】
【数２２】
2009090875.tif 000024
そして、誤差最小化部５０１は、全ての第２コードベクトルについて二乗誤差Ｅｒｒを求め、二乗誤差Ｅｒｒの値の小さい順にＸ個の第２コードベクトルを選択候補として選択する。そして、誤差最小化部５０１は、選択したＸ個の第２コードベクトルのインデクスｄ２＿ｍｉｎ（ｘ）（ｘ＝０，１，…，Ｘ−１）を第２半径コードブック１０７に出力する。また、誤差最小化部５０１は、選択したＸ個の第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ（ｘ））（ｉ）（ｉ＝０，１，…，Ｒ−１）を積集合円算出部５０２に出力する。ここで、Ｘの値は、大量の入力データによる予備実験を事前に行い、最も良い性能が得られた値をＸとして設定してもよい。【０１３４】
第２半径コードブック１０７は、内蔵のコードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、誤差最小化部５０１から入力されるＸ個の第２インデクスｄ２＿ｍｉｎ（ｘ）（ｘ＝０，１，…，Ｘ−１）にそれぞれ対応するＸ個の第２半径ｒ＿２（ｄ２＿ｍｉｎ（ｘ））を積集合円算出部５０２に出力する。【０１３５】
積集合円算出部５０２は、誤差最小化部５０１から入力されるＸ個の第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ（ｘ））（ｉ）（ｉ＝０，１，…，Ｒ−１）を用い、下記の式（２３）に従って第１コードベクトルと第２コードベクトルとの距離ｄ（ｘ）を求める。式（２３）では、実施の形態１と同様、距離ｄ（ｘ）を求める際に第１コードベクトルを用いていないが、これは第２コードベクトルの原点が第１コードベクトルに相当するためである。従って、第２コードベクトルの長さ自体がコードベクトル間の距離に相当する。【０１３６】
【数２３】
2009090875.tif 000025
次いで、積集合円算出部５０２は、求めた距離ｄ（ｘ）と第１半径コードブック１０４から入力される第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径コードブック１０７から入力される第２半径ｒ＿２（ｄ２＿ｍｉｎ（ｘ））と誤差最小化部５０１から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ（ｘ））（ｉ）（ｉ＝０，１，…，Ｒ−１）とを用い、下記の式（２４）、（２５）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合の半径を近似的に求める。【０１３７】
【数２４】
2009090875.tif 000026
【０１３８】
【数２５】
2009090875.tif 000027
そして、積集合円算出部５０２は、求めたＸ個の積集合円の半径ｃｅｎｔ＿ｒ（ｘ）を誤差最小化部５０１に出力する。【０１３９】
誤差最小化部５０１は、積集合円算出部５０２から入力されるＸ個の積集合円の半径ｃｅｎｔ＿ｒ（ｘ）の中から、最小の半径ｃｅｎｔ＿ｒ（ｘ＿ｍｉｎ）となる第２コードベクトルのインデクスｄ２＿ｍｉｎ（ｘ＿ｍｉｎ）を第２インデクスｄ２＿ｍｉｎとして記憶すると共に第２インデクスｄ２＿ｍｉｎを第２半径コードブック１０７に出力する。また、誤差最小化部５０１は、積集合円の半径が最小となる第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を積集合円算出部５０２に出力する。【０１４０】
第２半径コードブック１０７は、内蔵のコードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、誤差最小化部５０１から入力される第２インデクスｄ２＿ｍｉｎに対応する第２半径ｒ＿２（ｄ２＿ｍｉｎ）を積集合円算出部５０２に出力する。【０１４１】
積集合円算出部５０２は、誤差最小化部５０１から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用い、下記の式（２６）に従って第１コードベクトルと第２コードベクトルとの距離ｄを求める。【０１４２】
【数２６】
2009090875.tif 000028
次いで、積集合円算出部５０２は、求めた距離ｄと第１半径コードブック１０４から入力される第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径コードブック１０７から入力される第２半径ｒ＿２（ｄ２＿ｍｉｎ）と誤差最小化部５０１から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）とを用い、下記の式（２７）、（２８）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の中心および半径を近似的に求める。【０１４３】
【数２７】
2009090875.tif 000029
【０１４４】
【数２８】
2009090875.tif 000030
そして、積集合円算出部５０２は、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを調整部１０９に出力する。【０１４５】
このように、ベクトル量子化装置５００では、２段目のベクトル量子化における第２コードベクトルの選択の評価指標として、第２コードベクトルと量子化対象ベクトルとの距離に加え、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の半径の大きさが用いられる。ここで、３段目のベクトル量子化では、３段目のコードブック（図１０では、第３コードブック１１０）を、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に一致させる。つまり、積集合円の半径が小さいほど、３段目のベクトル量子化において第３コードベクトルの探索範囲はより小さくなる。よって、ベクトル量子化装置５００は、２段目のベクトル量子化後の積集合円の半径が最小となる第２コードベクトルを選択することで、３段目のベクトル量子化では最小限の探索範囲のみを探索して第３コードベクトルを選択することができる。よって、本実施の形態によれば、実施の形態１と同様に３段目のベクトル量子化の量子化精度を向上させることができ、さらに、３段目のベクトル量子化の量子化効率を向上させることができる。【０１４６】
なお、本実施の形態において、式（２４）、（２５）または式（２７）、（２８）により求められる積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）および積集合円の半径ｃｅｎｔ＿ｒは、積集合円算出部５０２に入力される２つのインデクスの組み合わせにより一意に定まる。そのため、本発明では、メモリに余裕がある場合には、実施の形態２と同様にしてすべてのインデクスの組み合わせにおいて、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と積集合円の半径ｃｅｎｔ＿ｒとを予め求めておき、求めた積集合円の中心と積集合円の半径とを積集合円コードブックとしてメモリに記憶させてもよい。これにより、ベクトル量子化装置５００では、ベクトル量子化時に積集合円の中心および半径を算出する計算を省略することができる。【０１４７】
また、本実施の形態では、ベクトル量子化装置５００が、二乗誤差Ｅｒｒの小さい順に複数の第２コードベクトルを選択候補として選択し、選択候補の中から、積集合円の半径が最小となる第２コードベクトルを１つ選択する、という手順で第２コードベクトルを決定する方法を一例に挙げて説明した。しかし、本発明では、積集合円の半径を考慮して第２コードベクトルを決定する方法はこれに限らない。例えば、ベクトル量子化装置５００は、式（２２）に従って全ての第２コードベクトルについて二乗誤差Ｅｒｒ（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）を求めるとともに、全ての第２コードベクトルについて積集合円の半径ｃｅｎｔ＿ｒ（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）を求め、次式（２９）により算出される評価指標Ｙが最小となる第２コードベクトルを選択してもよい。つまり、ベクトル量子化装置５００は、第２コードベクトルと入力ベクトル（量子化対象ベクトル）との距離、および、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の半径の双方を同時に用いた評価指標に従って、第２コードベクトルを選択してもよい。【０１４８】
【数２９】
2009090875.tif 000031
ここで、αは、積集合円の半径を評価指標としてどのくらい考慮するのかを決定付ける重みであり、大量の入力データによる予備実験を事前に行い、最も良い性能が得られた値をαとして設定してもよい。【０１４９】
以上、本発明の各実施の形態について説明した。【０１５０】
なお、メモリに余裕がある場合は上記実施の形態２の構成を採用し、計算時間に余裕がある場合は上記実施の形態１の構成を採用することができるため、必要な条件に応じて構成を選ぶことができる。【０１５１】
また、上記各実施の形態では、多段ベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、分割ベクトル量子化と併用してベクトル量子化を行っても良い。【０１５２】
また、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、上記各実施の形態に限定されず、種々変更して実施することが可能である。【０１５３】
例えば、上記各実施の形態では、ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法において、音声信号を対象として説明したが、楽音信号等に適用することも可能である。【０１５４】
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声もしくは楽音符号化における線形予測係数のベクトルの量子化において良好な性能を得ることができる。【０１５５】
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声伝送を行う移動体通信システムにおける通信端末装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置を提供することができる。【０１５６】
なお、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るベクトル量子化方法およびベクトル逆量子化方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るベクトル量子化装置およびベクトル逆量子化装置と同様の機能を実現することができる。【０１５７】
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部またはすべてを含むように１チップ化されても良い。【０１５８】
また、ここではＬＳＩとしたが、集積度の違いによって、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩ等と呼称されることもある。【０１５９】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラム化することが可能なＦＰＧＡ（Fｉeld Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。【０１６０】
さらに、半導体技術の進歩または派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。【０１６１】
２００８年１月１６日出願の特願２００８−００７４１７、２００８年５月３０日出願の特願２００８−１４３２７８および２００８年１２月１２日出願の特願２００８−３１７３９８の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０１６２】
本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、音声符号化および音声復号等の用途に適用することができる。
【図１】
2009090875.tif 000032
【図２】
2009090875.tif 000033
【図３】
2009090875.tif 000034
【図４】
2009090875.tif 000035
【図５】
2009090875.tif 000036
【図６】
2009090875.tif 000037
【図７】
2009090875.tif 000038
【図８】
2009090875.tif 000039
【図９】
2009090875.tif 000040
【図１０】
2009090875.tif 000041
【手続補正書】
【提出日】平成22年5月25日(2010.5.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、
第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。
【請求項２】
前記積集合円算出手段は、
前記第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円の半径と前記第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円の半径とを用いて、前記積集合円の半径および中心を算出する、
請求項１記載のベクトル量子化装置。
【請求項３】
前記調整手段は、
前記第Ｎコードブックのクラスタ円に対して中心の移動および半径の変更を行う、
請求項１記載のベクトル量子化装置。
【請求項４】
前記調整手段は、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルの移動および大きさの変更を行う、
請求項１記載のベクトル量子化装置。
【請求項５】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、
前記第ｍ−１コードブックを用いて入力ベクトルもしくは前記第ｍ−１残差ベクトルをベクトル量子化して第ｍ−１符号を得るとともに、前記第ｍ残差ベクトルをベクトル量子化して第ｍ符号を得る量子化手段と、
第Ｎ−２符号及び第Ｎ−１符号に基づいて、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径と中心とを選択して出力する積集合円算出手段と、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。
【請求項６】
前記積集合円算出手段は、第１符号及び前記第ｍ符号により前記半径及び前記中心が一意に決定できる積集合円コードブックを有する、
請求項５記載のベクトル量子化装置。
【請求項７】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、
第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ−２，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択し、第Ｎ−１コードブックの中から第Ｎ−２残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコー
ドベクトルを選択する選択手段と、
を具備するベクトル量子化装置。
【請求項８】
ベクトル量子化装置において入力ベクトルに対して第ｎ（ｎ＝１，２，…，Ｎ；Ｎは３以上の整数）段目の量子化を行って得られた第ｎ符号を受信する受信手段と、
それぞれが複数のコードベクトルを記憶する第１から第ＮまでのＮ個のコードブックと、
第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、
第１コードブックのうち第１符号が示すコードベクトルと、第２コードブックのうち第２符号が示すコードベクトルと、を加算して第１加算ベクトルを得る第１加算手段と、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックのうち第ｍ符号が示すコードベクトルと、第ｍ−１加算ベクトルとを加算して第ｍ加算ベクトルを得る第ｍ加算手段と、
第Ｎ−２コードブックのうち第Ｎ−２符号が示すコードベクトルのクラスタ円と、第Ｎ−１コードブックのうち第Ｎ−１符号が示すコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Ｎコードブックのうち第Ｎ符号が示すコードベクトルである第Ｎコードベクトルのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１加算ベクトルまたは前記第Ｎコードベクトルを調整する調整手段と、
前記調整された第Ｎコードベクトルと、前記第Ｎ−１加算ベクトルとを加算する、または、前記調整された第Ｎ−１加算ベクトルと、前記第Ｎコードベクトルとを加算することにより量子化ベクトルを得る第Ｎ加算手段と、
を具備するベクトル逆量子化装置。
【請求項９】
それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、
第１コードブックからＮ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックとを用いて、
第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出ステップと、
第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出ステップと、
第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出ステップと、
第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整ステップと、
前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出ステップと、
第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択ステップと、
を実行するベクトル量子化方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトルの量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関し、特にインターネット通信に代表されるパケット通信システムや、移動通信システム等の分野で、音声信号の伝送を行う音声符号化・復号装置に用いられる、ＬＳＰ（Line Spectral Pairs）パラメータのベクトル量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関する。
【背景技術】
【０００２】
ディジタル無線通信や、インターネット通信に代表されるパケット通信、あるいは音声蓄積などの分野においては、電波などの伝送路容量や記憶媒体の有効利用を図るため、音声信号の符号化・復号技術が不可欠である。その中で特に、ＣＥＬＰ（Code Excited Linear Prediction）方式の音声符号化・復号技術が主流の技術となっている。
【０００３】
ＣＥＬＰ方式の音声符号化装置は、予め記憶された音声モデルに基づいて入力音声を符号化する。具体的には、ＣＥＬＰ方式の音声符号化装置は、ディジタル化された音声信号を１０〜２０ｍｓ程度の一定時間間隔のフレームに区切り、各フレーム内の音声信号に対して線形予測分析を行い線形予測係数（ＬＰＣ：Linear Prediction Coefficient）と線形予測残差ベクトルを求め、線形予測係数と線形予測残差ベクトルとをそれぞれ個別に符号化する。線形予測係数を符号化する方法としては、線形予測係数をＬＳＰ（Line Spectral Pairs）パラメータに変換し、ＬＳＰパラメータを符号化することが一般的である。また、ＬＳＰパラメータを符号化する方法としては、ＬＳＰパラメータに対してベクトル量子化を行うことが多い。ベクトル量子化とは、代表的なベクトル（コードベクトル）を複数持つ符号帳（コードブック）の中から、量子化対象のベクトルに最も近いコードベクトルを選択し、選択されたコードベクトルに付与されているインデクス（符号）を量子化結果として出力する方法である。ベクトル量子化においては、使用できる情報量に応じてコードブックのサイズが決まる。例えば、８ビットの情報量でベクトル量子化を行う場合、コードブックは２５６（＝２８）種類のコードベクトルを用いて構成することができる。
【０００４】
また、ベクトル量子化における情報量、計算量を低減するために、例えば非特許文献１記載の多段ベクトル量子化（ＭＳＶＱ：Multi-Stage Vector Quantization）、または分割ベクトル量子化（ＳＶＱ：Split Vector Quantization）などの様々な技術が用いられている。多段ベクトル量子化とは、ベクトルを一度ベクトル量子化した後に量子化誤差を更にベクトル量子化する方法であり、分割ベクトル量子化とは、ベクトルを複数に分割して得られた分割ベクトルをそれぞれ量子化する方法である。
【非特許文献１】Allen Gersho、Robert M. Gray著、古井、外３名訳、「ベクトル量子化と情報圧縮」、コロナ社、１９９８年１１月１０日、p.506、524-531
【発明の開示】
【発明が解決しようとする課題】
【０００５】
多段ベクトル量子化においては、各段で選択されるコードベクトルの組み合わせでターゲットベクトルが表現される。従って、各段のコードベクトルのすべての組み合わせが代表するクラスタを重複せず各々独立して持っている方が、量子化精度も向上し量子化効率も向上する。ここで、クラスタとはコードベクトルにより代表されるターゲットベクトルの集合をいう。しかしながら、非特許文献１記載の多段ベクトル量子化において、各段のコードベクトルの各組み合わせが代表するクラスタは、一部重複してしまう。従って、一部クラスタを表現することができる、各段のコードベクトルの組み合わせが２つ以上存在
してしまい、量子化精度の劣化および量子化ビットレートの増加が発生してしまう。
【０００６】
図１は、非特許文献１記載の多段ベクトル量子化における問題点を説明するための図である。
【０００７】
図１Ａにおいて、黒丸は、１段目のベクトル量子化で用いられる第１コードブックを構成する第１コードベクトルの一部を例示する。実線で区切られる２次元空間は、第１コードベクトルそれぞれが代表するベクトル集合の領域（クラスタ）を示す。なお、以下においては、コードブックを構成するすべてのコードベクトルそれぞれが代表するベクトルの集合を、このコードブックのクラスタと称す。図１Ａに示すように、互いに異なる第１コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。
【０００８】
ベクトル量子化とは、量子化対象であるターゲットベクトルが属するクラスタを代表するコードベクトルを探索することである。始めに、１段目のベクトル量子化が行われ、１つの第１コードベクトルが選択される。図１Ｂは、１段目のベクトル量子化において１つの第１コードベクトルが選択された状態を表す図である。図１Ｂにおいては、十字丸１１はターゲットベクトルを示し、破線に囲まれる空間は、ターゲットベクトルが属するクラスタを示す。また、黒丸１２は、ターゲットベクトルが属するクラスタを代表する第１コードベクトルを示す。
【０００９】
次いで、２段目のベクトル量子化が行われ、第２コードブックを構成する第２コードベクトルのうちの１つが選択される。図１Ｃは、２段目のベクトル量子化が行われ、１つの第２コードベクトルが選択される状態を表す図である。図１Ｃは、図１Ｂを基に、さらに白丸１３を用いて、２段目のベクトル量子化で選択された第２コードベクトルを示している。また、点破線で囲まれる空間は、２段目のベクトル量子化で選択された第２コードベクトルが代表するクラスタを模式的に表している。便宜上図示していないものの、選択された第２コードベクトルの周りにも、他の第２コードベクトルと、これら他の第２コードベクトルが代表するクラスタが存在する。なお、ここでも、互いに異なる第２コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。２段目のベクトル量子化は、１段目のベクトル量子化で選択された第１コードベクトル（黒丸１２）を中心として行われ、これにより、量子化結果である第２コードベクトル（白丸１３）をターゲットベクトル（十字丸１１）に更に近付ける。
【００１０】
図１に示したように、１段目のベクトル量子化（図１Ｂ参照）で黒丸１２の第１コードベクトルが選択され、２段目のベクトル量子化（図１Ｃ参照）で白丸１３の第２コードベクトルが選択された。ここで、上述（図１Ｂ、図１Ｃ参照）したように、第１コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、また、第２コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル（十字丸１１）は必ず、黒丸１２が代表するクラスタと、白丸１３が代表するクラスタとの積集合に含まれるはずである。しかしながら、非特許文献１記載の多段ベクトル量子化においては、続いて行われる３段目のベクトル量子化を、２段目のベクトル量子化で選択された第２コードベクトル（白丸１３）を中心として行い、上記の積集合以外の領域も探索して第３コードベクトルを選択する。従って、３段目のベクトル量子化の効率および量子化精度が劣化してしまう。
【００１１】
本発明の目的は、多段ベクトル量子化において、前段のベクトル量子化結果に適応して後段のベクトル量子化を行い、量子化精度を向上させることができるベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。
【００１３】
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、前記第ｍ−１コードブックを用いて入力ベクトルもしくは前記第ｍ−１残差ベクトルをベクトル量子化して第ｍ−１符号を得るとともに、前記第ｍ残差ベクトルをベクトル量子化して第ｍ符号を得る量子化手段と、第Ｎ−２符号及び第Ｎ−１符号に基づいて、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径と中心とを選択して出力する積集合円算出手段と、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。
【００１４】
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベク
トルとの差を第ｍ残差ベクトルとして算出する第ｍ算出手段と、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整手段と、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出手段と、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ−２，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択し、第Ｎ−１コードブックの中から第Ｎ−２残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコードベクトルを選択する選択手段と、を具備する構成を採る。
【００１５】
本発明のベクトル逆量子化装置は、ベクトル量子化装置において入力ベクトルに対して第ｎ（ｎ＝１，２，…，Ｎ；Ｎは３以上の整数）段目の量子化を行って得られた第ｎ符号を受信する受信手段と、それぞれが複数のコードベクトルを記憶する第１から第ＮまでのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックと、第１コードブックのうち第１符号が示すコードベクトルと、第２コードブックのうち第２符号が示すコードベクトルと、を加算して第１加算ベクトルを得る第１加算手段と、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックのうち第ｍ符号が示すコードベクトルと、第ｍ−１加算ベクトルとを加算して第ｍ加算ベクトルを得る第ｍ加算手段と、第Ｎ−２コードブックのうち第Ｎ−２符号が示すコードベクトルのクラスタ円と、第Ｎ−１コードブックのうち第Ｎ−１符号が示すコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Ｎコードブックのうち第Ｎ符号が示すコードベクトル（第Ｎコードベクトル）のクラスタ円と、前記積集合円とが合致するように、第Ｎ−１加算ベクトルまたは第Ｎコードベクトルを調整する調整手段と、前記調整された第Ｎコードベクトルと、前記第Ｎ−１加算ベクトルとを加算する、または、前記調整された第Ｎ−１加算ベクトルと、前記第Ｎコードベクトルと、を加算することにより量子化ベクトルを得る第Ｎ加算手段と、を具備する構成を採る。
【００１６】
本発明のベクトル量子化方法は、それぞれが複数のコードベクトルを記憶する第１から第Ｎ（Ｎは３以上の整数）までのＮ個のコードブックと、第１コードブックから第Ｎ−１コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第１から第Ｎ−１のＮ−１個の半径コードブックとを用いて、第１コードブックの各コードベクトルと量子化対象ベクトルとの差を第１残差ベクトルとして算出する第１算出ステップと、第ｍ（ｍ＝２，３，…，Ｎ−１）コードブックの各コードベクトルと、第ｍ−１コードブックの中から選択されたコードベクトルに対応する第ｍ−１残差ベクトルとの差を第ｍ残差ベクトルとして算出する第ｍ算出ステップと、第Ｎ−２コードブックの中から選択されたコードベクトルのクラスタ円と第Ｎ−１コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出ステップと、第Ｎコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Ｎコードブックのクラスタ円と、前記積集合円とが合致するように、第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトル、または第Ｎコードブックを調整する調整ステップと、前記第Ｎ−１コードブックの中から選択されたコードベクトルに対応する第Ｎ−１残差ベクトルと前記調整された第
Ｎコードブックの中の各コードベクトルとの差、または、前記調整された第Ｎ−１残差ベクトルと第Ｎコードブックの中の各コードベクトルとの差、を第Ｎ残差ベクトルとして算出する第Ｎ算出ステップと、第１コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第ｎ（ｎ＝２，３，…，Ｎ）コードブックの中から第ｎ−１残差ベクトルに最も近いコードベクトルを選択する選択ステップと、を実行するようにした。
【発明の効果】
【００１７】
本発明によれば、ＬＳＰパラメータ等のベクトルに対して複数段階の量子化を行う際に、そのうち２つの前段の量子化結果に基づき、後段の量子化に用いられるコードベクトルのベクトル空間を適応的に調整するため、量子化精度を向上することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
【００１９】
（実施の形態１）
まず、本発明の原理について説明する。
【００２０】
図２は、本発明の原理について説明するための図である。なお、図２は、図１と基本的に同様であり、図２Ｄが追加された点のみが相違する。すなわち、図２Ａ〜Ｃは、図１Ａ〜Ｃと同様であり、ここでは詳細な説明を省略する。
【００２１】
図２Ｄは、１段目のベクトル量子化で選択された第１コードベクトル（黒丸１２）が代表するクラスタと、２段目のベクトル量子化で選択された第２コードベクトル（白丸）が代表するクラスタと、の積集合を網掛けの空間で表す図である。上述（図１Ｂ、図１Ｃ参照）したように、第１コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、第２コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル（十字丸１１）は必ず、黒丸１２が代表するクラスタと、白丸１３が代表するクラスタとの積集合に含まれるはずである。本発明においては、２段目以降の、例えば３段目のベクトル量子化でのコードベクトル探索を、上記積集合の領域内に限定して行うために、２段目以降（例えば３段目）のベクトル量子化に用いるコードブック（例えば第３コードブック）を構成するすべてのコードベクトル（例えば第３コードベクトル）が代表するクラスタの平均と分散を積集合（網掛けの空間）内部に収まるように適応制御する。これにより、全てのコードベクトルの組み合わせが代表する
クラスタ群の独立性を保ち、２段目以降、例えば３段目のベクトル量子化において第３コードベクトルの探索範囲を積集合内部に制限することができる。従って、２段目以降のベクトル量子化の効率および精度が向上する。
【００２２】
図３は、図２に示した本発明の原理をより詳細に説明するための図である。
【００２３】
図３Ａにおいて、黒丸は、１段目のベクトル量子化で用いられる第１コードブックを構成する第１コードベクトルの一部を例示する。破線で区切られる２次元空間は、第１コードベクトルのクラスタを示し、これら各第１コードベクトルのクラスタは、円によって近似的に表されている。各クラスタを近似表現する円（以下、クラスタ円と称す）は、第１コードベクトルを中心とする。そして、各クラスタ円の半径は、第１コードブックの学習時において、各第１コードベクトルのクラスタに属する学習用ベクトルのうち、第１コードベクトルに最も遠い学習用ベクトルと、第１コードベクトルとの距離をとる。また、クラスタ円の中により多くのターゲットベクトルが包含されるように、上記の方法で求められるクラスタ円の半径に定数を掛け、半径を拡張しても良い。ここで、各コードベクトルのクラスタ円の半径は、全てのコードブックの学習時に予め求められ、クラスタ半径コードブックに格納される。図３Ａにおいて、クラスタ円の判定の例として、ｒ１を用いて、黒丸１２の第１コードベクトルが代表するクラスタ円の半径を示す。
【００２４】
図３Ｂは、１段目のベクトル量子化により選択される第１コードベクトルのクラスタ円と２段目のベクトル量子化により選択される第２コードベクトルのクラスタ円との位置関係を例示する図である。本発明に係るベクトル量子化装置は、各段のベクトル量子化を行ってコードベクトルを選択し、各段で選択したコードベクトルのクラスタ円の半径をクラスタ半径コードブックから選び出す。図３Ｂにおいて、ｒ１は第１コードベクトル（黒丸１２）のクラスタ円の半径を示し、ｒ２は第２コードベクトル（白丸１３）の半径を示す。これにより、各段のベクトル量子化において選択されたコードベクトルのクラスタの位置関係を、クラスタ円で近似的に表現する。以下、第１コードベクトル（黒丸１２）のクラスタ円をクラスタ円ｒ１とも称し、第２コードベクトル（白丸１３）のクラスタ円をクラスタ円ｒ２とも称す。
【００２５】
次いで、クラスタ円ｒ１とクラスタ円ｒ２との積集合を円で近似的に表す。以下、クラスタ円ｒ１とクラスタ円ｒ２との積集合を表す円を積集合円とも称す。図３Ｃは、クラスタ円ｒ１とクラスタ円ｒ２との積集合円の中点を示す図である。具体的には、破線丸１４を用いて、クラスタ円ｒ１とクラスタ円ｒ２との積集合を積集合円で近似的に表した場合の中心を示す。積集合円の中心（破線丸１４）は、クラスタ円ｒ１の中心と、クラスタ円ｒ２の中心とを通る直線上に位置する。破線丸１４から直線上の両方向それぞれへ向かって、クラスタ円ｒ１とクラスタ円ｒ２との積集合の周辺までの距離は両方ともｄである。すなわち、この２つの距離は同様にｄである。
【００２６】
図３Ｄは、クラスタ円ｒ１とクラスタ円ｒ２との積集合円を示す図である。図３Ｄにおいては、表示の便宜上クラスタ円ｒ１を実線円で示し、クラスタ円ｒ２を破線円で示す。なお、これらのクラスタ円の半径および中心は図示していない。図３Ｄにおいて、距離ｄは、図３Ｃにおける距離ｄと同様であり、ｒ３は、積集合円の半径を示す。また、積集合円を点破線円で示す。積集合円の中心および半径は、第１コードベクトルと第２コードベクトルとの距離、クラスタ円の半径ｒ１、ｒ２から求めることができる。そして、本発明に係るベクトル量子化においては、第３コードブックのクラスタ円を積集合円ｒ３と合致するように調整を行ってから３段目のベクトル量子化を行う。
【００２７】
なお、図４Ａのように、クラスタ円ｒ１の中にクラスタ円ｒ２が完全に内包される場合には、積集合円ｒ３としてクラスタ円ｒ２をそのまま用いる。すなわち、ｒ３＝ｒ２とす
る。また、図４Ｂのように、クラスタ円ｒ１とクラスタ円ｒ２との積集合が存在しない場合にも、積集合円ｒ３としてクラスタ円ｒ２をそのまま用いる。
【００２８】
本発明に係るベクトル量子化においては、３段目のベクトル量子化を行う際に、第３コードブックのクラスタを、この積集合円ｒ３の中に収まるように、第３コードブック全体に対し係数を加算および乗算する。これにより、２段目以降のベクトル量子化の効率および精度を向上させる。以下、本発明の実施の形態において、この積集合円ｒ３の中心および半径の求め方について説明する。
【００２９】
図５は、本発明の実施の形態１に係るベクトル量子化装置１００の主要な構成を示すブロック図である。ベクトル量子化装置１００の量子化対象としては、例えばＬＳＰベクトルまたは他のベクトルが挙げられる。なお、ここでは、ベクトル量子化装置１００の量子化対象である入力ベクトルを３段階の多段ベクトル量子化によりベクトル量子化する場合を例にとって説明する。
【００３０】
ベクトル量子化装置１００は、第１コードブック１０１、加算器１０２、誤差最小化部１０３、第１半径コードブック１０４、第２コードブック１０５、加算器１０６、第２半径コードブック１０７、積集合円算出部１０８、調整部１０９、第３コードブック１１０、および加算器１１１を備える。
【００３１】
第１コードブック１０１は、誤差最小化部１０３から指示された第１コードベクトルを、内蔵のコードブックの中から選択し加算器１０２に出力する。
【００３２】
加算器１０２は、ベクトル量子化のターゲットとして外部から入力される入力ベクトルと、第１コードブック１０１から入力される第１コードベクトルとの差を求め、この差のベクトルを第１残差ベクトルとして誤差最小化部１０３と加算器１０６とに出力する。
【００３３】
誤差最小化部１０３は、加算器１０２から入力される第１残差ベクトルを用いて入力ベクトルと第１コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第１コードベクトルを第１コードブック１０１の中から選択する。次いで、誤差最小化部１０３は、加算器１０６から入力される第２残差ベクトルを用いて第１残差ベクトルと第２コードベクトルとの二乗誤差を求め、誤差が最小となる第２コードベクトルを第２コードブック１０５の中から選択する。次いで、誤差最小化部１０３は、加算器１１１から入力される第３残差ベクトルを用いて第２残差ベクトルと第３コードベクトルとの二乗誤差を求め、誤差が最小となる第３コードベクトルを第３コードブック１１０の中から選択する。これらのコードベクトルを選択する処理は、１つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部１０３は、コードベクトルが選択される毎に、第１コードベクトルのインデクスを第１半径コードブック１０４に出力し、第２コードベクトルのインデクスを第２半径コードブック１０７に出力し、第２コードベクトルを積集合円算出部１０８に出力する。次いで、誤差最小化部１０３は、選択された３つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
【００３４】
第１半径コードブック１０４は、誤差最小化部１０３から第１コードベクトルのインデクスを入力し、このインデクスに対応する第１半径を内蔵のコードブックの中から選択して積集合円算出部１０８に出力する。ここで、第１半径とは、第１コードベクトルのクラスタ円の半径を指す。第１半径は、第１コードブック１０１を学習アルゴリズムにより予め作成する際に、同時に求めておく。
【００３５】
第２コードブック１０５は、誤差最小化部１０３から指示された第２コードベクトルを
内蔵のコードブックの中から選択し、加算器１０６に出力する。
【００３６】
加算器１０６は、加算器１０２から入力される第１残差ベクトルと、第２コードブック１０５から入力される第２コードベクトルとの差を求め、この差のベクトルを第２残差ベクトルとして誤差最小化部１０３と調整部１０９とに出力する。
【００３７】
第２半径コードブック１０７は、誤差最小化部１０３から第２コードベクトルのインデクスを入力し、このインデクスに対応する第２半径を内蔵のコードブックの中から選択して積集合円算出部１０８に出力する。ここで、第２半径とは、第２コードベクトルのクラスタ円の半径を指す。第２半径は、第２コードブック１０５を学習アルゴリズムにより予め作成する際に、同時に求めておく。
【００３８】
積集合円算出部１０８は、第１半径コードブック１０４から入力される第１半径、第２半径コードブック１０７から入力される第２半径、誤差最小化部１０３から入力される第２コードベクトルを用いて、積集合円の中心および半径を求めて調整部１０９に出力する。なお、積集合円算出部１０８の詳細については後述する。
【００３９】
調整部１０９は、加算器１０６から第２残差ベクトルを入力し、積集合円算出部１０８から入力される積集合円の中心および半径を用いて第２残差ベクトルを調整し、調整後の第２残差ベクトルを加算器１１１に出力する。３段目のベクトル量子化においては、積集合円の中心および半径に基づき第２残差ベクトルを調整してベクトル量子化を行う結果と、同様の積集合円の中心および半径に基づき第３コードブック１１０に対し逆の調整を行ってベクトル量子化する結果は同様となる。このため、調整部１０９においては、積集合円の中心および半径に基づき第２残差ベクトルの移動および大きさの変更を行う調整処理により、第３コードブック１１０に対し中心の移動および半径の変更を行う調整処理と同様な効果を得ている。
【００４０】
第３コードブック１１０は、誤差最小化部１０３から指示された第３コードベクトルを、内蔵のコードブックの中から選択し加算器１１１に出力する。
【００４１】
加算器１１１は、調整部１０９から入力される調整後の第２残差ベクトルと、第３コードブック１１０から入力される第３コードベクトルとの差を求め、この差のベクトルを第３残差ベクトルとして誤差最小化部１０３に出力する。
【００４２】
図６は、積集合円算出部１０８の内部の構成を示すブロック図である。
【００４３】
図６において、距離算出部１８１は、誤差最小化部１０３から入力される第２コードベクトルを用い、積集合円の中心および半径を算出するためのパラメータである距離ｄを求め、中心半径算出部１８２に出力する。
【００４４】
中心半径算出部１８２は、第１半径コードブック１０４から入力される第１半径、第２半径コードブック１０７から入力される第２半径、誤差最小化部１０３から入力される第２コードベクトル、および距離算出部１８１から入力される距離ｄを用いて、積集合円の中心および半径を求めて調整部１０９に出力する。
【００４５】
以下、ベクトル量子化装置１００の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がＲ次である場合を例にとって説明し、この入力ベクトルをＶ（ｉ）（ｉ＝０，１，…，Ｒ−１）と記す。
【００４６】
第１コードブック１０１は、誤差最小化部１０３からの指示ｄ１’により、内蔵のコー
ドブックを構成する各第１コードベクトルＣＯＤＥ＿１（ｄ１）（ｉ）（ｄ１＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）の中から、第１コードベクトルＣＯＤＥ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器１０２に出力する。ここで、Ｄ１は、第１コードブック１０１のコードベクトルの総数であり、ｄ１は、コードベクトルのインデクスである。誤差最小化部１０３は、ｄ１’＝０からｄ１’＝Ｄ１−１までｄ１’の値を順次変えながら、出力するコードベクトルを第１コードブック１０１に指示するものとする。
【００４７】
加算器１０２は、量子化対象である入力ベクトルＶ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、第１コードブック１０１から入力される第１コードベクトルＣＯＤＥ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）との差を下記の式（１）に従って求め、この差のベクトルＥｒｒ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を第１残差ベクトルとして誤差最小化部１０３と加算器１０６とに出力する。
【００４８】
【数１】
2009090875.tif 000042
誤差最小化部１０３は、第１コードブック１０１にコードベクトルのインデクスｄ１’を指示し、指示する毎に加算器１０２から入力される第１残差ベクトルＥｒｒ＿１（ｄ１’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（２）に従って二乗誤差Ｅｒｒを求める。
【００４９】
【数２】
2009090875.tif 000043
次いで、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第１コードベクトルのインデクスｄ１’を第１インデクスｄ１＿ｍｉｎとして記憶すると共に第１インデクスｄ１＿ｍｉｎを第１半径コードブック１０４に出力する。
【００５０】
第１半径コードブック１０４は、内蔵のコードブックを構成する各第１半径ｒ＿１（ｄ１）（ｄ１＝０，１，…，Ｄ１−１）の中から、誤差最小化部１０３から入力される第１インデクスｄ１＿ｍｉｎに対応する第１半径ｒ＿１（ｄ１＿ｍｉｎ）を積集合円算出部１０８に出力する。
【００５１】
第２コードブック１０５は、誤差最小化部１０３からの指示ｄ２’により、内蔵のコードブックを構成する各第２コードベクトルＣＯＤＥ＿２（ｄ２）（ｉ）（ｄ２＝０，１，…，Ｄ２−１、ｉ＝０，１，…，Ｒ−１）の中から、第２コードベクトルＣＯＤＥ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器１０６に出力する。ここで、Ｄ２は、第２コードブック１０５のコードベクトルの総数であり、ｄ２は、コードベクトルのインデクスである。誤差最小化部１０３は、ｄ２’＝０からｄ２’＝Ｄ２−１までｄ２’の値を順次変えながら、出力するコードベクトルを第２コードブック１０５に指示するものとする。
【００５２】
加算器１０６は、加算器１０２から入力される第１残差ベクトルＥｒｒ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と、第２コードブック１０５から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）との差を下記の式（３）に従って求め、この差のベクトルＥｒｒ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を第２残差ベクトルとして誤差最小化部１０３と調整部１０９とに出力する。
【００５３】
【数３】
2009090875.tif 000044
誤差最小化部１０３は、第２コードブック１０５にコードベクトルのインデクスｄ２’を指示し、指示する毎に加算器１０６から入力される第２残差ベクトルＥｒｒ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（４）に従って二乗誤差Ｅｒｒを求める。
【００５４】
【数４】
2009090875.tif 000045
次いで、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第２コードベクトルのインデクスｄ２’を第２インデクスｄ２＿ｍｉｎとして記憶すると共に第２インデクスｄ２＿ｍｉｎを第２半径コードブック１０７に出力する。また、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を積集合円算出部１０８に出力する。
【００５５】
第２半径コードブック１０７は、内蔵のコードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、誤差最小化部１０３から入力される第２インデクスｄ２＿ｍｉｎに対応する第２半径ｒ＿２（ｄ２＿ｍｉｎ）を積集合円算出部１０８に出力する。
【００５６】
積集合円算出部１０８において、距離算出部１８１は、誤差最小化部１０３から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用い、下記の式（５）に従って第１コードベクトルと第２コードベクトルとの距離ｄを求め、中心半径算出部１８２に出力する。式（５）では距離ｄを求める際に第１コードベクトルを用いていないが、これは第２コードベクトルの原点が第１コードベクトルに相当するためである。従って、第２コードベクトルの長さ自体がコードベクトル間の距離に相当する。
【００５７】
【数５】
2009090875.tif 000046
次いで、積集合円算出部１０８の中心半径算出部１８２は、第１半径コードブック１０４から入力される第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径コードブック１０７から入力される第２半径ｒ＿２（ｄ２＿ｍｉｎ）と誤差最小化部１０３から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と距離算出部１８１から入力される距離ｄとを用い、下記の式（６），（７）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の中心および半径を近似的に求める。
【００５８】
【数６】
2009090875.tif 000047
【００５９】
【数７】
2009090875.tif 000048
式（６），（７）において、ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）は積集合円の中心を表すベクトルであり、第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を始点として、積集合円の中心を終点とするベクトルである。また、ｃｅｎｔ＿ｒは積集合円の半径である。ここで、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合が存在しない場合、もしくは、一方のクラスタ円が他方のクラスタ円を完全に内包する場合には、式（６）に従い、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）を零ベクトル、積集合円の半径ｃｅｎｔ＿ｒを第２半径ｒ＿２（ｄ２＿ｍｉｎ）とする。すなわち、第２コードベクトルのクラスタ円をそのまま積集合円として用いる。また、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合が存在し、一方のクラスタ円が他方のクラスタ円を完全には内包しない場合は、式（７）に従い、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを求める。
【００６０】
次いで、積集合円算出部１０８は、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを調整部１０９に出力する。
【００６１】
調整部１０９は、積集合円算出部１０８から入力される積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）および半径ｃｅｎｔ＿ｒを用い下記の式（８）に従って、加算器１０６から入力される第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）に対して調整を行う。
【００６２】
【数８】
2009090875.tif 000049
式（８）において、ＣＢＲ＿３は第３コードブック１１０の広がりを表す値であり、第３コードブック１１０が持つ第３コードベクトルの内、零点から最も遠い第３コードベクトルの、零点からの距離である。この値は、第３コードブック１１０を学習アルゴリズムにより予め作成する際に、同時に求めておく。また、調整後の第２残差ベクトルであるＡＤ＿Ｅｒｒ＿２（ｉ）（ｉ＝０，１，…，Ｒ−１）を、以下、調整第２残差ベクトルと呼ぶ。式（８）を用いて、３段目のベクトル量子化のターゲットである第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を調整することにより、第３コードブック１１０の平均および分散を積集合円に適応させることができる。すなわち、調整部１０９は、第３コードブック１１０のクラスタを積集合円の中に包含させるように、第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を調整する。
【００６３】
次いで、調整部１０９は、調整第２残差ベクトルＡＤ＿Ｅｒｒ＿２（ｉ）（ｉ＝０，１，…，Ｒ−１）を加算器１１１に出力する。
【００６４】
第３コードブック１１０は、誤差最小化部１０３からの指示ｄ３’により、内蔵のコー
ドブックを構成する各第３コードベクトルＣＯＤＥ＿３（ｄ３）（ｉ）（ｄ３＝０，１，…，Ｄ３−１、ｉ＝０，１，…，Ｒ−１）の中から、第３コードベクトルＣＯＤＥ＿３（ｄ３´）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器１１１に出力する。ここで、Ｄ３は、第３コードブック１１０のコードベクトルの総数であり、ｄ３は、コードベクトルのインデクスである。誤差最小化部１０３は、ｄ３’＝０からｄ３’＝Ｄ３−１までｄ３’の値を順次変えながら、出力するコードベクトルを第３コードブック１１０に指示するものとする。
【００６５】
加算器１１１は、調整部１０９から入力される調整第２残差ベクトルＡＤ＿Ｅｒｒ＿２（ｉ）（ｉ＝０，１，…，Ｒ−１）と第３コードブック１１０から入力される第３コードベクトルＣＯＤＥ＿３（ｄ３’）（ｉ）（ｉ＝０，１，…，Ｒ−１）との差を下記の式（９）に従って求め、この差のベクトルＥｒｒ＿３（ｄ３’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を第３残差ベクトルとして誤差最小化部１０３に出力する。
【００６６】
【数９】
2009090875.tif 000050
誤差最小化部１０３は、第３コードブック１１０にコードベクトルのインデクスｄ３’を指示し、指示する毎に加算器１１１から入力される第３残差ベクトルＥｒｒ＿３（ｄ３’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（１０）に従って二乗誤差Ｅｒｒを求める。
【００６７】
【数１０】
2009090875.tif 000051
次いで、誤差最小化部１０３は、二乗誤差Ｅｒｒが最小となる第３コードベクトルのインデクスｄ３’を第３インデクスｄ３＿ｍｉｎとして記憶する。
【００６８】
次いで、誤差最小化部１０３は、第１インデクスｄ１＿ｍｉｎ、第２インデクスｄ２＿ｍｉｎ、第３インデクスｄ３＿ｍｉｎを纏めて符号化し、符号化データとして出力する。
【００６９】
図７は、本発明の実施の形態１に係るベクトル逆量子化装置２００の主要な構成を示すブロック図である。ベクトル逆量子化装置２００は、ベクトル量子化装置１００において出力される符号化データを復号して量子化ベクトルを生成する。
【００７０】
図７において、ベクトル逆量子化装置２００は、符号分離部２０１、第１コードブック２０２、第１半径コードブック２０３、第２コードブック２０４、加算器２０５、第２半径コードブック２０６、積集合円算出部２０７、第３コードブック２０８、調整部２０９、および加算器２１０を備える。なお、第１コードブック２０２は、第１コードブック１０１が備えるコードブックと同一内容のコードブックを備え、第１半径コードブック２０３は、第１半径コードブック１０４が備えるコードブックと同一内容のコードブックを備え、第２コードブック２０４は、第２コードブック１０５が備えるコードブックと同一内容のコードブックを備え、第２半径コードブック２０６は、第２半径コードブック１０７が備えるコードブックと同一内容のコードブックを備え、第３コードブック２０８は、第３コードブック１１０が備えるコードブックと同一内容のコードブックを備える。
【００７１】
符号分離部２０１は、符号化データを入力し、第１〜第３インデクスを求める。次いで、符号分離部２０１は、第１インデクスに相当するコードベクトルを出力するように第１コードブック２０２に指示する。また、符号分離部２０１は、第１インデクスを第１半径
コードブック２０３に出力する。次いで、符号分離部２０１は、第２インデクスに相当するコードベクトルを出力するように第２コードブック２０４に指示する。また、符号分離部２０１は、第２インデクスを第２半径コードブック２０６に出力する。次いで、符号分離部２０１は、第３インデクスに相当するコードベクトルを出力するように第３コードブック２０８に指示する。
【００７２】
第１コードブック２０２は、符号分離部２０１から指示されたコードベクトルを第１コードベクトルとして加算器２０５に出力する。
【００７３】
第１半径コードブック２０３は、符号分離部２０１から第１インデクスを入力し、第１インデクスに対応する第１半径を内蔵のコードブックの中から選択して積集合円算出部２０７に出力する。
【００７４】
第２コードブック２０４は、符号分離部２０１から指示されたコードベクトルを第２コードベクトルとして加算器２０５と積集合円算出部２０７とに出力する。
【００７５】
加算器２０５は、第１コードブック２０２から入力される第１コードベクトルと、第２コードブック２０４から入力される第２コードベクトルとを加算し、加算後のコードベクトルを調整部２０９に出力する。
【００７６】
第２半径コードブック２０６は、符号分離部２０１から第２インデクスを入力し、第２インデクスに対応する第２半径を内蔵の半径コードブックの中から選択して積集合円算出部２０７に出力する。
【００７７】
積集合円算出部２０７は、第１半径コードブック２０３から入力される第１半径、第２半径コードブック２０６から入力される第２半径、および第２コードブック２０４から入力される第２コードベクトルを用い、積集合円の中心および半径を求めて調整部２０９に出力する。
【００７８】
第３コードブック２０８は、符号分離部２０１から指示されたコードベクトルを第３コードベクトルとして加算器２１０に出力する。
【００７９】
調整部２０９は、積集合円算出部２０７から入力された積集合円の中心および半径を用いて、加算器２０５から第１コードベクトルと第２コードベクトルとの加算結果を調整し、調整後のコードベクトルを加算器２１０に出力する。３段目のベクトル逆量子化において、積集合円の中心および半径を用いてこの加算結果を調整しベクトル逆量子化を行う結果は、同様の積集合円の中心および半径を用いて第３コードブック２０８を調整しベクトル逆量子化を行う結果と同様となる。
【００８０】
加算器２１０は、調整部２０９から入力される調整後のコードベクトルと、第３コードブック２０８から入力される第３コードベクトルとを加算し、加算後のベクトルを量子化ベクトルとして出力する。
【００８１】
以下、ベクトル逆量子化装置２００の各構成要素の動作について説明する。
【００８２】
符号分離部２０１は、符号化データを分離して第１インデクスｄ１＿ｍｉｎと第２インデクスｄ２＿ｍｉｎと第３インデクスｄ３＿ｍｉｎとを求める。そして、符号分離部２０１は、第１インデクスｄ１＿ｍｉｎに相当するコードベクトルを出力するように第１コードブック２０２に指示し、第２インデクスｄ２＿ｍｉｎに相当するコードベクトルを出力するように第２コードブック２０４に指示し、第３インデクスｄ３＿ｍｉｎに相当するコ
ードベクトルを出力するように第３コードブック２０８に指示する。
【００８３】
次いで、符号分離部２０１は、第１インデクスｄ１＿ｍｉｎを第１半径コードブック２０３に出力し、第２インデクスｄ２＿ｍｉｎを第２半径コードブック２０６に出力する。
【００８４】
第１コードブック２０２は、符号分離部２０１からの指示ｄ１＿ｍｉｎにより、内蔵のコードブックを構成する各第１コードベクトルＣＯＤＥ＿１（ｄ１）（ｉ）（ｄ１＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）の中から、コードベクトルＣＯＤＥ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択し加算器２０５に出力する。
【００８５】
第１半径コードブック２０３は、第１インデクスｄ１＿ｍｉｎを入力し、内蔵のコードブックを構成する各第１半径ｒ＿１（ｄ１）（ｄ１＝０，１，…，Ｄ１−１）の中から、第１インデクスｄ１＿ｍｉｎに対応する第１半径ｒ＿１（ｄ１＿ｍｉｎ）を選択し積集合円算出部２０７に出力する。
【００８６】
第２コードブック２０４は、符号分離部２０１からの指示ｄ２＿ｍｉｎにより、内蔵のコードブックを構成する各第２コードベクトルＣＯＤＥ＿２（ｄ２）（ｉ）（ｄ２＝０，１，…，Ｄ２−１、ｉ＝０，１，…，Ｒ−１）の中から、コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択し、加算器２０５と積集合円算出部２０７とに出力する。
【００８７】
加算器２０５は、第１コードブック２０２から入力される第１コードベクトルＣＯＤＥ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と、第２コードブック２０４から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）とを下記の式（１１）に従って加算し、加算後のベクトルＴＭＰ（ｉ）（ｉ＝０，１，…，Ｒ−１）を調整部２０９に出力する。
【００８８】
【数１１】
2009090875.tif 000052
第２半径コードブック２０６は、第２インデクスｄ２＿ｍｉｎを入力し、コードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、第２インデクスｄ２＿ｍｉｎに対応する第２半径ｒ＿２（ｄ２＿ｍｉｎ）を選択し積集合円算出部２０７に出力する。
【００８９】
積集合円算出部２０７は、第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を入力し、下記の式（１２）に従って第１コードベクトルと第２コードベクトルとの距離ｄを求める。式（１２）では距離ｄを求める際に第１コードベクトルを用いていないが、これは第２コードベクトルの原点が第１コードベクトルに相当するためである。従って、第２コードベクトルの長さ自体がコードベクトル間の距離に相当する。
【００９０】
【数１２】
2009090875.tif 000053
次いで、積集合円算出部２０７は、第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径ｒ＿２（ｄ２＿ｍｉｎ）とを入力し、下記の式（１３），（１４）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の中心および半径を求める。
【００９１】
【数１３】
2009090875.tif 000054
【００９２】
【数１４】
2009090875.tif 000055
次いで、積集合円算出部２０７は、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを調整部２０９に出力する。
【００９３】
第３コードブック２０８は、符号分離部２０１からの指示ｄ３＿ｍｉｎにより、内蔵のコードブックを構成する各第３コードベクトルＣＯＤＥ＿３（ｄ３）（ｉ）（ｄ３＝０，１，…，Ｄ３−１、ｉ＝０，１，…，Ｒ−１）の中から、コードベクトルＣＯＤＥ＿３（ｄ３＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を選択して加算器２１０に出力する。
【００９４】
調整部２０９は、積集合円算出部２０７から入力される積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）および積集合円の半径ｃｅｎｔ＿ｒを用いて、下記の式（１５）に従い、加算器２０５から入力される加算後のベクトルＴＭＰ（ｉ）（ｉ＝０，１，…，Ｒ−１）に対して調整を行う。
【００９５】
【数１５】
2009090875.tif 000056
次いで、調整部２０９は、調整後のベクトルＡＤ＿ＣＯＤＥ＿３（ｉ）（ｉ＝０，１，…，Ｒ−１）を加算器２１０に出力する。
【００９６】
加算器２１０は、第３コードブック２０８から第３コードベクトルＣＯＤＥ＿３（ｄ３＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）と、調整部２０９から入力される調整後のベクトルＡＤ＿ＣＯＤＥ＿３（ｉ）（ｉ＝０，１，…，Ｒ−１）と、を下記の式（１６）に従って加算し、加算後のベクトルＱ＿Ｖ（ｉ）を量子化ベクトルとして出力する。
【００９７】
【数１６】
2009090875.tif 000057
ベクトル量子化装置１００およびベクトル逆量子化装置２００で用いられる第１コードブック、第２コードブック、第３コードブック、第１半径コードブック、および第２半径コードブックは、学習により求めて予め作成されたものであり、これらのコードブックの学習方法について説明する。
【００９８】
第１コードブック１０１および２０２が備える第１コードブックを学習により求めるた
めには、まず多数の学習用のデータとして、例えばＶ個の学習用ベクトルを用意する。次いで、Ｖ個の学習用ベクトルを用いて、ＬＢＧ(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いＤ１個の第１コードベクトルＣＯＤＥ＿１（ｄ１）（ｉ）（ｄ１＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）を求め第１コードブックを生成する。
【００９９】
第１コードブックの学習の後、第１半径コードブックを生成する。具体的には、生成された第１コードブックを用いて上記Ｖ個の学習用ベクトルのベクトル量子化を各々行い、Ｖ個の学習用ベクトルが何れの第１コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第１コードベクトルにおいて、第１コードベクトルのクラスタに属する学習用ベクトルの中から、第１コードベクトルと学習用ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第１コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第１コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第１コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第１半径コードブックを構成する。
【０１００】
第２コードブック１０５および２０４が備える第２コードブックを学習により求めるためには、上記Ｖ個の学習用ベクトルを用いて、上記方法で求めた第１コードブックによる１段目のベクトル量子化を行い、加算器１０２が出力する第１残差ベクトルＥｒｒ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）をＶ個求める。次いで、Ｖ個の第１残差ベクトルＥｒｒ＿１（ｄ１＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、ＬＢＧアルゴリズム等の学習アルゴリズムに従いＤ２個の第２コードベクトルＣＯＤＥ＿２（ｄ２）（ｉ）（ｄ２＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）を求め、第２コードブックを生成する。
【０１０１】
また、第２コードブックの学習の後、第２半径コードブックを生成する。具体的には、生成された第２コードブックを用いて上記Ｖ個の第１残差ベクトルのベクトル量子化を各々行い、Ｖ個の第１残差ベクトルが何れの第２コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第２コードベクトルにおいて、第２コードベクトルのクラスタに属する第１残差ベクトルの中から、第２コードベクトルと第１残差ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第２コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第２コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第２コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第２半径コードブックを構成する。
【０１０２】
第３コードブック１１０および２０８が備える第３コードブックを学習により求めるためには、上記Ｖ個の第１残差ベクトルを用いて、上記方法で求めた第１コードブックおよび第２コードブックによる１段目と２段目とのベクトル量子化を行い、加算器１０６が出力する第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）をＶ個求める。次いで、Ｖ個の第２残差ベクトルＥｒｒ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、ＬＢＧアルゴリズム等の学習アルゴリズムに従いＤ３個の第３コードベクトルＣＯＤＥ＿３（ｄ３）（ｉ）（ｄ３＝０，１，…，Ｄ１−１、ｉ＝０，１，…，Ｒ−１）を求め、第３コードブックを生成する。
【０１０３】
これらの学習の方法は一例であって、上記の方法以外で各コードブックを生成しても本発明の効果は同様に得ることができる。
【０１０４】
このように、本実施の形態によれば、各コードベクトルのクラスタを円で近似的に表し、各クラスタ円の半径を半径コードブックとして記憶し、３段目のベクトル量子化において第３コードブックを、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に一致させるため、３段目のベクトル量子化の量子化精度を向上させる
ことができる。
【０１０５】
なお、本実施の形態では、積集合円の中心および半径を用いて第２残差ベクトルを調整する場合を例にとって説明したが、本発明はこれに限定されず、積集合円の中心および半径を用いて第３コードブックを調整しても同様な量子化結果が得られる。
【０１０６】
また、本実施の形態では、３段のベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、２段のベクトル量子化、もしくは、４段以上のベクトル量子化を行っても良い。
【０１０７】
例えば、本発明を２段のベクトル量子化に適用する場合、クラスタ円の積集合の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）を零ベクトル、積集合円の半径ｃｅｎｔ＿ｒを第１半径ｒ＿１（ｄ１＿ｍｉｎ）とすることにより、第１コードベクトルのクラスタ円をそのまま積集合円として用い、下記の式（１７）に従って第１残差ベクトルの調整を行う。
【０１０８】
【数１７】
2009090875.tif 000058
式（１７）において、ＣＢＲ＿２は第２コードブック１０５の広がりを表す値であり、第２コードブック１０５が持つ第２コードベクトルのうち、零点から最も遠い第２コードベクトルの、零点からの距離である。この値は、第２コードブック１０５を学習アルゴリズムにより作成する際に、同時に求めておく。
【０１０９】
また、例えば、本発明を４段以上のベクトル量子化に適用する場合、３段目以降に用いるコードブックを生成する際に３段目以降の半径コードブックを生成しておく。そして、本実施の形態で説明した３段のベクトル量子化を行った後、例えば４段目のベクトル量子化において、積集合円算出部１０８は、第３半径ｒ＿３（ｄ３＿ｍｉｎ）と前段までの積集合円の半径ｃｅｎｔ＿ｒとを入力し、下記の式（１８）〜（２０）に従って第３コードベクトルのクラスタ円と前段までの積集合円との積集合円を新たに求める。
【０１１０】
【数１８】
2009090875.tif 000059
【０１１１】
【数１９】
2009090875.tif 000060
【０１１２】
【数２０】
2009090875.tif 000061
このように、本発明を４段以上のベクトル量子化に適用する場合、積集合円を段数の増加に伴い次々と求める。
【０１１３】
また、本実施の形態では、第１コードベクトルのクラスタ円および第２コードベクトルのクラスタ円それぞれの半径を用いて、第３コードブックを第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に適応させる場合を例にとって説明した。しかし、本発明はこれに限定されず、他の方法を用いて第３コードブックを第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に適応させても良い。
【０１１４】
また、本実施の形態では、各コードベクトルのクラスタを円で近似する方法を用いたことにより、第１コードベクトルと第２コードベクトルとの距離ｄを求める際に第１コードベクトルを用いなかったが、異なる近似方法を適用するなどの場合には、必要に応じて第１コードベクトルも用いても良い。
【０１１５】
また、本実施の形態では、ベクトル逆量子化装置２００は、ベクトル量子化装置１００から伝送された量子化ベクトル符号を復号するとしたが、これに限らず、量子化ベクトル符号として、ベクトル逆量子化装置２００で復号可能な形式の符号化データであれば、ベクトル量子化装置１００から伝送されたものでなくてもベクトル逆量子化装置２００で受信して復号することが可能であることは言うまでもない。
【０１１６】
（実施の形態２）
図８は、本発明の実施の形態２に係るベクトル量子化装置７００の構成を示すブロック図である。なお、ベクトル量子化装置７００は、実施の形態１に示したベクトル量子化装置１００（図５参照）と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
【０１１７】
誤差最小化部１０３ａは、加算器１０２から入力される第１残差ベクトルを用いて入力ベクトルと第１コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第１コードベクトルを第１コードブック１０１の中から選択する。次いで、誤差最小化部１０３ａは、加算器１０６から入力される第２残差ベクトルを用いて第１残差ベクトルと第２コードベクトルとの二乗誤差を求め、誤差が最小となる第２コードベクトルを第２コードブック１０５の中から選択する。次いで、誤差最小化部１０３ａは、加算器１１１から入力される第３残差ベクトルを用いて第２残差ベクトルと第３コードベクトルとの二乗誤差を求め、誤差が最小となる第３コードベクトルを第３コードブック１１０の中から選択する。これらのコードベクトルを選択する処理は、１つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部１０３ａは、コードベクトルが選択される毎に、第１コードベクトルのインデクスを積集合円算出部７０１に出力し、第２コードベクトルのインデクスを積集合円算出部７０１に出力する。次いで、誤差最小化部１０３ａは、選択された３つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
【０１１８】
積集合円算出部７０１は、後述する積集合円コードブックを具備する。また、積集合円算出部７０１は、誤差最小化部１０３ａから第１コードベクトルのインデクス（第１インデクス）及び第２コードベクトルのインデクス（第２インデクス）を入力し、積集合円コードブック及び入力したインデクスに基づいて、積集合円の中心および半径を選択して調整部１０９に出力する。
【０１１９】
図９は、本発明の実施の形態２に係る積集合円算出部７０１の構成を示すブロック図である。積集合円算出部７０１は、積集合円コードブック８０１及び演算部８０２を具備する。
【０１２０】
積集合円コードブック８０１は、積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）（ｉ＝０，１，…，Ｒ−１）、および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）をｉｄｘと対応付けて、コードブックとして内部に有している。ここで、ｉｄｘは第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎの二つのインデクスの組み合わせに対応する代表値である。例えば、ｄ１＿ｍｉｎが０〜Ｄ１−１のＤ１種類の値を取り得るとともに、ｄ２＿ｍｉｎが０〜Ｄ２−１のＤ２種類の値を取り得る場合、ｉｄｘは式（２１）のように表すことができる。つまり、積集合円コードブック８０１は、第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎにより、積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）が一意に決定できる積集合円コードブックである。
【０１２１】
【数２１】
2009090875.tif 000062
演算部８０２は、誤差最小化部１０３ａから第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎを入力し、式（２１）を用いてｉｄｘを求める。次いで、演算部８０２は、求めたｉｄｘに対応する積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）（ｉ＝０，１，…，Ｒ−１）、および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）を、それぞれ積集合円コードブック８０１のコードブックの中から取り出し、これらを調整部１０９に出力する。
【０１２２】
全ての第１インデクスｄ１＿ｍｉｎ、および第２インデクスｄ２＿ｍｉｎの組み合わせに対するｉｄｘに対応して、式（６），（７）を用いて積集合円の中心ＣＥＮＴ（ｉｄｘ）（ｉ）（ｉ＝０，１，…，Ｒ−１）および積集合円の半径ｃｅｎｔ＿ｒ（ｉｄｘ）を求めておくことにより、積集合円コードブック８０１が有するコードブックを予め作成しておくことができる。
【０１２３】
このように、本実施の形態によれば、積集合円算出部が行う計算（式（６），（７））を予め行っておき、計算結果をコードブックとして具備しておくという特徴を有する。この構成により、本実施の形態によれば、上記実施の形態１の効果に加えて、符号化の際に計算（式（６），（７））を行う必要が無くなるため、計算量を削減することができる。即ち、上記実施の形態１では、第１半径、第２半径、第１コードベクトル、第２コードベクトルを用いて積集合円の半径と中心とを計算により求めたが、本実施の形態のように、全ての組み合わせでの半径と中心とを計算により予め求めておき、求めた半径と中心とをコードブックとして具備しておいても、本発明の効果は得ることができる。この場合、半径と中心とを予め計算しておくので、量子化時に半径と中心とを改めて計算する必要が無く、実施の形態１に比べて計算量を少なくすることができる。
【０１２４】
（実施の形態３）
図１０は、本発明の実施の形態３に係るベクトル量子化装置５００の主要な構成を示すブロック図である。なお、ベクトル量子化装置５００は、実施の形態１に示したベクトル量子化装置１００（図５参照）と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
【０１２５】
ベクトル量子化装置５００は、第１コードブック１０１、加算器１０２、誤差最小化部５０１、第１半径コードブック１０４、第２コードブック１０５、加算器１０６、第２半径コードブック１０７、積集合円算出部５０２、調整部１０９、第３コードブック１１０、および加算器１１１を備える。
【０１２６】
誤差最小化部５０１は、加算器１０２から入力される第１残差ベクトルを用いて、入力ベクトルと第１コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第１コードベクトルを第１コードブック１０１の中から選択する。また、誤差最小化部５０１は、選択した第１コードベクトルのインデクスを第１半径コードブック１０４に出力する。
【０１２７】
次いで、誤差最小化部５０１は、加算器１０６から入力される第２残差ベクトルを用いて、第１残差ベクトルと第２コードベクトルとの二乗誤差を求め、第２コードブック１０５の中から、この二乗誤差の小さい順に複数の第２コードベクトルを選択候補として選択する。換言すると、誤差最小化部５０１は、第２コードブック１０５の中から、第１残差ベクトルにより近い順に複数の第２コードベクトルを選択候補として抽出する。そして、誤差最小化部５０１は、選択候補として選択された複数の第２コードベクトル各々のインデクスを第２半径コードブック１０７に出力し、選択候補として選択された複数の第２コードベクトルを積集合円算出部５０２に出力する。また、誤差最小化部５０１は、積集合円算出部５０２から入力される、選択候補として選択された複数の第２コードベクトル各々における積集合円の半径のうち、積集合円の半径が最小となる第２コードベクトルを選択する。そして、誤差最小化部５０１は、積集合円の半径が最小となる第２コードベクトルのインデクスを改めて第２半径コードブック１０７に出力する。
【０１２８】
次いで、誤差最小化部５０１は、加算器１１１から入力される第３残差ベクトルを用いて、第２残差ベクトルと第３コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第３コードベクトルを第３コードブック１１０の中から選択する。これらのコードベクトルを選択する処理は、１つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。そして、誤差最小化部５０１は、選択された３つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
【０１２９】
積集合円算出部５０２は、第１半径コードブック１０４から入力される第１半径、第２半径コードブック１０７から入力される、誤差最小化部５０１で選択候補として選択された複数の第２コードベクトル各々に対応する第２半径、および、誤差最小化部５０１から入力される複数の第２コードベクトルを用いて、誤差最小化部５０１で選択候補として選択された複数の第２コードベクトルの各々について積集合円の半径を求め、全ての積集合円の半径を誤差最小化部５０１に出力する。次いで、積集合円算出部５０２は、実施の形態１と同様にして、第１半径、第２半径コードブック１０７から改めて入力される第２半径、および、第２コードベクトルを用いて、第３コードブック１１０の調整（実際には第２残差ベクトルの調整）に用いるベクトルおよび係数（すなわち、積集合円の中心および半径）を求めて調整部１０９に出力する。
【０１３０】
以下、ベクトル量子化装置５００の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がＲ次である場合を例にとって説明する。
【０１３１】
誤差最小化部５０１は、第２コードブック１０５にコードベクトルのインデクスｄ２’を指示し、指示する毎に加算器１０６から入力される第２残差ベクトルＥｒｒ＿２（ｄ２’）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用いて、下記の式（２２）に従って二乗誤差Ｅｒｒを求める。
【０１３２】
【数２２】
2009090875.tif 000063
そして、誤差最小化部５０１は、全ての第２コードベクトルについて二乗誤差Ｅｒｒを求め、二乗誤差Ｅｒｒの値の小さい順にＸ個の第２コードベクトルを選択候補として選択する。そして、誤差最小化部５０１は、選択したＸ個の第２コードベクトルのインデクスｄ２＿ｍｉｎ（ｘ）（ｘ＝０，１，…，Ｘ−１）を第２半径コードブック１０７に出力する。また、誤差最小化部５０１は、選択したＸ個の第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ（ｘ））（ｉ）（ｉ＝０，１，…，Ｒ−１）を積集合円算出部５０２に出力する。ここで、Ｘの値は、大量の入力データによる予備実験を事前に行い、最も良い性能が得られた値をＸとして設定してもよい。
【０１３３】
第２半径コードブック１０７は、内蔵のコードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、誤差最小化部５０１から入力されるＸ個の第２インデクスｄ２＿ｍｉｎ（ｘ）（ｘ＝０，１，…，Ｘ−１）にそれぞれ対応するＸ個の第２半径ｒ＿２（ｄ２＿ｍｉｎ（ｘ））を積集合円算出部５０２に出力する。
【０１３４】
積集合円算出部５０２は、誤差最小化部５０１から入力されるＸ個の第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ（ｘ））（ｉ）（ｉ＝０，１，…，Ｒ−１）を用い、下記の式（２３）に従って第１コードベクトルと第２コードベクトルとの距離ｄ（ｘ）を求める。式（２３）では、実施の形態１と同様、距離ｄ（ｘ）を求める際に第１コードベクトルを用いていないが、これは第２コードベクトルの原点が第１コードベクトルに相当するためである。従って、第２コードベクトルの長さ自体がコードベクトル間の距離に相当する。
【０１３５】
【数２３】
2009090875.tif 000064
次いで、積集合円算出部５０２は、求めた距離ｄ（ｘ）と第１半径コードブック１０４から入力される第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径コードブック１０７から入力される第２半径ｒ＿２（ｄ２＿ｍｉｎ（ｘ））と誤差最小化部５０１から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ（ｘ））（ｉ）（ｉ＝０，１，…，Ｒ−１）とを用い、下記の式（２４）、（２５）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合の半径を近似的に求める。
【０１３６】
【数２４】
2009090875.tif 000065
【０１３７】
【数２５】
2009090875.tif 000066
そして、積集合円算出部５０２は、求めたＸ個の積集合円の半径ｃｅｎｔ＿ｒ（ｘ）を誤差最小化部５０１に出力する。
【０１３８】
誤差最小化部５０１は、積集合円算出部５０２から入力されるＸ個の積集合円の半径ｃｅｎｔ＿ｒ（ｘ）の中から、最小の半径ｃｅｎｔ＿ｒ（ｘ＿ｍｉｎ）となる第２コードベクトルのインデクスｄ２＿ｍｉｎ（ｘ＿ｍｉｎ）を第２インデクスｄ２＿ｍｉｎとして記憶すると共に第２インデクスｄ２＿ｍｉｎを第２半径コードブック１０７に出力する。また、誤差最小化部５０１は、積集合円の半径が最小となる第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を積集合円算出部５０２に出力する。
【０１３９】
第２半径コードブック１０７は、内蔵のコードブックを構成する各第２半径ｒ＿２（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）の中から、誤差最小化部５０１から入力される第２インデクスｄ２＿ｍｉｎに対応する第２半径ｒ＿２（ｄ２＿ｍｉｎ）を積集合円算出部５０２に出力する。
【０１４０】
積集合円算出部５０２は、誤差最小化部５０１から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）を用い、下記の式（２６）に従って第１コードベクトルと第２コードベクトルとの距離ｄを求める。
【０１４１】
【数２６】
2009090875.tif 000067
次いで、積集合円算出部５０２は、求めた距離ｄと第１半径コードブック１０４から入力される第１半径ｒ＿１（ｄ１＿ｍｉｎ）と第２半径コードブック１０７から入力される第２半径ｒ＿２（ｄ２＿ｍｉｎ）と誤差最小化部５０１から入力される第２コードベクトルＣＯＤＥ＿２（ｄ２＿ｍｉｎ）（ｉ）（ｉ＝０，１，…，Ｒ−１）とを用い、下記の式（２７）、（２８）に従って第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の中心および半径を近似的に求める。
【０１４２】
【数２７】
2009090875.tif 000068
【０１４３】
【数２８】
2009090875.tif 000069
そして、積集合円算出部５０２は、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と、積集合円の半径ｃｅｎｔ＿ｒとを調整部１０９に出力する。
【０１４４】
このように、ベクトル量子化装置５００では、２段目のベクトル量子化における第２コードベクトルの選択の評価指標として、第２コードベクトルと量子化対象ベクトルとの距離に加え、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の半径の大きさが用いられる。ここで、３段目のベクトル量子化では、３段目のコードブック（図１０では、第３コードブック１１０）を、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円に一致させる。つまり、積集合円の半径が小さいほど、３段目のベクトル量子化において第３コードベクトルの探索範囲はより小さくなる。よって、ベクトル量子化装置５００は、２段目のベクトル量子化後の積集合円の半径が最小となる第２コードベクトルを選択することで、３段目のベクトル量子化では最小限の探索範囲のみを探索して第３コードベクトルを選択することができる。よって、本実施の形態によれば、実施の形態１と同様に３段目のベクトル量子化の量子化精度を向上させることができ、さらに、３段目のベクトル量子化の量子化効率を向上させることができる。
【０１４５】
なお、本実施の形態において、式（２４）、（２５）または式（２７）、（２８）により求められる積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）および積集合円の半径ｃｅｎｔ＿ｒは、積集合円算出部５０２に入力される２つのインデクスの組み合わせにより一意に定まる。そのため、本発明では、メモリに余裕がある場合には、実施の形態２と同様にしてすべてのインデクスの組み合わせにおいて、積集合円の中心ＣＥＮＴ（ｉ）（ｉ＝０，１，…，Ｒ−１）と積集合円の半径ｃｅｎｔ＿ｒとを予め求めておき、求めた積集合円の中心と積集合円の半径とを積集合円コードブックとしてメモリに記憶させてもよい。これにより、ベクトル量子化装置５００では、ベクトル量子化時に積集合円の中心および半径を算出する計算を省略することができる。
【０１４６】
また、本実施の形態では、ベクトル量子化装置５００が、二乗誤差Ｅｒｒの小さい順に複数の第２コードベクトルを選択候補として選択し、選択候補の中から、積集合円の半径が最小となる第２コードベクトルを１つ選択する、という手順で第２コードベクトルを決定する方法を一例に挙げて説明した。しかし、本発明では、積集合円の半径を考慮して第２コードベクトルを決定する方法はこれに限らない。例えば、ベクトル量子化装置５００は、式（２２）に従って全ての第２コードベクトルについて二乗誤差Ｅｒｒ（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）を求めるとともに、全ての第２コードベクトルについて積集合円の半径ｃｅｎｔ＿ｒ（ｄ２）（ｄ２＝０，１，…，Ｄ２−１）を求め、次式（２９）により算出される評価指標Ｙが最小となる第２コードベクトルを選択してもよい。つまり、ベクトル量子化装置５００は、第２コードベクトルと入力ベクトル（量子化対象ベクトル）との距離、および、第１コードベクトルのクラスタ円と第２コードベクトルのクラスタ円との積集合円の半径の双方を同時に用いた評価指標に従って、第２コードベクトルを選択してもよい。
【０１４７】
【数２９】
2009090875.tif 000070
ここで、αは、積集合円の半径を評価指標としてどのくらい考慮するのかを決定付ける重みであり、大量の入力データによる予備実験を事前に行い、最も良い性能が得られた値をαとして設定してもよい。
【０１４８】
以上、本発明の各実施の形態について説明した。
【０１４９】
なお、メモリに余裕がある場合は上記実施の形態２の構成を採用し、計算時間に余裕がある場合は上記実施の形態１の構成を採用することができるため、必要な条件に応じて構成を選ぶことができる。
【０１５０】
また、上記各実施の形態では、多段ベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、分割ベクトル量子化と併用してベクトル量子化を行っても良い。
【０１５１】
また、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、上記各実施の形態に限定されず、種々変更して実施することが可能である。
【０１５２】
例えば、上記各実施の形態では、ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法において、音声信号を対象として説明したが、楽音信号等に適用することも可能である。
【０１５３】
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声もしくは楽音符号化における線形予測係数のベクトルの量子化において良好な性能を得ることができる。
【０１５４】
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声伝送を行う移動体通信システムにおける通信端末装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置を提供することができる。
【０１５５】
なお、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るベクトル量子化方法およびベクトル逆量子化方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るベクトル量子化装置およびベクトル逆量子化装置と同様の機能を実現することができる。
【０１５６】
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部またはすべてを含むように１チップ化されても良い。
【０１５７】
また、ここではＬＳＩとしたが、集積度の違いによって、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩ等と呼称されることもある。
【０１５８】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラム化することが可能なＦＰＧＡ（Fｉeld Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１５９】
さらに、半導体技術の進歩または派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０１６０】
２００８年１月１６日出願の特願２００８−００７４１７、２００８年５月３０日出願の特願２００８−１４３２７８および２００８年１２月１２日出願の特願２００８−３１７３９８の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０１６１】
本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、音声符号化および音声復号等の用途に適用することができる。
【図面の簡単な説明】
【０１６２】
【図１】従来技術に係る多段ベクトル量子化の問題点を説明するための図
【図２】本発明の原理について説明するための図
【図３】図２に示した本発明の原理をより詳細に説明するための図
【図４】図２に示した本発明の原理をより詳細に説明するための図
【図５】本発明の実施の形態１に係るベクトル量子化装置の主要な構成を示すブロック図
【図６】本発明の実施の形態１に係る積集合円算出部の内部の構成を示すブロック図
【図７】本発明の実施の形態１に係るベクトル逆量子化装置の主要な構成を示すブロック図
【図８】本発明の実施の形態２に係るベクトル量子化装置の主要な構成を示すブロック図
【図９】本発明の実施の形態２に係る積集合円算出部の構成を示すブロック図
【図１０】本発明の実施の形態３に係るベクトル量子化装置の主要な構成を示すブロック図
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009090875.tif 000071
【図２】
2009090875.tif 000072
【図３】
2009090875.tif 000073
【図４】
2009090875.tif 000074
【図５】
2009090875.tif 000075
【図６】
2009090875.tif 000076
【図７】
2009090875.tif 000077
【図８】
2009090875.tif 000078
【図９】
2009090875.tif 000079
【図１０】
2009090875.tif 000080
【国際調査報告】
2009090875.tif 000081
2009090875.tif 000082
2009090875.tif 000083
2009090875.tif 000084