数据处理方法及装置与流程

文档序号:34180947发布日期:2023-05-17 08:51阅读:51来源:国知局
数据处理方法及装置与流程

本公开涉及数据处理领域,尤其涉及一种数据处理方法及装置。


背景技术:

1、当前,随着虚拟化技术不断发展日渐成熟,桌面云平台作为虚拟化技术的主要应用,尤其由于图形处理器(graphics processing unit,gpu)虚拟化技术的日趋成熟,使得桌面云在图形处理与3d渲染、3d游戏等应用领域,为用户提供了极高的体验。

2、然而,由于gpu直通是通过虚拟机直接访问gpu硬件的,宿主机上无法获取虚拟机的桌面图像数据,进而看到的是黑屏。同时,在3d处理图形渲染为主的虚拟化方案也会出现图形渲染的本地或远程显示的问题。所以,如何解决该问题在很大程度上决定着用户体验和用户粘性。

3、此外,支持gpu直通图形渲染的虚拟机需要在虚拟机内部安装额外的远程协议软件,以解决远程显示的问题。但是,支持图形渲染的虚拟机会给客户提供黑屏,这使得客户在虚拟机启动的过程中会因屏幕无法显示而无法对客户机进行操作。另一方面,如果虚拟机内部安装额外的远程协议软件(例如vnc),又会存在启动过程中没有基本输入输出系统(basic input output system,bios)输出进程的现象,并且启动过程中的进入系统之前的阶段也会存在一段时间的黑屏,用户体验感极差。


技术实现思路

1、本公开实施例提供一种数据理方法及装置,能够解决虚拟设备在gpu直通场景下,宿主设备无法取得虚拟设备的桌面图像以本地或远程显示虚拟设备的桌面图像的问题。所述技术方案如下:

2、根据本公开实施例的第一方面,提供一种数据处理方法,该方法包括:在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;通过所述虚拟设备获取所述目标图像的信息;将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。

3、其中,目标设备可以为虚拟机上的外部设备,目标设备的内存用于存储目标图像的信息(例如,桌面图像的信息,系统光标图像的信息)。

4、举例而言,可以通过虚拟设备上运行的系统应用获取目标图像的信息,即,该虚拟设备的桌面图像的信息。

5、具体地,可以将目标图像的信息通过目标设备的驱动程序写入虚拟设备的设备内存中。

6、基于上述方案,不仅可以避免黑屏的现象,虚拟设备的目标图像还可以直接写入虚拟的设备(例如,目标设备)的内存空间,宿主设备将目标设备作为spice的显示设备以完成远程桌面的显示,完美兼容了spice远程桌面传输协议。

7、此外,通过映射目标设备的空间至用户态空间缓冲区,直接抓取桌面图像的信息和/或系统光标图像的信息至设备io空间,以传输这些数据到宿主设备,可以减少大量数据在内存空间中的复制,极大地提升了图像信息传输的效率,降低了中央处理器(centralprocessing unit,cpu)的开销,提升了用户的使用体验。

8、在一些实施例中,所述将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存,包括:将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。

9、其中,目标设备的第一内存空间为目标设备的fbio设备的内存空间,虚拟设备的空间缓存区为用户空间缓冲区。

10、进一步地,还可以通知目标设备的fbio设备桌面图像的数据已更新。

11、在一些实施例中,所述将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存,包括:抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。

12、其中,目标设备的第二内存空间为目标设备的fbio设备的光标数据内存空间。

13、进一步地,还可以通知目标设备的fbio设备系统光标图像的数据已更新。

14、基于上述方案,由于目标设备的设备内存为宿主设备上分配的内存,所以宿主设备可以获取虚拟设备的目标图像的信息。

15、在一些实施例中,所述方法还包括:在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。

16、具体地,可以通过远程或本地绘制的方式取得目标图像,进而在终端设备显示虚拟设备上运行的目标图像(例如,系统桌面,和/或系统光标图像)。

17、举例而言,目标设备的fbio设备可以将桌面图像的信息,和/或系统光标图像的信息提交至spice服务端模块,spice服务端模块可以发送桌面图像的信息,和/或系统光标图像的信息至spice客户端模块,spice客户端模块可以对解码之后的桌面图像,和/或系统光标图像进行渲染显示。

18、基于上述方案,可以完成图像渲染的本地或远程的显示,避免用户出现黑屏的现象,提高用户体验和用户粘性。

19、在一些实施例中,所述方法还包括:将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。

20、具体地,可以检测分辨率切换(例如,通过桌面抓取模块检测到分辨率切换),之后,通知切换分辨率(例如,通过fbio客户端模块通知fbio设备驱动模块切换分辨率,fbio设备驱动模块通过写入切换分辨率io寄存器通知fbio设备模块切换分辨率,fbio设备模块接收切换分辨率的命令及信息之后,通知spice服务端模块切换分辨率),接着,spice服务端模块完成分辨率的切换,并通知spice客户端切换分辨率,最后,spice客户端模块完成分辨率切换。

21、基于上述方案,通过切换分辨率,可以解决不能随着远程控制窗口的大小实时调整,桌面显示不能占满当前屏幕的问题。

22、根据本公开实施例的第二方面,提供一种数据处理装置,包括存储器和处理器。存储器用于存储程序。当程序在所述处理器中执行时,处理器用于:在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;通过所述虚拟设备获取所述目标图像的信息;将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。

23、基于上述方案,不仅可以避免黑屏的现象,虚拟设备的目标图像还可以直接写入虚拟的设备(例如,目标设备)的内存空间,宿主设备将目标设备作为spice的显示设备以完成远程桌面的显示,完美兼容了spice远程桌面传输协议。

24、此外,通过映射目标设备的空间至用户态空间缓冲区,直接抓取桌面图像的信息和/或系统光标图像的信息至设备io空间,以传输这些数据到宿主设备,可以减少大量数据在内存空间中的复制,极大地提升了图像信息传输的效率,降低了cpu的开销,提升了用户的使用体验。

25、在一些实施例中,所述处理器具体用于:将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。

26、其中,目标设备的第一内存空间为目标设备的fbio设备的内存空间,虚拟设备的空间缓存区为用户空间缓冲区。

27、进一步地,还可以通知目标设备的fbio设备桌面图像的数据已更新。在一些实施例中,所述处理器具体用于:抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。

28、其中,目标设备的第二内存空间为目标设备的fbio设备的光标数据内存空间。

29、进一步地,还可以通知目标设备的fbio设备系统光标图像的数据已更新。

30、基于上述方案,由于目标设备的设备内存为宿主设备上分配的内存,所以宿主设备可以获取虚拟设备的目标图像的信息。

31、在一些实施例中,所述处理器还用于:在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。

32、具体地,可以通过远程或本地绘制的方式取得目标图像,进而在终端设备显示虚拟设备上运行的目标图像(例如,系统桌面,和/或系统光标图像)。

33、举例而言,目标设备的fbio设备可以将桌面图像的信息,和/或系统光标图像的信息提交至spice服务端模块,spice服务端模块可以发送桌面图像的信息,和/或系统光标图像的信息至spice客户端模块,spice客户端模块可以对解码之后的桌面图像,和/或系统光标图像进行渲染显示。

34、基于上述方案,可以完成图像渲染的本地或远程的显示,避免用户出现黑屏的现象,提高用户体验和用户粘性。

35、在一些实施例中,所述处理器还用于:将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。

36、具体地,可以检测分辨率切换(例如,通过桌面抓取模块检测到分辨率切换),之后,通知切换分辨率(例如,通过fbio客户端模块通知fbio设备驱动模块切换分辨率,fbio设备驱动模块通过写入切换分辨率io寄存器通知fbio设备模块切换分辨率,fbio设备模块接收切换分辨率的命令及信息之后,通知spice服务端模块切换分辨率),接着,spice服务端模块完成分辨率的切换,并通知spice客户端切换分辨率,最后,spice客户端模块完成分辨率切换。

37、基于上述方案,通过切换分辨率,可以解决不能随着远程控制窗口的大小实时调整,桌面显示不能占满当前屏幕的问题。

38、根据本公开实施例的第三方面,提供一种数据处理的设备,数据处理的处理设备包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的数据处理方法中所执行的步骤。

39、根据本公开实施例的第四方面,提供一种计算机程序存储介质,其特征在于,所述计算机程序存储介质具有程序指令,当所述程序指令被处理器执行时,使得处理器执行第一方面所述的方法。

40、根据本公开实施例的第五方面,提供一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述至少一个处理器执行第一方面所述的方法。

41、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1