一种音频编码数据包的处理方法及装置与流程
- 国知局
- 2024-06-21 11:49:01
本技术涉及音频数据处理,尤其涉及一种音频编码数据包的处理方法及装置。
背景技术:
1、实时通信架构中的音频jitter buffer(抖动缓冲区)作为实时音视频通话的重要环节,主要作用是缓存接收的音频媒体数据包,平滑地向解码部分输出数据,并且能够应对在接收音频数据包时出现的抖动、丢失、延迟等情况。
2、然而,由于音频jitter buffer针对同一时间戳只会缓存一个音频编码数据包,因此音频jitter buffer只支持处理单描述编码(single description coding,sdc)码流。多描述编码(multiple description coding,mdc)码流在相同时间戳内可能会存在多个音频编码数据包,而音频jitter buffer只缓存其中的一个音频编码数据包,进而可能会造成在音频处理时音频数据丢失的问题,使解码音频质量降低,影响用户体验。
技术实现思路
1、有鉴于此,本技术实施例提供了一种音频编码数据包的处理方法及装置,用于避免mdc码流数据丢失。
2、为了实现上述目的,本技术实施例提供技术方案如下:
3、第一方面,本技术的实施例提供了一种音频编码数据包的处理方法,包括:
4、解析音频编码数据包,以获取所述音频编码数据包的数据包信息,所述数据包信息包括所述音频编码数据包的时间戳和描述索引值,其中,所述音频编码数据包是对音频数据进行编码得到的,所述音频编码数据包中包括对所述音频数据的至少一个描述,所述描述索引值为所述描述的索引;
5、判断数据包缓存中是否缓存有数据包信息与所述音频编码数据包的数据包信息相同的数据包;
6、若否,则根据所述音频编码数据包的数据包信息将所述音频编码数据包写入所述数据包缓存。
7、作为本技术实施例一种可选的实施方式,所述方法还包括:
8、确定目标时间戳,所述目标时间戳为当前需要解码的音频编码数据包的时间戳;
9、从所述数据包缓存中读取各个时间戳为所述目标时间戳的音频编码数据包;
10、对各个时间戳为所述目标时间戳的音频编码数据包进行解码,以获取所述目标时间戳的音频数据。
11、作为本技术实施例一种可选的实施方式,当各个描述分别在一个音频编码数据包中传输时,所述根据所述音频编码数据包的数据包信息将所述音频编码数据包写入所述数据包缓存,包括:
12、在所述数据包缓存中所述确定所述音频编码数据包的时间戳对应的缓存空间;
13、根据所述音频编码数据包的描述索引值确定所述音频编码数据包在所述缓存空间中的缓存顺序;
14、根据所述音频编码数据包在所述缓存空间中的缓存顺序将所述音频编码数据包写入所述缓存空间。
15、作为本技术实施例一种可选的实施方式,所述音频编码数据包的数据包信息还包括所述音频编码数据包的序列号和所述音频编码数据包对应的音频数据的描述数量;所述方法还包括:
16、根据所述音频编码数据包的序列号和所述音频编码数据包的描述索引值,获取第一序列号,所述第一序列号为传输时间戳为第一时间戳的首个描述的音频编码数据包的序列号,所述第一时间戳为所述音频编码数据包的时间戳;
17、根据所述第一序列号、第二序列号以及所述描述数量,获取所述音频编码数据包的延时;所述第二序列号为传输时间戳为第二时间戳的首个描述的音频编码数据包的序列号,所述第二时间戳为上一个接收的音频编码数据包的时间戳。
18、作为本技术实施例一种可选的实施方式,所述方法还包括:
19、根据所述第一序列号、所述第二序列号、所述第一时间戳、所述第二时间戳、所述描述数量以及音频数据的采样率,获取所述音频编码数据包的打包时长;
20、根据所述第一序列号、所述第二序列号以及所述描述数量,获取所述音频编码数据包的延时;
21、根据所述打包时长和所述延时调整所述音频编码数据包对应的音频播放参数。
22、作为本技术实施例一种可选的实施方式,当同一时间戳的音频数据的描述在同一音频编码数据包中传输时,所述根据所述音频编码数据包的数据包信息将所述音频编码数据包写入所述数据包缓存,包括:
23、确定所述音频编码数据包是否携带有多个时间戳的音频数据的描述;
24、若否,则在所述数据包缓存中确定所述音频编码数据包的时间戳对应的缓存空间,并将所述音频编码数据包写入所述缓存空间;
25、若是,则分别在所述数据包缓存中确定所述多个时间戳对应的缓存空间,分别将所述音频编码数据包写入所述多个时间戳对应的缓存空间以及将写入任一时间戳对应的缓存空间的所述音频编码数据包的时间戳修改为该时间戳。
26、作为本技术实施例一种可选的实施方式,所述从所述数据包缓存中读取各个时间戳为所述目标时间戳的音频编码数据包,包括:
27、读取所述目标时间戳对应的缓存空间中的所有音频编码数据包。
28、作为本技术实施例一种可选的实施方式,所述方法还包括:
29、在确定所述目标时间戳之后,丢弃所述数据包缓存中时间戳小于所述目标时间戳的音频编码数据包。
30、作为本技术实施例一种可选的实施方式,所述方法还包括:
31、当所述数据包缓存中缓存有数据包信息与所述音频编码数据包的数据包信息相同的数据包时,比较所述音频编码数据包与所述数据包的优先级;
32、若所述音频编码数据包的优先级高于所述数据包的优先级,则将所述数据包替换为所述音频编码数据包;
33、若所述音频编码数据包的优先级低于所述数据包的优先级,则将所述音频编码数据包丢弃。
34、第二方面,本技术实施例提供一种音频编码数据包的处理装置,包括:
35、处理单元,解析音频编码数据包,以获取所述音频编码数据包的数据包信息,所述数据包信息包括所述音频编码数据包的时间戳和描述索引值,其中,所述音频编码数据包是对音频数据进行编码得到的,所述音频编码数据包中包括对所述音频数据的至少一个描述,所述描述索引值为所述描述的索引;
36、判断单元,用于判断数据包缓存中是否缓存有数据包信息与所述音频编码数据包的数据包信息相同的数据包;
37、写入单元,用于在数据包缓存中未缓存有数据包信息与所述音频编码数据包的数据包信息相同的数据包的情况下,根据所述音频编码数据包的数据包信息将所述音频编码数据包写入所述数据包缓存。
38、作为本技术实施例一种可选的实施方式,所述音频编码数据包的处理装置还包括:
39、确定单元,用于确定目标时间戳,所述目标时间戳为当前需要解码的音频编码数据包的时间戳;
40、读取单元,用于从所述数据包缓存中读取各个时间戳为所述目标时间戳的音频编码数据包;
41、解码单元,用于对各个时间戳为所述目标时间戳的音频编码数据包进行解码,以获取所述目标时间戳的音频数据。
42、作为本技术实施例一种可选的实施方式,所述写入单元,具体用于在各个描述分别在一个音频编码数据包中传输的情况下,在所述数据包缓存中所述确定所述音频编码数据包的时间戳对应的缓存空间;根据所述音频编码数据包的描述索引值确定所述音频编码数据包在所述缓存空间中的缓存顺序;根据所述音频编码数据包在所述缓存空间中的缓存顺序将所述音频编码数据包写入所述缓存空间。
43、作为本技术实施例一种可选的实施方式,所述处理单元,还用于根据所述音频编码数据包的序列号和所述音频编码数据包的描述索引值,获取第一序列号,所述第一序列号为传输时间戳为第一时间戳的首个描述的音频编码数据包的序列号,所述第一时间戳为所述音频编码数据包的时间戳;获取第二序列号,所述第二序列号为传输时间戳为第二时间戳的首个描述的音频编码数据包的序列号,所述第二时间戳为上一个接收的音频编码数据包的时间戳;根据所述第一序列号、第二序列号以及所述描述数量,获取所述音频编码数据包的延时;所述第二序列号为传输时间戳为第二时间戳的首个描述的音频编码数据包的序列号,所述第二时间戳为上一个接收的音频编码数据包的时间戳。
44、作为本技术实施例一种可选的实施方式,还所述处理单元,还用于根据所述第一序列号、所述第二序列号、所述第一时间戳、所述第二时间戳、所述描述数量以及音频数据的采样率,获取所述音频编码数据包的打包时长;根据所述第一序列号、所述第二序列号以及所述描述数量,获取所述音频编码数据包的延时;根据所述打包时长和所述延时调整所述音频编码数据包对应的音频播放参数。
45、作为本技术实施例一种可选的实施方式,所述写入单元,具体用于在同一时间戳的音频数据的描述在同一个音频编码数据包中传输时,确定所述音频编码数据包是否携带有多个时间戳的音频数据的描述;若否,则在所述数据包缓存中确定所述音频编码数据包的时间戳对应的缓存空间,并将所述音频编码数据包写入所述缓存空间;若是,则分别在所述数据包缓存中确定所述多个时间戳对应的缓存空间,分别将所述音频编码数据包写入所述多个时间戳对应的缓存空间以及将写入任一时间戳对应的缓存空间的所述音频编码数据包的时间戳修改为该时间戳。
46、作为本技术实施例一种可选的实施方式,所述读取单元,具体用于读取所述目标时间戳对应的缓存空间中的所有音频编码数据包。
47、作为本技术实施例一种可选的实施方式,所述处理单元,还用于在确定所述目标时间戳之后,丢弃所述数据包缓存中时间戳小于所述目标时间戳的音频编码数据包。
48、作为本技术实施例一种可选的实施方式,所述写入单元,还用于在所述数据包缓存中缓存有数据包信息与所述音频编码数据包的数据包信息相同的数据包的情况下,比较所述音频编码数据包与所述数据包的优先级;若所述音频编码数据包的优先级高于所述数据包的优先级,则将所述数据包替换为所述音频编码数据包;若所述音频编码数据包的优先级低于所述数据包的优先级,则将所述音频编码数据包丢弃。
49、第三方面,本技术实施例提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在执行计算机程序时,使得所述电子设备实现上述任一实施方式所述的音频编码数据包的处理方法。
50、第四方面,本技术实施例提供一种计算机可读存储介质,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述任一实施方式所述的音频编码数据包的处理方法。
51、第五方面,本技术实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述任一实施方式所述的音频编码数据包的处理方法。
52、本技术实施例提供的音频编码数据包的处理方法,首先解析所述音频编码数据包,以获取所述音频编码数据包的数据包信息,然后判断数据包缓存中是否缓存有数据包信息与所述音频编码数据包的数据包信息相同的数据包,以及在数据包缓存中不包括数据包信息与所述音频编码数据包的数据包信息相同的数据包时,根据所述音频编码数据包的数据包信息将所述音频编码数据包写入所述数据包缓存。相比于现有技术中音频jitterbuffer针对同一时间戳的音频数据仅能缓存一个音频编码数据包,由于本技术实施例中的数据包信息包括所述音频编码数据包的时间戳和描述索引值,因此只要音频编码数据包的时间戳或描述索引值与已换存的数据包不同,就会将该音频编码数据包写入数据包缓存,因此针对同一时间戳,本技术实施例可缓存所有描述索引值不同的音频编码数据包,进而避免mdc码流数据丢失。
本文地址:https://www.jishuxx.com/zhuanli/20240618/23729.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。