首页 > 乐器声学 专利正文
多声道音频信号的编解码方法和装置与流程

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

多声道音频信号的编解码方法和装置与流程

1.本技术涉及音频处理技术,尤其涉及一种多声道音频信号的编解码方法和装置。


背景技术:

2.多声道音频的编解码是对包含两个以上声道的音频进行编码或解码的技术。常见的多声道音频有5.1声道音频、7.1声道音频、7.1.4声道音频以及22.2声道音频等。
3.mpeg环绕声(mpeg surround,mps)标准规定了针对四个声道的联合编码,但仍需有可以针对上述各种多声道音频信号的编解码方法。


技术实现要素:

4.本技术提供一种多声道音频信号的编解码方法和装置,以减少声道信号之间的冗余,提升音频的编码效率。
5.第一方面,本技术提供一种多声道音频信号的编码方法,包括:获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取相关值集合,所述相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;从所述相关值集合中选取m个相关值,所述m个相关值均大于所述相关值集合中除所述m个相关值外的其他相关值,所述m个相关值均大于或等于组对阈值,m为小于或等于设定值的正整数;获取m个声道对集合,每个所述声道对集合至少包括所述m个相关值对应的m个声道对的其中之一,且当所述声道对集合包括两个以上声道对时,所述两个以上声道对不包含相同的声道信号;从所述m个声道对集合中确定目标声道对集合,所述目标声道对集合中的所有声道对的相关值之和是所述m个声道对集合中最大的;根据所述目标声道对集合对所述第一音频帧进行编码。
6.本实施例的第一音频帧可以是待编码的多声道音频信号中的任意一个帧,该第一音频帧包括了五个或五个以上的声道信号。将相关性越高的两个声道信号放在一起编码可以减少冗余,提升编码效率,因此本实施例在组对时,是依据两个声道信号之间的相关值来确定的。为了尽可能找寻相关性最高的声道对集合,可以计算第一音频帧中的至少五个声道信号中两两之间的相关值得到第一音频帧的相关值集合。例如五个声道信号一共可以组成10个声道对,相对应的,相关值集合中可以包括10个相关值。本实施例可以将相关值集合中包括的所有相关值按照从大到小的顺序排序,从中选取排在前面的前m个相关值,该m个相关值必须是大于或等于组对阈值的,这是因为小于组对阈值的相关值,表示其所对应的声道对中的两个声道信号之间的相关性较低,没有组对编码的必要。而为了提高编码效率,无需把所有大于或等于组对阈值的相关值全都选出来,因此设定了一个m的上限n,即最多选取n个相关值即可。
7.本实施例通过尽量多的获取多个声道对集合的相关值之和,进而将最大相关值之和对应的声道对集合确定为目标声道对集合,可以实现目标声道对集合所包含的所有声道
对的相关值之和最大,并尽可能增加组对的声道对的个数,减少声道信号之间的冗余,提升音频的编码效率。
8.在一种可能的实现方式中,所述m个声道对集合包括第一声道对集合,所述获取m个声道对集合获取所述第一声道对集合;所述获取所述第一声道对集合,包括:将所述m个声道对中的第一声道对加入所述第一声道对集合,所述第一声道对为所述m个声道对中的任意一个;当所述多个声道对中除关联声道对外的其他声道对中包括相关值大于所述组对阈值的声道对时,从所述其他声道对中选取相关值最大的一个声道对加入所述第一声道对集合,所述关联声道对包括已加入所述第一声道对集合的声道对所包括的声道信号中的任意一个。
9.将多个声道对中,相关值大小较大的多个声道对分别作为声道对集合中加入的第一个声道对,然后选取剩余声道对中最大相关值对应的声道对加入对应的声道对集合,通过尽量多的获取多个声道对集合的相关值之和,进而将最大相关值之和对应的声道对集合确定为目标声道对集合,可以实现目标声道对集合所包含的所有声道对的相关值之和最大,并尽可能增加组对的声道对的个数,减少声道信号之间的冗余,提升音频的编码效率。
10.在一种可能的实现方式中,所述从所述相关值集合中选取m个相关值,包括:从所述相关值集合中选取n个相关值,所述n个相关值均大于所述相关值集合中除所述n个相关值外的其他相关值,n为所述设定值;从所述n个相关值中选取大于或等于所述组对阈值的相关值,所述大于或等于所述组对阈值的相关值的个数为m。
11.m个相关值大于或等于组对阈值,m为小于或等于设定值(例如n)的正整数。本实施例可以将相关值集合中包括的所有相关值按照从大到小的顺序排序,从中选取排在前面的前n个相关值,该n个相关值可能存在小于组对阈值的相关值,因此从n个相关值中选取大于或等于组对阈值的m个相关值,这是因为小于组对阈值的相关值,表示其所对应的声道对中的两个声道信号之间的相关性较低,没有组对编码的必要。
12.在一种可能的实现方式中,所述相关值为经归一化处理的值。
13.归一化处理可以将取值范围差别较大的相关值纳入一个统一的范围内进行比较和处理,提高运算效率。
14.在一种可能的实现方式中,当所述一个声道对的相关值小于所述组对阈值时,所述一个声道对的相关值设置为0。
15.较小的相关值说明对应的两个声道信号之间的相关性较小,没有组对的必要,因此将这种情况的两个声道信号的相关值设置为0,便于后续计算,提高运算效率。
16.第二方面,本技术提供一种多声道音频信号的编码方法,包括:获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取相关值集合,所述相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;根据所述多个声道对获取多个声道对集合,当所述声道对集合包括两个以上声道对时,所述两个以上声道对不包含相同的声道信号;根据所述相关值集合获取所述多个声道对集合中每一个声道对集合包含的所有声道对的相关值之和;确定目标声道对集合,所述目标声道对集合中的所有声道对的相关值之和是所述多个声道对集合中最大的;根据所述目标声道对集合对所述第一音频帧进行编码。
17.通过尽可能多的获取多个声道对集合的相关值之和,进而将最大相关值之和对应的声道对集合确定为目标声道对集合,可以实现目标声道对集合所包含的所有声道对的相关值之和最大,并尽可能增加组对的声道对的个数,减少声道信号之间的冗余,提升音频的编码效率。
18.在一种可能的实现方式中,所述根据所述多个声道对获取多个声道对集合,包括:根据所述多个声道对中除非相关声道对外的其他声道对获取所述多个声道对集合,所述非相关声道对的相关值小于组对阈值。
19.较小的相关值说明对应的两个声道信号之间的相关性较小,没有组对的必要,因此将这种情况的两个声道信号的相关值及该两个声道信号的声道对删除,可以减少后续计算量,提高运算效率。
20.在一种可能的实现方式中,所述相关值为经归一化处理的值。
21.归一化处理可以将取值范围差别较大的相关值纳入一个统一的范围内进行比较和处理,提高运算效率。
22.在一种可能的实现方式中,当所述一个声道对的相关值小于组对阈值时,所述一个声道对的相关值设置为0。
23.较小的相关值说明对应的两个声道信号之间的相关性较小,没有组对的必要,因此将这种情况的两个声道信号的相关值设置为0,便于后续计算,提高运算效率。
24.第三方面,本技术提供一种多声道音频信号的编码方法,包括:获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取所述第一音频帧的相关值集合,所述第一音频帧的相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;获取第二音频帧的相关值集合,所述第二音频帧的相关值集合包括所述第二音频帧的多个声道对各自的相关值,一个声道对包括所述第二音频帧的至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性,所述第二音频帧是所述第一音频帧的上一帧;根据所述第一音频帧的相关值集合和所述第二音频帧的相关值集合判断是否需要重新获取所述第一音频帧的目标声道对集合;若需要重新获取所述第一音频帧的目标声道对集合,则采用如上述第一至二方面中任一项所述的方法获取所述第一音频帧的目标声道对集合,并根据所述目标声道对集合对所述第一音频帧进行编码;若不需要重新获取所述第一音频帧的目标声道对集合,则将所述第二音频帧的目标声道对集合确定为所述第一音频帧的目标声道对集合,并根据所述目标声道对集合对所述第一音频帧进行编码。
25.通过获取当前音频帧的相关值集合和上一音频帧的相关值集合的差值之和,从而确定是否需要重新获取当前帧的目标声道对集合,可以在音频变化较小的情况下,大大减少计算量,提高编码效率,而即使音频变化较大,需要重新获取目标声道对集合,仍可以尽可能多的获取多个声道对集合的相关值之和,进而将最大相关值之和对应的声道对集合确定为目标声道对集合,可以实现目标声道对集合所包含的所有声道对的相关值之和最大,并尽可能增加组对的声道对的个数,减少声道信号之间的冗余,提升音频的编码效率。
26.在一种可能的实现方式中,所述根据所述第一音频帧的相关值集合和所述第二音频帧的相关值集合判断是否需要重新获取所述第一音频帧的目标声道对集合,包括:计算
所述第一音频帧的相关值集合和所述第二音频帧的相关值集合中对应于同一声道对的相关值之差的绝对值;计算多个所述声道对分别对应的所述绝对值之和;当所述绝对值之和小于变更阈值时,确定不需要重新获取所述第一音频帧的目标声道对集合;当所述绝对值之和大于或等于所述变更阈值时,确定需要重新获取所述第一音频帧的目标声道对集合。变更阈值例如可以是α
×
声道对的个数,其中,α的取值可以是0.14或者0.15,声道对的个数是指第一音频帧的相关值集合(或者第二音频帧的相关值集合)中包括的声道对的个数。
27.第四方面,本技术提供一种多声道音频信号的编码方法,包括:获取待编码的第一音频帧,所述第一音频帧包括k个声道信号,k为大于或等于5的整数;当k大于声道信号数量阈值时,采用上述第一方面中任一项所述的方法对所述第一音频帧进行编码;当k小于或等于声道信号数量阈值时,采用上述第二方面中任一项所述的方法对所述第一音频帧进行编码。声道信号数量阈值例如可以是5、6或者7等。
28.与第一方面或第二方面的方法的区别在于,将第一方面和第二方面的方法进行融合,即根据第一音频帧包含的声道信号的个数来确定对第一音频帧采用哪一种方法获取其目标声道对集合。当第一音频帧包含的声道信号的个数较多时,如果采用第二方面的方法,需要穷举所有目标声道对集合,会增加计算量,因此此时采用第一方面的方法会减少很多的计算量。而当第一音频帧包含的声道信号的个数较少时,采用第二方面的方法可以获取到所有声道对集合的相关值之和,确保最终选取的目标声道对集合一定是最符合第一音频帧的特性的最优结果。
29.第五方面,本技术提供一种编码装置,包括:获取模块,用于获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取相关值集合,所述相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;从所述相关值集合中选取m个相关值,所述m个相关值均大于所述相关值集合中除所述m个相关值外的其他相关值,所述m个相关值均大于或等于组对阈值,m为小于或等于设定值的正整数;获取m个声道对集合,每个所述声道对集合至少包括所述m个相关值对应的m个声道对的其中之一,且当所述声道对集合包括两个以上声道对时,所述两个以上声道对不包含相同的声道信号;确定模块,用于从所述m个声道对集合中确定目标声道对集合,所述目标声道对集合中的所有声道对的相关值之和是所述m个声道对集合中最大的;编码模块,用于根据所述目标声道对集合对所述第一音频帧进行编码。
30.在一种可能的实现方式中,所述m个声道对集合包括第一声道对集合;所述获取模块,具体用于将所述m个声道对中的第一声道对加入所述第一声道对集合,所述第一声道对为所述m个声道对中的任意一个;当所述多个声道对中除关联声道对外的其他声道对中包括相关值大于所述组对阈值的声道对时,从所述其他声道对中选取相关值最大的一个声道对加入所述第一声道对集合,所述关联声道对包括已加入所述第一声道对集合的声道对所包括的声道信号中的任意一个。
31.在一种可能的实现方式中,所述获取模块,具体用于从所述相关值集合中选取n个相关值,所述n个相关值均大于所述相关值集合中除所述n个相关值外的其他相关值,n为所述设定值;从所述n个相关值中选取大于或等于所述组对阈值的相关值,所述大于或等于所述组对阈值的相关值的个数为m。
32.在一种可能的实现方式中,所述相关值为经归一化处理的值。
33.在一种可能的实现方式中,当所述一个声道对的相关值小于所述组对阈值时,所述一个声道对的相关值设置为0。
34.第六方面,本技术提供一种编码装置,包括:获取模块,用于获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取相关值集合,所述相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;根据所述多个声道对获取多个声道对集合,当所述声道对集合包括两个以上声道对时,所述两个以上声道对不包含相同的声道信号;根据所述相关值集合获取所述多个声道对集合中每一个声道对集合包含的所有声道对的相关值之和;确定模块,用于确定目标声道对集合,所述目标声道对集合中的所有声道对的相关值之和是所述多个声道对集合中最大的;编码模块,用于根据所述目标声道对集合对所述第一音频帧进行编码。
35.在一种可能的实现方式中,所述获取模块,具体用于根据所述多个声道对中除非相关声道对外的其他声道对获取所述多个声道对集合,所述非相关声道对的相关值小于组对阈值。
36.在一种可能的实现方式中,所述相关值为经归一化处理的值。
37.在一种可能的实现方式中,当所述一个声道对的相关值小于组对阈值时,所述一个声道对的相关值设置为0。
38.第七方面,本技术提供一种编码装置,包括:获取模块,用于获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取所述第一音频帧的相关值集合,所述第一音频帧的相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;获取第二音频帧的相关值集合,所述第二音频帧的相关值集合包括所述第二音频帧的多个声道对各自的相关值,一个声道对包括所述第二音频帧的至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性,所述第二音频帧是所述第一音频帧的上一帧;编码模块,用于根据所述第一音频帧的相关值集合和所述第二音频帧的相关值集合判断是否需要重新获取所述第一音频帧的目标声道对集合;若需要重新获取所述第一音频帧的目标声道对集合,则执行如权利要求1-9中任一项所述的方法获取所述第一音频帧的目标声道对集合,并根据所述目标声道对集合对所述第一音频帧进行编码;若不需要重新获取所述第一音频帧的目标声道对集合,则将所述第二音频帧的目标声道对集合确定为所述第一音频帧的目标声道对集合,并根据所述目标声道对集合对所述第一音频帧进行编码。
39.在一种可能的实现方式中,所述编码模块,具体用于计算所述第一音频帧的相关值集合和所述第二音频帧的相关值集合中对应于同一声道对的相关值之差的绝对值;计算多个所述声道对分别对应的所述绝对值之和;当所述绝对值之和小于变更阈值时,确定不需要重新获取所述第一音频帧的目标声道对集合;当所述绝对值之和大于或等于所述变更阈值时,确定需要重新获取所述第一音频帧的目标声道对集合。
40.第八方面,本技术提供一种编码装置,包括:获取模块,用于获取待编码的第一音频帧,所述第一音频帧包括k个声道信号,k为大于或等于5的整数;编码模块,用于当k大于
声道信号数量阈值时,执行如上述第一方面中任一项所述的方法对所述第一音频帧进行编码;当k小于或等于声道信号数量阈值时,执行如上述第二方面中任一项所述的方法对所述第一音频帧进行编码。
41.第九方面,本技术提供一种设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一至四方面中任一项所述的方法。
42.第十方面,本技术提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一至四方面中任一项所述的方法。
43.第十一方面,本技术提供一种计算机可读存储介质,其特征在于,包括根据如上述第一至四方面中任一项所述的多声道音频信号的编码方法获得的编码码流。
附图说明
44.图1示例性地给出了本技术所应用的音频译码系统10的示意性框图;
45.图2示例性地给出了本技术所应用的音频译码设备200的示意性框图;
46.图3是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图;
47.图4是本技术提供的多声道音频信号的编方法所应用的编码装置的一个示例性的结构图;
48.图5是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图;
49.图6是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图;
50.图7是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图;
51.图8是本技术提供的多声道音频信号的解码方法所应用的解码装置的一个示例性的结构图;
52.图9为本技术编码装置实施例的结构示意图;
53.图10为本技术设备实施例的结构示意图。
具体实施方式
54.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本技术保护的范围。
55.本技术的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
56.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
57.本技术涉及到的相关名词解释:
58.音频帧:音频数据是流式的,在实际应用中,为了便于音频处理和传输,通常取一时长内的音频数据量作为一帧音频,该时长被称为“采样时间”,可以根据编解码器和具体应用的需求确定其值,例如该时长为2.5ms~60ms,ms为毫秒。
59.音频信号:音频信号是带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波。音频通过模数转换或计算机生成的数字信号即为音频信号。声波有三个重要参数:频率、幅度和相位,这也就决定了音频信号的特征。
60.声道信号:是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号。因此声道数也就是声音录制时的音源数量或回放时的扬声器数量。
61.以下是本技术所应用的系统架构。
62.图1示例性地给出了本技术所应用的音频译码系统10的示意性框图。如图1所示,音频译码系统10可包括源设备12和目的设备14,源设备12产生经编码的码流,因此,源设备12可被称为音频编码装置。目的设备14可对由源设备12所产生的经编码的码流进行解码,因此,目的设备14可被称为音频解码装置。
63.源设备12包括编码器20,可选地,可包括音频源16、音频预处理器18、通信接口22。
64.音频源16可包括或可以为任意类型的用于捕获现实世界语音、音乐和音效等的音频捕获设备,和/或任意类型的音频生成设备,例如用于生成语音、音乐和音效的音频处理器或设备。所述音频源可以为存储上述音频的任意类型的内存或存储器。
65.音频预处理器18用于接收(原始)音频数据17,并对音频数据17进行预处理,得到预处理音频数据19。例如,音频预处理器18执行的预处理可包括修剪或去噪。可以理解的是,音频预处理单元18可以为可选组件。
66.编码器20用于接收预处理音频数据19并提供编码音频数据21。
67.源设备12中的通信接口22可用于接收编码音频数据21并通过通信信道13向目的设备14发送编码音频数据21,以便存储或直接重建。
68.目的设备14包括解码器30,可选地,可包括通信接口28、音频后处理器32和播放设备34。
69.目的设备14中的通信接口28用于直接从源设备12接收编码音频数据21,并将编码音频数据21提供给解码器30。
70.通信接口22和通信接口28可用于通过源设备12与目的设备14之间的直连通信链路,例如直接有线或无线连接等,或者通过任意类型的网络,例如有线网络、无线网络或其任意组合、任意类型的私网和公网或其任意类型的组合,发送或接收编码音频数据21。
71.例如,通信接口22可用于将编码音频数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理编码音频数据21,以便在通信链路或通信网络上进行传输。
72.通信接口28与通信接口22对应,例如,可用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装,对传输数据进行处理,得到编码音频数据21。
73.通信接口22和通信接口28均可配置为如图1中从源设备12指向目的设备14的对应通信信道13的箭头所指示的单向通信接口,或双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或编码音频数据等数据传输相关的任何其它信息,等等。
74.解码器30用于接收编码音频数据21并提供解码音频数据31。
75.音频后处理器32用于对解码音频数据31进行后处理,得到后处理后的后处理音频数据33。音频后处理器32执行的后处理可以包括例如修剪或重采样等。
76.播放设备34用于接收后处理音频数据33,以向用户或收听者播放音频。播放设备34可以为或包括任意类型的用于播放重建后音频的播放器,例如,集成或外部扬声器。例如,扬声器可包括喇叭、音响等。
77.图2示例性地给出了本技术所应用的音频译码设备200的示意性框图。在一个实施例中,音频译码设备200可以是音频解码器(例如图1的解码器30)或音频编码器(例如图1的编码器20)。
78.音频译码设备200包括:用于接收数据的入端口210和接收单元(rx)220,用于处理数据的处理器、逻辑单元或中央处理器230,用于传输数据的发射单元(tx)240和出端口250,以及,用于存储数据的存储器260。音频译码设备200还可以包括与入端口210、接收单元220、发射单元240和出端口250耦合的光电转换组件和电光(eo)组件,用于光信号或电信号的出口或入口。
79.处理器230通过硬件和软件实现。处理器230可以实现为一个或多个cpu芯片、核(例如,多核处理器)、fpga、asic和dsp。处理器230与入端口210、接收单元220、发射单元240、出端口250和存储器260通信。处理器230包括译码模块270(例如编码模块或解码模块)。译码模块270实现本技术中所公开的实施例,以实现本技术所提供的多声道音频信号的编解码方法。例如,译码模块270实现、处理或提供各种编码操作。因此,通过译码模块270为音频译码设备200的功能提供了实质性的改进,并影响了音频译码设备200到不同状态的转换。或者,以存储在存储器260中并由处理器230执行的指令来实现译码模块270。
80.存储器260包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择性地执行这些程序时存储程序,并存储在程序执行过程中读取的指令和数据。存储器260可以是易失性和/或非易失性的,可以是只读存储器(rom)、随机存取存储器(ram)、随机存取存储器(ternary content-addressable memory,tcam)和/或静态随机存取存储器(sram)。
81.基于上述实施例的描述,本技术提供了一种多声道音频信号的编解码方法。
82.图3是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图。该过程300可由音频译码系统10中的源设备12或音频译码设备200执行。过程300描述为一系列的步骤或操作,应当理解的是,过程300可以以各种顺序执行和/或同时发生,不限于
图3所示的执行顺序。如图3所示,该方法包括:
83.步骤301、获取待编码的第一音频帧。
84.本实施例的第一音频帧可以是待编码的多声道音频信号中的任意一个帧,该第一音频帧包括了五个或五个以上的声道信号。例如,5.1声道包括中央声道(c)、前置左声道(left,l)、前置右声道(right,r)、后置左环绕声道(left surround,ls)、后置右环绕声道(right surround,rs)以及0.1声道低频效果(low frequency effects,lfe)共六个声道信号。7.1声道包括c、l、r、ls、rs、lb、rb和lfe共八个声道信号,其中,lfe是从3-120hz的音频声道,该声道通常发送到专门为低音调而设计的扬声器。
85.步骤302、获取相关值集合。
86.相关值集合包括多个声道对各自的相关值,其中一个声道对包括至少五个声道信号中的两个声道信号,一个声道对的相关值用于表示该声道对的两个声道信号之间的相关性。可选的,多个声道对可以包括至少五个声道信号对应的所有声道对,或者,多个声道对也可以包括至少五个声道信号对应的部分声道对,对此不做具体限定。
87.将相关性越高的两个声道信号放在一起编码可以减少冗余,提升编码效率,因此本实施例在组对时,是依据两个声道信号之间的相关值来确定的。为了尽可能找寻相关性最高的声道对集合,可以先计算第一音频帧中的至少五个声道信号中两两之间的相关值得到第一音频帧的相关值集合。例如五个声道信号一共可以组成10个声道对,相对应的,相关值集合中可以包括10个相关值。
88.可选的,可以对相关值做归一化处理,这样所有声道对的相关值都限定在特定范围内,以便于设置相关值的统一判断标准,例如组对阈值,该组对阈值可以设置为大于或等于0.2、且小于或等于1的值,例如可以是0.3,0.4,或0.35等等,这样只要两个声道信号的归一化相关值小于组对阈值,就认为该两个声道信号的相关性较差,不需要组对编码。
89.在一种可能的实现方式中,可以采用以下公式计算两个声道信号(例如ch1和ch2)之间的相关值:
[0090][0091]
其中,corr_norm(ch1,ch2)表示声道信号ch1和声道信号ch2之间归一化的相关值,spec_ch1(i)表示声道信号ch1的第i个频点的频域系数,spec_ch2(i)是声道信号ch2的第i个频点的频域系数,n表示一个音频帧的总频点数。
[0092]
需要说明的是,还可以采用其他的算法或公式计算两个声道信号之间的相关值,本技术对此不做具体限定。
[0093]
步骤303、从相关值集合中选取m个相关值。
[0094]
该m个相关值均大于相关值集合中除该m个相关值外的其他相关值,该m个相关值均大于或等于组对阈值,m为小于或等于设定值(例如n)的正整数。本实施例可以将相关值集合中包括的所有相关值按照从大到小的顺序排序,从中选取排在前面的前m个相关值,该m个相关值必须是大于或等于组对阈值的,这是因为小于组对阈值的相关值,表示其所对应的声道对中的两个声道信号之间的相关性较低,没有组对编码的必要。而为了提高编码效
率,无需把所有大于或等于组对阈值的相关值全都选出来,因此设定了一个m的上限n,即最多选取n个相关值即可。
[0095]
n可以选取大于或等于2的整数,n的最大值也不能超过第一音频帧的所有声道信号对应的所有声道对的个数。n的值越大,伴随的计算量会增加,而n的值越小,可能会出现声道对集合丢失的情况,从而降低编码效率。
[0096]
可选的,可以将n设置为最大声道对数加一,即ch表示第一音频帧包含的声道信号的个数。例如,5.1声道包含五个声道信号(不考虑lfe声道),则n=3;7.1声道包含七个声道信号(不考虑lfe声道),则n=4。
[0097]
如果相关值集合中不包括大于或等于组对阈值的相关值,则不需要执行后续的步骤,对第一音频帧的各个声道信号分别进行单声道编码即可。如果从相关值集合中选出了m个相关值,则可以执行以下步骤。
[0098]
步骤304、获取m个声道对集合。
[0099]
每个声道对集合至少包括m个相关值对应的m个声道对的其中之一,且当声道对集合包括两个以上声道对时,两个以上声道对不包含相同的声道信号。例如,5.1声道,根据相关值集合选出来的最大相关值对应的3个声道对是(l,r)、(r,c)和(ls,rs),其中(ls,rs)的相关值小于组对阈值,因此排除,那么剩余的两个声道对(l,r)和(r,c)可以得到两个声道对集合,这两个声道对集合的其中一个包括(l,r),另一个包括(r,c)。
[0100]
以m个相关值对应的m个声道对中的任意一个(例如第一声道对)为例,本实施例获取m个声道对集合的方法可以包括:将第一声道对加入第一声道对集合,m个声道对集合包括该第一声道对集合该,当多个声道对中除关联声道对外的其他声道对中包括相关值大于组对阈值的声道对时,从其他声道对中选取相关值最大的一个声道对加入第一声道对集合,关联声道对包括已加入第一声道对集合的声道对所包括的声道信号中的任意一个。
[0101]
上述过程除将第一声道对加入第一声道对集合的步骤外,均为迭代处理步骤。即
[0102]
a、判断多个声道对中除关联声道对外的其他声道对中是否包括相关值大于组对阈值的声道对。
[0103]
b、若包括相关值大于组对阈值的声道对,则从其他声道对中选取相关值最大的一个声道对加入第一声道对集合。
[0104]
此时只要其他声道对中包括相关值大于组对阈值的声道对,就可以迭代执行上述步骤b。
[0105]
可选的,为了减少计算量,可以从相关值集合中将小于组对阈值的相关值删除,这样可以减少声道对的个数,进而减少迭代的次数。
[0106]
步骤305、从m个声道对集合中确定目标声道对集合。
[0107]
目标声道对集合中的所有声道对的相关值之和是m个声道对集合中最大的。得到上述m个声道对集合后,可以计算各个声道对集合中包含的所有声道对的相关值之和,最后将相关值之和之和最大的声道对集合确定为目标声道对集合。
[0108]
步骤306、根据目标声道对集合对第一音频帧进行编码。
[0109]
根据目标声道对集合对第一音频帧进行编码的过程可参考下文图4所示实施例,此处不再赘述。
[0110]
可选的,本实施例可以在获取在对第一音频帧编码之前,尤其是在对第一音频帧的至少五个声道信号进行立体声处理之前,先对第一音频帧中的至少五个声道信号分别进行能量均衡处理,得到至少五个均衡声道信号,再对该至少五个均衡声道信号进行立体声处理,此时编码的对象是与均衡声道信号相关的。
[0111]
能量均衡模式可以包括第一能量均衡模式和/或第二能量均衡模式,其中,第一能量均衡模式仅使用一个声道对中两个声道信号获取一个声道对对应的两个均衡声道信号。第二能量均衡模式使用一个声道对中两个声道信号以及一个声道对外至少一个声道信号来获取一个声道对对应的两个均衡声道信号。
[0112]
当能量均衡模式为第一能量均衡模式时,可以针对目标声道对集合中的当前声道对,计算当前声道对包含的两个声道信号的能量或幅度值的平均值,根据平均值分别对两个声道信号进行能量均衡处理以得到对应的两个均衡声道信号。这样当至少五个声道信号的波动区间值较大时,可以只在相关的两个声道信号之间进行能量均衡,使得立体声处理时对于比特的分配更符合声道信号的能量特性,避免在低码率的编码环境中能量大的声道对因比特不足导致编码噪声可能会远大于能量小的声道对的编码噪声,而能量小的声道对的比特会有冗余的问题。
[0113]
当能量均衡模式为第二能量均衡模式时,可以计算至少五个声道信号的能量或幅度值的平均值,根据平均值分别对至少五个声道信号进行能量均衡处理得到至少五个均衡声道信号。
[0114]
本实施例通过尽量多的获取多个声道对集合的相关值之和,进而将最大相关值之和对应的声道对集合确定为目标声道对集合,可以实现目标声道对集合所包含的所有声道对的相关值之和最大,并尽可能增加组对的声道对的个数,减少声道信号之间的冗余,提升音频的编码效率。
[0115]
以下通过两个具体的实施例对图3所示方法实施例中如何获取目标声道对集合的过程进行描述。
[0116]
图4是本技术提供的多声道音频信号的编码方法所应用的编码装置的一个示例性的结构图,该编码装置可以是音频译码系统10中的源设备12的编码器20,也可以是音频译码设备200中的译码模块270。该编码装置可以包括声道对集合生成模块、多声道处理模块、声道编码模块和码流复用接口,其中,
[0117]
声道对集合生成模块的输入是多声道音频的n个声道信号(ch1-chn),n是大于或等于5的整数,该n个声道信号均可以进行立体声处理的。声道对集合生成模块计算n个声道信号中任意两个声道信号之间的相关值,从而根据这些相关值采用图3所示实施例的方法得到目标声道对集合,例如,(ch1,ch2),(ch3,ch4),

,(chi-1,chi)。
[0118]
多声道处理模块包括多个立体声处理单元,立体声处理单元可以采用基于预测的或者基于karhunen-loeve变换(karhunen-loeve transform,klt)的处理,即输入的两个声道信号被旋转(例如经由2
×
2旋转矩阵)以最大化能量压缩,从而将信号能量集中于一个声道内。
[0119]
声道对集合生成模块输出的目标声道对集合中的各个声道对分别被输入一个立体声处理单元,例如,(ch1,ch2)输入立体声处理单元1,(ch3,ch4)输入立体声处理单元2,

,(chi-1,chi)输入立体声处理单元m。立体声处理单元对输入的两个声道信号处理后,
输出该两个声道信号对应的处理声道信号(p)以及多声道参数(side_pair),多声道参数包括声道对索引、能量均衡边信息、立体声处理边信息。例如,立体声处理单元1对ch1和ch2处理,得到p1和p2、以及side_pair1,立体声处理单元2对ch3和ch4处理,得到p3和p4、以及side_pair2,

,立体声处理单元m对chi-1和chi处理,得到pi-1和pi、以及side_pairm。
[0120]
声道编码模块使用单声道编码单元(或者单声道声道盒、单声道工具)对多声道处理模块输出的处理声道信号进行编码输出对应的编码声道信号(e)。单声道编码单元对声道信号编码过程中,对具有较高能量(或较高振幅)的声道信号分配较多的比特数,对具有较少能量(或较少振幅)的声道信号分配较少的比特数。可选的,声道编码模块也可以采用立体声编码单元,例如参数立体声编码器或损耗立体声编码器对多声道处理模块输出的处理声道信号进行编码。例如,p1、p2、p3、p4、

、pi1、pi分别通过一个单声道编码单元进行编码得到e1、e2、e3、e4、

、ei1、ei。
[0121]
需要说明的是,在声道对集合生成模块中未组对的声道信号(例如chj)不需要经过多声道处理模块中的立体声处理单元处理,可以直接输入声道编码模块中的一个单声道编码单元得到ej。
[0122]
码流复用接口产生编码多声道信号,该编码多声道信号包括声道编码模块输出的编码声道信号和多声道处理模块输出的多声道参数。例如,编码多声道信号包括e1、e2、e3、e4、

、ei1、ei,以及side_pair1,side_pair2,

,side_pairm。可选的,码流复用接口可以将编码多声道信号处理成串行信号或串行比特流。
[0123]
如上所述,本技术提供的获取目标声道对集合的处理流程,可以由图4所示的编码装置中的声道对集合生成模块实现。
[0124]
实施例一
[0125]
以5.1声道为例,该5.1声道包括中央声道(c)、前置左声道(left,l)、前置右声道(right,r)、后置左环绕声道(left surround,ls)、后置右环绕声道(right surround,rs)以及0.1声道低频效果(low frequency effects,lfe)。针对这几个声道,声道对集合生成模块可以使用多声道掩码去掉不需要经过多声道处理的声道,以提升编码效率,5.1声道中可以去掉lfe声道,因此输入声道对集合生成模块的声道信号包括c、l、r、ls和rs。获取目标声道对集合的方法可以包括以下步骤:
[0126]
(1)计算五个声道信号中任意两个之间的相关值。
[0127]
本技术可以采用以下公式计算两个声道信号(例如声道信号ch1和声道信号ch2)之间的相关值:
[0128][0129]
其中,corr_norm(ch1,ch2)表示声道信号ch1和声道信号ch2之间归一化的相关值,spec_ch1(i)表示声道信号ch1的第i个频点的频域系数,spec_ch2(i)是声道信号ch2的第i个频点的频域系数,n表示一个音频帧的总频点数。
[0130]
本实施例中5.1声道参与组对的声道信号有五个,因此得到的相关值集合可以最多包括个声道对的相关值。表1示出了5.1声道的相关值集合的一个示例。
[0131]
表1
[0132]
声道信号相关值rclsrsl0.360.470.390.27r 0.570.220.08c
ꢀꢀ
0.310.26ls
ꢀꢀꢀ
0.42
[0133]
组对阈值设置为0.3,只有相关值大于0.3的两个声道信号才可以组对,因此将表1中小于组对阈值的相关值删除,可以得到表1a,这样在迭代处理的过程中可以不考虑相关性较小的声道信号,进而减少计算量。
[0134]
表1a
[0135]
n设置为最大声道对数加一,即从表1a中选取n=3个最大的相关值,例如从大到小依次为0.57(r,c)、0.47(l,c)、0.42(ls,rs),这三个相关值均大于组对阈值0.3。
[0136]
(2)第一个迭代处理流程
[0137]
(r,c)是加入第一声道对集合的第一个声道对,从表1a中将包含了r和/或c的声道对的相关值删除,得到表1b。
[0138]
表1b
[0139][0140]
表1b中最大的相关值为0.42(ls,rs),因此将ls和rs组成第二个声道对加入第一声道对集合。此时五个声道信号只剩下一个声道信号l,无法继续组对,因此最终的第一声道对集合包括两个声道对(r,c)和(ls,rs)。
[0141]
计算第一声道对集合的相关值之和s(1)=0.57+0.42=0.99。
[0142]
(3)第二个迭代处理流程
[0143]
(l,c)是加入第二声道对集合的第一个声道对,从表1a中将包含了l和/或c的声道对的相关值删除,得到表1c。
[0144]
表1c
[0145][0146]
表1c中最大的相关值为0.42(ls,rs),因此将ls和rs组成第二个声道对加入第二声道对集合。此时五个声道信号只剩下一个声道信号r,无法继续组对,因此最终的第二声道对集合包括两个声道对(l,c)和(ls,rs)。
[0147]
计算第一声道对集合的相关值之和s(2)=0.47+0.42=0.89。
[0148]
(4)第三个迭代处理流程
[0149]
(ls,rs)是加入第三声道对集合的第一个声道对,从表1a中将包含了ls和/或rs的声道对的相关值删除,得到表1d。
[0150]
表1d
[0151][0152]
表1d中最大的相关值为0.57(r,c),因此将r和c组成第二个声道对加入第三声道对集合。此时五个声道信号只剩下一个声道信号l,无法继续组对,因此最终的第三声道对集合包括两个声道对(ls,rs)和(r,c)。
[0153]
计算第一声道对集合的相关值之和s(3)=0.42+0.57=0.99。
[0154]
(5)获取目标声道对集合
[0155]
s(1)、s(2)和s(3)中最大的是s(1)和s(3),其所对应的两个声道对集合包含的声道对是相同的,因此将s(1)(或s(3))对应的声道对集合作为目标声道对集合,即本实施例中5.1声道可以得到的声道对包括(l,c)和(ls,rs)。目标声道对集合可以用索引表示,可以对表1中的所有相关值对应的声道对设置索引值,当确定目标声道对集合后,可以将目标声道对集合中的声道对用对应的索引值表示,以节省码流中的比特数。
[0156]
实施例二
[0157]
以7.1声道为例,该7.1声道包括c、l、r、ls、rs,左后置声道(left back,lb)、右后置声道(right back,rb)以及lfe。针对这几个声道,声道对集合生成模块可以使用多声道掩码去掉不需要经过多声道处理的声道,以提升编码效率,7.1声道中可以去掉lfe声道,因此输入声道对集合生成模块的声道信号包括c、l、r、ls、rs、lb和rb。获取目标声道对集合的方法可以包括以下步骤:
[0158]
(1)计算七个声道信号中任意两个之间的相关值。
[0159]
本实施例也可以采用上述实施例一的公式计算两个声道信号之间的相关值。
[0160]
本实施例中7.1声道参与组对的声道信号有七个,因此得到的相关值集合可以最
多包括个声道对的相关值。表2示出了7.1声道的相关值集合的一个示例。
[0161]
表2
[0162]
声道信号相关值rclsrslbrbl0.360.470.390.270.430.24r 0.570.220.080.190.21c
ꢀꢀ
0.310.260.360.07ls
ꢀꢀꢀ
0.420.670.03rs
ꢀꢀꢀꢀ
0.640.07lb
ꢀꢀꢀꢀꢀ
0.19
[0163]
组对阈值设置为0.3,即只有相关值大于0.3的两个声道信号才可以组对,因此将表2中小于组对阈值的相关值删除,可以得到表2a,这样在迭代处理的过程中可以不考虑相关性较小的声道信号,进而减少计算量。
[0164]
表2a
[0165][0166]
n设置为最大声道对数加一,即从表2a中选取n=4个最大的相关值,例如从大到小依次为0.67(ls,lb)、0.64(rs,lb)、0.57(r,c)、0.47(l,c),这四个相关值均大于组对阈值0.3。
[0167]
(2)第一个迭代处理流程
[0168]
(ls,lb)是加入第一声道对集合的第一个声道对,从表2a中将包含了ls和/或lb的声道对的相关值删除,得到表2b。
[0169]
表2b
[0170][0171]
表2b中最大的相关值为0.57(r,c),因此将r和c组成第二个声道对加入第一声道对集合。从表2b中将包含了r和/或c的声道对的相关值删除,得到表2c。
[0172]
表2c
[0173][0174]
表2c中已无可用的相关值,因此最终的第一声道对集合包括两个声道对(ls,lb)和(r,c)。
[0175]
计算第一声道对集合的相关值之和s(1)=0.67+0.57=1.24。
[0176]
(3)第二个迭代处理流程
[0177]
(rs,lb)是加入第二声道对集合的第一个声道对,从表2a中将包含了rs和/或lb的声道对的相关值删除,得到表2d。
[0178]
表2d
[0179][0180]
表2d中最大的相关值为0.57(r,c),因此将r和c组成第二个声道对加入第二声道对集合。从表2d中将包含了r和/或c的声道对的相关值删除,得到表2e。
[0181]
表2e
[0182][0183]
表2e中最大的相关值为0.39(l,ls),因此将l和ls组成第三个声道对加入第二声道对集合。从表2e中将包含了l和/或ls的声道对的相关值删除,得到表2f。
[0184]
表2f
[0185][0186]
表2f中已无可用的相关值,因此最终的第一声道对集合包括三个声道对(rs,lb)、(r,c)和(l,ls)。
[0187]
计算第二声道对集合的相关值之和s(2)=0.64+0.57+0.39=1.6。
[0188]
(4)第三个迭代处理流程
[0189]
(r,c)是加入第三声道对集合的第一个声道对,从表2a中将包含了r和/或c的声道对的相关值删除,得到表2g。
[0190]
表2g
[0191][0192]
表2g中最大的相关值为0.67(ls,lb),因此将ls和lb组成第二个声道对加入第三声道对集合。从表2g中将包含了ls和/或lb的声道对的相关值删除,得到表2h。
[0193]
表2h
[0194][0195]
表2h中已无可用的相关值,因此最终的第一声道对集合包括两个声道对(r,c)和(ls,lb)。
[0196]
计算第二声道对集合的相关值之和s(3)=0.57+0.67=1.24。
[0197]
(5)第四个迭代处理流程
[0198]
(l,c)是加入第四声道对集合的第一个声道对,从表2a中将包含了l和/或c的声道
对的相关值删除,得到表2i。
[0199]
表2i
[0200][0201]
表2i中最大的相关值为0.67(ls,lb),因此将ls和lb组成第二个声道对加入第四声道对集合。从表2i中将包含了ls和/或lb的声道对的相关值删除,得到表2j。
[0202]
表2j
[0203][0204]
表2j中已无可用的相关值,因此最终的第一声道对集合包括两个声道对(l,c)和(ls,lb)。
[0205]
计算第二声道对集合的相关值之和s(4)=0.47+0.67=1.14。
[0206]
(6)获取目标声道对集合
[0207]
s(1)、s(2)、s(3)和s(4)中最大的是s(2),因此将s(2)对应的声道对集合作为目标声道对集合,即本实施例中7.1声道可以得到的声道对包括(rs,lb)、(r,c)和(l,ls)。
[0208]
实施例二相较于实施例一,多了一次迭代处理过程,目标声道对集合中包括的声道对的个数也多一个,这均与参与组对的声道信号的数量有关。
[0209]
图5是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图。该过程500可由音频译码系统10中的源设备12或音频译码设备200执行。过程500描述为一系列的步骤或操作,应当理解的是,过程500可以以各种顺序执行和/或同时发生,不限于图5所示的执行顺序。如图5所示,该方法包括:
[0210]
步骤501、获取待编码的第一音频帧。
[0211]
步骤502、获取相关值集合。
[0212]
本实施例的步骤501和502可参考上述步骤301和302,此处不再赘述。
[0213]
步骤503、根据多个声道对获取多个声道对集合。
[0214]
相关值集合包括了第一音频帧的至少五个声道信号的多个声道对的相关值,将该多个声道对进行有规则的组合(即同一声道对集合中的多个声道对之间不能包含相同的声
道信号),可以得到该至少五个声道信号对应的多个声道对集合。
[0215]
在一种可能的实现方式中,当声道信号的个数为奇数时,可以采用以下公式计算所有声道对集合的个数:
[0216][0217]
在一种可能的实现方式中,当声道信号的个数为偶数时,可以采用以下公式计算所有声道对集合的个数:
[0218][0219]
其中,pair_num表示所有声道对集合的个数,ch表示第一音频帧里参与多声道处理的声道信号的个数,是经过多声道掩码筛选后的结果。
[0220]
可选的,为了减少计算量,得到相关值集合之后,可以根据多个声道对中除非相关声道对外的其他声道对获取多个声道对集合,该非相关声道对的相关值小于组对阈值,这样在获取声道对集合时可以减少参与计算的声道对的个数,进而减少声道对集合的个数,在后续步骤也可以减少相关值之和的计算量。
[0221]
可选的,为了减少计算量,得到相关值集合之后,可以将与其他声道信号的相关值均小于组对阈值的声道信号删除,即这样的声道信号不考虑组对,在获取声道对集合时可以减少参与计算的声道对的个数,进而减少声道对集合的个数,在后续步骤也可以减少相关值之和的计算量。
[0222]
步骤504、根据相关值集合获取多个声道对集合中每一个声道对集合包含的所有声道对的相关值之和。
[0223]
针对每一个声道对集合,计算该声道对集合中包含的所有声道对的相关值之和。
[0224]
步骤505、确定目标声道对集合。
[0225]
步骤506、根据目标声道对集合对第一音频帧进行编码。
[0226]
本实施例的步骤505和506可参考上述步骤305和306,此处不再赘述。
[0227]
本实施例通过尽可能多的获取多个声道对集合的相关值之和,进而将最大相关值之和对应的声道对集合确定为目标声道对集合,可以实现目标声道对集合所包含的所有声道对的相关值之和最大,并尽可能增加组对的声道对的个数,减少声道信号之间的冗余,提升音频的编码效率。
[0228]
以下通过一个具体的实施例对图5所示方法实施例中如何获取目标声道对集合的过程进行描述。该过程仍然由图4所示的编码装置中的声道对集合生成模块实现。
[0229]
实施例三
[0230]
以5.1声道为例,该5.1声道包括c、l、r、ls、rs以及lfe。针对这几个声道,声道对集合生成模块可以使用多声道掩码去掉不需要经过多声道处理的声道,以提升编码效率,5.1声道中可以去掉lfe声道,因此输入声道对集合生成模块的声道信号包括c、l、r、ls和rs。获取目标声道对集合的方法可以包括以下步骤:
[0231]
(1)计算五个声道信号中任意两个之间的相关值。
[0232]
本实施例也可以采用上述实施例一的公式计算两个声道信号之间的相关值。
[0233]
本实施例中5.1声道参与组对的声道信号有五个,因此得到的相关值集合可以最多包括个声道对的相关值,如表1所示。
[0234]
(2)计算五个声道信号对应的所有声道对集合的相关值之和。
[0235]
如表1所示,五个声道信号可以得到10个相关值,相应的,也就可以得到10个声道对,进而该10个声道对可以得到最多个声道对集合。例如,{(l,r),(ls,rs)},{(l,r),(c,rs)},{(l,r),(ls,c)},
……

[0236]
针对声道对集合s(i),计算s(i)中包括的所有声道对的相关值之和,1≤i≤15。例如,s(1)=corr(l,r)+corr(ls,rs),s(2)=corr(l,r)+corr(c,rs),s(3)=corr(l,r)+corr(ls,c),
……

[0237]
可选的,当计算相关值之和时,若某一声道对的相关值小于组对阈值,可以将该声道对的相关值设置为0。
[0238]
可选的,为了减少计算量,在获取声道对集合之前,可以将相关值小于组对阈值的声道对排除掉,这样在获取声道对集合时可以减少声道对的数量,进而减少声道对集合的数量。
[0239]
图6是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图。该过程600可由音频译码系统10中的源设备12或音频译码设备200执行。过程600描述为一系列的步骤或操作,应当理解的是,过程600可以以各种顺序执行和/或同时发生,不限于图6所示的执行顺序。如图6所示,该方法包括:
[0240]
步骤601、获取待编码的第一音频帧。
[0241]
步骤601可参考上述步骤301,此处不再赘述。
[0242]
步骤602、获取第一音频帧的相关值集合。
[0243]
第一音频帧的相关值集合包括多个声道对各自的相关值,一个声道对包括至少五个声道信号中的两个声道信号,一个声道对的相关值用于表示一个声道对的两个声道信号之间的相关性。
[0244]
步骤603、获取第二音频帧的相关值集合。
[0245]
第二音频帧的相关值集合包括第二音频帧的多个声道对各自的相关值,一个声道对包括第二音频帧的至少五个声道信号中的两个声道信号,一个声道对的相关值用于表示一个声道对的两个声道信号之间的相关性,第二音频帧是第一音频帧的上一帧。
[0246]
本实施例与上述步骤302的区别在于,本实施例除了获取第一音频帧的相关值集合,还需要获取第一音频帧的上一帧(即第二音频帧)的相关值集合。
[0247]
获取第一音频帧的相关值集合的方法可参考上述步骤302,此处不再赘述。
[0248]
由于第二音频帧的编码在第一音频帧的编码之前,因此当处理到第一音频帧时,编码装置已经获取了对第二音频帧编码时的相关信息,包括第二音频帧的相关值集合,因此本实施例获取第二音频帧的相关值集合可以是直接从缓存或内存中读取即可,不需要再次计算获取第二音频帧的相关值集合。
[0249]
步骤604、根据第一音频帧的相关值集合和第二音频帧的相关值集合判断是否需要重新获取第一音频帧的目标声道对集合。
[0250]
本实施例可以通过计算第一音频帧的相关值集合和第二音频帧的相关值集合的
差值之和作为判断依据,即计算第一音频帧的相关值集合和第二音频帧的相关值集合中对应于同一声道对的相关值之差的绝对值,计算多个声道对分别对应的绝对值之和。当绝对值之和小于变更阈值时,确定不需要重新获取第一音频帧的目标声道对集合;当绝对值之和大于或等于变更阈值时,确定需要重新获取第一音频帧的目标声道对集合。
[0251]
对应于相同的声道对,分别计算其相关值差值,然后计算所有声道对的差值的绝对值之和,这样可以得到第一音频帧相对于第二音频帧,各声道信号之间的相关值的变化是否超过了变更阈值,如果没有超过,说明第二音频帧到第一音频帧的变化不大,可以不需要对第一音频帧重新组建目标声道对集合,减少了计算量,提高编码效率;如果超过,说明第二音频帧到第一音频帧的变化较大,需要重新获取第一音频帧的目标声道对集合。
[0252]
步骤605、若需要重新获取第一音频帧的目标声道对集合,则采用图3或图5所示实施例的方法获取第一音频帧的目标声道对集合,并根据目标声道对集合对第一音频帧进行编码。
[0253]
本实施例在确定需要重新获取第一音频帧的目标声道对集合,可以采用图3或图5所示实施例中的方法获取第一音频帧的相关值集合,此处不再赘述。
[0254]
步骤606、若不需要重新获取第一音频帧的目标声道对集合,则将第二音频帧的目标声道对集合确定为第一音频帧的目标声道对集合,并根据目标声道对集合对第一音频帧进行编码。
[0255]
本实施例在确定不需要重新获取第一音频帧的目标声道对集合,可以直接将第二音频帧的目标声道对集合作为第一音频帧的目标声道对集合,从而减少计算量,提高编码效率。
[0256]
本实施例通过获取当前音频帧的相关值集合和上一音频帧的相关值集合的差值之和,从而确定是否需要重新获取当前帧的目标声道对集合,可以在音频变化较小的情况下,大大减少计算量,提高编码效率,而即使音频变化较大,需要重新获取目标声道对集合,仍可以尽可能多的获取多个声道对集合的相关值之和,进而将最大相关值之和对应的声道对集合确定为目标声道对集合,可以实现目标声道对集合所包含的所有声道对的相关值之和最大,并尽可能增加组对的声道对的个数,减少声道信号之间的冗余,提升音频的编码效率。
[0257]
以下通过一个具体的实施例对图6所示方法实施例中如何获取目标声道对集合的过程进行描述。该过程仍然由图4所示的编码装置中的声道对集合生成模块实现。
[0258]
实施例四
[0259]
以5.1声道为例,该5.1声道包括c、l、r、ls、rs以及lfe。针对这几个声道,声道对集合生成模块可以使用多声道掩码去掉不需要经过多声道处理的声道,以提升编码效率,5.1声道中可以去掉lfe声道,因此输入声道对集合生成模块的声道信号包括c、l、r、ls和rs。获取目标声道对集合的方法可以包括以下步骤:
[0260]
(1)计算五个声道信号中任意两个之间的相关值。
[0261]
本实施例也可以采用上述实施例一的公式计算两个声道信号之间的相关值。
[0262]
本实施例中5.1声道参与组对的声道信号有五个,因此得到的相关值集合可以最多包括个声道对的相关值,如表1所示。
[0263]
(2)计算第一音频帧的相关值集合和第二音频帧的相关值集合的差值之和。
[0264]
本实施例将第一音频帧的相关值集合和第二音频帧的相关值集合均以矩阵的方式表示,分别得到矩阵matrix1和matrix2,矩阵中的每个元素的取值对应相关值集合中的一个相关值,可以通过以下公式计算差值之和:
[0265][0266]
其中,d表示第一音频帧的相关值集合和第二音频帧的相关值集合的差值之和,matrix1(i)表示第一音频帧的相关值集合对应的矩阵中的第i个元素值,matrix2(i)表示第二音频帧的相关值集合对应的矩阵中的第i个元素值。
[0267]
(3)根据相关值之和d确定是否需要重新获取第一音频帧的目标声道对集合。
[0268]
本实施例设置一个变更阈值,通过该阈值界定是否需要重新获取第一音频帧的目标声道对集合。可选的,本实施例还可以设置一个标识keepflag,当keepflag=1时,表示第一音频帧可以保留上一帧的目标声道对集合,即不需要重新获取第一音频帧的目标声道对集合;当keepflag=0时,表示第一音频帧不能保留上一帧的目标声道对集合,即需要重新获取第一音频帧的目标声道对集合。
[0269]
基于上述设置,当d<变更阈值时,keepflag=1;当d≥变更阈值时,keepflag=0。
[0270]
(4)获取第一音频帧的目标声道对集合
[0271]
根据上述标识keepflag的取值,编码装置可以获取第一音频帧的目标声道对集合,即当keepflag=1时,编码装置直接将第二音频帧的目标声道对集合作为第一音频帧的目标声道对集合;当keepflag=0时,编码装置可以采用图3或图5所示实施例的方法获取第一音频帧的目标声道对集合,此处不再赘述。
[0272]
图7是本技术提供的多声道音频信号的编码方法的一个示例性的实施例的流程图。该过程700可由音频译码系统10中的源设备12或音频译码设备200执行。过程700描述为一系列的步骤或操作,应当理解的是,过程700可以以各种顺序执行和/或同时发生,不限于图7所示的执行顺序。如图7所示,该方法包括:
[0273]
步骤701、获取待编码的第一音频帧,第一音频帧包括k个声道信号。
[0274]
步骤701可参考上述步骤301,此处不再赘述。
[0275]
步骤702、当k大于声道信号数量阈值时,采用图3所示实施例的方法对第一音频帧进行编码。
[0276]
步骤703、当k小于或等于声道信号数量阈值时,采用图5所示实施例的方法对第一音频帧进行编码。
[0277]
本实施例与上述图3或图5所示实施例的区别在于,本实施例将图3和图5的方法进行融合,即根据第一音频帧包含的声道信号的个数来确定对第一音频帧采用哪一种方法获取其目标声道对集合。当第一音频帧包含的声道信号的个数较多时,如果采用第二方面的方法,需要穷举所有目标声道对集合,会增加计算量,因此此时采用第一方面的方法会减少很多的计算量。而当第一音频帧包含的声道信号的个数较少时,采用第二方面的方法可以获取到所有声道对集合的相关值之和,确保最终选取的目标声道对集合一定是最符合第一音频帧的特性的最优结果。
[0278]
图8是本技术提供的多声道音频信号的解码方法所应用的解码装置的一个示例性的结构图,该解码装置可以是音频译码系统10中的目的设备14的解码器30,也可以是音频译码设备200中的译码模块270。该解码装置可以包括码流解复用接口、声道解码模块和多声道处理模块,其中,
[0279]
码流解复用接口接收来自编码装置的编码多声道信号(例如串行比特流bitstream),解复用后得到编码声道信号(e)和多声道参数(side_pair)。例如,e1、e2、e3、e4、

、ei1、ei,以及side_pair1,side_pair2,

,side_pairm。
[0280]
声道解码模块使用单声道解码单元(或者单声道声道盒、单声道工具)对码流解复用接口输出的编码声道信号进行解码输出解码声道信号(d)。例如,e1、e2、e3、e4、

、ei1、ei分别通过一个单声道解码单元进行解码得到e1解码得d1、d2、d3、d4、

、di1、di。
[0281]
多声道处理模块包括多个立体声处理单元,立体声处理单元可以采用基于预测的或者基于klt的处理,即输入的两个声道信号被反旋转(例如经由2
×
2旋转矩阵),从而将信号变换到原始信号方向。
[0282]
声道解码模块输出的解码声道信号藉由多声道参数可以识别哪两个解码声道信号组对,将组对的解码声道信号输入立体声处理单元,立体声处理单元对输入的两个解码声道信号处理后,输出该两个解码声道信号对应的声道信号(ch)。例如,立体声处理单元1根据side_pair1对d1和d2处理,得到ch1和ch2,立体声处理单元2根据side_pair2对d3和d4处理,得到ch3和ch4,

,立体声处理单元m根据side_pairm对di-1和di处理,得到chi-1和chi。
[0283]
需要说明的是,针对未组对的声道信号(例如chj)不需要经过多声道处理模块中的立体声处理单元处理,可以解码后直接输出。
[0284]
图9为本技术编码装置实施例的结构示意图,如图9所示,该装置可以应用于上述实施例中的源设备12或音频译码设备200。本实施例的编码装置可以包括:获取模块901、编码模块902和确定模块903。
[0285]
在一种可能的实现方式中,获取模块901,用于获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取相关值集合,所述相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;从所述相关值集合中选取m个相关值,所述m个相关值均大于所述相关值集合中除所述m个相关值外的其他相关值,所述m个相关值均大于或等于组对阈值,m为小于或等于设定值的正整数;获取m个声道对集合,每个所述声道对集合至少包括所述m个相关值对应的m个声道对的其中之一,且当所述声道对集合包括两个以上声道对时,所述两个以上声道对不包含相同的声道信号;确定模块903,用于从所述m个声道对集合中确定目标声道对集合,所述目标声道对集合中的所有声道对的相关值之和是所述m个声道对集合中最大的;编码模块902,用于根据所述目标声道对集合对所述第一音频帧进行编码。
[0286]
在一种可能的实现方式中,所述m个声道对集合包括第一声道对集合;所述获取模块901,具体用于将所述m个声道对中的第一声道对加入所述第一声道对集合,所述第一声道对为所述m个声道对中的任意一个;当所述多个声道对中除关联声道对外的其他声道对中包括相关值大于所述组对阈值的声道对时,从所述其他声道对中选取相关值最大的一个
声道对加入所述第一声道对集合,所述关联声道对包括已加入所述第一声道对集合的声道对所包括的声道信号中的任意一个。
[0287]
在一种可能的实现方式中,所述获取模块901,具体用于从所述相关值集合中选取n个相关值,所述n个相关值均大于所述相关值集合中除所述n个相关值外的其他相关值,n为所述设定值;从所述n个相关值中选取大于或等于所述组对阈值的相关值,所述大于或等于所述组对阈值的相关值的个数为m。
[0288]
在一种可能的实现方式中,所述相关值为经归一化处理的值。
[0289]
在一种可能的实现方式中,当所述一个声道对的相关值小于所述组对阈值时,所述一个声道对的相关值设置为0。
[0290]
在一种可能的实现方式中,获取模块901,用于获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取相关值集合,所述相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;根据所述多个声道对获取多个声道对集合,当所述声道对集合包括两个以上声道对时,所述两个以上声道对不包含相同的声道信号;根据所述相关值集合获取所述多个声道对集合中每一个声道对集合包含的所有声道对的相关值之和;确定模块903,用于确定目标声道对集合,所述目标声道对集合中的所有声道对的相关值之和是所述多个声道对集合中最大的;编码模块902,用于根据所述目标声道对集合对所述第一音频帧进行编码。
[0291]
在一种可能的实现方式中,所述获取模块901,具体用于根据所述多个声道对中除非相关声道对外的其他声道对获取所述多个声道对集合,所述非相关声道对的相关值小于组对阈值。
[0292]
在一种可能的实现方式中,获取模块901,用于获取待编码的第一音频帧,所述第一音频帧包括至少五个声道信号;获取所述第一音频帧的相关值集合,所述第一音频帧的相关值集合包括多个声道对各自的相关值,一个声道对包括所述至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性;获取第二音频帧的相关值集合,所述第二音频帧的相关值集合包括所述第二音频帧的多个声道对各自的相关值,一个声道对包括所述第二音频帧的至少五个声道信号中的两个声道信号,所述一个声道对的相关值用于表示所述一个声道对的两个声道信号之间的相关性,所述第二音频帧是所述第一音频帧的上一帧;编码模块902,用于根据所述第一音频帧的相关值集合和所述第二音频帧的相关值集合判断是否需要重新获取所述第一音频帧的目标声道对集合;若需要重新获取所述第一音频帧的目标声道对集合,则执行图3或图5所示实施例的方法获取所述第一音频帧的目标声道对集合,并根据所述目标声道对集合对所述第一音频帧进行编码;若不需要重新获取所述第一音频帧的目标声道对集合,则将所述第二音频帧的目标声道对集合确定为所述第一音频帧的目标声道对集合,并根据所述目标声道对集合对所述第一音频帧进行编码。
[0293]
在一种可能的实现方式中,所述编码模块902,具体用于计算所述第一音频帧的相关值集合和所述第二音频帧的相关值集合中对应于同一声道对的相关值之差的绝对值;计算多个所述声道对分别对应的所述绝对值之和;当所述绝对值之和小于变更阈值时,确定不需要重新获取所述第一音频帧的目标声道对集合;当所述绝对值之和大于或等于所述变
更阈值时,确定需要重新获取所述第一音频帧的目标声道对集合。
[0294]
在一种可能的实现方式中,获取模块,用于获取待编码的第一音频帧,所述第一音频帧包括k个声道信号,k为大于或等于5的整数;编码模块,用于当k大于声道信号数量阈值时,执行图3所示实施例的方法对所述第一音频帧进行编码;当k小于或等于声道信号数量阈值时,执行图5所示实施例的方法对所述第一音频帧进行编码。
[0295]
本实施例的装置,可以用于执行图3、图5、图6或图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0296]
图10为本技术设备实施例的结构示意图,如图10所示,该设备可以是上述实施例中的编码设备。本实施例的设备可以包括:处理器1001和存储器1002,存储器1002,用于存储一个或多个程序;当所述一个或多个程序被所述处理器1001执行,使得所述处理器1001实现如图3、图5、图6或图7所示方法实施例的技术方案。
[0297]
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signal processor,dsp)、特定应用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本技术公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0298]
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0299]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0300]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、
装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0301]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0302]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0303]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0304]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0305]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。