JPWO2009090875A1 - ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 - Google Patents
ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 Download PDFInfo
- Publication number
- JPWO2009090875A1 JPWO2009090875A1 JP2009549985A JP2009549985A JPWO2009090875A1 JP WO2009090875 A1 JPWO2009090875 A1 JP WO2009090875A1 JP 2009549985 A JP2009549985 A JP 2009549985A JP 2009549985 A JP2009549985 A JP 2009549985A JP WO2009090875 A1 JPWO2009090875 A1 JP WO2009090875A1
- Authority
- JP
- Japan
- Prior art keywords
- vector
- code
- circle
- codebook
- radius
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 239000013598 vector Substances 0.000 title claims abstract description 1533
- 238000013139 quantization Methods 0.000 title claims abstract description 394
- 238000000034 method Methods 0.000 title claims description 76
- 238000004364 calculation method Methods 0.000 claims abstract description 157
- 238000010586 diagram Methods 0.000 description 46
- 238000000926 separation method Methods 0.000 description 36
- 101100119135 Mus musculus Esrrb gene Proteins 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 14
- 230000014509 gene expression Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 8
- 230000001174 ascending effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000003595 spectral effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0004—Design or structure of the codebook
- G10L2019/0005—Multi-stage vector quantisation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
多段ベクトル量子化において、前段のベクトル量子化結果に適応して後段のベクトル量子化を行い、より少ない計算量およびビットレートで、量子化精度を向上させることができるベクトル量子化装置。この装置において、積集合円算出部(108)は、第1コードブック(101)の中から第1段目の量子化結果として選択された第1コードベクトルのクラスタ円と、第2コードブック(105)の中から第2段目の量子化結果として選択された第2コードベクトルのクラスタ円との積集合を表す積集合円を算出し、調整部(109)は、第3コードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第3コードブックのクラスタ円と、積集合円算出部(108)で算出された積集合円とが合致するように、第2段目の量子化誤差または第3コードブックを調整する。
Description
本発明は、ベクトルの量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関し、特にインターネット通信に代表されるパケット通信システムや、移動通信システム等の分野で、音声信号の伝送を行う音声符号化・復号装置に用いられる、LSP(Line Spectral Pairs)パラメータのベクトル量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関する。
ディジタル無線通信や、インターネット通信に代表されるパケット通信、あるいは音声蓄積などの分野においては、電波などの伝送路容量や記憶媒体の有効利用を図るため、音声信号の符号化・復号技術が不可欠である。その中で特に、CELP(Code Excited Linear Prediction)方式の音声符号化・復号技術が主流の技術となっている。
CELP方式の音声符号化装置は、予め記憶された音声モデルに基づいて入力音声を符号化する。具体的には、CELP方式の音声符号化装置は、ディジタル化された音声信号を10〜20ms程度の一定時間間隔のフレームに区切り、各フレーム内の音声信号に対して線形予測分析を行い線形予測係数(LPC:Linear Prediction Coefficient)と線形予測残差ベクトルを求め、線形予測係数と線形予測残差ベクトルとをそれぞれ個別に符号化する。線形予測係数を符号化する方法としては、線形予測係数をLSP(Line Spectral Pairs)パラメータに変換し、LSPパラメータを符号化することが一般的である。また、LSPパラメータを符号化する方法としては、LSPパラメータに対してベクトル量子化を行うことが多い。ベクトル量子化とは、代表的なベクトル(コードベクトル)を複数持つ符号帳(コードブック)の中から、量子化対象のベクトルに最も近いコードベクトルを選択し、選択されたコードベクトルに付与されているインデクス(符号)を量子化結果として出力する方法である。ベクトル量子化においては、使用できる情報量に応じてコードブックのサイズが決まる。例えば、8ビットの情報量でベクトル量子化を行う場合、コードブックは256(=28)種類のコードベクトルを用いて構成することができる。
また、ベクトル量子化における情報量、計算量を低減するために、例えば非特許文献1記載の多段ベクトル量子化(MSVQ:Multi-Stage Vector Quantization)、または分割ベクトル量子化(SVQ:Split Vector Quantization)などの様々な技術が用いられている。多段ベクトル量子化とは、ベクトルを一度ベクトル量子化した後に量子化誤差を更にベクトル量子化する方法であり、分割ベクトル量子化とは、ベクトルを複数に分割して得られた分割ベクトルをそれぞれ量子化する方法である。
Allen Gersho、Robert M. Gray著、古井、外3名訳、「ベクトル量子化と情報圧縮」、コロナ社、1998年11月10日、p.506、524-531
Allen Gersho、Robert M. Gray著、古井、外3名訳、「ベクトル量子化と情報圧縮」、コロナ社、1998年11月10日、p.506、524-531
多段ベクトル量子化においては、各段で選択されるコードベクトルの組み合わせでターゲットベクトルが表現される。従って、各段のコードベクトルのすべての組み合わせが代表するクラスタを重複せず各々独立して持っている方が、量子化精度も向上し量子化効率も向上する。ここで、クラスタとはコードベクトルにより代表されるターゲットベクトルの集合をいう。しかしながら、非特許文献1記載の多段ベクトル量子化において、各段のコードベクトルの各組み合わせが代表するクラスタは、一部重複してしまう。従って、一部クラスタを表現することができる、各段のコードベクトルの組み合わせが2つ以上存在してしまい、量子化精度の劣化および量子化ビットレートの増加が発生してしまう。
図1は、非特許文献1記載の多段ベクトル量子化における問題点を説明するための図である。
図1Aにおいて、黒丸は、1段目のベクトル量子化で用いられる第1コードブックを構成する第1コードベクトルの一部を例示する。実線で区切られる2次元空間は、第1コードベクトルそれぞれが代表するベクトル集合の領域(クラスタ)を示す。なお、以下においては、コードブックを構成するすべてのコードベクトルそれぞれが代表するベクトルの集合を、このコードブックのクラスタと称す。図1Aに示すように、互いに異なる第1コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。
ベクトル量子化とは、量子化対象であるターゲットベクトルが属するクラスタを代表するコードベクトルを探索することである。始めに、1段目のベクトル量子化が行われ、1つの第1コードベクトルが選択される。図1Bは、1段目のベクトル量子化において1つの第1コードベクトルが選択された状態を表す図である。図1Bにおいては、十字丸11はターゲットベクトルを示し、破線に囲まれる空間は、ターゲットベクトルが属するクラスタを示す。また、黒丸12は、ターゲットベクトルが属するクラスタを代表する第1コードベクトルを示す。
次いで、2段目のベクトル量子化が行われ、第2コードブックを構成する第2コードベクトルのうちの1つが選択される。図1Cは、2段目のベクトル量子化が行われ、1つの第2コードベクトルが選択される状態を表す図である。図1Cは、図1Bを基に、さらに白丸13を用いて、2段目のベクトル量子化で選択された第2コードベクトルを示している。また、点破線で囲まれる空間は、2段目のベクトル量子化で選択された第2コードベクトルが代表するクラスタを模式的に表している。便宜上図示していないものの、選択された第2コードベクトルの周りにも、他の第2コードベクトルと、これら他の第2コードベクトルが代表するクラスタが存在する。なお、ここでも、互いに異なる第2コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。2段目のベクトル量子化は、1段目のベクトル量子化で選択された第1コードベクトル(黒丸12)を中心として行われ、これにより、量子化結果である第2コードベクトル(白丸13)をターゲットベクトル(十字丸11)に更に近付ける。
図1に示したように、1段目のベクトル量子化(図1B参照)で黒丸12の第1コードベクトルが選択され、2段目のベクトル量子化(図1C参照)で白丸13の第2コードベクトルが選択された。ここで、上述(図1B、図1C参照)したように、第1コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、また、第2コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル(十字丸11)は必ず、黒丸12が代表するクラスタと、白丸13が代表するクラスタとの積集合に含まれるはずである。しかしながら、非特許文献1記載の多段ベクトル量子化においては、続いて行われる3段目のベクトル量子化を、2段目のベクトル量子化で選択された第2コードベクトル(白丸13)を中心として行い、上記の積集合以外の領域も探索して第3コードベクトルを選択する。従って、3段目のベクトル量子化の効率および量子化精度が劣化してしまう。
本発明の目的は、多段ベクトル量子化において、前段のベクトル量子化結果に適応して後段のベクトル量子化を行い、量子化精度を向上させることができるベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法を提供することである。
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、前記第m−1コードブックを用いて入力ベクトルもしくは前記第m−1残差ベクトルをベクトル量子化して第m−1符号を得るとともに、前記第m残差ベクトルをベクトル量子化して第m符号を得る量子化手段と、第N−2符号及び第N−1符号に基づいて、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径と中心とを選択して出力する積集合円算出手段と、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N−2,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択し、第N−1コードブックの中から第N−2残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第N−2コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコードベクトルを選択する選択手段と、を具備する構成を採る。
本発明のベクトル逆量子化装置は、ベクトル量子化装置において入力ベクトルに対して第n(n=1,2,…,N;Nは3以上の整数)段目の量子化を行って得られた第n符号を受信する受信手段と、それぞれが複数のコードベクトルを記憶する第1から第NまでのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、第1コードブックのうち第1符号が示すコードベクトルと、第2コードブックのうち第2符号が示すコードベクトルと、を加算して第1加算ベクトルを得る第1加算手段と、第m(m=2,3,…,N−1)コードブックのうち第m符号が示すコードベクトルと、第m−1加算ベクトルとを加算して第m加算ベクトルを得る第m加算手段と、第N−2コードブックのうち第N−2符号が示すコードベクトルのクラスタ円と、第N−1コードブックのうち第N−1符号が示すコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Nコードブックのうち第N符号が示すコードベクトル(第Nコードベクトル)のクラスタ円と、前記積集合円とが合致するように、第N−1加算ベクトルまたは第Nコードベクトルを調整する調整手段と、前記調整された第Nコードベクトルと、前記第N−1加算ベクトルとを加算する、または、前記調整された第N−1加算ベクトルと、前記第Nコードベクトルと、を加算することにより量子化ベクトルを得る第N加算手段と、を具備する構成を採る。
本発明のベクトル量子化方法は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックとを用いて、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出ステップと、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出ステップと、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出ステップと、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整ステップと、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出ステップと、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択ステップと、を実行するようにした。
本発明によれば、LSPパラメータ等のベクトルに対して複数段階の量子化を行う際に、そのうち2つの前段の量子化結果に基づき、後段の量子化に用いられるコードベクトルのベクトル空間を適応的に調整するため、量子化精度を向上することができる。
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
(実施の形態1)
まず、本発明の原理について説明する。
まず、本発明の原理について説明する。
図2は、本発明の原理について説明するための図である。なお、図2は、図1と基本的に同様であり、図2Dが追加された点のみが相違する。すなわち、図2A〜Cは、図1A〜Cと同様であり、ここでは詳細な説明を省略する。
図2Dは、1段目のベクトル量子化で選択された第1コードベクトル(黒丸12)が代表するクラスタと、2段目のベクトル量子化で選択された第2コードベクトル(白丸)が代表するクラスタと、の積集合を網掛けの空間で表す図である。上述(図1B、図1C参照)したように、第1コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、第2コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル(十字丸11)は必ず、黒丸12が代表するクラスタと、白丸13が代表するクラスタとの積集合に含まれるはずである。本発明においては、2段目以降の、例えば3段目のベクトル量子化でのコードベクトル探索を、上記積集合の領域内に限定して行うために、2段目以降(例えば3段目)のベクトル量子化に用いるコードブック(例えば第3コードブック)を構成するすべてのコードベクトル(例えば第3コードベクトル)が代表するクラスタの平均と分散を積集合(網掛けの空間)内部に収まるように適応制御する。これにより、全てのコードベクトルの組み合わせが代表するクラスタ群の独立性を保ち、2段目以降、例えば3段目のベクトル量子化において第3コードベクトルの探索範囲を積集合内部に制限することができる。従って、2段目以降のベクトル量子化の効率および精度が向上する。
図3は、図2に示した本発明の原理をより詳細に説明するための図である。
図3Aにおいて、黒丸は、1段目のベクトル量子化で用いられる第1コードブックを構成する第1コードベクトルの一部を例示する。破線で区切られる2次元空間は、第1コードベクトルのクラスタを示し、これら各第1コードベクトルのクラスタは、円によって近似的に表されている。各クラスタを近似表現する円(以下、クラスタ円と称す)は、第1コードベクトルを中心とする。そして、各クラスタ円の半径は、第1コードブックの学習時において、各第1コードベクトルのクラスタに属する学習用ベクトルのうち、第1コードベクトルに最も遠い学習用ベクトルと、第1コードベクトルとの距離をとる。また、クラスタ円の中により多くのターゲットベクトルが包含されるように、上記の方法で求められるクラスタ円の半径に定数を掛け、半径を拡張しても良い。ここで、各コードベクトルのクラスタ円の半径は、全てのコードブックの学習時に予め求められ、クラスタ半径コードブックに格納される。図3Aにおいて、クラスタ円の判定の例として、r1を用いて、黒丸12の第1コードベクトルが代表するクラスタ円の半径を示す。
図3Bは、1段目のベクトル量子化により選択される第1コードベクトルのクラスタ円と2段目のベクトル量子化により選択される第2コードベクトルのクラスタ円との位置関係を例示する図である。本発明に係るベクトル量子化装置は、各段のベクトル量子化を行ってコードベクトルを選択し、各段で選択したコードベクトルのクラスタ円の半径をクラスタ半径コードブックから選び出す。図3Bにおいて、r1は第1コードベクトル(黒丸12)のクラスタ円の半径を示し、r2は第2コードベクトル(白丸13)の半径を示す。これにより、各段のベクトル量子化において選択されたコードベクトルのクラスタの位置関係を、クラスタ円で近似的に表現する。以下、第1コードベクトル(黒丸12)のクラスタ円をクラスタ円r1とも称し、第2コードベクトル(白丸13)のクラスタ円をクラスタ円r2とも称す。
次いで、クラスタ円r1とクラスタ円r2との積集合を円で近似的に表す。以下、クラスタ円r1とクラスタ円r2との積集合を表す円を積集合円とも称す。図3Cは、クラスタ円r1とクラスタ円r2との積集合円の中点を示す図である。具体的には、破線丸14を用いて、クラスタ円r1とクラスタ円r2との積集合を積集合円で近似的に表した場合の中心を示す。積集合円の中心(破線丸14)は、クラスタ円r1の中心と、クラスタ円r2の中心とを通る直線上に位置する。破線丸14から直線上の両方向それぞれへ向かって、クラスタ円r1とクラスタ円r2との積集合の周辺までの距離は両方ともdである。すなわち、この2つの距離は同様にdである。
図3Dは、クラスタ円r1とクラスタ円r2との積集合円を示す図である。図3Dにおいては、表示の便宜上クラスタ円r1を実線円で示し、クラスタ円r2を破線円で示す。なお、これらのクラスタ円の半径および中心は図示していない。図3Dにおいて、距離dは、図3Cにおける距離dと同様であり、r3は、積集合円の半径を示す。また、積集合円を点破線円で示す。積集合円の中心および半径は、第1コードベクトルと第2コードベクトルとの距離、クラスタ円の半径r1、r2から求めることができる。そして、本発明に係るベクトル量子化においては、第3コードブックのクラスタ円を積集合円r3と合致するように調整を行ってから3段目のベクトル量子化を行う。
なお、図4Aのように、クラスタ円r1の中にクラスタ円r2が完全に内包される場合には、積集合円r3としてクラスタ円r2をそのまま用いる。すなわち、r3=r2とする。また、図4Bのように、クラスタ円r1とクラスタ円r2との積集合が存在しない場合にも、積集合円r3としてクラスタ円r2をそのまま用いる。
本発明に係るベクトル量子化においては、3段目のベクトル量子化を行う際に、第3コードブックのクラスタを、この積集合円r3の中に収まるように、第3コードブック全体に対し係数を加算および乗算する。これにより、2段目以降のベクトル量子化の効率および精度を向上させる。以下、本発明の実施の形態において、この積集合円r3の中心および半径の求め方について説明する。
図5は、本発明の実施の形態1に係るベクトル量子化装置100の主要な構成を示すブロック図である。ベクトル量子化装置100の量子化対象としては、例えばLSPベクトルまたは他のベクトルが挙げられる。なお、ここでは、ベクトル量子化装置100の量子化対象である入力ベクトルを3段階の多段ベクトル量子化によりベクトル量子化する場合を例にとって説明する。
ベクトル量子化装置100は、第1コードブック101、加算器102、誤差最小化部103、第1半径コードブック104、第2コードブック105、加算器106、第2半径コードブック107、積集合円算出部108、調整部109、第3コードブック110、および加算器111を備える。
第1コードブック101は、誤差最小化部103から指示された第1コードベクトルを、内蔵のコードブックの中から選択し加算器102に出力する。
加算器102は、ベクトル量子化のターゲットとして外部から入力される入力ベクトルと、第1コードブック101から入力される第1コードベクトルとの差を求め、この差のベクトルを第1残差ベクトルとして誤差最小化部103と加算器106とに出力する。
誤差最小化部103は、加算器102から入力される第1残差ベクトルを用いて入力ベクトルと第1コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第1コードベクトルを第1コードブック101の中から選択する。次いで、誤差最小化部103は、加算器106から入力される第2残差ベクトルを用いて第1残差ベクトルと第2コードベクトルとの二乗誤差を求め、誤差が最小となる第2コードベクトルを第2コードブック105の中から選択する。次いで、誤差最小化部103は、加算器111から入力される第3残差ベクトルを用いて第2残差ベクトルと第3コードベクトルとの二乗誤差を求め、誤差が最小となる第3コードベクトルを第3コードブック110の中から選択する。これらのコードベクトルを選択する処理は、1つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部103は、コードベクトルが選択される毎に、第1コードベクトルのインデクスを第1半径コードブック104に出力し、第2コードベクトルのインデクスを第2半径コードブック107に出力し、第2コードベクトルを積集合円算出部108に出力する。次いで、誤差最小化部103は、選択された3つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
第1半径コードブック104は、誤差最小化部103から第1コードベクトルのインデクスを入力し、このインデクスに対応する第1半径を内蔵のコードブックの中から選択して積集合円算出部108に出力する。ここで、第1半径とは、第1コードベクトルのクラスタ円の半径を指す。第1半径は、第1コードブック101を学習アルゴリズムにより予め作成する際に、同時に求めておく。
第2コードブック105は、誤差最小化部103から指示された第2コードベクトルを内蔵のコードブックの中から選択し、加算器106に出力する。
加算器106は、加算器102から入力される第1残差ベクトルと、第2コードブック105から入力される第2コードベクトルとの差を求め、この差のベクトルを第2残差ベクトルとして誤差最小化部103と調整部109とに出力する。
第2半径コードブック107は、誤差最小化部103から第2コードベクトルのインデクスを入力し、このインデクスに対応する第2半径を内蔵のコードブックの中から選択して積集合円算出部108に出力する。ここで、第2半径とは、第2コードベクトルのクラスタ円の半径を指す。第2半径は、第2コードブック105を学習アルゴリズムにより予め作成する際に、同時に求めておく。
積集合円算出部108は、第1半径コードブック104から入力される第1半径、第2半径コードブック107から入力される第2半径、誤差最小化部103から入力される第2コードベクトルを用いて、積集合円の中心および半径を求めて調整部109に出力する。なお、積集合円算出部108の詳細については後述する。
調整部109は、加算器106から第2残差ベクトルを入力し、積集合円算出部108から入力される積集合円の中心および半径を用いて第2残差ベクトルを調整し、調整後の第2残差ベクトルを加算器111に出力する。3段目のベクトル量子化においては、積集合円の中心および半径に基づき第2残差ベクトルを調整してベクトル量子化を行う結果と、同様の積集合円の中心および半径に基づき第3コードブック110に対し逆の調整を行ってベクトル量子化する結果は同様となる。このため、調整部109においては、積集合円の中心および半径に基づき第2残差ベクトルの移動および大きさの変更を行う調整処理により、第3コードブック110に対し中心の移動および半径の変更を行う調整処理と同様な効果を得ている。
第3コードブック110は、誤差最小化部103から指示された第3コードベクトルを、内蔵のコードブックの中から選択し加算器111に出力する。
加算器111は、調整部109から入力される調整後の第2残差ベクトルと、第3コードブック110から入力される第3コードベクトルとの差を求め、この差のベクトルを第3残差ベクトルとして誤差最小化部103に出力する。
図6は、積集合円算出部108の内部の構成を示すブロック図である。
図6において、距離算出部181は、誤差最小化部103から入力される第2コードベクトルを用い、積集合円の中心および半径を算出するためのパラメータである距離dを求め、中心半径算出部182に出力する。
中心半径算出部182は、第1半径コードブック104から入力される第1半径、第2半径コードブック107から入力される第2半径、誤差最小化部103から入力される第2コードベクトル、および距離算出部181から入力される距離dを用いて、積集合円の中心および半径を求めて調整部109に出力する。
以下、ベクトル量子化装置100の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がR次である場合を例にとって説明し、この入力ベクトルをV(i)(i=0,1,…,R−1)と記す。
第1コードブック101は、誤差最小化部103からの指示d1’により、内蔵のコードブックを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)を選択して加算器102に出力する。ここで、D1は、第1コードブック101のコードベクトルの総数であり、d1は、コードベクトルのインデクスである。誤差最小化部103は、d1’=0からd1’=D1−1までd1’の値を順次変えながら、出力するコードベクトルを第1コードブック101に指示するものとする。
加算器102は、量子化対象である入力ベクトルV(i)(i=0,1,…,R−1)と、第1コードブック101から入力される第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)との差を下記の式(1)に従って求め、この差のベクトルErr_1(d1’)(i)(i=0,1,…,R−1)を第1残差ベクトルとして誤差最小化部103と加算器106とに出力する。
第1半径コードブック104は、内蔵のコードブックを構成する各第1半径r_1(d1)(d1=0,1,…,D1−1)の中から、誤差最小化部103から入力される第1インデクスd1_minに対応する第1半径r_1(d1_min)を積集合円算出部108に出力する。
第2コードブック105は、誤差最小化部103からの指示d2’により、内蔵のコードブックを構成する各第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、第2コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)を選択して加算器106に出力する。ここで、D2は、第2コードブック105のコードベクトルの総数であり、d2は、コードベクトルのインデクスである。誤差最小化部103は、d2’=0からd2’=D2−1までd2’の値を順次変えながら、出力するコードベクトルを第2コードブック105に指示するものとする。
加算器106は、加算器102から入力される第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック105から入力される第2コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)との差を下記の式(3)に従って求め、この差のベクトルErr_2(d2’)(i)(i=0,1,…,R−1)を第2残差ベクトルとして誤差最小化部103と調整部109とに出力する。
第2半径コードブック107は、内蔵のコードブックを構成する各第2半径r_2(d2)(d2=0,1,…,D2−1)の中から、誤差最小化部103から入力される第2インデクスd2_minに対応する第2半径r_2(d2_min)を積集合円算出部108に出力する。
積集合円算出部108において、距離算出部181は、誤差最小化部103から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を用い、下記の式(5)に従って第1コードベクトルと第2コードベクトルとの距離dを求め、中心半径算出部182に出力する。式(5)では距離dを求める際に第1コードベクトルを用いていないが、これは第2コードベクトルの原点が第1コードベクトルに相当するためである。従って、第2コードベクトルの長さ自体がコードベクトル間の距離に相当する。
次いで、積集合円算出部108は、積集合円の中心CENT(i)(i=0,1,…,R−1)と、積集合円の半径cent_rとを調整部109に出力する。
調整部109は、積集合円算出部108から入力される積集合円の中心CENT(i)(i=0,1,…,R−1)および半径cent_rを用い下記の式(8)に従って、加算器106から入力される第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)に対して調整を行う。
次いで、調整部109は、調整第2残差ベクトルAD_Err_2(i)(i=0,1,…,R−1)を加算器111に出力する。
第3コードブック110は、誤差最小化部103からの指示d3’により、内蔵のコードブックを構成する各第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、第3コードベクトルCODE_3(d3´)(i)(i=0,1,…,R−1)を選択して加算器111に出力する。ここで、D3は、第3コードブック110のコードベクトルの総数であり、d3は、コードベクトルのインデクスである。誤差最小化部103は、d3’=0からd3’=D3−1までd3’の値を順次変えながら、出力するコードベクトルを第3コードブック110に指示するものとする。
加算器111は、調整部109から入力される調整第2残差ベクトルAD_Err_2(i)(i=0,1,…,R−1)と第3コードブック110から入力される第3コードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)との差を下記の式(9)に従って求め、この差のベクトルErr_3(d3’)(i)(i=0,1,…,R−1)を第3残差ベクトルとして誤差最小化部103に出力する。
次いで、誤差最小化部103は、第1インデクスd1_min、第2インデクスd2_min、第3インデクスd3_minを纏めて符号化し、符号化データとして出力する。
図7は、本発明の実施の形態1に係るベクトル逆量子化装置200の主要な構成を示すブロック図である。ベクトル逆量子化装置200は、ベクトル量子化装置100において出力される符号化データを復号して量子化ベクトルを生成する。
図7において、ベクトル逆量子化装置200は、符号分離部201、第1コードブック202、第1半径コードブック203、第2コードブック204、加算器205、第2半径コードブック206、積集合円算出部207、第3コードブック208、調整部209、および加算器210を備える。なお、第1コードブック202は、第1コードブック101が備えるコードブックと同一内容のコードブックを備え、第1半径コードブック203は、第1半径コードブック104が備えるコードブックと同一内容のコードブックを備え、第2コードブック204は、第2コードブック105が備えるコードブックと同一内容のコードブックを備え、第2半径コードブック206は、第2半径コードブック107が備えるコードブックと同一内容のコードブックを備え、第3コードブック208は、第3コードブック110が備えるコードブックと同一内容のコードブックを備える。
符号分離部201は、符号化データを入力し、第1〜第3インデクスを求める。次いで、符号分離部201は、第1インデクスに相当するコードベクトルを出力するように第1コードブック202に指示する。また、符号分離部201は、第1インデクスを第1半径コードブック203に出力する。次いで、符号分離部201は、第2インデクスに相当するコードベクトルを出力するように第2コードブック204に指示する。また、符号分離部201は、第2インデクスを第2半径コードブック206に出力する。次いで、符号分離部201は、第3インデクスに相当するコードベクトルを出力するように第3コードブック208に指示する。
第1コードブック202は、符号分離部201から指示されたコードベクトルを第1コードベクトルとして加算器205に出力する。
第1半径コードブック203は、符号分離部201から第1インデクスを入力し、第1インデクスに対応する第1半径を内蔵のコードブックの中から選択して積集合円算出部207に出力する。
第2コードブック204は、符号分離部201から指示されたコードベクトルを第2コードベクトルとして加算器205と積集合円算出部207とに出力する。
加算器205は、第1コードブック202から入力される第1コードベクトルと、第2コードブック204から入力される第2コードベクトルとを加算し、加算後のコードベクトルを調整部209に出力する。
第2半径コードブック206は、符号分離部201から第2インデクスを入力し、第2インデクスに対応する第2半径を内蔵の半径コードブックの中から選択して積集合円算出部207に出力する。
積集合円算出部207は、第1半径コードブック203から入力される第1半径、第2半径コードブック206から入力される第2半径、および第2コードブック204から入力される第2コードベクトルを用い、積集合円の中心および半径を求めて調整部209に出力する。
第3コードブック208は、符号分離部201から指示されたコードベクトルを第3コードベクトルとして加算器210に出力する。
調整部209は、積集合円算出部207から入力された積集合円の中心および半径を用いて、加算器205から第1コードベクトルと第2コードベクトルとの加算結果を調整し、調整後のコードベクトルを加算器210に出力する。3段目のベクトル逆量子化において、積集合円の中心および半径を用いてこの加算結果を調整しベクトル逆量子化を行う結果は、同様の積集合円の中心および半径を用いて第3コードブック208を調整しベクトル逆量子化を行う結果と同様となる。
加算器210は、調整部209から入力される調整後のコードベクトルと、第3コードブック208から入力される第3コードベクトルとを加算し、加算後のベクトルを量子化ベクトルとして出力する。
以下、ベクトル逆量子化装置200の各構成要素の動作について説明する。
符号分離部201は、符号化データを分離して第1インデクスd1_minと第2インデクスd2_minと第3インデクスd3_minとを求める。そして、符号分離部201は、第1インデクスd1_minに相当するコードベクトルを出力するように第1コードブック202に指示し、第2インデクスd2_minに相当するコードベクトルを出力するように第2コードブック204に指示し、第3インデクスd3_minに相当するコードベクトルを出力するように第3コードブック208に指示する。
次いで、符号分離部201は、第1インデクスd1_minを第1半径コードブック203に出力し、第2インデクスd2_minを第2半径コードブック206に出力する。
第1コードブック202は、符号分離部201からの指示d1_minにより、内蔵のコードブックを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)を選択し加算器205に出力する。
第1半径コードブック203は、第1インデクスd1_minを入力し、内蔵のコードブックを構成する各第1半径r_1(d1)(d1=0,1,…,D1−1)の中から、第1インデクスd1_minに対応する第1半径r_1(d1_min)を選択し積集合円算出部207に出力する。
第2コードブック204は、符号分離部201からの指示d2_minにより、内蔵のコードブックを構成する各第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を選択し、加算器205と積集合円算出部207とに出力する。
加算器205は、第1コードブック202から入力される第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック204から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)とを下記の式(11)に従って加算し、加算後のベクトルTMP(i)(i=0,1,…,R−1)を調整部209に出力する。
積集合円算出部207は、第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を入力し、下記の式(12)に従って第1コードベクトルと第2コードベクトルとの距離dを求める。式(12)では距離dを求める際に第1コードベクトルを用いていないが、これは第2コードベクトルの原点が第1コードベクトルに相当するためである。従って、第2コードベクトルの長さ自体がコードベクトル間の距離に相当する。
第3コードブック208は、符号分離部201からの指示d3_minにより、内蔵のコードブックを構成する各第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、コードベクトルCODE_3(d3_min)(i)(i=0,1,…,R−1)を選択して加算器210に出力する。
調整部209は、積集合円算出部207から入力される積集合円の中心CENT(i)(i=0,1,…,R−1)および積集合円の半径cent_rを用いて、下記の式(15)に従い、加算器205から入力される加算後のベクトルTMP(i)(i=0,1,…,R−1)に対して調整を行う。
加算器210は、第3コードブック208から第3コードベクトルCODE_3(d3_min)(i)(i=0,1,…,R−1)と、調整部209から入力される調整後のベクトルAD_CODE_3(i)(i=0,1,…,R−1)と、を下記の式(16)に従って加算し、加算後のベクトルQ_V(i)を量子化ベクトルとして出力する。
第1コードブック101および202が備える第1コードブックを学習により求めるためには、まず多数の学習用のデータとして、例えばV個の学習用ベクトルを用意する。次いで、V個の学習用ベクトルを用いて、LBG(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD1個の第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)を求め第1コードブックを生成する。
第1コードブックの学習の後、第1半径コードブックを生成する。具体的には、生成された第1コードブックを用いて上記V個の学習用ベクトルのベクトル量子化を各々行い、V個の学習用ベクトルが何れの第1コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第1コードベクトルにおいて、第1コードベクトルのクラスタに属する学習用ベクトルの中から、第1コードベクトルと学習用ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第1コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第1コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第1コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第1半径コードブックを構成する。
第2コードブック105および204が備える第2コードブックを学習により求めるためには、上記V個の学習用ベクトルを用いて、上記方法で求めた第1コードブックによる1段目のベクトル量子化を行い、加算器102が出力する第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、V個の第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)を用いて、LBGアルゴリズム等の学習アルゴリズムに従いD2個の第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D1−1、i=0,1,…,R−1)を求め、第2コードブックを生成する。
また、第2コードブックの学習の後、第2半径コードブックを生成する。具体的には、生成された第2コードブックを用いて上記V個の第1残差ベクトルのベクトル量子化を各々行い、V個の第1残差ベクトルが何れの第2コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第2コードベクトルにおいて、第2コードベクトルのクラスタに属する第1残差ベクトルの中から、第2コードベクトルと第1残差ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第2コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第2コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第2コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第2半径コードブックを構成する。
第3コードブック110および208が備える第3コードブックを学習により求めるためには、上記V個の第1残差ベクトルを用いて、上記方法で求めた第1コードブックおよび第2コードブックによる1段目と2段目とのベクトル量子化を行い、加算器106が出力する第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)をV個求める。次いで、V個の第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)を用いて、LBGアルゴリズム等の学習アルゴリズムに従いD3個の第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D1−1、i=0,1,…,R−1)を求め、第3コードブックを生成する。
これらの学習の方法は一例であって、上記の方法以外で各コードブックを生成しても本発明の効果は同様に得ることができる。
このように、本実施の形態によれば、各コードベクトルのクラスタを円で近似的に表し、各クラスタ円の半径を半径コードブックとして記憶し、3段目のベクトル量子化において第3コードブックを、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に一致させるため、3段目のベクトル量子化の量子化精度を向上させることができる。
なお、本実施の形態では、積集合円の中心および半径を用いて第2残差ベクトルを調整する場合を例にとって説明したが、本発明はこれに限定されず、積集合円の中心および半径を用いて第3コードブックを調整しても同様な量子化結果が得られる。
また、本実施の形態では、3段のベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、2段のベクトル量子化、もしくは、4段以上のベクトル量子化を行っても良い。
例えば、本発明を2段のベクトル量子化に適用する場合、クラスタ円の積集合の中心CENT(i)(i=0,1,…,R−1)を零ベクトル、積集合円の半径cent_rを第1半径r_1(d1_min)とすることにより、第1コードベクトルのクラスタ円をそのまま積集合円として用い、下記の式(17)に従って第1残差ベクトルの調整を行う。
また、例えば、本発明を4段以上のベクトル量子化に適用する場合、3段目以降に用いるコードブックを生成する際に3段目以降の半径コードブックを生成しておく。そして、本実施の形態で説明した3段のベクトル量子化を行った後、例えば4段目のベクトル量子化において、積集合円算出部108は、第3半径r_3(d3_min)と前段までの積集合円の半径cent_rとを入力し、下記の式(18)〜(20)に従って第3コードベクトルのクラスタ円と前段までの積集合円との積集合円を新たに求める。
また、本実施の形態では、第1コードベクトルのクラスタ円および第2コードベクトルのクラスタ円それぞれの半径を用いて、第3コードブックを第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に適応させる場合を例にとって説明した。しかし、本発明はこれに限定されず、他の方法を用いて第3コードブックを第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に適応させても良い。
また、本実施の形態では、各コードベクトルのクラスタを円で近似する方法を用いたことにより、第1コードベクトルと第2コードベクトルとの距離dを求める際に第1コードベクトルを用いなかったが、異なる近似方法を適用するなどの場合には、必要に応じて第1コードベクトルも用いても良い。
また、本実施の形態では、ベクトル逆量子化装置200は、ベクトル量子化装置100から伝送された量子化ベクトル符号を復号するとしたが、これに限らず、量子化ベクトル符号として、ベクトル逆量子化装置200で復号可能な形式の符号化データであれば、ベクトル量子化装置100から伝送されたものでなくてもベクトル逆量子化装置200で受信して復号することが可能であることは言うまでもない。
(実施の形態2)
図8は、本発明の実施の形態2に係るベクトル量子化装置700の構成を示すブロック図である。なお、ベクトル量子化装置700は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
図8は、本発明の実施の形態2に係るベクトル量子化装置700の構成を示すブロック図である。なお、ベクトル量子化装置700は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
誤差最小化部103aは、加算器102から入力される第1残差ベクトルを用いて入力ベクトルと第1コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第1コードベクトルを第1コードブック101の中から選択する。次いで、誤差最小化部103aは、加算器106から入力される第2残差ベクトルを用いて第1残差ベクトルと第2コードベクトルとの二乗誤差を求め、誤差が最小となる第2コードベクトルを第2コードブック105の中から選択する。次いで、誤差最小化部103aは、加算器111から入力される第3残差ベクトルを用いて第2残差ベクトルと第3コードベクトルとの二乗誤差を求め、誤差が最小となる第3コードベクトルを第3コードブック110の中から選択する。これらのコードベクトルを選択する処理は、1つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部103aは、コードベクトルが選択される毎に、第1コードベクトルのインデクスを積集合円算出部701に出力し、第2コードベクトルのインデクスを積集合円算出部701に出力する。次いで、誤差最小化部103aは、選択された3つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
積集合円算出部701は、後述する積集合円コードブックを具備する。また、積集合円算出部701は、誤差最小化部103aから第1コードベクトルのインデクス(第1インデクス)及び第2コードベクトルのインデクス(第2インデクス)を入力し、積集合円コードブック及び入力したインデクスに基づいて、積集合円の中心および半径を選択して調整部109に出力する。
図9は、本発明の実施の形態2に係る積集合円算出部701の構成を示すブロック図である。積集合円算出部701は、積集合円コードブック801及び演算部802を具備する。
積集合円コードブック801は、積集合円の中心CENT(idx)(i)(i=0,1,…,R−1)、および積集合円の半径cent_r(idx)をidxと対応付けて、コードブックとして内部に有している。ここで、idxは第1インデクスd1_min、および第2インデクスd2_minの二つのインデクスの組み合わせに対応する代表値である。例えば、d1_minが0〜D1−1のD1種類の値を取り得るとともに、d2_minが0〜D2−1のD2種類の値を取り得る場合、idxは式(21)のように表すことができる。つまり、積集合円コードブック801は、第1インデクスd1_min、および第2インデクスd2_minにより、積集合円の中心CENT(idx)(i)および積集合円の半径cent_r(idx)が一意に決定できる積集合円コードブックである。
全ての第1インデクスd1_min、および第2インデクスd2_minの組み合わせに対するidxに対応して、式(6),(7)を用いて積集合円の中心CENT(idx)(i)(i=0,1,…,R−1)および積集合円の半径cent_r(idx)を求めておくことにより、積集合円コードブック801が有するコードブックを予め作成しておくことができる。
このように、本実施の形態によれば、積集合円算出部が行う計算(式(6),(7))を予め行っておき、計算結果をコードブックとして具備しておくという特徴を有する。この構成により、本実施の形態によれば、上記実施の形態1の効果に加えて、符号化の際に計算(式(6),(7))を行う必要が無くなるため、計算量を削減することができる。即ち、上記実施の形態1では、第1半径、第2半径、第1コードベクトル、第2コードベクトルを用いて積集合円の半径と中心とを計算により求めたが、本実施の形態のように、全ての組み合わせでの半径と中心とを計算により予め求めておき、求めた半径と中心とをコードブックとして具備しておいても、本発明の効果は得ることができる。この場合、半径と中心とを予め計算しておくので、量子化時に半径と中心とを改めて計算する必要が無く、実施の形態1に比べて計算量を少なくすることができる。
(実施の形態3)
図10は、本発明の実施の形態3に係るベクトル量子化装置500の主要な構成を示すブロック図である。なお、ベクトル量子化装置500は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
図10は、本発明の実施の形態3に係るベクトル量子化装置500の主要な構成を示すブロック図である。なお、ベクトル量子化装置500は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
ベクトル量子化装置500は、第1コードブック101、加算器102、誤差最小化部501、第1半径コードブック104、第2コードブック105、加算器106、第2半径コードブック107、積集合円算出部502、調整部109、第3コードブック110、および加算器111を備える。
誤差最小化部501は、加算器102から入力される第1残差ベクトルを用いて、入力ベクトルと第1コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第1コードベクトルを第1コードブック101の中から選択する。また、誤差最小化部501は、選択した第1コードベクトルのインデクスを第1半径コードブック104に出力する。
次いで、誤差最小化部501は、加算器106から入力される第2残差ベクトルを用いて、第1残差ベクトルと第2コードベクトルとの二乗誤差を求め、第2コードブック105の中から、この二乗誤差の小さい順に複数の第2コードベクトルを選択候補として選択する。換言すると、誤差最小化部501は、第2コードブック105の中から、第1残差ベクトルにより近い順に複数の第2コードベクトルを選択候補として抽出する。そして、誤差最小化部501は、選択候補として選択された複数の第2コードベクトル各々のインデクスを第2半径コードブック107に出力し、選択候補として選択された複数の第2コードベクトルを積集合円算出部502に出力する。また、誤差最小化部501は、積集合円算出部502から入力される、選択候補として選択された複数の第2コードベクトル各々における積集合円の半径のうち、積集合円の半径が最小となる第2コードベクトルを選択する。そして、誤差最小化部501は、積集合円の半径が最小となる第2コードベクトルのインデクスを改めて第2半径コードブック107に出力する。
次いで、誤差最小化部501は、加算器111から入力される第3残差ベクトルを用いて、第2残差ベクトルと第3コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第3コードベクトルを第3コードブック110の中から選択する。これらのコードベクトルを選択する処理は、1つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。そして、誤差最小化部501は、選択された3つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
積集合円算出部502は、第1半径コードブック104から入力される第1半径、第2半径コードブック107から入力される、誤差最小化部501で選択候補として選択された複数の第2コードベクトル各々に対応する第2半径、および、誤差最小化部501から入力される複数の第2コードベクトルを用いて、誤差最小化部501で選択候補として選択された複数の第2コードベクトルの各々について積集合円の半径を求め、全ての積集合円の半径を誤差最小化部501に出力する。次いで、積集合円算出部502は、実施の形態1と同様にして、第1半径、第2半径コードブック107から改めて入力される第2半径、および、第2コードベクトルを用いて、第3コードブック110の調整(実際には第2残差ベクトルの調整)に用いるベクトルおよび係数(すなわち、積集合円の中心および半径)を求めて調整部109に出力する。
以下、ベクトル量子化装置500の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がR次である場合を例にとって説明する。
誤差最小化部501は、第2コードブック105にコードベクトルのインデクスd2’を指示し、指示する毎に加算器106から入力される第2残差ベクトルErr_2(d2’)(i)(i=0,1,…,R−1)を用いて、下記の式(22)に従って二乗誤差Errを求める。
第2半径コードブック107は、内蔵のコードブックを構成する各第2半径r_2(d2)(d2=0,1,…,D2−1)の中から、誤差最小化部501から入力されるX個の第2インデクスd2_min(x)(x=0,1,…,X−1)にそれぞれ対応するX個の第2半径r_2(d2_min(x))を積集合円算出部502に出力する。
積集合円算出部502は、誤差最小化部501から入力されるX個の第2コードベクトルCODE_2(d2_min(x))(i)(i=0,1,…,R−1)を用い、下記の式(23)に従って第1コードベクトルと第2コードベクトルとの距離d(x)を求める。式(23)では、実施の形態1と同様、距離d(x)を求める際に第1コードベクトルを用いていないが、これは第2コードベクトルの原点が第1コードベクトルに相当するためである。従って、第2コードベクトルの長さ自体がコードベクトル間の距離に相当する。
誤差最小化部501は、積集合円算出部502から入力されるX個の積集合円の半径cent_r(x)の中から、最小の半径cent_r(x_min)となる第2コードベクトルのインデクスd2_min(x_min)を第2インデクスd2_minとして記憶すると共に第2インデクスd2_minを第2半径コードブック107に出力する。また、誤差最小化部501は、積集合円の半径が最小となる第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を積集合円算出部502に出力する。
第2半径コードブック107は、内蔵のコードブックを構成する各第2半径r_2(d2)(d2=0,1,…,D2−1)の中から、誤差最小化部501から入力される第2インデクスd2_minに対応する第2半径r_2(d2_min)を積集合円算出部502に出力する。
積集合円算出部502は、誤差最小化部501から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を用い、下記の式(26)に従って第1コードベクトルと第2コードベクトルとの距離dを求める。
このように、ベクトル量子化装置500では、2段目のベクトル量子化における第2コードベクトルの選択の評価指標として、第2コードベクトルと量子化対象ベクトルとの距離に加え、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円の半径の大きさが用いられる。ここで、3段目のベクトル量子化では、3段目のコードブック(図10では、第3コードブック110)を、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に一致させる。つまり、積集合円の半径が小さいほど、3段目のベクトル量子化において第3コードベクトルの探索範囲はより小さくなる。よって、ベクトル量子化装置500は、2段目のベクトル量子化後の積集合円の半径が最小となる第2コードベクトルを選択することで、3段目のベクトル量子化では最小限の探索範囲のみを探索して第3コードベクトルを選択することができる。よって、本実施の形態によれば、実施の形態1と同様に3段目のベクトル量子化の量子化精度を向上させることができ、さらに、3段目のベクトル量子化の量子化効率を向上させることができる。
なお、本実施の形態において、式(24)、(25)または式(27)、(28)により求められる積集合円の中心CENT(i)(i=0,1,…,R−1)および積集合円の半径cent_rは、積集合円算出部502に入力される2つのインデクスの組み合わせにより一意に定まる。そのため、本発明では、メモリに余裕がある場合には、実施の形態2と同様にしてすべてのインデクスの組み合わせにおいて、積集合円の中心CENT(i)(i=0,1,…,R−1)と積集合円の半径cent_rとを予め求めておき、求めた積集合円の中心と積集合円の半径とを積集合円コードブックとしてメモリに記憶させてもよい。これにより、ベクトル量子化装置500では、ベクトル量子化時に積集合円の中心および半径を算出する計算を省略することができる。
また、本実施の形態では、ベクトル量子化装置500が、二乗誤差Errの小さい順に複数の第2コードベクトルを選択候補として選択し、選択候補の中から、積集合円の半径が最小となる第2コードベクトルを1つ選択する、という手順で第2コードベクトルを決定する方法を一例に挙げて説明した。しかし、本発明では、積集合円の半径を考慮して第2コードベクトルを決定する方法はこれに限らない。例えば、ベクトル量子化装置500は、式(22)に従って全ての第2コードベクトルについて二乗誤差Err(d2)(d2=0,1,…,D2−1)を求めるとともに、全ての第2コードベクトルについて積集合円の半径cent_r(d2)(d2=0,1,…,D2−1)を求め、次式(29)により算出される評価指標Yが最小となる第2コードベクトルを選択してもよい。つまり、ベクトル量子化装置500は、第2コードベクトルと入力ベクトル(量子化対象ベクトル)との距離、および、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円の半径の双方を同時に用いた評価指標に従って、第2コードベクトルを選択してもよい。
以上、本発明の各実施の形態について説明した。
なお、メモリに余裕がある場合は上記実施の形態2の構成を採用し、計算時間に余裕がある場合は上記実施の形態1の構成を採用することができるため、必要な条件に応じて構成を選ぶことができる。
また、上記各実施の形態では、多段ベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、分割ベクトル量子化と併用してベクトル量子化を行っても良い。
また、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、上記各実施の形態に限定されず、種々変更して実施することが可能である。
例えば、上記各実施の形態では、ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法において、音声信号を対象として説明したが、楽音信号等に適用することも可能である。
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声もしくは楽音符号化における線形予測係数のベクトルの量子化において良好な性能を得ることができる。
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声伝送を行う移動体通信システムにおける通信端末装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置を提供することができる。
なお、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るベクトル量子化方法およびベクトル逆量子化方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るベクトル量子化装置およびベクトル逆量子化装置と同様の機能を実現することができる。
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部またはすべてを含むように1チップ化されても良い。
また、ここではLSIとしたが、集積度の違いによって、IC、システムLSI、スーパーLSI、ウルトラLSI等と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
2008年1月16日出願の特願2008−007417、2008年5月30日出願の特願2008−143278および2008年12月12日出願の特願2008−317398の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、音声符号化および音声復号等の用途に適用することができる。
本発明は、ベクトルの量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関し、特にインターネット通信に代表されるパケット通信システムや、移動通信システム等の分野で、音声信号の伝送を行う音声符号化・復号装置に用いられる、LSP(Line Spectral Pairs)パラメータのベクトル量子化を行うベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法に関する。
ディジタル無線通信や、インターネット通信に代表されるパケット通信、あるいは音声蓄積などの分野においては、電波などの伝送路容量や記憶媒体の有効利用を図るため、音声信号の符号化・復号技術が不可欠である。その中で特に、CELP(Code Excited Linear Prediction)方式の音声符号化・復号技術が主流の技術となっている。
CELP方式の音声符号化装置は、予め記憶された音声モデルに基づいて入力音声を符号化する。具体的には、CELP方式の音声符号化装置は、ディジタル化された音声信号を10〜20ms程度の一定時間間隔のフレームに区切り、各フレーム内の音声信号に対して線形予測分析を行い線形予測係数(LPC:Linear Prediction Coefficient)と線形予測残差ベクトルを求め、線形予測係数と線形予測残差ベクトルとをそれぞれ個別に符号化する。線形予測係数を符号化する方法としては、線形予測係数をLSP(Line Spectral Pairs)パラメータに変換し、LSPパラメータを符号化することが一般的である。また、LSPパラメータを符号化する方法としては、LSPパラメータに対してベクトル量子化を行うことが多い。ベクトル量子化とは、代表的なベクトル(コードベクトル)を複数持つ符号帳(コードブック)の中から、量子化対象のベクトルに最も近いコードベクトルを選択し、選択されたコードベクトルに付与されているインデクス(符号)を量子化結果として出力する方法である。ベクトル量子化においては、使用できる情報量に応じてコードブックのサイズが決まる。例えば、8ビットの情報量でベクトル量子化を行う場合、コードブックは256(=28)種類のコードベクトルを用いて構成することができる。
また、ベクトル量子化における情報量、計算量を低減するために、例えば非特許文献1記載の多段ベクトル量子化(MSVQ:Multi-Stage Vector Quantization)、または分割ベクトル量子化(SVQ:Split Vector Quantization)などの様々な技術が用いられている。多段ベクトル量子化とは、ベクトルを一度ベクトル量子化した後に量子化誤差を更にベクトル量子化する方法であり、分割ベクトル量子化とは、ベクトルを複数に分割して得られた分割ベクトルをそれぞれ量子化する方法である。
Allen Gersho、Robert M. Gray著、古井、外3名訳、「ベクトル量子化と情報圧縮」、コロナ社、1998年11月10日、p.506、524-531
Allen Gersho、Robert M. Gray著、古井、外3名訳、「ベクトル量子化と情報圧縮」、コロナ社、1998年11月10日、p.506、524-531
多段ベクトル量子化においては、各段で選択されるコードベクトルの組み合わせでターゲットベクトルが表現される。従って、各段のコードベクトルのすべての組み合わせが代表するクラスタを重複せず各々独立して持っている方が、量子化精度も向上し量子化効率も向上する。ここで、クラスタとはコードベクトルにより代表されるターゲットベクトルの集合をいう。しかしながら、非特許文献1記載の多段ベクトル量子化において、各段のコードベクトルの各組み合わせが代表するクラスタは、一部重複してしまう。従って、一部クラスタを表現することができる、各段のコードベクトルの組み合わせが2つ以上存在
してしまい、量子化精度の劣化および量子化ビットレートの増加が発生してしまう。
してしまい、量子化精度の劣化および量子化ビットレートの増加が発生してしまう。
図1は、非特許文献1記載の多段ベクトル量子化における問題点を説明するための図である。
図1Aにおいて、黒丸は、1段目のベクトル量子化で用いられる第1コードブックを構成する第1コードベクトルの一部を例示する。実線で区切られる2次元空間は、第1コードベクトルそれぞれが代表するベクトル集合の領域(クラスタ)を示す。なお、以下においては、コードブックを構成するすべてのコードベクトルそれぞれが代表するベクトルの集合を、このコードブックのクラスタと称す。図1Aに示すように、互いに異なる第1コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。
ベクトル量子化とは、量子化対象であるターゲットベクトルが属するクラスタを代表するコードベクトルを探索することである。始めに、1段目のベクトル量子化が行われ、1つの第1コードベクトルが選択される。図1Bは、1段目のベクトル量子化において1つの第1コードベクトルが選択された状態を表す図である。図1Bにおいては、十字丸11はターゲットベクトルを示し、破線に囲まれる空間は、ターゲットベクトルが属するクラスタを示す。また、黒丸12は、ターゲットベクトルが属するクラスタを代表する第1コードベクトルを示す。
次いで、2段目のベクトル量子化が行われ、第2コードブックを構成する第2コードベクトルのうちの1つが選択される。図1Cは、2段目のベクトル量子化が行われ、1つの第2コードベクトルが選択される状態を表す図である。図1Cは、図1Bを基に、さらに白丸13を用いて、2段目のベクトル量子化で選択された第2コードベクトルを示している。また、点破線で囲まれる空間は、2段目のベクトル量子化で選択された第2コードベクトルが代表するクラスタを模式的に表している。便宜上図示していないものの、選択された第2コードベクトルの周りにも、他の第2コードベクトルと、これら他の第2コードベクトルが代表するクラスタが存在する。なお、ここでも、互いに異なる第2コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立である。2段目のベクトル量子化は、1段目のベクトル量子化で選択された第1コードベクトル(黒丸12)を中心として行われ、これにより、量子化結果である第2コードベクトル(白丸13)をターゲットベクトル(十字丸11)に更に近付ける。
図1に示したように、1段目のベクトル量子化(図1B参照)で黒丸12の第1コードベクトルが選択され、2段目のベクトル量子化(図1C参照)で白丸13の第2コードベクトルが選択された。ここで、上述(図1B、図1C参照)したように、第1コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、また、第2コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル(十字丸11)は必ず、黒丸12が代表するクラスタと、白丸13が代表するクラスタとの積集合に含まれるはずである。しかしながら、非特許文献1記載の多段ベクトル量子化においては、続いて行われる3段目のベクトル量子化を、2段目のベクトル量子化で選択された第2コードベクトル(白丸13)を中心として行い、上記の積集合以外の領域も探索して第3コードベクトルを選択する。従って、3段目のベクトル量子化の効率および量子化精度が劣化してしまう。
本発明の目的は、多段ベクトル量子化において、前段のベクトル量子化結果に適応して後段のベクトル量子化を行い、量子化精度を向上させることができるベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法を提供することである。
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、前記第m−1コードブックを用いて入力ベクトルもしくは前記第m−1残差ベクトルをベクトル量子化して第m−1符号を得るとともに、前記第m残差ベクトルをベクトル量子化して第m符号を得る量子化手段と、第N−2符号及び第N−1符号に基づいて、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径と中心とを選択して出力する積集合円算出手段と、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択手段と、を具備する構成を採る。
本発明のベクトル量子化装置は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベク
トルとの差を第m残差ベクトルとして算出する第m算出手段と、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N−2,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択し、第N−1コードブックの中から第N−2残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第N−2コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコードベクトルを選択する選択手段と、を具備する構成を採る。
トルとの差を第m残差ベクトルとして算出する第m算出手段と、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N−2,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択し、第N−1コードブックの中から第N−2残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第N−2コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコードベクトルを選択する選択手段と、を具備する構成を採る。
本発明のベクトル逆量子化装置は、ベクトル量子化装置において入力ベクトルに対して第n(n=1,2,…,N;Nは3以上の整数)段目の量子化を行って得られた第n符号を受信する受信手段と、それぞれが複数のコードベクトルを記憶する第1から第NまでのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、第1コードブックのうち第1符号が示すコードベクトルと、第2コードブックのうち第2符号が示すコードベクトルと、を加算して第1加算ベクトルを得る第1加算手段と、第m(m=2,3,…,N−1)コードブックのうち第m符号が示すコードベクトルと、第m−1加算ベクトルとを加算して第m加算ベクトルを得る第m加算手段と、第N−2コードブックのうち第N−2符号が示すコードベクトルのクラスタ円と、第N−1コードブックのうち第N−1符号が示すコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、第Nコードブックのうち第N符号が示すコードベクトル(第Nコードベクトル)のクラスタ円と、前記積集合円とが合致するように、第N−1加算ベクトルまたは第Nコードベクトルを調整する調整手段と、前記調整された第Nコードベクトルと、前記第N−1加算ベクトルとを加算する、または、前記調整された第N−1加算ベクトルと、前記第Nコードベクトルと、を加算することにより量子化ベクトルを得る第N加算手段と、を具備する構成を採る。
本発明のベクトル量子化方法は、それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックとを用いて、第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出ステップと、第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出ステップと、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出ステップと、第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整ステップと、前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第
Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出ステップと、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択ステップと、を実行するようにした。
Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出ステップと、第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択ステップと、を実行するようにした。
本発明によれば、LSPパラメータ等のベクトルに対して複数段階の量子化を行う際に、そのうち2つの前段の量子化結果に基づき、後段の量子化に用いられるコードベクトルのベクトル空間を適応的に調整するため、量子化精度を向上することができる。
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
(実施の形態1)
まず、本発明の原理について説明する。
まず、本発明の原理について説明する。
図2は、本発明の原理について説明するための図である。なお、図2は、図1と基本的に同様であり、図2Dが追加された点のみが相違する。すなわち、図2A〜Cは、図1A〜Cと同様であり、ここでは詳細な説明を省略する。
図2Dは、1段目のベクトル量子化で選択された第1コードベクトル(黒丸12)が代表するクラスタと、2段目のベクトル量子化で選択された第2コードベクトル(白丸)が代表するクラスタと、の積集合を網掛けの空間で表す図である。上述(図1B、図1C参照)したように、第1コードベクトルそれぞれが代表するクラスタは、それぞれ重複せず独立であり、第2コードベクトルそれぞれが代表するクラスタも、それぞれ重複せず独立である。このため、ターゲットベクトル(十字丸11)は必ず、黒丸12が代表するクラスタと、白丸13が代表するクラスタとの積集合に含まれるはずである。本発明においては、2段目以降の、例えば3段目のベクトル量子化でのコードベクトル探索を、上記積集合の領域内に限定して行うために、2段目以降(例えば3段目)のベクトル量子化に用いるコードブック(例えば第3コードブック)を構成するすべてのコードベクトル(例えば第3コードベクトル)が代表するクラスタの平均と分散を積集合(網掛けの空間)内部に収まるように適応制御する。これにより、全てのコードベクトルの組み合わせが代表する
クラスタ群の独立性を保ち、2段目以降、例えば3段目のベクトル量子化において第3コードベクトルの探索範囲を積集合内部に制限することができる。従って、2段目以降のベクトル量子化の効率および精度が向上する。
クラスタ群の独立性を保ち、2段目以降、例えば3段目のベクトル量子化において第3コードベクトルの探索範囲を積集合内部に制限することができる。従って、2段目以降のベクトル量子化の効率および精度が向上する。
図3は、図2に示した本発明の原理をより詳細に説明するための図である。
図3Aにおいて、黒丸は、1段目のベクトル量子化で用いられる第1コードブックを構成する第1コードベクトルの一部を例示する。破線で区切られる2次元空間は、第1コードベクトルのクラスタを示し、これら各第1コードベクトルのクラスタは、円によって近似的に表されている。各クラスタを近似表現する円(以下、クラスタ円と称す)は、第1コードベクトルを中心とする。そして、各クラスタ円の半径は、第1コードブックの学習時において、各第1コードベクトルのクラスタに属する学習用ベクトルのうち、第1コードベクトルに最も遠い学習用ベクトルと、第1コードベクトルとの距離をとる。また、クラスタ円の中により多くのターゲットベクトルが包含されるように、上記の方法で求められるクラスタ円の半径に定数を掛け、半径を拡張しても良い。ここで、各コードベクトルのクラスタ円の半径は、全てのコードブックの学習時に予め求められ、クラスタ半径コードブックに格納される。図3Aにおいて、クラスタ円の判定の例として、r1を用いて、黒丸12の第1コードベクトルが代表するクラスタ円の半径を示す。
図3Bは、1段目のベクトル量子化により選択される第1コードベクトルのクラスタ円と2段目のベクトル量子化により選択される第2コードベクトルのクラスタ円との位置関係を例示する図である。本発明に係るベクトル量子化装置は、各段のベクトル量子化を行ってコードベクトルを選択し、各段で選択したコードベクトルのクラスタ円の半径をクラスタ半径コードブックから選び出す。図3Bにおいて、r1は第1コードベクトル(黒丸12)のクラスタ円の半径を示し、r2は第2コードベクトル(白丸13)の半径を示す。これにより、各段のベクトル量子化において選択されたコードベクトルのクラスタの位置関係を、クラスタ円で近似的に表現する。以下、第1コードベクトル(黒丸12)のクラスタ円をクラスタ円r1とも称し、第2コードベクトル(白丸13)のクラスタ円をクラスタ円r2とも称す。
次いで、クラスタ円r1とクラスタ円r2との積集合を円で近似的に表す。以下、クラスタ円r1とクラスタ円r2との積集合を表す円を積集合円とも称す。図3Cは、クラスタ円r1とクラスタ円r2との積集合円の中点を示す図である。具体的には、破線丸14を用いて、クラスタ円r1とクラスタ円r2との積集合を積集合円で近似的に表した場合の中心を示す。積集合円の中心(破線丸14)は、クラスタ円r1の中心と、クラスタ円r2の中心とを通る直線上に位置する。破線丸14から直線上の両方向それぞれへ向かって、クラスタ円r1とクラスタ円r2との積集合の周辺までの距離は両方ともdである。すなわち、この2つの距離は同様にdである。
図3Dは、クラスタ円r1とクラスタ円r2との積集合円を示す図である。図3Dにおいては、表示の便宜上クラスタ円r1を実線円で示し、クラスタ円r2を破線円で示す。なお、これらのクラスタ円の半径および中心は図示していない。図3Dにおいて、距離dは、図3Cにおける距離dと同様であり、r3は、積集合円の半径を示す。また、積集合円を点破線円で示す。積集合円の中心および半径は、第1コードベクトルと第2コードベクトルとの距離、クラスタ円の半径r1、r2から求めることができる。そして、本発明に係るベクトル量子化においては、第3コードブックのクラスタ円を積集合円r3と合致するように調整を行ってから3段目のベクトル量子化を行う。
なお、図4Aのように、クラスタ円r1の中にクラスタ円r2が完全に内包される場合には、積集合円r3としてクラスタ円r2をそのまま用いる。すなわち、r3=r2とす
る。また、図4Bのように、クラスタ円r1とクラスタ円r2との積集合が存在しない場合にも、積集合円r3としてクラスタ円r2をそのまま用いる。
る。また、図4Bのように、クラスタ円r1とクラスタ円r2との積集合が存在しない場合にも、積集合円r3としてクラスタ円r2をそのまま用いる。
本発明に係るベクトル量子化においては、3段目のベクトル量子化を行う際に、第3コードブックのクラスタを、この積集合円r3の中に収まるように、第3コードブック全体に対し係数を加算および乗算する。これにより、2段目以降のベクトル量子化の効率および精度を向上させる。以下、本発明の実施の形態において、この積集合円r3の中心および半径の求め方について説明する。
図5は、本発明の実施の形態1に係るベクトル量子化装置100の主要な構成を示すブロック図である。ベクトル量子化装置100の量子化対象としては、例えばLSPベクトルまたは他のベクトルが挙げられる。なお、ここでは、ベクトル量子化装置100の量子化対象である入力ベクトルを3段階の多段ベクトル量子化によりベクトル量子化する場合を例にとって説明する。
ベクトル量子化装置100は、第1コードブック101、加算器102、誤差最小化部103、第1半径コードブック104、第2コードブック105、加算器106、第2半径コードブック107、積集合円算出部108、調整部109、第3コードブック110、および加算器111を備える。
第1コードブック101は、誤差最小化部103から指示された第1コードベクトルを、内蔵のコードブックの中から選択し加算器102に出力する。
加算器102は、ベクトル量子化のターゲットとして外部から入力される入力ベクトルと、第1コードブック101から入力される第1コードベクトルとの差を求め、この差のベクトルを第1残差ベクトルとして誤差最小化部103と加算器106とに出力する。
誤差最小化部103は、加算器102から入力される第1残差ベクトルを用いて入力ベクトルと第1コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第1コードベクトルを第1コードブック101の中から選択する。次いで、誤差最小化部103は、加算器106から入力される第2残差ベクトルを用いて第1残差ベクトルと第2コードベクトルとの二乗誤差を求め、誤差が最小となる第2コードベクトルを第2コードブック105の中から選択する。次いで、誤差最小化部103は、加算器111から入力される第3残差ベクトルを用いて第2残差ベクトルと第3コードベクトルとの二乗誤差を求め、誤差が最小となる第3コードベクトルを第3コードブック110の中から選択する。これらのコードベクトルを選択する処理は、1つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部103は、コードベクトルが選択される毎に、第1コードベクトルのインデクスを第1半径コードブック104に出力し、第2コードベクトルのインデクスを第2半径コードブック107に出力し、第2コードベクトルを積集合円算出部108に出力する。次いで、誤差最小化部103は、選択された3つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
第1半径コードブック104は、誤差最小化部103から第1コードベクトルのインデクスを入力し、このインデクスに対応する第1半径を内蔵のコードブックの中から選択して積集合円算出部108に出力する。ここで、第1半径とは、第1コードベクトルのクラスタ円の半径を指す。第1半径は、第1コードブック101を学習アルゴリズムにより予め作成する際に、同時に求めておく。
第2コードブック105は、誤差最小化部103から指示された第2コードベクトルを
内蔵のコードブックの中から選択し、加算器106に出力する。
内蔵のコードブックの中から選択し、加算器106に出力する。
加算器106は、加算器102から入力される第1残差ベクトルと、第2コードブック105から入力される第2コードベクトルとの差を求め、この差のベクトルを第2残差ベクトルとして誤差最小化部103と調整部109とに出力する。
第2半径コードブック107は、誤差最小化部103から第2コードベクトルのインデクスを入力し、このインデクスに対応する第2半径を内蔵のコードブックの中から選択して積集合円算出部108に出力する。ここで、第2半径とは、第2コードベクトルのクラスタ円の半径を指す。第2半径は、第2コードブック105を学習アルゴリズムにより予め作成する際に、同時に求めておく。
積集合円算出部108は、第1半径コードブック104から入力される第1半径、第2半径コードブック107から入力される第2半径、誤差最小化部103から入力される第2コードベクトルを用いて、積集合円の中心および半径を求めて調整部109に出力する。なお、積集合円算出部108の詳細については後述する。
調整部109は、加算器106から第2残差ベクトルを入力し、積集合円算出部108から入力される積集合円の中心および半径を用いて第2残差ベクトルを調整し、調整後の第2残差ベクトルを加算器111に出力する。3段目のベクトル量子化においては、積集合円の中心および半径に基づき第2残差ベクトルを調整してベクトル量子化を行う結果と、同様の積集合円の中心および半径に基づき第3コードブック110に対し逆の調整を行ってベクトル量子化する結果は同様となる。このため、調整部109においては、積集合円の中心および半径に基づき第2残差ベクトルの移動および大きさの変更を行う調整処理により、第3コードブック110に対し中心の移動および半径の変更を行う調整処理と同様な効果を得ている。
第3コードブック110は、誤差最小化部103から指示された第3コードベクトルを、内蔵のコードブックの中から選択し加算器111に出力する。
加算器111は、調整部109から入力される調整後の第2残差ベクトルと、第3コードブック110から入力される第3コードベクトルとの差を求め、この差のベクトルを第3残差ベクトルとして誤差最小化部103に出力する。
図6は、積集合円算出部108の内部の構成を示すブロック図である。
図6において、距離算出部181は、誤差最小化部103から入力される第2コードベクトルを用い、積集合円の中心および半径を算出するためのパラメータである距離dを求め、中心半径算出部182に出力する。
中心半径算出部182は、第1半径コードブック104から入力される第1半径、第2半径コードブック107から入力される第2半径、誤差最小化部103から入力される第2コードベクトル、および距離算出部181から入力される距離dを用いて、積集合円の中心および半径を求めて調整部109に出力する。
以下、ベクトル量子化装置100の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がR次である場合を例にとって説明し、この入力ベクトルをV(i)(i=0,1,…,R−1)と記す。
第1コードブック101は、誤差最小化部103からの指示d1’により、内蔵のコー
ドブックを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)を選択して加算器102に出力する。ここで、D1は、第1コードブック101のコードベクトルの総数であり、d1は、コードベクトルのインデクスである。誤差最小化部103は、d1’=0からd1’=D1−1までd1’の値を順次変えながら、出力するコードベクトルを第1コードブック101に指示するものとする。
ドブックを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)を選択して加算器102に出力する。ここで、D1は、第1コードブック101のコードベクトルの総数であり、d1は、コードベクトルのインデクスである。誤差最小化部103は、d1’=0からd1’=D1−1までd1’の値を順次変えながら、出力するコードベクトルを第1コードブック101に指示するものとする。
加算器102は、量子化対象である入力ベクトルV(i)(i=0,1,…,R−1)と、第1コードブック101から入力される第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)との差を下記の式(1)に従って求め、この差のベクトルErr_1(d1’)(i)(i=0,1,…,R−1)を第1残差ベクトルとして誤差最小化部103と加算器106とに出力する。
第1半径コードブック104は、内蔵のコードブックを構成する各第1半径r_1(d1)(d1=0,1,…,D1−1)の中から、誤差最小化部103から入力される第1インデクスd1_minに対応する第1半径r_1(d1_min)を積集合円算出部108に出力する。
第2コードブック105は、誤差最小化部103からの指示d2’により、内蔵のコードブックを構成する各第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、第2コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)を選択して加算器106に出力する。ここで、D2は、第2コードブック105のコードベクトルの総数であり、d2は、コードベクトルのインデクスである。誤差最小化部103は、d2’=0からd2’=D2−1までd2’の値を順次変えながら、出力するコードベクトルを第2コードブック105に指示するものとする。
加算器106は、加算器102から入力される第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック105から入力される第2コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)との差を下記の式(3)に従って求め、この差のベクトルErr_2(d2’)(i)(i=0,1,…,R−1)を第2残差ベクトルとして誤差最小化部103と調整部109とに出力する。
第2半径コードブック107は、内蔵のコードブックを構成する各第2半径r_2(d2)(d2=0,1,…,D2−1)の中から、誤差最小化部103から入力される第2インデクスd2_minに対応する第2半径r_2(d2_min)を積集合円算出部108に出力する。
積集合円算出部108において、距離算出部181は、誤差最小化部103から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を用い、下記の式(5)に従って第1コードベクトルと第2コードベクトルとの距離dを求め、中心半径算出部182に出力する。式(5)では距離dを求める際に第1コードベクトルを用いていないが、これは第2コードベクトルの原点が第1コードベクトルに相当するためである。従って、第2コードベクトルの長さ自体がコードベクトル間の距離に相当する。
次いで、積集合円算出部108は、積集合円の中心CENT(i)(i=0,1,…,R−1)と、積集合円の半径cent_rとを調整部109に出力する。
調整部109は、積集合円算出部108から入力される積集合円の中心CENT(i)(i=0,1,…,R−1)および半径cent_rを用い下記の式(8)に従って、加算器106から入力される第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)に対して調整を行う。
次いで、調整部109は、調整第2残差ベクトルAD_Err_2(i)(i=0,1,…,R−1)を加算器111に出力する。
第3コードブック110は、誤差最小化部103からの指示d3’により、内蔵のコー
ドブックを構成する各第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、第3コードベクトルCODE_3(d3´)(i)(i=0,1,…,R−1)を選択して加算器111に出力する。ここで、D3は、第3コードブック110のコードベクトルの総数であり、d3は、コードベクトルのインデクスである。誤差最小化部103は、d3’=0からd3’=D3−1までd3’の値を順次変えながら、出力するコードベクトルを第3コードブック110に指示するものとする。
ドブックを構成する各第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、第3コードベクトルCODE_3(d3´)(i)(i=0,1,…,R−1)を選択して加算器111に出力する。ここで、D3は、第3コードブック110のコードベクトルの総数であり、d3は、コードベクトルのインデクスである。誤差最小化部103は、d3’=0からd3’=D3−1までd3’の値を順次変えながら、出力するコードベクトルを第3コードブック110に指示するものとする。
加算器111は、調整部109から入力される調整第2残差ベクトルAD_Err_2(i)(i=0,1,…,R−1)と第3コードブック110から入力される第3コードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)との差を下記の式(9)に従って求め、この差のベクトルErr_3(d3’)(i)(i=0,1,…,R−1)を第3残差ベクトルとして誤差最小化部103に出力する。
次いで、誤差最小化部103は、第1インデクスd1_min、第2インデクスd2_min、第3インデクスd3_minを纏めて符号化し、符号化データとして出力する。
図7は、本発明の実施の形態1に係るベクトル逆量子化装置200の主要な構成を示すブロック図である。ベクトル逆量子化装置200は、ベクトル量子化装置100において出力される符号化データを復号して量子化ベクトルを生成する。
図7において、ベクトル逆量子化装置200は、符号分離部201、第1コードブック202、第1半径コードブック203、第2コードブック204、加算器205、第2半径コードブック206、積集合円算出部207、第3コードブック208、調整部209、および加算器210を備える。なお、第1コードブック202は、第1コードブック101が備えるコードブックと同一内容のコードブックを備え、第1半径コードブック203は、第1半径コードブック104が備えるコードブックと同一内容のコードブックを備え、第2コードブック204は、第2コードブック105が備えるコードブックと同一内容のコードブックを備え、第2半径コードブック206は、第2半径コードブック107が備えるコードブックと同一内容のコードブックを備え、第3コードブック208は、第3コードブック110が備えるコードブックと同一内容のコードブックを備える。
符号分離部201は、符号化データを入力し、第1〜第3インデクスを求める。次いで、符号分離部201は、第1インデクスに相当するコードベクトルを出力するように第1コードブック202に指示する。また、符号分離部201は、第1インデクスを第1半径
コードブック203に出力する。次いで、符号分離部201は、第2インデクスに相当するコードベクトルを出力するように第2コードブック204に指示する。また、符号分離部201は、第2インデクスを第2半径コードブック206に出力する。次いで、符号分離部201は、第3インデクスに相当するコードベクトルを出力するように第3コードブック208に指示する。
コードブック203に出力する。次いで、符号分離部201は、第2インデクスに相当するコードベクトルを出力するように第2コードブック204に指示する。また、符号分離部201は、第2インデクスを第2半径コードブック206に出力する。次いで、符号分離部201は、第3インデクスに相当するコードベクトルを出力するように第3コードブック208に指示する。
第1コードブック202は、符号分離部201から指示されたコードベクトルを第1コードベクトルとして加算器205に出力する。
第1半径コードブック203は、符号分離部201から第1インデクスを入力し、第1インデクスに対応する第1半径を内蔵のコードブックの中から選択して積集合円算出部207に出力する。
第2コードブック204は、符号分離部201から指示されたコードベクトルを第2コードベクトルとして加算器205と積集合円算出部207とに出力する。
加算器205は、第1コードブック202から入力される第1コードベクトルと、第2コードブック204から入力される第2コードベクトルとを加算し、加算後のコードベクトルを調整部209に出力する。
第2半径コードブック206は、符号分離部201から第2インデクスを入力し、第2インデクスに対応する第2半径を内蔵の半径コードブックの中から選択して積集合円算出部207に出力する。
積集合円算出部207は、第1半径コードブック203から入力される第1半径、第2半径コードブック206から入力される第2半径、および第2コードブック204から入力される第2コードベクトルを用い、積集合円の中心および半径を求めて調整部209に出力する。
第3コードブック208は、符号分離部201から指示されたコードベクトルを第3コードベクトルとして加算器210に出力する。
調整部209は、積集合円算出部207から入力された積集合円の中心および半径を用いて、加算器205から第1コードベクトルと第2コードベクトルとの加算結果を調整し、調整後のコードベクトルを加算器210に出力する。3段目のベクトル逆量子化において、積集合円の中心および半径を用いてこの加算結果を調整しベクトル逆量子化を行う結果は、同様の積集合円の中心および半径を用いて第3コードブック208を調整しベクトル逆量子化を行う結果と同様となる。
加算器210は、調整部209から入力される調整後のコードベクトルと、第3コードブック208から入力される第3コードベクトルとを加算し、加算後のベクトルを量子化ベクトルとして出力する。
以下、ベクトル逆量子化装置200の各構成要素の動作について説明する。
符号分離部201は、符号化データを分離して第1インデクスd1_minと第2インデクスd2_minと第3インデクスd3_minとを求める。そして、符号分離部201は、第1インデクスd1_minに相当するコードベクトルを出力するように第1コードブック202に指示し、第2インデクスd2_minに相当するコードベクトルを出力するように第2コードブック204に指示し、第3インデクスd3_minに相当するコ
ードベクトルを出力するように第3コードブック208に指示する。
ードベクトルを出力するように第3コードブック208に指示する。
次いで、符号分離部201は、第1インデクスd1_minを第1半径コードブック203に出力し、第2インデクスd2_minを第2半径コードブック206に出力する。
第1コードブック202は、符号分離部201からの指示d1_minにより、内蔵のコードブックを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)を選択し加算器205に出力する。
第1半径コードブック203は、第1インデクスd1_minを入力し、内蔵のコードブックを構成する各第1半径r_1(d1)(d1=0,1,…,D1−1)の中から、第1インデクスd1_minに対応する第1半径r_1(d1_min)を選択し積集合円算出部207に出力する。
第2コードブック204は、符号分離部201からの指示d2_minにより、内蔵のコードブックを構成する各第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を選択し、加算器205と積集合円算出部207とに出力する。
加算器205は、第1コードブック202から入力される第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック204から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)とを下記の式(11)に従って加算し、加算後のベクトルTMP(i)(i=0,1,…,R−1)を調整部209に出力する。
積集合円算出部207は、第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を入力し、下記の式(12)に従って第1コードベクトルと第2コードベクトルとの距離dを求める。式(12)では距離dを求める際に第1コードベクトルを用いていないが、これは第2コードベクトルの原点が第1コードベクトルに相当するためである。従って、第2コードベクトルの長さ自体がコードベクトル間の距離に相当する。
第3コードブック208は、符号分離部201からの指示d3_minにより、内蔵のコードブックを構成する各第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、コードベクトルCODE_3(d3_min)(i)(i=0,1,…,R−1)を選択して加算器210に出力する。
調整部209は、積集合円算出部207から入力される積集合円の中心CENT(i)(i=0,1,…,R−1)および積集合円の半径cent_rを用いて、下記の式(15)に従い、加算器205から入力される加算後のベクトルTMP(i)(i=0,1,…,R−1)に対して調整を行う。
加算器210は、第3コードブック208から第3コードベクトルCODE_3(d3_min)(i)(i=0,1,…,R−1)と、調整部209から入力される調整後のベクトルAD_CODE_3(i)(i=0,1,…,R−1)と、を下記の式(16)に従って加算し、加算後のベクトルQ_V(i)を量子化ベクトルとして出力する。
第1コードブック101および202が備える第1コードブックを学習により求めるた
めには、まず多数の学習用のデータとして、例えばV個の学習用ベクトルを用意する。次いで、V個の学習用ベクトルを用いて、LBG(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD1個の第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)を求め第1コードブックを生成する。
めには、まず多数の学習用のデータとして、例えばV個の学習用ベクトルを用意する。次いで、V個の学習用ベクトルを用いて、LBG(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD1個の第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)を求め第1コードブックを生成する。
第1コードブックの学習の後、第1半径コードブックを生成する。具体的には、生成された第1コードブックを用いて上記V個の学習用ベクトルのベクトル量子化を各々行い、V個の学習用ベクトルが何れの第1コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第1コードベクトルにおいて、第1コードベクトルのクラスタに属する学習用ベクトルの中から、第1コードベクトルと学習用ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第1コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第1コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第1コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第1半径コードブックを構成する。
第2コードブック105および204が備える第2コードブックを学習により求めるためには、上記V個の学習用ベクトルを用いて、上記方法で求めた第1コードブックによる1段目のベクトル量子化を行い、加算器102が出力する第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、V個の第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)を用いて、LBGアルゴリズム等の学習アルゴリズムに従いD2個の第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D1−1、i=0,1,…,R−1)を求め、第2コードブックを生成する。
また、第2コードブックの学習の後、第2半径コードブックを生成する。具体的には、生成された第2コードブックを用いて上記V個の第1残差ベクトルのベクトル量子化を各々行い、V個の第1残差ベクトルが何れの第2コードベクトルのクラスタに属するのかを各々記憶する。次いで、各第2コードベクトルにおいて、第2コードベクトルのクラスタに属する第1残差ベクトルの中から、第2コードベクトルと第1残差ベクトルとの距離が最も遠い学習用ベクトルを求め、その距離を第2コードベクトルのクラスタ円の半径とする。この際、クラスタ円が第2コードベクトルのクラスタを完全に包含するように、求められた半径に一定の係数を乗じて半径を拡張しても良い。各第2コードベクトルに対応するクラスタ円の半径を求め、これらの半径により第2半径コードブックを構成する。
第3コードブック110および208が備える第3コードブックを学習により求めるためには、上記V個の第1残差ベクトルを用いて、上記方法で求めた第1コードブックおよび第2コードブックによる1段目と2段目とのベクトル量子化を行い、加算器106が出力する第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)をV個求める。次いで、V個の第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)を用いて、LBGアルゴリズム等の学習アルゴリズムに従いD3個の第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D1−1、i=0,1,…,R−1)を求め、第3コードブックを生成する。
これらの学習の方法は一例であって、上記の方法以外で各コードブックを生成しても本発明の効果は同様に得ることができる。
このように、本実施の形態によれば、各コードベクトルのクラスタを円で近似的に表し、各クラスタ円の半径を半径コードブックとして記憶し、3段目のベクトル量子化において第3コードブックを、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に一致させるため、3段目のベクトル量子化の量子化精度を向上させる
ことができる。
ことができる。
なお、本実施の形態では、積集合円の中心および半径を用いて第2残差ベクトルを調整する場合を例にとって説明したが、本発明はこれに限定されず、積集合円の中心および半径を用いて第3コードブックを調整しても同様な量子化結果が得られる。
また、本実施の形態では、3段のベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、2段のベクトル量子化、もしくは、4段以上のベクトル量子化を行っても良い。
例えば、本発明を2段のベクトル量子化に適用する場合、クラスタ円の積集合の中心CENT(i)(i=0,1,…,R−1)を零ベクトル、積集合円の半径cent_rを第1半径r_1(d1_min)とすることにより、第1コードベクトルのクラスタ円をそのまま積集合円として用い、下記の式(17)に従って第1残差ベクトルの調整を行う。
また、例えば、本発明を4段以上のベクトル量子化に適用する場合、3段目以降に用いるコードブックを生成する際に3段目以降の半径コードブックを生成しておく。そして、本実施の形態で説明した3段のベクトル量子化を行った後、例えば4段目のベクトル量子化において、積集合円算出部108は、第3半径r_3(d3_min)と前段までの積集合円の半径cent_rとを入力し、下記の式(18)〜(20)に従って第3コードベクトルのクラスタ円と前段までの積集合円との積集合円を新たに求める。
また、本実施の形態では、第1コードベクトルのクラスタ円および第2コードベクトルのクラスタ円それぞれの半径を用いて、第3コードブックを第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に適応させる場合を例にとって説明した。しかし、本発明はこれに限定されず、他の方法を用いて第3コードブックを第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に適応させても良い。
また、本実施の形態では、各コードベクトルのクラスタを円で近似する方法を用いたことにより、第1コードベクトルと第2コードベクトルとの距離dを求める際に第1コードベクトルを用いなかったが、異なる近似方法を適用するなどの場合には、必要に応じて第1コードベクトルも用いても良い。
また、本実施の形態では、ベクトル逆量子化装置200は、ベクトル量子化装置100から伝送された量子化ベクトル符号を復号するとしたが、これに限らず、量子化ベクトル符号として、ベクトル逆量子化装置200で復号可能な形式の符号化データであれば、ベクトル量子化装置100から伝送されたものでなくてもベクトル逆量子化装置200で受信して復号することが可能であることは言うまでもない。
(実施の形態2)
図8は、本発明の実施の形態2に係るベクトル量子化装置700の構成を示すブロック図である。なお、ベクトル量子化装置700は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
図8は、本発明の実施の形態2に係るベクトル量子化装置700の構成を示すブロック図である。なお、ベクトル量子化装置700は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
誤差最小化部103aは、加算器102から入力される第1残差ベクトルを用いて入力ベクトルと第1コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第1コードベクトルを第1コードブック101の中から選択する。次いで、誤差最小化部103aは、加算器106から入力される第2残差ベクトルを用いて第1残差ベクトルと第2コードベクトルとの二乗誤差を求め、誤差が最小となる第2コードベクトルを第2コードブック105の中から選択する。次いで、誤差最小化部103aは、加算器111から入力される第3残差ベクトルを用いて第2残差ベクトルと第3コードベクトルとの二乗誤差を求め、誤差が最小となる第3コードベクトルを第3コードブック110の中から選択する。これらのコードベクトルを選択する処理は、1つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。また、誤差最小化部103aは、コードベクトルが選択される毎に、第1コードベクトルのインデクスを積集合円算出部701に出力し、第2コードベクトルのインデクスを積集合円算出部701に出力する。次いで、誤差最小化部103aは、選択された3つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
積集合円算出部701は、後述する積集合円コードブックを具備する。また、積集合円算出部701は、誤差最小化部103aから第1コードベクトルのインデクス(第1インデクス)及び第2コードベクトルのインデクス(第2インデクス)を入力し、積集合円コードブック及び入力したインデクスに基づいて、積集合円の中心および半径を選択して調整部109に出力する。
図9は、本発明の実施の形態2に係る積集合円算出部701の構成を示すブロック図である。積集合円算出部701は、積集合円コードブック801及び演算部802を具備する。
積集合円コードブック801は、積集合円の中心CENT(idx)(i)(i=0,1,…,R−1)、および積集合円の半径cent_r(idx)をidxと対応付けて、コードブックとして内部に有している。ここで、idxは第1インデクスd1_min、および第2インデクスd2_minの二つのインデクスの組み合わせに対応する代表値である。例えば、d1_minが0〜D1−1のD1種類の値を取り得るとともに、d2_minが0〜D2−1のD2種類の値を取り得る場合、idxは式(21)のように表すことができる。つまり、積集合円コードブック801は、第1インデクスd1_min、および第2インデクスd2_minにより、積集合円の中心CENT(idx)(i)および積集合円の半径cent_r(idx)が一意に決定できる積集合円コードブックである。
全ての第1インデクスd1_min、および第2インデクスd2_minの組み合わせに対するidxに対応して、式(6),(7)を用いて積集合円の中心CENT(idx)(i)(i=0,1,…,R−1)および積集合円の半径cent_r(idx)を求めておくことにより、積集合円コードブック801が有するコードブックを予め作成しておくことができる。
このように、本実施の形態によれば、積集合円算出部が行う計算(式(6),(7))を予め行っておき、計算結果をコードブックとして具備しておくという特徴を有する。この構成により、本実施の形態によれば、上記実施の形態1の効果に加えて、符号化の際に計算(式(6),(7))を行う必要が無くなるため、計算量を削減することができる。即ち、上記実施の形態1では、第1半径、第2半径、第1コードベクトル、第2コードベクトルを用いて積集合円の半径と中心とを計算により求めたが、本実施の形態のように、全ての組み合わせでの半径と中心とを計算により予め求めておき、求めた半径と中心とをコードブックとして具備しておいても、本発明の効果は得ることができる。この場合、半径と中心とを予め計算しておくので、量子化時に半径と中心とを改めて計算する必要が無く、実施の形態1に比べて計算量を少なくすることができる。
(実施の形態3)
図10は、本発明の実施の形態3に係るベクトル量子化装置500の主要な構成を示すブロック図である。なお、ベクトル量子化装置500は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
図10は、本発明の実施の形態3に係るベクトル量子化装置500の主要な構成を示すブロック図である。なお、ベクトル量子化装置500は、実施の形態1に示したベクトル量子化装置100(図5参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
ベクトル量子化装置500は、第1コードブック101、加算器102、誤差最小化部501、第1半径コードブック104、第2コードブック105、加算器106、第2半径コードブック107、積集合円算出部502、調整部109、第3コードブック110、および加算器111を備える。
誤差最小化部501は、加算器102から入力される第1残差ベクトルを用いて、入力ベクトルと第1コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第1コードベクトルを第1コードブック101の中から選択する。また、誤差最小化部501は、選択した第1コードベクトルのインデクスを第1半径コードブック104に出力する。
次いで、誤差最小化部501は、加算器106から入力される第2残差ベクトルを用いて、第1残差ベクトルと第2コードベクトルとの二乗誤差を求め、第2コードブック105の中から、この二乗誤差の小さい順に複数の第2コードベクトルを選択候補として選択する。換言すると、誤差最小化部501は、第2コードブック105の中から、第1残差ベクトルにより近い順に複数の第2コードベクトルを選択候補として抽出する。そして、誤差最小化部501は、選択候補として選択された複数の第2コードベクトル各々のインデクスを第2半径コードブック107に出力し、選択候補として選択された複数の第2コードベクトルを積集合円算出部502に出力する。また、誤差最小化部501は、積集合円算出部502から入力される、選択候補として選択された複数の第2コードベクトル各々における積集合円の半径のうち、積集合円の半径が最小となる第2コードベクトルを選択する。そして、誤差最小化部501は、積集合円の半径が最小となる第2コードベクトルのインデクスを改めて第2半径コードブック107に出力する。
次いで、誤差最小化部501は、加算器111から入力される第3残差ベクトルを用いて、第2残差ベクトルと第3コードベクトルとの二乗誤差を求め、この二乗誤差が最小となる第3コードベクトルを第3コードブック110の中から選択する。これらのコードベクトルを選択する処理は、1つ前のコードブックでコードベクトルが選択された後に、続いて次のコードブックでコードベクトルを選択する、というように順次行われる。そして、誤差最小化部501は、選択された3つのコードベクトルに付与されているインデクスを纏めて符号化し、符号化データとして出力する。
積集合円算出部502は、第1半径コードブック104から入力される第1半径、第2半径コードブック107から入力される、誤差最小化部501で選択候補として選択された複数の第2コードベクトル各々に対応する第2半径、および、誤差最小化部501から入力される複数の第2コードベクトルを用いて、誤差最小化部501で選択候補として選択された複数の第2コードベクトルの各々について積集合円の半径を求め、全ての積集合円の半径を誤差最小化部501に出力する。次いで、積集合円算出部502は、実施の形態1と同様にして、第1半径、第2半径コードブック107から改めて入力される第2半径、および、第2コードベクトルを用いて、第3コードブック110の調整(実際には第2残差ベクトルの調整)に用いるベクトルおよび係数(すなわち、積集合円の中心および半径)を求めて調整部109に出力する。
以下、ベクトル量子化装置500の各構成要素の動作について説明する。なお、量子化対象となる入力ベクトルの次数がR次である場合を例にとって説明する。
誤差最小化部501は、第2コードブック105にコードベクトルのインデクスd2’を指示し、指示する毎に加算器106から入力される第2残差ベクトルErr_2(d2’)(i)(i=0,1,…,R−1)を用いて、下記の式(22)に従って二乗誤差Errを求める。
第2半径コードブック107は、内蔵のコードブックを構成する各第2半径r_2(d2)(d2=0,1,…,D2−1)の中から、誤差最小化部501から入力されるX個の第2インデクスd2_min(x)(x=0,1,…,X−1)にそれぞれ対応するX個の第2半径r_2(d2_min(x))を積集合円算出部502に出力する。
積集合円算出部502は、誤差最小化部501から入力されるX個の第2コードベクトルCODE_2(d2_min(x))(i)(i=0,1,…,R−1)を用い、下記の式(23)に従って第1コードベクトルと第2コードベクトルとの距離d(x)を求める。式(23)では、実施の形態1と同様、距離d(x)を求める際に第1コードベクトルを用いていないが、これは第2コードベクトルの原点が第1コードベクトルに相当するためである。従って、第2コードベクトルの長さ自体がコードベクトル間の距離に相当する。
誤差最小化部501は、積集合円算出部502から入力されるX個の積集合円の半径cent_r(x)の中から、最小の半径cent_r(x_min)となる第2コードベクトルのインデクスd2_min(x_min)を第2インデクスd2_minとして記憶すると共に第2インデクスd2_minを第2半径コードブック107に出力する。また、誤差最小化部501は、積集合円の半径が最小となる第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を積集合円算出部502に出力する。
第2半径コードブック107は、内蔵のコードブックを構成する各第2半径r_2(d2)(d2=0,1,…,D2−1)の中から、誤差最小化部501から入力される第2インデクスd2_minに対応する第2半径r_2(d2_min)を積集合円算出部502に出力する。
積集合円算出部502は、誤差最小化部501から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)を用い、下記の式(26)に従って第1コードベクトルと第2コードベクトルとの距離dを求める。
このように、ベクトル量子化装置500では、2段目のベクトル量子化における第2コードベクトルの選択の評価指標として、第2コードベクトルと量子化対象ベクトルとの距離に加え、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円の半径の大きさが用いられる。ここで、3段目のベクトル量子化では、3段目のコードブック(図10では、第3コードブック110)を、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円に一致させる。つまり、積集合円の半径が小さいほど、3段目のベクトル量子化において第3コードベクトルの探索範囲はより小さくなる。よって、ベクトル量子化装置500は、2段目のベクトル量子化後の積集合円の半径が最小となる第2コードベクトルを選択することで、3段目のベクトル量子化では最小限の探索範囲のみを探索して第3コードベクトルを選択することができる。よって、本実施の形態によれば、実施の形態1と同様に3段目のベクトル量子化の量子化精度を向上させることができ、さらに、3段目のベクトル量子化の量子化効率を向上させることができる。
なお、本実施の形態において、式(24)、(25)または式(27)、(28)により求められる積集合円の中心CENT(i)(i=0,1,…,R−1)および積集合円の半径cent_rは、積集合円算出部502に入力される2つのインデクスの組み合わせにより一意に定まる。そのため、本発明では、メモリに余裕がある場合には、実施の形態2と同様にしてすべてのインデクスの組み合わせにおいて、積集合円の中心CENT(i)(i=0,1,…,R−1)と積集合円の半径cent_rとを予め求めておき、求めた積集合円の中心と積集合円の半径とを積集合円コードブックとしてメモリに記憶させてもよい。これにより、ベクトル量子化装置500では、ベクトル量子化時に積集合円の中心および半径を算出する計算を省略することができる。
また、本実施の形態では、ベクトル量子化装置500が、二乗誤差Errの小さい順に複数の第2コードベクトルを選択候補として選択し、選択候補の中から、積集合円の半径が最小となる第2コードベクトルを1つ選択する、という手順で第2コードベクトルを決定する方法を一例に挙げて説明した。しかし、本発明では、積集合円の半径を考慮して第2コードベクトルを決定する方法はこれに限らない。例えば、ベクトル量子化装置500は、式(22)に従って全ての第2コードベクトルについて二乗誤差Err(d2)(d2=0,1,…,D2−1)を求めるとともに、全ての第2コードベクトルについて積集合円の半径cent_r(d2)(d2=0,1,…,D2−1)を求め、次式(29)により算出される評価指標Yが最小となる第2コードベクトルを選択してもよい。つまり、ベクトル量子化装置500は、第2コードベクトルと入力ベクトル(量子化対象ベクトル)との距離、および、第1コードベクトルのクラスタ円と第2コードベクトルのクラスタ円との積集合円の半径の双方を同時に用いた評価指標に従って、第2コードベクトルを選択してもよい。
以上、本発明の各実施の形態について説明した。
なお、メモリに余裕がある場合は上記実施の形態2の構成を採用し、計算時間に余裕がある場合は上記実施の形態1の構成を採用することができるため、必要な条件に応じて構成を選ぶことができる。
また、上記各実施の形態では、多段ベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、分割ベクトル量子化と併用してベクトル量子化を行っても良い。
また、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、上記各実施の形態に限定されず、種々変更して実施することが可能である。
例えば、上記各実施の形態では、ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法において、音声信号を対象として説明したが、楽音信号等に適用することも可能である。
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声もしくは楽音符号化における線形予測係数のベクトルの量子化において良好な性能を得ることができる。
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声伝送を行う移動体通信システムにおける通信端末装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置を提供することができる。
なお、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るベクトル量子化方法およびベクトル逆量子化方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るベクトル量子化装置およびベクトル逆量子化装置と同様の機能を実現することができる。
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部またはすべてを含むように1チップ化されても良い。
また、ここではLSIとしたが、集積度の違いによって、IC、システムLSI、スーパーLSI、ウルトラLSI等と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
2008年1月16日出願の特願2008−007417、2008年5月30日出願の特願2008−143278および2008年12月12日出願の特願2008−317398の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、音声符号化および音声復号等の用途に適用することができる。
Claims (9)
- それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、
第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、
第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、
第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、
第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、
前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、
第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。 - 前記積集合円算出手段は、
前記第N−2コードブックの中から選択されたコードベクトルのクラスタ円の半径と前記第N−1コードブックの中から選択されたコードベクトルのクラスタ円の半径とを用いて、前記積集合円の半径および中心を算出する、
請求項1記載のベクトル量子化装置。 - 前記調整手段は、
前記第Nコードブックのクラスタ円に対して中心の移動および半径の変更を行う、
請求項1記載のベクトル量子化装置。 - 前記調整手段は、
前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルの移動および大きさの変更を行う、
請求項1記載のベクトル量子化装置。 - それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、
第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、
第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、
前記第m−1コードブックを用いて入力ベクトルもしくは前記第m−1残差ベクトルをベクトル量子化して第m−1符号を得るとともに、前記第m残差ベクトルをベクトル量子化して第m符号を得る量子化手段と、
第N−2符号及び第N−1符号に基づいて、第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径と中心とを選択して出力する積集合円算出手段と、
第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、
前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、
第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。 - 前記積集合円算出手段は、第1符号及び前記第m符号により前記半径及び前記中心が一意に決定できる積集合円コードブックを有する、
請求項5記載のベクトル量子化装置。 - それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、
第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、
第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出手段と、
第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出手段と、
第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整手段と、
前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出手段と、
第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N−2,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択し、第N−1コードブックの中から第N−2残差ベクトルにより近い順に抽出された複数のコードベクトルのうち、第N−2コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円の半径が最小となるコードベクトルを選択する選択手段と、
を具備するベクトル量子化装置。 - ベクトル量子化装置において入力ベクトルに対して第n(n=1,2,…,N;Nは3以上の整数)段目の量子化を行って得られた第n符号を受信する受信手段と、
それぞれが複数のコードベクトルを記憶する第1から第NまでのN個のコードブックと、
第1コードブックから第N−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックと、
第1コードブックのうち第1符号が示すコードベクトルと、第2コードブックのうち第2符号が示すコードベクトルと、を加算して第1加算ベクトルを得る第1加算手段と、
第m(m=2,3,…,N−1)コードブックのうち第m符号が示すコードベクトルと、第m−1加算ベクトルとを加算して第m加算ベクトルを得る第m加算手段と、
第N−2コードブックのうち第N−2符号が示すコードベクトルのクラスタ円と、第N−1コードブックのうち第N−1符号が示すコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出手段と、
第Nコードブックのうち第N符号が示すコードベクトルである第Nコードベクトルのクラスタ円と、前記積集合円とが合致するように、第N−1加算ベクトルまたは前記第Nコードベクトルを調整する調整手段と、
前記調整された第Nコードベクトルと、前記第N−1加算ベクトルとを加算する、または、前記調整された第N−1加算ベクトルと、前記第Nコードベクトルとを加算することにより量子化ベクトルを得る第N加算手段と、
を具備するベクトル逆量子化装置。 - それぞれが複数のコードベクトルを記憶する第1から第N(Nは3以上の整数)までのN個のコードブックと、
第1コードブックからN−1コードブックの各コードベクトルそれぞれにより代表されるベクトルの集合を表すクラスタ円の半径を記憶する、第1から第N−1のN−1個の半径コードブックとを用いて、
第1コードブックの各コードベクトルと量子化対象ベクトルとの差を第1残差ベクトルとして算出する第1算出ステップと、
第m(m=2,3,…,N−1)コードブックの各コードベクトルと、第m−1コードブックの中から選択されたコードベクトルに対応する第m−1残差ベクトルとの差を第m残差ベクトルとして算出する第m算出ステップと、
第N−2コードブックの中から選択されたコードベクトルのクラスタ円と第N−1コードブックの中から選択されたコードベクトルのクラスタ円との積集合を表す積集合円を算出する積集合円算出ステップと、
第Nコードブックのすべてのベクトルにより代表されるすべてのベクトルの集合を表す第Nコードブックのクラスタ円と、前記積集合円とが合致するように、第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトル、または第Nコードブックを調整する調整ステップと、
前記第N−1コードブックの中から選択されたコードベクトルに対応する第N−1残差ベクトルと前記調整された第Nコードブックの中の各コードベクトルとの差、または、前記調整された第N−1残差ベクトルと第Nコードブックの中の各コードベクトルとの差、を第N残差ベクトルとして算出する第N算出ステップと、
第1コードブックの中から前記量子化対象ベクトルに最も近いコードベクトルを選択し、第n(n=2,3,…,N)コードブックの中から第n−1残差ベクトルに最も近いコードベクトルを選択する選択ステップと、
を実行するベクトル量子化方法。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008007417 | 2008-01-16 | ||
JP2008007417 | 2008-01-16 | ||
JP2008143278 | 2008-05-30 | ||
JP2008143278 | 2008-05-30 | ||
JP2008317398 | 2008-12-12 | ||
JP2008317398 | 2008-12-12 | ||
PCT/JP2009/000132 WO2009090875A1 (ja) | 2008-01-16 | 2009-01-15 | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2009090875A1 true JPWO2009090875A1 (ja) | 2011-05-26 |
Family
ID=40885267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009549985A Withdrawn JPWO2009090875A1 (ja) | 2008-01-16 | 2009-01-15 | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100274556A1 (ja) |
JP (1) | JPWO2009090875A1 (ja) |
WO (1) | WO2009090875A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101457707B1 (ko) * | 2008-10-29 | 2014-11-13 | 엘지전자 주식회사 | 무선통신 시스템에서 다중안테나를 가지는 중계기의 중계 방법 |
US20140052440A1 (en) * | 2011-01-28 | 2014-02-20 | Nokia Corporation | Coding through combination of code vectors |
JP2013140494A (ja) * | 2012-01-05 | 2013-07-18 | Kddi Corp | 高次元の特徴ベクトルを検索する検索装置及びプログラム |
CN107316647B (zh) * | 2013-07-04 | 2021-02-09 | 超清编解码有限公司 | 频域包络的矢量量化方法和装置 |
RU2665287C2 (ru) * | 2013-12-17 | 2018-08-28 | Нокиа Текнолоджиз Ой | Кодер звукового сигнала |
US10824958B2 (en) * | 2014-08-26 | 2020-11-03 | Google Llc | Localized learning from a global model |
RU2769429C2 (ru) * | 2018-08-17 | 2022-03-31 | Нокиа Текнолоджиз Ой | Кодер звукового сигнала |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03228433A (ja) * | 1990-02-02 | 1991-10-09 | Fujitsu Ltd | 多段ベクトル量子化方式 |
JPH08115099A (ja) * | 1994-10-17 | 1996-05-07 | Canon Inc | ベクトル量子化方法及びそれを用いた音声認識装置及び方法 |
US7072832B1 (en) * | 1998-08-24 | 2006-07-04 | Mindspeed Technologies, Inc. | System for speech encoding having an adaptive encoding arrangement |
US6782360B1 (en) * | 1999-09-22 | 2004-08-24 | Mindspeed Technologies, Inc. | Gain quantization for a CELP speech coder |
JP3888097B2 (ja) * | 2001-08-02 | 2007-02-28 | 松下電器産業株式会社 | ピッチ周期探索範囲設定装置、ピッチ周期探索装置、復号化適応音源ベクトル生成装置、音声符号化装置、音声復号化装置、音声信号送信装置、音声信号受信装置、移動局装置、及び基地局装置 |
SE521600C2 (sv) * | 2001-12-04 | 2003-11-18 | Global Ip Sound Ab | Lågbittaktskodek |
JP3793111B2 (ja) * | 2002-05-23 | 2006-07-05 | 松下電器産業株式会社 | 分割型スケーリング因子を用いたスペクトル包絡パラメータのベクトル量子化器 |
EP2273494A3 (en) * | 2004-09-17 | 2012-11-14 | Panasonic Corporation | Scalable encoding apparatus, scalable decoding apparatus |
WO2008047795A1 (fr) * | 2006-10-17 | 2008-04-24 | Panasonic Corporation | Dispositif de quantification vectorielle, dispositif de quantification vectorielle inverse et procédé associé |
-
2009
- 2009-01-15 WO PCT/JP2009/000132 patent/WO2009090875A1/ja active Application Filing
- 2009-01-15 US US12/810,049 patent/US20100274556A1/en not_active Abandoned
- 2009-01-15 JP JP2009549985A patent/JPWO2009090875A1/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20100274556A1 (en) | 2010-10-28 |
WO2009090875A1 (ja) | 2009-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4771674B2 (ja) | 音声符号化装置、音声復号化装置及びこれらの方法 | |
JP5419714B2 (ja) | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 | |
JP3114197B2 (ja) | 音声パラメータ符号化方法 | |
JPWO2008047795A1 (ja) | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 | |
WO2009090875A1 (ja) | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 | |
JP5300733B2 (ja) | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 | |
JPWO2006062202A1 (ja) | 広帯域符号化装置、広帯域lsp予測装置、帯域スケーラブル符号化装置及び広帯域符号化方法 | |
WO2007132750A1 (ja) | Lspベクトル量子化装置、lspベクトル逆量子化装置、およびこれらの方法 | |
US8493244B2 (en) | Vector quantization device, vector inverse-quantization device, and methods of same | |
EP2557566B1 (en) | Method and apparatus for processing an audio signal | |
US7206740B2 (en) | Efficient excitation quantization in noise feedback coding with general noise shaping | |
JPWO2008072735A1 (ja) | 適応音源ベクトル量子化装置、適応音源ベクトル逆量子化装置、およびこれらの方法 | |
JP6400801B2 (ja) | ベクトル量子化装置及びベクトル量子化方法 | |
KR20130112869A (ko) | 양자화 장치 및 양자화 방법 | |
JPWO2008072732A1 (ja) | 音声符号化装置および音声符号化方法 | |
WO2008018464A1 (fr) | dispositif de codage audio et procédé de codage audio | |
JP3428595B2 (ja) | 音声符号化方式 | |
JP2013068847A (ja) | 符号化方法及び符号化装置 | |
JPH0473699A (ja) | 音声符号化方式 | |
JP2013055417A (ja) | 量子化装置及び量子化方法 | |
TW201329960A (zh) | 量化裝置及量化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111216 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20120405 |