一种rtc系统的带宽资源分配系统
技术领域
1.本发明涉及通信领域,特别涉及一种rtc系统的带宽资源分配系统。
背景技术:2.rtc实时通信,是实时音视频的一个简称。近年来,随着网络和音视频技术不断发展,rtc已广泛应用在远程金融、远程教育、远程医疗、互联网社交等场景。当先进技术为线上场景带来巨大增长的同时,也面临用户越来越高的体验要求,更低延时、更高画质、更加顺畅——这三个用户体验的影响因素,对应着的也是rtc的三大核心指标,即实时性、清晰度、流畅度。
3.rtc的三大核心指标:实时性、清晰度、流畅度三者之间,往往鱼与熊掌不可兼得,实时性要求较高的场景可能会牺牲清晰度来保障低延时;而清晰度要求高的场景则可能用一定的延时换取高质量的音视频数据。在现实生活当中,由于开会所处的环境非常复杂,包括各种复杂的网络环境。为了提供良好的音视频会议体验,我们通常需要根据实时网络状态做出决策,以到达最佳用户体验。
4.现在的做法一般根据经验先得到表格,实践时,结合网络情况动态地查表,分配视频、音频的编码码率,实现前向纠错编码(forward error correction,简称:fec)和丢包重传(negative acknowledge,简称:nack)的带宽预分配;fec是通过传输的冗余信息,恢复丢失部分的信息,而不必要求信息源重传,达到低延迟的目的,nack是接收端通过告知发送端未收到协议约定的哪些包,实现对未送达数据包的重传,属于后向纠错,后向纠错的信息利用率比前向纠错要高,但会增加额外延迟,比较适用于带宽资源有限,但网络延迟较小的情况。在带宽分配的时候,采取一些限制措施,如用于fec和nack的码率不得超过编码码率的一定阈值等。但现有的带宽分配方法存在如下局限性:1、带宽分配时没有考虑之前的带宽状态,缺少全局考虑。当分辨率改变时,切换编码器和发送关键帧会带来性能上的损耗;2、分配nack可用带宽时基于对过去状态的统计,没有考虑实际编码码率,在实际使用中大概率出现带宽浪费或流量不够的问题;3、对不同类型的网络使用同一种策略,rtc的实时性很重要,决策主动重发流量时,应该充分考虑网络延时的影响。相对于低延迟网络,高延迟网络应该把抗丢包的侧重点落在主动重发包上;4、缺少对决策反馈结果的处理,整个决策系统没有形成闭环。为此需要做进一步改进。
技术实现要素:5.本发明所要解决的技术问题是针对上述现有技术,提供一种在保证rtc实时性的前提下能提高清晰度和流畅度的rtc系统的带宽资源分配系统。
6.本发明解决上述技术问题所采用的技术方案为:一种rtc系统的带宽资源分配系统,其特征在于包括:网络状态监控器、带宽分配决策器和决策结果监测器;
7.网络状态监控器,用于实时接收网络状态监测数据,并对网络状态监测数据进行分析,得到当前网络状态,并输出当前网络状态下的估计带宽;
8.带宽分配决策器,定时向网络状态监控器请求查询当前网络状态,并获取当前网络状态下的估计带宽,然后根据当前网络状态下的估计带宽生成初始带宽分配决策并输出给发送端,在发送端按照初始带宽分配决策运行一段时间后,再综合当前网络状态和决策结果监测器反馈的结果生成新的带宽分配决策,并输出给发送端,使发送端按照新的带宽分配策略运行;
9.决策结果监测器,获取发送端按照初始带宽分配决策运行一段时间后的初始通话质量,并获取发送端按照新的带宽分配策略运行一段时间后的新通话质量,然后对新通话质量和初始通话质量进行比较,将新通话质量和初始通话质量的比较结果反馈给带宽分配决策器。
10.根据会议的不同需求,所述带宽分配决策器将当前网络状态下的估计带宽按照先后顺序依次分配给音频、屏幕共享和视频。
11.进一步地,所述带宽分配决策器生成新决策的具体步骤为:
12.步骤1-1、根据当前网络状态监测数据确定音频发送策略,得到音频所需的带宽;
13.步骤1-2、结合前一次网络状态监测数据以及当前网络状态下的往返延时情况,确认是否启动被动丢包重传;
14.步骤1-3、根据当前网络状态监测数据和被动丢包重传的启动状态确定出屏幕共享策略,得到屏幕共享所需的带宽以及屏幕共享所需的被动丢包重传带宽;
15.步骤1-4、根据当前网络状态监测数据和被动丢包重传的启动状态确定出视频发送策略,得到视频所需的带宽以及视频所需的被动丢包重传带宽;
16.步骤1-5、确认被动丢包重传可用最大带宽;具体为:
17.将根据当前网络状态下的估计带宽减去音频所需的带宽、屏幕共享所需的带宽以及视频所需的带宽,得到剩余的带宽;
18.判断剩余的带宽是否大于屏幕共享所需的被动丢包重传带宽和视频所需的被动丢包重传带宽之和,如是,则剩余的带宽作为最终被动丢包重传可用最大带宽;如否,则将剩余的带宽*k的结果作为最终被动丢包重传可用最大带宽;
19.步骤1-6、将上述音频所需的带宽、屏幕共享所需的带宽、屏幕共享所需的被动丢包重传带宽、视频所需的带宽、视频所需的被动丢包重传带宽和被动丢包重传可用最大带宽作为带宽分配新决策;
20.步骤1-7、问决策结果监测器的意见,如果决策结果监测器反馈出新的带宽分配策略对应的通话质量优于上一次带宽分配策略对应的通话质量,则带宽分配决策器通过发送端按照步骤1-6中的带宽分配新决策执行;当决策结果监测器反馈出新的带宽分配策略对应的通话质量劣于上一次带宽分配策略对应的通话质量,则带宽分配决策器通知发送端按照上一次带宽分配策略执行。
21.具体的,所述步骤1-1中音频发送策略确定的具体步骤为:
22.步骤1-1a、根据当前网络的丢包率,确定出预分配音频的前向纠错编码冗余量和主动重发包的数量;
23.步骤1-1b、计算预分配音频所需的带宽br1;
24.br1=codec1*(1+k1)*(1+red1)
25.其中,codec1表示音频编码码率,k1为预分配音频的前向纠错编码冗余量,与是否
打开前向纠错编码有关,k1=100%或0;red1表示预分配音频的主动重发包的数量;
26.步骤1-1c、判断当前网络状态下的估计带宽是否足够预分配音频的前向纠错编码冗余量和主动重发包的数量所需的带宽br1,如是,则将预分配音频所需的带宽br1作为当前音频发送策略,并转入到步骤1-1d;如否,则逐渐减少预分配音频的主动重发包数量,并按照步骤1-1b中的公式重新计算预分配音频所需的带宽br1,使新计算的预分配音频估计所需的带宽br1小于当前网络状态下的估计带宽,然后将新计算的预分配音频估计所需的带宽br1作为当前音频发送策略,并转入到步骤1-1d;
27.步骤1-1d、输出音频所需的带宽;
28.具体地,所述步骤1-1a中预分配音频的前向纠错编码冗余量和主动重发包数量确定的具体方法为:
29.判断当前网络的丢包率是否大于第一阈值,如是,则打开预分配音频的前向纠错编码,并将预分配音频的前向纠错编码冗余量设为100%;如否,则不打开前向纠错编码,将预分配音频的前向纠错编码冗余量设为0;
30.另外判断当前网络的丢包率是否大于第二阈值,如是,则打开预分配音频的主动重发,并遵循丢包率逐渐增大,主动重发包的数量也逐步增加的规律,故根据当前网络的丢包率确定出主动重发包的数量;如否,则不打开主动重发,主动重发包的数量为0。
31.进一步地,所述步骤1-2中被动丢包重传是否启动的确认方法为:
32.判断当前网络状态下的往返延时时间是否大于预设的时间阈值,如是,则不启动被动丢包重传,如否,则启动被动丢包重传;
33.若不启动被动丢包重传时,则将当前网络状态下的被动丢包重传系数设为1;
34.若启动被动丢包重传时,则将当前网络状态下的被动丢包重传系数设为nackcoefficient(sendtimes);
35.nackcoefficient(sendtimes)的计算公式为:
36.nackcoefficient(sendtimes)=1+loss
sendtimes
37.其中,loss表示丢包率,sendtimes表示被动丢包重传次数。
38.进一步地,所述步骤1-3中屏幕共享策略确定的具体步骤为:
39.步骤1-3a、根据当前网络状态下的丢包率和被动丢包重传状态,确定预分配屏幕共享的前向纠错编码冗余量和主动重发包的数量;
40.步骤1-3b、计算预分配屏幕共享所需的带宽br2;计算公式为:
41.br2=codec2*nackcoefficient(1+red2)*(1+k2)*(1+red2)
42.式中:codec2表示屏幕共享编码码率,该屏幕共享编码码率codec2具有初始预设值,red2表示预分配屏幕共享的主动重发包数量,nackcoefficient(1+red2)为被动丢包重传系数,当被动丢包重传状态为不启动时,则nackcoefficient(1+red2)=1,当被动丢包重传状态为启动时,则将1+red2作为丢包重传次数sendtimes代入到被动丢包重传系数的计算公式中;k2表示预分配屏幕共享的前向纠错编码冗余量;
43.步骤1-3c、将当前网络状态下的估计带宽减去音频所需的带宽,得到第一剩余可用带宽,并判断第一剩余可用带宽是否足够预分配屏幕共享所需的带宽br2,如是,则将满足预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如否,则转入到步骤1-3d;
44.步骤1-3d、按照如下步骤依次调整预分配屏幕共享所需的带宽:
45.步骤1-3d(1)、降低屏幕共享编码码率;
46.当屏幕共享的编码码率逐渐降低后,按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,使预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如果屏幕共享的编码码率降低至最小值时,重新计算得到的预分配屏幕共享所需的带宽br2仍大于等于第一剩余可用带宽,则转入到步骤1-3d(2);
47.步骤1-3d(2)、减少屏幕共享的主动重发包数量,同时将屏幕共享的编码码率重置回初始值;
48.每次在减少屏幕共享的主动重发包数量后,再逐渐降低屏幕共享的编码码率,然后再按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,直至重新计算后的预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如否,则转入到步骤1-3d(3);
49.步骤1-3d(3)、减少预分配屏幕共享的前向纠错编码冗余量,同时屏幕共享的编码码率被重置回初始值;
50.每次在减少预分配屏幕共享的前向纠错编码冗余量后,再逐渐降低屏幕共享的编码码率,屏幕共享的主动重发包数量为最小值,然后再按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,直至重新计算后的预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如果预分配屏幕共享的前向纠错编码冗余量降到最小值时,同时屏幕共享的编码码率降到最小值时,重新计算后的预分配屏幕共享所需的带宽br2仍大于等于第一剩余可用带宽,则将最后依次计算得到的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;
51.步骤1-3e、输出屏幕共享所需的带宽以及屏幕共享所需的被动丢包重传带宽;
52.屏幕共享所需的带宽为当前屏幕共享发送策略中的屏幕共享编码码率、预分配屏幕共享的前后纠错编码冗余量和主动重发包数量代入到br2计算公式中而得到;
53.屏幕共享所需的被动丢包重传带宽br
nack1
计算公式为:
54.br
nack1
=codec2*(nackcoefficient(1+red2)-1);
55.该步骤中的屏幕共享所需的被动丢包重传带宽为当前屏幕共享发送策略中的屏幕共享编码码率和主动重发包数量代入到br
nack1
计算公式中而得到。
56.具体地,所述步骤1-3a中预分配屏幕共享的前向纠错编码冗余量和主动重发包的数量确定的具体方法为:
57.将预分配屏幕共享的前向纠错编码冗余量最低值设为lmin,预分配屏幕共享的前向纠错编码冗余量最高值为100%;并遵循丢包率逐渐增大时,预分配屏幕共享的前向纠错编码冗余量也逐步提高的规律,根据当前网络的丢包率确定出预分配屏幕共享的前向纠错编码冗余量;
58.如果当前网络的丢包率大于第三阈值,则打开预分配屏幕共享的主动重发,并遵循丢包率逐渐增大,预分配屏幕共享的主动重发包的数量也逐步增加的规律,故根据当前
网络的丢包率确定出预分配屏幕共享的主动重发包的数量;如否,则不打开预分配屏幕共享的主动重发,预分配屏幕共享的主动重发包的数量为0。
59.进一步地,所述步骤1-4中视频发送策略确定的具体步骤为:
60.步骤1-4a、根据当前网络的丢包率和被动丢包重传状态,确定预分配视频的前向纠错编码冗余量和主动重发包的数量;
61.步骤1-4b、计算预分配视频所需的带宽br3;计算公式为:
62.br3=codec3*nackcoefficient(1+red3)*(1+k3)*(1+red3)
63.式中:codec3表示视频的编码码率,codec3具有初始值;red3表示预分配视频的主动重发包数量,nackcoefficient(1+red3)为被动丢包重传系数,当被动丢包重传状态为不启动时,则nackcoefficient(1+red3)=1;当被动丢包重传状态为启动时,则将1+red3作为主动丢包重传次数sendtimes代入到被动丢包重传系数的计算公式中;k3表示预分配视频的前向纠错编码冗余量;
64.步骤1-4c、将第一剩余可用带宽减去屏幕共享所需的带宽,得到第二剩余可用带宽;并判断第二剩余可用带宽是否足够预分配视频所需的带宽br3,如是,则将满足预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如否,则转入到步骤1-4d;
65.步骤1-4d、按照如下步骤依次调整预分配视频所需的带宽:
66.步骤1-4d(1)、降低视频的编码码率;
67.如果视频的编码码率逐渐降低后,按照步骤1-4b公式重新计算预分配视频所需的带宽br3,使预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果视频的编码码率降低至最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则转入到步骤1-4d(2);
68.步骤1-4d(2)、减少视频的主动重发包数量,同时将视频的编码码率重置回初始值;
69.每次在减少视频的主动重发包数量后,再对视频的编码码率进行调整,然后再按照步骤1-4b公式重新计算预分配视频所需的带宽br3,直至重新计算后的预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果视频的主动重发包数量降到最小值时,同时视频的编码码率降到最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则转入到步骤1-4d(4);
70.步骤1-4d(4)、减少预分配视频的前向纠错编码冗余量,同时将视频的编码码率重置回初始值;
71.每次在减少预分配视频的前向纠错编码冗余量后,再对视频的编码码率进行调整,,然后再按照步骤1-4b公式重新计算预分配视频所需的带宽br3,直至重新计算预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果预分配视频的前向纠错编码冗余量降到最小值时,同时视频的编码码率降到最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则将最后依次计算得到的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;
72.步骤1-4e、输出视频所需的带宽以及视频所需的被动丢包重传带宽;
73.视频所需的带宽为当前视频发送策略中的编码码率、预分配视频的前后纠错编码冗余量和主动重发包数量代入到br3计算公式中而得到;
74.视频所需的被动丢包重传带宽br
nack2
计算公式为:
75.br
nack2
=codec3*(nackcoefficient(1+red3)-1);
76.该步骤中的视频所需的被动丢包重传带宽为当前视频发送策略中的视频编码码率和主动重发包数量代入到br
nack2
计算公式中而得到。
77.进一步地,所述决策结果监测器的工作过程具体步骤为:
78.步骤2-1、记录新的带宽分配策略和新的带宽分配策略对应的通话质量,并记录该新的带宽分配策略上一次带宽分配策略和上一次带宽分配策略对应的通话质量;
79.步骤2-2、将上一次带宽分配策略对应的通话质量和新的带宽分配策略对应的通话质量进行比较,判断新的带宽分配策略对应的通话质量是否劣于上一次带宽分配策略对应的通话质量,如是,输出新的带宽分配策略对应的通话质量劣于上一次带宽分配策略对应的通话质量;如否,输出新的带宽分配策略对应的通话质量优于上一次带宽分配策略对应的通话质量。
80.与现有技术相比,本发明的优点在于:将发送端带宽分配过程构建成完整的闭环系统,引入网络状态监控器、带宽分配决策器和决策结果监测器,使决策更加智能和稳定;另外根据网络状态变化和已生效的策略自适应的生成带宽分配决策,在保证rtc实时性的前提下提高清晰度和流畅度。
附图说明
81.图1为本发明实施例中rtc系统的带宽资源分配系统的原理框图;
82.图2为图1中网络状态监控器的运行流程图;
83.图3为图1中带宽分配决策器的运行流程图。
具体实施方式
84.以下结合附图实施例对本发明作进一步详细描述。
85.如图1所示,本实施例中rtc系统的带宽资源分配系统包括网络状态监控器、带宽分配决策器和决策结果监测器。
86.其中网络状态监控器用于实时接收网络状态监测数据,并对网络状态监测数据进行分析,得到当前网络状态,并输出当前网络状态下的估计带宽;带宽分配决策器定时向网络状态监控器请求查询当前网络状态,并获取当前网络状态下的估计带宽,然后根据当前网络状态下的估计带宽生成初始带宽分配决策并输出给发送端,在发送端按照初始带宽分配决策运行一段时间后,再综合当前网络状态和决策结果监测器反馈的结果生成新的带宽分配决策,并输出给发送端,使发送端按照新的带宽分配策略运行;决策结果监测器获取发送端按照初始带宽分配决策运行一段时间后的初始通话质量,并获取发送端按照新的带宽分配策略运行一段时间后的新通话质量,然后对新通话质量和初始通话质量进行比较,将新通话质量和初始通话质量的比较结果反馈给带宽分配决策器。
87.网络状态监控器负责接收网络状态监测数据,并且对网络状态监测数据做预处
理,最后对网络状态做出评估,反馈到带宽分配决策器;带宽分配决策器是整个系统的核心模块,结合当前网络状态和当前生效且正在执行的带宽分配策略,产生新的带宽分配策略。决策结果监测器用于观测通话质量,判断带宽分配策略的效果,使整个决策过程形成闭环,以达到最优决策的目的。
88.网络状态监控器的作用主要是减少网络状态统计时的误差,避免噪声引起的带宽分配策略的波动,减少不必要的带宽分配策略的改变,使发送端带宽分配策略的变化更加准确、平稳;另外网络状态监测数据包括可用带宽,丢包率和往返延时时间,网络状态监控器内部针对于各种不同监测数据分别分配了一个长度有限的观测窗口,用于记录真实的网络状态监测数据。网络状态监控器的运行流程如图2所示,网络状态监控器首先用统计学方法处理和分析数据,获得网络状态监测数据发生改变的统计值,当网络状态监测数据发生改变的统计值超过预设阈值,输出网络状态发生了改变的结论,此时更新当前网络状态,并输出当前网络状态下的估计带宽;当网络状态监测数据发生改变的统计值没有超过预设阈值,则输出网络状态没有发生改变的结论,然后将输出上一次网络状态的估计带宽;特别的,每隔一定时间网络状态监控器会强制刷新网络状态,使本发明提供的网带宽分配策略能更充分的适应最真实的网络状态。
89.带宽分配决策器会定时向网络状态监控器查询最新的网络状态,当网络状态变化时,开始新一轮决策。按照不同媒体源在会议中的重要程度,带宽分配决策器依次将当前网络状态下的估计带宽分配给音频、屏幕共享和视频。
90.如图3所示,本实施例中带宽分配决策器生成新决策的具体步骤为:
91.步骤1-1、根据当前网络状态监测数据确定音频发送策略,得到音频所需的带宽;
92.音频发送策略确定的具体步骤为:
93.步骤1-1a、根据当前网络的丢包率,确定出预分配音频的前向纠错编码冗余量(即:fec冗余量)和主动重发包(即:red)的数量;
94.预分配音频的前向纠错编码冗余量和主动重发包数量确定的具体方法为:
95.判断当前网络的丢包率是否大于第一阈值,如是,则打开预分配音频的前向纠错编码,并将预分配音频的前向纠错编码冗余量设为100%;如否,则不打开前向纠错编码,将预分配音频的前向纠错编码冗余量设为0;本实施例中第一阈值的取值为3%~6%;
96.另外判断当前网络的丢包率是否大于第二阈值,如是,则打开预分配音频的主动重发,并遵循丢包率逐渐增大,主动重发包的数量也逐步增加的规律,故根据当前网络的丢包率确定出主动重发包的数量;如否,则不打开主动重发,主动重发包的数量为0;本实施例中第二阈值的取值为10%~20%;
97.步骤1-1b、计算预分配音频所需的带宽br1;
98.br1=codec1*(1+k1)*(1+red1)
99.其中,codec1表示音频编码码率,k1为预分配音频的前向纠错编码冗余量,与是否打开前向纠错编码有关,k1=100%或0;red1表示预分配音频的主动重发包的数量;
100.步骤1-1c、判断当前网络状态下的估计带宽是否足够预分配音频的前向纠错编码冗余量和主动重发包的数量所需的带宽br1,如是,则将预分配音频所需的带宽br1作为当前音频发送策略,并转入到步骤1-1d;如否,则逐渐减少预分配音频的主动重发包数量,并按照步骤1-1b中的公式重新计算预分配音频所需的带宽br1,使新计算的预分配音频估计所
需的带宽br1小于当前网络状态下的估计带宽,然后将新计算的预分配音频估计所需的带宽br1作为当前音频发送策略,并转入到步骤1-1d;
101.步骤1-1d、输出音频所需的带宽;
102.步骤1-2、结合前一次网络状态监测数据以及当前网络状态下的往返延时情况,确认是否启动被动丢包重传;
103.被动丢包重传是否启动的确认方法为:由于前一次网络状态监测数据会影响当前网络状态下的往返延时时间,因此判断当前网络状态下的往返延时时间是否大于预设的时间阈值,如是,则不启动被动丢包重传,如否,则启动被动丢包重传;
104.若不启动被动丢包重传时,则将当前网络状态下的被动丢包重传系数设为1;
105.若启动被动丢包重传时,则将当前网络状态下的被动丢包重传系数设为nackcoefficient(sendtimes);
106.nackcoefficient(sendtimes)的计算公式为:
107.nackcoefficient(sendtimes)=1+loss
sendtimes
108.其中,loss表示丢包率,sendtimes表示被动丢包重传次数;
109.步骤1-3、根据当前网络状态监测数据和被动丢包重传的启动状态确定出屏幕共享策略,得到屏幕共享所需的带宽以及屏幕共享所需的被动丢包重传带宽;
110.屏幕共享策略确定的具体步骤为:
111.步骤1-3a、根据当前网络状态下的丢包率和被动丢包重传状态,确定预分配屏幕共享的前向纠错编码冗余量和主动重发包的数量;
112.预分配屏幕共享的前向纠错编码冗余量和主动重发包的数量确定的具体方法为:
113.为防止偶然的网络抖动,故将预分配屏幕共享的前向纠错编码冗余量最低值设为lmin;本实施例中,该lmin=10%;并遵循丢包率逐渐增大时,预分配屏幕共享的前向纠错编码冗余量也逐步提高的规律(可通过在表格中写成不同丢包率和对应的预分配屏幕共享的前向纠错编码冗余量),根据当前网络的丢包率确定出预分配屏幕共享的前向纠错编码冗余量,预分配屏幕共享的前向纠错编码冗余量最高值为100%;
114.如果当前网络的丢包率大于第三阈值,则打开预分配屏幕共享的主动重发,并遵循丢包率逐渐增大,预分配屏幕共享的主动重发包的数量也逐步增加的规律,故根据当前网络的丢包率确定出预分配屏幕共享的主动重发包的数量;如否,则不打开预分配屏幕共享的主动重发,预分配屏幕共享的主动重发包的数量为0;本实施例中,第三阈值为20%;
115.步骤1-3b、计算预分配屏幕共享所需的带宽br2;计算公式为:
116.br2=codec2*nackcoefficient(1+red2)*(1+k2)*(1+red2)
117.式中:codec2表示屏幕共享编码码率,codec2与屏幕共享的发送时间层级tlevel成正相关,该屏幕共享编码码率codec2具有初始预设值,即屏幕共享的发送时间层级tlevel有初始值,一般情况下tlevel的取值范围为0~15,初始值为15;red2表示预分配屏幕共享的主动重发包数量,nackcoefficient(1+red2)为被动丢包重传系数,当被动丢包重传状态为不启动时,则nackcoefficient(1+red2)=1,当被动丢包重传状态为启动时,则将1+red2作为丢包重传次数sendtimes代入到被动丢包重传系数的计算公式中;k2表示预分配屏幕共享的前向纠错编码冗余量;
118.步骤1-3c、将当前网络状态下的估计带宽减去音频所需的带宽,得到第一剩余可
用带宽,并判断第一剩余可用带宽是否足够预分配屏幕共享所需的带宽br2,如是,则将满足预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如否,则转入到步骤1-3d;
119.步骤1-3d、按照如下步骤依次调整预分配屏幕共享所需的带宽:
120.步骤1-3d(1)、降低屏幕共享编码码率;
121.当屏幕共享的编码码率逐渐降低后,按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,使预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如果屏幕共享的编码码率降低至最小值时,重新计算得到的预分配屏幕共享所需的带宽br2仍大于等于第一剩余可用带宽,则转入到步骤1-3d(2);
122.步骤1-3d(2)、减少屏幕共享的主动重发包数量,同时将屏幕共享的编码码率重置回初始值;
123.每次在减少屏幕共享的主动重发包数量后,再逐渐降低屏幕共享的编码码率,然后再按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,直至重新计算后的预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如否,则转入到步骤1-3d(3);
124.步骤1-3d(3)、减少预分配屏幕共享的前向纠错编码冗余量,同时屏幕共享的编码码率被重置回初始值;
125.每次在减少预分配屏幕共享的前向纠错编码冗余量后,再逐渐降低屏幕共享的编码码率,屏幕共享的主动重发包数量为最小值,然后再按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,直至重新计算后的预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如果预分配屏幕共享的前向纠错编码冗余量降到最小值时,同时屏幕共享的编码码率降到最小值时,重新计算后的预分配屏幕共享所需的带宽br2仍大于等于第一剩余可用带宽,则将最后依次计算得到的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;
126.步骤1-3e、输出屏幕共享所需的带宽以及屏幕共享所需的被动丢包重传带宽;
127.屏幕共享所需的带宽为当前屏幕共享发送策略中的屏幕共享编码码率、预分配屏幕共享的前后纠错编码冗余量和主动重发包数量代入到br2计算公式中而得到;
128.屏幕共享所需的被动丢包重传带宽br
nack1
计算公式为:
129.br
nack1
=codec2*(nackcoefficient(1+red2)-1);
130.该步骤中的屏幕共享所需的被动丢包重传带宽为当前屏幕共享发送策略中的屏幕共享编码码率和主动重发包数量代入到br
nack1
计算公式中而得到;
131.步骤1-4、根据当前网络状态监测数据和被动丢包重传的启动状态确定出视频发送策略,得到视频所需的带宽以及视频所需的被动丢包重传带宽;
132.视频发送策略确定的具体步骤为:
133.步骤1-4a、根据当前网络的丢包率和被动丢包重传状态,确定预分配视频的前向纠错编码冗余量和主动重发包的数量;
134.预分配视频的前向纠错编码冗余量和主动重发包的数量确定的具体方法为:
135.为防止偶然的网络抖动,故将预分配视频的前向纠错编码冗余量最低值设为l1;本实施例中,该l1=10%;并遵循丢包率逐渐增大时,预分配视频的前向纠错编码冗余量也逐步提高的规律(可通过在表格中写成不同丢包率和对应的预分配视频的前向纠错编码冗余量),根据当前网络的丢包率确定出预分配视频的前向纠错编码冗余量,预分配视频的前向纠错编码冗余量最高值为100%;
136.如果当前网络的丢包率大于第四阈值,则打开预分配视频的主动重发,并遵循丢包率逐渐增大,预分配视频的主动重发包的数量也逐步增加的规律,故根据当前网络的丢包率确定出预分配视频的主动重发包的数量;如否,则不打开预分配视频的主动重发,主动重发包的数量为0;本实施例中,第四阈值为20%;
137.步骤1-4b、计算预分配视频所需的带宽br3;计算公式为:
138.br3=codec3*nackcoefficient(1+red3)*(1+k3)*(1+red3)
139.式中:codec3表示视频的编码码率,codec3与视频的发送空间层级和视频的发送时间层级相关;codec3具有初始值,codec3的具体取值与编码器配置有关;red3表示预分配视频的主动重发包数量,nackcoefficient(1+red3)为被动丢包重传系数,当被动丢包重传状态为不启动时,则nackcoefficient(1+red3)=1;当被动丢包重传状态为启动时,则将1+red3作为主动丢包重传次数sendtimes代入到被动丢包重传系数的计算公式中;k3表示预分配视频的前向纠错编码冗余量;
140.步骤1-4c、将第一剩余可用带宽减去屏幕共享所需的带宽,得到第二剩余可用带宽;并判断第二剩余可用带宽是否足够预分配视频所需的带宽br3,如是,则将满足预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如否,则转入到步骤1-4d;
141.步骤1-4d、按照如下步骤依次调整预分配视频所需的带宽:
142.步骤1-4d(1)、降低视频的编码码率;
143.如果视频的编码码率逐渐降低后,按照步骤1-4b公式重新计算预分配视频所需的带宽br3,使预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果视频的编码码率降低至最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则转入到步骤1-4d(2);
144.步骤1-4d(2)、减少视频的主动重发包数量,同时将视频的编码码率重置回初始值;
145.每次在减少视频的主动重发包数量后,再对视频的编码码率进行调整,然后再按照步骤1-4b公式重新计算预分配视频所需的带宽br3,直至重新计算后的预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果视频的主动重发包数量降到最小值时,同时视频的编码码率降到最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则转入到步骤1-4d(4);
146.步骤1-4d(4)、减少预分配视频的前向纠错编码冗余量,同时将视频的编码码率重置回初始值;
147.每次在减少预分配视频的前向纠错编码冗余量后,再对视频的编码码率进行调
整,,然后再按照步骤1-4b公式重新计算预分配视频所需的带宽br3,直至重新计算预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果预分配视频的前向纠错编码冗余量降到最小值时,同时视频的编码码率降到最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则将最后依次计算得到的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;
148.步骤1-4e、输出视频所需的带宽以及视频所需的被动丢包重传带宽;
149.视频所需的带宽为当前视频发送策略中的编码码率、预分配视频的前后纠错编码冗余量和主动重发包数量代入到br3计算公式中而得到;
150.视频所需的被动丢包重传带宽br
nack2
计算公式为:
151.br
nack2
=codec3*(nackcoefficient(1+red3)-1);
152.该步骤中的视频所需的被动丢包重传带宽为当前视频发送策略中的视频编码码率和主动重发包数量代入到br
nack2
计算公式中而得到;
153.步骤1-5、确认被动丢包重传可用最大带宽;具体为:
154.将根据当前网络状态下的估计带宽减去音频所需的带宽、屏幕共享所需的带宽以及视频所需的带宽,得到剩余的带宽;
155.判断剩余的带宽是否大于屏幕共享所需的被动丢包重传带宽和视频所需的被动丢包重传带宽之和,如是,则剩余的带宽作为最终被动丢包重传可用最大带宽;如否,则将剩余的带宽*k的结果作为最终被动丢包重传可用最大带宽,k为预设系数;k的取值范围为:1.05<k<1.2;本实施例中优选的k=1.1;
156.步骤1-6、将上述音频所需的带宽、屏幕共享所需的带宽、屏幕共享所需的被动丢包重传带宽、视频所需的带宽、视频所需的被动丢包重传带宽和被动丢包重传可用最大带宽作为带宽分配新决策;
157.步骤1-7、询问决策结果监测器的意见,如果决策结果监测器反馈出新的带宽分配策略s1对应的通话质量q1优于上一次带宽分配策略s0对应的通话质量q0,则带宽分配决策器通过发送端按照步骤1-6中的带宽分配新决策执行;当决策结果监测器反馈出新的带宽分配策略s1对应的通话质量q1劣于上一次带宽分配策略s0对应的通话质量q0,则带宽分配决策器通知发送端按照上一次带宽分配策略执行。
158.决策结果监测器的作用是在宽分配决策器输出的新的带宽分配策略生效并执行一定时间后,对通话质量进行监测,然后与按照上一次带宽分配策略时的通话质量进行对比,将新通话质量和上一次通话质量的比较结果反馈给带宽分配决策器。
159.本实施例中决策结果监测器的工作过程具体步骤为:
160.步骤2-1、记录新的带宽分配策略s1和新的带宽分配策略s1对应的通话质量q1,并记录该新的带宽分配策略s1上一次带宽分配策略s0和上一次带宽分配策略s0对应的通话质量q0;
161.步骤2-2、将上一次带宽分配策略s0对应的通话质量q0和新的带宽分配策略s1对应的通话质量q1进行比较,判断q1是否劣于q0,如是,输出新的带宽分配策略s1对应的通话质量q1劣于上一次带宽分配策略s0对应的通话质量q0;如否,输出新的带宽分配策略s1对应的通话质量q1优于上一次带宽分配策略s0对应的通话质量q0。
162.相比旧的技术方案,应用新的解决方案后,视频的清晰度和流畅度得到提升。
163.1、当网络状态没有改变时,发送分辨率的选择比之前稳定,减少了因分辨率变化引发的画面波动,使用户体验更佳;测试显示,新的决策方案使分辨率的稳定性比原来提升了50%。
164.2、当网络状态改变,或者订阅状态改变时,新的决策系统反应更加灵敏,能更快的达到新的稳定点。比如网络突然发生80%丢包的场景,在应用新的决策方案后,会议可用带宽估计能更快恢复,使画面卡顿时长减少20%以上。
技术特征:1.一种rtc系统的带宽资源分配系统,其特征在于包括:网络状态监控器、带宽分配决策器和决策结果监测器;网络状态监控器,用于实时接收网络状态监测数据,并对网络状态监测数据进行分析,得到当前网络状态,并输出当前网络状态下的估计带宽;带宽分配决策器,定时向网络状态监控器请求查询当前网络状态,并获取当前网络状态下的估计带宽,然后根据当前网络状态下的估计带宽生成初始带宽分配决策并输出给发送端,在发送端按照初始带宽分配决策运行一段时间后,再综合当前网络状态和决策结果监测器反馈的结果生成新的带宽分配决策,并输出给发送端,使发送端按照新的带宽分配策略运行;决策结果监测器,获取发送端按照初始带宽分配决策运行一段时间后的初始通话质量,并获取发送端按照新的带宽分配策略运行一段时间后的新通话质量,然后对新通话质量和初始通话质量进行比较,将新通话质量和初始通话质量的比较结果反馈给带宽分配决策器。2.根据权利要求1所述的rtc系统的带宽资源分配系统,其特征在于:所述带宽分配决策器将当前网络状态下的估计带宽按照先后顺序依次分配给音频、屏幕共享和视频。3.根据权利要求2所述的rtc系统的带宽资源分配系统,其特征在于:所述带宽分配决策器生成新决策的具体步骤为:步骤1-1、根据当前网络状态监测数据确定音频发送策略,得到音频所需的带宽;步骤1-2、结合前一次网络状态监测数据以及当前网络状态下的往返延时情况,确认是否启动被动丢包重传;步骤1-3、根据当前网络状态监测数据和被动丢包重传的启动状态确定出屏幕共享策略,得到屏幕共享所需的带宽以及屏幕共享所需的被动丢包重传带宽;步骤1-4、根据当前网络状态监测数据和被动丢包重传的启动状态确定出视频发送策略,得到视频所需的带宽以及视频所需的被动丢包重传带宽;步骤1-5、确认被动丢包重传可用最大带宽;具体为:将根据当前网络状态下的估计带宽减去音频所需的带宽、屏幕共享所需的带宽以及视频所需的带宽,得到剩余的带宽;判断剩余的带宽是否大于屏幕共享所需的被动丢包重传带宽和视频所需的被动丢包重传带宽之和,如是,则剩余的带宽作为最终被动丢包重传可用最大带宽;如否,则将剩余的带宽*k的结果作为最终被动丢包重传可用最大带宽;步骤1-6、将上述音频所需的带宽、屏幕共享所需的带宽、屏幕共享所需的被动丢包重传带宽、视频所需的带宽、视频所需的被动丢包重传带宽和被动丢包重传可用最大带宽作为带宽分配新决策;步骤1-7、问决策结果监测器的意见,如果决策结果监测器反馈出新的带宽分配策略对应的通话质量优于上一次带宽分配策略对应的通话质量,则带宽分配决策器通过发送端按照步骤1-6中的带宽分配新决策执行;当决策结果监测器反馈出新的带宽分配策略对应的通话质量劣于上一次带宽分配策略对应的通话质量,则带宽分配决策器通知发送端按照上一次带宽分配策略执行。4.根据权利要求3所述的rtc系统的带宽资源分配系统,其特征在于:所述步骤1-1中音
频发送策略确定的具体步骤为:步骤1-1a、根据当前网络的丢包率,确定出预分配音频的前向纠错编码冗余量和主动重发包的数量;步骤1-1b、计算预分配音频所需的带宽br1;br1=codec1*(1+k1)*(1+red1)其中,codec1表示音频编码码率,k1为预分配音频的前向纠错编码冗余量,与是否打开前向纠错编码有关,k1=100%或0;red1表示预分配音频的主动重发包的数量;步骤1-1c、判断当前网络状态下的估计带宽是否足够预分配音频的前向纠错编码冗余量和主动重发包的数量所需的带宽br1,如是,则将预分配音频所需的带宽br1作为当前音频发送策略,并转入到步骤1-1d;如否,则逐渐减少预分配音频的主动重发包数量,并按照步骤1-1b中的公式重新计算预分配音频所需的带宽br1,使新计算的预分配音频估计所需的带宽br1小于当前网络状态下的估计带宽,然后将新计算的预分配音频估计所需的带宽br1作为当前音频发送策略,并转入到步骤1-1d;步骤1-1d、输出音频所需的带宽。5.根据权利要求4所述的rtc系统的带宽资源分配系统,其特征在于:所述步骤1-1a中预分配音频的前向纠错编码冗余量和主动重发包数量确定的具体方法为:判断当前网络的丢包率是否大于第一阈值,如是,则打开预分配音频的前向纠错编码,并将预分配音频的前向纠错编码冗余量设为100%;如否,则不打开前向纠错编码,将预分配音频的前向纠错编码冗余量设为0;另外判断当前网络的丢包率是否大于第二阈值,如是,则打开预分配音频的主动重发,并遵循丢包率逐渐增大,主动重发包的数量也逐步增加的规律,故根据当前网络的丢包率确定出主动重发包的数量;如否,则不打开主动重发,主动重发包的数量为0。6.根据权利要求3所述的rtc系统的带宽资源分配系统,其特征在于:所述步骤1-2中被动丢包重传是否启动的确认方法为:判断当前网络状态下的往返延时时间是否大于预设的时间阈值,如是,则不启动被动丢包重传,如否,则启动被动丢包重传;若不启动被动丢包重传时,则将当前网络状态下的被动丢包重传系数设为1;若启动被动丢包重传时,则将当前网络状态下的被动丢包重传系数设为nackcoefficient(sendtimes);nackcoefficient(sendtimes)的计算公式为:nackcoefficient(sendtimes)=1+loss
sendtimes
其中,loss表示丢包率,sendtimes表示被动丢包重传次数。7.根据权利要求6所述的rtc系统的带宽资源分配系统,其特征在于:所述步骤1-3中屏幕共享策略确定的具体步骤为:步骤1-3a、根据当前网络状态下的丢包率和被动丢包重传状态,确定预分配屏幕共享的前向纠错编码冗余量和主动重发包的数量;步骤1-3b、计算预分配屏幕共享所需的带宽br2;计算公式为:br2=codec2*nackcoefficient(1+red2)*(1+k2)*(1+red2)式中:codec2表示屏幕共享编码码率,该屏幕共享编码码率codec2具有初始预设值,
red2表示预分配屏幕共享的主动重发包数量,nackcoefficient(1+red2)为被动丢包重传系数,当被动丢包重传状态为不启动时,则nackcoefficient(1+red2)=1,当被动丢包重传状态为启动时,则将1+red2作为丢包重传次数sendtimes代入到被动丢包重传系数的计算公式中;k2表示预分配屏幕共享的前向纠错编码冗余量;步骤1-3c、将当前网络状态下的估计带宽减去音频所需的带宽,得到第一剩余可用带宽,并判断第一剩余可用带宽是否足够预分配屏幕共享所需的带宽br2,如是,则将满足预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如否,则转入到步骤1-3d;步骤1-3d、按照如下步骤依次调整预分配屏幕共享所需的带宽:步骤1-3d(1)、降低屏幕共享编码码率;当屏幕共享的编码码率逐渐降低后,按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,使预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如果屏幕共享的编码码率降低至最小值时,重新计算得到的预分配屏幕共享所需的带宽br2仍大于等于第一剩余可用带宽,则转入到步骤1-3d(2);步骤1-3d(2)、减少屏幕共享的主动重发包数量,同时将屏幕共享的编码码率重置回初始值;每次在减少屏幕共享的主动重发包数量后,再逐渐降低屏幕共享的编码码率,然后再按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,直至重新计算后的预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如否,则转入到步骤1-3d(3);步骤1-3d(3)、减少预分配屏幕共享的前向纠错编码冗余量,同时屏幕共享的编码码率被重置回初始值;每次在减少预分配屏幕共享的前向纠错编码冗余量后,再逐渐降低屏幕共享的编码码率,屏幕共享的主动重发包数量为最小值,然后再按照步骤1-3b公式重新计算预分配屏幕共享所需的带宽br2,直至重新计算后的预分配屏幕共享所需的带宽br2小于第一剩余可用带宽,则将重新计算后的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;如果预分配屏幕共享的前向纠错编码冗余量降到最小值时,同时屏幕共享的编码码率降到最小值时,重新计算后的预分配屏幕共享所需的带宽br2仍大于等于第一剩余可用带宽,则将最后依次计算得到的预分配屏幕共享所需的带宽br2作为当前屏幕共享发送策略,并转入到步骤1-3e;步骤1-3e、输出屏幕共享所需的带宽以及屏幕共享所需的被动丢包重传带宽;屏幕共享所需的带宽为当前屏幕共享发送策略中的屏幕共享编码码率、预分配屏幕共享的前后纠错编码冗余量和主动重发包数量代入到br2计算公式中而得到;屏幕共享所需的被动丢包重传带宽br
nack1
计算公式为:br
nack1
=codec2*(nackcoefficient(1+red2)-1);该步骤中的屏幕共享所需的被动丢包重传带宽为当前屏幕共享发送策略中的屏幕共享编码码率和主动重发包数量代入到br
nack1
计算公式中而得到。8.根据权利要求7所述的rtc系统的带宽资源分配系统,其特征在于:所述步骤1-3a中
预分配屏幕共享的前向纠错编码冗余量和主动重发包的数量确定的具体方法为:将预分配屏幕共享的前向纠错编码冗余量最低值设为lmin,预分配屏幕共享的前向纠错编码冗余量最高值为100%;并遵循丢包率逐渐增大时,预分配屏幕共享的前向纠错编码冗余量也逐步提高的规律,根据当前网络的丢包率确定出预分配屏幕共享的前向纠错编码冗余量;如果当前网络的丢包率大于第三阈值,则打开预分配屏幕共享的主动重发,并遵循丢包率逐渐增大,预分配屏幕共享的主动重发包的数量也逐步增加的规律,故根据当前网络的丢包率确定出预分配屏幕共享的主动重发包的数量;如否,则不打开预分配屏幕共享的主动重发,预分配屏幕共享的主动重发包的数量为0。9.根据权利要求6所述的rtc系统的带宽资源分配系统,其特征在于:所述步骤1-4中视频发送策略确定的具体步骤为:步骤1-4a、根据当前网络的丢包率和被动丢包重传状态,确定预分配视频的前向纠错编码冗余量和主动重发包的数量;步骤1-4b、计算预分配视频所需的带宽br3;计算公式为:br3=codec3*nackcoefficient(1+red3)*(1+k3)*(1+red3)式中:codec3表示视频的编码码率,codec3具有初始值;red3表示预分配视频的主动重发包数量,nackcoefficient(1+red3)为被动丢包重传系数,当被动丢包重传状态为不启动时,则nackcoefficient(1+rwd3)=1;当被动丢包重传状态为启动时,则将1+red3作为主动丢包重传次数sendtimes代入到被动丢包重传系数的计算公式中;k3表示预分配视频的前向纠错编码冗余量;步骤1-4c、将第一剩余可用带宽减去屏幕共享所需的带宽,得到第二剩余可用带宽;并判断第二剩余可用带宽是否足够预分配视频所需的带宽br3,如是,则将满足预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如否,则转入到步骤1-4d;步骤1-4d、按照如下步骤依次调整预分配视频所需的带宽:步骤1-4d(1)、降低视频的编码码率;如果视频的编码码率逐渐降低后,按照步骤1-4b公式重新计算预分配视频所需的带宽br3,使预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果视频的编码码率降低至最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则转入到步骤1-4d(2);步骤1-4d(2)、减少视频的主动重发包数量,同时将视频的编码码率重置回初始值;每次在减少视频的主动重发包数量后,再对视频的编码码率进行调整,然后再按照步骤1-4b公式重新计算预分配视频所需的带宽br3,直至重新计算后的预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果视频的主动重发包数量降到最小值时,同时视频的编码码率降到最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则转入到步骤1-4d(4);步骤1-4d(4)、减少预分配视频的前向纠错编码冗余量,同时将视频的编码码率重置回初始值;
每次在减少预分配视频的前向纠错编码冗余量后,再对视频的编码码率进行调整,,然后再按照步骤1-4b公式重新计算预分配视频所需的带宽br3,直至重新计算预分配视频所需的带宽br3小于第二剩余可用带宽,则将重新计算后的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;如果预分配视频的前向纠错编码冗余量降到最小值时,同时视频的编码码率降到最小值时,重新计算后的预分配视频所需的带宽br3仍大于等于第二剩余可用带宽,则将最后依次计算得到的预分配视频所需的带宽br3作为当前视频发送策略,并转入到步骤1-4e;步骤1-4e、输出视频所需的带宽以及视频所需的被动丢包重传带宽;视频所需的带宽为当前视频发送策略中的编码码率、预分配视频的前后纠错编码冗余量和主动重发包数量代入到br3计算公式中而得到;视频所需的被动丢包重传带宽br
nack2
计算公式为:br
nack2
=codec3*(nackcoefficient(1+red3)-1);该步骤中的视频所需的被动丢包重传带宽为当前视频发送策略中的视频编码码率和主动重发包数量代入到br
nack2
计算公式中而得到。10.根据权利要求1~9任一项所述的rtc系统的带宽资源分配系统,其特征在于:所述决策结果监测器的工作过程具体步骤为:步骤2-1、记录新的带宽分配策略(s1)和新的带宽分配策略(s1)对应的通话质量(q1),并记录该新的带宽分配策略(s1)上一次带宽分配策略(s0)和上一次带宽分配策略(s0)对应的通话质量(q0);步骤2-2、将上一次带宽分配策略(s0)对应的通话质量(q0)和新的带宽分配策略(s1)对应的通话质量(q1)进行比较,判断(q1)是否劣于(q0),如是,输出新的带宽分配策略(s1)对应的通话质量(q1)劣于上一次带宽分配策略(s0)对应的通话质量(q0);如否,输出新的带宽分配策略(s1)对应的通话质量(q1)优于上一次带宽分配策略(s0)对应的通话质量(q0)。
技术总结本发明涉及一种RTC系统的带宽资源分配系统,包括网络状态监控器,用于实时接收网络状态监测数据并分析,得到当前网络状态和估计带宽;带宽分配决策器,定时向网络状态监控器请求查询当前网络状态,并获取当前网络状态下的估计带宽,然后根据当前网络状态下的估计带宽生成初始带宽分配决策并输出给发送端,在发送端按照初始带宽分配决策运行一段时间后,再综合当前网络状态和决策结果监测器反馈的结果生成新的带宽分配决策,并输出给发送端,使发送端按照新的带宽分配策略运行;决策结果监测器,将新通话质量和初始通话质量的比较结果反馈给带宽分配决策器。该系统在保证RTC实时性的前提下提高清晰度和流畅度。的前提下提高清晰度和流畅度。的前提下提高清晰度和流畅度。
技术研发人员:周银 钱晓炯 刘谦 吕锐
受保护的技术使用者:宁波菊风系统软件有限公司
技术研发日:2022.07.19
技术公布日:2022/11/1