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

技术编号:33507522 阅读:25 留言:0更新日期:2022-05-19 01:16
本申请提供一种音频编解码方法和装置。本申请音频编解码方法,包括:获得待编码的当前音频帧的设定码率和上一帧音频帧的最终编码方式,最终编码方式包括第一码率编码方式、第二码率编码方式、第一码率编码向第二码率编码切换编码方式或者第二码率编码向第一码率编码切换编码方式;根据设定码率和上一帧音频帧的最终编码方式确定当前音频帧的最终编码方式;根据当前音频帧的最终编码方式对当前音频帧进行编码。音频发送设备将码流信息发送给音频接收设备。解析码流信息以获得解码方式和编码码流;音频接收设备根据解码方式对编码码流进行解码以获得目标音频帧。本申请使得在符合蓝牙信道对数据传输大小限制的前提下,最大化保证音频的音质。保证音频的音质。保证音频的音质。

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


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

技术介绍

[0002]随着真无线立体声(true wireless stereo,TWS)耳机、智能音箱和智能手表等无线蓝牙设备在人们日常生活中的广泛普及和使用,人们在各种场景下对高质量音乐播放体验的需求也变得越来越迫切,尤其是在地铁、机场、火车站等蓝牙信号易受干扰的环境中。由于蓝牙信道对数据传输大小的限制,音乐数据流必须经过蓝牙设备发送端的音频编码器进行数据压缩后才能传输到蓝牙设备接收端进行解码,这样同时也促使了各种蓝牙音频编解码器的蓬勃发展。
[0003]蓝牙音频编解码器主要应用于蓝牙互联的设备(耳机、音箱、智能可穿戴设备等)之间,以在不同场景需求下提供一个高质量的音乐传输和播放。目前音频编解码技术分为两种,一种是高码率编解码技术,可以适用于对蓝牙信道传输质量有较高需求的场景,另一种是低码率编解码技术,可以适用于对音质有较高需求的场景。
[0004]因此,如何在高码率编解码和低码率编解码之间实现平滑过渡,是满足用户在任意场景下对高本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种音频编码方法,其特征在于,包括:获得待编码的当前音频帧的设定码率和上一帧音频帧的最终编码方式,所述最终编码方式包括第一码率编码方式、第二码率编码方式、第一码率编码向第二码率编码切换编码方式或者第二码率编码向第一码率编码切换编码方式,其中,第一码率低于第二码率;根据所述设定码率和所述上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式;根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。2.根据权利要求1所述的方法,其特征在于:当第一码率编码处理的帧长和第二码率编码处理的帧长相同,且所述第一码率编码处理的编解码的总时延与所述第二码率编码处理的编解码的总时延相同时,所述根据所述设定码率和所述上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,包括:当所述设定码率小于设定阈值,且所述上一帧音频帧的最终编码方式为第一码率编码方式时,确定所述当前音频帧的最终编码方式为第一码率编码方式;或者,当所述设定码率小于设定阈值,且所述上一帧音频帧的最终编码方式为第二码率编码方式时,确定所述当前音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式;或者,当所述设定码率小于设定阈值,且所述上一帧音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式时,确定所述当前音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式;或者,当所述设定码率小于设定阈值,且所述上一帧音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式时,确定所述当前音频帧的最终编码方式为第一码率编码方式;或者,当所述设定码率大于设定阈值,且所述上一帧音频帧的最终编码方式为第一码率编码方式时,确定所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式;或者,当所述设定码率大于设定阈值,且所述上一帧音频帧的最终编码方式为第二码率编码方式时,确定所述当前音频帧的最终编码方式为第二码率编码方式;或者,当所述设定码率大于设定阈值,且所述上一帧音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式时,确定所述当前音频帧的最终编码方式为第二码率编码方式;或者,当所述设定码率大于设定阈值,且所述上一帧音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式时,确定所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式;其中,所述设定阈值的取值与音频帧的声道数相关联;或者当第一码率编码处理的帧长和第二码率编码处理的帧长不相同时,所述根据所述设定码率和所述上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,包括:当所述设定码率小于设定阈值,且所述上一帧音频帧的最终编码方式为第一码率编码方式时,确定所述当前音频帧的最终编码方式为第一码率编码方式;或者,
当所述设定码率小于设定阈值,且所述上一帧音频帧的最终编码方式为第二码率编码方式时,确定所述当前音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式,且启动第一计数器,所述第一计数器的初始值为第一设定值,所述第一计数器在值为0时终止;或者,当所述设定码率大于设定阈值,且所述上一帧音频帧的最终编码方式为第二码率编码方式时,确定所述当前音频帧的最终编码方式为第二码率编码方式;或者,当所述设定码率大于设定阈值,且所述上一帧音频帧的最终编码方式为第一码率编码方式时,确定所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式,且启动第二计数器,所述第二计数器的初始值为第一设定值,所述第二计数器在值为0时终止;或者,当所述上一帧音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式,且所述第一计数器的值大于0时,将所述第一计数器的值减1;若所述第一计数器的值仍大于0,则确定所述当前音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式;或者,若所述第一计数器的值为0,则确定所述当前音频帧的最终编码方式为第一码率编码方式;或者,当所述上一帧音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式,且所述第二计数器的值大于0时,将所述第二计数器的值减1;若所述第二计数器的值仍大于0,则确定所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式;或者,若所述第二计数器的值为0,则确定所述当前音频帧的最终编码方式为第二码率编码方式;其中,所述设定阈值的取值与音频帧的声道数相关联;或者当所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式或者第二码率编码向第一码率编码切换编码方式时,所述根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码,包括:对所述当前音频帧进行第一码率编码处理;和对所述当前音频帧进行第二码率编码处理。3.根据权利要求2所述的方法,其特征在于,当所述当前音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式,且所述第一码率编码处理的帧长大于所述第二码率编码处理的帧长时,所述根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码,包括:当所述第一计数器的值等于所述第一设定值时,对所述当前音频帧进行第一码率编码处理;对所述当前音频帧进行第二码率编码处理;或者,当所述第一计数器的值小于所述第一设定值时,对所述当前音频帧进行第一码率编码处理;或者当所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式,且所述第一码率编码处理的帧长大于所述第二码率编码处理的帧长时,所述根据所述当前音
频帧的最终编码方式对所述当前音频帧进行编码,包括:当所述第二计数器的值大于1时,对所述当前音频帧进行第一码率编码处理;对所述当前音频帧进行第二码率编码处理;或者,当所述第二计数器的值等于1时,对所述当前音频帧进行第二码率编码处理;或者当所述当前音频帧的最终编码方式为第二码率编码向第一码率编码切换编码方式,且所述第一码率编码处理的帧长小于所述第二码率编码处理的帧长时,所述根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码,包括:当所述第一计数器的值大于1时,对所述当前音频帧进行第一码率编码处理;对所述当前音频帧进行第二码率编码处理;或者,当所述第一计数器的值等于1时,对所述当前音频帧进行第一码率编码处理;或者当所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式,且所述第一码率编码处理的帧长小于所述第二码率编码处理的帧长时,所述根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码,包括:当所述第二计数器的值等于所述第一设定值时,对所述当前音频帧进行第一码率编码处理;对所述当前音频帧进行第二码率编码处理;或者,当所述第二计数器的值小于所述第一设定值时,对所述当前音频帧进行第二码率编码处理。4.根据权利要求3所述的方法,其特征在于,所述对所述当前音频帧进行第一码率编码处理,包括:当所述第一码率编码处理支持所述当前音频帧的采样率时,对所述当前音频帧进行所述第一码率编码处理;或者,当所述第一码率编码处理不支持所述当前音频帧的采样率时,对所述当前音频帧进行下采样或上采样处理以获得下采样或上采样后的当前音频帧,对所述下采样或上采样后的当前音频帧进行所述第一码率编码处理,所述第一码率编码处理支持所述下采样或上采样后的当前音频帧的采样率;或者所述对所述当前音频帧进行第二码率编码处理,包括:当所述第二码率编码处理支持所述当前音频帧的采样率时,对所述当前音频帧进行所述第二码率编码处理;或者,当所述第二码率编码处理不支持所述当前音频帧的采样率时,对所述当前音频帧进行下采样或上采样处理以获得下采样或上采样后的当前音频帧,对所述下采样或上采样后的当前音频帧进行所述第二码率编码处理,所述第二码率编码处理支持所述下采样或上采样后的当前音频帧的采样率。5.根据权利要求1

4中任一项所述的方法,其特征在于,当所述当前音频帧的最终编码方式为第一码率编码向第二码率编码切换编码方式或者第二码率编码向第一码率编码切换编码方式时,所述根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码之
前,还包括:根据所述上一帧音频帧的设定码率和所述当前音频帧的设定码率确定第一码率编码处理对应的第一码率和第二码率编码处理对应的第二码率,所述第一码率和所述第二码率之和为所述当前音频帧的设定码率;所述根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码,包括:以所述第一码率对所述当前音频帧进行所述第一码率编码处理;以所述第二码率对所述当前音频帧进行所述第二码率编码处理。6.根据权利要求1

5中任一项所述的方法,其特征在于,编码后的当前音频帧对应的码流信息包括包头信息、第一码率编码码流和/或第二码率编码码流,其中,所述包头信息包括所述当前音频帧的最终编码方式、采样率、声道数、帧长和所述第一码率编码码流的长度。7.一种音频解码方法,其特征在于,包括:获得码流信息;解析所述码流信息以获得解码方式和编码码流,所述编码码流包括第一码率编码码流和/或第二码率编码码流,所述解码方式包括第一码率解码方式、第二码率解码方式、第一码率解码向第二码率解码切换解码方式或者第二码率解码向第一码率解码切换解码方式,当所述解码方式为第一码率解码方式时,所述编码码流包括第一码率编码码流,当所述解码方式为第二码率解码方式时,所述编码码流包括第二码率编码码流,当所述解码方式为第一码率解码向第二码率解码切换解码方式或者第二码率解码向第一码率解码切换解码方式时,所述编码码流包括第一码率编码码流和第二码率编码码流;根据所述解码方式对所述编码码流进行解码以获得目标音频帧。8.根据权利要求7所述的方法,其特征在于,当所述解码方式为第一码率解码方式,并且第一码率编码处理的帧长和第二码率编码处理的帧长相同,且所述第一码率编码处理的编解码的总时延与所述第二码率编码处理的编解码的总时延相同时,或者,当所述解码方式为第一码率解码方式,并且第一码率解码处理的帧长大于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得所述目标音频帧;或者当所述解码方式为第一码率解码方式,并且第一码率解码处理的帧长小于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;将所述第一码率解码处理对应的第二数据队列从队头溢出M个样点数据,按照先入先出FIFO方式将所述第二数据放入所述第二数据队列,M与所述第二码率解码处理的帧长相关联;从所述第二数据队列的队头提取M个样点数据以获得所述目标音频帧;或者当所述解码方式为第二码率解码方式,并且第一码率编码处理的帧长和第二码率编码
处理的帧长相同,且所述第一码率编码处理的编解码的总时延与所述第二码率编码处理的编解码的总时延相同时,或者,当所述解码方式为第二码率解码方式,并且第一码率解码处理的帧长小于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得所述目标音频帧;或者当所述解码方式为第二码率解码方式,并且第一码率解码处理的帧长大于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;将所述第二码率解码处理对应的第一数据队列从队头溢出M个样点数据,按照先入先出FIFO方式将所述第一数据放入所述第一数据队列,M与所述第一码率解码处理的帧长相关联;从所述第一数据队列的队头提取M个样点数据以获得所述目标音频帧;或者当所述解码方式为第一码率解码向第二码率解码切换解码方式,并且第一码率编码处理的帧长和第二码率编码处理的帧长相同,且所述第一码率编码处理的编解码的总时延与所述第二码率编码处理的编解码的总时延相同时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;将所述第二数据的后N个样点数据与所述第一数据的前N个样点数据进行加权平均以获得N个样点平滑数据,N为第二设定值;根据所述第二数据除所述后N个样点数据外的其他数据和所述N个样点平滑数据获得所述目标音频帧;或者当所述解码方式为第一码率解码向第二码率解码切换解码方式,并且第一码率解码处理的帧长大于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:当上一帧音频帧的解码方式不是所述第一码率解码向第二码率解码切换解码方式时,将所述第二码率解码处理对应的第一数据队列置为全0,所述第一数据队列遵循先入先出的原则;根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;将所述第一数据队列从队头溢出M个样点数据,并将所述第一数据放入所述第一数据队列的队尾,M与所述第一码率解码处理的帧长相关联;从所述第一数据队列的队头提取M个样点数据以获得第三数据;将所述第二数据的后N个样点数据与所述第三数据的前N个样点数据进行加权平均以获得N个样点平滑数据;根据所述第二数据除所述后N个样点数据外的其他数
据和所述N个样点平滑数据获得所述目标音频帧;或者当所述解码方式为第一码率解码向第二码率解码切换解码方式,并且第一码率解码处理的帧长小于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:当所述上一帧音频帧的解码方式不是所述第一码率解码向第二码率解码切换解码方式时,根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;将所述第一码率解码处理对应的第二数据队列从队头溢出M个样点数据,按照先入先出FIFO方式将所述第二数据放入所述第二数据队列,M与所述第二码率解码处理的帧长相关联;从所述第二数据队列的队头提取M个样点数据以获得第四数据;根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;将所述第四数据的后N个样点数据与所述第一数据的前N个样点数据进行加权平均以获得N个样点平滑数据;根据所述第四数据除所述后N个样点数据外的其他数据和所述N个样点平滑数据获得所述目标音频帧;或者,当所述上一帧音频帧的解码方式是所述第一码率解码向第二码率解码切换解码方式时,将所述第二数据队列从队头溢出M个样点数据;从所述第二数据队列的队头提取M个样点数据以获得第四数据;根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;将所述第四数据的后N个样点数据与所述第一数据的前N个样点数据进行加权平均以获得N个样点平滑数据;根据所述第四数据除所述后N个样点数据外的其他数据和所述N个样点平滑数据获得所述目标音频帧;或者当所述解码方式为第二码率解码向第一码率解码切换解码方式,并且第一码率编码处理的帧长和第二码率编码处理的帧长相同,且所述第一码率编码处理的编解码的总时延与所述第二码率编码处理的编解码的总时延相同时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;将所述第一数据的后N个样点数据与所述第二数据的前N个样点数据进行加权平均以获得N个样点平滑数据,N为第二设定值;根据所述第一数据除所述后N个样点数据外的其他数据和所述N个样点平滑数据获得所述目标音频帧;或者当所述解码方式为第二码率解码向第一码率解码切换解码方式,并且第一码率解码处理的帧长大于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:当所述上一帧音频帧的解码方式不是所述第二码率解码向第一码率解码切换解码方式时,根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;将所述第二码率解码处理对应的第一数据队列从队头溢出M个样点数据,按照先入先出
FIFO方式将所述第一数据放入所述第一数据队列,M与所述第一码率解码处理的帧长相关联;从所述第一数据队列的队头提取M个样点数据以获得第三数据;根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;将所述第三数据的后N个样点数据与所述第二数据的前N个样点数据进行加权平均以获得N个样点平滑数据;根据所述第三数据除所述后N个样点数据外的其他数据和所述N个样点平滑数据获得所述目标音频帧;或者,当所述上一帧音频帧的解码方式是所述第二码率解码向第一码率解码切换解码方式时,将所述第一数据队列从队头溢出M个样点数据;从所述第一数据队列的队头提取M个样点数据以获得第三数据;根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;将所述第三数据的后N个样点数据与所述第二数据的前N个样点数据进行加权平均以获得N个样点平滑数据;根据所述第三数据除所述后N个样点数据外的其他数据和所述N个样点平滑数据获得所述目标音频帧;或者当所述解码方式为第二码率解码向第一码率解码切换解码方式,并且第一码率解码处理的帧长小于第二码率解码处理的帧长时,所述根据所述解码方式对所述编码码流进行解码以获得目标音频帧,包括:当上一帧音频帧的解码方式不是所述第二码率解码向第一码率解码切换解码方式时,将所述第一码率解码处理对应的第二数据队列置为全0,所述第二数据队列遵循先入先出的原则;根据所述第二码率解码方式对所述第二码率编码码流进行解码处理以获得第一数据;根据所述第一码率解码方式对所述第一码率编码码流进行解码处理以获得第二数据;将所述第二数据队列从队头溢出M个样点数据,并将所述第二数据放入所述第二数据队列的队尾,M与所述第二码率解码处理的帧长相关联;从所述第二数据队列的队头提取M个样点数据以获得第四数据;将所述第一数据的后N个样点数据与所述第四数据的前N个样点数据进行加权平均以获得N个样点平滑数据;根据所述第一数据除所述后N个样点数据外的其他数据和所述N个样点平滑数据获得所述目标音频帧。9.根据权利要求8所述的方法,其特征在于,所述对所述第一码率编码码流进行第一码率解码处理,包括:判断所述第一码率解码处理是否支持所述第一码率编码码流对应的采样率;若所述第一码率解码处理支持所述采样率,则对所述第一码率编码码流进行所述第一码率解码处理;或者,若所述第一码率解码处理不支持所述采样率,则对所述第一码率编码码流进行所述第一码率解码处理以获得第五数据,对所述第五数据进行上采样或下采样处理。10.根据权利要求8所述的方法,其特征在于,所述对所述第二码率编码码流进行第二码率解码处理,包括:判断所述第二码率解码处理是否支持所述第二码率编码码流对应的采样率;若所述第二码率解码处理支持所述采样率,则对所述第二码率编码码流进行所述第二码率解码处理;或者,
若所述第二码率解码处理不支持所述采样率,则对所述第二码率编码码流进行所述第二码率解码处理以获得第六数据,对所述第六数据进行上采样或下采样处理。1...

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

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

1