Compare Plans

G.729网络SIP电话声码器

4.6.1     G.729性能特点

G.729是8khit/s的LPAS声码器,线性预测采用前馈型前向自适应技术,并使用予视提高合成模型的精度。预测器系数根据当前帧和部分下一帧话音数据进行更新,因此算法时延相对G.728较长。其帧长取为l0ms,由2个子帧组成,予视5ms,加上处理时间和传输时间,设计的单向系统时延为35ms。由于采用的是前馈型自适应技术,因此除了传送激励信号(包括波形和增益)外,还需传送预测器系数。为了降低比特率,线性预测系数、激励信号波形、激励增益都采用矢星量化,并利用了多级量化和分割量化技术。激励信号码本则采用高效的共轭结构代数码本,因此G.729编码称为CS-ACELP。

ITU-T制订G.729标准的主要应用目标是第一代数字蜂窝系统,因为日美系统均为8kbit/s左右,GSM系统为13kbit/s。同时还想在已有的64、32、16kbit/s标准基础上增加一个8kbit/s比特率编码,以构成4个完整的标准系列。由千要应用千移动系统,因此复杂度比G.728低,为中等复杂度算法,但是所需RAM容量比G.728多一半,原因是帧长时间加大了。

为了进一步降低复杂度,G.729标准又制订了一个附件A,称之为G.729A,它的复杂度较G.729降低一半,主要原因是激励码本的搜索进一步简化,同时后置滤波器也有简化。其代价是在某些操作条件下性能稍有下降。G.729A的设计应用是话音数据同传数字系统(DSVD---DigitalSimultaneous Voice and Date),由于内含的V.34Modem已有较大时延,因此要求话音编码的复杂度不能太高。G.729A与G.729比特流兼容,即DSVD编码器分析所得的信号可由G.729解码器重建,反之亦然。G.729A标准在IP网络电话中得到了广泛应用。另外,最近的G.729附件还包含了静音抑制处理。

话音质量是一个比较复杂的性能,也难以用精确的标准来衡量。表4.1从与G.726比较的角度给出了G.729的话音质量指标。

表4.1G.729话音质量指标

G.729声码器(图1)

G.729声码器(图2)

G.729声码器(图3)

图4.9G.729编码器结构

4.6.2   G.729编码器

G.729编码器如图4.9所示。模拟话音信号经话带滤波器后,按8kHz频率抽样并转换成16bit线性PCM信号,这就是图中编码器的输人话音信号。该信号首先经预处理器,完成2个功能。一是信号定标,就是将信号幅度减半,以减小DSP定点实现时的数据上溢概率。二是高通滤波,阻止不希望的低频分矶,采用2阶极/零点滤波器,截止频率为l40Hz。

根据预处理后的输入信号进行线性预测分析,得到线性预测系数,即线性预测编码(LPC)信息,利用该系数即可构造合成滤波器。激励信号经合成滤波器后生成重构信号,与输入信号相减后得残差信号。该残差信号经误差加权滤波器处理,根据听觉感受改变频谱,反馈回控制回路,根据使加权残差均方差最小的原则确定激励信号及其增益。误差加权滤波器也是根据预测分析所得的LPC信息构造的。

基音分析模块通过自相关分析推得基音周期,据此信息搜索自适应码本,确定最佳自适应码本矢量。然后再搜索固定码本,根据最小化加权均方差(MSE)的准则确定最佳固定码本矢量。最后再确定二个码本矢量的增益。

上述过程确定的线性预测编码信息(线谱频率)、自适应码本矢量、固定码本矢量和矢量增益构成完整的G.729声码器编码参数。所有这些参数均以码本索引的形式发往接收端。

下面简要说明主要模块的功能原理。

1.线性预测分析和量化

短时相关分析采用I0阶线性预测(LP)滤波器。LP分析每帧(l0ms)进行1次,采用不对称窗口,计算窗口内话音信号自相关系数,然后用杜宾递推算法求得LP系数。该系数再变换为线谱对(15P)频域参数,供量化和子帧内插,内插求得的15P参数再转换为LP滤波器系数,用以建立每个子帧的合成滤波器和误差加权滤波器,分析采用5ms予视,因此要用到当前帧80个抽样信号和下一帧40个抽样信号。

分析求得LP系数后,根据式(4.11)和(4.12)式转换成线谱对,式中取N=10。如前述,P(z)和Q(z)的根都在单位圆上,让其实部和虚部分别为:

G.729声码器(图4)

其中ωi就是线谱频率(LSF),其取值范围为0<ωi<1C。现对ωi,进行量化。为了提高量化精度,先用滑动平均(MA-MovingAverage)预测法预测当前帧的LSF,然后对LSF的计算值和预测值之差进行量化。算法采用2级矢量量化。

第1级:10维矢量量化,码本C1,共含128个矢量。其索引记为Ll,为7bit。

第2级:10bit矢量量化,采用2段分割矢量量化实现。分割为2个S维码本C2和C3,各包含32个矢量。其索引分别为L2和L3,各为5bit。C2和C3分别量化前5个ωi,和后5个ωi。

每个码本按照最小化MSE搜索,各个区F量化系数由选定的2级码本矢量之和确定:

G.729声码器(图5)

算法规定用2个MA预测法进行预测,重复以上步骤,从中取最优值。因此用参数Lo指示选定的是哪个MA预测法,Lo为1bit。

为了防止由此构成的LP合成滤波器的共振峰太陡,确定的系数需重新安排,使相邻系数至少保持一个最小间距。ωi的量化值G.729声码器(图6)确定后,尚需按下列步骤校核滤波器的稳定性:

.按升序排列G.729声码器(图7)

.如果G.729声码器(图8)<0.005,置G.729声码器(图9)=0.005

.如果G.729声码器(图10)+1一G.729声码器(图11)<0.0391,置G.729声码器(图12)+1=G.729声码器(图13)+0.0391,i=1,…9

.如果G.729声码器(图14)>3.135,置G.729声码器(图15)=3.135

LSP系数的内插方式是:

对第1子帧:

G.729声码器(图16)

式中,G.729声码器(图17)G.729声码器(图18)分别为上一子帧和本子帧的qi

对第2子帧,就用本帧计算值:

G.729声码器(图19)

LSp系数植化,内插完成后,再转换成LP系数ai,供合成滤波器和误差加权滤波器使用。

2.开环基音分析

为了降低自适应码本搜索的计算量,先通过开环分析大致估算基音周期,记为Top自适应码本就限定在Top附近进行搜索。开环分析每l0ms进行一次,分析方法是计算加权话音信号归一化自相关系数,其最大值对应的就是基音周期。周期范围设定为20-143个抽样,即2.5-18ms,对应基音频率为55Hz~400Hz。计算时分为

三个时延段:

i=1:80-143抽样周期,最大值R(t1)

i=2:40-79抽样周期,最大值R(t2)

i=3:20-39抽样周期,最大值R(t3)

取最大的R(ti)对应的时延为基音周期。如果有二个最大值相同,则优选低时延值,以避免选到基音周期的倍数。

3.加权合成滤波器的特征量计算

包括两个量值的计算。一是滤波器的冲激脉冲响应h(n),二是目标信号X(n)。这两个量值按子帧计算,其结果供该子帧自适应码本和固定码本搜索时计算误差方差使用。目标信号的通常计算方法是加权话音信号减去加权合成滤波器的零输入响应,即4.3.2节所述的G.729声码器(图20),G.729采用计算残差信号经加权合成滤波器响应的等效算法。

4.自适应码本搜索

自适应码本参数包括时延和增益,它是实现长时相关滤波的一种有效方法。码本搜索每子帧进行一次。搜索方法是在一定的码本范围内,按最小化残差均方差的准测确定最佳码本矢量,计算判据即为式(4.25)式。在G.729中,记G.729声码器(图21),为目标信号;uG.729声码器(图22)为自适应码本矢量;G.729声码器(图23)为判据准则,则有:

G.729声码器(图24)

式中,

G.729声码器(图25)

即激励u的冲激响应,可简记为y(n)=u(n)*h(n)。搜索范围取为第1子帧在开环基音分析确定的G.729声码器(图26)附近的小范围[tmin,tmax]内搜索,范围宽度为6个抽样周期。由于基音周期范围为20-143个抽样时长,因此tmin,tmax的确定算法为:

G.729声码器(图27)

第1子帧搜索时,若搜索范围处于短时延段(19<T<85),则采用分数时延搜索,时延分辨率为1/3,即时延增量步长为1/3个抽样周期,分数时延处的激励由内插方法生成。若搜索范围处于长时延段(85≤T:≤143),则采用整数时延搜索。设第1子帧搜索得到的时延值为T1,则对应的输出参数P1的表达式为:

G.729声码器(图28)

式中,int(·)表示时延的整数部分,frac/3表示时延的分数部分。由式(4.43)知,片的取值范围为0~255,因此p1编码需8bit。

第2子帧则以T1为中心进行搜索,搜索范围为10个抽样周期,全部采用分数时延搜索,分辨率为1/3。其搜索范围上下限的确定算法为:

tmin=int(T1)-5

iftmin<20thentmin=20lmax=lmin+9

iftmax>143thenmax=143

tmin=tmax-9

G.729声码器(图29)

设第2子帧搜索得到的时延值为T2,T2的实际范围可为[intG.729声码器(图30)],现用参数P2来表示P2关于P1的相对时延,则P2的表达式为:

G.729声码器(图31)

由此知P2的取值范围为0~31,因此P2编码需5bit。

考虑到传输信道的误码,输出参数增加了1bit的Po,作为P1参数的奇校验位,其值为P1高6比特的异或值。

在上述算法中,自适应码本矢量是由激励缓冲器存储的历史信号内插形成的,不同的时延对应不同的历史信号组合。如果是分数时延,搜索判据的R值也要经内插求得。

时延确定后,进一步根据式(4.24)求得自适应码本的增益gp,用G.729的符号表示则为:

G.729声码器(图32)

并限定gp的范围为:

G.729声码器(图33)

5.固定码本搜索

固定码本搜索的目的是在自适应码本搜索确定的预测激励的基础上,再附加增量激励,使残差进一步减小。固定码本基于代数码本结构,采用交织单脉冲排列(ISPP--Interleaved Single Pulse Pennn­talion)设计。每个码本矢量包含4个非零单位脉冲,每个脉冲可有幅值+1或-l,允许的脉冲位置如表4.2所示。

码本矢量C(n)可表示为:

G.729声码器(图34)

式中,б(·)表示在mi,位置处的单位脉冲。C(n)的构成可取40维零矢量,在确定的位置上置4个单位脉冲,然后乘以符号矢屈。

表4.2固定码本矢量中的脉冲位置

G.729声码器(图35)

码本搜索仍然根据最小化均方差的判据,但是目标信号需减去自适应码本激励的贡献,即:

G.729声码器(图36)

由于代数码本仅含4个非零单位脉冲,因此搜索计算公式可大为简化。

码本搜索结果可由2个码字表示。一是符号码字S,指示4个

脉冲的幅值(符号),其表示式为:

G.729声码器(图37)

式中,Si指示第i个脉冲的正负。Si=0:幅值为-1,Si=1:幅值为+l。因此,S共有4bit。二是固定码本码字C,指示4个脉冲的位肯,其表示式为:

G.729声码器(图38)

式中,

G.729声码器(图39)

mⅰ/5为整除运算。C共有13bit。

6.码本增益量化

自适应码本增益gp和固定码本增益gc组合起来采用分级矢量量化方法进行量化。

首先进行gc预测。根据上一子帧的增益g'c,采用4阶MA预测算法确定gc预测值为:

G.729声码器(图40)

y称为校正因子。gp计算值已由式(4.45)和(4.46)给出。

然后进行码本搜索,确定gp和y的量化值。码本为2级共轭结构。第1级码本GA共有8个矢量,每个码矢含2个元素,第1元素为自适应码本增益量化值gp,第2元素为固定码本增益校正因子量化值y。第2级码本GB共有16个矢量,每个码矢亦含2个元素,和GA相同。

2级码本采用共枙结构。在GA码本中,每一矢量的第2元素值大于第1元素值,即}>幻;在GB码本中,每一矢量的第1元素值大于第2元素值,即G.729声码器(图41)。搜索时采用予选方法缩小码本搜索范围:在GA中选择第2元素与预测у最接近的4个矢量,在GB中选择第1元素与计算gp最接近的8个矢量。即G.729声码器(图42),将每个码本的搜索范围先缩减50%,GA优先考虑丫量化,GB优先考虑gp量化。然后对选定的4个GA矢量和8个GB矢量进行穷尽联合搜索,总共有32种组合。

最后选定的量化值为2个码本矢量之和:

G.729声码器(图43)

式中,GA、GB表示选定的码本矢量,gA;、gB,表示是相应矢量的第i个元素。

码本搜索仍以最小化残差均方差为判据,其最小化的目标函数为:

G.729声码器(图44)

式中,Z(n)=C(n)*h(n),Y(n)=u(n)*h(n)

由上可知,增益量化参数共需7bit。其中,GA码本矢量索引为3bit,GB码本矢量为4bit。

以上所有算法步骤完成后,存储器需更新,包括激励信号缓冲器更新和加权滤波器状态更新。前者供下一子帧自适应码本搜索用,后者提供下一子帧的目标信号,即零输入响应。

7.参数编码比特分配

根据以上分析,可得G.729声码器参数编码的比特分配如表4.3所示。其中,线谱对参数决定合成滤波器的系数,每帧更新一次;其余参数决定激励信号,每子帧更新一次。总比特数为每帧(10ms)80bit,即编码比特率为8kbit/s。

表4.3G.729参数编码比特分配

G.729声码器(图45)

G.729声码器(图46)


4.6.3   G.729解码器

1.解码器结构和功能

G.729声码器(图47)

图4.10 G.729解码器结构

G.729解码器的结构如图4.10所示。其解码过程基本上是编码的逆过程。

首先利用接收到的Lo、L1、L2和L3参数重建lSP系数,由内插推得两个子帧的LSP系数,并由此转换得庄滤波器系数a;,用a;可构成合成滤波器。然后在每一子帧解码激励信号。

先校核P1的奇偶校是否有错。若有错,则置T1=INT(T2(p)),其中T2(P)为前一帧的T2,然后再根据此T1计算T2。若奇偶校正确,则由P1,P2推得第1和第2f帧的时延T1和T2,包括其分数时延。计算T1的算法为:

G.729声码器(图48)

计算T2的公式为:

G.729声码器(图49)

求得基音时延后,由过去的激励u(n)内插即可得到自适应码本矢

量u(n)。

接着由收到的固定码本索引C获得激励脉冲位置,由S获得脉冲符号,由此重构码本矢量C(n)。再由增益码本索引确定G.729声码器(图50)最后将激励信号G.729声码器(图51)输入IP合成滤波器即得重构话音信号。

该重构信号还需经后置滤波器处理,其原理和G.728相同。在自适应后置滤波器之后还级联一个高通滤波器和一个将信号幅度扩大一倍的定标电路,和编码器的预处理器相对应。

2.帧丢失处理

如果解码器检测到一帧编码器参数丢失时,将启动帧丢失处理过程。其原则是根据以前收到的信息重建当前帧,用类似特性的激励替代丢失的激励,其能量应逐渐衰减。

其实现方法是根据长期相关预测增益对话音帧进行分类,该增益是长期相关后置滤波器分析的中间结果。如果l0ms帧中至少有1个子帧的预测增益大于3dB,则为周期性帧,否则为非周期性帧。丢失帧重构继承前面帧的类型。

其步骤包括:

.重复使用上一个好帧的LP参数构成合成滤波器。

·  衰减上一帧的自适应和固定码本增益:G.729声码器(图52)G.729声码器(图53).

·  衰减增益预测器的存储值。

.生成替代的激励信号。

如果上次重构帧是周期性的,则本帧也认为是周期性的。此时只用自适应码本,固定码本的贡献置零。基音时延基于上一帧基音周期的整数部分,以后逐帧时延加1,增益逐帧衰减。

如果上次重构信号是非周期性的,则本帧也认为是非周期性帧,自适应码本贡献置零。固定码本矢量生成采用随机数选择码本索引和符号索引。固定码本索引由随机数的低13位比特确定,符号索引由随机数的低4位确定,码本增益逐帧衰减。


下一篇

G.723.1声码器

通信知识

G.723.1声码器

4.7.1 G.723.1性能特点 G.723.1是双速率I.PAS声码器,低速率的编码比特率为5.3kbit/s,高速率为6.3kbit/s,线性预测也采用前馈型前向自适应,并使用预视。帧长30ms,分为4个子帧。即每个子帧含60个抽样信号,予视7.5ms。 ITU-T/制订G.723.1标准的主要应用目标是低比特率可视电话,要求比特率低于9.6khit/s,后来提出的候选 ...

相关内容

什么是SIP网关

什么是SIP网关

sip网关是一种桥接设备,可将呼叫流量转换为可通过互联网传输的数据包。公共交换电......

通信知识

2024-07-06

7G网络技术解析(未来通信技术新趋势)

7G网络技术解析(未来通信技术新趋势)

7G网络的概念7G网络目前仍然是一个概念性的话题,它被视为6G网络的进一步发展。......

通信知识

2024-06-17

点对点网络技术解析

点对点网络技术解析

点对点网络(Peer-to-Peer Network,简称P2P网络)是一种网络......

通信知识

2024-06-13