差错帧隐藏装置与方法

文档序号:7970188阅读:122来源:国知局
专利名称:差错帧隐藏装置与方法
技术领域
本发明涉及移动无线通信系统,更具体地,涉及一种对EVRC(Enhanced Variable Rate Codec,增强型可变速率语音编解码器)原有的差错帧隐 藏 (Frame Erasure Concealment)的装置和方法,以提高EVRC编解码器在有误帧情况下的解码语音质量。
背景技术
在无线通信传输环境中,无线信道的误码率比较高,语音帧可能由于 传输过程中所涉及的各种复杂因素导致在接收时出现丢帧现象。差错隐 藏(ECU, Erasure Concealment/PLC, Packet Loss Concealment) 技术的目的就是为了避免语音帧丢失所带来的负面效应。即,当出现语音帧丢失 的情况时,为了不使听的人感觉到丢帧,应该通知语音解码器进行差错 隐藏,并用预测参数集进行语音合成。如果出现连续丢帧,就要采用减 弱语音的技术让听到的人知道传输被中断了。差错隐藏技术的基本原理 是在接收端对接收到的信号帧采用一定的方法进行差错检测,以发现该帧是正常的语音帧还是差错帧如果是正常的语音帧,则用对应的解码 算法进行语音解码来合成语音;如果是差错帧,则采用相应的差错隐藏技术进行处理。现有的差错隐藏技术可以分为两个大类(1)基于发送端(Sender Based)和(2)基于接收端(R0: Receiver Only)的处理技术。第一种技术,即前向纠错(FEC)技术,利用健壮(Robust)的低速FEC 编码器的输出作为额外的"边际信息"进行传送。所传送的FEC信息在解 码时被用来恢复丢失的语音帧。很显然,基于FEC的差错隐藏方法会使传 输的比特流速率增加,并且会带来额外的编解码延时。
相反,RO差错隐藏技术根据基于参数模型的语音编码器参数信息的慢 变(slow evolution)特性,利用与差错帧临近的编码语音比特流片断 的解码参数,通过外插(extrapolation)或者重复(r印etition)的方 法来恢复解码差错帧所需的解码参数。RO方法不会带来额外的解码延时, 也不会增加编码发送端的传输速率,因此,在现有的各种主流CELP (Code Excited Linear Prediction,码激励线性预测)类型的语音编码器(如 EVRC)中得到了广泛的应用。在大多数CELP类型的语音编解码器中应用的现有差错隐藏技术都是基 于外插(Extrapolation)或者是重复(R印etition)的方法即,根据 上一个正确接收的语音帧中得到的语音编码参数,通过外插或者重复来 恢复丢失帧的解码参数。如果发生了两个或者更多的帧连续丢失的情况, 则采用渐进衰减的静音(muting)处理。由于CELP类型的语音编解码器 都是基于预测编码(predictive coding)的编解码器,当前编码语音帧的 解码不仅依赖于当前帧所有的解码信息比特,而且还与解码器的状态有 关,即与此帧以前的若干解码帧有关。因此,在每一帧解码时,不仅需 要解码出当前帧的输出语音信号,而且还需更新解码器的当前状态。当 接收到的编码语音帧出现错误或者丢失的时候,解码器不仅不能够正确 地解码出语音信号;而且由于不能够正确地更新解码器的当前状态变量、 缓冲区(buffer)和合成滤波器的内容,因此会严重影响后续若干正确 接收的编码语音帧的解码。误帧和丢帧给解码器状态所带来的负面影响, 要一直持续到之后若干个正确语音帧的解码时间才能得到恢复。EVRC语 音编解码器采用RCELP (松散码激励线形预测,Relaxed Code Excited Linear Prediction)算法,同属于CELP类型的语音编解码。因此,以上 所述的CELP编解码器在处理差错帧隐藏时所存在的不能正确更新解码器 状态问题,同样在EVRC上存在,而且严重影响了有误帧/丢帧发生时解码 语音的质量。发明内容本发明提出了一种基于内插的差错帧隐藏方法,利用从误帧之前和之 后正确接收到的帧中得到的解码参数来恢复误帧解码时需要的参数。使
用这种方法来处理误帧或丢帧会给解码带来不大于20ms的延时。将误帧上一帧的正确解码参数存储在解码器的若干个缓冲区中。当误帧或丢帧 之后正确接收到新的一帧并且解码出所有解码参数时,则利用线性内插 的方法来重建丢帧或错帧的相应解码参数,从而达到重建丢失语音帧的 目的。根据本发明的一方面,提供了一种差错帧隐藏方法,包括步骤 接收数据帧;当当前帧为正确帧并且前一帧为差错帧时,利用差错帧之前的至少一帧和之后的至少一帧,通过内插得到重建所述差错帧所需的参数; 利用得到的参数重建所述差错帧。 根据本发明的另一方面,提供了一种差错帧隐藏设备,包括 接收装置,用于接收数据帧;插值装置,用于当当前帧为正确帧并且前一帧为差错帧时,利用 差错帧之前的至少一帧和之后的至少一帧,通过内插得到重建所述差错帧所需的参数;以及重建装置,用于利用得到的参数重建所述差错帧。 利用本发明,与EVRC内嵌方法相比能够在发生误帧或丢帧是明显的 提高解码语音的质量。在连续误帧或丢帧发生时和在高的误/丢帧率的情 况下,使用本发明方法对解码语音质量的提高更加显著。


图1表示根据本发明的EVRC语音编解码器的方框图。 图2示出了误帧或者丢帧可能发生的错误模式。 图3示出了根据本发明的基于内插的差错隐藏方法的流程图。
具体实施方式
本发明基于EVRC语音编解码器内嵌的差错帧隐藏算法,并加以改进。
根据本发明的方法,在正确接收到错误帧发生后的第一个全速率语音 帧时,利用当前帧和差错帧之前接收到的若干个正确全速率帧的解码比特信息,通过内插(interpolation)的方法,来重建错误接收帧的所有 解码参数(如基音延时、自适应码本增益、固定码本增益和合成滤波器 抽头系数等)。本发明的目的在于差错帧之后的第一个正确全速率帧 的解码信息,能够比使用内嵌EVRC的隐藏算法更好地恢复由于接收到错 误帧或丢帧所造成的解码器状态变量和滤波器内容的破坏,尤其是基音 延时的包络信号。并且重新解码上一个错误帧的语音信号,并且将其写 回到输出语音缓冲区,从而较大地提高有错帧或丢帧发生时解码语音信 号的质量。(1)现有的EVRC内嵌差错帧隐藏方法以下伪代码描述了 EVRC解码器的速率判决过程if ( FE; _FLAGM == TRUE ) {if (tost_w2&'d_ra" == Rate 1/8) { i dte: Rate 1/8else; {i orte = Rate 1if URate-- Rate 1/8) and (tastXmfe" Rate 1) and (F£i ^FL/iG(m-l)FALSE)) { fEi 一舰G(m) = TRUE J afe - Rate 1if ( JTO_FLAG(;n) == FALSE )《Rate - Rate from received packet typem为当前解码帧的帧号;FER—FLAG(m)为当前帧是否为误帧的标志。全速率帧解码的差错隐藏方法: LSP (Line Spectrum Pair,线谱对)参数的解码当<formula>formula see original document page 8</formula>时,利用上一帧的LSP参数,通过带宽扩展来重建当前帧的LSP参数。<formula>formula see original document page 8</formula><formula>formula see original document page 8</formula>是LSP参数的初始值,<formula>formula see original document page 8</formula>。如果解出的LPCFLA传输码=TRUE,并且(Fer_FLAG (m-1) =TRUE) 则,应该用<formula>formula see original document page 8</formula>来进行带宽扩展内插后的LPC参数<formula>formula see original document page 8</formula>
*基音延时的解码如果(Fer—FLAG (m) =TRUE),则当前帧的延时参数t(w)定义如下r(m) = r(m-l)在子帧的解码过程中,如果(Fer—FLAG (m) = TRUE),并且上一个正确接收帧的自适应码本的平均增益<formula>formula see original document page 8</formula>,则由内插得到的每个子帧的三个延时估计d(m,j)通过下式计算<formula>formula see original document page 8</formula><formula>formula see original document page 8</formula>的第k个元素。參自适应码本贡献的计算方法当错帧或丢帧时,自适应码本平均增益^P^g由下式计算:=FALSE)(m-l)(Fer FLAG (m) =TRUE)且(Fer FLAG (m-1)0.75g》—1)(Fer—FLAG (m) = TRUE) 且 (Fer—FLAG (m-1) = TRUE)对于每一个子帧,自适应码本的增益<formula>formula see original document page 8</formula>定义如下"m) = "(w); (Fer FLAG (m) = TRUE)參解码激励信号的计算如果(Fer—FLAG (m) = TRUE),固定码本的贡献被置为0。依次合成
的激励信号只包含自适应码本的贡献£(")如果(Fer—FLAG (m) 二 TRUE),在每一个子帧解码时应该计算一个衰 减比例参数"/ _a()5 。 "/用来调整合成激励信号的幅度。如果(Fer_FLAG (m) = TRUE),并且自适应码本的平均增益g阿<a4 ,一个随机产生的固定码本激励将被加入到合成激励信号中。£r (") = £r (") + 0. lgOTVgra"g"eed};o S " <丄1/8速率帧解码时的差错隐藏方法 LSP参数的解码如果(Fer_FLAG (m) = TRUE),则使用上一帧的LSP参数。Q (/n) = ^(w-l)。帧能量向量的解码如果(Fer—FLAG (m) = TRUE),帧能量向量^一)有下式计算。3 ,=o 0 S w < 3FGIDX (m-1)是上一个正确接收的1/8速率帧的码本索引。(2)本发明对EVRC内嵌方法的改进从上一部份对EVRC内嵌的差错帧隐藏方法的描述中可以看出在发 生错帧或者丢帧时,EVRC采用的隐藏方法只是利用差错帧的上一帧的解 码参数来恢复错帧的解码参数。在连续误帧或丢帧发生时,只是对自适 应码本增益等参数实施渐大的衰减。因此,EVRC内嵌的差错帧隐藏方法 在有误帧或丢帧发生时,不能够恢复出更接近于本帧的解码参数,并且 不能很好地更新解码器的状态,如基因延时包络等。这将影响到误帧之 后若干帧的解码。误帧或丢帧以及解码器从错误状态恢复的解码时间, 将在很大程度上影响到解码语音的质量。9 下面将参考附图对本发明的具体实施方式
进行详细的说明 图1示出了根据本发明的EVRC差错帧隐藏装置的方框图。如图1所示,EVRC解码器的输入编码语音信号首先经过误帧/丢帧判 决器110,判断该帧的解码速率以及该帧是否是正确接收。差错隐藏单 元120的工作依赖于110的判决,对于正确帧或者不同的误帧/丢帧情况, 将采取不同的处理措施,以下结合图2进行说明。图2示出了误帧或丢帧发生的几种典型情况。对于各种情况,本发明 分别用下列方法处理1. J"帧(速率为1/8,并且错误标志FER—FLAG = TRUE)利用EVRC内嵌的差错隐藏方法,通过差错隐藏单元120和RCELP解 码器130进行处理,130的输出经过后滤波单元140后形成最终的解码 语音输出。2. 4-2帧(单个全速率帧,并且错误标志FER一FLAG = TRUE) 如果下一个接收到的全速率帧4—,是正确的,则使用本发明提出的基于内插的差错隐藏方法。通过差错隐藏单元120,并且在解码下一帧^" 时通过内插重新恢复解码参数。经过误帧语音重建单元140重新解码该 帧语音信号,误帧语音重建单元140的输出经过后滤波单元150后,形 成最终的解码语音输出。在解码4_,时重新写回4-2的输出缓冲区位置。该处理会带来一帧时间的延迟。3. 4帧和^+i帧(连续的全速率帧发生错误或丢失的情况)按情况1处理^帧。如果4+'的下一帧是正确接收的全速率帧,则最 后一个接收到的错帧"^可以通过本发明提出的基于内插的差错隐藏方法 进行隐藏,同情况2。4. ^-'帧或《"帧(在错帧或丢帧后第一个接收到的正确全速率帧) 在这些帧解码的同时,在正常通过130解码之外,还要通过本帧的解码参数和上一个正确帧的解码参数进行内插,恢复之前发生的那个错帧 的解码参数,修复基因延时包络和解码器的其他状态变量。利用恢复后 的解码参数,重新合成上一个错帧的解码语音信号,并写回上一帧语音信号所在的缓冲区存储位置。这样会带来不大于20ms的解码延时。图3表示了根据本发明利用内插来进行差错帧隐藏方法的详细流程步骤200表示解码器现在接收到了一个正确的全速率语音帧。 步骤210判断当前帧的前一帧是否是一个错误或者丢失的全速率帧。 如果前一帧的解码速率是1/8速率或者前一帧是正确接收的全速率帧, 则直接执行步骤290,即执行当前全速率帧的解码。否则执行步骤220, 对上一个全速率误帧进行差错隐藏。步骤220首先利用当前帧解出的基音延时"^和相对于上一帧的基音延时的差值,即差分时延参数DDELAY (当前帧和上一帧延时之间差值的传输码)计算出上一帧的基音延时参数。r(w -1) = rO) - Z)Z)五"y _ 16步骤230利用在步骤220得到的上一帧的基音延时r^-1),通过线 性内插来重建上一个误帧解码时所需的每一个子帧的基音延时参数在上式中,m代表当前帧的序号,m'是子帧的序号。w' + y是内插系数向量/ = {0.0,0.3313,0.6625,1.0,1.0}中元素的序号。T'由下式定义:步骤240利用下式所示的内插公式来对当前帧和前一个误帧之前的那个正确帧的自适应码本增益参数进行插值
其中,n为当前帧的帧号,F 是当前正确帧的自适应码本增益参数。是位置在当前帧之前第L帧的正确帧的自适应码本增益参数,Z上2 。F_是位置在当前帧之前第x帧的误帧的自适应码本增益参数, 1Sxd 。因为这里允许一帧时间的延时20ms,所以L二2, x=l,即只有与误帧 相邻的前后两帧正确接收帧的参数参与了内插。结合在步骤230得到的 误、丢帧的基音延时参数,能够比使用EVRC内嵌方法更准确地重建出上 一个误帧的自适应码本激励信号,并更好地更新滤波器的状态。步骤250通过与步骤240相同的内插公式来对当前帧和前一个误帧之 前的那个正确帧的固定码本增益参数进行插值,重建误帧解码所需的固 定码本增益。步骤260将前一个误帧之前的那个正确帧的固定码本激励加以一定衰 减后加入到重建的上一个误帧的自适应码本激励中,并更新激励缓冲区 的内容。此步骤的目的是为了更准确的更新解码器的状态,并得到重建 前一个误帧所需的激励信号。如果自适应码本增益系数ave_acb—gain < P20,则还需在总激励中加入随机的激励信号。步骤270通过与步骤240相同的内插公式,利用当前帧和前一个误帧 之前的那个正确帧的LSP参数,重建误帧解码所需的LSP参数。
步骤280利用步骤240、 250、 260和270所恢复的解码参数,对前一 个误帧进行重新解码。并将重建的解码语音信号重新写入上一帧所在的 输出缓冲区。步骤290,开始对当前语音帧的正常解码工作。根据本发明,通过基于内插的差错隐藏方法对内嵌的EVRC差错隐藏 方法进行了改进。本发明所揭示的方法相比于EVRC的内嵌方法,不仅能 够在有误帧或丢帧发生时对误/丢帧进行更好的隐藏,并且能够更好的恢 复误/丢帧造成的解码器状态的损坏,从而使解码器能够在更短的时间内 恢复到正确的状态。通过测试比较,本发明所揭示的方法相比EVRC内嵌 方法能够在发生误帧或丢帧是明显的提高解码语音的质量。在连续误帧 或丢帧发生时和在高的误/丢帧率的情况下,使用本发明方法对解码语音 质量的提高更加显著。
权利要求
1.一种差错帧隐藏方法,包括步骤接收数据帧;当当前帧为正确帧并且前一帧为差错帧时,利用差错帧之前的至少一帧和之后的至少一帧,通过内插得到重建所述差错帧所需的参数;利用得到的参数重建所述差错帧。
2. 根据权利要求l所述的方法,其特征在于,利用以下公式来进行其中,n为当前帧的帧号; 尸 是当前帧的参数;F"是位置在当前帧之前第L帧的正确帧的参数,Z22;F_是位置在当前帧之前第x帧的差错帧的自适应码本增益参数,
3. 根据权利要求1或2所述的方法,其特征在于,所述参数包括所述 差错帧中每一个子帧的基音延时参数、自适应码本增益参数、固定码本 增益参数以及线谱对参数。
4. 根据权利要求3所述的方法,其特征在于,利用差错帧的基音延 时参数来得到所述每一个子帧的基音延时参数其中,m代表当前帧的序号,w'是子帧的序号,^"'是内插系数向量 / = {0.0, 0.3313, 0.6625,1.0,1.0}中元素的序号,r'由下式定义D是所述差错帧的基音延时参数。
5.根据权利要求4所述的方法,其特征在于,利用当前帧与所述差  错之间差分时延参数来计算所述差错帧的基音延时参数 r(w — 1) = — AD£L4 r -16其中,r(m)是当前帧的基音延时,DDELAY是差分时延参数。
6.根据权利要求1所述的方法,其特征在于,将重建的数据帧写入 当前帧的上一帧所在的输出缓冲区。 .
7. 根据权利要求1所述的方法,其特征在于,当当前帧为差错帧时, 利用EVRC内嵌方法来重建差错帧,并将重建的数据帧写入当前帧所在 的输出缓冲区。
8. —种差错帧隐藏设备,包括 接收装置,用于接收数据帧;插值装置,用于当当前帧为正确帧并且前一帧为差错帧时,利用差错 帧之前的至少一帧和之后的至少一帧,通过内插得到重建所述差错帧所 需的参数;以及重建装置,用于利用得到的参数重建所述差错帧。
全文摘要
一种差错帧隐藏方法,包括步骤接收数据帧;当当前帧为正确帧并且前一帧为差错帧时,利用差错帧之前的至少一帧和之后的至少一帧,通过内插得到重建所述差错帧所需的参数;利用得到的参数重建所述差错帧。在连续误帧或丢帧发生时和在高的误/丢帧率的情况下,使用本发明方法对解码语音质量的提高更加显著。
文档编号H04L1/00GK101166071SQ200610140978
公开日2008年4月23日 申请日期2006年10月19日 优先权日2006年10月19日
发明者川 张, 王立众, 胡洪涛 申请人:北京三星通信技术研究有限公司;三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1