一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-02-20 19:50:28 来源:中国专利 TAG:


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


背景技术:

2.随着多媒体技术的不断发展,音频在多媒体通信、消费电子、虚拟现实、人机交互等领域得到了广泛应用。音频编码是多媒体技术的关键技术之一。音频编码通过去除原始音频信号中的冗余信息来实现数据量的压缩,以方便存储或传输。
3.多声道音频编码是两个以上声道的编码,常见的有5.1声道、7.1声道、7.1.4声道、22.2声道等。通过对多路原始音频信号进行多声道信号的筛选、组对、立体声处理、多声道边信息生成、量化处理、熵编码处理以及码流复用,形成串行比特流(编码码流),以方便在信道中传输或在数字媒介中存储。其中,由于多声道声道间能量差异较大,所以在进行立体声处理之前需要对多声道进行能量均衡,以增加立体声处理的收益,从而提升编码效率。
4.对于能量均衡,通常采用对所有声道的能量取均值的方式。这种方式会影响编码后的音频信号的质量。例如,对于声道间能量差异较大的情况,上述能量均衡方法会造成能量/幅度大的声道帧的编码比特不够质量变差,能量小的声道帧的编码比特冗余浪费资源。在低码率情况下,总可用比特紧张导致能量/幅度大的声道帧的质量下降明显。


技术实现要素:

5.本技术提供一种多声道音频信号编码方法和装置,有益于提升编码音频信号的质量。
6.第一方面,本技术实施例提供一种多声道音频信号编码方法,该方法可以包括:获取多声道音频信号的当前帧的p个声道的音频信号,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号,k为正整数。获取p个声道的音频信号各自的能量/幅度。根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定该k个声道对各自的比特数。根据该k个声道对各自的比特数,对该p个声道的音频信号进行编码,以获取编码码流。
7.其中,该p个声道中的一个声道的音频信号的能量/幅度包括该一个声道的音频信号在时域的能量/幅度、该一个声道的音频信号经时频变换后的能量/幅度、该一个声道的音频信号经时频变换以及白化后的能量/幅度、该一个声道的音频信号经能量/幅度均衡后的能量/幅度、或该一个声道的音频信号经立体声处理后的能量/幅度中至少一项。
8.本实现方式,通过根据p个声道的音频信号各自在时域的能量/幅度、经时频变换以及白化后的能量/幅度、经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中至少一项进行针对声道对的比特分配,确定k个声道对各自的比特数,从而实现合理分配多声道信号编码中各个声道对的比特数,以保证解码端重建音频信号的质量。
9.一种可能的设计中,该k个声道对包括当前声道对,该方法还可以包括:对该k个声道对中的当前声道对的两个声道的音频信号进行能量/幅度均衡,以获取当前声道对的两个声道的音频信号各自经能量/幅度均衡后的能量/幅度。
10.本实现方式,通过对单个声道对内的两个声道的音频信号进行能量/幅度均衡,以实现对于能量/幅度差异较大的声道对间,经过能量/幅度均衡后,仍可以保持较大的能量/幅度差异,从而使得基于能量/幅度均衡后的能量/幅度进行比特分配时,可以给能量/幅度较大的声道对分配更多的比特,以保证能量/幅度较大的声道对的编码比特满足其编码需求,进而提升解码端重建音频信号的质量。
11.一种可能的设计中,k个声道对包括当前声道对,根据该k个声道对各自的比特数,对该p个声道的音频信号进行编码,可以包括:根据该当前声道对的比特数以及该当前声道对中两个声道的音频信号各自的经立体声处理后的能量/幅度,确定该当前声道对中两个声道各自的比特数。根据该当前声道对中两个声道各自的比特数分别对该两个声道的音频信号进行编码。
12.本实现方式,在获取k个声道对各自的比特数之后,可以基于k个声道对各自的比特数进行声道对内的比特分配,从而实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。
13.一种可能的设计中,根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定所述k个声道对各自的比特数,可以包括:根据该p个声道的音频信号各自的能量/幅度,确定该当前帧的能量/幅度和。根据该k个声道对的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该k个声道对各自的比特系数。根据该k个声道对各自的比特系数和该可用比特数,确定该k个声道对各自的比特数。
14.一种可能的设计中,根据该p个声道的音频信号各自的能量/幅度,确定该当前帧的能量/幅度和,可以包括:根据该p个声道的音频信号各自的经立体声处理后的能量/幅度,确定该当前帧的能量/幅度和。
15.本实现方式,可以通过对单个声道对内的两个声道进行能量/幅度均衡,以实现对于能量/幅度差异较大的声道对间,经过能量/幅度均衡后,仍可以保持较大的能量/幅度差异,从而使得基于能量/幅度均衡后的能量/幅度进行比特分配时,可以给能量/幅度较大的声道对分配更多的比特,以保证能量/幅度较大的声道对的编码比特满足其编码需求,进而提升解码端重建音频信号的质量。
16.一种可能的设计中,根据该p个声道的音频信号各自的经立体声处理后的能量/幅度,确定该当前帧的能量/幅度和,可以包括:根据公式计算该当前帧的能量/幅度和sum_e
post

17.其中,
18.其中,ch表示声道索引,e
post
(ch)表示声道索引为ch的声道的音频信号经立体声处理后的能量/幅度,samplecoef
post
(ch,i)表示经立体声处理后的第ch声道的当前帧的第i个系数,n表示该当前帧的系数的个数,n取大于1的正整数。
19.一种可能的设计中,根据该p个声道的音频信号各自的能量/幅度,确定该当前帧的能量/幅度和,可以包括:根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度,确定该当前帧的能量/幅度和,该p个声道中的一个声道的音频信号的能量/幅度均衡前的能量/幅度包括该一个声道的音频信号在时域的能量/幅度,或该一个声道的音频信号经时频变换后的能量/幅度,或该一个声道的音频信号经时频变换以及白化后的能量/幅度。
20.本实现方式,通过使用当前帧的p个声道的音频信号各自的能量/幅度均衡前的能量/幅度,确定当前帧的能量/幅度和,以基于该当前帧的能量/幅度和进行比特分配,即采用能量/幅度均衡前的能量/幅度进行比特分配,可以实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。本实现方式可以解决能量/幅度大的声道信号的编码比特不足的问题,以保证解码端重建音频信号的质量。
21.采用能量/幅度均衡前的能量/幅度进行比特分配,相较于采用能量/幅度均衡后的能量/幅度进行比特分配,可以实现合理分配多声道信号编码中各个声道的比特数,以及比特分配处理与能量/幅度均衡处理解耦。即比特分配处理,并不受能量/幅度均衡处理的影响。例如,即使在能量/幅度均衡处理过程中采用对所有声道的能量/幅度取均值的方式,本实现方式采用能量/幅度均衡前的能量/幅度进行比特分配也可以实现合理分配多声道信号编码中各个声道的比特数,以使得分配给能量/幅度大的声道信号的编码比特更多,以保证解码端重建音频信号的质量。
22.一种可能的设计中,根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度,确定该当前帧的能量/幅度和,可以包括:
23.根据公式计算该当前帧的能量/幅度和sum_e
pre
,其中,ch表示声道索引,e
pre
(ch)表示声道索引为ch的声道的音频信号经能量/幅度均衡前的能量/幅度。
24.一种可能的设计中,根据该p个声道的音频信号各自的能量/幅度,确定该当前帧的能量/幅度和,可以包括:根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度和该p个声道各自的加权系数,确定该当前帧的能量/幅度和,该加权系数小于或等于1。
25.本实现方式,通过加权系数,可以调整多声道信号编码中各个声道的比特数,以实现合理分配多声道信号编码中各个声道的比特数。
26.一种可能的设计中,根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度和该p个声道各自的加权系数,确定该能量/幅度和,可以包括:
27.根据公式计算该当前帧的能量/幅度和sum_e
pre

28.其中,ch表示声道索引,e
pre
(ch)为第ch声道的音频信号经能量/幅度均衡前的能量/幅度,α(ch)为第ch声道的加权系数,一个声道对的两个声道的加权系数相同,且所述一个声道对的两个声道的加权系数大小与所述一个声道对的两个声道之间的归一化相关值成反比。
29.本实现方式,通过加权系数调整多声道信号编码中各个声道的比特数,一个声道对的两个声道的加权系数大小与该声道对的两个声道之间的归一化相关值成反比,即通过加权系数可以提升相关度低的声道对的比特数,从而提升编码效果,以保证解码端重建音频信号的质量。
30.一种可能的设计中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,q为正整数。根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定该k个声道对各自的比特数,可以包括:根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定该k个声道对各自的比特数以及该q个单声道各自的比特数。根据该k个声
道对各自的比特数,对该p个声道的音频信号进行编码,可以包括:根据该k个声道对各自的比特数分别对该k个声道对的音频信号进行编码,根据该q个单声道各自的比特数分别对该q个单声道的音频信号进行编码。
31.一种可能的设计中,根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定该k个声道对各自的比特数以及该q个单声道各自的比特数,可以包括:根据该p个声道的音频信号各自的能量/幅度,确定该当前帧的能量/幅度和。根据该k个声道对的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该k个声道对各自的比特系数。根据q个单声道的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该q个单声道各自的比特系数。根据该k个声道对各自的比特系数和该可用比特数,确定该k个声道对各自的比特数。根据该q个单声道各自的比特系数和所述可用比特数,确定该q个单声道各自的比特数。
32.一种可能的设计中,根据该k个声道对各自的比特数,对该p个声道的音频信号进行编码,可以包括:根据该k个声道对各自的比特数,对该p个声道的经能量/幅度均衡后的音频信号进行编码。
33.本实现方式,可以对p个声道的经能量/幅度均衡后的音频信号进行编码,其中,该p个声道的经能量/幅度均衡后的音频信号可以通过对p个声道的音频信号进行能量/幅度均衡后获取,该编码可以包括立体声处理、熵编码等,可以提高编码效率以及编码效果。
34.第二方面,本技术实施例提供一种多声道音频信号编码装置,该多声道音频信号编码装置可以为音频编码器,或音频编码设备的芯片或者片上系统,还可以为音频编码器中用于实现上述第一方面或上述第一方面的任一可能的设计的方法的功能模块。该多声道音频信号编码装置可以实现上述第一方面或上述第一方面的各可能的设计中所执行的功能,功能可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个上述功能相应的模块。举例来说,一种可能的设计中,该多声道音频信号编码装置,可以包括:获取模块,用于获取多声道音频信号的当前帧的p个声道的音频信号和该p个声道的音频信号各自的能量/幅度,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号,k为正整数。比特分配模块,用于根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定该k个声道对各自的比特数。编码模块,用于根据该k个声道对各自的比特数,对该p个声道的音频信号进行编码,以获取编码码流。
35.其中,该p个声道中的一个声道的音频信号的能量/幅度包括该一个声道的音频信号在时域的能量/幅度、该一个声道的音频信号经时频变换后的能量/幅度、该一个声道的音频信号经时频变换以及白化后的能量/幅度、该一个声道的音频信号经能量/幅度均衡后的能量/幅度、或该一个声道的音频信号经立体声处理后的能量/幅度中至少一项。
36.一种可能的设计中,该k个声道对包括当前声道对,该编码模块用于:根据该当前声道对的比特数以及该当前声道对中两个声道的音频信号各自的经立体声处理后的能量/幅度,确定该当前声道对中两个声道各自的比特数。根据该当前声道对中两个声道各自的比特数分别对该两个声道的音频信号进行编码。
37.一种可能的设计中,该比特分配模块用于:根据该p个声道的音频信号各自的能量/幅度,确定该当前帧的能量/幅度和。根据该k个声道对的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该k个声道对各自的比特系数。根据该k个声道对各自的比特
系数和该可用比特数,确定该k个声道对各自的比特数。
38.一种可能的设计中,该比特分配模块用于:根据该p个声道的音频信号各自的经立体声处理后的能量/幅度,确定该当前帧的能量/幅度和。
39.一种可能的设计中,该比特分配模块用于:根据公式计算该当前帧的能量/幅度和sum_e
post

40.其中,
41.其中,ch表示声道索引,e
post
(ch)表示声道索引为ch的声道的音频信号经立体声处理后的能量/幅度,samplecoef
post
(ch,i)表示经立体声处理后的第ch声道的当前帧的第i个系数,n表示所述当前帧中的系数的个数,n取大于1的正整数。
42.一种可能的设计中,该比特分配模块用于:根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度,确定该当前帧的能量/幅度和,该p个声道中的一个声道的音频信号的能量/幅度均衡前的能量/幅度包括该一个声道的音频信号在时域的能量/幅度,或该一个声道的音频信号经时频变换后的能量/幅度,或该一个声道的音频信号经时频变换以及白化后的能量/幅度。
43.一种可能的设计中,该比特分配模块用于:根据公式计算该当前帧的能量/幅度和sum_e
pre
,其中,ch表示声道索引,e
pre
(ch)表示声道索引为ch的声道的音频信号经能量/幅度均衡前的能量/幅度。
44.一种可能的设计中,该比特分配模块用于:根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度和该p个声道各自的加权系数,确定该当前帧的能量/幅度和,该加权系数小于或等于1。
45.一种可能的设计中,该比特分配模块用于:
46.根据公式计算该当前帧的能量/幅度和sum_e
pre

47.其中,ch表示声道索引,e
pre
(ch)为第ch声道的音频信号经能量/幅度均衡前的能量/幅度,α(ch)为第ch声道的加权系数,一个声道对的两个声道的加权系数相同,且所述一个声道对的两个声道的加权系数大小与该一个声道对的两个声道之间的归一化相关值成反比。
48.一种可能的设计中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,k为正整数,q为正整数。该比特分配模块用于:根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定该k个声道对各自的比特数以及该q个单声道各自的比特数。该编码模块用于根据该k个声道对各自的比特数分别对该k个声道对的音频信号进行编码,根据该q个单声道各自的比特数分别对该q个单声道的音频信号进行编码。
49.一种可能的设计中,比特分配模块用于:根据该p个声道的音频信号各自的能量/幅度,确定该当前帧的能量/幅度和。根据该k个声道对的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该k个声道对各自的比特系数。根据该q个单声道的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该q个单声道各自的比特系数。根据该k个
声道对各自的比特系数和该可用比特数,确定该k个声道对各自的比特数。根据该q个单声道各自的比特系数和所述可用比特数,确定该q个单声道各自的比特数。
50.一种可能的设计中,该编码模块用于根据该k个声道对各自的比特数,对该p个声道的经能量/幅度均衡后的音频信号进行编码。
51.在一种实施方式中,该装置还可以包括:能量/幅度均衡模块。该能量/幅度均衡模块,用于根据该p个声道的音频信号,获取该p个声道的经能量/幅度均衡后的音频信号。
52.第三方面,本技术实施例提供一种多声道音频信号编码方法,该方法可以包括:获取多声道音频信号的当前帧的p个声道的音频信号,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号,k为正整数。根据该k个声道对中当前声道对的两个声道的音频信号各自的能量/幅度,对该当前声道对的两个声道的音频信号进行能量/幅度均衡,以获取该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度。根据该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数。根据该当前声道对的两个声道各自的比特数分别对该两个声道的音频信号进行编码,以获取编码码流。
53.本实现方式,可以通过对单个声道对内的两个声道进行能量/幅度均衡,以实现对于能量/幅度差异较大的声道对间,经过能量/幅度均衡后,仍可以保持较大的能量/幅度差异,从而使得基于能量/幅度均衡后的能量/幅度进行比特分配时,可以给能量/幅度较大的声道对分配更多的比特,以保证能量/幅度较大的声道对的编码比特满足其编码需求,进而提升解码端重建音频信号的质量。
54.一种可能的设计中,p=2*k,k为正整数,根据该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数,可以包括:根据p个声道的音频信号各自的经能量/幅度均衡后的能量/幅度,确定该当前帧的能量/幅度和。根据该当前帧的能量/幅度和、该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度以及可用比特数,确定该当前声道对的两个声道各自的比特数。
55.一种可能的设计中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,k为正整数,q为正整数。根据该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数,可以包括:根据该k个声道对各自的两个声道的音频信号的能量/幅度均衡后的能量/幅度、以及该q个单声道的音频信号的经能量/幅度均衡后的能量/幅度,确定当前帧的能量/幅度和。根据该当前帧的能量/幅度和、该当前声道对的两个声道的音频信号各自的能量/幅度以及可用比特数,确定该当前声道对的两个声道各自的比特数。根据该当前帧的能量/幅度和、该q个单声道的音频信号各自的经能量/幅度均衡后的能量/幅度以及可用比特数,确定该q个单声道各自的比特数。根据该当前声道对的两个声道各自的比特数分别对该两个声道的音频信号进行编码,获取编码码流,可以包括:根据该k个声道对各自的比特数分别对该k个声道对的音频信号进行编码,根据该q个单声道各自的比特数分别对该q个单声道的音频信号进行编码,以获取编码码流。
56.第四方面,本技术实施例提供一种多声道音频信号编码装置,该多声道音频信号编码装置可以为音频编码器,或音频编码设备的芯片或者片上系统,还可以为音频编码器
中用于实现上述第三方面或上述第三方面的任一可能的设计的方法的功能模块。该多声道音频信号编码装置可以实现上述第三方面或上述第三方面的各可能的设计中所执行的功能,功能可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个上述功能相应的模块。举例来说,一种可能的设计中,该多声道音频信号编码装置,可以包括:获取模块,用于获取多声道音频信号的当前帧的p个声道的音频信号,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号,k为正整数。能量/幅度均衡模块,用于根据该k个声道对中当前声道对的两个声道的音频信号各自的能量/幅度,对该当前声道对的两个声道的音频信号进行能量/幅度均衡,以获取该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度。比特分配模块,用于根据该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数。编码模块,用于根据该当前声道对的两个声道各自的比特数分别对该两个声道的音频信号进行编码,以获取编码码流。
57.一种可能的设计中,p=2*k,k为正整数,该比特分配模块用于:根据该p个声道的音频信号各自的经能量/幅度均衡后的能量/幅度,确定该当前帧的能量/幅度和;根据该当前帧的能量/幅度和、该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度以及该可用比特数,确定该当前声道对的两个声道各自的比特数。
58.一种可能的设计中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,k为正整数,q为正整数。该比特分配模块用于:根据该k个声道对各自的两个声道的音频信号的经能量/幅度均衡后的能量/幅度、以及该q个单声道的音频信号的经能量/幅度均衡后的能量/幅度,确定该当前帧的能量/幅度和;根据该当前帧的能量/幅度和、该当前声道对的两个声道的音频信号各自的能量/幅度以及该可用比特数,确定该当前声道对的两个声道各自的比特数;根据该当前帧的能量/幅度和、该q个单声道的音频信号各自的经能量/幅度均衡后的能量/幅度以及该可用比特数,确定该q个单声道各自的比特数。该编码模块用于:根据该k个声道对各自的比特数分别对该k个声道对的音频信号进行编码,根据该q个单声道各自的比特数分别对该q个单声道的音频信号进行编码,以获取编码码流。
59.第五方面,本技术实施例提供一种音频信号编码装置,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如上述第一方面中任一项所述的方法,或者以执行如上述第三方面中任一项所述的方法。
60.第六方面,本技术实施例提供一种音频信号编码设备,包括:编码器,所述编码器用于执行如上述第一方面中任一项所述的方法,或者,执行如上述第三方面中任一项所述的方法。
61.第七方面,本技术实施例提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一方面中任一项所述的方法,或者,执行如上述第三方面中任一项所述的方法。
62.第八方面,本技术实施例提供一种计算机可读存储介质,包括根据上述第一方面中任一项所述的方法获得的编码码流,或者根据上述第三方面中任一项所述的方法获得的编码码流。
63.第九方面,本技术提供一种计算机程序产品,该计算机程序产品包括计算机程序,
当所述计算机程序被计算机执行时,用于执行上述第一方面中任一项所述的方法,或者执行上述第三方面中任一项所述的方法。
64.第十方面,本技术提供一种芯片,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如上述第一方面中任一项所述的方法,或者以执行如上述第三方面中任一项所述的方法。
65.本技术实施例的多声道音频信号编码方法和装置,获取多声道音频信号的当前帧的p个声道的音频信号,该p个声道的音频信号包括k个声道对的音频信号,根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数,根据k个声道对各自的比特数,对p个声道的音频信号进行编码,以获取编码码流。其中,p个声道中的一个声道的音频信号的能量/幅度包括该一个声道的音频信号在时域的能量/幅度该一个声道的音频信号经时频变换后的能量/幅度、该一个声道的音频信号经时频变换以及白化后的能量/幅度、该一个声道的音频信号经能量/幅度均衡后的能量/幅度、或该一个声道的音频信号经立体声处理后的能量/幅度中至少一项。通过根据p个声道的音频信号各自在时域的能量/幅度、经时频变换后的能量/幅度、经时频变换以及白化后的能量/幅度、经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中至少一项进行针对声道对的比特分配,确定k个声道对各自的比特数,从而实现合理分配多声道信号编码中各个声道对的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道对的编码比特不足的问题,以保证解码端重建音频信号的质量。
附图说明
66.图1为本技术实施例中的音频编码及解码系统实例的示意图;
67.图2为本技术实施例的一种多声道音频信号编码方法的流程图;
68.图3为本技术实施例的一种多声道音频信号编码方法的流程图;
69.图4为本技术实施例的一种声道对的比特分配方法的流程图;
70.图5为本技术实施例的编码端的处理过程的示意图;
71.图6为本技术实施例的声道编码单元的处理过程的示意图;
72.图7为本技术实施例的声道编码单元的处理过程的示意图;
73.图8为本技术实施例的另一种多声道音频信号编码方法的流程图;
74.图9为本技术实施例的一种音频信号编码装置的结构示意图;
75.图10为本技术实施例的一种音频信号编码设备的结构示意图。
具体实施方式
76.本技术实施例涉及的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
77.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两
个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“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分别可以是单个,也可以分别是多个,也可以是部分是单个,部分是多个。
78.下面描述本技术实施例所应用的系统架构。参见图1,图1示例性地给出了本技术实施例所应用的音频编码及解码系统10的示意性框图。如图1所示,音频编码及解码系统10可包括源设备12和目的地设备14,源设备12产生经编码的音频数据,因此,源设备12可被称为音频编码装置。目的地设备14可对由源设备12所产生的经编码的音频数据进行解码,因此,目的地设备14可被称为音频解码装置。源设备12、目的地设备14或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于ram、rom、eeprom、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。源设备12和目的地设备14可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、所谓的“智能”电话等电话手持机、电视机、音箱、数字媒体播放器、视频游戏控制台、车载计算机、任意可穿戴设备、虚拟现实(virtual reality,vr)设备、提供vr服务的服务器、增强现实(augmented reality,ar)设备、提供ar服务的服务器、无线通信设备或其类似者。
79.虽然图1将源设备12和目的地设备14绘示为单独的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括两者的功能性,即源设备12或对应的功能性以及目的地设备14或对应的功能性。在此类实施例中,可以使用相同硬件和/或软件,或使用单独的硬件和/或软件,或其任何组合来实施源设备12或对应的功能性以及目的地设备14或对应的功能性。
80.源设备12和目的地设备14之间可通过链路13进行通信连接,目的地设备14可经由链路13从源设备12接收经编码的音频数据。链路13可包括能够将经编码的音频数据从源设备12移动到目的地设备14的一或多个媒体或装置。在一个实例中,链路13可包括使得源设备12能够实时将经编码的音频数据直接发射到目的地设备14的一或多个通信媒体。在此实例中,源设备12可根据通信标准(例如无线通信协议)来调制经编码的音频数据,且可将经调制的音频数据发射到目的地设备14。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(rf)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源设备12到目的地设备14的通信的其它设备。
81.源设备12包括编码器20,另外可选地,源设备12还可以包括音频源16、预处理器18、以及通信接口22。具体实现形态中,所述编码器20、音频源16、预处理器18、以及通信接口22可能是源设备12中的硬件部件,也可能是源设备12中的软件程序。分别描述如下:
82.音频源16,可以包括或可以为任何类别的声音捕获设备,用于例如捕获现实世界的声音,和/或任何类别的音频生成设备。音频源16可以为用于捕获声音的麦克风或者用于
存储音频数据的存储器,音频源16还可以包括存储先前捕获或产生的音频数据和/或获取或接收音频数据的任何类别的(内部或外部)接口。当音频源16为麦克风时,音频源16可例如为本地的或集成在源设备中的集成麦克风;当音频源16为存储器时,音频源16可为本地的或例如集成在源设备中的集成存储器。当所述音频源16包括接口时,接口可例如为从外部音频源接收音频数据的外部接口,外部音频源例如为外部声音捕获设备,比如麦克风、外部存储器或外部音频生成设备。接口可以为根据任何专有或标准化接口协议的任何类别的接口,例如有线或无线接口、光接口。
83.本技术实施例中,由音频源16传输至预处理器18的音频数据也可称为原始音频数据17。
84.预处理器18,用于接收原始音频数据17并对原始音频数据17执行预处理,以获取经预处理的音频19或经预处理的音频数据19。例如,预处理器18执行的预处理可以包括滤波、或去噪等。
85.编码器20(或称音频编码器20),用于接收经预处理的音频数据19,并用于执行后文所描述的各个实施例,以实现本技术所描述的音频信号编码方法在编码侧的应用。
86.通信接口22,可用于接收经编码的音频数据21,并可通过链路13将经编码的音频数据21传输至目的地设备14或任何其它设备(如存储器),以用于存储或直接重构,所述其它设备可为任何用于解码或存储的设备。通信接口22可例如用于将经编码的音频数据21封装成合适的格式,例如数据包,以在链路13上传输。
87.目的地设备14包括解码器30,另外可选地,目的地设备14还可以包括通信接口28、音频后处理器32和扬声设备34。分别描述如下:
88.通信接口28,可用于从源设备12或任何其它源接收经编码的音频数据21,所述任何其它源例如为存储设备,存储设备例如为经编码的音频数据存储设备。通信接口28可以用于藉由源设备12和目的地设备14之间的链路13或藉由任何类别的网络传输或接收经编码音频数据21,链路13例如为直接有线或无线连接,任何类别的网络例如为有线或无线网络或其任何组合,或任何类别的私网和公网,或其任何组合。通信接口28可以例如用于解封装通信接口22所传输的数据包以获取经编码的音频数据21。
89.通信接口28和通信接口22都可以配置为单向通信接口或者双向通信接口,以及可以用于例如发送和接收消息来建立连接、确认和交换任何其它与通信链路和/或例如经编码的音频数据传输的数据传输有关的信息。
90.解码器30(或称为解码器30),用于接收经编码的音频数据21并提供经解码的音频数据31或经解码的音频31。
91.音频后处理器32,用于对经解码的音频数据31(也称为经重构的音频数据)执行后处理,以获得经后处理的音频数据33。音频后处理器32执行的后处理可以包括:例如渲染,或任何其它处理,还可用于将将经后处理的音频数据33传输至扬声设备34。
92.扬声设备34,用于接收经后处理的音频数据33以向例如用户或观看者播放音频。扬声设备34可以为或可以包括任何类别的用于呈现经重构的声音的扬声器。
93.虽然,图1将源设备12和目的地设备14绘示为单独的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括两者的功能性,即源设备12或对应的功能性以及目的地设备14或对应的功能性。在此类实施例中,可以使用相同硬件和/或软件,或使用
单独的硬件和/或软件,或其任何组合来实施源设备12或对应的功能性以及目的地设备14或对应的功能性。
94.本领域技术人员基于描述明显可知,不同单元的功能性或图1所示的源设备12和/或目的地设备14的功能性的存在和(准确)划分可能根据实际设备和应用有所不同。源设备12和目的地设备14可以包括各种设备中的任一个,包含任何类别的手持或静止设备,例如,笔记本或膝上型计算机、移动电话、智能手机、平板或平板计算机、摄像机、台式计算机、机顶盒、电视机、相机、车载设备、音响、数字媒体播放器、音频游戏控制台、音频流式传输设备(例如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备、智能眼镜、智能手表等,并可以不使用或使用任何类别的操作系统。
95.编码器20和解码器30都可以实施为各种合适电路中的任一个,例如,一个或多个微处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)、离散逻辑、硬件或其任何组合。如果部分地以软件实施所述技术,则设备可将软件的指令存储于合适的非暂时性计算机可读存储介质中,且可使用一或多个处理器以硬件执行指令从而执行本公开的技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可视为一或多个处理器。
96.在一些情况下,图1中所示音频编码及解码系统10仅为示例,本技术的技术可以适用于不必包含编码和解码设备之间的任何数据通信的音频编码设置(例如,音频编码或音频解码)。在其它实例中,数据可从本地存储器检索、在网络上流式传输等。音频编码设备可以对数据进行编码并且将数据存储到存储器,和/或音频解码设备可以从存储器检索数据并且对数据进行解码。在一些实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备执行编码和解码。
97.上述编码器可以是多声道编码器,例如,立体声编码器,5.1声道编码器,或7.1声道编码器等。
98.上述音频数据也可以称为音频信号,本技术实施例中的音频信号是指音频编码设备中的输入信号,该音频信号中可以包括多个帧,例如当前帧可以特指音频信号中的某一个帧,本技术实施例中以当前帧音频信号的编解码进行示例说明,音频信号中当前帧的前一帧或者后一帧都可以根据该当前帧音频信号的编解码方式进行相应的编解码,对于音频信号中当前帧的前一帧或者后一帧的编解码过程不再逐一说明。另外,本技术实施例中的音频信号可以是多声道信号,即包括p个声道的音频信号。本技术实施例用于实现多声道音频信号编码。
99.需要说明的是,本技术实施例中的“能量/幅度”表示的是能量或者幅度,并且,在实际处理过程中,对于一个帧的处理,如果一开始处理的是能量,那么后续的处理中都是对能量进行处理,或者,如果一开始处理的是幅度,那么后续的处理中都是对幅度进行处理。
100.上述编码器可以执行本技术实施例的多声道音频信号编码方法,以实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量,提升编码质量。其具体实施方式可以参见下述实施例的具体解释说明。
101.图2为本技术实施例的一种多声道音频信号编码方法的流程图,本技术实施例的执行主体可以是上述编码器,如图2所示,本实施例的方法可以包括:
102.步骤101、获取多声道音频信号的当前帧的p个声道的音频信号,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号。
103.其中,一个声道对(channel pair)的音频信号包括两个声道的音频信号。本技术实施例的一个声道对可以是k个声道对中的任意一个。组对的(coupling)两个声道的音频信号即为一个声道对的音频信号。
104.在一些实施例中,p=2k。通过多声道信号的筛选、组对、立体声处理和多声道边信息生成之后,可以获取p个声道的音频信号,也即k个声道对的音频信号。
105.在一些实施例中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,k为正整数,q为正整数。
106.通过多声道信号的筛选、组对、立体声处理和多声道边信息生成之后,可以获取k个声道对的音频信号,以及未经过立体声处理的q个单声道的音频信号。以5.1声道信号为例,该5.1声道包括左(l)声道、右(r)声道、中央(c)声道、低频效果(low frequency effects,lfe)声道、左环绕(ls)声道、以及右环绕(rs)声道。将l声道信号和r声道信号组对,形成第一声道对,并经过立体声处理,得到中声道m1声道信号和侧声道s1声道信号,将ls声道信号和rs声道信号组对,形成第二声道对,并经过立体声处理得到中声道m2声道信号和侧声道s2声道信号,lfe声道信号和c声道信号为未组对的音频信号。即p=6,k=2,q=2。上述p个声道的音频信号包括第一声道对的音频信号、第二声道对的音频信号、以及未经过立体声处理的lfe声道信号和c声道信号,第一声道对的音频信号包括中声道m1声道信号和侧声道s1声道信号,第二声道对的音频信号包括中声道m2声道信号和侧声道s2声道信号。
107.步骤102、根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数。
108.其中,该p个声道中一个声道的音频信号的能量/幅度包括该一个声道的音频信号在时域的能量/幅度、该一个声道的音频信号经时频变换后的能量/幅度、该一个声道的音频信号经时频变换以及白化后的能量/幅度、该一个声道的音频信号经能量/幅度均衡后的能量/幅度、或该一个声道的音频信号经立体声处理后的能量/幅度中至少一项。该时域的能量/幅度、经时频变换后的能量/幅度和经时频变换以及白化后的能量/幅度即为能量/幅度均衡前的能量/幅度。换言之,在比特分配过程中可以选择如上任意一种或多种能量/幅度进行比特分配。
109.该一个声道的音频信号经时频变换以及白化后的能量/幅度指对该以一个声道的音频信号进行时频变换以及白化处理后的能量/幅度,该白化处理用于使得该一个声道的音频信号的频域系数更加平整,以便于后续编码,
110.根据p个声道的音频信号各自的能量/幅度,和可用比特数,进行一次比特分配。这里的一次比特分配是指针对声道对的比特分配,即给不同的声道对分配相应的比特数。
111.对于p=2k,根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数。一个声道对可以作为一个基本单元,根据一个基本单元的能量/幅度在所有基本单元(k个基本单元)的能量/幅度中所占比例,对该一个基本单元进行一次比特分配。任意一个基本单元的能量/幅度可以根据该基本单元内的两个声道的音频信号的能量/幅度确定。例如,一个基本单元的能量/幅度可以是该基本单元内的两个声道的音频信号的
能量/幅度之和。通过一次比特分配,可以在不同基本单元之间进行比特分配,以得到各个基本单元的比特数。
112.对于p=2*k q,根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数,和q个单声道各自的比特数。一个声道对可以作为一个基本单元,未组对的单个声道作为一个基本单元。根据一个基本单元的能量/幅度在所有基本单元(k q个基本单元)的能量/幅度中所占比例,对该一个基本单元进行一次比特分配。其中,对于组对的声道对应的基本单元,该基本单元的能量/幅度可以根据该基本单元内的两个声道的音频信号的能量/幅度确定。对于未组对的声道对应的基本单元,该基本单元的能量/幅度可以根据单声道的音频信号的能量/幅度确定。通过一次比特分配,可以在基本单元(k q个基本单元)之间进行比特分配,以得到各个基本单元的比特数。换言之,得到k个声道对各自的比特数,以及q个单声道各自的比特数。
113.无论是p=2k,还是p=2*k q,对于k个声道对各自的比特数的确定,一种可实现方式,可以根据k个声道对各自在时域的能量/幅度、或经时频变换后的能量/幅度、或经时频变换以及白化后的能量/幅度中任意一项,以及可用比特数确定。在该实现方式中,为了提升编码效率和编码效果,可以在比特分配之前,对k个声道对的音频信号进行能量/幅度均衡。对k个声道对的音频信号进行能量/幅度均衡的方式可以是对多个声道对、或多个声道对以及一个或多个未组对的单声道中的所有声道的音频信号进行能量/幅度均衡。在该实现方式中,对k个声道对的音频信号进行能量/幅度均衡的方式也可以是对单个声道对内的两个声道的音频信号进行能量/幅度均衡。
114.另一种可实现方式,可以根据k个声道对的音频信号各自的经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中任意一项,以及可用比特数确定。在该实现方式中,为了提升编码效率和编码效果,可以在比特分配之前,对k个声道对的音频信号进行能量/幅度均衡。对k个声道对的音频信号进行能量/幅度均衡的方式可以是对单个声道对内的两个声道的音频信号进行能量/幅度均衡。其中,k个声道对的音频信号各自的经能量/幅度均衡后的能量/幅度或经立体声处理后的能量/幅度均为对单个声道对内的两个声道的音频信号进行能量/幅度均衡后获取的。
115.与k个声道对各自的比特数的确定类似,在p=2*k q时,对于q个单声道各自的比特数的确定,一种可实现方式,可以根据q个单声道的音频信号各自在时域的能量/幅度、或经时频变换后的能量/幅度、或经时频变换以及白化后的能量/幅度中任意一项,以及可用比特数确定。另一种可实现方式,可以根据q个单声道的音频信号各自经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中任意一项,以及可用比特数确定。其中,q个单声道的音频信号各自的经能量/幅度均衡后的能量/幅度或经立体声处理后的能量/幅度等于经能量/幅度均衡前的能量/幅度或经立体声处理前的能量/幅度。
116.步骤103、根据k个声道对各自的比特数,对p个声道的音频信号进行编码,获取编码码流。
117.对p个声道的音频信号进行编码,可以包括对p个声道的音频信号进行量化、熵编码以及码流复用,以获取编码码流。
118.对于p=2k,根据k个声道对各自的比特数,对p个声道的音频信号进行量化、熵编码以及码流复用,获取编码码流。
119.对于p=2*k q,根据k个声道对各自的比特数和q个单声道各自的比特数,对p个声道的音频信号进行量化、熵编码以及码流复用,获取编码码流。
120.本实施例,获取多声道音频信号的当前帧的p个声道的音频信号,该p个声道的音频信号包括k个声道对的音频信号,根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数,根据k个声道对各自的比特数,对p个声道的音频信号进行编码,以获取编码码流。其中,p个声道中的一个声道的音频信号的能量/幅度包括该一个声道的音频信号在时域的能量/幅度、经时频变换后的能量/幅度、经时频变换以及白化后的能量/幅度、经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中至少一项。通过根据p个声道的音频信号各自在时域的能量/幅度、经时频变换后的能量/幅度、经时频变换以及白化后的能量/幅度、经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中至少一项进行针对声道对的比特分配,确定k个声道对各自的比特数,从而实现合理分配多声道信号编码中各个声道对的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道对的编码比特不足的问题,以保证解码端重建音频信号的质量。
121.图3为本技术实施例的一种多声道音频信号编码方法的流程图,本技术实施例的执行主体可以是上述编码器,如图3所示,本实施例的方法可以包括:
122.步骤201、获取多声道音频信号的当前帧的p个声道的音频信号,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号。
123.其中,步骤201的具体解释说明可以参见图2所示实施例的步骤101,此处不再赘述。
124.步骤202、根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数。
125.根据p个声道的音频信号各自的能量/幅度,和可用比特数,进行一次比特分配。
126.对于p=2*k,在一次比特分配过程中,本技术实施例的方法可以根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数。
127.对于p=2*k q,在一次比特分配过程中,本技术实施例的方法可以根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数以及q个单声道各自的比特数。
128.其中,无论是p=2k,还是p=2*k q,步骤202中关于k个声道对各自的比特数,以及q个单声道各自比特数的确定的解释说明,可以参见图1所示实施例的步骤102,此处不再赘述。
129.步骤203、根据k个声道对中当前声道对的比特数和当前声道对中两个声道的音频信号各自的经立体声处理后的能量/幅度,确定当前声道对中两个声道各自的比特数。
130.以k个声道对中当前声道对为例,根据k个声道对中当前声道对的比特数和当前声道对中两个声道的音频信号各自的经立体声处理后的能量/幅度,在当前声道对中进行二次比特分配。二次比特分配是对当前声道对的两个声道的比特数进行分配。也即对组对的声道对应的基本单元,根据基本单元内两个声道的音频信号各自的能量/幅度比例在基本单元内进行比特分配。该当前声道对可以是k个声道对中的任意一个声道对。这里的二次比特分配是指针对声道对内的两个声道的比特分配,即给声道对内的两个声道分配相应的比
特数。
131.无论是p=2k,还是p=2*k q,均可以采用上述步骤203的方式在声道对内进行比特分配,以获取声道对内的两个声道各自的比特数。
132.步骤204、根据当前声道对中两个声道各自的比特数分别对该两个声道的音频信号进行编码,获取编码码流。
133.分别对当前声道对中两个声道的音频信号进行编码,可以包括分别对当前声道对中两个声道的音频信号进行量化、熵编码以及码流复用,以获取编码码流。
134.对于p=2k,根据k个声道对各自的比特数,分别对p个声道的音频信号进行量化、熵编码以及码流复用,获取编码码流。
135.对于p=2*k q,根据k个声道对各自的比特数分别对k个声道对的音频信号进行量化、熵编码以及码流复用,根据q个单声道各自的比特数分别对所述q个单声道的音频信号进行量化、熵编码以及码流复用,获取编码码流。
136.本实施例,获取多声道音频信号的当前帧的p个声道的音频信号,该p个声道的音频信号包括k个声道对的音频信号,根据p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数,根据k个声道对各自的比特数,根据k个声道对中当前声道对的比特数和当前声道对中两个声道的音频信号各自的经立体声处理后的能量/幅度,确定当前声道对中两个声道各自的比特数,根据当前声道对中两个声道各自的比特数分别对该两个声道的音频信号进行编码,获取编码码流。通过根据p个声道的音频信号各自在时域的能量/幅度、经时频变换后的能量/幅度、经时频变换以及白化后的能量/幅度、经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中至少一项进行针对声道对的比特分配,确定k个声道对各自的比特数,进而基于k个声道对各自的比特数进行声道对内的比特分配,从而实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道信号的编码比特不足的问题,以保证解码端重建音频信号的质量。
137.图4为本技术实施例的一种声道对的比特分配方法的流程图,本技术实施例的执行主体可以是上述编码器,本实施例为上述图2所示实施例的步骤102的一种具体的可实现方式,如图4所示,本实施例的方法可以包括:
138.步骤1021、根据p个声道的音频信号各自的能量/幅度,确定当前帧的能量/幅度和。
139.如上述p个声道的音频信号各自的能量/幅度包括p个声道的音频信号各自在时域的能量/幅度、经时频变换后的能量/幅度、经时频变换以及白化后的能量/幅度、经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中至少一项。
140.对不同能量/幅度类型,确定当前帧的能量/幅度和的方式进行解释说明。
141.方式一、根据p个声道的音频信号各自的经立体声处理后的能量/幅度,确定当前帧的能量/幅度和。该当前帧的能量/幅度和可以是立体声处理后的能量/幅度和sum_e
pos

142.示例性的,可以根据下述公式(1)和公式(2)确定立体声处理后的能量/幅度和sum_e
post

[0143][0144][0145]
其中,ch表示声道索引,e
post
(ch)表示声道索引为ch的声道的音频信号经立体声处理后的能量/幅度,samplecoef
post
(ch,i)表示立体声处理后的ch声道的当前帧的第i个系数,n表示该当前帧的系数的个数,n取大于1的正整数。声道索引为ch的声道可以是上述p个声道中任意一个声道。
[0146]
即可以通过如上方式一确定当前帧的能量/幅度和,再通过下述步骤1022和步骤1023完成上述一次比特分配。
[0147]
方式二,根据p个声道的音频信号各自的能量/幅度均衡前的能量/幅度,确定当前帧的能量/幅度和。该能量/幅度和可以是能量/幅度均衡前的能量/幅度和sum_e
pre

[0148]
示例性的,可以根据下述公式(3)和公式(4)确定能量/幅度均衡前的能量/幅度和sum_e
pre

[0149][0150][0151]
其中,e
pre
(ch)表示声道索引为ch的声道的音频信号经能量/幅度均衡前的能量/幅度,samplecoef(ch,i)表示能量/幅度均衡前的ch声道的当前帧的第i个系数,n表示该当前帧的系数的个数,n取大于1的正整数。
[0152]
即可以通过如上方式二确定当前帧的能量/幅度和,再通过下述步骤1022和步骤1023完成上述一次比特分配。
[0153]
方式三、根据p个声道的音频信号各自的能量/幅度均衡前的能量/幅度和p个声道各自的加权系数,确定当前帧的能量/幅度和。该p个声道中任意一个声道的加权系数小于或等于1。该能量/幅度和可以是能量/幅度均衡前的能量/幅度和sum_e
pre

[0154]
示例性的,根据根据下述公式(5)确定能量/幅度均衡前的能量/幅度和sum_e
pre

[0155][0156]
其中,α(ch)为声道索引为ch的声道的加权系数,一个声道对的两个声道的加权系数相同,且一个声道对的两个声道的加权系数大小与该声道对中两个声道之间的归一化相关值成反比。
[0157]
一种可实现方式,当声道索引为ch的声道未参与组对时,α(ch)为1。当声道索引为ch的声道参与组对时,以声道索引为ch1的声道(以下简称ch1)、声道索引为ch2的声道(以下简称ch2)、声道索引为ch3的声道(以下简称ch3)以及声道索引为ch4的声道(以下简称ch4)为例,其中以ch1和ch2组对,ch3和ch4组对为例,α(ch1)和α(ch2)相等,且均小于1,α(ch3)和α(ch4)相等,且均小于1。α(ch1)和α(ch2)可以根据ch1和ch2的归一化相关值corr_norm(ch1,ch2)确定。α(ch3)和α(ch4)可以根据归一化相关值corr_norm(ch3,ch4)确定。归一化相关值corr_norm(ch3,ch4)较大的α(ch3)和α(ch4)的值,小于归一化相关值corr_norm(ch1,ch2)较小的α(ch1)和α(ch2)的值。即α(ch1)和α(ch2)与ch1和ch2的归一化相关值corr_norm(ch1,ch2)成反比。
[0158]
示例性的,当ch1和ch2组对时,可以通过如下公式(6)计算α(ch1)和α(ch2)。
[0159]
α(ch1,ch2)=c (1-c)*(1

corr_norm(ch1,ch2))/(1-threhold)
ꢀꢀꢀ
(6)
[0160]
其中,c为常数,c∈[0,1],threhold是ch1和ch2的归一化组对阈值,threhold∈[0,1],corr_norm(ch1,ch2)是ch1和ch2的归一化相关值,coeff(ch1,ch2)∈[0,1]。在一些实施例中,c可以取0.707。threhold可以取0.2,0.25,或0.28等等。
[0161]
两个声道相关值可以通过下述公式(7)计算,以ch1和ch2为例。
[0162][0163]
其中,corr_norm(ch1,ch2)是ch1和ch2归一化的相关值,spec_ch1(i)是ch1的时域或频域系数,spec_ch2(i)是声道ch2的时域或频域系数,n是当前帧的系数的个数。
[0164]
例如,l声道和r声道是第一声道对且归一化相关值为corr_norm(l,r),ls声道和rs声道是第二声道对且归一化相关值为corr_norm(ls,rs)。
[0165]
对于其他声道对的两个声道的相关值也可以采用公式(7)计算,对于声道对的声道的加权系数也可以采用公式(6)计算。
[0166]
考虑到立体声处理会减少两个参与立体声处理的声道的能量/幅度和,并且两个声道的能量/幅度和减少的程度和两个声道的音频信号的相似程度有关,即两个声道的音频信号的相关度越高,立体声处理后两个声道的能量/幅度和减少的越多。
[0167]
因此,当一次比特分配使用立体声处理前的能量/幅度时,在一次比特分配时增加加权系数。相关度高的两个声道的加权系数小于相关度低的两个声道的加权系数。未组对的声道加权系数大于组对的声道的加权系数。同一组对的两个声道的加权系数相同。即可以通过如上方式三确定能量/幅度和,再通过下述步骤1022和步骤1023完成上述一次比特分配。
[0168]
步骤1022、根据k个声道对的音频信号各自的能量/幅度,与当前帧的能量/幅度和,确定k个声道对各自的比特系数。
[0169]
采用上述方式一、方式二或方式三确定能量/幅度和后,对于p=2k,可以根据k个声道对的音频信号各自的能量/幅度,和上述步骤1021确定的能量/幅度和,确定k个声道对各自的比特系数。
[0170]
采用上述方式一、方式二或方式三确定能量/幅度和后,对于p=2*k q,可以根据k个声道对的音频信号各自的能量/幅度,和上述步骤1021确定的能量/幅度和,确定k个声道对各自的比特系数,根据q个单声道各自的能量/幅度,与上述步骤1021确定的能量/幅度和,确定q个单声道各自的比特系数。
[0171]
k个声道对各自的比特系数可以是k个声道对各自的能量/幅度,在上述步骤1021确定的能量/幅度和中的占比。一个声道对的能量/幅度可以为该声道对中的两个声道的能量/幅度之和。q个未组对的单声道各自的比特系数为q个单声道各自的能量/幅度,在上述步骤1021确定的能量/幅度和中的占比。
[0172]
步骤1023、根据k个声道对各自的比特系数和可用比特数,确定k个声道对各自的比特数。
[0173]
对于p=2k,可以根据k个声道对各自的比特系数,和可用比特数,确定k个声道对
各自的比特数。
[0174]
对于p=2*k q,可以根据k个声道对各自的比特系数和可用比特数,确定k个声道对各自的比特数,根据q个单声道各自的比特系数和可用比特数,确定q个单声道各自的比特数。
[0175]
本实施例,获取多声道音频信号的当前帧的p个声道的音频信号,该p个声道的音频信号包括k个声道对的音频信号,根据p个声道的音频信号各自的能量/幅度,确定当前帧的能量/幅度和,根据k个声道对的音频信号各自的能量/幅度,与当前帧的能量/幅度和,确定k个声道对各自的比特系数,根据k个声道对各自的比特系数和可用比特数,确定k个声道对各自的比特数,根据k个声道对各自的比特数,对p个声道的音频信号进行编码,以获取编码码流。其中,通过p个声道的音频信号各自在时域的能量/幅度、经时频变换后的能量/幅度、经时频变换以及白化后的能量/幅度、经能量/幅度均衡后的能量/幅度、或经立体声处理后的能量/幅度中至少一项确定当前帧的能量/幅度和,基于各个声道对的音频信号各自的能量/幅度在该能量/幅度和中的占比,进行针对声道对的比特分配,确定k个声道对各自的比特数,从而实现合理分配多声道信号编码中各个声道对的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道对的编码比特不足的问题,以保证解码端重建音频信号的质量。
[0176]
下面实施例以5.1声道信号为例,对本技术实施例的多声道音频信号编码方法进行示意性举例说明。
[0177]
图5为本技术实施例的编码端的处理过程的示意图,如图5所示,该编码端可以包括多声道编码处理单元401、声道编码单元402和码流复用接口403。该编码端可以是如上所述的编码器。
[0178]
多声道编码处理单元401用于对输入信号进行多声道信号的筛选、组对、立体声处理及多声道边信息生成。本实施例中该输入信号为5.1(l声道、r声道、c声道、lfe声道、ls声道、rs声道)信号。
[0179]
一种举例,多声道编码处理单元401将l声道信号和r声道信号进行组对,形成第一声道对,并经过立体声处理得到中声道m1声道信号和侧声道s1声道信号,将ls声道信号和rs声道信号进行组对,形成第二声道对,并经过立体声处理得到中声道m2声道信号和侧声道s2声道信号。
[0180]
由于多声道中声道间能量/幅度差异较大,所以在进行立体声处理前,对多声道进行能量/幅度均衡增加立体声处理的收益,即将能量/幅度集中到中声道以方便声道编码单元提高编码效率。本技术实施例采用对组对的声道进行均衡以获得声道间的能量/幅度均衡。假设能量/幅度均衡前各输入声道的当前帧的能量/幅度分别为energy_l、energy_r、energy_c、energy_ls、energy_rs。energy_l为能量/幅度均衡前l声道信号的能量/幅度,energy_r为能量/幅度均衡前r声道信号的能量/幅度,energy_c为能量/幅度均衡前c声道信号的能量/幅度,energy_ls为能量/幅度均衡前ls声道信号的能量/幅度,energy_rs为能量/幅度均衡前rs声道信号的能量/幅度。
[0181]
第一声道对的l声道和r声道经能量/幅度均衡后的能量/幅度均为energy_avg_lr,energy_avg_lr的计算方式可以采用如下公式(8)。
[0182]
energy_avg_lr=avg(energy_l,energy_r)
ꢀꢀꢀ
(8)
[0183]
第二声道对的ls声道和rs声道能量/幅度均衡后的能量/幅度均为energy_avg_lsrs,energy_avg_lsrs的计算方式可以采用如下公式(9)。
[0184]
energy_avg_lsrs=avg(energy_ls,energy_rs)
ꢀꢀꢀ
(9)
[0185]
其中,avg(a1,a2)函数实现输入2个参数a1,a2均值。a1取energy_l,a2取energy_r。a1取energy_ls,a2取energy_rs。
[0186]
各个声道能量/幅度均衡前的能量/幅度energy(ch)(包括energy_l、energy_r、energy_c、energy_ls、energy_rs)的计算公式如下:
[0187][0188]
其中,samplecoef(ch,i)表示声道索引为ch的声道的当前帧的第i个系数,n表示该当前帧的系数的个数,不同的ch取值可以对应上述l声道、r声道、c声道、lfe声道、ls声道、rs声道。
[0189]
本技术实施例中,energy_l等于e
pre
(l),energy_r等于e
pre
(r),energy_ls等于e
pre
(ls),energy_rs等于e
pre
(rs),energy_c等于e
pre
(c)。e
post
(l)=e
post
(r)=energy_avg_lr。e
post
(ls)=e
post
(rs)=energy_avg_lsrs。
[0190]
多声道编码处理单元401输出经过立体声处理的m1声道信号、s1声道信号、m2声道信号、s2声道信号和未经过立体声处理的lfe声道信号和c声道信号,以及多声道边信息。
[0191]
声道编码单元402用于对经过立体声处理的m1声道信号、s1声道信号、m2声道信号、s2声道信号和未经过立体声处理的lfe声道信号和c声道信号,以及多声道边信息进行编码,输出编码声道e1-e6。声道编码单元402可以包括多个单声道处理盒,单声道处理盒对能量/幅度更大的声道分配比能量/幅度小的声道更多的比特。声道编码单元402进行量化和熵编码以去除编码端冗余之后,将编码声道e1-e6送给码流复用接口403。
[0192]
码流复用接口403将六个编码声道e1-e6进行复用形成串行比特流(bitstream),以方便多声道音频信号在信道中传输或者在数字媒质中存储。
[0193]
图6为本技术实施例的声道编码单元的处理过程的示意图,如图6所示,上述声道编码单元402可以包括比特分配单元4021和量化熵编码单元4023。本实施例为上述方式一的举例说明。
[0194]
比特分配单元4021用于执行上述实施例中的一次比特分配和二次比特分配,以得到各个声道的比特数。
[0195]
示例性的,比特分配单元4021通过上述公式(1)和(2),确定立体声处理后的能量/幅度和sum_e
post
。再通过如下公式(11)至(14)确定各个声道对的比特系数,和未组对的单声道的比特系数。本实施例中,第一声道对的比特系数用ratio(l,r)表示,第二声道对的比特系数用ratio(ls,rs)表示,未组对的c声道的比特系数用ratio(c)表示,未组对的lfe声道的比特系数用ratio(lfe)表示。
[0196]
ratio(l,r)=(e
post
(m1) e
post
(s1))/sum_e
post
ꢀꢀꢀ
(11)
[0197]
ratio(ls,rs)=(e
post
(m2) e
post
(s2))/sum_e
post
ꢀꢀꢀ
(12)
[0198]
ratio(c)=e
post
(c)/sum_e
post
ꢀꢀꢀ
(13)
[0199]
ratio(lfe)=e
post
(lfe)/sum_e
post
ꢀꢀꢀ
(14)
[0200]
比特分配单元根据ratio(l,r)、ratio(ls,rs)、ratio(c)、ratio(lfe)、可用比特
数bavail、声道对索引pairidx1和pairidx2、以及各个声道的立体声处理后的能量/幅度e
post
(ch)计算得到各个声道的比特数。声道对索引pairidx1和pairidx2可以是多声道编码处理单元401输出的,该声道对索引pairidx1用于指示l声道和r声道组对,该声道对索引pairidx2用于指示ls声道和rs声道组对。
[0201]
示例性的,可以通过如下公式(15)至(22)确定各个声道的比特数。
[0202]
声道对的比特分配:
[0203]
bits(m1,s1)=bavail*ratio(l,r)
ꢀꢀꢀ
(15)
[0204]
bits(m2,s2)=bavail*ratio(ls,rs)
ꢀꢀꢀ
(16)
[0205]
其中,bits(m1,s1)表示第一声道对的比特数,bits(m2,s2)表示第二声道对的比特数。
[0206]
声道对内声道间的比特分配及未参与组对声道的比特分配:
[0207]
其中,组对声道的声道间的比特分配如下:
[0208]
bits(m1)=bits(m1,s1)*e
post
(m1)/(e
post
(m1) e
post
(s1))
ꢀꢀꢀ
(17)
[0209]
bits(s1)=bits(m1,s1)*e
post
(s1)/(e
post
(m1) e
post
(s1))
ꢀꢀꢀ
(18)
[0210]
bits(m2)=bits(m2,s2)*e
post
(m2)/(e
post
(m2) e
post
(s2))
ꢀꢀꢀ
(19)
[0211]
bits(s2)=bits(m2,s2)*e
post
(s2)/(e
post
(m2) e
post
(s2))
ꢀꢀꢀ
(20)
[0212]
其中,bits(m1)表示m1声道的比特数,bits(s1)表示s1声道的比特数,bits(m2)表示m2声道的比特数,bits(s2)表示s2声道的比特数。
[0213]
未参与组对的声道的比特分配如下:
[0214]
bits(c)=bavail*ratio(c)
ꢀꢀꢀ
(21)
[0215]
bits(lfe)=bavail*ratio(lfe)
ꢀꢀꢀ
(22)
[0216]
其中,bits(c)表示c声道的比特数,bits(lfe)表示lfe声道的比特数。
[0217]
量化熵编码单元4023根据各声道的比特数对经过立体声处理的m1声道信号、s1声道信号、m2声道信号、s2声道信号、c声道信号、lfe声道信号和多声道边信息进行量化和熵编码得到编码声道e1-e6信号。
[0218]
本实施例,以声道对为粒度,对声道对的两个声道进行能量/幅度均衡,由于立体声处理前声道对间的能量/幅度比例不同,所以立体声处理后声道对间的能量/幅度比例也不同,之后再根据立体声处理后的各个声道对的能量/幅度比例进行声道对间的比特分配,最后进行声道对内部的比特分配,可以实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道信号的编码比特不足的问题,以保证解码端重建音频信号的质量。
[0219]
与图5所示实施例的多声道编码处理单元401的能量/幅度均衡的具体实施方式,本技术实施例还提供另一种能量/幅度均衡的方式。以上述5.1声道信号为例做进一步举例说明。
[0220]
各个声道能量/幅度均衡后的能量/幅度均为energy_avg。energy_avg可以通过如下公式(23)确定。
[0221]
energy_avg=avg(energy_l,energy_r,energy_c,energy_ls,energy_rs)
ꢀꢀ
(23)
[0222]
其中,avg(a1,a2,...,an)函数实现输入n个参数a1,a2,...,an的均值。
[0223]
图7为本技术实施例的声道编码单元的处理过程的示意图,如图7所示,上述声道编码单元402可以包括比特分配单元4021、量化熵编码单元4023和比特计算单元4022。本实施例为上述方式二的举例说明。
[0224]
比特分配单元4021用于执行上述实施例中的一次比特分配和二次比特分配,以得到各个声道的比特数。
[0225]
示例性的,比特计算单元4022通过上述公式(3)和(4),确定能量/幅度均衡前的能量/幅度和sum_e
pre
。再通过如下公式(24)至(27)确定各个声道对的比特系数,和未组对的单声道的比特系数。本实施例中,第一声道对的比特系数用ratio(l,r)表示,第二声道对的比特系数用ratio(ls,rs)表示,未组对的c声道的比特系数用ratio(c)表示,未组对的lfe声道的比特系数用ratio(lfe)表示。
[0226]
ratio(l,r)=(e
pre
(l) e
pre
(r))/sum_e
pre
ꢀꢀꢀ
(24)
[0227]
ratio(ls,rs)=(e
pre
(ls) e
pre
(rs))/sum_e
pre
ꢀꢀꢀ
(25)
[0228]
ratio(c)=e
pre
(c)/sum_e
pre
ꢀꢀꢀ
(26)
[0229]
ratio(lfe)=e
pre
(lfe)/sum_e
pre
ꢀꢀꢀ
(27)
[0230]
比特分配单元4021根据ratio(l,r)、ratio(ls,rs)、ratio(c)、ratio(lfe)、可用比特数bavail、声道对索引pairidx1和pairidx2、以及各个声道的立体声处理后的能量/幅度e
post
(ch)计算得到各个声道的比特数。声道对索引pairidx1和pairidx2可以是多声道编码处理单元401输出的,该声道对索引pairidx1用于指示l声道和r声道组对,该声道对索引pairidx2用于指示ls声道和rs声道组对。
[0231]
示例性的,基于上述公式(24)至(27)确定的比特数,再通过上述公式(15)至(22)可以确定各个声道的比特数。
[0232]
量化熵编码单元4023根据各声道的比特数对经过立体声处理的m1声道信号、s1声道信号、m2声道信号、s2声道信号、c声道信号、lfe声道信号和多声道边信息进行量化和熵编码得到编码声道e1-e6信号。
[0233]
本实施例,对所有声道进行能量/幅度均衡后执行立体声处理,虽然立体声处理后各个声道的能量/幅度比例相似,但是本技术实施例在立体声处理之后,根据立体声处理前的各个声道对的能量/幅度比例进行声道对间的比特分配,再根据立体声处理后的能量/幅度进行声道对内部的比特分配。根据立体声处理前的声道对的能量/幅度比例来指导各声道对间的比特分配,由于立体声处理前的声道对的能量/幅度比例不同,所以各声道对间依此进行比特分配,可以实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道信号的编码比特不足的问题,以保证解码端重建音频信号的质量。
[0234]
在一些实施例中,上述声道编码单元402可以包括比特分配单元4021、量化熵编码单元4023和比特计算单元4022,还可以用于实现上述方式三的各个步骤的功能。
[0235]
比特分配单元4021用于执行上述实施例中的一次比特分配和二次比特分配,以得到各个声道的比特数。
[0236]
示例性的,比特分配单元4021通过上述公式(5)至(7),确定能量/幅度均衡前的能量/幅度和sum_e
pre
。再通过如下公式(28)至(31)确定各个声道对的比特系数,和未组对的
单声道的比特系数。本实施例中,第一声道对的比特系数用ratio(l,r)表示,第二声道对的比特系数用ratio(ls,rs)表示,未组对的c声道的比特系数用ratio(c)表示,未组对的lfe声道的比特系数用ratio(lfe)表示。
[0237]
ratio(l,r)=(α(l)*e
pre
(l) α(r)*e
pre
(r))/sum_e
pre
ꢀꢀꢀ
(28)
[0238]
ratio(ls,rs)=(α(ls)*e
pre
(ls) α(rs)*e
pre
(rs))/sum_e
pre
ꢀꢀꢀ
(29)
[0239]
ratio(c)=α(c)*e
pre
(c)/sum_e
pre
ꢀꢀꢀ
(30)
[0240]
ratio(lfe)=α(lfe)*e
pre
(lfe)/sum_e
pre
ꢀꢀꢀ
(31)
[0241]
其中,α(l)表示l声道的加权系数,α(r)表示r声道的加权系数,α(ls)表示ls声道的加权系数,α(rs)表示rs声道的加权系数,α(c)表示c声道的加权系数,α(lfe)表示lfe声道的加权系数。
[0242]
示例性的,基于上述公式(28)至(31)确定的比特数,再通过上述公式(15)至(22)可以确定各个声道的比特数。
[0243]
量化熵编码单元根据各声道的比特数对经过立体声处理的m1声道信号、s1声道信号、m2声道信号、s2声道信号、c声道信号、lfe声道信号和多声道边信息进行量化和熵编码得到编码声道e1-e6信号。
[0244]
本实施例,通过加权系数调整比特分配,可以实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。
[0245]
图8为本技术实施例的另一种多声道音频信号编码方法的流程图,本技术实施例的执行主体可以是上述编码器,如图8所示,本实施例的方法可以包括:
[0246]
步骤501、获取多声道音频信号的当前帧的p个声道的音频信号,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号。
[0247]
其中,一个声道对(channel pair)的音频信号包括两个声道的音频信号。
[0248]
本技术实施例的一个声道对可以是k个声道对中的任意一个。组对的(coupling)两个声道的音频信号即为一个声道对的音频信号。
[0249]
在一些实施例中,p=2k。通过多声道信号的筛选、组对、立体声处理和多声道边信息生成之后,可以获取p个声道的音频信号,也即k个声道对的音频信号。
[0250]
在一些实施例中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,k为正整数,q为正整数。
[0251]
其中,步骤501的具体解释说明可以参见图2所示实施例的步骤101,此处不再赘述。
[0252]
步骤502、根据k个声道对中当前声道对的两个声道的音频信号各自的能量/幅度,对该当前声道对的两个声道的音频信号进行能量/幅度均衡,获取该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度。
[0253]
本技术实施例针对声道对进行能量/幅度均衡,即各个声道对各自进行声道对内的能量/幅度均衡。以k个声道对中当前声道对为例,根据k个声道对中当前声道对的两个声道的音频信号各自的能量/幅度,对该当前声道对的两个声道的音频信号进行能量/幅度均衡,获取该当前声道对的两个声道的能量/幅度均衡后的能量/幅度。
[0254]
无论是p=2k,还是p=2*k q,均可以采用上述步骤502的方式在声道对内进行能量/幅度均衡,以获取当前声道对内的两个声道各自的经能量/幅度均衡后的能量/幅度。
[0255]
示例性的,可以采用上述公式(8)确定该当前声道对的两个声道的能量/幅度均衡后的能量/幅度。即将公式(8)中的l和r替换为该当前声道对的两个声道。
[0256]
步骤503、根据该当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数。
[0257]
以k个声道对中当前声道对为例,根据该当前声道对的两个声道各自的能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数。该当前声道对可以是k个声道对中的任意一个声道对。
[0258]
对于p=2*k,本技术实施例的方法可以根据k个声道对各自的两个声道的音频信号的能量/幅度均衡后的能量/幅度,确定当前帧的能量/幅度和。根据当前帧的能量/幅度和、当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度以及可用比特数,确定当前声道对的两个声道各自的比特数。
[0259]
例如,根据当前声道对的两个声道的音频信号各自的经能量/幅度均衡后的能量/幅度在该能量/幅度和中的占比,以及可用比特数,确定当前声道对的两个声道各自的比特数。
[0260]
对于p=2*k q,本技术实施例的方法可以根据k个声道对各自的两个声道的音频信号的经能量/幅度均衡后的能量/幅度、以及q个单声道的音频信号的经能量/幅度均衡后的能量/幅度,确定当前帧的能量/幅度和。根据该能量/幅度和、当前声道对的两个声道的音频信号各自的能量/幅度以及可用比特数,确定当前声道对的两个声道各自的比特数。根据该能量/幅度和、q个单声道的音频信号各自的经能量/幅度均衡后的能量/幅度以及可用比特数,确定q个单声道各自的比特数。
[0261]
例如,根据当前声道对的两个声道的音频信号各自的能量/幅度在该能量/幅度和中的占比,以及可用比特数,确定当前声道对的两个声道各自的比特数。根据q个单声道的音频信号各自的经能量/幅度均衡后的能量/幅度在该能量/幅度和中的占比,以及可用比特数,确定q个单声道各自的比特数。
[0262]
其中,q个单声道的音频信号各自的经能量/幅度均衡后的能量/幅度可以等于各自的能量/幅度均衡前的能量/幅度,且约等于各自的经立体声处理后的能量/幅度。k个声道对各自的两个声道的音频信号的经能量/幅度均衡后的能量/幅度可以约等于各自的两个声道的音频信号的经立体声处理后的能量/幅度。
[0263]
示例性的,可以采用上述公式(1)确定能量/幅度和,即将公式(1)中的经立体声处理后的能量/幅度替换为本实施例的各个声道的经能量/幅度均衡后的能量/幅度。
[0264]
步骤504、根据该当前声道对的两个声道各自的比特数分别对该两个声道的音频信号进行编码,获取编码码流。
[0265]
分别对当前声道对中两个声道的音频信号进行编码,可以包括分别对当前声道对中两个声道的音频信号进行量化、熵编码以及码流复用,以获取编码码流。
[0266]
对于p=2k,根据k个声道对各自的比特数,分别对p个声道的音频信号进行量化、熵编码以及码流复用,获取编码码流。
[0267]
对于p=2*k q,根据k个声道对各自的比特数分别对k个声道对的音频信号进行量化、熵编码以及码流复用,根据q个单声道各自的比特数分别对该q个单声道的音频信号进行量化、熵编码以及码流复用,获取编码码流。
[0268]
本实施例,获取多声道音频信号的当前帧的p个声道的音频信号,该p个声道的音频信号包括k个声道对的音频信号,根据k个声道对中当前声道对的两个声道的音频信号各自的能量/幅度,对该当前声道对的两个声道的音频信号进行能量/幅度均衡,获取该当前声道对的两个声道的能量/幅度均衡后的能量/幅度,根据该当前声道对的两个声道各自的能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数,根据该当前声道对的两个声道各自的比特数分别对该两个声道的音频信号进行编码,获取编码码流。通过声道对内的能量/幅度均衡,基于能量/幅度均衡后的能量/幅度进行比特分配,从而实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道信号的编码比特不足的问题,以保证解码端重建音频信号的质量。
[0269]
以图5和图6所示实施例对图8所示实施例进行举例解释说明。
[0270]
图5所示实施例的多声道编码处理单元401可以执行图8所示实施例的步骤501和步骤502,声道编码单元402可以执行图8所示实施例的步骤503。在声道编码单元402可以执行图8所示实施例的步骤503时,与图5和图6所示实施例的区别在于,比特分配单元4021可以通过如下方式确定各个声道的比特数。
[0271]
本技术实施例的比特分配单元4021可以根据p个声道各自的能量/幅度均衡后的能量/幅度进行比特分配。具体可以采用如下公式(31)至(36)确定。
[0272]
bits(m1)=bavail*e
post
(m1)/sum_e
post
ꢀꢀꢀ
(31)
[0273]
bits(s1)=bavail*e
post
(s1)/sum_e
post
ꢀꢀꢀ
(32)
[0274]
bits(m2)=bavail*e
post
(m2)/sum_e
post
ꢀꢀꢀ
(33)
[0275]
bits(s2)=bavail*e
post
(s2)/sum_e
post
ꢀꢀꢀ
(34)
[0276]
bits(c)=bavail*e
post
(c)/sum_e
post
ꢀꢀꢀ
(35)
[0277]
bits(lfe)=bavail*e
post
(lfe)/sum_e
post
ꢀꢀꢀ
(36)
[0278]
采用公式(31)至(36)进行比特分配时,需要多声道编码处理单元401采用声道对的能量/幅度均衡方式,即声道对内的能量/幅度均衡。其中,sum_e
post
可以采用上述公式(1)确定。
[0279]
l声道和r声道的能量/幅度均衡前的能量/幅度和e(l,r),经过能量/幅度均衡后,l声道和r声道的能量/幅度和并未发生变化,仍为e(l,r)。l声道和r声道经过立体声处理后,l声道和r声道的立体声处理后的能量/幅度和变为e
post
(m1,s1)。因为立体声处理会略降低l声道和r声道之间冗余并且满足e
post
(m1,s1)≈e(l,r)。也就是说,当l声道和r声道的能量/幅度和e(l,r)》》(远大于)ls声道和rs声道的能量/幅度和e(ls,rs)时,通过本技术实施例的多声道编码处理单元401和本实施例的比特分配单元4021的处理,可以使e(l,r)分配的比特bits(m1) bits(s1)远大于bits(m2) bits(s2),从而达到了声道对之间根据能量/幅度分配比特的目的。
[0280]
bits(m1) bits(s1)=bavail*e
post
(m1)/sum_e
post
bavail*e
post
(s1)/sum_e
post
[0281]
=bavail*e
post
(m1,s1)/sum_e
post
[0282]
》》bavail*e
post
(m2,s2)/sum_e
post
[0283]
=bits(m2) bits(s2)
[0284]
本实施例,通过声道对内的能量/幅度均衡,基于能量/幅度均衡后的能量/幅度进行比特分配,从而实现合理分配多声道信号编码中各个声道的比特数,以保证解码端重建音频信号的质量。例如,对于声道对间能量/幅度差异较大的情况,通过本技术实施例的方法,可以解决能量/幅度大的声道信号的编码比特不足的问题,以保证解码端重建音频信号的质量。
[0285]
基于与上述方法相同的发明构思,本技术实施例还提供了一种音频信号编码装置,该音频信号编码装置可以应用于音频编码器。
[0286]
图9为本技术实施例的一种音频信号编码装置的结构示意图,如图9所示,该音频信号编码装置700包括:获取模块701、比特分配模块702、以及编码模块703。
[0287]
获取模块701,用于获取多声道音频信号的当前帧的p个声道的音频信号和p个声道的音频信号各自的能量/幅度,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号,k为正整数。
[0288]
比特分配模块702,用于根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对各自的比特数。
[0289]
编码模块703,用于根据该k个声道对各自的比特数,对该p个声道的音频信号进行编码,以获取编码码流。
[0290]
其中,该p个声道中的一个声道的音频信号的能量/幅度包括该一个声道的音频信号在时域的能量/幅度、该一个声道的音频信号经时频变换后的能量/幅度、该一个声道的音频信号经时频变换以及白化后的能量/幅度、该一个声道的音频信号经能量/幅度均衡后的能量/幅度、或该一个声道的音频信号经立体声处理后的能量/幅度中至少一项。
[0291]
在一些实施例中,编码模块703用于根据k个声道对中的当前声道对的比特数以及当前声道对中两个声道的音频信号各自的立体声处理后的能量/幅度,确定当前声道对中两个声道各自的比特数;根据当前声道对中两个声道各自的比特数分别对两个声道的音频信号进行编码。
[0292]
在一些实施例中,比特分配模块702用于:根据该p个声道的音频信号各自的能量/幅度,确定当前帧的能量/幅度和。根据k个声道对的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定k个声道对各自的比特系数。根据该k个声道对各自的比特系数和该可用比特数,确定k个声道对各自的比特数。
[0293]
在一些实施例中,该比特分配模块702用于:根据该p个声道的音频信号各自的立体声处理后的能量/幅度,确定该当前帧的能量/幅度和。
[0294]
在一些实施例中,该比特分配模块702用于:
[0295]
根据公式计算当前帧的能量/幅度和sum_e
post

[0296]
其中,
[0297]
其中,ch表示声道索引,e
post
(ch)表示声道索引为ch的声道的音频信号经立体声处理后的能量/幅度,samplecoef
post
(ch,i)表示立体声处理后的ch声道的当前帧的第i个系数,n表示该当前帧的系统的个数,n取大于1的正整数。
[0298]
在一些实施例中,该比特分配模块702用于:根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度,确定该当前帧的能量/幅度和。
[0299]
在一些实施例中,该比特分配模块702用于:根据公式计算当前帧的能量/幅度和sum_e
pre
,其中,ch表示声道索引,e
pre
(ch)表示声道索引为ch的声道的音频信号经能量/幅度均衡前的能量/幅度。
[0300]
在一些实施例中,该比特分配模块702用于:根据该p个声道的音频信号各自的能量/幅度均衡前的能量/幅度和该p个声道各自的加权系数,确定该当前帧的能量/幅度和,该加权系数小于或等于1。
[0301]
在一些实施例中,该比特分配模块702用于:
[0302]
根据公式计算当前帧的能量/幅度和sum_e
pre

[0303]
其中,α(ch)为ch声道的加权系数,一个声道对的两个声道的加权系数相同,且一个声道对的两个声道的加权系数大小与该两个声道之间的归一化相关值成反比。
[0304]
在一些实施例中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,k为正整数,q为正整数。该比特分配模块702用于:根据该p个声道的音频信号各自的能量/幅度,和可用比特数,确定k个声道对的各自的比特数和q个单声道各自的比特数。编码模块703用于根据k个声道对各自的比特数分别对k个声道对的音频信号进行编码,根据q个单声道各自的比特数分别对该q个单声道的音频信号进行编码。
[0305]
在一些实施例中,该比特分配模块702用于:根据p个声道的音频信号各自的能量/幅度,确定当前帧的能量/幅度和。根据k个声道对的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该k个声道对各自的比特系数。根据该q个单声道的音频信号各自的能量/幅度,与该当前帧的能量/幅度和,确定该q个单声道各自的比特系数。根据k个声道对各自的比特系数和所述可用比特数,确定k个声道对各自的比特数。根据q个单声道各自的比特系数和可用比特数,确定q个单声道各自的比特数。
[0306]
在一些实施例中,该装置还可以包括:能量/幅度均衡模块704。该能量/幅度均衡模块704用于根据该p个声道的音频信号,获取p个声道的经能量/幅度均衡后的音频信号。前述的一个声道的音频信号经能量/幅度均衡后的能量/幅度即是通过该一个声道的能量/幅度均衡后的音频信号获得的。
[0307]
该编码模块703用于根据该k个声道对各自的比特数,对该p个声道的经能量/幅度均衡后的音频信号进行编码。
[0308]
需要说明的是,上述获取模块701、比特分配模块702、以及编码模块703可应用于编码端的音频信号编码过程。
[0309]
还需要说明的是,获取模块701、比特分配模块702、以及编码模块703的具体实现过程可参考上述方法实施例的详细描述,为了说明书的简洁,这里不再赘述。
[0310]
本技术实施例还提供另一种音频信号编码装置,该音频信号编码装置的可以采用如图9所示的结构示意图,本实施例的音频信号编码装置用于执行图8所示实施例的方法。
[0311]
在一些实施例中,与图9所示实施例的各个模块的功能不同,本实施例中,获取模块701用于获取多声道音频信号的当前帧的p个声道的音频信号,p为大于1的正整数,该p个声道的音频信号包括k个声道对的音频信号,k为正整数。
[0312]
能量/幅度均衡模块704,用于根据该k个声道对中当前声道对的两个声道的音频
信号各自的能量/幅度,对该当前声道对的两个声道的音频信号进行能量/幅度均衡,获取该当前声道对的两个声道的音频信号各自的能量/幅度均衡后的能量/幅度。
[0313]
比特分配模块702,用于根据该当前声道对的两个声道的音频信号各自的能量/幅度均衡后的能量/幅度,和可用比特数,确定该当前声道对的两个声道各自的比特数。
[0314]
编码模块703,用于根据该当前声道对的两个声道各自的比特数分别对该两个声道的音频信号进行编码,以获取编码码流。
[0315]
在一些实施例中,比特分配模块702用于根据p个声道的音频信号各自的能量/幅度均衡后的能量/幅度,确定当前帧的能量/幅度和。根据该当前帧的能量/幅度和、该当前声道对的两个声道的音频信号各自的能量/幅度均衡后的能量/幅度以及可用比特数,确定该当前声道对的两个声道各自的比特数。
[0316]
在一些实施例中,该p个声道的音频信号还包括未组对的q个单声道的音频信号,p=2*k q,k为正整数,q为正整数。
[0317]
比特分配模块702用于根据所述k个声道对各自的两个声道的音频信号的能量/幅度均衡后的能量/幅度、以及该q个单声道的音频信号的能量/幅度均衡后的能量/幅度,确定当前帧的能量/幅度和。根据该当前帧的能量/幅度和、该当前声道对的两个声道的音频信号各自的能量/幅度以及可用比特数,确定该当前声道对的两个声道各自的比特数。根据该当前帧的能量/幅度和、该q个单声道的音频信号各自的能量/幅度均衡后的能量/幅度以及可用比特数,确定该q个单声道各自的比特数。
[0318]
编码模块703,用于根据该k个声道对各自的比特数分别对该k个声道对的音频信号进行编码,根据该q个单声道各自的比特数分别对该q个单声道的音频信号进行编码,以获取编码码流。
[0319]
需要说明的是,上述获取模块701、比特分配模块702、能量/幅度均衡模块704以及编码模块703可应用于编码端的音频信号编码过程。
[0320]
还需要说明的是,上述获取模块701、比特分配模块702、能量/幅度均衡模块704以及编码模块703的具体实现过程可参考上述图8所示方法实施例的详细描述,为了说明书的简洁,这里不再赘述。
[0321]
基于与上述方法相同的发明构思,本技术实施例提供一种音频信号编码器,音频信号编码器用于编码音频信号,包括:如执行如上述一个或者多个实施例中所述的编码器,其中,音频信号编码装置用于编码生成对应的码流。
[0322]
基于与上述方法相同的发明构思,本技术实施例提供一种用于编码音频信号的设备,例如,音频信号编码设备,请参阅图10所示,音频信号编码设备800包括:
[0323]
处理器801、存储器802以及通信接口803(其中音频信号编码设备800中的处理器801的数量可以一个或多个,图10中以一个处理器为例)。在本技术的一些实施例中,处理器801、存储器802以及通信接口803可通过总线或其它方式连接,其中,图10中以通过总线连接为例。
[0324]
存储器802可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器802的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,nvram)。存储器802存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各
种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
[0325]
处理器801控制音频编码设备的操作,处理器801还可以称为中央处理单元(central processing unit,cpu)。具体的应用中,音频编码设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0326]
上述本技术实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成上述方法的步骤。
[0327]
通信接口803可用于接收或发送数字或字符信息,例如可以是输入/输出接口、管脚或电路等。举例而言,通过通信接口803发送上述编码码流。
[0328]
基于与上述方法相同的发明构思,本技术实施例提供一种音频编码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如上述一个或者多个实施例中所述的多声道音频信号编码方法的部分或全部步骤。
[0329]
基于与上述方法相同的发明构思,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行如上述一个或者多个实施例中所述的多声道音频信号编码方法的部分或全部步骤的指令。
[0330]
基于与上述方法相同的发明构思,本技术实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述一个或者多个实施例中所述的多声道音频信号编码方法的部分或全部步骤。
[0331]
以上各实施例中提及的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signal processor,dsp)、特定应用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本技术实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0332]
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0333]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0334]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0335]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0336]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0337]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0338]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0339]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献