一种图像传输方法、服务器、系统和计算机可读存储介质与流程

文档序号:25653065发布日期:2021-06-29 21:09阅读:106来源:国知局
一种图像传输方法、服务器、系统和计算机可读存储介质与流程

1.本申请涉及互联网技术领域,尤其涉及一种图像传输方法、服务器、系统和计算机可读存储介质。


背景技术:

2.随着互联网技术的飞速发展,虚拟化技术也得到了飞速发展,虚拟桌面的应用也越来越广泛。虚拟桌面是一种支持企业级实现桌面系统的远程动态访问与数据中心统一托管的技术。虚拟桌面利用虚拟化技术,实现数据和应用等集中管理,从服务器中虚拟多个桌面,这样,客户通过客户端连接服务器可以使用虚拟桌面操作系统,即服务器将客户想要查看的虚拟桌面图像进行压缩并发送至客户端,实现在客户端上的显示。由于虚拟桌面图像内容数据量较大,在传输虚拟桌面图像时,对通信网络的网络带宽的要求较高。目前,在传输虚拟图像时为了降低对网络带宽的要求,通常采用固定分块的方式将虚拟桌面图像划分为固定大小的分块,然后查询缓存中是否存储有该分块,如果缓存中存储有该分块,则通知客户端,并使客户端从缓存中获得该分块数据,如果没有该分块,则将该分块发送给客户端,最终使客户端得到完整的虚拟桌面图像。
3.但是,申请人在研究过程中发现目前图像传输时采用固定分块的方式,导致分块方式单一,且固定划分的分块的尺寸是固定的,导致缓存命中率较低,无法有效的找到更多已缓存的内容,由此造成网络资源的浪费。
4.申请内容
5.有鉴于此,本申请实施例期望提供一种图像传输方法、服务器、系统和计算机可读存储介质,解决了目前图像传输时分块方式单一的问题,丰富了图像传输时的分块方式,增加了分块的种类,提高了缓存命中率,实现有效找到更多已缓存的内容,提高了网络资源的利用率。
6.为达到上述目的,本申请的技术方案是这样实现的:
7.第一方面,一种图像传输方法,所述方法包括:
8.确定待传输虚拟桌面图像;
9.获取至少一个预设宏块尺寸模板,并控制所述至少一个预设宏块尺寸模板在所述待传输图像上依次遍历,得到m个第一宏块;其中,所述第一宏块是每一滑动位置处所述待传输图像在所述预设宏块尺寸模板内的图像,m为大于或等于1的整数;
10.从所述m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块;其中,n1与n2的和为m,n1和n2均为大于0的整数;
11.对所述n1个第二宏块和所述n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块;其中,所述第一目标宏块包括至少一个第二宏块,所述第二目标宏块包括至少一个第三宏块;
12.获取所述第一目标宏块的缓存位置、所述第一目标宏块在所述待传输虚拟桌面图像中的第一目标位置,并发送所述缓存位置、所述第一目标位置和所述第二目标宏块至客
户端。
13.可选的,所述从所述m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,包括:
14.计算所述m个第一宏块的第一目标哈希值;
15.将每一所述第一目标哈希值与预存储的历史哈希值进行匹配处理,确定出与所述历史哈希值匹配的n1个第二目标哈希值,以及与所述历史哈希值不匹配的n2个第三目标哈希值;
16.从所述m个第一宏块中,获取所述n1个第二目标哈希值对应的第一宏块,作为命中缓存的所述n1个第二宏块;
17.从所述m个第一宏块中,获取所述n2个第三目标哈希值对应的第一宏块,作为非命中缓存的所述n2个第三宏块。
18.可选的,所述对所述n1个第二宏块和所述n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块,包括:
19.确定所述n1个第二宏块的宏块内容;
20.去除所述n1个第二宏块的宏块内容中的重复内容,得到所述第一目标宏块;
21.确定所述n2个第三宏块的宏块内容;
22.去除所述n2个第三宏块的宏块内容中的重复内容,得到所述第二目标宏块。
23.可选的,所述对所述n1个第二宏块进行去重处理,得到所述第一目标宏块,包括:
24.对所述n1个第二宏块中的每一第二宏块进行区域扩展和匹配处理,得到对应的n1个最大匹配宏块;
25.对所述n1个最大匹配宏块进行去重处理,得到所述第一目标宏块。
26.可选的,所述对所述n1个第二宏块中的每一第二宏块中的第二宏块进行区域扩展和匹配处理,得到对应的n1个最大匹配宏块,包括:
27.在所述待传输虚拟桌面图像中,按照预设扩展方向对所述每一第二宏块进行区域扩展,得到n1个第一扩展宏块;
28.将所述n1个第一扩展宏块中的每一所述第一扩展宏块与缓存中的缓存历史图像进行图像匹配处理;
29.若每一所述第一扩展宏块与所述缓存历史图像匹配,则继续在所述待传输虚拟桌面图像中,按照所述预设扩展方向对每一所述第一扩展宏块进行区域扩展和匹配处理,直至第n次区域扩展得到的第二扩展宏块与所述缓存历史图像不匹配时,确定每一所述第一扩展宏块对应的最大匹配宏块,从而得到对应的所述n1个最大匹配宏块;其中,所述每一所述第一扩展宏块对应的最大匹配宏块是第n-1次扩展得到的扩展宏块,n为大于或等于1的整数。
30.可选的,所述对所述n1个最大匹配宏块进行去重处理,得到所述第一目标宏块,包括:
31.确定所述n1个最大匹配宏块的宏块内容;
32.去除所述n1个最大匹配宏块的宏块内容中的重复内容,得到所述第一目标宏块。
33.可选的,所述获取所述第一目标宏块的缓存位置、所述第一目标宏块在所述待传输虚拟桌面图像中的第一目标位置,并发送所述缓存位置、所述第一目标位置和所述第二
目标宏块至客户端之后,所述方法还包括:
34.采用所述至少一个预设宏块尺寸模板中的每一预设宏块尺寸模板,分别对所述待传输虚拟桌面图像进行划分,得到p个第三目标宏块;其中,p为大于或等于1的整数;
35.分别计算所述p个第三目标宏块中每一所述第三目标宏块的哈希值,得到p个第三目标宏块的哈希值;
36.将所述p个第三目标宏块的哈希值作为更新内容更新历史哈希值。
37.第二方面,一种服务器,所述服务器包括:处理器、存储器及通信总线;其中:
38.所述通信总线,用于实现所述处理器和所述存储器之间的连接通信;
39.所述处理器,用于执行所述存储器中存储的图像传输程序,以实现如上述任一项所述的图像传输方法的步骤。
40.第三方面,一种图像传输系统,所述图像传输系统包括服务器和客户端;其中:
41.所述服务器,用于执行如上述任一项所述的图像传输方法的步骤;
42.所述客户端,用于接收所述服务器发送的第一目标宏块的缓存位置、第一目标位置和第二目标宏块,并从缓存的所述第一目标宏块的缓存位置处获取对应的第一缓存内容,在所述第一目标位置处显示所述第一缓存内容,并显示所述第二目标宏块,从而实现所述待传输虚拟桌面图像的显示。
43.第四方面,一种计算机可读存储介质,所述存储介质上存储有图像传输程序,所述图像传输程序被处理器执行时实现如上述任一项所述的图像传输方法的步骤。
44.本申请的实施例所提供的图像传输方法、服务器、系统和计算机可读存储介质,通过确定待传输虚拟桌面图像,获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块,然后从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块后,获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。这样,服务器采用至少一个预设宏块尺寸模板在确定的待传输虚拟桌面图像上进行一次遍历,得到m个第一宏块,并将m个第一宏块于缓存进行匹配,确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并进行去重处理得到第一目标宏块和第二目标宏块,然后将第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置和第二宏块发送至客户端,解决了目前图像传输时分块方式单一的问题,丰富了图像传输时的分块方式,增加了分块的种类,提高了缓存命中率,实现有效找到更多已缓存的内容,提高了网络资源的利用率。
附图说明
45.图1为本申请实施例提供的一种图像传输方法的流程示意图;
46.图2为本申请实施例提供的又一种图像传输方法的流程示意图;
47.图3为本申请实施例提供的再一种图像传输方法的流程示意图;
48.图4为本申请实施例提供的一种应用场景示意图;
49.图5为本申请另一实施例提供的一种图像传输方法的流程示意图;
50.图6为本申请另一实施例提供的又一种图像传输方法的流程示意图;
51.图7为本申请实施例提供的一种服务器的结构示意图;
52.图8为本申请实施例提供的一种图像传输系统的结构示意图。
具体实施方式
53.应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
54.本申请的实施例提供一种图像传输方法,该方法应用于服务器,参照图1所示,该方法包括以下步骤:
55.步骤101、确定待传输虚拟桌面图像。
56.在本申请实施例中,虚拟桌面是基于服务器的计算模型,是一种支持企业级实现桌面系统的远程动态访问与数据中心统一托管的技术。虚拟桌面技术可以让用户采用任何设备、在任何时间、任何地点访问在网络中属于用户自己的桌面系统。待传输虚拟桌面图像是服务器虚拟机上的桌面内容,是以像素为单位的图像,屏幕内容可分为文本图像类、自然图像类和视频类等。服务器确定待传输虚拟桌面图像可以是通过确定与服务器建立通信链接的客户端来实现的,即客户端当前访问服务器,请求访问用户自己对应的桌面系统时,服务器进行待传输虚拟桌面图像进行确定的。
57.步骤102、获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块。
58.其中,第一宏块是每一滑动位置处待传输图像在预设宏块尺寸模板内的图像,m为大于或等于1的整数。
59.在本申请实施例中,预设宏块尺寸模板包括宏块大小和形状,例如为x*y像素,其中,x和y可以相同,也可以不同。对应的服务器获取至少一个预设宏块尺寸模板可以是服务器根据应用场景自己进行选择的,例如当前待传输虚拟桌面图像是excel这类表格场景,重复模式在横向上,对应的可以选择不同大小的至少一个矩形宏块尺寸,例如在视频播放等应用场景中,适用正方形宏块尺寸,对应的选择不同大小的至少一个正方形宏块尺寸。当然,服务器也可以是直接不分应用场景,直接采用预先设置的至少一个预设宏块尺寸模板的。
60.步骤103、从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块。
61.其中,n1与n2的和为m,n1和n2均为大于0的整数。
62.在本申请实施例中,将m个第一宏块于缓存中的历史宏块进行匹配,确定与历史宏块匹配的第一宏块和第一宏块的数量n1,作为命中缓存的n1个第二宏块,则除n1个第二宏块外,其余均为非命中缓存的n2个第三宏块。
63.步骤104、对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块。
64.其中,第一目标宏块包括至少一个第二宏块,第二目标宏块包括至少一个第三宏块。
65.在本申请实施例中,对n1个第二宏块进行去重处理,得到第一目标宏块,其中第一目标宏块包括至少一个宏块,即将n1个第二宏块中的重复宏块删除得到第一目标宏块。对n2个第三宏块进行去重处理,得到第二目标宏块,其中第二目标宏块包括至少一个宏块,即
将n2个第三宏块中的重复宏块删除得到第二目标宏块。
66.步骤105、获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。
67.在本申请实施例中,第一目标宏块的缓存位置即第一目标宏块在缓存区域中的存储位置,第一目标宏块在待传输虚拟桌面图像中的第一目标位置可以是第一目标宏块在在待传输虚拟桌面图像中的像素坐标位置。对应的,服务器可以将缓存位置、第一目标位置和第二目标宏块进行打包压缩发送至对应的客户端。
68.本申请的实施例所提供的图像传输方法,通过确定待传输虚拟桌面图像,获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块,然后从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块后,获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。这样,服务器采用至少一个预设宏块尺寸模板在确定的待传输虚拟桌面图像上进行一次遍历,得到m个第一宏块,并将m个第一宏块于缓存进行匹配,确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并进行去重处理得到第一目标宏块和第二目标宏块,然后将第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置和第二宏块发送至客户端,解决了目前图像传输时分块方式单一的问题,丰富了图像传输时的分块方式,增加了分块的种类,提高了缓存命中率,实现有效找到更多已缓存的内容,提高了网络资源的利用率。
69.基于前述实施例,本申请的实施例提供一种图像传输方法,该方法应用于服务器,参照图2所示,该方法包括以下步骤:
70.步骤201、确定待传输虚拟桌面图像。
71.步骤202、获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块。
72.其中,第一宏块是每一滑动位置处待传输图像在预设宏块尺寸模板内的图像,m为大于或等于1的整数。
73.在本申请实施例中,假设获取到的至少一个预设宏块尺寸模板为像素大小为x1*y1和x2*y2两个预设宏块尺寸模板,则对应的首先控制x1*y1模板以遍历间隔例如为1个像素在待传输图像上进行遍历,直至将待传输图像遍历完,然后再控制x2*y2以遍历间隔例如为1个像素在待传输图像上进行遍历,直至将待传输图像遍历完,这样两次遍历即可得到m个第一宏块,在一些应用场景中,设置遍历整幅待传输图像时,可以将该待传输图像划分成几个不同区域,然后在不同的区域可以采用至少两个不同的预设宏块尺寸模板进行遍历。在一些应用场景中,预设宏块尺寸模板还可以是以毫米、厘米、英寸等为单位来确定的。示例性的,假设待传输虚拟桌面图像的像素大小为1024*1024,则以宏块左上角的坐标位置(0,0)为遍历的起始位置,对应的遍历结束时,宏块左上角所在位置为(1024-x1,1024-y1)为遍历结束位置。
74.步骤203、从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块。
75.其中,n1与n2的和为m,n1和n2均为大于0的整数。
76.在本申请其他实施例中,步骤203可以由以下步骤203a~203d来实现:
77.步骤203a、计算m个第一宏块的第一目标哈希值。
78.在本申请实施例例中,由于图像的哈希值可以唯一的标识该图像。因此,可以对m个第一宏块中的每一第一宏块进行哈希值计算,这样,即可得到m个第一目标哈希值。
79.步骤203b、将每一第一目标哈希值与预存储的历史哈希值进行匹配处理,确定出与历史哈希值匹配的n1个第二目标哈希值,以及与历史哈希值不匹配的n2个第三目标哈希值。
80.在本申请实施例中,预存储的历史哈希值是缓存中的宏块对应的哈希值,可以存储的对应的数据库中。计算第一宏块的哈希值的算法与计算缓存中的宏块的哈希值的算法相同。例如均可以是滚动哈希(rabin-karp)算法。其中,n1个第二目标哈希值是m个第一宏块的第一目标哈希值中与历史哈希值匹配的第一目标哈希值,n2个第三目标哈希值是m个第一宏块的第一目标哈希值中与历史哈希值不匹配的第一目标哈希值。
81.步骤203c、从m个第一宏块中,获取n1个第二目标哈希值分别对应的第一宏块,作为命中缓存的n1个第二宏块。
82.步骤203d、从m个第一宏块中,获取n2个第三目标哈希值分别对应的第一宏块,作为非命中缓存的n2个第三宏块。
83.步骤204、对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块。
84.其中,第一目标宏块包括至少一个第二宏块,第二目标宏块包括至少一个第三宏块。
85.在本申请其他实施例中,步骤204可以由以下步骤204a~204d来实现:
86.步骤204a、确定n1个第二宏块的宏块内容。
87.在本申请实施例中,宏块内容即对应的宏块内的图像内容。
88.步骤204b、去除n1个第二宏块的宏块内容中的重复内容,得到第一目标宏块。
89.在本申请实施例中,示例性的,例如n1为4,即有4个第二宏块a、b、c和d,对应的第二宏块a中的宏块内容属于第二宏块b,即第二宏块a是第二宏块b中的一部分,第二宏块b、第二宏块c和第二宏块d三个宏块的宏块内容没有重复部分,则将第二宏块a删除,这样得到的第一目标宏块包括第二宏块b、第二宏块c和第二宏块d。这样,删除重复内容可以降低对网络资源的消耗,减少对通信网络的数据传输压力,提高客户端的处理器的处理效率。
90.步骤204c、确定n2个第三宏块的宏块内容。
91.步骤204d、去除n2个第三宏块的宏块内容中的重复内容,得到第二目标宏块。
92.在本申请实施例中,第二目标宏块对应的也可以包括多个宏块。
93.步骤205、获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。
94.在本申请实施例中,依次获取第一目标宏块包括的第二宏块b、第二宏块c和第二宏块d的缓存位置,即对应的第一目标宏块的缓存位置为一个缓存位置集合;第一目标宏块在待传输虚拟桌面图像中的第一目标位置也包括多个宏块在待传输虚拟桌面图像中的目标位置,示例性的,每一目标位置可以记为((xb1,yb1),(xb2,yb1),(xb1,yb2),(xb2,
yb2))。
95.在本申请其他实施例中,如图3所示,服务器执行步骤205之后,还可以继续执行以下步骤206~208:
96.步骤206、采用至少一个预设宏块尺寸模板中的每一预设宏块尺寸模板,分别对待传输虚拟桌面图像进行划分,得到p个第三目标宏块。
97.其中,p为大于或等于1的整数。
98.在本申请实施例中,采用x1*y1这个预设宏块尺寸模板对待传输虚拟桌面图像进行划分,用x1*y1这个预设宏块尺寸模板划分完毕后,再采用x2*y2这个预设宏块尺寸模板对待传输虚拟桌面图像进行划分,直至采用x2*y2这个预设宏块尺寸模板对待传输虚拟桌面图像进行划分完毕。需说明的是,在划分的时候,划分区域不重叠,示例性的,例如采用其中一个模板对待传输虚拟桌面图像进行划分后,得到如图4所示的9个相同大小的区域,即对这9个区域进行拼接可以得到完整的待传输虚拟桌面图像。并且在具有多个预设宏块尺寸模板时,首先采用哪个预设宏块尺寸模板进行划分的划分顺序没有特定要求。
99.步骤207、分别计算p个第三目标宏块中每一第三目标宏块的哈希值,得到p个第三目标宏块的哈希值。
100.步骤208、将p个第三目标宏块的哈希值作为更新内容更新历史哈希值。
101.在本申请实施例中,可以将p个第三目标宏块的哈希值更新至数据库中。需说明的是,当p个第三目标宏块的哈希值中存在于数据库中的历史哈希值相同的哈希值时,只保留一个即可,不用重复进行存储。这样,增加缓存样本库中的样本内容,在后续查找缓存样本时,提高了缓存命中率。
102.需要说明的是,本实施例中与其它实施例中相同步骤或概念的解释可以参考其它实施例中的描述,此处不再赘述。
103.本申请的实施例所提供的图像传输方法,通过确定待传输虚拟桌面图像,获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块,然后从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块后,获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。这样,服务器采用至少一个预设宏块尺寸模板在确定的待传输虚拟桌面图像上进行一次遍历,得到m个第一宏块,并将m个第一宏块于缓存进行匹配,确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并进行去重处理得到第一目标宏块和第二目标宏块,然后将第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置和第二宏块发送至客户端,解决了目前图像传输时分块方式单一的问题,丰富了图像传输时的分块方式,增加了分块的种类,提高了缓存命中率,实现有效找到更多已缓存的内容,提高了网络资源的利用率。
104.基于前述实施例,本申请的实施例提供一种图像传输方法,该方法应用于服务器,参照图5所示,该方法包括以下步骤:
105.步骤301、确定待传输虚拟桌面图像。
106.步骤302、获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在
待传输图像上依次遍历,得到m个第一宏块。
107.其中,第一宏块是每一滑动位置处待传输图像在预设宏块尺寸模板内的图像,m为大于或等于1的整数。
108.步骤303、从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块。
109.其中,n1与n2的和为m,n1和n2均为大于0的整数。
110.在本申请其他实施例中,步骤303可以由以下步骤303a~303d来实现:
111.步骤303a、计算m个第一宏块的第一目标哈希值。
112.步骤303b、将每一第一目标哈希值与预存储的历史哈希值进行匹配处理,确定出与历史哈希值匹配的n1个第二目标哈希值,以及与历史哈希值不匹配的n2个第三目标哈希值。
113.步骤303c、从m个第一宏块中,获取n1个第二目标哈希值分别对应的第一宏块,作为命中缓存的n1个第二宏块。
114.步骤303d、从m个第一宏块中,获取n2个第三目标哈希值分别对应的第一宏块,作为非命中缓存的n2个第三宏块。
115.步骤304、对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块。
116.其中,第一目标宏块包括至少一个第二宏块,第二目标宏块包括至少一个第三宏块。
117.在本申请其他实施例中,步骤304可以由以下步骤304a~304b来实现:
118.步骤304a、对n1个第二宏块中的每一第二宏块进行区域扩展和匹配处理,得到对应的n1个最大匹配宏块。
119.在本申请实施例中,对缓存命中的n1个第二宏块中的每一第二宏块进行区域扩展处理,并将每一扩展后的区域与缓存中的历史图像进行图像匹配,得到对应的n1个最大匹配宏块。需说明的是,最大匹配宏块包括进行区域扩展处理后的宏块与缓存中的历史图像匹配处理后,与缓存中的历史图像匹配的最大扩展宏块,还包括部分第二宏块,该部分第二宏块即为进行区域扩展处理后,得到的扩展宏块与缓存中的历史图像均不匹配,但是该部分第二宏块的哈希值与历史哈希值匹配。
120.在本申请其他实施例中,步骤304a可以由以下步骤a11~a13来实现:
121.步骤a11、在待传输虚拟桌面图像中,按照预设扩展方向对每一第二宏块进行区域扩展,得到n1个第一扩展宏块。
122.在本申请实施例中,预设扩展方向可以是单向的,也可以是双向的,也可以是三向的,或者四向均可以,对应的区域扩展可以是按照几个宏块尺寸单位例如几个像素扩展,或者按照宏块尺寸某一边尺寸的翻倍扩展等,直至进行区域扩展超出待传输虚拟桌面图像范围。
123.步骤a12、将n1个第一扩展宏块中的每一第一扩展宏块与缓存中的缓存历史图像进行图像匹配处理。
124.步骤a13、若每一第一扩展宏块与缓存历史图像匹配,则继续在待传输虚拟桌面图像中,按照预设扩展方向对每一第一扩展宏块进行区域扩展和匹配处理,直至第n次区域扩
展得到的第二扩展宏块与缓存历史图像不匹配时,确定每一第一扩展宏块对应的最大匹配宏块,从而得到对应的n1个最大匹配宏块。
125.其中,每一第一扩展宏块对应的最大匹配宏块是第n-1次扩展得到的扩展宏块,n为大于或等于1的整数。
126.在本申请实施例中,将每一第一扩展宏块与缓存历史图像中的每一历史图像进行匹配处理,若每一第一扩展宏块与缓存历史图像中的至少一幅历史图像匹配,即该第一扩展宏块的宏块内容全部属于缓存历史图像中的至少一幅历史图像,则确定该第一扩展宏块与缓存历史图像匹配。若该第一扩展宏块与缓存历史图像中的至少一幅历史图像部分匹配,甚至该第一扩展宏块不属于缓存历史图像中的任意一幅历史图像,则可以确定该第一扩展宏块与缓存历史图像不匹配。
127.步骤304b、对n1个最大匹配宏块进行去重处理,得到第一目标宏块。
128.在本申请其他实施例中,步骤304a可以由以下步骤b11~b12来实现:
129.步骤b11、确定n1个最大匹配宏块的宏块内容。
130.步骤b12、去除n1个最大匹配宏块的宏块内容中的重复内容,得到第一目标宏块。
131.步骤304c、对n2个第三宏块进行去重处理,得到第二目标宏块。
132.在本申请其他实施例中,步骤304c可以由以下步骤c11~c12来实现:
133.步骤c11、确定n2个第三宏块的宏块内容。
134.步骤c12、去除n2个第三宏块的宏块内容中的重复内容,得到第二目标宏块。
135.步骤305、获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。
136.在本申请其他实施例中,如图6所示,服务器执行步骤305之后,还可以继续执行步骤306~308:
137.步骤306、采用至少一个预设宏块尺寸模板中的每一预设宏块尺寸模板,分别对待传输虚拟桌面图像进行划分,得到p个第三目标宏块。
138.其中,p为大于或等于1的整数。
139.步骤307、分别计算p个第三目标宏块中每一第三目标宏块的哈希值,得到p个第三目标宏块的哈希值。
140.步骤308、将p个第三目标宏块的哈希值作为更新内容更新历史哈希值。
141.需要说明的是,本实施例中与其它实施例中相同步骤或概念的解释可以参考其它实施例中的描述,此处不再赘述。
142.本申请的实施例所提供的图像传输方法,通过确定待传输虚拟桌面图像,获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块,然后从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块后,获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。这样,服务器采用至少一个预设宏块尺寸模板在确定的待传输虚拟桌面图像上进行一次遍历,得到m个第一宏块,并将m个第一宏块于缓存进行匹配,确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并进行去重处理得到第一目标宏块和第二目标宏块,然后将第一目标宏块的
缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置和第二宏块发送至客户端,解决了目前图像传输时分块方式单一的问题,丰富了图像传输时的分块方式,增加了分块的种类,提高了缓存命中率,实现有效找到更多已缓存的内容,提高了网络资源的利用率。
143.基于前述实施例,本申请的实施例提供一种服务器4,该服务器可以应用于图1~3、5~6对应的实施例中,参照图7所示,该服务器可以包括:处理器41、存储器42及通信总线43,其中:
144.通信总线43用于实现处理器41和存储器42之间的连接通信;
145.处理器41用于执行存储器42中存储的图像传输程序,以实现以下步骤:
146.确定待传输虚拟桌面图像;
147.获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块;其中,第一宏块是每一滑动位置处待传输图像在预设宏块尺寸模板内的图像,m为大于或等于1的整数;
148.从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块;其中,n1与n2的和为m,n1和n2均为大于0的整数;
149.对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块;其中,第一目标宏块包括至少一个第二宏块,第二目标宏块包括至少一个第三宏块;
150.获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。
151.在本申请其他实施例中,处理器还用于执行以下步骤:
152.计算m个第一宏块的第一目标哈希值;
153.将每一第一目标哈希值与预存储的历史哈希值进行匹配处理,确定出与历史哈希值匹配的n1个第二目标哈希值,以及与历史哈希值不匹配的n2个第三目标哈希值;
154.从m个第一宏块中,获取n1个第二目标哈希值分别对应的第一宏块,作为命中缓存的n1个第二宏块;
155.从m个第一宏块中,获取n2个第三目标哈希值分别对应的第一宏块,作为非命中缓存的n2个第三宏块。
156.在本申请其他实施例中,处理器还用于执行以下步骤:
157.确定n1个第二宏块的宏块内容;
158.去除n1个第二宏块的宏块内容中的重复内容,得到第一目标宏块;
159.确定n2个第三宏块的宏块内容;
160.去除n2个第三宏块的宏块内容中的重复内容,得到第二目标宏块。
161.在本申请其他实施例中,处理器还用于执行以下步骤:
162.对n1个第二宏块中的每一第二宏块进行区域扩展和匹配处理,得到对应的n1个最大匹配宏块;
163.对n1个最大匹配宏块进行去重处理,得到第一目标宏块。
164.在本申请其他实施例中,处理器还用于执行以下步骤:
165.确定n1个最大匹配宏块的宏块内容;
166.去除n1个最大匹配宏块的宏块内容中的重复内容,得到第一目标宏块。
167.在本申请其他实施例中,处理器还用于执行以下步骤:
168.在待传输虚拟桌面图像中,按照预设扩展方向对每一第二宏块进行区域扩展,得到n1个第一扩展宏块;
169.将n1个第一扩展宏块中的每一第一扩展宏块与缓存中的缓存历史图像进行图像匹配处理;
170.若每一第一扩展宏块与缓存历史图像匹配,则继续在待传输虚拟桌面图像中,按照预设扩展方向对每一第一扩展宏块进行区域扩展和匹配处理,直至第n次区域扩展得到的第二扩展宏块与缓存历史图像不匹配时,确定每一第一扩展宏块对应的最大匹配宏块,从而得到对应的n1个最大匹配宏块;其中,每一第一扩展宏块对应的最大匹配宏块是第n-1次扩展得到的扩展宏块,n为大于或等于1的整数。
171.在本申请其他实施例中,处理器执行获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端之后,还用于执行以下步骤:
172.采用至少一个预设宏块尺寸模板中的每一预设宏块尺寸模板,分别对待传输虚拟桌面图像进行划分,得到p个第三目标宏块;其中,p为大于或等于1的整数;
173.分别计算p个第三目标宏块中每一第三目标宏块的哈希值,得到p个第三目标宏块的哈希值;
174.将p个第三目标宏块的哈希值作为更新内容更新历史哈希值。
175.需说明的是,本实施例中处理器所实现的步骤之间的交互过程,可以参照图1~3、5~6对应的实施例及上述实施例提供的图像传输方法中的交互过程,此处不再赘述。
176.本申请的实施例所提供的服务器,通过确定待传输虚拟桌面图像,获取至少一个预设宏块尺寸模板,并控制至少一个预设宏块尺寸模板在待传输图像上依次遍历,得到m个第一宏块,然后从m个第一宏块中确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并对n1个第二宏块和n2个第三宏块进行去重处理,得到第一目标宏块和第二目标宏块后,获取第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置,并发送缓存位置、第一目标位置和第二目标宏块至客户端。这样,服务器采用至少一个预设宏块尺寸模板在确定的待传输虚拟桌面图像上进行一次遍历,得到m个第一宏块,并将m个第一宏块于缓存进行匹配,确定命中缓存的n1个第二宏块和非命中缓存的n2个第三宏块,并进行去重处理得到第一目标宏块和第二目标宏块,然后将第一目标宏块的缓存位置、第一目标宏块在待传输虚拟桌面图像中的第一目标位置和第二宏块发送至客户端,解决了目前图像传输时分块方式单一的问题,丰富了图像传输时的分块方式,增加了分块的种类,提高了缓存命中率,实现有效找到更多已缓存的内容,提高了网络资源的利用率。
177.基于前述实施例,本申请的实施例提供一种图像传输系统5,如图8所示,图像传输系统5包括服务器51和客户端52,其中:
178.服务器51,用于实现如图1~3、5~6对应的实施例提供的图像传输方法;
179.客户端52,用于接收服务器发送的第一目标宏块的缓存位置、第一目标位置和第二目标宏块,并从缓存的第一目标宏块的缓存位置处获取对应的第一缓存内容,在第一目标位置处显示第一缓存内容,并显示第二目标宏块,从而实现待传输虚拟桌面图像的显示。
180.基于前述实施例,本申请的实施例提供一种计算机可读存储介质,计算机可读存
储介质存储有一个或者多个图像传输程序,一个或者多个图像传输程序可被一个或者多个处理器执行,以实现图1~3、5~6对应的实施例提供的图像传输方法。
181.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
182.上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
183.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所描述的方法。
184.本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
185.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
186.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
187.以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1