CN103916208B - 去抖动、抗丢包处理方法及装置 - Google Patents
去抖动、抗丢包处理方法及装置 Download PDFInfo
- Publication number
- CN103916208B CN103916208B CN201210591563.3A CN201210591563A CN103916208B CN 103916208 B CN103916208 B CN 103916208B CN 201210591563 A CN201210591563 A CN 201210591563A CN 103916208 B CN103916208 B CN 103916208B
- Authority
- CN
- China
- Prior art keywords
- packet
- loss
- fec
- threshold value
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 61
- 238000011084 recovery Methods 0.000 claims description 48
- 238000010586 diagram Methods 0.000 description 10
- 238000003672 processing method Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 235000013399 edible fruits Nutrition 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 206010044565 Tremor Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000007420 reactivation Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及一种去抖动、抗丢包处理方法及装置,包括:根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种去抖动、抗丢包处理方法及装置。
背景技术
对于实时的视频、音频通信,通常由编码端(即发送端)的编码器对采集的视频、音频信息进行编码,产生一系列的数据包,并根据实时传输协议(Real-time TransportProtocol,RTP)通过传输信道将编码端产生的数据包,传送到解码端;解码端(即接收端)的解码器对收到的数据包进行解码,恢复出原始的视频、音频。但是,在传输信道上传输实时码流时,由于信道本身存在的丢包或者误码,特别在没有服务质量(Quality of Service,QoS)保证的网络上,数据包可能会在传输过程中产生丢包,一旦解码端接收到有丢的数据包,解码器是无法正确恢复出原始的视频、音频,因而差错控制措施的采取是非常重要的。
针对上述问题,在申请日为2006年10月30日、公开日为2008年05年07号、申请号为200610142736.8的专利“一种重传类型选择方法、相应的发送设备、接收设备及系统”中阐述一种减少丢包的方法。该方法通过信道质量信息设置门限值为两个,分别为第一门限值A和第二门限值B,且第一门限值A小于第二门限值B。所述发送设备根据判断结果确定重传类型包括:当信道质量信息小于第一门限值A时,将完全递增冗余机制(Hybrid AutomaticRepeat Request with Full Increase Redundancy,HARQ with Full IR)作为重传类型;当信道质量信息小于第二门限值B时,将部分递增冗余机制(Hybrid Automatic RepeatRequest with Partial Increase Redundancy,HARQ with Partial IR)作为重传类型;当信道质量信息在第一门限值A和第二门限值B之间时,选择其中一种作为重传类型。该方法存在的缺点为:一方面,由于是主要信道质量(FEC恢复数据的能力)而没有将网络状况参数作为判断参数,当信道质量很好而用户较多造成网络拥塞时,则该方法无法起作用;另一方面,该方法只是针对信道采取的处理策略,没有针对信源(编码器)采取处理策略。
发明内容
本发明实施例提供了一种去抖动、抗丢包处理方法及装置,解决了现有技术中丢包率和抖动率准确导致对JB调整不合适,以及只针对FEC的数据恢复能力进行能够抗丢包处理,使得网络状态不好引起丢包处理时上述处理方法不起作用的问题,实现了利用数据包权值计算丢包率和抖动率,以此为判断依据可以对JB进行更合适的调节,另外从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
在第一方面,本发明实施例提供了一种去抖动处理方法,包括:
根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;
根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;
根据所述丢包率计算丢包比值;
如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
在第二方面,本发明实施例提供了一种抗丢包处理方法,包括:
判断FEC恢复的数据包个数是否超过恢复阈值;
如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;
如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
在第三方面,本发明实施例提供了一种去抖动处理装置,包括:
设定单元,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值,将所述数据包权值发送至第一计算单元;
第一计算单元,用于接收所述设定单元发送的所述数据包权值,根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率,将所述丢包率和抖动率发送至第二计算单元;
第二计算单元,用于接收所述第一计算单元发送所述丢包率和抖动率,根据所述丢包率计算丢包比值,将所述丢包率、抖动率和丢包比值发送至处理单元;
处理单元,用于接收所述第二计算单元发送的所述丢包率、抖动率和丢包比值,如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
在第四方面,本发明实施例提供了一种抗丢包处理装置,包括:
第一判断单元,用于判断FEC恢复的数据包个数是否超过恢复阈值,将判断结果发送至第二判断单元;
第二判断单元,用于接收所述第一判断单元发送的判断结果,如果所述判断结果为FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值,将判断结果发送至处理单元;
处理单元,用于接收所述第二判断单元发送的所述判断结果,如果所述判断结果为连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
本发明实施例中,通过根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。另外,通过判断FEC恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
附图说明
图1为本发明实施例一提供的去抖动处理方法应用场景示意图;
图2为本发明实施例一提供的去抖动处理方法流程图;
图3为本发明实施例二提供的抗丢包处理方法应用场景示意图;
图4为本发明实施例二提供的抗丢包处理方法流程图
图5为本发明实施例三提供的去抖动处理装置示意图;
图6为本发明实施例三提供的另一种去抖动处理装置示意图;
图7为图6中装置的第二处理单元示意图;
图8为本发明实施例四提供的抗丢包处理装置示意图;
图9为本发明实施例四提供的另一种抗丢包处理装置示意图;
图10为图9中装置的第二处理单元示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。
本发明实施例针对现有技术的缺陷,提供了一种处理方法和装置。通过,从而增加了网络转发设备接口的扩展性,并实现了负载均衡。
下述实施例描述的为一种去抖动的处理方法,图1为本发明实施例一提供的去抖动处理方法应用场景示意图。如图1所示,发送端将信号通过传输网络发送至接收端,接收端接收到数据后,将数据放到抖动缓冲器(Jitter Buffer,JB)中,在JB中,利用数据包权值计算丢包率和抖动率,根据丢包率和抖动率的大小关系对JB的容量进行调节,从而实现去抖动的目的,最后对数据进行解码并显示。去抖动处理方法如下所示:
图1为本发明实施例一提供的去抖动处理方法流程图。如图1所示,本发明实施例提供的方法包括:
S101,根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值。
具体地,首先对抖动包和丢包进行介绍:接收端通过传输网络接收到数据后,将数据通过一个缓冲器(buffer)来保存,假设这个buffer可分为三个区域:0~1.5秒(second,s)区、1.5s~3s区和3s~10s区,即将第0秒到第1.5秒时间段接收到的数据放到0~1.5s区,将第1.6秒到第3秒时间段接收到的数据放到1.6s~3s区,将第3.1秒到第10秒时间段接收到的数据放到3.1s~10s区,如果我们定义JB的最大深度为1.5s,即假设数据应该在x秒内传输到接收端,但实际却经过了1.5s的延迟传输到了接收端,如果延迟时间超过1.5s,则接收端接收不到该数据,那么这1.5秒称为JB的最大深度,所以,如果延迟时间超过最大深度,则认为没有接收到该数据,即认为该数据包丢失。如果数据包传输出现了延迟,但是延迟时间小于最大深度,则可以判断该数据包为抖动包。需要注意的是,抖动只是引起丢包的一种情况,也有其它原因可以导致数据包的丢失。总之,通过上述方法可以统计出某一时间段内的抖动包个数和丢包个数。
现有技术中计算丢包率和抖动率的方法为:在一个时间段内,统计出丢包数和抖动数,丢包率=丢包数/数据包总数,抖动率=抖动包数/数据包总数。
本发明实施例提供的计算方法为:由于接收端对数据包进行解码时,对当前数据包解码时需要依赖其前面的数据包,即数据包之间是相互关联的,数据包距离当前时间越近,其对后面的数据包的解码的正确性影响越大。而在当前时间点计算丢包率和抖动率的目的是根据丢包情况和抖动情况对JB进行调节,以使之后的时间段内能减缓或消除抖动,因此,距离当前时间点越近的丢包和抖动包在计算丢包率和抖动率时的参考价值越大,介于上述原因,本发明实施例给每个数据包赋予一个数据包权值,数据包距离当前时间越近,则其权值越大。假设接收端应该接收到的数据包为A0,...,Ai,...,AK-1,K为数据包总数,Ai为第i个数据包,则可以给每个数据包Ai赋予一个权值1/2i。也可以根据实际需要采用其它权值。
S102,根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率。
具体地,计算公式如下所示:
根据公式P=(A0/20+A1/2+A2/22+...+Ai/2i+...+AK-1/2K-1)/K计算所述丢包率,其中,P为丢包率,K为数据包总数,Ai为第i个数据包,1/2i为Ai的数据包权值,当Ai为丢包时,Ai=1,否则Ai=0,0≤i≤K-1,i越小,则Ai距离当前时间越近,即距离当前时间由近至远的数据包为A0,...,Ai,...,AK-1。
根据公式J=(A0/20+A1/2+A2/22+...+Ai/2i+...+AK-1/2K-1)/K计算所述抖动率,其中,J为抖动率,K为数据包总数,Ai为第i个数据包,1/2i为Ai的数据包权值,当Ai为抖动包时,Ai=1,否则Ai=0,0≤i≤K-1,i越小,则Ai距离当前时间越近。
S103,根据所述丢包率计算丢包比值。
具体地,获得丢包率和抖动率后,可以对丢包率大于抖动率,和丢包率小于抖动率这两种情况分别采用不同的调整策略。
但是,S101中判断丢包的方法为:若一个数据包的抖动时间大于最大深度,则认为该数据包丢失,但是若经过若干时间后,接收端接收到了该数据包,则说明该数据包没有丢失,因此,该数据包不是丢包,所以,通过S101中的方法统计出的丢包个数是多于实际丢包个数的,是不准确的。而抖动包的统计是准确的。介于上述原因,在根据丢包率和抖动率对JB进行调节时,需要将丢包率除以n(n≥1)获得一个丢包比值,再将该丢包比值与抖动率进行比较。
S104,如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
具体地,如果丢包比值小于所述抖动率,则说明抖动相对于丢包更严重,因此,需要调节JB减缓或消除抖动,即需要增大JB的容量,这样可以接收到更多因为抖动而导致的丢包。
另外,如果丢包比值大于所述抖动率,则说明丢包相对于抖动更严重,由前面可知,丢包可能是由于抖动引起的,也可能是由于其他原因引起的,因此,如果丢包比值大于抖动率,说明这里的丢包主要是由于其他原因引起的。由于丢包是其他原因引起,所以JB容量增大不会减少丢包;而且JB容量越大,说明其缓存的数据包越多,这样会导致接收端的数据播放显示存在较大的延迟,因此,为了减小播放显示的延迟,需要减小JB容量。
如果丢包率和抖动率都为0,则通过上述两种情况可以推知,这时不需要对JB容量进行调整。
上述四个步骤描述的为去抖动的处理方法,可选地,去抖动之后还可以进行抗丢包处理。处理过程如下:
首先,判断前向纠错编码(Forward Error Correction,FEC)恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从中可以看出,该方法不仅可以根据FEC恢复数据的能力对丢包情况进行处理,还可以根据网络状态对丢包进行处理,因此,可以更准确的判断引起丢包的原因,从而选择合适的处理方法。
上述实施例描述的为,根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。
下述实施例描述的为抗丢包的处理方法。图3为本发明实施例二提供的抗丢包处理方法应用场景示意图。如图3所示,发送端将信号通过传输网络发送至接收端,接收端接收到数据后,首先将数据进行抗丢包处理,再对数据进行解码并显示。抗丢包处理方法如下所示:
图4为本发明实施例二提供的抗丢包处理方法流程图。如图4所示,本发明实施例提供的方法包括:
S401,判断FEC恢复的数据包个数是否超过恢复阈值。
具体地,可以预先设定一个比值,该比值表示需要恢复出的数据包个数占总的丢包数的百分比,该比值与总的丢包数的乘积即为恢复阈值,并判断FEC恢复的数据包个数是否超过恢复阈值。
S402,如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值。
具体地,如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,说明FEC的恢复能力不够,没有达到预先设定的恢复目标,因此,需要采取其它方法进行处理,本发明实施例中采用的方法为:继续判断连续丢包数是否超过连续丢包阈值,这里的连续丢包阈值为预先设定的,若连续丢包数超过该连续丢包阈值,则说明网络状态很差,或者其他原因导致数据包传输效果较差,丢失数据太多,由于接收端对数据进行解码时,后一个数据需要依赖前一个数据,因此,如果接收到的数据丢失较多,则解码时,若前一个数据丢失或出错,必定会导致后面的数据都出错,因此,这时较好的解决方法为控制发送端重传I帧,即重传关键帧(I帧/关键帧与其之前的数据没有关联)。另外,发送端发送数据时都会设定一个时间段,每经过一个该时间段,发送端都会重传I帧,以此来减小数据出错率,因此,如果连续丢包数超过连续丢包阈值,也可以缩短I帧间隔也可以减小数据出错率。
另外,如果所述FEC恢复的所述数据包个数超过所述恢复阈值,说明FEC有足够的恢复能力,因此,对于后面的丢包可以继续采用FEC进行恢复。
S403,如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
具体地,如果所述连续丢包数不超过所述连续丢包阈值,则并不能说明网络很差,因此,可以根据网络往返时延(Round-Trip Time,RTT)、接收端码率和抖动时间来判断网络状态,根据网络状态的好坏分情况处理。
进一步地,如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔;如果网络不阻塞,则重传丢失的数据包。
可选地,在S401之前还可以包括:根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
从中可以看出,在进行抗丢包处理之前还可以进行去抖动处理,并且由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节,以减缓或消除抖动。
可选地,上述步骤之后还可以包括:如果丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码模式,所述第一编码模式对当前数据编码时不需要参考之前的数据,所述第一编码模式可以为大P小P模式,也可唯为其它符合要求的模式。这里的丢包率阈值是预先设定的,如果丢包率超过该阈值,说明丢失数据包太多,而接收端解码时,后一个数据需要依赖前一个数据,如果丢包太多,则一个数据丢失或出错,后面的数据都会出错,因此,为降低解码时的错率,可以控制发送端切换编码模式,将编码模式切换为对数据编码时不需要依赖其之前的数据的编码模式。
本发明实施例中,判断FEC恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
相应地,本发明是实施例提供了与去抖动处理方法对应的去抖动装置。图5为本发明实施例三提供的去抖动处理装置示意图。如图5所示,本发明实施例提供的装置包括:设定单元501、第一计算单元502、第二计算单元503和处理单元504。
设定单元501,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值,将所述丢包权值和抖动权值发送至第一计算单元。
第一计算单元502,用于接收所述设定单元501发送的所述丢包权值和抖动权值,,根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率,将所述丢包率和抖动率发送至第二计算单元503。
第二计算单元503,用于接收所述第一计算单元502发送的所述丢包率和抖动率,根据所述丢包率计算丢包比值,将所述丢包率、抖动率和丢包比值发送至处理单元504。
处理单元504,用于接收所述第二计算单元503发送的所述丢包率、抖动率和丢包比值,如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
具体地,所述第一计算单元502具体用于:
根据公式P=(A0/20+A1/2+A2/22+...+Ai/2i+...+AK-1/2K-1)/K计算所述丢包率,其中,P为丢包率,K为数据包总数,Ai为第i个数据包,1/2i为Ai的数据包权值,当Ai为丢包时,Ai=1,否则Ai=0,0≤i≤K-1,i越小,则Ai距离当前时间越近;
根据公式J=(A0/20+A1/2+A2/22+...+Ai/2i+...+AK-1/2K-1)/K计算所述抖动率,其中,J为抖动率,K为数据包总数,Ai为第i个数据包,1/2i为Ai的数据包权值,当Ai为抖动包时,Ai=1,否则Ai=0,0≤i≤K-1,i越小,则Ai距离当前时间越近。具体地,第二计算单元503通过计算所述丢包率与n的比值,获得所述丢包比值,n≥1。
处理单元504还用于,如果所述丢包比值大于所述抖动率,则减小JB的容量。
可选地,本发明实施还提供了另一种去抖动处理装置。图6为本发明实施例三提供的另一种去抖动处理装置示意图。如图6所示,本发明实施例提供的装置包括:设定单元601、第一计算单元602、第二计算单元603、处理单元604和第二处理单元605。
其中,设定单元601、第一计算单元602、第二计算单元603和处理单元604与上述装置中的设定单元501、第一计算单元502、第二计算单元503和处理单元504单元一样,因此,各个单元的功能在此不复赘述。
图7为图6中装置的第二处理单元示意图。如图7所示,第二处理单元包括:第一判断子单元701、第二判断子单元702和处理子单元703。
第一判断子单元701,用于判断FEC恢复的数据包个数是否超过恢复阈值。
第二判断子单元702,用于如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值。
处理子单元703,用于如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
从中可以看出,第二处理单元不仅可以根据FEC恢复数据的能力对丢包情况进行处理,还可以根据网络状态对丢包进行处理,因此,可以更准确的判断引起丢包的原因,从而选择合适的处理方法。
本发明实施例提供的装置中植入了本发明实施例一提供的方法,因此,上述装置中各个单元的具体工作过程在此不复赘述。
本发明实施例中,根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;根据所述丢包率计算丢包比值;如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节。
下述实施例描述的为一种抗丢包处理装置。图8为本发明实施例四提供的抗丢包处理装置示意图。如图8所示,本发明实施例提供的装置包括:第一判断单元801、第二判断单元802和处理单元803。
第一判断单元801,用于判断FEC恢复的数据包个数是否超过恢复阈值,将判断结果发送至第二判断单元802;
第二判断单元802,用于接收所述第一判断单元801发送的判断结果,如果所述判断结果为FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值,将判断结果发送至处理单元803;
处理单元803,用于接收所述第二判断单元802发送的所述判断结果,如果所述判断结果为连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
可选地,所述第一判断单元801还用于,如果FEC恢复的所述数据包个数超过所述恢复阈值,则对丢失的数据包进行FEC恢复。
所述第二判断单元802还用于,如果所述连续丢包数超过所述连续丢包阈值,则控制发送端重传I帧,并缩短I帧间隔;如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔;如果网络不阻塞,则重传丢失的数据包。
本发明实施还提供了另一种抗丢包处理装置。图9为本发明实施例四提供的另一种抗丢包处理装置示意图。如图9所示,本发明实施例提供的装置包括:第一判断单元901、第二判断单元902、处理单元903和第二处理单元904。
其中,第一判断单元901、第二判断单元902和处理单元903与上述装置中的第一判断单元801、第二判断单元802和处理单元803单元相同,因此,各个单元的功能在此不复赘述。
图10为图9中装置的第二处理单元示意图。如图10所示,第二处理单元具体包括:设定子单元1001、第一计算子单元1002、第二计算子单元1003、处理子单元1004。
设定子单元1001,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值。
第一计算子单元1002,用于根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率。
第二计算子单元1003,用于根据所述丢包率计算丢包比值。
处理子单元1004,用于如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
从中可以看出,第二处理单元在进行抗丢包处理之前还可以进行去抖动处理,并且由于在计算丢包率和抖动率时,加入了与当前时间相关的数据包权值,即数据包距离当前时间越近,其权值越大,因此,以此计算出的丢包率和抖动率更能反映出当前的丢包情况和抖动情况,从而可以对JB进行更合适的调节,以减缓或消除抖动。
可选地,所述第二处理单元还包括:
切换子单元,用于如果所述丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码模式,所述第一编码模式对当前数据编码时不需要参考之前的数据。
本发明实施例中,判断FEC恢复的数据包个数是否超过恢复阈值;如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。从FEC恢复数据包的能力和网络状态的好坏两个方面判断丢包原因,并分别采用不同的处理方法,使得处理效果更好。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种抗丢包处理方法,其特征在于,所述方法包括:
判断FEC恢复的数据包个数是否超过恢复阈值;
如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值;
如果所述连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
2.根据权利要求1所述的抗丢包处理方法,其特征在于,所述判断FEC恢复的数据包个数是否超过恢复阈值之后还包括:
如果FEC恢复的所述数据包个数超过所述恢复阈值,则对丢失的数据包进行FEC恢复。
3.根据权利要求1所述的抗丢包处理方法,其特征在于,所述如果所述FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值之后还包括:
如果所述连续丢包数超过所述连续丢包阈值,则控制发送端重传I帧,并缩短I帧间隔。
4.根据权利要求1所述的抗丢包处理方法,其特征在于,所述根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复具体包括:
如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔;
如果网络不阻塞,则重传丢失的数据包。
5.根据权利要求1所述的抗丢包处理方法,其特征在于,所述判断FEC恢复的数据包个数是否超过恢复阈值之前还包括:
根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;
根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;
根据所述丢包率计算丢包比值;
如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
6.根据权利要求5所述的抗丢包处理方法,其特征在于,所述如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动之后还包括:
如果所述丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码模式,所述第一编码模式对当前数据编码时不需要参考之前的数据。
7.一种抗丢包处理装置,其特征在于,所述装置包括:
第一判断单元,用于判断FEC恢复的数据包个数是否超过恢复阈值,将判断结果发送至第二判断单元;
第二判断单元,用于接收所述第一判断单元发送的判断结果,如果所述判断结果为FEC恢复的所述数据包个数不超过所述恢复阈值,则判断连续丢包数是否超过连续丢包阈值,将判断结果发送至处理单元;
处理单元,用于接收所述第二判断单元发送的所述判断结果,如果所述判断结果为连续丢包数不超过所述连续丢包阈值,则根据网络状态控制发送端重传丢失的数据包,或者控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复。
8.根据权利要求7所述的抗丢包处理装置,其特征在于,所述第一判断单元还用于,
如果FEC恢复的所述数据包个数超过所述恢复阈值,则对丢失的数据包进行FEC恢复。
9.根据权利要求7所述的抗丢包处理装置,其特征在于,所述第二判断单元还用于,
如果所述连续丢包数超过所述连续丢包阈值,则控制发送端重传I帧,并缩短I帧间隔。
10.根据权利要求7所述的抗丢包处理装置,其特征在于,所述处理单元具体用于,
如果网络阻塞,则控制发送端发送FEC冗余包,利用所述冗余包对丢失的数据包进行FEC恢复,并缩短I帧间隔;
如果网络不阻塞,则重传丢失的数据包。
11.根据权利要求7所述的抗丢包处理装置,特征在于,所述装置还包括第二处理单元,所述第二处理单元具体包括:
设定单子元,用于根据每个数据包距离当前时间的远近,为每个数据包设定数据包权值;
第一计算子单元,用于根据丢失数据包和所述数据包权值计算丢包率,根据抖动数据包和所述数据包权值计算抖动率;
第二计算子单元,用于根据所述丢包率计算丢包比值;
处理子单元,用于如果所述丢包比值小于所述抖动率,则增大抖动缓冲器JB的容量,以减缓或消除抖动。
12.根据权利要求11所述的抗丢包处理装置,特征在于,所述第二处理单元还包括:
切换子单元,用于如果所述丢包率超丢包率阈值,则将发送端编码器中的编码模式切换为第一编码模式,所述第一编码模式对当前数据编码时不需要参考之前的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591563.3A CN103916208B (zh) | 2012-12-31 | 2012-12-31 | 去抖动、抗丢包处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591563.3A CN103916208B (zh) | 2012-12-31 | 2012-12-31 | 去抖动、抗丢包处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103916208A CN103916208A (zh) | 2014-07-09 |
CN103916208B true CN103916208B (zh) | 2017-12-29 |
Family
ID=51041633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210591563.3A Expired - Fee Related CN103916208B (zh) | 2012-12-31 | 2012-12-31 | 去抖动、抗丢包处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103916208B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105873201B (zh) * | 2016-06-12 | 2019-04-12 | 浙江大学 | 一种基于rssi的功率调节方法 |
CN109981411A (zh) * | 2019-03-28 | 2019-07-05 | 苏州浪潮智能科技有限公司 | 一种自适应的高速网络信号抖动抑制方法及系统 |
US11133888B2 (en) * | 2019-05-06 | 2021-09-28 | Qualcomm Incorporated | Codec configuration adaptation based on packet loss rate |
CN110366003A (zh) * | 2019-06-24 | 2019-10-22 | 北京大米科技有限公司 | 视频数据的抗抖动处理方法、装置、电子设备和存储介质 |
CN113726589B (zh) * | 2020-05-26 | 2023-01-03 | 千寻位置网络有限公司 | 历元网络状态的监控方法 |
CN116962237A (zh) * | 2023-07-22 | 2023-10-27 | 惠州迈腾伟业科技发展有限公司 | 一种基于调制解调器的网络通信功能异常处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677954A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 语音传输过程中动态调整抖动缓存的实现方法 |
CN101175104A (zh) * | 2006-10-31 | 2008-05-07 | 华为技术有限公司 | 一种抖动缓存装置和抖动缓存管理方法 |
CN102790666A (zh) * | 2011-05-17 | 2012-11-21 | 华为终端有限公司 | 差错控制的方法、接收端、发送端和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10951743B2 (en) * | 2011-02-04 | 2021-03-16 | Adaptiv Networks Inc. | Methods for achieving target loss ratio |
-
2012
- 2012-12-31 CN CN201210591563.3A patent/CN103916208B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677954A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 语音传输过程中动态调整抖动缓存的实现方法 |
CN101175104A (zh) * | 2006-10-31 | 2008-05-07 | 华为技术有限公司 | 一种抖动缓存装置和抖动缓存管理方法 |
CN102790666A (zh) * | 2011-05-17 | 2012-11-21 | 华为终端有限公司 | 差错控制的方法、接收端、发送端和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103916208A (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103916208B (zh) | 去抖动、抗丢包处理方法及装置 | |
EP2312787B1 (en) | Method and device of data transmission | |
CN104836748B (zh) | 拥塞控制比特率算法 | |
KR102295788B1 (ko) | 데이터 스트리밍의 순방향 오류 정정 | |
CN104159166B (zh) | 基于移动网络丢包状态的直播视频数据传输差错控制方法 | |
WO2017157303A1 (zh) | 实时通信中的抗丢包方法、装置和系统 | |
EP3406034B1 (en) | Methods, system and user equipment of a wireless communication network for determining transmission conditions for a real-time media flow | |
CN102790666B (zh) | 差错控制的方法、接收端、发送端和系统 | |
CN106341738B (zh) | 流媒体网络传输的带宽计算方法、服务器端和系统 | |
US10951743B2 (en) | Methods for achieving target loss ratio | |
CN102859921A (zh) | 用于实现加速的吞吐量的系统和方法 | |
CN105450357A (zh) | 编码参数的调整、反馈信息的处理方法及装置 | |
CN107257270A (zh) | 基于混合自动重传请求的数据传输方法及系统 | |
US20140126357A1 (en) | Ecn-enabled multicast protocol for wireless communication systems under blockage | |
CN108965775A (zh) | 数据丢包处理策略的调整方法、装置及存储介质 | |
WO2013189428A2 (zh) | 基于分层编码的抗丢包实时通信方法、系统及相关设备 | |
CN102088640A (zh) | 基于视频内容的自适应选择重传方法 | |
CN104221317B (zh) | 发送装置、接收装置、发送方法及接收方法 | |
Khalaf et al. | Analyzing video streaming quality by using various error correction methods on mobile ad hoc networks in NS2 | |
CN107872291A (zh) | 一种语音码率的调整方法及终端 | |
Kim et al. | UDP-based extremely low latency streaming | |
CN108702352B (zh) | 一种确定音视频数据编码速率的方法、终端以及存储介质 | |
Kapoor et al. | Link layer support for streaming MPEG video over wireless links | |
Chaudhary et al. | ECN based TCP-friendly rate control for wireless multimedia streaming | |
Jin et al. | Performance evaluation of a hybrid FEC/ARQ for wireless media streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171229 |