基于位置的混合域数据包丢失隐藏的制作方法

文档序号:2825471阅读:386来源:国知局
基于位置的混合域数据包丢失隐藏的制作方法
【专利摘要】本发明总地来说涉及音频信号处理,具体地涉及通过数据包交换网络对音频发送期间由音频数据包丢失导致的伪影进行隐藏。描述了用于隐藏一个或更多个连续数据包的方法。丢失数据包是被基于变换的音频解码器视为丢失的数据包。一个或更多个丢失数据包中的每个都包括变换系数组。基于变换的音频解码器使用变换系数组来生成时域音频信号的对应帧。该方法包括:针对一个或更多个丢失数据包的当前丢失数据包确定来自一个或更多个丢失数据包的在前丢失数据包的数目;所确定的数目被视为丢失位置。此外,该方法包括基于当前数据包的丢失位置确定数据包丢失隐藏方案;以及使用所确定的PLC方案确定音频信号的当前帧的估计;其中当前帧对应于当前丢失数据包。
【专利说明】基于位置的混合域数据包丢失隐藏
【技术领域】
[0001]本公开总地涉及音频信号处理,且具体地涉及在通过数据包交换网络进行音频发送期间丢失音频数据包导致的伪影(artifact)的隐藏。
【背景技术】
[0002]在VoIP或无线话音通信系统中频繁地出现数据包丢失。丢失的数据包导致咔嗒或噼噗声或其他伪影,而这大大降低了接收机侧感知的语音质量。为了减轻数据包丢失的负面影响,描述了数据包丢失隐藏(packet loss concealment, PLC)算法,也称为巾贞删除隐藏算法。该算法通常在接收机侧工作,生成合成音频信号以覆盖所接收的位流中的丢失数据(删除)。在各种PLC方法中,可以使用时域基于基音的波形替代,诸如G.711附录I (ITU-T 推荐 G.711 附录 I, “A high quality low complexity algorithm for packetloss concealment with G.711,” 1999,其通过引用包括在此)。然而,这些方法在连续数据包丢失的情况下显著地降低了音频质量,经常由于在若干帧上重复相似内容或由于低信号周期性而生成伪影。
[0003]时域中的PLC由于额外的混淆缓冲区一般不能直接应用于根据变换域编解码器确定的解码的语音。为此,描述了变换域例如MDCT域中的PLC方案。然而,该方案会导致“机器人”发声伪影,且会导致快速质量劣化,尤其在对多个丢失的数据包使用PLC的情形下。
[0004]因此,需要通过结合变换域编解码器使用的改进型PLC算法来减缓伪影,从而改
进音频质量。

【发明内容】

[0005]根据本发明一方面,描述了一种用于隐藏一个或更多个连续丢失数据包的方法。一般说来,丢失数据包是被认为通过基于变换的音频解码器而丢失的数据包。一个或更多个丢失数据包中的每个都包括变换系数组。换句话说,基于变换的音频解码器期待一个或更多个丢失数据包中的每个都包括各自的变换系数组。变换系数组(如果被接收到)中的每组被基于变换的音频解码器用来生成时域音频信号的对应帧。
[0006]基于变换的音频解码器可施加交叠变换(例如改进型离散余弦变换(MDCT),随后是交叠相加操作)。每个变换系数组可包括N个变换系数,其中N>1(例如N=320或N=1028)。对于每组变换系数,交叠变换可生成对应的具有2N个样本的混淆中间帧。对于每个接收的数据包,交叠变换可基于对应的混淆中间帧的第一半且基于在所接收的数据包之前的数据包的混淆中间帧的第二半来生成时域音频信号的对应帧(使用交叠相加操作,例如结合针对对应的混淆中间帧的第一半的渐强窗和针对在所接收的数据包之前的数据包的混淆中间帧的第二半的渐弱窗)。在实施例中,基于变换的音频解码器是基于改进型离散余弦变换(MDCT)的音频解码器(例如AAC解码器),且变换系数组是MDCT系数组。
[0007]该方法可包括针对一个或更多个丢失的数据包的当前丢失数据包确定来自一个或更多个丢失的数据包的在前丢失数据包的数目。所确定的数目可被视为当前丢失数据包的丢失位置。具体来说,当前丢失数据包可以是第一丢失数据包,即丢失位置等于一(使得当前丢失数据包之前直接就是上次接收的数据包),或当前丢失数据包可以是第二丢失数据包,即丢失位置等于二 (使得当前丢失数据包之前直接是丢失数据包自身)。[0008]该方法还可包括基于当前数据包的丢失位置确定数据包丢失隐藏(PLC)方案。具体地,可根据一组预定的PLC方案来确定PLC方案。该预定的PLC方案组可以包括以下中的一个或更多个:所谓的时域PLC方案(包括其各种变形)或所谓的解相关PLC方案。举例来说,该方法可对第一丢失位置(即,当当前丢失数据包是第一丢失数据包时)选择与对第二丢失位置(即,当当前丢失数据包是第二丢失数据包时)不同的PLC方案。
[0009]另外,该方法可包括使用确定的PLC方案来确定音频信号的当前帧的估计。当前帧一般对应于当前丢失数据包,即当前帧一般是在已通过音频解码器接收到当前丢失数据包的情形下基于当前丢失数据包生成的时域音频信号的帧。
[0010]为了确定当前帧的估计,该方法可确定包括不同样本组的多个缓冲区。具体地,该方法可包括确定含有上次接收的变换系数组的上次接收数据包。上次接收数据包一般是直接在一个或更多个丢失数据包之前的数据包。而且,该方法可包括基于时域音频信号的上次接收的帧来确定第一缓冲区,其中上次接收帧对应于上次接收数据包,即其中已使用上次接收数据包的变换系数组(以及直接在上次接收数据包之前的数据包的变换系数组)生成了上次接收帧。一般说来,上次接收帧是已通过基于变换的音频解码器而正确解码的上一帧。第一缓冲区可包括上次接收帧的N个样本。在本文件中第一缓冲区也被称为“在前解码的缓冲区”。
[0011]该方法还可包括基于上次接收数据包的混淆中间帧的第二半来确定第二缓冲区。如上所述,音频解码器可被配置成从变换系数组生成包括2N个样本的中间帧。该2N个样本可被分成第一半(包括N个样本,例如从n=0,……,N-1)以及随后的第二半(包括N个样
本,例如从n=N,......,2N-1)。这样,混淆中间帧的第二半可包括范围为n=N,......,2N_1的
N个样本。第二缓冲区可包括上次接收数据包的混淆中间帧的第二半的N个样本。可看到混淆中间帧的第二半包括与直接在上次接收帧之后的音频信号帧有关的混淆信息。这样,第二缓冲区包括与直接在上次接收帧之后的音频信号帧有关的(混淆)信息。在本文中提议利用该最近期的信息来隐藏一个或更多个丢失数据包。在此第二缓冲区也被称为“时间IMDCT缓冲区”。
[0012]该方法还可包括基于上次接收数据包的变换系数组来确定扩散的变换系数组。这可通过对上次接收数据包的变换系数组的绝对值进行低通滤波和/或通过对上次接收数据包的变换系数组的符号中的一些或全部进行随机化来完成。一般说来,仅随机化能量在能量阈值Te处或以下的变换系数的符号,而保持能量在能量阈值Te以上的变换系数的符号。而且,该方法可包括基于扩散的变换系数组确定扩散的混淆中间帧。这可通过对扩散的变换系数组施加逆变换(例如IMDCT)来实现。该方法可包括基于扩散的混淆中间帧确定第三缓冲区。具体地,第三缓冲区可包括扩散的混淆中间帧的第一半。第三缓冲区在此可被称为“时间解相关頂DCT缓冲区”。这样,第三缓冲区包括关于上次接收数据包的扩散或解相关信息。在本文件中提议利用该扩散信息,从而在隐藏一个或更多个丢失数据包时减小可听伪影(例如“嗡嗡”或“机器人”伪影)。[0013]该方法可进一步包括基于第一缓冲区和/或基于第二缓冲区确定基音周期W。基音周期W可基于第一缓冲区和/或基于第二缓冲区通过计算标准化交叉相关(或只是交叉相关)函数NCC (滞后)来确定。在预定滞后间隔内使标准化交叉相关函数NCC (滞后)最大化的滞后值(一般排除滞后=0)可以指示基音周期W。具体地,基音周期W可对应于(或等于)使相关函数NCC (滞后)最大化的滞后值。在实施例中,基于第一缓冲区和第二缓冲区的级联来确定相关函数NCC (滞后)。这样,基于最近期可用信息(包括第二缓冲区中所包含的关于在上次接收帧之后的帧的信息)确定基音周期W,从而改进了基音周期W的估计。这样,本文也公开了用于基于第一缓冲区且基于第二缓冲区来估计基音周期W的方法。
[0014]而且,该方法可包括基于相关函数NCC (滞后)来确定置信测度(confidencemeasure, CVM)0置信测度CVM —般指示上次接收帧内的周期性程度。置信测度CVM可基于相关函数NCC (滞后)的最大值和/或基于是否认为丢失了直接在上次接收数据包之前的数据包来确定。
[0015]置信测度CVM可用来确定PLC方案,该PLC方案用于确定当前帧的估计。具体地,该方法可包括确定置信测度CVM大于预定置信测度T。。在这种情况下,时域PLC方案的变体可被选为确定的PLC方案。以相似的方式,该方法可包括确定置信测度CVM等于或小于预定的置信测度T。。此外,可确定当前数据包是上次接收数据包之后的第一丢失数据包。在这种情况下,可选择解相关PLC方案作为确定的PLC方案。
[0016]使用解相关PLC方案确定当前帧的估计可包括分别使用渐弱窗和渐强窗使(包括在第二缓冲区中的)混淆中间帧的第二半和(包括在第三缓冲区中的)扩散混淆中间帧的第一半交叉渐变(CToss-fading)。换句话说,可在交叠相加操作中组合(经受渐弱窗)的混淆中间帧的第二半和(经受渐强窗)的扩散混淆中间帧的第一半。可基于所得到(交叠相加)的帧确定当前帧的估计。在上次接收帧具有相对低的周期性程度的情况下,作为将混淆中间帧的第二半与上次接收数据包的混淆中间帧的第一半的扩散版组合的结果,可得到当前帧的良好估计。
[0017]使用时域PLC方案(的变体)确定当前帧的估计可包括基于(存在第一缓冲区中的)一个或更多个上次接收帧的样本和/或(存储在第二缓冲区中的)混淆中间帧的样本确定基音周期缓冲区。基音周期缓冲区一般具有与基音周期W相对应的长度。而且,该方法可包括通过一个或更多个基音周期缓冲区的级联来确定周期波形外插(periodicalwaveformextrapolation,PWE)分量。一般来说,通过级联N/W基音周期缓冲区(即,可能也是基音周期缓冲区的一部分,在这种情况下,存储偏移量且在随后帧中进行隐藏)获得PWE分量,使得PWE分量包括N个样本。在W > N的情况下,仅可使用基音周期缓冲区的一部分。可基于PWE分量确定当前帧的估计。PWE分量的确定可根据ITU-T G.711标准中描述的隐藏方案。在上次接收帧包括相对高的周期性程度的情况下,PWE分量的确定可能是有益的,其中在PWE分量内可反映周期性(由于多个基音周期缓冲区的级联)。
[0018]使用时域PLC方案确定当前帧的估计可进一步包括基于(存储在第二缓冲器中的)混淆中间信号的第二半确定混淆分量。如上所述,第二缓冲器包括关于在上次接收帧之后的帧的最近期(混淆)信息。这样,本文中提议也基于混淆分量确定当前帧的估计,从而改进当前帧的估计的质量。特别地,可分别使用第一和第二窗通过使混淆分量和PWE分量交叉渐变来确定当前帧的估计。第一窗可以是渐弱窗(使混淆分量渐弱),且第二窗可以是渐强窗(使PWE分量渐强)。具体地,这在当前丢失数据包是第一丢失数据包的情况下可以成立。在这种情况下,确保了混淆分量与上次接收帧相位一致。通过使混淆分量渐弱且同时使PWE分量渐强,可确保当前帧的估计与(正好在前的)上次接收帧相位一致(由于PWE分量的渐强),且混淆对当前帧的估计的影响减小(由于混淆分量的渐弱)。
[0019]因此,本文描述了一种用于基于第一缓冲区和基于第二缓冲区隐藏丢失数据包的方法。具体地,本文描述了一种用于基于PWE分量且基于混淆分量隐藏丢失的数据包的方法。
[0020]在当前丢失数据包不是第一丢失数据包的情况下不能保证混淆分量与当前帧之前的帧的相位一致。在这种情况下,在当前帧之前的帧的相位一般由用来确定当前帧之前的帧的估计的PWE分量给出。如果确保当前帧的PWE分量与当前帧之前的帧的PWE分量相位一致,则可通过确定当前帧的PWE分量的相位位置且通过使混淆分量的相位与当前帧的PWE分量的确定相位位置一致,可实现混淆分量的相位一致。可通过从混淆中间帧的第二半中省略一个或多个样本来实现相位一致。一般说来,省略混淆中间帧的第二半开头的一个或多个样本,从而提供缩短的混淆中间帧。可通过使用缩短的混淆中间帧来确定当前帧的混淆分量,其中零附在最后以提供N个样本。
[0021]这样,基于各个多个PWE分量和多个混淆分量,可以隐藏多个丢失的数据包,即可确定与多个丢失数据包对应的多个帧估计。隐藏帧的多个估计可能呈现超过实际丢失帧的周期性的相对高程度的周期性。这会导致不期望的伪影如“嗡嗡”或“机器人”伪影。在本文中,提议利用另外的扩散分量来减小该伪影。因此,本文描述了一种通过使用扩散分量在隐藏多个丢失数据包时减小可听伪影的方法。
[0022]使用时域PLC方案确定当前帧的估计可包括基于(存储在第三缓冲区中的)扩散中间帧的第一半确定扩散的上次接收的帧。具体地,可基于施加到扩散中间帧的第一半和直接在上次接收帧之前的数据包的中间帧的第二半的交叠相加操作来确定扩散的上次接收帧。可与PWE分量相似的方式确定扩散分量(其中上次接收帧的样本被扩散的上次接收帧的样本替代)。因此,该方法可包括基于扩散的上次接收帧的样本确定扩散的基音周期缓冲区。一般地,扩散的基音周期缓冲区具有对应于基因周期W的长度。扩散分量可通过一个或多个扩散的基音周期缓冲区的级联来确定(以提供具有N个样本的扩散分量)。在本文件中,提议也基于扩散分量确定当前帧的估计,从而减小伪影,尤其在要隐藏数量相对较多的丢失数据包(例如2、3或更多的丢失数据包)的情况下。
[0023]具体地,使用时域PLC方案确定当前帧的估计可包括对PWE分量应用第三窗,对混淆分量应用第四窗,以及对扩散分量施加第五窗。可基于窗口化PWE、窗口化混淆分量和窗口化扩散分量来确定当前帧的估计。这对于丢失位置大于一的当前帧、即当前丢失数据包是第二或更靠后的丢失数据包的情况可以是成立的。
[0024]举例来说,当前丢失数据包之前可以直接是在前的丢失数据包。如果对于在前的丢失数据包第三窗是渐强窗,则对于当前丢失数据包第三窗可以是渐弱窗,反之亦然。此夕卜,如果对于在前丢失的数据包第五窗是渐弱窗,则对于当前丢失的数据包第五窗可以是渐强窗,反之亦然。另外,如果对于当前丢失数据包第五窗是渐强窗,则第三窗可以是渐弱窗,反之亦然。具体地,用作第三窗的渐强窗可以是与用于第五窗的相同的渐强窗。以相似的方式,用作第三窗的渐弱窗可以是与用于第五窗的相同的渐弱窗。以上情况具体描述了PWE分量和扩散分量的交替使用。通过这样做,可确保帧的随后估计相位一致,且帧的随后估计多样化,从而减小“嗡嗡”和“机器人”伪影。(用于混淆分量的)第四窗可以是结合渐强/渐弱窗的凸面。
[0025]该方法可进一步包括对当前帧的估计施加长期减弱,其中长期减弱取决于丢失位置。一般地,长期减弱随着增加的丢失位置而增强。这样,长期减弱可使跨多个丢失数据包的帧(对应于丢失的数据包)的估计渐弱,从而提供从隐藏到消声的平滑过渡(在丢失数据包的数目超过了丢失数据包的最大允许数目的情形下)。
[0026]该方法可进一步包括:如果当前丢失数据包是第一丢失数据包,使利用特定PLC方案所得出的帧与混淆中间帧(存储在第二缓冲区中)的第二半交叉渐变,从而得到当前帧的估计,或者如果当前数据包是数据包丢失之后的第一接收数据包,则使从确定的PLC方案得出的帧与通过该接收数据包变换的第二缓冲区的第一半交叉渐变。另一方面,如果当前丢失数据包不是第一丢失数据包,则使用确定的PLC方案得出的帧可被视为当前帧的估计。在本文中选择性使用交叉渐变被称为混合重构。
[0027]根据另一方面,描述了被配置成隐藏一个或更多个连续丢失数据包的系统。丢失数据包可以是被基于变换的音频解码器视为丢失的数据包。一个或更多个丢失数据包中的每个可包括变换系数组,其中基于变换的音频解码器使用变换系数组来生成时域音频信号的对应帧。该系统可包括丢失位置检测器,其被配置成针对一个或更多个丢失数据包中的当前丢失数据包确定来自一个或更多个丢失数据包的在前丢失数据包的数目。所确定的数目可被视为丢失位置。此外,该系统可包括决定单元,其被配置成基于当前数据包的丢失位置来确定数据包丢失隐藏(PLC)方案。另外,该系统可包括PLC单元,其被配置成使用所确定的PLC方案确定音频信号的当前帧的估计。当前帧一般对应于当前丢失数据包。
[0028]根据另一方面,描述了一种隐藏一个或更多个连续丢失数据包的方法(及对应的系统)。丢失数据包一般是被基于变换的音频解码器视为丢失的数据包。一个或更多个丢失数据包中的每个一般包括变换系数组。基于变换的音频解码器可以使用变换系数组来生成时域音频信号的对应帧。基于变换的音频解码器可施加交叠变换。如果变换系数组包括N个变换系数,其中N>1,对于每组变换系数,交叠变换可生成具有2N个样本的对应混淆中间帧。对于每个接收数据包,交叠变换可基于对应的混淆中间帧的第一半且基于在接收数据包之前的数据包的混淆中间帧的第二半来生成音频信号的对应帧。该方法可包括确定含有上次接收的变换系数组的上次接收数据包;其中上次接收数据包直接在一个或多个丢失数据包之前。此外,该方法可包括基于音频信号的上次接收帧确定第一缓冲区;其中上次接收帧对应于上次接收数据包。另外,该方法可包括基于上次接收数据包的混淆中间帧的第二半来确定第二缓冲区。可使用第一缓冲区和第二缓冲区来确定音频信号的当前帧的估计,其中当前帧对应于当前丢失数据包。
[0029]根据另一方面,描述了一种用于隐藏一个或多个连续丢失数据包的方法(以及对应的系统)。丢失数据包可以是被基于变换的音频解码器视为丢失的数据包。一个或更多个丢失数据包中的每个可包括变换系数组,其中基于变换的音频解码器使用变换系数组来生成时域音频信号的对应帧。该方法可包括基于上次接收的数据包的变换系数组确定扩散的变换系数组。而且,该方法可包括使用逆变换基于扩散的变换系数组确定扩散混淆中间帧。另外,该方法可包括基于扩散混淆中间帧确定第三缓冲区。可使用第三缓冲区确定音频信号的当前帧的估计。一般地,当前帧对应于当前丢失数据包。
[0030]根据另一方面,描述了一种软件程序。该软件程序可用来在处理器上运行,且在处理器上运行时执行本文中所所描述的方法步骤。
[0031]根据另一方面,描述了一种存储介质。存储介质可包括用于在处理器上运行且在处理器上运行时执行本文中所描述的方法步骤的软件程序。
[0032]根据另一方面,描述了一种计算机程序产品。该计算机程序可包括可执行指令,该可执行指令在计算机上运行时可执行本文中所描述的方法步骤。
[0033]应注意,本专利申请中描述的包括其优选实施例的方法和系统可独立地使用或结合本文中公开的其他方法和系统来使用。此外,本专利申请中所描述的方法和系统的所有方面可以任意组合。具体地,权利要求书的特征可以任意方式彼此组合。
【专利附图】

【附图说明】
[0034]以下参考附图以示例方式描述本发明,其中:
[0035]图1示出了示例数据包丢失隐藏系统的框图;
[0036]图2示出了数据包丢失隐藏的示例方法的流程图;
[0037]图3示出了交叠变换编码器和解码器的示例特征;
[0038]图4示出了一个或更多个丢失数据包对时域信号的对应帧的影响;
[0039]图5示出了不同的示例帧类型;
[0040]图6a_6d示出了时域PLC方案的示例方面;
[0041]图7示出了示例PLC系统的组件的框图;以及
[0042]图8示出了混合重构期间双窗化的影响。
【具体实施方式】
[0043]如【背景技术】部分所概述,PLC方案趋于将伪影(artifact)插入隐藏音频信号中,尤其对于数量增加的连续丢失数据包。本文中描述了用于改进PLC的各种方法。这些方法以整体的PLC系统100 (参见图1)为背景进行描述。然而,应该注意,这些方法可以单独使用或者彼此任意组合地使用。
[0044]以诸如AAC (Advanced Audio Coder,高级音频编码器)等基于MDCT的音频编码器为背景对PLC系统100进行描述。然而,应该注意,PLC系统100也可以与其他基于变换的音频编解码器和/或其他时域至频域变换(尤其是到其他交叠变换)相结合地使用。
[0045]下面,更详细地描述AAC编码器。AAC核心编码器一般将音频信号302 (参见图3)分解成一系列被称为帧的片段303。被称为窗的时域滤波器通过修改这些帧中的数据来提供从帧到帧的平滑过渡。AAC编码器可以使用不同的时域分辨率:如,第一分辨率,其被称为长块,对N=1028个样本的整个帧进行编码;以及第二分辨率,其被称为短块,并且对帧的N=128个样本的多个片段进行编码。如此,AAC编码器可被适配成对在声调的(稳态、富有和声的复杂频谱信号)(使用长块)与脉冲的(瞬态信号)(使用八个短块系列)之间振荡的音频信号进行编码。
[0046]使用改进的离散余弦变换(ModifiedDiscrete Cosine Transform,MDCT)将每个样本块(即,短块或长块)转换成频域。为了避开通常在基于块(也被称为基于帧)的时域变换的情形下所出现的频谱泄露问题,MDCT使用交叠窗,即MDCT是所谓的交叠变换的示例。这示出在针对长块情形、即针对整个帧被变换的情形的图3中。图3示出了包括一系列帧303的音频信号302。在所示实例中,每个帧303包括音频信号302的N个样本。代替对仅仅一个帧施加变换,交叠MDCT以交叠的方式对两个相邻帧进行变换,如系列304所示。为了进一步平滑连续帧之间的过渡,另外施加长度为2N的窗函数w[k](或h[n])。应该注意,由于窗w[k]被施加两次,即在编码器处进行变换的情形和在解码器处进行逆变换的情况下,因此窗函数w[k]应满足普林森-布拉德利(Princen-Bradley)条件。作为窗口化和变换的结果,获得长度为N的一系列频率系数(也被称为变换系数)组。在相应AAC解码器处,将逆MDCT施加于该频率系数组系列,从而产生具有长度为2N的时域样本的一系列帧(这些2N个样本的巾贞在本文中被称为混淆中间巾贞(aliased intermediate frame))。使用如图3所示的交叠和相加操作305 (考虑到窗函数w[k])来获取长度为N的解码样本帧306。如此,使用包括频率系数组312的数据包来生成时域音频信号的对应帧306。在本文中,帧306被称为解码时域音频信号的帧,其对应于频率系数组312(或对应于包括频率系数组312的数据包)。
[0047]在解码器上可能出现一个或更多个数据包丢失(或者视为丢失)。每个数据包通常包括频率系数组(即,MDCT系数组)。为了生成解码样本的帧306,解码器必须根据之前接收的数据来重构丢失数据包(即,丢失的频率系数组)。该工作被称为数据包丢失隐藏(PLC)。
[0048]如上所述,本文描述系统100。具体而言,本文描述用于基于MDCT的语音编解码器的位置相关混合PLC方案。应该注意,PLC方案还可应用于基于其他变换的音频编解码器。本文提议使PLC处理依赖于丢失数据包的位置,即依赖于在要隐藏的数据包之前的连续丢失数据包的数量。
[0049]可替代地,或另外,提议使用并保持通过不同信号处理技术所产生的若干个信号缓冲区。这些缓冲区(参见图1)可以包括以下中的一个或更多个:
[0050](I)用于预先完全重构信号的在前解码缓冲区102。该缓冲区102还被称为“第一缓冲区”。该缓冲区包括已基于完全接收的MDCT数据包而重构的一个或更多个最近期的音频帧306。
[0051](2)临时MDCT缓冲区103。该缓冲区103还被称为“第二缓冲区”。该缓冲区103包括在根据上次接收的数据包交叠相加解码之前的时域信号322的一半。这示出在图3中。如果假定数据包313 (B卩,MDCT系数组313)丢失,则数据包312为上次接收数据包。使用IMDCT变换将上次接收的数据包312变换成时域,由此(在交叠和相加之前)产生混淆中间信号(或帧)322。混淆中间信号322的第一半用于生成解码帧306 (其存储在第一缓冲区102中)。另一方面,混淆中间信号322的第二半存储在临时MDCT缓冲区103中(B卩,在第二缓冲区103中)。
[0052](3)临时解相关MDCT缓冲区109。该缓冲区109还被称为“第三缓冲区”。该缓冲区109用于存储从上次接收的数据包312解码的解码信号的一个或更多个帧,其中使用MDCT域解相关(将在后文中概述)来执行解码。
[0053]可以根据丢失位置和/或根据信号缓冲区的可靠性来选择来自这些缓冲区的不同信号。举例来说,对于第一丢失数据包,可以使用比基于常规基音的时域方案更有效且更稳定的解相关MDCT信号。对于其他丢失位置,可以应用基于基音的时域隐藏。然而,该时域隐藏可能因信号的低周期性(例如摩擦音、爆破音等)或者因特定丢失模式(即,隔包丢失)而失效并且产生可听得见的畸变。因此,文中提议利用基于丢失位置的混合方案来构建鲁棒的基本音调缓冲区。举例来说,对于第一丢失帧,可从在前解码缓冲区102和/或临时IMDCT缓冲区103中的信息得出发音置信测度(voicing confidence measure,CVM)0该置信测度CVM可以用来判定是否使用更稳定的解相关IMDCT缓冲区109,而不是时域PLC,以隐藏第一丢失数据包。
[0054]在图1示出的示例中,时域PLC单元107并非独立地操作,而是根据特定丢失位置来充分地利用MDCT域输出。此外,为了使“嗡嗡”发声伪影最小化,描述了新的扩散算法(时域扩散单元110)。另外,提出了依赖于所选时域和/或依赖于丢失位置的混合重构。
[0055]图1示出了示例性PLC系统100。可以看出所提出的系统包括一个或更多个以下
要素:
[0056]DMDCT域解码器101可以用于产生一个或更多个时域帧,该时域帧可以存储在在前解码缓冲区102中。缓冲区102中的帧为所消除的混淆并且可用来生成基本音调缓冲区和发音置信测度(CVM)。此外,MDCT域解码器101可用于确定存储在临时MDCT缓冲区中的一个或更多个时域混淆中间信号(也被称为混淆中间帧)。中间信号可以用来结合主PWE(Periodic Waveform Extrapolation,周期波形外插)流来外插隐藏语音。另外,解码器101(或特定解码器108)可以用来确定待存储在临时解相关MDCT缓冲区109中的时域信号。解相关頂DCT PLC单元106和时域扩散单元110可以使用存储在缓冲区109中的信息;
[0057]2)丢失位置检测器104可以配置成确定连续丢失帧(或数据包)的数量。如此,丢失位置检测器104可以确定当前帧(或数据包)的丢失位置。如果检测到当前帧为第一丢失帧(或者确定当前数据包为第一丢失数据包),则可以使用在前解码缓冲区102和/或临时IMDCT缓冲区103来计算发音置信测度CVM105。如果CVM在预定置信阈值处或以下,则可以应用解相关頂DCT PLC106,该解相关MDCT PLC106得自由并行MDCT域解码器108解码的临时扩散頂DCT缓冲区109。这趋于产生可听见伪影更少的输出(音频信号的发音置信较低的情形)。该输出还可以用来填充基本音调缓冲区以便之后进行隐藏(即,以生成扩散基本音调缓冲区和扩散分量以利用时域PLC进行隐藏)。在预定置信阈值之上的CVM可以触发时域PLC107。时域PLC107可以包括通过存储在临时MDCT缓冲区103中的信息,以及通过存储在由在前解码语音缓冲区102所存储的信息所产生的基本音调缓冲区中的信息而对相位一致的外插进行交叉渐变混合。在单元107中应用的时域PLC方案通常依赖于当前帧的丢失位置。此外,系统100包括也使用存储在临时解相关MDCT缓冲区109中的信息的嵌入式扩散模块110。扩散模块110可用于避免基音周期重复带来的“嗡嗡”伪影;
[0058]3)在执行隐藏之后,可以在混合重构模块111中使用考虑到所使用的域和/或丢失位置的混合重构。
[0059]图2示出了所提出的混合PLC系统100的示例性判定流程图200。在步骤201中,可以关于当前MDCT帧(或数据包)313是否丢失设定判定标志。当检测到第一数据包丢失时,所提出的系统100开始估计历史缓冲区(例如缓冲区102)的质量,以判定是否应当使用更稳定的解相关頂DCT PLC0换句说话,如果已经检测到丢失数据包,则对包含在基本音调缓冲区内的信息的可靠性测度进行确定(步骤202)。如果包含在基本音调缓冲区内的基音信息可靠,则可以(在单元107中)应用时域PLC204,否则,优选地(在单元106中)使用解相关頂DCT PLC方案207。为此,可以检查丢失数据包是否为第一丢失数据包(步骤205)。如果丢失数据包为第一丢失数据包,则可以使用解相关MDCT PLC方案207,否则可以使用时域PLC方案204。可以使用重构循环208来重构时域音频信号。如果没有丢失数据包(步骤203),则可以应用标准的逆变换209。在第一丢失数据包(步骤206)和上次丢失数据包的情形中,可以应用交叉渐变处理211。否则,可以使用时域粘贴处理210。
[0060]下面,描述用于确定基本音调缓冲区的可靠性的方法。基本音调缓冲区对基于基音的时域PLC所需的在前解码音频信号进行存储。如此,基本音调缓冲区可以包括第一缓冲区102。该缓冲区的质量对基于基音的PLC的性能具有直接影响。因此,所提出的混合系统100的第一步骤是估计基本音调缓冲区的可靠性。
[0061]当存在丢失数据包313时,最近期的接收信息是存储在缓冲区102中的上次正确重构的帧306 (称为x(p_d [η],0≤η≤N-1)和逆变换帧322的第二半(称为
N < η < 2Ν-1,并且可存储在缓冲区103中),以形成用于通过级联(concatenate)来进行基音估计的缓冲区xb_。如此,基音缓冲区包括全部最近期接收的信息,即完全重构的信号帧306和混淆中间信号322的第二半。
[0062]基音缓冲区Xbase可用于执行标准化交叉相关(Normalized Cross Correlation,NCC),同时考虑应用于交叠相加操作305的合成窗w[k]的形状。在从如5ms (lmin=80个样本)至如15ms (lmax=240个样本)的预定搜索范围内,选择产生最大相关性的滞后(lag)。该范围(如,5ms至15ms)被选为人类语音的典型基音频率范围。该区间的整数乘法或除法可被外插,以模拟该范围以外的基音。于是,Xbase[η]可以根据滞后值移位,以使χ[η]和X [n-lag]是与窗口化的NCC最大程度同步的基音,该窗口化NCC通过经由抽取计数(tapcount)和窗形状标准化基本相关来计算。可以应用十中抽一和/或微移位技术,以便在准确度有较小劣化的情形下加快NCC的计算速度。在抽取对齐处理中,窗口化NCC可以用作接收机信号的周期性的置信指示器,以便形成发音置信测度(CVM)。假定基本音调缓冲区的第一样本指数为m,则NCC可以如下进行计算:
[0063]
【权利要求】
1.一种用于隐藏一个或更多个连续丢失数据包(412,413)的方法(200),其中丢失数据包(412)是被基于变换的音频解码器视为丢失的数据包;其中一个或更多个丢失数据包(412,413)中的每个都包括变换系数组(313);其中所述基于变换的音频解码器使用变换系数组(313)来生成时域音频信号的对应帧(412,413);所述方法(200)包括: -针对一个或更多个丢失数据包(412,413)的当前丢失数据包(412)确定来自一个或多个丢失的数据包(313)的在前丢失数据包的数目(205);其中所确定的数目被视为丢失位置; -基于所述当前数据包的丢失位置确定数据包丢失隐藏方案,数据包丢失隐藏被称为PLC ;以及 -使用所确定的PLC方案(204,207,208 )确定音频信号的当前帧(422 )的估计(204,207,208);其中 所述当前帧(422)对应于当前丢失数据包(412)。
2.根据权利要求1所述的用于隐藏一个或更多个连续丢失数据包的方法(200),其中 -所述基于变换的音频解码器是基于音频解码器的改进型离散余弦变换,也称为MDCT ;以及 -所述变换系数组(313)是MDCT系数组。
3.根据权利要求1或2所述的用于隐藏一个或更多个连续丢失数据包的方法(200),进一步包括: -确定包括上次接收的变换系数组(312)的上次接收数据包(411);其中所述上次接收数据包(411)直接在所述一个或更多个丢失数据包(412,413)之前;以及 -基于所述音频信号的上次接收帧(421)确定第一缓冲区(102);其中所述上次接收帧(421)对应于上次接收数据包(411)。
4.根据权利要求3所述的用于隐藏一个或更多个连续丢失数据包的方法(200),其中 -所述基于变换的音频解码器应用交叠变换; -每个变换系数组包括N个变换系数,其中N > I ; -对于每个变换系数组,所述交叠变换生成2N个样本的对应混淆中间帧; -对于每个接收数据包(411),所述交叠变换基于所述对应混淆中间帧的第一半且基于在接收数据包(411)之前的数据包的混淆中间帧的第二半来生成所述音频信号的对应帧(421);以及 -所述方法还包括基于所述上次接收数据包(411)的混淆中间帧的第二半确定第二缓冲区(103)。
5.根据权利要求4所述的用于隐藏一个或更多个连续丢失数据包的方法,其中 -所述第一缓冲区(102)包括所述上次接收帧(421)的N个样本;以及 -所述第二缓冲区(102)包括所述上次接收数据包(411)的混淆中间帧的第二半的N个样本。
6.根据权利要求4或5所述的用于隐藏一个或更多个连续丢失数据包的方法,进一步包括基于所述第一缓冲区(102)和所述第二缓冲区(103)确定基音周期W。
7.根据权利要求6所述的用于隐藏一个或更多个连续丢失数据包的方法,其中确定基音周期W包括: -基于所述第一缓冲区(102)和所述第二缓冲区(103)确定相关函数NCC (滞后);以及-在预定的滞后间隔内确定使相关函数NCC (滞后)最大化的滞后值,排除滞后=0。
8.根据权利要求7所述的用于隐藏一个或更多个连续丢失数据包的方法,其中所述基音周期W对应于使相关函数NCC (滞后)最大化的滞后值。
9.根据权利要求7或8所述的用于隐藏一个或更多个连续丢失数据包的方法,其中基于所述第一缓冲区(102)和所述第二缓冲区(103)的级联确定相关函数NCC (滞后)。
10.根据权利要求7-9中的任一项所述的用于隐藏一个或更多个连续丢失数据包的方法,进一步包括: -基于相关函数NCC (滞后)确定置信测度CVM ;其中所述置信测度CVM指示所述上次接收帧(421)内的周期性程度。
11.根据权利要求10所述的用于隐藏一个或更多个连续丢失数据包的方法,其中所述置信测度CVM基于以下来确定: -所述相关函数NCC (滞后)的最大值;和/或 -在所述上次接收数据包(411)之前的数据包是否被视为丢失。
12.根据权利要求10或11所述的用于隐藏一个或更多个连续丢失数据包的方法,其中也基于所述置信测度CVM的值来确定用来确定所述当前帧(422)的估计的PLC方案。
13.根据权利要求12所述的用于隐藏一个或更多个连续丢失数据包的方法,进一步包 括: -确定所述置信测度CVM大于预定的可信度阈值Tc (202);以及 -选择时域PLC方案作为所确定的PLC方案。
14.根据权利要求12或13所述的用于隐藏一个或更多个连续丢失数据包的方法,进一步包括: -确定所述置信测度CVM等于或小于预定的可信度阈值Tc (202); -确定所述当前数据包(412)是所述上次接收数据包(411)之后的第一丢失数据包(205);以及 -选择解相关PLC方案作为所确定的PLC方案。
15.根据权利要求4-14中的任一项所述的用于隐藏一个或更多个连续丢失数据包的方法,进一步包括: -基于所述上次接收数据包(411)的变换系数组(312)确定扩散的变换系数组; -基于所述扩散的变换系数组确定扩散的混淆中间帧;以及 -基于所述扩散的混淆中间帧确定第三缓冲区(109)。
16.根据权利要求15所述的用于隐藏一个或更多个连续丢失数据包的方法,其中确定扩散的变换系数组包括: -对所述上次接收数据包(411)的变换系数组的绝对值进行低通滤波;以及 -对所述上次接收数据包(411)的变换系数组的符号中的一些或全部进行随机化。
17.根据权利要求15或16所述的用于隐藏一个或更多个连续丢失数据包的方法,其中所述第三缓冲区(109)包括所述扩散的混淆中间帧的第一半。
18.根据权利要求15至17中的任一项所述的用于隐藏一个或更多个连续丢失数据包的方法,其中: -根据预定PLC方案组确定PLC方案-所述预定PLC方案组包括以下中的一个或更多个: -时域PLC方案; -解相关PLC方案。
19.根据权利要求18所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述解相关PLC方案确定所述当前帧(422)的估计包括: -分别使用渐弱窗和渐强窗对所述混淆中间帧的第二半和所述扩散的混淆中间帧的第一半进行交叉渐变。
20.根据权利要求18所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述时域PLC方案确定所述当前帧(422)的估计包括: -基于所述上次接收帧(411)的样本确定基音周期缓冲区;其中所述基音周期缓冲区具有对应于所述基音周期W的长度; -通过一个或更多个基音周期缓冲区的级联确定周期波形外插分量,其中周期波形外插被称为PWE;以及 -基于所述PWE分量确定所述当 前帧(422)的估计。
21.根据权利要求20所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述时域PLC方案确定所述当前帧(422)的估计包括: -基于所述混淆中间信号的第二半确定混淆分量;以及 -也基于所述混淆分量确定所述当前帧(422)的估计。
22.根据权利要求21所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述时域PLC方案确定所述当前帧(422)的估计包括: -确定所述PWE分量的相位位置;以及 -通过从所述混淆中间帧的第二半中省略一个或更多个样本,使所述混淆分量的相位与所确定的相位位置一致。
23.根据权利要求21或22所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述时域PLC方案确定所述当前帧(422)的估计包括: -分别使用第一和第二窗对所述混淆分量和所述PWE分量进行交叉渐变。
24.根据权利要求23所述的用于隐藏一个或更多个连续丢失数据包的方法,其中如果所述当前丢失数据包(412)是所述第一丢失数据包,则所述第一窗是渐弱窗,且所述第二窗是渐强窗。
25.根据权利要求21-24中的任一项所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述时域PLC方案确定所述当前帧(422)的估计包括: -基于所述扩散中间帧的第一半确定扩散的上次接收帧; -基于所述扩散的上次接收帧的样本确定扩散的基音周期缓冲区;其中所述扩散的基音周期缓冲区具有对应于基音周期W的长度; -通过一个或更多个扩散的基音周期缓冲区的级联确定扩散分量;以及 -也基于所述扩散分量确定所述当前帧(422)的估计。
26.根据权利要求25所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述时域PLC方案确定所述当前帧(422)的估计包括: -对所述PWE分量应用第三窗;-对所述混淆分量应用第四窗; -对所述扩散分量应用第五窗; -基于所述窗口化PWE、混淆和扩散分量确定所述当前帧(422)的估计。
27.根据权利要求26所述的用于隐藏一个或更多个连续丢失数据包的方法,其中: -所述当前丢失数据包(412)之前直接是在前丢失数据包; -如果对在前丢失数据包来说所述第三窗是渐强窗,则对所述当前丢失数据包(412)来说所述第三窗是渐弱窗,反之亦然; -如果对所述在前丢失数据包来说所述第五窗是渐弱窗,则对所述当前丢失数据包(412)来说所述第五窗是渐强窗,且反之亦然;以及 -如果对所述当前丢失数据包(412)来说所述第五窗是渐强窗,则所述第三窗是渐弱窗,且反之亦然。
28.根据权利要求27所述的用于隐藏一个或更多个连续丢失数据包的方法,其中 -所述第四窗是结合渐强/渐弱窗的凸面。
29.根据上述任一项权利要求所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所确定的PLC方案确定所述当前帧(422)的估计包括: -对所述当前帧(422)的估计应用长期减弱;其中所述长期减弱取决于所述丢失位置。
30.根据权利要求4-30中的任一项所述的用于隐藏一个或更多个连续丢失数据包的方法,其中使用所述确定的PLC方案确定所述当前帧(422)的估计包括: -如果所述当前丢失数据包(412)是第一丢失数据包,则使得利用所确定的PLC方案得出的帧与所述混淆中间帧的第二半进行交叉渐变,以产生所述当前帧(422)的估计;以及-如果所述当前丢失数据包(412)不是所述第一丢失数据包,则将使用所确定的PLC方案得出的帧视为所述当前帧(422)的估计。
31.一种被配置成隐藏一个或更多个连续丢失数据包(412,413)的系统(100),其中丢失数据包(412)是被基于变换的音频解码器视为丢失的数据包,其中一个或更多个丢失的数据包(412,413)中的每个数据包包括变换系数组(313);其中所述基于变换的音频解码器使用变换系数组(313)来生成时域音频信号的对应帧(412,413);所述系统(100)包括: -丢失位置检测器(104),所述丢失位置检测器被配置成针对一个或更多个丢失数据包(412,413)中的当前丢失数据包(412)确定来自一个或更多个丢失数据包(313)的在前丢失数据包的数目;其中所确定的数目被视为丢失位置; -决定单元(105),所述决定单元被配置成基于所述当前数据包的丢失位置来确定数据包丢失隐藏方案,所述数据包丢失隐藏被称为PLC ;以及 -PLC单元(107,106),所述PLC单元被配置成使用所确定的PLC方案(204,207,208)确定音频信号的当前帧(422)的估计(204,207,208),其中所述当前帧对应于当前丢失数据包(412)。
32.一种隐藏一个或更多个连续丢失数据包(412,413)的方法(200);其中丢失数据包(412)是被基于变换的音频解码器视为丢失的数据包;其中一个或更多个丢失的数据包(412,413)中的每个数据包包括变换系数组(313);其中基于变换的音频解码器使用变换系数组(313)来生成时域音频 信号的对应帧(412,413);其中基于变换的音频解码器应用交叠变换;其中每个变换系数组包括N个变换系数,N>1 ;其中对于每个变换系数组,所述交叠变换生成2N个样本的对应混淆中间帧;其中对于每个接收数据包(411),所述交叠变换基于对应混淆中间帧的第一半且基于在接收数据包(411)之前的数据包的混淆中间帧的第二半来生成音频信号的对应帧(421);所述方法(200)包括: -确定包括上次接收的变换系数组(312)的上次接收数据包(411);其中上次接收数据包(411)直接在一个或更多个丢失数据包(412,413)之前;以及 -基于音频信号的上次接收帧(421)确定第一缓冲区(102);其中上次接收帧(421)对应于上次接收数据包(411); -基于上次接收数据包(411)的混淆中间帧的第二半确定第二缓冲区(103);以及 -使用所述第一缓冲区(102)和所述第二缓冲区(103)来确定所述音频信号的当前帧(422)的估计(204,207,208);其中所述当前帧(422)对应于所述当前丢失数据包(412)。
33.一种用于隐藏一个或更多个连续丢失数据包(412,413)的方法(200);其中丢失数据包(412)是被基于变换的音频解码器视为丢失的数据包;其中一个或更多个丢失数据包(412,413)中的每个数据包包括变换系数组(313);其中基于变换的音频解码器使用变换系数组(313)来生成时域音频信号的对应帧(412,413);所述方法(200)包括: -基于上次接收数据包(411)的变换系数组(312)确定扩散的变换系数组; -使用反变换基于扩散的变换系数组确定扩散的混淆中间帧; -基于扩散的混淆中间帧确定第三缓冲区(109);以及 -使用所述第三缓冲区(109)确定音频信号的当前帧(422)的估计(204,207,208);其中所述当前帧(422)对应于当前丢失数据包(412)。
【文档编号】G10L19/018GK103714821SQ201210371433
【公开日】2014年4月9日 申请日期:2012年9月28日 优先权日:2012年9月28日
【发明者】黄申, 孙学京 申请人:杜比实验室特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1