首页> 中国专利> 利用根据帧的可变采样频率对后处理状态进行更新

利用根据帧的可变采样频率对后处理状态进行更新

摘要

本发明涉及一种用于对应用于解码音频信号的后处理状态进行更新的方法。该方法为使得,针对以与前一帧不同的采样频率所采样的当前解码信号帧,其包括以下步骤:获得(E101)针对该前一帧所存储的过去解码信号;通过内插对所获得的过去解码信号进行重采样(E102);使用该经重采样的过去解码信号作为存储器以对该当前帧进行后处理(E103)。本发明还涉及一种包括对后处理状态进行更新的解码方法,并且涉及一种实现该用于对后处理状态进行更新的方法的处理设备。

著录项

  • 公开/公告号CN106489178A

    专利类型发明专利

  • 公开/公告日2017-03-08

    原文格式PDF

  • 申请/专利权人 奥兰治;

    申请/专利号CN201580037397.4

  • 发明设计人 J.丹尼尔;B.科韦西;

    申请日2015-07-06

  • 分类号G10L19/26;

  • 代理机构北京市柳沈律师事务所;

  • 代理人李芳华

  • 地址 法国巴黎

  • 入库时间 2023-06-19 01:45:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-07

    授权

    授权

  • 2017-04-05

    实质审查的生效 IPC(主分类):G10L19/26 申请日:20150706

    实质审查的生效

  • 2017-03-08

    公开

    公开

说明书

技术领域

本发明涉及对音频信号进行处理以便对其进行传输或存储。更具体地,本发明涉及当采样频率从一个信号帧到另一个信号帧发生变化时对解码音频信号的后处理状态进行更新。

背景技术

本发明更具体地适用于通过像CELP(“码激励线性预测”)类型的解码等线性预测进行解码的情况。线性预测编解码器(诸如ACELP(“代数编码激励”)类型的编解码器)被认为适合于语音信号,它们很好地对其结果进行建模。

运行CELP编码算法的采样频率通常被预先确定并且在每个编码帧中是完全相同的;采样频率的示例为:

·在ITU-T G.729、G.723.1、G.729.1中定义的CELP编码器中的8kHz

·针对ITU-T G.722.2、G.718编码器的3GPP AMR-WB的CELP部分的12.8kHz

·在例如在G.罗伊(G.Roy)、P.卡巴尔(P.Kabal)的“以16千比特/秒”进行宽带CELP语音编码(Wideband CELP speech coding at 16千比特/秒)”(ICASSP 1991)以及C.拉夫兰梅(C.Laflamme)等人的“基于代数CELP的16千比特宽带语音编码技术(16kbps wideband speech coding technique based on algebraic CELP)”(ICASSP 1991)的文章中描述的编码器中的16kHz。

将进一步注意的是,在如ITU-T建议G.718中描述的编解码器的情况下,存在处理模块以用于通过低频噪声减少来改善解码信号。其用英语被称为“低音后置滤波器”(BPF)或者“低频后置滤波”。其作为CELP解码以相同的采样频率应用。这种后处理的目的是消除浊音信号的第一谐波之间的低频噪声。在谐波之间的距离更大并且掩蔽的噪声更少的情况下,这种后处理对于高音女性的声音来说特别重要。

尽管这种后处理在编码领域中的常见术语为“低频后置滤波”,但实际上其不是简单的滤波,而是通常包含“基音跟踪”模块、“基音增强器”模块、“低通滤波”模块、或“LP滤波”模块和附加模块的相当复杂的后处理。例如在建议G.718(06/2008)“从8-32千比特/秒的语音和音频的帧误差鲁棒窄带和宽带嵌入式可变比特率编码”(7.14.1章)中详细描述了这种类型的后处理。在同一文档的图29中展示了这种后处理的框图。

在此,我们仅回想对理解本文档所必需的原理和元素。所描述的技术使用划分为两种频带——低频带和高频带。自适应滤波被应用于低频带上,被确定为用于在合成信号的第一谐波处覆盖更低频率。因此,通过语音信号(称为“基音”)的周期T对这种自适应滤波进行参数化。实际上,由“基音增强器”模块进行的运算的方程如下:具有增强基音的信号被获得为

其中

并且为解码信号。

这种处理需要过去信号的存储器,其尺寸必须覆盖基音T的各个可能的值(以用于寻找值基音T的值对于下一帧不是已知的,因此,通常为了涵盖最坏的可能情况,过去解码信号的最长基音+1个样本被存储以用于后处理。最长基音给出了基音在给定采样频率上的最大长度,例如,通常这个值在16kHz上为289或者在12.8kHz上为231。附加样本常常被存储以用于后续地执行1阶去加重滤波。在此将不再详细描述这种去加重滤波,因为其不能形成本发明的主题。

当在编解码器的输入端或输出端处的信号的采样频率与CELP编码内部频率不完全相同时,实现重采样。例如:

·在3GPP AMR-WB(ITU-T G.722.2编解码器)中,宽频带中的输入和输出信号是以16kHz采样的,但是CELP编码在12.8kHz频率上操作。将注意的是,ITU-T G.718和G.718附件C的编解码器还以8kHz和/或32kHz的输入/输出频率进行操作,其中CELP核在12.8kHz上。

·在ITU-T G.729.1编解码器中,输入信号正常情况下是宽频带(在16kHz上),并且通过QMF滤波器组获得低频带(0kHz-4kHz)以在通过源自ITU-T G.729和G.729附件A的编解码器的CELP算法进行编码之前获得以8kHz采样的信号。

在此感兴趣的是关注于支持至少两个内部采样频率的编解码器的类别,采样频率能够适应性地及时被选择并且可从一个帧变化到另一个帧。通常,针对“低”比特率的范围,CELP编码器将在较低采样频率上进行操作,例如,fs1=12.8kHz,并且,针对较高比特率的范围,编码器将在较高频率处进行操作,例如,fs2=16kHz。比特率随着时间从一个帧到另一个帧的变化可以在这种情况下根据所涵盖的比特率的范围引起这两个频率(fs1和fs2)之间的切换。出于若干种原因,两个帧之间的这种频率切换可能造成可听见的且讨厌的伪信号。

引起这些伪信号的原因之一是切换内部解码频率防止了低频后置滤波至少在切换后的第一帧中进行操作,因为后处理(即过去合成信号)的存储器是以与最新合成信号不同的采样频率被发现的。

为了补救此问题,一个选项在于:在过渡帧(内部采样频率变化之后的帧)的持续时间内对去激活所述后处理。由于经后置滤波的噪声突然再次出现在过渡帧上,这种选项通常不产生期望的结果。

另一个选项是使得后处理保持活跃但将存储器设置为零。利用这种方法,所获得质量非常普通。

另一种可能性还通过仅保持16kHz上的存储器的最近4/5的样本来将此存储器视为如同其在12.8kHz上,或者反之,或者通过在12.8kHz上的存储器的开始(向过去)处增加1/5个零点以便具有正确的长度或者通过存储12.8kHz上多20%的样本以便在内部采样频率变化的情况下具有足够的样本来将此存储器视为如同其在16kHz上。收听测试表明这些解决方案不能给出令人满意的质量。

因此,在采样频率从一个帧到另一个帧发生变化的情况下,需要寻找一种用于避免后处理中断的更好质量的解决方案。

发明内容

本发明将改善这种状况。

出于此目的,本发明提供了一种对应用于解码音频信号的后处理状态进行更新的方法。所述方法为使得,针对以与前一帧不同的采样频率被采样的当前解码信号帧,其包括以下步骤:

-获得针对所述前一帧而存储的过去解码信号;

-通过内插对以所述当前帧的所述采样频率获得的所述过去解码信号进行重采样;

-使用所述经重采样的过去解码信号作为存储器以对所述当前帧进行后处理。

因此,后处理存储器适应于经后处理的当前帧的采样频率。这种技术允许改善两个采样频率之间的过渡帧中的后处理质量同时最小化复杂度(计算负载、ROM、RAM和PROM存储器)的增加。

以下提及的各个具体实施例可以被单独地或彼此组合地添加至以上所定义的重采样方法的步骤中。

在具体实施例中,在所述前一帧的所述采样频率高于所述当前帧的所述采样频率的情况下,从所述过去解码信号的最近样本开始并且通过按照逆时间顺序内插来进行所述内插,并且在所述前一帧的所述采样频率低于所述当前帧的所述采样频率的情况下,从所述过去解码信号的最旧样本开始并且通过按照时间顺序内插来进行所述内插。

这种内插模式使得可以在重采样之前和之后仅使用单个存储阵列(其长度对应于最大采样频率的最大信号周期)来记录过去解码信号。的确,在这两种重采样方向上,内插适应于以下事实:从过去信号的样本用于内插的时刻开始,其不再用于下一次内插。其因此可以由在存储阵列中内插的样本来代替。

因此,在有利实施例中,经重采样的过去解码信号存储在与重采样前过去解码信号相同的缓冲存储器中。

因此,通过实现这种方法来优化对设备的RAM存储器的使用。

在具体实施例中,内插属于线性类型。

这种内插类型具有较低复杂度。

针对有效的实现方式,所述过去解码信号具有根据最大可能语音信号周期的固定长度。

所述更新状态的方法特别适合于后处理在低频带上应用于解码信号以用于减少低频噪声的情况。

本发明还涉及一种对音频信号的当前帧进行解码的方法,所述方法包括选择解码采样频率的步骤、后处理的步骤。所述方法为使得,在以不同于当前帧的第二采样频率的第一采样频率对前一帧进行采样的情况下,其包括根据如所述的方法对后处理状态进行更新。

因此,解码信号的低频处理适应于解码器的内部采样频率,则这种后处理的质量得到改善。

本发明涉及一种用于处理解码音频信号的设备,其特征在于,针对以不同于前一帧的采样频率所采样的当前解码信号帧,所述设备包括:

-用于获得针对所述前一帧而存储的过去解码信号的模块;

-重采样模块,所述重采样模块用于通过内插对以所述当前帧的所述采样频率获得的所述过去解码信号进行重采样;

-后处理模块,所述后处理模块使用所述经重采样的过去解码信号作为存储器以对所述当前帧进行后处理。

这种设备提供了与其所实现的前述方法相同的优点。

本发明还涉及一种音频信号解码器,所述音频信号解码器包括用于选择解码采样频率的模块以及至少一个如所述的处理设备。

本发明还涉及一种包括代码指令的计算机程序,当这些指令由处理器执行时,所述指令用于实现如所述的更新状态的方法的步骤。

最后,本发明涉及一种存储介质,该存储介质由处理器可读、集成或不集成到处理设备中、可选地可移除的、存储实现如先前所描述的更新状态的方法的计算机程序。

附图说明

通过阅读以下仅通过非限制性示例给出并且参照这些附图所作出的描述,本发明的其他特征和优点将变得更加清楚,在附图中:

-图1以流程图的形式展示了根据本发明的实施例的对后处理状态进行更新的方法;

-图2展示了根据本发明的实施例的从16kHz到12.8kHz进行重采样的示例;

-图3展示了根据本发明的实施例的从12.8kHz到16kHz进行重采样的示例;

-图4展示了包括以不同采样频率进行操作的解码模块的解码器和根据本发明的实施例的处理设备的示例;以及

-图5展示了根据本发明的实施例的处理设备的材料表示。

具体实施方式

图1以流程图的形式展示了根据本发明的实施例的在对后处理状态进行更新的方法中实现的步骤。

在此,考虑以下情况,其中,有待处理的在当前帧之前的帧是在第一采样频率fs1处,而当前帧是在第二采样频率fs2处。换言之,在与解码相关联的应用中,当当前帧中的CELP解码内部频率(fs2)不同于前一帧的CELP解码内部频率(fs1):fs1≠fs2时,应用根据本发明的实施例的方法。

在此描述的实施例中,CELP编码器或解码器具有两个内部采样频率:针对低比特率的12.8kHz和针对高比特率的16kHz。当然,在本发明的范围内,可以提供其他内部采样频率。

在解码音频信号上实现的对后处理状态进行更新的方法包括在缓冲存储器中检索在前一帧的解码过程中存储的过去解码信号的第一步骤E101。如先前提到的,前一帧的这种解码信号(Mem.fs1)是在第一内部采样频率fs1处。

所存储的解码信号长度例如是语音信号周期(或者“基音”)的最大值的函数。

例如,在16kHz采样频率上,编码基音的最大值是289。所存储的解码信号的长度则为en_mem_16=290个样本。

针对12.8kHz上的内部频率,所存储的解码信号具有len_mem_12=(290/5)*4=232个样本的长度。

为了优化RAM存储器,290个样本中的同一缓冲存储器在此用于两种情况:在16kHz上,从0到289的所有索引是必需的;在12.8kHz上,仅58到289的索引是有用的。因此,不考虑采样频率,存储器(具有索引289)的最后样本总是包含过去解码信号的最后样本。应当注意的是,在两个采样频率(12.8kHz或16kHz)处,存储器覆盖相同的时间支持,18.125ms。

还应当注意的是,在12.8kHz上,还有可能使用从0到231的索引并且忽略从232到289的样本。中间位置也是可能的,但是从编程的视角这些解决方案是不实际的。在本发明的优选实现方式中,使用第一解决方案(索引58到289)。

在步骤E102中,以当前帧的内部采样频率fs2对这种过去解码信号进行重采样。例如,通过低复杂度的线性内插方法来进行这种重采样。例如,可以使用其他类型的内插,诸如三次或“样条”内插。

在具体的有利实施例中,所使用的内插允许仅使用单个RAM存储阵列(单个缓冲存储器)。

在图2中展示了内部采样频率从16kHz到12.8kHz的变化情况。在此减小了所表示的长度以便简化描述。在此附图中,标记为“mem”的存储器的长度为16kHz上的len_mem_16=20个样本(实心正方形标记)以及12.8kHz上的len_mem_12=16个样本(实心圆圈标记)。在右边的12.8kHz上的空心圆圈表示当前帧的解码信号的开始。针对12.8kHz上的每个输出样本的虚线箭头给出了16kHz的输入样本,从该频率处,在线性内插的情况下对它们进行内插。

附图还展示了如何将这些信号存储在缓冲存储器中。在部分a.)中,在12.8kHz上存储的样本与缓冲“mem”的末端对准(根据优选实现方式)。附图给出了存储阵列中的位置索引。索引0到3的空心虚线圆圈标记对应于在12.8kHz上未使用的位置。

可以观察到,通过从最近样本(因此,附图中索引19的样本)开始并且通过以逆时间顺序内插来进行所述内插,可以将结果写入同一阵列中,因为此位置的旧值不再用于下一次内插。实线箭头描绘了内插方向,在箭头中所写的数字对应于对输出样本进行内插的顺序。

还可以看出,在5个输入样本或者4个输出样本的步骤中,内插权重周期性地重复。因此,在具体实施例中,内插可以发生在5个输入样本和4个输出样本的框中。因此具有nb_bloc=len_mem_16/5=len_mem_12/4个待处理的块。

作为图示,在附件1中给出了用于进行这种内插的C语言风格代码指令的示例,

其中,pf5是针对16kHz上输入信号的阵列(寻址)指针,pf4是针对12.8kHz上输出信号的阵列指针。在开始时均指向同一个地方,指向长度为len_mem_16(所使用的这些索引为从0到len_mem_16-1)的阵列mem的末端处。nb_bloc包含for环路中待处理的块数量。pf4[0]为由指针pf4所指向的阵列的值,pf4[-1]为前一值,依此类推。同样的原理应用于pf5。在每次迭代结束时,指针pf5和pf4分别在5个和4个样本的步骤中向回移动。

借助于此解决方案,复杂度(运算次数、PROM、ROM)的增加非常小并且新RAM阵列的分配不是必需的。

图2的部分b.)展示了以下情况:12.8kHz上的样本与缓冲“mem”的开始对准,并且未使用索引16到19的位置。在这种情况下,如由实线箭头展示的,内插必须从最旧样本开始进行以便能够改写相同阵列中的结果。

以相同的方式,图3展示了内部采样频率从12.8kHz到16kHz的变化情况,仍然利用减小的长度以便简化描述:16kHz上的len_mem_16=20个样本(实心正方形标记)以及12.8kHz上的len_mem_12=16个样本(实心圆圈标记)。16kHz上的空心正方形表示当前帧的解码信号的开始。应当注意的是,16kHz上的当前帧的第一样本与12.8kHz上的当前帧的第一样本完全相同(相同的时间时刻),这由空心圆圈表示。针对16kHz上的每个输出样本的虚线箭头给出了12.8kHz的输入样本,从该频率上,在线性内插的情况下对它们进行内插。为了对最后的输出样本进行内插,还必须使用12.8kHz上的当前帧的第一样本,这如先前解释的那样是熟知的。由图3中的虚线箭头来展示这种依赖性。

附图还描绘了如何将这些信号存储在缓冲存储器中,附图给出了阵列中的位置的索引。在部分a.)中,在12.8kHz上存储的样本与缓冲“mem”的末端对准(根据优选实现方式)。索引0到3的空心虚线圆圈标记对应于在12.8kHz上不可用(由于未使用)的位置。

可以观察到的是,这次从最旧样本(因此,在输出处具有索引0的样本)开始进行内插以便能够改写同一存储器阵列中的内插的结果,因为在这些位置处的旧值不用于执行以下内插。实线箭头描绘了内插方向,在箭头中所写的数字对应于对输出样本进行内插的顺序。

还可以看出,在4个输入样本或者5个输出样本的步骤中,内插权重周期性地重复。因此,在4个输入样本和5个输出样本的框中执行内插是有利的。因此,仍然具有nb_bloc=len_mem_16/5=len_mem_12/4个待处理的块,除了这次之外,最后的框是特殊的,因为其也使用当前帧的第一值。还有趣的是观察到,存储器“mem”(图3中的4)中12.8kHz上的第一样本的索引等于待处理的块数量nb_bloc,因为在这2个频率之间每个块具有一个偏移样本。

作为图示,在附件2中给出了用于进行此内插的C语言风格代码指令的示例:

单独处理最后的块,因为其也取决于由syn[0]指示的当前帧的第一样本。

通过用前述情况进行类推,pf4是针对12.8kHz上输入信号的指向滤波器存储器的开始的阵列指针,这种存储器从阵列mem的第nb_bloc个样本被存储。pf5是针对16kHz上输出信号的阵列指针,其指向阵列mem的第一元件。nb_bloc包含待处理的块数量。在for环路中处理nb_bloc-1个块,然后单独处理最后的块。pf4[0]为由指针pf4所指向的阵列的值,pf4[1]为下一值,依此类推。同样的方式适用于pf5。在每次迭代结束时,指针pf5和pf4分别在5个和4个样本的步骤中向前移动。当前帧的解码信号存储在阵列syn中,syn[0]为当前帧的第一样本。

借助于此解决方案,复杂度(运算次数、PROM、ROM)的增加非常小并且新RAM阵列的分配不是必需的。

图3的部分b.)展示了以下情况:12.8kHz上的样本与缓冲“mem”的开始对准,并且未使用索引16到19的位置。在这种情况下,如由实线箭头展示的,内插必须从最近样本开始进行以便能够改写相同阵列中的结果。

现在返回至图1。在对存储器Mem.fs1进行重采样的步骤E102之后,在频率fs2处,获得存储器或经重采样的过去解码信号(Mem.fs2)。这种经重采样的过去解码信号在步骤E103中被用作当前帧的后处理的新存储器。

在具体实施例中,后处理与在ITU-T建议G.718中描述的后处理类似。如先前在回想G.718中的“低音后置滤波器”技术时所描述的,经重采样的过去解码信号的存储器在此用于寻找针对n=0……T-1的值

图4现在描述了包括在本发明的实施例中的处理设备410的解码器的示例。以频率fs输出对输出信号y(n)(单)进行采样,该频率可以取值为8kHz、16kHz、32kHz或48kHz。

针对每个接收到的帧,二进制列在401中被解复用并被解码。在402中,解码器在此根据当前帧的比特率确定以什么频率fs1或fs2对源自CELP编码器的信息进行解码。根据采样频率,针对频率fs1的解码模块403或者针对频率fs2的解码模块404被实现为用于解码所接收的信号。

工作在频率fs1=12.8kHz上的CELP解码器(块403)是在8千比特/秒与32千比特/秒之间初始定义的ITU-T>

以频率fs2=16kHz进行操作的CELP解码器(块404)是12.8kHz上8千比特/秒与32千比特/秒之间初始定义的ITU-T>

在此不对以16kHz实现CELP解码进行详述,因为其超出了本发明的范围。

在此对从频率fs1切换到频率fs2时更新CELP解码器的状态的问题没有意义。

当前帧中的CELP解码器的输出则由实现参考图1描述的更新后处理状态的方法的处理设备410来进行后置滤波。这种设备包括适应于各自的采样频率fs1和fs2的、能够以与ITU-T>2处对在频率fs1处采样的前一帧的过去解码信号(Mem.fs1)进行重采样以便获得用作当前帧的后处理存储器的经重采样的过去解码信号(Mem.fs2)。

反之,在频率fs2处对在频率fs1处采样的前一帧的过去解码信号(Mem.fs1)进行重采样以便获得用作当前帧的后处理存储器的经重采样的过去解码信号(Mem.fs2)。

然后由重采样模块411和412在输出频率fs输出上对由处理设备410后处理的信号进行重采样,其中例如fs输出=32kHz。这相当于进行411中fs输出处的fs1的重采样、或者412中fs输出处的fs2的重采样。

在变体中,除了或者代替块420和421,可以使用其他后处理操作(高通滤波等)。

根据输出频率fs输出,由解码模块405解码的(在频率fs输出上重采样的)高频带信号可以在406中被添加至经重采样的低频带信号。

在待编码的输入信号已经由变换编码器编码的情况下,解码器也提供使用附加解码模式,诸如通过逆频率变换(框430)进行解码。的确,编码器分析了待编码的信号类型并且针对此信号选择最适合的编码技术。变换编码尤其用于音乐信号,由CELP类型的预测编码器对这些音乐信号进行的编码通常不佳。

图5表示根据本发明的实施例的处理设备500的材料实现方式。这可以形成音频信号解码器的集成部分或者接收音频信号的一件设备的集成部分。其可以集成到通信终端、起居室机顶盒解码器或家庭网关中。

这种类型的设备包括与存储器块BM协同操作的处理器PROC 506,该存储器块包括存储装置和/或工作存储器MEM。

这种设备包括能够接收音频信号帧并且尤其是在第一采样频率fs1上的前一帧的存储部分(Buf前一帧)的输入模块501。

该设备包括能够传输经后处理的音频信号s'(n)的当前帧的输出模块502。

处理器PROC控制用于获得503针对前一帧而存储的过去解码信号的模块。通常,获得这种过去解码信号是通过在包括在存储器块BM中的缓冲存储器中进行简单读取来进行的。处理器还控制用于通过内插对在503中获得的过去解码信号进行重采样的重采样模块504。

其还控制将经重采样的过去解码信号用作后处理存储器以便执行对当前帧进行后处理的后处理模块505。

存储器块可以有利地包括计算机程序,该计算机程序包括用于实现在本发明含义内的对后处理状态进行更新的方法的步骤的代码指令,当这些指令由处理器PROC执行时,并且尤其实现以下步骤:获得针对前一帧而存储的过去解码信号;通过内插对所获得的过去解码信号进行重采样;以及使用经重采样的过去解码信号作为存储器以对当前帧进行后处理。

通常,图1的描述使用了这种计算机程序的算法中的这些步骤。计算机程序还可以被存储在存储介质上,其可以由设备的驱动器进行读取或者可以被下载到其存储空间中。

一般说来,存储器MEM存储实现该方法所必需的所有数据。

附件1:

附件2:

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号