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

音频码率确定方法、装置、存储介质及电子设备与流程

2021-09-29 02:07:00 来源:中国专利 TAG:音频 公开 实施 方式 数据处理


1.本公开的实施方式涉及数据处理技术领域,更具体地,本公开的实施方式涉及一种音频码率确定方法、音频码率确定装置、计算机可读存储介质及电子设备。


背景技术:

2.在实时音视频通信过程中,根据网络的当前带宽,确定音视频数据的传输码率,以保证音视频数据可以高质量传输是实时音视频通信过程中的基本要求。
3.web实时通信(real

time communication,webrtc)是一种实时音视频通信的开源框架,在实时音视频通信过程中,可以提供音视频的采集、编解码、网络传输、渲染和显示等核心技术,webrtc中传输模块的码率分配(bitrate allocator,ba)子模块可以分别为音频数据和视频数据分配传输码率。
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.在一种可选的实施方式中,所述根据所述可用传输码率与所述待编码音频数据的码率分配比例,确定所述待编码音频数据的参考编码码率,包括:
53.获取历史重传码率、历史编码码率和所述待编码音频数据的预设冗余编码系数,所述历史重传码率为早于所述待编码音频数据的一帧或多帧音频数据的重传码率,所述历史编码码率为早于所述待编码音频数据的一帧或多帧音频数据的实际编码码率;
54.确定所述可用传输码率的码率分配总参数,所述码率分配总参数为所述历史重传码率和所述历史编码码率的比值、所述待编码音频数据的码率分配参数和预设冗余编码系数的和值;
55.确定所述待编码音频数据的码率分配参数和所述可用传输码率的码率分配总参数的比值,得到所述待编码音频数据的码率分配比例;
56.根据所述可用传输码率和所述待编码音频数据的码率分配比例之积,得到所述待编码音频数据的参考编码码率。
57.在一种可选的实施方式中,所述方法还包括:所述期望传输码率包括所述待编码音频数据的期望编码码率和期望保护编码码率;
58.若所述可用传输码率大于或者等于所述期望传输码率,所述方法还包括:
59.确定所述待编码音频数据的目标编码码率为所述期望编码码率;
60.确定所述待编码音频数据的目标保护编码码率为所述期望保护编码码率;
61.根据所述目标编码码率和所述目标保护编码码率之和,得到所述待编码音频数据的目标传输码率。
62.根据本公开实施方式的第二方面,提供一种音频码率确定装置,包括:
63.获取模块,被配置为获取待编码音频数据;
64.第一确定模块,被配置为确定所述待编码音频数据的可用传输码率和期望传输码率;
65.第二确定模块,被配置为若所述可用传输码率小于所述期望传输码率,则根据所述可用传输码率与所述待编码音频数据的码率分配比例,确定所述待编码音频数据的参考编码码率,所述待编码音频数据的码率分配比例为所述可用传输码率中,分配给所述待编码音频数据的编码码率和所述可用传输码率的比值;
66.第三确定模块,被配置为根据所述参考编码码率确定所述待编码音频数据的目标传输码率。
67.在一种可选的实施方式中,所述装置还包括:所述期望传输码率包括所述待编码音频数据的期望编码码率和期望保护编码码率,
68.若所述参考编码码率大于或者等于与所述期望编码码率对应的预设编码码率区间的下限编码码率,所述第三确定模块,被配置为:
69.确定所述待编码音频数据的目标编码码率为所述参考编码码率;
70.确定所述待编码音频数据的目标保护编码码率为所述期望保护编码码率;
71.根据所述目标编码码率和所述目标保护编码码率之和,得到所述待编码音频数据的目标传输码率。
72.在一种可选的实施方式中,所述装置还包括:所述期望传输码率包括所述待编码音频数据的期望编码码率和期望保护编码码率,
73.若所述参考编码码率小于与所述期望编码码率对应的预设编码码率区间的下限编码码率,所述第三确定模块,被配置为:
74.确定所述待编码音频数据的目标编码码率为所述下限编码码率;
75.基于预设规则确定所述待编码音频数据的目标保护编码码率;
76.根据所述目标编码码率和所述目标保护编码码率之和,得到所述待编码音频数据的目标传输码率。
77.在一种可选的实施方式中,所述第三确定模块,被配置为:
78.确定预测重传码率;
79.确定第一码率差值,所述第一码率差值为所述可用传输码率和所述目标编码码率的码率差值;
80.根据所述第一码率差值和所述预测重传码率,确定所述待编码音频数据的目标保护编码码率。
81.在一种可选的实施方式中,所述第三确定模块,被配置为:
82.获取历史重传码率和历史编码码率,所述历史重传码率为早于所述待编码音频数据的一帧或多帧音频数据的重传码率,所述历史编码码率为早于所述待编码音频数据的一帧或多帧音频数据的实际编码码率;
83.根据所述历史重传码率和所述历史编码码率的比值,以及所述待编码音频数据的目标编码码率,得到所述预测重传码率。
84.在一种可选的实施方式中,所述第三确定模块,被配置为:
85.若所述第一码率差值小于所述预测重传码率,则确定目标重传码率为所述第一码率差值;
86.确定所述待编码音频数据的目标保护编码码率为所述目标重传码率。
87.在一种可选的实施方式中,所述第三确定模块,被配置为:
88.若所述第一码率差值大于所述预测重传码率,则确定目标重传码率为所述预测重传码率;
89.根据第二码率差值确定目标冗余编码码率,所述第二码率差值为所述第一码率差值和所述预测重传码率之差;
90.确定所述待编码音频数据的目标保护编码码率为所述目标重传码率和所述目标冗余编码码率之和。
91.在一种可选的实施方式中,所述第三确定模块,被配置为:
92.根据所述第二码率差值和所述待编码音频数据的目标编码码率,确定所述待编码音频数据的目标冗余编码系数;
93.根据所述目标冗余编码系数和所述待编码音频数据的目标编码码率之积,得到目标冗余编码码率。
94.在一种可选的实施方式中,所述装置还包括:所述期望传输码率包括所述待编码音频数据的期望编码码率和期望保护编码码率,
95.所述第一确定模块,被配置为:
96.获取所述待编码音频数据对应的视频数据的下限编码码率;
97.根据所述视频数据的下限编码码率以及与所述期望编码码率对应的预设编码码率区间的下限编码码率,得到音视频数据的保底传输码率;
98.若用于传输所述待编码音频数据与所述视频数据的网络的当前带宽大于所述音视频数据的保底传输码率,则根据所述网络的当前带宽与所述视频数据的下限编码码率之差,得到所述待编码音频数据的可用传输码率;
99.若所述网络的当前带宽小于所述音视频数据的保底传输码率,则确定所述待编码音频数据的可用传输码率为所述待编码音频数据的下限编码码率。
100.在一种可选的实施方式中,所述第一确定模块,被配置为:
101.获取所述待编码音频数据的期望编码码率、所述待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数,所述历史重传码率为早于所述待编码音频数据的一帧或多帧音频数据的重传码率;
102.根据所述待编码音频数据的期望编码码率、所述待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数,确定所述待编码音频数据的期望传输码
率。
103.在一种可选的实施方式中,所述第一确定模块,被配置为:
104.根据所述待编码音频数据的预设冗余编码系数和所述待编码音频数据的期望编码码率之积,得到所述待编码音频数据的期望冗余编码码率;
105.根据重传码率的冗余编码系数和参考值之和,以及所述历史重传码率,得到所述待编码音频数据的期望重传码率;
106.根据所述期望编码码率、所述期望冗余编码码率和所述期望重传码率,得到所述待编码音频数据的期望传输码率。
107.在一种可选的实施方式中,所述第二确定模块,被配置为:
108.获取历史重传码率、历史编码码率和所述待编码音频数据的预设冗余编码系数,所述历史重传码率为早于所述待编码音频数据的一帧或多帧音频数据的重传码率,所述历史编码码率为早于所述待编码音频数据的一帧或多帧音频数据的实际编码码率;
109.确定所述可用传输码率的码率分配总参数,所述码率分配总参数为所述历史重传码率和所述历史编码码率的比值、所述待编码音频数据的码率分配参数和预设冗余编码系数的和值;
110.确定所述待编码音频数据的码率分配参数和所述可用传输码率的码率分配总参数的比值,得到所述待编码音频数据的码率分配比例;
111.根据所述可用传输码率和所述待编码音频数据的码率分配比例之积,得到所述待编码音频数据的参考编码码率。
112.在一种可选的实施方式中,所述装置还包括:所述期望传输码率包括所述待编码音频数据的期望编码码率和期望保护编码码率;
113.若所述可用传输码率大于或者等于所述期望传输码率,所述装置还包括,第四确定模块,被配置为:
114.确定所述待编码音频数据的目标编码码率为所述期望编码码率;
115.确定所述待编码音频数据的目标保护编码码率为所述期望保护编码码率;
116.根据所述目标编码码率和所述目标保护编码码率之和,得到所述待编码音频数据的目标传输码率。
117.根据本公开实施方式的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种方法。
118.根据本公开实施方式的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种方法。
119.根据本公开实施方式的音频码率确定方法、装置、计算机可读存储介质及电子设备,可以根据网络的当前带宽确定待编码音频数据的可用传输码率,并基于待编码音频数据的实际传输需求确定待编码音频数据的期望编码码率,根据可用传输码率和期望传输码率的大小比对结果,确定待编码音频数据的目标传输码率,可以为音视频通信过程中的音频数据提供个性化的传输码率确定方案,由于为音频数据的目标传输码率是根据当前的网络状况和待编码音频数据的实际传输需求确定的,在网络带宽较小的场景下,可以依旧保证待编码音频数据的音频质量,且在一定程度上提升待编码音频数据的传输流畅度。
附图说明
120.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
121.图1示出了根据本公开实施方式的系统架构的示意图;
122.图2示出了根据本公开实施方式的一种音频码率确定方法的流程图;
123.图3示出了根据本公开实施方式的一种待编码音频数据的可用传输码率确定方法的流程图;
124.图4示出了根据本公开实施方式的一种待编码音频数据的期望传输码率确定方法的流程图;
125.图5示出了根据本公开实施方式的一种待编码音频数据的参考编码码率确定方法的流程图;
126.图6示出了根据本公开实施方式的一种待编码音频数据的目标保护编码码率确定方法的流程图;
127.图7示出了根据本公开实施方式的一种音频码率确定方法的流程图;
128.图8示出了根据本公开实施方式的一种音频码率确定装置的结构方框图;
129.图9示出了根据本公开实施方式的电子设备的结构方框图。
130.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
131.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
132.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
133.根据本公开的实施方式,提供一种音频码率确定方法、装置、计算机可读存储介质及电子设备。
134.在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
135.下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
136.发明概述
137.本发明人发现,基于webrtc框架的实时音视频通信过程中,webrtc框架通常默认不对音频数据确定传输码率,在音视频数据的实时传输过程中,音频数据成为一个不受管控的数据流,会与视频数据抢占网络带宽,在网络的当前带宽较小的场景下,由于没有为音频数据分配网路带宽,会出现音视频数据的音视频质量下降以及传输卡顿的情况,影响用户的使用体验;或者,即使利用webrtc中的码率分配子模块为音频数据确定传输码率,但为音频数据提供的传输码率分配策略并未考虑传输音频数据的实际传输需求和网络的当前
带宽,通常出现为音频数据分配的网络带宽超出音频数据的实际传输需求,造成网络资源浪费的情况;或者,出现为音频数据分配的网络带宽无法满足音频数据的实际传输需求,导致音频质量下降以及音频卡顿的情况,影响用户的音视频通信体验。
138.鉴于上述内容,本公开的基本思想在于:提供一种音频码率确定方法、装置、计算机可读存储介质及电子设备,可以获取待编码音频数据;确定待编码音频数据的可用传输码率和期望传输码率;若可用传输码率小于期望传输码率,则根据可用传输码率与待编码音频数据的码率分配比例,确定待编码音频数据的参考编码码率;根据参考编码码率确定待编码音频数据的目标传输码率。可以根据音频数据的实际传输需求和网络的当前带宽,为音频数据分配网络带宽,在网络带宽充足的场景下,可以防止网络资源的浪费;在网络带宽较小的场景下,可以保证音频数据的音频质量,并提升音频数据的传输流畅度。其中,可用传输码率为音视频数据传输过程中,根据网络的当前带宽,为待编码音频数据预留的最大传输码率;期望传输码率为传输待编码音频数据需要的最佳传输码率;待编码音频数据的码率分配比例为可用传输码率中,分配给待编码音频数据的编码码率和可用传输码率的比值。
139.在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
140.应用场景总览
141.需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
142.本公开可以应用于基于webrtc框架的音视频通信的所有场景,例如:在直播或者视频会议过程中,可以接收音视频通信发起方的终端设备或音视频通信接收方的终端设备发送的音频数据,将音视频数据中的音频数据作为待编码音频数据,根据网络的当前带宽和传输视频数据需要的下限编码码率,确定待编码音频数据的可用传输码率,并确定待编码音频数据的期望传输码率。
143.若可用传输码率小于期望传输码率,则根据可用传输码率与待编码音频数据的码率分配比例,确定待编码音频数据的参考编码码率;根据参考编码码率确定待编码音频数据的目标传输码率,根据目标传输码率传输音频数据;若可用传输码率大于或者等于期望传输码率,确定待编码音频数据的目标传输码率为期望传输码率,可以保证音频数据在各种网络带宽场景下,都能保证音频数据的音频质量和流畅度,且不会浪费网络带宽。
144.示例性方法
145.本公开的示例性实施方式首先提供一种音频码率确定方法。图1示出了该方法运行环境的系统架构图。如图1所示,该系统架构100可以包括:第一终端110、服务器120和第二终端130。第一终端110可以是音视频通信发起方所使用的终端设备,第二终端130可以是音视频通信接收方所使用的终端设备,终端设备可以是智能手机、平板电脑、个人电脑、智能穿戴设备、智能车载设备、游戏机等。服务器120可以包括第三方平台的后台系统,第三方可以是直播服务提供方,或者音视频通信提供方。
146.一般情况下,第一终端110与服务器120之间,第二终端130与服务器120之间可以分别进行交互,其中,第一终端110在发送音视频数据时,会根据网络的当前带宽,确定用于
传输音频数据的目标传输码率,根据该目标传输码率对音频数据进行编码。并将编码后的音视频数据发送至服务器120,由服务器120将编码后的音视频数据发送至第二终端130;或者,第二终端130在发送音视频数据时,会根据网络的当前带宽,确定用于传输音频数据的目标传输码率,根据该目标传输码率对音频数据进行编码。并将编码后的音视频数据发送至服务器120,由服务器120将编码后的音视频数据发送至第一终端110,以保证第一终端110和第二终端130之间可以进行实时音视频通信。
147.需要说明的是,在本公开实施例中,终端设备或服务器中可以配置有webrtc框架,webrtc框架通常可以包括音频处理模块、视频处理模块和传输模块,其中,音视频通信发起方的终端设备中的传输模块用于获取待发送的音视频数据,确定音视频数据中音频数据的传输带宽以及视频数据的传输带宽,音频处理模块可以对音视频数据中的音频数据进行处理,视频处理模块可以对音视频数据中的视频数据进行处理,并通过传输层将处理后的音视频数据发送至服务器,以使服务器将编码后的音视频数据发送至获取音视频通信发起方的终端设备。其中,终端设备可以响应于服务器发送的功能开启控制指令,开启终端设备中的音频数据码率确定功能,便于在音视频通信过程中,为音频数据提供传输码率确定服务;终端设备也可以响应于服务器发送的功能关闭控制指令,关闭终端设备中的音频数据码率确定功能,在音频数据码率确定功能出现问题时,可以保证音视频通信正常进行。
148.由于在现有的音视频数据处理过程中,没有按照网络的实际状况和音频数据的实际传输需求确定音频数据的传输码率,导致出现网络资源浪费,或者,出现音频数据的音频质量下降或者传输卡顿的问题。因此,非常需要一种改进的方法,可以根据按照网络的当前带宽和音频数据的实际传输需求,确定音频数据的传输码率,保证音频数据的音频质量和传输流畅度,且不会浪费网络资源。
149.本公开的示例性实施方式首先提供一种音频码率确定方法,如图2所示,该方法可以包括以下步骤s201至s204:
150.步骤s201、获取待编码音频数据。
151.在本公开实施例中,待编码音频数据是音视频通信发起方终端设备,或者音视频通信接收方终端设备的音视频数据中未编码的一帧音频数据。
152.步骤s202、确定待编码音频数据的可用传输码率和期望传输码率。
153.在本公开实施例中,待编码音频数据的可用传输码率为音视频数据传输过程中,根据网络的当前带宽,为待编码音频数据预留的最大传输码率;待编码音频数据的期望传输码率为传输待编码音频数据时需要的最佳传输码率。
154.其中,待编码音频数据的期望传输码率通常包括待编码音频数据的期望编码码率和待编码音频数据的期望保护编码码率,其中,待编码音频数据的期望编码码率为传输待编码音频数据过程中,对待编码音频数据进行编码时使用的初始编码码率,初始编码码率是获取进行音视频通信的终端设备的音频数据编码码率的设置结果确定的,例如,假设第一终端中设置的音频数据的编码码率为32kbps,则针对获取到的第一终端设备发送的待编码音频数据,可以确定其期望编码码率为32kbps。
155.保护编码码率为传输待编码音频数据过程中,对待编码音频数据进行音频保护处理所使用的编码码率,其中,音频保护处理可以包括对待编码音频数据进行冗余编码处理,和/或,在待编码音频数据传输过程中进行重传处理;待编码音频数据的期望保护编码码率
为传输待编码音频数据过程中,对待编码音频数据进行全部的音频保护处理需要的编码码率。通过音频保护处理可以提高待编码音频数据的传输流畅度,提升用户的音频体验。
156.需要说明的是。在本公开实施例中,网络的当前带宽可以是终端设备基于网络的当前状况确定的,终端设备确定网络的当前状况的过程可以包括:响应于终端设备的音视频通信操作后,需要调用webrtc框架的传输模块中的拥塞控制(congestion control,cc)子模块进行带宽估计,带宽估计的目的是根据网络的当前状况,以及早于待编码音频数据的一帧音视频数据的实际传输码率,确定网络的当前带宽。
157.在一种可选的实施方式中,当待编码音频数据的期望编码码率属于低期望编码码率区间时,待编码音频数据对网络的当前带宽的波动较为敏感,可能会出现根据带宽估计确定的网络的当前带宽,为待编码音频数据确定的目标传输码率不符合待编码音频数据的实际传输需求的情况,出现待编码音频数据音质下降、传输卡顿或者浪费网络带宽的情况。因此,需要对根据带宽估计确定的网络的当前带宽进行平滑处理,得到平滑处理后的网络的当前带宽,其中,低期望编码码率区间可以是16kbps至64kbps。
158.在一种可选的实施方式中,对根据带宽估计确定的网络的当前带宽进行平滑处理,得到平滑处理后的网络的当前带宽的过程可以包括:确定根据带宽估计确定的网络的当前带宽与网络的历史带宽的大小关系,根据第一保留系数与网络的当前带宽之积,以及第二保留系数与网络的历史带宽之积,得到平滑处理后的网络的当前带宽。其中,网络的历史带宽为传输早于待编码音频数据的一帧音频数据的过程中,对根据带宽估计确定的网络的当前带宽进行平滑处理,得到的平滑处理后的网络的实际带宽;第一保留系数和第二保留系数可以基于实际需要确定,本公开实施例对此不作限定。
159.示例的,可以根据公式(1)得到平滑处理后的网络的当前带宽:
[0160][0161]
其中,bw
filtered
为平滑处理后的网络的当前带宽;bw
last
为网络的历史带宽;bw
cc
为根据带宽估计确定的网络的当前带宽;当根据带宽估计确定的网络的当前带宽大于或者等于网络的历史带宽时,第一保留系数可以为0.2,第二保留系数可以为0.8;当根据带宽估计确定的网络的当前带宽小于网络的历史带宽时,第一保留系数可以为0.8,第二保留系数为可以0.2。
[0162]
步骤s203、若可用传输码率小于期望传输码率,则根据可用传输码率与待编码音频数据的码率分配比例,确定待编码音频数据的参考编码码率。
[0163]
在本公开实施例中,若可用传输码率小于期望传输码率,表示网络的当前带宽较小,是一种带限网络,为待编码音频数据预留的最大传输码率不足以支持待编码音频数据按照待编码音频数据的期望传输码率传输,此时,可以降低待编码音频数据的编码码率,根据可用传输码率确定待编码音频数据的编码码率降低后的参考编码码率。其中,待编码音频数据的码率分配比例为可用传输码率中,分配给待编码音频数据的编码码率和可用传输码率的比值;待编码音频数据的参考编码码率为可用传输码率中,分配给待编码音频数据的编码码率。
[0164]
步骤s204、根据参考编码码率确定待编码音频数据的目标传输码率。
[0165]
在本公开实施例中,为了保证待编码音频数据的音频质量,即使在网络的当前带宽较小的场景下,仍旧需要保证待编码音频数据至少按照与期望编码码率对应的预设编码码率区间的下限编码码率进行编码,则在确定了待编码音频数据的参考编码码率后,可以根据参考编码码率与期望编码码率对应的预设编码码率区间的下限编码码率的比对结果,选择与比对结果对应的规则确定待编码音频数据的目标传输码率。
[0166]
需要说明的是,在本公开实施例中,在待编码音频数据传输过程中,在网络带宽充足的场景下,通常需要根据待编码音频数据的期望编码码率对待编码音频数据进行编码,但是,在网络带宽较小的场景下,网络的当前带宽无法保证待编码音频数据可以按照期望编码码率进行编码,只要保证待编码音频数据的编码码率属于与期望编码码率对应的预设编码码率区间,依旧可以保证待编码数据的音频质量能满足音频通话需求,其中,与期望编码码率对应的预设编码码率区间可以基于实际需要确定,本公开实施例对此不作限定。
[0167]
示例的,本公开实施例中,webrtc框架的音频处理模块使用的音频编码器为opus音频编码器,根据该opus音频编码器确定的期望编码码率的预设编码码率区间可以如表1所示:
[0168][0169]
表1
[0170]
其中,待编码音频数据的初始编码码率(期望编码码率)为20kbps或者初始采样率为16khz时,根据opus音频编码器特性确定的与初始编码码率对应的预设编码码率区间为8kbps至20kbps,可以理解的是,当待编码音频数据的期望编码码率为20kbps或者初始采样率为16khz时,即使无法按照期望编码码率为20kbps或者初始采样率为16khz对待编码音频数据进行编码,只要待编码音频数据的编码码率在8kbps至20kbps之间,依旧可以保证待编码音频数据传输的音频质量。需要说明的是,可以基于相同的思路理解表格中与其他初始编码码率对应的预设编码码率区间,本公开实施例对此不作赘述
[0171]
综上所述,本公开实施例提供的音频码率确定方法,可以实现根据当前的网络状况和待编码音频数据的实际传输需求,确定待编码音频数据的目标传输码率,且可以在网络带宽较小的场景下,依旧保证待编码音频数据的音频质量,且在一定程度上提升待编码音频数据的传输流畅度,在音视频通信过程中,可以为音频数据提供个性化的传输方案。
[0172]
在上述步骤s201中,在音视频通信过程中,可以获取音视频数据中的音频数据,得到待编码音频数据。
[0173]
在一种可选的方式中,在第一终端与第二终端的音视频通信过程中,第一终端可以响应于音视频通信发起操作,获取第一终端的音视频数据中的音频数据,得到待编码音频数据;和/或,第二终端可以响应于音视频通信加入操作,获取第二终端的音视频数据中
的音频数据,得到待编码音频数据。
[0174]
在上述步骤s202中,如图3所示,确定待编码音频数据的可用传输码率的过程可以包括步骤s301至s304:
[0175]
步骤s301、获取待编码音频数据对应的视频数据的下限编码码率。
[0176]
在本公开实施例中,待编码音频数据对应的视频数据为包含待编码音频数据的音视频数据中的视频数据;视频数据的下限编码码率为在保证视频质量的前提下,用于对视频数据进行编码的最低编码码。
[0177]
在本步骤s301中,可以根据webrtc框架中视频处理模块对待编码音频数据对应的视频数据的处理结果,获取待编码音频数据对应的视频数据的下限编码码率。
[0178]
需要说明的是,在本公开实施例中,对于视频数据,通常也可以对视频数据进行视频保护处理,但是相比于对音频数据进行音频保护处理,视频保护处理通常需要占用更多的网络资源,因此,可以根据待编码音频数据对应的视频数据的下限编码码率,确定音视频数据的保底传输码率,为待编码音频数据预留更多的网络资源,在音视频数据传输过程中,可以优先保证音频数据的音频质量和传输流畅度,兼顾视频数据的视频质量。
[0179]
步骤s302、根据视频数据的下限编码码率以及与期望编码码率对应的预设编码码率区间的下限编码码率,得到音视频数据的保底传输码率。
[0180]
在本公开实施例中,音视频数据的保底传输码率为在保证音视频质量的前提下,用于对音视频数据进行编码的最低编码码。
[0181]
在本步骤s302中,根据视频数据的下限编码码率以及与期望编码码率对应的预设编码码率区间的下限编码码率,得到音视频数据的保底传输码率的过程可以是:计算视频数据的下限编码码率和待编码音频数据的下限编码码率之和,将音视频数据的保底传输码率确定为视频数据的下限编码码率和待编码音频数据的下限编码码率之和。可以理解的是,待编码音频数据的下限编码码率为与待编码音频数据的期望编码码率对应的预设编码码率区间的下限编码码率。
[0182]
步骤s303、若用于传输待编码音频数据与视频数据的网络的当前带宽大于音视频数据的保底传输码率,则根据网络的当前带宽与视频数据的下限编码码率之差,得到待编码音频数据的可用传输码率。
[0183]
在本步骤s303中,若用于传输待编码音频数据与视频数据的网络的当前带宽大于音视频数据的保底传输码率,表示传输音视频数据的网络的当前带宽可以满足音视频数据的基本传输需求,可以确定待编码音频数据的可用传输码率为网络的当前带宽与视频数据的下限编码码率之差。
[0184]
步骤s304、若网络的当前带宽小于音视频数据的保底传输码率,则确定待编码音频数据的可用传输码率为待编码音频数据的下限编码码率。
[0185]
在本步骤s304中,若网络的当前带宽小于音视频数据的保底传输码率,表示传输音视频数据的网络的当前带宽无法满足音视频数据的基本传输需求,则可以确定待编码音频数据的可用传输码率为待编码音频数据的期望编码码率对应的预设编码码率区间的下限编码码率。此时,可以优先保证待编码音频数据的音频质量,降低待编码音频数据对应的视频数据的编码码率,相较于直接关闭视频传输的处理方式,可以在保证音频质量的前提下,保留视频传输,满足用户的音视频通信需求。
[0186]
在上述步骤s202中,如图4所示,确定待编码音频数据的期望传输码率的过程可以包括步骤s401至s402:
[0187]
步骤s401、获取待编码音频数据的期望编码码率、待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数。
[0188]
在本公开实施例中,待编码音频数据的预设冗余编码系数为对待编码音频数据进行冗余编码的冗余度,该预设冗余编码系数可以基于实际需要确定,本公开实施例对此不作限定;历史重传码率为早于待编码音频数据的一帧或多帧音频数据的重传码率;重传码率的冗余编码系数为对重传处理进行冗余编码的冗余度,该重传码率的冗余编码系数可以基于实际需要确定,本公开实施例对此不作限定。示例的,该重传码率的冗余编码系数可以为0。
[0189]
在本步骤s401中,可以根据音视频数据发送方终端设备的音频数据编码码率的设置信息,获取待编码音频数据的期望编码码率;根据对每一帧待编码音频数据的重传码率的记录结果,获取历史重传码率;根据webrtc框架的设置参数,获取待编码音频数据的预设冗余编码系数和重传码率的冗余编码系数。
[0190]
步骤s402、根据待编码音频数据的期望编码码率、待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数,确定待编码音频数据的期望传输码率。
[0191]
在本步骤s402中,根据待编码音频数据的期望编码码率、待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数,确定待编码音频数据的期望传输码率的过程可以包括:
[0192]
根据待编码音频数据的预设冗余编码系数和待编码音频数据的期望编码码率之积,得到待编码音频数据的期望冗余编码码率;根据重传码率的冗余编码系数和参考值之和,以及历史重传码率,得到待编码音频数据的期望重传码率;根据期望编码码率、期望冗余编码码率和期望重传码率,得到待编码音频数据的期望传输码率。
[0193]
示例的,可以根据待编码音频数据的期望编码码率、待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数,以及公式(2)得到待编码音频数据的期望传输码率:
[0194][0195]
其中,bps
exp
为待编码音频数据的期望传输码率,bps
enc
为待编码音频数据的期望编码码率;red_layers为待编码音频数据的预设冗余编码系数;bps
last_rtx
为历史重传码率,rtx_redundant为重传码率的冗余编码系数;bps
enc
×
red_layers为待编码音频数据期望冗余编码码率;bps
last_rtx
×
(1 rtx_redundant)为待编码音频数据的期望重传码率,参考值为1,bps
enc
×
red_layers bps
last_rtx
×
(1 rtx_redundant)为待编码音频数据的期望保护编码码率。
[0196]
在一种可选的实施方式中,用于传输音视频数据的网络的当前带宽会存在带宽充足或者较小的场景,为了满足各种网络场景下的音视频传输需求,在一种可选的实施方式中,可以降低待编码音频数据的期望编码码率,得到待编码音频数据的修正期望编码码率,以使待编码音频数据在各种网络场景下,按照其期望的编码码率进行传输,提升待编码音
频数据的传输流畅度和音频质量。
[0197]
其中,确定待编码音频数据的修正期望编码码率的过程可以包括:确定期望编码系数与待编码音频数据的期望传输码率之积,确定待编码音频数据的修正期望传输码率为期望编码系数与待编码音频数据的期望传输码率之积,待编码音频数据的期望传输码率为上述步骤s402中确定的待编码音频数据的期望传输码率,期望编码系数可以基于实际需要确定,本公开实施例对此不作限定。
[0198]
示例的,可以根据待编码音频数据的期望传输码率和公式(3)确定待编码音频数据的修正期望传输码率:
[0199]
bps
final
=bps
exp
×
0.95;
ꢀꢀ
(3)
[0200]
其中,bps
exp
为待编码音频数据的期望传输码率,bps
final
为待编码音频数据的修正期望传输码率,期望编码系数为0.95。
[0201]
在上述步骤s203中,若可用传输码率小于期望传输码率,如图5所示,则根据可用传输码率与待编码音频数据的码率分配比例,确定待编码音频数据的参考编码码率的过程可以包括步骤s501至s504:
[0202]
步骤s501、获取历史重传码率、历史编码码率和待编码音频数据的预设冗余编码系数。
[0203]
在本公开实施例中,历史编码码率为早于待编码音频数据的一帧或多帧音频数据的实际编码码率。
[0204]
在本步骤s501中,可以根据对每一帧待编码音频数据的重传码率的记录结果,获取历史重传码率;根据对每一帧待编码音频数据的编码码率的记录结果,获取历史编码码率;根据webrtc框架的设置参数,获取待编码音频数据的预设冗余编码系数。
[0205]
步骤s502、确定可用传输码率的码率分配总参数。
[0206]
在本公开实施例中,可用传输码率需要分配给待编码音频数,以实现待编码音频数据的编码,可用传输码率还需要分配给冗余编码处理和重传处理,以实现待编码音频数据的传输流畅度提升,因此,可以确定可用传输码率的码率分配总参数,码率分配总参数为可用传输码率被分配给重传处理的比例、冗余编码处理的比例和待编码音频数据的比例之和,即码率分配总参数为历史重传码率和历史编码码率的比值、待编码音频数据的码率分配参数和预设冗余编码系数的和值。其中,历史重传码率和历史编码码率的比值为可用传输码率被分配给重传处理的比例,待编码音频数据的码率分配参数为可用传输码率被分配给待编码音频数据的比例,预设冗余编码系数为可用传输码率被分配给冗余编码处理的比例。
[0207]
在本步骤s502中,可以确定历史重传码率和历史编码码率的比值、待编码音频数据的码率分配参数以及预设冗余编码系数的和值,得到可用传输码率的码率分配总参数。
[0208]
步骤s503、确定待编码音频数据的码率分配参数和可用传输码率的码率分配总参数的比值,得到待编码音频数据的码率分配比例。
[0209]
步骤s504、根据可用传输码率和待编码音频数据的码率分配比例之积,得到待编码音频数据的参考编码码率。
[0210]
在本步骤s504中,可以确定可用传输码率和待编码音频数据的码率分配比例之积,根据可用传输码率和待编码音频数据的码率分配比例之积,得到待编码音频数据的参
考编码码率。
[0211]
示例的,可以根据公式(4)确定待编码音频数据的参考编码码率:
[0212][0213]
其中,bps
enc_ref
为待编码音频数据的参考编码码率,bps
set
为可用传输码率;1为待编码音频数据的码率分配参数;red_layers为预设冗余编码系数;ratio
last_rtx_to_enc
为历史重传码率和历史编码码率的比值;1 red_layers ratio
last_rtx_to_enc
为可用传输码率的码率分配总参数;为待编码音频数据的码率分配比例。
[0214]
在上述步骤s204中,根据参考编码码率确定待编码音频数据的目标传输码率的过程可以有以下两种可选的实现方式:
[0215]
在一种可选的实施方式中,若参考编码码率大于或者等于与期望编码码率对应的预设编码码率区间的下限编码码率,根据参考编码码率确定待编码音频数据的目标传输码率的过程可以包括:确定待编码音频数据的目标编码码率为参考编码码率;确定待编码音频数据的目标保护编码码率为期望保护编码码率;根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率,并根据目标传输码率传输待编码音频数据;可选的,根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率的过程可以包括:确定待编码音频数据的目标传输码率为目标编码码率和目标保护编码码率之和。
[0216]
在一种可选的实施方式中,若参考编码码率小于与期望编码码率对应的预设编码码率区间的下限编码码率,表示待编码音频数据的可用传输码率中分配给待编码音频数据的编码码率,不足以满足待编码音频数据的下限编码码率需求,则需要降低待编码音频数据的可用传输码率中分配给音频保护处理的编码码率,以确保待编码音频数据至少按照待编码音频数据的下限编码码率进行编码,保证音频数据的音频质量。则根据参考编码码率确定待编码音频数据的目标传输码率的过程可以包括:
[0217]
确定待编码音频数据的目标编码码率为与期望编码码率对应的预设编码码率区间的下限编码码率;基于预设规则确定待编码音频数据的目标保护编码码率;根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率,并根据目标传输码率传输待编码音频数据;可选的,根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率的过程可以包括:确定待编码音频数据的目标传输码率为目标编码码率和目标保护编码码率之和。
[0218]
其中,如图6所示,基于预设规则确定待编码音频数据的目标保护编码码率的过程可以包括步骤s601至步骤s603:
[0219]
步骤s601、确定预测重传码率。
[0220]
在本公开实施例中,预测重传码率为降低重传处理的码率后,为重传处理分配的码率。
[0221]
在本步骤s601中,确定预测重传码率的过程可以包括:获取历史重传码率和历史编码码率;根据历史重传码率和历史编码码率的比值,以及待编码音频数据的目标编码码率,得到预测重传码率。
[0222]
其中,可以根据历史重传码率和历史编码码率的比值、待编码音频数据的目标编码码率以及公式(5),得到预测重传码率的过程可以包括:
[0223]
bps
rtx
=ratio
last_rtx_to_enc
×
bps
bw_limit_enc_final

ꢀꢀ
(5)
[0224]
其中,bps
rtx
为预测重传码率;ratio
last_rtx_
t
o_enc
为历史重传码率和历史编码码率的比值;bps
bw_limit_enc_final
为待编码音频数据的目标编码码率。
[0225]
步骤s602、确定第一码率差值。
[0226]
在本公开实施例中,第一码率差值为可用传输码率和目标编码码率的码率差值。
[0227]
在本步骤s602中,可以确定待编码音频数据的可用传输码率和待编码音频数据的目标编码码率的码率差值,将第一码率差值确定为待编码音频数据的可用传输码率和待编码音频数据的目标编码码率的码率差值。
[0228]
步骤s603、根据第一码率差值和预测重传码率,确定待编码音频数据的目标保护编码码率。
[0229]
在本步骤s603中,根据第一码率差值和预测重传码率,确定待编码音频数据的目标保护编码码率的过程可以有以下两种可选的实现方式:
[0230]
在一种可选的实现方式中,根据第一码率差值和预测重传码率,确定待编码音频数据的目标保护编码码率的过程可以包括:若第一码率差值小于预测重传码率,则确定目标重传码率为第一码率差值;确定待编码音频数据的目标保护编码码率为目标重传码率。在此种情况下,表示待编码音频数据的可用传输码率中,除去分配给用于编码待编码音频数据的编码码率之外,剩余的码率仅能分配给音频保护处理中的重传处理。
[0231]
在一种可选的实现方式中,根据第一码率差值和预测重传码率,确定待编码音频数据的目标保护编码码率的过程可以包括:若第一码率差值大于预测重传码率,则确定目标重传码率为预测重传码率;根据第二码率差值确定目标冗余编码码率;确定待编码音频数据的目标保护编码码率为目标重传码率和目标冗余编码码率之和,其中,第二码率差值为第一码率差值和预测重传码率之差。
[0232]
其中,根据第二码率差值确定目标冗余编码码率的过程可以包括:根据第二码率差值和待编码音频数据的目标编码码率,确定待编码音频数据的目标冗余编码系数;根据目标冗余编码系数和待编码音频数据的目标编码码率之积,得到目标冗余编码码率。
[0233]
示例的,可以根据第二码率差值、待编码音频数据的目标编码码率和公式(6),确定待编码音频数据的目标冗余编码系数:
[0234][0235]
其中,red_layers
final
为目标冗余编码系数;bps
left
为第二码率差值,bps
bw_limit_enc_final
为待编码音频数据的目标编码码率,int表示对第二码率差值与待编码音频数据的目标编码码率的比值取整数。
[0236]
需要说明的是,在本公开实施例中,若参考编码码率小于与期望编码码率对应的预设编码码率区间的下限编码码率,表示当前的网络是一种极度带限网络,是一种极度弱网环境,此时,在保证待编码音频数据的传输流畅度的前提下,若可以对待编码音频数据做音频保护处理,由于相比于冗余编码处理,重传处理的带宽利用率更高,可以最大限度的利
用网络资源,提升待编码音频数据的音频质量,因此,在极度带限网络环境下,需要对待编码音频数据做音频保护处理时,优先选择重传处理,再进行冗余编码处理。既可以保证网络资源的利用率,也可以提升进一步待编码音频数据的传输流畅度。
[0237]
示例的,在上述步骤s204中,可以根据公式(7)确定待编码音频数据的目标编码码率:
[0238][0239]
其中,bps
bw_limit_enc_final
为待编码音频数据的目标编码码率,bps
enc_ref
为待编码音频数据的参考编码码率,bps
self_dadption_lower_limit
为与期望编码码率对应的预设编码码率区间的下限编码码率。
[0240]
在一种可选的实施方式中,若可用传输码率大于或者等于期望传输码率,表示待编码音频数据可以根据待编码音频数据的期望传输码率进行传输,则确定待编码音频数据的目标传输码率的过程可以包括:确定待编码音频数据的目标编码码率为期望编码码率;确定待编码音频数据的目标保护编码码率为期望保护编码码率;根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率,并根据目标传输码率传输待编码音频数据。
[0241]
可以理解的是,若可用传输码率大于或者等于期望传输码率,确定的待编码音频数据的目标传输码率为待编码音频数据的期望传输码率,既可以保证待编码音频数据传输的流畅度和音频质量,且可以防止在网络带宽充足的场景下无限制增大待编码音频数据的编码码率,造成的网络资源的浪费。
[0242]
在一种可选的实施方式中,音频保护处理可以包括对待编码音频数据进行带内前向纠错(inband forward error correction,inband

fec)处理,但是,带内前向纠错处理通常会占用为待编码音频数据确定的目标编码码率,当为待编码音频数据确定的目标编码码率较小时,带内前向纠错处理会导致待编码音频数据的音频质量下降,因此,通常会将确定的待编码音频数据的目标编码码率和预设编码阈值进行比较,当待编码音频数据的目标编码码率大于或者等于预设编码阈值时,可以对待编码音频数据进行带内前向纠错处理,进一步提升待编码音频数据的传输流畅度;但是,当待编码音频数据的目标编码码率小于预设编码阈值时,无需对待编码音频数据进行带内前向纠错处理,以保证待编码音频数据的音频质量。其中,预设编码阈值可以基于音频编码器的特性确定,本公开实施例对此不作限定。示例的,当音频编码器为opus音频编码器时,可以确定预设编码阈值为20kbps。
[0243]
需要说明的是,在本公开实施例中,由于带内前向纠错处理主要占用的是为待编码音频数据确定的目标编码码率,则在确定待编码音频数据的期望保护编码码率时,无需确定带内前向纠错处理需要的编码码率。
[0244]
在一种可选的实施方式中,本公开实施例中提供的音频码率确定方法,如图7所示,该方法包括:
[0245]
在音视频通信开始后,调用webrtc框架中的传输模块中的拥塞控制子模块根据网络的当前状况,以及早于待编码音频数据的一帧音视频数据的实际传输码率,进行带宽估计得到网络的当前带宽;并对网络的当前带宽进行平滑处理,得到平滑处理后的网络的当
前带宽;接着确定待编码音频数据的可用传输码率,确定待编码音频数据的期望传输码率,并判断待编码音频数据的可用传输码率是否大于或者等于待编码音频数据的期望传输码率。
[0246]
当待编码音频数据的可用传输码率大于或者等于待编码音频数据的期望传输码率时,设置待编码音频数据的目标传输码率为:期望编码码率和期望保护编码码率之和;当待编码音频数据的可用传输码率小于待编码音频数据的期望传输码率时,基于预设规则确定待编码音频数据的目标保护编码码率,设置待编码音频数据的目标传输码率为:待编码音频数据的下限编码码率和基于预设规则确定待编码音频数据的目标保护编码码率之和。
[0247]
接着,从webrtc框架中的视频处理模块获取为与待编码音频数据对应的视频数据分配的目标传输码率,确定音视频数据的目标传输码率为待编码音频数据的目标传输码率,以及与待编码音频数据对应的视频数据的目标传输码率之和。将音视频数据的目标传输码率作为音视频数据的实际传输码率进行反馈,以使拥塞控制子模块根据音视频数据的实际传输码率和下一帧待编码音频数据的网络的当前状况,确定下一帧待编码音频数据对应的网络的当前带宽,并按照上述过程确定下一帧待编码音频数据的目标传输码率,循环上述过程直至音视频通信结束。
[0248]
需要说明的是,确定待编码音频数据的可用传输码率以及确定待编码音频数据的期望传输码率的过程可以参考上述步骤s202,本公开实施例对此不作赘述;当待编码音频数据的可用传输码率小于待编码音频数据的期望传输码率时,确定音视频数据的目标传输码率的过程可以上述步骤s203至步骤s204,本公开实施例对此不作赘述。
[0249]
需要说明的是,在本公开实施例中,在部署上述实施例中提供的音频码率确定方案的终端设备中,可以根据终端设备中配置的感知客观语音质量评估(perceptual objective listening quality analysis,polqa)算法来评价使用该音频码率确定方案的终端设备提供的音频质量,感知客观语音质量评估算法对音频质量的评价结果可以用平均意见得分(mean opinion score,mos)表示。
[0250]
示例的,如表2所示,表2示出了在不同的网络状况下,部署音频码率确定方案和未部署音频码率确定方案的平均意见得分,通常情况下,确定mos=3.0为音频符合可辨别音频的下限分值。
[0251]
假设待编码音频数据的初始编码码率为64kbps,从表2中可知,在未部署音频码率确定方案的情况下,各种网络环境中mos的实际分值普遍低于mos的下限分值。在部署音频码率确定方案的情况下,各种网络环境中mos的明显高于mos的下限分值,mos分值提高幅度约0.91~2.13。在“上行极差网络,下行2g”和“上行极差网络,下行3g”这种较差的网络环境中,部署音频码率确定方案的mos分值可以分别达到3.82和3.87,相较于未部署音频码率确定方案的mos分值分别为1.69和1.9,显著改善了弱网环境下,音视频通信过程中的音频质量。
[0252][0253]
表2
[0254]
示例性装置
[0255]
在介绍了本公开示例性实施方式的方法之后,接下来,参考图8对本公开示例性实施方式的装置进行说明。
[0256]
本公开实施例提供一种音频码率确定装置,如图8所示,音频码率确定装置800包括:
[0257]
获取模块801,被配置为获取待编码音频数据;
[0258]
第一确定模块802,被配置为确定待编码音频数据的可用传输码率和期望传输码率;
[0259]
第二确定模块803,被配置为若可用传输码率小于期望传输码率,则根据可用传输码率与待编码音频数据的码率分配比例,确定待编码音频数据的参考编码码率,待编码音频数据的码率分配比例为可用传输码率中,分配给待编码音频数据的编码码率和可用传输码率的比值;
[0260]
第三确定模块804,被配置为根据参考编码码率确定待编码音频数据的目标传输码率。
[0261]
在一种可选的实施方式中,音频码率确定装置还包括:期望传输码率包括待编码音频数据的期望编码码率和期望保护编码码率,
[0262]
若参考编码码率大于或者等于与期望编码码率对应的预设编码码率区间的下限编码码率,第三确定模块804,被配置为:
[0263]
确定待编码音频数据的目标编码码率为参考编码码率;
[0264]
确定待编码音频数据的目标保护编码码率为期望保护编码码率;
[0265]
根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率。
[0266]
在一种可选的实施方式中,音频码率确定装置还包括:期望传输码率包括待编码音频数据的期望编码码率和期望保护编码码率,
[0267]
若参考编码码率小于与期望编码码率对应的预设编码码率区间的下限编码码率,第三确定模块804,被配置为:
[0268]
确定待编码音频数据的目标编码码率为下限编码码率;
[0269]
基于预设规则确定待编码音频数据的目标保护编码码率;
[0270]
根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率。
[0271]
在一种可选的实施方式中,第三确定模块804,被配置为:
[0272]
确定预测重传码率;
[0273]
确定第一码率差值,第一码率差值为可用传输码率和目标编码码率的码率差值;
[0274]
根据第一码率差值和预测重传码率,确定待编码音频数据的目标保护编码码率。
[0275]
在一种可选的实施方式中,第三确定模块804,被配置为:
[0276]
获取历史重传码率和历史编码码率,历史重传码率为早于待编码音频数据的一帧或多帧音频数据的重传码率,历史编码码率为早于待编码音频数据的一帧或多帧音频数据的实际编码码率;
[0277]
根据历史重传码率和历史编码码率的比值,以及待编码音频数据的目标编码码率,得到预测重传码率。
[0278]
在一种可选的实施方式中,第三确定模块804,被配置为:
[0279]
若第一码率差值小于预测重传码率,则确定目标重传码率为第一码率差值;
[0280]
确定待编码音频数据的目标保护编码码率为目标重传码率。
[0281]
在一种可选的实施方式中,第三确定模块804,被配置为:
[0282]
若第一码率差值大于预测重传码率,则确定目标重传码率为预测重传码率;
[0283]
根据第二码率差值确定目标冗余编码码率,第二码率差值为第一码率差值和预测重传码率之差;
[0284]
确定待编码音频数据的目标保护编码码率为目标重传码率和目标冗余编码码率之和。
[0285]
在一种可选的实施方式中,第三确定模块804,被配置为:
[0286]
根据第二码率差值和待编码音频数据的目标编码码率,确定待编码音频数据的目标冗余编码系数;
[0287]
根据目标冗余编码系数和待编码音频数据的目标编码码率之积,得到目标冗余编码码率。
[0288]
在一种可选的实施方式中,音频码率确定装置还包括:期望传输码率包括待编码音频数据的期望编码码率和期望保护编码码率,
[0289]
第一确定模块802,被配置为:
[0290]
获取待编码音频数据对应的视频数据的下限编码码率;
[0291]
根据视频数据的下限编码码率以及与期望编码码率对应的预设编码码率区间的下限编码码率,得到音视频数据的保底传输码率;
[0292]
若用于传输待编码音频数据与视频数据的网络的当前带宽大于音视频数据的保底传输码率,则根据网络的当前带宽与视频数据的下限编码码率之差,得到待编码音频数据的可用传输码率;
[0293]
若网络的当前带宽小于音视频数据的保底传输码率,则确定待编码音频数据的可用传输码率为待编码音频数据的下限编码码率。
[0294]
在一种可选的实施方式中,第一确定模块802,被配置为:
[0295]
获取待编码音频数据的期望编码码率、待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数,历史重传码率为早于待编码音频数据的一帧或多帧音频数据的重传码率;
[0296]
根据待编码音频数据的期望编码码率、待编码音频数据的预设冗余编码系数、历史重传码率和重传码率的冗余编码系数,确定待编码音频数据的期望传输码率。
[0297]
在一种可选的实施方式中,第一确定模块802,被配置为:
[0298]
根据待编码音频数据的预设冗余编码系数和待编码音频数据的期望编码码率之积,得到待编码音频数据的期望冗余编码码率;
[0299]
根据重传码率的冗余编码系数和参考值之和,以及历史重传码率,得到待编码音频数据的期望重传码率;
[0300]
根据期望编码码率、期望冗余编码码率和期望重传码率,得到待编码音频数据的期望传输码率。
[0301]
在一种可选的实施方式中,第二确定模块803,被配置为:
[0302]
获取历史重传码率、历史编码码率和待编码音频数据的预设冗余编码系数,历史重传码率为早于待编码音频数据的一帧或多帧音频数据的重传码率,历史编码码率为早于待编码音频数据的一帧或多帧音频数据的实际编码码率;
[0303]
确定可用传输码率的码率分配总参数,码率分配总参数为历史重传码率和历史编码码率的比值、待编码音频数据的码率分配参数和预设冗余编码系数的和值;
[0304]
确定待编码音频数据的码率分配参数和可用传输码率的码率分配总参数的比值,得到待编码音频数据的码率分配比例;
[0305]
根据可用传输码率和待编码音频数据的码率分配比例之积,得到待编码音频数据的参考编码码率。
[0306]
在一种可选的实施方式中,如图8所示,音频码率确定装置800还包括:期望传输码率包括待编码音频数据的期望编码码率和期望保护编码码率;
[0307]
若可用传输码率大于或者等于期望传输码率,装置还包括,第四确定模块805,被配置为:
[0308]
确定待编码音频数据的目标编码码率为期望编码码率;
[0309]
确定待编码音频数据的目标保护编码码率为期望保护编码码率;
[0310]
根据目标编码码率和目标保护编码码率之和,得到待编码音频数据的目标传输码率。
[0311]
综上所述,本公开实施例提供一种音频码率确定装置,可以获取待编码音频数据;确定待编码音频数据的可用传输码率和期望传输码率;若可用传输码率小于期望传输码率,则根据可用传输码率与待编码音频数据的码率分配比例,确定待编码音频数据的参考编码码率;根据参考编码码率确定待编码音频数据的目标传输码率。可以实现根据当前的网络状况和待编码音频数据的实际传输需求,确定待编码音频数据的目标传输码率,且可以在网络带宽较小的场景下,依旧保证待编码音频数据的音频质量,且在一定程度上提升待编码音频数据的传输流畅度,在音视频通信过程中,可以为音频数据提供个性化的传输方案。
[0312]
此外,本公开实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
[0313]
示例性存储介质
[0314]
下面对本公开示例性实施方式的存储介质进行说明。
[0315]
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0316]
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0317]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0318]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、re等等,或者上述的任意合适的组合。
[0319]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言

诸如java、c 等,还包括常规的过程式程序设计语言

诸如"c"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(fan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0320]
示例性电子设备
[0321]
参考图9对本公开示例性实施方式的电子设备进行说明。
[0322]
图9显示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0323]
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:至少一个处理单元910、至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940。
[0324]
其中,存储单元存储有程序代码,程序代码可以被处理单元910执行,使得处理单元910执行本说明书上述"示例性方法"部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元910可以执行如图所示的方法步骤等。
[0325]
存储单元920可以包括易失性存储单元,例如随机存取存储单元(ram)921和/或高
速缓存存储单元922,还可以进一步包括只读存储单元(rom)923。
[0326]
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0327]
总线930可以包括数据总线、地址总线和控制总线。
[0328]
电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口950进行。电子设备900还包括显示单元940,其连接到输入/输出(i/o)接口950,用于进行显示。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(fan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0329]
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0330]
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0331]
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
再多了解一些

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

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

相关文章

  • 日榜
  • 周榜
  • 月榜