线性预测分析合成的编码方法和编码器的制作方法

文档序号:2821988阅读:492来源:国知局
专利名称:线性预测分析合成的编码方法和编码器的制作方法
技术领域
本发明涉及一种线性预测分析合成(LPAS)的编码方法和编码器。
本发明
背景技术
蜂窝式应用中主要的编码器模型为代码受激线性预测(CELP)技术。众所周知,这种波形匹配过程在至少8kb/s或更大的位速率情况下能很好运行。然而,当位速率降低时,就会由于每个参数可用的位数降低而使编码效率下降,从而使量化准确性受到影响。
和[2]表明对与若干子帧信息有关的增益参数进行集体向量量化的方法。然而,这些方法没有考虑编码器和译码器内部状态。结果会使译码器中的译码信号与编码器中的最佳合成信号不同。
本发明概述本发明的目的是提供基于线性预测分析合成(LPAS)CELP的编码方法和编码器,它在低位速率尤其是低于8kb/s的位速率情况下很有效,并能使它的内部状态和译码器的内部状态同步。
这个目的依据附加权利要求来实现。
简要来说,本发明通过向量量化若干子帧的最佳增益参数而增加了编码效率。因此,就可以利用向量量化增益来更新内部编码器状态。这会减少在保持编码器和译码器的内部状态同步的同时,对一帧进行编码所需要的位数。
附图简要说明参考下面的描述和附图,本发明及其更多的目的和优点将会更好理解,其中

图1为典型的现有技术LPAS编码器框图;图2是依据本发明的方法流程图;图3是依据本发明的一个LPAS编码器实施例框图。
最佳实施例的详细描述为了更好地理解本发明,详细说明将从典型LPAS编码器的简短描述开始。
图1是一种典型现有技术中LPAS编码器的框图。编码器包含一个分析部分和一个合成部分。
在分析部分中,线性预测器10接收语音帧s(通常在8000Hz下取样20ms语音),并在量化器12中进行量化之后确定控制合成滤波器14(通常为一个10级的全极滤波器)的滤波系数。非量化的滤波系数还可用来控制一个加权滤波器16。
在合成部分,来自自适应代码薄18和固定代码薄20的码向量分别在缩放单元22和24中进行缩放,缩放后的向量在加法器中进行相加从而形成一个激励向量来激发合成滤波器14。这会形成一个合成的语音信号s^]]>。反馈线28用新的激励向量来更新自适应代码薄18。
加法器30形成一个实际的语音信号s和合成语音信号s^]]>之间的差值e。然后在加权滤波器16中对误差信号e进行加权,并将加权后的误差信号ew送至搜索算法块32。搜索算法块32通过最小化帧上的距离尺寸D=||ew||2=||W·(s-s^)||=||W·s-W·H·(ga·ca+gf·cf)||2(1)]]>来确定分别在控制线34、36、38和40上的来自代码薄18和20的代码向量ca和cf和在缩放单元22和24中的增益ga和gf的最佳组合。其中W表示一个加权滤波矩阵,H表示一个合成滤波矩阵。
搜索算法可概括如下对每一帧来说1.利用线性预测对合成滤波器14进行估算,并量化滤波器系数。
2.在当前帧和前一帧之间(在某些领域内,如线状频谱频率)内插线性预测系数,以获得每一子帧的线性预测系数(通常在8000Hz时5ms的语音取样,即40个取样)。加权滤波器16根据线性预测滤波器系数进行计算。
对上述帧中的每一子帧来说1.假定gf为0,ga等于最优(未量化的)值,通过搜索自适应对代码薄18来查找代码向量ca。
2.假定增益gf等于(未量化的)最优值,通过搜索固定代码薄20和使用在上一步找到的代码向量ca和增益ga来查找代码向量cf。
3.对增益系数ga和gf进行量化。量化的方法可能是标量或是向量量化。
4.用由ca、cf,以及ga、gf的量化数值产生的激励信号对自适应代码薄18进行更新。对合成和加权滤波器状态进行更新。
在所述结构中,每一子帧分别进行编码。这样容易使编码器和译码器同步,而这是LPAS编码的本质特征。由于子帧的分别编码,在译码期间对译码器中与编码器合成部分相对应的内部状态进行更新时,其方式与编码期间编码器内部状态的更新方式相同。这使编码器和译码器的内部状态同步。然而,由于公知这种方法能在低位速率情况下进行准确的编码,所以还希望尽可能地增加向量量化的应用。就象下面描述的这样,依据本发明,就可能同时在若干子帧中对增益进行矢量量化,并仍能在编码器和译码器之间保持同步。
下面将结合附图2和3对本发明进行描述。
图2为依据本发明的方法的流程图。可以用下面的算法对2个连续子帧进行编码(假定已经依据现有技术执行了线性预测分析、量化和内插)S1.通过最小化子帧1的加权误差DA1=||sw1-s~w1||2=||W1·s1-W1·H1·ga1·ca1||2(2)]]>查找子帧1最优自适应代码薄向量ca1(子帧长度)。在等式(2)中“1”表示子帧1。而且假定在计算每一个可能的向量ca1时,使用的是ga1的最优值(未量化)。
S2.通过最小化加权误差DF1=||sw1-s~w1||2=||W1·s1-W1·H1·(ga1·ca1+gf1·cf1)||2(3)]]>查找子帧1的最优固定代码薄向量cf1。在计算每一个可能的向量cf1时,假定使用的是gf1的最优值。在本步中,使用了由步骤S1确定的ca1向量和最优值ga1。
S3.存储一个当前自适应代码薄状态,当前合成滤波器状态和当前加权滤波器状态的复份。自适应代码薄为一个FIFO(先进先出)单元。该单元的状态由当前在FIFO内的值来表示。滤波器是延迟单元,缩放单元和加法器的组合。滤波器的状态由延迟单元的当前输入信号和缩放值(滤波系数)来表示。
S4.使用在步骤S1和S2中子帧1的临时激励向量x~1=ga1·ca1+gf1·cf1]]>来更新自适应代码薄状态,合成滤波器状态以及加权滤波器的状态。这样该向量移入到自适应代码簿中(在另一端,相同长度的一个向量移出该自适应代码簿)。通过用他们的内插值来更新相应的滤波器系数,在合成滤波器中馈入该激励向量,在加权滤波器中产生的误差向量来更新合成滤波器的状态和加权滤波器的状态。
S5.通过最小化子帧2的加权误差DA2=||sw2-s~w2||2=||W2·s2-W2·H2·ga2·ca2||2(4)]]>来查找子帧2的最优自适应代码簿向量ca2,在等式(4)中“2”表示子帧2。而且假定在计算每一个可能的向量ca2时,使用的是ga2的最优值(未量化)。
S6.通过最小化加权误差DF2=||sw2-s~w2||2=||W2·s2-W2·H2·(ga2·ca2+gf2·cf2)||2(5)]]>查找子帧2的最优固定代码薄向量cf2。在计算每一个可能的向量cf2时,假定使用的是gf2的最优值。在本步中,使用了由步骤S5确定的ca2向量和最优值ga2。
S7.向量量化所有的增益ga1,gf1,ga2和gf2。通过向量量化器,相应的量化向量[g^a1g^a2g^a3g^a4]]]>从增益代码簿获得。该代码簿可以表示为[g^a1g^f1g^a2g^f2]T∈{[ci(0)ci(1)ci(2)ci(3)]T}i=0N-1(6)]]>其中ci(0),ci(1),ci(2),ci(3)为增益可以被量化成特定的值。这样,能从0到N-1之间变化某个索引Ⅰ可被选择用来表示所有的4增益,向量量化器的任务就是查找该索引。这可以通过最小化下面的表达式而获得DG=α·DG1+β·DG2(7)其中α,β为常数。第一子帧和第二子帧的增益量化准则由下面给出DG1=||sw1-s~w1||2=||W1·s1-W1·H1·(ci(0)·ca1+ci(1)·cf1)||2(8)]]>DG2=||sw2-s~w2||2=||W2·s2-W2·H2·(ci(2)·ca2+ci(3)·cf2)||2(9)]]>因此j=argmini∈{0,N-1}{α·DG1+β·DG2}(10)]]>
以及[g^a1g^f1g^a2g^f2]T=[cj(0)cj(1)cj(2)cj(3)]T(11)]]>S8.恢复在步骤S3内保存的自适应代码簿状态,合成滤波器状态和加权滤波器状态。
S9.使用第一子帧的最终激励值更新自适应代码簿状态,合成滤波器状态和加权滤波器状态。此时使用量化增益,如x^1=g^a1·ca1+g^f1·cf1]]>S10.使用第二子帧的最终激励值更新自适应代码簿状态,合成滤波器状态和加权滤波器状态。此时使用量化增益,如x^2=g^a2·ca2+g^f2·cf2]]>到此为止两个子帧的编码过程就完成了。接下来对下2个子帧重复步骤S1~S10,或者是若已经到达一帧的结束,就开始一个新的、下一帧的线性预测编码循环。
存储和恢复自适应代码薄、合成滤波器和加权滤波器的状态的理由是为了在步骤S4中用未量化的(最优)增益来更新这些元件。然而,这些增益在译码器中是无法使用的,因为它们是从实际语音信号s计算得到的。相反,仅量化增益在译码器可利用,这就是说正确的内部状态必须是在增益量化后在编码器中重新生成的。否则,编码器和译码器将不会有相同的内部状态,这将导致在对同一语音参数编码器和译码器中的语音信号不同步。
等式(7)和(10)中包含的加权系数α、β了说明第一和第二子帧的相对重要性。它们可方便地由能量参数确定,即高能量子帧能够比低逻辑子帧获得一个较低的权值。这会改善开始(讲话开始)和结束(讲话结束)处的性能。其它的加权功能,例如在非开始或结束部分以发声为基础的功能,也是可行的。加权过程中适用的算法可以概括为如果子帧2的能量>子帧1能量的两倍,那么就使α=2β如果子帧2的能量<子帧1能量的0.25倍,那么就使α=0.5β否则,使α=β图3为依据本发明的一个LPAS编码器实施例的方框图。单元10~40与图1中的相似单元相对应。然而,搜索算法块32已经被一个搜索算法块50所代替,并分别在控制线60、62、64和66上增加了代码薄和缩放单元的控制存储块52、54、56和一个向量量化器58。存储块52、54、56分别用来存储和恢复自适应代码薄18、合成滤波器14和加权滤波器16的状态。向量量化器58从增益代码薄68中查找最优增益量化向量。
例如,搜索算法块50和向量量化器58的功能是在若干微处理器或者微/信号处理器组合上实现的。
在以上的描述中,假定2个子帧的增益是量化向量。如果复杂性的增加是可以接受的,可以通过扩展该想法将一语音帧的所有子帧的增益进行向量量化来使性能进一步提高。为了在增益向量量化之后获得编码器中准确的最后内部状态,需要将若干子帧沿原样返回。
因此,不影响编码器和译码器之间的同步,就可能对子帧边界的增益进行向量量化。这会在相当大程度上提高压缩性能,并允许相当大的位速率存储。例如已经发现,当用6位对每一子帧增益进行2维向量量化时,在品质没有下降的情况下可用8位来对2个子帧增益进行4维向量量化。因此每一子帧会存储2位(1/2(2*6-8))。这对应于5ms子帧的0.4kb/s,在低位速率(如低于8kb/s)时一个相当大的存储。
值得注意的是,没有引入额外的算法延时,是因为处理过程仅仅对子帧级而不是帧级进行改变,此外,这个改变过程仅仅是与复杂性的一小小的增加有关联。
包含子帧(α,β)之间的误差加权的最佳实施例会导致语音品质的提高。
对本领域技术人员来说,在没有背离附加权利要求所定义的范围之内,可以对本发明进行各种修改和变化。
参考资料[1]EP0764939(AT&T),第6页,段落A-第7页[2]EP0684705(Nippon Telegraph&Telephone),第39列第17行-第40列第4行
权利要求
1.一种线性预测分析综合编码方法,其特征在于确定多个子帧的最优增益;对上述最优增益进行向量量化;以及用上述向量量化后的增益来更新内部编码器状态。
2.如权利要求1所述的方法,其特征在于在用最优增益对一子帧进行编码后,存储一个内部编码器状态;在对若干子帧的增益向量量化之后,恢复上述内部编码器状态;用确定的代码薄向量和上述向量量化后的增益来更新上述内部编码器状态。
3.如权利要求2所述的方法,其特征在于上述内部编码器状态包括一自适应代码薄状态、一合成滤波器状态和一加权滤波器状态。
4.如权利要求1、2或3所述的方法,其特征在于对2个子帧的增益进行向量量化。
5.如权利要求1、2或3所述的方法,其特征在于对上述帧的所有子帧的增益进行向量量化。
6.如权利要求1所述的方法,其特征在于用加权系数对不同子帧的误差分量进行加权;以及使加权误差分量的和最小。
7.如权利要求6所述的方法,其特征在于每一加权系数都取决于相应子帧的能量。
8.一种线性预测分析综合编码器,其特征在于一个搜索算法块(50),用于确定多个子帧的最优增益;一个向量量化器(58),用于对上述最优增益进行向量量化;以及用上述向量量化增益来更新内部编码器状态的装置(50、52、54、56)。
9.如权利要求8所述的编码器,其特征在于装置(52、54、56),用于在用最优增益对一子帧进行编码后存储一内部编码器状态;装置(50),用于在对若干子帧的增益进行向量量化后恢复上述内部编码器状态;以及装置(50),用于利用确定的代码薄向量和上述向量量化增益来更新上述内部编码器状态。
10.如权利要求9所述的编码器,其特征在于上述用于存储内部编码器状态的装置包括一自适应代码薄状态存储装置(52)、一合成滤波器状态存储装置(54)和一加权滤波器状态存储装置(56)。
11.如权利要求8、9或10所述的编码器,其特征在于装置对两个子帧的增益进行向量量化。
12.如权利要求8、9或10所述的编码器,其特征在于装置对一语音帧所有子帧的增益进行向量量化。
13.如权利要求8所述的编码器,其特征在于装置(58)利用加权系数对不同子帧的误差分量进行加权,并使加权误差分量的和最小化。
14.如权利要求13所述的编码器,其特征在于装置(58)确定加权系数取决于相应子帧的能量。
全文摘要
一个线性预测分析合成编码器包含一个搜索算法块(50)和一个向量量化器(58),用于对一帧的多个子帧最优增益向量量化。利用(50,52,54,56)对增益进行向量量化来更新内部编码器状态。
文档编号G10L19/083GK1318190SQ9981100
公开日2001年10月17日 申请日期1999年8月24日 优先权日1998年9月16日
发明者E·埃库登, R·哈根 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1