去抖动、抗丢包处理方法及装置制造方法

文档序号:7988653阅读:342来源:国知局
去抖动、抗丢包处理方法及装置制造方法
【专利摘要】本发明实施例涉及一种去抖动、抗丢包处理方法及装置,包括:根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。
【专利说明】去抖动、抗丢包处理方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种去抖动、抗丢包处理方法及装置。
【背景技术】
[0002]对于实时的视频、音频通信,通常由编码端(即发送端)的编码器对采集的视频、音频信息进行编码,产生一系列的数据包,并根据实时传输协议(Real-time TransportProtocol, RTP)通过传输信道将编码端产生的数据包,传送到解码端;解码端(即接收端)的解码器对收到的数据包进行解码,恢复出原始的视频、音频。但是,在传输信道上传输实时码流时,由于信道本身存在的丢包或者误码,特别在没有服务质量(Quality ofService,QoS)保证的网络上,数据包可能会在传输过程中产生丢包,一旦解码端接收到有丢的数据包,解码器是无法正确恢复出原始的视频、音频,因而差错控制措施的采取是非常重要的。
[0003]针对上述问题,在申请日为2006年10月30日、
【公开日】为2008年05年07号、申请号为200610142736.8的专利“一种重传类型选择方法、相应的发送设备、接收设备及系统”中阐述一种减少丢包的方法。该方法通过信道质量信息设置门限值为两个,分别为第一门限值A和第二门限值B,且第一门限值A小于第二门限值B。所述发送设备根据判断结果确定重传类型包括:当信道质量信息小于第一门限值A时,将完全递增冗余机制(HybridAutomatic Repeat Request with Full Increase Redundancy, HARQ with Full IR)作为重传类型;当信道质量信息小于第二门限值B时,将部分递增冗余机制(Hybrid AutomaticRepeat Request with Partial Increase Redundancy, HARQ with Partial IR)作为重传类型;当信道质量信息在第一门限值A和第二门限值B之间时,选择其中一种作为重传类型。该方法存在的缺点为:一方面,由于是主要信道质量(FEC恢复数据的能力)而没有将网络状况参数作为判断参数,当信道质量很好而用户较多造成网络拥塞时,则该方法无法起作用;另一方面,该方法只是针对信道采取的处理策略,没有针对信源(编码器)采取处理策略。

【发明内容】

[0004]本发明实施例提供了一种去抖动、抗丢包处理方法及装置,解决了现有技术中丢包率和抖动率准确导致对JB调整不合适,以及只针对FEC的数据恢复能力进行能够抗丢包处理,使得网络状态不好引起丢包处理时上述处理方法不起作用的问题,实现了利用数据包权值计算丢包率和抖动率,以此为判断依据可以对JB进行更合适的调节,另外从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
[0005]在第一方面,本发明实施例提供了一种去抖动处理方法,包括:
[0006]根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;
[0007]根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;
[0008]根据所述丢包率计算丢包比值;
[0009]如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
[0010]在第二方面,本发明实施例提供了一种抗丢包处理方法,包括:
[0011]判断FEC恢复的数据包个数是否超过恢复阈值;
[0012]如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;
[0013]如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
[0014]在第三方面,本发明实施例提供了一种去抖动处理装置,包括:
[0015]设定单元,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值,将所述数据包权值发送至第一计算单元;
[0016]第一计算单元,用于接收所述设定单元发送的所述数据包权值,根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率,将所述丢包率和抖动率发送至第二计算单元;
[0017]第二计算单元,用于接收所述第一计算单元发送所述丢包率和抖动率,根据所述丢包率计算丢包比值,将所述丢包率、抖动率和丢包比值发送至处理单元;
[0018]处理单元,用于接收所述第二计算单元发送的所述丢包率、抖动率和丢包比值,如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
[0019]在第四方面,本发明实施例提供了 一种抗丢包处理装置,包括:
[0020]第一判断单元,用于判断FEC恢复的数据包个数是否超过恢复阈值,将判断结果发送至第二判断单元;
[0021]第二判断单元,用于接收所述第一判断单元发送的判断结果,如果所述判断结果为FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值,将判断结果发送至处理单元;
[0022]处理单元,用于接收所述第二判断单元发送的所述判断结果,如果所述判断结果为连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
[0023]本发明实施例中,通过根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。另外,通过判断FEC恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
【专利附图】

【附图说明】
[0024]图1为本发明实施例一提供的去抖动处理方法应用场景示意图;
[0025]图2为本发明实施例一提供的去抖动处理方法流程图;
[0026]图3为本发明实施例二提供的抗丢包处理方法应用场景示意图;
[0027]图4为本发明实施例二提供的抗丢包处理方法流程图
[0028]图5为本发明实施例三提供的去抖动处理装置示意图;
[0029]图6为本发明实施例三提供的另一种去抖动处理装置示意图;
[0030]图7为图6中装置的第二处理单元示意图;
[0031]图8为本发明实施例四提供的抗丢包处理装置示意图;
[0032]图9为本发明实施例四提供的另一种抗丢包处理装置示意图;
[0033]图10为图9中装置的第二处理单元示意图。
【具体实施方式】
[0034]为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。
[0035]本发明实施例针对现有技术的缺陷,提供了 一种处理方法和装置。通过,从而增加了网络转发设备接口的扩展性,并实现了负载均衡。
[0036]下述实施例描述的为一种去抖动的处理方法,图1为本发明实施例一提供的去抖动处理方法应用场景示意图。如图1所示,发送端将信号通过传输网络发送至接收端,接收端接收到数据后,将数据放到抖动缓冲器(Jitter Buffer, JB)中,在JB中,利用数据包权值计算丢包率和抖动率,根据丢包率和抖动率的大小关系对JB的容量进行调节,从而实现去抖动的目的,最后对数据进行解码并显示。去抖动处理方法如下所示:
[0037]图1为本发明实施例一提供的去抖动处理方法流程图。如图1所示,本发明实施例提供的方法包括:
[0038]S101,根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值。
[0039]具体地,首先对抖动包和丢包进行介绍:接收端通过传输网络接收到数据后,将数据通过一个缓冲器(buffer)来保存,假设这个buffer可分为三个区域:0?1.5秒(second, s)区、1.5s?3s区和3s?IOs区,即将第O秒到第1.5秒时间段接收到的数据放到O?1.5s区,将第1.6秒到第3秒时间段接收到的数据放到1.6s?3s区,将第3.1秒到第10秒时间段接收到的数据放到3.1s?IOs区,如果我们定义JB的最大深度为1.5s,即假设数据应该在X秒内传输到接收端,但实际却经过了 1.5s的延迟传输到了接收端,如果延迟时间超过1.5s,则接收端接收不到该数据,那么这1.5秒称为JB的最大深度,所以,如果延迟时间超过最大深度,则认为没有接收到该数据,即认为该数据包丢失。如果数据包传输出现了延迟,但是延迟时间小于最大深度,则可以判断该数据包为抖动包。需要注意的是,抖动只是引起丢包的一种情况,也有其它原因可以导致数据包的丢失。总之,通过上述方法可以统计出某一时间段内的抖动包个数和丢包个数。
[0040]现有技术中计算丢包率和抖动率的方法为:在一个时间段内,统计出丢包数和抖动数,丢包率=丢包数/数据包总数,抖动率=抖动包数/数据包总数。
[0041]本发明实施例提供的计算方法为:由于接收端对数据包进行解码时,对当前数据包解码时需要依赖其前面的数据包,即数据包之间是相互关联的,数据包距离当前时间越近,其对后面的数据包的解码的正确性影响越大。而在当前时间点计算丢包率和抖动率的目的是根据丢包情况和抖动情况对JB进行调节,以使之后的时间段内能减缓或消除抖动,因此,距离当前时间点越近的丢包和抖动包在计算丢包率和抖动率时的参考价值越大,介于上述原因,本发明实施例给每个数据包赋予一个数据包权值,数据包距离当前时间越近,则其权值越大。假设接收端应该接收到的数据包为K’…’ K’…’ Ακ-1;K为数据包总数,Ai为第i个数据包,则可以给每个数据包Ai赋予一个权值1/21。也可以根据实际需要采用其它权值。
[0042]S102,根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率。
[0043]具体地,计算公式如下所示:
[0044]根据公式Ρζ^/^+ΑΑ+Α;^2+...+Ai/21+...+A^1/2K O/K 计算所述丢包率,其中,P为丢包率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为丢包时,Ai = 1,否则Ai = 0,0≤i≤K-l,i越小,则Ai距离当前时间越近,即距离当前时间由近至远的数据包为A。,...,Ai,...,Aim。
[0045]根据公式J= (A0/2°+A1/2+A2/22+...+Ai/2i+...+Aih/^1) /K 计算所述抖动率,其中,J为抖动率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为抖动包时,Ai = I,否则Ai = 0,0≤i≤K-1, i越小,则Ai距离当前时间越近。
[0046]S103,根据所述丢包率计算丢包比值。
[0047]具体地,获得丢包率和抖动率后,可以对丢包率大于抖动率,和丢包率小于抖动率这两种情况分别采用不同的调整策略。
[0048]但是,SlOl中判断丢包的方法为:若一个数据包的抖动时间大于最大深度,则认为该数据包丢失,但是若经过若干时间后,接收端接收到了该数据包,则说明该数据包没有丢失,因此,该数据包不是丢包,所以,通过SlOl中的方法统计出的丢包个数是多于实际丢包个数的,是不准确的。而抖动包的统计是准确的。介于上述原因,在根据丢包率和抖动率对JB进行调节时,需要将丢包率除以n (n ≥ 1)获得一个丢包比值,再将该丢包比值与抖动率进行比较。
[0049]S104,如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
[0050]具体地,如果丢包比值小于所述抖动率,则说明抖动相对于丢包更严重,因此,需要调节JB减缓或消除抖动,即需要增大JB的容量,这样可以接收到更多因为抖动而导致的丢包。
[0051]另外,如果丢包比值大于所述抖动率,则说明丢包相对于抖动更严重,由前面可知,丢包可能是由于抖动引起的,也可能是由于其他原因引起的,因此,如果丢包比值大于抖动率,说明这里的丢包主要是由于其他原因引起的。由于丢包是其他原因引起,所以JB容量增大不会减少丢包;而且JB容量越大,说明其缓存的数据包越多,这样会导致接收端的数据播放显示存在较大的延迟,因此,为了减小播放显示的延迟,需要减小JB容量。
[0052]如果丢包率和抖动率都为0,则通过上述两种情况可以推知,这时不需要对JB容量进行调整。
[0053]上述四个步骤描述的为去抖动的处理方法,可选地,去抖动之后还可以进行抗丢包处理。处理过程如下:
[0054]首先,判断前向纠错编码(Forward Error Correction, FEC)恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从中可以看出,该方法不仅可以根据FEC恢复数据的能力对丢包情况进行处理,还可以根据网络状态对丢包进行处理,因此,可以更准确的判断引起丢包的原因,从而选择合适的处理方法。
[0055]上述实施例描述的为,根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。
[0056]下述实施例描述的为抗丢包的处理方法。图3为本发明实施例二提供的抗丢包处理方法应用场景示意图。如图3所示,发送端将信号通过传输网络发送至接收端,接收端接收到数据后,首先将数据进行抗丢包处理,再对数据进行解码并显示。抗丢包处理方法如下所示:
[0057]图4为本发明实施例二提供的抗丢包处理方法流程图。如图4所示,本发明实施例提供的方法包括:
[0058]S401,判断FEC恢复的数据包个数是否超过恢复阈值。
[0059]具体地,可以预先设定一个比值,该比值表示需要恢复出的数据包个数占总的丢包数的百分比,该比值与总的丢包数的乘积即为恢复阈值,并判断FEC恢复的数据包个数是否超过恢复阈值。
[0060]S402,如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值。
[0061]具体地,如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,说明FEC的恢复能力不够,没有达到预先设定的恢复目标,因此,需要采取其它方法进行处理,本发明实施例中采用的方法为:继续判断连续丢包数是否超过连续丢包阈值,这里的连续丢包阈值为预先设定的,若连续丢包数超过该连续丢包阈值,则说明网络状态很差,或者其他原因导致数据包传输效果较差,丢失数据太多,由于接收端对数据进行解码时,后一个数据需要依赖前一个数据,因此,如果接收到的数据丢失较多,则解码时,若前一个数据丢失或出错,必定会导致后面的数据都出错,因此,这时较好的解决方法为控制发送端重传I帧,即重传关键帧(I帧/关键帧与其之前的数据没有关联)。另外,发送端发送数据时都会设定一个时间段,每经过一个该时间段,发送端都会重传I帧,以此来减小数据出错率,因此,如果连续丢包数超过连续丢包阈值,也可以缩短I帧间隔也可以减小数据出错率。
[0062]另外,如果所述FEC恢复的所述数据包个数超过所述恢复阈值,说明FEC有足够的恢复能力,因此,对于后面的丢包可以继续采用FEC进行恢复。
[0063]S403,如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
[0064]具体地,如果所述连续丢包数不超过所述连续丢包阈值,则并不能说明网络很差,因此,可以根据网络往返时延(Round-Trip Time,RTT)、接收端码率和抖动时间来判断网络状态,根据网络状态的好坏分情况处理。
[0065]进一步地,如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔;如果网络不阻塞,则重传丢失的数据包。
[0066]可选地,在S401之前还可以包括:根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
[0067]从中可以看出,在进行抗丢包处理之前还可以进行去抖动处理,并且由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节,以减缓或消除抖动。
[0068]可选地,上述步骤之后还可以包括:如果丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码模式,所述第一编码模式对当前数据编码时不需要参考之前的数据,所述第一编码模式可以为大P小P模式,也可唯为其它符合要求的模式。这里的丢包率阈值是预先设定的,如果丢包率超过该阈值,说明丢失数据包太多,而接收端解码时,后一个数据需要依赖前一个数据,如果丢包太多,则一个数据丢失或出错,后面的数据都会出错,因此,为降低解码时的错率,可以控制发送端切换编码模式,将编码模式切换为对数据编码时不需要依赖其之前的数据的编码模式。
[0069]本发明实施例中,判断FEC恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
[0070]相应地,本发明是实施例提供了与去抖动处理方法对应的去抖动装置。图5为本发明实施例三提供的去抖动处理装置示意图。如图5所示,本发明实施例提供的装置包括:设定单元501、第一计算单元502、第二计算单元503和处理单元504。
[0071]设定单元501,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值,将所述丢包权值和抖动权值发送至第一计算单元。[0072]第一计算单元502,用于接收所述设定单元501发送的所述丢包权值和抖动权值,,根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率,将所述丢包率和抖动率发送至第二计算单元503。
[0073]第二计算单元503,用于接收所述第一计算单元502发送的所述丢包率和抖动率,根据所述丢包率计算丢包比值,将所述丢包率、抖动率和丢包比值发送至处理单元504。
[0074]处理单元504,用于接收所述第二计算单元503发送的所述丢包率、抖动率和丢包比值,如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
[0075]具体地,所述第一计算单元502具体用于:
[0076]根据公式Ρζ^/^+ΑΑ+Α;^2+...+Ai/21+...+A^1/2K O/K 计算所述丢包率,其中,P为丢包率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为丢包时,Ai=I,否则Ai=O, O≤i≤K-1, i越小,则Ai距离当前时间越近;
[0077]根据公式^(Αυ/^+ΑΑ+Α;^2+...+Ai/21+...+A^1/2K O/K 计算所述抖动率,其中,J为抖动率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为抖动包时,Ai=I,否则Ai=O, O≤i ^ K-1, i越小,则Ai距离当前时间越近。具体地,第二计算单元503通过计算所述丢包率与η的比值,获得所述丢包比值,η > I。
[0078]处理单元504还用于,如果所述丢包比值大于所述抖动率,则减小JB的容量。 [0079]可选地,本发明实施还提供了另一种去抖动处理装置。图6为本发明实施例三提供的另一种去抖动处理装置示意图。如图6所示,本发明实施例提供的装置包括:设定单元601、第一计算单元602、第二计算单元603、处理单元604和第二处理单元605。
[0080]其中,设定单元601、第一计算单元602、第二计算单元603和处理单元604与上述装置中的设定单元501、第一计算单元502、第二计算单元503和处理单元504单元一样,因此,各个单元的功能在此不复赘述。
[0081]图7为图6中装置的第二处理单元示意图。如图7所示,第二处理单元包括:第一判断子单元701、第二判断子单元702和处理子单元703。
[0082]第一判断子单元701,用于判断FEC恢复的数据包个数是否超过恢复阈值。
[0083]第二判断子单元702,用于如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值。
[0084]处理子单元703,用于如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
[0085]从中可以看出,第二处理单元不仅可以根据FEC恢复数据的能力对丢包情况进行处理,还可以根据网络状态对丢包进行处理,因此,可以更准确的判断引起丢包的原因,从而选择合适的处理方法。
[0086]本发明实施例提供的装置中植入了本发明实施例一提供的方法,因此,上述装置中各个单元的具体工作过程在此不复赘述。
[0087]本发明实施例中,根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。
[0088]下述实施例描述的为一种抗丢包处理装置。图8为本发明实施例四提供的抗丢包处理装置示意图。如图8所示,本发明实施例提供的装置包括:第一判断单元801、第二判断单元802和处理单元803。
[0089]第一判断单元801,用于判断FEC恢复的数据包个数是否超过恢复阈值,将判断结果发送至第二判断单元802 ;
[0090]第二判断单元802,用于接收所述第一判断单元801发送的判断结果,如果所述判断结果为FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值,将判断结果发送至处理单元803;
[0091]处理单元803,用于接收所述第二判断单元802发送的所述判断结果,如果所述判断结果为连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
[0092]可选地,所述第一判断单元801还用于,如果FEC恢复的所述数据包个数超过所述恢复阈值,则对丢失的数据包进行FEC恢复。
[0093]所述第二判断单元802还用于,如果所述连续丢包数超过所述连续丢包阈值,则控制发送端重传I帧,并缩短I帧间隔;如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔;如果网络不阻塞,则重传丢失的数据包。
[0094]本发明实施还提供了另一种抗丢包处理装置。图9为本发明实施例四提供的另一种抗丢包处理装置示意图。如图9所示,本发明实施例提供的装置包括:第一判断单元901、第二判断单元902、处理单元903和第二处理单元904。
[0095]其中,第一判断单元901、第二判断单元902和处理单元903与上述装置中的第一判断单元801、第二判断单元802和处理单元803单元相同,因此,各个单元的功能在此不复赘述。
[0096]图10为图9中装置的第二处理单元示意图。如图10所示,第二处理单元具体包括:设定子单元1001、第一计算子单元1002、第二计算子单元1003、处理子单元1004。
[0097]设定子单元1001,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值。
[0098]第一计算子单元1002,用于根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率。
[0099]第二计算子单元1003,用于根据所述丢包率计算丢包比值。
[0100]处理子单元1004,用于如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
[0101]从中可以看出,第二处理单元在进行抗丢包处理之前还可以进行去抖动处理,并且由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节,以减缓或消除抖动。
[0102]可选地,所述第二处理单元还包括:
[0103]切换子单元,用于如果所述丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码模式,所述第一编码模式对当前数据编码时不需要参考之前的数据。
[0104]本发明实施例中,判断FEC恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
[0105]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0106]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0107]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种去抖动处理方法,其特征在于,所述方法包括: 根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值; 根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率; 根据所述丢包率计算丢包比值; 如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
2.根据权利要求1所述的去抖动处理方法,其特征在于,所述根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率具体为: 根据公式 P=(A0/2°+A1/2+A2/22+...+Ai/2i+...+A^/2^1)/K 计算所述丢包率,其中,P 为丢包率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为丢包时,Ai=I,否则Ai=O, O≤i≤K-1, i越小,则Ai距离当前时间越近;
根据公式 J= (A0/2°+A1/2+A2/22+...+Ai/2i+...+Ακ^/2^1) /K 计算所述抖动率,其中,J 为抖动率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为抖动包时,Ai=I,否则Ai=O, O ^ i ^ K-1, i越小,则Ai距离当前时间越近。
3.根据权利要求1所述的去抖动处理方法,其特征在于,所述丢包比值具体为所述丢包率与η的比值,η≥1。
4.根据权利要求1所述的去抖动处理方法,其特征在于,所述根据所述丢包率计算丢包比值之后还包括: 如果所述丢包比值大于所述抖动率,则减小JB的容量。
5.根据权利要求1所述的去抖动处理方法,其特征在于,所述如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动之后还包括: 判断前向纠错编码FEC恢复的数据包个数是否超过恢复阈值; 如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值; 如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
6.一种抗丢包处理方法,其特征在于,所述方法包括: 判断FEC恢复的数据包个数是否超过恢复阈值; 如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值; 如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
7.根据权利要求6所述的抗丢包处理方法,其特征在于,所述判断FEC恢复的数据包个数是否超过恢复阈值之后还包括: 如果FEC恢复的所述数据包个数超过所述恢复阈值,则对丢失的数据包进行FEC恢复。
8.根据权利要求6所述的抗丢包处理方法,其特征在于,所述如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值之后还包括:如果所述连续丢包数超过所述连续丢包阈值,则控制发送端重传I帧,并缩短I帧间隔。
9.根据权利要求6所述的抗丢包处理方法,其特征在于,所述根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复具体包括: 如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔; 如果网络不阻塞,则重传丢失的数据包。
10.根据权利要求6所述的抗丢包处理方法,其特征在于,所述判断FEC恢复的数据包个数是否超过恢复阈值之前还包括: 根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值; 根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率; 根据所述丢包率计算丢包比值; 如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
11.根据权利要求10所述的抗丢包处理方法,其特征在于,所述如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动之后还包括: 如果所述丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码模式,所述第一编码模式对当前数据编码时不需要参考之前的数据。
12.—种去抖动处理装置,其特征在于,所述装置包括: 设定单元,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值,将所述数据包权值发送至第一计算单元; 第一计算单元,用于接收所述设定单元发送的所述数据包权值,根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率,将所述丢包率和抖动率发送至第二计算单元; 第二计算单元,用于接收所述第一计算单元发送所述丢包率和抖动率,根据所述丢包率计算丢包比值,将所述丢包率、抖动率和丢包比值发送至处理单元; 处理单元,用于接收所述第二计算单元发送的所述丢包率、抖动率和丢包比值,如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
13.根据权利要求11所述的去抖动处理装置,其特征在于,所述第一计算单元具体用于, 根据公式 P=(A0/2°+A1/2+A2/22+...+Ai/2i+...+A^/2^1)/K 计算所述丢包率,其中,P 为丢包率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为丢包时,Ai=I,否则Ai=O, O≤i≤K-1, i越小,则Ai距离当前时间越近;
根据公式 J= (A0/2°+A1/2+A2/22+...+Ai/2i+...+Ακ^/2^1) /K 计算所述抖动率,其中,J 为抖动率,K为数据包总数,Ai为第i个数据包,1/21为Ai的数据包权值,当Ai为抖动包时,Ai=I,否则Ai=O, O≤ i ≤ K-1, i越小,则Ai距离当前时间越近。
14.根据权利要求11所述的去抖动处理装置,其特征在于,所述第二计算单元通过计算所述丢包率与η的比值,获得所述丢包比值,n≥1。
15.根据权利要求11所述的去抖动处理装置,其特征在于,所述处理单元还用于, 如果所述丢包比值大于所述抖动率,则减小JB的容量。
16.根据权利要求11所述的去抖动处理装置,其特征在于,所述装置还包括第二处理单元,所述第二处理单元具体包括: 第一判断子单元,用于判断FEC恢复的数据包个数是否超过恢复阈值; 第二判断子单元,用于如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值; 处理子单元,用于如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
17.—种抗丢包处理装置,其特征在于,所述装置包括: 第一判断单元,用于判断FEC恢复的数据包个数是否超过恢复阈值,将判断结果发送至第二判断单元; 第二判断单元,用于接收所述第一判断单元发送的判断结果,如果所述判断结果为FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值,将判断结果发送至处理单元; 处理单元,用于接收所述第二判断单元发送的所述判断结果,如果所述判断结果为连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
18.根据权利要求17所述的抗丢包处理装置,其特征在于,所述第一判断单元还用于, 如果FEC恢复的所述数据包个数超过所述恢复阈值,则对丢失的数据包进行FEC恢复。
19.根据权利要求17所述的抗丢包处理装置,其特征在于,所述第二判断单元还用于, 如果所述连续丢包数超过所述连续丢包阈值,则控制发送端重传I帧,并缩短I帧间隔。
20.根据权利要求17所述的抗丢包处理装置,其特征在于,所述处理单元具体用于, 如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔; 如果网络不阻塞,则重传丢失的数据包。
21.根据权利要求17所述的抗丢包处理装置,特征在于,所述装置还包括第二处理单元,所述第二处理单元具体包括: 设定单子元,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值; 第一计算子单元,用于根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率; 第二计算子单元,用于根据所述丢包率计算丢包比值; 处理子单元,用于如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
22.根据权利要求21所述的抗丢包处理装置,特征在于,所述第二处理单元还包括:切换子单元,用于如果所述丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码 模式,所述第一编码模式对当前数据编码时不需要参考之前的数据。
【文档编号】H04L1/18GK103916208SQ201210591563
【公开日】2014年7月9日 申请日期:2012年12月31日 优先权日:2012年12月31日
【发明者】韩庆瑞 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1