发明内容
本发明的目的在于提供一种在视频通信中处理网络丢包的控制方法,其能提高关键数据包的传输成功率,同时满足数据传输效率要求和数据传输实时性要求。
为实现上述目的,本发明的技术方案如下:
一种视频通信系统中处理网络丢包的控制方法,包括如下步骤:a.发送端生成待发送数据包,每一数据包具有唯一的序列号,数据包分类为视频包和音频包,分别用于封装视频帧和音频帧;b.设定视频帧或音频帧的帧优先度,并根据帧优先度确定第一时间阈值和第二时间阈值;c.发送端向接收端发送数据包,并开始计时;d.若发送端在大于第一时间阈值小于第二时间阈值的时间段内未收到接收端对某一数据包的确认信息,发送端重发该数据包;若发送端在大于第二时间阈值的时间段内仍未收到接收端对该数据包的确认信息,发送端丢弃该数据包。
优选地:步骤b具体包括:当帧优先度大于优先度阈值时,将第三时间阈值设定为第二时间阈值;当帧优先度小于优先度阈值时,将第四时间阈值设定为第二时间阈值,其中第三时间阈值大于第四时间阈值。
优选地,在步骤c和步骤d之间还包括如下步骤:若接收端收到第二数据包而未收到第一数据包,接收端向发送端请求重发该第一数据包,第二数据包为发送端发送该第一数据包之后接着发送的另一数据包。
优选地:步骤a之前还包括如下步骤:在发送端与接收端之间建立至少一条数据传输链路,其中,数据包通过数据传输链路发送至接收端。
优选地,步骤d之后还包括步骤e:在发送端和接收端之间没有数据包发送时,发送端检测数据传输链路是否畅通。
优选地,步骤e之后还包括步骤f:若检测到数据传输链路已断开,发送端向接收端请求重新建立数据传输链路。
本发明提供的处理网络丢包的控制方法,为各视频帧和音频帧设定了不同的优先度级别,从而形成了重发或丢弃数据包的控制策略,该方法应用于视频通信时,既能提高关键数据包的传输成功率,又能满足数据传输效率要求以及数据传输实时性要求。
本发明要解决的另一个技术问题是提供一种在视频通信中重发控制装置,其提高关键数据包的传输成功率,并使发送端具有良好的数据传输效率。
为实现上述目的,本发明另一技术方案如下:
一种在视频通信中重发控制装置,包括:优先度生成单元,用于为视频帧和音频帧生成帧优先度信息;时间阈值生成单元,用于根据帧优先度信息生成第一时间阈值和第二时间阈值;和重发控制单元,其中,当发送端在大于第一时间阈值小于第二时间阈值的时间段内未收到接收端对数据包的确认信息时,重发控制单元控制发送端重发数据包;当发送端在大于第二时间阈值的时间段内仍未收到接收端对数据包的确认信息时,重发控制单元控制发送端丢弃数据包。
本发明还公开了一种视频通信系统,用于通过通信网络进行视频通信,其包括至少一个发送端、至少一个接收端和至少一个重发控制装置,该装置控制发送端通过通信网络向接收端发送数据包,该数据包封装视频帧或音频帧。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步的详细说明。
需要说明的是,本发明的实施例优先应用于视频通信系统中在发送端处理网络丢包问题,本发明实施例中的数据包具体分类为视频包或音频包,分别用于封装视频帧和音频帧,但并不意味着数据包由视频包、音频包2个部分构成。本发明为各视频帧和音频帧设定了不同的优先度级别。但应理解的是,本发明的思想同样可应用于其他通信系统,只要该通信系统传输数据包时加入了优先度判断机制,并根据优先度来实现对数据包重发的控制,均落入本发明的保护范围。
如图1所示,本发明第一实施例提供的处理网络丢包的控制方法,用于视频通信系统中,具体包括如下步骤:
步骤S10:发送端生成待发送的数据包。
其中数据包为视频包或音频包,发送端将视频帧封装成视频包,将音频帧封装成音频包。
数据包具体包括包头和帧信息,包头由序列号、消息号、时间戳和目的端信息组成,帧信息由视频帧数据或音频帧数据构成。序列号唯一地确定一个数据包,消息号表征数据包之间的关联性,当一个帧无法由一个数据包封装时,帧的数据被分隔若干部分,并分别形成数据包,这些数据包以相同的信息号标识;时间戳则记录了数据包发送的时间;目的端信息指明数据包发送的目的端地址。
步骤S11:设定帧优先度,并根据帧优先度确定第一时间阈值和第二时间阈值。
该步骤为每一视频帧、音频帧设定帧优先度,为相对更重要的帧赋予较高的帧优先度。第一、第二时间阈值以秒为单位,用于确定何种情况下发送端重发数据包,以及何种情况下丢弃数据包。
步骤S12:发送端向接收端发送数据包,并开始计时。
发送端发送数据包并计时以确认RTT(Round-trip Time)时间是否在可允许的范围内,若RTT时间过大,发送端可重发或丢弃数据包,RTT时间即数据包从源端到目的端再返回的时间。发送端在发送数据包时,以时间戳记录数据包发送的时间,以便于计算网络的RTT时间。
步骤S13:若发送端在大于第一时间阈值小于第二时间阈值的时间段内未收到接收端对某一数据包的确认信息,发送端重发该数据包;若发送端在大于第二时间阈值的时间段内仍未收到接收端对该数据包的确认信息,发送端丢弃该数据包。
就某一数据包而言,若在大于第一时间阈值小于第二时间阈值的时间段内,发送端没有获得对该数据包的确认信息,即可能接收端没有收到该数据包或接收端对该数据包的确认信息在网络中丢失,这时都需要重发该数据包;而在大于第二时间阈值后发送端仍未获得确认信息,此时数据包至少已重发过一次,发送端将直接丢弃该数据包。
显然,第二时间阈值应大于第一时间阈值,通常第二时间阈值至少应大于第一时间阈值的两倍。若第一阈值的下限为一个RTT时间,则因数据包在被丢弃前至少已重发过一次,故第二时间阈值应大于两倍的RTT时间。
此外,从上述步骤S11中可知,具有相同帧优先度的数据包,应具有相同的第一时间阈值和相同的第二时间阈值。
根据本发明上述第一实施例,在步骤S13之后,回到步骤S12由发送端继续发送其余数据包。
更具体地,在上述步骤S11中,还可以设定一优先度阈值,当待封装发送的视频帧或音频帧的帧优先度大于该优先度阈值时,即判断该帧重要性较高,在封装成数据包后,可以称之为关键数据包。为其设定一个较大的第二时间阈值,即第三时间阈值,说明发送端在发送该关键数据包后可等待更长的时间以确认接收端收到,甚至对关键数据包进行多次重发,从而提高关键数据包的传输成功率;当帧优先度小于该优先度阈值时,即判断该帧重要性较低,从而为其数据包设定一个较小的第二时间阈值,即第四时间阈值,说明发送端在一相对较短的时间内未获得接收端的确认时即丢弃该帧,从而提高其他帧的传输效率。例如,在通信网络延时不大的情况下,可设定第三时间阈值为1至3秒,设定第四时间阈值为0.2至0.8秒。
本实施例根据帧优先度设定适当的第一时间阈值和第二时间阈值,从而形成重发或丢弃数据包的控制策略,使视频通信系统确保对较重要的帧的传输成功率,同时满足视频通信系统的数据传输效率要求及实时性要求。
进一步地,在步骤S12和步骤S13之间还包括如下步骤:若接收端收到第二数据包而未收到第一数据包,接收端向发送端请求重发该第一数据包。其中,第一数据包和第二数据包在发送的时间顺序上存在着先后关系,第二数据包表示发送端发送该第一数据包之后接着发送的另一数据包。该步骤在发送端重发数据包策略的基础上,进一步添加了接收端的请求重发数据包的策略,从而以多重方式判明是否重发数据包,其考虑得更加周到全面,适合用户的需求。
具体地说,接收端在收到数据包后,至少应每隔一段时间或当收到的数据包累计到一定数量时,向发送端确认已收到的数据包。数据包的包头中带有序列号,接收端收到一个数据包后,以一个接收确认包向发送端确认收到了在此之前的若干个数据包,该接收确认包即携带了该数据包的序列号。
当接收端收到的数据包的序列号不连续时,意味着有数据包被网络丢失,接收端即向发送端发送一个丢包确认包,请求发送端重发该被丢失的数据包,一个丢包确认包可以记录一个或多个被丢失数据包的序列号,从而可以请求发送端重发对应的一个或多个数据包。
优选情况下,在发送端和接收端之间建立数据传输链路以传输数据包,以提供更可靠的数据传输。
其中,数据传输链路可以为两条,分别用于传输音频包和视频包,也可以分别用于传输帧优先度较高的帧和帧优先度较低的帧。
如图2所示,本发明第二实施例由上述第一实施例改进而来,其提供的处理网络丢包的控制方法包括以下步骤:
步骤S20:发送端和接收端建立一数据传输链路。
步骤S21:发送端生成封装有视频帧或音频帧的数据包。
步骤S22:为每一视频帧、音频帧设定帧优先度,并根据帧优先度确定第一时间阈值和第二时间阈值。
步骤S23:发送端发送数据包,并开始计时。
步骤S24:若发送端在大于第一时间阈值小于第二时间阈值的时间段内未收到接收端对某一数据包的确认信息,发送端重发该数据包;若发送端在大于第二时间阈值的时间段内仍未收到接收端对该数据包的确认信息,发送端丢弃该数据包。
步骤S25:检测数据传输链路是否通畅;若通畅,回到步骤S23由发送端继续发送数据包。
步骤S26:若数据传输链路已断开,在发送端和接收端之间重建一数据传输链路。
接下来,即回到步骤S23,由发送端继续发送其余数据包。
在该实施例中,定期检测数据传输链路的通断状态,并在其断开时自动重建数据传输链路,以保持发送端和接收端之间持续可靠的通信。若数据传输链路已断开,后续发送的数据包都将会被丢失,本实施例作出的改进力图避免这种情况。
本实施例提供的重发或丢弃数据包的控制策略,事先在发送端和接收端之间建立数据传输链路,并定期检测传输链路的通断状态,进一步提高了关键数据包传输的可靠性。
本发明上述任一实施例中,设定音频帧的帧优先度大于视频帧的帧优先度,从而发送端会等待更长的时间以确认接收端收到音频帧,或者发送端还可以对音频帧进行多次重发,以使得音频帧的传输成功率高于视频帧。通常,视频通信系统中一端产生的音频帧相对于视频帧而言,其实时性对视频通信更加重要,其能为视频通信系统的相对端用户带来首要的信息,这在视频会议中体现得更加明显。
与此类似地,视频帧由关键帧、补偿帧等视频通信用户自定义的分类构成,关键帧对视频通信系统的相对端用户而言更加重要,它能使相对端用户掌握视频中的较关键的信息部分,并在相对端组成一个较连贯的视频画面。在本发明中,设定关键帧的帧优先度大于补偿帧的帧优先度,从而为关键帧设定相对更高的第二时间阈值,以保证关键帧的传输成功率;同时为补偿帧设定相对较小的第二时间阈值,以提高视频通信系统的效率。
关键帧可以定义为视频帧中相对前一帧图像变化较大的帧,补偿帧定义为相对前一帧图像变化较小的帧。又或者,相邻的两个关键帧之间具有一固定的时间间隔,即视频中每隔一段固定时间即会出现一个关键帧。在视频通信采用的视频为PAL制格式时,该固定时间可以为1/5秒,即1秒中具有5个关键帧和20个补偿帧。关键帧和补偿帧也可以由视频通信用户以其他的方式定义,用于标示出视频帧中相对重要的帧和相对次要的帧。
根据本发明进一步改进的实施例,数据传输链路还用于传送控制包,其可由发送端或接收端生成并发送,用于封装控制信令,控制信令用于控制数据包的发送和接收,以及控制数据传输链路的工作状态。
更具体地,控制包包括:请求连接包,用于由发送端向接收端或由接收端向发送端请求建立一视频数据传输链路和一音频数据传输链路;连接握手包,用于由接收了请求连接包的通信端向相对端确认建立数据传输链路;保活检测包,用于在发送端和接收端之间没有数据包传输时,由发送端或接收端检测数据传输链路是否畅通;接收确认包,用于由接收端向发送端确认收到数据包;丢包确认包,用于由接收端向发送端请求重发一数据包;以及传输终止包,用于关闭数据传输链路,以及终止视频通信。
图3示出了发送端与接收端通信过程中一种可能的数据包传送时序图,其中,请求连接包201、连接握手包202、丢包确认包203、接收确认包204、保活检测包205和传输终止包206为控制包。首先,接收端101向发送端102发送一个请求连接包201,发送端102向接收端101回送一个连接握手包202,从而建立了数据传输链路。接着,发送端102向接收端101发送一个数据包210,如果这个数据包210被网络丢失,接收端101向发送端102发送一个丢包确认包203,发送端102重发该数据包210,直到接收端101收到并向发送端102回送一个接收确认包204。在较长时间没有传送数据后,发送端102向接收端101发送一个保活检测包205,如果不再需要传送数据,接收端101向发送端102发送一个传输终止包206,结束通信过程。
如图4所示,本发明第三实施例提供一种重发控制装置,用于视频通信系统,该装置30包括:
优先度生成单元301、时间阈值生成单元302和重发控制单元303,其中,优先度生成单元301用于为视频帧和音频帧生成帧优先度信息;时间阈值生成单元302用于根据帧优先度信息生成第一时间阈值和第二时间阈值,第一、第二时间阈值的作用与上述第一实施例和第二实施中相同,用于确定何种情况下发送端重发数据包,以及何种情况下丢弃数据包;重发控制单元303用于控制发送端31重发数据包。
更具体地,当发送端31在大于所述第一时间阈值小于所述第二时间阈值的时间段内未收到接收端对某一数据包的确认信息时,重发控制单元303控制发送端31重发该数据包;当发送端31在大于第二时间阈值的时间段内仍未收到接收端对该数据包的确认信息时,重发控制单元303控制发送端31丢弃该数据包。
该重发控制装置30位于视频通信系统中发送端31一侧,其与发送端31连接后,即可为发送端31提供重发数据包的控制策略。
如图5所示,本发明第四实施例提供一种视频通信系统,其通过通信网络33在两个通信端之间进行视频通信,该系统包括一个发送端31、一个接收端32、两个本发明第三实施例提供的重发控制装置30,分别与发送端31和接收端32相连接;其中接收端32也可作为发送端,发送端31相应地作为接收端,从而进行反向的数据传输。通信网络33两侧的通信端均设置有上述重发控制装置30,与发送端31连接的重发控制装置30控制发送端31通过通信网络33向接收端32发送数据包;而在进行反向数据传输时,与接收端32连接的重发控制装置30控制作为发送端的接收端32向相对端31发送数据包。
优选情况下,视频通信系统中的通信网络33为EVDO网络,其为中国电信提供的3G网络,其应用范围广、易于普及。
以上所述的仅为本发明的优选实施例,所述实施例并非用以限制本发明的专利保护范围,因此凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。