JP3731575B2 - Encoding device and decoding device - Google Patents

Encoding device and decoding device Download PDF

Info

Publication number
JP3731575B2
JP3731575B2 JP2002306411A JP2002306411A JP3731575B2 JP 3731575 B2 JP3731575 B2 JP 3731575B2 JP 2002306411 A JP2002306411 A JP 2002306411A JP 2002306411 A JP2002306411 A JP 2002306411A JP 3731575 B2 JP3731575 B2 JP 3731575B2
Authority
JP
Japan
Prior art keywords
data
unit
pitch
variable number
amplitude
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.)
Expired - Lifetime
Application number
JP2002306411A
Other languages
Japanese (ja)
Other versions
JP2003216189A (en
Inventor
正之 西口
淳 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002306411A priority Critical patent/JP3731575B2/en
Publication of JP2003216189A publication Critical patent/JP2003216189A/en
Application granted granted Critical
Publication of JP3731575B2 publication Critical patent/JP3731575B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To perform conversion of the number of pieces of data while drastically reducing operation quantity in the case of conversion of the number of pieces of data in an encoder. <P>SOLUTION: Non-linear compression is performed to the variable number of pieces of data by every inputted block by a non-linear compression part 12, both ends of a spectrum envelope are expanded by a spectrum envelope expansion part 14, FIR (far infrared) filtering (operation) is performed by an FIR filter 15, linear interpolation is performed by linear interpolation 16 and the data is converted into the fixed number of pieces of sample data. <P>COPYRIGHT: (C)2003,JPO

Description

【0001】
【産業上の利用分野】
本発明は、符号化装置及び復号装置に関し、特に、音声合成分析装置(ボコーダ)等において算出されたスペクトルの振幅データのような可変個数のデータを一定個数のデータに変換するようなデータ数変換を伴う符号化装置及び復号装置に関する。
【0002】
【従来の技術】
オーディオ信号(音声信号や音響信号を含む)の時間領域や周波数領域における統計的性質と人間の聴感上の特性を利用して信号圧縮を行うような符号化方法が種々知られている。この符号化方法としては、大別して時間領域での符号化、周波数領域での符号化、分析合成符号化等が挙げられる。
【0003】
音声信号等の高能率符号化の例として、MBE(Multiband Excitation: マルチバンド励起)符号化、SBE(Singleband Excitation:シングルバンド励起)符号化、ハーモニック(Harmonic)符号化、SBC(Sub-band Coding:帯域分割符号化)、LPC(Linear Predictive Coding: 線形予測符号化)、あるいはDCT(離散コサイン変換)、MDCT(モデファイドDCT)、FFT(高速フーリエ変換)等において、スペクトル振幅やそのパラメータ(LSPパラメータ、αパラメータ、kパラメータ等)のような各種情報データを量子化する場合に、従来においてはスカラ量子化を行うことが多い。
【0004】
【発明が解決しようとする課題】
ところで、ビットレートを例えば3〜4kbps 程度にまで低減し、量子化効率を更に向上させようとすると、スカラ量子化では量子化雑音(歪み)が大きくなってしまい、実用化が困難であった。そこで、これらの符号化の際に得られる時間軸データや周波数軸データやフィルタ係数データ等を個々に量子化せず、複数個のデータを組(ベクトル)にまとめて一つの符号で表現して量子化するベクトル量子化が注目されている。
【0005】
しかしながら、上記MBE、SBE、LPC等のスペクトル振幅データ等は、ピッチに依存して個数が変化するため、そのままベクトル量子化しようとすると可変次元のベクトル量子化が必要となり、構成が複雑化するのみならず、良好な特性を得ることが困難である。
【0006】
また、量子化の前にデータのブロック(フレーム)間差分をとるような場合にも、前後のブロック(フレーム)内のデータの個数が一致していないと、差分をとることができない。このように、可変個数のデータを一定個数に変換することがデータ処理の過程で必要とされることがあるが、特性の良好なデータ数変換が望まれる。
【0007】
そこで、本出願人は、特願平4−92263号特許出願の明細書及び図面において、可変個数のデータを一定個数に変換することができ、端点でリンキング等の発生しない特性の良好なデータ数変換が行えるようなデータ数変換方法を提案した。この方法は、ブロック毎に可変個数のデータを非線形圧縮部で非線形圧縮し、ダミーデータ付加部でブロック内の最後のデータ値から最初のデータ値までの補間をするようなダミーデータを付加してデータ個数を拡大した後、高速フーリエ変換(FFT)処理部、逆高速フーリエ変換(IFFT)処理部等を有した帯域制限型のオーバーサンプリング部でオーバーサンプルし、直線補間部で直線補間し、間引き処理部で間引くことにより一定個数のサンプルデータに変換するものである。
【0008】
この出願によるデータ数変換方法では、FFTをする際に、1ブロックを例えば256サンプルに延長して計算している。次に、例えば8倍のオーバーサンプリングを実現するために、FFT変換により得られた256サンプルのスペクトルデータに対し、各サンプルの中間に7(=8−1)個の0を詰めるような中間0詰め処理を行って2048サンプルとし、この2048サンプルに対してIFFTの計算を行っている。
【0009】
ところで、通常のFFT、IFFTでは、1ブロックのサンプル数をNとするとき、(N/2×logN)の複素乗算と、(NlogN)の複素加算が行われている。ここで、(N/2logN)の複素乗算は、(N/2×logN×4)の実数乗算となり、(NlogN)の複素加算は、(NlogN×2)の実数加算となる。したがって、Nを256としたときのFFTの演算量は、4096回(=256/2×8×4)となり、N=2048としたときのIFFTの演算量は、45056回(=2048/2×11×4)となり、その合計は49152回となる。
【0010】
また、全実数入力に対して、N/2点のFFTで、N点FFTが実現できる、いわゆる高速化の手法を用いたとしても、N/4(logN−1)×4+N×4の実数乗算と、N/2(logN−1)×2+N×2の実数加算が必要となる。すなわち、N=256としたときのFFTでは、乗算が2816回、加算が2304回行われる。また、N=2048としたときのIFFTでは、乗算が28672回、加算が24576回行われる。したがって、乗算だけでも31488回の演算が必要となる。
【0011】
なお、以上はエンコードの際において、ブロック(フレーム)内で可変個数(8〜63個)のサンプルデータを一定個数(44個)のサンプルデータに変換するデータ数(サンプルレート)変換を想定しているが、デコードの場合も同様な方法でブロック(フレーム)内の一定個数(44個)のサンプルデータを可変個数(8〜63個)のサンプルデータ変換しているものである。
【0012】
ところで、実際に求めたい点の数は、エンコードの際には2048点でIFFTした内の約44点程であり、また、デコードの際を考慮しても、最終的に得たいサンプル数は最大でも63個程度であり、このような間引かれた演算を行うという性質が生かされていなかった。
【0013】
本発明は、このような実情に鑑みてなされたものであり、演算量を低減しながらも、エンコードの際には可変個数のデータを一定個数に変換することができ、またデコードの際には一定個数のデータを可変個数のデータに変換することができるようなデータ数変換を用いた符号化装置及び復号装置の提供を目的とする。
【0015】
【課題を解決するための手段】
本発明に係る符号化装置は、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換して符号化する符号化装置であって、複数の係数セットを記憶する記憶手段と、上記可変個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる一定個数の系列データを求める手段とを有することにより、上述の課題を解決する。
【0017】
また、本発明に係る復号装置は、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数の系列データを復号化し、上記復号化された一定個数の系列データから可変個数の系列データに逆変換する復号装置であって、複数の係数セットを記憶する記憶手段と、上記復号化された一定個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる可変個数の系列データを求める手段とを有することにより、上述の課題を解決する。
【0018】
【実施例】
以下、本発明に係る符号化装置及び復号装置の実施例について、図面を参照しながら説明する。
【0019】
図1は本発明の第1の実施例となる符号化装置に用いられるデータ数変換の概略構成を示している。この第1の実施例は後述するMBEボコーダに適用される。すなわち、MBEボコーダにより算出されたスペクトルエンベロープの個数が可変とされた振幅データを一定個数に変換する方法である。
【0020】
図1において、入力端子11には、後述するMBEボコーダにより算出されたスペクトルエンベロープの振幅データ等が供給されている。この振幅データは、例えば図2のAに示すようなスペクトルを有する音声信号を分析して、ピッチ周波数(角周波数)ωを求め、このピッチ周波数ωに応じたスペクトルの周期性を考慮して、各高調波(ハーモニクス)位置での振幅から、図2のBに示すようなスペクトル包絡(エンベロープ)を表す振幅データとして求められる。この振幅データの個数は一定の有効帯域(例えば200〜3400Hz)内でピッチ周波数ωに依存して変化する。そこで、図2のCに示すように一定の固定周波数(角周波数)ω の各高調波位置での上記スペクトル包絡の振幅データを求めることで、データ個数を一定にできる。
【0021】
図1の例では、入力端子11からの可変数M個(例えばM=8〜63である)の入力データを、非線形圧縮部12にて例えばdB領域に圧縮(対数圧縮)した後、データ個数変換本体部13にて一定個数のデータに変換している。データ個数変換本体部13は、スペクトルエンベロープ拡張部14、帯域制限型FIRフィルタ15及び直線補間部16から成っている。
【0022】
入力されたブロック毎の可変数M個の入力データは、非線形圧縮部12で非線形圧縮され、スペクトルエンベロープ拡張部14でスペクトルエンベロープの両端の値を繰り返して前後に延長される。この両端が前後に延長されたスペクトルエンベロープは、FIRフィルタ15に供給される。このFIRフィルタ15は入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める。この中間的な出力データは、直線補間部16に供給され、直線補間されて最終出力に必要とされる一定個数のデータとなり、出力端子17から出力される。
【0023】
ここで、後述するMBEボコーダにおいて算出されるM個(mMX+1個)の振幅データ列をa〔m〕とする。mは上記高調波(ハーモニックス)の次数あるいはバンド番号であり、mMXが最大値であるが、m=0のバンドの振幅データも含めて、全バンドの振幅データの個数はmMX+1個となる。この振幅データa〔m〕を、非線形圧縮部12にて例えばdB領域に変換する。すなわち得られたデータをadB〔m〕とするとき、
dB〔m〕=20 log10a〔m〕 ・・・(1)
である。この対数変換された振幅データadB〔m〕の個数mMX+1は、上述したようにピッチに依存して変化するため、一定個数の振幅データb〔m〕に変換する。これは一種のサンプリングレート(サンプルレート)変換である。なお、非線形圧縮部12での圧縮処理は、dB領域への対数圧縮の他に、例えばいわゆるμ-lawやα-lawのような疑似対数圧縮処理を施してもよい。このように、振幅を圧縮することにより、能率的な符号化が実現される。
【0024】
MBEボコーダに入力される時間軸上の音声信号に対するサンプリング周波数fs は、通常8kHzで、全帯域幅は3.4kHz(ただし有効帯域は200〜3400Hz)であり、女声の高い方から男声の低い方までのピッチラグ(ピッチ周期に相当するサンプル数)は、20〜147程度である。従って、ピッチ(角)周波数ωは、8000/147≒54(Hz)から 8000/20=400(Hz)程度までの間で変動することになる。従って、周波数軸上で上記3.4kHzまでの間に約8〜63本のピッチパルス(ハーモニックス)が立つことになる。すなわち、周波数軸上のdB領域の波形として、8サンプル乃至63サンプルから成るmMX+1個のデータを、一定のサンプル数、例えば44サンプルに、サンプル数変換を行うわけである。これが、図2のCに示すように、一定のピッチ周波数(角周波数)ω 毎のハーモニックスの位置のサンプルを求めることに相当する。
【0025】
次にスペクトルエンベロープ拡張部14は、上述したように非線形圧縮部12で非線形圧縮され、adB〔m〕の配列で表せるmMX+1個のスペクトルエンベロープの両端の値を前後に延長する。これはスペクトルエンベロープの端点におけるリンギングの発生を防ぐために行われる。このようにしてできた数列をaJdB 〔m〕とすると、このaJdB 〔m〕は−(f −1)/2≦m<M+(f −1)/2の範囲で、
【0026】
【数1】

Figure 0003731575
【0027】
となる。ここでf は例えば9で、次に使用するFIRフィルタの(オーバーサンプリング後のサンプリングレートでみた)次数F 例えば65と、F =O ×(f −1)+1という関係にある定数である。また、f −1は、このスペクトルエンベロープ拡張を一種のオーバーサンプリングと考えたとき、オーバーサンプリングする前のサンプリングレートでみたときのフィルタ次数であり、F は、オーバーサンプリング後のサンプリングレートでみたときのフィルタの次数である。また、O は、オーバーサンプリングの比率(レシオ) である。図3はこのaJdB 〔m〕を示す図である。すなわち、このa dB 〔m〕は、0≦m<Mの区間に示される元の波形adB〔m〕の左端FをadB〔0〕のまま−(f −1)まで延長し、右端部を最後のデータであるadB〔M−1〕のままM+(f −1)/2まで延長している。
【0028】
本来、帯域制限型のオーバーサンプリングは、例えば(O −1)個のデータを0詰めしたものにF 次のフィルタを通したものとしてもよいが、0データに対する積和は無視してよい。そのため、帯域制限型のオーバーサンプリングは、8つの位相の係数セット(P=0・・・7)の各セット毎に(f −1)個の係数からなり、もとのF 個の係数をオーバーサンプリングするフィルタ処理とみることができる。
【0029】
図4はF を65、f を9、O を8とした場合のFIRフィルタ15の位相の係数を示す図である。図4のAは、−4πから4πまでの位相の変化範囲でF 個(65個)の係数の大きさを振幅値として示している。位相変化が0πのとき係数値は1であるが、位相変化が±4π、±3π、±2π、±πのときは0である。また、この図4のAは0πの振幅を軸に左右対称となっている。図4のBは、P=0・・・7の各位相の係数セットの持つ係数値が図4のAのどこにあたるかを示している。なお、この係数値は、周知の方法によって導出できる。
【0030】
ここで、本発明においては、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置に対応する係数セットを用いることにより、出力として必要なデータそのもの、あるいは必要とされるデータの近傍のデータを求めることにより、演算自体を間引いて演算量を減らすものである。
【0031】
図5は、図4に示された係数セット(P=0・・・7)を用いてaJdB 〔m〕をフィルタリングし、出力として必要とされる一定個数のデータb〔m〕の内の任意の1個を得るための演算を説明するための図である。
【0032】
図5のAは、adB〔m〕を示す。このadB〔m〕からb〔m〕を得るには、上記スペクトルエンベロープ拡張部14でadB〔m〕の両端を延長して図3に示したようなaJdB 〔m〕を先ず得る。iは可変数M個のデータのインデックスである。
【0033】
例えば、図5のAに示されたb点におけるb〔m〕を求めようとする場合を以下に述べる。
【0034】
このb点に最も近傍の位置にある係数値のセットはP=2の係数セットである。このP=2の係数セットは図5のBに示すような各係数値を持っている。この各係数値をp20、p21、p22、p23、p24、p25、p27とする。すると、b点のb〔m〕は、インデックスi=0のデータと係数値p20の乗算値と、インデックスi=1のデータと係数値p21の乗算値と、インデックスi=2のデータと係数値p22の乗算値と、インデックスi=3のデータと係数値p23の乗算値と、インデックスi=4のデータと係数値p24の乗算値と、インデックスi=5のデータと係数値p25の乗算値と、インデックスi=6のデータと係数値p26の乗算値と、インデックスi=7のデータと係数値p27の乗算値との合計8個の乗算値の和として表せる。
【0035】
今、F 個の係数を0≦k<F の範囲でcoef〔k〕とすると0≦m<M・O の範囲でのb〔m〕は、次の(3)式で示される。
【0036】
【数2】
Figure 0003731575
【0037】
この(3)式より、例えば、上記b点のb〔m〕は、O =8であれば、b〔3×8+2〕であり、b〔26〕となり、b〔26〕のサンプルデータの振幅値を求めることになる。
【0038】
ここで、O =8、f =9とすると上記(3)式は、
【0039】
【数3】
Figure 0003731575
【0040】
となる。
【0041】
ここで、P=0のとき上記(4)式は、
【0042】
【数4】
Figure 0003731575
【0043】
となり、i=0、1・・・7のデータの振幅をそのまま求めることになる。
【0044】
また、P=1・・・7のとき上記(4)式は、
【0045】
【数5】
Figure 0003731575
【0046】
となり、aJdB 〔i−3〕、aJdB 〔i−2〕、aJdB 〔i−1〕、aJdB 〔i−0〕、aJdB 〔i+1〕、aJdB 〔i+2〕、aJdB 〔i+3〕、aJdB 〔i+4〕の8個のデータに対し、coef〔8−P〕、coef〔16−P〕、coef〔24−P〕、coef〔32−P〕、coef〔40−P〕、coef〔48−P〕、coef〔56−P〕、coef〔64−P〕の8個の係数が各々乗算され、その8個の乗算値が全て加算されてb〔m〕が得られることが分かる。
【0047】
例えば、上記図5のAに示されたb点のb〔m〕の例では、i=3、P=2であるので、aJdB 〔0〕、aJdB 〔1〕、・・・aJdB 〔7〕の8個のデータに対し、coef〔6〕、coef〔14〕、・・・coef〔62〕の8個の係数が各々乗算され、その8個の乗算値が全て加算されてb〔26〕が得られる。
【0048】
また、例えば、i=0、P=3のb〔m〕を求める場合は、上記スペクトルエンベロープ拡張部14で得たデータaJdB 〔−3〕、aJdB 〔−2〕、aJdB 〔−1〕の計3個のデータにそれぞれcoef〔5〕、coef〔11〕、coef〔22〕の計3個の係数を乗算した3個の乗算値と、aJdB 〔0〕、aJdB〔1〕、aJdB 〔2〕、aJdB 〔3〕、aJdB 〔4〕の計5個のデータにそれぞれcoef〔29〕、coef〔37〕、coef〔45〕、coef〔53〕、coef〔61〕の5個の係数を乗算した5個の乗算値とからなる計8個の乗算値が加算されてb〔3〕が得られる。
【0049】
ここで、aJdB 〔i+j−(f −1)/2〕の〔 〕内がimin −(f −1)/2=1−(f −1)/2、imax +(f −1)/2=mMX+(f −1)/2に関しては、スペクトルエンベロープ拡張部14により、データが拡張されているので問題はない。ここで、b〔m〕の一点を求めるのに必要な積は(f −1)回である。
【0050】
ところで、以上の説明においては、(例えば8倍の)オーバーサンプル点のいずれかの位置に上記最終的に必要とされる一定個数(例えば44個)のデータの位置が一致するものとして説明したが、現実には、このような一致を得るためにはオーバーサンプルの比率(倍数)を極めて高くとることが必要とされ、フィルタ係数の個数が膨大なものとなることより、最終的には必要とされるデータの位置の近傍(例えば前後の2点)のオーバーサンプル点のデータを中間的な出力として上記フィルタリング演算により求め、この中間的な出力を補間処理することで、上記最終的に必要とされるデータを求めることが好ましい。
【0051】
すなわち、上記FIRフィルタ15からのFIR出力は、直線補間部16に供給される。この直線補間部16は、上記FIRフィルタ15からの少なくとも2つのFIR出力を直線補間し、必要な出力点を得る。例えば、図6において点A を直線補間で求めるには、その点A を挟む2点A−1、A がFIRフィルタで算出されていればよい。したがって、データ個数変換本体部13で求められる最終的なエンコーダでの出力点の個数を44点とすれば、44×2(=88)点が上記FIRフィルタ15で算出されればよい。
【0052】
この必要な出力点を得るための2点A−1、A のb〔m〕を求める処理について図7のフローチャートを用いて説明する。
【0053】
ステップS1では、入力側の角周波数をO (サンプリングレシオ)で割ったω0fと、出力側の角周波数ω を求める。第1の実施例では、O (例えば8)倍のサンプリングを行っているので、スペクトルは、入力の角周波数の1/O のインターバルで立っている。そのため、O で割った値ω0fを出す。0〜πまでを例えば1024のグリッドで表現すると、このω0fは、1024/M×1/O となる。 また、欲しい点(出力側)の角周波数はω であり、このω が1024/M' となる。ここで、M' は、出力側のハーモニクスの数である。
ステップS2では、入力側ハーモニクスのインデックスi及び出力側ハーモニクスのインデックスiiを初期化する。
【0054】
ステップS3では、上記係数セットPを初期化する。
【0055】
ステップS4では、入力側ハーモニクスのインデックスiと係数セットPとにより求めたいデータの位置A を検索(スキャン)する。すなわち、求めたいデータの位置A (=ω ×ii)を、iとPによるスキャンの位置A (=i×O +P+1)が越えたか否かを判定する。例えば、始めは上記ステップS2、S3でiとPが初期化されているのでi=0、P=0として検索する。ここで、YESを判定するとステップS5に進み、NOを判定するとステップS7に進む。
【0056】
ステップS5では、求めたいデータの位置A (=ω ×ii)を越えたiとPによるスキャンの位置A (=i×O +P+1)でのb〔m〕、すなわち、b〔i×O +P+1〕とその一つ前(A−1)のb〔i×O +P〕とを求める。このb〔i×O +P+1〕とb〔i×O +P〕とは上記求めたいデータの位置A (=ω ×ii)を挟み込むような位置(A とA−1の間)でのb〔m〕となる。
【0057】
ステップS6では、次に求めたいデータの位置を移動するため、出力側ハーモニクスのインデックスiiをインクリメントする。
【0058】
ステップS7では、スキャンの位置を移動するために係数セットPをインクリメントする。このときiは0のままである。すなわち、i=0のまま、Pを0から1に変える。
【0059】
ステップS8では、係数セットPがO の値と一致したか否かを判定する。Pは0・・・7までの8個であり、O も8としている。ここで、YESを判定するとステップS9に進み、NOを判定するとステップS4に進む。
【0060】
ステップS9では、入力側ハーモニクスのインデックスiをインクリメントする。そして、ステップS10に進む。
【0061】
ステップS10では、上記iが可変個数のデータと数(M個)と等しくなったか否かを判定する。ここでYESを判定するとこのフローは終了となり、NOを判定するとステップS3に戻る。
【0062】
以上のフローチャートより、本実施例はO (ここではO =8)倍でオーバーサンプリングピッチ(角周波数)ω0fのインターバルで周波数をインクリメントしてゆき出力として欲しい点を越えたところでのb〔m〕とその一つ手前のb〔m〕とを求めている。このようにすれば、出力点を直線補間で求めるのに必要な左右の点が全て算出されることになる。
【0063】
次に、上記図7に示したフローチャートの処理によって求められた、出力として欲しい点を越えたところでのb〔m〕とその一つ手前のb〔m〕を直線補間部16により直線する処理を図8のフローチャートを用いて説明する。
【0064】
ステップS21では、出力角周波数ω と、入力角周波数ω0fとを求める。これは、上記図7に示したステップS1と同様である。
【0065】
ステップS22では、以後のフローが入力側のハーモニクスの8倍のインデックスiでインクリメントされるのでこのiを初期化する。
【0066】
ステップS23では、i=0になっているか否かを判別する。ここでYESを判別するとステップS24に進み、NOを判別するとステップS25に進む。
【0067】
ステップS24、ステップS25では、図6に示すようにある一つの区間に着目して、その幅をb とし、上限をu 、下限をl としている。この上限u は、inint (i+1)×ω0fとなり、下限l は、inint i×ω0fとなる。ここで、inint はinint (x)とするとき、xに最も近い数を返す関数である。また、上記下限l は、一回前の上限u となる。したがって、b は、上限u と下限l との差になる。
【0068】
上記ステップS24では、下限l を0とし、ステップS26に進む。
【0069】
上記ステップS25では、下限l と上限u とを一致させる。
【0070】
ステップS26では、上述したように上限u をinint (i+1)×ω0fと設定する。
【0071】
ステップS27では、上限u と下限l との差であるb を求める。そして、このb の間をスキャンして、直線補間値c〔ii〕を求める。
【0072】
ステップS28では、図6に示す求めようとするc〔ii〕と下限l との差idxを0に設定する。すなわち、idx=0の位置(下限l と一致)からスキャンを開始するスキャン開始位置を設定する。
【0073】
ステップS29では、上述したように下限l からスキャンjを開始する。
【0074】
ステップS30では、スキャンjが求めようとするc〔ii〕の位置と一致したか否かを判別する。ここで、YESを判別するとステップS31に進み、NOを判別するとステップS32に進む。
【0075】
ステップS31では、位置関係に関連する重み付けを考慮したc〔ii〕を求める。ここで、例えば、idxが0のときは、c〔ii〕=b〔i〕となり、idxがb のときは、c〔ii〕=b〔i+1〕となる。
ステップS32では、idxをインクリメントする。そして、ステップS33では、出力ハーモニクスのインデックスiiが出力ハーモニクスの数M' より大きくなったか否かを判別する。ここで、YESを判別すると、このフローは終了となり、NOを判別するとステップS34に進む。
【0076】
ステップS34では、スキャンjの繰り返しを始める。
【0077】
ステップS35では、スキャンjが上限u まで到達したか否かを判別する。ここで、YESを判別するとステップS36に進み、NOを判別するとステップS30に戻る。
【0078】
ステップS36では、入力側のハーモニクスiをインクリメントする。
【0079】
ステップS37では、iが入力ハーモニクスMとO との積よりも大きくなったか否かを判別する。ここで、YESを判別するとこのフローは終了となるが、NOを判別するとステップS23に戻る。
【0080】
以上のフローチャートより、本実施例は、上記図7のフローチャートの処理で求めたb〔m〕を直線補間部16により直線補間するだけで、必要な点だけを求められる。
【0081】
このように第1の実施例は、必要な点のみを求めることによって、個数が可変とされたデータを一定個数にすることができる。そのため、演算量が減少する。
【0082】
このようにして、一定サンプル数のデータに変換した数列に必要に応じてブロック間、あるいはフレーム間で差分をとり、ベクトル量子化を施して、そのインデックスを伝送するようにすればよい。
【0083】
上述した第1の実施例は、MBEボコーダにより算出されたスペクトルエンベロープの個数が可変とされた振幅データを一定個数に変換する方法であったが、以下、第2の実施例として、一定個数にされたデータをデータ内容に応じた個数のデータに変換するデータ個数変換方法を説明する。この第2の実施例は例えば音声信号を合成するデコーダ側に適用される。すなわち、デコーダ側では、上記インデックスより、ベクトル量子化及び逆量子化された数列の一定個数とされた波形データを得て、そのデータ列を、同様の方法で、すなわち帯域制限オーバーサンプリング、直線補間等を施すことにより、データの内容に応じた個数のM個の数列に変換する。
【0084】
図9は第2の実施例の概略構成を示している。
【0085】
上記第1の実施例において、一定個数とされた入力データは入力端子21を介してデータ個数変換本体部22に供給され、このデータ個数変換本体部22で可変個数のデータとされて出力端子26から出力される。このデータ個数変換本体部22は、スペクトルエンベロープ拡張部23、帯域制限型FIRフィルタ24及び直線補間部25から成っている。
【0086】
入力されたブロック毎に一定個数の入力データは、スペクトルエンベロープ拡張部23でスペクトルエンベロープの両端の値を延長される。この両端が前後に延長されたスペクトルエンベロープは、FIRフィルタ24に供給される。このFIRフィルタ24はスペクトルエンベロープが延長されることによりデータ個数が拡大されたデータのサンプル点に対しそれぞれ異なる複数の位相と対応した複数の係数セットの内の一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める。そして、この中間的な出力データは直線補間部25に供給される。この直線補間部25は上記中間的な出力データを直線補間し、出力端子26から間引きされ、データ内容に応じた可変個数のデータを出力する。
【0087】
この第2の実施例は、必要な点のみを求めることによって、個数が一定とされたデータをデータ内容に応じた個数に変換することができる。そのため、演算量が減少される。
【0088】
ここで、第1の実施例による乗算の回数は、求めるデータの個数を44個とすれば、その2倍の88個のデータに対し、8回の乗算が施されることになり、1024回の乗算となる。これは、上述した高速化手法を用いたFFT、IFFTの乗算の回数の合計31488回の1/45となる。また、第2の実施例による乗算の回数は、求めるデータの個数を60個とすれば、その2倍の120個のデータに対し、8回の乗算がほどこされることになる。これは、上述した高速化手法を用いたFFT、IFFTの乗算の回数の合計31488回の1/30となる。
【0089】
次に、上述したようなデータ数変換方法が適用可能な、音声信号の合成分析符号化装置(いわゆるボコーダ)の一種のMBE(Multiband Excitation: マルチバンド励起)ボコーダの具体例について、図面を参照しながら説明する。
【0090】
以下に説明するMBEボコーダは、D.W. Griffin and J.S. Lim, “Multiband Excitation Vocoder," IEEE Trans.Acoustics,Speech,and Signal Processing, vol.36, No.8, pp.1223-1235, Aug. 1988 に開示されているものであり、従来のPARCOR(PARtial auto-CORrelation: 偏自己相関)ボコーダ等では、音声のモデル化の際に有声音区間と無声音区間とをブロックあるいはフレーム毎に切り換えていたのに対し、MBEボコーダでは、同時刻(同じブロックあるいはフレーム内)の周波数軸領域に有声音(Voiced)区間と無声音(Unvoiced)区間とが存在するという仮定でモデル化している。
【0091】
図10は、上記MBEボコーダに本発明を適用した実施例の全体の概略構成を示すブロック図である。
【0092】
この図10において、入力端子101には音声信号が供給されるようになっており、この入力音声信号は、HPF(ハイパスフィルタ)等のフィルタ102に送られて、いわゆるDC(直流)オフセット分の除去や帯域制限(例えば200〜3400Hzに制限)のための少なくとも低域成分(200Hz以下)の除去が行われる。このフィルタ102を介して得られた信号は、ピッチ抽出部103及び窓かけ処理部104にそれぞれ送られる。ピッチ抽出部103では、入力音声信号データが所定サンプル数N(例えばN=256)単位でブロック分割され(あるいは方形窓による切り出しが行われ)、このブロック内の音声信号についてのピッチ抽出が行われる。このような切り出しブロック(256サンプル)を、例えば図11のAに示すようにLサンプル(例えばL=160)のフレーム間隔で時間軸方向に移動させており、各ブロック間のオーバラップはN−Lサンプル(例えば96サンプル)となっている。また、窓かけ処理部104では、1ブロックNサンプルに対して所定の窓関数、例えばハミング窓をかけ、この窓かけブロックを1フレームLサンプルの間隔で時間軸方向に順次移動させている。
【0093】
このような窓かけ処理を数式で表すと、
(k,q) =x(q) w(kL-q) ・・・(7)
となる。この(7)式において、kはブロック番号を、qはデータの時間インデックス(サンプル番号)を表し、処理前の入力信号のq番目のデータx(q) に対して第kブロックの窓(ウィンドウ)関数w(kL-q)により窓かけ処理されることによりデータx (k,q) が得られることを示している。ピッチ抽出部103内での図11のAに示すような方形窓の場合の窓関数w (r) は、
Figure 0003731575
また、窓かけ処理部104での図11のBに示すようなハミング窓の場合の窓関数w (r) は、
Figure 0003731575
である。このような窓関数w (r) あるいはw (r) を用いるときの上記(7)式の窓関数w(r) (=w(kL-q))の否零区間は、
0≦kL−q<N
これを変形して、
kL−N<q≦kL
従って例えば上記方形窓の場合に窓関数w (kL-q)=1となるのは、図12に示すように、kL−N<q≦kLのときとなる。また、上記(7)〜(9)式は、長さN(=256)サンプルの窓が、L(=160)サンプルずつ前進してゆくことを示している。以下、上記(8)式、(9)式の各窓関数で切り出された各N点(0≦r<N)の否零サンプル列を、それぞれxwr(k,r) 、xwh(k,r) と表すことにする。
【0094】
窓かけ処理部104では、図13に示すように、上記(9)式のハミング窓がかけられた1ブロック256サンプルのサンプル列xwh(k,r) に対して1792サンプル分の0データが付加されて(いわゆる0詰めされて)2048サンプルとされ、この2048サンプルの時間軸データ列に対して、直交変換部105により例えばFFT(高速フーリエ変換)等の直交変換処理が施される。あるいは、256点のままで(0詰めなしで)FFTを施してもよい。
【0095】
ピッチ抽出部103では、上記xwr(k,r) のサンプル列(1ブロックNサンプル)に基づいてピッチ抽出が行われる。このピッチ抽出法には、時間波形の周期性や、スペクトルの周期的周波数構造や、自己相関関数を用いるもの等が知られているが、本実施例では、センタクリップ波形の自己相関法を採用している。このときのブロック内でのセンタクリップレベルについては、1ブロックにつき1つのクリップレベルを設定してもよいが、ブロックを細分割した各部(各サブブロック)の信号のピークレベル等を検出し、これらの各サブブロックのピークレベル等の差が大きいときに、ブロック内でクリップレベルを段階的にあるいは連続的に変化させるようにしている。このセンタクリップ波形の自己相関データのピーク位置に基づいてピッチ周期を決めている。このとき、現在フレームに属する自己相関データ(自己相関は1ブロックNサンプルのデータを対象として求められる)から複数のピークを求めておき、これらの複数のピークの内の最大ピークが所定の閾値以上のときには該最大ピーク位置をピッチ周期とし、それ以外のときには、現在フレーム以外のフレーム、例えば前後のフレームで求められたピッチに対して所定の関係を満たすピッチ範囲内、例えば前フレームのピッチを中心として±20%の範囲内にあるピークを求め、このピーク位置に基づいて現在フレームのピッチを決定するようにしている。このピッチ抽出部103ではオープンループによる比較的ラフなピッチのサーチが行われ、抽出されたピッチデータは高精度(ファイン)ピッチサーチ部106に送られて、クローズドループによる高精度のピッチサーチ(ピッチのファインサーチ)が行われる。
【0096】
高精度(ファイン)ピッチサーチ部106には、ピッチ抽出部103で抽出された整数(インテジャー)値の粗(ラフ)ピッチデータと、直交変換部105により例えばFFTされた周波数軸上のデータとが供給されている。この高精度ピッチサーチ部106では、上記粗ピッチデータ値を中心に、0.2〜0.5きざみで±数サンプルずつ振って、最適な小数点付き(フローティング)のファインピッチデータの値へ追い込む。このときのファインサーチの手法として、いわゆる合成による分析 (Analysis by Synthesis)法を用い、合成されたパワースペクトルが原音のパワースペクトルに最も近くなるようにピッチを選んでいる。
【0097】
このピッチのファインサーチについて説明する。先ず、上記MBEボコーダにおいては、上記FFT等により直交変換された周波数軸上のスペクトルデータとしてのS(j) を
S(j) =H(j) |E(j)| 0<j<J ・・・(10)
と表現するようなモデルを想定している。ここで、Jはω/4π=f/2に対応し、サンプリング周波数f=ω/2πが例えば8kHzのときには4kHzに対応する。上記(10)式中において、周波数軸上のスペクトルデータS(j) が図14のAに示すような波形のとき、H(j) は、図14のBに示すような元のスペクトルデータS(j) のスペクトル包絡線(エンベロープ)を示し、E(j) は、図14のCに示すような等レベルで周期的な励起信号(エキサイテイション)のスペクトルを示している。すなわち、FFTスペクトルS(j) は、スペクトルエンベロープH(j) と励起信号のパワースペクトル|E(j)| との積としてモデル化される。
【0098】
上記励起信号のパワースペクトル|E(j)| は、上記ピッチに応じて決定される周波数軸上の波形の周期性(ピッチ構造)を考慮して、1つの帯域(バンド)の波形に相当するスペクトル波形を周波数軸上の各バンド毎に繰り返すように配列することにより形成される。この1バンド分の波形は、例えば上記図13に示すような256サンプルのハミング窓関数に1792サンプル分の0データを付加(0詰め)した波形を時間軸信号と見なしてFFTし、得られた周波数軸上のある帯域幅を持つインパルス波形を上記ピッチに応じて切り出すことにより形成することができる。
【0099】
次に、上記ピッチに応じて分割された各バンド毎に、上記H(j) を代表させるような(各バンド毎のエラーを最小化するような)値(一種の振幅)|A |を求める。ここで、例えば第mバンド(第m高調波の帯域)の下限、上限の点をそれぞれa 、b とするとき、この第mバンドのエラーε は、
【0100】
【数6】
Figure 0003731575
【0101】
で表せる。このエラーε を最小化するような|A |は、
【0102】
【数7】
Figure 0003731575
【0103】
となり、この(12)式の|A |のとき、エラーε を最小化する。このような振幅|A |を各バンド毎に求め、得られた各振幅|A |を用いて上記(11)式で定義された各バンド毎のエラーε を求める。次に、このような各バンド毎のエラーε の全バンドの総和値Σε を求める。さらに、このような全バンドのエラー総和値Σε を、いくつかの微小に異なるピッチについて求め、エラー総和値Σε が最小となるようなピッチを求める。
【0104】
すなわち、上記ピッチ抽出部103で求められたラフピッチを中心として、例えば 0.25 きざみで上下に数種類ずつ用意する。これらの複数種類の微小に異なるピッチの各ピッチに対してそれぞれ上記エラー総和値Σε を求める。この場合、ピッチが定まるとバンド幅が決まり、上記(13)式より、周波数軸上データのパワースペクトル|S(j) |と励起信号スペクトル|E(j) |とを用いて上記(11)式のエラーε を求め、その全バンドの総和値Σε を求めることができる。このエラー総和値Σε を各ピッチ毎に求め、最小となるエラー総和値に対応するピッチを最適のピッチとして決定するわけである。以上のようにして高精度ピッチサーチ部106で最適のファイン(例えば 0.25 きざみ)ピッチが求められ、この最適ピッチに対応する振幅|A |が決定される。
【0105】
以上ピッチのファインサーチの説明においては、説明を簡略化するために、全バンドが有声音(Voiced)の場合を想定しているが、上述したようにMBEボコーダにおいては、同時刻の周波数軸上に無声音(Unvoiced)領域が存在するというモデルを採用していることから、上記各バンド毎に有声音/無声音の判別を行うことが必要とされる。
【0106】
上記高精度ピッチサーチ部106からの最適ピッチ及び振幅|A |のデータは、有声音/無声音判別部107に送られ、上記各バンド毎に有声音/無声音の判別が行われる。この判別のために、NSR(ノイズtoシグナル比)を利用する。すなわち、第mバンドのNSRは、
【0107】
【数8】
Figure 0003731575
【0108】
と表せ、このNSR値が所定の閾値(例えば0.3)より大のとき(エラーが大きい)ときには、そのバンドでの|A ||E(j) |による|S(j) |の近似が良くない(上記励起信号|E(j) |が基底として不適当である)と判断でき、当該バンドをUV(Unvoiced、無声音)と判別する。これ以外のときは、近似がある程度良好に行われていると判断でき、そのバンドをV(Voiced、有声音)と判別する。
【0109】
次に、振幅再評価部108には、直交変換部105からの周波数軸上データ、高精度ピッチサーチ部106からのファインピッチと評価された振幅|A |との各データ、及び上記有声音/無声音判別部107からのV/UV(有声音/無声音)判別データが供給されている。この振幅再評価部108では、有声音/無声音判別部107において無声音(UV)と判別されたバンドに関して、再度振幅を求めている。このUVのバンドについての振幅|AUVは、
【0110】
【数9】
Figure 0003731575
【0111】
にて求められる。
【0112】
この振幅再評価部108からのデータは、データ数変換(一種のサンプリングレート変換)部109に送られる。このデータ数変換部109は、上記ピッチに応じて周波数軸上での分割帯域数が異なり、データ数(特に振幅データの数)が異なることを考慮して、一定の個数にするためのものである。すなわち、例えば有効帯域を3400kHzまでとすると、この有効帯域が上記ピッチに応じて、8バンド〜63バンドに分割されることになり、これらの各バンド毎に得られる上記振幅|A |(UVバンドの振幅|AUVも含む)データの個数m +1も8〜63と変化することになる。このためデータ数変換部109では、この可変個数mMX+1の振幅データを一定個数(例えば44個)のデータに変換している。
【0113】
ここで本第1の実施例においては、上記図1〜図8と共に説明したように、周波数軸上の有効帯域1ブロック分の振幅データに対して、ブロック内の両端のデータを延長してデータ個数を拡大し、帯域制限型FIRフィルタによるフィルタ処理を施し、さらに直線補間を施すことにより一定個数(例えば44個)のデータを得ている。
【0114】
このデータ数変換部109からのデータ(上記一定個数の振幅データ)がベクトル量子化部110に送られて、所定個数のデータ毎にまとめられてベクトルとされ、ベクトル量子化が施される。ベクトル量子化部110からの量子化出力データは、CRC&レート1/2畳込み符号付加部111に供給されと共にフレームインターリーブ部112に供給される。また、上記高精度のピッチサーチ部106からの高精度(ファイン)ピッチデータ及び上記有声音/無声音判別部107からの有声音/無声音(V/UV)判別データも上記CRC&レート1/2畳込み符号付加部111に供給される。
【0115】
ここで、上記CRC&レート1/2畳込み符号付加部111は、上記ファインピッチデータ、V/UV判別データ及び量子化出力データを用いて、スペクトルエンベロープの量子化を階層的な構造とし、その出力インデックスの重要度を分けることで効果的に畳込み符号による誤り訂正を行う。
【0116】
これは、本件出願人が特願平4−91422号において、提案した高能率符号化方法、すなわち、M次元ベクトルを、S次元(S<M)ベクトルに次元低下させてベクトル量子化するような、階層構造化されたコードブックを有する量子化を行わせる方法と同様に誤り訂正符号の効果的な適用が可能となる方法である。
【0117】
具体的に、このデコーダ側のビタビ符号&CRC検出は、以下のような原理である。図15は、ビタビ復号&CRC検出の原理を説明するための機能ブロック図である。例えば、音声符号器121から出力された音声パラメータのうち、聴覚上特に重要な部分(クラス1)80ビットとそれ以外の部分(クラス2)40ビットとに分ける。クラス1のうちさらに重要な50ビットについてCRC計算ブロック122によりCRCを計算し、7ビットの結果を得る。クラス1の80ビットとCRCの7ビットと畳込み符号化器の初期値を0に戻すためのテールビット5ビットの合計92ビットを畳込み符号化部123に入力し、184ビットの出力を得る。畳込み符号化された184ビットとクラス2ビットの40ビットの計224ビットにつき、2スロットインターリーブ器124により、インターリーブを行い、その出力として224ビットを伝送する。
【0118】
この2スロットインターリーブ器124に相当するのが図10のフレームインターリーブ部112であり、その出力が出力端子113から伝送される。
【0119】
なお、これらの各データは、上記Nサンプル(例えば256サンプル)のブロック内のデータに対して処理を施すことにより得られるものであるが、ブロックは時間軸上を上記Lサンプルのフレームを単位として前進することから、伝送するデータは上記フレーム単位で得られる。すなわち、上記フレーム周期でピッチデータ、V/UV判別データ、振幅データが更新されることになる。
【0120】
次に、本発明に係る復号装置の実施例として、伝送されて得られた上記出力データに基づき音声信号を合成するための合成側(デコード側)の概略構成について、図16を参照しながら説明する。
【0121】
この図15において、入力端子131には、伝送されたきたCRC&レート1/2畳込み符号が付加された出力データが供給される。入力端子131からの出力データは、フレームデインタリーブ132に供給され、デインターリーブされる。デインターリーブされたデータは、ビタビ復号&CRC検出部133に供給され、復号化される。
【0122】
そして、マスク処理部134が、フレームデインターリーブ132からのデータをマスク処理し、量子化振幅データを逆ベクトル量子化部135に供給する。
【0123】
この逆量子化部135も階層構造化されており、各階層のインデックスデータに基づいて逆ベクトル化されたデータを合成して出力する。この逆量子化部135からの出力データは、データ数逆変換部136に送られて逆変換される。このデータ数逆変換部136では、上述した図9の説明と同様な(逆)変換が行われ、得られた振幅データが有声音合成部137及び無声音合成部138に送られる。また、上記マスク処理部134は、符号化ピッチデータをピッチ復号化部139に供給する。このピッチ復号化器139で復号されたピッチデータは、データ数逆変換部136、有声音合成部137及び無声音合成部138に送られる。また、上記マスク処理部134は、V/UV判別データを有声音合成部137及び無声音合成部138に供給する。
【0124】
有声音合成部137では例えば余弦(cosine)波合成により時間軸上の有声音波形を合成し、無声音合成部138では例えばホワイトノイズをバンドパスフィルタでフィルタリングして時間軸上の無声音波形を合成し、これらの各有声音合成波形と無声音合成波形とを加算部140で加算合成して、出力端子141より取り出すようにしている。この場合、上記振幅データ、ピッチデータ及びV/UV判別データは、上記分析時の1フレーム(Lサンプル、例えば160サンプル)毎に更新されて与えられるが、フレーム間の連続性を高める(円滑化する)ために、上記振幅データやピッチデータの各値を1フレーム中の例えば中心位置における各データ値とし、次のフレームの中心位置までの間(合成時の1フレーム)の各データ値を補間により求める。すなわち、合成時の1フレーム(例えば上記分析フレームの中心から次の分析フレームの中心まで)において、先端サンプル点での各データ値と終端(次の合成フレームの先端)サンプル点での各データ値とが与えられ、これらのサンプル点間の各データ値を補間により求めるようにしている。
【0125】
以下、有声音合成部137における合成処理を詳細に説明する。
【0126】
上記V(有声音)と判別された第mバンド(第m高調波の帯域)における時間軸上の上記1合成フレーム(Lサンプル、例えば160サンプル)分の有声音をV (n) とするとき、この合成フレーム内の時間インデックス(サンプル番号)nを用いて、
(n) =A (n) cos(θ (n)) 0≦n<L・・・(15)
と表すことができる。全バンドの内のV(有声音)と判別された全てのバンドの有声音を加算(ΣV (n) )して最終的な有声音V(n) を合成する。
【0127】
この(15)式中のA (n) は、上記合成フレームの先端から終端までの間で補間された第m高調波の振幅である。最も簡単には、フレーム単位で更新される振幅データの第m高調波の値を直線補間すればよい。すなわち、上記合成フレームの先端(n=0)での第m高調波の振幅値をA0m、該合成フレームの終端(n=L:次の合成フレームの先端)での第m高調波の振幅値をALmとするとき、
(n) = (L-n)A0m/L+nALm/L ・・・(16)
の式によりA (n) を計算すればよい。
【0128】
次に、上記(15)式中の位相θ (n) は、
Figure 0003731575
により求めることができる。この(17)式中で、φ0mは上記合成フレームの先端(n=0)での第m高調波の位相(フレーム初期位相)を示し、ω01は合成フレーム先端(n=0)での基本角周波数、ωL1は該合成フレームの終端(n=L:次の合成フレーム先端)での基本角周波数をそれぞれ示している。上記(17)式中のΔωは、n=Lにおける位相φLmがθ (L) に等しくなるような最小のΔωを設定する。
【0129】
以下、任意の第mバンドにおいて、それぞれn=0、n=LのときのV/UV判別結果に応じた上記振幅A (n) 、位相θ (n) の求め方を説明する。
【0130】
第mバンドが、n=0、n=LのいずれもV(有声音)とされる場合に、振幅A (n) は、上述した(16)式により、伝送された振幅値A0m、ALmを直線補間して振幅A (n) を算出すればよい。位相θ (n) は、n=0でθ (0) =φ0mからn=Lでθ (L) がφLmとなるようにΔωを設定する。
【0131】
次に、n=0のときV(有声音)で、n=LのときUV(無声音)とされる場合に、振幅A (n) は、A (0) の伝送振幅値A0mからA (L) で0となるように直線補間する。n=Lでの伝送振幅値ALmは無声音の振幅値であり、後述する無声音合成の際に用いられる。位相θ (n) は、θ (0) =φ0mとし、かつΔω=0とする。
【0132】
さらに、n=0のときUV(無声音)で、n=LのときV(有声音)とされる場合には、振幅A (n) は、n=0での振幅A (0) を0とし、n=Lで伝送された振幅値ALmとなるように直線補間する。位相θ (n) については、n=0での位相θ (0) として、フレーム終端での位相値φLmを用いて、
θ (0) =φLm−m(ωO1+ωL1)L/2 ・・・(18)
とし、かつΔω=0とする。
【0133】
上記n=0、n=LのいずれもV(有声音)とされる場合に、θ (L) がφLmとなるようにΔωを設定する手法について説明する。上記(17)式で、n=Lと置くことにより、
Figure 0003731575
となり、これを整理すると、Δωは、
Δω=(mod2π((φLm−φ0m) − mL(ωO1+ωL1)/2)/L・・・(19)
となる。この(19)式でmod2π(x) とは、xの主値を−π〜+πの間の値で返す関数である。例えば、x=1.3πのときmod2π(x) =−0.7π、x=2.3πのときmod2π(x) =0.3π、x=−1.3πのときmod2π(x) =0.7π、等である。
【0134】
ここで、図17のAは、音声信号のスペクトルの一例を示しており、バンド番号(ハーモニクスナンバ)mが8、9、10の各バンドがUV(無声音)とされ、他のバンドはV(有声音)とされている。このV(有声音)のバンドの時間軸信号が上記有声音合成部137により合成され、UV(無声音)のバンドの時間軸信号が無声音合成部138で合成されるわけである。
【0135】
以下、無声音合成部138における無声音合成処理を説明する。
【0136】
ホワイトノイズ発生部142からの時間軸上のホワイトノイズ信号波形を、所定の長さ(例えば256サンプル)で適当な窓関数(例えばハミング窓)により窓かけをし、STFT処理部143によりSTFT(ショートタームフーリエ変換)処理を施すことにより、図17のBに示すようなホワイトノイズの周波数軸上のパワースペクトルを得る。このSTFT処理部143からのパワースペクトルをバンド振幅処理部144に送り、図17のCに示すように、上記UV(無声音)とされたバンド(例えばm=8、9、10)について上記振幅|AUVを乗算し、他のV(有声音)とされたバンドの振幅を0にする。このバンド振幅処理部144には上記振幅データ、ピッチデータ、V/UV判別データが供給されている。バンド振幅処理部144からの出力は、ISTFT処理部145に送られ、位相は元のホワイトノイズの位相を用いて逆STFT処理を施すことにより時間軸上の信号に変換する。ISTFT処理部145からの出力は、オーバーラップ加算部146に送られ、時間軸上で適当な(元の連続的なノイズ波形を復元できるように)重み付けをしながらオーバーラップ及び加算を繰り返し、連続的な時間軸波形を合成する。オーバーラップ加算部146からの出力信号が上記加算部140に送られる。
【0137】
このように、各合成部137、138において合成されて時間軸上に戻された有声音部及び無声音部の各信号は、加算部140により適当な固定の混合比で加算して、出力端子141より再生された音声信号を取り出す。
【0138】
ここで、上述したデコーダ側のビタビ復号&CRC検出は、以下のような原理である。図18は、ビタビ復号&CRC検出の原理を説明するための機能ブロック図である。例えば、図18に示すような原理である。先ず、伝送されてきた224ビットを2スロットデインターリーブ器151が受信し、デインタリーブする。この2スロットデインターリーブ器151の出力をクラス2とエンコードされているクラス1ビットに分け、後者を畳込み復号化器152に入力し、復号して、80ビットのクラス1復号結果を受信7ビットを得る。次に、80ビットのクラス1復号結果からエンコーダで計算したのと同じパラメータビットに相当するものから再びCRCをCRC計算部153により計算し、受信CRCと比較し、その結果を音声復号器154に出力する。
【0139】
なお、上記図10の音声分析側(エンコード側)の構成や図16の音声合成側(デコード側)の構成については、各部をハードウェア的に記載しているが、いわゆるDSP(ディジタル信号プロセッサ)等を用いてソフトウェアプログラムにより実現することも可能である。
なお、本発明は上記実施例のみに限定されるものではなく、例えば、音声信号のみならず、音響信号を入力信号として用いることもできる。
【0140】
【発明の効果】
以上の説明から明らかなように、本発明に係る符号化装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数に変換して符号化する符号化装置であって、上記可変個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置に対応する係数セットを用いることにより、出力として必要な上記一定個数のデータを求める手段を有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【0141】
また、他の発明に係る符号化装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換して符号化する符号化装置であって、上記可変個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる一定個数のデータを求める手段とを有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【0142】
また、本発明に係る復号装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数のデータを復号化し、上記復号化された一定個数のデータから可変個数のデータに逆変換する復号装置であって、上記一定個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記可変個数のデータの各位置に対応する係数セットを用いることにより、出力として必要な上記可変個数のデータを求める手段を有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【0143】
また、他の発明に係る復号装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数のデータを復号化し、上記復号化された一定個数のデータから可変個数のデータに逆変換する復号装置であって、上記一定個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記可変個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる可変個数のデータを求める手段とを有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【図面の簡単な説明】
【図1】本発明に係る符号化装置の第1の実施例に用いられるデータ数変換方法を説明するための概略構成を示すブロック図である。
【図2】データ数変化の一例を説明するための波形図である。
【図3】スペクトルエンベロープの拡張を説明するための波形図である。
【図4】FIRフィルタのフィルタ係数を説明するための図である。
【図5】図4に示されたフィルタ係数を用い実際に出力点を求める例を説明するための図である。
【図6】直線補間で使う値の求め方及び直線補間を説明するための図である。
【図7】直線補間で使う値の求め方を説明するためのフローチャートである。
【図8】直線補間を説明するためのフローチャートである。
【図9】第2の実施例を説明するための図である。
【図10】本発明に係る符号化装置の実施例の具体例としての音声信号の合成分析符号化装置の分析側(エンコード側)の概略構成を示す機能ブロック図である。
【図11】窓かけ処理を説明するための図である。
【図12】窓かけ処理と窓関数との関係を説明するための図である。
【図13】直交変換(FFT)処理対象としての時間軸データを示す図である。
【図14】周波数軸上のスペクトルデータ、スペクトル包絡線(エンベロープ)及び励起信号のパワースペクトルを示す図である。
【図15】CRC&畳込み符号を説明するための図である。
【図16】本発明に係る復号装置の実施例として、データ数変換方法が適用される装置の具体例としての音声信号の合成分析符号化装置の合成側(デコード側)の概略構成を示す機能ブロック図である。
【図17】音声信号を合成する際の無声音合成を説明するための図である。
【図18】CRC&畳込み復号を説明するための図である。
【符号の説明】
12 非線形圧縮部、 13 データ個数変換本体部、 14 スペクトルエンベロープ拡張部、 15 帯域制限型FIRフィルタ、 16 直線補間部、103 ピッチ抽出部、 104 窓かけ処理部、 105 直交変換(FFT)部、 106 高精度(ファイン)ピッチサーチ部、 107 有声音/無声音(V/UV)判別部、 108 振幅再評価部、 109 データ数変換(データレートコンバート)部、 110 ベクトル量子化部、 111 CRC&畳込み符号化部、 112 フレームインターリーブ部[0001]
[Industrial application fields]
The present invention relates to an encoding device and a decoding device, and in particular, data number conversion for converting a variable number of data such as spectrum amplitude data calculated by a speech synthesis analysis device (vocoder) or the like into a fixed number of data. The present invention relates to an encoding device and a decoding device that include
[0002]
[Prior art]
Various encoding methods are known in which signal compression is performed using statistical properties of audio signals (including audio signals and acoustic signals) in the time domain and frequency domain, and characteristics of human audibility. This coding method is roughly classified into time domain coding, frequency domain coding, analysis / synthesis coding, and the like.
[0003]
Examples of high-efficiency coding for speech signals include MBE (Multiband Excitation) coding, SBE (Singleband Excitation) coding, Harmonic coding, SBC (Sub-band Coding: Spectral amplitude and its parameters (LSP parameters) in band division coding), LPC (Linear Predictive Coding), DCT (Discrete Cosine Transform), MDCT (Modified DCT), FFT (Fast Fourier Transform), etc. In the prior art, scalar quantization is often performed when various types of information data such as (, α parameter, k parameter, etc.) are quantized.
[0004]
[Problems to be solved by the invention]
By the way, if the bit rate is reduced to, for example, about 3 to 4 kbps and the quantization efficiency is further improved, the quantization noise (distortion) becomes large in the scalar quantization, which is difficult to put into practical use. Therefore, the time axis data, frequency axis data, filter coefficient data, etc. obtained at the time of encoding are not individually quantized, and a plurality of data are grouped (vector) and expressed by one code. Vector quantization, which is quantized, has attracted attention.
[0005]
However, since the number of spectral amplitude data such as MBE, SBE, LPC, etc. varies depending on the pitch, variable quantization is required to perform vector quantization as it is, and the configuration is only complicated. In other words, it is difficult to obtain good characteristics.
[0006]
In addition, even when a difference between data blocks (frames) is obtained before quantization, the difference cannot be obtained unless the number of data in the preceding and succeeding blocks (frames) matches. As described above, it may be necessary in the course of data processing to convert a variable number of data to a certain number, but it is desired to convert the number of data with good characteristics.
[0007]
Therefore, the present applicant can convert a variable number of data into a fixed number in the specification and drawings of Japanese Patent Application No. Hei 4-92263, and has a good number of data that does not cause linking at the end points. A data number conversion method that can be converted was proposed. In this method, a variable number of data is nonlinearly compressed by a non-linear compression unit for each block, and dummy data is added by a dummy data adding unit to perform interpolation from the last data value to the first data value in the block. After expanding the number of data, oversampling is performed by a band-limited oversampling unit having a fast Fourier transform (FFT) processing unit, an inverse fast Fourier transform (IFFT) processing unit, etc., and linear interpolation is performed by a linear interpolation unit. The data is converted into a fixed number of sample data by thinning out by the processing unit.
[0008]
In the data number conversion method according to this application, when performing FFT, one block is extended to, for example, 256 samples. Next, in order to realize, for example, 8 times oversampling, an intermediate 0 such that 7 (= 8-1) 0s are packed in the middle of each sample with respect to the spectral data of 256 samples obtained by the FFT transform. The stuffing process is performed to obtain 2048 samples, and IFFT is calculated for these 2048 samples.
[0009]
By the way, in normal FFT and IFFT, when the number of samples of one block is N, (N / 2 × log2N) complex multiplication and (Nlog2N) complex addition is performed. Where (N / 2log2N) complex multiplication is (N / 2 × log2N × 4) real multiplication, (Nlog2N) complex addition is (Nlog2N × 2) real number addition. Therefore, the amount of FFT calculation when N is 256 is 4096 (= 256/2 × 8 × 4), and the amount of IFFT calculation when N = 2048 is 45056 (= 2048/2 ×). 11 × 4), and the total is 49152 times.
[0010]
Further, even if a so-called high-speed technique capable of realizing an N-point FFT with an N / 2-point FFT for all real inputs, N / 4 (log2N-1) × 4 + N × 4 real multiplication and N / 2 (log2N-1) × 2 + N × 2 real number addition is required. That is, in the FFT when N = 256, multiplication is performed 2816 times and addition is performed 2304 times. Further, in IFFT when N = 2048, multiplication is performed 28672 times and addition is performed 24576 times. Accordingly, 31488 operations are required even with multiplication alone.
[0011]
Note that the above assumes a data number (sample rate) conversion in which a variable number (8 to 63) of sample data is converted into a fixed number (44) of sample data in a block (frame) during encoding. However, in the case of decoding, a predetermined number (44) of sample data in a block (frame) is converted into a variable number (8 to 63) of sample data by a similar method.
[0012]
By the way, the actual number of points to be obtained is about 44 out of IFFT performed at 2048 points during encoding, and the number of samples to be finally obtained is the maximum even when decoding is taken into consideration. However, the number is about 63, and the property of performing such thinned-out operations has not been utilized.
[0013]
The present invention has been made in view of such circumstances, and can reduce the amount of calculation while converting a variable number of data to a constant number during encoding, and at the time of decoding. An object of the present invention is to provide an encoding device and a decoding device using data number conversion that can convert a certain number of data into a variable number of data.
[0015]
[Means for Solving the Problems]
  The encoding apparatus according to the present invention divides an input audio signal into blocks, extracts a variable number of waveform data in the block or parameter data representing waveforms, and extracts the extracted variable number of sequence data for each block. An encoding device for converting and encoding the variable number of sequence data into the fixed number of sequence data for comparison with a fixed number of reference data, a storage means for storing a plurality of coefficient sets, The data is added to both ends of the series for the variable number of series data to generate new series data consisting of a predetermined fixed number of data, and the coefficient set corresponding to each position of the fixed number of data is stored in the storage means And multiplying each of the plurality of coefficients included in the selected coefficient set by the new series data associated with each coefficient. Means for obtaining intermediate output data by adding a plurality of values calculated by adding the intermediate values, and means for obtaining a certain number of series data required by interpolating the intermediate output data This solves the above-mentioned problem.
[0017]
  The decoding apparatus according to the present invention divides an input audio signal into blocks, extracts a variable number of waveform data in the block or parameter data representing waveforms, and extracts the extracted variable number of sequence data for each block. In order to compare with the fixed number of reference data, the variable number of sequence data is converted into the fixed number of sequence data to receive the encoded code sequence, and the fixed number of sequence data is received from the code sequence. A decoding device for decoding and inversely transforming from the fixed number of decoded sequence data into a variable number of sequence data, a storage means for storing a plurality of coefficient sets, and the decoded fixed number of sequence data Is added to both ends of the series to generate new series data consisting of a predetermined fixed number of data, and at each position of the fixed number of data. A corresponding coefficient set is selected from the storage means, and each of a plurality of coefficients included in the selected coefficient set is multiplied and multiplied by the new series data associated with each coefficient. The above-described problem is obtained by means for obtaining intermediate output data by adding a plurality of values and means for obtaining a variable number of series data required by interpolating the intermediate output data. To solve.
[0018]
【Example】
Embodiments of an encoding device and a decoding device according to the present invention will be described below with reference to the drawings.
[0019]
FIG. 1 shows a schematic configuration of the data number conversion used in the encoding apparatus according to the first embodiment of the present invention. This first embodiment is applied to an MBE vocoder described later. That is, it is a method of converting amplitude data in which the number of spectrum envelopes calculated by the MBE vocoder is variable into a fixed number.
[0020]
In FIG. 1, spectrum envelope amplitude data and the like calculated by an MBE vocoder described later are supplied to an input terminal 11. For example, the amplitude data is obtained by analyzing a speech signal having a spectrum as shown in FIG. 2A to obtain a pitch frequency (angular frequency) ω, and considering the periodicity of the spectrum corresponding to the pitch frequency ω. From the amplitude at each harmonic (harmonic) position, it is obtained as amplitude data representing a spectrum envelope (envelope) as shown in FIG. The number of amplitude data varies depending on the pitch frequency ω within a certain effective band (for example, 200 to 3400 Hz). Therefore, as shown in FIG. 2C, a fixed frequency (angular frequency) ωc  The number of data can be made constant by obtaining the amplitude data of the spectrum envelope at each harmonic position.
[0021]
In the example of FIG. 1, a variable number M (for example, M = 8 to 63) of input data from the input terminal 11 is compressed (logarithmically compressed) into, for example, a dB region by the nonlinear compression unit 12, and then the number of data The conversion main body 13 converts the data into a certain number of data. The data number conversion main body 13 includes a spectrum envelope expansion unit 14, a band-limited FIR filter 15, and a linear interpolation unit 16.
[0022]
The variable number M of input data for each block is non-linearly compressed by the non-linear compression unit 12 and is extended back and forth by repeating values at both ends of the spectrum envelope by the spectrum envelope expansion unit 14. The spectrum envelope whose both ends are extended back and forth is supplied to the FIR filter 15. The FIR filter 15 uses a coefficient set corresponding to a position in the vicinity of each position of the fixed number of data out of a plurality of coefficient sets corresponding to a plurality of different phases with respect to the sample points of the input data, Find intermediate output data. This intermediate output data is supplied to the linear interpolation unit 16 and is linearly interpolated to become a fixed number of data required for final output, and is output from the output terminal 17.
[0023]
Here, M (m) calculated in the MBE vocoder described below.MX+1) amplitude data string is a [m]. m is the order or band number of the above harmonics (harmonics), mMXIs the maximum value, but the number of amplitude data of all bands including the amplitude data of the band of m = 0 is m.MX+1. The amplitude data a [m] is converted into, for example, a dB region by the nonlinear compression unit 12. That is, the obtained data is adB[M]
adB[M] = 20 log10a [m] (1)
It is. This logarithmically converted amplitude data adB[M] number mMXSince +1 changes depending on the pitch as described above, it is converted into a fixed number of amplitude data b [m]. This is a kind of sampling rate (sample rate) conversion. Note that the compression processing in the non-linear compression unit 12 may perform pseudo logarithmic compression processing such as so-called μ-law and α-law in addition to logarithmic compression to the dB region. Thus, efficient encoding is realized by compressing the amplitude.
[0024]
The sampling frequency fs for the audio signal on the time axis input to the MBE vocoder is usually 8 kHz, the total bandwidth is 3.4 kHz (however, the effective bandwidth is 200 to 3400 Hz), and the higher female voice to the lower male voice. The pitch lag (number of samples corresponding to the pitch period) is about 20 to 147. Therefore, the pitch (angular) frequency ω varies between 8000 / 147≈54 (Hz) and about 8000/20 = 400 (Hz). Accordingly, about 8 to 63 pitch pulses (harmonics) are set up to 3.4 kHz on the frequency axis. That is, m consisting of 8 samples to 63 samples as the waveform of the dB region on the frequency axis.MXThe number of samples is converted into a certain number of samples, for example, 44 samples from +1 data. This is a constant pitch frequency (angular frequency) ω as shown in FIG.C  This corresponds to obtaining a sample of each harmonics position.
[0025]
Next, the spectral envelope expansion unit 14 is nonlinearly compressed by the nonlinear compression unit 12 as described above, and adBM that can be represented by the array of [m]MXExtend the values at both ends of the +1 spectral envelope back and forth. This is done to prevent ringing from occurring at the end of the spectral envelope. The number sequence thus created is aJdB  If [m], this aJdB  [M] is-(f0  −1) / 2 ≦ m <M + (f0  -1) / 2,
[0026]
[Expression 1]
Figure 0003731575
[0027]
It becomes. Where f0  Is, for example, 9 and the order F of the FIR filter to be used next (in terms of the sampling rate after oversampling)0  For example, 65 and F0  = OS  × (f0  -1) is a constant having a relationship of +1. F0  −1 is the filter order when the spectral envelope expansion is considered as a kind of oversampling, and is viewed at the sampling rate before oversampling.0  Is the order of the filter when viewed at the sampling rate after oversampling. OS  Is the oversampling ratio. FIG. 3 shows this aJdB  It is a figure which shows [m]. That is, this aJ dB  [M] is the original waveform a shown in the interval 0 ≦ m <MdB[M] left end F0AdB[0] remains-(f0  -1) and the right end is the last data adB[M-1] M + (f0  -1) / 2 extended.
[0028]
Originally, band-limited oversampling is, for example, (OS  -1) F to zero-padded data0  The product may be passed through the next filter, but the sum of products for 0 data may be ignored. Therefore, band-limited oversampling is performed for each set of eight phase coefficient sets (P = 0... 7) (f0  -1) Consists of coefficients, the original F0  This can be regarded as a filter process for oversampling individual coefficients.
[0029]
4 shows F0  To 65, f0  9 、 OS  FIG. 6 is a diagram showing the phase coefficient of the FIR filter 15 when the value is 8; FIG. 4A shows the phase change range from −4π to 4π.0  The size of 65 (65) coefficients is shown as an amplitude value. The coefficient value is 1 when the phase change is 0π, but 0 when the phase change is ± 4π, ± 3π, ± 2π, and ± π. Further, A in FIG. 4 is symmetrical with respect to the amplitude of 0π. 4B shows where the coefficient value of the coefficient set of each phase of P = 0... 7 corresponds to A in FIG. This coefficient value can be derived by a known method.
[0030]
Here, in the present invention, by using a coefficient set corresponding to each position of the predetermined number of data among a plurality of coefficient sets corresponding to a plurality of different phases with respect to the sample points of the input data, By obtaining the data necessary as output or data in the vicinity of the necessary data, the amount of computation is reduced by thinning out the computation itself.
[0031]
FIG. 5 shows that using the coefficient set (P = 0... 7) shown in FIG.JdB  It is a figure for demonstrating the calculation for filtering [m] and obtaining arbitrary one of the fixed number of data b [m] required as an output.
[0032]
A in FIG.dB[M] is shown. This adBIn order to obtain b [m] from [m], the spectrum envelope extension unit 14dBA) as shown in FIG.JdB  [M] is obtained first. i is an index of a variable number M of data.
[0033]
For example, a case where b [m] at the point b shown in FIG.
[0034]
A set of coefficient values closest to the point b is a coefficient set of P = 2. The coefficient set of P = 2 has coefficient values as shown in B of FIG. Each coefficient value is p20, P21, P22, P23, P24, P25, P27And Then, b [m] at point b is the data of index i = 0 and the coefficient value p20, Data of index i = 1 and coefficient value p21, The data of index i = 2 and the coefficient value p22, The data of index i = 3 and the coefficient value p23, The data of index i = 4 and the coefficient value p24, The data of index i = 5 and the coefficient value p25, The data of index i = 6 and the coefficient value p26, The data of index i = 7 and the coefficient value p27And the sum of eight multiplication values.
[0035]
Now F0  The number of coefficients 0 ≦ k <F0  Coef [k] in the range of 0 ≦ m <M · OS  B [m] in the range is expressed by the following equation (3).
[0036]
[Expression 2]
Figure 0003731575
[0037]
From this equation (3), for example, b [m] at point b is OS  If = 8, b [3 × 8 + 2] and b [26] are obtained, and the amplitude value of the sample data of b [26] is obtained.
[0038]
Where OS  = 8, f0  = 9, the above equation (3) becomes
[0039]
[Equation 3]
Figure 0003731575
[0040]
It becomes.
[0041]
Here, when P = 0, the above equation (4) is
[0042]
[Expression 4]
Figure 0003731575
[0043]
Thus, the amplitude of the data of i = 0, 1,... 7 is obtained as it is.
[0044]
In addition, when P = 1.
[0045]
[Equation 5]
Figure 0003731575
[0046]
And aJdB  [I-3], aJdB  [I-2], aJdB  [I-1], aJdB  [I-0], aJdB  [I + 1], aJdB  [I + 2], aJdB  [I + 3], aJdB  For eight data of [i + 4], coef [8-P], coef [16-P], coef [24-P], coef [32-P], coef [40-P], coef [48- It can be seen that 8 coefficients of P], coef [56-P], and coef [64-P] are respectively multiplied, and all the 8 multiplied values are added to obtain b [m].
[0047]
For example, in the example of b [m] at point b shown in FIG. 5A, since i = 3 and P = 2, aJdB  [0], aJdB  [1], ... aJdB  The eight data of [7] are respectively multiplied by eight coefficients of coef [6], coef [14],... Coef [62], and all the eight multiplied values are added to b. [26] is obtained.
[0048]
For example, when obtaining b [m] where i = 0 and P = 3, the data a obtained by the spectrum envelope expansion unit 14JdB  [-3], aJdB  [-2], aJdB  [-1], three data obtained by multiplying a total of three coefficients of coef [5], coef [11], and coef [22], respectively, and aJdB  [0], aJdB[1], aJdB  [2], aJdB  [3], aJdB  [5] From the 5 multiplication values obtained by multiplying the total 5 data of [4] by 5 coefficients of coef [29], coef [37], coef [45], coef [53], and coef [61], respectively. A total of 8 multiplication values are added to obtain b [3].
[0049]
Where aJdB  [I + j- (f0  -1) / 2] in [] is imin  -(F0  -1) / 2 = 1- (f0  -1) / 2, imax  + (F0  -1) / 2 = mMX+ (F0  With regard to -1) / 2, there is no problem because the data is expanded by the spectrum envelope expansion unit 14. Here, the product required to obtain one point of b [m] is (f0  -1) times.
[0050]
By the way, in the above description, it has been described that the position of a certain number of data (for example, 44) that is finally required matches the position of any of the oversample points (for example, 8 times). In reality, in order to obtain such a match, it is necessary to make the oversample ratio (multiple) extremely high, and since the number of filter coefficients becomes enormous, it is ultimately necessary. The data of the oversampled points in the vicinity of the position of the data to be processed (for example, two points before and after) is obtained as an intermediate output by the above filtering operation, and the intermediate output is interpolated to obtain the above finally required It is preferable to obtain data to be processed.
[0051]
That is, the FIR output from the FIR filter 15 is supplied to the linear interpolation unit 16. The linear interpolation unit 16 linearly interpolates at least two FIR outputs from the FIR filter 15 to obtain necessary output points. For example, in FIG.0  Can be obtained by linear interpolation, the point A0  2 points A across-1, A1  May be calculated by the FIR filter. Accordingly, if the number of output points in the final encoder obtained by the data number conversion main body 13 is 44, 44 × 2 (= 88) points may be calculated by the FIR filter 15.
[0052]
Two points A to obtain this necessary output point-1, A1  The process for obtaining b [m] will be described with reference to the flowchart of FIG.
[0053]
In step S1, the angular frequency on the input side is set to OS  Divided by (sampling ratio)0fAnd the angular frequency ω on the output side0  Ask for. In the first embodiment, OS  Since (for example, 8) times of sampling is performed, the spectrum is 1 / O of the angular frequency of the input.S  Standing at intervals. Therefore, OS  Divided by ω0fPut out. For example, when 0 to π is expressed by a grid of 1024, this ω0fIs 1024 / M × 1 / OS  It becomes. The angular frequency of the desired point (output side) is ω0  And this ω0  Becomes 1024 / M '. Here, M ′ is the number of harmonics on the output side.
In step S2, the input-side harmonics index i and the output-side harmonics index ii are initialized.
[0054]
In step S3, the coefficient set P is initialized.
[0055]
In step S4, the position A of the data to be obtained from the index i of the input side harmonics and the coefficient set P.0  Search (scan). That is, the position A of the data to be obtained0  (= Ω0  Xii) is the scan position A with i and P1  (= I × OS  It is determined whether or not + P + 1) has been exceeded. For example, since i and P are initialized in the above steps S2 and S3, the search is performed with i = 0 and P = 0. If YES is determined here, the process proceeds to step S5. If NO is determined, the process proceeds to step S7.
[0056]
In step S5, the position A of the data to be obtained0  (= Ω0  Scan position A with i and P exceeding xii)1  (= I × OS  B [m] at + P + 1), ie b [i × OS  + P + 1] and the previous one (A-1) B [i × OS  + P]. This b [i × OS  + P + 1] and b [i × OS  + P] is the position A of the data to be obtained0  (= Ω0  Xii) Position to sandwich (A)1  And A-1(B) [m].
[0057]
In step S6, the index ii of the output harmonics is incremented in order to move the position of the data to be obtained next.
[0058]
In step S7, the coefficient set P is incremented to move the scan position. At this time, i remains 0. That is, P is changed from 0 to 1 while i = 0.
[0059]
In step S8, the coefficient set P is OS  It is determined whether or not the value matches. P is 8 up to 0 ... 7, OS  Is also 8. If YES is determined here, the process proceeds to step S9. If NO is determined, the process proceeds to step S4.
[0060]
In step S9, the index i of the input side harmonics is incremented. Then, the process proceeds to step S10.
[0061]
In step S10, it is determined whether i is equal to the variable number of data and the number (M). If “YES” is determined here, the flow ends. If “NO” is determined, the process returns to the step S3.
[0062]
From the above flowchart, this embodiment is OS  (Here OS  = 8) times oversampling pitch (angular frequency) ω0fIn this interval, the frequency is incremented and b [m] at the point beyond the desired point and b [m] just before that are obtained. In this way, all the left and right points necessary for obtaining the output point by linear interpolation are calculated.
[0063]
Next, the linear interpolation unit 16 linearizes b [m] obtained by the processing of the flowchart shown in FIG. 7 above the point desired as the output and b [m] immediately before it. This will be described with reference to the flowchart of FIG.
[0064]
In step S21, the output angular frequency ω0  And the input angular frequency ω0fAnd ask. This is the same as step S1 shown in FIG.
[0065]
In step S22, since the subsequent flow is incremented by an index i that is eight times the harmonics on the input side, i is initialized.
[0066]
In step S23, it is determined whether i = 0. If YES is determined here, the process proceeds to step S24, and if NO is determined, the process proceeds to step S25.
[0067]
In step S24 and step S25, paying attention to one section as shown in FIG.w  And the upper limit is ub  , Lower limit is lb  It is said. This upper limit ub  Is inint (i + 1) × ω0fAnd the lower limit lb  Is inint i × ω0fIt becomes. Here, inint is a function that returns the number closest to x when inint (x). In addition, the lower limit lb  Is the upper limit ub  It becomes. Therefore, bw  Is the upper limit ub  And lower limit lb  And the difference.
[0068]
In step S24, the lower limit lb  And go to step S26.
[0069]
In step S25, the lower limit lb  And upper limit ub  To match.
[0070]
In step S26, as described above, the upper limit ub  Inint (i + 1) × ω0fAnd set.
[0071]
In step S27, the upper limit ub  And lower limit lb  Which is the difference betweenw  Ask for. And this bw  To obtain a linear interpolation value c [ii].
[0072]
In step S28, c [ii] to be obtained shown in FIG.b  Difference with idxIs set to 0. Idx= 0 position (lower limit lb  Set the scan start position to start scanning.
[0073]
In step S29, as described above, the lower limit lb  Starts scan j.
[0074]
In step S30, it is determined whether or not the scan j matches the position of c [ii] to be obtained. If YES is determined here, the process proceeds to step S31. If NO is determined, the process proceeds to step S32.
[0075]
In step S31, c [ii] is calculated in consideration of the weighting related to the positional relationship. Here, for example, idxIs 0, c [ii] = b [i], idxIs bw  In this case, c [ii] = b [i + 1].
In step S32, idxIs incremented. In step S33, it is determined whether or not the output harmonic index ii is larger than the number M ′ of output harmonics. If YES is determined here, the flow ends. If NO is determined, the process proceeds to step S34.
[0076]
In step S34, the scan j starts to be repeated.
[0077]
In step S35, the scan j is the upper limit u.b  It is determined whether or not it has reached. If YES is determined here, the process proceeds to step S36, and if NO is determined, the process returns to step S30.
[0078]
In step S36, the harmonics i on the input side is incremented.
[0079]
In step S37, i is the input harmonics M and O.S  It is determined whether or not the product is larger than the product of. If YES is determined here, the flow ends. If NO is determined, the process returns to step S23.
[0080]
From the above flowchart, in this embodiment, only necessary points can be obtained by linearly interpolating b [m] obtained by the process of the flowchart of FIG.
[0081]
As described above, in the first embodiment, by obtaining only necessary points, it is possible to make a fixed number of data whose number is variable. Therefore, the calculation amount is reduced.
[0082]
In this way, the numerical sequence converted into the data of a certain number of samples may be differenced between blocks or frames as necessary, and vector quantization may be performed to transmit the index.
[0083]
The first embodiment described above is a method of converting the amplitude data in which the number of spectrum envelopes calculated by the MBE vocoder is variable into a constant number. Hereinafter, the second embodiment will be described as a constant number. A data number conversion method for converting the obtained data into the number of data corresponding to the data contents will be described. This second embodiment is applied to the decoder side that synthesizes an audio signal, for example. That is, on the decoder side, waveform data having a fixed number of vector quantized and inverse quantized number sequences is obtained from the index, and the data sequences are obtained in the same manner, that is, band-limited oversampling and linear interpolation. Are converted into M number sequences corresponding to the content of the data.
[0084]
FIG. 9 shows a schematic configuration of the second embodiment.
[0085]
In the first embodiment, the fixed number of input data is supplied to the data number conversion main body 22 via the input terminal 21, and the data number conversion main body 22 makes the variable number of data and the output terminal 26. Is output from. The data number conversion main body 22 includes a spectrum envelope expansion unit 23, a band limited FIR filter 24, and a linear interpolation unit 25.
[0086]
For a certain number of input data for each input block, the values at both ends of the spectrum envelope are extended by the spectrum envelope extension unit 23. The spectrum envelope whose both ends are extended back and forth is supplied to the FIR filter 24. The FIR filter 24 has a spectral envelope that is extended to increase the number of data. The FIR filter 24 is located near each position of a fixed number of data in a plurality of coefficient sets corresponding to a plurality of different phases with respect to sample points of the data. Intermediate output data is obtained by using a coefficient set corresponding to the position. The intermediate output data is supplied to the linear interpolation unit 25. The linear interpolation unit 25 linearly interpolates the intermediate output data, is thinned out from the output terminal 26, and outputs a variable number of data corresponding to the data contents.
[0087]
In the second embodiment, by obtaining only necessary points, the data whose number is constant can be converted into the number according to the data content. Therefore, the calculation amount is reduced.
[0088]
Here, the number of multiplications according to the first embodiment is such that if the number of data to be obtained is 44, the multiplication of 88 data, which is twice that number, is performed 8 times, and it is 1024 times. Multiplication of This is 1/45 of the total number of 31488 times of multiplication of FFT and IFFT using the speed-up method described above. Further, the number of multiplications according to the second embodiment is such that if the number of pieces of data to be obtained is 60, the multiplication is performed 8 times for twice the 120 pieces of data. This is 1/30 of a total of 31488 times of the number of multiplications of FFT and IFFT using the speed-up method described above.
[0089]
Next, a specific example of an MBE (Multiband Excitation) vocoder of a speech signal synthesis analysis coding apparatus (so-called vocoder) to which the data number conversion method as described above can be applied will be described with reference to the drawings. While explaining.
[0090]
The MBE vocoder described below is disclosed in DW Griffin and JS Lim, “Multiband Excitation Vocoder,” IEEE Trans. Acoustics, Speech, and Signal Processing, vol. 36, No. 8, pp. 1223-1235, Aug. 1988. In conventional PARCOR (PARtial auto-CORrelation) vocoders, etc., voiced and unvoiced sections were switched for each block or frame when voice was modeled. The MBE vocoder is modeled on the assumption that a voiced (Voiced) section and an unvoiced (Unvoiced) section exist in the frequency axis region at the same time (in the same block or frame).
[0091]
FIG. 10 is a block diagram showing an overall schematic configuration of an embodiment in which the present invention is applied to the MBE vocoder.
[0092]
In FIG. 10, an audio signal is supplied to an input terminal 101, and this input audio signal is sent to a filter 102 such as an HPF (High Pass Filter) and so-called DC (direct current) offset. At least a low frequency component (200 Hz or less) is removed for removal or band limitation (for example, limitation to 200 to 3400 Hz). The signal obtained through the filter 102 is sent to the pitch extraction unit 103 and the windowing processing unit 104, respectively. In the pitch extraction unit 103, the input audio signal data is divided into blocks in units of a predetermined number of samples N (for example, N = 256) (or cut out by a rectangular window), and pitch extraction is performed on the audio signals in this block. . Such cutout blocks (256 samples) are moved in the time axis direction at a frame interval of L samples (for example, L = 160) as shown in FIG. 11A, for example. There are L samples (for example, 96 samples). Further, the windowing processing unit 104 applies a predetermined window function, for example, a Hamming window to 1 block N samples, and sequentially moves the windowed block in the time axis direction at intervals of 1 frame L samples.
[0093]
Such a windowing process is expressed by a mathematical expression.
xw  (k, q) = x (q) w (kL-q) (7)
It becomes. In this equation (7), k represents a block number, q represents a time index (sample number) of data, and a window (window) of the k-th block with respect to q-th data x (q) of the input signal before processing. ) Data x by windowing with function w (kL-q)w  (k, q) is obtained. Window function w in the case of a rectangular window as shown in FIG.r  (r) is
Figure 0003731575
Further, the window function w in the case of a Hamming window as shown in FIG.h  (r) is
Figure 0003731575
It is. Such a window function wr  (r) or wh  When using (r), the non-zero interval of the window function w (r) (= w (kL-q)) in the above equation (7) is
0 ≦ kL−q <N
Transform this,
kL-N <q ≦ kL
Thus, for example, in the case of the above rectangular window, the window function wr  (kL−q) = 1 is satisfied when kL−N <q ≦ kL as shown in FIG. Further, the above equations (7) to (9) indicate that the window of length N (= 256) samples advances by L (= 160) samples. In the following, the zero-zero sample sequences of the N points (0 ≦ r <N) cut out by the window functions of the above equations (8) and (9) are respectively represented by xwr(k, r), xwhLet it be expressed as (k, r).
[0094]
In the windowing processing unit 104, as shown in FIG. 13, a sample row x of 1 block 256 samples to which the Hamming window of the above equation (9) is applied.wh0 data for 1792 samples is added to (k, r) to form 2048 samples (so-called zero-padded), and the orthogonal transform unit 105 performs, for example, FFT ( Orthogonal transformation processing such as fast Fourier transformation is performed. Alternatively, FFT may be performed with 256 points (no padding).
[0095]
In the pitch extraction unit 103, the above xwrPitch extraction is performed based on a sample sequence (k, r) (one block N samples). Known pitch extraction methods include periodicity of time waveform, periodic frequency structure of spectrum, and autocorrelation function. In this embodiment, autocorrelation method of center clip waveform is adopted. is doing. As for the center clip level in the block at this time, one clip level may be set for each block, but the peak level of the signal of each part (each sub-block) obtained by subdividing the block is detected, and these When the difference between the peak levels of the sub-blocks is large, the clip level is changed stepwise or continuously within the block. The pitch period is determined based on the peak position of the autocorrelation data of the center clip waveform. At this time, a plurality of peaks are obtained from autocorrelation data belonging to the current frame (the autocorrelation is obtained from data of 1 block N samples), and the maximum peak among these peaks is equal to or greater than a predetermined threshold value. In this case, the maximum peak position is set as the pitch period, and in other cases, the pitch within the pitch range satisfying a predetermined relationship with respect to the pitch obtained in the frames other than the current frame, for example, the preceding and following frames, for example, the pitch of the previous frame is centered. As such, a peak within a range of ± 20% is obtained, and the pitch of the current frame is determined based on this peak position. The pitch extraction unit 103 performs a search for a relatively rough pitch by an open loop, and the extracted pitch data is sent to a high-precision (fine) pitch search unit 106 for a high-precision pitch search (pitch by closed loop). (Fine search) is performed.
[0096]
The high precision (fine) pitch search unit 106 includes coarse pitch data of integer (integer) values extracted by the pitch extraction unit 103, and data on the frequency axis subjected to, for example, FFT by the orthogonal transformation unit 105. Is supplied. This high-accuracy pitch search unit 106 swings ± several samples at intervals of 0.2 to 0.5 around the coarse pitch data value, and drives the value to the optimum fine pitch data value with a decimal point (floating). As a fine search method at this time, a so-called analysis by synthesis method is used, and the pitch is selected so that the synthesized power spectrum is closest to the power spectrum of the original sound.
[0097]
This pitch fine search will be described. First, in the MBE vocoder, S (j) as spectrum data on the frequency axis orthogonally transformed by the FFT or the like is used.
S (j) = H (j) | E (j) | 0 <j <J (10)
This model is assumed to be expressed as Where J is ωs/ 4π = fs/ 2 and sampling frequency fs= ΩsWhen / 2π is, for example, 8 kHz, it corresponds to 4 kHz. In the above equation (10), when the spectrum data S (j) on the frequency axis has a waveform as shown in FIG. 14A, H (j) is the original spectrum data S as shown in B of FIG. (j) shows a spectrum envelope (envelope), and E (j) shows a spectrum of an excitation signal (excitation) that is periodic at an equal level as shown in C of FIG. That is, the FFT spectrum S (j) is modeled as the product of the spectrum envelope H (j) and the power spectrum | E (j) | of the excitation signal.
[0098]
The power spectrum | E (j) | of the excitation signal corresponds to a waveform of one band (band) in consideration of the periodicity (pitch structure) of the waveform on the frequency axis determined according to the pitch. It is formed by arranging the spectrum waveform so as to be repeated for each band on the frequency axis. For example, the waveform for one band is obtained by performing FFT by regarding a waveform obtained by adding 0 data for 1792 samples to the Hamming window function of 256 samples as shown in FIG. It can be formed by cutting out an impulse waveform having a certain bandwidth on the frequency axis in accordance with the pitch.
[0099]
Next, for each band divided according to the pitch, a value (a kind of amplitude) | A that represents H (j) (which minimizes an error for each band) | Am  Find |. Here, for example, the lower limit and upper limit points of the m-th band (m-th harmonic band) are respectively am  , Bm  The error of this m-th band εm  Is
[0100]
[Formula 6]
Figure 0003731575
[0101]
It can be expressed as This error εm  That minimizes | Am  |
[0102]
[Expression 7]
Figure 0003731575
[0103]
Of this equation (12)m  When │, error εm  Minimize. Such amplitude | Am  | Is obtained for each band, and each obtained amplitude | Am  The error ε for each band defined by the above equation (11) using |m  Ask for. Next, such an error ε for each bandm  Sum of all bands of Σεm  Ask for. Furthermore, the error total value Σε for all the bandsm  Is calculated for several slightly different pitches, and the error sum Σεm  Find the pitch that minimizes.
[0104]
That is, several types are prepared vertically, for example, in increments of 0.25, centering on the rough pitch obtained by the pitch extraction unit 103. The error sum value Σε for each of these slightly different pitches.m  Ask for. In this case, when the pitch is determined, the bandwidth is determined. From the above equation (13), the power spectrum | S (j) | of the data on the frequency axis and the excitation signal spectrum | E (j) | Expression error εm  And sum the values of all the bands Σεm  Can be requested. This error total value Σεm  Is determined for each pitch, and the pitch corresponding to the minimum error sum is determined as the optimum pitch. As described above, the optimum fine (for example, 0.25 step) pitch is obtained by the high-precision pitch search unit 106, and the amplitude | A corresponding to the optimum pitch | Am  | Is determined.
[0105]
In the above description of the fine search for pitches, in order to simplify the description, it is assumed that all bands are voiced (Voiced). However, in the MBE vocoder as described above, on the frequency axis at the same time. Therefore, it is necessary to discriminate voiced / unvoiced sound for each band.
[0106]
Optimal pitch and amplitude from the high-precision pitch search unit 106 | Am  The data of | is sent to the voiced / unvoiced sound discriminating unit 107, and the voiced / unvoiced sound is discriminated for each band. For this determination, NSR (noise to signal ratio) is used. That is, the NSR of the mth band is
[0107]
[Equation 8]
Figure 0003731575
[0108]
When this NSR value is larger than a predetermined threshold (for example, 0.3) (error is large), | A in the bandm  It is possible to determine that | S (j) | is not good approximation by || E (j) | (the excitation signal | E (j) | is inappropriate as a basis), and the band is UV (Unvoiced). Is determined. In other cases, it can be determined that the approximation has been performed to some extent satisfactory, and the band is determined as V (Voiced, voiced sound).
[0109]
Next, the amplitude re-evaluation unit 108 receives the on-frequency data from the orthogonal transform unit 105 and the fine amplitude from the high-precision pitch search unit 106 evaluated as | Am  | And V / UV (voiced / unvoiced sound) discrimination data from the voiced / unvoiced sound discrimination unit 107 are supplied. The amplitude re-evaluation unit 108 obtains the amplitude again for the band that has been determined to be unvoiced sound (UV) by the voiced / unvoiced sound determination unit 107. Amplitude for this UV band | Am  |UVIs
[0110]
[Equation 9]
Figure 0003731575
[0111]
Is required.
[0112]
The data from the amplitude reevaluation unit 108 is sent to the data number conversion (a kind of sampling rate conversion) unit 109. This data number conversion unit 109 is for making a certain number in consideration of the fact that the number of divided bands on the frequency axis differs according to the pitch and the number of data (especially the number of amplitude data) differs. is there. That is, for example, when the effective band is up to 3400 kHz, the effective band is divided into 8 to 63 bands according to the pitch, and the amplitude | A obtained for each of these bands | Am  | (Amplitude of UV band | Am  |UVNumber of data m)M X+1 also changes from 8 to 63. Therefore, in the data number conversion unit 109, the variable number mMXThe +1 amplitude data is converted into a certain number (for example, 44) of data.
[0113]
Here, in the first embodiment, as described with reference to FIGS. 1 to 8, the data at both ends in the block is extended with respect to the amplitude data for one effective band on the frequency axis. A certain number (for example, 44) of data is obtained by enlarging the number, performing filter processing using a band-limited FIR filter, and further performing linear interpolation.
[0114]
Data from the data number conversion unit 109 (the fixed number of amplitude data) is sent to the vector quantization unit 110, and is grouped into a vector for each predetermined number of data and subjected to vector quantization. The quantized output data from the vector quantization unit 110 is supplied to the CRC & rate 1/2 convolutional code adding unit 111 and also supplied to the frame interleaving unit 112. The CRC & rate 1/2 convolution is also used for high precision (fine) pitch data from the high precision pitch search unit 106 and voiced / unvoiced sound (V / UV) discrimination data from the voiced / unvoiced sound discrimination unit 107. It is supplied to the code adding unit 111.
[0115]
Here, the CRC & rate 1/2 convolutional code adding unit 111 uses the fine pitch data, the V / UV discrimination data, and the quantized output data to quantize the spectrum envelope, and outputs the hierarchical structure. The error correction by the convolutional code is effectively performed by dividing the importance of the index.
[0116]
This is because the present applicant proposed in Japanese Patent Application No. Hei 4-91422 the high-efficiency encoding method, that is, the M-dimensional vector is reduced to the S-dimensional (S <M) vector and the vector quantization is performed. This is a method that enables effective application of an error correction code in the same manner as a method of performing quantization having a hierarchically structured code book.
[0117]
Specifically, the Viterbi code & CRC detection on the decoder side is based on the following principle. FIG. 15 is a functional block diagram for explaining the principle of Viterbi decoding & CRC detection. For example, the speech parameter output from the speech encoder 121 is divided into a part (class 1) of 80 bits that is particularly important for hearing (class 1) and a part of other part (class 2) of 40 bits. CRC is calculated by CRC calculation block 122 for the more important 50 bits of class 1 to obtain a 7-bit result. A total of 92 bits including 80 bits of class 1, 7 bits of CRC, and 5 tail bits for returning the initial value of the convolutional encoder to 0 are input to the convolutional coding unit 123, and an output of 184 bits is obtained. . A total of 224 bits, ie, 184 bits that are convolutionally encoded and 40 bits of class 2 bits, is interleaved by the 2-slot interleaver 124, and 224 bits are transmitted as the output.
[0118]
The frame interleave unit 112 shown in FIG. 10 corresponds to the 2-slot interleaver 124, and its output is transmitted from the output terminal 113.
[0119]
Each of these data is obtained by processing the data in the block of N samples (for example, 256 samples), but the block is in units of the frame of L samples on the time axis. Since moving forward, data to be transmitted is obtained in units of frames. That is, pitch data, V / UV discrimination data, and amplitude data are updated in the frame period.
[0120]
Next, as an embodiment of the decoding apparatus according to the present invention, a schematic configuration on the synthesis side (decoding side) for synthesizing an audio signal based on the output data obtained by transmission will be described with reference to FIG. To do.
[0121]
In FIG. 15, the output data to which the transmitted CRC & rate 1/2 convolutional code is added is supplied to the input terminal 131. Output data from the input terminal 131 is supplied to the frame deinterleaver 132 and deinterleaved. The deinterleaved data is supplied to the Viterbi decoding & CRC detection unit 133 and decoded.
[0122]
Then, the mask processing unit 134 masks the data from the frame deinterleaver 132 and supplies the quantized amplitude data to the inverse vector quantization unit 135.
[0123]
The inverse quantization unit 135 is also hierarchically structured, and synthesizes and outputs data that has been inverse vectorized based on the index data of each layer. The output data from the inverse quantization unit 135 is sent to the data number inverse transform unit 136 for inverse transform. In the data number inverse conversion unit 136, the same (inverse) conversion as described in FIG. 9 is performed, and the obtained amplitude data is sent to the voiced sound synthesis unit 137 and the unvoiced sound synthesis unit 138. The mask processing unit 134 supplies the encoded pitch data to the pitch decoding unit 139. The pitch data decoded by the pitch decoder 139 is sent to the data number inverse conversion unit 136, the voiced sound synthesis unit 137, and the unvoiced sound synthesis unit 138. The mask processing unit 134 supplies the V / UV discrimination data to the voiced sound synthesis unit 137 and the unvoiced sound synthesis unit 138.
[0124]
The voiced sound synthesizer 137 synthesizes a voiced sound waveform on the time axis by, for example, cosine wave synthesis, and the unvoiced sound synthesizer 138 synthesizes an unvoiced sound waveform on the time axis by filtering, for example, white noise with a bandpass filter. These voiced sound synthesis waveforms and unvoiced sound synthesis waveforms are added and synthesized by the adder 140 and taken out from the output terminal 141. In this case, the amplitude data, pitch data, and V / UV discrimination data are updated and given every frame (L sample, for example, 160 samples) at the time of the analysis, but increase continuity between frames (smoothing) Therefore, each value of the amplitude data and pitch data is set to each data value at the center position in one frame, for example, and each data value is interpolated until the center position of the next frame (one frame at the time of synthesis). Ask for. That is, in one frame at the time of synthesis (for example, from the center of the analysis frame to the center of the next analysis frame), each data value at the leading sample point and each data value at the end (tip of the next synthetic frame) sample point And each data value between these sample points is obtained by interpolation.
[0125]
Hereinafter, the synthesis process in the voiced sound synthesis unit 137 will be described in detail.
[0126]
The voiced sound for one synthesized frame (L samples, for example, 160 samples) on the time axis in the m-th band (m-th harmonic band) determined as V (voiced sound) is Vm  When (n) is used, using the time index (sample number) n in this composite frame,
Vm  (n) = Am  (n) cos (θm  (n)) 0 ≦ n <L (15)
It can be expressed as. Add the voiced sounds of all bands identified as V (voiced sound) of all bands (ΣVm  (n)) to synthesize the final voiced sound V (n).
[0127]
A in this equation (15)m  (n) is the amplitude of the mth harmonic interpolated from the beginning to the end of the composite frame. Most simply, the value of the mth harmonic of the amplitude data updated in units of frames may be linearly interpolated. That is, the amplitude value of the m-th harmonic at the front end (n = 0) of the composite frame is expressed as A0m, The amplitude value of the m-th harmonic at the end of the composite frame (n = L: the top of the next composite frame) is ALmAnd when
Am  (n) = (L-n) A0m/ L + nALm/ L (16)
Am  (n) can be calculated.
[0128]
Next, the phase θ in the above equation (15)m  (n) is
Figure 0003731575
It can ask for. In this equation (17), φ0mIndicates the phase (frame initial phase) of the m-th harmonic at the front end (n = 0) of the composite frame, and ω01Is the fundamental angular frequency at the tip of the composite frame (n = 0), ωL1Indicates the fundamental angular frequency at the end of the composite frame (n = L: the front of the next composite frame). Δω in the above equation (17) is the phase φ at n = L.LmIs θm  Set the smallest Δω equal to (L).
[0129]
Hereinafter, in any m-th band, the amplitude A corresponding to the V / UV discrimination result when n = 0 and n = L, respectively.m  (n), phase θm  Explain how to find (n).
[0130]
When the m-th band is set to V (voiced sound) for both n = 0 and n = L, the amplitude Am  (n) is the transmitted amplitude value A according to the above equation (16).0m, ALmIs linearly interpolated to obtain amplitude Am  (n) may be calculated. Phase θm  (n) is n = 0 and θm  (0) = φ0mTo n = L and θm  (L) is φLmΔω is set so that
[0131]
Then, when n = 0, V (voiced sound), and when n = L, UV (unvoiced sound), the amplitude Am  (n) is Am  Transmission amplitude value A of (0)0mTo Am  Linear interpolation is performed so that (L) becomes 0. Transmission amplitude value A at n = LLmIs the amplitude value of the unvoiced sound, and is used when unvoiced sound synthesis is described later. Phase θm  (n) is θm  (0) = φ0mAnd Δω = 0.
[0132]
Furthermore, when n = 0, it is UV (unvoiced sound), and when n = L is V (voiced sound), the amplitude Am  (n) is the amplitude A at n = 0m  (0) is 0, and amplitude value A transmitted with n = LLmLinear interpolation is performed so that Phase θm  For (n), the phase θ at n = 0m  (0) as the phase value φ at the end of the frameLmUsing,
θm  (0) = φLm-M (ωO1+ ΩL1) L / 2 (18)
And Δω = 0.
[0133]
When both n = 0 and n = L are V (voiced sound), θm  (L) is φLmA method of setting Δω so that By putting n = L in the above equation (17),
Figure 0003731575
When this is organized, Δω is
Δω = (mod2π ((φLm−φ0m) − ML (ωO1+ ΩL1) / 2) / L ... (19)
It becomes. In this equation (19), mod2π (x) is a function that returns the main value of x as a value between −π and + π. For example, when x = 1.3π, mod2π (x) = − 0.7π, when x = 2.3π, mod2π (x) = 0.3π, and when x = −1.3π, mod2π (x) = 0. 7π, etc.
[0134]
Here, A in FIG. 17 shows an example of a spectrum of an audio signal. Each band of band numbers (harmonics number) m is 8, 9, and 10 is UV (unvoiced sound), and the other bands are V ( Voiced). The time axis signal of the V (voiced sound) band is synthesized by the voiced sound synthesis unit 137, and the time axis signal of the UV (unvoiced sound) band is synthesized by the unvoiced sound synthesis unit 138.
[0135]
Hereinafter, the unvoiced sound synthesis process in the unvoiced sound synthesis unit 138 will be described.
[0136]
The white noise signal waveform on the time axis from the white noise generation unit 142 is windowed with an appropriate window function (for example, Hamming window) with a predetermined length (for example, 256 samples), and the STFT processing unit 143 performs STFT (short circuit). By performing (term Fourier transform) processing, a power spectrum on the frequency axis of white noise as shown in FIG. 17B is obtained. The power spectrum from this STFT processing unit 143 is sent to the band amplitude processing unit 144, and as shown in FIG. 17C, the above-mentioned amplitude | for the band (for example, m = 8, 9, 10) that has been set to the UV (unvoiced sound) Am  |UVAnd the amplitude of the other V (voiced sound) band is set to zero. The band amplitude processing unit 144 is supplied with the amplitude data, pitch data, and V / UV discrimination data. The output from the band amplitude processing unit 144 is sent to the ISTFT processing unit 145, and the phase is converted into a signal on the time axis by performing inverse STFT processing using the phase of the original white noise. The output from the ISTFT processor 145 is sent to the overlap adder 146, and repeats overlap and addition while weighting appropriately (so that the original continuous noise waveform can be restored) on the time axis. A typical time axis waveform. An output signal from the overlap adder 146 is sent to the adder 140.
[0137]
As described above, the voiced sound part and the unvoiced sound part signal synthesized by the synthesis units 137 and 138 and returned on the time axis are added by the adding unit 140 at an appropriate fixed mixing ratio, and the output terminal 141 is added. The reproduced audio signal is taken out.
[0138]
Here, the Viterbi decoding & CRC detection on the decoder side described above is based on the following principle. FIG. 18 is a functional block diagram for explaining the principle of Viterbi decoding & CRC detection. For example, the principle is as shown in FIG. First, the 2-slot deinterleaver 151 receives the transmitted 224 bits and deinterleaves it. The output of the 2-slot deinterleaver 151 is divided into class 1 bits encoded as class 2, and the latter is input to the convolutional decoder 152 and decoded, and the 80-bit class 1 decoding result is received 7 bits. Get. Next, a CRC is calculated again by the CRC calculation unit 153 from the one corresponding to the same parameter bit calculated by the encoder from the 80-bit class 1 decoding result, and compared with the received CRC, and the result is sent to the speech decoder 154. Output.
[0139]
Note that the configuration on the speech analysis side (encoding side) in FIG. 10 and the configuration on the speech synthesis side (decoding side) in FIG. 16 are described in hardware, but a so-called DSP (digital signal processor). It is also possible to realize by a software program using, for example.
In addition, this invention is not limited only to the said Example, For example, not only an audio | voice signal but an acoustic signal can also be used as an input signal.
[0140]
【The invention's effect】
As is apparent from the above description, according to the encoding device of the present invention, the input audio signal is divided into blocks, a variable number of waveform data in the block or parameter data representing waveforms is extracted, and the above extraction is performed. An encoding apparatus for converting the variable number of data into the fixed number and encoding the variable number of data for comparison with a fixed number of reference data for each block, wherein the variable number of data is An FIR filter for input band-limited oversampling, which corresponds to each position of the fixed number of data in a plurality of coefficient sets corresponding to a plurality of different phases with respect to the sampling points of the input data. By using the coefficient set, there is a means to obtain the above-mentioned fixed number of data required as output, so only the necessary points are calculated. Enables calculation him, it is reduced significantly the number of operations of the product-sum.
[0141]
In addition, according to the encoding device of another invention, the input audio signal is divided into blocks, a variable number of waveform data in the block or parameter data representing a waveform is extracted, and the extracted variable number of data In order to compare a predetermined number of reference data for each block, the encoding device converts the variable number of data into the predetermined number of data and encodes the data, and the band in which the variable number of data is input An FIR filter for limited oversampling, which corresponds to a position in the vicinity of each position of the fixed number of data in a plurality of coefficient sets corresponding to a plurality of different phases with respect to the sampling points of the input data. By using a coefficient set, a means for obtaining intermediate output data and a certain number of data required by interpolating the intermediate output data are used. Because it has a means for determining, it enables calculation decimated to calculate only points necessary, be reduced significantly the number of operations of the product-sum.
[0142]
According to the decoding device of the present invention, the input audio signal is divided into blocks, the variable number of waveform data in the block or the parameter data representing the waveform is extracted, and the extracted variable number of data is blocked. Receives an encoded code string by converting the variable number of data into the fixed number of data for comparison with a fixed number of reference data every time, and decodes the fixed number of data from the code string A decoding apparatus for inversely transforming the fixed number of decoded data into a variable number of data, wherein the input data is a FIR filter for band-limited oversampling to which the fixed number of data is input. Corresponding to each position of the variable number of data in a plurality of coefficient sets corresponding to a plurality of different phases with respect to the sample point By using a set of numbers, it has means to obtain the above-mentioned variable number of data required as output, so it is possible to perform thinned-out calculations to calculate only the necessary points, greatly increasing the number of product-sum operations. Can be reduced.
[0143]
According to another aspect of the present invention, a decoding apparatus according to another invention divides an input audio signal into blocks, extracts a variable number of waveform data in the block or parameter data representing a waveform, and extracts the extracted variable number of data. Receives an encoded code string by converting the variable number of data into the fixed number of data for comparison with a fixed number of reference data for each block, and decodes the fixed number of data from the code string A decoding device that reversely converts the fixed number of decoded data into a variable number of data, and is a FIR filter for band-limited oversampling to which the fixed number of data is input, and the input data Of the variable number of data in a plurality of coefficient sets corresponding to a plurality of different phases with respect to a plurality of sample points. By using a coefficient set corresponding to the position, there are means for obtaining intermediate output data and means for obtaining the variable number of data required by interpolating the intermediate output data. Thinned-out calculations that calculate only the necessary points are possible, and the number of product-sum operations can be greatly reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration for explaining a data number conversion method used in a first embodiment of an encoding apparatus according to the present invention;
FIG. 2 is a waveform diagram for explaining an example of a change in the number of data.
FIG. 3 is a waveform diagram for explaining expansion of a spectrum envelope.
FIG. 4 is a diagram for explaining filter coefficients of an FIR filter.
FIG. 5 is a diagram for explaining an example in which an output point is actually obtained using the filter coefficient shown in FIG. 4;
FIG. 6 is a diagram for explaining how to obtain values used in linear interpolation and linear interpolation;
FIG. 7 is a flowchart for explaining how to obtain values used in linear interpolation;
FIG. 8 is a flowchart for explaining linear interpolation;
FIG. 9 is a diagram for explaining a second embodiment;
FIG. 10 is a functional block diagram showing a schematic configuration of an analysis side (encoding side) of a speech signal synthesis analysis encoding apparatus as a specific example of an embodiment of an encoding apparatus according to the present invention.
FIG. 11 is a diagram for explaining windowing processing;
FIG. 12 is a diagram for explaining a relationship between windowing processing and a window function.
FIG. 13 is a diagram illustrating time axis data as an orthogonal transform (FFT) processing target.
FIG. 14 is a diagram showing spectrum data on the frequency axis, a spectrum envelope (envelope), and a power spectrum of an excitation signal.
FIG. 15 is a diagram for explaining a CRC & convolutional code;
FIG. 16 is a diagram showing a schematic configuration on the synthesis side (decoding side) of a speech signal synthesis analysis coding apparatus as a specific example of an apparatus to which the data number conversion method is applied as an embodiment of the decoding apparatus according to the present invention; It is a block diagram.
FIG. 17 is a diagram for explaining unvoiced sound synthesis when a voice signal is synthesized;
FIG. 18 is a diagram for explaining CRC & convolutional decoding.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 12 Nonlinear compression part, 13 Data number conversion main-body part, 14 Spectrum envelope expansion part, 15 Band-limited type FIR filter, 16 Linear interpolation part, 103 Pitch extraction part, 104 Windowing process part, 105 Orthogonal transformation (FFT) part, 106 High precision (fine) pitch search unit, 107 voiced / unvoiced sound (V / UV) discrimination unit, 108 amplitude reevaluation unit, 109 data number conversion (data rate conversion) unit, 110 vector quantization unit, 111 CRC & convolutional code Unit, 112 frame interleave unit

Claims (2)

入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換して符号化する符号化装置であって、
複数の係数セットを記憶する記憶手段と、
上記可変個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、
上記中間的な出力データを補間して必要とされる一定個数の系列データを求める手段と
を有することを特徴とする符号化装置。
The input audio signal is divided into blocks, a variable number of waveform data in the block or parameter data representing the waveforms is extracted, and the extracted variable number of series data is compared with a certain number of reference data for each block. For this purpose, an encoding device for converting and encoding the variable number of sequence data into the fixed number of sequence data,
Storage means for storing a plurality of coefficient sets;
Data is added to both ends of the series for the variable number of series data to generate new series data consisting of a predetermined fixed number of data, and the coefficient set corresponding to each position of the fixed number of data is stored in the memory Each of the plurality of coefficients selected from the means is multiplied by the new series data associated with each coefficient, and a plurality of values calculated by multiplication are added to each of the plurality of coefficients included in the selected coefficient set. means for determining an intermediate output data by,
Means for interpolating the intermediate output data to obtain a required number of series data.
入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数の系列データを復号化し、上記復号化された一定個数の系列データから可変個数の系列データに逆変換する復号装置であって、
複数の係数セットを記憶する記憶手段と、
上記復号化された一定個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、
上記中間的な出力データを補間して必要とされる可変個数の系列データを求める手段と
を有することを特徴とする復号装置。
The input audio signal is divided into blocks, a variable number of waveform data in the block or parameter data representing the waveforms is extracted, and the extracted variable number of series data is compared with a certain number of reference data for each block. Therefore, a code sequence encoded by converting the variable number of sequence data into the fixed number of sequence data is received, the fixed number of sequence data is decoded from the code sequence, and the decoded fixed number a decoding apparatus for reverse conversion from the series data into a variable number of sequence data,
Storage means for storing a plurality of coefficient sets;
Coefficients to series data of fixed number that is the decoding by adding data to the both ends of the sequence to generate a new sequence data consisting of data of a predetermined fixed number, corresponding to each position of the data of the predetermined number of A plurality of coefficients calculated by selecting a set from the storage unit, multiplying each of a plurality of coefficients included in the selected coefficient set by the new series data associated with each coefficient, and multiplying the plurality of coefficients. Means for obtaining intermediate output data by adding values ;
Means for interpolating the intermediate output data to obtain a required variable number of series data.
JP2002306411A 2002-10-21 2002-10-21 Encoding device and decoding device Expired - Lifetime JP3731575B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002306411A JP3731575B2 (en) 2002-10-21 2002-10-21 Encoding device and decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002306411A JP3731575B2 (en) 2002-10-21 2002-10-21 Encoding device and decoding device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP4223227A Division JPH0651800A (en) 1992-07-30 1992-07-30 Data quantity converting method

Publications (2)

Publication Number Publication Date
JP2003216189A JP2003216189A (en) 2003-07-30
JP3731575B2 true JP3731575B2 (en) 2006-01-05

Family

ID=27655745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002306411A Expired - Lifetime JP3731575B2 (en) 2002-10-21 2002-10-21 Encoding device and decoding device

Country Status (1)

Country Link
JP (1) JP3731575B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100587309B1 (en) 2004-08-13 2006-06-08 엘지전자 주식회사 Digital interpolation filter
CN109147827B (en) * 2012-05-23 2023-02-17 日本电信电话株式会社 Encoding method, encoding device, and recording medium
RU2665898C2 (en) * 2014-07-28 2018-09-04 Телефонактиеболагет Лм Эрикссон (Пабл) Pyramidal vector quantizer shape searching
CN107393291A (en) * 2017-07-07 2017-11-24 青岛酷控网络科技有限公司 A kind of compression of red outer code data and decompression method

Also Published As

Publication number Publication date
JP2003216189A (en) 2003-07-30

Similar Documents

Publication Publication Date Title
JP3343965B2 (en) Voice encoding method and decoding method
JP3475446B2 (en) Encoding method
KR100427753B1 (en) Method and apparatus for reproducing voice signal, method and apparatus for voice decoding, method and apparatus for voice synthesis and portable wireless terminal apparatus
JP3483958B2 (en) Broadband audio restoration apparatus, wideband audio restoration method, audio transmission system, and audio transmission method
US6081776A (en) Speech coding system and method including adaptive finite impulse response filter
US6138092A (en) CELP speech synthesizer with epoch-adaptive harmonic generator for pitch harmonics below voicing cutoff frequency
JP4958780B2 (en) Encoding device, decoding device and methods thereof
JP2003512654A (en) Method and apparatus for variable rate coding of speech
JPH0990968A (en) Voice synthesis method
JPH10214100A (en) Voice synthesizing method
JP2000155597A (en) Voice coding method to be used in digital voice encoder
JP3237178B2 (en) Encoding method and decoding method
JP3297749B2 (en) Encoding method
JP3297751B2 (en) Data number conversion method, encoding device and decoding device
JP3731575B2 (en) Encoding device and decoding device
JP3472279B2 (en) Speech coding parameter coding method and apparatus
JP3218679B2 (en) High efficiency coding method
JPH0651800A (en) Data quantity converting method
JP4578145B2 (en) Speech coding apparatus, speech decoding apparatus, and methods thereof
JP3362471B2 (en) Audio signal encoding method and decoding method
JP3916934B2 (en) Acoustic parameter encoding, decoding method, apparatus and program, acoustic signal encoding, decoding method, apparatus and program, acoustic signal transmitting apparatus, acoustic signal receiving apparatus
JP3321933B2 (en) Pitch detection method
JP3297750B2 (en) Encoding method
JP3218680B2 (en) Voiced sound synthesis method
JPH0573098A (en) Speech processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050819

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051003

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081021

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101021

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111021

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121021

Year of fee payment: 7

EXPY Cancellation because of completion of term