数据处理方法、装置、电子设备及存储介质与流程

文档序号:27782997发布日期:2021-12-04 10:25阅读:79来源:国知局
数据处理方法、装置、电子设备及存储介质与流程

1.本技术涉及网络技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。


背景技术:

2.随着网络传输技术的发展,用户获取音频数据和视频数据的需求与日俱增。在通过传输层及以下的层接收到数据后,电子设备将数据传送至工作在该电子设备的应用层,由应用层提供常见的网络应用服务。由于存在弱网等非稳定网络的情况,应用层基于接收到音频帧或图像帧的时间依次进行音频或视频的渲染,音频或视频的渲染效果不佳。


技术实现要素:

3.有鉴于此,本技术实施例提供一种数据处理方法、装置、电子设备及存储介质,以至少解决相关技术音频或视频的渲染效果不佳的问题。
4.本技术实施例的技术方案是这样实现的:
5.本技术实施例提供了一种数据处理方法,所述方法包括:
6.基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长;所述第一时长表征所述第一数据帧与第二数据帧之间的接收时间间隔;所述第二数据帧表征所述第一数据帧的前一数据帧;
7.在传送所述第二数据帧并等待所述第三时长后,将所述第一数据帧传送至应用层。
8.其中,上述方案中,所述基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长,包括:
9.在所述第一数据帧为当前数据传输过程中接收到的第一个数据帧的情况下,基于所述第二时长确定第三时长;
10.在所述第一数据帧不为当前数据传输过程中接收到的第一个数据帧的情况下,基于当前数据传输过程对应的设定帧率、所述第一数据帧对应的第一时长和所述第二时长确定第三时长。
11.上述方案中,所述基于当前数据传输过程对应的设定帧率、所述第一数据帧对应的第一时长和所述第二时长确定第三时长,包括:
12.在所述第一数据帧对应的第一时长大于所述第二时长的情况下,基于所述设定帧率和第一差值确定所述第三时长;所述第一差值表征所述第一数据帧对应的第一时长和所述第二时长的差值;
13.在所述第一数据帧对应的第一时长小于或等于所述第二时长的情况下,基于所述设定帧率确定所述第三时长。
14.上述方案中,所述方法还包括:
15.根据已接收到的数据帧中每相邻两个数据帧之间的接收时间间隔,更新所述第二
时长。
16.上述方案中,所述根据已接收到的数据帧中每相邻两个数据帧之间的接收时间间隔,更新所述第二时长,包括:
17.在所述第二时长的当前生存周期内接收到至少一个第一数据帧对应的第一时长大于或等于所述第二时长的情况下,更新所述第二时长,并重置所述第二时长的生存周期;和/或,
18.在所述第二时长的当前生存周期内接收到的每个第一数据帧对应的第一时长均小于所述第二时长的情况下,在所述当前生存周期期满的情况下,更新所述第二时长,并重置所述第二时长的生存周期。
19.上述方案中,所述更新所述第二时长,包括:
20.根据当前生存周期内接收到至少一个第一数据帧对应的最大的第一时长,更新所述第二时长。
21.上述方案中,在所述当前生存周期期满的情况下,所述更新所述第二时长,包括:
22.基于当前生存周期内接收到的每个第一数据帧对应的第一时长的平均值,更新所述第二时长。
23.上述方案中,所述方法应用于虚拟桌面基础架构(vdi,virtual desktop infrastructure)终端。
24.本技术实施例还提供了一种数据处理装置,包括:
25.处理单元,用于基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长;所述第一时长表征所述第一数据帧与第二数据帧之间的接收时间间隔;所述第二数据帧表征所述第一数据帧的前一数据帧;
26.传送单元,用于在传送所述第二数据帧并等待所述第三时长后,将所述第一数据帧传送至应用层。
27.本技术实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
28.其中,所述处理器用于运行所述计算机程序时,执行上述数据处理方法的步骤。
29.本技术实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法步骤。
30.在本技术实施例中,基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长,在传送所述第二数据帧并等待所述第三时长后将对应的第一数据帧传送至应用层,这里的第一时长表征接收到的第一数据帧与前一数据帧之间的接收时间间隔。在本技术实施例中,通过确定向应用层传送数据帧的时刻,在确定出的时刻向应用层传送对应的数据帧,这样,在非稳定网络中传输数据,应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,无须额外对各数据帧的渲染时间进行调整,就能够得到平滑的音视频播放效果。
附图说明
31.图1为视频图像帧传输的示意图;
32.图2为本技术实施例提供的数据处理方法的流程示意图;
33.图3为本技术应用实施例提供的视频图像帧传输的示意图;
34.图4为本技术另一应用实施例提供的视频图像帧传输的示意图;
35.图5为本技术应用实施例提供的端到端通信示意图;
36.图6为本技术应用实施例提供的发送端的处理流程示意图;
37.图7为本技术应用实施例提供的接收端的处理流程示意图;
38.图8为本技术实施例提供的一种数据处理装置的结构示意图;
39.图9为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
40.随着网络传输技术的发展,用户获取音频数据和视频数据的需求与日俱增,具体地,赛事直播、购物直播等直播场景和远程线上会议等会议场景下,用户需要通过网络传输音频数据和视频数据。有些类型的数据依赖于数据传输的稳定性,如音频数据、视频数据。以视频数据为例,视频实际上是各帧图像画面的连续组合,视频的帧率是确定的,也就是说,各帧图像的播放间隔是确定的。如果视频的帧率为30fps,即每秒播放30张图像画面,那么各帧图像画面的播放间隔为33毫秒。
41.云桌面是指使用云终端设备通过网络运行远端服务器桌面的计算机解决方案,与传统个人计算机(pc,personal computer)不同的是,云桌面的数据计算和存储集中在远端服务器,云桌面终端主要负责键盘、鼠标、显示器等外设输入输出操作。vdi是市面上一种主流的云桌面技术,包括vdi终端和远程服务器,vdi具有移动性强、数据安全性高等优势,但vdi依赖网络环境,对带宽和延时的要求较高,且vdi在断网后无法使用。
42.在vdi场景下进行视频数据传输,由于存在非稳定网络的情况,在利用弱网进行网络数据传输时,弱网下存在大量网络抖动和丢包的现象,如果应用层基于接收到图像帧的时间依次进行视频渲染,会导致视频播放不平滑,也就是视频的渲染效果不佳。
43.如图1示出的视频图像帧传输的示意图,每个带有数字编号(1、2、3、
……
)的矩形表征一个图像帧,每个矩形的长度表征对应的图像帧在网络传输的时间。发送端的图像帧的帧率是设定的,在30fps时每一图像帧的播放时间间隔为33毫秒,而接收端实际收到的图像帧的时间会随着网络状态而变化,在高延迟,高丢包,抖动等非稳定网络的弱网状态下,接收的图像帧的播放时间间隔差异很大,如果应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,各帧图像的播放时间间隔差异很大,以图1示出的接收端在弱网下接收的图像帧为例,用户在观看对应的视频时,在播放第一个图像帧时图像的播放时间间隔是正常的,在播放第二个图像帧时图像的播放时间间隔较长,用户会感到视频卡顿,而播放第三个图像帧、第四个图像帧时图像的播放时间间隔较短,用户又会感到视频快进了。
44.如果接收端根据接收到图像帧的时间将图像帧依次传送至应用层,应用层基于接收到的图像帧的时间依次进行视频渲染,每一帧图像的播放时间间隔即接收端在接收到对应的相邻两个数据帧的时间间隔,那么,接收时间间隔越大,对应帧图像在播放时停留的时间越长。如果连续多帧的时间间隔变化过大,会导致得到的视频播放不平滑,也就是视频的渲染效果不佳。
45.基于此,本技术实施例提供了一种数据处理方法、装置、电子设备及存储介质,基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长,在传送所述第
二数据帧并等待所述第三时长后将对应的第一数据帧传送至应用层,这里的第一时长表征接收到的第一数据帧与前一数据帧之间的接收时间间隔。在本技术实施例中,通过确定向应用层传送数据帧的时刻,在确定出的时刻向应用层传送对应的数据帧,这样,在非稳定网络中传输数据,应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,无须额外对各数据帧的渲染时间进行调整,就能够得到平滑的音视频播放效果。
46.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
47.图2为本技术实施例提供的数据处理方法的流程示意图,其中,流程的执行主体为接收并渲染音视频数据的电子设备,包括但不限于终端、服务器等电子设备。
48.并且,上述电子设备可以基于网络传输、串口、通用串行总线(usb,universal serial bus)等方式获取到外部电子设备传送来的音视频数据。
49.如图2示出的,数据处理方法包括:
50.步骤201:基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长。
51.其中,所述第一时长表征所述第一数据帧与第二数据帧之间的接收时间间隔;所述第二数据帧表征所述第一数据帧的前一数据帧,也就是电子设备接收到的第一数据帧的前一数据帧。
52.这里,第一时长由第二时刻与第一时刻的差值确定出,其中,第二时刻表征电子设备完整接收到第二数据帧的时刻,第一时刻表征电子设备完整接收到第一数据帧的时刻。
53.这里,传输层及以下的层提供了完整的通信服务,应用层位于计算机网络的最上层,是面向用户的一层。在通过传输层及以下的层接收到数据后,电子设备将数据传送至工作在该电子设备的应用层,由应用层提供网络应用服务。
54.在执行数据处理方法时,设定的第二时长表征通过设定的方式确定的时间间隔,不同于根据数据帧的接收时间间隔确定的第一时长。在一些实施例中,第二时长能够根据应用场景需要的网络状态设置,通过第一时长和第二时长的大小关系反映当前网络状态,例如第一时长大于第二时长,可以认为当前网络状态不佳。
55.并且,第二时长可以作为当前数据传输过程所有数据帧的整体延迟时长,也就是说,在接收端向应用层传送第一个数据帧之前,就基于第二时长延迟所有数据帧的传送行为,这样,第二时长的设置还能够为当前数据传输过程提供缓冲时间,改善因非稳定网络的大量网络抖动导致的渲染效果不佳。
56.在一实施例中,在数据传输过程中,接收端可以根据头部数据获取到数据帧的信息,能够获取的数据帧的信息,包括但不限于设定帧率、每个数据帧的大小。视频的设定帧率表征单位时间内显示帧数,如果视频的设定帧率为30fps,即每秒播放30帧图像。
57.在实际应用中,对于占用内存较大的数据帧通常采用分片传输。接收端在接收到这些分片传输的数据帧后,可以根据分片传输的数据报文的头部数据,判断接收到的数据能否组装成完整的数据帧。通常,占用内存较大的数据帧包括但不限于高分辨率的视频的图像帧、高音质音频的音频。
58.步骤202:在传送所述第二数据帧并等待所述第三时长后,将所述第一数据帧传送
至应用层。
59.这里,从接收端将第二数据帧传送至应用层的时刻开始,在第一数据帧对应的第三时长期满后,将第一数据帧传送至应用层。
60.在本技术实施例中,应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,从而在非稳定网络中,应用层也无须额外对各数据帧的渲染时间进行调整,就能够得到平滑的音视频播放效果。
61.尤其,对于云桌面等依赖网络环境的技术构建的场景,如vdi,在非稳定网络的情况下传输数据,通过本技术实施例提供的方法,能够提升云桌面场景在弱网条件下的音视频播放效果。
62.在一实施例中,所述基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长,包括:
63.在所述第一数据帧为当前数据传输过程中接收到的第一个数据帧的情况下,基于所述第二时长确定第三时长;
64.在所述第一数据帧不为当前数据传输过程中接收到的第一个数据帧的情况下,基于当前数据传输过程对应的设定帧率、所述第一数据帧对应的第一时长和所述第二时长确定第三时长。
65.这里,接收端根据接收到的第一数据帧是否为当前数据传输过程中接收到的第一个数据帧,采取不同方式确定第一数据帧对应的第三时长。对于第一个数据帧,并不存在前一个数据帧,可以将第一时长视为零或空值,基于第二时长确定第三时长。并且,由于应用层是基于收到各数据帧的时间依次对对应的数据帧进行渲染,应用层在对第一个数据帧进行渲染的渲染时间不会受对前一个数据帧进行渲染的渲染时间的影响。
66.在实际应用中,当前数据传输过程中接收到的第一个数据帧,包括但不限于以下几种情况:应用层请求播放视频a,由电子设备向对应的服务器请求视频a的媒体流,视频a的第一个图像帧可以理解为是当前数据传输过程中接收到的第一个数据帧;或者,视频a在上一次播放到一半后暂停,应用层请求继续播放视频a,那么从暂停位置开始的第一个图像帧可以理解为是当前数据传输过程中接收到的第一个数据帧。
67.而在接收端接收到的第一数据帧不为当前数据传输过程中接收到的第一个数据帧的情况下,也就是说,第一数据帧是当前数据传输过程中接收到的第二个或更靠后的数据帧,基于第一时长和第二时长确定第三时长。由于应用层是基于收到各数据帧的时间依次对对应的数据帧进行渲染,应用层在对数据帧进行渲染的渲染时间会受到前一个数据帧进行渲染的渲染时间的影响。
68.本技术实施例在接收端接收到的第一数据帧为当前数据传输过程中接收到的第一个数据帧的情况下,基于第二时长确定将第一数据帧传送至应用层的第三时长,在接收端接收到的第一数据帧是当前数据传输过程中接收到的第二个或更靠后的数据帧的情况下,基于设定帧率、第一时长和第二时长确定第一数据帧对应的第三时长,从而确定出向应用层传送数据帧的时刻,应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,无须额外对各数据帧的渲染时间进行调整,就能够得到更为平滑的音视频播放效果。
69.在一实施例中,所述基于当前数据传输过程对应的设定帧率、所述第一数据帧对应的第一时长和所述第二时长确定第三时长,包括:
70.在所述第一数据帧对应的第一时长大于所述第二时长的情况下,基于所述设定帧率和第一差值确定所述第三时长;所述第一差值表征所述第一数据帧对应的第一时长和所述第二时长的差值;
71.在所述第一数据帧对应的第一时长小于或等于所述第二时长的情况下,基于所述设定帧率确定所述第三时长。
72.这里,在接收端接收到的第一数据帧不为当前数据传输过程中接收到的第一个数据帧的情况下,根据第一数据帧对应的第一时长与第二时长的大小关系,采取不同方式确定第三时长。
73.在非稳定网络下,如果接收端按照设定帧率向应用层传送数据帧,在应当向应用层传送数据帧的时刻,接收端可能还未接收到对应的完整的数据帧,这样,应用层基于接收到数据音频帧或图像帧的时间依次进行音频数据或视频数据的渲染,会导致视频卡顿。在一些实施例中,第二时长能够根据应用场景需要的网络状态设置,通过第一时长和第二时长的大小关系能够反映当前网络状态,当确定出的第一时长小于或等于第二时长,可以认为当前的网络是稳定网络。当确定出的第一时长大于第二时长,可以认为当前的网络是弱网等非稳定网络。
74.这里,第一差值表征第一数据帧对应的第一时长和第二时长的差值的绝对值,换句话说,第一差值通过第一数据帧对应的第一时长减去第二时长得到。第一差值越大,当前的网络状态越不理想。进一步地,可以设置第一差值的阈值作为发送端是否发送数据帧的判断条件,在第一差值大于阈值的情况下,表征当前网络不足以支持当前数据传输过程的数据传输,接收端停止向应用层传送数据帧。
75.在本技术实施例中,根据第一数据帧对应的第一时长与第二时长的大小关系,采取不同方式确定第三时长。接收端结合当前的网络状态,确定出的向应用层传送数据帧的时刻,这样,在应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,无须额外对各数据帧的渲染时间进行调整,就能够得到更为平滑的音视频播放效果。
76.例如,当前数据传输的初始时刻为19时0分0秒,设定的第二时长为2秒,设定帧率1fps。接收端在19时0分1秒接收到当前数据传输过程中的第一个数据帧,在19时0分2秒接收到当前数据传输过程中的第二个数据帧,在19时0分5秒接收到当前数据传输过程中的第三个数据帧。对于第一个数据帧,第二时长为2秒,基于第二时长确定第三时长为2秒,接收端在19时0分2秒将第一个数据帧传送至应用层。对于第二个数据帧,第一时长为1秒,小于第二时长的2秒,基于设定帧率确定第三时长为1秒,接收端在19时0分3秒将第二个数据帧传送至应用层。对于第三个数据帧,第一时长为3秒,大于第二时长的2秒,基于设定帧率、第一时长和第二时长确定第三时长为2秒,接收端在19时0分5秒将第三个数据帧传送至应用层。
77.在一实施例中,所述方法还包括:
78.根据已接收到的数据帧中每相邻两个数据帧之间的接收时间间隔,更新所述第二时长。
79.这样,在发送端和接收端开始当前数据传输过程之前,接收端可以根据应用场景和数据类型设定第二时长。随着数据传输的进行,再根据网络状态实时更新第二时长,使第二时长动态关联网络状态,更新的第二时长用于确定第三时长,再确定向应用层传送后续
的数据帧的时刻,从而根据网络状态实时地调控向应用层传送数据帧的第三时长,进而调整传送第一数据帧的时刻,应用层基于收到各数据帧的时间对对应的数据帧进行渲染,能够得到更为平滑的音视频播放效果。
80.在一实施例中,所述根据已接收到的数据帧中每相邻两个数据帧之间的接收时间间隔,更新所述第二时长,包括:
81.在所述第二时长的当前生存周期内接收到至少一个第一数据帧对应的第一时长大于或等于所述第二时长的情况下,更新所述第二时长,并重置所述第二时长的生存周期;和/或,
82.在所述第二时长的当前生存周期内接收到的每个第一数据帧对应的第一时长均小于所述第二时长的情况下,在所述当前生存周期期满的情况下,更新所述第二时长,并重置所述第二时长的生存周期。
83.这里,在第二时长的当前生存周期内,接收端判断是否接收到至少一个对应的第一时长大于第二时长的第一数据帧。在当前生存周期内接收端接收到至少一个第一数据帧对应的第一时长大于第二时长的情况下,更新第二时长,并重置第二时长的生存周期。在当前生存周期内接收端接收到的每一个第一数据帧对应的第一时长均小于第二时长的情况下,需要进一步判断是否生存周期期满,在生存周期期满的情况下更新第二时长,并重置第二时长的生存周期。当前生存周期内接收到的第一数据帧的第一时长,能够反映在当前生存周期的网络状态。
84.在第二时长的当前生存周期内接收到的至少一个第一数据帧对应的第一时长大于或等于第二时长的情况下,说明在当前生存周期内存在某一时段的网络状态较差,可以认为在这个时段内网络为非稳定网络,根据网络状态相应调整第二时长。
85.这里,在第二时长的当前生存周期内接收到的一个第一数据帧对应的第一时长大于或等于第二时长的情况下,可以立即结束当前生存周期,更新第二时长并重置第二时长的生存周期,也可以到当前生存期限期满后,再更新第二时长并重置第二时长的生存周期。也就是说,在判断第二时长的当前生存周期内接收到的一个第一数据帧对应的第一时长大于或等于第二时长的情况下,接收端可以在当前生存周期内判断有一个第一时长大于或等于第二时长的时刻,立即更新第二时长;也可以到当前生存周期期满的时刻,再更新第二时长。
86.在第二时长的当前生存周期内接收到的每个第一数据帧对应的第一时长均小于第二时长的情况下,在当前生存周期这个时段内网络为稳定网络,在当前生存周期期满的情况下,接收端再根据网络状态相应调整第二时长。
87.这样,根据第一时长和第二时长的大小关系,判断调整第二时长的时刻,使第二时长动态关联网络状态,更新的第二时长用于在当前数据传输过程中确定第三时长,再确定向应用层传送后续的数据帧的时刻,从而根据网络状态实时地调控向应用层传送数据帧的第三时长,进而调整传送第一数据帧的时刻,应用层基于收到各数据帧的时间对对应的数据帧进行渲染,能够得到更为平滑的音视频播放效果。
88.在一实施例中,所述更新所述第二时长,包括:
89.基于当前生存周期内接收到的至少一个第一数据帧对应的最大的第一时长,更新所述第二时长。
90.这里,根据对应的第一时长,接收端在当前生存周期内接收到的至少一个第一数据帧中确定出一个数据帧,确定出的数据帧是在当前生存周期内的数据帧中对应最大的第一时长的数据帧,根据这个数据帧的第一时长更新第二时长。
91.这里,根据当前生存周期内接收到的最大的第一时长更新第二时长,适用于所有的需要更新第二时长的方案。换句话说,对于当前生存周期内对应的第一时长大于或等于第二时长的方案,可以用最大的第一时长更新第二时长;对于当前生存周期内对应的第一时长小于第二时长的方案,也可以用最大的第一时长更新第二时长。
92.这样,通过在当前生存周期内对应最大的第一时长更新第二时长,使第二时长动态关联网络状态,更新的第二时长能够反映在前一生存周期中最差的网络状态,更新的第二时长用于确定第三时长,再确定向应用层传送后续的数据帧的时刻,从而根据网络状态实时地调控向应用层传送数据帧的第三时长,进而调整传送第一数据帧的时刻,应用层基于收到各数据帧的时间对对应的数据帧进行渲染,能够得到更为平滑的音视频播放效果。
93.在一实施例中,在所述当前生存周期期满的情况下,所述更新所述第二时长,包括:
94.基于当前生存周期内接收到的每个第一数据帧对应的第一时长的平均值,更新所述第二时长。
95.这里,当前生存周期内接收到的第一时长的平均值更新第二时长的方式,适用于当前生存周期内接收到的每个第一数据帧对应的第一时长均小于第二时长,且当前生存周期期满的方案。
96.这样,通过在当前生存周期内对应平均的第一时长更新第二时长,使第二时长可以表征在前一个生存周期中平均的网络状态,更新的第二时长能够反映在前一生存周期中平均的网络状态,更新的第二时长用于确定第三时长,再确定向应用层传送后续的数据帧的时刻,从而根据网络状态实时地调控向应用层传送数据帧的第三时长,进而调整传送第一数据帧的时刻,应用层基于收到各数据帧的时间对对应的数据帧进行渲染,能够得到更为平滑的音视频播放效果。
97.在一实施例中,所述方法应用于vdi终端。
98.这里,vdi架构包括vdi终端和远程服务器,vdi终端包括pc、手机、平板、瘦客户机等终端设备。在vdi环境下,由远程服务器向vdi终端发送数据帧,vdi终端基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长,在等待了第三时长后将对应的第一数据帧传送至vdi终端的应用层。通过确定向应用层传送数据帧的时刻,在确定出的时刻向应用层传送对应的数据帧,这样,在非稳定网络中传输数据,应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,无须额外对各数据帧的渲染时间进行调整,就能够得到平滑的音视频播放效果。尤其,对于云桌面等依赖网络环境的技术构建的场景,如vdi,在非稳定网络的情况下传输数据,通过本技术实施例提供的方法,能够提升云桌面场景在弱网条件下的音视频播放效果。
99.下面结合应用实施例对本技术再作进一步的详细描述。
100.由于存在非稳定网络的情况,在利用弱网进行网络数据传输时,由于弱网下存在大量网络抖动和丢包的现象,应用层基于收到视频帧的时间依次进行视频的渲染,渲染得到的视频效果不佳。
101.这里,数据传输的通过能传输网络数据的网络传输协议进行,包括但不限于传输控制协议/网际互连协议(tcp/ip,transmission control protocol/internet protocol)、用户数据报协议(udp,user datagram protocol)。ip是tcp/ip体系中的网际层协议,设计ip的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,ip为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议,基于ip协议封装的传输协议。udp是一种无连接的传输协议,为应用程序提供了一种无需建立连接就可以发送封装的ip数据包的方法。
102.本技术应用实施例提供数据处理方法,使视频的各帧图像画面的播放时间间隔和发送端发送数据帧的时间间隔尽可能地保持一致。
103.通过实时更新第二时长,使接收端在收到的数据帧后等待一定的时间,再向应用层传送对应的数据帧。这里,等待的时间与网络状态相关,如果网络为稳定网络,等待的时间很短,如果网络为非稳定网络,等待的时间会相应变长。这里,等待的时间由最差的网络状态决定的。
104.如图3示出的视频图像帧传输的示意图,如果利用弱网进行网络数据传输,由于网络抖动和重传导致需要的额外传输时间,第一个图像帧和第二个图像帧之间的播放时间间隔如矩形301的长度,如果矩形302的长度(对应第二时长)大于矩形301的长度(对应第一时长),则不调整第二时长。
105.如图4示出的视频图像帧传输的示意图,如果利用弱网进行网络数据传输,由于网络抖动和重传导致需要的额外传输时间,第一个图像帧和第二个图像帧之间的播放时间间隔如矩形401的长度,如果矩形402的长度(对应第二时长)小于矩形401的长度(对应第一时长),则动态调整第二时长为第一时长,并在向应用层传送第二个图像帧之前插入第一时长和第二时长的差值。这样,能够保证在网络状态最差的情况下,接收端也能正常获取数据,并且保证数据严格时间有序排列。由于网络状态是实时变化的,根据第一时长动态调整第二时长,从而调整第三时长,再确定向应用层传送对应的图像帧的时刻。并且,在通过设定生存周期,并根据生存周期调整第二时长,可以根据生存周期的网络特点调整第二时长,尽量避免出现图像的播放时间间隔差异过大的情况。
106.这样,通过实时更新第二时长的处理之后,使应用层基于收到各数据帧的时间依次对对应的数据帧进行渲染,无须额外对各数据帧的渲染时间进行调整,就能够得到平滑的音视频播放效果,并且,视频的各帧图像画面的播放时间间隔和发送端发送数据帧的时间间隔尽可能地保持一致。
107.如图5示出的端到端通信示意图,发送端在平滑层处理应用数据,在平滑数据头记录数据帧的设定帧率、每个数据帧的大小等信息,通过网络层发送至接收端,再将数据帧传送至应用。这里,平滑层可以由网络层和传输层中的任一层实现。
108.如图6示出的发送端的处理流程示意图,包括:发送端获取待发送的应用数据,计算数据帧的时间间隔,在平滑层填充平滑数据头,调用网络发送接口将数据帧向接收方发送。如果因网络断开等情况导致发送失败,则返回给应用层对应的发送失败信息。
109.如图7示出的接收端的处理流程示意图,包括:
110.1:接收端由网络层接收数据。
111.2:将分片的数据进行组装,得到一个完整的数据帧。
112.3:判断分片的数据是否足够组装成一个完整的数据帧。
113.如果分片的数据不能组装成一个完整的数据帧,则执行4;如果分片的数据能够组装成一个完整的数据帧,则执行5。
114.4:本次对数据的接收完成,保存已接收的数据以便在下次接收到数据时进行组装。
115.5:计算本次组成得到一个完整的数据帧和前一次组成得到一个完整的数据帧之间的时间间隔。
116.这里,通过得到组装这一个数据帧的数据的实际到达时间,和组装前一个数据帧的数据的的实际到达时间,再根据数据头记录的帧率一起进行计算。
117.6:判断计算出的时间间隔和第二时长的大小关系。
118.如果计算出的时间间隔小于第二时长,则执行7;如果计算出的时间间隔等于第二时长,则执行11;如果计算出的时间间隔大于第二时长,则执行9。
119.7:判断第二时长的生存周期是否期满。
120.如果第二时长的生存周期期满,则执行10;如果第二时长的生存周期未期满,则执行8。
121.8:记录本次计算的时间间隔,存放到生存周期的时间间隔列表。
122.9:基于计算出的时间间隔更新第二时长。
123.10:当前生存周期已经期满,取当前生存周期的时间间隔的最大值作为新的第二时长。
124.11:重置第二时长的生存周期,并重置生存周期的时间间隔列表。
125.12:判断已接收的数据帧能否被应用读取。
126.如果判断已接收的数据帧能被应用读取,则执行13;如果判断已接收的数据帧不能被应用读取,则执行4。
127.这里,通过判断在传送前一数据帧后是否等待了第三时长,在判断结果表征已经等待了第三时长,才会将对应的数据帧传送至应用层。
128.13:将对应的数据帧传送至应用层。
129.本技术应用实施例提供一种数据处理方案,相较于相关技术基于接收端需要应用层额外处理,本技术应用实施例通过平滑层,在上层应用层无感知的情况下,仍可以使数据帧保持发送端的大小和时间间隔,并根据网络状态动态调整第二时长,从而提升渲染结果的渲染效果。
130.为实现本技术实施例的方法,本技术实施例还提供了一种数据传输装置,如图8所示,该装置包括:
131.处理单元801,用于基于接收到的第一数据帧对应的第一时长和设定的第二时长,确定第三时长;所述第一时长表征所述第一数据帧与第二数据帧之间的接收时间间隔;所述第二数据帧表征所述第一数据帧的前一数据帧;
132.传送单元802,用于在传送所述第二数据帧并等待所述第三时长后,将所述第一数据帧传送至应用层。
133.在一个实施例中,所述处理单元801,用于:
134.在所述第一数据帧为当前数据传输过程中接收到的第一个数据帧的情况下,基于所述第二时长确定第三时长;
135.在所述第一数据帧不为当前数据传输过程中接收到的第一个数据帧的情况下,基于当前数据传输过程对应的设定帧率、所述第一数据帧对应的第一时长和所述第二时长确定第三时长。
136.在一个实施例中,所述处理单元801,用于:
137.在所述第一数据帧对应的第一时长大于所述第二时长的情况下,基于所述设定帧率和第一差值确定所述第三时长;所述第一差值表征所述第一数据帧对应的第一时长和所述第二时长的差值;
138.在所述第一数据帧对应的第一时长小于或等于所述第二时长的情况下,基于所述设定帧率确定所述第三时长。
139.在一个实施例中,所述装置还包括:
140.更新单元,用于根据已接收到的数据帧中每相邻两个数据帧之间的接收时间间隔,更新所述第二时长。
141.在一个实施例中,所述更新单元,用于:
142.在所述第二时长的当前生存周期内接收到至少一个第一数据帧对应的第一时长大于或等于所述第二时长的情况下,更新所述第二时长,并重置所述第二时长的生存周期;和/或,
143.在所述第二时长的当前生存周期内接收到的每个第一数据帧对应的第一时长均小于所述第二时长的情况下,在所述当前生存周期期满的情况下,更新所述第二时长,并重置所述第二时长的生存周期。
144.在一个实施例中,所述更新单元,用于:
145.根据当前生存周期内接收到的至少一个第一数据帧对应的最大的第一时长,更新所述第二时长。
146.在一个实施例中,所述更新单元,用于:
147.基于当前生存周期内接收到的每个第一数据帧对应的第一时长的平均值,更新所述第二时长。
148.在一个实施例中,所述方法应用于vdi终端。
149.实际应用时,所述传送单元802可由基于数据处理装置中的通信接口实现,所述处理单元801、所述更新单元可由基于数据处理装置中的处理器实现。
150.需要说明的是:上述实施例提供的数据处理装置在进行数据处理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
151.基于上述程序模块的硬件实现,且为了实现本技术实施例数据处理方法,本技术实施例还提供了一种电子设备,如图9所示,该电子设备900包括:
152.通信接口910,能够与其它设备比如网络设备等进行信息交互;
153.处理器920,与所述通信接口910连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法。而所述计算机程序存储在存储器930上。
154.当然,实际应用时,电子设备900中的各个组件通过总线系统940耦合在一起。可理解,总线系统940用于实现这些组件之间的连接通信。总线系统940除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统940。
155.本技术实施例中的存储器930用于存储各种类型的数据以支持电子设备900的操作。这些数据的示例包括:用于在电子设备900上操作的任何计算机程序。
156.可以理解,存储器930可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read

only memory)、可擦除可编程只读存储器(eprom,erasable programmable read

only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read

only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd

rom,compact disc read

only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本技术实施例描述的存储器930旨在包括但不限于这些和任意其它适合类型的存储器。
157.上述本技术实施例揭示的方法可以应用于处理器920中,或者由处理器920实现。处理器920可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器920中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器920可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器920可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器930,处理器920读取存储器930中的程序,结合其硬件完成前述方法的步骤。
158.可选地,所述处理器920执行所述程序时实现本技术实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
159.在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具
体为计算机可读存储介质,例如包括存储计算机程序的存储器930,上述计算机程序可由电子设备的处理器920执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd

rom等存储器。
160.在本技术所提供的几个实施例中,应该理解到,所揭露的装置、电子设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
161.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
162.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
163.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
164.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
165.需要说明的是,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。除非另有说明和限定,术语“连接”应做广义理解,例如,可以是电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
166.另外,在本技术实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解“第一\第二\第三”区分的对象在适当情况下可以互换,以使这里描述的本技术的实施例可以除了在这里图示或描述的那些以外的顺序实施。
167.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
168.在具体实施方式中所描述的各个实施例中的各个具体技术特征,在不矛盾的情况下,可以进行各种组合,例如通过不同的具体技术特征的组合可以形成不同的实施方式,为了避免不必要的重复,本技术中各个具体技术特征的各种可能的组合方式不再另行说明。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1