一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、设备及计算机存储介质与流程

2022-05-08 04:39:36 来源:中国专利 TAG:


1.本技术涉及网络通信技术领域,尤其涉及一种数据传输方法、设备及计算机存储介质。


背景技术:

2.随着网络技术的飞速发展,实时流媒体传输进入全链路即时通信(real-time communication,简称rtc)时代,低延迟场景越来越多,其中,前向纠错码(forward error correction,简称fec)作为全链路的服务质量(quality of service,简称qos)优化方案之一,可以通过fec的编解码通用功能减少链路丢包、卡顿、延迟问题。
3.目前,针对视频中的每一帧都配置有固定的fec编码的冗余度,例如:i帧的冗余度为30%,p帧的冗余度为50%。然而,当网络状况非常优秀时,网络中进行传输的数据可能不会出现丢包,仍使用固定冗余率的编码操作不仅会浪费带宽,而且会增加传输成本。


技术实现要素:

4.本技术实施例提供一种数据传输方法、设备及计算机存储介质,有效地实现了可以基于不同的网络状况配置不同的fec编码冗余度,进而可以提升网络资源的利用率。
5.第一方面,本技术实施例提供了一种数据传输方法,包括:
6.获取与实时传输数据相对应的数据往返时间;
7.基于所述数据往返时间,确定与所述实时传输数据中数据帧相对应的前向纠错码fec冗余度;
8.基于所述fec冗余度对所述实时传输数据进行编码传输。
9.第二方面,本技术实施例提供了一种数据传输装置,包括:
10.第一获取模块,用于获取与实时传输数据相对应的数据往返时间;
11.第一确定模块,用于基于所述数据往返时间,确定与所述实时传输数据中数据帧相对应的前向纠错码fec冗余度;
12.第一处理模块,用于基于所述fec冗余度对所述实时传输数据进行编码传输。
13.第三方面,本技术实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面所示的数据传输方法。
14.第四方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面所示的数据传输方法。
15.第五方面,本发明实施例提供了一种计算机程序产品,包括:计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器执行上述第一方面所示的数据传输方法。
16.本技术实施例提供的数据传输方法、设备及计算机存储介质,通过获取与实时传输数据相对应的数据往返时间,而后基于所述数据往返时间确定与所述实时传输数据中数
据帧相对应的前向纠错码fec冗余度,并基于所述fec冗余度对所述实时传输数据进行编码传输,有效地实现了可以基于不同的数据往返时间来确定与数据帧相对应的不同冗余度,这样不仅实现了对实时传输数据进行灵活的冗余编码操作,有利于降低数据传输时所需要的网络带宽,而且可以提高网络资源的利用率,降低数据传输成本,进一步保证了该方法的实用性,有利于市场的推广与应用。
附图说明
17.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本技术实施例提供的一种数据传输方法的示意图;
19.图2为本技术实施例提供的一种数据传输方法的流程示意图;
20.图3为本技术实施例提供的基于所述实际丢包率确定修正丢包率的流程示意图;
21.图4为本技术实施例提供的基于所述fec冗余度对所述实时传输数据进行编码传输的流程示意图;
22.图5为本技术实施例提供的另一种数据传输方法的流程示意图;
23.图6为本技术实施例提供的又一种数据传输方法的流程示意图;
24.图7为本技术实施例提供的再一种数据传输方法的流程示意图;
25.图8为本技术应用实施例提供的一种数据传输方法的示意图;
26.图9为本技术实施例提供的一种数据传输装置的结构示意图;
27.图10为图9所示的数据传输装置所对应的电子设备的结构示意图。
具体实施方式
28.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
30.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
31.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
32.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
33.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
34.术语解释:
35.数据往返时间(round trip time,简称rtt),是指数据从一端传输到另一端所需的时间。
36.前向纠错码(forward error correction,简称fec),是一种差错控制方式,它是指信号在被送入传输信道之前预先按一定的算法进行编码处理,加入带有信号本身特征的冗码,在接收端按照相应算法对接收到的信号进行解码,从而找出在传输过程中产生的错误码并将其纠正的技术。
37.里德所罗门前向纠错编码(reed-solomon forward error correction,简称rs-fec),是一种前向错误更正的信道编码,对由校正过采样数据所产生的有效多项式。
38.全球实时传输网,global realtime transport network,简称grtn。
39.为了解决现有技术中存在的“当网络状况非常优秀时,网络中进行传输的数据可能不会出现丢包,仍使用固定冗余率的编码操作不仅会浪费带宽,而且会增加传输成本”技术问题,本实施例提供了一种数据传输方法、设备及计算机存储介质,其中,数据传输方法的执行主体为数据传输装置,该数据传输装置可以实现为数据编码端或者数据发送端。
40.具体的,数据传输装置可以是任何具有一定数据传输能力的计算设备,此外,数据传输装置的基本结构可以包括:至少一个处理器。处理器的数量取决于数据传输装置的配置和类型。数据传输装置也可以包括存储器,该存储器可以为易失性的,例如ram,也可以为非易失性的,例如只读存储器(read-only memory,简称rom)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(operating system,简称os)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,数据传输装置还包括一些基本配置,例如网卡芯片、io总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、鼠标、输入笔、打印机等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,数据传输装置可以为pc(personal computer)终端、手持终端(例如:智能手机、平板电脑)、车载终端、集群服务器、常规服务器、云服务器、云主机、虚拟中心等等。
41.参考附图1所示,数据传输装置可以通信连接有数据接收端,数据接收端可以为pc(personal computer)终端、手持终端(例如:智能手机、平板电脑)、车载终端等。具体的,该数据传输装置可以获取数据往返时间,不同的数据往返时间用于标识网络的不同运行状态,例如,在数据往返时间比较小时,则说明网络的运行状态良好;在数据往返时间比较大时,则说明网络的运行状态一般或者较差。
42.为了能够提高网络资源的利用率,在获取到数据往返时间之后,可以对数据往返时间进行分析处理,以获取与实时传输数据中数据帧相对应的前向纠错码fec冗余度,需要注意的是,实时传输数据中的数据帧可以包括关键帧和非关键帧,关键帧和非关键帧所对应的fec冗余度可以相同或者不同;在获取到与实时传输数据中数据帧相对应的fec冗余度
之后,可以基于fec冗余度对实时传输数据进行编码,获得编码后数据,而后可以对编码后数据进行传输,从而有效地实现了可以基于fec冗余度对实时传输数据进行编码传输操作。
43.本实施例提供的技术方案,通过获取与实时传输数据相对应的数据往返时间,而后基于数据往返时间确定与实时传输数据中数据帧相对应的前向纠错码fec冗余度,并基于fec冗余度对实时传输数据进行编码传输,有效地实现了可以基于不同的数据往返时间来确定与数据帧相对应的不同冗余度,这样不仅实现了对实时传输数据进行灵活的冗余编码操作,有利于降低数据传输时所需要的网络带宽,而且可以提高网络资源的利用率,降低数据传输成本,进一步保证了该方法的实用性,有利于市场的推广与应用。
44.下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
45.图2为本技术实施例提供的一种数据传输方法的流程示意图;参考附图2所示,本实施例提供了一种数据传输方法,即该方法的执行主体可以为数据传输装置,其中,数据传输装置可以实现为软件、或者软件和硬件的组合,具体的,该数据传输方法可以包括以下步骤:
46.步骤s201:获取与实时传输数据相对应的数据往返时间。
47.步骤s202:基于数据往返时间,确定与实时传输数据中数据帧相对应的前向纠错码fec冗余度。
48.步骤s203:基于fec冗余度对实时传输数据进行编码传输。
49.下面对上述各个步骤进行详细说明:
50.步骤s201:获取与实时传输数据相对应的数据往返时间。
51.其中,实时传输数据是指需要进行实时传输操作的数据,该实时传输数据可以包括以下至少之一:实时声音流数据、实时视频流数据、实时文本流数据、实时图像流数据、实时动画流数据等等,本领域技术人员可以根据具体的应用场景来配置不同的实时传输数据。
52.另外,在对实时传输数据进行传输时,为了能够基于不同的网络运行状态实现快速、稳定地对实时传输数据进行传输,可以获取与实时传输数据相对应的数据往返时间,具体的,本实施例对于数据往返时间的具体获取方式不做限定,本领域技术人员可以根据具体的应用场景或者应用需求进行配置,在一些实例中,获取与实时传输数据相对应的数据往返时间可以包括:向数据接收端(可以为与数据传输装置通信连接的手机终端、平板电脑等能够进行数据通信操作的电子设备)发送数据包,并记录数据包所对应的发送时间,在数据接收端接收到数据包时,数据接收端可以向接收端发送确认信息,在接收端接收到确认信息后记录接收时间,而后基于接收时间和发送时间确定与实时传输数据相对应的数据往返时间,具体的,可以将接收时间与发送时间之间的时间差值确定为数据往返时间,从而有效地保证了对数据往返时间进行确定的准确可靠性。
53.在另一些实例中,获取与实时传输数据相对应的数据往返时间可以包括:获取用于对实时传输数据进行传输的通信链路,确定与通信链路相对应的网络运行特征(网络传输速率、网络带宽等等);基于网络运行特征确定与实时传输数据相对应的数据往返时间,具体的,预先配置有用于对网络运行特征进行分析处理的数据处理算法或者机器学习模
型,而后利用数据处理算法或者机器学习模型对网络运行特征进行分析处理,以获得与实时传输数据相对应的数据往返时间,从而有效地保证了对数据往返时间进行确定的准确可靠性。
54.步骤s202:基于数据往返时间,确定与实时传输数据中数据帧相对应的前向纠错码fec冗余度。
55.在获取到数据往返时间之后,可以对数据往返时间进行分析处理,以确定与实时传输数据中数据帧相对应的fec冗余度,其中,实时传输数据中的数据帧可以包括:关键帧和非关键帧,关键帧可以包括i帧,非关键帧可以包括b帧和/或p帧,在不同的数据往返时间的应用场景中,实时传输数据中的不同数据帧可以对应有不同的fec冗余度。
56.具体的,本实施例对于fec冗余度的具体实现方式不做限定,本领域技术人员可以根据具体的应用场景或者应用需求进行配置,在一些实例中,预先配置有数据往返时间和fec冗余度之间的映射关系,基于映射关系和数据往返时间即可确定与实时传输数据中数据帧相对应的fec冗余度,从而有效地保证了对fec冗余度进行确定的准确可靠性。在另一些实例中,预先配置有用于对数据往返时间进行分析处理的机器学习模型,在获取到数据往返时间之后,可以将数据往返时间输入至机器学习模型中,从而可以获取到与实时传输数据中数据帧相对应的前向纠错码fec冗余度。
57.另外,fec冗余度可以对应有不同的计算方式,不同计算的fec冗余度可以对应有不同的取值范围,在一些实例中,fec冗余度可以为冗余数据与原有数据之间的比值,此时,fec冗余度可以为大于1或者小于1的数值,举例来说,原有数据的数据量为k,冗余数据的数据量为n,此时,fec冗余度可以为n/k,此时,fec冗余度可以为大于1或者小于1的数值。在另一些实例中,fec冗余度可以为冗余数据与原有数据与冗余数据之间和值的比值,此时,fec冗余度为小于1的数值,举例来说,原有数据的数据量为k,冗余数据的数据量为n,此时,fec冗余度可以为n/(k n),此时,fec冗余度可以为小于1的数值。
58.步骤s203:基于fec冗余度对实时传输数据进行编码传输。
59.在获取到fec冗余度之后,则可以基于fec冗余度对实时传输数据进行编码处理,获得编码后数据,而后则可以将编码后数据传输至数据接收端,从而有效地实现了对实时传输数据进行编码传输操作,进一步提高了数据传输的质量和效率。
60.本实施例提供的数据传输方法,通过获取与实时传输数据相对应的数据往返时间,而后基于所述数据往返时间确定与所述实时传输数据中数据帧相对应的前向纠错码fec冗余度,并基于所述fec冗余度对所述实时传输数据进行编码传输,有效地实现了可以基于不同的数据往返时间来确定与数据帧相对应的不同冗余度,这样不仅实现了对实时传输数据进行灵活的冗余编码操作,有利于降低数据传输时所需要的网络带宽,而且可以提高网络资源的利用率,降低数据传输成本,进一步保证了该方法的实用性,有利于市场的推广与应用。
61.在一些实例中,本实施例提供了一种确定fec冗余度的实现方式,具体的,本实施例中的基于数据往返时间,确定与实时传输数据中数据帧相对应的前向纠错码fec冗余度可以包括:
62.步骤s2021:在数据往返时间小于第一时间时,则将实时传输数据中的关键数据帧的fec冗余度配置为预设值。
63.步骤s2022:在数据往返时间大于或等于第一时间时,则基于与实时传输数据相对应的实际丢包率确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
64.其中,预先配置有用于对数据往返时间进行分析处理的第一时间,本实施例对于第一时间的具体时间长短不做限定,例如:第一时间可以为10ms、20ms或者30ms等等。在获取到数据往返时间之后,可以将数据往返时间与第一时间进行分析比较,在数据往返时间小于第一时间时,则说明此时的网络运行状态的数据延时比较小,即网络运行状态良好,此时的实时传输数据可能不会出现丢包,或者,实时传输数据的丢包率较低,因此,为了能够提高网络资源的利用率,避免浪费带宽,则可以获取实时传输数据中的关键数据帧(包括i帧),并将关键数据帧的fec冗余度配置为预设值,具体的,预设值可以为预先设置的用于在网络良好的情况下与关键数据帧所对应的冗余度值,在一些实例中,fec冗余度可以为小于或等于30%的数值,例如:fec冗余度可以为5%、10%、15%、20%或者30%等等。
65.在数据往返时间与第一时间之间的分析处理结果为数据往返时间大于或等于第一时间时,则说明此时的网络运行状态的数据延时比较大,即网络运行状态不太好,此时的实时传输数据出现丢包的概率较高,因此,为了能够保证对实时传输数据进行传输的质量和效果,则可以获取与实时传输数据相对应的实际丢包率,而后可以对与实时传输数据相对应的实际丢包率进行分析处理,以确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。需要注意的是,不同的实际丢包率可以对应有不同的fec冗余度,且关键数据帧所对应的fec冗余和非关键数据帧所对应的fec冗余度可以相同或者不同。
66.另外,本实施例对于基于与实时传输数据相对应的实际丢包率确定与实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度的具体实现方式不做限定,本领域技术人员可以根据具体的应用场景或者应用需求进行配置,在一些实例中,预先配置有实际丢包率与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度之间的映射关系,在获取到实际丢包率之后,则可以基于实际丢包率和映射关系来确定实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度。或者,在另一些实例中,预先训练有用于对fec冗余度进行确定的机器学习模型,在获取到实时传输数据和实际丢包率之后,可以将实时传输数据和实际丢包率输入至机器学习模型,从而可以获得与实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度。
67.本实施例中,在数据往返时间小于第一时间时,将实时传输数据中的关键数据帧的fec冗余度配置为预设值,在数据往返时间大于或等于第一时间时,则基于与实时传输数据相对应的实际丢包率确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度,从而有效地实现了可以基于不同的数据往返时间确定与实时传输数据相对应的不同的fec冗余度,即实现了对实时传输数据所对应的fec冗余度进行灵活的调整和配置操作,这样不仅保证了对实时传输数据进行传输的稳定可靠性,并且还有效地降低了对实时传输数据所需要的网络带宽资源和数据传输所需要的成本,同时也提高了网络资源的利用率。
68.在又一些实例中,为了能够提高对fec冗余度进行确定的准确可靠性,除了预先配置有用于对数据往返时间进行分析处理的第一时间之外,还可以配置有用于对数据往返时
间进行分析处理的第二时间,该第二时间可以大于第一时间,此时,本实施例中的基于与实时传输数据相对应的实际丢包率确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度可以包括:
69.步骤s20221:在数据往返时间小于第二时间时,则基于实际丢包率确定修正丢包率,基于修正丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度,其中,实际丢包率大于修正丢包率。
70.其中,预先配置有用于对数据往返时间进行分析处理的第一时间和第二时间,第二时间大于第一时间,本实施例对于第二时间的具体时间长短不做限定,例如:第二时间可以为100ms、120ms、130ms或者150ms等等。在获取到数据往返时间之后,可以将数据往返时间与第一时间和第二时间进行分析比较,在数据往返时间大于第一时间、且小于第二时间时,则说明此时的网络运行状态的数据时延比较大,即网络运行状态不太好,此时的实时传输数据出现丢包的概率较高,因此,为了能够提高网络资源的利用率,同时保证数据传输的稳定可靠性,可以获取实际丢包率,在获取到实际丢包率之后,可以对实际丢包率进行修正处理,从而可以获得修正丢包率,所获得的修正丢包率小于实际丢包率。
71.在获取到修正丢包率之后,则可以对修正丢包率进行分析处理,以确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度,从而有效地保证了对实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度进行确定操作。其中,本实施例对于基于修正丢包率确定实时传输数据中关键数据帧(i帧)和非关键数据帧(b帧、p帧)各自对应的fec冗余度的具体实现方式不做限定,本领域技术人员可以根据具体的应用场景或者应用需求进行配置,在一些实例中,基于修正丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度可以包括:获取与修正丢包率的第一冗余度表,第一冗余度表中包括多个修正丢包率以及与各个修正丢包率相对应的fec冗余度;基于第一冗余度表和修正丢包率,确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
72.具体的,预先配置有与修正丢包率相对应的第一冗余度表,该第一冗余度表中包括多个修正丢包率以及与各个修正丢包率相对应的fec冗余度,即预先配置有修正丢包率与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度之间的映射关系,在获取到修正丢包率之后,则可以基于修正丢包率和第一冗余度表进行查表处理,从而可以确定实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度。
73.在另一些实例中,预先训练有用于对fec冗余度进行确定的机器学习模型,在获取到实时传输数据和修正丢包率之后,可以将实时传输数据和修正丢包率输入至机器学习模型,从而可以获得与实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度。
74.步骤s20222:在数据往返时间大于或等于第二时间时,则根据实际丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
75.在数据往返时间与第一时间和第二时间之间的分析处理结果为数据往返时间大于或等于第二时间时,则说明此时的网络运行状态的数据时延非常大,即网络运行状态非常不好,此时的实时传输数据出现丢包的概率较高,因此,为了能够保证对实时传输数据进
行传输的质量和效果,则可以获取与实时传输数据相对应的实际丢包率,而后可以对与实时传输数据相对应的实际丢包率进行分析处理,以确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。需要注意的是,不同的实际丢包率可以对应有不同的fec冗余度,且关键数据帧所对应的fec冗余和非关键数据帧所对应的fec冗余度可以相同或者不同。
76.另外,本实施例对于基于与实时传输数据相对应的实际丢包率确定与实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度的具体实现方式不做限定,本领域技术人员可以根据具体的应用场景或者应用需求进行配置,在一些实例中,根据实际丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度可以包括:获取与实际丢包率相对应的第二冗余度表,第二冗余度表中包括多个实际丢包率以及与各个实际丢包率相对应的fec冗余度;基于第二冗余度表和实际丢包率,确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
77.具体的,预先配置有实际丢包率与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度之间的第二冗余度表,第二冗余度表中包括多个实际丢包率以及与各个实际丢包率相对应的fec冗余度,即预先配置有实际丢包率与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度之间的映射关系。需要注意的是,第一冗余度表中所包括的映射关系与第二冗余度表中所包括的映射关系可以相同或者不同。
78.在获取到实际丢包率之后,则可以基于实际丢包率和第二冗余度表进行冗余度查表操作,从而可以确定实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度。
79.在另一些实例中,预先训练有用于对fec冗余度进行确定的机器学习模型,在获取到实时传输数据和实际丢包率之后,可以将实时传输数据和实际丢包率输入至机器学习模型,从而可以获得与实时传输数据中关键数据帧(包括i帧)和非关键数据帧(包括:b帧、p帧)各自对应的fec冗余度。
80.本实施例中,在数据往返时间小于第二时间时,基于实际丢包率确定修正丢包率,基于修正丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度,在数据往返时间大于或等于第二时间时,则根据实际丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度,从而有效地实现了可以基于不同的数据往返时间和不同网络丢包情况确定与实时传输数据相对应的不同的fec冗余度,这样不仅保证了对实时传输数据进行传输的稳定可靠性,并且兼顾了服务器cpu成本、网络带宽成本与数据抗丢包的效果,进一步提高了数据传输的质量和效果。
81.图3为本技术实施例提供的基于实际丢包率确定修正丢包率的流程示意图;参考附图3所示,在数据往返时间小于第二时间时,则需要基于实际丢包率确定修正丢包率,本实施例提供了一种对修正丢包率进行确定的实现方式,具体的,本实施例中的基于实际丢包率确定修正丢包率可以包括:
82.步骤s301:确定数据接收端所能接受的最大重传次数。
83.其中,数据传输装置通信连接有数据接收端,数据接收端能够接收通过数据传输装置所发送的实时传输数据,当实时传输数据出现丢包情况时,则可以通过重传策略或者fec策略来抵抗数据丢包的情况。当利用重传策略来实现数据恢复操作时,为了能够保证数
据接收端可以进行正常的数据处理操作,数据接收端往往会配置有能接收的最大重传次数,由于修正丢包率与数据接收端所能接受的最大重传次数相关,因此,为了能够准确地基于实际丢包率来确定修正丢包率,则可以确定数据接收端所能接受的最大重传次数。在一些实例中,预先配置有数据接收端所能接受的最大重传次数,不同的数据接收端可以对应有相同或者不同的最大重传次数,预先配置的最大重传次数可以存储在预设区域或者数据接收端中,通过访问预设区域或者数据接收端可以获取到数据接收端所能接受的最大重传次数。
84.在另一些实例中,确定数据接收端所能接受的最大重传次数可以包括:确定数据接收端所能接受的最大重传时间;基于最大重传时间和数据往返时间,确定最大重传次数。
85.具体的,为了能够确定数据接收端所能接受的最大重传次数,可以先确定数据接收端所能接受的最大重传时间,其中,最大重传时间可以是预先配置的,不同的数据接收端可以对应有相同或者不同的最大重传时间,预先配置的最大重传时间可以存储在预设区域或者数据接收端中,通过访问预设区域或者数据接收端可以获取到最大重传时间。另外,该最大重传时间用于标识在数据传输装置与数据接收端进行数据传输过程中,在数据接收端未出现卡顿、断连等异常情况时所对应的最大时间间隔,例如:在数据传输装置与数据接收端进行数据传输过程中,在数据传输的时间间隔为80ms时未出现卡顿或者断连,在数据传输的时间间隔大于或等于81ms时则会出现卡顿或者断连,进而则可以确定数据接收端所能接受的最大重传时间为80ms。
86.在获取到最大重传时间和数据往返时间之后,可以对最大重传时间和数据往返时间进行分析处理,以确定数据接收端所能接受的最大重传次数,在一些实例中,预先训练有用于确定最大重传次数的机器学习模型,在获取到最大重传时间和数据往返时间之后,可以将最大重传时间和数据往返时间输入至机器学习模型中,从而可以获得数据接收端所能接受的最大重传次数。或者,在另一些实例中,在获取到最大重传时间和数据往返时间之后,可以获取最大重传时间与数据往返时间之间的比值,而后对比值进行取整处理(向上取整或者向下取整),进而获得最大重传次数,从而有效地保证了对最大重传次数进行确定的准确可靠性。
87.步骤s302:基于最大重传次数和实际丢包率,确定修正丢包率。
88.在获取到最大重传次数和实际丢包率之后,可以对最大重传次数和实际丢包率进行分析处理,以确定修正丢包率。在一些实例中,基于最大重传次数和实际丢包率,确定修正丢包率可以包括:将以实际丢包率作为底数、以最大重传次数作为指数参数的指数确定为修正丢包率,举例来说,在实际丢包率为l,最大重传次数为r时,则修正丢包率可以为l`=lr,从而有效地保证了对修正丢包率进行确定的准确可靠性。
89.在另一些实例中,基于最大重传次数和实际丢包率,确定修正丢包率可以包括:基于最大重传次数确定用于对实际丢包率进行调整的指数参数,该指数参数小于或等于最大重传次数,而后将实际丢包率为底数和指数参数所构成的指数确定为修正丢包率,举例来说,在实际丢包率为l,最大重传次数为r时,而后可以基于最大重传次数确定指数参数k,k小于或等于r,而后,修正丢包率可以为l`=lk,从而有效地保证了对修正丢包率进行确定的准确可靠性。
90.本实施例中,通过确定数据接收端所能接受的最大重传次数,而后基于最大重传
次数和实际丢包率确定修正丢包率,从而有效地保证了对修正丢包率进行确定的准确可靠性,进而提高了基于修正丢包率对fec冗余度进行确定的准确率。
91.图4为本技术实施例提供的基于fec冗余度对实时传输数据进行编码传输的流程示意图;参考附图4所示,本实施例提供了一种结合重传策略和fec冗余度对实时传输数据进行编码传输的实现方式,具体的,本实施例中的基于fec冗余度对实时传输数据进行编码传输可以包括:
92.步骤s401:开启重传。
93.其中,在对实时传输数据进行传输的过程中,为了保证实时传输数据进行传输的稳定可靠性,可以开启重传功能,以能够实现在不同的网络运行状态的网络环境中进行重传操作,具体的,在数据接收端与数据传输装置之间的网络运行状态比较良好时,此时实时传输数据所对应的丢包率比较低,在实时传输数据出现丢包时,仅通过重传操作可以有效地抵抗实时传输数据的丢包情况;在数据接收端与数据传输装置之间的网络运行状态比较差时,此时实时传输数据所对应的丢包率可能会比较高,在实时传输数据出现丢包时,仅仅通过重传操作可能无法有效地保证实时传输数据的恢复操作,进而可以通过fec冗余编码操作来回复实时传输数据。因此,为了能够保证对实时传输数据进行传输的稳定可靠性,在对实时传输数据进行编码传输的过程中,可以开启重传功能,以可以实时地基于数据接收端所对应的网络运行状态适时地启用重传操作。
94.步骤s402:基于数据往返时间,确定与实时传输数据相对应的重传策略。
95.由于不同的数据往返时间用于标识不同的网络运行状态,在利用不同的网络进行实时传输数据的传输操作时,可以对应有不同的重传策略,因此,在获取到数据往返时间之后,可以对数据往返时间进行分析处理,以确定与实时传输数据相对应的重传策略。在一些实例中,预先配置有第一重传策略和第二重传策略,其中,第一重传策略用于标识重传操作所对应的重传请求之间的时间间隔可以相同,第二重传策略用于标识重传操作所对应的重传请求之间的时间间隔呈指数变化。具体实施时,本实施例中的基于数据往返时间,确定与实时传输数据相对应的重传策略可以包括:在数据往返时间小于第一时间时,则确定与实时传输数据相对应的重传策略为第一策略;在数据往返时间大于或等于第一时间时,则确定与实时传输数据相对应的重传策略为第二策略,第二策略用于标识重传操作之间的时间间隔呈指数变化。
96.具体的,在数据往返时间小于第一时间时,则说明此时的网络运行状态的数据时延比较小,即网络运行状态良好,此时的实时传输数据可能不会出现丢包,或者,实时传输数据的丢包率较低,通过重传操作即可保证实时传输数据的恢复操作,进而则可以确定与实时传输数据相对应的重传策略为第一策略。在数据往返时间大于或等于第一时间时,则说明此时的网络运行状态的数据时延比较大,即网络运行状态不太好,此时的实时传输数据出现丢包的概率较高,因此,为了能够保证对实时传输数据进行传输的质量和效果,不仅需要开启重传操作,并且还需要基于fec冗余度来恢复计算实时传输数据,由于此时需要重传策略和fec编码策略同时启用,因此,为了能够尽量低减少所需要的网络带宽资源,可以尽可能地减少重传操作,进而可以确定与实时传输数据相对应的重传策略为第二策略,第二策略用于标识重传操作所对应的重传请求之间的时间间隔呈指数变化,从而有效地实现了可以基于不同的数据往返时间来确定与实时传输数据相对应的不同的重传策略。
97.步骤s403:基于fec冗余度和重传策略对实时传输数据进行编码传输。
98.在获取到fec冗余度和重传策略之后,可以基于fec冗余度和重传策略对实时传输数据进行编码传输,具体的,在网络运行状态良好的时候,则可以基于重传策略对实时传输数据进行编码传输,在网络运行状态一般的时候,则可以基于fec冗余度对实时传输数据进行编码传输,在网络运行状态较差的时候,则可以基于重传策略和fec冗余度对实时传输数据进行编码传输,从而有效地、灵活地基于fec冗余度和重传策略对实时传输数据进行编码传输,进一步提高了该数据传输方法使用的灵活程度。
99.本实施例中,通过开启重传,而后基于数据往返时间确定与实时传输数据相对应的重传策略,并基于fec冗余度和重传策略对实时传输数据进行编码传输,有效地实现了可以灵活地基于fec冗余度和重传策略对实时传输数据进行编码传输,进一步提高了该数据传输方法使用的灵活程度。
100.图5为本技术实施例提供的另一种数据传输方法的流程示意图;在上述任意一个实施例的基础上,参考附图5所示,由于网络的不同运行状态可以采用不同的数据传输策略,因此,为了能够保证数据传输的稳定可靠性,在获取与实时传输数据相对应的数据往返时间之前,本实施例中的方法还可以包括:
101.步骤s501:获取用于对实时传输数据进行传输的网络带宽。
102.其中,为了能够保证对实时传输数据进行传输的稳定可靠性,可以获取用于对实时传输数据进行传输的网络带宽,具体的,可以通过网络带宽测试工具来获取用于对实时传输数据进行传输的网络带宽,或者,通过发送测试数据包来获取到数据包的传输速率,基于传输速率来确定用于对实时传输数据进行传输的网络带宽。
103.步骤s502:在网络带宽大于或等于预设带宽时,则允许获取与实时传输数据相对应的数据往返时间。
104.在获取到网络带宽之后,可以将网络带宽与预设带宽进行分析比较,在网络带宽大于或等于预设带宽时,则说明此时的网络带宽对于实时传输数据而言网络资源较为充足,此时,则可以允许获取与实时传输数据相对应的数据往返时间,其中,数据往返时间的具体获取方式与上述实施例中的步骤s201的具体获取方式相类似,具体可参考上述陈述内容,在此不再赘述。
105.步骤s503:在网络带宽小于预设带宽时,则禁止获取与实时传输数据相对应的数据往返时间。
106.在网络带宽小于预设带宽时,则说明此时的网络资源对于实时传输数据而言不充足,此时,为了保证对实时传输数据进行有效地传输操作,则可以禁止获取与实时传输数据相对应的数据往返时间。
107.在一些实例中,在网络带宽小于预设带宽时,为了能够实现对实时传输数据进行稳定、有效地传输操作,参考附图6所示,本实施例中的方法还包括:
108.步骤s601:获取与实时传输数据中关键数据帧和非关键数据帧各自对应的优先级,其中,关键数据帧的优先级高于非关键数据帧的优先级。
109.其中,在对实时传输数据进行传输时,若网络带宽不充足,需要对实时传输数据进行丢包处理,为了能够保证实时传输数据的传输稳定性,由于实时传输数据中可以包括关键数据帧和非关键数据帧,因此,预先配置有与实时传输数据中所包括的不同数据帧相对
应的优先级,具体的,不同的数据帧可以对应有不同的优先级,关键数据帧的优先级高于非关键数据帧的优先级,该优先级越高,则在对实时传输数据进行丢包操作时,可以优先丢弃优先级低的数据帧,在优先级低的数据帧丢弃完毕之后,可以再丢弃优先级高的数据帧。
110.举例来说,在网络带宽不足时,则可以根据实时传输数据中各个数据帧所对应的优先级进行丢包处理,具体的丢包顺序依次为:非关键数据帧所对应的冗余数据、关键帧所对应的冗余数据、非关键数据帧和关键数据帧。
111.步骤s602:确定与实时传输数据相对应的数据量。
112.在对实时传输数据进行传输的过程中,可以对实时传输数据进行分析处理,以确定与实时传输数据相对应的数据量,其中,不同的实时传输数据可以对应有相同或者不同的数据量。
113.步骤s603:基于优先级、数据量和网络带宽,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度。
114.在获取到优先级、数据量和网络带宽之后,可以对优先级、数据量和网络带宽进行分析处理,以确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度。在一些实例中,预先训练有用于确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度的机器学习模型,在获取到优先级、数据量、网络带宽和实时传输数据之后,可以将优先级、数据量、网络带宽和实时传输数据输入至机器学习模型中,从而可以获得实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度。
115.在另一些实例中,基于优先级、数据量和网络带宽,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度可以包括:基于数据量和网络带宽,确定与实时传输数据相对应的冗余数据量;基于冗余数据量和优先级,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度。
116.具体的,在获取到数据量和网路带宽之后,可以对数据量和网络带宽进行分析处理,以确定与实时传输数据相对应的冗余数据量,在一些实例中,冗余数据量为网络带宽与数据量之间的差值。在获取到冗余数据量之后,可以对冗余数据量和优先级进行分析处理,以确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度,在一些实例中,冗余度可以为0。
117.步骤s604:基于实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度对实时传输数据进行编码传输。
118.在获取到实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度之后,则可以基于fec冗余度对实时传输数据进行编码处理,进而可以获得编码后数据,而后则可以将编码后数据传输至数据接收端,从而有效地实现了对实时传输数据进行数据传输操作,进一步提高了数据传输的质量和效率。
119.本实施例中,通过获取用于对实时传输数据进行传输的网络带宽,在网络带宽大于或等于预设带宽时,则允许获取与实时传输数据相对应的数据往返时间,在网络带宽小于预设带宽时,则禁止获取与实时传输数据相对应的数据往返时间;有效地实现了可以基于不同的网络带宽和数据往返时间来确定与数据帧相对应的不同冗余度,这样不仅会降低编码的冗余率,而且还会节省网络带宽,降低网络带宽成本,提高网络资源的利用率,进一步保证了该方法的实用性,有利于市场的推广与应用。
120.图7为本技术实施例提供的再一种数据传输方法的流程示意图;在任意一个实施例的基础上,参考附图7所示,为了进一步提高该数据传输方法的实用性,本实施例中的方法还可以包括:
121.步骤s701:实时统计与实时传输数据相对应的fec编码码率。
122.在对实时传输数据进行传输时,为了能够了解对实时传输数据进行fec冗余编码与网络之间的匹配情况,则可以实时统计与实时传输数据相对应的fec编码码率。在一些实例中,实时统计与实时传输数据相对应的fec编码码率可以包括:确定用于实时统计fec编码码率的数据埋点,利用数据埋点实时统计与实时传输数据相对应的fec编码码率。或者,在另一些实例中,实时统计与实时传输数据相对应的fec编码码率可以包括:实时统计与实时传输数据相对应的fec编码数据量和传输时间;将fec编码数据量与传输时间的比值确定为fec编码码率。
123.步骤s702:基于fec编码码率,确定与实时传输数据相对应的实际冗余数据编码量。
124.在获取到fec编码码率之后,可以对fec编码码率进行分析处理,以确定与实时传输数据相对应的实际冗余数据编码量,具体的,基于fec编码码率,确定与实时传输数据相对应的实际冗余数据编码量可以包括:获取fec编码码率与实际冗余数据编码量之间的映射关系,基于映射关系和fec编码码率来确定实际冗余数据编码量。
125.步骤s703:基于实际冗余数据编码量确定网络变化趋势。
126.具体的,由于实际冗余数据编码量可以网络的不同运行状态而进行调整的,即实际冗余数据编码量与网络运行状态之间存在对应关系,因此,在获取到实际冗余数据编码量之后,可以对实际冗余数据编码量进行分析处理,以确定网络变化趋势。在一些实例中,可以基于一段时间内的实际冗余数据编码量来确定网络变化趋势。
127.步骤s704:在网络变化趋势不满足预期时,则基于网络变化趋势生成提示信息,以提示用户基于提示信息对网络进行运维调整。
128.在获取到网络变化趋势之后,可以对网路变化趋势进行分析处理,以检测网络变化趋势是否满足预期,在网络变化趋势不满足预期时,则说明此时的网络变化趋势并没有按照用户所预期的方式进行变化,此时,为了能够使得用户及时了解到网络运行状态与冗余编码之间的匹配情况,则可以基于网络变化趋势生成提示信息,该提示信息用于标识网络变化趋势不满足预期,在一些实例中,提示信息可以包括以下至少之一:文本提示信息、语音提示信息、灯光提示信息等等,在生成提示信息之后,则可以提示用户基于提示信息对网络进行运维调整,进而提高了该方法的实用性。
129.本实施例中,通过实时统计与实时传输数据相对应的fec编码码率,基于fec编码码率,确定与实时传输数据相对应的实际冗余数据编码量,基于实际冗余数据编码量确定网络变化趋势,在网络变化趋势不满足预期时,则基于网络变化趋势生成提示信息,以提示用户基于提示信息对网络进行运维调整,从而有效地实现了可以基于实时统计的fec编码码率了解网络的运行状态,在网络的运行状态超出预期时,则可以及时地提示用户对网络进行查看以及运维操作,进一步保证了网络运行的安全可靠性,提高了该方法的实用性。
130.具体应用时,参考附图8所示,在发送端通过服务器向接收端实时发送数据时,可以通过fec编码策略对数据进行编码传输操作,具体的,本应用实施例提供了一种基于网络
丢包率、往返延迟、重传请求等指标,动态调节前向纠错编码冗余度的方法,用于在对实时流媒体进行传输的过程中,优化数据传输质量,同时节省部分多余的网络带宽。具体的,该方法可以包括:
131.步骤1:获取用于对实时流媒体数据进行传输的网络带宽。
132.步骤2:在网络带宽大于或等于预设带宽时,则允许获取与实时流媒体数据相对应的数据往返时间。
133.步骤3:在网络带宽小于预设带宽时,则禁止获取与实时流媒体数据相对应的数据往返时间。
134.情况一、在带宽充足时(即在网络带宽大于或等于预设带宽时),为了能够灵活地确定与实时流媒体相对应的fec冗余度,在获取到与实时传输数据相对应的数据往返时间之后,可以将数据往返时间与预设的第一时间阈值和第二时间阈值进行分析比较,具体的,本实施例中的方法可以包括:
135.步骤s11:将数据往返时间rtt与预设的第一时间阈值(即defaultlowrtt)、第二时间阈值(即defaulthighrtt)进行分析比较。
136.其中,第二时间阈值可以大于第一时间阈值,第一时间阈值defaultlowrtt的具体数值范围和第二时间阈值defaulthighrtt的具体数值范围可配置,本领域技术人员可以根据具体的应用场景或者应用需求进行配置,例如,defaultlowrtt可以为20ms,defaulthighrtt可以为150ms。
137.步骤s12:在rtt《defaultlowrtt时,确定开启重传功能,并控制实时流媒体数据仅保留i帧数据(即关键帧数据),并将i帧数据所对应的fec冗余度配置为预设值keyframelowrttred。
138.其中,预设值keyframelowrttred的具体数值范围可以根据具体的应用场景或者应用需求进行配置,例如:在冗余度的范围为小于1时,keyframelowrttred可以为10%、20%或者30%等等,一般情况下,预设值可以配置在30%以下。在rtt《defaultlowrtt时,则说明此时接收端所对应的往返延时比较小,此时,在实时流媒体数据出现丢包情况时,接收端可以基于重传请求来保证实时流媒体数据传输的稳定性,即通过重传功能即可解决数据丢包的情况,为了减少数据资源的浪费,同时减少丢包率出现波动而影响数据接收的稳定可靠性,可以将实时流媒体数据所对应的fec冗余度配置较小,在一些特殊实例中,可以将fec冗余度配置为0,即对实时流媒体数据不进行任何的冗余编码操作,直接将实时流媒体数据传输至接收端。
139.步骤s13:在defaultlowrtt《=rtt时,确定开启重传和fec编码功能,具体的,重传请求使用指数退避的优化策略进行传输,并获取与实时流媒体数据相对应的实际丢包率,基于实际丢包率确定与实时流媒体数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
140.具体的,在defaultlowrtt《=rtt时,则将rtt与defaulthighrtt进行分析比较,在rtt《defaulthighrtt时,则对实际丢包率进行修正处理,获得修正后丢包率,基于修正后丢包率进行查表确定与实时流媒体数据中关键数据帧和非关键数据帧各自对应的fec冗余度,需要注意的是,fec冗余度越高,则说明通过fec编码对实时流媒体数据进行恢复的能力越高,但是,也需要更多的网络带宽资源对实时流媒体数据进行传输。
141.其中,对实际丢包率进行修正处理,获得修正后丢包率可以包括:
142.步骤s13a:获取接收端所能接受的最大可忍受的重传时间t。
143.其中,最大可忍受的重传时间t=maxtoleratedtimems所对应的具体数值可以是预先配置的,在一些实例中,t可以为100ms、150ms等等。
144.步骤s13b:基于最大可忍受的重传时间t和数据往返时间,确定接收端所能接受的最大重传次数,具体的,最大重传次数r=t/当前rtt。
145.步骤s13c:基于重传次数对实际丢包率进行修正处理,获得修正后丢包率。
146.其中,实际丢包率为l,修正后丢包率l`,重传次数为r,此时,修正后丢包率l'=lr,由于实际丢包率l为大于零且小于1的值,因此,修正后丢包率l`《实际丢包率l。
147.另外,预先配置有第一冗余度表,具体详见下述表格,在获取到修正后丢包率之后,基于修正后丢包率进行查表处理,以确定与实时流媒体数据中关键数据帧和非关键数据帧各自对应的fec冗余度,需要注意的是,下述第一冗余度表中的具体数值和对应关系可以基于具体的应用场景或者应用需求进行任意调整。
148.第一冗余度表:
[0149][0150][0151]
另外,在defaulthighrtt《=rtt时,确定开启重传和fec编码功能,具体的,重传请求使用指数退避的优化策略进行传输,但实际上,实时流媒体数据的恢复以fec编码为主,此时可以基于实际丢包率进行查表确定与实时流媒体数据中关键数据帧和非关键数据帧各自对应的fec冗余度,具体的,预先配置有第二冗余度表,第二冗余度表可以与第一冗余度表相同或者不同,在获取到实际丢包率之后,基于实际丢包率进行查表处理,以确定与实时流媒体数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
[0152]
值得说明的是,在对实时流媒体数据进行重传操作时,可以对原始数据包和fec冗
余数据包同时进行重传操作,但是此时会占用较多的网络资源,因此,为了能够提高数据资源的利用率,在对实时流媒体数据进行传输时,可以只对原始数据包进行重传操作,而无需对fec冗余数据包进行传输。
[0153]
另外,在对实时流媒体数据进行传输时,若重传次数变多时,很容易出现接收端来不及接收数据的情况,重传操作下的数据恢复能力就会变弱,因此,为了尽量减少重传次数,避免浪费较多的数据传输资源,在需要进行重传操作时,则可以将重传请求配置为按照指数退避的策略进行传输。
[0154]
为了实现重传操作,可以预先配置有重传请求之间的时间间隔和基础时间间隔系数defaultbase,其中,重传请求的最大超时时间可以为t_max,最小重传时间间隔defaultminretryinterval可以为5ms,最大重传时间间隔defaultmaxrtt可以为160ms,而后可以将(重传次数-1)作为指数,计算一个重传间隔的系数k。举例来说,在基础时间间隔系数defaultbase为1.25时,第1次重传请求与第2次重传请求之间的发送间隔为1rtt,第2次重传请求与第3次重传请求之间的发送间隔为1.25rtt,第3次重传请求与第4次重传请求之间的发送间隔为1.252rtt,即重传请求之间所对应的时间间隔呈预先参数(例如:1.25、1.3或者1.5等等)的指数关系进行增加,从而有效地实现了每进行一次重传操作,重传操作之间的间隔时间会越来越长。
[0155]
需要注意的是,所配置的重传请求之间的时间间隔的基础值base_delay=min(当前rtt,defaultmaxrtt),即在获取到当前往返时延和用于对当前往返时延进行分析处理的最大时间限值之间的比较小的值,在实际进行重传操作时,重传请求之间所对应的实际重传时间间隔resend_delay=max(base_delay*k,defaultminretryinterval),即在获取到重传间隔的系数k之后,可以获取基础值与系数k的乘积值,将乘积值与最小重传时间间隔进行比较,该实际重传时间间隔可以为乘积值与最小重传时间间隔中比较大的数值,通过上述操作即可实现在接收端所能够接收的重合次数范围内,可以尽量进行较少次数的重传操作即可保证数据传输的稳定可靠性。
[0156]
情况二,在带宽资源有限时,为了能够准确地确定实时流媒体数据中各个数据帧的冗余度,可以执行以下步骤:
[0157]
步骤21:获取与实时传输数据中关键数据帧和非关键数据帧各自对应的优先级,其中,关键数据帧的优先级高于非关键数据帧的优先级。
[0158]
步骤22:确定与实时传输数据相对应的数据量。
[0159]
步骤23:基于优先级、数据量和网络带宽,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度。
[0160]
步骤24:基于实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度对实时传输数据进行编码传输。
[0161]
具体的,基于实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度对实时传输数据进行编码传输可以包括:基于数据量和网络带宽,确定与实时传输数据相对应的冗余数据量;基于冗余数据量和优先级,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度,从而有效地实现了冗余率的设定需要参考网络带宽的上限,不能超过,在网络带宽不充足时,则可以基于数据帧的保护优先级来配置fec冗余度。
[0162]
举例来说,在网络带宽为110k时,实时流媒体数据所对应的数据量为100k时,则下
一秒数据只能发送10k的冗余数据,此时,若实时流媒体数据中的冗余度为20%时,则会产生20k的冗余数据,此时则会超出了网络带宽的上限值,因此,则可以删除实时流媒体数据中部分数据所对应的fec冗余数据包,一般情况下,可以先丢弃非关键数据帧所对应的fec冗余数据包,若仍然超出网络带宽,则可以继续丢弃关键数据帧所对应的至少部分fec冗余数据包,以保证对实时流媒体数据进行传输的稳定可靠性。
[0163]
本实施例提供的技术方案,有效地实现了可以根据传输网络的rtt、传输协议的重传策略、传输网络的实际丢包状态动态调整fec编码冗余度,具体的,在网络延迟极低时,可以降低编码冗余率,从而可以有效地节省带宽;在存在丢包率的网络中,且允许重传的情况下,可以根据考虑重传的丢包率来动态调整编码冗余率,同样可以在一定程度上节省网络带宽;在限制了冗余数据所占带宽的情况下,所配置的冗余数据并不会超过带宽上限,而后基于可配置的冗余数据量来同态调整编码冗余率,从而有效地实现了在各种不同的运行场景中,对重传功能和冗余功能进行了一个更深层次的配合,这样不仅拓展了该方法所适用的应用场景和范围,同时降低了网络带宽成本,并兼顾了数据抗丢包的效果,进一步提高了该方法使用的灵活可靠性,有利于市场的推广与应用。
[0164]
图9为本技术实施例提供的一种数据传输装置的结构示意图;参考附图9所示,本实施例提供了一种数据传输装置,该数据传输装置用于执行上述图2所示的数据传输方法,具体的,该数据传输装置可以包括:
[0165]
第一获取模块11,用于获取与实时传输数据相对应的数据往返时间;
[0166]
第一确定模块12,用于基于数据往返时间,确定与实时传输数据中数据帧相对应的前向纠错码fec冗余度;
[0167]
第一处理模块13,用于基于fec冗余度对实时传输数据进行编码传输。
[0168]
在一些实例中,在第一确定模块12基于数据往返时间,确定与实时传输数据中数据帧相对应的前向纠错码fec冗余度时,该第一确定模块12用于执行:在数据往返时间小于第一时间时,则将实时传输数据中的关键数据帧的fec冗余度配置为预设值;在数据往返时间大于或等于第一时间时,则基于与实时传输数据相对应的实际丢包率确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
[0169]
在一些实例中,在第一确定模块12基于与实时传输数据相对应的实际丢包率确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度时,该第一确定模块12用于执行:在数据往返时间小于第二时间时,则基于实际丢包率确定修正丢包率,基于修正丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度,其中,实际丢包率大于修正丢包率;在数据往返时间大于或等于第二时间时,则根据实际丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
[0170]
在一些实例中,在第一确定模块12基于修正丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度时,该第一确定模块12用于执行:获取与修正丢包率的第一冗余度表,第一冗余度表中包括多个修正丢包率以及与各个修正丢包率相对应的fec冗余度;基于第一冗余度表和修正丢包率,确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
[0171]
在一些实例中,在第一确定模块12根据实际丢包率确定实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度时,该第一确定模块12用于执行:获取与实际丢包
率相对应的第二冗余度表,第二冗余度表中包括多个实际丢包率以及与各个实际丢包率相对应的fec冗余度;基于第二冗余度表和实际丢包率,确定与实时传输数据中关键数据帧和非关键数据帧各自对应的fec冗余度。
[0172]
在一些实例中,在第一确定模块12基于实际丢包率确定修正丢包率时,该第一确定模块12用于执行:确定数据接收端所能接受的最大重传次数;基于最大重传次数和实际丢包率,确定修正丢包率。
[0173]
在一些实例中,在第一确定模块12确定数据接收端所能接受的最大重传次数时,该第一确定模块12用于执行:确定数据接收端所能接受的最大重传时间;基于最大重传时间和数据往返时间,确定最大重传次数。
[0174]
在一些实例中,在第一确定模块12基于最大重传次数和实际丢包率,确定修正丢包率时,该第一确定模块12用于执行:将以实际丢包率作为底数、以最大重传次数作为指数参数的指数确定为修正丢包率。
[0175]
在一些实例中,在第一处理模块13基于fec冗余度对实时传输数据进行编码传输时,该第一处理模块13用于执行:开启重传;基于数据往返时间,确定与实时传输数据相对应的重传策略;基于fec冗余度和重传策略对实时传输数据进行编码传输。
[0176]
在一些实例中,在第一处理模块13基于数据往返时间,确定与实时传输数据相对应的重传策略时,该第一处理模块13用于执行:在数据往返时间小于第一时间时,则确定与实时传输数据相对应的重传策略为第一策略;在数据往返时间大于或等于第一时间时,则确定与实时传输数据相对应的重传策略为第二策略,第二策略用于标识重传操作之间的时间间隔呈指数变化。
[0177]
在一些实例中,在获取与实时传输数据相对应的数据往返时间之前,本实施例中的第一获取模块11和第一处理模块13用于执行以下步骤:
[0178]
第一获取模块11,用于获取用于对实时传输数据进行传输的网络带宽;
[0179]
第一处理模块13,用于在网络带宽大于或等于预设带宽时,则允许获取与实时传输数据相对应的数据往返时间;在网络带宽小于预设带宽时,则禁止获取与实时传输数据相对应的数据往返时间。
[0180]
在一些实例中,在网络带宽小于预设带宽时,本实施例中的第一处理模块13还用于执行:获取与实时传输数据中关键数据帧和非关键数据帧各自对应的优先级,其中,关键数据帧的优先级高于非关键数据帧的优先级;确定与实时传输数据相对应的数据量;基于优先级、数据量和网络带宽,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度;基于实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度对实时传输数据进行编码传输。
[0181]
在一些实例中,在第一处理模块13基于优先级、数据量和网络带宽,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度时,该第一处理模块13用于执行:基于数据量和网络带宽,确定与实时传输数据相对应的冗余数据量;基于冗余数据量和优先级,确定实时传输数据中关键数据帧和非关键数据帧各自对应的冗余度。
[0182]
图9所示装置可以执行图1-图8所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图8所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图8所示实施例中的描述,在此不再赘述。
[0183]
在一个可能的设计中,图9所示数据传输装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图10所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,第一存储器22用于存储相对应电子设备执行上述图1-图8所示实施例中提供的数据传输方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
[0184]
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:
[0185]
获取与实时传输数据相对应的数据往返时间;
[0186]
基于数据往返时间,确定与实时传输数据中数据帧相对应的前向纠错码fec冗余度;
[0187]
基于fec冗余度对实时传输数据进行编码传输。
[0188]
进一步的,第一处理器21还用于执行前述图1-图8所示实施例中的全部或部分步骤。
[0189]
其中,电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
[0190]
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1-图8所示方法实施例中数据传输方法所涉及的程序。
[0191]
此外,本实施例通过了一种计算机程序产品,该计算机程序产品包括:计算机程序,当计算机程序被电子设备的处理器执行时,使处理器执行上述图1-图8所示方法实施例中数据传输方法。
[0192]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0193]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0194]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0195]
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的
制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0196]
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0197]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0198]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0199]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0200]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献