音频编解码方法和装置制造方法及图纸

技术编号:32962639 阅读:30 留言:0更新日期:2022-04-09 10:55
本申请提供一种音频编解码方法和装置。本申请音频编解码方法包括:音频发送设备确定待编码的当前音频帧的信号类型和使用场景;根据当前音频帧的信号类型和当前音频帧的使用场景确定当前音频帧的初始编码方式;根据当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定当前音频帧的最终编码方式,最终编码方式包括时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;根据当前音频帧的最终编码方式对当前音频帧进行编码;音频接收设备获取码流;解析码流以获取待解码的码流数据和解码方式的指示信息;根据解码方式对码流数据进行解码。本申请具有音质高且根据信号特点和编码模式进行不同编码方式的自适应切换的优点。的自适应切换的优点。的自适应切换的优点。

【技术实现步骤摘要】
音频编解码方法和装置


[0001]本申请涉及音频编解码技术,尤其涉及音频编解码方法和装置。

技术介绍

[0002]随着真无线立体声(true wireless stereo,TWS)耳机、智能音箱和智能手表等无线蓝牙设备在人们日常生活中的广泛普及和使用,人们在各种场景下对高质量音乐播放体验的需求也变得越来越迫切,尤其是在地铁、机场、火车站等蓝牙信号易受干扰的环境中。由于蓝牙信道对数据传输大小的限制,音乐数据流必须经过蓝牙设备发送端的音频编码器进行数据压缩后才能传输到蓝牙设备接收端进行解码,这样同时也促使了各种蓝牙音频编解码器的蓬勃发展。
[0003]蓝牙音频编解码器主要应用于蓝牙互联的设备(耳机、音箱、智能可穿戴设备等)之间,以在不同场景需求下提供一个高质量的音乐传输和播放。目前音频编解码技术分为两种,一种是时域编码技术,例如可以是基于线性预测编码(linear predictive coding,LPC)方式的编解技术,对语音等具有明显谱包络的音频信号有很高的编码效率。另一种是频域编码技术,例如可以是基于改进的离散余弦变换(modified discrete cosine transform,MDCT)方式的编解码技术,对音乐等频率丰富的音频信号有很高的编码效率。
[0004]因此,在LPC时域编解码和MDCT频域编解码之间实现灵活切换,可以提高音频编解码后的音质,对高清音频场景具有非常重要的意义。

技术实现思路

[0005]本申请提供一种音频编解码方法和装置,具有能够根据信号特点和编码模式进行不同编码方式的自适应切换。
[0006]第一方面,本申请提供一种音频编码方法,包括:确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景或者高音质场景;根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,所述初始编码方式包括时域编码方式或者频域编码方式;根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,所述最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。
[0007]音频帧可以是音频发送设备发送给音频接收设备的音频中的任意一帧。本申请中每次编码的对象可以是音频中的一帧音频帧,即本申请提供的音频编码方法是针对一帧音频帧的,下文确定编码方式的方法适用于音频中的每一帧音频帧。因此为了区分,将音频发送设备正在进行编码的音频帧称为音频帧或者当前音频帧,将音频发送设备仅先于音频帧编码的音频帧称为上一帧音频帧。
[0008]音频帧的信号类型可以包括语音类型或者音乐类型。音频帧的信号类型可以通过音频帧的属性信息确定,例如手机从音源文件中读取到待传输的音频后,也可从该音源文
件中读取其属性信息;也可以通过音频帧的播放方式确定,例如,如果用户通过手机打电话,则手机传输给蓝牙耳机的音频帧属于语音类型,如果用户在手机上用应用程序(application,APP)播放音乐,则手机传输给蓝牙音响的音频帧属于音乐类型。除此之外,音频发送设备还可以通过其他方式获取音频帧的类型,本申请对此不做具体限定。
[0009]音频帧的使用场景可以包括低延时场景或者高音质场景。当编解码的帧长为N时,时域编码的延时为N个样点数据或者N+D个样点数据,频域编码的延时为2N个样点数据或者2N-2M个样点数据,本申请中默认低延时场景指的是时域编码,因为时域编码的延时比频域编码的延时低。由于频域编码可以结合心里声学模型,对于时域平稳信号的编码质量大于时域编码方式,而对于非时域平稳信号,时域编码方式的编码质量高,本申请中默认的高音质模式指的是时域和频域融合的编码方式,无论对于时域平稳信号还是非时域平稳信号都具有高质量的编码效果。
[0010]音频帧的使用场景可以通过用户在手机上APP的交互界面上点击的控件、选项等确定,例如用户在手机上连接蓝牙时,在弹出的界面上选择低延时场景或者高音质场景;也可以通过用户在手机上打开的APP类型确定,例如,如果该APP是游戏APP、直播APP、打电话APP或者K歌APP等,则使用场景是低延时场景;如果该APP是音频播放器APP,视频播放器APP、K歌APP、录音APP或者广播APP,则使用场景是高音质场景。除此之外,音频发送设备还可以通过其他方式获取音频帧的使用场景,本申请对此不做具体限定。
[0011]编码方式包括时域编码方式或者频域编码方式。当音频帧的使用场景为低延时场景时,确定音频帧的编码方式为时域编码方式。当音频帧的使用场景为高音质场景时,将音频帧拆分为多个音频子帧,计算多个音频子帧的能量方差;判断多个音频子帧的能量方差是否大于第一设定阈值;当多个音频子帧的能量方差大于第一设定阈值时,采用LPC编码对音频帧进行滤波得到滤波后的音频帧的能量;判断滤波后的音频帧的能量与音频帧的能量之比是否大于第二设定阈值;当滤波后的音频帧的能量与音频帧的能量之比大于第二设定阈值时,确定音频帧是时域平稳信号;当滤波后的音频帧的能量与音频帧的能量之比小于第二设定阈值时,确定音频帧不是时域平稳信号;当多个音频子帧的能量方差小于第一设定阈值时,采用MDCT变换对音频帧进行变换得到变换后的音频帧的各个频点的能量方差;判断变换后的音频帧的各个频点的能量方差是否大于第三设定阈值;当变换后的音频帧的各个频点的能量方差大于第三设定阈值时,确定音频帧是时域平稳信号;当变换后的音频帧的各个频点的能量方差小于第三设定阈值时,确定音频帧不是时域平稳信号。当音频帧是时域平稳信号时,确定音频帧的编码方式为频域编码方式;当音频帧不是时域平稳信号时,确定音频帧的编码方式为时域编码方式。
[0012]需要说明的是,上述分别与第一设定阈值、第二设定阈值、第三设定阈值的比较中,等于这一情况可以归于大于的情况进行处理,也可以归入小于的情况进行处理,本申请对此不作具体限定。
[0013]可选的,当音频帧为语音类型时,确定音频帧的编码方式为时域编码方式。这在相关技术中已采用,此处不再赘述。
[0014]可见,时域编码方式除了可以直接用于语音类型的音频帧,还可以用于低延时场景下的音乐类型的音频帧,以及高音质场景下的是音乐类型但不是时域平稳信号的音频帧,这样可以充分发挥出时域编码方式、尤其是LPC编码方式的低延时优势,以及对语音类
型和非平稳信号的音频帧的高效编码的优势。
[0015]上述方法确定了音频帧的编码方式,而上一帧音频帧的最终编码方式在对其编码时已经确定了是上述四种最终编码方式的其中之一,因此有以下几种情况:
[0016](1)当音频帧的编码方式和上一帧音频帧的编码方式均为频域编码方式时,确定音频帧的最终编码方式为频域编码方式;或者,
[0017](2)当音频帧的编码方式为频域编码方式,上一帧音频帧的编码方式为时域编码方式时,确定音频帧的最终编码方式为时域编码向频域编码切换编码本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种音频编码方法,其特征在于,包括:确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景或者高音质场景;根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,所述初始编码方式包括时域编码方式或者频域编码方式;根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,所述最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。2.根据权利要求1所述的方法,其特征在于,所述根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,包括:当所述当前音频帧的信号类型为音乐类型,且所述使用场景为低延时场景时,确定所述当前音频帧的初始编码方式为时域编码方式;或者,当所述当前音频帧的信号类型为音乐类型,且所述使用场景为高音质场景时,判断所述当前音频帧是否为时域平稳信号;若所述当前音频帧是时域平稳信号,则确定所述当前音频帧的初始编码方式为频域编码方式;或者,若所述当前音频帧不是时域平稳信号,则确定所述当前音频帧的初始编码方式为时域编码方式。3.根据权利要求2所述的方法,其特征在于,所述判断所述当前音频帧是否为时域平稳信号,包括:将所述当前音频帧拆分为多个音频子帧;计算所述多个音频子帧的能量方差;当所述多个音频子帧的能量方差大于第一设定阈值时,采用线性预测编码LPC的滤波器对所述音频帧进行滤波得到滤波后的音频帧的能量,根据所述滤波后的音频帧的能量确定所述音频帧是否为所述时域平稳信号;当所述多个音频子帧的能量方差小于所述第一设定阈值时,采用改进的离散余弦变换MDCT对所述音频帧进行变换得到变换后的音频帧的各个频点的能量方差,根据所述变换后的音频帧的各个频点的能量方差确定所述音频帧是否为所述时域平稳信号。4.根据权利要求3所述的方法,其特征在于,所述根据所述滤波后的音频帧的能量确定所述音频帧是否为所述时域平稳信号,包括:若所述滤波后的音频帧的能量与所述音频帧的能量之比大于第二设定阈值时,则所述音频帧是所述时域平稳信号;若所述滤波后的所述音频帧的能量与所述音频帧的能量之比小于所述第二设定阈值时,则所述音频帧不是所述时域平稳信号。5.根据权利要求3所述的方法,其特征在于,所述根据所述变换后的音频帧的各个频点的能量方差确定所述音频帧是否为所述时域平稳信号,包括:若所述变换后的音频帧的各个频点的能量方差大于第三设定阈值,则所述音频帧是所述时域平稳信号;若所述变换后的音频帧的各个频点的能量方差小于所述第三设定阈值,则所述音频帧不是所述时域平稳信号。6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,包括:
当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式。7.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述时域编码方式时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:将所述上一帧音频帧的后N/2个样点数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第一数据,N表示音频帧的长度;对所述第一数据进行时域编码。8.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述频域编码方式时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:将所述上一帧音频帧的N个样点数据和所述当前音频帧的N个样点数据拼接得到长度为2N的第二数据,N表示音频帧的长度;对所述第二数据进行加窗处理得到长度为2N的第三数据;对所述第三数据进行频域编码。9.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述频域编码向时域编码切换编码方式时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:对所述上一帧音频帧的N个样点数据进行加窗处理得到长度为N的第四数据,N表示音频帧的长度;对所述第四数据进行以中心位置为奇对称点的奇对称折叠处理得到长度为N/2的第五
数据;将所述第五数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第六数据;对所述第六数据进行时域编码。10.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N个样点数据时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第七数据,N表示音频帧的长度;对所述第七数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第八数据;将所述上一帧音频帧的后N/2个样点数据和所述第八数据拼接得到长度为N的第九数据;对所述第九数据进行时域编码。11.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N+D个样点数据时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第十数据;对所述第十数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第十一数据,N表示音频帧的长度;对所述第十一数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第十二数据,所述第十二数据的前N/2个样点数据是所述第十一数据,所述第十二数据的后N/2个样点数据是长度为N/2的第十三数据;将所述第十一数据和所述第十三数据的前D个样点数据拼接得到长度为N/2+D的第十四数据,D表示所述时域编码方式中的QMF的时延;对所述第十四数据进行插值处理得到长度为N/2第十五数据;将所述上一帧音频帧的后N/2个样点数据和所述第十五数据拼接得到长度为N的第十六数据;对所述第十六数据进行时域编码。12.根据权利要求1-11中任一项所述的方法,其特征在于,所述当前音频帧为脉冲编码调制PCM信号;或者,所述当前音频帧为PCM信号经正交镜像变换QMF得到的信号;或者,所述当前音频帧为PCM信号经LPC逆滤波得到的残差信号。13.一种音频解码方法,其特征在于,包括:获取码流;解析所述码流以获取待解码的码流数据和解码方式的指示信息,所述解码方式包括时域解码方式、频域解码方式、时域解码向频域解码切换解码方式或者频域解码向时域解码切换解码方式;根据所述解码方式对所述码流数据进行解码。14.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述时域解码方式
时,所述根据所述解码方式对所述码流数据进行解码,包括:对所述码流数据进行时域解码得到长度为N的第十七数据,所述第十七数据的后N/2个样点数据是当前音频帧的前N/2个样点数据,所述第十七数据的前N/2个样点数据是所述当前音频帧的上一帧音频帧的后N/2个样点数据,N表示音频帧的长度;将缓存的所述上一帧音频帧的前N/2个样点数据和所述第十七数据的前N/2个样点数据拼接得到所述上一帧音频帧的数据;将所述第十七数据的后N/2个样点数据存入缓存中。15.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,且上一帧音频帧的解码方式为所述时域解码向频域解码切换解码方式时,所述根据所述解码方式对所述码流数据进行解码,包括:对所述码流数据进行频域解码得到长度为2N的第十八数据,N表示音频帧的长度;将所述第十八数据的前N个样点数据的前N/2个样点数据和所述前N/2个样点数据之后的D个样点数据拼接得到长度为N/2+D的第十九数据,D表示所述时域编码方式中的正交镜像变换QMF的时延;对所述第十九数据进行插值处理得到长度为N/2第二十数据;将所述第十八数据的前N个样点数据的后N/2个样点数据和所述后N/2个样点数据之前的D个样点数据拼接得到长度为N/2+D的第二十一数据;对所述第二十一数据进行插值处理得到长度为N/2第二十二数据;将所述第二十数据和所述第二十二数据拼接得到长度为N的第二十三数据;将所述第二十三数据和上一次频域解码得到的缓存中的N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第十八数据的后N个样点数据存入缓存中。16.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为所述频域解码方式时;或者,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N个样点数据时,所述根据所述解码方式对所述码流数据进行解码,包括:对所述码流数据进行频域解码得到长度为2N的第二十四数据;将所述第二十四数据的前N个样点数据和上一次频域解码得到的长度为2N的第二十五数据的后N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第二十四数据的后N个样点数据存入缓存中。17.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N个样点数据,N表示音频帧的长度时,所述根据所述解码方式对所述码流数据进行解码,包括:对所述码流数据进行时域解码得到长度为N的第二十六数据;将所述第二十六数据的前N/2个样点数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第二十七数据;将所述第二十七数据与上一次频域解码得到的长度为2N的第二十八数据的后N个样点数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;
将所述第二十六数据的后N/2个样点数据存入缓存中。18.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延时,所述根据所述解码方式对所述码流数据进行解码,包括:对所述码流数据进行时域解码得到长度为N的第二十九数据;将所述第二十九数据的前N/2个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2个第三十数据;对所述第三十数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第三十一数据;将上一次频域解码得到的长度为2N的第三十二数据的后N个样点数据的前N/2-D个样点数据进行插值处理得到长度为N/2的第三十三数据;将所述第三十二数据的后N个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2的第三十四数据;将所述第三十三数据和所述第三十四数据拼接得到长度为N的第三十五数据;将所述第三十一数据和所述第三十五数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;将所述第二十九数据的后N/2个样点数据存入缓存中。19.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述时域解码向频域解码切换解码方式时,所述根据所述解码方式对所述码流数据进行解码,包括:对所述码流数据进行时域解码得到长度为N的第三十六数据,N表示音频帧的长度;将上一次时域解码得到的长度为N的第三十七数据的后N/2个样点数据和所述第三十六数据的前N/2个样点数据拼接得到长度为N的上一帧音频帧的数据;对所述第三十六数据的后N/2个样点数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三十八数据;将所述第三十八数据存入缓存中。20.根据权利要求13-19中任一项所述的方法,其特征在于,所述上一帧音频帧为脉冲编码调制PCM信号;或者,所述上一帧音频帧为经正交镜像变换QMF得到的PCM信号;或者,所述上一帧音频帧为经LPC滤波得到的PCM信号。21.一种音频编码装置,其特征在于,包括:确定模块,用于确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景...

【专利技术属性】
技术研发人员:王萌王卓杜春晖范泛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1