以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。なお、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法として、LSPベクトル量子化装置、LSPベクトル逆量子化装置、およびこれらの方法を例にとって説明する。
また、本発明の実施の形態では、スケーラブル符号化の広帯域LSP量子化器において、広帯域LSPをベクトル量子化対象とし、ベクトル量子化対象との相関を有する狭帯域LSPの種類を用いて、1段目の量子化に用いるコードブックを切り替える場合を例にとって説明する。なお、狭帯域LSPの代わりに、量子化狭帯域LSP(図示しない狭帯域LSP量子化器によって予め量子化された狭帯域LSP)を用いて1段目の量子化に用いるコードブックを切り替えても良い。また、量子化狭帯域LSPを広帯域形態に変換し、変換後の量子化狭帯域LSPを用いて1段目の量子化に用いるコードブックを切り替えても良い。
また、本発明の実施の形態において、コードブックを構成するコードベクトル全てに対して加算もしくは減算することにより、コードベクトル空間の中心であるセントロイド(平均)を移動させるための因子(ベクトル)のことを、加法性因子と称することとする。なお、実際には、加法性因子ベクトルは、本発明の実施の形態のように、コードベクトルに加算して用いるよりも、量子化対象であるベクトルから加法性因子ベクトルを減算して用いることが多い。
(実施の形態1)
図2は、本発明の実施の形態1に係るLSPベクトル量子化装置100の主要な構成を示すブロック図である。ここでは、LSPベクトル量子化装置100において、入力されるLSPベクトルを3段階の多段ベクトル量子化により量子化する場合を例にとって説明する。
図2において、LSPベクトル量子化装置100は、分類器101、スイッチ102、第1コードブック103、加算器104、誤差最小化部105、加法性因子決定部106、加算器107、第2コードブック108、加算器109、第3コードブック110、および加算器111を備える。
分類器101は、狭帯域LSPベクトルの複数の種類それぞれを示す複数の分類情報からなる分類用コードブックを予め格納しており、ベクトル量子化対象である広帯域LSPベクトルの種類を示す分類情報を分類用コードブックの中から選択し、スイッチ102、および加法性因子決定部106に出力する。具体的には、分類器101は、狭帯域LSPベクトルの各種類に対応するコードベクトルからなる分類用コードブックを内蔵しており、分類用コードブックを探索することにより、入力される狭帯域LSPベクトルとの二乗誤差が最小となるコードベクトルを求める。分類器101は、探索により求めたコードベクトルのインデックスを、LSPベクトルの種類を示す分類情報とする。
スイッチ102は、分類器101から入力される分類情報に対応するサブコードブックを第1コードブック103の中から1つ選択し、そのサブコードブックの出力端子を加算器104に接続する。
第1コードブック103は、狭帯域LSPの各種類に対応したサブコードブック(CBa1〜CBan)を予め格納している。すなわち、例えば狭帯域LSPの種類の総数がnである場合、第1コードブック103を構成するサブコードブックの数もnとなる。第1コードブック103は、第1コードブックを構成する複数の第1コードベクトルの中から、誤差最小化部105からの指示により指示された第1コードベクトルをスイッチ102に出力する。
加算器104は、ベクトル量子化対象として入力される広帯域LSPベクトルと、スイッチ102から入力されるコードベクトルとの差を求め、この差を第1残差ベクトルとして誤差最小化部105に出力する。また、加算器104は、すべての第1コードベクトルそれぞれに対応する第1残差ベクトルのうち、誤差最小化部105の探索により最小となると分かった1つを加算器107に出力する。
誤差最小化部105は、加算器104から入力される第1残差ベクトルを二乗した結果を広帯域LSPベクトルと第1コードベクトルとの二乗誤差とし、第1コードブックを探索することによりこの二乗誤差が最小となる第1コードベクトルを求める。同様に、誤差最小化部105は、加算器109から入力される第2残差ベクトルを二乗した結果を第1残差ベクトルと第2コードベクトルとの二乗誤差とし、第2コードブックを探索することによりこの二乗誤差が最小となる第2コードベクトルを得る。同様に、誤差最小化部105は、加算器111から入力される第3残差ベクトルを二乗した結果を第3残差ベクトルと第3コードベクトルとの二乗誤差とし、第3コードブックを探索することによりこの二乗誤差が最小となる第3コードベクトルを得る。誤差最小化部105は、探索により得られた3つのコードベクトルに付与されているインデックスを纏めて符号化し、符号化データとして出力する。
加法性因子決定部106は、狭帯域LSPベクトルの各種類に対応する加法性因子ベクトルからなる加法性因子コードブックを予め格納している。加法性因子決定部106は、分類器101から入力される分類情報に対応する加法性因子ベクトルを加法性因子コードブックの中から選択し、加算器107に出力する。
加算器107は、加算器104から入力された第1残差ベクトルと、加法性因子決定部106から入力される加法性因子ベクトルとの差を求めて加算器109に出力する。
第2コードブック(CBb)108は、複数の第2コードベクトルからなり、誤差最小化部105からの指示により指示された第2コードベクトルを加算器109に出力する。
加算器109は、加算器107から入力される、加法性因子ベクトルが減算された第1残差ベクトルと、第2コードブック108から入力される第2コードベクトルとの差を求め、この差を第2残差ベクトルとして誤差最小化部105に出力する。また、加算器109は、すべての第2コードベクトルそれぞれに対応する第2残差ベクトルのうち、誤差最小化部105の探索により最小となると分かった1つを加算器111に出力する。
第3コードブック110(CBc)は、複数の第3コードベクトルからなり、誤差最小化部105からの指示により指示された第3コードベクトルを加算器111に出力する。
加算器111は、加算器109から入力される第2残差ベクトルと、第3コードブック110から入力される第3コードベクトルとの差を求め、この差を第3残差ベクトルとして誤差最小化部105に出力する。
次に、量子化対象となる広帯域LSPベクトルの次数がR次である場合を例にとって、LSPベクトル量子化装置100が行う動作について説明する。なお、以下の説明では、広帯域LSPベクトルをLSP(i)(i=0,1,…,R−1)と記す。
分類器101は、狭帯域LSPベクトルのn個の種類それぞれに対応するn個のコードベクトルからなる分類用コードブックを内蔵しており、コードベクトルを探索することにより、入力される狭帯域LSPベクトルとの二乗誤差が最小となるm番目のコードベクトルを求める。分類器101は、m(1≦m≦n)を分類情報としてスイッチ102、および加法性因子決定部106に出力する。
スイッチ102は、分類情報mに対応するサブコードブックCBamを第1コードブック103の中から選択し、そのサブコードブックの出力端子を加算器104に接続する。
第1コードブック103は、n個のサブコードブックCBa1〜CBanのうち、CBamを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、誤差最小化部105からの指示d1’により指示された第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)を、スイッチ102に出力する。ここで、D1は第1コードブックのコードベクトルの総数であり、d1は第1コードベクトルのインデックスである。ここで、第1コードブック103は、d1’=0からd1’=D1−1までのd1’の値を順次誤差最小化部105から指示される。
加算器104は、ベクトル量子化対象として入力される広帯域LSPベクトルLSP(i)(i=0,1,…,R−1)と、第1コードブック103から入力される第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)との差を下記の式(1)に従って求め、この差を第1残差ベクトルErr_1(d1’)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。また、加算器104は、d1’=0からd1’=D1−1までのd1’それぞれに対応する第1残差ベクトルErr_1(d1’)(i)(i=0,1,…,R−1)のうち、誤差最小化部105の探索により最小となると分かった第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)を加算器107に出力する。
誤差最小化部105は、d1’=0からd1’=D1−1までのd1’の値を順次第1コードブック103に指示し、d1’=0からd1’=D1−1までのd1’それぞれに対して、加算器104から入力される第1残差ベクトルErr_1
(d1’)(i)(i=0,1,…,R−1)を下記の式(2)に従って二乗し、二乗誤差Errを求める。
誤差最小化部105は、二乗誤差Errが最小となる第1コードベクトルのインデックスd1’を第1インデックスd1_minとして記憶する。
加法性因子決定部106は、分類情報mに対応する加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を加法性因子コードブックの中から選択し、加算器107に出力する。
加算器107は、下記の式(3)に従って、加算器104から入力される第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)から、加法性因子決定部106から入力される加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を減じ、得られるAdd_Err_1(d1_min)(i)を加算器109に出力する。
第2コードブック108は、コードブックを構成する各第2コードベクトルCODE_2
(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、誤差最小化部105からの指示d2’により指示されたコードベクトルCODE_2
(d2’)(i)(i=0,1,…,R−1)を加算器109に出力する。ここで、D2は第2コードブックのコードベクトルの総数であり、d2はコードベクトルのインデックスである。第2コードブック108は、d2’=0からd2’=D2−1までのd2’の値を順次誤差最小化部105から指示される。
加算器109は、加算器107から入力される、加法性因子ベクトルが減じられた第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック108から入力される第2コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)との差を下記の式(4)に従って求め、この差を第2残差ベクトルErr_2(d2’)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。また、加算器109は、d2’=0からd2’=D1−1までのd2’それぞれに対応する第2残差ベクトルErr_2(d2’)(i)(i=0,1,…,R−1)のうち、誤差最小化部105の探索により最小となると分かった第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)を加算器111に出力する。
ここで、誤差最小化部105は、d2’=0からd2’=D2−1までのd2’の値を順次第2コードブック108に指示し、d2’=0からd2’=D2−1までのd2’それぞれに対して、加算器109から入力される第2残差ベクトルErr_2
(d2’)(i)(i=0,1,…,R−1)を下記の式(5)に従って二乗し、二乗誤差Errを求める。
誤差最小化部105は、二乗誤差Errが最小となる第2コードベクトルのインデックスd2’を第2インデックスd2_minとして記憶する。
第3コードブック110は、コードブックを構成する各第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、誤差最小化部105からの指示d3’により指示された第3コードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)を加算器111に出力する。ここで、D3は第3コードブックのコードベクトルの総数であり、d3はコードベクトルのインデックスである。第3コードブック110は、d3’=0からd3’=D3−1までのd3’の値を順次誤差最小化部105から指示される。
加算器111は、加算器109から入力される第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)と、第3コードブック110から入力されるコードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)との差を下記の式(6)に従って求め、この差を第3残差ベクトルErr_3(d3’)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。
ここで、誤差最小化部105は、d3’=0からd3’=D3−1までのd3’の値を順次第3コードブック110に指示し、d3’=0からd3’=D3−1までのd3’それぞれに対して、加算器111から入力される第3残差ベクトルErr_3
(d3’)(i)(i=0,1,…,R−1)を下記の式(7)に従って二乗し、二乗誤差Errを求める。
次いで、誤差最小化部105は、二乗誤差Errが最小となる第3コードベクトルのインデックスd3’を第3インデックスd3_minとして記憶する。そして、誤差最小化部105は、第1インデックスd1_min、第2インデックスd2_min、第3インデックスd3_minを纏めて符号化し、符号化データとして出力する。
図3は、本実施の形態に係るLSPベクトル逆量子化装置200の主要な構成を示すブロック図である。LSPベクトル逆量子化装置200は、LSPベクトル量子化装置100において出力される符号化データを復号し、量子化LSPベクトルを生成する。
LSPベクトル逆量子化装置200は、分類器201、符号分離部202、スイッチ203、第1コードブック204、加法性因子決定部205、加算器206、第2コードブック(CBb)207、加算器208、第3コードブック(CBc)209、および加算器210を備える。なお、第1コードブック204は、第1コードブック103が備えるサブコードブック(CBa1〜CBan)と同一内容のサブコードブックを備え、加法性因子決定部205は、加法性因子決定部106が備える加法性因子コードブックと同一内容の加法性因子コードブックを備える。また、第2コードブック207は、第2コードブック108が備えるコードブックと同一内容のコードブックを備え、第3コードブック209は、第3コードブック110が備えるコードブックと同一内容のコードブックを備える。
分類器201は、狭帯域LSPベクトルの複数の種類それぞれを示す複数の分類情報からなる分類用コードブックを予め格納しており、ベクトル量子化対象である広帯域LSPベクトルの種類を示す分類情報を分類用コードブックの中から選択し、スイッチ203、および加法性因子決定部205に出力する。具体的には、分類器201は、狭帯域LSPベクトルの各種類に対応するコードベクトルからなる分類用コードブックを内蔵しており、分類用コードブックを探索することにより、図示しない狭帯域LSP量子化器から入力される量子化狭帯域LSPベクトルとの二乗誤差が最小となるコードベクトルを求める。分類器201は、探索により求めたコードベクトルのインデックスを、LSPベクトルの種類を示す分類情報とする。
符号分離部202は、LSPベクトル量子化装置100から送信される符号化データを第1インデックス、第2インデックス、および第3インデックスに分離する。符号分離部202は、第1インデックスを第1コードブック204に指示し、第2インデックスを第2コードブック207に指示し、第3インデックスを第3コードブック209に指示する。
スイッチ203は、分類器201から入力される分類情報に対応するサブコードブック(CBam)を第1コードブック204の中から1つ選び、そのサブコードブックの出力端子を加算器206に接続する。
第1コードブック204は、第1コードブックを構成する複数の第1コードベクトルの中から、符号分離部202により指示された第1インデックスに対応する1つの第1コードベクトルをスイッチ203に出力する。
加法性因子決定部205は、分類器201から入力される分類情報に対応する加法性因子ベクトルを加法性因子コードブックの中から選択し、加算器206に出力する。
加算器206は、スイッチ203から入力される第1コードベクトルに、加法性因子決定部205から入力される加法性因子ベクトルを加算し、得られる加算結果を加算器208に出力する。
第2コードブック207は、符号分離部202により指示された第2インデックスに対応する1つの第2コードベクトルを加算器208に出力する。
加算器208は、加算器206から入力される加算結果を、さらに第2コードブック207から入力される第2コードベクトルに加算し、得られる加算結果を加算器210に出力する。
第3コードブック209は、符号分離部202により指示された第3インデックスに対応する1つの第3コードベクトルを加算器210に出力する。
加算器210は、加算器208から入力される加算結果を、さらに第3コードブック209から入力される第3コードベクトルに加算し、得られる加算結果を量子化広帯域LSPベクトルとして出力する。
次に、LSPベクトル逆量子化装置200の動作について説明する。
分類器201は、狭帯域LSPベクトルのn個の種類それぞれに対応するn個のコードベクトルからなる分類用コードブックを内蔵しており、コードベクトルを探索することにより、図示しない狭帯域LSP量子化器から入力される量子化狭帯域LSPベクトルとの二乗誤差が最小となるm番目のコードベクトルを求める。分類器201は、m(1≦m≦n)を分類情報としてスイッチ203、および加法性因子決定部205に出力する。
符号分離部202は、LSPベクトル量子化装置100から送信される符号化データを第1インデックスd1_min、第2インデックスd2_min、および第3インデックスd3_minに分離する。符号分離部202は、第1インデックスd1_minを第1コードブック204に指示し、第2インデックスd2_minを第2コードブック207に指示し、第3インデックスd3_minを第3コードブック209に指示する。
スイッチ203は、分類器201から入力される分類情報mに対応するサブコードブックCBamを第1コードブック204の中から選び、そのサブコードブックの出力端子を加算器206に接続する。
第1コードブック204は、サブコードブックCBamを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、符号分離部202からの指示d1_minにより指示された第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)をスイッチ203に出力する。
加法性因子決定部205は、分類器201から入力される分類情報mに対応する加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を加法性因子コードブックの中から選択し、加算器206に出力する。
加算器206は、下記の式(8)に従って、第1コードブック204から入力される第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)に、加法性因子決定部205から入力される加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を加算し、得られる加算結果TMP_1(i)(i=0,1,…,R−1)を加算器208に出力する。
第2コードブック207は、第2コードブックを構成する各第2コードベクトルCODE_2
(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、符号分離部202からの指示d2_minにより指示された第2コードベクトルCODE_2
(d2_min)(i)(i=0,1,…,R−1)を加算器208に出力する。
加算器208は、下記の式(9)に従って、加算器206から入力される加算結果TMP_1(i)を、さらに第2コードブック207から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)に加算し、得られる加算結果TMP_2(i)(i=0,1,…,R−1)を加算器210に出力する。
第3コードブック209は、第3コードブックを構成する各第3コードベクトルCODE_3
(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、符号分離部202からの指示d3_minにより指示された第3コードベクトルCODE_3
(d3_min)(i)(i=0,1,…,R−1)を加算器210に出力する。
加算器210は、下記の式(10)に従って、加算器208から入力される加算結果TMP_2(i)(i=0,1,…,R−1)を、さらに第3コードブック209から入力される第3コードベクトルCODE_3(d3_min)(i)(i=0,1,…,R−1)に加算し、加算結果となるベクトルQ_LSP(i)(i=0,1,…,R−1)を量子化広帯域LSPベクトルとして出力する。
LSPベクトル量子化装置100およびLSPベクトル逆量子化部200で用いられる第1コードブック、加法性因子コードブック、第2コードブック、および第3コードブックは、予め学習により求めて作成されたものであり、これらのコードブックの学習方法について説明する。
第1コードブック103および第1コードブック204が備える第1コードブックを学習により求めるためには、まず多数の学習用の音声データから得られる多数の、例えばV個のLSPベクトルを用意する。次いで、V個のLSPベクトルを種類(n種類)毎にグループ化し、各グループに属するLSPベクトルを用いて、LBG(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD1個の第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)を求め、各サブコードブックを生成する。
加法性因子決定部106および加法性因子決定部205が備える加法性因子コードブックを学習により求めるためには、上記のV個のLSPベクトルを用いて、上記方法で求めた第1コードブックによる一段目のベクトル量子化を行い、加算器104が出力する第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、求めたV個の第1残差ベクトルを種類毎にグループ化し、各グループに属する第1残差ベクトル集合のセントロイドを求める。そして、各セントロイドのベクトルを、その種類に対応する加法性因子ベクトルとすることにより、加法性因子コードブックを生成する。
第2コードブック108および第2コードブック207が備える第2コードブックを学習により求めるためには、上記のV個のLSPベクトルを用いて、上記方法で求めた第1コードブックによる一段目のベクトル量子化を行う。次いで、上記方法で求めた加法性因子コードブックを用いて、加算器107が出力する加法性因子ベクトル減算後の第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、V個の加法性因子ベクトル減算後の第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)を用いて、LBG(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD2個の第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D1−1、i=0,1,…,R−1)を求め、第2コードブックを生成する。
第3コードブック110および第3コードブック209が備える第3コードブックを学習により求めるためには、上記のV個のLSPベクトルを用いて、上記方法で求めた第1コードブックによる一段目のベクトル量子化を行う。次いで、上記方法で求めた加法性因子コードブックを用いて、加法性因子ベクトル減算後の第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、上記方法で求めた第2コードブックによる二段目のベクトル量子化を行い、加算器109が出力する第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(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD3個の第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D1−1、i=0,1,…,R−1)を求め、第3コードブックを生成する。
これらの学習の方法は一例であって、上記の方法以外で各コードブックを生成しても良い。
このように、本実施の形態によれば、広帯域LSPベクトルとの相関を有する狭帯域LSPベクトルの種類により1段目のベクトル量子化のコードブックを切り換え、1段目のベクトル量子化誤差(第1残差ベクトル)の統計的な分散が種類毎に異なる多段ベクトル量子化において、狭帯域LSPベクトルの分類結果に対応する加法性因子ベクトルを第1残差ベクトルから減算する。これにより、2段目のベクトル量子化対象のベクトルの平均を1段目のベクトル量子化誤差の統計的な平均に応じて変更させることができ、従って広帯域LSPベクトルの量子化精度を向上することができる。また、復号の際には、量子化精度の高い符号化情報を用いてベクトル逆量子化することができるため、高品質な復号信号を生成することができる。
図4は、本実施の形態に係るLSPベクトル量子化の効果を概念的に説明するための図である。図4において、「−Add」と書いてある矢印は、量子化誤差ベクトルから加法性因子ベクトルを減じる処理を示す。図4に示すように、本実施の形態においては、狭帯域LSPの種類に対応する第1コードブックCBam(m<=n)を用いてベクトル量子化を行って得られる量子化誤差ベクトルから、この種類に対応する加法性因子ベクトルを減じる。これにより、加法性因子ベクトル減算後の量子化誤差ベクトルの集合の平均を、2段目のベクトル量子化に用いる共通の第2コードブックCBbを構成する第2コードベクトルの集合の平均に一致させることができる。従って、2段目のベクトル量子化の量子化精度を向上することができる。
なお、本実施の形態においては、2段目のベクトル量子化対象のベクトルの平均を1段目のベクトル量子化誤差の統計的な平均に応じて変更する場合を例にとって説明した。ただし、本発明はこれに限定されず、2段目のベクトル量子化対象に用いるコードベクトルの平均を1段目のベクトル量子化誤差の統計的な平均に応じて変更しても良い。これを実現するためには、図5のLSPベクトル量子化装置300に示すように、加算器307により、第2コードブックを備える第2コードベクトルと、狭帯域LSPベクトルの分類結果に対応する加法性因子ベクトルとを加算する。これによっても、本実施の形態と同様に、広帯域LSPベクトルの量子化精度を向上する効果が得られる。
図6は、図5に示したLSPベクトル量子化装置300におけるLSPベクトル量子化の効果を概念的に示すための図である。図6において、「+Add」と書いてある矢印は、第2コードブックを構成する第2コードベクトルに加法性因子ベクトルを加算する処理を示す。図6に示すように、本実施の形態においては、狭帯域LSPの種類mに対応する加法性因子ベクトルを、第2コードブックを構成する第2コードベクトルに加法性因子ベクトルに加算する。これにより、加法性因子ベクトル加算後の第2コードベクトルの集合の平均を、第1コードブックCBam(m<=n)を用いてベクトル量子化を行い得られた量子化誤差ベクトルの集合の平均に一致させることができる。従って、2段目のベクトル量子化の量子化精度を向上することができる。
また、本実施の形態では、加法性因子決定部106および加法性因子決定部205が備える加法性因子コードブックを構成する加法性因子ベクトルは狭帯域LSPベクトルの種類に対応している場合を例にとって説明した。ただし、本発明はこれに限定されず、加法性因子決定部106および加法性因子決定部205が備える加法性因子コードブックを構成する加法性因子ベクトルは、音声の特徴を分類した各種類に対応していても良い。かかる場合、分類器101は、狭帯域LSPベクトルではなく音声の特徴を表すパラメータを音声特徴情報として入力し、入力された音声特徴情報に対応する音声特徴の種類を分類情報としてスイッチ102および加法性因子決定部106に出力する。例えば、VMR−WB(Varialbe-Rate Multimode Wideband Speech Codec)のように、音声の有声性、雑音性等の特徴でエンコーダのタイプを切り換えるというような符号化装置に本発明を適用する場合、エンコーダのタイプの情報をそのまま音声特徴量として用いて良い。
また、本実施の形態では、LSPベクトルに対して3段のベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、2段のベクトル量子化、もしくは、4段以上のベクトル量子化を行う場合にも適用できる。
また、本実施の形態では、LSPベクトルに対して3段の多段ベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、分割ベクトル量子化と併用してベクトル量子化を行う場合にも適用できる。
また、本実施の形態では、量子化対象として広帯域LSPベクトルを例にとって説明したが、量子化対象はこれに限定されず、広帯域LSPベクトル以外のベクトルであっても良い。
また、本実施の形態では、LSPベクトル逆量子化装置200は、LSPベクトル量子化装置100において出力される符号化データを復号するとしたが、本発明はこれに限定されず、LSPベクトル逆量子化装置200で復号可能な形式の符号化データであれば、LSPベクトル逆量子化装置で受信して復号することが可能であることは言うまでもない。
また、本実施の形態に係るベクトル量子化装置およびベクトル逆量子化装置は、音声信号や楽音信号等を符号化/復号するCELP符号化装置/CELP復号装置に用いることが可能である。CELP符号化装置においては、入力信号を線形予測分析して得られた線形予測係数から変換されたLSPを入力して量子化処理を行い、量子化された量子化LSPを合成フィルタに出力する。たとえば本実施の形態に係るLSPベクトル量子化装置100をCELP型音声符号化装置に適用する場合は、量子化LSPを表す量子化LSP符号を符号化データとして出力するLSP量子化部のところに、本実施の形態に係るLSPベクトル量子化装置100を配置する。これにより、ベクトル量子化精度を向上することが可能となるため、復号時の音声品質も向上する。一方、CELP復号装置においては、受信した多重化符号データを分離して得られた量子化LSP符号から量子化LSPを復号する。本発明に係るLSPベクトル逆量子化装置をCELP型音声復号装置に適用する場合には、復号した量子化LSPを合成フィルタに出力するLSP逆量子化部のところに、本実施の形態に係るLSPベクトル逆量子化装置200を配置すればよく、上記と同様の作用効果が得られる。以下、図7および図8を用いて本実施の形態に係るLSPベクトル量子化装置100およびLSPベクトル逆量子化装置200を備えるCELP符号化装置400およびCELP復号装置450について説明する。
図7は、本実施の形態に係るLSPベクトル量子化装置100を備えるCELP符号化装置400の主要な構成を示すブロック図である。CELP符号化装置400は、入力される音声・楽音信号を複数サンプルずつ区切り、複数サンプルを1フレームとしてフレーム毎に符号化を行う。
前処理部401は、入力される音声信号または楽音信号に対して、DC成分を取り除くハイパスフィルタ処理を行い、また後続する符号化処理の性能改善のための波形整形処理もしくはプリエンファシス処理を行い、これらの処理により得られる信号XinをLSP分析部402および加算器405に出力する。
LSP分析部402は、前処理部401から入力される信号Xinを用いて線形予測分析を行い、得られるLPCをLSPベクトルに変換してLSPベクトル量子化部403に出力する。
LSPベクトル量子化部403は、LSP分析部402から入力されるLSPベクトルに対して量子化を行う。LSPベクトル量子化部403は、得られる量子化LSPベクトルをフィルタ係数として合成フィルタ404に出力し、量子化LSP符号(L)を多重化部414に出力する。ここで、LSPベクトル量子化部403としては、本実施の形態に係るLSPベクトル量子化装置100を適用する。すなわち、LSPベクトル量子化部403の具体的な構成および動作は、LSPベクトル量子化装置100と同様である。この場合、LSPベクトル量子化装置100に入力される広帯域LSPベクトルと、LSPベクトル量子化部403に入力されるLSPベクトルと、は対応する。また、LSPベクトル量子化装置100が出力する符号化データと、LSPベクトル量子化部403が出力する量子化LSP符号(L)と、は対応する。合成フィルタ404に入力されるフィルタ係数は、LSPベクトル量子化部403内において量子化LSP符号(L)を用いて逆量子化して得られた量子化LSPベクトルである。なお、LSPベクトル量子化装置100に入力される狭帯域LSPベクトルは、例えばCELP符号化装置400の外部から入力される。例えば、広帯域CELP符号化部(CELP符号化装置400に対応)と狭帯域CELP符号化部とを有するスケーラブル符号化装置(図示せず)にこのLSPベクトル量子化装置100を適用する場合には、狭帯域CELP符号化部から出力される狭帯域LSPベクトルがLSPベクトル量子化装置100に入力される。
合成フィルタ404は、LSPベクトル量子化部403から入力される量子化LSPベクトルに基づくフィルタ係数を用いて、後述する加算器411から入力される駆動音源に対して合成処理を行い、生成される合成信号を加算器405に出力する。
加算器405は、合成フィルタ404から入力される合成信号の極性を反転させ、前処理部401から入力される信号Xinに加算することにより誤差信号を算出し、誤差信号を聴覚重み付け部412に出力する。
適応音源符号帳406は、過去に加算器411から入力された駆動音源をバッファに記憶しており、パラメータ決定部413から入力される適応音源ラグ符号(A)によって特定される切り出し位置から1フレーム分のサンプルをバッファより切り出し、適応音源ベクトルとして乗算器409に出力する。ここで、適応音源符号帳406は、加算器411から駆動音源が入力されるたびにバッファの内容を更新する。
量子化利得生成部407は、パラメータ決定部413から入力される量子化音源利得符号(G)によって、量子化適応音源利得と量子化固定音源利得とを決定し、それぞれを乗算器409と乗算器410とに出力する。
固定音源符号帳408は、パラメータ決定部413から入力される固定音源ベクトル符号(F)によって特定される形状を有するベクトルを固定音源ベクトルとして乗算器410に出力する。
乗算器409は、量子化利得生成部407から入力される量子化適応音源利得を、適応音源符号帳406から入力される適応音源ベクトルに乗じて、加算器411に出力する。
乗算器410は、量子化利得生成部407から入力される量子化固定音源利得を、固定音源符号帳408から入力される固定音源ベクトルに乗じて、加算器411に出力する。
加算器411は、乗算器409から入力される利得乗算後の適応音源ベクトルと、乗算器410から入力される利得乗算後の固定音源ベクトルとを加算し、加算結果を駆動音源として合成フィルタ404および適応音源符号帳406に出力する。ここで、適応音源符号帳406に入力される駆動音源は、適応音源符号帳406のバッファに記憶される。
聴覚重み付け部412は、加算器405から入力される誤差信号に対して聴覚的重み付け処理を行い、符号化歪みとしてパラメータ決定部413に出力する。
パラメータ決定部413は、聴覚重み付け部412から入力される符号化歪みを最小とする適応音源ラグを適応音源符号帳406から選択し、選択結果を示す適応音源ラグ符号(A)を適応音源符号帳406および多重化部414に出力する。ここで、適応音源ラグとは、適応音源ベクトルを切り出す位置を示すパラメータである。また、パラメータ決定部413は、聴覚重み付け部412から出力される符号化歪みを最小とする固定音源ベクトルを固定音源符号帳408から選択し、選択結果を示す固定音源ベクトル符号(F)を固定音源符号帳408および多重化部414に出力する。また、パラメータ決定部413は、聴覚重み付け部412から出力される符号化歪みを最小とする量子化適応音源利得と量子化固定音源利得とを量子化利得生成部407から選択し、選択結果を示す量子化音源利得符号(G)を量子化利得生成部407および多重化部414に出力する。
多重化部414は、LSPベクトル量子化部403から入力される量子化LSP符号(L)、パラメータ決定部413から入力される適応音源ラグ符号(A)、固定音源ベクトル符号(F)、および量子化音源利得符号(G)を多重化して符号化情報を出力する。
図8は、本実施の形態に係るLSPベクトル逆量子化装置200を備えるCELP復号装置450の主要な構成を示すブロック図である。
図8において、分離部451は、CELP符号化装置400から伝送される符号化情報に対して分離処理を行い、量子化LSP符号(L)、適応音源ラグ符号(A)、量子化音源利得符号(G)、固定音源ベクトル符号(F)を得る。分離部451は、量子化LSP符号(L)をLSPベクトル逆量子化部452に出力し、適応音源ラグ符号(A)を適応音源符号帳453に出力し、量子化音源利得符号(G)を量子化利得生成部454に出力し、固定音源ベクトル符号(F)を固定音源符号帳455に出力する。
LSPベクトル逆量子化部452は、分離部451から入力される量子化LSP符号(L)から量子化LSPベクトルを復号し、量子化LSPベクトルをフィルタ係数として合成フィルタ459に出力する。ここで、LSPベクトル逆量子化部452としては、本実施の形態に係るLSPベクトル逆量子化装置200を適用する。すなわち、LSPベクトル逆量子化部452の具体的な構成および動作は、LSPベクトル逆量子化装置200と同様である。この場合、LSPベクトル逆量子化装置200に入力される符号化データと、LSPベクトル逆量子化部452に入力される量子化LSP符号(L)と、は対応する。また、LSPベクトル逆量子化装置200が出力する量子化広帯域LSPベクトルと、LSPベクトル逆量子化部452が出力する量子化LSPベクトルと、は対応する。なお、LSPベクトル逆量子化装置200に入力される狭帯域LSPベクトルは、例えばCELP復号装置450の外部から入力される。例えば、広帯域CELP復号部(CELP復号装置450に対応)と狭帯域CELP復号部とを有するスケーラブル復号装置(図示せず)にこのLSPベクトル逆量子化装置200を適用する場合には、狭帯域CELP復号部から出力される狭帯域LSPベクトルがLSPベクトル逆量子化装置200に入力される。
適応音源符号帳453は、分離部451から入力される適応音源ラグ符号(A)により特定される切り出し位置から1フレーム分のサンプルをバッファより切り出し、切り出したベクトルを適応音源ベクトルとして乗算器456に出力する。ここで、適応音源符号帳453は、加算器458から駆動音源が入力されるたびにバッファの内容を更新する。
量子化利得生成部454は、分離部451から入力される量子化音源利得符号(G)が示す量子化適応音源利得と量子化固定音源利得とを復号し、量子化適応音源利得を乗算器456に出力し、量子化固定音源利得を乗算器457に出力する。
固定音源符号帳455は、分離部451から入力される固定音源ベクトル符号(F)が示す固定音源ベクトルを生成し、乗算器457に出力する。
乗算器456は、適応音源符号帳453から入力される適応音源ベクトルに、量子化利得生成部454から入力される量子化適応音源利得を乗じて加算器458に出力する。
乗算器457は、固定音源符号帳455から入力される固定音源ベクトルに、量子化利得生成部454から入力される量子化固定音源利得を乗じて加算器458に出力する。
加算器458は、乗算器456から入力される利得乗算後の適応音源ベクトルと、乗算器457から入力される利得乗算後の固定音源ベクトルとを加算して駆動音源を生成し、生成される駆動音源を合成フィルタ459および適応音源符号帳453に出力する。ここで、適応音源符号帳453に入力される駆動音源は、適応音源符号帳453のバッファに記憶される。
合成フィルタ459は、加算器458から入力される駆動音源と、LSPベクトル逆量子化部452で復号されたフィルタ係数とを用いて合成処理を行い、生成される合成信号を後処理部460に出力する。
後処理部460は、合成フィルタ459から入力される合成信号に対して、ホルマント強調やピッチ強調などの音声の主観的な品質を改善する処理、および定常雑音の主観的品質を改善する処理を施し、得られる音声信号または楽音信号を出力する。
このように、本実施の形態に係るCELP符号化装置/CELP復号装置によれば、本実施の形態によるベクトル量子化装置/ベクトル逆量子化装置を用いることにより、符号化時にベクトル量子化精度を向上させることが可能となるため、復号時の音声品質も向上させることができる。
なお、本実施の形態では、CELP復号装置450は、CELP符号化装置400において出力される符号化データを復号するとしたが、本発明はこれに限定されず、CELP復号装置450で復号可能な形式の符号化データであれば、CELP復号装置で受信して復号することが可能であることは言うまでもない。
(実施の形態2)
図9は、本発明の実施の形態2に係るLSPベクトル量子化装置800の主要な構成を示すブロック図である。なお、LSPベクトル量子化装置800は、実施の形態1に示したLSPベクトル量子化装置100(図2参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
LSPベクトル量子化装置800は、分類器101、スイッチ102、第1コードブック103、加算器104、誤差最小化部105、加算器107、第2コードブック108、加算器109、第3コードブック110、加算器111、加法性因子決定部801及び加算器802を備える。
ここでは、入力されるLSPベクトルを3段階の多段ベクトル量子化によりベクトル量子化する場合において、狭帯域LSPベクトルの種類を示す分類情報を用いて1段目のベクトル量子化に用いるコードブックを決定し、1段目のベクトル量子化を行って第1の量子化誤差ベクトルを求め、更に、前記分類情報に対応する加法性因子ベクトルを決定する。ここで、加法性因子ベクトルは、加算器104が出力する第1残差ベクトルに対して加算される加法性因子ベクトル(第1加法性因子ベクトル)と、加算器109が出力する第2残差ベクトルに対して加算される加法性因子ベクトル(第2加法性因子ベクトル)と、からなる。次いで、加法性因子決定部801は、第1加法性因子ベクトルを加算器107に出力し、第2加法性因子ベクトルを加算器802に出力する。このように、多段ベクトル量子化の各段に適した加法性因子ベクトルを予め用意しておくことにより、コードブックの適応調整をより仔細に行うことができる。
加法性因子決定部801は、狭帯域LSPベクトルの各種類(n種類)に対応する、n種類の第1加法性因子ベクトルとn種類の第2加法性因子ベクトルとからなる加法性因子コードブックを予め格納している。また、加法性因子決定部801は、分類器101から入力された分類情報に対応する第1加法性因子ベクトルと第2加法性因子ベクトルとを加法性因子コードブックの中から選択し、選択した第1加法性因子ベクトルを加算器107に出力し、選択した第2加法性因子ベクトルを加算器802に出力する。
加算器107は、加算器104から入力された第1残差ベクトルと、加法性因子決定部801から入力された第1加法性因子ベクトルとの差を求めて加算器109に出力する。
加算器109は、加算器107から入力される、第1加法性因子ベクトルが減算された第1残差ベクトルと、第2コードブック108から入力される第2コードベクトルとの差を求め、求めた差を第2残差ベクトルとして加算器802と誤差最小化部105とに出力する。
加算器802は、加算器109から入力された第2残差ベクトルと、加法性因子決定部801から入力された第2加法性因子ベクトルとの差を求め、求めた差のベクトルを加算器111に出力する。
加算器111は、加算器802から入力される第2加法性因子ベクトルが減算された第2残差ベクトルと、第3コードブック110から入力される第3コードベクトルとの差を求め、求めた差のベクトルを第3残差ベクトルとして誤差最小化部105に出力する。
次に、LSPベクトル量子化装置800の動作について説明する。
以下、量子化対象となるLSPベクトルの次数がR次である場合を例にとって説明する。LSPベクトルをLSP(i)(i=0,1,…,R−1)と記す。
加法性因子決定部801は、分類情報mに対応付けられた第1加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)と第2加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)とを加法性因子コードブックの中から選択し、第1加法性因子ベクトルを加算器107に出力し、第2加法性因子ベクトルを加算器802に出力する。
加算器107は、下記の式(11)に従って、一段目のベクトル量子化において二乗誤差Errが最小となる第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)から、加法性因子決定部801から入力される第1加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)を減じて加算器109に出力する。
加算器109は、加算器107から入力される第1加法性因子ベクトル減算後の第1残差ベクトルAdd_Err_1
(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック108から入力される第2コードベクトルCODE_2
(d2´)(i)(i=0,1,…,R−1)との差を下記の式(12)に従って求め、差のベクトルを第2残差ベクトルErr_2
(d2´)(i)(i=0,1,…,R−1)として加算器802と誤差最小化部105とに出力する。
加算器802は、下記の式(13)に従って、二段目のベクトル量子化において二乗誤差Errが最小となる第2残差ベクトルErr_2
(d2_min)(i)(i=0,1,…,R−1)から、加法性因子決定部801から入力される第2加法性因子ベクトルAdd2
(m)(i)(i=0,1,…,R−1)を減じて加算器111に出力する。
加算器111は、加算器802から入力される第2加法性因子ベクトル減算後の第2残差ベクトルAdd_Err_2
(d2_min)(i)(i=0,1,…,R−1)と、第3コードブック110から入力される第3コードベクトルCODE_3
(d3´)(i)(i=0,1,…,R−1)との差を下記の式(14)に従って求め、差のベクトルを第3残差ベクトルErr_3
(d3´)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。
図10は、本発明の実施の形態2に係るLSPベクトル逆量子化装置900の主要な構成を示すブロック図である。なお、LSPベクトル逆量子化装置900は、実施の形態1に示したLSPベクトル逆量子化装置200(図3参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
ここでは、LSPベクトル量子化装置800において出力される符号化データを、LSPベクトル逆量子化装置900において復号化し、量子化LSPベクトルを生成する場合を例にとって説明する。
LSPベクトル逆量子化装置900は、分類器201、符号分離部202、スイッチ203、第1コードブック204、加算器206、第2コードブック207、加算器208、第3コードブック209、加算器210、加法性因子決定部901及び加算器902を備える。
加法性因子決定部901は、n種類の第1加法性因子ベクトルとn種類の第2加法性因子ベクトルとからなる加法性因子コードブックを予め格納しており、分類器201から入力された分類情報に対応する第1加法性因子ベクトルと第2加法性因子ベクトルとを加法性因子コードブックの中から選択し、選択した第1加法性因子ベクトルを加算器206に出力し、選択した第2加法性因子ベクトルを加算器902に出力する。
加算器206は、加法性因子決定部901から入力される第1加法性因子ベクトルと、第1コードブック204からスイッチ203を介して入力される第1コードベクトルとを加算し、加算後のベクトルを加算器208に出力する。
加算器208は、加算器206から入力される第1加法性因子ベクトルを加算した後の第1コードベクトルと、第2コードブック207から入力される第2コードベクトルとを加算し、加算後のベクトルを加算器902に出力する。
加算器902は、加法性因子決定部901から入力される第2加法性因子ベクトルと、加算器208から入力されるベクトルとを加算し、加算後のベクトルを加算器210に出力する。
加算器210は、加算器902から入力されるベクトルと、第3コードブック209から入力される第3コードベクトルとを加算し、加算後のベクトルを量子化広帯域LSPベクトルとして出力する。
次に、LSPベクトル逆量子化装置900の動作について説明する。
加法性因子決定部901は、分類情報mに対応付けられた第1加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)と第2加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)とを加法性因子コードブックの中から選択し、第1加法性因子ベクトルを加算器206に出力し、第2加法性因子ベクトルを加算器902に出力する。
加算器206は、下記の式(15)に従って、第1コードブック204からスイッチ203を介して入力される第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)と、加法性因子決定部901から入力される第1加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを加算器208に出力する。
加算器208は、下記の式(16)に従って、加算器206から入力されるベクトルTMP_1(i)(i=0,1,…,R−1)と、第2コードブック207から入力される第2コードベクトルCODE_2
(d2_min)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを加算器902に出力する。
加算器902は、下記の式(17)に従って、加算器208から入力されるベクトルTMP_2(i)(i=0,1,…,R−1)と、加法性因子決定部901から入力される第2加法性因子ベクトルAdd2
(m)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを加算器210に出力する。
加算器210は、下記の式(18)に従って、加算器902から入力されるベクトルTMP_3(i)(i=0,1,…,R−1)と、第3コードブック209から入力される第3コードベクトルCODE_3
(d3_min)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを量子化広帯域LSPベクトルとして出力する。
このように、本実施の形態によれば、上記実施の形態1の効果に加えて、量子化毎に加法性因子ベクトルを決定することにより、実施の形態1に比べてさらに量子化精度を向上させることができる。また、復号の際には、量子化精度がより高い符号化情報を用いてベクトル逆量子化することができるため、さらに高品質な復号信号を生成することができる。
なお、本実施の形態では、LSPベクトル逆量子化装置900は、LSPベクトル量子化装置800において出力される符号化データを復号するとしたが、本発明はこれに限定されず、LSPベクトル逆量子化装置900で復号可能な形式の符号化データであれば、LSPベクトル逆量子化装置で受信して復号することが可能であることは言うまでもない。
また、実施の形態1と同様にして、本実施の形態に係るLSPベクトル量子化装置およびLSPベクトル逆量子化装置を、音声信号や楽音信号等を符号化/復号するCELP符号化装置/CELP復号装置に用いることが可能であることは言うまでもない。
(実施の形態3)
図11は、本発明の実施の形態3に係るLSPベクトル量子化装置500の主要な構成を示すブロック図である。なお、LSPベクトル量子化装置500は、実施の形態1に示したLSPベクトル量子化装置100(図2参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
LSPベクトル量子化装置500は、分類器101、スイッチ102、第1コードブック103、加算器104、誤差最小化部501、順番決定部502、加法性因子決定部503、加算器504、スイッチ505、コードブック506、コードブック507、加算器508、加算器509および加算器510を備える。
ここでは、入力されるLSPベクトルを3段階の多段ベクトル量子化によりベクトル量子化する場合において、狭帯域LSPベクトルの種類を示す分類情報を用いて1段目のベクトル量子化に用いるコードブックを決定し、1段目のベクトル量子化を行って第1の量子化誤差ベクトル(第1残差ベクトル)を求め、更に、分類情報に対応する加法性因子ベクトルを決定する。ここで、加法性因子ベクトルは、加算器104が出力する第1残差ベクトルに対して加算される加法性因子ベクトル(第1加法性因子ベクトル)と、加算器508が出力する第2残差ベクトルに対して加算される加法性因子ベクトル(第2加法性因子ベクトル)と、から成る。次いで、順番決定部502は、分類情報に応じて、2段目以降のベクトル量子化に用いるコードブックの使用順番を決定し、決定した使用順番に従ってコードブックを並べ替える。また、加法性因子決定部503は、順番決定部502で決定されたコードブックの使用順番に応じて、第1加法性因子ベクトルおよび第2加法性因子ベクトルの出力順番を入れ替える。このように、2段目以降のベクトル量子化に用いるコードブックの使用順番を入れ替えることにより、段毎に最適なコードベクトルを決定する多段ベクトル量子化において、前段の量子化誤差の統計的な分散に適したコードブックを用いることができる。
誤差最小化部501は、加算器104から入力される第1残差ベクトルを二乗した結果を広帯域LSPベクトルと第1コードベクトルとの二乗誤差とし、第1コードブックを探索することにより、この二乗誤差が最小となる第1コードベクトルを得る。同様に、誤差最小化部501は、加算器508から入力される第2残差ベクトルを二乗した結果を第1残差ベクトルと第2コードベクトルとの二乗誤差とし、2番目のコードブックを探索することにより、この二乗誤差が最小となるコードベクトルを得る。ここで、2番目のコードブックとは、コードブック506およびコードブック507のうち、後述する順番決定部502により「2段目のベクトル量子化に用いるコードブック」として決定されたコードブックである。また、2番目のコードブックを構成する複数のコードベクトルを複数の第2コードベクトルとする。次いで、誤差最小化部501は、加算器510から入力される第3残差ベクトルを二乗した結果を第3残差ベクトルと第3コードベクトルとの二乗誤差とし、3番目のコードブックを探索することにより、この二乗誤差が最小となるコードベクトルを得る。ここで、3番目のコードブックとは、コードブック506およびコードブック507のうち、後述する順番決定部502により「3段目のベクトル量子化に用いるコードブック」として決定されたコードブックである。また、3番目のコードブックを構成する複数のコードベクトルを複数の第3コードベクトルとする。誤差最小化部501は、探索により得られた3つのコードベクトルに付与されているインデックスを纏めて符号化し、符号化データとして出力する。
順番決定部502は、狭帯域LSPベクトルの各種類(n種類)に対応する、n種類の順番情報からなる順番情報コードブックを予め格納している。順番決定部502は、分類器101から入力された分類情報に対応する順番情報を順番情報コードブックの中から選択し、選択した順番情報を加法性因子決定部503およびスイッチ505に出力する。ここで、順番情報とは、2段目以降のベクトル量子化に用いるコードブックの使用順番を示す情報である。例えば、2段目のベクトル量子化にコードブック506を用いて、3段目のベクトル量子化にコードブック507を用いる場合の順番情報を「0」と表現し、2段目のベクトル量子化にコードブック507を用いて、3段目のベクトル量子化にコードブック506を用いる場合の順番情報を「1」と表現する。この場合、順番決定部502は、順番情報として「0」または「1」を出力することにより、2段目以降のベクトル量子化に用いるコードブックの順番を加法性因子決定部503およびスイッチ505に指示することができる。
加法性因子決定部503は、狭帯域LSPベクトルの各種類(n種類)に対応する、n種類の加法性因子ベクトル(コードブック506に対応)とn種類の加法性因子ベクトル(コードブック507に対応)とからなる加法性因子コードブックを予め格納している。加法性因子決定部503は、分類器101から入力された分類情報に対応する加法性因子ベクトル(コードブック506に対応)と加法性因子ベクトル(コードブック507に対応)とを加法性因子コードブックの中から各々選択する。次いで、加法性因子決定部503は、順番決定部502から入力された順番情報に応じて、選択した複数の加法性因子ベクトルのうち、2段目のベクトル量子化に用いる加法性因子ベクトルを第1加法性因子ベクトルとして加算器504に出力し、3段目のベクトル量子化に用いる加法性因子ベクトルを第2加法性因子ベクトルとして加算器509に出力する。換言すると、加法性因子決定部503は、2段目および3段目のベクトル量子化に用いるコードブック(コードブック506または507)の使用順番に応じて、各コードブックに対応する加法性因子ベクトルを加算器504および加算器509にそれぞれ出力する。
加算器504は、加算器104から入力された第1残差ベクトルと、加法性因子決定部503から入力された第1加法性因子ベクトルとの差を求め、求めた差のベクトルを加算器508に出力する。
スイッチ505は、順番決定部502から入力された順番情報に従って、コードブック506およびコードブック507のうち、2段目のベクトル量子化で用いるコードブック(2番目のコードブック)、および、3段目のベクトル量子化で用いるコードブック(3番目のコードブック)を各々選択し、選択したコードブックの出力端子を加算器508または加算器510の一方に接続する。
コードブック506は、誤差最小化部501からの指示により、指示されたコードベクトルをスイッチ505に出力する。
コードブック507は、誤差最小化部501からの指示により、指示されたコードベクトルをスイッチ505に出力する。
加算器508は、加算器504から入力される、第1加法性因子ベクトルが減算された第1残差ベクトルと、スイッチ505から入力される第2コードベクトルとの差を求め、求めた差を第2残差ベクトルとして加算器509と誤差最小化部501とに出力する。
加算器509は、加算器508から入力された第2残差ベクトルと、加法性因子決定部503から入力された第2加法性因子ベクトルとの差を求め、求めた差のベクトルを加算器510に出力する。
加算器510は、加算器509から入力される、第2加法性因子ベクトルが減算された第2残差ベクトルと、スイッチ505から入力される第3コードベクトルとの差を求め、求めた差のベクトルを第3残差ベクトルとして誤差最小化部501に出力する。
次に、量子化対象となる広帯域LSPベクトルの次数がR次である場合を例にとって、LSPベクトル量子化装置500が行う動作について説明する。なお、以下の説明では、広帯域LSPベクトルをLSP(i)(i=0,1,…,R−1)と記す。
誤差最小化部501は、d1’=0からd1’=D1−1までのd1’の値を順次第1コードブック103に指示し、d1’=0からd1’=D1−1までのd1’それぞれに対して、加算器104から入力される第1残差ベクトルErr_1(d1’)(i)(i=0,1,…,R−1)を下記の式(19)に従って二乗し、二乗誤差Errを求める。
誤差最小化部501は、二乗誤差Errが最小となる第1コードベクトルのインデックスd1’を第1インデックスd1_minとして記憶する。
順番決定部502は、分類情報mに対応する順番情報Ord(m)を順番情報コードブックの中から選択し、加法性因子決定部503およびスイッチ505に出力する。ここでは、順番情報Ord(m)の値が「0」である場合、2段目のベクトル量子化にコードブック506を用いて、3段目のベクトル量子化にコードブック507を用いる。また、順番情報Ord(m)の値が「1」である場合、2段目のベクトル量子化にコードブック507を用いて、3段目のベクトル量子化にコードブック506を用いる。
加法性因子決定部503は、分類情報mに対応する加法性因子ベクトル(コードブック506に対応)Add1(m)(i)(i=0,1,…,R−1)、および、加法性因子ベクトル(コードブック507に対応)Add2(m)(i)(i=0,1,…,R−1)を加法性因子コードブックの中から選択する。そして、加法性因子決定部503は、順番決定部502から入力される順番情報Ord(m)の値が「0」である場合、加法性因子ベクトルAdd1(m)(i)を第1加法性因子ベクトルとして加算器504に出力し、加法性因子ベクトルAdd2(m)(i)を第2加法性因子ベクトルとして加算器509に出力する。一方、加法性因子決定部503は、順番決定部502から入力される順番情報Ord(m)の値が「1」である場合、加法性因子ベクトルAdd2(m)(i)を第1加法性因子ベクトルとして加算器504に出力し、加法性因子ベクトルAdd1(m)(i)を第2加法性因子ベクトルとして加算器509に出力する。
加算器504は、下記の式(20)に従って、加算器104から入力される第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)から、加法性因子決定部503から入力される第1加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を減じ、得られるAdd_Err_1(d1_min)(i)を加算器508に出力する。ここで、第1加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)は、加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)および加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)のいずれか一方である。
スイッチ505は、順番決定部502から入力される順番情報Ord
(m)に応じて、コードブックの出力端子と加算器の入力端子とを接続する。例えば、スイッチ505は、順番情報Ord
(m)の値が「0」である場合、コードブック506の出力端子を加算器508の入力端子に接続した後、コードブック507の出力端子を加算器510の入力端子に接続する。これにより、スイッチ505は、コードブック506を構成するコードベクトルを第2コードベクトルとして加算器508に出力し、コードブック507を構成するコードベクトルを第3コードベクトルとして加算器510に出力する。一方、スイッチ505は、順番情報Ord
(m)の値が「1」である場合、コードブック507の出力端子を加算器508の入力端子に接続した後、コードブック506の出力端子を加算器510の入力端子に接続する。これにより、スイッチ505は、コードブック507を構成するコードベクトルを第2コードベクトルとして加算器508に出力し、コードブック506を構成するコードベクトルを第3コードベクトルとして加算器510に出力する。
コードブック506は、コードブックを構成する各コードベクトルCODE_2(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、誤差最小化部501からの指示d2’により指示されたコードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)をスイッチ505に出力する。ここで、D2はコードブック506のコードベクトルの総数であり、d2はコードベクトルのインデックスである。コードブック506は、d2’=0からd2’=D2−1までd2’の値を誤差最小化部501から順次指示される。
コードブック507は、コードブックを構成する各コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、誤差最小化部501からの指示d3’により指示されたコードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)をスイッチ505に出力する。ここで、D3はコードブック507のコードベクトルの総数であり、d3はコードベクトルのインデックスである。コードブック507は、d3’=0からd3’=D3−1までd3’の値を誤差最小化部501から順次指示される。
加算器508は、加算器504から入力される、第1加法性因子ベクトルが減じられた第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)と、スイッチ505から入力される第2コードベクトルCODE_2nd(i)(i=0,1,…,R−1)との差を下記の式(21)に従って求め、この差を第2残差ベクトルErr_2(i)(i=0,1,…,R−1)として誤差最小化部501に出力する。また、加算器508は、d2’=0からd2’=D2−1までのd2’、または、d3’=0からd3’=D3−1までのd3’それぞれに対応する第2残差ベクトルErr_2(i)(i=0,1,…,R−1)のうち、誤差最小化部501の探索により最小となると分かった第2残差ベクトルを加算器509に出力する。ここで、式(21)に示すCODE_2nd(i)(i=0,1,…,R−1)は、コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)およびコードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)のいずれか一方である。
ここで、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’の値をコードブック506に順次指示するか、または、d3’=0からd3’=D3−1までのd3’の値をコードブック507に順次指示する。また、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’、または、d3’=0からd3’=D3−1までのd3’それぞれに対して、加算器508から入力される第2残差ベクトルErr_2(i)(i=0,1,…,R−1)を下記の式(22)に従って二乗し、二乗誤差Errを求める。
誤差最小化部501は、二乗誤差Errが最小となるコードベクトルCODE_2
(d2’)のインデックスd2’を第2インデックスd2_minとして記憶するか、または、二乗誤差Errが最小となるコードベクトルCODE_3
(d3’)のインデックスd3’を第3インデックスd3_minとして記憶する。
加算器509は、下記の式(23)に従って、加算器508から入力される第2残差ベクトルErr_2(i)(i=0,1,…,R−1)から、加法性因子決定部503から入力される第2加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を減じ、得られるAdd_Err_2(i)を加算器510に出力する。ここで、第2加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)は、加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)および加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)のいずれか一方である。
加算器510は、加算器509から入力される、第2加法性因子ベクトルが減じられた第2残差ベクトルAdd_Err_2(i)(i=0,1,…,R−1)と、スイッチ505から入力される第3コードベクトルCODE_3rd(i)(i=0,1,…,R−1)との差を下記の式(24)に従って求め、この差を第3残差ベクトルErr_3(i)(i=0,1,…,R−1)として誤差最小化部501に出力する。ここで、式(24)に示すCODE_3rd(i)(i=0,1,…,R−1)は、コードベクトルCODE_2
(d2’)(i)(i=0,1,…,R−1)およびコードベクトルCODE_3
(d3’)(i)(i=0,1,…,R−1)のいずれか一方である。
ここで、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’の値をコードブック506に順次指示するか、または、d3’=0からd3’=D3−1までのd3’の値をコードブック507に順次指示する。また、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’、または、d3’=0からd3’=D3−1までのd3’それぞれに対して、加算器510から入力される第3残差ベクトルErr_3(i)(i=0,1,…,R−1)を下記の式(25)に従って二乗し、二乗誤差Errを求める。
誤差最小化部501は、二乗誤差Errが最小となるコードベクトルCODE_2
(d2’)のインデックスd2’をインデックスd2_minとして記憶するか、または、二乗誤差Errが最小となるコードベクトルCODE_3
(d3’)のインデックスd3’をインデックスd3_minとして記憶する。
図12A〜Cは、本実施の形態に係るLSPベクトル量子化の効果を概念的に説明するための図である。ここで、図12Aは、コードブック506(図11)を構成するコードベクトルの集合を示し、図12Bは、コードブック507(図11)を構成するコードベクトルの集合を示す。本実施の形態では、狭帯域LSPの種類に対応するように2段目以降のベクトル量子化で用いるコードブックの使用順番を決定する。例えば、狭帯域LSPの種類に従って、図12Aに示すコードブック506および図12Bに示すコードブック507のうち、コードブック507が2段目のベクトル量子化に用いるコードブックとして選択されたとする。ここで、図12Cの左側に示す1段目のベクトル量子化誤差(第1残差ベクトル)の分散は狭帯域LSPの種類によって異なる。そのため、本実施の形態によれば、図12Cに示すように、第1残差ベクトルの集合の分散と、狭帯域LSPの種類に従って選択されたコードブック(コードブック507)を構成するコードベクトルの集合の分散とを一致させることができる。このように、2段目のベクトル量子化では、第1残差ベクトルの分散に適応したコードベクトルを用いるため、2段目のベクトル量子化の性能を向上することができる。
このように、本実施の形態によれば、LSPベクトル量子化装置は、広帯域LSPベクトルとの相関を有する狭帯域LSPベクトルの種類により2段目以降のベクトル量子化に用いるコードブックの使用順番を決定し、使用順番に従ったコードブックを用いて2段目以降のベクトル量子化を行う。これにより、2段目以降のベクトル量子化では、前段のベクトル量子化誤差(第1残差ベクトル)の統計的な分散に応じたコードブックを用いることができる。よって、本実施の形態によれば、実施の形態2と同様、量子化精度を向上させることができ、さらに、各段のベクトル量子化において残差ベクトルの収束をより速めることができ、ベクトル量子化全体の性能を向上させることができる。
なお、本実施の形態では、2段目以降のベクトル量子化に用いるコードブックの使用順番が、順番決定部502に含まれる順番情報コードブックに格納された複数の順番情報の中から選択された順番情報に基づいて決定される場合について説明した。しかし、本発明では、コードブックの使用順番は、LSPベクトル量子化装置500の外部から順番決定用の情報を入力して決定してもよく、あるいは、LSPベクトル量子化装置500内(例えば、順番決定部502の内部)において計算等により生成した情報を用いて決定してもよい。
また、本実施の形態に係るLSPベクトル量子化装置500に対応するLSPベクトル逆量子化装置を構成することも可能である(図示せず)。この場合のLSPベクトル量子化装置とLSPベクトル逆量子化装置との構成上の対応は、実施の形態1または実施の形態2と同様である。すなわち、この場合のLSPベクトル逆量子化装置は、LSPベクトル量子化装置500で生成された符号化データを入力して符号分離部にて分離し、各インデックスを、それぞれ対応するコードブックに入力する構成となる。これにより、復号の際には、量子化精度が高い符号化情報を用いてベクトル逆量子化することができるため、高品質な復号信号を生成することができる。なお、この場合のLSPベクトル逆量子化装置は、LSPベクトル量子化装置500において出力される符号化データを復号するとしたが、本発明はこれに限定されず、このLSPベクトル逆量子化装置で復号可能な形式の符号化データであれば、このLSPベクトル逆量子化装置で受信して復号することが可能であることは言うまでもない。
また、実施の形態1と同様、本実施の形態に係るLSPベクトル量子化装置およびLSPベクトル逆量子化装置を、音声信号や楽音信号等を符号化/復号するCELP符号化装置/CELP復号装置に用いることが可能であることは言うまでもない。
以上、本発明の各実施の形態について説明した。
なお、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、上記各実施の形態に限定されず、種々変更して実施することが可能である。
たとえば、上記実施の形態では、ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法において、音声信号または楽音信号を対象として説明したが、その他の可能な信号に適用しても良い。
また、LSPは、LSF(Line Spectral Frequency)と呼ばれることもあり、LSPをLSFと読み替えてもよい。また、LSPの代わりにISP(Immittance Spectrum Pairs)をスペクトルパラメータとして量子化する場合はLSPをISPに読み替え、ISP量子化/逆量子化装置として本実施の形態を利用することができる。LSPの代わりにISF(Immittance Spectrum Frequency)をスペクトルパラメータとして量子化する場合はLSPをISFに読み替え、ISF量子化/逆量子化装置として本実施の形態を利用することができる。
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声や楽音等の伝送を行う移動体通信システムにおける通信端末装置や基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置や基地局装置を提供することができる。
また、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るベクトル量子化方法およびベクトル逆量子化方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るベクトル量子化装置およびベクトル逆量子化装置と同様の機能を実現することができる。
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部または全てを含むように1チップ化されても良い。
また、ここではLSIとしたが、集積度の違いによって、IC、システムLSI、スーパーLSI、ウルトラLSI等と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
2008年1月16日出願の特願2008−007255、2008年5月30日出願の特願2008−142442および2008年11月28日出願の特願2008−304660の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。なお、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法として、LSPベクトル量子化装置、LSPベクトル逆量子化装置、およびこれらの方法を例にとって説明する。
また、本発明の実施の形態では、スケーラブル符号化の広帯域LSP量子化器において、広帯域LSPをベクトル量子化対象とし、ベクトル量子化対象との相関を有する狭帯域LSPの種類を用いて、1段目の量子化に用いるコードブックを切り替える場合を例にとって説明する。なお、狭帯域LSPの代わりに、量子化狭帯域LSP(図示しない狭帯域LSP量子化器によって予め量子化された狭帯域LSP)を用いて1段目の量子化に用いるコードブックを切り替えても良い。また、量子化狭帯域LSPを広帯域形態に変換し、変換後の量子化狭帯域LSPを用いて1段目の量子化に用いるコードブックを切り替えても良い。
また、本発明の実施の形態において、コードブックを構成するコードベクトル全てに対して加算もしくは減算することにより、コードベクトル空間の中心であるセントロイド(平均)を移動させるための因子(ベクトル)のことを、加法性因子と称することとする。なお、実際には、加法性因子ベクトルは、本発明の実施の形態のように、コードベクトルに加算して用いるよりも、量子化対象であるベクトルから加法性因子ベクトルを減算して用いることが多い。
(実施の形態1)
図2は、本発明の実施の形態1に係るLSPベクトル量子化装置100の主要な構成を
示すブロック図である。ここでは、LSPベクトル量子化装置100において、入力されるLSPベクトルを3段階の多段ベクトル量子化により量子化する場合を例にとって説明する。
図2において、LSPベクトル量子化装置100は、分類器101、スイッチ102、第1コードブック103、加算器104、誤差最小化部105、加法性因子決定部106、加算器107、第2コードブック108、加算器109、第3コードブック110、および加算器111を備える。
分類器101は、狭帯域LSPベクトルの複数の種類それぞれを示す複数の分類情報からなる分類用コードブックを予め格納しており、ベクトル量子化対象である広帯域LSPベクトルの種類を示す分類情報を分類用コードブックの中から選択し、スイッチ102、および加法性因子決定部106に出力する。具体的には、分類器101は、狭帯域LSPベクトルの各種類に対応するコードベクトルからなる分類用コードブックを内蔵しており、分類用コードブックを探索することにより、入力される狭帯域LSPベクトルとの二乗誤差が最小となるコードベクトルを求める。分類器101は、探索により求めたコードベクトルのインデックスを、LSPベクトルの種類を示す分類情報とする。
スイッチ102は、分類器101から入力される分類情報に対応するサブコードブックを第1コードブック103の中から1つ選択し、そのサブコードブックの出力端子を加算器104に接続する。
第1コードブック103は、狭帯域LSPの各種類に対応したサブコードブック(CBa1〜CBan)を予め格納している。すなわち、例えば狭帯域LSPの種類の総数がnである場合、第1コードブック103を構成するサブコードブックの数もnとなる。第1コードブック103は、第1コードブックを構成する複数の第1コードベクトルの中から、誤差最小化部105からの指示により指示された第1コードベクトルをスイッチ102に出力する。
加算器104は、ベクトル量子化対象として入力される広帯域LSPベクトルと、スイッチ102から入力されるコードベクトルとの差を求め、この差を第1残差ベクトルとして誤差最小化部105に出力する。また、加算器104は、すべての第1コードベクトルそれぞれに対応する第1残差ベクトルのうち、誤差最小化部105の探索により最小となると分かった1つを加算器107に出力する。
誤差最小化部105は、加算器104から入力される第1残差ベクトルを二乗した結果を広帯域LSPベクトルと第1コードベクトルとの二乗誤差とし、第1コードブックを探索することによりこの二乗誤差が最小となる第1コードベクトルを求める。同様に、誤差最小化部105は、加算器109から入力される第2残差ベクトルを二乗した結果を第1残差ベクトルと第2コードベクトルとの二乗誤差とし、第2コードブックを探索することによりこの二乗誤差が最小となる第2コードベクトルを得る。同様に、誤差最小化部105は、加算器111から入力される第3残差ベクトルを二乗した結果を第3残差ベクトルと第3コードベクトルとの二乗誤差とし、第3コードブックを探索することによりこの二乗誤差が最小となる第3コードベクトルを得る。誤差最小化部105は、探索により得られた3つのコードベクトルに付与されているインデックスを纏めて符号化し、符号化データとして出力する。
加法性因子決定部106は、狭帯域LSPベクトルの各種類に対応する加法性因子ベクトルからなる加法性因子コードブックを予め格納している。加法性因子決定部106は、分類器101から入力される分類情報に対応する加法性因子ベクトルを加法性因子コード
ブックの中から選択し、加算器107に出力する。
加算器107は、加算器104から入力された第1残差ベクトルと、加法性因子決定部106から入力される加法性因子ベクトルとの差を求めて加算器109に出力する。
第2コードブック(CBb)108は、複数の第2コードベクトルからなり、誤差最小化部105からの指示により指示された第2コードベクトルを加算器109に出力する。
加算器109は、加算器107から入力される、加法性因子ベクトルが減算された第1残差ベクトルと、第2コードブック108から入力される第2コードベクトルとの差を求め、この差を第2残差ベクトルとして誤差最小化部105に出力する。また、加算器109は、すべての第2コードベクトルそれぞれに対応する第2残差ベクトルのうち、誤差最小化部105の探索により最小となると分かった1つを加算器111に出力する。
第3コードブック110(CBc)は、複数の第3コードベクトルからなり、誤差最小化部105からの指示により指示された第3コードベクトルを加算器111に出力する。
加算器111は、加算器109から入力される第2残差ベクトルと、第3コードブック110から入力される第3コードベクトルとの差を求め、この差を第3残差ベクトルとして誤差最小化部105に出力する。
次に、量子化対象となる広帯域LSPベクトルの次数がR次である場合を例にとって、LSPベクトル量子化装置100が行う動作について説明する。なお、以下の説明では、広帯域LSPベクトルをLSP(i)(i=0,1,…,R−1)と記す。
分類器101は、狭帯域LSPベクトルのn個の種類それぞれに対応するn個のコードベクトルからなる分類用コードブックを内蔵しており、コードベクトルを探索することにより、入力される狭帯域LSPベクトルとの二乗誤差が最小となるm番目のコードベクトルを求める。分類器101は、m(1≦m≦n)を分類情報としてスイッチ102、および加法性因子決定部106に出力する。
スイッチ102は、分類情報mに対応するサブコードブックCBamを第1コードブック103の中から選択し、そのサブコードブックの出力端子を加算器104に接続する。
第1コードブック103は、n個のサブコードブックCBa1〜CBanのうち、CBamを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、誤差最小化部105からの指示d1’により指示された第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)を、スイッチ102に出力する。ここで、D1は第1コードブックのコードベクトルの総数であり、d1は第1コードベクトルのインデックスである。ここで、第1コードブック103は、d1’=0からd1’=D1−1までのd1’の値を順次誤差最小化部105から指示される。
加算器104は、ベクトル量子化対象として入力される広帯域LSPベクトルLSP(i)(i=0,1,…,R−1)と、第1コードブック103から入力される第1コードベクトルCODE_1(d1’)(i)(i=0,1,…,R−1)との差を下記の式(1)に従って求め、この差を第1残差ベクトルErr_1(d1’)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。また、加算器104は、d1’=0からd1’=D1−1までのd1’それぞれに対応する第1残差ベクトルErr_1(d1’)(i)(i=0,1,…,R−1)のうち、誤差最小化部105の探索により最
小となると分かった第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)を加算器107に出力する。
誤差最小化部105は、d1’=0からd1’=D1−1までのd1’の値を順次第1コードブック103に指示し、d1’=0からd1’=D1−1までのd1’それぞれに対して、加算器104から入力される第1残差ベクトルErr_1
(d1’)(i)(i=0,1,…,R−1)を下記の式(2)に従って二乗し、二乗誤差Errを求める。
誤差最小化部105は、二乗誤差Errが最小となる第1コードベクトルのインデックスd1’を第1インデックスd1_minとして記憶する。
加法性因子決定部106は、分類情報mに対応する加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を加法性因子コードブックの中から選択し、加算器107に出力する。
加算器107は、下記の式(3)に従って、加算器104から入力される第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)から、加法性因子決定部106から入力される加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を減じ、得られるAdd_Err_1(d1_min)(i)を加算器109に出力する。
第2コードブック108は、コードブックを構成する各第2コードベクトルCODE_2
(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、誤差最小化部105からの指示d2’により指示されたコードベクトルCODE_2
(d2’)(i)(i=0,1,…,R−1)を加算器109に出力する。ここで、D2は第2コードブックのコードベクトルの総数であり、d2はコードベクトルのインデックスである。第2コードブック108は、d2’=0からd2’=D2−1までのd2’の値を順次誤差最小化部105から指示される。
加算器109は、加算器107から入力される、加法性因子ベクトルが減じられた第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック108から入力される第2コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)との差を下記の式(4)に従って求め、この差を第2残差ベクトルErr_2(d2’)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。また、加算器109は、d2’=0からd2’=D1−1までのd2’それぞれに対応する第2残差ベクトルErr_2(d2’)(i)(i=0,1,…,R−1)のうち、誤差最小化部105の探索により最小となると分かった第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)を加算器111に出力する。
ここで、誤差最小化部105は、d2’=0からd2’=D2−1までのd2’の値を順次第2コードブック108に指示し、d2’=0からd2’=D2−1までのd2’それぞれに対して、加算器109から入力される第2残差ベクトルErr_2
(d2’)(i)(i=0,1,…,R−1)を下記の式(5)に従って二乗し、二乗誤差Errを求める。
誤差最小化部105は、二乗誤差Errが最小となる第2コードベクトルのインデックスd2’を第2インデックスd2_minとして記憶する。
第3コードブック110は、コードブックを構成する各第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、誤差最小化部105からの指示d3’により指示された第3コードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)を加算器111に出力する。ここで、D3は第3コードブックのコードベクトルの総数であり、d3はコードベクトルのインデックスである。第3コードブック110は、d3’=0からd3’=D3−1までのd3’の値を順次誤差最小化部105から指示される。
加算器111は、加算器109から入力される第2残差ベクトルErr_2(d2_min)(i)(i=0,1,…,R−1)と、第3コードブック110から入力されるコードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)との差を下記の式(6)に従って求め、この差を第3残差ベクトルErr_3(d3’)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。
ここで、誤差最小化部105は、d3’=0からd3’=D3−1までのd3’の値を順次第3コードブック110に指示し、d3’=0からd3’=D3−1までのd3’それぞれに対して、加算器111から入力される第3残差ベクトルErr_3
(d3’)(i)(i=0,1,…,R−1)を下記の式(7)に従って二乗し、二乗誤差Errを求める。
次いで、誤差最小化部105は、二乗誤差Errが最小となる第3コードベクトルのインデックスd3’を第3インデックスd3_minとして記憶する。そして、誤差最小化部105は、第1インデックスd1_min、第2インデックスd2_min、第3インデックスd3_minを纏めて符号化し、符号化データとして出力する。
図3は、本実施の形態に係るLSPベクトル逆量子化装置200の主要な構成を示すブロック図である。LSPベクトル逆量子化装置200は、LSPベクトル量子化装置10
0において出力される符号化データを復号し、量子化LSPベクトルを生成する。
LSPベクトル逆量子化装置200は、分類器201、符号分離部202、スイッチ203、第1コードブック204、加法性因子決定部205、加算器206、第2コードブック(CBb)207、加算器208、第3コードブック(CBc)209、および加算器210を備える。なお、第1コードブック204は、第1コードブック103が備えるサブコードブック(CBa1〜CBan)と同一内容のサブコードブックを備え、加法性因子決定部205は、加法性因子決定部106が備える加法性因子コードブックと同一内容の加法性因子コードブックを備える。また、第2コードブック207は、第2コードブック108が備えるコードブックと同一内容のコードブックを備え、第3コードブック209は、第3コードブック110が備えるコードブックと同一内容のコードブックを備える。
分類器201は、狭帯域LSPベクトルの複数の種類それぞれを示す複数の分類情報からなる分類用コードブックを予め格納しており、ベクトル量子化対象である広帯域LSPベクトルの種類を示す分類情報を分類用コードブックの中から選択し、スイッチ203、および加法性因子決定部205に出力する。具体的には、分類器201は、狭帯域LSPベクトルの各種類に対応するコードベクトルからなる分類用コードブックを内蔵しており、分類用コードブックを探索することにより、図示しない狭帯域LSP量子化器から入力される量子化狭帯域LSPベクトルとの二乗誤差が最小となるコードベクトルを求める。分類器201は、探索により求めたコードベクトルのインデックスを、LSPベクトルの種類を示す分類情報とする。
符号分離部202は、LSPベクトル量子化装置100から送信される符号化データを第1インデックス、第2インデックス、および第3インデックスに分離する。符号分離部202は、第1インデックスを第1コードブック204に指示し、第2インデックスを第2コードブック207に指示し、第3インデックスを第3コードブック209に指示する。
スイッチ203は、分類器201から入力される分類情報に対応するサブコードブック(CBam)を第1コードブック204の中から1つ選び、そのサブコードブックの出力端子を加算器206に接続する。
第1コードブック204は、第1コードブックを構成する複数の第1コードベクトルの中から、符号分離部202により指示された第1インデックスに対応する1つの第1コードベクトルをスイッチ203に出力する。
加法性因子決定部205は、分類器201から入力される分類情報に対応する加法性因子ベクトルを加法性因子コードブックの中から選択し、加算器206に出力する。
加算器206は、スイッチ203から入力される第1コードベクトルに、加法性因子決定部205から入力される加法性因子ベクトルを加算し、得られる加算結果を加算器208に出力する。
第2コードブック207は、符号分離部202により指示された第2インデックスに対応する1つの第2コードベクトルを加算器208に出力する。
加算器208は、加算器206から入力される加算結果を、さらに第2コードブック207から入力される第2コードベクトルに加算し、得られる加算結果を加算器210に出力する。
第3コードブック209は、符号分離部202により指示された第3インデックスに対応する1つの第3コードベクトルを加算器210に出力する。
加算器210は、加算器208から入力される加算結果を、さらに第3コードブック209から入力される第3コードベクトルに加算し、得られる加算結果を量子化広帯域LSPベクトルとして出力する。
次に、LSPベクトル逆量子化装置200の動作について説明する。
分類器201は、狭帯域LSPベクトルのn個の種類それぞれに対応するn個のコードベクトルからなる分類用コードブックを内蔵しており、コードベクトルを探索することにより、図示しない狭帯域LSP量子化器から入力される量子化狭帯域LSPベクトルとの二乗誤差が最小となるm番目のコードベクトルを求める。分類器201は、m(1≦m≦n)を分類情報としてスイッチ203、および加法性因子決定部205に出力する。
符号分離部202は、LSPベクトル量子化装置100から送信される符号化データを第1インデックスd1_min、第2インデックスd2_min、および第3インデックスd3_minに分離する。符号分離部202は、第1インデックスd1_minを第1コードブック204に指示し、第2インデックスd2_minを第2コードブック207に指示し、第3インデックスd3_minを第3コードブック209に指示する。
スイッチ203は、分類器201から入力される分類情報mに対応するサブコードブックCBamを第1コードブック204の中から選び、そのサブコードブックの出力端子を加算器206に接続する。
第1コードブック204は、サブコードブックCBamを構成する各第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)の中から、符号分離部202からの指示d1_minにより指示された第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)をスイッチ203に出力する。
加法性因子決定部205は、分類器201から入力される分類情報mに対応する加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を加法性因子コードブックの中から選択し、加算器206に出力する。
加算器206は、下記の式(8)に従って、第1コードブック204から入力される第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)に、加法性因子決定部205から入力される加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を加算し、得られる加算結果TMP_1(i)(i=0,1,…,R−1)を加算器208に出力する。
第2コードブック207は、第2コードブックを構成する各第2コードベクトルCODE_2
(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、符号分離部202からの指示d2_minにより指示された第2コードベクトルCODE_2
(d2_min)(i)(i=0,1,…,R−1)を加算器208に出力する。
加算器208は、下記の式(9)に従って、加算器206から入力される加算結果TMP_1(i)を、さらに第2コードブック207から入力される第2コードベクトルCODE_2(d2_min)(i)(i=0,1,…,R−1)に加算し、得られる加算結果TMP_2(i)(i=0,1,…,R−1)を加算器210に出力する。
第3コードブック209は、第3コードブックを構成する各第3コードベクトルCODE_3
(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、符号分離部202からの指示d3_minにより指示された第3コードベクトルCODE_3
(d3_min)(i)(i=0,1,…,R−1)を加算器210に出力する。
加算器210は、下記の式(10)に従って、加算器208から入力される加算結果TMP_2(i)(i=0,1,…,R−1)を、さらに第3コードブック209から入力される第3コードベクトルCODE_3(d3_min)(i)(i=0,1,…,R−1)に加算し、加算結果となるベクトルQ_LSP(i)(i=0,1,…,R−1)を量子化広帯域LSPベクトルとして出力する。
LSPベクトル量子化装置100およびLSPベクトル逆量子化部200で用いられる第1コードブック、加法性因子コードブック、第2コードブック、および第3コードブックは、予め学習により求めて作成されたものであり、これらのコードブックの学習方法について説明する。
第1コードブック103および第1コードブック204が備える第1コードブックを学習により求めるためには、まず多数の学習用の音声データから得られる多数の、例えばV個のLSPベクトルを用意する。次いで、V個のLSPベクトルを種類(n種類)毎にグループ化し、各グループに属するLSPベクトルを用いて、LBG(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD1個の第1コードベクトルCODE_1(d1)(i)(d1=0,1,…,D1−1、i=0,1,…,R−1)を求め、各サブコードブックを生成する。
加法性因子決定部106および加法性因子決定部205が備える加法性因子コードブックを学習により求めるためには、上記のV個のLSPベクトルを用いて、上記方法で求めた第1コードブックによる一段目のベクトル量子化を行い、加算器104が出力する第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、求めたV個の第1残差ベクトルを種類毎にグループ化し、各グループに属する第1残差ベクトル集合のセントロイドを求める。そして、各セントロイドのベクトルを、その種類に対応する加法性因子ベクトルとすることにより、加法性因子コードブックを生成する。
第2コードブック108および第2コードブック207が備える第2コードブックを学習により求めるためには、上記のV個のLSPベクトルを用いて、上記方法で求めた第1コードブックによる一段目のベクトル量子化を行う。次いで、上記方法で求めた加法性因子コードブックを用いて、加算器107が出力する加法性因子ベクトル減算後の第1残差
ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、V個の加法性因子ベクトル減算後の第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)を用いて、LBG(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD2個の第2コードベクトルCODE_2(d2)(i)(d2=0,1,…,D1−1、i=0,1,…,R−1)を求め、第2コードブックを生成する。
第3コードブック110および第3コードブック209が備える第3コードブックを学習により求めるためには、上記のV個のLSPベクトルを用いて、上記方法で求めた第1コードブックによる一段目のベクトル量子化を行う。次いで、上記方法で求めた加法性因子コードブックを用いて、加法性因子ベクトル減算後の第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)をV個求める。次いで、上記方法で求めた第2コードブックによる二段目のベクトル量子化を行い、加算器109が出力する第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(Linde Buzo Gray)アルゴリズム等の学習アルゴリズムに従いD3個の第3コードベクトルCODE_3(d3)(i)(d3=0,1,…,D1−1、i=0,1,…,R−1)を求め、第3コードブックを生成する。
これらの学習の方法は一例であって、上記の方法以外で各コードブックを生成しても良い。
このように、本実施の形態によれば、広帯域LSPベクトルとの相関を有する狭帯域LSPベクトルの種類により1段目のベクトル量子化のコードブックを切り換え、1段目のベクトル量子化誤差(第1残差ベクトル)の統計的な分散が種類毎に異なる多段ベクトル量子化において、狭帯域LSPベクトルの分類結果に対応する加法性因子ベクトルを第1残差ベクトルから減算する。これにより、2段目のベクトル量子化対象のベクトルの平均を1段目のベクトル量子化誤差の統計的な平均に応じて変更させることができ、従って広帯域LSPベクトルの量子化精度を向上することができる。また、復号の際には、量子化精度の高い符号化情報を用いてベクトル逆量子化することができるため、高品質な復号信号を生成することができる。
図4は、本実施の形態に係るLSPベクトル量子化の効果を概念的に説明するための図である。図4において、「−Add」と書いてある矢印は、量子化誤差ベクトルから加法性因子ベクトルを減じる処理を示す。図4に示すように、本実施の形態においては、狭帯域LSPの種類に対応する第1コードブックCBam(m<=n)を用いてベクトル量子化を行って得られる量子化誤差ベクトルから、この種類に対応する加法性因子ベクトルを減じる。これにより、加法性因子ベクトル減算後の量子化誤差ベクトルの集合の平均を、2段目のベクトル量子化に用いる共通の第2コードブックCBbを構成する第2コードベクトルの集合の平均に一致させることができる。従って、2段目のベクトル量子化の量子化精度を向上することができる。
なお、本実施の形態においては、2段目のベクトル量子化対象のベクトルの平均を1段目のベクトル量子化誤差の統計的な平均に応じて変更する場合を例にとって説明した。ただし、本発明はこれに限定されず、2段目のベクトル量子化対象に用いるコードベクトルの平均を1段目のベクトル量子化誤差の統計的な平均に応じて変更しても良い。これを実現するためには、図5のLSPベクトル量子化装置300に示すように、加算器307により、第2コードブックを備える第2コードベクトルと、狭帯域LSPベクトルの分類結果に対応する加法性因子ベクトルとを加算する。これによっても、本実施の形態と同様に、広帯域LSPベクトルの量子化精度を向上する効果が得られる。
図6は、図5に示したLSPベクトル量子化装置300におけるLSPベクトル量子化の効果を概念的に示すための図である。図6において、「+Add」と書いてある矢印は、第2コードブックを構成する第2コードベクトルに加法性因子ベクトルを加算する処理を示す。図6に示すように、本実施の形態においては、狭帯域LSPの種類mに対応する加法性因子ベクトルを、第2コードブックを構成する第2コードベクトルに加法性因子ベクトルに加算する。これにより、加法性因子ベクトル加算後の第2コードベクトルの集合の平均を、第1コードブックCBam(m<=n)を用いてベクトル量子化を行い得られた量子化誤差ベクトルの集合の平均に一致させることができる。従って、2段目のベクトル量子化の量子化精度を向上することができる。
また、本実施の形態では、加法性因子決定部106および加法性因子決定部205が備える加法性因子コードブックを構成する加法性因子ベクトルは狭帯域LSPベクトルの種類に対応している場合を例にとって説明した。ただし、本発明はこれに限定されず、加法性因子決定部106および加法性因子決定部205が備える加法性因子コードブックを構成する加法性因子ベクトルは、音声の特徴を分類した各種類に対応していても良い。かかる場合、分類器101は、狭帯域LSPベクトルではなく音声の特徴を表すパラメータを音声特徴情報として入力し、入力された音声特徴情報に対応する音声特徴の種類を分類情報としてスイッチ102および加法性因子決定部106に出力する。例えば、VMR−WB(Varialbe-Rate Multimode Wideband Speech Codec)のように、音声の有声性、雑音性等の特徴でエンコーダのタイプを切り換えるというような符号化装置に本発明を適用する場合、エンコーダのタイプの情報をそのまま音声特徴量として用いて良い。
また、本実施の形態では、LSPベクトルに対して3段のベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、2段のベクトル量子化、もしくは、4段以上のベクトル量子化を行う場合にも適用できる。
また、本実施の形態では、LSPベクトルに対して3段の多段ベクトル量子化を行う場合を例にとって説明したが、本発明はこれに限定されず、分割ベクトル量子化と併用してベクトル量子化を行う場合にも適用できる。
また、本実施の形態では、量子化対象として広帯域LSPベクトルを例にとって説明したが、量子化対象はこれに限定されず、広帯域LSPベクトル以外のベクトルであっても良い。
また、本実施の形態では、LSPベクトル逆量子化装置200は、LSPベクトル量子化装置100において出力される符号化データを復号するとしたが、本発明はこれに限定されず、LSPベクトル逆量子化装置200で復号可能な形式の符号化データであれば、LSPベクトル逆量子化装置で受信して復号することが可能であることは言うまでもない。
また、本実施の形態に係るベクトル量子化装置およびベクトル逆量子化装置は、音声信号や楽音信号等を符号化/復号するCELP符号化装置/CELP復号装置に用いることが可能である。CELP符号化装置においては、入力信号を線形予測分析して得られた線形予測係数から変換されたLSPを入力して量子化処理を行い、量子化された量子化LSPを合成フィルタに出力する。たとえば本実施の形態に係るLSPベクトル量子化装置100をCELP型音声符号化装置に適用する場合は、量子化LSPを表す量子化LSP符号を符号化データとして出力するLSP量子化部のところに、本実施の形態に係るLSPベクトル量子化装置100を配置する。これにより、ベクトル量子化精度を向上することが可能となるため、復号時の音声品質も向上する。一方、CELP復号装置においては、
受信した多重化符号データを分離して得られた量子化LSP符号から量子化LSPを復号する。本発明に係るLSPベクトル逆量子化装置をCELP型音声復号装置に適用する場合には、復号した量子化LSPを合成フィルタに出力するLSP逆量子化部のところに、本実施の形態に係るLSPベクトル逆量子化装置200を配置すればよく、上記と同様の作用効果が得られる。以下、図7および図8を用いて本実施の形態に係るLSPベクトル量子化装置100およびLSPベクトル逆量子化装置200を備えるCELP符号化装置400およびCELP復号装置450について説明する。
図7は、本実施の形態に係るLSPベクトル量子化装置100を備えるCELP符号化装置400の主要な構成を示すブロック図である。CELP符号化装置400は、入力される音声・楽音信号を複数サンプルずつ区切り、複数サンプルを1フレームとしてフレーム毎に符号化を行う。
前処理部401は、入力される音声信号または楽音信号に対して、DC成分を取り除くハイパスフィルタ処理を行い、また後続する符号化処理の性能改善のための波形整形処理もしくはプリエンファシス処理を行い、これらの処理により得られる信号XinをLSP分析部402および加算器405に出力する。
LSP分析部402は、前処理部401から入力される信号Xinを用いて線形予測分析を行い、得られるLPCをLSPベクトルに変換してLSPベクトル量子化部403に出力する。
LSPベクトル量子化部403は、LSP分析部402から入力されるLSPベクトルに対して量子化を行う。LSPベクトル量子化部403は、得られる量子化LSPベクトルをフィルタ係数として合成フィルタ404に出力し、量子化LSP符号(L)を多重化部414に出力する。ここで、LSPベクトル量子化部403としては、本実施の形態に係るLSPベクトル量子化装置100を適用する。すなわち、LSPベクトル量子化部403の具体的な構成および動作は、LSPベクトル量子化装置100と同様である。この場合、LSPベクトル量子化装置100に入力される広帯域LSPベクトルと、LSPベクトル量子化部403に入力されるLSPベクトルと、は対応する。また、LSPベクトル量子化装置100が出力する符号化データと、LSPベクトル量子化部403が出力する量子化LSP符号(L)と、は対応する。合成フィルタ404に入力されるフィルタ係数は、LSPベクトル量子化部403内において量子化LSP符号(L)を用いて逆量子化して得られた量子化LSPベクトルである。なお、LSPベクトル量子化装置100に入力される狭帯域LSPベクトルは、例えばCELP符号化装置400の外部から入力される。例えば、広帯域CELP符号化部(CELP符号化装置400に対応)と狭帯域CELP符号化部とを有するスケーラブル符号化装置(図示せず)にこのLSPベクトル量子化装置100を適用する場合には、狭帯域CELP符号化部から出力される狭帯域LSPベクトルがLSPベクトル量子化装置100に入力される。
合成フィルタ404は、LSPベクトル量子化部403から入力される量子化LSPベクトルに基づくフィルタ係数を用いて、後述する加算器411から入力される駆動音源に対して合成処理を行い、生成される合成信号を加算器405に出力する。
加算器405は、合成フィルタ404から入力される合成信号の極性を反転させ、前処理部401から入力される信号Xinに加算することにより誤差信号を算出し、誤差信号を聴覚重み付け部412に出力する。
適応音源符号帳406は、過去に加算器411から入力された駆動音源をバッファに記憶しており、パラメータ決定部413から入力される適応音源ラグ符号(A)によって特
定される切り出し位置から1フレーム分のサンプルをバッファより切り出し、適応音源ベクトルとして乗算器409に出力する。ここで、適応音源符号帳406は、加算器411から駆動音源が入力されるたびにバッファの内容を更新する。
量子化利得生成部407は、パラメータ決定部413から入力される量子化音源利得符号(G)によって、量子化適応音源利得と量子化固定音源利得とを決定し、それぞれを乗算器409と乗算器410とに出力する。
固定音源符号帳408は、パラメータ決定部413から入力される固定音源ベクトル符号(F)によって特定される形状を有するベクトルを固定音源ベクトルとして乗算器410に出力する。
乗算器409は、量子化利得生成部407から入力される量子化適応音源利得を、適応音源符号帳406から入力される適応音源ベクトルに乗じて、加算器411に出力する。
乗算器410は、量子化利得生成部407から入力される量子化固定音源利得を、固定音源符号帳408から入力される固定音源ベクトルに乗じて、加算器411に出力する。
加算器411は、乗算器409から入力される利得乗算後の適応音源ベクトルと、乗算器410から入力される利得乗算後の固定音源ベクトルとを加算し、加算結果を駆動音源として合成フィルタ404および適応音源符号帳406に出力する。ここで、適応音源符号帳406に入力される駆動音源は、適応音源符号帳406のバッファに記憶される。
聴覚重み付け部412は、加算器405から入力される誤差信号に対して聴覚的重み付け処理を行い、符号化歪みとしてパラメータ決定部413に出力する。
パラメータ決定部413は、聴覚重み付け部412から入力される符号化歪みを最小とする適応音源ラグを適応音源符号帳406から選択し、選択結果を示す適応音源ラグ符号(A)を適応音源符号帳406および多重化部414に出力する。ここで、適応音源ラグとは、適応音源ベクトルを切り出す位置を示すパラメータである。また、パラメータ決定部413は、聴覚重み付け部412から出力される符号化歪みを最小とする固定音源ベクトルを固定音源符号帳408から選択し、選択結果を示す固定音源ベクトル符号(F)を固定音源符号帳408および多重化部414に出力する。また、パラメータ決定部413は、聴覚重み付け部412から出力される符号化歪みを最小とする量子化適応音源利得と量子化固定音源利得とを量子化利得生成部407から選択し、選択結果を示す量子化音源利得符号(G)を量子化利得生成部407および多重化部414に出力する。
多重化部414は、LSPベクトル量子化部403から入力される量子化LSP符号(L)、パラメータ決定部413から入力される適応音源ラグ符号(A)、固定音源ベクトル符号(F)、および量子化音源利得符号(G)を多重化して符号化情報を出力する。
図8は、本実施の形態に係るLSPベクトル逆量子化装置200を備えるCELP復号装置450の主要な構成を示すブロック図である。
図8において、分離部451は、CELP符号化装置400から伝送される符号化情報に対して分離処理を行い、量子化LSP符号(L)、適応音源ラグ符号(A)、量子化音源利得符号(G)、固定音源ベクトル符号(F)を得る。分離部451は、量子化LSP符号(L)をLSPベクトル逆量子化部452に出力し、適応音源ラグ符号(A)を適応音源符号帳453に出力し、量子化音源利得符号(G)を量子化利得生成部454に出力し、固定音源ベクトル符号(F)を固定音源符号帳455に出力する。
LSPベクトル逆量子化部452は、分離部451から入力される量子化LSP符号(L)から量子化LSPベクトルを復号し、量子化LSPベクトルをフィルタ係数として合成フィルタ459に出力する。ここで、LSPベクトル逆量子化部452としては、本実施の形態に係るLSPベクトル逆量子化装置200を適用する。すなわち、LSPベクトル逆量子化部452の具体的な構成および動作は、LSPベクトル逆量子化装置200と同様である。この場合、LSPベクトル逆量子化装置200に入力される符号化データと、LSPベクトル逆量子化部452に入力される量子化LSP符号(L)と、は対応する。また、LSPベクトル逆量子化装置200が出力する量子化広帯域LSPベクトルと、LSPベクトル逆量子化部452が出力する量子化LSPベクトルと、は対応する。なお、LSPベクトル逆量子化装置200に入力される狭帯域LSPベクトルは、例えばCELP復号装置450の外部から入力される。例えば、広帯域CELP復号部(CELP復号装置450に対応)と狭帯域CELP復号部とを有するスケーラブル復号装置(図示せず)にこのLSPベクトル逆量子化装置200を適用する場合には、狭帯域CELP復号部から出力される狭帯域LSPベクトルがLSPベクトル逆量子化装置200に入力される。
適応音源符号帳453は、分離部451から入力される適応音源ラグ符号(A)により特定される切り出し位置から1フレーム分のサンプルをバッファより切り出し、切り出したベクトルを適応音源ベクトルとして乗算器456に出力する。ここで、適応音源符号帳453は、加算器458から駆動音源が入力されるたびにバッファの内容を更新する。
量子化利得生成部454は、分離部451から入力される量子化音源利得符号(G)が示す量子化適応音源利得と量子化固定音源利得とを復号し、量子化適応音源利得を乗算器456に出力し、量子化固定音源利得を乗算器457に出力する。
固定音源符号帳455は、分離部451から入力される固定音源ベクトル符号(F)が示す固定音源ベクトルを生成し、乗算器457に出力する。
乗算器456は、適応音源符号帳453から入力される適応音源ベクトルに、量子化利得生成部454から入力される量子化適応音源利得を乗じて加算器458に出力する。
乗算器457は、固定音源符号帳455から入力される固定音源ベクトルに、量子化利得生成部454から入力される量子化固定音源利得を乗じて加算器458に出力する。
加算器458は、乗算器456から入力される利得乗算後の適応音源ベクトルと、乗算器457から入力される利得乗算後の固定音源ベクトルとを加算して駆動音源を生成し、生成される駆動音源を合成フィルタ459および適応音源符号帳453に出力する。ここで、適応音源符号帳453に入力される駆動音源は、適応音源符号帳453のバッファに記憶される。
合成フィルタ459は、加算器458から入力される駆動音源と、LSPベクトル逆量子化部452で復号されたフィルタ係数とを用いて合成処理を行い、生成される合成信号を後処理部460に出力する。
後処理部460は、合成フィルタ459から入力される合成信号に対して、ホルマント強調やピッチ強調などの音声の主観的な品質を改善する処理、および定常雑音の主観的品質を改善する処理を施し、得られる音声信号または楽音信号を出力する。
このように、本実施の形態に係るCELP符号化装置/CELP復号装置によれば、本
実施の形態によるベクトル量子化装置/ベクトル逆量子化装置を用いることにより、符号化時にベクトル量子化精度を向上させることが可能となるため、復号時の音声品質も向上させることができる。
なお、本実施の形態では、CELP復号装置450は、CELP符号化装置400において出力される符号化データを復号するとしたが、本発明はこれに限定されず、CELP復号装置450で復号可能な形式の符号化データであれば、CELP復号装置で受信して復号することが可能であることは言うまでもない。
(実施の形態2)
図9は、本発明の実施の形態2に係るLSPベクトル量子化装置800の主要な構成を示すブロック図である。なお、LSPベクトル量子化装置800は、実施の形態1に示したLSPベクトル量子化装置100(図2参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
LSPベクトル量子化装置800は、分類器101、スイッチ102、第1コードブック103、加算器104、誤差最小化部105、加算器107、第2コードブック108、加算器109、第3コードブック110、加算器111、加法性因子決定部801及び加算器802を備える。
ここでは、入力されるLSPベクトルを3段階の多段ベクトル量子化によりベクトル量子化する場合において、狭帯域LSPベクトルの種類を示す分類情報を用いて1段目のベクトル量子化に用いるコードブックを決定し、1段目のベクトル量子化を行って第1の量子化誤差ベクトルを求め、更に、前記分類情報に対応する加法性因子ベクトルを決定する。ここで、加法性因子ベクトルは、加算器104が出力する第1残差ベクトルに対して加算される加法性因子ベクトル(第1加法性因子ベクトル)と、加算器109が出力する第2残差ベクトルに対して加算される加法性因子ベクトル(第2加法性因子ベクトル)と、からなる。次いで、加法性因子決定部801は、第1加法性因子ベクトルを加算器107に出力し、第2加法性因子ベクトルを加算器802に出力する。このように、多段ベクトル量子化の各段に適した加法性因子ベクトルを予め用意しておくことにより、コードブックの適応調整をより仔細に行うことができる。
加法性因子決定部801は、狭帯域LSPベクトルの各種類(n種類)に対応する、n種類の第1加法性因子ベクトルとn種類の第2加法性因子ベクトルとからなる加法性因子コードブックを予め格納している。また、加法性因子決定部801は、分類器101から入力された分類情報に対応する第1加法性因子ベクトルと第2加法性因子ベクトルとを加法性因子コードブックの中から選択し、選択した第1加法性因子ベクトルを加算器107に出力し、選択した第2加法性因子ベクトルを加算器802に出力する。
加算器107は、加算器104から入力された第1残差ベクトルと、加法性因子決定部801から入力された第1加法性因子ベクトルとの差を求めて加算器109に出力する。
加算器109は、加算器107から入力される、第1加法性因子ベクトルが減算された第1残差ベクトルと、第2コードブック108から入力される第2コードベクトルとの差を求め、求めた差を第2残差ベクトルとして加算器802と誤差最小化部105とに出力する。
加算器802は、加算器109から入力された第2残差ベクトルと、加法性因子決定部801から入力された第2加法性因子ベクトルとの差を求め、求めた差のベクトルを加算器111に出力する。
加算器111は、加算器802から入力される第2加法性因子ベクトルが減算された第2残差ベクトルと、第3コードブック110から入力される第3コードベクトルとの差を求め、求めた差のベクトルを第3残差ベクトルとして誤差最小化部105に出力する。
次に、LSPベクトル量子化装置800の動作について説明する。
以下、量子化対象となるLSPベクトルの次数がR次である場合を例にとって説明する。LSPベクトルをLSP(i)(i=0,1,…,R−1)と記す。
加法性因子決定部801は、分類情報mに対応付けられた第1加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)と第2加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)とを加法性因子コードブックの中から選択し、第1加法性因子ベクトルを加算器107に出力し、第2加法性因子ベクトルを加算器802に出力する。
加算器107は、下記の式(11)に従って、一段目のベクトル量子化において二乗誤差Errが最小となる第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)から、加法性因子決定部801から入力される第1加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)を減じて加算器109に出力する。
加算器109は、加算器107から入力される第1加法性因子ベクトル減算後の第1残差ベクトルAdd_Err_1
(d1_min)(i)(i=0,1,…,R−1)と、第2コードブック108から入力される第2コードベクトルCODE_2
(d2´)(i)(i=0,1,…,R−1)との差を下記の式(12)に従って求め、差のベクトルを第2残差ベクトルErr_2
(d2´)(i)(i=0,1,…,R−1)として加算器802と誤差最小化部105とに出力する。
加算器802は、下記の式(13)に従って、二段目のベクトル量子化において二乗誤差Errが最小となる第2残差ベクトルErr_2
(d2_min)(i)(i=0,1,…,R−1)から、加法性因子決定部801から入力される第2加法性因子ベクトルAdd2
(m)(i)(i=0,1,…,R−1)を減じて加算器111に出力する。
加算器111は、加算器802から入力される第2加法性因子ベクトル減算後の第2残差ベクトルAdd_Err_2
(d2_min)(i)(i=0,1,…,R−1)と、第3コードブック110から入力される第3コードベクトルCODE_3
(d3´)(i)(i=0,1,…,R−1)との差を下記の式(14)に従って求め、差のベクトルを第3残差ベクトルErr_3
(d3´)(i)(i=0,1,…,R−1)として誤差最小化部105に出力する。
図10は、本発明の実施の形態2に係るLSPベクトル逆量子化装置900の主要な構成を示すブロック図である。なお、LSPベクトル逆量子化装置900は、実施の形態1に示したLSPベクトル逆量子化装置200(図3参照)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
ここでは、LSPベクトル量子化装置800において出力される符号化データを、LSPベクトル逆量子化装置900において復号化し、量子化LSPベクトルを生成する場合を例にとって説明する。
LSPベクトル逆量子化装置900は、分類器201、符号分離部202、スイッチ203、第1コードブック204、加算器206、第2コードブック207、加算器208、第3コードブック209、加算器210、加法性因子決定部901及び加算器902を備える。
加法性因子決定部901は、n種類の第1加法性因子ベクトルとn種類の第2加法性因子ベクトルとからなる加法性因子コードブックを予め格納しており、分類器201から入力された分類情報に対応する第1加法性因子ベクトルと第2加法性因子ベクトルとを加法性因子コードブックの中から選択し、選択した第1加法性因子ベクトルを加算器206に出力し、選択した第2加法性因子ベクトルを加算器902に出力する。
加算器206は、加法性因子決定部901から入力される第1加法性因子ベクトルと、第1コードブック204からスイッチ203を介して入力される第1コードベクトルとを加算し、加算後のベクトルを加算器208に出力する。
加算器208は、加算器206から入力される第1加法性因子ベクトルを加算した後の第1コードベクトルと、第2コードブック207から入力される第2コードベクトルとを加算し、加算後のベクトルを加算器902に出力する。
加算器902は、加法性因子決定部901から入力される第2加法性因子ベクトルと、加算器208から入力されるベクトルとを加算し、加算後のベクトルを加算器210に出力する。
加算器210は、加算器902から入力されるベクトルと、第3コードブック209から入力される第3コードベクトルとを加算し、加算後のベクトルを量子化広帯域LSPベクトルとして出力する。
次に、LSPベクトル逆量子化装置900の動作について説明する。
加法性因子決定部901は、分類情報mに対応付けられた第1加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)と第2加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)とを加法性因子コードブックの中から選択し、第1加法性因子ベクトルを加算器206に出力し、第2加法性因子ベクトルを加算器902に出力する。
加算器206は、下記の式(15)に従って、第1コードブック204からスイッチ203を介して入力される第1コードベクトルCODE_1(d1_min)(i)(i=0,1,…,R−1)と、加法性因子決定部901から入力される第1加法性因子ベクト
ルAdd1(m)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを加算器208に出力する。
加算器208は、下記の式(16)に従って、加算器206から入力されるベクトルTMP_1(i)(i=0,1,…,R−1)と、第2コードブック207から入力される第2コードベクトルCODE_2
(d2_min)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを加算器902に出力する。
加算器902は、下記の式(17)に従って、加算器208から入力されるベクトルTMP_2(i)(i=0,1,…,R−1)と、加法性因子決定部901から入力される第2加法性因子ベクトルAdd2
(m)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを加算器210に出力する。
加算器210は、下記の式(18)に従って、加算器902から入力されるベクトルTMP_3(i)(i=0,1,…,R−1)と、第3コードブック209から入力される第3コードベクトルCODE_3
(d3_min)(i)(i=0,1,…,R−1)とを加算し、加算後のベクトルを量子化広帯域LSPベクトルとして出力する。
このように、本実施の形態によれば、上記実施の形態1の効果に加えて、量子化毎に加法性因子ベクトルを決定することにより、実施の形態1に比べてさらに量子化精度を向上させることができる。また、復号の際には、量子化精度がより高い符号化情報を用いてベクトル逆量子化することができるため、さらに高品質な復号信号を生成することができる。
なお、本実施の形態では、LSPベクトル逆量子化装置900は、LSPベクトル量子化装置800において出力される符号化データを復号するとしたが、本発明はこれに限定されず、LSPベクトル逆量子化装置900で復号可能な形式の符号化データであれば、LSPベクトル逆量子化装置で受信して復号することが可能であることは言うまでもない。
また、実施の形態1と同様にして、本実施の形態に係るLSPベクトル量子化装置およびLSPベクトル逆量子化装置を、音声信号や楽音信号等を符号化/復号するCELP符号化装置/CELP復号装置に用いることが可能であることは言うまでもない。
(実施の形態3)
図11は、本発明の実施の形態3に係るLSPベクトル量子化装置500の主要な構成を示すブロック図である。なお、LSPベクトル量子化装置500は、実施の形態1に示したLSPベクトル量子化装置100(図2参照)と同様の基本的構成を有しており、同
一の構成要素には同一の符号を付し、その説明を省略する。
LSPベクトル量子化装置500は、分類器101、スイッチ102、第1コードブック103、加算器104、誤差最小化部501、順番決定部502、加法性因子決定部503、加算器504、スイッチ505、コードブック506、コードブック507、加算器508、加算器509および加算器510を備える。
ここでは、入力されるLSPベクトルを3段階の多段ベクトル量子化によりベクトル量子化する場合において、狭帯域LSPベクトルの種類を示す分類情報を用いて1段目のベクトル量子化に用いるコードブックを決定し、1段目のベクトル量子化を行って第1の量子化誤差ベクトル(第1残差ベクトル)を求め、更に、分類情報に対応する加法性因子ベクトルを決定する。ここで、加法性因子ベクトルは、加算器104が出力する第1残差ベクトルに対して加算される加法性因子ベクトル(第1加法性因子ベクトル)と、加算器508が出力する第2残差ベクトルに対して加算される加法性因子ベクトル(第2加法性因子ベクトル)と、から成る。次いで、順番決定部502は、分類情報に応じて、2段目以降のベクトル量子化に用いるコードブックの使用順番を決定し、決定した使用順番に従ってコードブックを並べ替える。また、加法性因子決定部503は、順番決定部502で決定されたコードブックの使用順番に応じて、第1加法性因子ベクトルおよび第2加法性因子ベクトルの出力順番を入れ替える。このように、2段目以降のベクトル量子化に用いるコードブックの使用順番を入れ替えることにより、段毎に最適なコードベクトルを決定する多段ベクトル量子化において、前段の量子化誤差の統計的な分散に適したコードブックを用いることができる。
誤差最小化部501は、加算器104から入力される第1残差ベクトルを二乗した結果を広帯域LSPベクトルと第1コードベクトルとの二乗誤差とし、第1コードブックを探索することにより、この二乗誤差が最小となる第1コードベクトルを得る。同様に、誤差最小化部501は、加算器508から入力される第2残差ベクトルを二乗した結果を第1残差ベクトルと第2コードベクトルとの二乗誤差とし、2番目のコードブックを探索することにより、この二乗誤差が最小となるコードベクトルを得る。ここで、2番目のコードブックとは、コードブック506およびコードブック507のうち、後述する順番決定部502により「2段目のベクトル量子化に用いるコードブック」として決定されたコードブックである。また、2番目のコードブックを構成する複数のコードベクトルを複数の第2コードベクトルとする。次いで、誤差最小化部501は、加算器510から入力される第3残差ベクトルを二乗した結果を第3残差ベクトルと第3コードベクトルとの二乗誤差とし、3番目のコードブックを探索することにより、この二乗誤差が最小となるコードベクトルを得る。ここで、3番目のコードブックとは、コードブック506およびコードブック507のうち、後述する順番決定部502により「3段目のベクトル量子化に用いるコードブック」として決定されたコードブックである。また、3番目のコードブックを構成する複数のコードベクトルを複数の第3コードベクトルとする。誤差最小化部501は、探索により得られた3つのコードベクトルに付与されているインデックスを纏めて符号化し、符号化データとして出力する。
順番決定部502は、狭帯域LSPベクトルの各種類(n種類)に対応する、n種類の順番情報からなる順番情報コードブックを予め格納している。順番決定部502は、分類器101から入力された分類情報に対応する順番情報を順番情報コードブックの中から選択し、選択した順番情報を加法性因子決定部503およびスイッチ505に出力する。ここで、順番情報とは、2段目以降のベクトル量子化に用いるコードブックの使用順番を示す情報である。例えば、2段目のベクトル量子化にコードブック506を用いて、3段目のベクトル量子化にコードブック507を用いる場合の順番情報を「0」と表現し、2段目のベクトル量子化にコードブック507を用いて、3段目のベクトル量子化にコードブ
ック506を用いる場合の順番情報を「1」と表現する。この場合、順番決定部502は、順番情報として「0」または「1」を出力することにより、2段目以降のベクトル量子化に用いるコードブックの順番を加法性因子決定部503およびスイッチ505に指示することができる。
加法性因子決定部503は、狭帯域LSPベクトルの各種類(n種類)に対応する、n種類の加法性因子ベクトル(コードブック506に対応)とn種類の加法性因子ベクトル(コードブック507に対応)とからなる加法性因子コードブックを予め格納している。加法性因子決定部503は、分類器101から入力された分類情報に対応する加法性因子ベクトル(コードブック506に対応)と加法性因子ベクトル(コードブック507に対応)とを加法性因子コードブックの中から各々選択する。次いで、加法性因子決定部503は、順番決定部502から入力された順番情報に応じて、選択した複数の加法性因子ベクトルのうち、2段目のベクトル量子化に用いる加法性因子ベクトルを第1加法性因子ベクトルとして加算器504に出力し、3段目のベクトル量子化に用いる加法性因子ベクトルを第2加法性因子ベクトルとして加算器509に出力する。換言すると、加法性因子決定部503は、2段目および3段目のベクトル量子化に用いるコードブック(コードブック506または507)の使用順番に応じて、各コードブックに対応する加法性因子ベクトルを加算器504および加算器509にそれぞれ出力する。
加算器504は、加算器104から入力された第1残差ベクトルと、加法性因子決定部503から入力された第1加法性因子ベクトルとの差を求め、求めた差のベクトルを加算器508に出力する。
スイッチ505は、順番決定部502から入力された順番情報に従って、コードブック506およびコードブック507のうち、2段目のベクトル量子化で用いるコードブック(2番目のコードブック)、および、3段目のベクトル量子化で用いるコードブック(3番目のコードブック)を各々選択し、選択したコードブックの出力端子を加算器508または加算器510の一方に接続する。
コードブック506は、誤差最小化部501からの指示により、指示されたコードベクトルをスイッチ505に出力する。
コードブック507は、誤差最小化部501からの指示により、指示されたコードベクトルをスイッチ505に出力する。
加算器508は、加算器504から入力される、第1加法性因子ベクトルが減算された第1残差ベクトルと、スイッチ505から入力される第2コードベクトルとの差を求め、求めた差を第2残差ベクトルとして加算器509と誤差最小化部501とに出力する。
加算器509は、加算器508から入力された第2残差ベクトルと、加法性因子決定部503から入力された第2加法性因子ベクトルとの差を求め、求めた差のベクトルを加算器510に出力する。
加算器510は、加算器509から入力される、第2加法性因子ベクトルが減算された第2残差ベクトルと、スイッチ505から入力される第3コードベクトルとの差を求め、求めた差のベクトルを第3残差ベクトルとして誤差最小化部501に出力する。
次に、量子化対象となる広帯域LSPベクトルの次数がR次である場合を例にとって、LSPベクトル量子化装置500が行う動作について説明する。なお、以下の説明では、広帯域LSPベクトルをLSP(i)(i=0,1,…,R−1)と記す。
誤差最小化部501は、d1’=0からd1’=D1−1までのd1’の値を順次第1コードブック103に指示し、d1’=0からd1’=D1−1までのd1’それぞれに対して、加算器104から入力される第1残差ベクトルErr_1(d1’)(i)(i=0,1,…,R−1)を下記の式(19)に従って二乗し、二乗誤差Errを求める。
誤差最小化部501は、二乗誤差Errが最小となる第1コードベクトルのインデックスd1’を第1インデックスd1_minとして記憶する。
順番決定部502は、分類情報mに対応する順番情報Ord(m)を順番情報コードブックの中から選択し、加法性因子決定部503およびスイッチ505に出力する。ここでは、順番情報Ord(m)の値が「0」である場合、2段目のベクトル量子化にコードブック506を用いて、3段目のベクトル量子化にコードブック507を用いる。また、順番情報Ord(m)の値が「1」である場合、2段目のベクトル量子化にコードブック507を用いて、3段目のベクトル量子化にコードブック506を用いる。
加法性因子決定部503は、分類情報mに対応する加法性因子ベクトル(コードブック506に対応)Add1(m)(i)(i=0,1,…,R−1)、および、加法性因子ベクトル(コードブック507に対応)Add2(m)(i)(i=0,1,…,R−1)を加法性因子コードブックの中から選択する。そして、加法性因子決定部503は、順番決定部502から入力される順番情報Ord(m)の値が「0」である場合、加法性因子ベクトルAdd1(m)(i)を第1加法性因子ベクトルとして加算器504に出力し、加法性因子ベクトルAdd2(m)(i)を第2加法性因子ベクトルとして加算器509に出力する。一方、加法性因子決定部503は、順番決定部502から入力される順番情報Ord(m)の値が「1」である場合、加法性因子ベクトルAdd2(m)(i)を第1加法性因子ベクトルとして加算器504に出力し、加法性因子ベクトルAdd1(m)(i)を第2加法性因子ベクトルとして加算器509に出力する。
加算器504は、下記の式(20)に従って、加算器104から入力される第1残差ベクトルErr_1(d1_min)(i)(i=0,1,…,R−1)から、加法性因子決定部503から入力される第1加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を減じ、得られるAdd_Err_1(d1_min)(i)を加算器508に出力する。ここで、第1加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)は、加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)および加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)のいずれか一方である。
スイッチ505は、順番決定部502から入力される順番情報Ord
(m)に応じて、コードブックの出力端子と加算器の入力端子とを接続する。例えば、スイッチ505は、順番情報Ord
(m)の値が「0」である場合、コードブック506の出力端子を加算器508の入力端子に接続した後、コードブック507の出力端子を加算器510の入力端子に接続する。これにより、スイッチ505は、コードブック506を構成するコードベ
クトルを第2コードベクトルとして加算器508に出力し、コードブック507を構成するコードベクトルを第3コードベクトルとして加算器510に出力する。一方、スイッチ505は、順番情報Ord
(m)の値が「1」である場合、コードブック507の出力端子を加算器508の入力端子に接続した後、コードブック506の出力端子を加算器510の入力端子に接続する。これにより、スイッチ505は、コードブック507を構成するコードベクトルを第2コードベクトルとして加算器508に出力し、コードブック506を構成するコードベクトルを第3コードベクトルとして加算器510に出力する。
コードブック506は、コードブックを構成する各コードベクトルCODE_2(d2)(i)(d2=0,1,…,D2−1、i=0,1,…,R−1)の中から、誤差最小化部501からの指示d2’により指示されたコードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)をスイッチ505に出力する。ここで、D2はコードブック506のコードベクトルの総数であり、d2はコードベクトルのインデックスである。コードブック506は、d2’=0からd2’=D2−1までd2’の値を誤差最小化部501から順次指示される。
コードブック507は、コードブックを構成する各コードベクトルCODE_3(d3)(i)(d3=0,1,…,D3−1、i=0,1,…,R−1)の中から、誤差最小化部501からの指示d3’により指示されたコードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)をスイッチ505に出力する。ここで、D3はコードブック507のコードベクトルの総数であり、d3はコードベクトルのインデックスである。コードブック507は、d3’=0からd3’=D3−1までd3’の値を誤差最小化部501から順次指示される。
加算器508は、加算器504から入力される、第1加法性因子ベクトルが減じられた第1残差ベクトルAdd_Err_1(d1_min)(i)(i=0,1,…,R−1)と、スイッチ505から入力される第2コードベクトルCODE_2nd(i)(i=0,1,…,R−1)との差を下記の式(21)に従って求め、この差を第2残差ベクトルErr_2(i)(i=0,1,…,R−1)として誤差最小化部501に出力する。また、加算器508は、d2’=0からd2’=D2−1までのd2’、または、d3’=0からd3’=D3−1までのd3’それぞれに対応する第2残差ベクトルErr_2(i)(i=0,1,…,R−1)のうち、誤差最小化部501の探索により最小となると分かった第2残差ベクトルを加算器509に出力する。ここで、式(21)に示すCODE_2nd(i)(i=0,1,…,R−1)は、コードベクトルCODE_2(d2’)(i)(i=0,1,…,R−1)およびコードベクトルCODE_3(d3’)(i)(i=0,1,…,R−1)のいずれか一方である。
ここで、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’の値をコードブック506に順次指示するか、または、d3’=0からd3’=D3−1までのd3’の値をコードブック507に順次指示する。また、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’、または、d3’=0からd3’=D3−1までのd3’それぞれに対して、加算器508から入力される第2残差ベクトルErr_2(i)(i=0,1,…,R−1)を下記の式(22)に従って二乗し、二乗誤差Errを求める。
誤差最小化部501は、二乗誤差Errが最小となるコードベクトルCODE_2
(d2’)のインデックスd2’を第2インデックスd2_minとして記憶するか、または、二乗誤差Errが最小となるコードベクトルCODE_3
(d3’)のインデックスd3’を第3インデックスd3_minとして記憶する。
加算器509は、下記の式(23)に従って、加算器508から入力される第2残差ベクトルErr_2(i)(i=0,1,…,R−1)から、加法性因子決定部503から入力される第2加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)を減じ、得られるAdd_Err_2(i)を加算器510に出力する。ここで、第2加法性因子ベクトルAdd(m)(i)(i=0,1,…,R−1)は、加法性因子ベクトルAdd1(m)(i)(i=0,1,…,R−1)および加法性因子ベクトルAdd2(m)(i)(i=0,1,…,R−1)のいずれか一方である。
加算器510は、加算器509から入力される、第2加法性因子ベクトルが減じられた第2残差ベクトルAdd_Err_2(i)(i=0,1,…,R−1)と、スイッチ505から入力される第3コードベクトルCODE_3rd(i)(i=0,1,…,R−1)との差を下記の式(24)に従って求め、この差を第3残差ベクトルErr_3(i)(i=0,1,…,R−1)として誤差最小化部501に出力する。ここで、式(24)に示すCODE_3rd(i)(i=0,1,…,R−1)は、コードベクトルCODE_2
(d2’)(i)(i=0,1,…,R−1)およびコードベクトルCODE_3
(d3’)(i)(i=0,1,…,R−1)のいずれか一方である。
ここで、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’の値をコードブック506に順次指示するか、または、d3’=0からd3’=D3−1までのd3’の値をコードブック507に順次指示する。また、誤差最小化部501は、d2’=0からd2’=D2−1までのd2’、または、d3’=0からd3’=D3−1までのd3’それぞれに対して、加算器510から入力される第3残差ベクトルErr_3(i)(i=0,1,…,R−1)を下記の式(25)に従って二乗し、二乗誤差Errを求める。
誤差最小化部501は、二乗誤差Errが最小となるコードベクトルCODE_2
(d2’)のインデックスd2’をインデックスd2_minとして記憶するか、または、二乗誤差Errが最小となるコードベクトルCODE_3
(d3’)のインデックスd3’をインデックスd3_minとして記憶する。
図12A〜Cは、本実施の形態に係るLSPベクトル量子化の効果を概念的に説明する
ための図である。ここで、図12Aは、コードブック506(図11)を構成するコードベクトルの集合を示し、図12Bは、コードブック507(図11)を構成するコードベクトルの集合を示す。本実施の形態では、狭帯域LSPの種類に対応するように2段目以降のベクトル量子化で用いるコードブックの使用順番を決定する。例えば、狭帯域LSPの種類に従って、図12Aに示すコードブック506および図12Bに示すコードブック507のうち、コードブック507が2段目のベクトル量子化に用いるコードブックとして選択されたとする。ここで、図12Cの左側に示す1段目のベクトル量子化誤差(第1残差ベクトル)の分散は狭帯域LSPの種類によって異なる。そのため、本実施の形態によれば、図12Cに示すように、第1残差ベクトルの集合の分散と、狭帯域LSPの種類に従って選択されたコードブック(コードブック507)を構成するコードベクトルの集合の分散とを一致させることができる。このように、2段目のベクトル量子化では、第1残差ベクトルの分散に適応したコードベクトルを用いるため、2段目のベクトル量子化の性能を向上することができる。
このように、本実施の形態によれば、LSPベクトル量子化装置は、広帯域LSPベクトルとの相関を有する狭帯域LSPベクトルの種類により2段目以降のベクトル量子化に用いるコードブックの使用順番を決定し、使用順番に従ったコードブックを用いて2段目以降のベクトル量子化を行う。これにより、2段目以降のベクトル量子化では、前段のベクトル量子化誤差(第1残差ベクトル)の統計的な分散に応じたコードブックを用いることができる。よって、本実施の形態によれば、実施の形態2と同様、量子化精度を向上させることができ、さらに、各段のベクトル量子化において残差ベクトルの収束をより速めることができ、ベクトル量子化全体の性能を向上させることができる。
なお、本実施の形態では、2段目以降のベクトル量子化に用いるコードブックの使用順番が、順番決定部502に含まれる順番情報コードブックに格納された複数の順番情報の中から選択された順番情報に基づいて決定される場合について説明した。しかし、本発明では、コードブックの使用順番は、LSPベクトル量子化装置500の外部から順番決定用の情報を入力して決定してもよく、あるいは、LSPベクトル量子化装置500内(例えば、順番決定部502の内部)において計算等により生成した情報を用いて決定してもよい。
また、本実施の形態に係るLSPベクトル量子化装置500に対応するLSPベクトル逆量子化装置を構成することも可能である(図示せず)。この場合のLSPベクトル量子化装置とLSPベクトル逆量子化装置との構成上の対応は、実施の形態1または実施の形態2と同様である。すなわち、この場合のLSPベクトル逆量子化装置は、LSPベクトル量子化装置500で生成された符号化データを入力して符号分離部にて分離し、各インデックスを、それぞれ対応するコードブックに入力する構成となる。これにより、復号の際には、量子化精度が高い符号化情報を用いてベクトル逆量子化することができるため、高品質な復号信号を生成することができる。なお、この場合のLSPベクトル逆量子化装置は、LSPベクトル量子化装置500において出力される符号化データを復号するとしたが、本発明はこれに限定されず、このLSPベクトル逆量子化装置で復号可能な形式の符号化データであれば、このLSPベクトル逆量子化装置で受信して復号することが可能であることは言うまでもない。
また、実施の形態1と同様、本実施の形態に係るLSPベクトル量子化装置およびLSPベクトル逆量子化装置を、音声信号や楽音信号等を符号化/復号するCELP符号化装置/CELP復号装置に用いることが可能であることは言うまでもない。
以上、本発明の各実施の形態について説明した。
なお、本発明に係るベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法は、上記各実施の形態に限定されず、種々変更して実施することが可能である。
たとえば、上記実施の形態では、ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法において、音声信号または楽音信号を対象として説明したが、その他の可能な信号に適用しても良い。
また、LSPは、LSF(Line Spectral Frequency)と呼ばれることもあり、LSPをLSFと読み替えてもよい。また、LSPの代わりにISP(Immittance Spectrum Pairs)をスペクトルパラメータとして量子化する場合はLSPをISPに読み替え、ISP量子化/逆量子化装置として本実施の形態を利用することができる。LSPの代わりにISF(Immittance Spectrum Frequency)をスペクトルパラメータとして量子化する場合はLSPをISFに読み替え、ISF量子化/逆量子化装置として本実施の形態を利用することができる。
また、本発明に係るベクトル量子化装置およびベクトル逆量子化装置は、音声や楽音等の伝送を行う移動体通信システムにおける通信端末装置や基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置や基地局装置を提供することができる。
また、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るベクトル量子化方法およびベクトル逆量子化方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るベクトル量子化装置およびベクトル逆量子化装置と同様の機能を実現することができる。
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部または全てを含むように1チップ化されても良い。
また、ここではLSIとしたが、集積度の違いによって、IC、システムLSI、スーパーLSI、ウルトラLSI等と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
2008年1月16日出願の特願2008−007255、2008年5月30日出願の特願2008−142442および2008年11月28日出願の特願2008−304660の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。