线性预测编码参数的矢量量化装置的制作方法

文档序号:2823871阅读:298来源:国知局
专利名称:线性预测编码参数的矢量量化装置的制作方法
技术领域
本发明涉及一种应用到用于增强在由因特网通信和移动通信系统等表示的分组通信系统的领域中的语音信号的传输效率的语音编码器/解码器的LPC矢量量化装置。
背景技术
当在由因特网通信或移动通信系统表示的分组通信系统中发送语音信号时,时常使用压缩/编码技术来增强语音信号的传输效率。目前已经开发很多的语音编码系统,并且最近几年开发的很多低比特速率语音编码系统将语音信号分离成频谱包络信息和声源信息并且压缩/编码该已分离的信息片。例如,在文档1(M.R.Schroeder,B.S.Atal,“Code Excited Linear PredictionHigh Quality Speech at Low Bit Rate”(“码激励线性预测低比特速率的高质量语音”),IEEE Proc.,ICASSP′85 pp.937-940)中描述的CELP系统是它的一个例子。
这里,将使用图1来解释基于CELP的语音编码器的概述。假设把输入语音信号以每隔由大约20ms的时间间隔划界的处理帧而逐次输入到语音编码器。
首先向LPC分析部件11供给用于每个处理帧的输入到语音编码器的输入语音信号。LPC分析部件11对输入语音信号执行LPC(线性预测编码)分析,获得具有作为矢量分量的LPC系数的LPC矢量,矢量量化(vector-quantizes)该获得的LPC矢量以获得LPC码,并且解码这个LPC码以获得具有作为矢量分量的已解码LPC系数的已解码LPC矢量。
激励矢量产生部件14分别从自适应代码本12和固定代码本13中读取自适应代码矢量和固定代码矢量,并且向LPC合成滤波器15发送这些代码矢量。LPC合成滤波器15通过使用具有作为滤波系数的从LPC分析部件11给出的已解码LPC系数的全极(all-pole)模型合成滤波器来对从激励矢量产生部件14供给的自适应代码矢量和固定代码矢量进行合成滤波并且分别获得已合成的自适应代码矢量和已合成的固定代码矢量。
比较部件16分析在从LPC合成滤波器15输出的已合成的自适应代码矢量、已合成的固定代码矢量和输入语音信号之间的关系,并且分别计算将与已合成的自适应代码矢量相乘的自适应代码本最佳增益和将与已合成的固定代码矢量相乘的固定代码本最佳增益。而且,比较部件16把通过把已合成的自适应代码矢量乘以自适应代码本最佳增益获得的矢量和已合成的固定代码矢量乘以固定代码本最佳增益获得的矢量相加,以获得已合成的语音矢量并且计算在获得的已合成的语音矢量和输入语音信号之间的失真。
比较部件16进一步计算通过对存储在自适应代码本12中的自适应代码矢量和存储在固定代码本13中的固定代码矢量的所有可能的组合操作激励矢量产生部件14和LPC合成滤波器15所获得的很多合成语音矢量和输入语音信号之间的失真,确定最小化来自这些代码矢量的失真的自适应代码矢量的索引和固定代码矢量的索引并且向参数编码部件17发送从各自代码本输出的代码矢量的索引、与索引对应的代码矢量和与索引对应的自适应代码本最佳增益和固定代码本最佳增益。
参数编码部件17编码自适应代码本最佳增益和固定代码本最佳增益以获得增益码,并且为每个处理帧输出获得的增益码、从LPC分析部件11给出的LPC码和各个代码本的索引。
参数编码部件17还把两个矢量相加;通过把与自适应代码本的索引对应的自适应代码矢量乘以与增益码对应的自适应代码本增益获得一个矢量和把与固定代码本的索引对应的固定代码矢量乘以与增益码对应的固定代码本增益获得另一个矢量,从而获得激励矢量并用获得的激励矢量来更新在自适应代码本12中的旧的自适应代码矢量。
对于通过LPC合成滤波器15的合成滤波,通常的惯例是把线性预测系数、高通滤波器和使用由对输入语音执行长期预测分析而获得的长期预测系数的感觉加权滤波器合在一起使用。另一个通常的惯例是以由细分一个帧获得的子帧为单位执行对自适应代码本和固定代码本的最佳索引的搜索、最佳增益的计算和最佳增益的编码处理。
其次,将使用图2更详细地解释由LPC分析部件11执行的“LPC矢量的矢量量化”的处理的概况。假设LPC代码本22存储预先将LBG算法施加到由对很多处理帧的输入语音信号实际执行LPC分析获得的很多LPC矢量上而获得的多个典型LPC矢量的条项(entries)。关于LBG算法,在文档2(Y.Linde,A.Buzo,R.M.Gray,“An Algorithm for Vector Quantizer Design,”(“用于矢量量化器设计的算法,”)IEEE trans.Comm.,Vol.COM-28,No.1,pp84-95,Jan.,1980)。
向失真计算部件21供给输入到图2中的矢量量化器的量化目标矢量(通过对在与量化目标对应的处理帧部件中的语音信号执行LPC分析获得的LPC矢量)。其次,失真计算部件21根据下列表达式(1)计算在存储在LPC代码本22中的LPC代码矢量和量化目标矢量之间的欧几里德失真dm=Σi=1N(XT(i)-Cm(i))2]]>…表达式(1)其中在表达式(1)中,XT是量化目标矢量,Cm是在LPC代码本中的第m个(1≤m≤M)LPC代码矢量,i是矢量的分量数目,N是矢量的阶次(对应于LPC分析阶次)和dm是在XT和Cm之间的欧几里德失真。
失真计算部件21逐次计算在存储在LPC代码本22中的所有LPC代码矢量和量化目标矢量之间的欧几里德失真,然后逐次把计算结果(各个欧几里德失真)输出到LPC代码本搜索部件23。LPC代码本搜索部件23比较从失真计算部件21供给的各个欧几里德失真并且输出最小化该欧几里德失真的LPC代码矢量的索引,作为LPC码(在处理帧上的已编码表示频谱包络信息)。
另一方面,通过读取与由来自LPC代码本的LPC码表示的索引相对应的LPC代码矢量来获得已解码的LPC系数(解码LPC系数)是可能的。顺便说一下,一般由语音编码器和语音解码器两者都执行从LPC码产生用于构成全极模型LPC合成滤波器的已解码LPC系数的处理。
在最近几年开发的很多语音编码器/解码器中,LPC矢量不象它被量化的那样量化,并且通常的惯例是把LPC矢量转换到具有作为矢量分量的LSF参数的LSF(行频谱频率)矢量或具有作为矢量分量的LSP参数的LSP(行频谱对)矢量,上述矢量是一对一互相转换的频域矢量,并且然后被矢量量化。这是因为在把其转换到频域中的矢量后对LPC矢量进行矢量量化而没有直接在时域中对LPC矢量进行矢量量化具有较高量化效率和较高插值(interpolation)特性。顺便提一下,在文档3(F.Itakura,“Line Spectrum Representation of LinearPredictive Coefficients of Speech Signals,”(“语音信号的线性预测系数的行频谱表示,”)J.Acoust.Soc.Amer.,vol57,p.S35,Apr.1975)或文档4(L.K.Paliwal andB.S.Atal,“Efficient Vector Quantization of LPC Parameter at 24Bits/Frame,”(“24位/帧的LPC参数的有效矢量量化,”)IEEE trans.on Speechand Audio Processing,vol.1,pp.3-14,Jan.1993)中公布了LSF(或LSP)矢量的特征和与LPC矢量互相转换的方法。
例如,当量化LSF矢量时,把通过转换LPC矢量获得的频域中的LSF矢量LSFT[i](i=1,...,N)输入到矢量量化器中,作为量化目标矢量。在这个例子中,LPC代码本存储备选LSF代码矢量LSFm[i](i=1,...,N),其中每个矢量具有作为矢量分量的LSF参数,通过使用和当矢量量化目标LPC矢量时相同的过程来矢量量化目标LSF矢量是可能的。但是,当量化LSF(或LSP)矢量时,经常把替代上面表达式(1)的下面表达式(2)中的加权欧几里德失真dm用作为LPC代码本搜索的量度。
dm=Σi=1N[w(i)*(LSFT(i)-LSFm(i))]2]]>…表达式(2)在文档4或文档5(A.Kataoka,T.Moriya and S.Hayashi,“An 8-kb/sConjugate Structure CELP(CS-CELP)Speech Coder,”(“一种8-kb/s共轭结构CELP(CS-CELP)语音编码器,”)IEEE trans.Speech and Audio Processing,vol.4,No.6,pp.401-411,Nov.1996)或文档6(R.Hagen,E.Paksoy,and A.Gersho,“Voicing-Specific LPC Quantization for Variable-Rate Speech Coding,”(“用于可变速率语音编码的特定声音LPC量化,”)IEEE trans.Speech and AudioProcessing,vol.7,no.5,pp.485-494,Sept.,1999)。
顺便提一下,通过读取与索引对应的LSF代码矢量来获得已解码LSF参数(解码LSF参数)是可能的,其中上述索引通过使用与从LPC码中获得已解码LPC系数的方式相同的方式来由来自LPC代码本中的LPC码所指示的,即,从代码本中读取与LPC码对应的已解码LPC代码矢量。但是,在这个例子中,基于LPC码读取的已解码LSF参数是频域中的参数。因此,需要把频率域中已解码的LSF参数转换到在时域中用于构成全极模型LPC合成滤波器的已解码LPC系数的附加处理。
关于根据CELP系统等的语音编码器/解码器,通常由矢量量化器压缩/编码表示语音信号的短期频谱包络信息的LPC参数(其后将一般把例如与LPC系数互相转换的LSF的参数和LPC系数称为“LPC参数”。但是,当如此应用图2中所示的简单配置的矢量量化器时,将增加由每个处理帧产生的量化失真,而不能获得更好的已合成的语音。因为这个原因,目前为了改善矢量量化性能而已经作出大量的研究,例如,“预测矢量量化技术”、“多阶段矢量量化技术”和“分离矢量量化技术”。为了设计高性能矢量量化器,绝对有必要使用很多这些技术的组合。
顺便提一下,当重新设计(或改善)LPC矢量的矢量量化器时,需要比较/评估量化器的性能的评估测量。当评估性能时,优先使用考虑到LPC参数是最初表示语音信号的短期频谱包络信息的参数的评估测量。因此,时常把在下列表达式(3)中的CD(倒频谱失真)测量用作性能评估测量,其中所述表达式(3)是评估在与在下列评估FFT(快速傅里叶变换)频域中的失真的表达式(4)中的LPC频谱模型或SD(频谱失真)测量相对应的LPC倒频谱域中的失真CD=1L{Σl=1LCD(l)}=1L{Σl=1L10log102Σi=1Nc(CEPt(l)[i]-CEPq(l)[i])2}]]>…表达式(3)其中在表达式(3)中,L是用于评估的数据帧的数目,l是帧数目,Nc是LPC倒频谱的阶次(当LPC分析阶次N是第10阶次时,Nc通常是在第16阶次上的阶次),CEPt(l)[i]是通过转换第一处理帧的量化目标而获得的目标LPC倒频谱和CEPq(l)[i]是通过转换第一处理帧的已解码LPC矢量而获得的LPC倒频谱。例如,在文档7(M R.Shroeder,“Direct (Nonrecursive)Relations BetweenCepstrum and Predictor Coefficients,”(“在倒频谱和预测器系数之间的直接(非回归)关系,”)IEEE trans.On vol.ASSP-29,No.2,pp.297-301,Apr.,1981.)中公开了LPC倒频谱的特征的技术细节和在LPC矢量和LPC倒频谱之间相互转换的方法。
SD=1L{Σl=1LSD(l)}=1L{Σl=1L10log104KΣj=1K/2(log10[SPt(l)(ωj)]-log10[SPq(l)(ωj)])2}]]>…表达式(4)其中表达式(4)中,L是用于评估的数据帧的数目,l是帧数目,K是FFT点数的数目,SPt(l)(ωj)是第一处理帧的量化目标的FFT功率谱,SPq(l)(ωj)是第一处理帧的已解码LPC矢量的FFT功率谱并且ωj=2πj/K。例如,在上述的文档4中公开了SD的特征的技术细节。
通过把在遍及评估数据的每个处理帧中产生的量化失真相加并且然后根据评估数据中的数据帧的数目对相加结果进行平均来获得在表达式(3)中的CD和在表达式(4)中的SD两者,这意味着CD或SD越小,矢量量化器的性能越高。
当矢量量化LPC矢量时,把欧几里德失真表达式(1)或加权欧几里德失真表达式(2)用作LPC代码本搜索的参考测量。另一方面,通常通过使用作为性能评估测量的在表达式(3)中描述的CD或在表达式(4)中描述的SD来评估LPC矢量量化器的性能。即,在目前开发的LPC矢量量化器中,用于LPC代码本搜索的参考测量不同于用于评估矢量量化器的性能的参考测量。由于这个原因,由LPC代码本搜索选择的LPC码不是一直用于最小化CD或SD测量的索引。这引起在设计高性能矢量量化器中的问题。
正如用于解决上述问题的最简单的方法,把备选LPC矢量转换到互相可转换的LPC倒频谱(或FFT功率谱)并且预先把它们存储在代码本中可以是合理的,然后把输入在每个帧中的目标LPC矢量转换到目标LPC倒频谱(或目标FFT功率谱)并且通过使用作为失真测量的CD(或SD)来选择LPC倒频谱代码矢量(或FFT功率谱代码矢量。但是,上述解决方法导致用于存储备选代码矢量的存储器容量的急剧增长。再者,当考虑到使用“预测矢量量化技术”或“多阶段矢量量化技术”的矢量量化器在低比特速率语音编码系统中频繁使用时,需要预先在代码本中存储对LPC倒频谱没有相互转换性的矢量(例如,预测残留(residual)矢量或量化错误矢量),并且因此不能使用上述的解决方法。

发明内容
本发明的目的是提供提供能够增强LPC矢量量化器的量化性能和改善语音编码器/解码器中已合成语音的质量的LPC矢量量化装置。
当通过用于根据加权欧几里德失真测量来从存储在LSF代码本中的很多备选LSF代码矢量条项中选择预置的小数目的代码矢量的预选择、还有用于根据CD或SD测量从小数目的预先选择的LSF代码矢量中选择最终码的最终搜索来矢量量化目标LSF矢量时,可达到这个目的。


图1是显示基于CELP语音编码器的配置的方框图;图2是显示传统的LPC矢量量化装置的基本配置的方框图;图3是显示根据本发明的实施例1的LPC矢量量化装置的配置的方框图;图4是说明根据本发明的实施例1用于创建已解码的LPC矢量的方法的方框图;图5是显示根据本发明的实施例2的LSF矢量量化装置的配置的方框图;图6是显示根据本发明的实施例3的LSF矢量量化装置的的配置的方框图;图7是显示根据本发明的实施例4的语音信号发送装置和语音信号接收装置的配置的方框图;图8是显示根据本发明的实施例4的语音编码器的配置的方框图;和图9是显示根据本发明的实施例4的语音解码器的配置的方框图。
具体实施例方式
现在参照附图,将解释下面的本发明的实施例。
(实施例1)将使用图3解释根据本发明的LPC矢量量化装置。图3是显示根据本发明的实施例1的LPC矢量量化装置的配置的方框图。
该矢量量化装置配有如下部件LSF代码本101,用于存储LSF代码矢量条项;失真计算部件102,用于计算在LSF代码本101中的LSF代码矢量条项和目标LSF矢量之间的失真;LPC码预选择部件103,用于基于由失真计算部件102计算出的失真来初步选择预置的小数目的LPC码;LSF/LPC转换部件104和106,用于把LSF矢量转换到LPC系数;LPC系数/LPC倒频谱转换部件105和107,用于把LPC系数转换到LPC倒频谱;和LPC码最终搜索部件108,用于基于在LPV倒频谱域中的失真评估的结果来最终选择LPC码。
假设在上述配置中的矢量量化装置的LSF代码本101存储先前由LBG算法获得的M个备选LSF代码矢量条项。而且,假设根据这个实施例的LPC矢量量化装置对处理帧部件中的语音信号执行LPC分析以获得LPC系数,进一步把获得的LPC系数转换到LSF矢量并且输入获得的LSF矢量作为量化目标矢量。其后,可以由符号LSFT[i](i=1,...,N)来表示量化目标矢量,这里N是LPC分析阶次。
首先把输入到矢量量化装置的量化目标LSF矢量LSFT[i](i=1,...,N)供给到失真计算部件102和LSF/LPC转换部件106。另一方面,LSF代码本101把与从LPC码预选择部件103供给的指令信息(作为信息供给的索引m)相对应的LSF代码矢量LSFm[i](i=1,...,N)供给到失真计算部件102中。
失真计算部件102根据上述的表达式(2)计算在量化目标矢量LSFT[i](i=1,...,N)和LSF代码矢量LSFm[i](i=1,...,N)之间的加权欧几里德失真并且向LPC码预选择部件103输出计算结果dm。在接收到与索引m相对应的失真dm后,LPC码预选择部件103指令LSF代码本101输出与下一个索引(m+1)相对应的另一个LSF代码矢量。
在LSF代码本101存储M个备选LSF代码矢量的情况中,在LPC码预选择部件103的处理被重复M次直到获得在LSF量化目标矢量和M备选LSF矢量之间的M个失真为止,并且把M个失真输出到LPC码预选择部件103。用这种方法,在LPC码预选择部件103的处理完成时把M个失真dm(m=1,...,M)输入到LPC码预选择部件103。
LPC码预选择部件103比较M个加权欧几里德失真输入的值,并且选择具有最小加权欧几里德失真值的S个备选索引(在这个实施例中,假设预置了数目S)并且把已选择的S个备选索引记录在Ncand[j](j=1,...,S)中(把索引1到M的任何一个记录在Ncand[j]中)。然后,它指示记录在Ncand[j](j=1,...,S)中的索引的LSF代码本101并且接收来自LSF代码本101的相应的LSF代码矢量LSFNcand[j][i](i=1,...,N,j=1,...,S)。然后,把接收的S个LSF代码矢量输出到LSF/LPC转换部件104。
LSF/LPC转换部件104把从LPC码预选择部件103供给的经初步选择的S个LSF代码矢量LSFNcand[j][i](i=1,...,N,j=1,...,S)转换成它们各自的LPC系数以获得LPCNcand[j][i](i=1,...,N,j=1,...,S)并且把获得的S组LPC系数输出到LPC系数/LPC倒频谱转换部件105。
LPC系数/LPC倒频谱转换部件105把从LSF/LPC转换部件104供给的S组LPC系数LPCNcand[j][i](i=1,...,N,j=1,...,S)转换到它们各自的LPC倒频谱CEPNcand[j][i](i=1,...,Nc,j=1,...,S),其中Nc是LPC倒频谱的阶次,并且把获得的S个LPC倒频谱输出到LPC码最终搜索部件108。
另一方面,LSF/LPC转换部件106把量化目标LSFT[i](i=1,...,N)转换到LPC系数以获得LPCT[i](i=1,...,N)并且把获得的LPC系数输出到LPC系数/LPC倒频谱转换部件107。LPC系数/LPC倒频谱转换部件107把从LSF/LPC系数转换部件106供给的LPC系数LPCT[i](i=1,...,N)转换到LPC倒频谱以获得CEPT[i](i=1,...,Nc)并且把获得的LPC倒频谱输出到LPC码最终搜索部件108。
然后,LPC码最终搜索部件108根据下列表达式(5)计算在从LPC系数/LPC倒频谱转换部件105供给的S个备选LPC倒频谱CEPNcand[j][i](i=1,...,Nc,j=1,...,S)和从LPC系数/LPC倒频谱转换部件107供给的目标LPC倒频谱CEPT[i](i=1,...,N,j=1,...,S)之间的失真并且把各自的计算结果保留在Dj(j=1,...,S)中。
Dj=Σi=1Nc(CEPT[i]-CEPNcand[j][i])2,j=1,....,S]]>…表达式(5)然后,LPC码最终搜索部件108比较Dj(j=1,...,S)的值,指定最小化Dj(这里已指定的j被表示为J)的一个索引j,并且输出与已指定的J对应的Ncand[J]作为相关处理帧的LPC码(表示相关处理帧的语音信号的频谱包络信息的代码)。顺便提一下,从在表达式(5)和表达式(3)之间的关系中显而易见的是通过把上述的表达式(5)的最小化用作参考来选择的“J”是与通过把上述的表达式(3)的最小化用作参考来选择的LPC码(假设为“J′”)相等的。
顺便提一下,为了对解释给出通用性,本实施例假设存储在LSF代码本101中的LSF代码矢量的数目是M和由LPC码预选择部件103初步选择的代码矢量的数目是S。由分配到LPC参数矢量量化装置的比特的数目确定上述的值M。例如,当对图3所示的矢量量化装置分配每帧21比特时,值M变成非常大的数目221。而且,能够自由地设置上述的值S,但通常根据经验或通过先进性能评估测试来设置为8、16或大约32。
然后,将使用图4中所示的LPC矢量解码器来解释由从图3中所示的矢量量化装置输出的LPC码(Ncand[J])产生已解码LPC系数(也称为“LPC参数的解码处理”)的处理过程。但是,图4中所示的解码器配有和矢量量化装置中那个一样的LSF代码本201和从该LSF代码本201读取LSF代码矢量的代码矢量读取部件202。
首先把输入到图4中所示的LPC矢量解码器的LPC码Ncand[J]供给到代码矢量读取部件202。然后,代码矢量读取部件202指示LSF代码本201输出与LPC码Ncand[J]对应的LSF代码矢量。然后,LSF代码本201向代码矢量读取部件202输出LSFNcand[J][i](i=1,...,N)。代码矢量读取部件202输出从LSF代码本201供给的矢量,作为已解码LSF矢量。
因为从上述LPC矢量解码器输出的已解码LSF矢量是LSF域中的参数,所以需要用于把LSF域中已解码LSF矢量转换到构成全极模型LPC合成滤波器的LPC域中的已解码LPC系数。
根据上述的LPC矢量量化装置,当作为量化目标的目标LSF矢量被矢量量化时,使用作为测量的加权欧几里德失真从存储在LSF代码本中的所有备选LSF代码矢量中初步选择预置的小数目的LSF代码矢量是可能的,并且通过使用作为测量的CD最小化根据预先选择结果来从小数目的预先选择备选LSF代码矢量中全面选择最终码是可能的。
因此,使用根据上述的实施例的矢量量化装置使在没有急剧增加用于LPC代码本搜索需要的计算量的情况下减少传统技术的问题(由矢量量化装置选择的LPC码通常错误匹配使CD最小化的代码矢量的索引的问题)和改善LPC矢量量化装置的性能成为可能。
顺便提一下,根据本实施例,当把本发明的矢量量化装置和在现有技术的部分解释的矢量量化装置相比较时,本发明的矢量量化装置稍微增加了用于LPC代码本的搜索所需的计算量。与计算量中的增加相对应的那部分能被概括为下列六点(1)把量化目标转换到目标LPC系数的计算量(2)把(1)中的目标LPC矢量转换到目标LPC倒频谱的计算量(3)把已初步选择的小数目的LPC代码矢量转换到小数目的LPC系数的计算量(4)把在(3)中的小数目的LPC矢量转换到小数目的LPC倒频谱的计算量(5)计算在(2)中的目标LPC倒频谱和(4)中小数目的LPC倒频谱之间的失真的计算量
(6)比较在(5)中的失真和指定最小化失真的代码矢量的索引的计算量在这种情况中,通常可能是通过初步选择并留下的备选代码矢量的数目来控制上述计算量的增长(这是因为(3)、(4)、(5)和(6)实质控制了(1)到(6)中的计算量并且这些直接取决于预先选择的备选者的数目)。即,根据本发明的矢量量化装置,自由地调整为LPC代码本搜索所需要的计算量中的增加和通过增加/减少在LPC码预选择部件103中设置的初步选择的备选者的数目来改善性能之间的交替关系是可能的。本实施例使通过考虑到为LPC代码本搜索所需要的计算量中的增加来改善矢量量化装置的性能成为可能。
而且,本实施例已经描述了其中预定了由LPC码预选择部件留下的备选LSF代码矢量的数目的情况,也可能使用其它的预先选择方法,例如设置用于加权欧几里德失真的门限和在预先选择后留下一个其加权欧几里德失真比所设置的门限小的备选者作为备选者,并且在这个情况中也能获得相同的效果/作用。
而且,本实施例已经描述了其中LPC码预选择部件使用上述表达式(2)的加权欧几里德失真作为测量来执行LSF代码矢量的预选择的情况,但是当使用不同于上述表达式(2)的例如前述文档4中的表达式(8)和表达式(10)的加权欧几里德失真时,也可实现本发明,并且在这个情况中也能获得相同的效果/作用。
顺便提一下,关于在加权欧几里德失真中的“权”,目前已经建议了各种计算方法(举例来说,在文档5中描述了根据在LSF参数的相邻元素之间的距离来计算权的方法,在文档6中描述了根据量化目标的功率谱来计算权的方法),但是本发明应用不考虑计算“权”的方法并且也能获得相同的效果/作用。
而且,本实施例已经描述了输入到矢量量化装置的LPC矢量是LSF的情况,但是本发明也能应用到当表示语音信号的短时频谱包络信息的其它矢量例如LSP矢量、具有PARCOR参数的PARCOR矢量作为矢量分量时,输入到矢量量化装置的LPC矢量作为目标矢量的情况中,并且在这种情况中也能获得相同的效果/作用。
但是,例如,在LSP是作为量化目标输入的情况中,需要把LSF/LPC转换部件104和106变化到LSP/LPC转换部件并且把LSF代码本101变化到LSP代码本。
而且,本实施例已经描述了LPC码最终搜索部件通过使用CD测量来指定最终LPC码的情况,但是如果用具有从LPC系数计算FFT功率谱的功能的LPC系数/FFT功率谱计算部件来替代LPC系数/LPC倒频谱转换部件(105、107)并且用在表达式(4)的平方根部分内的计算表达式来替代作为由LPC码最终搜索部件108执行的计算表达式的上述表达式(5),也能把SD(频谱失真)用作测量来指定最终LPC码,并且在这种情况中也能获得相同的效果/作用。
正如上面所解释的,可以理解的是根据本发明的矢量量化装置优先应用到由基于CELP系统或声音合成机系统的语音编码器/解码器来编码/解码语音信号的短时频谱包络信息的情况中。
(实施例2)本实施例将解释当通过把预测矢量量化技术、多阶段矢量量化技术和分离矢量量化技术一起使用来将根据本发明的技术应用到LPC参数矢量量化装置时的矢量量化装置的配置及其处理过程和效果/作用。
矢量量化装置的配置很强地依靠整个语音编码器/解码器的比特速率和分配到LPC矢量量化装置的比特数目。这里,为了解释的简单性,下面将解释作为特定例子的分配有每个20ms时间间隔处理帧的21-比特比特信息的矢量量化装置。
而且,更具体地讲,假设在此解释中使用的矢量量化装置使用第三阶次MA(位移平均值)预测技术并使用每个处理帧中4组MA预测系数(MA预测系数切换需要2-比特信息)。再者,假设在本解释中使用的矢量量化装置使用2阶段矢量量化技术。而且,假设在本解释中使用的矢量量化装置在2阶段矢量量化装置的第二阶段使用分离矢量量化技术。顺便提一下,分别给第一阶段矢量量化器、第二阶段低频分量的矢量量化器和第二阶段高频分量的矢量量化器分配7比特、6比特和6比特。
图5是显示根据本发明的实施例2的矢量量化装置的配置的方框图。如图5所示,在使用应用根据本发明的技术的第三阶次MA预测的2阶段分离配置的矢量量化装置配有权值计算部件(WC)301、预测系数代码本(PCC)302、MA预测器(MP)303、预测残留计算部件(PRC)304、第一阶段代码本(FSC)305、第一阶段失真计算部件(FSDCS)306、第一阶段VQ预选择部件(FSVPS)307、第一阶段VQ残留计算部件(FSVRC)308、第二阶段低频代码本(SSLFC)309、第二阶段低频失真计算部件(SSLFD)310、第二阶段高频失真计算部件(SSHFD)311、第二阶段高频代码本(SSHFC)312、第二阶段低频代码本搜索部件(SSLFC)313、第二阶段高频代码本搜索部件(SSHFC)314、预测残留解码部件(PRD)315、已解码LSF产生部件(DLG)316、LSF/LPC系数转换部件(LSF/LPC)317和319、LPC系数/LPC倒频谱转换部件(LC/LC)318和320和LPC码最终搜索部件(LCFS)321。
在图5的解释中,将详细描述在输入LSF矢量之后直到获得第一阶段矢量量化器的目标矢量为止的处理(与权值计算部件301、预测系数代码本302、MA预测器303和预测残留计算部件304相对应的处理)。
把输入到图5中的矢量量化装置的LSF矢量供给到权值计算部件301、预测残留计算部件304和LSF/LPC转换部件319。权值计算部件301基于LSF矢量计算用于计算加权欧几里德失真的“权”并且向第一阶段失真计算部件306、第二阶段低频失真计算部件310和第二阶段高频失真计算部件311输出该权。
顺便提一下,关于用于通过权值计算部件301计算“权”的方法,能够使用在文档5中所描述的用于根据在LSF参数的相邻元素之间的距离来计算“权”的方法和在文档6中所描述的用于根据LSF矢量的功率谱来计算“权”的方法等。本实施例假定没有对“权”的计算设置特定限制。
MA预测器303通过使用与存储在解码预测残留存储部件(DPRS)322中的过去3个帧相对应的已解码预测残留矢量和存储在预测系数代码本302中的第三阶次MA预测系数来计算预测矢量,并且把已计算的预测矢量输出到预测残留计算部件304。
顺便提一下,假设对于存储在预测系数代码本302中的4组第三阶次MA预测系数的每一个都执行上述的计算/输出预测矢量的处理。因此,从MA预测器303输出总共四组预测矢量。而且,通过把在文档8(S.P.Lloyd,“Least Square Quantization in PCM,”IEEE trans.Inform.Theory IT-28,pp.129-137,1982),等中公开的广义Lloyd算法应用到四组任意初始化MA预测系数上可预先获得存储在MA预测器303中的四组预测系数。其后,为了解释的简单化,假设将用符号MAk[j][i]来表示四组第三阶次MA预测系数。
在上述的符号标记中,K(=1,...,4)对应于第三阶次MA预测系数的组的数目,j(=0,...,3)对应于帧的数目(j=0对应于当前处理帧,j=1对应于先于当前处理帧一个帧的处理帧,j=2对应于先于当前处理帧2帧的处理帧,j=3对应于先于当前处理帧3帧的处理帧),i(=1,...,NN是LPC分析阶次)对应于预测系数的矢量分量的数目。
预测残留计算部件304把存储在平均LSF存储部件(ALS)323中的平均LSF参数(AV[i],i=1,...,N)从LSF参数中区分出来。顺便提一下,上述的平均LSF参数(AV[i],i=1,...,N)是在先于实际的编码/解码处理的阶段中通过对整组训练语音信号的LSF参数进行平均而预先获得的参数,并被存储在平均LSF存储部件地区323中。然后,预测残留计算部件304从由上述差值获得的矢量中把从MA预测器303供给的预测矢量区分出来,计算预测残留矢量并将已计算的预测残留矢量作为第一阶段矢量量化器的目标矢量输出至第一阶段失真计算部件306、第一阶段VQ残留计算部件308和已解码LSF产生部件316。
顺便提一下,为4组MA预测系数的每一个都执行上述的计算/输出预测残留矢量的处理。因此,从预测残留计算部件304输出第一阶段矢量量化器的目标矢量的四个条项的总数。
目前已经详细地解释了在输入LSF参数直到获得第一阶段矢量量化器的目标矢量为止之后的处理。接下来,将详细地解释2-阶段矢量量化器的第一阶段矢量量化器的处理(与第一阶段代码本305、第一阶段失真计算部件306、第一阶段VQ预选择部件307和第一阶段VQ残留计算部件308相对应的处理)。
第一阶段代码本305存储预测残留代码矢量的128条项。顺便提一下,通过执行一系列上述的处理直到对在很多处理帧中的语音信号计算出量化目标为止、获得很多预测残留矢量、把LBG算法应用到获得的很多预测残留矢量上、提取预测残留矢量的典型样本的128条项和进一步应用在上述文档8中公开的广义Lloyd算法等来预先获得预测残留代码矢量的128条项。
第一阶段失真计算部件306根据下列表达式(6)计算在从预测残留计算部件304供给的第一阶段矢量量化器的目标矢量(Xk[i],i=1,...,N)和通过把从第一阶段代码本305中读取的索引m的预测残留代码矢量(Cm[i],i=1,...,N)和MA预测系数(MAk
[i],i=1,...,N)的当前处理帧分量相乘而获得的矢量(MAk
[i]*Cm[i],i=1,...,N)之间的加权欧几里德失真并且向第一阶段VQ预选择部件307输出计算出的失真值。
dk,m=Σi=1N{w[i]*(Xk[i]-MAk
[i]*Cm[i])}2]]>…表达式(6)这里,在表达式(6)中,w[i]是由权值计算部件301计算出的“权”,k是MA预测系数的组数(k=1,...,4),m是在第一阶段代码本中的预测残留代码矢量的索引(m=1,...,128)。
由第一阶段失真计算部件306对存储在第一阶段代码本305中的预测残留代码矢量(Cm[i],i=1,...,N)的128条条项(m=1,...,128)和用于产生目标矢量((Xk[i],i=1,...,N)的从预测残留计算部件304供给的4组(k=1,...,4)MA预测系数的512(=128×4)种组合计算出上述加权欧几里德失真。因此,把512种失真dk,m(k=1,...,4,m=1,...,128)从第一阶段失真计算部件306输出到第一阶段VQ预选择部件307。
第一阶段VQ预选择部件307比较从第一阶段失真计算部件306供给的上述512种失真dk,m(k=1,...,4,m=1,...,128),选择N1种类型的k(对应于4组第三阶次MA预测系数的第三阶次预测系数组)和m(对应于第一阶段代码本305中的代码矢量的128条条项的代码矢量)的组合信息,并且分别把已选择的k和m记录进N1cand_k[j]和N1cand_m[j]中,并且把已记录的N1cand_k[j]和N1cand_m[j](j=1,...,N1)输出到第一阶段VQ残留计算部件308、预测残留解码部件315和已解码LSF产生部件316。
通过使用与从第一阶段VQ预选择部件307供给的N1cand_k[j]和N1cand_m[j](j=1,...,N1)的N1种组合的信息相对应的第三阶次预测系数组(从预测系数代码本302读取)和在第一阶段代码本中的代码矢量(从第一阶段代码本305中读取),第一阶段VQ残留计算部件308根据下列表达式(7)计算在预选择处理后保留的N1个第一阶段VQ残留矢量Xj(2)[i](i=1,...,N,j=1,...,N1)并且向第二阶段低频失真计算部件310和第二阶段高频失真计算部件311输出所计算的N1个矢量。
Xj(2)[i]=XN1cand_k[j][i]-MAN1cand_k[j]
[i]*CN1cand_m[j][i],i=1,...,N,j=1,...,N1]]>…表达式(7)
顺便提一下,本实施例的第二阶段矢量量化器采用了分离配置,其把第一阶段VQ残留矢量分解成(分离成)低频分量(i=1,...,NL)和高频分量(i=NL+1,...,N)并且分别将由分离获得的各个矢量进行矢量量化。
因此,根据第二阶段矢量量化器的配置把由第一阶段VQ残留计算部件308计算出的Xj(2)[i](i=1,...,N,j=1,...,N1)输出到第二阶段低频失真计算部件310和第二阶段高频失真计算部件311中。更具体地说,把Xj(2)[i](i=1,...,NL,j=1,...,N1)输出到第二阶段低频失真计算部件310和把Xj(2)[i](i=NL+1,...,N,j=1,...,N1)输出到第二阶段高频失真计算部件311。
目前已经详细地解释了2-阶段矢量量化器的第一阶段矢量量化器的处理。接下来,将详细地解释二阶段矢量量化器的第二阶段矢量量化器的处理(与第二阶段低频代码本309、第二阶段低频失真计算部件310、第二阶段高频失真计算部件311、第二阶段高频代码本312、第二阶段低频代码本搜索部件313和第二阶段高频代码本搜索部件314相对应的处理)。
第二阶段低频代码本309存储第二阶段低频代码矢量(C2Lm2L[i],i=1,...,NL,m2L=1,...,64)的64条条项。顺便提一下,通过执行直到计算很多处理帧中的语音信号的第一阶段VQ残留矢量的第一阶段矢量量化器的最后处理为止的处理、获得很多第一阶段VQ残留矢量的很多低频分量、把LBG算法应用到获得的很多第一阶段VQ残留矢量的很多低频分量上、提取第一阶段VQ残留矢量的典型的低频分量的64条条项和进一步把在上述文档8中等公开的广义Lloyd算法应用到所提取的第一阶段VQ残留矢量的典型的低频分量的64条条项上,可预先获得上述的代码矢量的64条条项。
另一方面,第二阶段高频代码本312存储通过应用由第二阶段低频代码本309使用的同样方法获得的第二阶段高频代码矢量的64条条项(C2Hm2H,i=NL+1,...,N,m2H=1,...,64),以便获取第一阶段VQ残留代码矢量的低频分量。
第二阶段低频失真计算部件310根据下列表达式(8)计算在从第一阶段VQ残留计算部件308供给的第一阶段VQ残留矢量的低频分量Xj(2)[i](i=1,...,NL,j=1,...,N1)和通过把从第二阶段低频代码本309读取的索引m2L的第二阶段低频代码矢量(C2Lm2L[i],i=1,...,NL)和MA预测系数的当前处理帧分量(MAN1cand_k[j]
[i],i=1,...,NL)相乘而获得的矢量(MAN1cand_k[j]
[i]*C2Lm2L[i],i=1,...,NL)之间的加权欧几里德失真并且向第二阶段低频代码本搜索部件313输出所计算的失真值d2Lj,m2L。
d2Lj,m2L=Σi=1NL{w[i]*(Xj(2)[i]-MAN1cand_k[j]
[i]*C2Lm2L[i])}2,j=1,...,N1,m2L=1,...,64]]>…表达式(8)这里,表达式(8)中的w[i]与表达式(6)中的“权”相同。
顺便提一下,假设第二阶段低频失真计算部件310对存储在第二阶段低频代码本309中的代码矢量的64条条项为每一个j都执行表达式(8)中的失真计算,并且把获得的所有加权欧几里德失真d2Lj,m2L(j=1,...,N1,m2L=1,...,64)输出到第二阶段低频代码本搜索部件313(总共输出N1*64个d2Lj,m2L)。
第二阶段高频失真计算部件311对矢量高频分量执行与第二阶段低频失真计算部件310的处理相同的处理并且向第二阶段高频代码本搜索部件314输出加权欧几里德失真d2Hj,m2H(j=1,...,N1,m2H=1,...,64)(总共输出N1*64个d2Hj,m2H)。
第二阶段低频代码本搜索部件313为从第二阶段低频失真计算部件310供给的加权欧几里德失真d2Lj,m2L(j=1,...,N1,m2L=1,...,64)的每一个j都指定用于最小化失真的一个索引m2L,并且分别将所指定的N1(j=1,...,N1)个索引记录在N2Lcand[j](j=1,...,N1)中和将所记录的N1个N2Lcand[j](j=1,...,N1)输出到预测残留解码部件315。
第二阶段高频代码本搜索部件314为从第二阶段高频失真计算部件311供给的加权欧几里德失真d2Hj,m2H(j=1,...,N1,m2H=1,...,64)的每一个j都指定用于最小化失真的一个索引m2H,并且分别将所指定的N1(j=1,...,N1)个索引记录在N2Hcand[j](j=1,...,N1)中和将所记录的N1个N2Hcand[j](j=1,...,N1)输出到预测残留解码部件315。
目前,已经详细地解释二阶段矢量量化器的第二阶段矢量量化器的处理。顺便提一下,到完成上述第二阶段矢量量化器的处理时,已经向预测残留解码部件315供给了下列四种信息片的N1(j=1,...,N1)个组合(1)N1cand_k[j]初步选择了其的4组MA预测系数(2)N1cand_m[j]初步选择了第一阶段代码矢量的128条条项
(3)N2Lcand[j]初步选择了第二阶段低频代码矢量的64条条项(4)N2Hcand[j]初步选择了第二阶段高频代码矢量的64条条项本实施例的下列解释将给出从由迄今为止的处理供给到预测残留解码部件315的N1个组合信息片中来指定最小化CD的组合信息的组合数目的处理的细节(与预测残留解码部件315、已解码LSF产生部件316、LSF/LPC系数转换部件317和319、LPC系数/LPC倒频谱转换部件318和320,LPC码最终搜索部件321相对应的处理)。
预测残留解码部件315分别从第一阶段代码本305、第二阶段低频代码本309和第二阶段高频代码本312中读取与索引信息的3条条项(N1cand_m[j]、N2Lcand[j]和N2Hcand[j)相对应的代码矢量(CN1cand_m[j]、C2LN2Lcand[j]和C2HN2Hcand[j]),根据下列表达式(9)通过使用这些代码矢量计算N1(J=1,...,N1)个所解码的预测残留矢量Cqj[i](i=1,...,N),记录/保留所计算的解码预测残留矢量并且向已解码LSF产生部件316输出解码预测残留矢量。
Cqj[i]=CN1cand_m[j][i]+C2LN2Lcand[j][i]+C2HN2Hcand[j][i],j=1,...,N1,i=1,.1,5N…表达式(9)其中表达式(9),C2LN2Lcand[j][i]=0.0(i=NL+1,...,N),C2HN2Hcand[j][i]=0.0(i=1,...,NL)预测残留解码部件315也将N1cand_k[j](j=1=1,...,N1)输出至已解码LSF产生部件316。
已解码LSF产生部件316从预测系数代码本302中读取与从预测残留解码部件315供给的N1cand_k[j](j=1,...,N1)相对应的MAN1cand_k[j]
[i],根据下列表达式(10)通过使用上述读取的MAN1cand_k[j]
[i]、从平均LSF存储部件323读取的平均LSF参数AV[i](i=1,...,N)、与从预测残留计算部件304供给的量化目标矢量的N1cand_k[j]相对应的XN1cand_k[j][j]和从预测残留解码部件315供给的Cqj[i](i=1,...,N),来计算N1(j=1,...,N1)个已解码LSF参数(其后称为“LSFqj[i],j=1,...,N1,i=1,...,N”),并且向LSF/LPC系数转换部件317输出所计算的解码LSF参数。
LSFqj[i]=AV[i]+XN1cand_k[j][i]+MAN1cand_k[j]
[i]*Cqj[i],j=1,...,N1,i=1,...,N…表达式(10)LSF/LPC系数转换部件317分别把已解码LSF产生部件316供给的N1(j=1,...,N1)个已解码LSF参数(LSFqj[i],j=1,...,N1,i=1,...,N)转换到已解码LPC系数(其后称为“LPCqj[i]j=1,...,N1,i=1,...,N”),并且向LPC系数/LPC倒频谱转换部件318输出已解码LPC系数。
LPC系数/LPC倒频谱转换部件318把从LSF/LPC系数转换部件317供给的N1(j=1,...,N1)个已解码LPC系数(LPCqj[i],i=1,...,N)转换到已解码LPC倒频谱(其后称为“QCEPj[i],i=1,...,Nc,j=1,...,N1”),并且向LPC码最终搜索部件321输出已解码LPC倒频谱。
LSF/LPC系数转换部件319把LSF参数转换到LPC系数并且向LPC系数/LPC倒频谱转换部件320输出LPC系数。LPC系数几PC倒频谱转换部件320把从LSF/LPC系数转换部件319供给的LPC系数转换到LPC倒频谱(其后称为“CEPt[i],i=1,...,Nc”),并且向LPC码最终搜索部件321输出LPC倒频谱。
LPC码最终搜索部件321根据下列表达式(11)计算在从LPC系数/LPC倒频谱转换部件320供给的LPC倒频谱(CEPt[i],i=1,...,Nc)和从LPC系数/LPC倒频谱转换部件318供给的N1(j=1,...,N1)个已解码LPC倒频谱(QCEPj[i],i=1,...,Nc,j=1,...,N1)之间的失真DISj(j=1,...,N1),并且然后比较DISj(j=1,...,N1)的大小和指定一个最小化失真的索引“J”。
DISj=Σi=1Nc(CEPt(i)-QCEPj(i))2,j=1,...,N1]]>…表达式(11)顺便提一下,从表达式(11)和表达式(3)之间的关系中显而易见的是当使用上述表达式(11)的最小化作为参考测量来指定索引时和当使用表达式(3)中的CD的最小化作为参考测量来指定索引时选择了相同的索引。
然后,结合了对应于指定索引“J”的下列四个信息条目的21-比特信息作为相关处理帧的LPC码输出(处理帧部件中表达频谱包络信息的代码),所述四个信息条目即(1)N1cand_k[j]其4组MA预测系数是最佳的(使用2比特)(2)N1cand_m[j]其128条第一阶段代码矢量的条项是最佳的(使用7比特)(3)N2Lcand[j]其64条第二阶段低频代码矢量的条项是最佳的(使用6比特)(4)N2Hcand[j]其64条第二阶段高频代码矢量的条项是最佳的(使用6比特)LPC代码本搜索向预测残留解码部件315供给对DISj进行最小化的索引J。然后,预测残留解码部件315从N1(j=1,...,N1)个保留的/存储的已解码预测残留矢量Cqj[i](i=1,...,N)之中选择与索引J对应的矢量CqJ[i],(i=1,...,N),并且向解码预测残留存储部件322输出它们。
解码预测残留存储部件322丢掉与多个过去存储的帧相对应的已解码预测残留矢量的最老的已解码预测残留矢量(由于本实施例执行第三阶次MA预测,所以存储了与过去3帧相对应的已解码预测残留矢量)并且重新保留从用于下一个处理帧的MA预测的预测残留解码部件315重新供给的CqJ[i](i=1,...,N)。
目前本解释描述了在把LSF参数输入到矢量量化装置之后直到输出LPC码为止的一系列处理的内容。另一方面,从矢量量化装置输出的LSF参数的解码器(也是通过转换LSF参数而获得的LPC系数的解码器)能包括如下步骤把LPC码分解成四个索引信息片(N1cand_k[J],N1cand_m[J],N2Lcand[J]和N2Hcand[J])的步骤;基于在分解LPC码的步骤中获得的每个索引信息片来计算已解码预测残留矢量的步骤和基于在计算已解码预测残留矢量的步骤中获得的已解码预测残留矢量来产生已解码LSF矢量的步骤。更具体地说,在分解LPC码的步骤中,首先把LPC码分解成四个索引信息片(N1cand_k[J],N1cand_m[J],N2Lcand[J]和N2Hcand[J])。然后,在计算已解码预测残留矢量的步骤中,通过基于索引信息N1cand_m[J]来从第一阶段代码本305读取第一阶段代码矢量CN1cand_m[J],然后基于索引信息N2Lcand[J]来从第二阶段低频代码本309读取第二阶段低频代码矢量C2LN2Lcand[J],基于索引信息N2Hcand[J]来从第二阶段高频代码本312读取第二阶段高频代码矢量C2HN2Hcand[J]和对三个读取的矢量执行在表达式(9)中描述的加法处理,则获得与LPC码相对应的已解码预测残留矢量CqJ[i](i=1,...,N)是可能的。然后,在创建已解码LSF矢量的步骤中,通过从预测系数代码本302中读取与索引信息N1cand_k[J]相对应的MAN1cand_k[J]
[i]和根据表达式(10)使用读取的MAN1cand_k[j]
[i]、从平均LSF存储部件323读取的平均LSF参数AV[i](i=1,...,N)、与从预测残留计算部件304供给的量化目标矢量的N1cand_k[J]对应的XN1cand_k[J]和从预测残留解码部件315供给的CqJ[i](i=1,...,N),获得最终已解码LSF参数(其后称为“LSFqJ[i],i=1,...,N”)是可能的。顺便提一下,当把已解码LSF参数进一步转换到已解码LPC系数时,提供在产生已解码LSF矢量的上述步骤之后的具有与LSF/LPC系数转换部件317的功能相同功能的步骤是可能的。
当矢量量化LSF参数时,具有使用目前详细解释的第三阶次MA预测的2-阶段分离结构的矢量量化装置初步选择使用加权欧几里德失真作为测量的代码,并且从而能在使用CD(倒频谱失真)作为参考测量的预先选择之后选择用于剩余的备选者的最优代码。
因此,使用上述根据本实施例的矢量量化装置能解决传统技术的问题(由矢量量化装置选择的LPC码不匹配使CD最小化的代码矢量的索引的问题),而没有急剧增加LPC代码本搜索需要的计算量,并且改善了LPC参数矢量量化装置的性能。
顺便提一下,根据本发明的矢量量化装置,第一阶段VQ预选择部件307控制将被初步选择的代码矢量的数量并且从而能自由地控制如在实施例1的情况中的LPC代码本搜索需要的计算量的增加。即,本发明通过考虑到LPC代码本搜索所需要的计算量的增加来改善矢量量化器的性能。
而且,本实施例已经描述了预先确定由第一阶段VQ预选择部件307留下的代码矢量备选者的数量N1的情况(通常通过实验或例如8、16、32和64的经验值来确定N1),但是使用其它预选择的方法也是可能的,例如,设置作为加权欧几里德失真的门限并且留下其加权欧几里德失真比所设置的门限小的备选者作为在预先选择之后的备选者,而且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经描述了第一阶段VQ预选择部件307使用上述表达式(2)中的加权欧几里德失真作为测量来初步选择代码矢量的情况,但是当使用其数学表达式是不同于上述表达式(2)的、例如在上述提到的文档4中表达式(8)或表达式(10)的加权欧几里德失真时也能实现本发明,并且在这种情况中也能获得相似于本实施例的这些效果/作用。
顺便提一下,关于加权欧几里德失真的“权”,已经提出了各种计算方法(即,根据在文档5中描述的LSF参数的临近元素之间的失真来执行加权的方法或根据在文档6中描述的量化目标的功率谱来执行加权的方法),但是本发明是可应用到与计算“权”的方法无关的情况中,并且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经描述了输入矢量是LSF矢量的情况,但是本实施例也可应用到其中表示语音信号例如LSP矢量、PARCOR系数或LPC矢量的短时频谱包络信息的其它参数被矢量量化的情况下,并且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经描述了LPC码最终搜索部件321使用CD(倒频谱)作为测量来指定最终LPC码的情况,但是用具有从LPC系数计算FFT功率谱的功能的LPC系数/FFT功率谱计算部件来替代LPC系数/LPC倒频谱转换部件318和320也是可能的,并进一步把由LPC码最终搜索部件321执行的计算表达式从上述表达式(11)改变到上述表达式(4)中的平方根部分内的计算表达式,以便使用SD(频谱失真)来作为LPC码搜索部件的最终测量,并且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经为了解释的简单化而描述了具有所谓“使用第三阶次MA预测的2-阶段分离结构”的特定结构的矢量量化器的例子,但是本实施例也可应用到具有除了本例子之外的结构的LPC参数矢量量化装置上,在这种情况中也能获得相似的效果/作用。
上述解释的本实施例优先应用到在基于CELP系统或声音合成机系统的语音编码器/解码器中的语音信号的短时频谱包络信息的编码/解码上。
(实施例3)图6是显示根据实施例3的矢量量化装置的配置的方框图。顺便提一下,在图6中示出的与实施例2中解释的图5中的那些相同的矢量量化装置的分量被分配了与图5中那些附图标记相同的附图标记,并且将省略其详细的解释。
在图6中示出的矢量量化装置采用具有增加到图5中的矢量量化装置的低频比例因子代码本350和高频比例因子代码本360的配置。顺便提一下,在图6中,省略了部件301到306和316到323,以使图更容易观看。
顺便提一下,就象在实施例2中的情况中一样,矢量量化装置的配置很强地依靠整个语音编码器/解码器的比特速率和分配到LPC参数矢量量化装置的比特的数量。这里,为了解释的简单化,假设分配了具有20ms的时间间隔的每个处理帧21比特的比特信息。
而且,假设在本实施例中将解释的矢量量化装置也使用第三阶次MA(位移平均值)预测技术和使用每个处理帧4组(需要2比特作为切换信息)MA预测系数。而且,假设在本实施例中将解释的矢量量化装置使用2-阶段矢量量化技术。而且,假设在本实施例中将解释的矢量量化装置使用了用于两阶段矢量量化装置的第二阶段的分离矢量量化技术。顺便提一下,假设分别把7比特、6比特和6比特分配给第一阶段矢量量化器、第二阶段低频分量的矢量量化器和第二阶段高频分量的矢量量化器。
图6中的矢量量化装置执行在输入LSF参数后直到获得第一阶段矢量量化器的目标矢量为止的处理(与权值计算部件301、预测系数代码本302、MA预测器303、预测残留计算部件304相对应的处理)。顺便提一下,处理的细节与在实施例2中对应的部件的处理的细节是相同的,并且因此在本实施例中省略了对其的解释。
然后,图6中的矢量量化装置执行2-阶段矢量量化器的第一阶段矢量量化器的处理(与第一阶段代码本305、第一阶段失真计算部件306、第一阶段VQ预搜索部件307和第一阶段VQ残留计算部件308相对应的处理)。
下面将详细解释经由根据本实施例的矢量量化装置的2-阶段矢量量化器的第一阶段矢量量化器的处理。
第一阶段代码本305存储预测残留代码矢量的128条条项。通过执行一系列上述的直到对在很多处理帧中的语音信号计算出量化目标为止的处理、获得很多预测残留矢量、把LBG算法应用到获得的很多预测残留矢量上、提取预测残留矢量的典型样本的128条条项和把在上述文档8中公开的广义Lloyd算法等应用到提取的典型矢量的128条条项上,可预先获得128条预测残留代码矢量的条项。
第一阶段失真计算部件306根据下列表达式(6)计算在从预测残留计算部件304供给的第一阶段矢量量化器的目标矢量(Xk[i],i=1,...,N)和通过把从第一阶段代码本305中读取的索引m的预测残留代码矢量(Cm[i],i=1,...,N)和MA预测系数的当前处理帧分量(MAk
[i],i=1,...,N)相乘而获得的矢量(MAk
[i]*Cm[i],i=1,...,N)之间的加权欧几里德失真,并且向第一阶段VQ预选择部件307输出计算出的失真值。顺便提一下,由第一阶段失真计算部件306用与实施例2中相同的方法计算出加权欧几里德失真,其中实施例2中的方法是对用于产生存储在第一阶段代码本305中的128条项(m=1,...,128)预测残留代码矢量(Cm[i],i=1,...,N)的4组(k=1,...,4)MA预测系数和从预测残留计算部件304供给的目标矢量(Xk[i],i=1,...,N)的所有组合(512=128×4)进行计算。因此,在本实施例中也把总计512种失真dk,m(k=1,...,4,m=1,...,128)从第一阶段失真计算部件306输出到第一阶段VQ预选择部件307。
第一阶段VQ预选择部件307比较上述从第一阶段失真计算部件306供给的512种失真dk,m(k=1,...,4,m=1,...,128),选择N1种类型的k(对应于4组第三阶次MA预测系数的第三阶次预测系数组)和m(对应于第一阶段代码本305中的代码矢量的128条条项的代码矢量)的组合信息,并且分别把已选择的k和m记录进N1cand_k[j]和N1cand_m[j]中,并且把已记录的N1cand_k[j]和N1cand_m[j](j=1,...,N1)输出到第一阶段VQ残留计算部件308、预测残留解码部件315和已解码LSF产生部件316。而且,根据本实施例,第一阶段VQ预选择部件307也向低频比例因子代码本350和高频比例因子代码本360输出N1cand_m[j](j=1,...,N1)。
第一阶段VQ残留计算部件308根据下列表达式(7),通过使用与从第一阶段VQ预选择部件307供给的N1cand_k[j]和N1cand_m[j](j=1,...,N1)的N1组合的信息相对应的第三阶次预测系数组(从预测系数代码本302读取)和在第一阶段代码本中的代码矢量(从第一阶段代码本305中读取),计算在预选择处理后保留的N1个第一阶段VQ残留矢量Xj(2)[i](i=1,...,N,j=1,...,N1)并且向第二阶段低频失真计算部件310和第二阶段高频失真计算部件311输出所计算的N1个矢量。
顺便提一下,正象在实施例2的情况中一样,假设本实施例的第二阶段矢量量化器也具有分离结构,其把第一阶段VQ残留矢量分解成(分离成)低频分量(i=1,...,NL)和高频分量(i=NL+1,...,N)并且分别将各个矢量进行矢量量化。
因此,根据第二阶段矢量量化器的配置把由第一阶段VQ残留矢量计算部件308计算出的Xi(2)[i](i=1,...,N,j=1,...,N1)输出到第二阶段低频失真计算部件310和第二阶段高频失真计算部件311中。更具体地说,把Xj(2)[i](i=1,...,NL,j=1,...,N1)输出到第二阶段低频失真计算部件310和把Xj(2)[i](i=NL+1,...,N,j=1,...,N1)输出到第二阶段高频失真计算部件311。
这是由2-阶段矢量量化器的第一阶段矢量量化器进行的处理的解释。
图6中的矢量量化装置然后执行经由2-阶段矢量量化器的第二阶段矢量量化器的处理(与第二阶段低频代码本309、低频比例因子代码本350、第二阶段低频失真计算部件310、第二阶段高频失真计算部件311、高频比例因子代码本360、第二阶段高频代码本312、第二阶段低频代码本搜索部件313和第二阶段高频代码本搜索部件314相对应的处理)。因此,本实施例下面也将详细解释经由2-阶段矢量量化器的上述的第二阶段矢量量化器的处理。
顺便提一下,假设第二阶段低频代码本309存储64条第二阶段低频代码矢量((C2Lm2L[i],i=1,...,NL,m2L=1,...,64)的条项和第二阶段高频代码本312存储第二阶段高频代码矢量的64条条项(C2Hm2H[i],i=NL+1,...,N,m2H=1,...,64)。
而且,低频比例因子代码本350具有象在第一阶段代码本305中存储预测残留代码矢量一样地存储很多(在本实施例中128条项)低频比例因子(SF_low[j],j=1,2,...,N1)的功能和向第二阶段低频失真计算部件310和预测残留解码部件315输出与从第一阶段VQ预选择部件307供给的N1cand_m[j]相对应的低频比例因子(SF_low[N1cand_m[j]])的功能。而且,高频比例因子代码本360具有象在第一阶段代码本305中存储预测残留代码矢量一样地存储很多(在本实施例中128条条项)低频比例因子(SF_high[j],j=1,2,...,N1)的功能和向第二阶段高频失真计算部件311和预测残留解码部件315输出与从第一阶段VQ预选择部件307供给的N1cand_m[j]相对应的低频比例因子(SF_high[N1cand_m[j]])的功能。顺便提一下,假设低频比例因子(SF_low[j],j=1,2,...,N1)和高频比例因子(SF_high[j],j=1,2,...,N1)存储通过包含LBG算法和广义Lloyd算法的训练预先获得的在0.5到2.0范围之内的值。
第二阶段低频失真计算部件310根据下列表达式(12)计算在从第一阶段VQ残留计算部件308供给的第一阶段VQ残留矢量的低频分量Xj(2)[i](i=1,...,NL,j=1,...,N1)和通过把从第二阶段低频代码本309读取的索引m2L的第二阶段低频代码矢量(C2Lm2L[i],i=1,...,NL)乘以从低频比例因子代码本350供给的SF_low[N1cand_m[j]]和MA预测系数的当前处理帧分量(MAN1cand_k[j]
[i],i=1,...,NL)而获得的矢量(MAN1cand_k[j]
[i]*SF_low[N1cand_m[j]]*C2Lm2L[i],i=1,...,NL)之间的加权欧几里德失真,并且向第二阶段低频代码本搜索部件313输出所计算的失真值d2Lj,m2L。
d2Lj,m2L=Σi=1NL{w[i]*(Xj2[i]-MAN1cand_k[j]
[i]*SF_low[N1cand_m[j]]*C2Lm2L[i])}2,j=1,...,N1,m2L=1,...,64]]>
…表达式(12)其中在表达式(12)中的w[i]是与在表达式(6)中的w[i]相同的“权”。
顺便提一下,假设第二阶段低频失真计算部件310对存储在第二阶段低频代码本309中的代码矢量的64条条项为由第一阶段VQ预选择部件307指定的j的N1片中的每一个都执行根据上述的表达式(12)的失真计算,并且把所有计算的加权欧几里德失真d2Lj,m2L(j=1,...,N1,m2L=1,...,64)输出到第二阶段低频代码本搜索部件313(输出总数为N1*64个d2Lj,m2L)。
第二阶段高频失真计算部件311根据下列表达式(13)计算在从第一阶段VQ残留计算部件308供给的第一阶段VQ残留矢量的高频分量Xj(2)[i](i=NL+1,...,N,j=1,...,N1)和通过把从第二阶段高频代码本312读取的索引m2H的第二阶段高频代码矢量(C2Hm2H[i],i=NL+1,...,N)乘以从高频比例因子代码本360供给的SF_high[N1cand_m[j]]和MA预测系数的当前处理帧分量(MAN1cand_k[j]
[i],i=NL+1,...,N)而获得的矢量(MAN1cand_k[j]
[i]*SF_high[N1cand_m[j]]*C2Hm2H[i],i=NL+1,...,N)之间的加权欧几里德失真,并且向第二阶段高频代码本搜索部件314输出所计算的失真值d2Hj,m2H。
d2Hj,m2H=Σi=NL+1N{w[i]*(Xj2[i]-MAN1cand_k[j]
[i]*SF_high[N1cand_m[j]]*C2Hm2H[i])}2,j=1,...,N1,m2H=1,...,64]]>…表达式(13)其中在表达式(13)中的w[i]是与在表达式(6)中的w[i]相同的“权”。
顺便提一下,假设第二阶段高频失真计算部件311对存储在第二阶段高频代码本309中的代码矢量的64条条项为由第一阶段VQ预选择部件307指定的j的每一个N1分片都执行根据上述的表达式(13)的失真计算,并且把所有计算的加权欧几里德失真d2Hj,m2H(j=1,...,N1,m2H=1,...,64)输出到第二阶段高频代码本搜索部件313(输出总数为N1*64个d2Hj,m2H)。
第二阶段低频代码本搜索部件313指定用于从第二阶段低频失真计算部件310供给的加权欧几里德失真d2Lj,m2L(j=1,...,N1,m2L=1,...,64)的每个j的失真最小化的一个索引m2L,把指定的N1个(j=1,...,N1)索引记录进N2Lcand[j](j=1,...,N1)并且向预测残留解码部件315输出所记录的N1片N2Lcand[j](j=1,...,N1)。
第二阶段高频代码本搜索部件314指定用于从第二阶段低频失真计算部件310供给的加权欧几里德失真d2Hj,m2H(j=1,...,N1,m2H=1,...,64)的每个j的失真最小化的一个索引m2H,把指定的N1个(j=1,...,N1)索引记录进N2Hcand[j](j=1,...,N1)并且向预测残留解码部件315输出所记录的N1片N2Hcand[j](j=1,...,N1)。
这是对经由二阶段矢量量化器的第二阶段矢量量化器的处理的解释。顺便提一下,到完成经由上述第二阶段矢量量化器的处理的时候,已经向预测残留解码部件315供给了带有下列四种信息条目的N1(j=1,...,N1)片组合信息。
(1)N1cand_k[j]初步选择了4组MA预测系数(2)N1cand_m[j]初步选择了128条第一阶段代码矢量的条项(3)N2Lcand[j]初步选择了64条第二阶段低频代码矢量的条项(4)N2Hcand[j]初步选择了64条第二阶段高频代码矢量的条项本实施例的下列解释将给出对从供给到预测残留解码部件315的N1片组合信息指定最小化CD的信息组合的信息组合数量的处理的细节(与预测残留解码部件315、已解码LSF产生部件316、LSF/LPC系数转换部件317和319、LPC系数/LPC倒频谱转换部件318和320和LPC码最终搜索部件321相对应的处理)。
预测残留解码部件315基于所供给的索引信息N1cand_m[j]分别从第一阶段代码本305、低频比例因子代码本350和高频比例因子代码本360来读取第一阶段代码矢量CN1cand_m[j]、低频比例因子SF_low[N1cand_m[j]]和高频比例因子SF_high[N1cand_m[j]],并且进一步基于所供给的索引信息N2Lcand[j]从第二阶段低频代码本309读取第二阶段低频代码矢量C2LN2Lcand[j],并且进一步基于所供给的索引信息N2Hcand[j]从第二阶段高频代码本312读取第二阶段高频代码矢量C2HN2Hcand[j],并且使用这些代码矢量根据表达式(14)计算N1(J=1,...,N1)个已解码预测残留矢量Cqj[i](i=1,...,N),记录/保留所计算的已解码预测残留矢量并且向已解码LSF产生部件316输出它们。
Cqj[i]=CN1cand_m[j][i]+SF_low[N1cand_m[j]]*C2LN2Lcand[j][i]+SF_high[N1cand_m[j]]*C2HN2Hcand[j][i],j=1,...,N1,i=1,...,N
…表达式(14)其中表达式(14)中,C2LN2Lcand[j][i]=0.0(i=NL+1,...,N),C2HN2Hcand[j][i]=0.0(i=1,...,NL)。
预测残留解码部件315也将N1cand_k[j](j=1=1,...,N1)输出到已解码LSF产生部件316。
已解码LSF产生部件316从预测系数代码本302中读取与从预测残留解码部件315供给的N1cand_k[j](j=1,...,N1)相对应的MAN1cand_k[j]
[i],根据下列表达式(10)通过使用读取的MAN1cand_k[j]
[i]、从平均LSF存储部件323读取的平均LSF参数AV[i](i=1,...,N)、与从预测残留计算部件304供给的量化目标矢量的N1cand_k[j]相对应的XN1cand_k[j][i]和从预测残留解码部件315供给的Cqj[i](i=1,...,N)来计算N1(j=1,...,N1)个已解码LSF参数(其后称为“LSFqj[i],j=1,...,N1,i=1,...,N”),并且向LSF/LPC系数转换部件317输出所计算的解码LSF参数。
LSF/LPC系数转换部件317把从已解码LSF产生部件316供给的N1(j=1,...,N1)个已解码LSF参数(LSFqj[i],j=1,...,N1,i=1,...,N)转换到已解码LPC系数(其后称为“LPCqj[i],j=1,...,N1,i=1,...,N”),并且向LPC系数/LPC倒频谱转换部件318输出已解码LPC系数。
就象实施例2的情况一样,LPC系数/LPC倒频谱转换部件318把从LSF/LPC系数转换部件317供给的N1(j=1,...,N1)个已解码LPC系数(LPCqj[i],i=1,...,N)转换到已解码LPC倒频谱(其后称为“QCEPj[i],i=1,...,Nc,j=1,...,N1”),并且向LPC码最终搜索部件321输出已解码LPC倒频谱。
LSF/LPC系数转换部件319把LSF参数转换到LPC系数并且向LPC系数/LPC倒频谱转换部件320输出该LPC系数。LPC系数/LPC倒频谱转换部件320把从LSF/LPC系数转换部件319供给的LPC系数转换到LPC倒频谱(其后称为“CEPt[i],i=1,...,Nc”),并且向LPC码最终搜索部件321输出该LPC倒频谱。
LPC码最终搜索部件321首先根据下列表达式(11)计算在从LPC系数/LPC倒频谱转换部件320供给的LPC倒频谱系数(CEPt[i],i=1,...,Nc)和从LPC系数/LPC倒频谱转换部件318供给的N1(j=1,...,N1)个已解码LPC倒频谱(QCEPj[i],i=1,...,Nc,j=1,...,N1)之间的失真DISj(j=1,...,N1),比较所计算的N1片的DISj的大小,和指定一个最小化DISj的索引“J”并且输出与所指定的索引“J”相对应的结合下列四种信息条目的21-比特信息,即(1)N1cand_k[J]4组MA预测系数是最佳的(使用2比特)(2)N1cand_m[J]128条第一阶段代码矢量的条项是最佳的(使用7比特)(3)N2Lcand[J]64条第二阶段低频代码矢量的条项是最佳的(使用6比特)(4)N2Hcand[J]64条第二阶段高频代码矢量的条项是最佳的(使用6比特)就象相关处理帧的LPC码一样(表示在处理帧部件上频谱包络信息的代码)。
就象实施例2的情况中的,LPC码最终搜索部件321也向预测残留解码部件315供给用于最小化DISj的索引J。
然后,预测残留解码部件315从N1(j=1,...,N1)个保留的/存储的已解码预测残留矢量Cqj[i](i=1,...,N)之中选择与索引J对应的矢量CqJ[i],(i=1,...,N),并且向解码预测残留存储部件322输出这些矢量。
解码预测残留存储部件322丢掉与多个过去存储的帧相对应的已解码预测残留矢量中的最老的已解码预测残留矢量(由于本实施例执行第三阶次MA预测,所以存储了与过去3个帧相对应的已解码预测残留矢量)并且重新保留从用于下一个处理帧中的MA预测的预测残留解码部件315重新供给的CqJ[i](i=1,...,N)。
目前本解释描述了在把LSF参数输入到矢量量化装置之后直到输出LPC码为止的一系列处理的内容。
另一方面,从矢量量化装置输出的LSF参数的解码器(也是通过转换LSF参数而获得的LPC系数的解码器)能包括如下步骤把LPC码分解成四个索引信息片(N1cand_k[J],N1cand_m[J],N2Lcand[J]和N2Hcand[J])的步骤;基于在分解LPC码的步骤中获得的每个索引信息片来计算已解码预测残留矢量的步骤和基于在计算已解码预测残留矢量的步骤中获得的已解码预测残留矢量来产生已解码LSF矢量的步骤。更具体地说,在分解LPC码的步骤中,首先把LPC码分解成四个索引信息片(N1cand_k[J],N1cand_m[J],N2Lcand[J]和N2Hcand[J])。然后,在计算已解码预测残留矢量的步骤中,通过基于索引信息N1cand_m[J]来从第一阶段代码本305、低频比例因子代码本350和高频比例因子代码本360读取第一阶段代码矢量CN1cand_m[j]、低频比例因子SF_low[N1cand_m[j]]和高频比例因子SF_high[N1cand_m[j]],然后基于索引信息N2Lcand[J]来从第二阶段低频代码本309读取第二阶段低频代码矢量C2LN2Lcand[J],进一步基于索引信息N2Hcand[J]来从第二阶段高频代码本312读取第二阶段高频代码矢量C2HN2Hcand[J]和使用读取的矢量的3个条项和比例因子的2个条项来根据表达式(14)执行乘积处理的和,则获得与LPC码相对应的已解码预测残留矢量CqJ[i](i=1,...,N)是可能的。然后,在产生已解码LSF矢量的步骤中,通过从预测系数代码本302中读取与索引信息N1cand_k[J]相对应的MAN1cand_k[j]
[i],和根据表达式(10)使用读取的MAN1cand_k[J]
[i]、从平均LSF存储部件323读取的平均LSF参数AV[i](i=1,...,N)、与从预测残留计算部件304供给的量化目标矢量的N1cand_k[j]对应的XN1cand_k[J]和从预测残留解码部件315供给的CqJ[i](i=1,...,N),获得最终已解码LSF参数(其后称为“LSFqJ[i],i=1,...,N”)是可能的。顺便提一下,当把已解码LSF参数进一步转换到已解码LPC系数时,进一步提供在产生已解码LSF矢量的步骤之后的具有与LSF/LPC系数转换部件317的功能相同功能的步骤是可能的。
根据具有使用第三阶次MA预测的2-阶段分离结构的并还配有上面详细解释的低频比例因子代码本350和高频比例因子代码本360的矢量量化装置,使在整个解代码矢量中的第二阶段代码矢量的贡献适应于在第一阶段矢量量化处理中所选择的代码矢量CN1cand_m[j](实际上与代码矢量CN1cand_m[j]相对应的索引N1cand_m[j])并且控制它,并且从而减少了量化失真,使用欧几里德失真作为测量来执行代码的预先选择和在预先选择之后使用CD(倒频谱失真)作为剩余备选者的参考测量来选择最优代码,如此过程使得与传统的矢量量化装置相比具有高精度的LSF参数矢量量化成为可能。
顺便提一下,根据本实施例的矢量量化装置,就象在实施例2的情况中一样,通过控制将由第一阶段VQ预选择部件307初步选择的代码矢量的数量来自由地控制LPC代码本搜索需要的计算量中的增加是可能的。即,本实施例使在考虑到LPC代码本搜索需要的计算量的增加的情况时改善矢量量化器的性能成为可能。
而且,本实施例已经描述了由第一阶段VQ预选择部件307留下的代码矢量的备选者的数量N1的情况(通常通过实验或例如8、16、32和64的经验值来确定N1),但是使用其它预先选择的方法也是可能的,例如,为加权欧几里德失真设置门限并且留下其加权欧几里德失真比所设置的门限小的备选者作为在预先选择之后的备选者,而且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经描述了第一阶段VQ预选择部件307使用表达式(2)中的加权欧几里德失真作为测量来初步选择代码矢量的情况,但是当使用其数学表达式不同于在上述提到的文档4中表达式(8)和(10)的加权欧几里德失真时也能实现本实施例,并且在这种情况中也能获得相似于本实施例的这些效果/作用。
顺便提一下,关于加权欧几里德失真的“权”,目前已经提出了各种计算方法(即,根据在文档5中描述的LSF参数的临近元素之间的失真来执行加权的方法或根据在文档6中描述的量化目标的功率谱来执行加权的方法),但是本发明可应用到与计算“权”的方法无关的情况下,并且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经描述了输入矢量是LSF参数的情况,但是本实施例也可应用到其中表示语音信号例如LSP参数、PARCOR系数和LPC系数的短时频谱包络信息的其它参数被矢量量化的情况中,并且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经描述了LPC码最终搜索部件321使用CD(倒频谱失真)作为测量来指定最终LPC码的情况,但是用具有从LPC系数计算FFT功率谱的功能的LPC系数/FFT功率谱计算部件来替代LPC系数/LPC倒频谱转换部件318和320也是可能的,并进一步把由LPC码最终搜索部件321使用的计算表达式从表达式(11)改变到在表达式(4)中的平方根部分中的计算表达式,以便使用SD(频谱失真)来作为LPC码搜索部件的最终测量,并且在这种情况中也能获得相似的效果/作用。
而且,本实施例已经描述了具有所谓“使用由比例因子伴随的第三阶次MA预测的2-阶段分离结构”的特定结构的矢量量化器的例子,但是本实施例也可应用到具有除了本例子之外的结构的LPC参数矢量量化装置上,在这种情况中也能获得相似的效果/作用。
上述解释的本实施例优先应用到在基于CELP系统或声音合成机系统的语音编码器/解码器中的语音信号上的短时频谱包络信息的编码/解码上。
(实施例4)图7是显示根据本发明的实施例4的语音信号发送装置和语音信号接收装置的配置的方框图。在图7中,由发送装置的输入装置401把语音信号转换到电信号并且将其输出到A/D转换装置402。A/D转换装置402把从输入装置401输出的(模拟)语音信号转换到数字信号并且把该信号输出到语音编码器403。
语音编码器403使用稍后将描述的语音编码方法来编码从A/D转换装置402输出的数字语音信号,并且向RF调制装置404输出所编码的信息。RF调制装置404把从语音编码器403输出的语音编码信息转换到在例如无线电频率波段的传播介质上传送的信号,并且向发送天线405输出信号。发送天线405发送从RF调制装置404输出的输出信号,作为无线电信号(RF信号)。
由接收装置的接收天线406接收从发送装置发送的RF信号并且将其输出到RF解调制装置407。RF解调制装置407解调来自从接收天线406输出的RF信号的语音编码信息并且将其输出到语音解码器408。
语音解码器408根据稍后将描述的语音解码方法通过使用从RF解调制装置407输出的语音编码信息来解码语音信号,并且将其输出到D/A转换装置409。D/A转换装置409把从语音解码器408输出的数字语音信号转换为模拟电信号,并且将其输出到输出装置410。输出装置410把电信号转换到空气振动并且将其作为人耳听得见的声波输出。
通过在上述配置中提供至少一个语音信号发送装置和接收装置,构成在移动通信系统中的基站装置和通信终端装置是可能的。
上述语音信号发送装置的特征在于语音编码器403。图8是显示语音编码器403的配置的方框图。在图8中,输入语音信号是从图7中的A/D转换装置402输出的信号并且输入到预处理部件501中。预处理部件501执行用于去除DC分量的高通滤波处理、用于使随后对输入语音信号的编码处理的性能得到改善的波形整形处理和预加重处理,并且向LPC分析部件502、加法器505和参数判决部件513(Xin)输出该已处理的信号。
LPC分析部件502使用Xin执行线性预测分析并且向LPC量化部件503输出结果(LPC矢量/LPC系数)。LPC量化部件503把从LPC分析部件502输出的LPC矢量转换成LSF参数并且使用在实施例1、2和3中示出的方法对通过转换获得的LSF矢量进行矢量量化,并且向多路复用部件514输出由矢量量化获得的LPC码(L)。
LPC量化部件503使用在在实施例1、2和3中示出的LPC矢量解码方法来进一步获得在LSF域中的已解码LPC矢量,把获得的已解码LPC(LSF)矢量转换成已解码LPC系数,并且向合成滤波器504输出经由转换获得的已解码LPC系数。
合成滤波器504使用已解码LPC系数和从加法器511输出的激励矢量来执行滤波合成,并且向加法器505输出合成信号。加法器505计算在Xin和合成信号之间的误差信号,并且向感觉加权部件512输出误差信号。
感觉加权部件512对从加法器505输出的误差信号执行感觉加权,计算在Xin和感觉加权域中的合成信号之间失真并且将其输出到参数判决部件513。参数判决部件513判决将从自适应激励代码本506、固定激励代码本508和量化增益产生部件507产生的信号,以便使从感觉加权部件512输出的编码失真最小化。
顺便提一下,不仅通过最小化从感觉加权部件512输出的编码失真来进一步改善编码性能是可能的,而且通过使用Xin来判决将从使用另一种编码失真的三个装置中产生的信号来进一步改善编码性能也是可能的。
自适应激励代码本506对过去从加法器511输出的激励信号进行缓冲,从由自参数判决部件513输出的信号(A)指定的位置上来提取自适应激励矢量并且将它们输出到乘法器509。固定激励代码本508向乘法器510输出具有由从参数判决部件513输出的信号(F)指定的形状的矢量。
量化增益产生部件507分别向乘法器509和510输出由从参数判决部件513输出的信号(G)所指定的自适应激励增益和固定激励增益。
乘法器509把从自适应激励代码本506输出的自适应激励矢量和从量化增益产生部件507输出的量化自适应激励增益进行相乘并且向加法器511输出相乘结果。乘法器510把从固定激励代码本508输出的固定激励增益和从量化增益产生部件507输出的固定激励矢量进行相乘,并且向加法器511输出相乘结果。
加法器511分别从乘法器509和510输入在增益乘法之后的自适应激励矢量和固定激励矢量,执行矢量相加并且向合成滤波器504和自适应激励代码本506输出相加结果。
最后,多路复用部件514从LPC量化部件503输入表示量化LPC的代码L,从参数判决部件513输入表示自适应激励矢量的代码A、表示固定激励矢量的代码F和表示量化增益的代码G,并且对这些片的信息进行多路复用,并且向发送路径输出已多路复用的信息,作为已编码信息。
图9是显示图7中语音解码器408的配置的方框图。在图9中,由解多路复用部件601把从RF解调部件407输出的多路复用的编码信息解多路复用成单个编码信息片。
把解多路复用的LPC码L输出到LPC解码部件602,把解多路复用的自适应激励矢量码A输出到自适应激励代码本605,把解多路复用的激励增益码G输出到量化增益产生部件606和把解多路复用的固定激励矢量码F输出到固定激励代码本607。
LPC解码部件602使用在实施例1、2和3中示出的已解码LPC矢量产生方法来获得来自从解多路复用部件601输出的码L(其指的是在实施例1、2和3中LPC码)的已解代码LPC矢量,把获得的已解码LPC矢量转换到已解码LPC系数并且向合成滤波器603输出经由转换获得的已解码LPC系数。
自适应激励代码本605从由解多路复用部件601输出的码A指定的位置来提取自适应激励矢量并且将其输出到乘法器608。固定激励代码本607产生由从解多路复用部件601输出的码F指定的固定激励矢量并且将其输出到乘法器609。
量化增益产生部件606解码由从解多路复用部件601输出的激励增益码G指定的自适应激励矢量增益和固定激励矢量增益并且分别向乘法器608和609输出增益。乘法器608把自适应代码矢量和自适应代码矢量增益进行相乘,并且向加法器610输出相乘结果。乘法器609把固定代码矢量和固定代码矢量增益进行相乘,并且向加法器610输出相乘结果。
加法器610把从乘法器608和609输出的在增益相乘之后的自适应激励矢量和固定激励矢量进行相加并且向合成滤波器603输出相加结果。合成滤波器603通过使用从加法器610输出的激励矢量作为声源信号和由从LPC解码部件602供给的已解码LPC系数作为滤波系数构成的合成滤波器来执行滤波合成,并且向后处理部件604输出已合成的信号。
后处理部件604执行改善例如共振峰加重和/或音调加重的主观语音质量的处理,和改善平稳噪声段的主观语音质量的处理等,并且输出所处理的信号作为最终已解码语音信号。
因此,把根据本发明的LPC矢量量化装置应用到语音编码器/解码器使得获得比通过使用传统的矢量量化装置的语音编码器/解码器的合成语音具有更高质量的合成语音成为可能。
而且,上述的语音编码器/解码器也可应用到通信装置上,例如在数字无线通信系统中的基站装置和移动台。这使得获得已合成的语音比使用数字无线通信系统中的传统的矢量量化装置获得的已合成的语音具有更高的质量成为可能。
本发明不局限于上述的1到3的实施例,但是能以各种变化的方式来实现。例如,已经将根据实施例1、2和3的LPC矢量的矢量量化/解码解释为矢量量化装置或语音编码器/语音解码器,但是通过软件也能实现LPC矢量的矢量量化/解码。例如,把上述的LPC矢量量化/解码程序存储在ROM中并且根据来自CPU的指令执行程序是可能的。而且,把LPC矢量量化/解码程序存储在计算机可读存储介质中、将这个存储介质的LPC参数矢量量化/解码程序记录在计算机的RAM中并且根据矢量量化程序对其进行操作是可能的。在这种情况中也能获得上述的与实施例1、2和3的那些作用/效果相似的作用/效果。
正如从上述解释中所显而易见的,当表示语音信号的短时频谱包络信息的LPC参数被矢量量化时,本发明能够使用(加权)欧几里德失真作为测量来初步选择小数量的代码矢量,使用相当数量的谱空间的失真例如CD(倒频谱失真)或SD(频谱失真)作为参考测量来执行代码本搜索(最终LPC码的说明),并且随后使用仅仅一个(加权)欧几里德失真作为用于代码本搜索的参考测量来把比传统的矢量量化装置更高的性能提供给矢量量化器(在例如CD和SD的谱空间中的失真小于传统的失真)。
而且,把根据本发明的LPC矢量量化装置应用到语音编码器/解码器使得获得比通过使用传统的矢量量化装置的语音编码器/解码器的合成语音信号具有更高质量的合成信号成为可能。
本申请基于2000年11月30日提交的日本专利申请第2000-366191号,这里引用其全文作为参考。
工业应用性本发明最好应用到用于在由因特网通信和移动通信系统等表示的分组通信系统的领域中来增强语音信号发送效率的语音编码器/解码器上。
权利要求
1.一种LPC参数矢量量化装置,包括第一计算部件,用于通过使用第一失真评估测量来计算在从存储很多代码矢量的代码本逐次读出的多个代码矢量和量化目标之间的失真预选择部件,用于根据所述第一失真评估测量来从所述很多代码矢量中选择减少失真量的代码矢量;第二计算部件,用于通过使用不同于所述第一失真评估测量的第二失真评估测量来计算在已初步选择的代码矢量和所述量化目标之间的失真;和最终搜索部件;用于从已初步选择的代码矢量中根据所述第二失真评估测量来指定最小化失真量的代码矢量,并输出所指定代码矢量的索引信息。
2.根据权利要求1的LPC参数矢量量化装置,其中该量化目标是代表语音信号的短时频谱包络信息的LPC参数。
3.根据权利要求2的LPC参数矢量量化装置,其中该LPC参数是通过执行在处理帧部件中的语音信号上的线性预测分析获得的LPC系数。
4.根据权利要求2的LPC参数矢量量化装置,其中该LPC参数是通过把执行在处理帧部件的语音信号上的线性预测分析获得的LPC系数转换到频域的参数所获得的参数。
5.根据权利要求2的LPC参数矢量量化装置,其中该LPC参数是通过把执行在处理帧部件的语音信号上的线性预测分析获得的LPC系数进行转换而获得的LSF参数。
6.根据权利要求2的LPC参数矢量量化装置,其中该LPC参数是通过把由执行在处理帧部件的语音信号上的线性预测分析获得的LPC系数进行转换而获得的LSP参数。
7.根据权利要求2的LPC参数矢量量化装置,其中用于计算在从代码本逐次读出的该代码矢量和该量化目标之间的失真的第一失真评估测量是欧几里德失真。
8.根据权利要求2的LPC参数矢量量化装置,其中用于计算在从代码本逐次读出的该代码矢量和该量化目标之间的失真的第一失真评估测量是加权欧几里德失真。
9.根据权利要求2的LPC参数矢量量化装置,其中用于计算在已初步选择的代码矢量和所述量化目标之间的失真的第二失真评估测量是评估在频率谱空间中的失真量的测量。
10.根据权利要求9的LPC参数矢量量化装置,其中用于计算在已初步选择的代码矢量和所述量化目标之间的失真的第二失真评估测量是倒频谱失真(CD)。
11.根据权利要求9的LPC参数矢量量化装置,其中用于计算在已初步选择的代码矢量和所述量化目标之间的失真的第二失真评估测量是频谱失真(SD)。
12.根据权利要求2的LPC参数矢量量化装置,其中由预选择部件初步选择的代码矢量的数目是预先指定的。
13.根据权利要求2的LPC参数矢量量化装置,其中该预选择部件通过第一失真评估测量来预置门限作为失真量,并初步选择代码矢量从而使经由第一失真评估测量的失真量小于所述设置门限。
14.一种LPC参数解码器,包括输入部件,用于输入由根据权利要求2的矢量量化装置输出的索引信息;和读取部件,用于从与所述矢量量化装置的代码本相同的代码本中读取任何代码矢量和读取存储在所述代码本中的多个代码矢量;其中与所述索引信息对应的代码矢量被从所述代码本中读取并且将该读取的代码矢量作为解码的LPC参数输出。
15.一种LPC参数矢量量化装置,包括失真计算部件,用于计算在从存储很多LSF代码矢量的LSF代码本中逐次读取的代码矢量和量化目标之间的欧几里德失真;LPC码预选择部件,用于初步选择减少所述欧几里德失真的代码矢量索引并且产生与其各自初步选择的索引对应的解码的LSF参数;第一LSF/LPC系数转换部件,用于把所述解码的LSF参数转换到它们各自的已解码LPC系数;第一LPC系数/LPC倒频谱转换部件,用于把所述解码LPC系数转换成它们各自的LPC倒频谱;第二LSF/LPC系数转换部件,用于把作为量化目标的LSF参数转换成LPC系数;第二LPC系数/LPC倒频谱转换部件,用于把由转换所述量化目标而获得的LPC系数转换成LPC倒频谱;LPC码最终搜索部件,用于计算在通过转换从所述第一和第二LPC系数/LPC倒频谱转换部件供给的量化目标而获得的LPC倒频谱和通过转换解码的LSF参数而获得的LPC倒频谱之间的倒频谱失真(CD),并且输出与最小化了所述倒频谱失真的LPC倒频谱对应的LSF代码矢量的索引,作为LPC码。
16.一种LPC参数矢量量化装置包括失真计算部件,用于计算在从存储很多LSF代码矢量的LSF代码本中逐次读取的代码矢量和量化目标之间的欧几里德失真;LPC码预搜索部件,用于初步选择减少所述欧几里德失真的代码矢量索引并且产生与其各自初步选择的索引对应的解码的LSF参数;LSF/LPC系数转换部件,用于把所述解码的LSF参数转换到它们各自的已解码LPC系数;第一LPC系数/FFT功率谱计算部件,用于从所述解码的LPC系数中计算FFT功率谱;LSF/LPC系数转换部件,用于把作为量化目标的LSF参数转换到LPC系数;第二LPC系数/FFT功率谱计算部件,用于从由转换所述量化目标而获得的LPC系数中计算FFT功率谱;LPC码最终搜索部件,用于计算在通过转换从所述第一和第二LPC系数/FFT功率谱计算部件供给的量化目标而获得的FFT功率谱和通过转换解码的LSF参数而获得的FFT功率谱之间的频谱失真(SD),并且根据最小化所述频谱失真的FFT功率谱输出LSF代码矢量索引,作为LPC码。
17.一种LPC参数解码器包括输入部件,用于输入由根据权利要求15的LSF参数矢量量化装置输出的LPC码;和读取部件,用于从与用于矢量量化的代码本相同的代码本中读取任意代码矢量和读取存储在所述代码本中的多个代码矢量;其中与所述输入LPC码对应的代码矢量被从所述代码本中读取并且被作为解码的LPC参数输出。
18.根据权利要求2的LPC参数矢量量化装置,用于执行预测矢量量化。
19.根据权利要求2的LPC参数矢量量化装置,用于执行分离矢量量化。
20.根据权利要求2的LPC参数矢量量化装置,用于执行预测矢量量化和分离矢量量化。
21.根据权利要求2的LPC参数矢量量化装置,用于执行三阶次MA预测矢量量化、2-阶段矢量量化和分离矢量量化,矢量量化作为量化目标输入的LPC参数,并且输出LPC码。
22.一种具有2-阶段分离结构的LSF参数矢量量化装置,用于通过从输入LSF参数中区分预先存储的平均LSF参数来计算差分矢量、计算与所述差分矢量对应的预测矢量、通过进一步从所述差分矢量中区分所述预测矢量来计算预测残留矢量、矢量量化该预测残留矢量并且输出LPC码,所述装置包括第一阶段矢量量化部件,用于通过使用存储在第一阶段代码本中的多个预测残留矢量和使用作为失真评估测量的加权欧几里德失真来矢量量化所述预测残留矢量;和第二阶段矢量量化部件,用于通过使用存储在第二阶段低频代码本中的多个第一阶段VQ残留矢量低频分量和存储在第二阶段高频代码本中的多个第一阶段VQ残留矢量高频分量和使用作为失真评估测量的倒频谱失真(CD)来矢量量化由所述第一阶段矢量量化部件产生的第一阶段VQ残留矢量。
23.一种具有2-阶段分离结构的LSF参数矢量量化装置,用于通过从输入LSF参数中区分预先存储的平均LSF参数来计算差分矢量、计算与所述差分矢量对应的预测矢量、通过进一步从所述差分矢量中区分所述预测矢量来计算预测残留矢量、矢量量化该预测残留矢量并且输出LPC码,所述装置包括第一阶段矢量量化部件,用于通过使用存储在第一阶段代码本中的多个预测残留矢量和使用作为失真评估测量的加权欧几里德失真来矢量量化所述预测残留矢量;和第二阶段矢量量化部件,用于通过使用在低频比例因子代码本中存储的与预测残留矢量的条项数目相同的低频比例因子、在高频比例因子代码本中存储的第一阶段代码本中存储的与预测残留矢量的条项数目相同的高频比例因子和存储在第二阶段高频代码本中的高频代码矢量以及使用作为失真评估测量的倒频谱失真(CD)来矢量量化由所述第一阶段矢量量化部件产生的第一阶段VQ残留矢量。
24.一种LPC参数解码器,用于输入由根据权利要求21的LPC参数矢量量化装置输出的LPC码和基于所述输入LPC码产生已解码LPC参数。
25.一种LSF参数解码器,用于把由根据权利要求22的矢量量化装置输出的LPC码分解成索引信息,基于这个索引信息计算已解码预测残留矢量和基于这个已解码预测残留矢量产生已解码LSF参数,其中所述LSF参数解码器从它们各自代码本中读取与所述索引信息相对应的第一阶段代码矢量、第二阶段低频代码矢量和第二阶段高频代码矢量,并把读取的所述三个代码矢量相加,从而产生已解码预测残留矢量。
26.一种LSF参数解码器,用于把由根据权利要求23的矢量量化装置输出的LPC码分解成索引信息,基于这个索引信息计算已解码预测残留矢量和基于这个已解码预测残留矢量产生已解码LSF参数,其中所述LSF参数解码器从它们各自代码本中读取与所述索引信息相对应的第一阶段代码矢量、第二阶段低频代码矢量、第二阶段高频代码矢量和低频比例因子和高频比例因子,计算读取的所述三个代码矢量和两个比例因子的乘积和,从而产生已解码预测残留矢量。
27.一种LPC系数解码器,包括把由根据权利要求25的LSF参数解码器产生的已解码LSF参数转换成已解码LPC系数的函数。
28.一种LPC系数解码器,用于把由根据权利要求26的LSF参数解码器产生的已解码LSF参数转换成已解码LPC系数。
29.一种存储LPC参数矢量量化程序的计算机可读记录介质,所述LPC参数矢量量化程序包括如下步骤通过使用第一失真评估测量来计算在从存储很多代码矢量的代码本逐次读出的多个代码矢量和量化目标之间的失真的步骤;从所述很多代码矢量中由所述第一失真评估测量来初步选择减少失真量的代码矢量的步骤;通过使用不同于所述第一失真评估测量的第二失真评估测量来计算在已初步选择的代码矢量和所述量化目标之间的失真的步骤;和从已初步选择的代码矢量中由所述第二失真评估测量来指定最小化失真量的代码矢量并且输出该已指定的代码矢量的索引信息的步骤。
30.一种存储LPC参数矢量解码程序的计算机可读记录介质,所述LPC参数矢量解码程序包括如下步骤从代码本中读取与由根据权利要求23的矢量量化程序输出的索引信息对应的代码矢量;和输出该已读取的代码矢量,作为已解码LPC参数。
31.一种使用根据权利要求2的LPC参数矢量量化装置的语音编码器,包括量化/编码输入语音信号的频谱特性的部件;表示输入语音信号的循环分量的自适应激励代码本;固定激励代码本;通过使用从所述固定的激励代码本和所述自适应激励代码本产生的激励矢量以及所述参数来合成已合成的语音信号的部件;和用于确定来自所述固定的代码本和所述自适应代码本的输出,以便减少在输入语音信号和所述合成语音信号之间的失真的部件。
32.一种使用根据权利要求14的LPC参数解码器的语音解码器,包括解码表示由语音编码器编码的频谱特性的参数的部件;固定激励代码本;表示已合成语音信号的循环分量的自适应激励代码本;和解码来自所述固定激励代码本和所述自适应激励代码本的由所述语音编码器确定的激励矢量,并把来自已解码激励矢量的已合成语音信号和所述参数进行合成的部件。
33.一种配有语音编码器的语音信号发送装置,使用根据权利要求2的LPC参数矢量量化装置的所述语音编码器包括量化/编码输入语音信号的频谱特性的部件;表示输入语音信号的循环分量的自适应激励代码本;固定激励代码本;通过使用从所述固定激励代码本和所述自适应激励代码本产生的激励矢量和所述参数,来合成已合成的语音信号的部件;和用于确定来自所述固定的代码本和所述自适应代码本的输出,以便减少在输入语音信号和所述合成语音信号之间的失真的部件。
34.一种配有语音编码器的语音信号接收装置,使用根据权利要求14的LPC参数解码器的所述语音解码器包括解码表示由语音编码器编码的频谱特性的参数的部件;固定激励代码本;表示已合成语音信号的循环分量的自适应激励代码本;和解码来自所述固定激励代码本和所述自适应激励代码本的由所述语音编码器确定的激励矢量,并把来自已解码激励矢量的已合成语音信号和所述参数进行合成的部件。
全文摘要
通过使用加权欧几里德失真作为测量来从存储在LSF代码本(101)中的很多LOPC代码矢量中初步选择出LPC代码矢量,并且通过使用谱空间中的失真数量作为测量来对初步选择之后留下来的LPC代码矢量执行代码-最终-选择,从而提高LPC参数矢量量化装置的量化性能以因此改善语音编码器/解码装置的合成语音的质量。
文档编号G10L19/07GK1488135SQ01822198
公开日2004年4月7日 申请日期2001年11月29日 优先权日2000年11月30日
发明者安永和敏, 幸, 森井利幸, 江原宏幸, 则, 间野一则, 佑介, 日和崎佑介 申请人:松下电器产业株式会社, 日本电信电话株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1