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

一种数据发送方法、装置、电子设备及存储介质与流程

2022-02-19 06:32:51 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,特别是涉及一种数据发送方法、装置、电子设备及存储介质。


背景技术:

2.随着视联网技术的发展和推广,越来越多的视联网终端设备被部署使用,视联网终端设备主要的功能业务之一便是视频数据传输,所以视联网中视频数据传输的效率对视联网的性能至关重要。各种算法及网络技术广泛应用于网络数据传输中,并对网络性能优化发挥着重要作用。
3.在相关技术中,视联网终端中采集的视频数据,在编码后进行网络传输,是按照帧时间间隔进行传输的,即按照帧率产生视频编码帧数据,应用层获取编码帧后进行网络传输。然而,不同类型的帧大小差异较大,在帧时间间隔设置不合理时,会造成某种类型的帧数据在传输时各数据包之间传输时间间隔时间过短,导致瞬时网络带宽突增,进而对视联网造成带宽冲击。因此,如何控制数据包之间的传输时间间隔,防止因突发带宽激增引起的视联网带宽压力现象,成为亟待解决的问题。


技术实现要素:

4.鉴于上述问题,本技术提供了一种数据发送方法、装置、电子设备及存储介质,可保证数据包均匀传输,减少突发带宽激增引起的视联网带宽压力。
5.本技术第一方面提供了一种数据发送方法,应用于视联网终端,所述方法包括:
6.获取历史gop图像组中各个数据包之间的实际发包间隔;
7.根据所述历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔,所述传输间隔调节参数表示所述待发送的gop图像组中数据包的数量与单个历史gop图像组中数据包的数量的比例关系,所述预期发包间隔用于控制所述待发送的gop图像组中相邻数据包之间的发送时间间隔;
8.按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
9.可选地,所述传输间隔调节参数为不低于1的数,根据所述历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔,包括:
10.按照所述传输间隔调节参数缩小所述历史gop图像组的实际发包间隔,将缩小后的实际发包间隔作为所述预期发包间隔。
11.可选地,在根据所述历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔之前,所述方法还包括:
12.将用户输入的参数作为所述传输间隔调节参数;或
13.将默认调节参数作为所述传输间隔调节参数;
14.其中,所述默认调节参数是通过如下方式获得的:设置第一调节参数和第二调节参数,根据不同调节参数下gop图像组中数据包的实际发包间隔和攒包状态,采用二分法确
定新的第三调节参数,重复上述步骤,直到获得符合预设条件的传输间隔调节参数,所述第一调节参数小于所述第二调节参数。
15.可选地,所述方法还包括:
16.获取待发送的数据包,若所述待发送的数据包为视联网数据包,通过视联网协议解析所述待发送的数据包,得到解析结果;
17.根据所述解析结果中的通道地址,将所述待发送的数据包缓存到与所述通道地址对应的缓存队列中;
18.按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端,包括:
19.针对所述待发送的gop图像组所在的目标缓存队列,在所述目标缓存队列中的上一个gop图像组中的数据包发送完毕时,按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
20.可选地,按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端,包括:
21.每隔预设时长,检测各个所述缓存队列是否达到所述预期发包时间间隔;
22.针对各个达到所述预期发包时间间隔的缓存队列,按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
23.可选地,获取历史gop图像组中各个数据包之间的实际发包间隔,包括:
24.获取最新发送的预设数量个gop图像组中数据包的数量和实际发送时长;
25.将所述预设数量个gop图像组中数据包的实际发送时长和数量的比值作为所述实际发包间隔;或
26.将所述预设数量个gop图像组中数据包的预设发送时长和数量的比值作为所述实际发包间隔。
27.可选地,获取历史gop图像组中各个数据包之间的实际发包间隔,包括:
28.在接收到新的i帧的首个数据包时,确定上一个gop图像组中的所有数据包发送完毕,并获取上一个gop图像组中数据包的数量和实际发送时长,一个gop图像组中包括一个i帧,i帧为gop图像组中的首帧;
29.将所述上一个gop图像组中数据包的实际发送时长和数量的比值作为所述实际发包间隔;或
30.将所述上一个gop图像组中数据包的预设发送时长和数量的比值作为所述实际发包间隔。本技术第二方面提供了一种数据发送装置,应用于视联网终端,所述装置包括:
31.第一获取模块,用于获取历史gop图像组中各个数据包之间的实际发包间隔;
32.第二获取模块,用于根据所述历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔,所述传输间隔调节参数表示所述待发送的gop图像组中数据包的数量与单个历史gop图像组中数据包的数量的比例关系,所述预期发包间隔用于控制所述待发送的gop图像组中相邻数据包之间的发送时间间隔;
33.发送模块,用于按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
34.可选地,所述传输间隔调节参数为不低于1的数,所述第二获取模块包括:
35.第一确定子模块,用于按照所述传输间隔调节参数缩小所述历史gop图像组的实际发包间隔,将缩小后的实际发包间隔作为所述预期发包间隔。
36.可选地,所述装置还包括:
37.第一确定模块,用于将用户输入的参数作为所述传输间隔调节参数;或
38.第二确定模块,用于将默认调节参数作为所述传输间隔调节参数;
39.其中,所述默认调节参数是通过如下方式获得的:设置第一调节参数和第二调节参数,根据不同调节参数下gop图像组中数据包的实际发包间隔和攒包状态,采用二分法确定新的第三调节参数,重复上述步骤,直到获得符合预设条件的传输间隔调节参数,所述第一调节参数小于所述第二调节参数。
40.可选地,所述装置还包括:
41.第三获取模块,用于获取待发送的数据包,若所述待发送的数据包为视联网数据包,通过视联网协议解析所述待发送的数据包,得到解析结果;
42.缓存模块,用于根据所述解析结果中的通道地址,将所述待发送的数据包缓存到与所述通道地址对应的缓存队列中;
43.所述发送模块包括:
44.第一发送子模块,用于针对所述待发送的gop图像组所在的目标缓存队列,在所述目标缓存队列中的上一个gop图像组中的数据包发送完毕时,按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
45.可选地,所述发送模块包括:
46.检测子模块,用于每隔预设时长,检测各个所述缓存队列是否达到所述预期发包时间间隔;
47.第二发送子模块,用于针对各个达到所述预期发包时间间隔的缓存队列,按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
48.可选地,所述第一获取模块包括:
49.第一获取子模块,用于获取最新发送的预设数量个gop图像组中数据包的数量和实际发送时长;
50.第二确定子模块,用于将所述预设数量个gop图像组中数据包的实际发送时长和数量的比值作为所述实际发包间隔;或
51.第三确定子模块,用于将所述预设数量个gop图像组中数据包的预设发送时长和数量的比值作为所述实际发包间隔。
52.可选地,所述第一获取模块包括:
53.第二获取子模块,用于在接收到新的i帧的首个数据包时,确定上一个gop图像组中的所有数据包发送完毕,并获取上一个gop图像组中数据包的数量和实际发送时长,一个gop图像组中包括一个i帧,i帧为gop图像组中的首帧;
54.第四确定子模块,用于将所述上一个gop图像组中数据包的实际发送时长和数量的比值作为所述实际发包间隔;或
55.第五确定子模块,用于将所述上一个gop图像组中数据包的预设发送时长和数量的比值作为所述实际发包间隔。
56.本技术第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可
在处理器上运行的计算机程序,所述处理器执行时实现本技术第一方面所述的数据发送方法的步骤。
57.本技术第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术第一方面所述的数据发送方法中的步骤。
58.采用本技术的数据发送方法,首先获取历史gop图像组中各个数据包之间的实际发包间隔,然后根据历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔。其中,传输间隔调节参数表示待发送的gop图像组中数据包的数量与历史gop图像组中数据包的数量的比例关系,预期发包间隔用于控制待发送的gop图像组中相邻数据包之间的发送时间间隔,最后按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端。该方法根据待发送的gop图像组中数据包的数量与单个历史gop图像组中数据包的数量的比例关系对历史gop图像组中各个数据包之间的实际发包间隔进行调整,得到预期发包间隔,然后根据预期发包间隔控制待发送的gop图像组中的数据包均匀发出,实现了对视联网视频数据包匀包优化处理,减少了突发带宽激增引起的视联网带宽压力。
附图说明
59.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍。
60.图1是本技术一实施例示出的一种数据发送方法的流程图;
61.图2是本技术一实施例示出的一种发包控制结果示意图;
62.图3是本技术一实施例示出的另一种发包控制结果示意图;
63.图4是本技术一实施例示出的一种数据发送方法的过程示意图;
64.图5是本技术一实施例示出的另一种数据发送方法的过程示意图;
65.图6是本技术一实施例示出的一种数据发送装置的结构框图。
具体实施方式
66.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
67.在相关技术中,视联网终端中采集的视频数据,在编码后进行网络传输,是按照帧时间间隔进行传输的,即按照帧率产生视频编码帧数据,应用层获取编码帧后进行网络传输,帧时间间隔相同。由于p帧和i帧的大小差异较大,而每帧数据传输完成的时间却相同,这就会造成i帧数据传输时每包数据传输时间间隔时间短,瞬时网络带宽突增,对视联网造成带宽冲击。
68.以视频流1080p30fps为例,视联网终端会约每秒(一个gop图像组)发送30帧视频数据,每33ms发送完一个视频帧,每帧数据又包含多个视频数据包,且视频帧的大小不一样,即每33ms要发完的数据不一样多,就会导致视频数据发送不均匀,面对数据量较大的i帧时,容易出现网络带宽突增、攒包现象等,降低数据传输质量。
69.为解决相关技术中的问题,本技术提供了一种数据发送方法,根据待发送的gop图
像组中数据包的数量与单个历史gop图像组中数据包的数量的比例关系,对历史gop图像组中各个数据包之间的实际发包间隔进行调整,来得到适用于待发送的gop图像组中相邻数据包之间的预期发包间隔,从而保证gop图像组中数据包的均匀传输,避免网络带宽突增等现象。本技术提供的数据发送方法应用于视联网终端,可有效解决相关技术中瞬时网络带宽突增的问题。图1是本技术一实施例示出的一种数据发送方法的流程图。参照图1,本技术的数据发送方法可以包括如下步骤:
70.步骤s11:获取历史gop图像组中各个数据包之间的实际发包间隔。
71.在本实施例中,视联网终端的应用层通过网络套接字发送数据包,数据包经过协议层到达操作系统网络子系统底层,网络子系统底层识别数据包是否需要进行发包控制,如果不需要进行发包控制,直接将数据包通过网卡发送到接收端,如果需要进行发包控制,将数据包缓存到缓存队列中。
72.网络子系统底层在接收到数据包后,首先根据包长及协议类型识别数据包是否为视联网数据包,如果是视联网数据包,再根据数据类型识别数据包内的数据是否为视频流数据,如果是视频流数据,再根据数据包携带的通道地址(视联网地址)识别视频通道,确定是哪一路视频流,在确定视频通道后,接着确定数据包是所在gop图像组的第几个数据包,即数据包在gop图像组中的编号,最后,将数据包缓存到与视频通道对应的缓存队列中。其中,在数据包不是视联网数据包,或者数据类型不是视频流数据时,表明数据包不需要进行发包控制,则直接通过网卡发送到接收端。
73.在本实施例中,视联网终端包括各类视联网远程会议终端,多由输入/输出接口、mcu核心处理单元、gpu等运算单元、flash等存储单元、外围功能模块等组成的小型计算机系统,部署在视联网各个最终节点,通过视联网或ip网等与视联网各类服务器通信,能够采集、编解码、输出及通信传输音视频流,能够实现远程视频会议、远程视频调度等功能。接收端也可以为视联网终端。
74.视联网终端中采集的视频数据,在编码后进行网络传输时,是按照帧时间间隔进行传输的,当一帧视频图像数据发送完毕时,才会发送下一帧视频图像数据。
75.帧的类型可以包括i帧(intra

coded picture,帧内编码帧,常称为关键帧)、p帧(predictive

coded picture,预测编码图像帧,是帧间编码帧,利用之前的i帧或p帧进行预测编码)以及b帧(bi

directionally predicted picture,双向预测编码图像帧,是帧间编码帧,利用之前和/或之后的i帧或p帧进行双向预测编码,b帧不可以作为参考帧)。
76.gop(group of pictures)图像组是一组连续的图像,由一个i帧和多个b/p帧组成,是编解码器存取的基本单位。每一帧视频图像数据至少由一个数据包组成,gop图像组中的首个数据包为i帧的第一个数据包。
77.在本实施例中,来自某一路视频通道的所有视频数据都会存储在该视频通道对应的缓存队列中(每一个视频通道对应一个缓存队列)。本技术的数据发送方法可以应用于对每一个视频通道的数据包的发包控制,为便于更好地陈述该数据发送方法,在此特别说明,后续各个实施例均以对某一个缓存队列中的数据包进行发包控制为例,对其它缓存队列中的数据包的发包控制原理与该缓存队列相同。其中,历史gop图像组是指已经发送完毕的gop图像组。实际发包间隔是指已发送完毕的gop图像组中各个数据包在被发送时包与包之间的实际发送间隔,也可以理解为历史gop图像组中数据包的平均发包间隔。
78.步骤s12:根据历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔,传输间隔调节参数表示待发送的gop图像组中数据包的数量与历史gop图像组中数据包的数量的比例关系,预期发包间隔用于控制待发送的gop图像组中相邻数据包之间的发送时间间隔。
79.在本实施例中,可以在发送待发送的gop图像组中的数据包之前的任意时刻获取预期发包间隔,本实施例对获取预期发包间隔的时刻不作具体限制。
80.在本实施例中,预期发包间隔为一个理想的发包间隔,利用该理想的发包间隔控制待发送的gop图像组中相邻数据包的发送,可以使得数据包均匀发出。
81.其中,传输间隔调节参数可以反映出待发送的gop图像组中数据包的数量与单个历史gop图像组中数据包的数量的比例关系。由于待发送的gop图像组中的数据包尚未被发送,因此,如果要实现数据包的均匀发出,可以对待发送的gop图像组中的数据包的数量进行合理预测,而通过传输间隔调节参数就可以合理预测待发送的gop图像组中的数据包的数量。具体地,将单个历史gop图像组乘以传输间隔调节参数就可以得到当前待发送的gop图像组中数据包的数量。由于不同gop图像组的发包总时长(gop时长)通常是不变的,因此,利用单个gop时长和预测得到的待发送的gop图像组中数据包的数量就可以得到适用于待发送的gop图像组的预期发包间隔。
82.步骤s13:按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端。
83.在本实施例中,在发送待发送的gop图像组中的数据包时,按照预期发包间隔控制包与包之间的发送间隔,可以实现数据包的均匀发出,防止数据包堆积导致瞬时网络带宽突增,进而实现对视联网视频数据包匀包优化处理,减少突发带宽激增引起的视联网带宽压力。
84.示例地,假设预期发包间隔为t,那么对于待发送的gop图像组中的首个数据包b1,在当前时刻与上一个已发送的gop图像组中最后一个数据包的发送时刻之间的时长为t时,将该首个数据包b1发出。接着,在当前时刻与首个数据包b1的发送时刻之间的时长为t时,将第二个数据包b2发出,在当前时刻与首个数据包b2的发送时刻之间的时长为t时,将第三个数据包b3发出,以此类推,按照预期发包间隔t将待发送的gop图像组中所有数据包发出。
85.采用本实施例中的数据发送方法,首先获取历史gop图像组中各个数据包之间的实际发包间隔,然后根据历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔。其中,传输间隔调节参数表示待发送的gop图像组中数据包的数量与历史gop图像组中数据包的数量的比例关系,预期发包间隔用于控制待发送的gop图像组中相邻数据包之间的发送时间间隔。最后按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端。该方法根据待发送的gop图像组中数据包的数量与单个历史gop图像组中数据包的数量的比例关系对历史gop图像组中各个数据包之间的实际发包间隔进行调整,得到预期发包间隔,然后根据预期发包间隔控制待发送的gop图像组中的数据包均匀发出,实现了对视联网视频数据包匀包优化处理,减少了突发带宽激增引起的视联网带宽压力,保证数据传输效率。
86.结合以上实施例,在一种实施方式中,根据历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔,可以包括:
87.按照传输间隔调节参数缩小历史gop图像组的实际发包间隔,将缩小后的实际发
包间隔作为预期发包间隔。
88.在本实施例中,传输间隔调节参数为一个辅助系数,利用传输间隔调节参数调节待发送的gop图像组中数据包的预期发包间隔,可以使待发送的gop图像组发送数据包的能力尽可能大,从而不会在gop时长结束时有攒包现象。如果传输间隔调节参数是小于1的数,待发送的gop图像组的预期发包间隔会变大,这样会造成攒包,不符合传输控制的目的,所以本实施例中传输间隔调节参数不会小于1。
89.传输间隔调节参数不小于1时,预测出的gop图像组中的数据包的数量较多,因此需要适当缩短包与包之间的预期发包间隔,如果不缩短包与包之间的预期发包间隔,也会导致无法在一个gop时长(不同gop图像组的gop时长一般相同,以视频流1080p30fps为例,gop时长约为1秒)内将数据包发送完毕。因此,为了保证数据包能按时发完,在传输间隔调节参数不小于1时,可以直接将历史gop图像组的实际发包间隔与传输间隔调节参数的比值作为预期发包间隔,从而实现对历史gop图像组的实际发包间隔的缩小操作。
90.示例地,以单个gop时长为t微秒,在某个历史gop图像组中传输m包视频数据为例,若传输间隔调节参数为1.1,那么待发送的gop图像组的预期发包间隔tn=t/n=t/(m*1.1)=tn’/1.1。其中,tn’为历史gop图像组中数据包的实际发包间隔,n为预测的待发送的gop图像组中数据包的数量。由上述推理可知,在实际操作时,可以直接获取历史gop图像组的实际发包间隔,将历史gop图像组的实际发包间隔与传输间隔调节参数的比值确定为预期发包间隔。
91.再示例地,以单个gop时长为t微秒,在某两个历史gop图像组中传输2m包视频数据为例,若传输间隔调节参数为1.1,那么待发送的gop图像组的预期发包间隔tn=tn’/1.1=2t/(2m*1.1)。
92.本实施例中,可以直接将历史gop图像组的实际发包间隔与传输间隔调节参数的比值作为预期发包间隔,使得视联网终端可以在获得历史gop图像组的实际发包间隔后快速获得预期发包间隔,提升了数据包传输控制的效率。
93.结合以上实施例,在一种实施方式中,本技术还提供了传输间隔调节参数的方法,具体可以包括:
94.将用户输入的参数作为传输间隔调节参数;或
95.将默认调节参数作为传输间隔调节参数;
96.其中,默认调节参数是通过如下方式获得的:设置第一调节参数和第二调节参数,根据不同调节参数下gop图像组中数据包的实际发包间隔和攒包状态,采用二分法确定第三调节参数,重复上述步骤,直到获得符合预设条件的传输间隔调节参数,第一调节参数小于第二调节参数。
97.在本实施例中,既可以将用户临时输入的参数作为传输间隔调节参数,也可以采用默认的调节参数作为传输间隔调节参数,具体可以在视联网终端中设置。其中,默认的调节参数是根据经验值得到的参数。
98.传输间隔调节参数是经过试验得到的一个适当值,下面将以常用的终端1080p30fps4m为例,介绍如何根据经验值得到传输间隔调节参数,具体思路是:以二分查找法逐步缩小范围,确定传输间隔调节参数。
99.步骤1:设定传输间隔调节参数为1(第一调节参数),进行视频通话业务,用网络抓
包软件(例如wireshark)抓取视联网终端的网络数据包,提取该视频通道的视频数据包,分析数据包之间的时间间隔,发现底层发包间隔均匀,接着通过proc文件系统(一种虚拟文件系统,其存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态)查看匀包状态,偶尔看到匀包缓冲区攒包,且攒包会累积,数据包时间散点图均匀,如图2所示。图2是本技术一实施例示出的一种发包控制结果示意图。
100.步骤2:设定传输间隔调节参数为2(第二调节参数),进行视频通话业务,用网络抓包软件抓取视联网终端的网络数据包,提取该视频通道的视频数据包,分析数据包之间的时间间隔,发现每帧内部的包时间间隔均匀,且不到33ms就发完了本帧的数据,每帧之间的时间间隔较长,通过proc文件系统查看匀包状态,看不到攒包,数据包时间散点图不均匀,如图3所示。图3是本技术一实施例示出的另一种发包控制结果示意图。
101.通过上述两个步骤发现,传输间隔调节参数为1时太小,为2太大。
102.步骤3:以二分查找法逐步缩小范围,设定传输间隔调节参数为1.5(第三调节参数),进行视频通话业务,用网络抓包软件抓取视联网终端的网络数据包,提取该视频通道的视频数据包,分析数据包之间的时间间隔。
103.步骤4:重复上述过程,经多次缩小范围实验,得出适当的传输间隔调节参数,设置该传输间隔调节参数后,不会导致匀包缓冲区攒包,也不会导致数据包不均匀。
104.本实施例提供了两种获得传输间隔调节参数的方式,使得用户可以根据实际需求选用并得到预期发包间隔,提升了数据匀包控制的灵活性。
105.结合以上实施例,在一种实施方式中,本技术的方法还可以包括:
106.获取待发送的数据包,若待发送的数据包为视联网数据包,通过视联网协议解析待发送的数据包,得到解析结果;
107.根据解析结果中的通道地址,将待发送的数据包缓存到与通道地址对应的缓存队列中。
108.该部分的表述已在前文给出,故在此不再赘述。
109.在此基础上,按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端,包括:
110.针对待发送的gop图像组所在的目标缓存队列,在目标缓存队列中的上一个gop图像组中的数据包发送完毕时,按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端。
111.在本实施例中,待发送的gop图像组缓存在目标缓存队列中,在等待上一个gop图像组中的数据包发送完毕时,视联网终端才会按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端。
112.结合以上实施例,在一种实施方式中,按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端,具体可以包括:
113.每隔预设时长,检测各个缓存队列是否达到预期发包时间间隔;
114.针对各个达到预期发包时间间隔的缓存队列,按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端。
115.在本实施例中,视联网终端内设置有一个统一的计时器,该计时器每隔预设时长,
会轮询各个缓存队列是否达到预期发包时间间隔。每一个缓存队列都有一个对应的预期发包时间间隔,不同的缓存队列对应的预期发包时间间隔不同。
116.当检测到某个缓存队列到达对应的预期发包时间间隔时,视联网终端按照预期发包间隔,将待发送的gop图像组中的数据包发送到接收端。
117.在本实施例中,每隔预设时长对各个缓存队列进行轮询,实现了对多个缓存队列的监控管理,使得视联网终端可以更好地对多个缓存队列中的数据包进行并行传输,提升了数据包传输控制的效率。
118.结合以上实施例,在一种实施方式中,获取历史gop图像组中各个数据包之间的实际发包间隔,具体可以包括:
119.获取最新发送的预设数量个gop图像组中数据包的数量和实际发送时长;
120.将预设数量个gop图像组中数据包的实际发送时长和数量的比值作为实际发包间隔;或
121.将预设数量个gop图像组中数据包的预设发送时长和数量的比值作为实际发包间隔。
122.在本实施例中,可以采用以下任意方式获得历史gop图像组中各个数据包之间的实际发包间隔:
123.一、将最新发送的一个或多个gop图像组中数据包的实际发送时长,与总数量的比值作为实际发包间隔。
124.二、将最新发送的一个或多个gop图像组中数据包的预设发送时长,与总数量的比值作为实际发包间隔。
125.其中,预设发送时长是根据gop时长得到的。例如对于一个gop图像组,预设发送时长为一个gop时长,对于n个gop图像组,预设发送时长为n个gop时长之和。
126.本实施例中提供了两种获得实际发包间隔的方法,丰富了预期发包间隔的获取方式。
127.结合以上实施例,在一种实施方式中,获取历史gop图像组中各个数据包之间的实际发包间隔,具体可以包括:
128.在接收到新的i帧的首个数据包时,确定上一个gop图像组中的所有数据包发送完毕,并获取上一个gop图像组中数据包的数量和实际发送时长,一个gop图像组中包括一个i帧,i帧为gop图像组中的首帧;
129.将上一个gop图像组中数据包的实际发送时长和数量的比值作为实际发包间隔;或
130.将上一个gop图像组中数据包的预设发送时长和数量的比值作为实际发包间隔。
131.在本实施例中,视联网终端从应用层获取到待发送的gop图像组中的首个数据包时,可以进一步获得目标缓存队列中最近一个(上一个)已发送的gop图像组中各个数据包之间的实际发包间隔。
132.在具体实施时,当视联网终端获取到i帧的第一个数据包时,可以确定获取到了待发送的gop图像组中的首个数据包。一般地,i帧的第一个数据包为i帧中编号为0的数据包,第二个数据包为i帧中编号为1的数据包,以此类推。
133.在本实施例中,在获得预期发包间隔时,可以采用最新发送的gop图像组的实际发
包间隔,因为最新发送的gop图像组发包时所处的网络环境与待发送的gop图像组当前所在的网络环境最为相似,利用这种相似网络环境下已产生的发包数据来获得预期发包间隔,并对未发送的gop图像组中的数据包进行发送控制,可以使得发包控制效果更为理想。
134.结合以上实施例,在一种实施方式中,本技术的数据发送方法还可以包括:
135.在将待发送的gop图像组中的数据包发送到接收端的过程中,获取发包信息,发包信息至少包括:上一个已发送的gop图像组中各个数据包之间的实际发包间隔、预期发包间隔以及待发送的gop图像组中数据包的信息;
136.通过虚拟文件系统显示发包信息。
137.在本实施例中,发送端中配置有虚拟文件系统,例如proc文件系统,其存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
138.在将待发送的gop图像组中的数据包发送到接收端的过程中,发送端可以将发包信息通过虚拟文件系统显示。
139.发包信息可以包括上一个已发送的gop图像组中各个数据包之间的实际发包间隔、预期发包间隔以及待发送的gop图像组中数据包的信息,除此以外,发包信息还可以包括上一个已发送的gop图像组中数据包的总数量、上一个已发送的gop图像组中数据包的总发送时长、以及增量系数等。发包信息具体可以根据实际需求设置,本实施例对此不作具体限制。
140.在一种实施方式中,用户还可以在虚拟文件系统上进行操作,设置发包过程中的参数,例如增量系数。发送端在检测到用户输入的增量系数后,优先考虑用户输入的增量系数,并根据用户输入的增量系数获得预期发包间隔。其次,用户还可以在虚拟文件系统上设置发包控制功能开关,当需要进行发包控制时,将功能开关设置到开启状态,当不需要进行发包控制时,将功能开关设置到关闭状态。
141.在本实施例中,发送端实时显示发包信息,使得用户能更好地查看到当前的发包情况并做出后续决策,优化了用户体验。
142.图4是本技术一实施例示出的一种数据发送方法的过程示意图。下面将结合图4,对本技术的数据发送方法进行整体说明。
143.在图4中,发送端包括应用层、内核层、驱动层以及物理层。
144.应用层将待发送的视频数据通过网络套接字打包成数据包并传输至内核层(网络子系统底层)。
145.内核层识别出数据包的数据类型为视频流,将这部分数据包确定为需要发包控制的数据包,并根据数据包的通道地址将数据包插入到视频通道对应的缓存队列中。如果内核层识别出数据包的数据类型不为视频流,将这部分数据包确定为不需要发包控制的数据包,然后通过物理层网卡直接发送到接收端。
146.内核层在获取到待发送的gop图像组中的第一个数据包时,获取当前缓存队列中上一个已发送的gop图像组中各个数据包之间的实际发包间隔(也可以获得历史gop图像组中各个数据包之间的实际发包间隔,具体如前文),并获得预期发包间隔。
147.内核层通过高精度定时器实时监测缓存队列中每一个数据包是否到达预期发包间隔,在到达时,将数据包通过物理层网卡直接发送到接收端。
148.本实施例中,发送端操作系统网路子系统底层收到应用层要发送的网络数据时,通过视联网传输协议对视联网视频数据包进行识别,并将需要发包控制的视联网视频数据包缓存到视频通道对应的缓存队列中,根据历史gop图像组中各个数据包之间的实际发包间隔得到预期的发包间隔,通过高精度定时器按照预期的发包间隔发送缓存队列中的视联网视频数据包,从而实现对视联网视频数据包的匀包优化处理,减少突发带宽激增引起的视联网带宽压力,保证了数据传输效率,同时提高了空闲时间网络带宽的利用率。
149.图5是本技术一实施例示出的另一种数据发送方法的过程示意图。
150.在图5中,协议层在内核层调用网卡驱动发送数据包之前截取网络skb(用于维护socket buffer状态和描述信息,是一种网络数据包在系统各层传递的载体,作用于网络包在操作系统中传输的整个过程),将skb传递到内核层。接着,内核层识别网络数据包的类型,在网络数据包的类型的视频流时,确定需要进行发包控制,然后根据网络数据包的通道地址将数据包缓存到通道对应的缓存队列中。如果网络数据包的类型的不是视频流,确定不需要进行发包控制,直接将数据包通过网卡发出。如果当前接收到的数据包是i帧的首个数据包,计算上一个已发送的gop图像组中各个数据包之间的实际发包间隔,并根据计算的实际发包间隔获取预期发包间隔。
151.内核层的高精度定时器获得预期发包间隔后,实时监测缓存队列中每一个数据包是否到达预期发包间隔,在到达时,将数据包通过物理层网卡直接发送到接收端。
152.由于通道的数量可能有多个,因此内核层还可以采用轮询机制,设置一个定时器,当定时器到达设定的时间时,逐个检索通道是否存在需要发包控制的数据,并更新定时器。在检索某一个通道时,如果当前时刻距离上一次发包时刻之间的差值到达预期发包间隔,且缓存队列中有需要发送的数据包,那么直接调用网卡驱动将数据包发送到接收端。
153.在本实施例中,视联网终端所有的网络数据包都经过网络子系统底层进行传输,在内核层调用网卡驱动发送数据包之前截取网络skb,能够对所有要发出的网络数据进行缓存等处理。通过对视联网数据包解析,能够获取视联网视频数据包中的i帧、p帧信息,从而能够计算i帧之间的gop时间,通过计数统计的方法同时能够获取一个gop中视频数据的包数,从而计算出实际发包间隔,进而获得预期发包间隔。系统高精度定时器时间精度能够达到5us,通过定时轮询及发送间隔判断的方式能够保证视联网视频数据包能够在较小的时间误差下均匀发出,从而实现对视联网视频数据包匀包优化处理,减少突发带宽激增引起的视联网带宽压力,同时提高空闲时间网络带宽的利用率。
154.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
155.基于同一发明构思,本技术提供了一种设备控制装置600,应用于发送端。图6是本技术一实施例示出的一种数据发送装置的结构框图。参照图6,本技术的装置600可以包括:
156.第一获取模块601,用于获取历史gop图像组中各个数据包之间的实际发包间隔;
157.第二获取模块602,用于根据所述历史gop图像组的实际发包间隔和传输间隔调节参数,获取预期发包间隔,所述传输间隔调节参数表示所述待发送的gop图像组中数据包的
数量与单个历史gop图像组中数据包的数量的比例关系,所述预期发包间隔用于控制所述待发送的gop图像组中相邻数据包之间的发送时间间隔;
158.发送模块603,用于按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
159.可选地,所述传输间隔调节参数为不低于1的数,所述第二获取模块602包括:
160.第一确定子模块,用于按照所述传输间隔调节参数缩小所述历史gop图像组的实际发包间隔,将缩小后的实际发包间隔作为所述预期发包间隔。
161.可选地,所述装置600还包括:
162.第一确定模块,用于将用户输入的参数作为所述传输间隔调节参数;或
163.第二确定模块,用于将默认调节参数作为所述传输间隔调节参数;
164.其中,所述默认调节参数是通过如下方式获得的:设置第一调节参数和第二调节参数,根据不同调节参数下gop图像组中数据包的实际发包间隔和攒包状态,采用二分法确定新的第三调节参数,重复上述步骤,直到获得符合预设条件的传输间隔调节参数,所述第一调节参数小于所述第二调节参数。
165.可选地,所述装置600还包括:
166.第三获取模块,用于获取待发送的数据包,若所述待发送的数据包为视联网数据包,通过视联网协议解析所述待发送的数据包,得到解析结果;
167.缓存模块,用于根据所述解析结果中的通道地址,将所述待发送的数据包缓存到与所述通道地址对应的缓存队列中;
168.所述发送模块603包括:
169.第一发送子模块,用于针对所述待发送的gop图像组所在的目标缓存队列,在所述目标缓存队列中的上一个gop图像组中的数据包发送完毕时,按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
170.可选地,所述发送模块603包括:
171.检测子模块,用于每隔预设时长,检测各个所述缓存队列是否达到所述预期发包时间间隔;
172.第二发送子模块,用于针对各个达到所述预期发包时间间隔的缓存队列,按照所述预期发包间隔,将所述待发送的gop图像组中的数据包发送到接收端。
173.可选地,所述第一获取模块601包括:
174.第一获取子模块,用于获取最新发送的预设数量个gop图像组中数据包的数量和实际发送时长;
175.第二确定子模块,用于将所述预设数量个gop图像组中数据包的实际发送时长和数量的比值作为所述实际发包间隔;或
176.第三确定子模块,用于将所述预设数量个gop图像组中数据包的预设发送时长和数量的比值作为所述实际发包间隔。
177.可选地,所述第一获取模块601包括:
178.第二获取子模块,用于在接收到新的i帧的首个数据包时,确定上一个gop图像组中的所有数据包发送完毕,并获取上一个gop图像组中数据包的数量和实际发送时长,一个gop图像组中包括一个i帧,i帧为gop图像组中的首帧;
179.第四确定子模块,用于将所述上一个gop图像组中数据包的实际发送时长和数量的比值作为所述实际发包间隔;或
180.第五确定子模块,用于将所述上一个gop图像组中数据包的预设发送时长和数量的比值作为所述实际发包间隔。基于同一发明构思,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行时实现本技术上述任一实施例的数据发送方法中的步骤。
181.基于同一发明构思,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术上述任一实施例的数据发送方法中的步骤。
182.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
183.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
184.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
185.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
186.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
187.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
188.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
189.以上对本发明所提供的一种数据发送方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

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

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

相关文献