专利名称:一种dra帧内误码检测及检测-隐蔽方法
技术领域:
本发明涉及音频帧内误码检测及检测-隐蔽方法,更具体地,涉及一种用于DRA算 法的音频帧内误码检测及检测_隐蔽方法。
背景技术:
如图1A-1B所示,作为音频编码中国国家标准的DRA音频编、解码技术近年来已 为业内所熟知。有关DRA(Digital Rise Audio)音频编解码技术更详细的内容可参见国 家质检总局和中国国家标准化管理委员会于2008年12月22日发布的、标准序号GB/T 22726-2008的国家标准文本,该标准的全部内容在此以引用的方式并入本文。另外,为了叙 述方便,下文中将GB/T 22726-2008标准简称为“DRA标准”,并将与DRA标准相应的DRA多 声道数字音频编解码技术简称为“DRA技术”。DRA技术是一种高质量的多声道音频编码算法,但在网络或通信领域的传输中 (即,在从DRA编码器100的输出端到DRA解码器200输入端之间的传递过程中)可能出现 误码而导致失真音频帧的出现,这些失真音频帧进一步可能影响到解码器的正常工作。因 此,在带有DRA解码器200的接收端有必要采用误码检测和误码隐蔽技术,对失真的音频帧 进行识别和补偿。目前常见的误码隐蔽技术可分为三类——插入技术、插值技术和重建技术(1)插入技术是最简单的一类错误隐蔽技术——它在失真音频帧位置插入自动 生成的音频数据帧,依插入的数据帧生成方式的不同,插入技术分为结合技术、静音替代技 术、噪声替代技术、重复技术;(2)插值技术能更大程度上利用前后语音的相关性,自然代 价是需要更大的计算量。插值技术包括波形替代技术、基音波形复制技术、时间尺度修正技 术等;以及(3)重建技术则在语音模型分析的基础上(一般采用LPC模型),着眼于恢复系 统的内在状态,然后采用合成技术合成失真的音频信息。重建技术具有良好的恢复效果,但 计算代价最高,而且依赖于具体的编码技术。上述关于错误隐蔽技术分类的记载可见于Perkins C S等人1998年发表在IEEE Network Magazine (1998,12 (5) :40_48)上的论文《Survey of packet loss recovery techniques for streaing audio〉〉。不同的错误隐蔽方法具有不同的恢复效果,但需要付出不同的计算复杂度。在实 际应用中,具体误码隐蔽方法的选择依赖于实际编码器的选择和应用的具体要求。目前,还 没有针对符合DRA标准的音频帧的误码检测技术,也没有针对符合DRA标准的音频帧的误 码检测_隐蔽技术。
发明内容
本发明的目的在于提供一种用于DRA音频帧内误码检测及检测_隐蔽的方法。根据本发明的一个实施例,提供了一种DRA音频误码检测方法,其包括通过DRA 解码获得误码有效性信息;以及根据误码有效性信息来判断是否发生误码。
4
进一步地,该误码有效性信息包括DRA帧头信息、窗序列信息、Huffman码书、量 化因子、量化步长、和差编码开关、以及联合强度编码的量化步长索引的至少之一。特别地, 上述根据误码有效性信息的判断包括当误码有效性信息不等于特定值或不在特定范围内 时判定为误码;或者如果误码有效性信息之差超过第一阈值和/或误码有效性信息超过特 定值的次数超过第二阈值,则判定为误码;或者如果经IMDCT解码之后的音频数据幅值超 过第三阈值的次数大于一预先设定的正整数,则判定为误码。根据本发明的再一个实施例,提供了一种DRA音频误码检测_隐蔽方法,其包括 (a)通过DRA解码获得误码有效性信息;(b)根据误码有效性信息来判断是否发生误码; (c)当判定当前帧发生误码时(c. 1)缓存前一帧数据并解码下一帧数据;(c. 2)基于解码 下一帧数据所获得的下一帧数据的误码有效性信息来判断下一帧数据是否发生误码。并 且,如果判定下一帧发生误码则将前一帧数据乘以衰减系数a作为当前帧的相应解码数据;如果判定下一帧未发生误码则对前一帧数据和所述下一帧数据进行插值,并以插值结果作为当前帧的相应解 码数据。进一步地,该误码有效性信息包括DRA帧头信息、窗序列信息、Huffman码书、量 化因子、量化步长、和差编码开关、以及联合强度编码的量化步长索引的至少之一。特别地, 上述根据误码有效性信息的判断包括当误码有效性信息不等于特定值或不在特定范围内 时判定为误码;或者如果误码有效性信息之差超过第一阈值和/或误码有效性信息超过特 定值的次数超过第二阈值,则判定为误码;或者如果经IMDCT解码之后的音频数据幅值超 过第三阈值的次数大于一预先设定的正整数,则判定为误码。根据本发明的又一个实施例,提供了一种DRA音频误码检测_隐蔽方法,其包括 通过DRA解码获得误码有效性信息;根据误码有效性信息来判断是否发生误码;以及如果 第(N-1)帧无误码并且第N帧及随后至少一帧出现误码,则第N帧及随后至少一帧的实际 输出值分别等于第(N-1)帧与一系列呈递减趋势或恒定的衰减系数之积。进一步地,上述一系列呈递减趋势或恒定的衰减系数可能是0。特别地,如果第N帧之后首次出现无误码的帧为第(N+m)帧,则第(N+m)帧及随后 连续无误码的帧的实际输出值可以如下确定以请求实际输出值的帧的数据与一系列呈递 增趋势或恒定的衰减系数之积来代替。更进一步地,上述一系列呈递增趋势或恒定的衰减系数可能是1。基于上述技术方案,实现了对DRA音频帧误码的检测,并在识别出误码时提供了 有效的隐蔽技术,明显地提高了 DRA误码隐蔽质量。另外,根据本发明的技术方案,还能达 到以下技术目的用尽可能小的运算量,达到尽可能高的误码隐蔽效果。
图1A和1B是方框图,其分别示出了现有技术的DRA音频编码器和解码器;图1C是示意图,其图解说明了符合DRA标准的帧结构;图2是示意图,其示出了 DRA技术中典型的窗型匹配情况;
图3是示出根据本发明实施例的、一般性DRA误码检测方法及误码检测隐蔽方法 的流程图;图4是示出根据本发明又一实施例的、DRA帧间插值误码检测隐蔽方法的流程图;图5是示出根据本发明再一实施例的、DRA时域检测误码_频域隐蔽处理方法的 流程图;以及图6是DRA多误码帧的误码检测隐蔽方法的流程图。
具体实施例方式通过借助附图在下文中将描述本发明的优选实施例。在以下描述中,将不详细描 述已成为现有技术的功能或结构,因为不必要的细节将导致本发明的介绍含混不清。在图1A中示出了典型的DRA音频编码器100,其可通过硬件、软件、和/或韧件来 实现。简言之,DRA标准所涉及的技术就是以多个技术模块对源音(例如,输入PCM样本) 进行信号处理,以达到几乎无损压缩源音的目的。上述多个技术模块包括但不限于暂态分 析模块120、多分辨率滤波器组模块122、线性标量量化模块130、量化因子编码模块132、码 表选择模块134、人耳听觉模型模块140、全局比特分配模块142及多路复用模块150。按照 DRA标准的相关规定,上述技术模块为必选模块,即符合标准的DRA输出码流(即,DRA标准 码流)一定是经过上述模块处理后的码流。与之相对应地,图1B中示出了典型的DRA音频 解码器200,它用于接收被DRA编码器处理后的码流,并通过执行编码的逆过程而将编码码 流还原为PCM样本输出。另外,图1C进一步示出了经过DRA音频编码器处理后的DRA音频帧结构,包括同 步字310、帧头信息320、每声道的信息330、填充比特340、及附加数据350五大部分。下文将首先结合图1C中的DRA帧结构,来详细说明根据本发明实施例的帧内误码 检测方法。为了检测某种码流的正确性(即,是否误码),必须从该种码流的帧结构特点出发 进行分析,以获得必要的判据。具体到DRA码流,在将码流分为五大部分310-350的基础上, 可将每声道的信息330细分为窗序列331、Huffman码书332、量化因子333、量化步长334、 和差编码开关335、以及联合强度编码的量化步长索引336六部分。这六部分信息331-336 以及帧头信息320与图1A-图1B中示出的技术模块分别对应,它们一旦产生误码,将会直 接影响到后续部分的解码,因此本文将六部分331-336及帧头信息320称之为“误码有效性 信息”,它们可能被可用于判断DRA码流的正确性。与此对应,同步字310、填充比特340、以 及附加数据350等并不能用于判断DRA码流的正确性,就不属于“误码有效性信息”。具体来说,利用“误码有效性信息”来判断码流是否有误方法以及相应的误码隐蔽 方法(即,对存在误码的部分进行补偿的方法)如下文1-6所示1、与帧头信息320相关的检测和隐蔽方法根据DRA标准,帧头320中存在如下文1. 1-1. 10所示的参数,它们直接打包进入 码流,不需要经过霍夫曼编码处理1. InFrmHeadType :1bit此参数指示帧头类型,在目前实现DRA标准的装置中,该比特的值都被设置为0, 所以如检测到该参数为1则表示出现误码。如果该参数出现误码,相应的误码隐蔽方法为从其他帧获取帧头类型信息来代替当前帧的帧头类型。1. 2nNumfford 1 Obits此参数指示当前帧的数据从同步字310到填充比特340结束的长度。如若当前帧 的长度与前一帧的长度不同,则说明出现误码,其相应的隐蔽方法为用前一帧的帧长来代 替当前帧的帧长。1. 3nNumBlocksPerFrm :2bits此参数指示短窗MDCT的块数,目前该参数的传输值只能为3。如若出现其他值,都 视为出现误码。相应的误码隐蔽方法为以3来作为nNumBlocksPerFrm的传输值。1. 4nSampleRateIndex :4bits.此参数指示采样率的索引值,目前取值为0-12,出现13-15的值就判别为误码。若 检测出误码,则相应的误码隐蔽方法是从其他帧中获取nSampleRatelndex的值来代替当 前中贞的 nSampleRatelndex。1. 5nNumNormalCh :3bits此参数指示正常声道的个数,其误码检测方法在于确定其所指示的正常声道数与 码流中实际的正常声道数是否匹配,如不匹配,则说明出现误码。若检测出误码,则相应的 误码隐蔽方法是从其他帧中获取nNumNormalCh的值来代替当前帧的nNumNormalCh。1. 6nNumLfeCh :1bit此参数指示低频增强(LFE)声道的个数,其误码检测方法在于确定其所指示的 LFE声道数与码流中实际的LFE声道数是否匹配,如不匹配,则说明出现误码。若检测出误 码,则相应的误码隐蔽方法是从其他帧中获取nNumLfeCh的值来代替当前帧的nNumLfeCh。1. 7bUseSumDiff :lbit此参数指示是否使用和差编码决定。当nNumNormalCh = 1时,此位应为0,否则表 示出现误码。相应的误码隐蔽方法是将bUseSumDiff置零。1. 8bUseJic :lbit此参数指示是否使用联合强度编码决定。nNumNormalCh = 1时,此位应为0,否则 表示出现误码。相应的误码隐蔽方法是将bUseJic置零。1. 9bAuxChCfg :1bit此参数指示是否存在辅助数据,目前暂无相关的误码检测机制。1. lOnJicCb :5bit此参数指示联合强度编码时的起始临界频带,在bUseJic = 1时有效;误码的判断 方法是看该参数所代表的实际值是否超过其所对应的临界频带最大可能值,如果超过则表 示出现误码。如果出现误码,相应的误码隐蔽方法用前一帧的数据bUseJic值来代替当前 帧的 bUseJic。2、与窗序列信息331相关的检测和隐蔽方法2. InffinTypeCurrent :4bits此参数指示MDCT变换的窗型,其取值范围为
(长窗),或者[9,12](短窗) (nffinTypeCurrent的可能值与窗形的对应关系见下表1,参见DRA标准第19页表16),超出 该范围的取值将被判定为存在误码。表1窗口函数索引
另外,对前一帧的窗型和当前帧的窗型进行匹配,也是另一种判断是否存在误码 的方法。图2中列举了一些典型窗型之间的过渡,与之对应的判断方法如下> 当前一帧为 WIN_L0NG_L0NG2L0NG 时,当前帧应为 WIN_L0NG_L0NG2SH0RT 或者 WIN_L0NG_L0NG2BRIEF,如若当前帧的窗型出现其他窗型,则判断为误码;>当前一帧为 WIN_L0NG_L0NG2SH0RT 时,当前帧应为 WIN_L0NG_SH0RT2BRIEF、WIN_ SH0RT_SH0RT2BRIEF或者WIN_SH0RT_SH0RT2SH0RT,如若当前帧的窗型出现其他窗型,则判 断为误码;;>当前一帧为WIN_L0NG SH0RT2L0NG 时,当前帧应为 WIN_L0NG_L0NG2L0NG、WIN_ L0NG_L0NG2SH0RT或者WIN_L0NG_L0NG2BRIEF,如若当前帧的窗型出现其他窗型,则判断为
误码;>当前一帧为 WIN_L0NG_L0NG2BRIEF 时,当前帧应为 WIN_L0NG_BRIEF2BRIEF、 WIN_L0NG_BRIEF2SH0RT、WIN_SH0RT_BRIEF2BRIEF 或者 WIN_SH0RT_BRIEF2SH0RT,如若当前帧的窗型出现其他窗型,则判断为误码;>当前一帧为 WIN_L0NG_BRIEF2L0NG 时,当前帧应为 WIN_L0NG_L0NG2L0NG、WIN_ L0NG_L0NG2SH0RT或者WIN_L0NG_L0NG2BRIEF,如若当前帧的窗型出现其他窗型,则判断为
误码;>当前一帧为 WIN_L0NG_BRIEF2BRIEF 时,当前帧应为 WIN_L0NG_BRIEF2SH0RT、 WIN_SH0RT_BRIEF2SH0RT或者WIN_SH0RT_BRIEF2BRIEF,如若当前帧的窗型出现其他窗型, 则判断为误码;> 当前一帧为 WIN_L0NG_SH0RT2SH0RT 时,当前帧应为 WIN_SH0RT_SH0RT2SH0RT、 WIN_L0NG_SH0RT2BRIEF或者WIN_SH0RT_SH0RT2BRIEF,如若当前帧的窗型出现其他窗型, 则判断为误码;> 当前一帧为 WIN_L0NG_BRIEF2SH0RT 时,当前帧应为 WIN_SH0RT_SH0RT2SH0RT、 WIN_L0NG_SH0RT2BRIEF或者WIN_SH0RT_SH0RT2BRIEF,如若当前帧的窗型出现其他窗型, 则判断为误码; > 当前一帧为 WIN_SH0RT_SH0RT2SH0RT 时,当前帧应为 WIN_L0NG_SH0RT2L0NG、 WIN_L0NG_SH0RT2SH0RT或者WIN_L0NG_SH0RT2BRIEF,如若当前帧的窗型出现其他窗型,则 判断为误码;> 当前一帧为 WIN_SH0RT_SH0RT2BRIEF 时,当前帧应为 WIN_L0NG_BRIEF2L0NG、 WIN_L0NG_BRIEF2SH0RT或者WIN_L0NG_BRIEF2BRIEF,如若当前帧的窗型出现其他窗型,则 判断为误码;>当前一帧为 WIN_SH0RT_BRIEF2SH0R 时,当前帧应为 WIN_L0NG_SH0RT2L0NG、WIN_ L0NG_SH0RT2SH0RT或者WIN_L0NG_SH0RT2BRIEF,如若当前帧的窗型出现其他窗型,则判断 为误码;>当前一帧为 WIN_SH0RT_BRIEF2BRIEF 时,当前帧应为 WIN_L0NG_BRIEF2L0NG、 WIN_L0NG_BRIEF2SH0RT或者WIN_L0NG_BRIEF2BRIEF,如若当前帧的窗型出现其他窗型,则 判断为误码。2. 2nNumCluster :2bits该参数当前帧划分的clusteH即,DRA标准中的瞬态段,指一帧内一个或多个统 计特性相接近的分块的集合)的个数。其取值范围在
之间,超出范围则认为是误码 (即,瞬态段的个数不会为3);如果当前帧的窗型为长窗,那么nNumCluster为0,如果出现 其他值,判定出现误码,相应的误码隐蔽方法为直接将其置为0 ;如果当前帧的窗型为短 窗,一旦nNumCluster为0,则判定为出现误码。2. 3nNumBlocksPerFrm[nCluster-l]该参数指示每个cluster中短MDCT的块数,由huffman解码得到。3、与huffman码书相关的检测和隐蔽方法3.lanHSNumBands[nCluster] :5bits该参数指示第nCluster个瞬态段的码书段的个数,取值范围为
,如果超过 此范围,则判定为误码。3. 2mnHSBandEdge[anHSNumBands]该参数指示huffman码书段的应用范围,其大小应满足
9mnHSBandEdge [anHSNumBands] *4 小于 128*nNumBlocksPerFrm[nCluster](短窗的情况), 或小于1024 (长窗的情况)。否则,判定为误码。3. 3mnHS[anHSNumBands]该参数对应Band的huffman码书号,对应的码书号应在
之间,超出此范围 判定为误码。4、与量化因子和量化步长相关的检测和隐蔽方法4. lanQIndex[nBin]该参数表示第nBin个子带样本的量化因子,由Huffman解码得到,该参数中如果 含有误码,一般可以继续解码,但是会影响重建音频的质量。4. 2mnQStepIndex[nCluster][nBand]该参数表示量化单元(nCluster,nBand)的量化步长索引,由Huffman解码得到, 如果其值范围是0-115 (参加DRA标准表B. 1),超出此范围的取值将被判定为误码。进一步地,当该参数出现误码但其错误的解码值小于116时,一般不会影响后续 解码,因为仍然能由DRA标准表B. 1查出相应的量化步长,但该错误的量化步长值会影响解 码出来的音频质量。对于量化步长索引小于116情况下的误码,下文中将结合图5来进行 更详细的描述。5、与和差编码开关相关的检测和隐蔽方法通过mnSumDffOn [nCluster] [nBand]来判断对应量化单元(nCluster,nBand)是 否采用和差编码,此部分参数是一种特殊情况,目前无法针对和差编码开关检验帧内是否 存在误码的机制。6、与使用联合强度编码时的量化步长相关的检测和隐蔽方法 mnJicStepIndexp[nCluster] [nBand]表示使用联合强度编码时,量化单元(nCluster, nBand)所对应的谱系数的量化步长索引,由Huffman解码得到,如果其值大于等于116,视 为误码。进一步地,当该参数出现误码但其错误的解码值小于116时,一般不会影响后续 解码,因为仍然能由DRA标准表B. 1查出相应的量化步长,但该错误的量化步长值会影响解 码出来的音频质量。对于量化步长索引小于116情况下的误码,下文中将结合图5来进行 更详细的描述。上文中分六个方面介绍了如何检测DRA帧内是否存在误码,并对一些误码情况给 出了较为简单、直接的误码隐蔽方法。下面将针对图3-6中提供的DRA帧内误码检测-隐 蔽方法加以介绍,叙述中还参考了图1-2的内容。总体来说,为了给出对于DRA帧内误码的检测_隐蔽方法,需要从DRA本身的帧结 构出发加以分析,找出符合其特点的误码隐蔽技术。图3中示出了一般性的DRA误码检测方法及误码检测-隐蔽方法10。通过图3中 的步骤可知DRA误码检测-隐蔽方法分为三种情况(1)对于一些特定参数出现误码,可以 采用以前一帧相应参数直接替代的方法进行隐蔽处理(具体的替代方法在上文中结合对 “误码有效性信息”的讨论进行了详细的叙述);(2)对于在窗序列、huffman码书、量化步长 以及量化因子这些模块中所检测出的误码,则可能以频域插值的方式进行隐蔽处理(如参 数误码判定步骤14中“是”)缓存该误码帧前一帧的数据,然后退出,继续解码误码帧下一帧的数据,在下一帧数据判定为无误码的情况下,对两帧的数据在频域进行插值,该方法将 在下文中进行更详细地描述;(3)对于一些不能通过判断参数大小范围来检测误码的参数 (例如,上文中提到的“量化步长索引小于116情况下的误码”),则会在IMDCT 18后设置 幅值判断步骤19,在该步骤中对时域中的数据进行幅值判断,如果满足某些判据(下文中 将详细描述),那么表明该解码帧存在误码,在下一帧的频域进行隐蔽处理后,再进行输出; 否则说明没有误码,直接输出PCM数据。步骤19中基于幅值判断的误码检测及检测_隐蔽 方法将在下文中结合图5进行更详细地描述。由于第(1)种情况下基于直接替代的误码检测_隐蔽方法已在上文关于“误码有 效性信息”的讨论进行了较为详细的说明,因此下文中将不再赘述。下文将分别详细说明上 述的第(2)种情况和第(3)种情况下的误码检测-隐蔽处理方法。首先结合图4具体说明上述第二种情况的处理方式,即当判断出窗序列信息、 huffman码书、量化因子或量化步长这几个模块中的参数存在误码时,将会退出当前帧的解 码(对应步骤24中的“是”),进而读入(步骤30)并解码(步骤31-33)下一帧数据,并缓 存前一帧的数据备用(步骤30’)。在下一帧无误码的情况下(对应步骤34中的“否”),利 用步骤30’中储存的以及步骤31-33中解码的、误码帧的前后两帧的数据在步骤36中进行 频域插值,获得当前误码帧数据的估计值,以它作为当前误码帧的实际输出送入IMDCT 28 ; 在下一帧也被判定为误码的情况下(对应步骤34中的“是”),在模块35中衰减处理误码 帧的前一帧的数据,并以之作为误码帧的实际输出送入IMDCT 28。下文中如图4所示,将可能存在误码的帧具体化为第n帧(n> 1)。则上述基于频 域插值或衰减处理的DRA误码检测-隐蔽方法被具体化为当在步骤24中检测到第n帧参 数存在误码时,就在步骤30’中缓存的第(n-1)帧数据并在步骤30中读入编码的第(n+1) 帧的数据;随后,如果在步骤34中,解码后的第(n+1)帧数据的相应参数被检测为无误码 (对应步骤34中的“否”),那么将进入到步骤35、35’、及36,对保存下来的第(n-1)帧和 第(n+1)帧数据进行频域插值,把插值的结果作为第n帧数据的实际输出值,然后进行后续 操作IMDCT 28 ;如果第(n+1)帧参数检测存在误码(步骤34中的“是”),那么将进入步骤 37,在此步骤中将步骤30’中缓存的第(n-1)帧数据乘以衰减系数a,所得的结果作为第n 帧数据的估计值,并以之作为到IMDCT 28的输入。下文中为了方便,将步骤30-36对应的处理称为“频域插值方法”,用于指示根据 本发明实施例的、基于无误码的前一帧和后一帧数据来插值估计有误码的当前帧数据,并 以此估计值来作为当前帧的实际输出。并且进一步将步骤30-37对应的处理称为“频域插 值或衰减方法”。本领域技术人员可以理解的是,频域插值方法中的关键步骤是频域插值步骤36, 其中所用到的插值优选是线性插值;更优选地,用于第(n-1)帧和第(n+1)帧数据线性插值 的系数之比等于第(n-1)帧和第(n+1)帧能量之比,并且用于第(n-1)帧和第(n+1)帧数 据插值的系数之和为1。本领域技术人员通过阅读本发明说明书还可以理解的是,“频域插 值或衰减方法”中的步骤37中所采用衰减系数a的值域是W,l],优选在0.3-0. 8之间, 更优选为0.5。当DRA码流中的误码出现在量化因子333或者量化步长334参数中时,有可能 huffman解码不会报错(如上文提到的第(3)种情况),可以继续解码。但是这种误码的存在会直接影响到解码出来的量化因子、量化步长的值,特别是在量化步长参数出现误码时, 会直接将所得到的音频谱线值扩大很多倍,极大影响了量化单元声音能量的准确性,造成 最终的输出出现刺耳的噪音。为此,如图5所示,提供了根据本发明再一实施例的、对上述 模块出现误码情况的特定检测方法及检测_隐蔽方法频域的量化步长误码检测及处理(对应于步骤44的判断“是”及随后的处理)首先考虑在频域中,对解码出来的量化步长进行检测。通过对量化步长的特征分 析,来判断量化步长的正确性对添加随机误码后的各个音频帧解码出来的量化步长进行分析,可获得量化步长 参数存在误码的判据如下(a)各个量化单元对应的量化步长大小存在很大跳跃时判定为 存在误码;或(b)解码出的量化步长索引的值大于100的次数较多时判定为存在误码。具 体来说,在步骤44中可通过判断一帧内各量化单元对应量化步长索引之差是否超过预定 阈值3 (各量化单元对应量化步长索引之差超过3则判定为误码),和/或通过判断量化 步长索引值超过100的次数是否超过阈值Y (量化步长索引值超过100的次数超过、则 判定误码)来判断该参数是否存在误码。优选地,0在10-20之间,Y在5-10之间。因此,通过分析各个量化单元量化步长的跳跃性和统计量化步长大于100的个 数,可基本确定本帧量化步长是否出现误码。当出现误码时(对应于步骤44中的“是”), 可通过前文描述的“频域插值或衰减方法”对误码帧加以隐蔽处理,这在上文中已结合图4 进行了详细叙述,在此不再赘述。上述频域误码检测和误码检测_隐蔽方法具有延时小、处理复杂度低的优点,但 是在误码检测方面也存在着准确度低的缺点。为此,本发明还提供了另一种基于时域量化 步长的误码检测方法。时域的量化步长误码检测及处理(对应于步骤49的判断)具体来说,如果在步骤48处IMDCT解码获得的数值超过限幅值的某个(优选为 1.2)倍数(16位精度对应的限幅值为32767,24位精度对应的限幅值为8388606)的次数大 于某个正整数k (优选在8-12之间,更优选为10),就在步骤49处判定该帧数据在解码过程 中所得到的量化步长有误。反之,在步骤49中如判定为没有误码,则直接输出PCM数据作 为最终的输出。对于在步骤49中判定为存在误码的情况,将继续在频域中进行误码隐蔽处理,该 处理方法与前文所述的“频域插值或衰减方法”完全类同,在此不再详述。但需要特别注意 的是,图5步骤54的选择为“是”的一支中标注的是“Fade-out (淡出)”,而并不是类似图 4中步骤37的衰减处理。这样的标注是为了着重表明本文所述的“频域插值或衰减方法” 中衰减误码帧的前一帧的处理方式(例如,步骤37中的处理)实际是下文随后描述的基于 fade-out,muting,fade-in处理的多帧误码检测-隐蔽方法中的一种特殊情况即,针对出 现连续误码的首帧误码帧所采用的fade-out处理就是“频域插值或衰减方法”中衰减误码 帧的前一帧的处理方式。时域检测与频域检测相比,其优点在于误码检测的准确度比较高;缺点则是延迟 时间较大并且处理复杂度较高。在下文中将结合图6,描述根据本发明再一实施例的DRA帧内误码检测及检测-隐 蔽方法——基于fade-out、muting、fade-in处理的多帧误码检测-隐蔽方法60。此类方法特别针对的是误码帧个数大于1的情况,在该种情况下不适于采用插值方法来进行隐蔽 处理。具体来说,若当前帧的某个参数被检测为误码,则退出当前帧的解码;进而解码下一 帧时,下一帧又出现误码时,确定为多帧出错;此时就不能继续采用频域插值的方法来进行 误码隐蔽了。根据本发明的一个实施例,此种情况下需要缓存连续误码帧之前最接近的无误码帧的解码数据,并将该数据乘以某一哀减系 数(例如,a)后,以生成的新数据来作为第一个出错的误码帧的实际输出,如前所述,此时 的处理方法就是“频域插值或衰减方法”中衰减误码帧的前一帧的处理方式;依次减小衰减 系数,并以不断减小的衰减系数对连续误码帧之前最接近的无误码帧数据进行衰减,并以 衰减后的数据作为后续各个误码帧的实际输出,这就是所谓淡出(fade-out)处理的基本当误码帧数超过某一预设值时,采用静音处理(muting),即将当前处理帧置零,以 静音作为当前帧的输出。当传输的DRA帧首次恢复正常(无误码)时,取出首次出现的正确帧数据,用该数 据乘以相应的衰减系数,并以该乘积来作为首次出现的正确帧数据的实际输出,这就是所 谓的淡入(fade-in)处理的基本思想。上述方法的具体实现如图6所示1)当在码流中检测到首次出现的误码帧63(如,第N帧)时,缓存第(N-1)帧61 的数据;2)继而解码第(N+1)帧65,如果第(N+1)帧数据在解码的过程中也被判定为误 码,那么拷贝缓存的第(N-1)帧的数据62,并将其乘以一个衰减系数a,所得结果作为第N 帧数据的实际输出,继续后续的操作;反之,如果第(N+1)帧数据在解码的过程中未被判定 为误码,则以第N-1帧和第N+1帧数据执行上文提到的“频域插值方法”,通过频域插值的结 果来替代第N帧的数据输出,继续后续的操作。本文中为了更典型地说明fade-out处理如何实现,假定第N_(N+5)帧均被判定为 误码。即,当处理到第N帧到第N+4帧时,始终在步骤2)中出现的第一种情况。3)当第(N+2)帧继续出现误码,就用缓存的第(N-1)帧的数据64乘以衰减系数 a 2,所得的结果来代替误码的第(N+1)帧65作为实际输出;4)以此类推,当第(N+x)帧出现误码(2 < x < 6),就继续用缓存的第(N_l)帧的 数据乘以衰减系数a A,所得的结果来作为误码的第(N+x-1)帧的实际输出;为了方便表达,上述步骤2)_4)在本发明中被称之为“基于fade-out处理的多帧 误码检测_隐蔽方法”。5)如果误码帧数超过5帧,那么从第(N+5)帧67开始,将之后连续出现的误码帧
均置零,静音输出。为了方便表达,上述步骤5)在本发明中被称之为“基于muting处理的多帧误码检 测_隐蔽方法”。6)假定连续出现误码后首次恢复正常(即,无误码)的帧为第N+m帧69。此时, 将第(N+m)帧69的解码数据乘以与之前fade-out处理时对应的衰减系数a 5后,作为第 (N+m)帧数据的实际输出。
13
7)接下来解码并判断下一帧如果第N+m+1帧又出现了误码,则通过判断第N+m+2 帧是否误码来决定是通过频域插值还是基于fade-out处理的多帧误码检测_隐蔽方法来 得出第N+m+1帧数据的实际输出。需要特别注意的是,如果采用频域插值处理,则第(N+m) 帧数据需要采用其实际输出(即第(N+m)帧X a5);反之,如果第N+m+1帧仍然保持无误 码,则采用第(N+m+1)帧的解码数据乘以与之前对应的衰减系数a 4后,作为第(N+m+1)帧 数据的实际输出。为了说明fade-in效果如何实现,在本发明的实施例中假定第(N+m)-(N+m+4)帧 均被判定为无误码。即,第(N+m)-(N+m+4)帧始终出现步骤7)的第二种情况。8)以此类推,当第(N+m+y)帧无误码(1 < y < 5)时,就继续用缓存的第(N+m+y) 帧的数据乘以衰减系数a5、所得的结果来作为第(N+m+y)帧的实际输出。为了方便表达,上述步骤6)_8)在本发明中被称之为“基于fade-in处理的多帧误 码检测_隐蔽方法”。本发明的有益效果表2示出了根据本发明实施例的的DRA误码检测_隐蔽方法(综合处理)和直接 以静音替代方法之间的比较结果,测试条件是误码率le-5的DRA码流。为得出表2中结果 所使用的客观测试软件为EAQUAL,版本为0. 1. 3alpha。客观差别分(0DG)的值为0到-4, 其中0代表不能感知的损伤,-4代表着非常讨厌的损伤。测试码流为MPEG音频测试所用 的12段音频片段,均为双声道,48kHz,压缩码率为128kbps,误码率为le_5。表2综合处理和静音替代客观分0DG对比
测试码流综合处理静音替代esOl-0. 85-1. 28es02-0. 48-0. 42es03-0. 86-0. 79scOl-1. 54-1. 84sc02-0. 91-1. 20sc03-0. 68-0. 70smOl-0. 63-0. 91sm02-2. 30-2. 53sm03-3. 85-3. 83siOl-0. 61-1. 05 从表中可以看出对于瞬态信号,比如sm02和si02,用根据本发明实施例的的DRA 误码检测_隐蔽方法可以大大提高误码隐蔽的质量。根据分析结果可以看出,对于音乐类 的码流,采用根据本发明实施例的的DRA误码检测-隐蔽方法,误码隐蔽效果比静音替代要 好得多;对于语音类码流,效果也比较理想。虽然结合目前被认为是最实际和最优的实施例描述了本发明,但本领域技术人员 应当理解本发明不限于所公开的实施例,相反,本发明旨在覆盖所附权利要求的精神和范 畴之内包括的各种各样的修改和等价结构。本领域技术人员能够理解的是可如示于特定 实施例地将多种变形和/或改进使用到本发明,而这并不脱离以宽广方式描述的本发明精 神或范围。因此,本文的实施例被认为在各个方面是描述性的而非限定性的。
权利要求
一种DRA音频误码检测方法,包括通过DRA解码获得误码有效性信息;以及根据所述误码有效性信息来判断是否发生误码。
2.根据权利要求1所述的方法,其特征在于,所述误码有效性信息包括DRA帧头信息、 窗序列信息、Huffman码书、量化因子、量化步长、和差编码开关、以及联合强度编码的量化 步长索引的至少之一。
3.根据权利要求1或2所述的方法,其特征在于,所述根据误码有效性信息的判断包 括当所述误码有效性信息不等于特定值或不在特定范围内时判定为误码。
4.根据权利要求1或2所述的方法,其特征在于,所述根据误码有效性信息的判断包 括如果所述误码有效性信息之差超过第一阈值和/或所述误码有效性信息超过特定值的 次数超过第二阈值,则判定为误码。
5.根据权利要求1或2所述的方法,其特征在于,所述根据误码有效性信息的判断包 括如果经IMDCT解码之后的音频数据幅值超过第三阈值的次数大于一预先设定的正整 数,则判定为误码。
6.一种DRA音频误码检测-隐蔽方法,包括(a)通过DRA解码获得误码有效性信息;(b)根据所述误码有效性信息来判断是否发生误码;(c)当判定当前帧发生误码时(c. 1)缓存前一帧数据并解码下一帧数据;(c. 2)基于解码下一帧数据所获得的下一帧数据的误码有效性信息来判断下一帧数据 是否发生误码;如果判定下一帧发生误码时将所述前一帧数据乘以衰减系数α作为当前帧的相应解码数据;以及如果判定下一帧未发生误码时对所述前一帧数据和所述下一帧数据进行插值,并以插值结果作为当前帧的相应解码 数据。
7.根据权利要求6述的方法,其特征在于,所述误码有效性信息包括DRA帧头信息、窗 序列信息、Huffman码书、量化因子、量化步长、和差编码开关、以及联合强度编码的量化步 长索引的至少之一。
8.根据权利要求6或7述的方法,其特征在于,所述根据误码有效性信息的判断包括 当所述误码有效性信息不等于特定值或不在特定范围内时判定为误码;或者如果所述误码 有效性信息之差超过第一阈值和/或所述误码有效性信息超过特定值的次数超过第二阈 值,则判定为误码;或者如果经IMDCT解码之后的音频数据幅值超过第三阈值的次数大于 一预先设定的正整数,则判定为误码。
9.一种DRA音频误码检测-隐蔽方法,包括通过DRA解码获得误码有效性信息;根据所述误码有效性信息来判断是否发生误码;以及如果第(N-I)帧无误码并且第N帧及随后至少一帧出现误码,则所述第N帧及随后至 少一帧的实际输出值分别等于所述第(N-I)帧与一系列呈递减趋势或恒定的衰减系数之
10.根据权利要求9所述的方法,其特征在于,所述一系列呈递减趋势或恒定的衰减系 数包括0。
11.根据权利要求9或10所述的方法,其特征在于如果所述第N帧之后首次出现无误码的帧为第(N+m)帧,则所述第(N+m)帧及随后连 续无误码的帧的实际输出值可以如下确定以请求实际输出值的帧的数据与一系列呈递增 趋势或恒定的衰减系数之积来代替。
12.根据权利要求11所述的方法,其特征在于,所述一系列呈递增趋势或恒定的衰减 系数包括1。
全文摘要
本发明提供了一种DRA音频误码检测方法,包括通过DRA解码获得误码有效性信息;并根据所述误码有效性信息来判断是否发生误码。另外,本发明还提供了一种DRA音频误码检测-隐蔽方法,该方法在检测到误码时采用频域插值或衰减方法对误码进行隐蔽。基于上述技术方案,实现了对DRA音频帧误码的检测,并在识别出误码时提供了有效的隐蔽技术,明显地提高了DRA误码隐蔽质量。
文档编号G10L19/00GK101930737SQ200910087940
公开日2010年12月29日 申请日期2009年6月26日 优先权日2009年6月26日
发明者王磊, 谭璐芬, 闫建新 申请人:数维科技(北京)有限公司