一种基于延迟梯度累积的ViLTE视频通话拥塞控制方法及系统与流程

专利2022-06-29  135


本申请涉及一种vilte(videooverlong-termevolution,长期演进视频承载)视频通话实现方法,特别是涉及在vilte视频通话过程中通过计算rtp(real-timetransportprotocol,实时传输协议)数据包的延迟梯度(delayedgradient)累计值来判断出当前网络传输的状况、进而对vilte视频通话进行拥塞控制的方法。



背景技术:

vilte视频通话系统包含视频发送端和视频接收端。视频发送端通过摄像头采集原始视频,并通过视频编码器将原始视频编码为利于网络传输的压缩视频流格式(如h.264),然后再将压缩视频流打包为rtp数据包并通过移动通信网络发送出去。视频接收端通过移动通信网络接收到rtp数据包后,从rtp数据包中提取出压缩视频流,再通过视频解码器进行解码并最终在屏幕上进行显示。

rtp数据包在移动通信网络中传输时,当rtp数据包的传输比特率高于移动通信网络所能提供的信道容量(channelcapacity)时,就会发生rtp数据包的“拥塞”(congestion)现象,导致rtp数据包被缓存在通信链路的节点中,引入较大的传输延迟(transmissiondelay)。当“拥塞”严重到一定程度,就会导致rtp数据包在网络传输中被丢弃,造成接收端视频质量的大幅下降。

在vilte视频通话过程中,为了减少网络拥塞、避免丢包,就需要一种拥塞控制算法来对移动通信网络的拥塞状态进行实时探测,并利用它来控制rtp数据包的传输。当探测到网络拥塞比较严重时,视频发送端就要降低视频编码码率以降低rtp数据流的传输比特率,进而缓解网络拥塞,以减少延迟避免丢包。当探测到网络拥塞比较轻微时,视频发送端就可以提高视频编码码率,以提升视频流的编码质量。

由于vilte视频通话采用移动通信网络传输rtp数据流,导致其拥塞控制算法的设计具有如下难点。第一,移动通信网络链路复杂,节点众多,缺少全局性的客观参数来表征整条链路的网络传输状态。这就要求拥塞控制算法另辟蹊径,能够化繁为简,从更高的维度上对网络链路进行建模,找到更精简的算子(operator)参数来表征网络的传输状态。第二,移动通信网络通话带宽的易变性、通信节点排队延迟以及通话终端的移动导致的通信链路变化,造成了移动通信网络状态的“瞬变性”。这就要求拥塞控制算法具备对拥塞状态走势的预测能力,能够在严重拥塞发生之前进行及时预测和应对。第三,rtp协议自身缺少对网络拥塞控制算法的标准定义。为了保证兼容性和易用性,就要求算法尽量在不修改原有的rtp协议的前提下进行拥塞控制。

目前已有一些算法用于实现rtp网络拥塞控制,比如gcc(googlecongestioncontrl,谷歌拥塞控制)算法、nada(networkassisteddynamicadaptation,网络辅助动态适应)算法、scream(self-clockedrateadaptationformultimedia,多媒体自时钟速率适应)算法等。但是这些算法大多对标准的rtp和/或rtcp(rtpcontrolprotocol,rtp控制协议)协议进行了修改和增补,而这些修改目前还没有被3gpp正式采用。由于这些算法的实现依赖于“非标准的”rtp和/或rtcp协议,导致采用这些算法的终端在和使用标准rtp和/或rtcp协议的终端通信时,进行拥塞控制的效果会大幅下降甚至无法使用,兼容性较差。



技术实现要素:

本申请所要解决的技术问题是在不修改标准rtp和rtcp协议的前提下,对网络拥塞状况进行实时预测,并据此控制rtp数据的传输。

为解决上述技术问题,本申请提出了一种基于延迟梯度累积的vilte视频通话拥塞控制方法,包括如下步骤。步骤s10:启动vilte视频通话的数据传输,视频接收端在接收到每一个rtp数据包之后,计算出延迟梯度的累计值,并且记录在此过程中延迟梯度累计值的最大值;每一次检测到丢包后一旦网络传输恢复正常,则将清零重新记录。步骤s20:当视频接收端检测到vilte视频通话的数据传输第一次出现丢包,就计算当前的网络传输信道容量=γ*是最近1秒内测量到的实际数据包接收码率,γ<1;随后视频接收端立即发送tmmbr消息给视频发送端,要求视频发送端降低视频编码码率;同时,视频接收端还将检测到丢包时的记录的延迟梯度累积值的最大值作为丢包的延迟阈值。步骤s30:当视频接收端检测到vilte视频通话的数据传输不再出现丢包,视频接收端将当前数据包的延迟梯度累积值和延迟阈值进行比较,判断出网络的拥塞状态,然后对数据传输速率进行调整;直至视频接收端检测到vilte视频通话的数据传输再次出现丢包,则回到步骤s20。步骤s40:重复步骤s20至步骤s30,直至vilte视频通话的数据传输结束。上述基于延迟梯度累积的vilte视频通话拥塞控制方法(accumulateddelaygradientbaseddynamiccongestioncontrolmechanism,简写为adgdccm),用于对移动通信网络的拥塞状态进行实时探测,并依据探测结果来对视频传输数据率进行调整,以避免丢包并提升视频质量。经实施验证,本申请可以很好地对vilte视频通话过程中的网络拥塞进行评估和预测,达到降低网络延迟、避免丢包发生和提升视频质量的目的。

进一步地,从第1个数据包到第n个数据包,延迟梯度的累计值的计算方法如下。;其中,表示当第n个数据包被加入到网络传输队列时,网络传输队列中所有数据包的长度总和;表示当第n个数据包被加入到网络传输队列时,接收端的实际网络传输数据率。这是延迟梯度的累计值的一种计算方式。

进一步地,所述步骤s20采用的是基于丢包的拥塞控制策略;当检测到丢包发生时,使用实时的实际数据包接收码率来评估网络信道容量并对数据传输率进行调整,使网络传输恢复到正常状态。这是步骤s20的整体策略的说明。

进一步地,所述步骤s30采用的是基于延迟的拥塞控制策略;在每一个数据包到达时计算出到目前为止的延迟梯度累计值,并与丢包发生时的丢包延迟阈值进行比较,探测出网络拥塞状态并对数据传输率进行调整,以缓解拥塞并避免丢包的发生。这是步骤s30的整体策略的说明。

进一步地,所述步骤s30进一步包括如下步骤。步骤s31:利用之间的延迟梯度累计值的最大值,得到之间的延迟阈值上限和延迟阈值下限;其中,代表前一次遭遇网络丢包的时刻,代表之后网络传输恢复正常的时刻,代表之后又一次遭遇网络丢包的时刻。步骤s32:自开始,会在每一个rtp数据包到达时,计算其对应的延迟梯度累计值,并将它与之间的的延迟阈值进行比较。若,表示网络无拥塞。若,表示网络拥塞严重。若<<,表示网络拥塞处于正常状态。步骤s33:根据评估的网络拥塞状态,视频接收端通过发送rtcp的tmmbr消息来对视频发送端的视频编码码率进行调整以预防丢包。当网络无拥塞时,视频接收端通知视频发送端提高视频编码码率和rtp传输数据率。当网络拥塞严重时,视频接收端通知视频发送端降低视频编码码率rtp传输数据率。当网络拥塞处于正常状态时,视频发送端维持当前的视频编码码率和rtp传输数据率不变。这是步骤s30的一种具体实现方式的说明。

进一步地,所述步骤s31中,,β<α<1;,0<β<α。这是对步骤s31中如何计算之间的延迟阈值上限和延迟阈值下限的一种具体说明。

优选地,α=0.8;β=0.5。这是两个参数的优选取值。

进一步地,所述步骤s32中,基于延迟的拥塞控制策略总是在(n>1)之间工作,即不发生丢包的时间段内工作;在发生丢包的时间段内,即之间是基于丢包的拥塞控制策略在工作。这是本申请提出的两种拥塞控制策略按时间进行分工的说明。

进一步地,所述步骤s33中,当网络无拥塞时,视频发送端对编码比特率的调整为同时满足=η*,η>1以及,ε>1。当网络拥塞严重时,视频发送端对编码比特率的调整为=δ*,δ<1。当网络拥塞处于正常状态时,视频发送端对编码比特率的调整为=其中,代表视频发送端对视频编码比特率的第i次调整值,代表视频接收端实际测量出的视频编码比特率。这是对步骤s33中如何调整视频发送端的视频编码码率的一种具体说明。

本申请还提出了一种基于延迟梯度累积的vilte视频通话拥塞控制系统,包括计算单元、lbcc控制单元和dbcc控制单元。所述计算单元在接收到每一个rtp数据包之后,计算出延迟梯度的累计值,并且记录在此过程中延迟梯度累计值的最大值;每一次检测到丢包后一旦网络传输恢复正常,所述计算单元还将清零重新记录。所述lbcc控制单元用来在检测到vilte视频通话的数据传输每一次出现丢包后,计算当前的网络传输信道容量=γ*;随后所述lbcc控制单元立即发送tmmbr消息给视频发送端,要求视频发送端降低视频编码码率;同时,所述lbcc控制单元还将检测到丢包时的记录的延迟梯度累积值的最大值作为丢包的延迟阈值。所述dbcc控制单元用来在检测到vilte视频通话的数据传输不再出现丢包后,将当前数据包的延迟梯度累积值和延迟阈值进行比较,判断出网络的拥塞状态,然后对数据传输速率进行调整以预防丢包;如果所述dbcc控制单元检测到vilte视频通话的数据传输再次出现丢包,则交由所述lbcc控制单元处理。根据检测到vilte视频通话的数据传输是否出现丢包,分别由所述lbcc控制单元、所述dbcc控制单元处理,直至vilte视频通话的数据传输结束。

相对于已有的拥塞控制算法,本申请的技术优势在于以下几方面。第一,可以实时探测移动通信网络的拥塞状态,并对即将可能发生的丢包进行提前预测,进而在丢包发生前对网络数据传输进行控制,达到避免丢包发生的目的。第二,网络模型抽象简单,模型算子精简可调,使用者可以根据实际应用中对视频数据的延迟、质量等要求来对算法算子进行适配调整。第三,基于标准的rtp和rtcp协议,不需要对rtp或rtcp协议进行修改,可以适配所有采用标准rtp和/或rtcp协议的移动通信设备,兼容性和移植性好。

附图说明

图1是本申请构建的移动通信网络传输模型的示意图。

图2是延迟梯度为正值的示意图。

图3是延迟梯度为负值的示意图。

图4是本申请提出的基于延迟梯度累积的vilte视频通话拥塞控制方法的流程图。

图5是图4中的步骤s30的详细流程图。

图6是图4所示方法的整体过程的曲线示意图。

图7是申请提出的基于延迟梯度累积的vilte视频通话拥塞控制系统的结构示意图。

图中附图标记说明:10为计算单元;20为lbcc控制单元;30为dbcc控制单元。

具体实施方式

本申请提出了一种基于延迟梯度累积的vilte视频通话拥塞控制方法,其主要原理是:通过计算rtp传输丢包时延迟梯度的累计值,推算出rtp包在网络传输队列中的最大延时,并以这个延时作为阈值和后续每个rtp包到达时的延迟梯度累计值进行比较,以判断出当前网络传输队列的状态,进而对视频传输比特率进行调整;在延时较高时降低比特率以避免网络传输队列溢出(丢包),在延时较低时提高比特率以提升视频编码质量。

为了实现这个目的,首先需要对网络传输链路进行建模。为了隐藏移动通信链路的复杂性,本申请将整个移动通信链路作为一个整体来进行考量。请参阅图1,这是本申请所构建的移动通信网络传输模型。发送端(sender)的数据通过网络(network)到达接收端(receiver),当发送端产生数据的速度超过网络传输带宽时,数据包就会在网络传输队列中进行缓存。这些缓存,就构成了数据包在网络侧的延迟,它们所导致的网络传输性能下降的状态就是网络拥塞。而丢包则是当网络侧的缓存满了以后,新的数据包无法加入到缓存中,便只好丢弃。可见,在网络传输状况的检测上,使用延迟信息比使用丢包信息能够更早地发现网络拥塞。实际上,延迟信息表征了网络的“瞬时”拥塞状态(transientcongestion),而丢包信息表征了网络的“持续”拥塞状态(persistencecongestion)。本申请就是利用延迟梯度信息来表征网络的拥堵程度,在发生丢包之前将网络拥塞及时地探测出来,并采取相应的手段来减少拥塞并避免丢包。

在图1所示的移动通信网络传输模型图中,有一些关键变量,其含义如下。

:网络传输队列的最大容量,单位为比特(bit)。在路由不变的情况下,是一个固定值。

:当第n个数据包被加入到网络传输队列时,网络传输队列中所有数据包的长度总和,单位为比特。

:第n个数据包的长度,单位为比特。例如是指第1个数据包的长度。

:当第n个数据包被加入到网络传输队列时,接收端的实际网络传输数据率。

:当第n个数据包被加入到网络传输队列时,发送端的实际网络传输数据率。

:当第n个数据包被加入到网络传输队列时,发送端的发送数据率。可以近似认为,不过是客观网络状况决定的,而则是可以调整的。

请参阅图2和图3,它们展示了数据包传输的延迟梯度。其中变量含义如下。

:发送端发出第i个数据包的时刻。

:接收端收到第i个数据包的时刻。

这样,对于第i个数据包,其延迟梯度的计算式如公式一所示。

(公式一)。图2中的延迟梯度为正值,图3中的延迟梯度为负值。

那么从第1个数据包到第n个数据包,延迟梯度的累计值的计算式如公式二所示。

(公式二)。

公式二中,是一个定值,令其为γ。进而公式二可转换为公式三。

(公式三)。

当第j 1个数据包发生丢包时(假设第1个至第j个数据包未丢包),表明网络传输队列达到最大容量,有(公式四),进而有公式五和公式六。

(公式五)。

(公式六)。

当第k(k>j 1)个数据包到达时,有公式七。

(公式七)。

,则有公式八。

(公式八)。

的物理意义是:第k个数据包从发送端发送到被接收端接收所用的时间,也就是第k个数据包的传输在网络侧的延迟。所以公式八的物理意义是,若,则可推导出:第k个数据包在网络中的传输延迟已经大于丢包时的网络传输延迟。换句话说,若发生,则第k个数据包预期将会发生丢包。在这种情况下,就需要提前降低发送端的发送数据率,使网络中继端缓存的数据包更快地被消耗掉,以降低网络延迟并避免丢包。

可见,通过监测第k个数据包的延迟梯度的累计值,并将它与丢包发生时的延迟梯度累计值进行比较,就可以判断出当前网络的拥塞程度,并预测是否即将发生丢包。

在实践中,本申请所提出的的基于延迟梯度累积的拥塞控制方法会采用两个策略对网络拥塞进行探测和调整。

其中一个是基于丢包的拥塞控制策略(adgdccmloss-basedcongestioncontrol,adgdccm-lbcc),主要用于对网络“持续”拥塞状态的调整。当检测到丢包发生时,会使用实时的实际数据包接收码率来评估网络信道容量并对数据传输率进行调整,使网络传输恢复到正常状态。需要注意的是,基于丢包的拥塞控制是一种滞后的调整策略,但是在adgdccm的实现中,丢包的出现是必须的(至少需要出现一次丢包),adgdccm需要利用丢包的发生来获取丢包延迟阈值供adgdccm-dbcc使用并切换到基于延迟的拥塞控制,从而在后续的传输过程中能够及时预测出网络拥塞并及时调整,以避免丢包的发生。

另一个是基于延迟的拥塞控制策略(adgdccmdelay-basedcongestioncontrol,adgdccm-dbcc),主要用于对网络“瞬时”拥塞状态的调整。在每一个数据包到达时,adgdccm会计算出到目前为止的延迟梯度累计值,并与丢包发生时的丢包延迟阈值进行比较,探测出网络拥塞状态并对数据传输率进行调整,以缓解拥塞并避免丢包的发生。

需要注意的是,在现有的rtp协议中,rtp数据包中并没有字段来直接描述数据包的发送时间,只能由rtp时间戳(timestamp)来替代。对于视频帧来说,一般是将一帧分割成多个rtp数据包来传输,属于同一帧的rtp数据包的rtp时间戳都是相同的,但是这些rtp数据包并不一定在同一时刻被发出。因而在计算视频数据包的延迟梯度时,仅使用每一帧的第一个rtp数据包的rtp时间戳信息来参与计算,准确度是最高的。从实验结果来看,使用rtp时间戳来代替rtp数据包的发送时间可以取得预期的效果。

请参阅图4,本申请提出的基于延迟梯度累积的vilte视频通话拥塞控制方法包括如下步骤。

步骤s10:启动vilte视频通话的数据传输,视频接收端在接收到每一个rtp数据包之后,计算出延迟梯度的累计值,并且记录在此过程中延迟梯度累计值的最大值。每一次检测到丢包后一旦网络传输恢复正常(即不再丢包),则将清零重新记录。

这一步是adgdccm未激活阶段,adgdccm的两个拥塞控制策略并没有被激活。

步骤s20:当视频接收端检测到vilte视频通话的数据传输第一次出现丢包,就按照公式九估计当前的网络传输信道容量=γ*(公式九)。公式九中,是当前的网络信道容量,是最近1秒内测量到的实际数据包接收码率,γ<1,例如取γ=0.85。在计算出当前网络的信道容量以后,视频接收端立即发送tmmbr(temporarymaximummediastreambitraterequest,临时最大媒体流比特率请求)消息给视频发送端,要求视频发送端降低视频编码码率,从而将网络传输恢复到不再丢包的正常状态。同时,视频接收端还将检测到丢包时的记录的延迟梯度累积值的最大值作为丢包的延迟阈值,供后续基于延迟的拥塞控制策略(adgdccm-dbcc)使用。

这一步是基于丢包的拥塞控制策略(adgdccm-lbcc)拥塞控制阶段。

步骤s30:当视频接收端检测到vilte视频通话的数据传输不再出现丢包,视频接收端将当前数据包的延迟梯度累积值和延迟阈值进行比较,判断出网络的拥塞状态,然后对数据传输速率进行调整以预防丢包。直至视频接收端检测到vilte视频通话的数据传输再次出现丢包,则回到步骤s20。

这一步是基于延迟的拥塞控制策略(adgdccm-dbcc)拥塞控制阶段。

步骤s40:重复步骤s20至步骤s30,直至vilte视频通话的数据传输结束。

请参阅图5和图6,所述步骤s30采用adgdccm-dbcc具体包括如下步骤。图6中的横坐标为时间,纵坐标为延迟梯度累计值。

步骤s31:利用之间的延迟梯度累计值的最大值,得到之间的延迟阈值上限和延迟阈值下限。其中,代表前一次遭遇网络丢包的时刻(如果是传输刚启动时,则=0,),代表之后网络传输恢复正常(不再丢包)的时刻(之间由步骤s20采用adgdccm-lbcc来使网络传输恢复正常),代表之后又一次遭遇网络丢包的时刻。令代表之间延迟梯度累计值的最大值。这样,利用就可以导出供后续之间的adgdccm-dbcc使用的延迟阈值上限和延迟阈值下限,如公式十和公式十一所示。

,β<α<1(公式十)。

,0<β<α(公式十一)。

之间的延迟阈值上限和延迟阈值下限的物理意义如下。

:当在之间的每一个rtp包到达时,若其延迟梯度累积值高于时,表示当前的网络链路延迟已经很高,如果不降低视频传输码率,则不久之后就会发生网络丢包。

:当在之间的每一个rtp包到达时,若其延迟梯度累积值低于时,表示当前的网络链路延迟很低,网络链路带宽没有得到充分利用,发送端可以提高视频传输码率来提升视频质量。

在根据导出时,算子α和β的取值是非常重要的。α设置越高,越有利于获取更高的视频质量,但网络延时会相应增大,算法对网络拥塞状态预估的及时性会降低。α设置越低(越靠近β),算法对网络拥塞状态预估的及时性会提高,但副作用是会降低对网络带宽的利用率并引入带宽调整振荡(频繁发出提升/降低带宽请求)。β设置越高(越靠近α),越容易引入带宽调整振荡。β设置越低,会降低对网络带宽的利用率,视频质量越差。在具体实践中,可以根据对视频传输的延迟、质量等要求,来优化调整α和β的取值。经过大量实际测试发现,α=0.8和β=0.5是比较合适的,可以在网络时延和视频质量之间取得折衷。

步骤s32:自开始,adgdccm-dbcc就会在每一个rtp数据包到达时,计算其对应的延迟梯度累计值,并将它与之间的的延迟阈值进行比较,来对网络状况进行评估。若,表示网络无拥塞,视频接收端通知视频发送端提高视频编码码率(即提高rtp传输数据率),以提升视频质量。若,表示网络拥塞严重,视频接收端通知视频发送端降低视频编码码率,进而降低rtp传输数据率,以缓解网络拥塞,避免发生丢包。若<<,表示网络拥塞处于正常状态,视频发送端维持当前的视频编码码率和rtp传输数据率不变。

上一段描述的是adbdccm-dbcc的工作原理,adgdccm-dbcc总是在(n>1)之间工作,即不发生丢包的时间段内工作。在发生丢包的时间段内,即之间是adgdccm-lbcc在工作。adgdccm-lbcc工作时对传输数据率的调整依据公式九进行,不会使用到。在adgdccm-dbcc工作的时间段内,当接收到每一个rtp数据包时,会计算其对应的瞬时延迟梯度累积值,并与延迟阈值进行比较,以判断是需要提升还是降低传输数据率。

步骤s33:根据评估的网络拥塞状态,对数据传输速率进行调整以预防丢包。视频接收端通过adgdccm-dbcc评估出当前网络的状态后,通过发送rtcp的tmmbr消息来对视频发送端的视频编码码率进行调整。令代表视频发送端对视频编码比特率的本次(第i次)调整值,代表视频接收端实际测量出的视频编码比特率,则调整方式如下。当时,表明网络处于未充分使用(underuse)状态,则视频发送端对编码比特率的调整为同时满足=η*,η>1,例如取η=1.1,以及,ε>1,例如取ε=1.3。当<<时,表明网络处于正常(normal)状态,则视频发送端对编码比特率的调整为=。当时,表明网络处于过度使用(overuse)状态,则视频发送端对编码比特率的调整为=δ*,δ<1,例如取δ=0.9。当视频接收端检测到vilte视频通话的数据传输再次出现丢包,则回到步骤s20。

请参阅图7,本申请提出的基于延迟梯度累积的vilte视频通话拥塞控制系统包括计算单元10、lbcc控制单元20和dbcc控制单元30。

所述计算单元10在接收到每一个rtp数据包之后,计算出延迟梯度的累计值,并且记录在此过程中延迟梯度累计值的最大值。每一次检测到丢包后一旦网络传输恢复正常(即不再丢包),所述计算单元10还将清零重新记录。

所述lbcc控制单元20用来在检测到vilte视频通话的数据传输每一次出现丢包后,按照公式九估计当前的网络传输信道容量=γ*(公式九)。随后所述lbcc控制单元20立即发送tmmbr消息给视频发送端,要求视频发送端降低视频编码码率,从而将网络传输恢复到不再丢包的正常状态。同时,所述lbcc控制单元20还将检测到丢包时的记录的延迟梯度累积值的最大值作为丢包的延迟阈值,供后续基于延迟的拥塞控制策略使用。

所述dbcc控制单元30用来在检测到vilte视频通话的数据传输不再出现丢包后,将当前数据包的延迟梯度累积值和延迟阈值进行比较,判断出网络的拥塞状态,然后对数据传输速率进行调整以预防丢包。如果所述dbcc控制单元30检测到vilte视频通话的数据传输再次出现丢包,则交由所述lbcc控制单元20处理。

根据检测到vilte视频通话的数据传输是否出现丢包,分别由所述lbcc控制单元20、所述dbcc控制单元30进行处理,直至vilte视频通话的数据传输结束。

本申请所提出adgdccm方法以及adgdccm-lbcc控制策略、adgdccm-dbcc控制策略已有代码实现并运用于实际产品中。经实测检验,可以很好地对vilte视频通话过程中的网络拥塞进行评估和预测,达到降低网络延迟、避免丢包发生和提升视频质量的目的,满足设计预期。

以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。


技术特征:

1.一种基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,包括如下步骤;

步骤s10:启动vilte视频通话的数据传输,视频接收端在接收到每一个rtp数据包之后,计算出延迟梯度的累计值,并且记录在此过程中延迟梯度累计值的最大值;每一次检测到丢包后一旦网络传输恢复正常,则将清零重新记录;

步骤s20:当视频接收端检测到vilte视频通话的数据传输第一次出现丢包,就计算当前的网络传输信道容量=γ*是最近1秒内测量到的实际数据包接收码率,γ<1;随后视频接收端立即发送tmmbr消息给视频发送端,要求视频发送端降低视频编码码率;同时,视频接收端还将检测到丢包时的记录的延迟梯度累积值的最大值作为丢包的延迟阈值;

步骤s30:当视频接收端检测到vilte视频通话的数据传输不再出现丢包,视频接收端将当前数据包的延迟梯度累积值和延迟阈值进行比较,判断出网络的拥塞状态,然后对数据传输速率进行调整;直至视频接收端检测到vilte视频通话的数据传输再次出现丢包,则回到步骤s20;

步骤s40:重复步骤s20至步骤s30,直至vilte视频通话的数据传输结束。

2.根据权利要求1所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,从第1个数据包到第n个数据包,延迟梯度的累计值的计算方法如下;

;其中,表示当第n个数据包被加入到网络传输队列时,网络传输队列中所有数据包的长度总和;表示当第n个数据包被加入到网络传输队列时,接收端的实际网络传输数据率。

3.根据权利要求1所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,所述步骤s20采用的是基于丢包的拥塞控制策略;当检测到丢包发生时,使用实时的实际数据包接收码率来评估网络信道容量并对数据传输率进行调整,使网络传输恢复到正常状态。

4.根据权利要求1所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,所述步骤s30采用的是基于延迟的拥塞控制策略;在每一个数据包到达时计算出到目前为止的延迟梯度累计值,并与丢包发生时的丢包延迟阈值进行比较,探测出网络拥塞状态并对数据传输率进行调整,以缓解拥塞并避免丢包的发生。

5.根据权利要求1所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,所述步骤s30进一步包括如下步骤;

步骤s31:利用之间的延迟梯度累计值的最大值,得到之间的延迟阈值上限和延迟阈值下限;其中,代表前一次遭遇网络丢包的时刻,代表之后网络传输恢复正常的时刻,代表之后又一次遭遇网络丢包的时刻;

步骤s32:自开始,会在每一个rtp数据包到达时,计算其对应的延迟梯度累计值,并将它与之间的的延迟阈值进行比较;

,表示网络无拥塞;

,表示网络拥塞严重;

<<,表示网络拥塞处于正常状态;

步骤s33:根据评估的网络拥塞状态,视频接收端通过发送rtcp的tmmbr消息来对视频发送端的视频编码码率进行调整以预防丢包;

当网络无拥塞时,视频接收端通知视频发送端提高视频编码码率和rtp传输数据率;

当网络拥塞严重时,视频接收端通知视频发送端降低视频编码码率rtp传输数据率;

当网络拥塞处于正常状态时,视频发送端维持当前的视频编码码率和rtp传输数据率不变。

6.根据权利要求5所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,所述步骤s31中,,β<α<1;

,0<β<α。

7.根据权利要求6所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,α=0.8;β=0.5。

8.根据权利要求5所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,所述步骤s32中,基于延迟的拥塞控制策略总是在之间工作,n>1,即不发生丢包的时间段内工作;在发生丢包的时间段内,即之间是基于丢包的拥塞控制策略在工作。

9.根据权利要求5所述的基于延迟梯度累积的vilte视频通话拥塞控制方法,其特征是,所述步骤s33中,当网络无拥塞时,视频发送端对编码比特率的调整为同时满足=η*,η>1以及,ε>1;

当网络拥塞严重时,视频发送端对编码比特率的调整为=δ*,δ<1;

当网络拥塞处于正常状态时,视频发送端对编码比特率的调整为=

其中,代表视频发送端对视频编码比特率的第i次调整值,代表视频接收端实际测量出的视频编码比特率。

10.一种基于延迟梯度累积的vilte视频通话拥塞控制系统,其特征是,包括计算单元、lbcc控制单元和dbcc控制单元;

所述计算单元在接收到每一个rtp数据包之后,计算出延迟梯度的累计值,并且记录在此过程中延迟梯度累计值的最大值;每一次检测到丢包后一旦网络传输恢复正常,所述计算单元还将清零重新记录;

所述lbcc控制单元用来在检测到vilte视频通话的数据传输每一次出现丢包后,计算当前的网络传输信道容量=γ*;随后所述lbcc控制单元立即发送tmmbr消息给视频发送端,要求视频发送端降低视频编码码率;同时,所述lbcc控制单元还将检测到丢包时的记录的延迟梯度累积值的最大值作为丢包的延迟阈值;

所述dbcc控制单元用来在检测到vilte视频通话的数据传输不再出现丢包后,将当前数据包的延迟梯度累积值和延迟阈值进行比较,判断出网络的拥塞状态,然后对数据传输速率进行调整以预防丢包;如果所述dbcc控制单元检测到vilte视频通话的数据传输再次出现丢包,则交由所述lbcc控制单元处理;

根据检测到vilte视频通话的数据传输是否出现丢包,分别由所述lbcc控制单元、所述dbcc控制单元处理,直至vilte视频通话的数据传输结束。

技术总结
本申请公开了一种基于延迟梯度累积的ViLTE视频通话拥塞控制方法。步骤S10:收到每一个RTP数据包之后,计算出延迟梯度的累计值。步骤S20:第一次出现丢包,就计算当前的网络传输信道容量;=γ*;随后视频接收端立即发送TMMBR消息给视频发送端,要求视频发送端降低视频编码码率;同时,视频接收端还将检测到丢包时的记录的延迟梯度累积值的最大值作为丢包的延迟阈值。步骤S30:不再出现丢包,视频接收端将当前数据包的延迟梯度累积值和延迟阈值进行比较,判断出网络的拥塞状态,然后对数据传输速率进行调整。步骤S40:重复步骤S20至步骤S30,直至ViLTE视频通话的数据传输结束。本申请可在ViLTE视频通话过程中降低网络延迟、避免丢包发生和提升视频质量。

技术研发人员:刘鹏飞
受保护的技术使用者:翱捷科技(上海)有限公司
技术研发日:2020.05.07
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-16918.html

最新回复(0)