首页 > 乐器声学 专利正文
音频编解码方法和相关装置及计算机可读存储介质与流程

时间:2022-01-19 阅读: 作者:专利查询

音频编解码方法和相关装置及计算机可读存储介质与流程

1.本技术涉及音频技术领域,尤其涉及音频编解码方法和相关的通信装置及相关的计算机可读存储介质。


背景技术:

2.目前,随着社会的进步和技术的不断发展,用户对音频服务的需求越来越高。如何在有限编码比特率的情况下为用户提供更高质量的服务,或利用更低的编码比特率为用户提供相同质量的服务,一直以来都是音频编解码研究的重点。一些国际标准组织(例如第三代合作伙伴计划(3gpp,3rd generation partner project))也在参与相关标准的制定工作,以推动音频服务向高质量迈进。
3.三维音频由于能够带给用户更好的浸入式体验,成为音频服务发展的新趋势。实现三维音频服务,需要进行压缩编码的原始音频信号格式可分为:基于声道的音频信号格式、基于对象的音频信号格式、基于场景的音频信号格式、以及任意基于以上三种音频信号格式的混合信号格式。
4.其中,无论是哪种音频信号格式,三维音频编解码器需要进行压缩编码的音频信号包含多路信号。通常情况下,三维音频编解码器利用通道间的相关性将多路信号下混,得到下混信号和多通道编码参数(通常情况下,下混信号的通道数远小于输入信号的通道数,例如多通道信号下混为立体声信号)。然后,利用核心编码器对下混信号进行编码。还可以选择将立体声信号进一步下混为单声道信号和立体声编码参数。编码下混信号和多通道编码参数所用的比特数远小于独立编码多通道输入信号。此外,核心编码器中,为降低编码比特率,往往进一步利用不同频带信号间的相关性进行编码。
5.利用不同频带信号间的相关性进行编码,原理是利用低频带信号,通过频谱复制或频带扩展等产生高频带信号,以便用较少的比特数对高频带信号进行编码,从而降低整个编码器的编码比特率。但真实的音频信号中,高频带的频谱中往往存在一些与低频带的频谱不相似的音调成分,传统技术没有能够高效地编码及重建这些音调成分。


技术实现要素:

6.本技术实施例提供了通信方法和相关装置及计算机可读存储介质。
7.本技术实施例第一方面提供一种音频解码方法,包括:
8.音频解码器获取编码码流;对所述编码码流进行码流解复用以获得音频信号的当前帧的第一编码参数;根据音调成分编码的配置参数对所述编码码流进行码流解复用,以获得所述当前帧的第二编码参数,所述当前帧的第二编码参数包括所述当前帧的音调成分参数;根据所述第一编码参数获得所述当前帧的第一高频带信号和第一低频带信号;根据所述第二编码参数和所述音调成分编码的配置参数,获得所述当前帧的第二高频带信号;根据所述第一高频带信号、所述第二高频带信号和所述第一低频带信号,获得所述当前帧的解码信号。
9.本技术音频编解码器可为3gpp提出的增强语音服务(evs,enhanced voice service)音频编解码器,也可是统一语音和音频编码(usac,unified speech and audio coding)音频编解码器,或者还可以是动态图像专家组(mpeg,moving picture experts group)的高效高级音频编码(he-aac,high-efficiency advanced audio coding)的音频编解码器等,当然本技术的音频编解码器也不限于上述举例类型的音频编解码器。
10.本技术实施例举例的音频解码方案中,音频解码器可以对编码码流进行解码而得到当前帧的音调成分参数,根据音调成分参数和所述音调成分编码的配置参数,获得所述当前帧的第二高频带信号,由于第二高频带信号携带了高频部分的音调成分信息,因此有利于更准确地恢复第二高频带信号对应的频率范围内的音调成分,从而提高了解码音频信号的质量。
11.在一些可能实施方式中,音频解码方法方法还可包括:获取配置码流;对所述配置码流进行码流解复用以获得解码器配置参数,所述解码器配置参数包括所述音调成分编码的配置参数,所述音调成分编码的配置参数用于表示音调成分编码的频率区域的数量和各频率区域的子带宽度。例如所述音调成分编码的配置参数可包括音调成分编码的频率区域的数量参数和各频率区域的子带宽度参数等。
12.其中,配置参数可每帧分别获取,也可多帧共用相同的配置参数。即配置码流可以每帧分别获取,也可多帧共用相同的配置码流。
13.其中,当配置参数可每帧分别获取,那么,当前帧的音调成分编码的频率区域数量参数可能同于或不同于前一帧的音调成分编码的频率区域数量参数,当前帧的至少一个频率区域的音调成分编码的子带宽度参数,可能同于或不同于前一帧的至少一个频率区域的音调成分编码的子带宽度参数;
14.其中,当多帧共用相同的配置参数,那么当前帧的音调成分编码的频率区域数量参数可同于前一帧的音调成分编码的频率区域数量参数,当前帧的至少一个频率区域的音调成分编码的子带宽度参数,可同于前一帧(当前帧和前一帧共用相同配置参数)的至少一个频率区域的音调成分编码的子带宽度参数。
15.可以理解,利用配置码流中解码器配置参数包括的音调成分编码的配置参数,可基于需要来灵活配置进行音调成分编码的频率区域的数量和频率区域内的子带划分方式等。
16.在一些可能的实施方式之中,所述对所述配置码流进行码流解复用以获得解码器配置参数可以包括:从所述配置码流中获得音调成分编码的频率区域的数量参数和使用相同子带宽度的标志参数,其中,所述使用相同子带宽度的标志参数用于表示不同频率区域是否使用相同的子带宽度;根据所述音调成分编码的频率区域的数量参数和所述使用相同子带宽度的标志参数,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数。
17.在一些可能实施方式中,所述根据所述音调成分编码的频率区域的数量参数和所述使用相同子带宽度的标志参数,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数,包括:
18.在所述使用相同子带宽度的标志参数为设定值s1的情况下,从所述配置码流中获得所述共用子带宽度参数(这个共用子带宽度参数可为当前帧和其他帧共用或不共用),所
述至少一个频率区域的音调成分编码的子带宽度参数,等于所述共用子带宽度参数,或所述至少一个频率区域的音调成分编码的子带宽度参数,基于所述共用子带宽度参数变换得到(变换方式例如可以是按一定比例放大或缩小,当然也可是其他满足需要的变换方式)。
19.或者,
20.在所述使用相同子带宽度的标志参数为设定值s2的情况下,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数(所述至少一个频率区域的音调成分编码的子带宽度参数可为当前帧和其他帧共用或不共用),其中,所述至少一个频率区域的音调成分编码的子带宽度参数的数量,等于所述音调成分编码的频率区域的数量参数所指示的所述音调成分编码的频率区域数量,或所述至少一个频率区域的音调成分编码的子带宽度参数的数量,基于所述音调成分编码的频率区域的数量参数变换得到(变换方式例如可为按一定比例放大或缩小,当然也可是其他满足需要的变换方式)。
21.可以理解,利用使用相同子带宽度的标志参数,可基于需要来灵活配置进行音调成分编码的频率区域的子带宽度等。
22.在一些可能实施方式中,当前帧的音调成分参数包括如下参数中的一种或多种:所述当前帧的帧级别音调成分标志参数、所述当前帧的至少一个频率区域的频率区域级别的音调成分标志参数、所述当前帧的至少一个频率区域的噪声基底参数、音调成分的位置数量信息复用参数、音调成分的位置数量参数、音调成分的幅度或能量参数。
23.在一些可能实施方式中,所述音调成分编码的配置参数包括音调成分编码的频率区域的数量参数;所述根据音调成分编码的配置参数对所述编码码流进行码流解复用,以获得音频信号的当前帧的第二编码参数,包括:从编码码流中获取所述当前帧的帧级别音调成分标志参数;
24.在所述当前帧的帧级别音调成分标志参数为设定值s3的情况下,从所述编码码流中获得所述当前帧的n1个频率区域的音调成分参数,其中,所述n1等于所述当前帧音调成分编码的频率区域的数量参数所指示的所述当前帧音调成分编码的频率区域数量。
25.在一些可能实施方式中,所述从所述编码码流中获得所述当前帧的n1个频率区域的音调成分参数,包括:从编码码流中获取所述当前帧的n1个频率区域中当前频率区域的频率区域级别音调成分标志参数;
26.在所述当前帧的当前频率区域的频率区域级别音调成分标志参数为设定值s4的情况下,从所述编码码流中获得如下音调成分参数中的一种或多种:所述当前帧的当前频率区域的噪声基底参数,音调成分的位置数量信息复用参数、音调成分的位置数量参数、音调成分的幅度或能量参数。
27.在一些可能实施方式中,从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量信息复用参数和音调成分的位置数量参数,包括:从编码码流中获得所述当前帧的当前频率区域的位置数量信息复用参数;
28.在当前帧的当前频率区域的位置数量信息复用参数为设定值s5的情况下,所述当前帧的当前频率区域的音调成分的位置数量参数,等于所述当前帧的前一帧的当前频率区域的音调成分的位置数量参数;或所述当前帧的当前频率区域的音调成分的位置数量参数,基于所述当前帧的前一帧的当前频率区域的音调成分的位置数量参数变换得到。
29.在所述当前帧的当前频率区域的位置数量信息复用参数为设定值s6的情况下,从
所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量参数。
30.可以理解,利用音调成分的位置数量信息复用参数,可以便捷的实现音调成分的位置数量信息是否复用的控制,并且,在音调成分的位置数量信息复用的情况下,也有利于减少比特传输量,进而节约传输资源。
31.在一些可能实施方式中,所述从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量参数,包括:根据当前帧的当前频率区域的宽度信息和音调成分编码的子带宽度参数,获得所述当前帧的当前频率区域的音调成分的位置数量参数占用的比特数;根据所述当前帧的当前频率区域的音调成分的位置数量参数占用的比特数,从所述编码码流中获得当前帧的当前频率区域的音调成分的位置数量参数。
32.在一些可能实施方式中,所述当前频率区域的宽度信息由音调成分编码的频率区域的分布确定,其中,所述音调成分编码的频率区域的分布由所述音调成分编码的频率区域的数量参数确定。
33.在一些可能实施方式中,从所述编码码流中获得所述当前帧的至少一个频率区域的音调成分的幅度或能量参数,包括:若所述当前帧的当前频率区域的频率区域级别音调成分标志参数为设定值s4,根据所述当前帧的当前频率区域的音调成分的位置数量参数,从所述编码码流中获得所述当前帧的当前频率区域的音调成分的幅度或能量参数。
34.本技术第二方面提供一种音频解码器,包括:
35.获取单元,用于获取编码码流;
36.解码单元,用于对所述编码码流进行码流解复用,以获得音频信号的当前帧的第一编码参数;根据音调成分编码的配置参数对所述编码码流进行码流解复用,以获得音频信号的当前帧的第二编码参数,所述当前帧的第二编码参数包括所述当前帧的音调成分参数;根据所述第一编码参数获得所述当前帧的第一高频带信号和第一低频带信号;根据所述第二编码参数和所述音调成分编码的配置参数,获得所述当前帧的第二高频带信号;根据所述第一高频带信号、所述第二高频带信号和所述第一低频带信号,获得所述当前帧的解码信号。
37.在一些可能实施方式中,所述获取单元还用于获取配置码流;解码单元还用于对所述配置码流进行码流解复用以获得解码器配置参数,其中,所述解码器配置参数包括所述音调成分编码的配置参数,所述音调成分编码的配置参数用于表示音调成分编码的频率区域的数量和各频率区域的子带宽度。
38.在一些可能实施方式中,所述解码单元对所述配置码流进行码流解复用以获得解码器配置参数,包括:从所述配置码流中获得音调成分编码的频率区域的数量参数和使用相同子带宽度的标志参数,其中,所述使用相同子带宽度的标志参数用于表示不同频率区域是否使用相同的子带宽度;根据所述音调成分编码的频率区域的数量参数和所述使用相同子带宽度的标志参数,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数。
39.在一些可能实施方式中,所述解码单元根据所述音调成分编码的频率区域的数量参数和所述使用相同子带宽度的标志参数,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数,包括:
40.在所述使用相同子带宽度的标志参数为设定值s1的情况下,从所述配置码流中获
得共用子带宽度参数,所述至少一个频率区域的音调成分编码的子带宽度参数,等于所述共用子带宽度参数,或所述至少一个频率区域的音调成分编码的子带宽度参数,基于所述共用子带宽度参数变换得到;
41.或者,
42.在所述使用相同子带宽度的标志参数为设定值s2的情况下,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数,其中,所述至少一个频率区域的音调成分编码的子带宽度参数的数量,等于所述音调成分编码的频率区域的数量参数所指示的所述音调成分编码的频率区域数量,或所述至少一个频率区域的音调成分编码的子带宽度参数的数量,基于所述音调成分编码的频率区域的数量参数变换得到。
43.在一些可能实施方式中,当前帧的音调成分参数包括如下参数中的一种或多种:所述当前帧的帧级别音调成分标志参数、所述当前帧的至少一个频率区域的频率区域级别的音调成分标志参数、所述当前帧的至少一个频率区域的噪声基底参数、音调成分的位置数量信息复用参数、音调成分的位置数量参数、音调成分的幅度或能量参数。
44.在一些可能实施方式中,所述音调成分编码的配置参数包括音调成分编码的频率区域的数量参数;所述解码单元根据音调成分编码的配置参数对所述编码码流进行码流解复用,以获得音频信号的当前帧的第二编码参数,包括:从编码码流中获取所述当前帧的帧级别音调成分标志参数;
45.在所述当前帧的帧级别音调成分标志参数为设定值s3的情况下,从所述编码码流中获得所述当前帧的n1个频率区域的音调成分参数,其中,所述n1等于所述当前帧音调成分编码的频率区域的数量参数所指示的所述当前帧音调成分编码的频率区域数量。
46.在一些可能实施方式中,所述解码单元从所述编码码流中获得所述当前帧的n1个频率区域的音调成分参数,包括:
47.从编码码流中获取所述当前帧的n1个频率区域中当前频率区域的频率区域级别音调成分标志参数;
48.在所述当前帧的当前频率区域的频率区域级别音调成分标志参数为设定值s4的情况下,从所述编码码流中获得如下音调成分参数中的一种或多种:所述当前帧的当前频率区域的噪声基底参数,音调成分的位置数量信息复用参数、音调成分的位置数量参数、音调成分的幅度或能量参数。
49.在一些可能实施方式中,所述解码单元从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量信息复用参数和音调成分的位置数量参数,包括:从编码码流中获得所述当前帧的当前频率区域的位置数量信息复用参数;
50.在当前帧的当前频率区域的位置数量信息复用参数为设定值s5的情况下,所述当前帧的当前频率区域的音调成分的位置数量参数,等于所述当前帧的前一帧的当前频率区域的音调成分的位置数量参数;或所述当前帧的当前频率区域的音调成分的位置数量参数,基于所述当前帧的前一帧的当前频率区域的音调成分的位置数量参数变换得到;
51.在所述当前帧的当前频率区域的位置数量信息复用参数为设定值s6的情况下,从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量参数。
52.在一些可能实施方式中,所述解码单元从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量参数,包括:
53.根据所述当前帧的当前频率区域的宽度信息和音调成分编码的子带宽度参数,获得所述当前帧的当前频率区域的音调成分的位置数量参数占用的比特数;根据所述当前帧的当前频率区域的音调成分的位置数量参数占用的比特数,从所述编码码流中获得当前帧的当前频率区域的音调成分的位置数量参数。
54.在一些可能实施方式之中,所述当前频率区域的宽度信息由音调成分编码的频率区域的分布确定,所述音调成分编码的频率区域的分布由所述音调成分编码的频率区域的数量参数确定。
55.在一些可能实施方式中,所述解码单元从所述编码码流中获得所述当前帧的至少一个频率区域的音调成分的幅度或能量参数,包括:
56.若所述当前帧的当前频率区域的频率区域级别音调成分标志参数为设定值s4,根据所述当前帧的当前频率区域的音调成分的位置数量参数,从所述编码码流中获得所述当前帧的当前频率区域的音调成分的幅度或能量参数。
57.本技术实施例第三方面提供一种音频解码器,可包括:包括处理器,所述处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述处理器执行时实现第一方面提供的任意一种方法。
58.本技术实施例第四方面提供一种通信系统,包括:音频编码器和音频解码器;所述音频解码器为本技术实施例提供的任意一种音频解码器。
59.本技术实施例第五方面提供一种计算机可读存储介质,包括程序,当所述程序在计算机上运行时,使得所述计算机执行第一方面提供的任意一种方法。
60.本技术实施例第六方面提供一种网络设备,包括处理器和存储器,所述处理器与存储器耦合,用于读取并执行所述存储器中存储的指令,实现如第一方面提供的任意一种方法。
61.其中,所述网络设备例如为芯片或片上系统。
62.本技术实施例第七方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有编码码流,其中,本技术实施例提供的任意一种音频解码器获取所述编码码流后,根据所述编码码流获得所述当前帧的解码信号。
63.本技术实施例第八方面提供一种计算机程序产品,其中,所述计算机程序产品包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面提供的任意一种方法。
附图说明
64.下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
65.图1-a和图1-b为本技术实施例提供的音频编解码方案应用到音频终端的场景示意图。
66.图1-c和图1-d为本技术实施例提供的有线或无线网络中的网络设备的音频编解码的示意图。
67.图1-e为本技术实施例提供的音频通信中的音频编解码的示意图。
68.图1-f和图1-g为本技术实施例提供的有线或无线网络中的网络设备的多声道编解码的示意图。
69.图1-h为本技术实施例提供的虚拟现实服务应用音频编解码的示意图。
70.图2为本技术实施例提供的一种音频编码方法的流程示意图。
71.图3为本技术实施例提供的一种获取当前帧的第二编码参数的方法的流程示意图。
72.图4-a为本技术实施例提供的一种音频解码方法的流程示意图。
73.图4-b为本技术实施例提供的一种高频信号和低频信号组合的示意图。
74.图5为本技术实施例提供的一种音频解码器的示意图。
75.图6为本技术实施例提供的另一种音频解码器的示意图。
76.图7为本技术实施例提供的一种通信系统的示意图。
77.图8为本技术实施例提供的一种网络设备的示意图。
具体实施方式
78.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
79.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
80.参见图1-a至图1-g,下面介绍本技术音频编解码方案可能应用到的网络架构。音频编解码方案可能应用到音频终端(例如有线或无线通信终端)中,也可能应用到有线或无线网络中的网络设备中。
81.其中,图1-a和图1-b示出音频编解码方案应用到音频终端的场景,其中,音频终端的具体产品形态可以是图1-a中终端1、终端2或终端3等,但也不限于此。例如音频通信中发送终端中的音频采集器可采集音频信号,立体声编码器可将音频采集器采集到的音频信号进行立体声编码,信道编码器对立体声编码器编码得到的立体声编码信号进行信道编码得到码流,码流通过无线网络或无线网络进行传输。相应的,接收终端中的信道解码器对接收到的码流进行信道解码,再经立体声解码器解码出立体声信号,之后则可由音频回放器进音频回放。
82.参见图1-c和图1-d,有线或无线网络中的网络设备如需实现转码,则网络设备可进行相应的立体声编解码处理。
83.其中,立体声编解码处理可以是多声道编解码器中的一部分。例如对采集到的多声道信号进行多声道编码可以是将采集到的多声道信号经过下混处理后得到立体声信号,对得到的立体声信号进行编码;解码端根据多声道信号编码码流,解码得到立体声信号,经过上混处理后恢复出多声道信号。因此立体声编解码方案也可应用于终端、有线或无线网络中的网络设备的通信模块中的多声道编解码器。
84.图1-e举例示出,例如音频通信中发送终端中的音频采集器可采集音频信号,多声道编码器可将音频采集器采集到的音频信号进行多声道编码,信道编码器对多声道编码器编码得到的多声道编码信号进行信道编码得到码流,码流通过无线网络或无线网络进行传输。而相应的,接收终端中的信道解码器对接收到的码流进行信道解码,再经多声道解码器解码出多声道信号,之后则可由音频回放器进音频回放。
85.参见图1-f和图1-g,有线或无线网络中的网络设备如需实现转码,则网络设备可进行相应的多声道编解码处理。
86.参见图1-h,本技术音频编解码方案还可适用于虚拟现实(vr streaming)服务中的音频编解码模块(audio encoding/audio decoding)。
87.例如,端到端对音频信号的处理流程可为:音频信号a经过采集模块(acquisition)后进行预处理操作(audio preprocessing),预处理操作包括滤除掉信号中的低频部分,通常是以20hz或50hz为分界点,提取信号中的方位信息,之后进行编码处理(audio encoding)并且打包(file/segment encapsulation)之后发送(delivery)到解码端。相应的,解码端首先进行解包(file/segment decapsulation),之后解码(audio decoding),对解码信号进行双耳渲染(audio rendering)处理,渲染处理后的信号映射到收听者耳机(headphones)上,可为独立的耳机,也可为htc vive等眼镜设备上的耳机。
88.具体来说,本技术音频编解码方案可应用到的实际产品可包括无线接入网设备、核心网的媒体网关、转码设备、媒体资源服务器,移动终端、固网终端等。还可以应用于vr streaming服务中的音频编解码器。
89.本技术音频编解码器可为3gpp提出的增强语音服务(evs,enhanced voice service)音频编解码器,也可是统一语音和音频编码(usac,unified speech and audio coding)音频编解码器,或者还可以是动态图像专家组(mpeg,moving picture experts group)的高效高级音频编码(he-aac,high-efficiency advanced audio coding)的音频编解码器等,当然本技术的音频编解码器也不限于上述举例类型的音频编解码器。
90.下面具体介绍一些音频编解码方案。
91.参见图2,图2为本技术实施例提供的一种音频编码方法的流程示意图。一种音频编码方法可以包括:
92.201.获取音频编解码器的配置参数,所述配置参数包括音调成分编码的配置参数。
93.其中,在进行音调成分编码的过程中,例如可以将音频帧的高频带划分为k个频率区域(tile),其中,每个频率区域内可划分为一个或多个子带,不同频率区域内划分子带的数量可相同,部分相同,完全不同。音调成分信息的获取例如可以以频率区域为单位进行。
94.当音调成分信息的获取以频率区域为单位进行,音调成分编码的配置参数可包括:音调成分编码的频率区域数量参数,还可以包括音调成分编码的子带宽度参数。
95.其中,音调成分编码的子带宽度参数例如可表示为如下两个参数,即使用相同子带宽度的标志参数,以及各频率区域的音调成分编码的子带宽度参数。
96.其中,音调成分编码的频率区域数量参数,表示对音频信号的高频带中多少个频率区域进行音调成分的检测、编码和重建。
97.其中,使用相同子带宽度的标志参数,表示进行音调成分编码的各个频率区域是否使用相同的子带宽度。具体来说,当使用相同子带宽度的标志参数表示出进行音调成分编码的各个频率区域使用相同的子带宽度,那么,进行音调成分编码的各个频率区域均使用相同的子带宽度。当使用相同子带宽度的标志参数表示出进行音调成分编码的各个频率区域使用不相同的子带宽度,那么,进行音调成分编码的部分频率区域或任意两个频率区域使用不相同的子带宽度。
98.其中,各频率区域中某一频率区域的音调成分编码的子带宽度参数,表示这个频率区域中包含的若干子带的频率宽度(这个频率宽度例如可以是子带的频点数量,且同一
频率区域中各子带的频率宽度相同)。
99.其中,音调成分编码的配置参数可以通过预先设定或查表方式获得。
100.其中,配置参数可每帧分别获取,也可多帧共用相同的配置参数。
101.其中,当配置参数可每帧分别获取,那么,当前帧的音调成分编码的频率区域数量参数可能同于或不同于前一帧的音调成分编码的频率区域数量参数,当前帧的至少一个频率区域的音调成分编码的子带宽度参数,可能同于或不同于前一帧的至少一个频率区域的音调成分编码的子带宽度参数;
102.其中,当多帧共用相同的配置参数,那么当前帧的音调成分编码的频率区域数量参数可同于前一帧的音调成分编码的频率区域数量参数,当前帧的至少一个频率区域的音调成分编码的子带宽度参数,可同于前一帧(当前帧和前一帧共用相同配置参数)的至少一个频率区域的音调成分编码的子带宽度参数。
103.202.获取音频信号的当前帧,其中,所述当前帧包括高频带信号和低频带信号。
104.其中,当前帧可以是音频信号中的任意一个帧,其中,当前帧可以包括高频带信号和低频带信号。其中,高频带信号和低频带信号的划分可以通过频带阈值确定,高于这个频带阈值的信号为高频带信号,低于这个频带阈值的信号为低频带信号,对于频带阈值的确定可以根据传输带宽、编码组件和解码组件的数据处理能力来确定,此处不做限定。
105.可以理解,高频带信号和低频带信号是相对的,例如低于某个频率阈值的信号为低频带信号,高于该频率阈值的信号为高频带信号(其中,该频率阈值对应的信号既可以划到低频带信号,也可以划到高频带信号)。该频率阈值根据当前帧的带宽不同而有可能不同。例如在当前帧为信号带宽为0-8千赫兹(khz)的宽带信号时,该频率阈值可以为4khz;在当前帧为信号带宽为0-16khz的超宽带信号时,该频率阈值可以为8khz。
106.需要说明的是,本技术实施例方案中,所述高频带信号可以是高频区域中的部分或全部信号,具体地,高频区域根据当前帧的信号带宽的不同会有不同,也会根据频率阈值的不同会有不同。举例来说,在当前帧的信号带宽为0-8khz,频率阈值为4khz时,所述高频区域为4-8khz,则所述高频带信号可以是覆盖整个高频区域的4-8khz的信号,也可是仅覆盖部分高频区域的信号,例如高频带信号可是4-7khz,5-8khz,5-7khz,或4-6khz以及7-8khz(即所述高频带信号在频域上可以是不连续的)等等;例如在当前帧的信号带宽为0-16khz,频率阈值为8khz时,高频区域为8-16khz,则所述高频带信号可为覆盖整个高频区域的8-16khz的信号,也可是仅覆盖部分高频区域的信号,例如高频带信号可以是8-15khz、9-16khz、9-15khz或(8-10khz+11-16khz,即所述高频带信号在频域上可以是连续的或不连续的)等等。可以理解的是,所述高频带信号覆盖的频率范围可以根据需要进行设置,或者根据需要进行编码的频率范围自适应地确定,例如可根据需要进行音调成分筛选的频率范围自适应地确定。
107.203.根据所述当前帧高频带信号和低频带信号得到第一编码参数。
108.其中,第一编码参数具体可以包括:时域噪声整形参数、频域噪声整形参数、频谱量化参数、频带扩展参数等。
109.204.根据所述音调成分编码的配置参数和所述当前帧的高频带信号获取当前帧的第二编码参数,所述第二编码参数包括当前帧的高频带信号的音调成分参数,所述音调成分参数用于表示所述当前帧的高频带信号的音调成分信息,所述音调成分信息包括所述
音调成分的位置信息、数量信息、以及幅度信息或能量信息。在一些实施例中,所述音调成分信息还可以包括频率区域的噪声基底信息。
110.其中,通常情况下,根据高频带信号获取当前帧的第二编码参数的过程,可按照高频带的频率区域划分和/或子带划分来进行。其中,高频带信号对应的高频带可包括至少一个频率区域,一个频率区域可包括至少一个子带。
111.其中,音调成分编码的配置参数中,音调成分编码的频率区域数量参数用于表示在所述高频带信号对应的高频带中,进行音调成分编码的频率区域的数量信息。例如,音调成分编码的频率区域数量参数为3,则表明在所述高频带信号对应的高频带中的3个频率区域进行音调成分编码,所述的3个频率区域可以是所述高频带的所有频率区域中指定的3个频率区域,或者从高频带的所有频率区域中按预设规则选定。
112.其中,音调成分编码的配置参数中,使用相同子带宽度的标志参数以及各频率区域的音调成分编码的子带宽度参数,用于表示音调成分编码的各个频率区域中子带的宽度信息(即子带包含的频点数量)。本技术实施例提供的音调成分编码方法中,每个频率区域的每个子带中最多编码一个音调成分的信息。因此某一频率区域的音调成分编码的子带宽度参数决定了这一频率区域中可以编码的音调成分的最大数量。
113.205.对音调成分编码的配置参数进行码流复用以获得配置码流。
114.其中,由于配置参数可每帧分别获取,也可多帧共用相同的配置参数(即配置码流可每帧分别获取,也可多帧共用相同的配置码流)。因此配置码流可能是针对每帧都分别生成,也可能针对多帧而生成一个多帧共用的配置码流。
115.可以理解,在多帧共用相同的配置参数(即多帧共用相同的配置码流)的情况下,当前帧和另一帧如果公用相同配置参数,那么前一帧的音调成分编码的某配置参数,也可称当前帧的音调成分编码的某配置参数,当前帧的音调成分编码的某配置参数,也可称前一帧的音调成分编码的某配置参数。
116.206.对第一编码参数和第二编码参数进行码流复用以获得编码码流。
117.可以看出,由于第二编码参数包括当前帧的高频带信号的音调成分参数,所述音调成分参数用于表示所述当前帧的高频带信号的音调成分信息,因此音频解码器可以对编码码流进行解码而得到当前帧的音调成分参数,进而可根据音调成分参数和所述音调成分编码的配置参数,获得所述当前帧的第二高频带信号,由于第二高频带信号携带了高频部分的音调成分信息,因此有利于更准确地恢复第二高频带信号对应的频率范围内的音调成分,从而提高了解码音频信号的质量。
118.参见图3,图3为本技术实施例提供的一种获取当前帧的第二编码参数的方法的流程示意图。
119.其中,一种获取当前帧的第二编码参数的方法可以包括:
120.301.根据音调成分编码的配置参数和当前帧的至少一个频率区域中的当前频率区域的高频带信号,获得当前帧的当前频率区域的噪声基底参数、音调成分的位置数量参数和音调成分的幅度或能量参数。
121.根据音调成分编码的频率区域的数量参数、各频率区域的子带宽度参数,以及当前帧的至少一个频率区域中的当前频率区域的高频带信号,可分别获取各频率区域内的音调成分的数量信息、音调成分的位置信息、音调成分的幅度信息或能量信息,以及噪声基底
信息。
122.根据各频率区域内的音调成分的数量信息、音调成分的位置信息、音调成分的幅度信息或能量信息,以及噪声基底信息,获得所述各频率区域内的音调成分的位置数量参数、音调成分的幅度或能量参数,以及噪声基底参数。
123.其中,音调成分的位置数量参数还可以包括位置数量信息复用参数,此参数的确定方法例如为:若当前帧的至少一个频率区域中的当前频率区域的音调成分的位置数量参数与当前帧的前一帧的当前频率区域的音调成分的位置数量参数相同,则所述当前帧的当前频率区域的位置数量信息复用参数可设定为s5,否则设定为s6。s5不等于s6,例如s5=1且x6=0,或s5=0且s6=1。
124.其中,根据当前频率区域的高频带信号,确定所述当前频率区域的噪声基底参数、所属当前频率区域的音调成分的位置数量参数,以及所述当前频率区域的音调成分的幅度参数或能量参数的具体方法本技术不做限定。
125.302.根据当前帧的当前频率区域的音调成分的数量信息,获得当前帧的当前频率区域的频率区域级别的音调成分标志参数。
126.例如,若当前帧的当前频率区域的音调成分的数量信息大于零,则所述当前频率区域的频率区域级别的音调成分标志参数为设为s4,否则为s8。其中,s4不等于s8,例如s4=1且s8=0,或s4=0且s8=1。
127.303.根据当前帧的至少一个频率区域的频率区域级别的音调成分标志参数,获得当前帧的帧级别音调成分标志参数。
128.例如,若当前帧的至少一个频率区域的频率区域级别的音调成分标志参数不为s8,则当前帧的帧级别音调成分标志参数设为s3,否则为s7。其中,s3不等于s7,例如s3=1且s7=0,或s3=0且s7=1。
129.下面对音调成分编码的配置参数可能包括的具体参数进行举例。音调成分编码的配置参数例如可以包括:
130.a.音调成分编码的频率区域的数量参数,可记为num_tiles_recon。
131.b.使用相同子带宽度的标志参数,可记为flag_same_res。其中,使用相同子带宽度的标志参数用于表示不同频率区域是否使用相同的子带宽度。
132.c.各频率区域的音调成分编码的子带宽度参数,可记为tone_res[n1],其中n1为音调成分编码的频率区域的数量。
[0133]
下面对音调成分编码的配置参数的码流产生方式举例描述如下(以各频率区域使用相同的子带宽度为例,即使用相同子带宽度的标志参数flag_same_res为s1):
[0134]
extentelementconfiglength=1
[0135]
extentelementconfigpayload[0]=(num_tiles_recon-1)《《5
[0136]
flag_same_res=1
[0137]
extentelementconfigpayload[0]+=(flag_same_res)《《4
[0138]
tone_res_common=tone_res[0]
[0139]
extentelementconfigpayload[0]+=(tone_res_common/8-1)《《2
[0140]
其中,extentelementconfiglength表示音调成分编码的配置码流长度(字节数)。
[0141]
extentelementconfigpayload表示音调成分编码的配置码流数组,tone_res_
common表示各频率区域的共用子带宽度参数。
[0142]
例如,在配置码流产生方式中,音调成分编码的频率区域数量参数num_tiles_recon例如可以占用3bit或其他bit数,使用相同子带宽度的标志参数flag_same_res可占用1bit或其他bit数,共用子带宽度参数tone_res_common可占用2bit或其他bit数。
[0143]
下面对音调成分编码的编码码流参数可能包括的具体参数进行举例,音调成分编码的编码码流参数例如可以包括:
[0144]
a.帧级别音调成分标志参数,可记为tone_flag。
[0145]
b.各频率区域的频率区域级别音调成分标志参数,可记为tone_flag_tile。
[0146]
c.各频率区域的音调成分的位置数量参数,可记为tone_pos。
[0147]
d.各频率区域的音调成分的位置数量信息复用参数,可记为is_same_pos。
[0148]
e.各频率区域的音调成分的幅度或能量参数,可记为tone_val_q。
[0149]
f.各频率区域的噪声基底参数,可记为noise_floor。
[0150]
其中,音调成分编码的编码码流的一种可能的产生方式描述如下:
[0151]
若当前帧的帧级别音调成分标志参数tone_flag为s7,即当前帧不存在音调成分,则将当前帧的帧级别音调成分标志参数tone_flag写入码流,当前帧的音调成分编码的编码码流中不再写入其他参数。即,如果当前帧不存在音调成分(tone_flag等于s7),则当前帧的音调成分编码的编码码流中仅包含当前帧的帧级别音调成分标志参数tone_flag。
[0152]
若当前帧的帧级别音调成分标志参数tone_flag为s3,即当前帧存在音调成分,则将当前帧的帧级别音调成分标志参数tone_flag写入码流,而后将各频率区域的音调成分参数按顺序写入码流,所述频率区域的数量等于音调成分编码的频率区域的数量参数num_tiles_recon。
[0153]
对所述当前帧的至少一个频率区域中的当前频率区域,若当前频率区域的频率区域级别的音调成分标志参数tone_flag_tile[p](p为频率区域序号)为s8,即当前频率区域不存在音调成分,则将当前频率区域的频率区域级别的音调成分标志参数tone_flag_tile[p]写入码流,当前频率区域不再写入其他参数。若当前频率区域的频率区域级别的音调成分标志参数tone_flag_tile[p]为s4,即当前频率区域存在音调成分,则将当前频率区域的频率区域级别的音调成分标志参数tone_flag_tile[p]写入码流,而后将当前频率区域的其他参数(包括位置数量信息复用参数、位置数量参数、幅度或能量参数、噪声基底参数等)按顺序写入码流。
[0154]
位置数量信息复用参数和位置数量参数写入码流的方式为:若当前频率区域的位置数量信息复用参数is_same_pos[p](p为频率区域序号)为s6,即当前帧的当前频率区域不复用当前帧的前一帧的位置数量参数,则将位置数量信息复用参数is_same_pos[p]和位置数量参数tone_pos[p]写入码流;若当前频率区域的位置数量信息复用参数is_same_pos[p]为s5,即当前帧的当前频率区域复用前一帧的当前频率区域的位置数量参数,则只将位置数量信息复用参数is_same_pos[p]写入码流。
[0155]
幅度或能量参数写入码流的方式为:根据当前频率区域的音调成分的数量信息tone_cnt[p],将当前频率区域的各个音调成分的幅度或能量参数写入码流。
[0156]
噪声基底参数写入码流的方式为:将当前频率区域的噪声基底参数写入码流。
[0157]
其中,音调成分编码的编码码流一种可能产生方式可如以下伪代码所示:
[0158][0159][0160]
其中,bsputbit(m)表示向编码码流写入m个比特,num_subband表示所述频率区域中的子带数量,例如可由所述当前频率区域的宽度和音调成分编码的子带宽度参数确定。
[0161]
其中,tone_cnt[p]表示所述频率区域中的音调成分数量信息,例如可由音调成分位置数量参数获得。
[0162]
从上可知,本技术实施例方案中,音频编码器会确定进行音调成分编码的频率区域信息,并对频率区域信息对应的频率范围内的音调成分信息进行编码,使得音频解码器可根据接收的音调成分信息进行音频信号的解码,有利于更准确地恢复频率区域信息对应的频率范围内的音频信号中的音调成分,从而提高了解码音频信号的质量。
[0163]
参见图4-a,图4-a为本技术实施例提供的一种音频解码方法的流程示意图。一种音频解码方法可以包括:
[0164]
404.获取编码码流。
[0165]
其中,在获取编码码流前,可由音频解码器先获取配置码流。配置码流的获取可以每帧进行,或者对于多帧共用配置码流的情况,可每隔若干帧获取一次配置码流(配置码流的获取间隔可自适应调整),也可以只在音频解码器接收第一帧编码码流的时候获取一次配置码流。
[0166]
其中,音频解码器对配置码流进行码流解复用以得到解码器配置参数,解码器配置参数包括音调成分编码的配置参数,所述音调成分编码的配置参数可用于表示音调成分
编码的频率区域的数量和各频率区域的子带宽度等。音调成分编码的配置参数可用于进行音调成分的重建。
[0167]
其中,音调成分编码的配置参数例如可包括:
[0168]
a.音调成分编码的频率区域的数量参数,可记为num_tiles_recon;
[0169]
b.使用相同子带宽度的标志参数,可记为flag_same_res;其中,使用相同子带宽度的标志参数用于表示不同频率区域是否使用相同的子带宽度。
[0170]
c.各频率区域的音调成分编码的子带宽度参数,可记为tone_res[n1],其中n1为频率区域数量。
[0171]
举例来说,对配置码流进行解析的具体方式可描述为如下过程:
[0172]
获取音调成分编码的频率区域的数量参数,其中,例如音调成分编码的频率区域的数量参数占用3比特:
[0173]
num_tiles_recon=getbits(3)+1
[0174]
其中,getbits表示从码流中获取若干比特的过程。
[0175]
获取使用相同子带宽度的标志参数flag_same_res。例如使用相同子带宽度的标志参数占用1比特:
[0176]
flag_same_res=getbits(1)
[0177]
根据使用相同子带宽度的标志参数flag_same_res的取值,从配置码流中解析各频率区域的音调成分编码的子带宽度参数tone_res[n1],其中,例如每个频率区域的子带宽度参数占用2比特:
[0178][0179]
上述配置码流的解复用过程可以描述为:
[0180]
如果使用相同子带宽度的标志参数flag_same_res的值为s2,即音调成分编码的各个频率区域的子带宽度参数不完全相同,则根据音调成分编码的频率区域的数量参数num_tiles_recon,从配置码流中获取num_tiles_recon个频率区域的音调成分编码的子带宽度参数tone_res[n1]。
[0181]
若使用相同子带宽度的标志参数flag_same_res的值为s1,即各个频率区域的音调成分编码的子带宽度参数相同,则从配置码流中获取共用子带宽度参数tone_res_common,并将共用子带宽度参数tone_res_common赋值给各个频率区域的音调成分编码的
子带宽度参数tone_res[i],其中频率区域的数量等于音调成分编码的频率区域的数量参数num_tiles_recon。
[0182]
可以理解,上述举例的过程以音调成分编码的频率区域的数量参数占用3比特,使用相同子带宽度的标志参数占用1比特、每个频率区域的音调成分编码的子带宽度参数占用2比特为例的,对于其他比特数量的情况可以此类推。
[0183]
402.对编码码流进行码流解复用以获得音频信号的当前帧的第一编码参数;根据音调成分编码的配置参数对所述编码码流进行码流解复用,以获得当前帧的第二编码参数,所述当前帧的第二编码参数包括所述当前帧的音调成分参数。
[0184]
第一编码参数和第二编码参数的具体内容可以参考上述实施例举例的编码方法,此处不再赘述。
[0185]
其中,对所述编码码流进行码流解复用包括:根据所述音调成分编码的配置参数,对所述编码码流进行码流解复用,得到音频信号的当前帧的第二编码参数,所述第二编码参数包括当前帧的音调成分参数。
[0186]
其中,音调成分编码的编码参数例如可包括如下参数的一种或多种:
[0187]
a.帧级别音调成分标志参数,记为tone_flag;
[0188]
b.各频率区域的频率区域级别音调成分标志参数,记为tone_flag_tile;
[0189]
c.各频率区域的音调成分的位置数量参数,记为tone_pos;
[0190]
d.各频率区域的音调成分的位置数量信息复用参数,记为is_same_pos;
[0191]
e.各频率区域的音调成分的幅度或能量参数,记为tone_val_q;
[0192]
f.各频率区域的噪声基底参数,记为noise_floor;
[0193]
其中,对编码码流进行解析的方法可以描述为:从编码码流中获取当前帧的帧级别音调成分标志参数tone_flag,其中,若当前帧的帧级别音调成分标志参数为s7,则表明当前帧不存在音调成分,不需要从编码码流中获取其他编码参数;若当前帧的帧级别音调成分标志参数为s3,则表明当前帧存在音调成分,需要从编码码流中获取各频率区域的音调成分参数和噪声基底参数等,其中频率区域的数量等于音调成分编码的频率区域的数量参数num_tiles_recon。
[0194]
对所述当前帧的至少一个频率区域中的当前频率区域,从编码码流中获取当前频率区域的频率区域级别的音调成分标志参数tone_flag_tile[p](p为频率区域序号),若当前频率区域的频率区域级别的音调成分标志参数为s8,则表明当前频率区域不存在音调成分,不需要从编码码流中获取其他编码参数。此外,若当前频率区域的频率区域级别的音调成分标志参数为s4,则表明当前频率区域存在音调成分,需要从编码码流中获取当前频率区域的音调成分的位置数量信息复用参数、位置数量参数、幅度或能量参数以及当前频率区域的噪声基底参数。
[0195]
当前频率区域的位置数量信息复用参数和位置数量参数的获取方法为:从编码码流中获取当前频率区域的位置数量信息复用参数is_same_pos[p],若当前频率区域的位置数量信息复用参数为s6,则根据当前频率区域的音调成分的位置数量参数占用的比特数,从编码码流中获取当前频率区域的音调成分的位置数量参数tone_pos[p]。其中,所述当前频率区域的音调成分的位置数量参数占用的比特数由所述当前频率区域的宽度信息和当前频率区域的音调成分编码的子带宽度参数tone_res[p]确定。其中当前频率区域的宽度
信息由音调成分编码的频率区域的分布确定,音调成分编码的频率区域的分布由音调成分编码的频率区域的数量参数确定。若当前频率区域的位置数量信息复用参数为s5,则当前帧的当前频率区域的音调成分的位置数量参数等于当前帧的前一帧的当前频率区域的音调成分的位置数量参数。
[0196]
当前频率区域的音调成分的幅度或能量参数的获取方法可为:根据当前频率区域的音调成分的数量信息,从编码码流中获取当前频率区域的各个音调成分的幅度或能量参数。当前频率区域的音调成分的数量信息,可由当前频率区域的音调成分的位置数量参数获得。
[0197]
当前频率区域的噪声基底参数的获取方法例如可为:从编码码流中获取当前频率区域的噪声基底参数。
[0198]
其中,对编码码流进行解析的一种举例方法可描述为如下伪代码:
[0199][0200]
其中,tile_width为当前频率区域的宽度(即频点数量),tile[p]和tile[p+1]分别为第p个和第p+1个频率区域的起始频点序号。
[0201]
403.根据所述第一编码参数得到所述当前帧的第一高频带信号和所述当前帧的第一低频带信号。
[0202]
其中,所述第一高频带信号可包括:根据所述第一编码参数直接解码得到的解码高频带信号,和/或根据所述第一低频带信号进行频带扩展得到的扩展高频带信号。
[0203]
404.根据所述第二编码参数和所述音调成分编码的配置参数,获得所述当前帧的第二高频带信号,其中,所述第二高频带信号包括重建音调信号。
[0204]
其中,第二编码参数可包括;高频带信号的音调成分参数。其中,高频带信号的音调成分参数可包括各个频率区域的音调成分的位置数量参数、音调成分的幅度或能量参数及噪声基底参数。
[0205]
其中,根据所述第二编码参数得到所述当前帧的第二高频带信号,所述第二高频带信号包括重建音调信号,可包括:根据音调成分编码的频率区域的数量参数,确定音调成分编码的频率区域的分布;在音调成分编码的频率区域内,根据高频带信号的音调成分参数对音调成分进行重建。
[0206]
其中,根据音调成分编码的频率区域数量,确定音调成分编码的频率区域的边界具体例如包括:若音调成分编码的频率区域的数量小于或等于频带扩展信息对应的频带扩展的频率区域数量,则音调成分编码的频率区域的边界与频带扩展的频率区域边界相同。频率区域边界例如可以是频率区域的上限和/或频率区域的下限。
[0207]
具体的,若音调成分编码的频率区域数量大于所述频带扩展的频率区域数量,则音调成分编码的频率区域中,频率低于频带扩展频率上限的若干个频率区域,其边界与频带扩展的频率区域的边界相同,频率高于频带扩展频率上限的若干个频率区域,其边界可根据频带划分方式确定。
[0208]
其中,频率高于频带扩展频率上限的若干个频率区域,其边界根据频带划分方式确定的具体方式可以是:
[0209]
对于频率高于频带扩展频率上限的若干个频率区域中的某一频率区域,其频率下限等于与其相邻且频率较低的频率区域的频率上限,其频率上限根据子带划分方式确定。所述某一频率区域例如满足以下两个条件,其中,条件t1例如为所述频率区域的频率上限小于或等于采样频率的一半,条件t2例如为所述频率区域的宽度小于或等于某一预设值。其中,频率区域的宽度为所述频率区域的频率上限与频率下限之间的差值。
[0210]
举例来说,音调成分编码的第一频率范围的下限与进行频带扩展的第二频率范围的下限相同;当音调成分编码的频率区域数量小于或等于频带扩展的频率区域数量时,第一频率范围内的频率区域的分布与频带扩展的配置信息中指示的第二频率范围内的频率区域的分布相同,即第一频率范围内的频率区域的划分方式与第二频率范围内的频率区域的划分方式相同。当音调成分编码的频率区域数量大于频带扩展的频率区域数量时,第一频率范围的频率上限大于第二频率范围的频率上限,即第一频率范围覆盖且大于第二频率范围,第一频率范围与第二频率范围重合部分的频率区域的分布与第二频率范围内的频率区域的分布相同,即第一频率范围与第二频率范围重合部分的频率区域的划分方式与第二频率范围内的频率区域的划分方式相同,第一频率范围与第二频率范围的不重合部分内的频率区域的分布是根据预设方式确定的,即第一频率范围与第二频率范围的不重合部分内的频率区域是根据预设方式划分的。
[0211]
具体举例来说,解码端从配置码流中获取音调成分编码的频率区域数量参数num_tiles_recon。
[0212]
若num_tiles_recon大于进行频带扩展的频率区域数量,则获取新增频率区域的频率边界和以及和sfb的对应关系,具体方式同编码端,即在保证新增频率区域的宽度不超
过给定值的前提下,尽可能接近全带fs/2。
[0213]
新增频率区域的频率边界和频率区域边界的sfb序号的确定方式同编码端。频率区域划分表和频率区域-sfb对应表更新如下:
[0214]
tile[num_tiles_recon]=sfb_offset[sfbidx]
[0215]
tile_sfb_wrap[num_tiles_recon]=sfbidx
[0216]
其中,sfbidx表示新增频率区域的上边界对应的sfb序号,sfb_offset则表示sfb边界表格,其中,第i个sfb的下限是sfb_offset[i],上限是sfb_offset[i+1]。
[0217]
其中,根据高频带信号的音调成分信息对音调成分进行重建,具体可包括:根据所述当前频率区域的音调成分的位置数量参数,确定所述当前频率区域中音调成分的频率位置;根据所述当前频率区域的音调成分的幅度参数或能量参数,确定所述音调成分的频率位置对应的幅度或能量;根据所述当前频率区域中音调成分的频率位置和所述音调成分的频率位置对应的幅度或能量获得重建高频带信号。
[0218]
405.根据当前帧的第一低频带信号、第一高频带信号、第二高频带信号,得到所述当前帧的解码信号。
[0219]
具体的,将所述当前帧的第一低频带信号、第一高频带信号、第二高频带信号进行组合而得到所述当前帧的解码信号。组合方式可以是叠加或加权叠加等,参见图4-b,图4-b举例示出了第一低频带信号、第一高频带信号、第二高频带信号进行叠加组合而得到所述当前帧的解码信号的可能方式。
[0220]
本技术实施例举例的高频带音调成分编解码方案,确定需要进行音调成分检测编码的频率区域信息,并对频率区域信息对应的频率范围内的音调成分信息进行编码,使得音频解码器可以根据接收的音调成分信息进行音频信号的解码,有利于更准确地恢复频率区域信息对应的频率范围内的音频信号中的音调成分,从而提高了解码音频信号的质量。
[0221]
当频带扩展处理覆盖的频率范围可能未达到最大带宽,利用上述举例方案有利于编码频带扩展处理未覆盖的频带范围内的高频带的音调成分。当频带扩展处理覆盖的频率范围较大,没有足够的编码比特数再对频带扩展处理覆盖的频率范围所有音调成分信息进行编码时,可以选择性地编码部分频率范围内的音调成分信息。实验发现,在不同的条件下,均可获得最佳的编码质量。
[0222]
参见图5,本技术实施例还提供一种音频解码器500,包括:
[0223]
获取单元510,用于获取编码码流;
[0224]
解码单元520,用于对所述编码码流进行码流解复用,以获得音频信号的当前帧的第一编码参数;根据音调成分编码的配置参数对所述编码码流进行码流解复用,以获得音频信号的当前帧的第二编码参数,当前帧的第二编码参数包括所述当前帧的音调成分参数;根据所述第一编码参数获得所述当前帧的第一高频带信号和第一低频带信号;根据所述第二编码参数和所述音调成分编码的配置参数,获得所述当前帧的第二高频带信号;根据所述第一高频带信号、所述第二高频带信号和所述第一低频带信号,获得所述当前帧的解码信号。
[0225]
在一些可能实施方式中,所述获取单元510还用于:获取配置码流;解码单元520还用于对所述配置码流进行码流解复用以获得解码器配置参数,其中,所述解码器配置参数包括所述音调成分编码的配置参数,所述音调成分编码的配置参数用于表示音调成分编码
的频率区域的数量和各频率区域的子带宽度。
[0226]
在一些可能实施方式中,所述解码单元520对所述配置码流进行码流解复用以获得解码器配置参数,包括:从所述配置码流中获得音调成分编码的频率区域的数量参数和使用相同子带宽度的标志参数,其中,所述使用相同子带宽度的标志参数用于表示不同频率区域是否使用相同的子带宽度;根据所述音调成分编码的频率区域的数量参数和所述使用相同子带宽度的标志参数,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数。
[0227]
在一些可能实施方式中,所述解码单元520根据所述音调成分编码的频率区域的数量参数和所述使用相同子带宽度的标志参数,从所述配置码流中获得所述至少一个频率区域的音调成分编码的子带宽度参数,包括:
[0228]
在所述使用相同子带宽度的标志参数为设定值s1的情况下,从所述配置码流中获得共用子带宽度参数,所述至少一个频率区域的音调成分编码的子带宽度参数,等于所述共用子带宽度参数,或所述至少一个频率区域的音调成分编码的子带宽度参数,基于所述共用子带宽度参数变换得到;
[0229]
或者,
[0230]
在所述使用相同子带宽度的标志参数为设定值s2的情况下,从所述配置码流中获得至少一个频率区域的音调成分编码的子带宽度参数,其中,所述至少一个频率区域的音调成分编码的子带宽度参数的数量,等于所述音调成分编码的频率区域的数量参数所指示的所述音调成分编码的频率区域数量,或所述至少一个频率区域的音调成分编码的子带宽度参数的数量,基于所述音调成分编码的频率区域的数量参数变换得到。
[0231]
在一些可能实施方式中,当前帧的音调成分参数包括如下参数中的一种或多种:所述当前帧的帧级别音调成分标志参数、所述当前帧的至少一个频率区域的频率区域级别的音调成分标志参数、所述当前帧的至少一个频率区域的噪声基底参数、音调成分的位置数量信息复用参数、音调成分的位置数量参数、音调成分的幅度或能量参数。
[0232]
在一些可能实施方式中,音调成分编码的配置参数包括音调成分编码的频率区域的数量参数;解码单元520根据音调成分编码的配置参数对所述编码码流进行码流解复用,以获得音频信号的当前帧的第二编码参数,包括:从编码码流中获取所述当前帧的帧级别音调成分标志参数;
[0233]
在所述当前帧的帧级别音调成分标志参数为设定值s3的情况下,从所述编码码流中获得所述当前帧的n1个频率区域的音调成分参数,其中,所述n1等于所述当前帧音调成分编码的频率区域的数量参数所指示的所述当前帧音调成分编码的频率区域数量。
[0234]
在一些可能实施方式中,所述解码单元520从所述编码码流中获得所述当前帧的n1个频率区域的音调成分参数,包括:
[0235]
从编码码流中获取所述当前帧的n1个频率区域中当前频率区域的频率区域级别音调成分标志参数;
[0236]
在所述当前帧的当前频率区域的频率区域级别音调成分标志参数为设定值s4的情况下,从所述编码码流中获得如下音调成分参数中的一种或多种:所述当前帧的当前频率区域的噪声基底参数,音调成分的位置数量信息复用参数、音调成分的位置数量参数、音调成分的幅度或能量参数。
[0237]
在一些可能实施方式中,所述解码单元520从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量信息复用参数和音调成分的位置数量参数,包括:从编码码流中获得所述当前帧的当前频率区域的位置数量信息复用参数;
[0238]
在当前帧的当前频率区域的位置数量信息复用参数为设定值s5的情况下,所述当前帧的当前频率区域的音调成分的位置数量参数,等于所述当前帧的前一帧的当前频率区域的音调成分的位置数量参数;或所述当前帧的当前频率区域的音调成分的位置数量参数,基于所述当前帧的前一帧的当前频率区域的音调成分的位置数量参数变换得到;
[0239]
在所述当前帧的当前频率区域的位置数量信息复用参数为设定值s6的情况下,从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量参数。
[0240]
在一些可能实施方式中,所述解码单元520从所述编码码流中获得所述当前帧的当前频率区域的音调成分的位置数量参数,包括:
[0241]
根据所述当前帧的当前频率区域的宽度信息和音调成分编码的子带宽度参数,获得所述当前帧的当前频率区域的音调成分的位置数量参数占用的比特数;根据所述当前帧的当前频率区域的音调成分的位置数量参数占用的比特数,从所述编码码流中获得当前帧的当前频率区域的音调成分的位置数量参数。
[0242]
在一些可能实施方式之中,所述当前频率区域的宽度信息由音调成分编码的频率区域的分布确定,所述音调成分编码的频率区域的分布由所述音调成分编码的频率区域的数量参数确定。
[0243]
在一些可能实施方式中,所述解码单元520从所述编码码流中获得所述当前帧的至少一个频率区域的音调成分的幅度或能量参数,包括:
[0244]
若所述当前帧的当前频率区域的频率区域级别音调成分标志参数为设定值s4,根据所述当前帧的当前频率区域的音调成分的位置数量参数,从所述编码码流中获得所述当前帧的当前频率区域的音调成分的幅度或能量参数。
[0245]
可以理解,本实施例音频解码器500的各个功能模块的功能,例如可基于图4-a所对应方法实施例中的方法来具体实施。
[0246]
参见图6,本技术实施例还提供一种音频解码器600,可包括:包括处理器610,所述处理器和存储器620耦合,所述存储器620存储有程序,当所述存储器存储的程序指令被所述处理器执行时实现本技术实施例中的音频解码方法的部分或全部步骤。
[0247]
其中,处理器610还称中央处理单元(cpu,central processing unit)。具体的应用中音频解码器的各组件例如通过总线系统耦合在一起。总线系统除了可包括数据总线之外,还可包括电源总线、控制总线和状态信号总线等。上述本技术实施例揭示的方法可应用于处理器610中,或由处理器610实现。其中,处理器610可能是一种集成电路芯片,具有信号的处理能力。在一些实现过程中,上述方法的部分或全部步骤可通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。处理器610可以是通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。处理器610可实现或执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器610可为微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可直接体现为硬件译码处理器执行完成,或用译码处理器中的硬件及软件模块组合执行完成。
[0248]
软件模块可位于随机存储器,闪存、只读存储器,可编程只读存储器、电可擦写可编程存储器或寄存器等等本领域成熟的存储介质之中。该存储介质位于存储器620,例如处理器610可读取存储器620中的信息,结合其硬件完成上述方法的部分或全部步骤。
[0249]
本技术实施例还提供一种音频编码器,可包括处理器,所述处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述处理器执行时实现本技术实施例中的音频编方法的部分或全部步骤。
[0250]
参见图7,本技术实施例还提供一种通信系统,包括:
[0251]
音频编码器710和音频解码器720;所述音频解码器720为本技术实施例提供的任意一种音频解码器。
[0252]
参见图8,本技术实施例还提供一种网络设备800,包括处理器810和存储器820,所述处理器810与存储器820耦合,用于读取并执行所述存储器中存储的指令,实现本技术实施例中的音频编/解码方法的部分或全部步骤。
[0253]
所述网络设备800例如为芯片或片上系统。
[0254]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被硬件(如处理器)执行时能够完成本技术实施例中的音频编/解码方法的部分或全部步骤。
[0255]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被硬件(例如处理器等)执行,以实现本技术实施例中由任意设备执行的任意一种方法的部分或全部步骤。
[0256]
本技术实施例还提供了一种包括指令的计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得所述这个计算机设备执行本技术实施例中的任意一种音频编/解码方法的部分或者全部步骤。
[0257]
在上述实施例中,可全部或部分地通过软件、硬件、固件、或其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0258]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0259]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置,也可以通过其它的方式实现。例如以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一
种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可结合或者可以集成到另一个系统,或一些特征可以忽略或不执行。另一点,所显示或讨论的相互之间的间接耦合或者直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0260]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例的方案的目的。
[0261]
另外,在本技术各实施例中的各功能单元可集成在一个处理单元中,也可以是各单元单独物理存在,也可两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,或者也可以采用软件功能单元的形式实现。
[0262]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(例如可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质例如可包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或光盘等各种可存储程序代码的介质。