一种丢帧隐藏的方法及装置的制作方法

文档序号:7684869阅读:210来源:国知局
专利名称:一种丢帧隐藏的方法及装置的制作方法
技术领域
本发明涉及电子通信领域,尤其涉及一种丢帧隐藏的方法及装置。

背景技术
随着网络技术的发展,通过分组交换网络来传递语音包,进行实时语音通信的应用也日益广泛,例如基于IP的语音通信(Voice Over IP,VoIP)。然而,基于分组交换技术的网络最初并非为需要实时通信的应用设计的,其本身并不是绝对可靠的。在传输的过程中,数据包有可能被丢失,或者可能被延迟传送而超过了播放的时间点而被接收端丢弃,上述两种情况,都被认为是发生了网络丢包。网络丢包对于VoIP所要求的实时性和语音质量来说,都是很大的问题。VoIP的接收端负责将发送端发送过来的语音包解码为可以播放的语音信号,但在有丢包的情况下,如果不对丢失的语音包作补偿,就会使得语音信号变得不连续,并产生噪音信号,进而影响语音通话质量。因此,在实时通信系统中需要健壮的丢包隐藏方法来恢复丢失的数据包,使得在发生网络丢包的情况下仍获得良好的通话质量。
目前,最为常用的丢包隐藏技术是基于基音重复的丢包隐藏技术,例如国际电信联盟制定的一套语音压缩标准G.711附录I,采用基于基音波形替代的丢包隐藏方法。基音波形替代是一种基于收端的对丢失的音频帧进行补偿的处理技术,它首先利用丢失帧之前的历史信号来计算历史信号的基音周期T0,然后通过重复复制丢失帧之前长度为T0的一段信号来重构丢失帧所对应的信号。如图1所示,帧2为丢失帧,帧长为N,帧1和帧3都是完好帧。假定已经获得历史信号(帧1之前(包括帧1)的信号)所对应的基音周期为T0,对应信号所在区间为区间1;那么就可以把历史信号最后一个基音周期所对应的信号(即区间1对应的信号)重复拷贝到帧2,直至填满,以重构丢失帧所对应的信号。在图1中,需要重复拷贝两个基音周期的信号才能填满丢失帧。
然而,如果直接用重复历史信号中最后一个基音的信号作为丢失帧对应的信号,那么在两个基音的相接处会产生波形突变。为保证拼接处的平滑,通常在用历史缓冲区中的最后一个基音周期的信号对丢失帧进行填充之前,要对历史缓冲区最后T0/4的信号进行交叉衰减。如图2所示,所用的窗就是简单的三角窗,其中上升窗对应图2中斜率向上的短划线,下降窗对应图2中斜率向下的短划线。将历史缓冲区最后一个基音周期T0之前的T0/4信号乘以上升窗、将缓冲区最后T0/4的信号乘以下降窗并做叠加处理,然后替换掉历史缓冲区最后T0/4的信号,以保证在进行基音重复时,保证相邻两个基音相接处的平滑过渡。
在语音通信中,离散余弦变换(Discrete Cosine Transform,DCT)应用于宽带音频编码时,由于带通滤波器的冲击响应为有限长度,产生了所谓的块边界效应,导致会产生很大的噪声,通常采用改进的离散余弦变换(Modified DiscreteCosine Transform,MDCT)来克服这些不足。
MDCT利用时域混叠抵消(Time Domain Aliasing Cancellation,TDAC)技术来降低“边界效应”。为了求由2N个采样构成的信号的MDCT系数,首先对于输入序列x[n]用本帧的N个取样和之前相邻的一帧信号的N个样点构成2N个样本的一个序列,再定义2N点长的窗函数为h[n],h[n]满足如下条件 h[n]2+h[n+N]2=1 (1) 例如h[n]可以简单定义为一个正弦窗 这使得各窗口中的数据间有50%重叠。x[n]的MDCT系数X[k]及其IMDCT(Inverse Modified Discrete Cosine Transform,改进的离散余弦反变换)系数Y[n]分别定义为 其中,k=0,...,N-1,n=0,...,2N-1, 那么重构信号y[n]可由下面的公式,对Y[n]和Y′[n]进行TDAC获得 y[n]=h[n+N]·Y′[n+N]+h[n]·Y[n]n=0,...,N-1,(5) 其中,Y′[n]表示在Y[n]之前且相邻的IMDCT系数。
在编码端,编码器对原始语音信号按公式(3)进行MDCT变换得到X[k],并将X[k]编码后发送给解码端;在解码端,解码端收到编码端发送的MDCT系数后,解码器对收到的MDCT系数X[k]按公式(4)进行IMDCT变换,得到X[k]对应的IMDCT系数Y[n]。
为叙述方便,约定解码器对当前收到的MDCT系数X[k]进行IMDCT变换后得到的IMDCT系数为Y[n],n=0,...,2N-1,在Y[n]之前且相邻的IMDCT系数为Y′[n],n=0,...,2N-1。现以图3为例进行说明,根据上述约定,帧F0和帧F1对应的IMDCT系数为IMDCT1,用Y′[n],n=0,...,2N-1表示;帧F1和F2对应的IMDCT系数为IMDCT2,用Y[n],n=0,...,2N-1表示。在解码端,解码器把这两个IMDCT系数Y[n],n=0,...,2N-1和Y′[n],n=0,...,2N-1,代入到公式(5)中即可得到重构后的信号y[n]。
当有MDCT系数丢失时,如图4所示,解码端接收到了帧F2和帧F3对应的MDCT系数MDCT3以及F4和F5对应的MDCT系数MDCT5,但却没有收到帧F3和帧F4所对应的MDCT系数MDCT4,那么解码器端也就不能根据公式(4)得到IMDCT4。因此,对于解码端来讲,它仅收到了IMDCT3的对应F3那部分系数和IMDCT5所对应F4那部分系数,而仅使用IMDCT3和IMDCT5是不能完全恢复帧F3和帧F4对应的信号的。
发明人在实现本发明的过程中发现目前的处理方法,需用帧F2之前(包括F2)的解码后的信号生成丢失帧的信号,并完全抛弃已经收到的IMDCT3中的对应帧F3那部分系数和IMDCT5中的对应帧F4那部分系数。而根据公式(3)和公式(4)中MDCT/IMDCT的定义,并结合公式(5),可知所抛弃的已经收到的IMDCT3的对应帧F3那部分系数和IMDCT5所对应帧F4那部分系数还是包含了可利用信息的;而且,如果设定帧长为L个采样点,那么每连续丢n个MDCT系数,受影响的信号所对应的采样点个数为(n+1)*L。丢失的MDCT系数越多,恢复的信号质量也就越差,用户体验也会越差,服务质量(Quality of Service,QoS)也就得不到保证。


发明内容
本发明实施例在于一种丢帧隐藏的方法及装置,充分利用接收到的部分信号,恢复出高质量的语音信号,提高QoS。
一方面,本发明实施例提出了一种丢帧隐藏的方法,包括 当检测到MDCT系数丢失时,利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号; 对所述第一合成信号进行快速IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数; 利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行TDAC处理,得到所述丢失帧对应的信号。
另一方面,本发明实施例提出了一种实现丢帧隐藏的装置,包括 合成信号生成模块,用于当检测到MDCT系数丢失时,利用所述MDCT系数对应的丢失帧之前的历史信号生成所述第一合成信号; 快速IMDCT计算模块,用于对所述第一合成信号进行快速反MDCT变换IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数; TDAC模块,用于利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行TDAC处理,得到所述丢失帧对应的信号。
实施本发明实施例提出的一种丢帧隐藏的方法及装置,通过充分利用接收到的部分信号,恢复出高质量的语音信号,提高QoS。



图1是目前的一种基于基音重复的丢包隐藏技术进行信号填充的示意图; 图2是目前的一种对基音缓冲区中信号进行平滑处理的示意图 图3是现有技术MDCT/IMDCT系数与信号帧对应关系示意图; 图4是现有技术发生丢包时编码器发送和解码器接收并解码后信号的对照图; 图5是本发明实施例的一种丢帧隐藏的方法的流程图; 图6是图5所述的步骤S1的详细流程图; 图7是本发明实施例中基于基音重复生成第一合成信号的示意图; 图8是本发明实施例中基于基音重复生成第一合成信号的示意图; 图9是本发明实施例中基于基音重复生成第一合成信号的示意图; 图10是本发明实施例中基于基音重复生成第一合成信号的示意图; 图11是本发明实施例的一种实现丢包隐藏的装置的结构示意图; 图12是图11所述合成信号生成模块的结构示意图。

具体实施例方式 下面结合附图详细叙述本发明实施例提出的一种丢帧隐藏的方法及装置的技术方案。
参考图5,图示了本发实施例的一种丢帧隐藏的方法的流程图。为叙述方便,需结合图4,解码端接收到了帧F2和帧F3对应的MDCT系数MDCT3以及F4和F5对应的MDCT系数MDCT5,但却没有收到帧F3和帧F4所对应的MDCT系数MDCT4,解码器这端处理具体步骤包括 S1,当解码器检测到MDCT系数丢失之后,利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号;在本例中,MDCT4对应的丢失帧为帧F3和帧F4,历史信号对应帧F2及帧F2之前的帧的信号; S2,使用快速反变换算法对所述第一合成信号进行快速IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数; S3,利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行TDAC处理,得到所述丢失的MDCT系数对应的丢失帧对应的信号。
在具体实施时,如图6所示,同时结合图4和图7,在步骤S1中,所述利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号具体包括 S101,获取所述丢失帧之前的历史信号对应的基音周期T0; S102,将历史信号最后一个长度为T0的信号复制到基音缓冲区PB0; S103,将所述历史信号最后5T0/4开始,长度为T0/4的信号乘上一个上升窗后的信号与从基音缓冲区中3T0/4处开始,长度为T0/4的信号乘上一个下降窗后的信号做交叉衰减处理,并将交叉衰减处理得到的信号替换所述基音缓冲区中3T0/4处开始,长度也为T0/4的信号; 需要说明的是,这里无需对历史信号的最后T0/4信号进行更新,因为帧F3仍有部分有效信号,而在靠近丢失帧末尾的部分信号与原始信号是比较接近的,根据叠加抵消的性质,不需要对历史信号的末尾进行交叉衰减。
S104,利用所述基音缓冲区中长度为T0的信号生成第一合成信号,即受MDCT4丢失而影响的帧F3和F4对应的信号x′[n]。
设基音缓冲区中的信号用p0[x],x=0,...,T0-1表示,按照公式(6)进行合成得到x′[n] x′[n]=p0[n%T0],n=0,1,2,...,2N-1 (6) 其中,N为非负整数,表示帧长。
同时,初始化相位doffset的初始值为0,合成两帧信号后,对所述相位按照公式(7)进行更新 doffset=2N%T0 (7) 需要说明的是,当有MDCT系数连续丢失时,则重复使用公式(8)合成丢失帧的信号x′[n] x′[n]=p0[(n+doffset)%T0],n=0,1,2,...,N-1 (8) 生成合成信号x′[n]后,对相位doffset按公式(9)进行更新 doffset=(doffset+N)%T0, (9) 其中,N表示帧长,doffset表示相位。
在本发明实施例中,利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号的步骤进一步包括 利用所述丢失帧之后的至少一个MDCT系数对所述第一合成信号进行校正,即利用丢失帧之后收到的完好信号一起生成x′[n],获得质量更好的信号。
具体实施方式
包括两种 实施方式一、利用丢失帧之后仅有1个MDCT系数对所述第一合成信号进行校正 首先采用图6所述的步骤S1的方式合成帧F3、帧F4和帧F5对应的信号x′[n],n=0,...,3N-1;然后,对x′[n]进行相位同步,如图8所示。由于只有一个MDCT系数对应的IMDCT系数可以利用,而且该IMDCT系数相对于原始信号是有损伤的信号,但根据加窗函数的特点,在帧F4和帧F5相接位置附近的有限个采样点与原始信号的幅度是很接近的,因此,可以利用这些有限个采样点来对合成的信号做相位同步,具体为 以帧F5对应的IMDCT系数的起始采样点为中点,两边各取M个样点做为固定模版窗来与信号x′[n]做波形匹配,使用公式(10)获得相位差d, i=-R,...,R 其中,[-R,R]为相位差允许的范围,y′[n],n=0,...,2N-1为IMDCT5系数Y[n],n=0,...,2N-1按公式(11)加窗后的得到的有损信号,即 y′[n]=h[n]·Y[n],n=0,...,2N-1;(11) 然后按照公式(12)对合成信号进行调整,得到第二合成信号x″[n],n=0,...,2N-1 最后,利用下述公式对x′[n]和x″[n]进行交叉衰减,并将交叉衰减后的信号替换x′[n] 在实施方式一中,利用了有限个采样点来做相位匹配,如果丢失帧后有多个MDCT系数可以利用时,则可以利用解码后的完好信号来做相位匹配。
实施方式二、利用丢失帧之后连续多个MDCT系数对所述第一合成信号进行校正 2.1、仅做相位同步 下面以图9为例,对本方法进行详细描述。设z[n],n=0,...,L-1为丢失帧之后的完好信号,L为丢失帧之后可以利用的完好采样点的个数。如图9所示,z[n],n=0,...,L-1对应帧F5之后,包括帧F5的信号。
首先采用图6所述步骤S1的方法合成帧F3、帧F4和帧F5对应的信号x′[n],n=0,...,3N-1,然后利用z[n]对x′[n]进行相位匹配,获得对应的相位差d,具体为取z[n]开始一段长度为M的信号模版,然后在x′[n]中的的采样点x′[2N]附近按照公式(14)获得相位差d i=-R,...,R 其中,[-R,R]为相位差允许的范围。
求得相位差d以后,然后按照公式(12)得到第二合成信号x″[n],n=0,...,2N-1 最后,利用公式(13)对第一合成信号x′[n]和第二合成信号x″[n]进行交叉衰减,并将交叉衰减后的信号替换x′[n] 2.2、仅做后向叠加 在长帧的情况下,可以通过现有技术,例如自相关的方法获得当前帧信号z[n],n=0,...,L-1的基音周期T1。
在短帧的情况下,仅使用解码出的信号z[n]不足以获得当前帧所对应信号的基音周期T1,但考虑到在短帧情况下,丢失帧对应的信号在基音周期上不会发生大的变化,因此可以以历史信号的基音周期T0为当前帧对应的基音周期T1的初始值,然后对T1进行微调,得到T1的具体值,具体为 首先初始化T1为基音周期T0,即T1=T0,然后利用平均幅度差函数(AverageMagnitude Difference Function。AMDCF)对T1进行微调,以获得更准确的T1,具体地,使用公式(15)微调T1 i=-R,...,R (15) 其中,R为设定的调整的范围,在8KHZ采样率下建议R=3 M则为使用AMDF时对应窗口的长度,在本实施例中建议 M=min(T0*0.55,L-T0) (16) z[n]为受影响帧之后收到的完好的信号,L为当丢失帧之后的可用采样点个数。
得到T1后,拷贝z[n]开始T1个样点到基音缓冲区PB1,对基音缓冲区PB1进行初始化。基音缓冲区PB1中的信号用p1[n],n=0,...,T1-1表示,用公式(17)表示初始化基音缓冲区PB1过程如下 p1[n]=z[n] n=0,...,T1-1 (17) 初始化基音缓冲区PB1后,使用后向基音周期重复的方法生成第二合成信号x″[n],n=0,...,2N-1,具体为 如图10所示,帧F2对应丢失帧F3和丢失帧F4之前最后一个完好帧,帧F3和F4对应因受MDCT系数丢失而受影响的帧,帧F5对应解码器解码出的好帧。在图10中的波形图中上面短划线对应的信号是使用历史信号生成的信号x′[n],下面短划线对应的信号是使用受影响帧之后的完好信号生成的信号x″[n]。为保证后向基音周期重复填充的语音在两个基音周期的拼接处不出现波形突变,在进行后向基音周期重复填充之前,需对帧F5进行平滑处理。所述对帧F5进行平滑处理的具体方法为 z[n]中开始长度为T1/4的信号逐个采样点乘上一个上升三角窗,和z[n]中一个基因周期长度起始的长度为T1/4的信号乘上一个下降三角窗之后的信号进行交叉衰减,用交叉衰减后的信号替换基音缓冲区PB1起始长度为T1/4的信号。用公式(18)表示如下 对帧F5进行平滑处理后,使用基音缓冲区PB1起始的T1个采样点信号,用基音重复的方法生成信号x″[n],如图10中的三个箭头所示,用公式(19)表示如下 x″[n]=p1[((T1-2N%T1)+n)%T1],n=0,…,2N-1 (19) 最后,将x″[n]和x′[n]进行交叉衰减,并用交叉衰减后的得到的信号,按照公式(13)更新x′[n]。
需要说明的是,当丢失帧之后的可用采样点个数M不足以满足平滑处理的条件时,即T1*1.25<M时,则仅按照方法2.1中的方法对合成的信号做相位同步。
上面结合图6-10详细叙述了步骤S1的具体实施方式
,下面进一步叙述本发明实施例中,基于上述实施方式得到的信号x′[n],进行快速IMDCT变换,具体地,在所述步骤S2中,根据MDCT和IMDCT系数的性质,可以使用下述公式快速得到所述丢失帧对应的IMDCT系数为 其中,Y[n]表示所述丢失的MDCT系数对应的IMDCT系数,x′[n]表示所述第一合成信号,N为帧长。
在具体实施时,所述步骤S3,利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行时域混叠抵消TDAC处理,得到所述丢失帧对应的信号具体包括 按照公式(5)进行叠加处理得到所述丢失帧对应的信号; 其中,y[n]表示丢失的MDCT系数对应的一个丢失帧所对应的信号,h[n]表示用于TDAC处理的窗函数,Y[n]表示所述丢失的MDCT系数对应的IMDCT系数,则Y′[n+N]表示与Y[n]相邻的,Y[n]之前的IMDCT系数。
在本发明实施例中,利用步骤S2得到的IMDCT4的前N个系数和INMDCT3的后N个系数进行叠加,得到帧F3对应的信号y1[n]为 y1[n]=h[n+N]·Y1′[n+N]+h[n]·Y1[n] n=0,...,N-1, Y1[n]=h[n]·x′[n]-h[N-n-1]·x′[N-n-1]n=0,...,N-1; 其中,Y1[n]表示帧F3对应的IMDCT系数(即IMDCT4的前N个系数),Y1′[n+N]表示所述帧F2对应的IMDCT系数(即IMDCT3的后N个系数),N表示帧长; 利用步骤S2得到的IMDCT4的后N个系数和IMDCT5的前N个系数进行叠加,得到帧F4的信号y2[n]为 y2[n]=h[n+N]·Y2′[n+N]+h[n]·Y2[n] n=N,...,2N-1, Y2[n]=h[n]·x′[n]-h[3N-n-1]·x′[3N-n-1]n=N,...,2N-1; 其中,Y2[n]表示帧F4对应的IMDCT系数(即IMDCT4的后N个系数),Y2′[n+N]表示帧F5对应的IMDCT系数(IMDCT5的前N个系数),N表示帧长。
有上述可知,通过实施本发明实施例的一种丢帧隐藏的方法,通过采用丢失帧的部分信号以及丢失帧后的完好信号,恢复出丢失帧的信号,充分利用了信号资源,提高了用户体验,保证了QoS。
下面结合图11和图12,详细阐述本发明实施例的一种实现丢帧隐藏的装置。
如图11所示,一种实现丢帧隐藏的装置,包括 合成信号生成模块100,用于当检测到MDCT系数丢失时,利用所述MDCT系数对应的丢失帧之前的历史信号合成所述第一合成信号; 快速IMDCT计算模块200,用于使用快速反变换算法对所述第一合成信号进行快速反MDCT变换IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数; TDAC模块300,用于利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行TDAC处理,得到所述丢失帧对应的信号。
在具体实施时,如图12所示,所述合成信号生成模块100包括 获取单元101,用于获取所述丢失帧之前的历史信号以及该历史信号对应的基音周期; 复制单元102,用于将获取模块获取的历史信号最后一个长度为基音周期的信号复制到基因缓冲区; 基音缓冲区单元103,用于缓存所述复制模块复制的一个基音周期长度的信号; 交叉衰减单元104,用于将所述历史信号最后5T0/4开始,长度为T0/4的信号乘上一个上升窗后的信号与从基音缓冲区中3T0/4处开始,长度为T0/4的信号乘上一个下降窗后的信号做交叉衰减处理,并将交叉衰减处理得到的信号替换所述基音缓冲区中3T0/4处开始,长度也为T0/4的信号,其中T0表示所述基音周期; 合成处理单元105,用于根据所述基音缓冲区中长度为T0的信号,采用基音重复的方法生成第一合成信号。
其中,所述第一合成信号为 x′[n]=p0[n%T0],n=0,1,2,...,2N-1, 其中,p0[x],x=0,...,T0-1表示基音缓冲区中的信号,其中,T0表示所述基音周期,N为表示帧长。
当检测到连续丢失MDCT系数时,所述第一合成信号为 x′[n]=p0[(n+doffset)%T0],n=0,1,2,...,N-1, doffset=(doffset+N)%T0, 其中,T0表示所述基音周期,N表示帧长,doffset表示相位,其初始值为0。
在具体实施时,所述合成信号生成模块100进一步包括 校正单元106,用于利用所述丢失帧之后的至少一个MDCT系数对所述合成处理单元105合成的第一合成信号进行校正,具体包括两种实施方式利用丢失帧之后仅有1个MDCT系数进行校正;利用丢失帧之后连续多个MDCT系数进行校正,上述结合图8-10进行了详细阐述,这里不再赘述。
在具体实施时,快速IMDCT计算模块200使用快速反变换算法对所述第一合成信号进行快速反MDCT变换IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数为 x′[n]表示所述第一合成信号,N为帧长。
在具体实施时,TDAC模块300利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行TDAC处理,得到所述丢失的MDCT系数对应的丢失帧对应的信号为 y[n]=h[n+N]·Y′[n+N]+h[n]·Y[n]n=0,...,N-1 其中,h[n]表示用于TDAC处理的窗函数,Y[n]表示所述丢失的MDCT系数对应的IMDCT系数,则Y′[n+N]表示与Y[n]相邻的前一个IMDCT系数。
需要说明的是,本领域的普通技术人员应该理解,本发明实施例提出的一种丢帧隐藏的方法可以通过计算机程序、指令或可编程逻辑器件编程实现,并可以将所述程序保存到存储介质上,如光盘、磁盘等。
由上述实施例可知,根据本发明实施例的一种丢帧隐藏的方法及装置,在叠加模式下,根据MDCT性质,使用低复杂度的快速算法得到合成信号的IMDCT系数,通过充分利用接收到的部分信号,恢复出高质量的语音信号,提高QoS。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
权利要求
1、一种丢帧隐藏的方法,其特征在于,包括
当检测到改进的离散余弦变换MDCT系数丢失后,利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号;
对所述第一合成信号进行快速改进的离散余弦反变换IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数;
利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行时域混叠抵消TDAC处理,得到所述丢失帧对应的信号。
2、如权利要求1所述的方法,其特征在于,利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号包括
获取所述丢失帧之前的历史信号以及该历史信号对应的基音周期;
将所述历史信号最后一个长度为T0的信号复制到基音缓冲区,其中T0表示所述基音周期;
将所述历史信号最后5T0/4开始,长度为T0/4的信号乘上一个上升窗后得到的信号与从基音缓冲区中3T0/4处开始,长度为T0/4的信号乘上一个下降窗后得到的信号做交叉衰减处理,并将交叉衰减处理得到的信号替换所述基音缓冲区中3T0/4处开始,长度也为T0/4的信号;
利用所述基音缓冲区中长度为T0的信号采用基音重复的方法生成第一合成信号。
3、如权利要求2所述的方法,其特征在于,利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号的步骤进一步包括
利用所述丢失帧之后的至少一个MDCT系数对所述合成的第一合成信号进行校正。
4、如权利要求1所述的方法,其特征在于,对第一合成信号进行快速IMDCT变换,得到所述丢失帧对应的IMDCT系数包括按照下述公式进行计算得到所述IMDCT系数为
其中,Y[n]表示所述丢失的MDCT系数对应的IMDCT系数,h[n]表示窗函数,x′[n]表示所述第一合成信号,N为帧长。
5、一种实现丢帧隐藏的装置,其特征在于,包括
合成信号生成模块,用于当检测到MDCT系数丢失后,利用所述丢失的MDCT系数对应的丢失帧之前的历史信号生成所述第一合成信号;
快速IMDCT计算模块,用于对所述第一合成信号进行快速IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数;
TDAC模块,用于利用所述快速IMDCT计算模块计算得到的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行TDAC处理,得到所述丢失帧对应的信号。
6、如权利要求5所述的装置,其特征在于,所述合成信号生成模块包括
获取单元,用于获取所述丢失帧之前的历史信号以及该历史信号对应的基音周期;
复制单元,用于将获取模块获取的历史信号最后一个长度为基音周期的信号复制到基因缓冲区;
基音缓冲区单元,用于缓存所述复制模块复制的一个基音周期长度的信号;
交叉衰减单元,用于将所述历史信号最后5T0/4开始,长度为T0/4的信号乘上一个上升窗后的信号与从基音缓冲区中3T0/4处开始,长度为T0/4的信号乘上一个下降窗后的信号做交叉衰减处理,并将交叉衰减处理得到的信号替换所述基音缓冲区中3T0/4处开始,长度也为T0/4的信号,其中T0表示所述基音周期;
合成处理单元,用于根据所述基音缓冲区中长度为T0的信号采用基音重复的方法生成第一合成信号。
7、如权利要求6所述的装置,其特征在于,所述合成信号生成模块进一步包括
校正单元,用于利用所述丢失帧之后的至少一个MDCT系数对所述合成处理单元合成的第一合成信号进行校正。
8、如权利要求5至7任意一项所述的装置,其特征在于,所述快速IMDCT计算模块计算得到的丢失的MDCT系数对应的IMDCT系数为
x′[n]表示所述第一合成信号,N为帧长。
全文摘要
本发明公开了一种丢帧隐藏的方法,包括当检测到MDCT系数丢失后,利用所述MDCT系数对应的丢失帧之前的历史信号生成第一合成信号;使用快速反变换算法对所述第一合成信号进行快速IMDCT变换,得到所述丢失的MDCT系数对应的IMDCT系数;利用所述丢失的MDCT系数对应的IMDCT系数,以及与所述IMDCT系数相邻的IMDCT系数进行TDAC处理,得到所述丢失帧对应的信号。相应地,本发明还公开了一种实现丢帧隐藏的装置。实施本发明的一种丢帧隐藏的方法及装置,通过充分利用接收到的部分信号,恢复出高质量的语音信号,提高QoS。
文档编号H04M7/00GK101588341SQ20081002822
公开日2009年11月25日 申请日期2008年5月22日 优先权日2008年5月22日
发明者詹五洲, 王东琦 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1