(57)【特許請求の範囲】
【請求項１】
入力オーディオ信号に対して時間軸／周波数軸変換を行う工程と、
上記時間軸／周波数軸変換により得られた周波数軸上の係数のビット割当に応じてスカラ量子化とベクトル量子化とを制御して上記係数の量子化を行う量子化工程とを有する信号符号化方法であって、
上記量子化工程は、上記ビット割当の割当ビット数が所定の閾値以上の係数についてスカラ量子化を施し、
上記量子化工程は、上記スカラ量子化により量子化された係数については該係数に対する重みを０にしてベクトル量子化を施し、ベクトル量子化出力の内の上記スカラ量子化により量子化された係数に対応する出力を無効にして上記スカラ量子化の出力と置き換えて出力する、または、
上記量子化工程は、上記スカラ量子化により量子化された係数については該係数の量子化誤差をベクトル量子化への入力とし、ベクトル量子化出力と上記スカラ量子化の出力とを加算して出力する
ことを特徴とする信号符号化方法。
【請求項２】
上記ベクトル量子化は、入力ベクトルを複数のサブベクトルに分割した上で行い、それぞれのサブベクトルに対するビット割当により複数の符号帳を切り換えて使用することを特徴とする請求項１記載の信号符号化方法。
【請求項３】
予め特徴抽出により正規化した時間軸信号を入力信号として上記時間軸／周波数軸変換を行い、この正規化の際のパラメータを用いて上記割当ビットを計算することを特徴とする請求項１記載の信号符号化方法。
【請求項４】
上記ベクトル量子化は、入力ベクトルをインターリーブして得られる複数のサブベクトルに対して行うことを特徴とする請求項１記載の信号符号化方法。
【請求項５】
入力オーディオ信号に対して時間軸／周波数軸変換を行う時間軸／周波数軸変換手段と、
上記時間軸／周波数軸変換により得られた周波数軸上の係数のビット割当を求めるビット割当手段と、
このビット割当に応じてスカラ量子化とベクトル量子化とを制御して上記係数の量子化を行う量子化手段とを有し、
上記量子化手段は、上記ビット割当の割当ビット数が所定の閾値以上の係数についてスカラ量子化を施し、
上記量子化手段は、上記スカラ量子化により量子化された係数については該係数に対する重みを０にしてベクトル量子化を施し、ベクトル量子化出力の内の上記スカラ量子化により量子化された係数に対応する出力を無効にして上記スカラ量子化の出力と置き換えて出力する、または、
上記量子化手段は、上記スカラ量子化により量子化された係数については該係数の量子化誤差をベクトル量子化への入力とし、ベクトル量子化出力と上記スカラ量子化の出力とを加算して出力すること
を特徴とする信号符号化装置。
【請求項６】
入力オーディオ信号に対して特徴抽出により正規化した時間軸信号を上記時間軸／周波数軸変換に送る正規化手段をさらに有し、
上記ビット割当手段は、上記正規化手段での正規化の際のパラメータを用いて上記割当ビットを計算すること
を特徴とする請求項５記載の信号符号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力信号を時間軸／周波数軸変換して量子化を行う信号符号化方法及び装置に関し、特に、オーディオ信号を高能率符号化する場合に好適な信号符号化方法及び装置に関する。
【０００２】
【従来の技術】
従来において、オーディオ信号（音声信号や音響信号を含む）の時間領域や周波数領域における統計的性質と人間の聴感上の特性を利用して信号圧縮を行うような符号化方法が種々知られている。この符号化方法としては、大別して時間領域での符号化、周波数領域での符号化、分析合成符号化等が挙げられる。
【０００３】
【発明が解決しようとする課題】
ところで、オーディオ信号、特に音響信号あるいは楽音信号を対象とした符号化では、従来において、量子化効率よりはむしろ音質を重視するため、スカラ量子化による量子化が一般的であり、そのため符号のビットレートの下限は比較的高いものとなっている。
【０００４】
しかしながら、通信等のメディアの急速なマルチメディア化の中で、音質の劣化を抑えながらさらに低レートの符号化技術が要求されている。
【０００５】
このため、ベクトル量子化の導入が必要とされるが、ベクトル量子化においては、オーディオ信号のスペクトルに現れるいくつかのピーク部分、いわゆる孤立スペクトルの再現性が悪く、さらなる改善が望まれている。
【０００６】
本発明は、このような実情に鑑みてなされたものであり、ベクトル量子化による低レート化を実現しながら、孤立スペクトル等の再現性を高め、音質の向上も図り得るような信号符号化方法及び装置の提供を目的とする。
【０００７】
【課題を解決するための手段】
本発明は、上述の課題を解決するために、入力オーディオ信号に対して時間軸／周波数軸変換を行う工程と、上記時間軸／周波数軸変換により得られた周波数軸上の係数のビット割当に応じてスカラ量子化とベクトル量子化とを制御して上記係数の量子化を行う量子化工程とを有する信号符号化方法であって、上記量子化工程は、上記ビット割当の割当ビット数が所定の閾値以上の係数についてスカラ量子化を施し、上記量子化工程は、上記スカラ量子化により量子化された係数については該係数に対する重みを０にしてベクトル量子化を施し、ベクトル量子化出力の内の上記スカラ量子化により量子化された係数に対応する出力を無効にして上記スカラ量子化の出力と置き換えて出力する、または、上記量子化工程は、上記スカラ量子化により量子化された係数については該係数の量子化誤差をベクトル量子化への入力とし、ベクトル量子化出力と上記スカラ量子化の出力とを加算して出力することを特徴としている。
【０００８】
また、本発明は、上述の課題を解決するために、入力オーディオ信号に対して時間軸／周波数軸変換を行う時間軸／周波数軸変換手段と、上記時間軸／周波数軸変換により得られた周波数軸上の係数のビット割当を求めるビット割当手段と、このビット割当に応じてスカラ量子化とベクトル量子化とを制御して上記係数の量子化を行う量子化手段とを有し、上記量子化手段は、上記ビット割当の割当ビット数が所定の閾値以上の係数についてスカラ量子化を施し、上記量子化手段は、上記スカラ量子化により量子化された係数については該係数に対する重みを０にしてベクトル量子化を施し、ベクトル量子化出力の内の上記スカラ量子化により量子化された係数に対応する出力を無効にして上記スカラ量子化の出力と置き換えて出力する、または、上記量子化手段は、上記スカラ量子化により量子化された係数については該係数の量子化誤差をベクトル量子化への入力とし、ベクトル量子化出力と上記スカラ量子化の出力とを加算して出力することを特徴としている。
【００１１】
上記ベクトル量子化は、入力ベクトルを複数のサブベクトルに分割した上で行い、それぞれのサブベクトルに対するビット割当により複数の符号帳を切り換えて使用することが挙げられる。
【００１２】
また、予め特徴抽出により正規化した時間軸信号を入力信号として上記時間軸／周波数軸変換を行い、この正規化の際のパラメータを用いて上記割当ビットを計算することが好ましい。
【００１３】
さらに、上記ベクトル量子化は、入力ベクトルをインターリーブして得られる複数のサブベクトルに対して行うようにしてもよい。
【００１４】
ベクトル量子化では再現性の悪い周波数軸上の係数についてはスカラ量子化により量子化することができる。
【００１５】
【発明の実施の形態】
以下、本発明に係る実施の形態について、図面を参照しながら説明する。
図１は、本発明に係る実施の形態となる信号符号化装置の概略構成を示すブロック図である。
【００１６】
この図１において、入力端子１００には時間軸上の波形信号、例えばディジタルオーディオ信号が入力される。具体的には、例えばサンプリング周波数Ｆs が１６ｋHzで０〜８ｋHz程度のいわゆる広帯域音声信号が挙げられるが、これに限定されるものではない。
【００１７】
入力端子１００からの入力信号は、正規化回路１０１に送られる。この正規化回路１０１は、白色化回路とも呼ばれ、入力された時間波形信号の特徴を抽出して予測残差を取り出すような白色化を行うものである。時間波形の白色化は、線形若しくは非線形の予測により行うことができ、例えばＬＰＣ（線形予測符号化：Linear Predictive Coding）及びピッチ分析により入力時間波形信号を白色化することができる。
【００１８】
この正規化回路１０１からの白色化された時間波形信号は、時間軸／周波数軸変換（Ｔ／Ｆ mapping）回路１０２に送られて、周波数軸の信号に変換される。このＴ／Ｆ変換としては、例えばＤＣＴ（離散コサイン変換：Discrete Cosine Transform） 、ＭＤＣＴ（改良ＤＣＴ：Modified Discrete Cosine Transform）、ＦＦＴ（高速フーリエ変換：Fast Fourier Transform）等の直交変換が多く用いられる。Ｔ／Ｆ変換回路１０２から得られたＭＤＣＴ係数あるいはＦＦＴ係数等のパラメータは、量子化手段であるＳＱ（スカラ量子化）及びＶＱ（ベクトル量子化）回路１０３に送られて、ＳＱ及びＶＱが併用して行われる。このＴ／Ｆ変換されて得られるフレーム毎の係数をＮ次元ベクトルｙとするとき、この係数ベクトルｙ＝（y(0),y(1),...,y(N-1)）t の効率的な量子化のためには、各係数に対する量子化のビット割当（ビットアロケーション）を決定する必要がある。このビット割当は、聴覚マスキングモデル、あるいは簡便には上記正規化回路１０１での白色化の際に得られるＬＰＣ係数等のパラメータ、及び上記係数ｙから計算される量ｐ(i) から求められる。このｐ(i) を、以下ビットアロケーション決定指標あるいはビット割当決定指標という。ビット割当決定指標ｐ(i) の具体例については後述する。
【００１９】
ビット割当回路１０４では、正規化回路１０１で得られた上記パラメータや、Ｔ／Ｆ変換回路１０２からの係数ｙに基づいて割当ビットを計算する。一般的に、ｉ番目の係数に対するビットアロケーションすなわち割当ビットba(i) は、上記ビット割当決定指標ｐ(i) を用いて、
ｂａ(i) ＝ log2(ｐ(i)) ＋ ｑ
により表せる。この式中で、ｑは一般化のための補正量を表す。１フレーム内の係数量子化のために許容される総ビット数Ｂは、一定値又は一定に近い値とする必要があるため、上記補正量ｑは次のように定まる。
【００２０】
【数１】
0003684751.tif 000002
【００２１】
このようにして求められた各係数に対する割当ビットba(i) に基づいて、ＳＱ及びＶＱの併用状態を制御する。具体的には、例えば、割当ビットの所定の閾値ｂSQを予め決定しておき、
ba(i) ≧ ｂSQ ならばＳＱ（スカラ量子化）
ba(i) ＜ ｂSQ ならばＶＱ（ベクトル量子化）
の条件によりＳＱとＶＱとを選択制御することが挙げられる。
【００２２】
上記割当ビットba(i) は整数ではないので、通常のスカラ量子化ではそのままの割当ビットで量子化できないため、ba(i) から計算される整数値ｆ(ba(i)) を量子化ビットとしてスカラ量子化する。ｆ(x) の一例として次のものが挙げられる。ここで rint(x)は、ｘに最も近い整数を与える関数である。
【００２３】
【数２】
0003684751.tif 000003
【００２４】
この式中のｂSQ，ｂhighの値としては、例えばｂSQ＝２，ｂhigh＝４が挙げられるが、これに限定されるものではない。
【００２５】
このようにして、割当ビット数の整数化を行った場合、最終的なフレーム内の必要ビットは上記補正量ｑによる調整では大幅なずれが生じるため、
【００２６】
【数３】
0003684751.tif 000004
【００２７】
がなるべくＢに近くなるようなｑ’をｑの近傍でサーチし、このｑ’により最終的な係数毎の割当ビットba'(i)を決定する。
【００２８】
ビット割当回路１０４ではこのようなba'(i)を求めて、ＳＱ及びＶＱ回路１０３に送り、ＳＱ及びＶＱ回路１０３ではこの割当ビットba'(i)に基づいてＳＱ，ＶＱを制御する。具体的には、上述したように、所定の閾値以上の係数に対してＳＱ（スカラ量子化）を行い、それ以外の係数に対してＶＱ（ベクトル量子化）を行うことが挙げられる。このとき、全ての係数からＳＱ済みの係数を除外した係数に対してＶＱを行うようにすると、ＳＱ対象の係数の数がフレーム毎に変化するような場合に、ＶＱの次元数がフレーム毎に変化することになるため、ＶＱの次元数を全ての係数の個数Ｎに固定化することが好ましい。例えば、量子化の対象ベクトルとなる全ての係数の内で、既にＳＱにより量子化済みのものがある場合には、その係数に対する重みを０にしてベクトル量子化し、また、ＶＱ出力において、その係数に対する結果を無効にし、ＳＱ出力と置き換えることで実現できる。このとき、量子化対象ベクトルを複数のサブベクトルに分割して各サブベクトルに対してＶＱを行うようにし、各サブベクトルに対する割当ビット数により複数のコードブックを切り換えて使用することが好ましい。
【００２９】
また、ビット割当回路１０４では、ＳＱ及びＶＱ回路１０３でのＶＱ（ベクトル量子化）の際の聴覚重み付けのための重みｗ(i) を計算して、ＳＱ及びＶＱ回路１０３に送っている。この重みｗ(i) については後述する。
【００３０】
ＳＱ及びＶＱ回路１０３からの出力インデクスは、出力端子１０５より取り出され、また正規化回路１０１からの上記ＬＰＣ係数やピッチ等のパラメータは、出力端子１０６より取り出される。
【００３１】
この図１の信号符号化装置は、ハードウェア構成として示しているが、いわゆるＤＳＰ（ディジタル信号プロセッサ）等を用いてソフトウェア的に実現することも可能である。この場合の信号符号化の際の処理手順の一例を図２のフローチャートに示す。この図２及び上記図１を参照しながら、本実施の形態の一具体例をより詳細に説明する。
【００３２】
この図２において、ステップＳ１では上記正規化回路１０１に対応する正規化処理を行い、上述したように白色化を行う。ここではＬＰＣ（線形予測符号化：Linear Predictive Coding）及びピッチ分析による白色化について説明する。
【００３３】
入力信号としての時間波形信号ｘ(n) は、ハミング窓等の適当な時間窓関数により窓掛けをされた後、ＬＰＣ係数の抽出が行われる。ＬＰＣ係数は、ＬＳＰパラメータに変換された後、量子化され、補間される。この量子化済みのＬＳＰパラメータを再びＬＰＣ係数に戻し、ＬＰＣ逆フィルタを構成する。入力時間波形信号ｘ(n) は、このＬＰＣ逆フィルタを介すことにより正規化（normarize） あるいは白色化され、ＬＰＣ残差ｒ1(n)が得られる。ここで、フレームサイズをＮとするとき、１フレーム過去のＬＰＣ残差ｒ1'(n) を用いてｒ1(n)の定義域を０≦ｎ＜Ｎから−Ｎ≦ｎ＜Ｎと拡張し、ｎ＜０の領域では、
ｒ1(n) ＝ ｒ1'(n+N)
と定義し、このｒ1(n)を用いてピッチを計算する。ピッチゲインはピッチの１点に対する分析によるものでもよいが、この具体例では、ピッチ（周期、いわゆるピッチラグ）及びピッチゲインの精度を高めるために、ピッチの中心ｐとその前後の２点ｐ±１でのピッチゲインｇ0，ｇ1，ｇ-1を計算している。これは、
【００３４】
【数４】
0003684751.tif 000005
【００３５】
を最小化するｋをピッチｐとし、これを中心とする３点のピッチゲインから成るピッチゲインベクトルをｇ＝（ｇ-1,ｇ0,ｇ1）とするものである。
【００３６】
このピッチｐ及びピッチゲインベクトルｇを量子化して得られる量子化済ピッチゲインベクトルQ(g)を用いてピッチ逆フィルタを構成し、これによりさらにＬＰＣ残差ｒ1(n)を正規化し、ｒ2(n)を得る。この正規化されたＬＰＣ残差ｒ2(n)が上記Ｔ／Ｆ変換回路１０２の入力となる。
【００３７】
ステップＳ２では、時間軸波形であるＬＰＣ残差ｒ2(n)をＴ／Ｆ（時間軸／周波数軸）変換する。このＴ／Ｆ変換には例えばＭＤＣＴが用いられる。
【００３８】
ステップＳ３では、図１のビット割当回路１０４に対応するビット割当（ビットアロケーション）の計算が行われる。このビット割当は、例えば聴覚マスキングモデル、あるいは簡便には上記正規化（白色化）の際に得られるＬＰＣ係数等のパラメータ、及び上記係数ｙから計算されるビット割当決定指標ｐ(i) に基づいて求められることは上述した通りである。また、このステップＳ３では、後段のＶＱ（ベクトル量子化）の際の聴覚重み付けのための重みｗ(i) の計算も行っている。
【００３９】
先ず、上記ビット割当決定指標ｐ(i) について説明する。
上記正規化（白色化）の際に得られた量子化済ＬＰＣ係数Q(αi)（ｉは例えば１≦ｉ≦１０とする。）、ピッチｐ、量子化済ピッチゲインベクトルQ(g)を用いて、ＬＰＣ合成フィルタ及びピッチ合成フィルタを構成する。これらのフィルタの伝達関数Ｈ(z) 及びＰ(z) は、次のように表される。
【００４０】
【数５】
0003684751.tif 000006
【００４１】
また、関数Ｈ(z) 及びＰ(z) の各周波数応答ｈ(i) 及びpch(i)を求めておく。ここでｉは周波数軸上の各ポイントに対応する。さらに、上記Ｔ／Ｆ変換後の係数について、これを臨界帯域幅（バーク）毎に、あるいは臨界帯域幅をさらに細かくブロック分けし、ｊ番目のブロックのピーク値Ｐb(j)を取り出して量子化した上で、その量子化値Q(Pb(j))をそのブロックの正規化ファクタ（normalize factor）として使用する。従って、周波数軸上の総合的な正規化ファクタである上記ビット割当決定指標ｐ(i) は、
ｐ(i) ＝ ｈ(i)pch(i)Q(Pb(j))      （ｉ∈ block ｊ）
と表せる。
【００４２】
次に重み付けに関しては、先ずＬＰＣ及びピッチ聴覚重み付けフィルタを構成する。これらのフィルタの伝達関数Ｗ1(z)，Ｗ2(z)は、例えば次のように表される。
【００４３】
【数６】
0003684751.tif 000007
【００４４】
この式中の各定数γ1 ，γ2 ，λの一例としては、γ1＝０．５ ，γ2＝０．８ ，λ＝０．７を挙げることができるが、これらに限定されるものではない。
【００４５】
上記重みｗ(i) は、上記関数Ｗ1(z)，Ｗ2(z)の周波数応答ｗ1(i)，ｗ2(i)と、さらにQ(Pb(j))をなまらせた形であるQ(P'b(j)) とを用い、
ｗ(i) ＝ ｗ1(i)ｗ2(i)Q(P'b(j))      （ｉ∈ block ｊ）
として重みｗ(i) を求める。上記Q(P'b(j)) としては、例えば
Q(P'b(j)) ＝ （Q(Pb(j))）r        （０＜ｒ＜１）
を用いることができるが、これに限定されない。
【００４６】
次に、図２のステップＳ４あるいは図１のＳＱ及びＶＱ回路１０３でのスカラ及びベクトル量子化について、図３を参照しながら説明する。
【００４７】
図３の入力端子２１には、量子化の対象となる上記Ｔ／Ｆ変換されたＮ本の係数から成る係数ベクトルｙ＝（y(0),y(1),...,y(N-1)）t が供給される。これらのＮ本の係数の内、ＳＱ（スカラ量子化）の対象となる係数のインデクスの集合をＩSQ、ＶＱ（ベクトル量子化）の対象となる係数のインデクスの集合をＩVQとする。すなわち、量子化対象となる全ての係数のインデクスをＩSQとＩVQとに分離することであり、
［０ ... N-1］ ＝ ＩSQ∪ＩVQ ，ＩSQ∩ＩVQ ＝ ０
である。このＳＱとＶＱとの選択は、図３のＳＱ／ＶＱ選択部２２において、上記ビット配分ba'(i)に基づいて行われることは前述した通りである。
【００４８】
先ず、ｉ∈ＩSQについて、スカラ量子化を行う。スカラ量子化の符号帳（コードブック）は１つでも複数でもよいが、本具体例では量子化ビット数がそれぞれ２，３，４ビットのコードブックＳ2，Ｓ3，Ｓ4 を使用しており、どれを用いるかは上記ビット配分ba'(i)に基づいてＳＱコードブック選択部２４により決定される。ＳＱ（スカラ量子化）部２５により量子化された出力Q(y(i)) は、０≦ｊ＜２ba'(j)において、｜ｙ(i)−Ｓba'(i)(j)｜2 を最小にするｊ＝SQindex を用いて、
ｙ(i)＝Ｓba'(i)(SQindex)
で与えられる。ＳＱで得られた量子化結果をまとめてＮ次元ベクトルｙSQを作る。このベクトルのｉ番目（０≦ｉ＜Ｎ）の要素ｙSQ(i) は、次の通りである。
【００４９】
【数７】
0003684751.tif 000008
【００５０】
次にベクトル量子化（ＶＱ）について説明する。上記インデクス集合ＩVQの要素数は毎フレーム変化するため、これだけをまとめてベクトル量子化しようとすると、次元数の調整が繁雑になり、必要なコードブックも要求される次元数毎に必要となるため、本具体例では、固定次元でＮ本全ての量子化を行う。ただし、既に上記スカラ量子化済みの係数については、ベクトル量子化の重みを０にすることで対処する。
【００５１】
具体的な方法として、先ずＮ本の係数をＭ次元のサブベクトルに分割する。分割方法としては、例えば低域側から単純にＭ次元毎に区切っていくことが挙げられる。得られたＮ／Ｍ個のサブベクトルの内、ｋ番目のサブベクトル
ｙk ＝ （y(kM),y(kM+1),...,y(kM+M-1)）t
について、先に求めてある重みベクトルも同じように分割し、ｗk を作る。ただし、ｗk のｊ番目の要素ｗk(j)は、次のように定める。
【００５２】
【数８】
0003684751.tif 000009
【００５３】
上記ＳＱの場合と同様に、ＶＱの符号帳（コードブック）は、１つでも、複数を切り換えて使用することも可能である。先ず、サブベクトルｙk 全体のビット割当Ｂykを図３のＶＱビット割当計算部２３にて求める。一例として以下のような平均ビット割当が挙げられるが、これに限定されないことは勿論である。
【００５４】
【数９】
0003684751.tif 000010
【００５５】
上記Ｂykが与えられたとき、Ｌ個のコードブック（Ｃ0,Ｃ1,...,ＣL-1） の中のどのコードブックを用いるかのマッピングルールを決めておき、これによりサブベクトルｙk の量子化に使用するコードブックＣr を選択する。このコードブック選択は、図３のＶＱコードブック選択部２６にて行われる。
【００５６】
選択されたコードブックＣr について、ビット配分をＢr とするとき、０≦ｍ＜２Brの範囲で‖Ｗk(yk-Cr(m))‖2を最小とするｍ＝VQindex をサーチすることで、ＶＱ（ベクトル量子化）部２７から、乗算器２８を介して得られる量子化出力Q(yk) は次のように表現できる。
【００５７】
【数１０】
0003684751.tif 000011
【００５８】
乗算器２８では、この式のマトリクスＡをＶＱ部２７からの出力に対して乗算している。
【００５９】
ベクトル量子化で得られたＭ次元の量子化出力Q(yk) （０≦ｋ≦ N/M）を上記分割時とは逆に繋ぎ合わせ、Ｎ次元ベクトルQ(y)VQを作り、加算器２９で上記スカラ量子化出力Q(y)SQと足し合わせることにより、Ｎ本の係数ｙに対する最終的な量子化器の出力Q(y)を、
Q(y) ＝ Q(y)SQ ＋ Q(y)VQ
として得ることができる。
【００６０】
ここで留意すべき点は、量子化において重みを決定するパラメータを伝送することにより、エンコーダと同一な動作を復元できるという点であり、すなわち、上記ビット配分ba'(i)のみから、ＳＱ対象の係数インデクス（位置情報）、ＳＱ及びＶＱにおいてどのコードブックを選択するか、を決定できるため、デコーダ側では補助情報なしにエンコーダ出力の解釈、逆量子化が可能である。
【００６１】
次に、図４を参照しながら、上記実施の形態のより具体的な構成例であるオーディオ信号符号装置について説明する。
【００６２】
この図４において、入力端子１０には、例えば、０〜８ｋHz程度のいわゆる広帯域音声信号をサンプリング周波数Ｆs ＝１６ｋHzでＡ／Ｄ変換したディジタルオーディオ信号が供給されている。この入力信号は、ＬＰＣ分析・量子化部３０により、例えば１フレーム５１２サンプル程度の分析長によりハミング窓かけをした上で、１０次程度のＬＰＣ係数、すなわちαパラメータを算出し、ＬＰＣ逆フィルタ１１によりＬＰＣ残差を求めている。このＬＰＣ分析の際には、分析の単位となる１フレーム５１２サンプルの内の一部サンプルを次のブロックとオーバーラップさせている。このＬＰＣ分析・量子化部３０では、ＬＰＣ係数であるαパラメータをＬＳＰ（線スペクトル対）パラメータに変換して量子化したものを伝送するようにしている。
【００６３】
ＬＰＣ分析回路３２からのαパラメータは、α→ＬＳＰ変換回路３３に送られて、線スペクトル対（ＬＳＰ）パラメータに変換される。これは、直接型のフィルタ係数として求まったαパラメータを、例えば１０個、すなわち５対のＬＳＰパラメータに変換する。変換は例えばニュートン−ラプソン法等を用いて行う。このＬＳＰパラメータに変換するのは、αパラメータよりも補間特性に優れているからである。
【００６４】
α→ＬＳＰ変換回路３３からのＬＳＰパラメータは、ＬＳＰ量子化器３４によりベクトル量子化あるいはマトリクス量子化される。このとき、フレーム間差分をとってからベクトル量子化、あるいは、複数フレーム分をまとめてマトリクス量子化してもよい。
【００６５】
このＬＳＰ量子化器３４からの量子化出力、すなわちＬＳＰベクトル量子化のインデクスは、端子３１を介して取り出され、また量子化済みのＬＳＰベクトルあるいは逆量子化出力は、ＬＳＰ補間回路３６及びＬＳＰ→α変換回路３８に送られる。
【００６６】
ＬＳＰ補間回路３６は、ＬＳＰ量子化器３４で上記フレーム毎にベクトル量子化されたＬＳＰのベクトルの前フレームと現フレームとの組を補間し、後の処理で必要となるレートにするためのものであり、この例では、８倍のレートに補間している。
【００６７】
このような補間が行われたＬＳＰベクトルを用いて入力音声の逆フィルタリングを実行するために、ＬＳＰ→α変換回路３７により、ＬＳＰパラメータを例えば１０次程度の直接型フィルタの係数であるαパラメータに変換する。このＬＳＰ→α変換回路３７からの出力は、上記ＬＰＣ残差を求めるためのＬＰＣ逆フィルタ回路１１に送られ、このＬＰＣ逆フィルタ１１では、８倍のレートで更新されるαパラメータにより逆フィルタリング処理を行って、滑らかな出力を得るようにしている。
【００６８】
また、ＬＳＰ量子化回路３４からの１倍レートのＬＳＰ係数は、ＬＳＰ→α変換回路３８に送られてαパラメータに変換され、上述したようなビット割当を行わせるための割当ビット計算回路１８に送られる。割当ビット計算回路１８では、上記割当ビットba'(i)の他に、ＭＤＣＴ係数の量子化に使用する重みｗ(i) の計算も行うことは上述の通りである。
【００６９】
ＬＰＣ逆フィルタ１１からの出力は、長期予測であるピッチ予測のためのピッチ逆フィルタ１２及びピッチ分析回路１５に送られる。
【００７０】
次に、長期予測について説明する。長期予測は、ピッチ分析により求められたピッチ周期あるいはピッチラグ分だけ時間軸上でずらした波形を元の波形から減算してピッチ予測残差を求めることにより行っており、この例では３点ピッチ予測によって行っている。なお、ピッチラグとは、サンプリングされた時間軸データのピッチ周期に対応するサンプル数のことである。
【００７１】
すなわち、ピッチ分析回路１５では１フレームに１回の割合、すなわち分析長が１フレームでピッチ分析が行われ、ピッチ分析結果の内のピッチラグはピッチ逆フィルタ１２及び出力端子４２に送られ、ピッチゲインはピッチゲインＶＱ回路１６に送られる。ピッチゲインＶＱ回路１６では、上記３点予測に対応する３点でのピッチゲインがベクトル量子化され、コードブックインデクスが出力端子４３より取り出され、代表値ベクトルあるいは逆量子化出力がピッチ逆フィルタ１２に送られる。ピッチ逆フィルタ１２は、上記ピッチ分析結果に基づいて３点ピッチ予測されたピッチ予測残差を出力する。このピッチ予測残差は、直交変換手段である例えばＭＤＣＴ回路１３に送られ、ＭＤＣＴ処理された後、上述したＳＱ及びＶＱ回路２０によりスカラ量子化及び聴覚重み付けベクトル量子化される。バークピーク抽出・量子化回路１７は、上述したように、Ｔ／Ｆ変換であるＭＤＣＴ処理された係数について、臨界帯域幅（バーク）毎、あるいは臨界帯域幅をさらに細かくブロック分けし、各ブロックのピーク値を取り出して量子化するものであり、この量子化値は当該ブロックの正規化ファクタとして割当ビット計算回路１８に送られると共に、出力端子４４を介して取り出される。
【００７２】
ＳＱ及びＶＱ回路２０では、上述したように、割当ビット計算回路１８からのビット割当ba'(i)によりＳＱとＶＱとが選択制御され、ＭＤＣＴ係数の一部に対してスカラ量子化が施され、残りの係数に対して上記ＶＱ重みｗ(i) により聴覚重み付けされたベクトル量子化が施され、その出力であるインデクスは、出力端子４１より取り出される。
【００７３】
ところで、上述した具体例においては、先にスカラ量子化（ＳＱ）された係数以外の係数に対してベクトル量子化（ＶＱ）を行うようにしている（実際にはＳＱされた係数の重みを０にしてＶＱしている）が、既にＳＱ済みの係数の量子化誤差と、予めＶＱの対象となっている係数とをまとめてＶＱするようにしてもよい。
【００７４】
これは、例えばＳＱ済みの係数をq(y)SQとするとき、
ｕ ＝ ｙ−q(y)SQ
となるベクトルｕを作り、このベクトルｕをサブベクトルｕk （＝uk(0),uk(1),...,uk(M-1)） 、すなわち
ｕk(j) ＝ ｙ(kM+j)−Q(y(kM-j))SQ
に分割した上で、上述したＶＱの手順で量子化を行えばよい。このＶＱの際の重みｗk(j)は、単純に、
ｗk(j) ＝ ｗ(kM+j)
としてベクトル量子化を行い、その量子化結果Q(u)から、最終結果Q(y)は、
Q(y) ＝ Q(u)＋Q(y)VQ
として得られる。
【００７５】
以上の説明においては、スカラ量子化を行った後にベクトル量子化を行う例について説明したが、逆に、先に周波数軸上の係数の全てに対してベクトル量子化を施し、その中で量子化誤差の大きいものについて重点的にスカラ量子化を施すようにしてもよい。
【００７６】
すなわち例えば、上記Ｔ／Ｆ変換された周波数軸上の係数ｙを分割して得られるサブベクトルｙk の全てに対して、先ずベクトル量子化を行う。このときの重みｗk(j)は、単純に、
ｗk(j) ＝ ｗ(kM+j)
としてベクトル量子化を行う。この量子化結果を繋ぎ合わせてQ(y)VQを作り、量子化誤差ベクトル
ｅ ＝ ｙ−Q(y)VQ
を作る。ｅの要素において、何らかの方法により、例えば誤差値のソートにより、誤差量の大きいものを所定個数選び出す。あるいは、重みｗからその値の大きい所定個数のものに対応する誤差を選び出す。スカラ量子化では、選択された誤差そのものを量子化する。
【００７７】
ただしこの方法では、どの係数をＳＱしたかの付加情報（side information）を別に伝送することが必要とされる。
【００７８】
なお、本発明は上記実施の形態のみに限定されるものではなく、例えば、上記ベクトル量子化は、与えられた量子化対象ベクトルをインターリーブして複数のサブベクトルに分割し、これらのサブベクトルに対して行うようにしてもよい。これは、ＶＱ対象ベクトルである周波数軸の係数を低域側から順次１個ずつ複数のサブベクトルに振り分けるものであり、１つのサブベクトル内の係数が周波数軸の所定帯域近傍に偏ることがない。
【００７９】
【発明の効果】
以上の説明から明らかなように、本発明によれば、入力信号に対して時間軸／周波数軸変換を行って得られた周波数軸上の係数のビット割当に応じてスカラ量子化とベクトル量子化とを制御して上記係数の量子化を行うことにより、ベクトル量子化による低レート化を図りながら、ベクトル量子化で量子化誤差の生じ易い一部の係数についてはスカラ量子化することで劣化を防止できる。また、ビット割当に応じてスカラ量子化とベクトル量子化との制御を行っているため、別個に付加情報（side information）を送る必要がない。
【００８０】
ここで、周波数軸の係数の割当ビット数が所定の閾値以上の係数についてスカラ量子化を施すことにより、ベクトル量子化では信号劣化が生じていた孤立スペクトル部分をスカラ量子化することで量子化誤差を低減でき、信号品質を高めることができる。
【００８１】
このとき、スカラ量子化により量子化された係数については該係数に対する重みを０にして、全ての係数に対してベクトル量子化を施すことにより、スカラ量子化された係数以外の係数を取り出してベクトル量子化する場合に比較して、ベクトル量子化の次元数を固定でき、ベクトル量子化の際の次元数の調整や次元毎に異なる符号帳が不要となるため、処理の簡略化や構成の簡素化が図れる。これは、スカラ量子化により量子化された係数については該係数の量子化誤差をベクトル量子化への入力とすることでも実現できる。
【００８２】
また、入力ベクトルを複数のサブベクトルに分割した上でベクトル量子化を行うことで、ベクトル量子化の符号帳サイズを小さくでき負担を軽減できる。
【００８３】
さらに、予め特徴抽出により正規化した時間軸信号を入力信号として上記時間軸／周波数軸変換を行い、この正規化の際のパラメータを用いて上記割当ビットを計算することにより、スカラ量子化（ＳＱ）とベクトル量子化（ＶＱ）との選択制御が、正規化の際のパラメータを用いて一意的に決定でき、ＳＱ／ＶＱの制御のための専用の付加情報を伝送する必要がなく、伝送ビットレートの増加を防止できる。
【図面の簡単な説明】
【図１】本発明の実施の形態の概略構成を示すブロック図である。
【図２】本発明の実施の形態の動作を説明するためのフローチャートである。
【図３】ＳＱ（スカラ量子化）及びＶＱ（ベクトル量子化）を行う部分の具体例を示すブロック図である。
【図４】本発明の実施の形態が適用されたオーディオ信号の符号化装置の一例を示すブロック図である。
【符号の説明】
１１  ＬＰＣ逆フィルタ、  １２  ピッチ逆フィルタ、  １３  ＭＤＣＴ回路、  １５  ピッチ分析回路、  １６  ピッチゲインＶＱ回路、  １７  バークピーク抽出・量子化回路、  １８  割当ビット計算回路、  ２２  ＳＱ及びＶＱ選択部、  ２３  ＶＱビット割当計算部、  ２４  ＳＱコードブック選択部、  ２５  ＳＱ（スカラ量子化）部、  ２６  ＶＱコードブック選択部、  ２７  ＶＱ（ベクトル量子化）部、  ２９  加算器、  ３０  ＬＰＣ分析・量子化部、  ３２  ＬＰＣ分析回路、  ３３  α→ＬＳＰ変換回路、  ３４  ＬＳＰ量子化回路、  ３６  ＬＳＰ補間回路、  ３７，３８  ＬＳＰ→α変換回路
【図１】
0003684751.tif 000012
【図２】
0003684751.tif 000013
【図３】
0003684751.tif 000014
【図４】
0003684751.tif 000015