CN111464458A - 抗丢包方法、装置、设备及存储介质 - Google Patents
抗丢包方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111464458A CN111464458A CN202010260985.7A CN202010260985A CN111464458A CN 111464458 A CN111464458 A CN 111464458A CN 202010260985 A CN202010260985 A CN 202010260985A CN 111464458 A CN111464458 A CN 111464458A
- Authority
- CN
- China
- Prior art keywords
- packet
- packets
- redundant
- redundancy
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004806 packaging method and process Methods 0.000 claims abstract description 14
- 230000009467 reduction Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 20
- 230000002265 prevention Effects 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000010438 heat treatment Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000020169 heat generation Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了抗丢包方法、装置、设备及存储介质。其中,该方法包括:获取接收端反馈的丢包信息;根据所述丢包信息计算分包参数,其中,所述分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度;查询冗余性能表获取与所述分包参数对应的最大冗余包数目;根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端。本发明实施例提供的技术方案,可以合理地确定数据包数目和冗余包数目,进行最为合理的分包,从而在提升视频通话的效果同时,减少时延和性能开销。
Description
技术领域
本发明实施例涉及互联网技术领域,尤其涉及抗丢包方法、装置、设备及存储介质。
背景技术
当今时代,视频通话已成为了人们沟通交流的基本方式,受到越来越多用户的关注和使用,因此视频通话的效果对于用户的体验至关重要,而现网不稳定的网络因素会造成数据包丢失,从而导致视频通话中的卡顿及时延等现象,极大的影响了用户的实际感受,大部分社交APP的厂商也会通过不同的抗丢包手段(如前向纠错编码(FEC,ForwardErasure Correction)技术)去提升效果,不同的抗丢包手段带来的开销也不同。
目前提升抗丢包效果的方法是利用接收端反馈的丢包率等信息,在发送端调整FEC的冗余度和交织编码的交织深度,直到所述冗余或交织深度达到一定的阈值,其中交织深度的调整是通过调整视频帧分包大小实现,这样的做法是有缺陷的。调整交织深度后通过判断丢包率是否低于设定的阈值作为调整是否到位的判断条件,这种只根据丢包率的调整方式太过于盲目,可能会造成冗余的不足或浪费。
发明内容
本发明实施例提供了抗丢包方法、装置、设备及存储介质,可以优化现有的抗丢包方案。
第一方面,本发明实施例提供了一种抗丢包方法,该方法包括:
获取接收端反馈的丢包信息;
根据所述丢包信息计算分包参数;
查询冗余性能表获取与分包参数对应的最大冗余包数目;
根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端;
其中,所述分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度。
第二方面,本发明实施例提供了一种抗丢包装置,该装置包括:
获取模块,用于获取接收端反馈的丢包信息;
计算模块,用于根据所述丢包信息计算分包参数,其中,所述分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度;
查询模块,用于查询冗余性能表获取与分包参数对应的最大冗余包数目;
生成模块,用于根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端。
第三方面,本发明实施例提供了一种移动设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的抗丢包方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的抗丢包方法。
本发明实施例中提供的抗丢包方案,在需要对数据包进行分包时,获取接收端反馈的丢包信息,根据所述丢包信息计算分包参数,其中,分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度,查询冗余性能表获取与分包参数对应的最大冗余包数目,根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端。通过采用上述技术方案,可以合理地确定数据包数目和冗余包数目,进行最为合理的分包,从而在提升视频通话的效果同时,减少时延和性能开销。
附图说明
图1为本发明实施例提供的一种抗丢包方法的流程示意图;
图2为本发明实施例提供的又一种抗丢包方法的流程示意图;
图3为本发明实施例提供的一种抗丢包装置的结构框图;
图4为本发明实施例提供的一种移动设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
为了便于理解本发明实施例,下面对相关内容进行介绍。在一些应用场景中,例如,随着应用APP越来越丰富,用户对手机设备的电池续航能力也格外关注,但当前基本所有的提升用户视频通话效果的APP在抗丢包功能的使用上,对抗丢包能力与设备性能的权衡上关注不多。因此我们亟需能够提升通话效果的同时,又能同时兼顾到带来的时延和性能损耗,从而得到更好的视频通话体验。本发明实施例中通过查询冗余性能表,能够根据最大冗余包数目合理地确定数据包数目和冗余包数目,根据数据包数目和冗余包数目进行最为合理的分包,从而在提升视频通话的效果同时,减少时延和性能开销。需要说明的是,上述使用场景仅作为示意性说明,本发明实施例的抗丢包方案可适用于任意涉及抗丢包的场景。
图1为本发明实施例提供的一种抗丢包方法的流程示意图,该方法可以由抗丢包装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图1所示,该方法包括:
步骤101、获取接收端反馈的丢包信息。
示例性的,可应用于实时视频通话场景,主要功能在于结合通话过程中统计的设备编冗余算法耗时(反映设备性能)及收集接收端反馈的丢包率、丢包分布等信息,进行最为合理的分包,从而在提升视频通话的效果同时,还能减少时延和性能开销。丢包信息是在接收端计算的,计算方式基本都是统计一个时间窗内的数据丢失情况,这个时间窗不做限制,是可以根据实际情况选取的。
示例性的,两方视频通话中,接收端的丢包信息对于发送端进行冗余的调整起着重要的指导意义。接收端的丢包信息包含但不限于丢包率、丢包分布等。此处以丢包率和丢包分布的统计为例:数据包都有各自的编号,用seq表示,因此可以在接收端根据seq连续情况,并排除掉抖动带来的影响,每秒实时计算丢包率情况;丢包分布的统计包含很多,其中对于冗余计算来说,一定数据包范围(个数为D)内的丢包数对于冗余的计算和分包大小、分包数都有比较重要的参考意义,此处D的取值与当前的抗丢包算法能力有关,以RS算法为例,可以把算法中生成的最大的冗余包数目作为上述D的设定。将统计的信息通过一定方式发送到发送端,具体的发送方式不进行限制,例如可以是,在实时传输协议(Real-timeTransport Control Protocol,RTCP)或者反馈报文中携带丢包信息。
本发明实施例中,丢包信息可以包括丢包率和丢包分布,也可以包括丢包率、丢包分布和丢包数据,或者可以包括丢包率、丢包分布和最大连续丢包数目,本发明实施例对此不进行限制。
可选的,所述丢包信息包括:丢包率和丢包分布。
步骤102、根据所述丢包信息计算分包参数。
示例性的,不同的设备性能不同,对于同样的数据处理时开销也就不同。冗余编码也一样,冗余编码开销会直接影响到时延和设备发热,可以通过统计冗余编码的开销,并结合网络的丢包信息,针对不同的设备自适应调整包长度、数据包数和冗余包数目。先按照接收端反馈的丢包率和丢包分布信息进行冗余率(Redundancy Rate)的计算,具体计算冗余率的方法可以为:通过查询映射表,得到与丢包率对应的冗余率,映射表中存储有丢包率和冗余率的对应关系,丢包率和冗余率的对应关系也就是根据多少的冗余率可以恢复多少的丢包率。举个例子,丢包率为10%,经测试,用60%的冗余率,基本可以达到95%的恢复率,就把这两个做一个映射关系:丢包率10%对应冗余率60%。冗余率的计算与产品有关,不同的产品可能具体计算方法不太一样;根据丢包分布中收包数据为D的丢包数(Lost PacketNum)(如选定生成最大冗余包数目为10,此处计算的即为10个包内的丢包数)和冗余率来预估数据包数目进而确定预估数据包长度,计算公式为:预估数据包数目=Lost PacketNum/Redundancy Rate;预估数据包长度=帧大小/预估数据包数目;其中Lost Packet Num取值不是瞬时值,而是预设时段统计的涵盖预设比例(可根据实际情况设置,例如可以是80%)情况的值,其中,预设时段可根据实际情况设置,例如可选定30s。之所以选取预设时段是因为瞬时值波动太大。预估数据包长度即包大小,需要受到最大包长度和最小包长度的限制,也即,当计算得到的预估数据包长度大于最大包长度时,将预估数据包长度的值设置为最大包长度,当计算得到的预估数据包长度小于最小包长度时,将预估数据包长度的值设置为最小包长度,最大包长度和最小包长度可根据实际情况设定。
如前文所述,接收端统计一个时间窗内的数据丢失情况,并根据数据丢失情况计算得到丢包信息,根据丢包信息预估冗余包数目和数据包数目,或者根据丢包信息预估冗余包数目和数据包长度,还可以为根据丢包信息预估冗余包数目、数据包数目和数据包长度。
其中,所述分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度。也就是说,分包参数可以包括预估冗余包数目和预估数据包数目;或者,分包参数可以包括预估冗余包数目和预估数据包长度;或者,分包参数可以包括预估冗余包数目、预估数据包数目和预估数据包长度。
步骤103、查询冗余性能表获取与分包参数对应的最大冗余包数目。
示例性的,实时统计不同数据包数目、数据包长度、冗余包数目以及不同冗余率下的编冗余开销,并记录。制定一次冗余编码最大可接受的耗时(如10ms),当数据包个数、长度确定时,可根据开销情况确定最大可生成的冗余包数目。
本发明实施例中,所述冗余性能表可以包括数据包数目与最大冗余包数目和编冗余开销系数之间的对应关系,还可以包括数据包长度与最大冗余包数目和编冗余开销系数之间的对应关系,或者可以包括数据包数目和数据包长度分别与最大冗余包数目和编冗余开销系数之间的对应关系。例如可以是,数据包数目和数据包长度与最大冗余包数目之间的对应关系可以为,数据包数目10、数据包长度520,最大冗余包数目5。数据包数目和数据包长度与编冗余开销系数之间的对应关系可以为,如果不调整数据包长度,将数据包数目增大一倍,则编冗余开销系数为1.2,如果不调整数据包数目,将数据包长度增加一倍,则编冗余开销系数为2,在实际调整过程中,即使不对数据包长度进行调整,将数据包数目增加也会导致数据包长度的变化;即使不对数据包数目进行调整,将数据包长度增加也会导致数据包数目的变化。
本发明实施例中,所述最大冗余包数目为根据编冗余开销情况确定最大可生成的冗余包数目,其中,编冗余开销为一次冗余编码最大可接受的耗时。编冗余开销与数据包数目和数据包长度有关,例如可以是,将数据包数目为A、数据包长度为B的数据包送去冗余模块,编出冗余包耗费的时间为编冗余开销,时间越长表示开销越大,发热越严重。
可选的,所述冗余性能表包括数据包数目和/或数据包长度与最大冗余包数目和编冗余开销系数的对应关系。
示例性的,冗余性能表可包括数据包数目与最大冗余包数目的对应关系,以及数据包数目与编冗余开销系数的对应关系;冗余性能表可包括数据包长度与最大冗余包数目的对应关系,以及数据包长度与编冗余开销系数的对应关系;冗余性能表也可包括数据包数目与最大冗余包数目的对应关系,数据包数目与编冗余开销系数的对应关系,数据包长度与最大冗余包数目的对应关系,以及数据包长度与编冗余开销系数的对应关系。
示例性的,在根据丢包信息计算得到分包参数后,根据分包参数查询冗余性能表获取与分包参数对应的最大冗余包数目,例如可以是,根据丢包信息计算得到预估数据包数目,根据预估数据包数目查询冗余性能表,得到最大冗余包数目。
在一些实施例中,还包括:记录每组数据的实际数据包数目、实际数据包长度、实际冗余包数目以及实际编冗余开销;将所述最大冗余包数目更新为满足预设条件的实际冗余包数目;其中,所述预设条件为实际冗余数据包数目大于最大冗余包数目,且实际编冗余开销小于时间阈值。更新最大冗余包数目是一个实时动态调整的过程,可以发生在获取接收端反馈的丢包信息之前,也可能发生在将所述数据包和冗余包发送至接收端之后,本发明实施例对更新最大冗余包数目这一操作的发生顺序不进行限制。根据实际数据包数目、实际数据包长度、实际冗余包数目以及实际编冗余开销更新最大冗余包数目,这样设置的好处在于,能够在不同设备上进行视频通话,通过算法开销自适应检测设备性能,动态调整最大冗余包数目,并根据实际情况进行数据包数目或数据包长度的调整,从而在不同设备上都能带来算法最小的开销,最好的效果,尤其是中低端设备上可以明显减少耗时,增加续航,拥有优良的观看体验。
步骤104、根据最大冗余包数目和分包参数生成数据包和冗余包,并将数据包和冗余包发送至接收端。
示例性的,根据最大冗余包数目和分包参数生成数据包和冗余包的方式可以为预先判断预估冗余包数目与最大冗余包数目之间的关系,若预估冗余包数目小于最大冗余包数目,则根据预估数据包数目生成数据包,将数据包和预估冗余包数目输入冗余模块,编出冗余包;若预估冗余包数目大于最大冗余包数目,则根据冗余性能表中的数据包数目或者数据包长度与编冗余开销系数的对应关系调整预估数据包数目和预估数据包长度,得到目标数据包数目和目标数据包长度,根据目标数据包数目和目标数据包长度得到目标冗余包数目,根据目标数据包数目生成数据包,将数据包和目标冗余数据包数目输入冗余模块,编出冗余包。最终在满足同样抗丢包能力情况下,减少了耗时,减少了发热。
本发明实施例中,首先根据接收端反馈的丢包信息进行初步的预估数据包长度和预估数据包数目的计算,查询冗余性能表,其中,冗余性能表实时记录每组数据编冗余时的不同数据包数目、数据包长度、冗余包数目下的实际编冗余耗时,冗余性能表作为耗时查询表。根据当前预估数据包数目、预估数据包长度和预估冗余包数目确定预估编码冗余包的耗时,根据预估编码冗余包的耗时是否超过所能容忍的最大的耗时,决定当前冗余包数目是否超过了性能允许的最大冗余包数目,所述最大的编码冗余包耗时可以为10ms,如果是,则进入相应流程确定是否只改变数据包数目和数据包长度即可满足要求,还是需要进入分组冗余并确定数据包数目、数据包长度等处理。分组冗余指的是在生成数据包后,将数据包进行分组发送至冗余模块进行编冗余,例如可以是,若数据包数目为15,将数据包分为一组7个,一组8个,分别发送至冗余模块进行编冗余,分组处理与发送数据是两个线程进行,且帧间隔最少也要30ms,在此时间内,分组冗余早已完成。最终在满足同样抗丢包能力情况下,减少了耗时,减少了发热,同时分组冗余引入的发送时延可忽略不计。
本发明实施例中提供的抗丢包方法,结合设备性能与网络丢包信息提升抗丢包效果。不同用户的设备性能不同,同样的算法产生的耗时和发热程度不同,尤其在弱网下,冗余包数目太多在较差的设备上造成编冗余耗时大,发热高;编冗余包数目少又会造成在性能好的设备上抗丢包效果不好,造成了性能浪费。能够针对不同的设备根据丢包信息选择合适的冗余包数目,在提升抗丢包效果的同时,又能减少耗时,减少设备发热,增加续航,保证用户拥有优良的观看体验。
本发明实施例中提供的抗丢包方法,针对现有技术中的缺点,提供了一种通过结合设备性能和网络丢包信息,进行合理的确定帧分包大小及分包个数来提升弱网丢包场景下视频通话效果的方法。在不同设备上进行视频通话,通过算法开销自适应检测设备性能,动态调整最大冗余包数目,并根据实际情况进行分组或分包大小的调整,从而在不同设备上都能带来算法最小的开销,最好的效果,尤其是中低端设备上可以明显减少耗时,增加续航,拥有优良的观看体验。
在一些实施例中,根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端包括:若预估冗余包数目小于或者等于所述最大冗余包数目,则根据所述预估数据包数目进行分包得到数据包;根据所述数据包和所述预估冗余包数目生成冗余包;将所述数据包和冗余包发送至接收端。这样设置的好处在于,在冗余包数目小于或者等于最大冗余包数目的情况下,可以将根据丢包信息计算得到的预估数据包数目、预估数据包长度、预估冗余包数目作为分包时的最终数据进行分包,冗余包数目小于或者等于最大冗余包数目说明预估数据包数目、预估数据包长度和预估冗余包数目是当前设备性能准许的,进而根据预估数据包数目、预估数据包长度、预估冗余包数目作为分包时的最终数据进行分包,能够在提升抗丢包效果的同时,又能减少耗时,减少设备发热,增加续航,保证用户拥有优良的观看体验。
图2为本发明实施例提供的又一种抗丢包方法的流程示意图,该方法在预估冗余包数目大于所述最大冗余包数目的情况下,根据数据包数目或数据包长度,与最大冗余包数目和编冗余开销系数的对应关系,调整预估数据包数目和预估数据包长度,如图2所示,该方法包括:
步骤201、获取接收端反馈的丢包信息。
步骤202、根据所述丢包信息计算分包参数,其中,所述分包参数包括预估冗余包数目,以及预估数据包数目或者预估数据包长度。
示例性的,接收端统计一个时间窗内的数据丢失情况,这个时间窗不做限制,是可以根据实际情况选取的,根据数据丢失情况计算得到丢包信息,将丢包信息发送至发送端,发送端获取接收端反馈的丢包信息,根据丢包信息计算得到预估冗余包数目和预估数据包数目或者预估冗余包数目和预估数据包长度,根据接收端的反馈情况计算出的预估冗余包数目和预估数据包数目或者预估冗余包数目和预估数据包长度来进行分包能够更好的满足当前的视频通话场景。
步骤203、查询冗余性能表获取与分包参数对应的最大冗余包数目,所述冗余性能表包括数据包数目和数据包长度与最大冗余包数目和编冗余开销系数的对应关系。
示例性的,冗余性能表可以如表一所示:
表一
数据包长度 | 数据包数目 | 冗余包数目 | 编冗余开销 |
520 | 10 | 5 | 10 |
520 | 20 | 5 | 12 |
260 | 10 | 5 | 5 |
数据包长度520、数据包数目10、冗余包数目5、编冗余开销10是基准数据,当数据包数目和数据包长度分别发生变化时,编冗余开销的变化如下面两行。因此可以调整数据包长度和数据包数目进行编冗余开销的变化。
步骤204、若预估冗余包数目大于所述最大冗余包数目,则根据数据包数目或数据包长度与最大冗余包数目和编冗余开销系数的对应关系,调整预估数据包数目和预估数据包长度,得到目标数据包数目和目标数据包长度。
示例性的,根据数据包数目或数据包长度,与最大冗余包数目和编冗余开销系数的对应关系,调整预估数据包数目和预估数据包长度的方式可以有很多种,不同的算法或许有不同的模型,可根据实际算法情况制定。以RS为例,同样数据包数目,生成同样冗余包数目,编冗余开销会随数据包长度减小成比例减小;同时,如果数据包长度相同,冗余包数相同,数据包数目的增加跟编冗余开销增加不是比例关系,还是以RS为例,数据包数目增大一倍,冗余包数目不变的话,编冗余开销增大1.2倍左右。因此,由于当前生成冗余包数据超过最大冗余包数目,可将帧数据的数据包长度和数据包数目进行调整,根据调整后的数据包长度和数据包数目进行分包,若分包后仍不满足要求则进行分组冗余,从而达到抗丢包能力不变但开销减小的目的。
可选的,根据数据包数目或数据包长度与最大冗余包数目和编冗余开销系数的对应关系,调整预估数据包数目和预估数据包长度,得到目标数据包数目和目标数据包长度包括:获取所述预估冗余包数目与所述最大冗余包数目的比值;根据所述比值和编冗余开销系数调整预估数据包长度和预估数据包数目,得到目标数据包数目和目标数据包长度。
本发明实施例中,计算获取到的预估冗余包数目和冗余性能表中存储的最大冗余包数目的比值,根据计算得到的比值和编冗余开销系数调整预估数据包长度和预估数据包数目,例如可以是,预估冗余包数目为8个,查询冗余性能表得到的最大冗余包数目为6个,则预估冗余包数目和最大冗余包数目的比值为8/6,根据预估冗余包数目和最大冗余包数目的比值为8/6调整预估数据包长度和预估数据包数目。
可选的,根据所述比值和编冗余开销系数调整预估数据包长度和预估数据包数目,得到目标数据包数目和目标数据包长度包括:若将预估数据包数目作为目标数据包数目,则将所述比值与第一编冗余开销系数的乘积作为第一减小倍数;将所述第一减小倍数和预估数据包长度的乘积作为目标数据包长度。
本发明实施例中,所述第一编冗余开销系数与算法有关,以RS为例,数据包长度不变,数据包数目增大一倍,编冗余开销是原来的1.2倍。所述第一编冗余开销系数可以为1.2。
在本发明实施例中,第一减小倍数为减小预估数据包长度的倍数,例如可以是,预估冗余包数目和最大冗余包数目的比值为8/6≈1.33,第一编冗余开销系数为1.2,则第一减小倍数为1.33*1.2=1.6。
可选的,根据所述比值和编冗余开销系数调整预估数据包长度和预估数据包数目,得到目标数据包数目和目标数据包长度包括:若将预估数据包长度作为目标数据包长度,则将所述比值与第二编冗余开销系数的乘积作为第二减小倍数;将所述第二减小倍数和预估数据包数目的乘积作为目标数据包数目。
本发明实施例中,所述第二编冗余开销系数与算法有关,以RS为例,如果数据包数目不变,数据包长度增加一倍,则编冗余开销是原来的2倍。所述第二编冗余开销系数可以为2。
在本发明实施例中,第二减小倍数为减小预估数据包数目的倍数。
可选的,第一编冗余开销系数为1.2,第二编冗余开销系数为2。
可选的,所述编冗余开销系数与数据包数目的增量和/或数据包长度的增量有关。
示例性的,当查询冗余性能表发现预估冗余包数目大于所述最大冗余包数目,也就是预估数据包数目和数据包长度不满足要求时的调整方式:根据预估冗余包数目与查询后最大冗余包数的比例关系,进行数据包长度的比例调整。举个例子:假如10个数据包,每个520字节,所容许的最大冗余包数目是6;根据丢包率信息,现在有10个数据包,每个520字节长度,但是需要80%的冗余率,即需要10*80%=8个冗余包,超过了6个的最大值冗余包数目。根据最大冗余包数目为6和预估数据包数目为8之间的比例关系,即8/6≈1.33,如果这个时候数据包数目不变,数据包长度降低1.33倍应该可以满足性能要求,但是数据包长度减少,数据包数目肯定增加,会带来数据包数目增加的编冗余开销。数据包长度减少的倍数为1.33*1.2=1.6。
本发明实施例中,不同的设备性能不同,对于同样的数据处理时编冗余开销也就不同。编冗余开销会直接影响到时延和设备发热,通过统计编冗余开销,结合网络的丢包信息,从而在不同的设备自适应调整数据包长度、数据包数目、冗余包数目。
步骤205、根据所述目标数据包数目和所述目标数据包长度确定目标冗余包数目。
步骤206、根据所述目标数据包数目进行分包得到数据包,根据所述数据包和所述目标冗余包数目生成冗余包。
示例性的,根据数据包和目标冗余包数目生成冗余包的方式可以为将数据包一次性输入冗余模块生成冗余包,也可以为将数据包先进行分组,将分组后的数据包依次输入冗余模块生成冗余包,例如可以是,若数据包为15个,将7个数据包作为第一组,剩余的8个数据包作为第二组,将第一组输入冗余模块生成冗余包后,将第二组数据包输入冗余模块生成数据包。数据包具体分为几组根据一帧数据的大小来确定,若数据量大,则分组数较多,如数据量较小,则分组数少,本发明实施例对具体分组形式不进行限制。需要说明的是,冗余性能表也可以包括数据包数目和/或数据包长度,与编冗余开销的对应关系,预先判断目标数据包数目和目标数据包长度对应的目标编冗余开销是否小于或者等于时间阈值,若是,则直接将数据包一次性输入冗余模块生成冗余包,若否,则将数据包先进行分组,将分组后的数据包依次输入冗余模块生成冗余包。
步骤207、将所述数据包和冗余包发送至接收端。
本发明实施例可应用于实时视频通话场景,主要功能在于结合通话过程中统计的设备编冗余算法耗时及收集接收端反馈的丢包率和丢包分布等信息,进行最为合理的分包,从而在提升视频通话的效果同时,还能减少时延和性能开销。属于算法层面,所以无需和用户交互。
本发明实施例提供的抗丢包方法,本发明涉及实时通信中的抗丢包方法,通过结合设备性能及网络丢包信息共同提升抗丢包效果。通过实时检测设备性能及网络丢包信息,实时更新视频帧分包大小及个数,其中,通过算法开销可估计设备性能,在提升视频FEC抗丢包效果下,还能减少因为生成冗余过程带来的时延开销及设备发热问题,从而提升用户的通话体验及设备续航能力。
图3为本发明实施例提供的一种抗丢包装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在设备中,可通过执行抗丢包方法来优化现有的抗丢包方案。如图3所示,该装置包括:
获取模块310,用于获取接收端反馈的丢包信息;
计算模块320,用于根据所述丢包信息计算分包参数,其中,所述分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度;
查询模块330,用于查询冗余性能表获取与分包参数对应的最大冗余包数目;
生成模块340,用于根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端。
本发明实施例提供的抗丢包装置,由于不同的设备性能不同,因而针对同样的数据处理时编冗余开销不同,在编冗余开销会直接影响到时延和设备发热的情况下,获取接收端反馈的丢包信息;根据所述丢包信息计算分包参数;查询冗余性能表获取与分包参数对应的最大冗余包数目;根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端。通过采用上述技术方案,可以确定数据包数目和冗余包数目,进行最为合理的分包,从而在提升视频通话的效果同时,减少时延和性能开销。
本发明实施例提供了一种移动设备,该移动设备中可集成本发明实施例提供的抗丢包装置。图4为本发明实施例提供的一种移动设备的结构框图。移动设备400包括存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序,所述处理器402执行所述计算机程序时实现本发明实施例提供的抗丢包方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的抗丢包方法。
上述实施例中提供的抗丢包装置、设备以及存储介质可执行本发明任意实施例所提供的抗丢包方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的抗丢包方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。
Claims (11)
1.一种抗丢包方法,其特征在于,包括:
获取接收端反馈的丢包信息;
根据所述丢包信息计算分包参数;
查询冗余性能表获取与所述分包参数对应的最大冗余包数目;
根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端;
其中,所述分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度。
2.根据权利要求1所述的方法,其特征在于,所述冗余性能表包括数据包数目和/或数据包长度与最大冗余包数目和编冗余开销系数的对应关系。
3.根据权利要求1所述的方法,其特征在于,根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端包括:
若预估冗余包数目小于或者等于所述最大冗余包数目,则根据所述预估数据包数目进行分包得到数据包;
根据所述数据包和所述预估冗余包数目生成冗余包;
将所述数据包和冗余包发送至接收端。
4.根据权利要求2所述的方法,其特征在于,根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端包括:
若预估冗余包数目大于所述最大冗余包数目,则根据数据包数目或数据包长度与最大冗余包数目和编冗余开销系数的对应关系,调整预估数据包数目和预估数据包长度,得到目标数据包数目和目标数据包长度;
根据所述目标数据包数目和所述目标数据包长度确定目标冗余包数目;
根据所述目标数据包数目进行分包得到数据包,根据所述数据包和所述目标冗余包数目生成冗余包;
将所述数据包和冗余包发送至接收端。
5.根据权利要求4所述的方法,其特征在于,根据数据包数目或数据包长度与最大冗余包数目和编冗余开销系数的对应关系,调整预估数据包数目和预估数据包长度,得到目标数据包数目和目标数据包长度包括:
获取所述预估冗余包数目与所述最大冗余包数目的比值;
根据所述比值和编冗余开销系数调整预估数据包长度和预估数据包数目,得到目标数据包数目和目标数据包长度。
6.根据权利要求5所述的方法,其特征在于,根据所述比值和编冗余开销系数调整预估数据包长度和预估数据包数目,得到目标数据包数目和目标数据包长度包括:
若将预估数据包数目作为目标数据包数目,则将所述比值与第一编冗余开销系数的乘积作为第一减小倍数;
将所述第一减小倍数和预估数据包长度的乘积作为目标数据包长度。
7.根据权利要求5所述的方法,其特征在于,根据所述比值和编冗余开销系数调整预估数据包长度和预估数据包数目,得到目标数据包数目和目标数据包长度包括:
若将预估数据包长度作为目标数据包长度,则将所述比值与第二编冗余开销系数的乘积作为第二减小倍数;
将所述第二减小倍数和预估数据包数目的乘积作为目标数据包数目。
8.根据权利要求1所述的方法,其特征在于,还包括:
记录每组数据的实际数据包数目、实际数据包长度、实际冗余包数目以及实际编冗余开销;
将所述最大冗余包数目更新为满足预设条件的实际冗余包数目;
其中,所述预设条件为实际冗余数据包数目大于最大冗余包数目,且实际编冗余开销小于时间阈值。
9.一种抗丢包装置,其特征在于,包括:
获取模块,用于获取接收端反馈的丢包信息;
计算模块,用于根据所述丢包信息计算分包参数,其中,所述分包参数包括预估冗余包数目,以及预估数据包数目和/或预估数据包长度;
查询模块,用于查询冗余性能表获取与所述分包参数对应的最大冗余包数目;
生成模块,用于根据所述最大冗余包数目和所述分包参数生成数据包和冗余包,并将所述数据包和冗余包发送至接收端。
10.一种移动设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010260985.7A CN111464458B (zh) | 2020-04-03 | 2020-04-03 | 抗丢包方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010260985.7A CN111464458B (zh) | 2020-04-03 | 2020-04-03 | 抗丢包方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111464458A true CN111464458A (zh) | 2020-07-28 |
CN111464458B CN111464458B (zh) | 2024-01-02 |
Family
ID=71680508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010260985.7A Active CN111464458B (zh) | 2020-04-03 | 2020-04-03 | 抗丢包方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111464458B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187817A (zh) * | 2020-10-09 | 2021-01-05 | 厦门亿联网络技术股份有限公司 | 流媒体数据传输方法、装置、设备及存储介质 |
CN115085859A (zh) * | 2021-03-15 | 2022-09-20 | 海能达通信股份有限公司 | 一种抗丢包方法、装置及计算机可读存储介质 |
CN117692361A (zh) * | 2024-01-23 | 2024-03-12 | 深圳市威铭科技开发有限公司 | 一种基于网络通信的网关故障监测方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662455A (zh) * | 2008-08-29 | 2010-03-03 | 深圳华为通信技术有限公司 | 数据传输的方法和装置 |
US20170093666A1 (en) * | 2015-09-30 | 2017-03-30 | The Chinese University Of Hong Kong | Loss-resilient protocols for communication networks |
CN107196746A (zh) * | 2016-03-15 | 2017-09-22 | 中兴通讯股份有限公司 | 实时通信中的抗丢包方法、装置和系统 |
CN110247736A (zh) * | 2019-06-27 | 2019-09-17 | 北京奇艺世纪科技有限公司 | 一种数据传输方法及装置 |
CN110838894A (zh) * | 2019-11-27 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 语音处理方法、装置、计算机可读存储介质和计算机设备 |
CN110943800A (zh) * | 2019-11-06 | 2020-03-31 | 厦门亿联网络技术股份有限公司 | 数据包的发送方法、装置及系统、存储介质、电子装置 |
-
2020
- 2020-04-03 CN CN202010260985.7A patent/CN111464458B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662455A (zh) * | 2008-08-29 | 2010-03-03 | 深圳华为通信技术有限公司 | 数据传输的方法和装置 |
US20170093666A1 (en) * | 2015-09-30 | 2017-03-30 | The Chinese University Of Hong Kong | Loss-resilient protocols for communication networks |
CN107196746A (zh) * | 2016-03-15 | 2017-09-22 | 中兴通讯股份有限公司 | 实时通信中的抗丢包方法、装置和系统 |
CN110247736A (zh) * | 2019-06-27 | 2019-09-17 | 北京奇艺世纪科技有限公司 | 一种数据传输方法及装置 |
CN110943800A (zh) * | 2019-11-06 | 2020-03-31 | 厦门亿联网络技术股份有限公司 | 数据包的发送方法、装置及系统、存储介质、电子装置 |
CN110838894A (zh) * | 2019-11-27 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 语音处理方法、装置、计算机可读存储介质和计算机设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187817A (zh) * | 2020-10-09 | 2021-01-05 | 厦门亿联网络技术股份有限公司 | 流媒体数据传输方法、装置、设备及存储介质 |
CN115085859A (zh) * | 2021-03-15 | 2022-09-20 | 海能达通信股份有限公司 | 一种抗丢包方法、装置及计算机可读存储介质 |
CN115085859B (zh) * | 2021-03-15 | 2023-11-24 | 海能达通信股份有限公司 | 一种抗丢包方法、装置及计算机可读存储介质 |
CN117692361A (zh) * | 2024-01-23 | 2024-03-12 | 深圳市威铭科技开发有限公司 | 一种基于网络通信的网关故障监测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111464458B (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111464458A (zh) | 抗丢包方法、装置、设备及存储介质 | |
US10819766B2 (en) | Voice encoding and sending method and apparatus | |
CN105430532A (zh) | 一种视频数据传输自适应调整的控制方法及其系统 | |
EP1449312A1 (en) | Method of resource control in a wireless network | |
US11695629B2 (en) | Method and apparatus for configuring a network parameter | |
Chen et al. | Benefits of coding on age of information in broadcast networks | |
WO2023155747A1 (zh) | 数据编码码率自适应调节方法、装置、设备和存储介质 | |
CN115037416A (zh) | 数据前向纠错处理方法、装置、电子设备和存储介质 | |
CN109982100A (zh) | 一种音视频处理方法和系统 | |
EP2445142A1 (en) | Dynamic bandwidth adjustment for multiple service support | |
CN105591960A (zh) | 调整隧道负载的方法和设备 | |
CN110855570A (zh) | Sdn网络丢包判断方法、装置、系统和多网络控制系统 | |
CN102170706A (zh) | 分布式认知无线电系统频谱接入方法 | |
Maqhat et al. | Scheduler algorithm for IEEE802. 11n wireless LANs | |
CN107925438B (zh) | 一种dsl系统中资源调度的方法、装置及系统 | |
CN106922030B (zh) | 调度的处理方法及装置 | |
Chiang et al. | Jointly optimal congestion control and power control in wireless multihop networks | |
CN114390006B (zh) | 数据包传输方法、装置、设备和存储介质 | |
Tao et al. | A novel congestion detection and avoidance algorithm for multiple class of traffic in sensor network | |
CN101656807B (zh) | 一种网络电话发送端的语音控制方法及网络电话发送终端 | |
CN107920021B (zh) | 基于蜂窝链路聚合的链路优选方法 | |
WO2021164405A1 (zh) | 数据编解码方法、相关设备及系统 | |
JP2022541730A (ja) | ネットワーク伝送制御方法および装置 | |
CN112153612A (zh) | 对lte系统消息的主信息块mib消息的处理方法、装置及基站 | |
CN112953605B (zh) | 单双流调度方法、装置、通信基站及存储介质 |
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 |