CN108401128B - 一种视频通话中的拥塞控制方法 - Google Patents

一种视频通话中的拥塞控制方法 Download PDF

Info

Publication number
CN108401128B
CN108401128B CN201810230773.7A CN201810230773A CN108401128B CN 108401128 B CN108401128 B CN 108401128B CN 201810230773 A CN201810230773 A CN 201810230773A CN 108401128 B CN108401128 B CN 108401128B
Authority
CN
China
Prior art keywords
code rate
receiving end
value
rate request
packet loss
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810230773.7A
Other languages
English (en)
Other versions
CN108401128A (zh
Inventor
钱晓炯
吕锐
刘谦
董泽
陈一乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo Jus Internet Technology Co ltd
Original Assignee
Ningbo Jus Internet Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ningbo Jus Internet Technology Co ltd filed Critical Ningbo Jus Internet Technology Co ltd
Priority to CN201810230773.7A priority Critical patent/CN108401128B/zh
Publication of CN108401128A publication Critical patent/CN108401128A/zh
Application granted granted Critical
Publication of CN108401128B publication Critical patent/CN108401128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种视频通话中的拥塞控制方法,其属于视频通话领域的技术,包括:步骤S1,所述接收端判断网络是否为浅缓冲网络;步骤S2,所述接收端获得一预设的测量窗口中的所述发送端与所述接收端之间的一累积延时趋势值;步骤S3,所述接收端根据所述累积延时趋势值调节所述接收端的所述码率请求值并将调节后的所述码率请求发送至所述发送端;步骤S4,所述接收端根据一预设周期中的丢包率获得一丢包趋势值;步骤S5,所述接收端根据所述丢包趋势值调节所述码率请求值并将调节后的所述码率请求发送至所述发送端。该技术方案的有益效果是:本发明提高了码率的控制效果,提高了整个视频通话过程中的通话质量。

Description

一种视频通话中的拥塞控制方法
技术领域
本发明涉及的是一种视频通话领域的技术,具体是一种视频通话中的拥塞控制方法。
背景技术
随着视频通话在各个领域的广泛应用,用户对于视频的质量的要求也越来越高。视频质量中最重要的是清晰度和流畅性。码率越高则音频质量和视频清晰度越高,同时信息量越大,占用传输带宽也越大。码率是指每秒传送的比特(bit)数,当码率超过网络带宽时会导致网络拥塞,造成视频卡顿。
在视频通话中广泛采用的通信协议为RTP/RTCP协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP标准定义了两个子协议,RTP和RTCP。
数据传输协议RTP,用于实时传输数据。RTP协议提供的信息包括:
时间戳,时间戳反映了RTP分组中的数据的第一个字节的采样时刻。在一次会话开始时的时间戳初值也是随机选择的。即使是没有信号发送时,时间戳的数值也要随时间不断的增加。接收端使用时间戳可准确知道应当在什么时间还原哪一个数据块,从而消除传输中的抖动。通过时间戳我们还可以得到往返延迟(RTT)和网络抖动(Jitter)。
序列号:对每个数据包做标记,序号依次增大。序列号用于丢包检测,例如,当接收端接收到数据包Pi、数据包Pj(j=i+n),且在一段时间内没有接收到数据包Pi+1,Pi+2,...,Pi+j-1时,则认定在数据包Pi和数据包Pj之间的n 个数据包丢失,由此我们可以计算得到丢包率。
在用户进行视频通话时,自动调节码率保证在不同的网络状态下都能尽可能地提供良好的服务质量。一方面是当网络情况变好时,能够向上提升服务质量,传输高码率、高质量的视频数据,另一方面是当网络带宽下降时能向下调整,传输低码率、低质量的视频数据。其基本思想是,通过对接收者报告包的获取,获得关于网络状况的参数如丢包率、延迟、抖动,为自适应调整提供数据支持;然后通过一定的算法将这些数据支持转换为码率控制信息,利用RTCP实现将自适应码率控制信息实时的传输给对端,从而实现动态的码率控制。
发明内容
本发明针对现有技术存在的上述不足,提出一种视频通话中的拥塞控制方法。本发明能够分别对浅缓冲网络和深缓冲网络分别采取不同的码率控制方法,从而提高了码率的控制效果,通过累积延时趋势值来识别深缓冲网络的拥塞状态并进行码率请求的调节,通过丢包趋势值来识别浅缓冲网络的拥塞状态并及时的对码率请求进行调节,提高了整个视频通话过程中的通话质量。
本发明是通过以下技术方案实现的:
本发明涉及一种视频通话中的拥塞控制方法,其中,适用于视频通话中的发送端与接收端之间的码率控制,所述接收端和所述发送端之间通过一网络相连,所述接收端生成一包括码率请求值的码率请求并发送至所述发送端,所述发送端根据所述码率请求中的所述码率请求值设置所述发送端的发送码率,还包括以下步骤:
步骤S1,所述接收端判断当前连接的所述网络是否为浅缓冲网络:
若否,则转到步骤S2;
若是,则转到步骤S4;
步骤S2,所述接收端根据一预设的测量窗口获得所述发送端与所述接收端之间的一累积延时趋势值,并采用所述累积延时趋势值表示当前连接的所述网络的拥塞状态;
步骤S3,所述接收端根据所述累积延时趋势值调节所述接收端的所述码率请求并将调节后的所述码率请求发送至所述发送端,随后回到步骤 S1;
步骤S4,所述接收端根据一预设周期中的丢包率获得所述接收端的丢包趋势值,并采用所述丢包趋势值表示当前连接的所述网络的拥塞状态;
步骤S5,所述接收端根据所述丢包趋势值调节所述码率请求值并将调节后的所述码率请求发送至所述发送端,随后回到步骤S1。
优选的,该视频通话中的拥塞控制方法,其中,在所述步骤S2中,所述累积延时趋势值的计算公式为:
Figure BDA0001602711610000031
其中:
w为所述测量窗口的宽度;
Ac_Trn为当前时刻的所述累积延时趋势值,n为当前时刻所述接收端接收到的数据包的序号;
Tri=(Ti-ti)-(Ti-1-ti-1),Ti为所述发送端发送序号为i的数据包的发送时刻,ti所述接收端收到序号为i的数据包的接收时刻。
优选的,该视频通话中的拥塞控制方法,其中,所述步骤S3具体包括以下步骤:
步骤S31,所述接收端将所述累积延时趋势值与一预设的延迟门限比较,并判断所述累积延时趋势值是否小于所述延迟门限:
若是,则进行步骤S32;
若否,则所述网络处于拥塞状态,所述接收端降低所述码率请求值并将调节后的所述码率请求发送至所述发送端,随后返回步骤S1;
步骤S32,所述接收端判断所述累积延时趋势值是否大于所述延迟门限的二分之一:
若是,则所述接收端保持所述码率请求值不变,并将所述码率请求发送至所述发送端,随后返回步骤S1;
若否,则所述接收端提高所述码率请求值,并将调节后的所述码率请求发送至所述发送端,随后返回步骤S1。
优选的,该视频通话中的拥塞控制方法,其中,所述步骤S4中,依据下述公式计算得到所述预设周期中的所述丢包趋势值: Loss_trendi=b*Loss_trendi-1+Δlossi
其中:
Loss_trendi为所述预设周期中的第i个时刻的所述丢包趋势值;
Loss_trendi-1为所述预设周期中的第i-1个时刻的丢包趋势值;
Δlossi=lossi-lossi-1,lossi为所述预设周期中第i个时刻的丢包率;
b为一预设的退化系数。
优选的,该视频通话中的拥塞控制方法,其中,所述步骤S5具体包括以下步骤:
步骤S51,所述接收端判断所述丢包趋势值是否大于一预设的丢包阈值:
若是,则进行步骤S52;
若否,则所述接收端保持所述码率请求值不变,并将所述码率请求发送至所述发送端,随后回到步骤S1;
步骤S52,所述接收端获得当前时刻的所述接收端的接收码率,并判断当前时刻的接收码率是否大于前一时刻的接收码率:
若是,则所述网络处于拥塞状态,所述接收端将所述码率请求降低至一预设的第一拥塞码率,并将调节后测所述码率请求发送至所述发送端,随后回到步骤S1;
若否,则所述接收端保持所述码率请求值不变,并将所述码率请求发送至所述发送端,随后回到步骤S1。
优选的,该视频通话中的拥塞控制方法,其中,在所述步骤S52中,所述接收端在发送所述码率请求后,回到步骤S1之前,先进行一再调过程,所述再调过程包括以下步骤:
步骤S521,所述接收端获得当前时刻的所述丢包率,并判断所述丢包率是否大于一预设的第一再调阈值:
若是,则进行步骤S522;
若否,则所述接收端将所述码率请值求保持为所述第一拥塞码率,并将调节后的所述码率请求发送至所述发送端,随后回到步骤S1;
步骤S522,判断当前时刻的所述丢包率是否小于一预设的第二再调阈值:
若是,则所述接收端将所述码率请求值降低为一第二拥塞码率;
若否,则所述接收端将所述码率请求值调整为所述第一拥塞码率之前的数值。
优选的,该视频通话中的拥塞控制方法,其中,依照下述公式确定所述延迟门限:
Thd=jitter*3.16+dd,
其中,
Thd用于表示所述延迟门限;
jitter为所述测量窗口的平均抖动时间;
dd为一预设的默认值。
优选的,该视频通话中的拥塞控制方法,其中,依照下述公式确定所述延迟门限:
Thd=deltaMax+dd,
其中,
Thd用于表示所述延迟门限;
deltaMax为当前时刻之前的一预设采样时段中的延迟的最大抖动值。
优选的,该视频通话中的拥塞控制方法,其中,所述发送端与所述接收端建立视频通信时,所述发送端首先以一初始码率向所述发送端发送视频数据,所述初始码率具有一预设的取值范围。
优选的,该视频通话中的拥塞控制方法,其中,在所述步骤S32中,所述接收端判断所述累积延时趋势值是不大于所述延迟门限的二分之一时,所述接收端提升所述码率请求值的数值上限为当前连接的所述网络的可用带宽,依照下述公式确定所述可用带宽:
Figure BDA0001602711610000061
其中,
bw为所述可用带宽;
sumbits为dt时段内的发送的比特数。
上述技术方案的有益效果是:
本发明能够分别对浅缓冲网络和深缓冲网络分别采取不同的码率控制方法,从而提高了码率的控制效果,通过累积延时趋势值来识别深缓冲网络的拥塞状态并进行码率请求的调节,通过丢包趋势值来识别浅缓冲网络的拥塞状态并及时的对码率请求进行调节,提高了整个视频通话过程中的通话质量。
附图说明
图1为本发明的较佳的实施例中,一种视频通话中的拥塞控制方法的流程示意图;
图2为本发明的较佳的实施例中,一种视频通话中的拥塞控制方法中根据累积延时趋势值调节码率请求的流程示意图;
图3本发明的较佳的实施例中,一种视频通话中的拥塞控制方法中根据丢包趋势值调节码率请求的流程示意图;
图4本发明的较佳的实施例中,一种视频通话中的拥塞控制方法中再调过程的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本实施例涉及一种视频通话中的拥塞控制方法。适用于视频通话中的发送端与接收端之间的码率控制,接收端生成一包括码率请求值的码率请求并发送至发送端,发送端根据码率请求设置发送端的发送码率。
视频通话的双方(发送端与接收端)建立视频通信时,发送端首先向接收端发送请求,而后建立视频通信。发送端首先以一初始码率向发送端发送视频数据。如果初始码率如果初始码率过低,比如30kbps,视频通信的初始质量会比较差,这就需要半分钟时间逐步提升视频质量;但如果初始码率过高,将会长时间拥塞,导致无法接通,比如双向初始码率各为 500kbps,在双向带宽各50kbps,双向延时各250ms的网络中,如果发生拥塞死锁,理论最小恢复时间为十几秒,如果处理不当,恢复时间大概需要30~40多秒。
将初始码率设置在一预设的取值范围内。预设的取值范围的下限为 L,上限为H,其中:L可以为50kbps或者60kbps,H可以为500kbps或 560kbps。如果发送端和接收端第一次建立视频通话,则以预设的取值范围的上限和下限的均值作为初始码率。如果发送端和接收端不是第一次建立视频通话,则计算上一次视频通话的发送端的平均发送码率。上一次视频通话的平均发送码率在预设的取值范围内,则以该视频通话的平均发送码率作为本次视频通话的初始码率,否则以该预设的取值范围的上限或下限作为初始码率。平均发送码率大于上限时,则以上限作为初始码率;平均发送码率小于上限时,则以下限作为初始码率。
如图1所示,本实施例中的视频通话中的拥塞控制方法包括以下步骤:
步骤S1,接收端判断当前连接的网络是否为浅缓冲网络:
若否,则转到步骤S2;
若是,则转到步骤S4。
网络包括两种类型,一种为浅缓冲(shallow buffer)网络,另一种为深缓冲(deepbuffer)网络。
所谓深缓冲网络通常deep buffer的大小能达到缓存300个左右以上的数据包。具有深缓冲特点的网络在拥塞时将吞吐能力之外的数据包缓存起来延后发送,表现为传输的延迟加大,但不会造成丢失,因此可通过累积延时趋势值来检测网络是否拥塞并进行调节码率请求。
所谓浅缓冲网络的shallow buffer大概存储100个左右的数据包,在网络拥塞时,现有的处理策略是简单的将超出网络吞吐量的数据包直接丢弃,导致丢包但不会造成延迟。
步骤S2,接收端根据一预设的测量窗口获得发送端与接收端之间的累积延时趋势值,并采用累积延时趋势值表示当前连接的网络的拥塞状态。
累积延时趋势值的计算公式为:
Figure BDA0001602711610000091
其中:
w为测量窗口的宽度;
Ac_Trn为当前时刻的累积延时趋势值;
n为当前时刻接收端接收到的数据包的序号;
Tri=(Ti-ti)-(Ti-1-ti-1),Ti为发送端发送序号为i的数据包的发送时刻, ti接收端收到序号为i的数据包的接收时刻。
发送端发送的序号为i的数据包的延迟Tdi=Ti-ti-deltaT,其中: deltaT为发送端和接收端之间的时间差。第i个数据包的延迟和第i-1个数据包的延迟的差值Tri=Tdi-Tdi-1即Tri=(Ti-ti)-(Ti-1-ti-1)。在当前时刻的数据包的序号为n,计算得到的累积延时趋势值
Figure BDA0001602711610000092
即得到测量窗口内的w个数据包的累积延时趋势值。测量窗口w可以为100或120。
步骤S3,接收端根据累积延时趋势值调节接收端的码率请求并将调节后的码率请求发送至发送端,随后回到步骤S1。
如图2所示,所示步骤S3具体包括:
步骤S31,接收端将累积延时趋势值与一预设的延迟门限Thd比较,并判断累积延时趋势值是否小于延迟门限Thd:
若是,则进行步骤S32;
若否,则网络处于拥塞状态,接收端降低码率请求并将降低后的码率请求发送至发送端。
当Ac_Trn≥Thd,当前网络处于拥塞状态,发送端应该降低当前的码率请求,并将降低后的码率请求发送至发送端,发送端根据降低后的码率请求来降低发送码率。
当Ac_Trn<Thd时,需要进一步的判断,即进行步骤S32。
步骤S32,接收端判断累积延时趋势值是否大于延迟门限的二分之一:
若是,则接收端保持码率请求值不变,并将码率请求发送至发送端;
若否,则接收端提高码率请求值,并将提高后的码率请求发送至发送端。
Figure BDA0001602711610000101
则接收端保持码率请求值不变,并将码率请求发送至发送端。当
Figure BDA0001602711610000102
则当前网络不拥塞,相应的在当前码率请求基础上提高码率请求值,并将提高后的码率请求发送至发送端,发送端根据提高后的码率请求值相应的提高发送码率。
延迟门限Thd=jitter*3.16+dd,其中:jitter为测量窗口的平均抖动时间,dd为一预设的默认值。dd的取值范围为100ms~180ms。jitter的数值可以根据RFC3550协议中的计算方法直接获得。
较佳的实施例中,在获得累积延时趋势值过程中会遇到延迟抖动,所以改变延迟门限的计算方法,即延迟门限Thd=deltaMax+dd,其中: deltaMax为当前时刻之前的一预设采样时段中的延迟的最大抖动值。预设采样时段的时间范围为10-15s。
在步骤S32中,在步骤S32中,当累积延时趋势值不大于延迟门限的二分之一时,接收端提升码率请求值的数值上限为当前连接的网络的可用带宽;
依照下述公式确定可用带宽:
Figure BDA0001602711610000111
其中,
bw用于表示可用带宽;
sumbits为dt时段内的发送的比特数。
如果在一个时间点发送2个以上数据包,即不同数据包的发送时间差为0,网络在那个时间点处于“瞬间饱和”工作状态,排除抖动和乱序等噪声因素干扰,那么接收端不同包接收的时间差dt应该是大于等于0,则以下推论成立,可用带宽bw必然小于等于瞬时发送的比特的总和sumbits 除以dt,即:
Figure BDA0001602711610000112
那么就以
Figure BDA0001602711610000113
作为可用带宽的bw。
步骤S4,接收端根据一预设周期中的丢包率获得一丢包趋势值。当网络为浅缓冲网络时,进行步骤S4~S5,通过步骤S4和步骤S5来调节发送端和接收端之间的码率以及码率请求。
预设周期中的丢包趋势值的计算公式为: Loss_trendi=b*Loss_trendi-1+Δlossi
其中:
Loss_trendi为预设周期中第i个时刻的丢包趋势值;
Loss_trendi-1为预设周期中第i-1个时刻的丢包趋势;
Δlossi=lossi-lossi-1,lossi为预设周期中第i时刻的丢包率;
b为一预设的退化系数。
预设周期(inteval)内总的丢包趋势值
Figure BDA0001602711610000121
Δloss=losscur-losslast,即为当前时刻的丢包率losscur减去上一时刻的丢包率 losslast。退化系数等于b=0.7inteval/1000,即每1000ms衰减30%。预设周期可以为500ms或550ms。
步骤S5,接收端根据丢包趋势值调节码率请求值并将调节后的码率请求发送至发送端,随后回到步骤S1。
如图3所示,步骤S5具体包括以下步骤:
步骤S51,判断丢包趋势值是否大于一预设的丢包阈值:
若是,则进行步骤S52;
若否,则接收端保持码率请求不变,并将码率请求发送至发送端,随后回到步骤S1。
丢包阈值可以设置为3%或4%。
步骤S52,接收端获得当前时刻的接收端的接收码率,并判断当前时刻的接收码率是否大于前一时刻的接收码率:
若是,则网络处于拥塞状态,接收端将码率请求值降低至一预设的第一拥塞码率,并将调节后的码率请求发送至发送端,随后回到步骤S1;
若否,则接收端保持码率请求值不变,并将码率请求发送至发送端,随后回到步骤S1。当丢包趋势值大于丢包阈值,且当前时刻的 br_incoming与前一时刻的接收码率相比增加时网络处于拥塞状态,当前的码率请求降低至第一拥塞码率,第一拥塞码率为0.8br_incoming。并将当前的码率请求保存至br_last,当前的丢包率保存为loss_last。
如图4所示,在步骤S52中,接收端在发送码率请求后,回到步骤S1之前,进行一再调过程,再调过程包括以下步骤:
再调过程是在接收端降低码率请求一段时间后进行,即在降低码率请求后等待一段时间进行再调过程,等待的时间可以为2RTT或500ms。通过步骤S52判断出网络处于拥塞状态,可能并不准确,需要通过再调过程来进一步的修正。
步骤S521,等待一段时间后,接收端获得当前时刻的丢包率 (losscur),并判断丢包率是否大于一预设的第一再调阈值(theta):
若是,则进行步骤S522;
若否,则接收端将码率请求保持为第一拥塞码率,并将调节后的码率请求发送至发送端,随后回到步骤S1。
当losscur≤theta时,将码率请求保持为第一拥塞码率。第一再调阈值可以为0.9或0.91。将losscur保存为loss_comm。
步骤S522,判断当前时刻的丢包率是否小于一预设的第二再调阈值:
若是,则接收端将码率请求降低为一第二拥塞码率。即当 theta<losscur<loss_last-theta/2,loss_last-theta/2为第二再调阈值,则接收端将码率请求降低为一第二拥塞码率,第二拥塞码率为br_last×(1-loss_cong),其中:loss_cong为拥塞导致的丢包率,loss_cong=loss_last-loss_comm。
若否,则接收端将码率请求恢复为被降低为第一拥塞码率之前的数值。即losscur≥loss_last-theta/2时,将码率请求变更为以及保存的br_last。
按帧为单位探测累积延时趋势值响应速度过慢,以包为单位可避免帧率过低时探测的响应时间过长的问题。在浅缓冲网络拥塞时,如果采用加大编码码率的方式探测,会导致丢包而使得视频帧无法完整到达,而采用增加冗余包的方式探测可一定程度上避免这个问题。冗余包的选择为与原先RTP包相同的一些包,这样选择的好处是当原先的RTP包在网络中丢失时,冗余包所携带的信息可以替代原先的RTP包,使得视频接收端接收到完整信息的可能性增大,避免通过编码加大码率导致探测时丢包的问题,从而获得更好的视频体验。避免过于频繁地探测网络状况导致过度占用网络带宽,每次探测都将间隔一小段时间。探测时间选择30秒到60秒,探测持续时长与探测间隔时间比例在1:2左右较为适宜。
正常网络状态下,采用逐步递增码率的方式探测,探测码率为防止突变,通常的做法是在原先的发送码率的基础上每秒增加百分比α再加上一个常量beta,直到设置的最高码率为止。α取值在0.5%~5%之间,常量beta取固定值为3~5kbps。如果发现处于拥塞状态,则应将发送码率调整到小于等于送达码率。探测码率由接受端进行统计,采用RTCP协议的 TMMBR(或REMB)字段回传给发送端来进行码率控制。
在视频通话过程中可能发生拥塞死锁,在接收端检测到比较严重的、长时间的(超过2~3s)的拥塞情况下,判断可能发送端也拥塞了即有很大概率出现拥塞死锁。解除拥塞死锁的方法是发送端主动降低发送码率降低码率的方式为,在拥塞状态下,每隔3s降低50%的码率,直到设定的最低码率。
在进行丢包趋势值计算过程中,需要获得网络的丢包率,但是可能发生丢包率抖动,这时就需要采用低通滤波的方式对丢包率进行平滑。可以通过RTCP统计,得到每两个RTCP报告包之间的累计丢包个数和序号,在每间隔一段时间后平滑得到丢包率。
控制信息通过RTCP反馈给发送端,但在实际运行的网络中,接收通道的质量出问题时,往往发送通道的质量也不行,即可能出现双向延迟过大甚至反馈信息不可达。此时应在发送端进行主动预防处理,当发现出现这种情况时,每隔3s降低50%的码率,直到设定的最低码率,同时加强RTCP反馈信号的发送频率以便控制信息能够及时的传达到发送端。
本发明的视频通话中的拥塞控制方法,与现有技术相比:
本发明能够分别对浅缓冲网络和深缓冲网络分别采取不同的码率控制方法,从而提高了码率的控制效果,通过累积延时趋势值来识别深缓冲网络的拥塞状态并进行码率请求的调节,通过丢包趋势值来识别浅缓冲网络的拥塞状态并及时的对码率请求进行调节,提高了整个视频通话过程中的通话质量。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (10)

1.一种视频通话中的拥塞控制方法,适用于视频通话中的发送端与接收端之间的码率控制,其特征在于,所述接收端和所述发送端之间通过一网络相连,所述接收端生成一包括码率请求值的码率请求并发送至所述发送端,所述发送端根据所述码率请求中的所述码率请求值设置所述发送端的发送码率,还包括以下步骤:
步骤S1,所述接收端判断当前连接的所述网络为浅缓冲网络或深缓冲网络:
若为深缓冲网络,则转到步骤S2;
若为浅缓冲网络,则转到步骤S4;
所述浅缓冲网络的数据包缓存能力小于所述深缓冲网络的数据包缓存能力;
步骤S2,所述接收端根据一预设的测量窗口获得所述发送端与所述接收端之间的一累积延时趋势值,并采用所述累积延时趋势值表示当前连接的所述网络的拥塞状态;
步骤S3,所述接收端根据所述累积延时趋势值调节所述接收端的所述码率请求并将调节后的所述码率请求发送至所述发送端,随后回到步骤S1;
步骤S4,所述接收端根据一预设周期中的丢包率获得所述接收端的丢包趋势值,并采用所述丢包趋势值表示当前连接的所述网络的拥塞状态;
步骤S5,所述接收端根据所述丢包趋势值调节所述码率请求值并将调节后的所述码率请求发送至所述发送端,随后回到步骤S1。
2.根据权利要求1所述的视频通话中的拥塞控制方法,其特征在于,在所述步骤S2中,所述累积延时趋势值的计算公式为:
Figure 273983DEST_PATH_IMAGE004
其中:
Figure DEST_PATH_IMAGE006
为所述测量窗口的宽度;
Figure DEST_PATH_IMAGE008
为当前时刻的所述累积延时趋势值,
Figure DEST_PATH_IMAGE010
为当前时刻所述接收端接收到的数据包的序号;
Figure DEST_PATH_IMAGE012
Figure DEST_PATH_IMAGE014
为所述发送端发送序号为
Figure DEST_PATH_IMAGE016
的数据包的发送时刻,
Figure DEST_PATH_IMAGE018
所述接收端收到序号为的数据包的接收时刻。
3.根据权利要求2所述的视频通话中的拥塞控制方法,其特征在于,所述步骤S3具体包括以下步骤:
步骤S31,所述接收端将所述累积延时趋势值与一预设的延迟门限比较,并判断所述累积延时趋势值是否小于所述延迟门限:
若是,则进行步骤S32;
若否,则所述网络处于拥塞状态,所述接收端降低所述码率请求值并将调节后的所述码率请求发送至所述发送端,随后返回步骤S1;
步骤S32,所述接收端判断所述累积延时趋势值是否大于所述延迟门限的二分之一:
若是,则所述接收端保持所述码率请求值不变,并将所述码率请求发送至所述发送端,随后返回步骤S1;
若否,则所述接收端提高所述码率请求值,并将调节后的所述码率请求发送至所述发送端,随后返回步骤S1。
4.根据权利要求1所述的视频通话中的拥塞控制方法,其特征在于,所述步骤S4中,依据下述公式计算得到所述预设周期中的所述丢包趋势值:
Figure DEST_PATH_IMAGE020
其中:
Figure DEST_PATH_IMAGE022
为所述预设周期中的第个时刻的所述丢包趋势值;
Figure DEST_PATH_IMAGE024
为所述预设周期中的第个时刻的丢包趋势值;
Figure DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE028
为所述预设周期中第个时刻的丢包率;
Figure DEST_PATH_IMAGE030
为一预设的退化系数。
5.根据权利要求4所述的视频通话中的拥塞控制方法,其特征在于,所述步骤S5具体包括以下步骤:
步骤S51,所述接收端判断所述丢包趋势值是否大于一预设的丢包阈值:
若是,则进行步骤S52;
若否,则所述接收端保持所述码率请求值不变,并将所述码率请求发送至所述发送端,随后回到步骤S1;
步骤S52,所述接收端获得当前时刻的所述接收端的接收码率,并判断当前时刻的接收码率是否大于前一时刻的接收码率:
若是,则所述网络处于拥塞状态,所述接收端将所述码率请求降低至一预设的第一拥塞码率,并将调节后测所述码率请求发送至所述发送端,随后回到步骤S1;
若否,则所述接收端保持所述码率请求值不变,并将所述码率请求发送至所述发送端,随后回到步骤S1。
6.根据权利要求5所述的视频通话中的拥塞控制方法,其特征在于,在所述步骤S52中,所述接收端在发送所述码率请求后,回到步骤S1之前,先进行一再调过程,所述再调过程包括以下步骤:
步骤S521,所述接收端获得当前时刻的所述丢包率,并判断所述丢包率是否大于一预设的第一再调阈值:
若是,则进行步骤S522;
若否,则所述接收端将所述码率请求值保持为所述第一拥塞码率,并将调节后的所述码率请求发送至所述发送端,随后回到步骤S1;
步骤S522,判断当前时刻的所述丢包率是否小于一预设的第二再调阈值:
若是,则所述接收端将所述码率请求值降低为一第二拥塞码率;
若否,则所述接收端将所述码率请求值调整为所述第一拥塞码率之前的数值。
7.根据权利要求3所述的视频通话中的拥塞控制方法,其特征在于,依照下述公式确定所述延迟门限:
Figure DEST_PATH_IMAGE032
其中,
Figure DEST_PATH_IMAGE034
用于表示所述延迟门限;
Figure DEST_PATH_IMAGE036
为所述测量窗口的平均抖动时间;
Figure DEST_PATH_IMAGE038
为一预设的默认值。
8.根据权利要求3所述的视频通话中的拥塞控制方法,其特征在于,依照下述公式确定所述延迟门限:
Figure DEST_PATH_IMAGE040
其中,
Figure 286064DEST_PATH_IMAGE034
用于表示所述延迟门限;
Figure DEST_PATH_IMAGE042
为当前时刻之前的一预设采样时段中的延迟的最大抖动值;
Figure 3484DEST_PATH_IMAGE038
为一预设的默认值。
9.根据权利要求1所述的视频通话中的拥塞控制方法,其特征在于,所述发送端与所述接收端建立视频通信时,所述发送端首先以一初始码率向所述发送端发送视频数据,所述初始码率具有一预设的取值范围。
10.根据权利要求3所述的视频通话中的拥塞控制方法,其特征在于,在所述步骤S32中,所述接收端判断所述累积延时趋势值是不大于所述延迟门限的二分之一时,所述接收端提升所述码率请求值的数值上限为当前连接的所述网络的可用带宽,依照下述公式确定所述可用带宽:
Figure DEST_PATH_IMAGE044
其中,
Figure DEST_PATH_IMAGE046
为所述可用带宽;
Figure DEST_PATH_IMAGE048
为时段内的发送的比特数。
CN201810230773.7A 2018-03-20 2018-03-20 一种视频通话中的拥塞控制方法 Active CN108401128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810230773.7A CN108401128B (zh) 2018-03-20 2018-03-20 一种视频通话中的拥塞控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810230773.7A CN108401128B (zh) 2018-03-20 2018-03-20 一种视频通话中的拥塞控制方法

Publications (2)

Publication Number Publication Date
CN108401128A CN108401128A (zh) 2018-08-14
CN108401128B true CN108401128B (zh) 2020-09-15

Family

ID=63092650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810230773.7A Active CN108401128B (zh) 2018-03-20 2018-03-20 一种视频通话中的拥塞控制方法

Country Status (1)

Country Link
CN (1) CN108401128B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385648A (zh) * 2018-12-28 2020-07-07 成都鼎桥通信技术有限公司 一种视频帧率的调控方法和系统
CN110198495B (zh) * 2019-06-28 2022-03-22 广州市百果园信息技术有限公司 一种视频下载和播放的方法、装置、设备和存储介质
CN110324580B (zh) * 2019-07-05 2020-12-11 视联动力信息技术股份有限公司 一种基于视联网的监控视频播放方法及装置
CN111314335B (zh) * 2020-02-10 2021-10-08 腾讯科技(深圳)有限公司 数据传输方法、装置、终端、存储介质和系统
CN111556345B (zh) * 2020-03-19 2023-08-29 视联动力信息技术股份有限公司 一种网络质量检测的方法、装置、电子设备及存储介质
CN111263102B (zh) * 2020-05-07 2020-08-11 翱捷科技(上海)有限公司 一种基于延迟梯度累积的ViLTE视频通话拥塞控制方法及系统
CN111741249B (zh) * 2020-06-04 2022-03-22 北京佳讯飞鸿电气股份有限公司 一种网络拥塞检测方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252425A (zh) * 2008-04-09 2008-08-27 杭州华三通信技术有限公司 一种自动适应网络的丢包纠错方法和系统
CN101841479A (zh) * 2010-04-28 2010-09-22 四川大学 一种基于网络编码的高误码率长时延网络自适应传输方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080031277A1 (en) * 2006-08-04 2008-02-07 Edward Walter Methods and apparatus to determine communication carrier capabilities
KR101930057B1 (ko) * 2011-10-28 2018-12-17 한국전자통신연구원 통신 시스템에서 데이터 송수신 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252425A (zh) * 2008-04-09 2008-08-27 杭州华三通信技术有限公司 一种自动适应网络的丢包纠错方法和系统
CN101841479A (zh) * 2010-04-28 2010-09-22 四川大学 一种基于网络编码的高误码率长时延网络自适应传输方法

Also Published As

Publication number Publication date
CN108401128A (zh) 2018-08-14

Similar Documents

Publication Publication Date Title
CN108401128B (zh) 一种视频通话中的拥塞控制方法
EP2432175B1 (en) Method, device and system for self-adaptively adjusting data transmission rate
CN111615006B (zh) 基于网络状态自评估的视频编码转换传输控制系统
CN101909060B (zh) 一种适用于移动视频实时流媒体传输的Qos控制方法
EP2312787B1 (en) Method and device of data transmission
US8588071B2 (en) Device and method for adaptation of target rate of video signals
CN101057439B (zh) 发送器
EP1159719B1 (en) Jitter buffer and methods for control of same
USRE43668E1 (en) Method and apparatus for transmitting packets
CN106330761B (zh) 基于队列时延的拥塞控制方法及装置
US20100098047A1 (en) Setting a data rate of encoded data of a transmitter
EP2950473B1 (en) Anti-packet-loss real-time communication method, system and related device based on hierarchical coding
EP1372304A2 (en) Method, transmitter and receiver for adapting the encoding rate to a varying transport rate
KR20090036765A (ko) 와이브로 시스템에서 영상 데이터 전송을 위한 출력 비트레이트 설정 방법
CN111935441B (zh) 一种网络状态检测方法及装置
CN111417029B (zh) 视频码率的调整方法、系统、终端及存储介质
KR100652574B1 (ko) 스트리밍 시스템 및 적응적 대역 할당 방법
CN113891172B (zh) 一种适于无线Mesh网络的基于RTT的自适应码率控制方法
CN107483990B (zh) 一种流媒体传输的动态码率调节方法、装置及传输系统
JP2002325095A (ja) データ通信システム、データ送信装置及びデータ通信方法
EP1716672B1 (en) Method, apparatus and computer program product for controlling data packet transmissions
US11533237B2 (en) Round-trip estimation
CN111212308B (zh) 一种无线网络自适应调节的方法
US7525914B2 (en) Method for down-speeding in an IP communication network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant