具体实施方式
图1示出了ACELP编码器100的主要部件。
在图1中,y1(n)是滤波自适应码本激励信号(即,加权合成滤波器对自适应码本矢量ν(n)的零状态响应),以及y2(n)类似地是滤波新式码本激励信号。信号x1(n)和x2(n)分别是自适应和新式码本搜索的目标信号。表示成H(z)的加权合成滤波器是LP合成滤波器1/A(z)和感知加权滤波器W(z)的级联,即,H(z)=[1/A(z)]·W(z)。
例如,在z变换中,LP滤波器A(z)可能存在传递函数
其中a
i代表线性预测系数(LP系数),a
0=1,以及M是线性预测系数的个数(LP分析的阶次)。LP系数a
i在ACELP编码器100的LP分析器(未示出)中确定。LP分析器描述在,例如,上述文献中:[3GPP TS26.190″Adaptive Multi-Rate-Wideband(AMR-WB)speech codec;Transcoding functions″],因此,在本公开中将不作进一步描述。
感测加权滤波器的一个例子可以是W(z)=A(z/γ1)/A(z/γ2),其中γ1和γ2是具有0与1之间的数值和决定感测加权滤波器W(z)的频率响应的常数。
自适应码本搜索
在图1的ACELP编码器100中,在自适应码本级120中,在每个子帧期间,通过使原始语音与合成语音之间的均方加权误差最小进行自适应码本搜索。这通过使下面的数项最大来实现:
其中x1(n)是上述目标信号,y1(n)是上述滤波自适应码本激励信号,以及N是子帧的长度。
目标信号x1(n)通过感测加权滤波器W(z)101首先处理输入声音信号s(n),例如,语音以获取感知加权输入声音信号sw(n)来获得。减法器102然后从感知加权输入声音信号sw(n)中减去加权合成滤波器H(z)的零输入响应以获取自适应码本搜索的目标信号x1(n)。感测加权滤波器W(z)101、加权合成滤波器H(z)=W(z)/A(z)103、和减法器102可以集体定义成自适应码本搜索的目标信号x1(n)的计算器。
在自适应码本搜索期间查找自适应码本索引T(音调延迟)。然后,对于在自适应码本搜索期间找到的自适应码本索引T,通过下式给出自适应码本增益gp(音调增益):
为了简单起见,从滤波自适应码本激励信号的记号中去掉码本索引T。因此,信号y1(n)等效于y1 (T)(n)。
将自适应码本索引T和自适应码本增益gp量化并发送给解码器作为自适应码本参数。自适应码本搜索描述在上述文献中:[3GPP TS26.190″AdaptiveMulti-Rate-Wideband(AMR-WB)speech codec;Transcoding functions″],因此,在本公开中将不作进一步描述。
新式码本搜索
在新式码本级130中,通过在计算器111中使除去了自适应码本贡献之后的均方加权误差最小进行新式码本搜索,即:
其中新式码本搜索的目标信号x2(n)通过减法器104从自适应码本目标信号x1(n)中减去自适应码本激励贡献gp·y1(n)来计算:
x2(n)=x1(n)-gp·y1(n)。 (4)
自适应码本激励贡献是在自适应码本级120中通过如下步骤计算的:通过加权合成滤波器H(z)105处理来自自适应码本121(时域CELP码本)的自适应码本索引T上的自适应码本矢量ν(n),以获取滤波自适应码本激励信号y1(n)(即,加权合成滤波器105对自适应码本矢量ν(n)的零状态响应),以及使用放大器106通过自适应码本增益gp放大滤波自适应码本激励信号y1(n)。
方程(3)的新式码本激励贡献gc·y2 (k)(n)是在新式码本级130中通过将新式码本索引k应用于新式码本107以生成新式码本矢量c(n)计算的。然后通过加权合成滤波器H(z)108处理新式码本矢量c(n)以生成滤波新式码本激励信号y2 (k)(n)。然后通过放大器109利用新式码本增益gc放大滤波新式码本激励信号y2 (k)(n),以生成方程(3)的新式码本激励贡献gc·y2 (k)(n)。最后,减法器110计算数项x2(n)-gc·y2 (k)(n)。计算器111然后将这个数项平方,并且在0到N-1的范围内将这个数项与不同n值上的其他相应数项x2(n)-gc·y2 (k)(n)相加。如方程(3)所指,计算器11对不同新式码本索引k重复这些运算,以找出给定新式码本索引k上均方加权误差E的最小值,因此完成方程(3)的计算。选择与均方加权误差E的最小值相对应的新式码本索引k。
在ACELP码本中,新式码本矢量c(n)包含具有符号sj和位置mj的M个脉冲,因此通过下式给出:
其中sj=±1,以及对于n=0,δ(n)=1,对于n≠0,δ(n)=0。
最后,使来自方程(3)的E最小导致最佳新式码本增益:
将与均方加权误差E的最小值相对应的新式码本索引k和相应新式码本增益gc量化并发送给解码器作为新式码本参数。新式码本搜索描述在上述文献中:[3GPP TS26.190″Adaptive Multi-Rate-Wideband(AMR-WB)speechcodec;Transcoding functions″],因此,在本公开中将不作进一步描述。
图2是示出ACELP解码器200的主要部件和工作原理的示意性方块图。
参照图2,ACELP解码器200接收包括自适应码本索引T(音调延迟)和自适应码本增益gp(音调增益)的解码自适应码本参数。在自适应码本级220中,将自适应码本索引T应用于自适应码本210以生成自适应码本矢量ν(n),在放大器202中利用自适应码本增益gp放大自适应码本矢量ν(n)以生成自适应码本激励贡献203。
仍然参照图2,ACELP解码器200还接收包括新式码本索引k和新式码本增益gc的新式码本参数。在新式码本级230中,将解码新式码本索引k应用于新式码本204以输出相应新式码本矢量。然后在放大器205中利用新式码本增益gc放大来自新式码本204的矢量以生成新式码本激励贡献206。
然后通过在加法器207中相加自适应码本激励贡献203和新式码本激励贡献206形成总激励。然后通过LP合成滤波器1/A(z)208处理总激励以生成原始声音信号s(n),例如,语音的合成量s′(n)。
本公开讲述修改CELP模型以便将另一个附加码本级用于形成激励。这样的另一个码本级被进一步称为变换域码本级,因为它编码变换域系数。在如下的描述中描述CELP模型中码本数量的选择以及它们的次序。在图6中进一步示出了修改CELP模型的一般结构。
修改CELP模型的第一结构
图4是示出应用于解码器的修改CELP模型的第一结构的示意性方块图,在这个非限制性例子中解码器使用ACELP解码器。修改CELP模型的第一结构包含包括自适应码本级220、变换域码本级420、和新式码本级230的第一码本装置。如图4所例示,总激励e(n)408包含如下贡献:
-在自适应码本级220中,响应自适应码本索引T通过自适应码本201生成和由放大器202使用自适应码本增益gp缩放自适应码本矢量ν(n)以生成自适应码本激励贡献203;
-在变换域码本级420中,由放大器407使用变换域码本增益gq生成和缩放变换域矢量q(n)以生成变换域码本激发贡献409;以及
-在新式码本级230中,响应新式码本索引k通过新式码本204生成和由放大器205使用新式码本增益gc缩放新式码本矢量c(n)以生成新式码本激励贡献209。这通过如下关系例示:
e(n)=gp·v(n)+gq·q(n)+gc·c(n),n=0,…,N-1 (7)
修改CELP模型的这种第一结构组合了一个级420中的变换域码本402和接在后面的随后级230中的时域ACELP码本或新式码本204。变换域码本402可以将,例如,离散余弦变换(DCT)用作声音信号的频率表示以及将代数矢量量化(AVQ)解码器用于去量化DCT的变换域系数。应该注意到,DCT和AVQ的使用只是例子;可以实现其他变换以及可以使用其他量化变换域系数的方法。
变换域码本的目标信号的计算
在编码器(图3)中,第一码本装置的变换域码本级320的变换域码本按如下操作。在给定子帧(与新式码本的子帧对准)中,变换域码本的目标信号qin(n)300,即,除去了缩放自适应码本矢量gp·ν(n)之后的激励残量r(n)按如下计算:
qin(n)=r(n)-gp·v(n),n=0,…,N-1, (8)
其中r(n)是残量域中通过具有零状态的加权合成滤波器H(z)的逆滤波器滤波目标信号x1(n)315获得的所谓目标矢量。数项ν(n)313代表自适应码本矢量,以及gp314代表自适应码本增益。
预加强滤波
在变换域码本中,利用滤波器F(z)301预加强变换域码本的目标信号qin(n)300。预加强滤波器的例子是具有通过下式给出的差分方程的F(z)=1/(1-α·z-1):
qin,d(n)=qin(n)+α·qin,d(n-1), (9)
其中qin(n)300是输入预加强滤波器F(z)301中的目标信号,qin,d(n)302是变换域码本的预加强目标信号,以及系数α控制预加强的水平。在这个非限制性例子中,如果α的值设置在0与1之间,则预加强滤波器将频谱倾斜应用于变换域码本的目标信号以改善较低频率。
变换计算
变换域码本还包含使用,例如,矩形非重叠窗口将,例如,DCT应用于预加强目标信号qin,d(n)302以生成多批变换域DCT系数Qin,d(k)304的变换计算器303。可以使用DCT-II,该DCT-II被定义成:
其中k=0,...,N-1,N是子帧长度。
量化
取决于位速率,变换域码本使用,例如,AVQ编码器305量化变换域DCT系数Qin,d(k)304的所有批次或只有通常与较低频率相对应的一些批次,以生成量化变换域DCT系数Qk(k)306。将其他未量化变换域DCT系数Qin,d(k)304设置成0(未量化)。AVQ实现的例子可以在通过引用将内容并入本文中的美国专利第7,106,228号中找到。将来自AVQ编码器305的量化和编码变换域系数306的索引作为变换域码本参数发送给解码器。
在每个子帧中,分配给AVQ的位预算由固定位预算和数量浮动的位之和组成。AVQ编码器305包含AVQ量化变换域DCT系数Qin,d(k)304的多个AVQ子量化器。取决于编码器305的所使用AVQ子量化器,AVQ通常不消耗掉所有分配位,让数量可变的位可用在每个子帧中。这些位是应用在如下子帧中的浮动位。浮动位数在第一子帧中等于0,给定帧中的最后子帧中源自AVQ的浮动位留下未使用。本段的前面描述代表每个帧固定位数的固定位速率编码。在可变位速率编码配置中,可以依照某种失真度量或与AVQ编码器305的增益相关地将不同数量的位用在每个子帧中。可以控制位数以达到某种平均位速率。
逆变换计算
为了在时域中获得变换域码本激励贡献,变换域码本级320首先在逆变换计算器307中使用逆DCT(iDCT)逆变换量化变换域DCT系数Qd(k)306,以生成逆变换、加强量化激励(逆变换声音信号)qd(n)308。使用逆DCT-II(对应于直到比例因子2/N的DCT-III),并将它定义成:
其中n=0,...,N-1,N是子帧长度。
去加强滤波
然后,将去加强滤波器1/F(z)309应用于逆变换、加强量化激励qd(n)308,以便获取来自变换域码本级的时域激励q(n)310。去加强滤波器309是预加强滤波器F(z)301的逆传递函数(1/F(z))。在非限制性例子中,对于上面在方程(9)中给出的预加强滤波器F(z),去加强滤波器1/F(z)的差分方程由下式给出:
q(n)=qd(n)-α·qd(n-1), (12)
其中,在去加强滤波器309的情况下,qd(n)308是逆变换、加强量化激励qd(n)308,q(n)310是来自变换域码本级的时域激励信号q(n)。
变换域码本增益计算和量化
一旦计算出来自变换域码本级的时域激励信号q(n)310,计算器(未示出)就按如下计算变换域码本增益:
其中Qin,d(k)是AVQ输入变换域DCT系数304,Qd(k)是AVQ输出(量化)变换域DCT系数306,k是变换域系数索引,k=0,...,N-1,N是变换域DCT系数的数量。
仍然在变换域码本级320中,按如下量化来自方程(13)的变换域码本增益。首先,通过预测新式能量Epred将增益归一化如下:
预测新式能量Epred作为减去自适应码本贡献的估计值、给定帧内的所有子帧上的平均残量信号能量获得。也就是说,
其中P是子帧的数量,Cnorm(0)和Cnorm(1)分别是开环音调分析的第一和第二半帧的归一化关联性,以及r(n)是残量域中的目标矢量。
然后,在对数域中通过标量量化器量化和最终反归一化归一化增益gq,norm得出量化变换域码本增益。在例示性例子中,使用6位标量量化器,从而使量化电平均匀分布在对数域中。将量化变换域码本增益的索引作为变换域码本参数发送给解码器。
自适应码本增益的细化
当使用修改CELP模型的第一结构时,可以将来自变换域码本级的时域激励信号q(n)310用于将自适应码本搜索的原始目标信号x1(n)315细化成:
x1,updt(n)=x1(n)-gq·y3(n), (15)
以及自适应码本级用x1,updt(n)取代x1(n)地细化使用方程(2)的自适应码本增益。信号y3(n)是通过加权合成滤波器H(z)311滤波来自变换域码本级的时域激励信号q(n)310获得的滤波变换域码本激励信号(即,加权合成滤波器H(z)311对变换域码本激励贡献q(n)的零状态响应)。
新式码本搜索的目标矢量的计算
当使用变换域码本级320时,使x1(n)=x1,updt(n)以及使gp=gp,updt地使用方程(4)进行新式码本搜索的目标信号x2(n)316的计算,即:
x2(n)=x1,updt(n)-gp,updt·y1(n)。(16)
=x1(n)-gq·y3(n)-gp,updt·y1(n)
参照图3,放大器312进行gq·y3(n)运算,以计算变换域码本激励贡献,减法器104和317进行x1(n)-gp,updt·y1(n)-gq·y3(n)运算。
类似地,按如下为新式码本搜索更新残量域中的目标信号r(n):
rupdt(n)=r(n)-gq·q(n)-gp,updt·v(n)。 (17)
然后像在ACELP模型中那样应用新式码本搜索。
解码器中的变换域码本
回头参照图4,在解码器上,从包括量化变换域DCT系数Qd(k)和变换域码本增益gq的接收变换域码本参数中获取来自变换域码本级420的激励贡献409。
变换域码本首先使用,例如,AVQ解码器404去量化接收的解码(量化)量化变换域DCT系数Qd(k)以生成去量化变换域DCT系数。通过逆变换计算器405将逆变换,例如,逆DCT(iDCT)应用于这些去量化变换域DCT系数。在解码器上,变换域码本在逆DCT变换之后应用去加强滤波器1/F(z)406以形成时域激励信号q(n)407。变换域码本级420然后通过放大器407使用变换域码本增益gq缩放时域激励信号q(n)407以形成变换域码本激励贡献409。
然后,通过在加法器410中相加自适应码本激励贡献203、变换域码本激励贡献409、和新式码本激励贡献206形成总激励408。然后通过LP合成滤波器1/A(z)处理总激励408以生成原始声音信号,例如,语音的合成量s′(n)。
变换域码本位预算
通常,位速率越高,变换域码本就使用越多的位,让新式码本的大小跨过不同位速率是相同的。修改CELP模型的上面所公开第一结构可以用在高位速率(大约48kb/s和更高)上几乎透明地编码语音信号以及有效地编码通用音频信号。
在这样的高位速率上,可以用两个标量量化器取代自适应和新式码本增益的矢量量化器。更具体地说,将线性标量量化器用于量化自适应码本增益qp,将对数标量量化器用于量化新式码本增益gc。
修改CELP模型的第二结构
使用后面接着新式码本级的变换域码本级的修改CELP模型的上述第一结构(图3)可以进一步取决于输入声音信号的特性地自适应变化。例如,在不活跃语音分段的编码中,改变变换域码本级和ACELP新式码本级的次序可能是有利的。因此,修改CELP模型的第二结构使用组合第一码本级中的时域自适应码本、接在后面的第二码本级中的时域ACELP新式码本、和再接在后面的第三码本级中的变换域码本的第二码本装置。第二级的ACELP新式码本可以包含非常小码本和甚至可以避免。
与变换域码本级可以看成新式码本级的预量化器的修改CELP模型的第一结构不同,修改CELP模型的第二结构的第二码本装置中的变换域码本级被用作独立第三级量化器(或如果未使用新式码本级,则第二级量化器)。尽管变换域码本级通常把更大的权重放在编码感觉更重要较低频上,但与第一码本装置中的变换域码本级不同,在减去所有频率范围中的自适应和新式码本激励贡献之后使激励残量白噪声化。这在编码输入声音信号的类噪声(不活跃)分段时可能是可取的。
变换域码本的目标信号的计算
参照图5,图5是修改CELP模型的第二结构的方块图,变换域码本级520按如下操作。在给定子帧中,由计算器按如下计算变换域码本搜索的目标信号x3(n),该计算器使用减法器104从自适应码本搜索目标信号x1(n)中减去被放大器106使用自适应码本增益gp缩放的滤波自适应码本激励信号y1(n)以形成新式码本搜索目标信号x2(n),再使用减法器525从新式码本搜索目标信号x2(n)中减去被放大器109使用新式码本增益gc缩放的滤波新式码本激励信号y2(n)(如果使用了新式码本):
x3(n)=x1(n)-gp·y1(n)-gc·y2(n)n=0,…,N-1。 (18)
该计算器通过具有零状态的加权合成滤波器H(z)的逆滤波器滤波变换域码本搜索的目标信号x3(n)518得出变换域码本搜索的残量域目标信号uin(n)500。
预加强滤波
将信号uin(n)500作为输入信号用于变换域码本搜索。在这个非限制性例子中,在变换域码本中,首先利用滤波器F(z)301预加强信号uin(n)500,以生成预加强信号uin,d(n)502。这样预加强滤波器的例子由方程(9)给出。方程(9)的滤波器将频谱倾斜应用于信号uin(n)500以改善较低频率。
变换计算
变换域码本还包含,例如,由变换计算器303使用,例如,矩形非重叠窗口应用于预加强信号uin,d(n)502以生成多批变换域DCT系数Uin,d(k)504的DCT。DCT的例子在方程(10)中给出。
量化
通常使用,例如,AVQ编码器305量化所有批次变换域DCT系数Uin,d(k)504以生成量化变换域DCT系数Ud(k)506。但是,如前面的描述所说明,在低位速率上可以将量化变换域DCT系数Uk(k)506设置成零。与第一码本装置的变换域码本不同,AVQ编码器305可以用于跨过所有频带地编码具有最高能量的批次,而不是强迫AVQ编码与较低频率相对应的批次。
与第一码本装置类似,在每个子帧中分配给AVQ的位预算由固定位预算和数量浮动的位之和组成。将来自AVQ编码器305的编码、量化变换域DCT系数Uk(k)506的索引作为变换域码本参数发送给解码器。
在另一个非限制性例子中,像在CELP码本搜索中那样可以通过使感知加权域中的均方误差最小进行量化。本文所述的预加强滤波器F(z)305可以看作感知加权的简单形式。更精细的感知加权可以通过在变换和量化之前滤波信号uin(k)500来进行。例如,用加权合成滤波器W(z)/A(z)取代预加强滤波器F(z)301等效于变换和量化目标信号x3(n)。感知加权也可以在变换域中,例如,在量化之前将变换域DCT系数Uin,d(k)504乘以频率掩码来应用。这将消除预加强和去加强滤波的需要。频率掩码可以从加权合成滤波器W(z)/A(z)中导出。
逆变换计算
在逆变换计算器307中使用,例如,逆DCT(iDCT)逆变换量化变换域DCT系数Ud(k)506,以生成逆变换、加强量化激励ud(n)508。逆变换的例子在方程(11)中给出。
去加强滤波
通过去加强滤波器1/F(z)309处理逆变换、加强量化激励ud(n)508,以便获取来自变换域码本级的时域激励信号u(n)510。去加强滤波器309具有预加强滤波器F(z)301的逆传递功能;在非限制性例子中,对于上面所述的预加强滤波器F(z),去加强滤波器309的传递功能由方程(12)给出。
信号y3(n)516是通过加权合成滤波器H(z)311滤波时域激励信号u(n)510获得的变换域码本激励信号(即,加权合成滤波器H(z)311对时域激励信号u(n)510的零状态响应)。
最后,由放大器312使用变换域码本增益gq缩放变换域码本激励信号y3(n)516。
变换域码本增益计算和量化
一旦计算出变换域码本激励贡献u(n)510,就使用如下关系计算变换域码本增益gq:
其中Uin,d(k)504是AVQ输入变换域DCT系数,以及Ud(k)506是AVQ输出量化变换域DCT系数。
通过新式码本增益gc使用归一化量化变换域码本增益gq。在一个例子中,使用6位标量量化器,从而使量化电平均匀分布在线性域中。将量化变换域码本增益gq的索引作为变换域码本参数发送给解码器。
自适应码本贡献的限制
当编码不活跃声音信号分段,例如,不活跃语音分段时,限制自适应码本激励贡献以避免合成量中的强周期性。实际上,通常通过0≤gp≤1.2限制自适应码本增益gp。当编码不活跃声音信号分段时,在自适应码本搜索中配备限制器来通过0≤gp≤0.65约束自适应码本增益gp。
解码器中的变换域码本
在解码器上,首先通过去量化解码(量化)变换域(DCT)系数(使用,例如,AVQ解码器(未示出))和将逆变换,例如,逆DCT(iDCT)应用于这些去量化变换域(DCT)系数获取来自变换域码本的激励贡献。最后,在逆DCT变换之后应用去加强滤波器1/F(z)以形成通过变换域码本增益gq缩放的时域激励信号u(n)(参见图4的变换域码本402)。
在解码器上,由于特定码本贡献不取决于或不影响其他码本贡献,所以在解码处理过程中码本和相应码本级的次序并不重要。因此,修改CELP模型的第二结构中的第二码本装置可以与q(n)=u(n)的图4的修改CELP模型的第一结构的第一码本装置相同,总激励由方程(7)给出。
最后,如图5所例示,通过减法器530从(b)变换域码本搜索目标信号x3(n)518中减去(a)通过加权滤波器H(z)311处理和通过变换域码本增益gq缩放的来自变换域码本级的时域激励信号u(n),以及在计算器511中使误差准则min{|error(n)|2}最小搜索变换域码本。
一般修改CELP模型
具有多种可能结构的一般修改CELP编码器显示在图6中。
图6的CELP编码器包含作为输入声音信号的特性的函数、分别在第二和第三码本级中的时域CELP码本和变换域码本的次序的选择器。该选择器还可以响应使用修改CELP模型的编解码器的位速率来不选择第三级中码本,更具体地说,绕过第三级。在后一种情况下,没有第三码本级接在第二码本级之后。
如图6所例示,该选择器可以包含分类器601,分类器601响应像语音那样的输入声音信号以将,例如,每个相继帧分类成活跃语音帧(或分段)或不活跃语音帧(或分段)。分类器601的输出用于驱动第一开关602,第一开关602确定自适应码本级之后的第二码本级是ACELP编码604还是变换域(TD)编码605。进一步,也由分类器601的输出驱动的第二开关603确定第二ACELP级604的后面是否接着TD级或第二TD级605的后面是否接着ACELP级607。此外,分类器601可以与活跃或不活跃语音帧和使用修改CELP模型的编解码器的位速率有关地操作第二开关603,以便没有进一步的级接在第二ACELP级604或第二TD级605之后。
在例示性例子中,在修改CELP模型中码本(级)的数量以及它们的次序显示在表1中。可以从表1中看出,分类器601的判定取决于信号类型(活跃或不活跃语音帧)以及取决于编解码器位速率。
表1-修改CELP模型的例子中的码本(ACB代表自适应码本和TDCB代表变换域码本)
编解码器位速率 |
活跃语音帧 |
不活跃语音帧 |
16kb/s |
ACB→ACELP |
ACB→ACELP |
24kb/s |
ACB→ACELP |
ACB→ACELP |
32kb/s |
ACB→TDCB→ACELP |
ACB→ACELP→TDCB |
48kb/s |
ACB→TDCB→ACELP |
ACB→ACELP→TDCB |
尽管上文针对ACELP模型给出了实现的例子,但应该记得,也可以使用除了ACELP模型之外的其他CELP模型。还应该注意到,DCT和AVQ的使用只是例子;可以实现其他变换以及也可以使用其他量化变换域系数的方法。