首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于BBR的拥塞控制方法、装置、设备和存储介质 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:广州市百果园信息技术有限公司

摘要:本发明实施例公开了一种基于BBR的拥塞控制方法、装置、设备和存储介质。其中,该方法包括:根据待编码视频中当前视频帧组的网络带宽上限以及该网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;该第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度。本发明实施例提供的技术方案,充分利用当前网络状态,避免现有技术中由于高延时或者高丢包率使带宽大幅变化时造成的视频传输速率不准确的情况,本方案通过判断第一动态调整参数对当前网络状态的影响,能够准确调整待编码视频中连续视频帧组的编码码率,从而在提高网络带宽利用率的基础上,提高待编码视频中连续视频帧组的稳定性。

主权项:1.一种基于BBR的拥塞控制方法,其特征在于,所述方法包括:按照预设规则对整个视频中包含的全部视频帧进行多片段划分,分别对划分后的所述视频帧组进行不同码率的编码传输;根据待编码视频中当前视频帧组的网络带宽上限以及所述网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;所述第一动态调整参数用于表征预设的与网络丢包情况和探测往返延时状态时长占比相关的反向动态调整幅度;所述下一视频帧组的编码码率的计算公式如下所示: ;其中,表示下一视频帧组的编码码率,为在当前视频帧组的传输过程中检测到的网络带宽上限,为在当前视频帧组的传输过程中与网络丢包情况相关的反向动态调整幅度,为在当前视频帧组的传输过程中与探测往返延时状态时长占比相关的反向动态调整幅度;网络丢包情况相关的反向动态调整幅度为进行平滑处理后的网络丢包率;探测往返延时状态时长占比相关的反向动态调整幅度是根据当前视频帧组基于BBR的传输总时长以及探测往返延时状态所占时长确定的。

全文数据:一种基于BBR的拥塞控制方法、装置、设备和存储介质技术领域本发明实施例涉及视频传输领域,尤其涉及一种基于BBR的拥塞控制方法、装置、设备和存储介质。背景技术随着互联网和通信技术的发展,各类视频应用软件开始广泛应用到人们的日常生活中,此时在不同设备上的视频编码和传输也越来越普遍。目前,现有的视频传输方案主要分为基于传输控制协议TransmissionControlProtocol,TCP的视频传输和基于用户数据报协议UserDatagramProtocol,UDP的视频传输两类;而由于TCP协议采用端到端的通信方式,按序传输视频数据,虽然保证视频传输的可靠性,但存在较大的视频传输延时,在存在网络丢包的情况下会使传输带宽急剧下降。因此现有技术中一般采用UDP协议传输视频数据,但UDP协议在视频传输时也存在一定的缺陷,例如TCP友好速率控制TCP-FriendlyRateControl,TFRC算法,该TCP友好速率控制算法中设置的带宽模型需要经过一段较长时间才能稳定且准确地计算对应的视频传输速率,同时在网络中存在高延时或者高丢包率的情况下,该TFRC算法由于高延时或者高丢包率会使带宽大幅变化,从而无法准确计算对应的视频传输速率,导致视频传输存在较大问题。发明内容本发明实施例提供了一种基于BBR的拥塞控制方法、装置、设备和存储介质,充分利用当前网络状态不断确定待编码视频中每一视频帧组的编码码率,实现待编码视频编码质量的稳定连续。第一方面,本发明实施例提供了一种基于BBR的拥塞控制方法,该方法包括:根据待编码视频中当前视频帧组的网络带宽上限以及所述网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;所述第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度。第二方面,本发明实施例提供了一种基于BBR的拥塞控制装置,该装置包括:编码码率确定模块,用于根据待编码视频中当前视频帧组的网络带宽上限以及所述网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;所述第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度。第三方面,本发明实施例提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例中所述的基于BBR的拥塞控制方法。第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例中所述的基于BBR的拥塞控制方法。本发明实施例提供了一种基于BBR的拥塞控制方法、装置、设备和存储介质,基于瓶颈带宽和往返延时BottleneckBandwidthandRound-tripPropagationTime,BBR算法在网络中传输待编码视频,此时根据当前视频帧组在传输过程中探测到的网络带宽上限以及用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度构成的第一动态调整参数,不断确定最符合当前网络状态的下一视频帧组的编码码率,从而充分利用当前网络状态,并及时判断当前视频帧组的网络带宽上限的第一动态调整参数的变化,避免现有技术中由于高延时或者高丢包率使带宽大幅变化时造成的视频传输速率不准确的情况,本方案通过判断第一动态调整参数对当前网络状态的影响,能够准确调整待编码视频中连续视频帧组的编码码率,从而在提高网络带宽利用率的基础上,提高待编码视频中连续视频帧组的稳定性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1A为本发明实施例一提供的一种基于BBR的拥塞控制方法的流程图;图1B为本发明实施例一提供的基于BBR的拥塞控制过程的原理示意图;图2A为本发明实施例二提供的一种基于BBR的拥塞控制方法的流程图;图2B为本发明实施例二提供的基于BBR的拥塞控制下实现视频编码过程的原理示意图;图3A为本发明实施例三提供的一种基于BBR的拥塞控制方法的流程图;图3B为本发明实施例三提供的基于BBR的拥塞控制下实现视频传输过程的原理示意图;图4为本发明实施例四提供的一种基于BBR的拥塞控制装置的结构示意图;图5为本发明实施例五提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。实施例一图1A为本发明实施例一提供的一种基于BBR的拥塞控制方法的流程图,本实施例可适用于采用BBR算法对任一视频进行拥塞控制传输的情况中。本实施例提供的一种基于BBR的拥塞控制方法可以由本发明实施例提供的基于BBR的拥塞控制装置来执行,该装置可以通过软件和或硬件的方式来实现,并集成在执行本方法的设备中,该设备可以是具备视频编码功能的任一种终端设备。具体的,参考图1A,该方法可以包括如下步骤:S110,根据待编码视频中当前视频帧组的网络带宽上限以及该网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率。具体的,由于在视频传输过程中不同传输阶段的网络状态是不断变化的,此时为了充分利用当前网络状态,可以按照一定的规则对整个视频中包含的全部视频帧进行多片段划分,后续分别对划分后的各个小片段也就是本实施例中的视频帧组进行不同码率的编码传输,使得各个视频帧组在传输时尽可能地满足当前的网络状态。其中,由于视频编码时,会采用各种算法降低视频数据的容量,因此编码后的视频内会存在帧内编码帧I帧、帧间预测编码帧P帧和双向预测编码帧B帧三种类型的视频帧;此时本实施例中的视频帧组是指待编码视频中在编码过程中包含的连续画面组GroupOfPictures,GOP,也就是在对待编码视频中的全部视频帧进行编码的过程中,同时根据编码结果判断当前视频帧是否为I帧,从而将位于相邻I帧之间的多个视频帧组成一个视频帧组;示例性的,依次对待编码视频中的每一视频帧进行编码时,判断当前视频帧是否为I帧,若是,则将位于当前视频帧与前一I帧之间的多个视频帧组成当前视频帧组包含当前视频帧;若否,则继续编码下一视频帧;依次循环,此时在待编码视频中视频帧组的划分和编码过程是同时进行的。同时,本实施例中第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度,可以通过该第一动态调整参数对当前视频帧帧组的网络带宽上限进行反向调整,确定下一视频帧组传输时的实际可用带宽。可选的,在完成对待编码视频中的当前视频帧组的编码后,会采用BBR算法控制当前视频帧组在网络中传输,此时为了实时判断当前的网络状态变化情况,本实施例会在当前视频帧组的传输过程中探测当前网络状态的变化情况,得到在当前视频帧组的传输过程中探测到的网络带宽上限和该网络带宽上限的第一动态调整参数;本实施例中根据在当前视频帧组的传输过程中探测到的网络带宽上限和该网络带宽上限的第一动态调整参数,能够准确判断当前的能够用于视频成功传输的实际网络状态,同时将该实际网络状态作为下一视频帧组的传输过程中对应的参考网络状态,进而确定出最大程度上满足该实际网络状态的编码码率,作为下一视频帧组的编码码率,在保证带宽利用率的基础上,实现待编码视频中编码质量的稳定连续性。示例性的,如图1B所示,在待编码视频的当前视频帧组的传输过程中探测到网络带宽上限和该网络带宽上限的第一动态调整参数后,对该第一动态调整参数表征的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度对网络状态的影响程度进行分析,从而根据探测到的网络带宽上限和对应的反向动态调整幅度,预估出下一视频帧组在网络传输时的实际可用带宽,进而确定最大程度上满足该实际可用带宽的编码码率,作为下一视频帧组的编码码率,以在下一视频帧组的传输过程中能够充分利用相应的网络带宽,实现待编码视频中连续视频帧组的编码质量的稳定性。此外,为了在视频帧组的传输过程中探测对应的网络状态,本实施例中可以对现有技术中存在的全新的BBR算法中的各项拥塞参数进行优化,采用该优化后的BBR算法传输待编码视频中的连续视频帧组,此时该优化后的BBR算法中预先设定对应的传输周期,如图1B所示,并在各个传输周期内采用默认的固定模式下的增益系数调整各个视频帧组在不同传输周期下的传输速率,以控制不同传输阶段的数据传输量,进而探测各个传输周期对应的带宽极值和数据传输的最小往返延时,此时通过该优化后的BBR算法传输当前视频帧组时,当前视频帧组可以占用多个传输周期。具体的,本实施例在采用优化后的BBR算法控制传输当前视频帧组时,该优化后的BBR算法在网络中稳定工作后会交替工作在预先设置的探测带宽状态PROBE_BW和探测往返延时状态PROBE_RTT下;其中,PROBE_BW状态用于探测数据传输过程中可用的最大网络带宽,PROBE_RTT状态用于探测数据传输过程中的最小往返延时;本实施例中BBR算法可以根据当前视频帧组的在传输时的网络变化情况控制PROBE_BW状态和PROBE_RTT状态的交替转换,从而在交替工作的PROBE_BW状态和PROBE_RTT状态下传输当前视频帧组,以准确探测当前视频帧组在传输过程中对应的网络带宽上限以及该网络带宽上限下用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度构成的第一动态调整参数,以便后续确定下一视频帧组的编码码率。可选的,本实施例中对现有的BBR算法进行优化时,主要是针对BBR算法中在PROBE_BW状态和PROBE_RTT状态之间进行交替工作的转换条件进行优化,包括判断是否由PROBE_BW状态转换至PROBE_RTT状态时对应的最小往返延时失效时限以及判断是否由PROBE_RTT状态转换至PROBE_BW状态时对应的在探测往返延时PROBE_RTT状态下需要控制数据传输达到的排空目标。示例性的,对于最小往返延时失效时限的优化,本实施例中还可以包括:根据当前视频帧组的网络传输情况在第一固定值和第二动态调整参数之间动态选择基于BBR的拥塞控制的最小往返延时失效时限。其中,第二动态调整参数用于表征预设的与当前链路中的最小往返延时相关的数值。具体的,本实施例将现有的BBR算法中默认设置的最小往返延时失效时限作为本实施中的第一固定值,此时该第一固定值一般为10s,本实施例对此不作限定;同时通过当前链路中探测到的最小往返延时确定对应的第二动态调整参数,进而根据当前视频帧组在基于BBR的拥塞控制下的网络传输情况,在第一固定值和第二动态调整参数之间动态选择出能够减少当前视频帧组在基于BBR算法传输时造成拥塞的最小往返延时失效时限,在PROBE_BW状态下,如果在达到最小往返延时失效时限时未检测到对应的最小往返延时,则控制PROBE_BW状态转换至PROBE_RTT状态进行工作,从而提高视频传输在高延时场景下的传输性能。此外,对于探测往返延时PROBE_RTT状态下的排空目标的优化,本实施例中还可以包括:根据当前视频帧组的网络传输情况在第二固定值和第三动态调整参数之间动态选择基于BBR的拥塞控制在探测往返延时状态下的排空目标。其中,第三动态调整参数用于表征预设的与当前链路中的网络带宽上限和最小往返延时相关的数值。具体的,本实施例将现有的BBR算法中默认设置的在PROBE_RTT状态下的排空目标作为本实施中的第二固定值,此时该第二固定值一般为4mss,本实施例对此不作限定;同时通过当前链路中探测到的网络带宽上限以及最小往返延时确定对应的第三动态调整参数,进而根据当前视频帧组在基于BBR的拥塞控制下的网络传输情况,在第二固定值和第三动态调整参数之间动态选择出能够减少当前视频帧组在基于BBR算法传输时造成拥塞的在探测往返延时PROBE_RTT状态下的排空目标,如果在PROBE_RTT状态下控制传输的数据量达到本实施例中的排空目标,则控制PROBE_RTT状态转换至PROBE_BW状态进行工作,从而提高视频传输过程中的带宽利用率。S120,采用该编码码率编码下一视频帧组中的视频帧。具体的,在确定下一视频帧组的编码码率后,采用该编码码率对下一视频帧组中的每一视频帧进行编码,以便编码后的下一视频帧组在传输时能够充分利用对应的网络带宽,提高传输速率。示例性的,如图1B所示,由于当前视频帧组在传输时可以确定当前视频帧组中包含的视频帧以及位于当前视频帧组之前的每一视频帧均已采用对应的编码码率进行了编码,此时由于当前视频帧组中的最后一个视频帧为I帧,因此在确定下一视频帧组的编码码率后,可以采用该编码码率对待编码视频中剩余的未编码视频帧依次进行编码,此时判断当前编码的视频帧在经过编码后是否为I帧,若是,则结束下一视频帧组的编码,此时将剩余的未编码视频帧中位于该I帧之前经过编码的各个视频帧组成本实施例中的下一视频帧组;若否,则继续采用该编码码率编码下一视频帧,直至得到编码后为I帧的视频帧;从而对不同视频帧组中的视频帧采用不同的编码码率进行编码,以充分利用对应的网络带宽,保证视频编码相对于不断变化的网络带宽的准确性。本实施例提供的技术方案,基于BBR算法在网络中传输待编码视频,此时根据当前视频帧组在传输过程中探测到的网络带宽上限以及用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度构成的第一动态调整参数,不断确定最符合当前网络状态的下一视频帧组的编码码率,从而充分利用当前网络状态,并及时判断当前视频帧组的网络带宽上限的第一动态调整参数的变化,避免现有技术中由于高延时或者高丢包率使带宽大幅变化时造成的视频传输速率不准确的情况,本方案通过判断第一动态调整参数对当前网络状态的影响,能够准确调整待编码视频中连续视频帧组的编码码率,从而在提高网络带宽利用率的基础上,提高待编码视频中连续视频帧组的稳定性。实施例二图2A为本发明实施例二提供的一种基于BBR的拥塞控制方法的流程图,图2B为本发明实施例二提供的基于BBR的拥塞控制下实现视频编码过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,由于第一动态调整参数可以包括在当前视频帧组的传输过程中与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度,因此本实施例中主要对于在当前视频帧组的传输过程中探测网络带宽上限和该网络带宽上限的第一动态调整参数的具体过程进行详细说明。可选的,如图2A所示,本实施例中可以包括如下步骤:S210,确定当前视频帧组在基于BBR的传输过程中包含的目标传输周期。可选的,由于当前视频帧组中包含多个视频帧,在传输时会花费一定的时间,而BBR算法中预设的传输周期一般默认由8个往返延时组成,因此在传输当前视频帧组时可能会占用多个传输周期,进而在成功传输当前视频帧组后,可以确定出在当前视频帧组的传输过程中所包含的目标传输周期,也就是传输当前视频帧组时所占用的传输周期。S220,对目标传输周期内探测到的带宽极值进行平滑处理,得到当前视频帧组的网络带宽上限;或者,获取在目标传输周期中的当前传输周期内探测到的带宽极值,作为当前视频帧组的网络带宽上限。可选的,在确定当前视频帧组的传输过程中包含的目标传输周期后,每一目标传输周期均包括预设的增益子周期、减损子周期和平稳发送子周期,此时增益子周期下的增益系数默认为1.25,使得在目标传输周期的增益子周期下传输当前视频帧组时,会在平稳视频传输量的基础上,控制多传输25%的视频数据,以探测当前网络状态下可用的带宽极值,因此每一目标传输周期均会探测到一个对应的带宽极值;此时为了保证网络带宽的准确性,本实施例可以对目标传输周期内探测到的带宽极值进行平滑滤波处理,如采用现有的滑动平均滤波或其他滤波方式,将平滑后的带宽极值作为当前视频帧组在传输过程中的网络带宽上限;或者为了保证网络带宽的及时性,本实施例可以在各个目标传输周期中选取出当前传输周期,也就是最后一个用于传输当前视频帧组的传输周期,进而将在当前传输周期内探测到的带宽极值直接作为当前视频帧组在传输过程中的网络带宽上限。需要说明的是,对于网络带宽上限的两种确定方式,本实施例可以根据具体的应用场景预先设置对应的确定方式,对此不作限定。S230,对目标传输周期内的网络丢包率进行平滑处理,得到与网络丢包情况相关的第一动态调整参数。可选的,在确定当前视频帧组的传输过程中包含的目标传输周期后,通过对每一目标传输周期内的视频传输情况进行分析,进而确定每一目标传输周期下的网络丢包率,并对各个目标传输周期内的网络丢包率进行平滑处理,将平滑后的网络丢包率作为当前视频帧组在传输过程中探测的第一动态调整参数中的与网络丢包情况相关的反向动态调整幅度,以便后续根据在当前视频帧组的传输过程中探测到的网络带宽上限和第一动态调整参数,确定下一视频帧组的编码码率。示例性的,在本实施例中,各个目标传输周期下的网络丢包率的计算公式为:其中,loss_rate表示每一目标传输周期的网络丢包率,loss_num表示每一目标传输周期内统计的丢包数量,ack_num表示每一目标传输周期内统计的传输后确认包数;具体的,在每一目标传输周期下,通过获取上述计算公式中包含的各个参数,并进行对应计算,从而得到每一目标传输周期的网络丢包率。需要说明的是,本实施例中的S220和S230可以在确定当前视频帧组的传输过程中包含的目标传输周期之后同时执行,不存在执行顺序的先后之分。S240,根据当前视频帧组基于BBR的传输总时长以及探测往返延时状态所占时长,确定与探测往返延时状态时长占比相关的第一动态调整参数。可选的,由于当前视频帧组在传输过程中会由PROBE_BW状态跳转至PROBE_RTT状态,而PROBE_RTT状态主动控制数据传输量降低至预设的排空目标,从而探测数据传输的最小往返延时,此时的数据传输不属于正常带宽下的视频传输状态,对当前网络状态的准确判断造成不便,因此本实施例中的第一动态调整参数可以包括PROBE_RTT状态在当前视频帧组的整个传输过程中的持续时长占比;此时根据当前视频帧组基于BBR的传输总时长以及探测往返延时PROBE_RTT状态所占时长,可以确定出PROBE_RTT状态在当前视频帧组的传输过程中的持续时长占比,作为本实施例中第一动态调整参数中包括的与探测往返延时状态时长占比相关的数值,进而判断PROBE_RTT状态为判断网络带宽的准确性带来的影响,从而在网络带宽上限中消除PROBE_RTT状态的反向影响,预估出下一视频帧组对应传输的实际可用带宽,并根据该实际可用带宽确定出下一视频帧组的编码码率。S250,根据待编码视频中当前视频帧组的网络带宽上限以及该网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率。示例性的,如果本实施例中第一动态调整参数包括在当前视频帧组的传输过程中与网络丢包情况和探测往返延时状态时长占比相关的反向动态调整幅度两项参数时,本实施例中下一视频帧组的编码码率的计算公式如下所示:Video_Bitrate=BW*1-Lossrate*1-ProbeRTT_Ratio;其中,Video_Bitrate表示下一视频帧组的编码码率,BW为在当前视频帧组的传输过程中检测到的网络带宽上限,Lossrate为在当前视频帧组的传输过程中与网络丢包情况相关的反向动态调整幅度,ProbeRTT_Ratio为在当前视频帧组的传输过程中与探测往返延时状态时长占比相关的反向动态调整幅度;本实施例在当前视频帧组的传输过程中获取上述计算公式中涉及的各项参数,进而采用上述计算公式计算出下一视频帧组的编码码率,以便后续采用该编码码率对下一视频帧组进行编码,在保证网络带宽利用率的基础上,提高视频编码的准确性。S260,采用该编码码率编码下一视频帧组中的视频帧。本实施例提供的技术方案,通过多个目标传输周期传输当前视频帧组,进而在各目标传输周期内分别探测对应的带宽极值和网络丢包率,后续对各个目标传输周期对应的带宽极值和网络丢包率分别进行对应处理,得到当前视频帧组在传输过程中探测到的网络带宽上限和该网络带宽上限的第一动态调整参数,保证网络带宽上限和第一动态调整参数的准确性,同时根据在当前视频帧组的传输过程中探测到的网络带宽上限和第一动态调整参数,确定最符合当前网络状态的下一视频帧组的编码码率,从而充分利用当前网络状态,并及时判断当前的第一动态调整参数的变化,实现视频根据网络状态的变化情况的分段编码,避免现有技术中由于高延时或者高丢包率使带宽大幅变化时造成的视频传输速率不准确的情况,提高视频编码的准确性。实施例三图3A为本发明实施例三提供的一种基于BBR的拥塞控制方法的流程图,图3B为本发明实施例三提供的基于BBR的拥塞控制下实现视频传输过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,本实施例主要对当前视频帧组在传输过程中的PROBE_BW状态和PROBE_RTT状态的交替工作方式进行详细说明。可选的,如图3A所示,本实施例中可以包括如下步骤:S310,根据当前视频帧组的第一网络系数和在当前链路中探测到的最小往返延时,确定对应的第二动态调整参数。可选的,本实施例在当前视频帧组的传输过程中,会控制PROBE_BW状态和PROBE_RTT状态交替工作,此时控制PROBE_BW状态跳转至PROBE_RTT状态时,会判断在某一时长是否检测到最小往返延时,现有的BBR算法中会设定一个默认跳转时长,如本实施例中的第一固定值,而在视频传输处于高延时的场景时,在该第一固定值期间由于延时过长使得视频传输量降低,从而导致频繁跳转到PROBE_RTT状态;因此本实施例在第一固定值的基础上,重新设置一个参考跳转时长,如本实施例中的第二动态调整参数,此时第一网络系数为网络往返延时的调整系数,通过对当前的网络带宽利用率和网络状态的变化速率进行折中分析来确定,此时根据当前视频帧组的第一网络系数,以及在当前视频帧组的当前链路中探测到的最小往返延时,计算对应的第二动态调整参数。示例性的,在当前视频帧组的传输过程中如果从上一PROBE_RTT状态跳转至PROBE_BW状态时,根据该PROBE_BW状态下检测出的网络带宽利用率和网络状态的变化速率确定第一网络系数,同时获取上一PROBE_RTT状态检测的最小往返延时,进而计算出对应的第二动态调整参数。在本实施例中,第二动态调整参数为α*min_RTT,α为当前视频帧组的第一网络系数,min_RTT为在当前视频帧组的传输过程中探测到的最小往返延时。S320,动态选择出第一固定值和第二动态调整参数之间的最大值,作为基于BBR的拥塞控制的最小往返延时失效时限。可选的,本实施例中的第一固定值为现有的BBR算法中默认设定的跳转时长,通常为10s,在得到对应的第二动态调整参数后,可以判断是否需要控制PROBE_BW状态跳转至PROBE_RTT状态时,从第一固定值和第二动态调整参数中选取出对应的最大值,作为本实施例中基于BBR的拥塞控制的最小往返延时失效时限,后续在PROBE_BW状态的工作过程中,判断在最小往返延时失效时限内是否检测到最小往返延时,以便后续控制PROBE_BW状态跳转至PROBE_RTT状态;此时在高时延的场景下,根据第一网络系数和最小往返延时确定的第二动态调整参数会高于第一固定值,此时最小往返延时失效时限为第二动态调整参数,进而增加跳转至PROBE_RTT状态的时间间隔,从而降低跳转至PROBE_RTT状态的频率,提高在高时延的场景下视频传输的带宽利用率。示例性的,本实施例中的最小往返延时失效时限的计算公式如下所示:min_RTT_expired=max{10s,α*min_RTT},其中min_RTT_expired表示对应的最小往返延时失效时限;通过上述计算公式能够准确得到对应的最小往返延时失效时限,在采用该最小往返延时失效时限在PROBE_BW状态检测最小往返延时,能够增加跳转至PROBE_RTT状态的时间间隔,从而降低跳转至PROBE_RTT状态的频率。S330,根据当前视频帧组的第二网络系数以及在当前链路中探测到的带宽极值和最小往返延时,确定对应的第三动态调整参数。可选的,在控制PROBE_RTT状态跳转至PROBE_BW状态时,要求PROBE_RTT状态下的数据传输量能够低于对应的用于检测最小往返延时的排空目标,现有的BBR算法中会设定一个使传输链路中的数据传输量最低,从而准确检测最小往返延时的默认排空目标,如本实施例中的第二固定值,但由于该第二固定值设置过低,在PROBE_RTT状态下控制当前视频帧组的传输量达到该第二固定值时,需要耗费较长的时间,使得PROBE_RTT状态的持续时间过长,因此本实施例在第二固定值的基础上,重新设置一个参考排空目标,如本实施例中的第三动态调整参数,此时第二网络系数为排空目标的调整系数,根据当前视频帧组的第二网络系数以及传输过程中探测到的带宽极值和最小往返延时,确定对应的第三动态调整参数,此时传输过程中探测到的带宽极值和最小往返延时为判断是否需要控制PROBE_RTT状态跳转至PROBE_BW状态的最后一次传输周期内探测到的带宽极值和最小往返延时;如果第三动态调整参数高于第二固定值,在PROBE_RTT状态下控制降低数据传输量时,首先达到该第三动态调整参数,进而检测到最小往返延时,能够减少PROBE_RTT状态的持续时间。示例性的,在本实施例中的第三动态调整参数为b*max_BW*min_RTT;其中,b为第二网络系数,max_BW为在当前视频帧组的传输过程中探测到的带宽极值,min_RTT为在当前视频帧组的传输过程中探测到的最小往返延时。S340,动态选择出第二固定值和第三动态调整参数之间的最大值,作为基于BBR的拥塞控制在探测往返延时状态下的排空目标。可选的,第二固定值为现有的BBR算法中默认设定的排空目标,通常为4mss,在得到对应的第三动态调整参数后,在判断是否需要控制PROBE_RTT状态跳转至PROBE_BW状态时,从第二固定值和第三动态调整参数中选取出对应的最大值,作为本实施例中基于BBR的拥塞控制在探测往返延时PROBE_RTT状态下的排空目标,后续在PROBE_RTT状态的工作过程中,控制传输链路中的数据传输量减少到该排空目标,此时排空目标为第二固定值和第三动态调整参数中的最大值,使得PROBE_RTT状态的持续时间减少,提高视频传输的带宽利用率。示例性的,本实施例中在探测往返延时状态下的排空目标的计算公式如下所示:taget=max{4mss,b*max_BW*min_RTT},其中taget表示对应探测往返延时状态下的排空目标;通过上述计算公式能够准确得到对应的排空目标,在PROBE_RTT状态下的数据传输量减少到该排空目标时,能够减少PROBE_RTT状态的持续时间,提高视频传输的带宽利用率。S350,根据待编码视频中当前视频帧组的网络带宽上限以及该网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率。S360,采用该编码码率编码下一视频帧组中的视频帧。S370,传输编码后的下一视频帧组。具体的,在得到编码后的下一视频帧组中的各个视频帧后,在网络中采用本实施例提供的基于BBR的拥塞控制方法继续传输编码后的下一视频帧组,此时充分利用当前的网络带宽,提高视频的传输速率。本实施例提供的技术方案,通过对交替工作的PROBE_BW状态和PROBE_RTT状态的最小往返延时失效时和在PROBE_RTT状态下的排空目标进行优化,在高时延的场景下,增加PROBE_BW状态跳转至PROBE_RTT状态的时间间隔,从而降低跳转至PROBE_RTT状态的频率,同时减少PROBE_RTT状态的持续时间,从而提高视频传输的带宽利用率。实施例四图4为本发明实施例四提供的一种基于BBR的拥塞控制装置的结构示意图,具体的,如图4所示,该装置可以包括:编码码率确定模块410,用于根据待编码视频中当前视频帧组的网络带宽上限以及该网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;该第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度。本实施例提供的技术方案,基于BBR算法在网络中传输待编码视频,此时根据当前视频帧组在传输过程中探测到的网络带宽上限以及用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度构成的第一动态调整参数,不断确定最符合当前网络状态的下一视频帧组的编码码率,从而充分利用当前网络状态,并及时判断当前视频帧组的网络带宽上限的第一动态调整参数的变化,避免现有技术中由于高延时或者高丢包率使带宽大幅变化时造成的视频传输速率不准确的情况,本方案通过判断第一动态调整参数对当前网络状态的影响,能够准确调整待编码视频中连续视频帧组的编码码率,从而在提高网络带宽利用率的基础上,提高待编码视频中连续视频帧组的稳定性。进一步的,上述基于BBR的拥塞控制装置,还可以包括:失效时限优化模块,用于根据当前视频帧组的网络传输情况在第一固定值和第二动态调整参数之间动态选择基于BBR的拥塞控制的最小往返延时失效时限;该第二动态调整参数用于表征预设的与当前链路中的最小往返延时相关的数值。进一步的,上述基于BBR的拥塞控制装置,还可以包括:排空目标优化模块,用于根据当前视频帧组的网络传输情况在第二固定值和第三动态调整参数之间动态选择基于BBR的拥塞控制在探测往返延时状态下的排空目标;所述第三动态调整参数用于表征预设的与当前链路中的网络带宽上限和最小往返延时相关的数值。进一步的,上述基于BBR的拥塞控制装置,还可以包括:带宽上限确定模块,用于确定当前视频帧组在基于BBR的传输过程中包含的目标传输周期;对目标传输周期内探测到的带宽极值进行平滑处理,得到当前视频帧组的网络带宽上限;或者,获取在目标传输周期中的当前传输周期内探测到的带宽极值,作为当前视频帧组的网络带宽上限。进一步的,上述基于BBR的拥塞控制装置,还可以包括:网络丢包确定模块,用于确定当前视频帧组在基于BBR的传输过程中包含的目标传输周期;对目标传输周期内的网络丢包率进行平滑处理,得到与网络丢包情况相关的第一动态调整参数。进一步的,上述基于BBR的拥塞控制装置,还可以包括:时长占比确定模块,用于根据当前视频帧组基于BBR的传输总时长以及探测往返延时状态所占时长,确定与探测往返延时状态时长占比相关的第一动态调整参数。进一步的,上述基于BBR的拥塞控制装置,还可以包括:第二参数确定模块,用于根据当前视频帧组的第一网络系数和在当前链路中探测到的最小往返延时,确定对应的第二动态调整参数。进一步的,上述失效时限优化模块,可以具体用于:动态选择出第一固定值和第二动态调整参数之间的最大值,作为基于BBR的拥塞控制的最小往返延时失效时限。进一步的,上述基于BBR的拥塞控制装置,还可以包括:第三参数确定模块,用于根据当前视频帧组的第二网络系数以及在当前链路中探测到的带宽极值和最小往返延时,确定对应的第三动态调整参数。进一步的,上述排空目标优化模块,可以具体用于:动态选择出第二固定值和第三动态调整参数之间最大值,作为基于BBR的拥塞控制在探测往返延时状态下的排空目标。进一步的,上述基于BBR的拥塞控制装置,还可以包括:视频编码模块,用于采用所述编码码率编码下一视频帧组中的视频帧。进一步的,上述基于BBR的拥塞控制装置,还可以包括:视频传输模块,用于传输编码后的下一视频帧组。本实施例提供的基于BBR的拥塞控制装置可适用于上述任意实施例提供的基于BBR的拥塞控制方法,具备相应的功能和有益效果。实施例五图5为本发明实施例五提供的一种设备的结构示意图,如图5所示,该设备包括处理器50、存储装置51和通信装置52;设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;设备中的处理器50、存储装置51和通信装置52可以通过总线或其他方式连接,图5中以通过总线连接为例。存储装置51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中提供的基于BBR的拥塞控制方法对应的程序指令模块。处理器50通过运行存储在存储装置51中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述基于BBR的拥塞控制方法。存储装置51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。通信装置52可用于实现设备间的网络连接或者移动数据连接。本实施例提供的一种设备可用于执行上述任意实施例提供的基于BBR的拥塞控制方法,具备相应的功能和有益效果。实施例六本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的基于BBR的拥塞控制方法。该方法具体可以包括:根据待编码视频中当前视频帧组的网络带宽上限以及该网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;该第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度。当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于BBR的拥塞控制方法中的相关操作。通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器Read-OnlyMemory,ROM、随机存取存储器RandomAccessMemory,RAM、闪存FLASH、硬盘或光盘等,包括若干指令用以使得一台计算机设备可以是个人计算机,服务器,或者网络设备等执行本发明各个实施例所述的方法。值得注意的是,上述基于BBR的拥塞控制装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

权利要求:1.一种基于BBR的拥塞控制方法,其特征在于,所述方法包括:根据待编码视频中当前视频帧组的网络带宽上限以及所述网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;所述第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度。2.根据权利要求1所述的基于BBR的拥塞控制方法,其特征在于,所述方法还包括:根据当前视频帧组的网络传输情况在第一固定值和第二动态调整参数之间动态选择基于瓶颈带宽和往返延时BBR的拥塞控制的最小往返延时失效时限;所述第二动态调整参数用于表征预设的与当前链路中的最小往返延时相关的数值。3.根据权利要求1所述的基于BBR的拥塞控制方法,其特征在于,所述方法还包括:根据当前视频帧组的网络传输情况在第二固定值和第三动态调整参数之间动态选择基于BBR的拥塞控制在探测往返延时状态下的排空目标;所述第三动态调整参数用于表征预设的与当前链路中的网络带宽上限和最小往返延时相关的数值。4.根据权利要求1所述的基于BBR的拥塞控制方法,其特征在于,在确定下一视频帧组的编码码率之前,还包括:确定所述当前视频帧组在基于BBR的传输过程中包含的目标传输周期;对所述目标传输周期内探测到的带宽极值进行平滑处理,得到所述当前视频帧组的网络带宽上限;或者,获取在所述目标传输周期中的当前传输周期内探测到的带宽极值,作为所述当前视频帧组的网络带宽上限。5.根据权利要求1所述的基于BBR的拥塞控制方法,其特征在于,在确定下一视频帧组的编码码率之前,还包括:确定所述当前视频帧组在基于BBR的传输过程中包含的目标传输周期;对所述目标传输周期内的网络丢包率进行平滑处理,得到与网络丢包情况相关的第一动态调整参数。6.根据权利要求1所述的基于BBR的拥塞控制方法,其特征在于,在确定下一视频帧组的编码码率之前,还包括:根据当前视频帧组基于BBR的传输总时长以及探测往返延时状态所占时长,确定与探测往返延时状态时长占比相关的第一动态调整参数。7.根据权利要求2所述的基于BBR的拥塞控制方法,其特征在于,还包括:根据当前视频帧组的第一网络系数和在当前链路中探测到的最小往返延时,确定对应的第二动态调整参数。8.根据权利要求7所述的基于BBR的拥塞控制方法,其特征在于,根据当前视频帧组的网络传输情况在第一固定值和第二动态调整参数之间动态选择基于BBR的拥塞控制的最小往返延时失效时限,包括:动态选择出第一固定值和第二动态调整参数之间的最大值,作为基于BBR的拥塞控制的最小往返延时失效时限。9.根据权利要求3所述的基于BBR的拥塞控制方法,其特征在于,还包括:根据当前视频帧组的第二网络系数以及在当前链路中探测到的带宽极值和最小往返延时,确定对应的第三动态调整参数。10.根据权利要求9所述的基于BBR的拥塞控制方法,其特征在于,根据当前视频帧组的网络传输情况在第二固定值和第三动态调整参数之间动态选择基于BBR的拥塞控制在探测往返延时状态下的排空目标,包括:动态选择出第二固定值和第三动态调整参数之间的最大值,作为基于BBR的拥塞控制在探测往返延时状态下的排空目标。11.根据权利要求1-10任一项所述的基于BBR的拥塞控制方法,其特征在于,在确定下一视频帧组的编码码率之后,还包括:采用所述编码码率编码下一视频帧组中的视频帧。12.根据权利要求11所述的基于BBR的拥塞控制方法,其特征在于,还包括:传输编码后的下一视频帧组。13.一种基于BBR的拥塞控制装置,其特征在于,包括:编码码率确定模块,用于根据待编码视频中当前视频帧组的网络带宽上限以及所述网络带宽上限的第一动态调整参数,确定下一视频帧组的编码码率;所述第一动态调整参数用于表征预设的与网络丢包情况和或探测往返延时状态时长占比相关的反向动态调整幅度。14.一种设备,其特征在于,所述设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的基于BBR的拥塞控制方法。15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的基于BBR的拥塞控制方法。

百度查询: 广州市百果园信息技术有限公司 一种基于BBR的拥塞控制方法、装置、设备和存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。