首页 / 专利库 / 电脑图像 / 位图图像 / 显卡透传环境下基于SPICE协议的差异图像显示系统

显卡透传环境下基于SPICE协议的差异图像显示系统

阅读:122发布:2020-05-12

专利汇可以提供显卡透传环境下基于SPICE协议的差异图像显示系统专利检索,专利查询,专利分析的服务。并且本 发明 属于计算机科学技术领域,具体涉及一种显卡透传环境下基于SPICE协议的差异图像显示系统。与 现有技术 相比较,本发明通过比较 虚拟机 桌面图像产生差异图像数据,对差异图像数据的合并,差异图像数据的压缩。通过采用差异图像 算法 既能降低传输数据量,又能做到高清晰度低延时。由此,相比现有技术,本发明由于只将图像的差异部分传输给SPICE服务端,极大的降低了图像数据量,且将差异图像进行了合并,减少虚拟机I/O的传输次数,不再占用大量的虚拟机I/O,降低虚拟机性能。并且,由于只需要比较当前桌面和上一幅桌面就能发送一个数据报文,可以在获取桌面图像的同时将其发送给客户端,随抓随发,可以做到即时显示,降低延时。,下面是显卡透传环境下基于SPICE协议的差异图像显示系统专利的具体信息内容。

1.一种显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述差异图像显示系统包括:虚拟机端代理组件及SPICE服务器端的图像转换模;所述虚拟机端代理组件包括:分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块;所述图像转换模块包括:图像大小判断模块、第二图像发送模块、图像压缩模块;其中,
所述分辨率获取模块,用于从透传显卡获取当前桌面分辨率,根据虚拟机性能确定切割后矩形图像的长X和宽Y的大小;
所述图像切割模块,用于从透传显卡获取当前的桌面图像A,按照长X和宽Y进行切割,将桌面图像A切割成N个的矩形图像,每个矩形图像内的图像数据都为原始位图数据;
所述图像排列模块,用于将N个矩形图像按照桌面坐标次序进行排列,左上的矩形图像为第一个,右下角的矩形图像为最后一个,按照坐标从左到右然后从上到下的顺序排列,记录这些矩形图像的图像数据和坐标数据,放入一个数组LA中;
在桌面分辨率不变的情况下,当桌面刷新时,从透传显卡获取新的桌面图像B,重复图像切割模块和图像排列模块的工作,得到对应新的桌面图像B的一系列的矩形图像的数组LB;
所述图像比较模块,用于对由桌面图像A和桌面图像B切割形成的N个有次序的矩形图像按顺序进行比较,即比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致,然后从数组LB中删除一样的矩形图像,只保留不一样的矩形图像,从而得到新的数组LB2;
所述图像合并模块,用于将LB2数组中的矩形图像做合并操作:如果某个矩形图像的左右或者上下的矩形图像也在LB2中,那么将这些位置邻近的矩形图像组合成一个大的矩形图像,修改其长和宽、坐标数据以及图像数据,将新组合成的矩形图像放入数组LB3中,新的数组LB3中的矩形图像的大小不再一致;
所述第一图像发送模块,用于将来自图像合并模块的数组LB3发送给SPICE服务端,数组LB3中的图像即为差异图像;
所述图像保存模块,用于将数组LB的图像保存至内存,释放数组LA、数组LB2、数组LB3的图像;
由此,重复上述分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块的工作,每捕获到一幅新的桌面图像,进行切割,并和上一幅桌面图像比较、合并,然后传输给SPICE服务端;
由此,通过分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块的工作,完成虚拟机端代理组件的工作;
所述图像大小判断模块,用于接收来自虚拟机端代理组件的若干个数组LB3的矩形图像,依次对数组中的每一个矩形图像根据图像的大小进行判断,是否进行图像压缩;
所述第二图像发送模块,用于对于数组LB3中不需要压缩的矩形图像,依次取出,根据矩形图像的原始坐标数据和原始图像数据,将图像转化成SPICE协议所规定数据格式的SPICE协议数据,形成一个数据报文,发送到客户端;
所述图像压缩模块,对于需要压缩的矩形图像,在SPICE服务端由图像压缩模块无损压缩后,根据矩形图像的原始坐标数据和压缩后的图像数据,将图像转化成SPICE协议数据,形成一个数据报文,再由第二图像发送模块发送到客户端;
由此,完成SPICE服务器端的图像转换模块的工作;
在SPICE客户端,在接收到SPICE服务端发送的SPICE协议数据,将其转化为图像数据;
对于不需要解压的图像,将其直接显示到客户端桌面;对于需要解压缩的图像,对其进行解压缩,再显示到客户端桌面。
2.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述透传显卡定义为:图像通过物理显卡透传到虚拟机的过程中,该物理显卡称为透传显卡。
3.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述分辨率获取模块工作过程中,X=系统桌面分辨率长/32,Y=系统桌面分辨率宽/
32。
4.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述图像切割模块工作过程中,若当前桌面图像A为分辨率改变后的第一幅桌面图像,则将桌面图像A压缩后整幅图像传输给客户。
5.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述图像排列模块工作过程中,所述图像数据为图像位图数据。
6.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,在获得数组LB之后,在桌面分辨率改变时,需要重新开始分辨率获取模块的工作。
7.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述图像比较模块工作过程中,比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致为:比较矩形图像的图像数据和坐标数据是否均一致。
8.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述图像合并模块工作过程中,所述某个矩形图像的左右或者上下的矩形图像表示:
对于某个矩形图像的左边的矩形图像,其坐标数据的右坐标数据与前述某个矩形图像的左坐标数据相同;
对于某个矩形图像的右边的矩形图像,其坐标数据的左坐标数据与前述某个矩形图像的右坐标数据相同;
对于某个矩形图像的上边的矩形图像,其坐标数据的下坐标数据与前述某个矩形图像的上坐标数据相同;
对于某个矩形图像的下边的矩形图像,其坐标数据的上坐标数据与前述某个矩形图像的下坐标数据相同。
9.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述图像大小判断模块工作过程中,是否进行图像压缩的大小限制条件为:图像大小是否超过128像素*128像素,若超过128像素*128像素,则需要进行压缩。
10.如权利要求1所述的显卡透传环境下基于SPICE协议的差异图像显示系统,其特征在于,所述图像压缩模块工作过程中,所述服务端无损压缩过程为并行处理,即将数据Lb3内的多个图像进行并行压缩。

说明书全文

显卡透传环境下基于SPICE协议的差异图像显示系统

技术领域

[0001] 本发明属于计算机科学技术领域,具体涉及一种显卡透传环境下基于SPICE协议的差异图像显示系统。

背景技术

[0002] SPICE是一款开源桌面虚拟化数据传输协议,通过QEMU提供的显卡直通机制,将服务器上的物理显卡提供给虚拟机使用,能满足用户三维设计、工业设计、视频播放等高性能显示需求。现有技术通过虚拟机内代理采集虚拟机内的桌面图像数据,将捕获到的显卡透传桌面图像,使用原始图像压缩算法或者H264视频压缩算法,将这些图像数据传递给客户端。
[0003] 1)使用原始图像压缩算法传输显卡透传数据:
[0004] 虚拟机内代理捕获每一的桌面,只要桌面刷新就进行捕获,然后使用透传显卡压缩每一幅桌面图像,图像数据大小与桌面分辨率成正比。虚拟机内代理一边进行图像压缩,一边将图像数据使用通信信道发送给SPICE服务端,SPICE服务端将压缩后的图像数据转换成SPICE协议数据,发送给客户端。
[0005] 2)使用H264视频压缩算法传输显卡透传数据:
[0006] 虚拟机内代理从虚拟机桌面捕获若干幅显示图像,通过透传显卡将图像硬件压缩成H264视频流。H264视频压缩算法将若干幅图像压缩成一帧进行传输,图像之间帧间相关,帧之间有先后顺序要求。虚拟机内代理将压缩后的视频流使用通信信道发送给SPICE服务端,SPICE服务端将视频流转换成SPICE协议数据,发送给客户端。客户端接收视频流后需要使用硬件解码或软件解码后才能显示。
[0007] 但,上述两种方案均存在其固有缺陷如下:
[0008] 1)现有方案使用原始图像压缩算法,由于捕获每一帧的桌面,即使进行了图像压缩,图像数据量依然巨大,且与桌面分辨率成正比,缺点如下:
[0009] a)压缩后的数据需要传输给SPICE服务端,占用大量虚拟机I/O,降低虚拟机性能。
[0010] b)图像压缩后的图像数据量依然巨大,大大占用网络带宽,降低网络性能,不适合复杂的互联网环境。
[0011] 2)现有方案使用使用H264视频压缩算法传输显卡透传数据,缺点如下:
[0012] a)H264视频压缩算法为有损压缩算法,造成图片质量损耗,降低清晰度。
[0013] b)H264视频压缩算法将若干幅图像压缩成一帧进行传输,捕获时需要一小段时间差,造成一定的延时。
[0014] c)客户端接收到H264视频流,需要解码后显示。解码有两种方法:
[0015] a.使用硬件解码H264视频流,客户端需要具有硬件解码能
[0016] b.不具备硬件解码H264视频流能力的客户端,需要使用CPU解码H264视频流,会占用大量CPU资源,且解码能力差。
[0017] 综上,使用原始图像压缩算法传输显卡透传数据,极大的影响了虚拟机性能并且占用大量网络带宽,不适用于互联网环境。使用H264视频压缩算法传输显卡透传数据,会造成网络延时,图像质量损耗,不适用于工业设计等要求高清晰度、低延时的场景。

发明内容

[0018] (一)要解决的技术问题
[0019] 本发明要解决的技术问题是:如何提供一种显卡透传环境下基于SPICE协议的差异图像显示系统。
[0020] (二)技术方案
[0021] 为解决上述技术问题,本发明提供一种显卡透传环境下基于SPICE协议的差异图像显示系统,所述差异图像显示系统包括:虚拟机端代理组件及SPICE服务器端的图像转换模;所述虚拟机端代理组件包括:分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块;所述图像转换模块包括:图像大小判断模块、第二图像发送模块、图像压缩模块;其中,
[0022] 所述分辨率获取模块,用于从透传显卡获取当前桌面分辨率,根据虚拟机性能确定切割后矩形图像的长X和宽Y的大小;
[0023] 所述图像切割模块,用于从透传显卡获取当前的桌面图像A,按照长X和宽Y进行切割,将桌面图像A切割成N个的矩形图像,每个矩形图像内的图像数据都为原始位图数据;
[0024] 所述图像排列模块,用于将N个矩形图像按照桌面坐标次序进行排列,左上的矩形图像为第一个,右下角的矩形图像为最后一个,按照坐标从左到右然后从上到下的顺序排列,记录这些矩形图像的图像数据和坐标数据,放入一个数组LA中;
[0025] 在桌面分辨率不变的情况下,当桌面刷新时,从透传显卡获取新的桌面图像B,重复图像切割模块和图像排列模块的工作,得到对应新的桌面图像B的一系列的矩形图像的数组LB;
[0026] 所述图像比较模块,用于对由桌面图像A和桌面图像B切割形成的N个有次序的矩形图像按顺序进行比较,即比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致,然后从数组LB中删除一样的矩形图像,只保留不一样的矩形图像,从而得到新的数组LB2;
[0027] 所述图像合并模块,用于将LB2数组中的矩形图像做合并操作:如果某个矩形图像的左右或者上下的矩形图像也在LB2中,那么将这些位置邻近的矩形图像组合成一个大的矩形图像,修改其长和宽、坐标数据以及图像数据,将新组合成的矩形图像放入数组LB3中,新的数组LB3中的矩形图像的大小不再一致;
[0028] 所述第一图像发送模块,用于将来自图像合并模块的数组LB3发送给SPICE服务端,数组LB3中的图像即为差异图像;
[0029] 所述图像保存模块,用于将数组LB的图像保存至内存,释放数组LA、数组LB2、数组LB3的图像;
[0030] 由此,重复上述分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块的工作,每捕获到一幅新的桌面图像,进行切割,并和上一幅桌面图像比较、合并,然后传输给SPICE服务端;
[0031] 由此,通过分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块的工作,完成虚拟机端代理组件的工作;
[0032] 所述图像大小判断模块,用于接收来自虚拟机端代理组件的若干个数组LB3的矩形图像,依次对数组中的每一个矩形图像根据图像的大小进行判断,是否进行图像压缩;
[0033] 所述第二图像发送模块,用于对于数组LB3中不需要压缩的矩形图像,依次取出,根据矩形图像的原始坐标数据和原始图像数据,将图像转化成SPICE协议所规定数据格式的SPICE协议数据,形成一个数据报文,发送到客户端;
[0034] 所述图像压缩模块,对于需要压缩的矩形图像,在SPICE服务端由图像压缩模块无损压缩后,根据矩形图像的原始坐标数据和压缩后的图像数据,将图像转化成SPICE协议数据,形成一个数据报文,再由第二图像发送模块发送到客户端;
[0035] 由此,完成SPICE服务器端的图像转换模块的工作;
[0036] 在SPICE客户端,在接收到SPICE服务端发送的SPICE协议数据,将其转化为图像数据;对于不需要解压的图像,将其直接显示到客户端桌面;对于需要解压缩的图像,对其进行解压缩,再显示到客户端桌面。
[0037] 其中,所述透传显卡定义为:图像通过物理显卡透传到虚拟机的过程中,该物理显卡称为透传显卡。
[0038] 其中,所述分辨率获取模块工作过程中,X=系统桌面分辨率长/32,Y=系统桌面分辨率宽/32。
[0039] 其中,所述图像切割模块工作过程中,若当前桌面图像A为分辨率改变后的第一幅桌面图像,则将桌面图像A压缩后整幅图像传输给客户。
[0040] 其中,所述图像排列模块工作过程中,所述图像数据为图像位图数据。
[0041] 其中,在获得数组LB之后,在桌面分辨率改变时,需要重新开始分辨率获取模块的工作。
[0042] 其中,所述图像比较模块工作过程中,比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致为:比较矩形图像的图像数据和坐标数据是否均一致。
[0043] 其中,所述图像合并模块工作过程中,所述某个矩形图像的左右或者上下的矩形图像表示:
[0044] 对于某个矩形图像的左边的矩形图像,其坐标数据的右坐标数据与前述某个矩形图像的左坐标数据相同;
[0045] 对于某个矩形图像的右边的矩形图像,其坐标数据的左坐标数据与前述某个矩形图像的右坐标数据相同;
[0046] 对于某个矩形图像的上边的矩形图像,其坐标数据的下坐标数据与前述某个矩形图像的上坐标数据相同;
[0047] 对于某个矩形图像的下边的矩形图像,其坐标数据的上坐标数据与前述某个矩形图像的下坐标数据相同。
[0048] 其中,所述图像大小判断模块工作过程中,是否进行图像压缩的大小限制条件为:图像大小是否超过128像素*128像素,若超过128像素*128像素,则需要进行压缩。
[0049] 其中,所述图像压缩模块工作过程中,所述服务端无损压缩过程为并行处理,即将数据Lb3内的多个图像进行并行压缩。
[0050] (三)有益效果
[0051] 现有基于SPICE的显卡直通方案中,使用原始图像压缩算法传输显卡透传数据时,由于图像数据量大,降低虚拟机性能和网络性能;使用H264视频压缩算法传输显卡透传数据时,清晰度低延时高,并且要求客户端具有H264硬解码功能,否则会消耗大量客户端的CPU资源。
[0052] 与现有技术相比较,本发明采用差异图像算法既能降低传输数据量,又能做到高清晰度低延时。
[0053] 其中,本发明所采用的区别技术特征包括:
[0054] (1)比较虚拟机桌面图像产生差异图像数据。
[0055] (2)对差异图像数据的合并。
[0056] (3)差异图像数据的压缩。
[0057] 由此,相比现有技术,本发明的优点如下:
[0058] (1)对比原始图像压缩算法:
[0059] a)由于只将图像的差异部分传输给SPICE服务端,极大的降低了图像数据量,且将差异图像进行了合并,减少虚拟机I/O的传输次数,不再占用大量的虚拟机I/O,降低虚拟机性能。
[0060] b)首先图像的差异部分会降低一部分数据量,其次对差异部分中较大的图像再进行压缩,进一步降低数据量,不再占用大量的网络带宽,影响网络性能。
[0061] (2)对比H264视频压缩算法:
[0062] a)只需要比较当前桌面和上一幅桌面就能发送一个数据报文,可以在获取桌面图像的同时将其发送给客户端,随抓随发,可以做到即时显示,降低延时。
[0063] b)对图像进行无损压缩,不损耗图像质量,具有更高的清晰度。
[0064] c)对于不具备硬件解码H264视频流能力的客户端,采用差异图像算法时,解码一幅图片所消耗的CPU资源比解码H264视频流少,提升性能。附图说明
[0065] 图1及图2为本发明技术方案原理示意图。

具体实施方式

[0066] 为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0067] 为解决现有技术问题,本发明提供一种显卡透传环境下基于SPICE协议的差异图像显示系统,如图1及图2所示,所述差异图像显示系统包括:虚拟机端代理组件及SPICE服务器端的图像转换模块;所述虚拟机端代理组件包括:分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块;所述图像转换模块包括:图像大小判断模块、第二图像发送模块、图像压缩模块;其中,[0068] 所述分辨率获取模块,用于从透传显卡获取当前桌面分辨率,根据虚拟机性能确定切割后矩形图像的长X和宽Y的大小,单位为像素;
[0069] 所述图像切割模块,用于从透传显卡获取当前的桌面图像A,按照长X和宽Y进行切割,将桌面图像A切割成N个的矩形图像,每个矩形图像内的图像数据都为原始位图数据;
[0070] 所述图像排列模块,用于将N个矩形图像按照桌面坐标次序进行排列,左上角的矩形图像为第一个,右下角的矩形图像为最后一个,按照坐标从左到右然后从上到下的顺序排列,记录这些矩形图像的图像数据和坐标数据,放入一个数组LA中;
[0071] 在桌面分辨率不变的情况下,当桌面刷新时,从透传显卡获取新的桌面图像B,重复图像切割模块和图像排列模块的工作,得到对应新的桌面图像B的一系列的矩形图像的数组LB;
[0072] 所述图像比较模块,用于对由桌面图像A和桌面图像B切割形成的N个有次序的矩形图像按顺序进行比较,即通过OpenGL快速比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致,然后从数组LB中删除一样的矩形图像,只保留不一样的矩形图像,从而得到新的数组LB2;
[0073] 所述图像合并模块,用于将LB2数组中的矩形图像做合并操作:如果某个矩形图像的左右或者上下的矩形图像也在LB2中,那么将这些位置邻近的矩形图像组合成一个大的矩形图像,修改其长和宽、坐标数据以及图像数据,将新组合成的矩形图像放入数组LB3中,新的数组LB3中的矩形图像的大小不再一致;
[0074] 所述第一图像发送模块,用于将来自图像合并模块的数组LB3发送给SPICE服务端,数组LB3中的图像即为差异图像;
[0075] 所述图像保存模块,用于将数组LB的图像保存至内存,释放数组LA、数组LB2、数组LB3的图像;
[0076] 由此,重复上述分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块的工作,每捕获到一幅新的桌面图像,进行切割,并和上一幅桌面图像比较、合并,然后传输给SPICE服务端;
[0077] 由此,通过分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块的工作,完成虚拟机端代理组件的工作;
[0078] 所述图像大小判断模块,用于接收来自虚拟机端代理组件的若干个数组LB3的矩形图像,依次对数组中的每一个矩形图像根据图像的大小进行判断,是否进行图像压缩;
[0079] 所述第二图像发送模块,用于对于数组LB3中不需要压缩的矩形图像,依次取出,根据矩形图像的原始坐标数据和原始图像数据,将图像转化成SPICE协议所规定数据格式的SPICE协议数据,形成一个数据报文,发送到客户端,没有先后顺序要求;
[0080] 所述图像压缩模块,对于需要压缩的矩形图像,在SPICE服务端由图像压缩模块无损压缩后,根据矩形图像的原始坐标数据和压缩后的图像数据,将图像转化成SPICE协议数据,形成一个数据报文,再由第二图像发送模块发送到客户端,没有先后顺序要求;
[0081] 由此,完成SPICE服务器端的图像转换模块的工作;
[0082] 在SPICE客户端,在接收到SPICE服务端发送的SPICE协议数据,将其转化为图像数据;对于不需要解压的图像,将其直接显示到客户端桌面,没有先后顺序要求;对于需要解压缩的图像,对其进行解压缩(并行处理),再显示到客户端桌面,没有先后顺序要求。
[0083] 其中,所述透传显卡定义为:图像通过物理显卡透传到虚拟机的过程中,该物理显卡称为透传显卡。
[0084] 其中,所述分辨率获取模块工作过程中,X=系统桌面分辨率长/32,Y=系统桌面分辨率宽/32,虚拟机性能越高,X和Y可以越小。
[0085] 其中,所述图像切割模块工作过程中,若当前桌面图像A为分辨率改变后的第一幅桌面图像,则将桌面图像A压缩后整幅图像传输给客户。
[0086] 其中,所述图像排列模块工作过程中,所述图像数据为图像位图数据。
[0087] 其中,在获得数组LB之后,在桌面分辨率改变时,需要重新开始分辨率获取模块的工作。
[0088] 其中,所述图像比较模块工作过程中,比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致为:比较矩形图像的图像数据和坐标数据是否均一致。
[0089] 其中,所述图像合并模块工作过程中,所述某个矩形图像的左右或者上下的矩形图像表示:
[0090] 对于某个矩形图像的左边的矩形图像,其坐标数据的右坐标数据与前述某个矩形图像的左坐标数据相同;
[0091] 对于某个矩形图像的右边的矩形图像,其坐标数据的左坐标数据与前述某个矩形图像的右坐标数据相同;
[0092] 对于某个矩形图像的上边的矩形图像,其坐标数据的下坐标数据与前述某个矩形图像的上坐标数据相同;
[0093] 对于某个矩形图像的下边的矩形图像,其坐标数据的上坐标数据与前述某个矩形图像的下坐标数据相同。
[0094] 其中,所述图像大小判断模块工作过程中,是否进行图像压缩的大小限制条件默认为:图像大小是否超过128像素*128像素,若超过128像素*128像素,则需要进行压缩,该图像大小会根据用户设定,服务器CPU性能和网络带宽条件进行动态调整,当CPU性能越低或者网络带宽较高时,会限制需要图像压缩的矩形图像数量,需要压缩的图像大小长和宽以指数型增长。
[0095] 其中,所述图像压缩模块工作过程中,所述服务端无损压缩过程为并行处理,即将数据Lb3内的多个图像进行并行压缩。
[0096] 此外,本发明还提供一种显卡透传环境下基于SPICE协议的差异图像显示方法,如图1及图2所示,所述方法基于差异图像显示系统来实施,所述差异图像显示系统包括:虚拟机端代理组件及SPICE服务器端的图像转换模块;所述虚拟机端代理组件包括:分辨率获取模块、图像切割模块、图像排列模块、图像比较模块、图像合并模块、第一图像发送模块、图像保存模块;所述图像转换模块包括:图像大小判断模块、第二图像发送模块、图像压缩模块;
[0097] 所述差异图像显示方法包括如下步骤:
[0098] 步骤1:所述分辨率获取模块从透传显卡获取当前桌面分辨率,根据虚拟机性能确定切割后矩形图像的长X和宽Y的大小,单位为像素。
[0099] 步骤2:所述图像切割模块从透传显卡获取当前的桌面图像A,按照长X和宽Y进行切割,将桌面图像A切割成N个的矩形图像,每个矩形图像内的图像数据都为原始位图数据;
[0100] 步骤3:所述图像排列模块将N个矩形图像按照桌面坐标次序进行排列,左上角的矩形图像为第一个,右下角的矩形图像为最后一个,按照坐标从左到右然后从上到下的顺序排列,记录这些矩形图像的图像数据和坐标数据,放入一个数组LA中;
[0101] 步骤4:在桌面分辨率不变的情况下,当桌面刷新时,从透传显卡获取新的桌面图像B,重复步骤2和步骤3,得到对应新的桌面图像B的一系列的矩形图像的数组LB;
[0102] 步骤5:所述图像比较模块对由桌面图像A和桌面图像B切割形成的N个有次序的矩形图像按顺序进行比较,即通过OpenGL快速比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致,然后从数组LB中删除一样的矩形图像,只保留不一样的矩形图像,从而得到新的数组LB2;
[0103] 步骤6:所述图像合并模块将LB2数组中的矩形图像做合并操作:如果某个矩形图像的左右或者上下的矩形图像也在LB2中,那么将这些位置邻近的矩形图像组合成一个大的矩形图像,修改其长和宽、坐标数据以及图像数据,将新组合成的矩形图像放入数组LB3中,新的数组LB3中的矩形图像的大小不再一致;
[0104] 步骤7:所述第一图像发送模块将步骤6获得的数组LB3发送给SPICE服务端,数组LB3中的图像即为差异图像;
[0105] 步骤8:所述图像保存模块将数组LB的图像保存至内存,释放数组LA、数组LB2、数组LB3的图像;
[0106] 步骤9:重复上述步骤1至步骤8,每捕获到一幅新的桌面图像,进行切割,并和上一幅桌面图像比较、合并,然后传输给SPICE服务端;
[0107] 由此,通过步骤1-步骤9,完成虚拟机端代理组件的工作;
[0108] 步骤10:所述图像大小判断模块接收到来自虚拟机端代理组件的若干个数组LB3的矩形图像,依次对数组中的每一个矩形图像根据图像的大小进行判断,是否进行图像压缩;
[0109] 步骤11:所述第二图像发送模块对于数组LB3中不需要压缩的矩形图像,依次取出,根据矩形图像的原始坐标数据和原始图像数据,将图像转化成SPICE协议所规定数据格式的SPICE协议数据,形成一个数据报文,发送到客户端,没有先后顺序要求;
[0110] 步骤12:对于需要压缩的矩形图像,在SPICE服务端由图像压缩模块无损压缩后,根据矩形图像的原始坐标数据和压缩后的图像数据,将图像转化成SPICE协议数据,形成一个数据报文,再由第二图像发送模块发送到客户端,没有先后顺序要求;
[0111] 由此,完成SPICE服务器端的图像转换模块的工作;
[0112] 在SPICE客户端,继续完成下述步骤:
[0113] 步骤13:接收到SPICE服务端发送的SPICE协议数据,将其转化为图像数据;
[0114] 步骤14:将不需要解压的图像直接显示到客户端桌面,没有先后顺序要求;
[0115] 步骤15:将需要解压缩的图像进行解压缩(并行处理),再显示到客户端桌面,没有先后顺序要求。
[0116] 其中,所述透传显卡定义为:图像通过物理显卡透传到虚拟机的过程中,该物理显卡称为透传显卡。
[0117] 其中,所述步骤1中,X=系统桌面分辨率长/32,Y=系统桌面分辨率宽/32,虚拟机性能越高,X和Y可以越小。
[0118] 其中,所述步骤2中,若当前桌面图像A为分辨率改变后的第一幅桌面图像,则将桌面图像A压缩后整幅图像传输给客户。
[0119] 其中,所述步骤3中,所述图像数据为图像位图数据。
[0120] 其中,所述步骤4中,在桌面分辨率改变时,需要重新开始步骤1。
[0121] 其中,所述步骤5中,比较数组LA中的第i个矩形图像是否和数组LB中的第i个矩形图像是否一致为:比较矩形图像的图像数据和坐标数据是否均一致。
[0122] 其中,所述步骤6中,所述某个矩形图像的左右或者上下的矩形图像表示:
[0123] 对于某个矩形图像的左边的矩形图像,其坐标数据的右坐标数据与前述某个矩形图像的左坐标数据相同;
[0124] 对于某个矩形图像的右边的矩形图像,其坐标数据的左坐标数据与前述某个矩形图像的右坐标数据相同;
[0125] 对于某个矩形图像的上边的矩形图像,其坐标数据的下坐标数据与前述某个矩形图像的上坐标数据相同;
[0126] 对于某个矩形图像的下边的矩形图像,其坐标数据的上坐标数据与前述某个矩形图像的下坐标数据相同。
[0127] 其中,所述步骤10中,是否进行图像压缩的大小限制条件默认为:图像大小是否超过128像素*128像素,若超过128像素*128像素,则需要进行压缩,该图像大小会根据用户设定,服务器CPU性能和网络带宽条件进行动态调整,当CPU性能越低或者网络带宽较高时,会限制需要图像压缩的矩形图像数量,需要压缩的图像大小长和宽以指数型增长。
[0128] 其中,所述步骤12中,所述服务端无损压缩过程为并行处理,即将数据Lb3内的多个图像进行并行压缩。
[0129] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈