CN116126441A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN116126441A CN116126441A CN202211730146.2A CN202211730146A CN116126441A CN 116126441 A CN116126441 A CN 116126441A CN 202211730146 A CN202211730146 A CN 202211730146A CN 116126441 A CN116126441 A CN 116126441A
- Authority
- CN
- China
- Prior art keywords
- target
- image
- virtual
- memory
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Digital Computer Display Output (AREA)
Abstract
本公开提供一种数据处理方法及装置,涉及数据处理领域,能够在虚拟化技术中,避免通过GPU直通技术使得用户出现黑屏的现象,提升用户体验。具体技术方案为:在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;通过所述虚拟设备获取所述目标图像的信息;将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。本发明用于虚拟设备在GPU直通场景下,宿主设备取得虚拟设备的桌面图像以本地或远程显示虚拟设备的桌面图像,可以避免黑屏的现象,完美兼容了Spice远程桌面传输协议,减少大量数据在内存空间中的复制,极大地提升了图像信息传输的效率,降低了CPU的开销。
Description
技术领域
本公开涉及数据处理领域,尤其涉及一种数据处理方法及装置。
背景技术
当前,随着虚拟化技术不断发展日渐成熟,桌面云平台作为虚拟化技术的主要应用,尤其由于图形处理器(Graphics processing unit,GPU)虚拟化技术的日趋成熟,使得桌面云在图形处理与3D渲染、3D游戏等应用领域,为用户提供了极高的体验。
然而,由于GPU直通是通过虚拟机直接访问GPU硬件的,宿主机上无法获取虚拟机的桌面图像数据,进而看到的是黑屏。同时,在3D处理图形渲染为主的虚拟化方案也会出现图形渲染的本地或远程显示的问题。所以,如何解决该问题在很大程度上决定着用户体验和用户粘性。
此外,支持GPU直通图形渲染的虚拟机需要在虚拟机内部安装额外的远程协议软件,以解决远程显示的问题。但是,支持图形渲染的虚拟机会给客户提供黑屏,这使得客户在虚拟机启动的过程中会因屏幕无法显示而无法对客户机进行操作。另一方面,如果虚拟机内部安装额外的远程协议软件(例如VNC),又会存在启动过程中没有基本输入输出系统(Basic input output system,BIOS)输出进程的现象,并且启动过程中的进入系统之前的阶段也会存在一段时间的黑屏,用户体验感极差。
发明内容
本公开实施例提供一种数据理方法及装置,能够解决虚拟设备在GPU直通场景下,宿主设备无法取得虚拟设备的桌面图像以本地或远程显示虚拟设备的桌面图像的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供一种数据处理方法,该方法包括:在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;通过所述虚拟设备获取所述目标图像的信息;将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。
其中,目标设备可以为虚拟机上的外部设备,目标设备的内存用于存储目标图像的信息(例如,桌面图像的信息,系统光标图像的信息)。
举例而言,可以通过虚拟设备上运行的系统应用获取目标图像的信息,即,该虚拟设备的桌面图像的信息。
具体地,可以将目标图像的信息通过目标设备的驱动程序写入虚拟设备的设备内存中。
基于上述方案,不仅可以避免黑屏的现象,虚拟设备的目标图像还可以直接写入虚拟的设备(例如,目标设备)的内存空间,宿主设备将目标设备作为Spice的显示设备以完成远程桌面的显示,完美兼容了Spice远程桌面传输协议。
此外,通过映射目标设备的空间至用户态空间缓冲区,直接抓取桌面图像的信息和/或系统光标图像的信息至设备IO空间,以传输这些数据到宿主设备,可以减少大量数据在内存空间中的复制,极大地提升了图像信息传输的效率,降低了中央处理器(Centralprocessing unit,CPU)的开销,提升了用户的使用体验。
在一些实施例中,所述将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存,包括:将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。
其中,目标设备的第一内存空间为目标设备的FBIO设备的内存空间,虚拟设备的空间缓存区为用户空间缓冲区。
进一步地,还可以通知目标设备的FBIO设备桌面图像的数据已更新。
在一些实施例中,所述将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存,包括:抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。
其中,目标设备的第二内存空间为目标设备的FBIO设备的光标数据内存空间。
进一步地,还可以通知目标设备的FBIO设备系统光标图像的数据已更新。
基于上述方案,由于目标设备的设备内存为宿主设备上分配的内存,所以宿主设备可以获取虚拟设备的目标图像的信息。
在一些实施例中,所述方法还包括:在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。
具体地,可以通过远程或本地绘制的方式取得目标图像,进而在终端设备显示虚拟设备上运行的目标图像(例如,系统桌面,和/或系统光标图像)。
举例而言,目标设备的FBIO设备可以将桌面图像的信息,和/或系统光标图像的信息提交至Spice服务端模块,Spice服务端模块可以发送桌面图像的信息,和/或系统光标图像的信息至Spice客户端模块,Spice客户端模块可以对解码之后的桌面图像,和/或系统光标图像进行渲染显示。
基于上述方案,可以完成图像渲染的本地或远程的显示,避免用户出现黑屏的现象,提高用户体验和用户粘性。
在一些实施例中,所述方法还包括:将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。
具体地,可以检测分辨率切换(例如,通过桌面抓取模块检测到分辨率切换),之后,通知切换分辨率(例如,通过FBIO客户端模块通知FBIO设备驱动模块切换分辨率,FBIO设备驱动模块通过写入切换分辨率IO寄存器通知FBIO设备模块切换分辨率,FBIO设备模块接收切换分辨率的命令及信息之后,通知Spice服务端模块切换分辨率),接着,Spice服务端模块完成分辨率的切换,并通知Spice客户端切换分辨率,最后,Spice客户端模块完成分辨率切换。
基于上述方案,通过切换分辨率,可以解决不能随着远程控制窗口的大小实时调整,桌面显示不能占满当前屏幕的问题。
根据本公开实施例的第二方面,提供一种数据处理装置,包括存储器和处理器。存储器用于存储程序。当程序在所述处理器中执行时,处理器用于:在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;通过所述虚拟设备获取所述目标图像的信息;将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。
基于上述方案,不仅可以避免黑屏的现象,虚拟设备的目标图像还可以直接写入虚拟的设备(例如,目标设备)的内存空间,宿主设备将目标设备作为Spice的显示设备以完成远程桌面的显示,完美兼容了Spice远程桌面传输协议。
此外,通过映射目标设备的空间至用户态空间缓冲区,直接抓取桌面图像的信息和/或系统光标图像的信息至设备IO空间,以传输这些数据到宿主设备,可以减少大量数据在内存空间中的复制,极大地提升了图像信息传输的效率,降低了CPU的开销,提升了用户的使用体验。
在一些实施例中,所述处理器具体用于:将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。
其中,目标设备的第一内存空间为目标设备的FBIO设备的内存空间,虚拟设备的空间缓存区为用户空间缓冲区。
进一步地,还可以通知目标设备的FBIO设备桌面图像的数据已更新。在一些实施例中,所述处理器具体用于:抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。
其中,目标设备的第二内存空间为目标设备的FBIO设备的光标数据内存空间。
进一步地,还可以通知目标设备的FBIO设备系统光标图像的数据已更新。
基于上述方案,由于目标设备的设备内存为宿主设备上分配的内存,所以宿主设备可以获取虚拟设备的目标图像的信息。
在一些实施例中,所述处理器还用于:在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。
具体地,可以通过远程或本地绘制的方式取得目标图像,进而在终端设备显示虚拟设备上运行的目标图像(例如,系统桌面,和/或系统光标图像)。
举例而言,目标设备的FBIO设备可以将桌面图像的信息,和/或系统光标图像的信息提交至Spice服务端模块,Spice服务端模块可以发送桌面图像的信息,和/或系统光标图像的信息至Spice客户端模块,Spice客户端模块可以对解码之后的桌面图像,和/或系统光标图像进行渲染显示。
基于上述方案,可以完成图像渲染的本地或远程的显示,避免用户出现黑屏的现象,提高用户体验和用户粘性。
在一些实施例中,所述处理器还用于:将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。
具体地,可以检测分辨率切换(例如,通过桌面抓取模块检测到分辨率切换),之后,通知切换分辨率(例如,通过FBIO客户端模块通知FBIO设备驱动模块切换分辨率,FBIO设备驱动模块通过写入切换分辨率IO寄存器通知FBIO设备模块切换分辨率,FBIO设备模块接收切换分辨率的命令及信息之后,通知Spice服务端模块切换分辨率),接着,Spice服务端模块完成分辨率的切换,并通知Spice客户端切换分辨率,最后,Spice客户端模块完成分辨率切换。
基于上述方案,通过切换分辨率,可以解决不能随着远程控制窗口的大小实时调整,桌面显示不能占满当前屏幕的问题。
根据本公开实施例的第三方面,提供一种数据处理的设备,数据处理的处理设备包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的数据处理方法中所执行的步骤。
根据本公开实施例的第四方面,提供一种计算机程序存储介质,其特征在于,所述计算机程序存储介质具有程序指令,当所述程序指令被处理器执行时,使得处理器执行第一方面所述的方法。
根据本公开实施例的第五方面,提供一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述至少一个处理器执行第一方面所述的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是适用于本公开实施例的数据处理的系统架构100的示意图;
图2是本公开实施例提供的一种数据处理方法200的示意图;
图3是本公开实施例提供的一种数据处理设备300的结构图;
图4是本公开实施例提供的一种数据处理装置400的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为便于理解本公开实施例,下面首先对本公开实施例涉及的概念进行说明。
1、帧缓存(Frame Buffer,FB):
FB是Linux为显示设备提供的一个接口,是把显存抽象后的一种设备,其允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由FB设备驱动来完成的。
2、输入/输出((Input/Output,IO):
IO分为IO设备和IO接口两个部分,在POSIX兼容的系统上,例如Linux系统,I/O操作可以有多种方式,比如DIO(Direct I/O),AIO(Asynchronous I/O,异步I/O),Memory-Mapped I/O(内存映射I/O)等,不同的I/O方式有不同的实现方式和性能,在不同的应用中可以按情况选择不同的I/O方式。
3、独立计算环境的简单协议(Simple protocol for independent computingenvironment,Spice):
Spice协议是最新的基于KVM虚拟机的开源虚拟化桌面传输协议,主要应用于RedHat桌面虚拟化解决方案。Spice能用于在服务器和远程计算机如桌面和瘦客户端设备上部署虚拟桌面。它类似于其它用于远程桌面管理的渲染协议,如微软的Remote DesktopProtocol或Citrix的Independent Computing Architecture。它支持Windows XP、Windows7和Red Hat Enterprise Linux等虚拟机实例。
4、外设部件互连标准(Peripheral component interconnect,PCI):
PCI是个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。
当前,随着虚拟化技术不断发展日渐成熟,桌面云平台作为虚拟化技术的主要应用,正在逐步替代传统的物理主机成为主流的办公平台。桌面云平台对于普通的办公软件和工具可以提供很好的支持,几乎可以给予用户与传统物理主机无差别的体验。尤其由于Intel GVT-g核显直通、英伟达(Nvidia)、AMD独显直通,Nvidia GRID vGPU,AMD MxGPU虚拟GPU直通等GPU虚拟化技术的日趋成熟,使得桌面云在图形处理与3D渲染、3D游戏等应用领域,也为用户提供了极高的体验。
由于GPU直通是通过虚拟机直接访问GPU硬件的,在宿主机上只有一个Pseudo PCI驱动,从而在宿主机上无法获取虚拟机的桌面图像数据,进而通过QEMU-KVM SPICE看到的是黑屏。同时,在3D处理图形渲染为主的虚拟化方案均定位于智能桌面虚拟化(Intelligent desktop virtualization,IDV)或虚拟桌面基础架构(Virtual DesktopInfrastructure,VDI)的客户,这样就会面临图形渲染的本地或远程显示的问题。所以,如何解决该问题在很大程度上决定着用户体验和用户粘性。
此外,支持GPU直通图形渲染的虚拟机,要发挥图形渲染的能力,需要在虚拟机内部安装额外的远程协议软件,以解决远程显示的问题。但是,在绝大多数传统客户都已经非常熟悉通过KVM SPICE VNC远程连接客户机的情况下,支持图形渲染的虚拟机会给客户提供黑屏,这使得客户在虚拟机启动的过程中,一旦完成加载BIOS之后,会因屏幕无法显示而无法对客户机进行操作。另一方面,如果虚拟机内部安装额外的远程协议软件(例如VNC),又会存在启动过程中没有BIOS输出进程的现象,并且启动过程中的进入系统之前的阶段也会存在一段时间的黑屏,用户体验感极差。
有鉴于此,本公开提供一种数据处理的方法,可以缓解上述问题。
为便于理解本公开实施例,下面首先对本公开实施例涉及的网络架构进行说明。
图1为适用于本公开实施例的数据处理的系统架构100的示意图。如图1所示,该系统架构100包括虚拟机、宿主机、终端设备,其中,虚拟机包括内核设备、桌面抓取模块120、FBIO客户端模块130,进一步地,内核设备包括视频镜像驱动模块110和FBIO设备驱动模块140;宿主机包括QEMU虚拟机,进一步地,QEMU虚拟机包括FBIO设备模块150和Spice服务端模块160;终端设备包括Spice客户端模块170。以下为对各部分模块的详细介绍:
1、视频镜像驱动模块110:用于通过监测屏幕变化以及发送更新的方式将绘画操作扩展到桌面抓取模块120。
2、桌面抓取模块120:用于在虚拟机的桌面图像进行抓取,在抓取到桌面图像更新区域和光标图像及位置数据之后,可以选择宿主机编码或虚拟机编码,如果选择虚拟机编码,将桌面图像更新区域数据进行H264/H265编码处理。Windows10可以使用DesktopDuplication API进行抓取,Windows 7可以使用视频镜像驱动进行抓取,Linux平台也可以进行桌面的抓取。
3、FBIO客户端模块130:用于在获取经过编码的桌面图像的数据之后,写入通过FBIO设备驱动映射的设备空间缓冲区,从而写入FBIO设备中,并通知设备桌面图像已更新。
4、FBIO设备驱动模块140:用于将FBIO设备内存空间映射至用户空间操作接口,通知FBIO设备桌面数据写入完成等命令接口;提供桌面图像数据的FBIO设备的内存空间映射接口;提供光标数据、位置等FBIO设备的内存空间;提供桌面图像更新通知、光标更新通知、分辨率切换通知等通知接口。
5、FBIO设备模块150:为QEMU虚拟机上的PCI设备,也可理解为QEMU虚拟机模拟构造的一个PCI设备,负责将自己的设备内存空间的桌面数据提交给Spice服务端,用于初始化存储桌面图像数据的FBIO设备的内存空间,初始化用于存储光标数据、位置等FBIO设备的内存空间,以及初始化IO寄存器定义桌面图像更新通知、光标更新通知、分辨率切换通知。
6、Spice服务端模块160:QEMU虚拟机使用Spice服务端通过Spice协议提供对虚拟机的远程访问。虚拟设备接口(VDI)定义了一组接口,这些接口提供了发布虚拟设备(例如显示设备,键盘,鼠标)的标准方法,并使不同的Spice组件能够与这些设备进行交互。一方面,服务器使用Spice协议与远程客户端进行通信,另一方面,它与VDI主机应用程序(例如QEMU虚拟机)进行交互。
7、Spice客户端模块170:为最终用户用来通过Spice访问远程系统的程序。
基于上述系统架构,本公开实施例提供一种数据处理方法200,如图2所示,该数据处理方法200包括以下步骤:
S201,在虚拟设备上构造目标设备。
其中,目标设备的内存为宿主设备的部分或全部内存,宿主设备通过虚拟设备显示目标图像,目标设备可以为虚拟机上的外部设备,目标设备的内存用于存储目标图像的信息(例如,桌面图像的信息,系统光标图像的信息)。
S202,通过虚拟设备获取目标图像的信息。
举例而言,可以通过虚拟设备上运行的系统应用获取目标图像的信息,即,该虚拟设备的桌面图像的信息。
S203,将目标图像的信息通过目标设备写入虚拟设备的内存。
具体地,可以将目标图像的信息通过目标设备的驱动程序写入虚拟设备的设备内存中。
举例而言,首先可以将目标设备的第一内存空间映射至虚拟设备的空间缓存区,其中,目标设备的第一内存空间为目标设备的FBIO设备的内存空间,虚拟设备的空间缓存区为用户空间缓冲区;其次,抓取桌面图像的更新区域集合的信息,桌面图像属于目标图像;最后,通过目标设备将桌面图像的更新区域集合的信息写入虚拟设备的空间缓存区。
进一步地,还可以通知目标设备的FBIO设备桌面图像的数据已更新。
举例而言,首先可以抓取系统光标图像的信息,系统光标图像属于目标图像;之后,将系统光标图像的信息写入目标设备的第二内存空间,目标设备的第二内存空间映射至虚拟设备的空间缓存区,其中,目标设备的第二内存空间为目标设备的FBIO设备的光标数据内存空间。
进一步地,还可以通知目标设备的FBIO设备系统光标图像的数据已更新。
基于上述方案,由于目标设备的设备内存为宿主设备上分配的内存,所以宿主设备可以获取虚拟设备的目标图像的信息。
进一步地,为了显示目标图像,该方法200还包括:在终端设备通过宿主设备显示目标图像,
其中,终端设备用于显示目标图像。
具体地,可以通过远程或本地绘制的方式取得目标图像,进而在终端设备显示虚拟设备上运行的目标图像(例如,系统桌面,和/或系统光标图像)。
举例而言,目标设备的FBIO设备可以将桌面图像的信息,和/或系统光标图像的信息提交至Spice服务端模块,Spice服务端模块可以发送桌面图像的信息,和/或系统光标图像的信息至Spice客户端模块,Spice客户端模块可以对解码之后的桌面图像,和/或系统光标图像进行渲染显示。
基于上述方案,可以完成图像渲染的本地或远程的显示,避免用户出现黑屏的现象,提高用户体验和用户粘性。
更进一步地,为了克服终端设备的桌面不能随着远程控制窗口的大小实时调整,该方法200还包括:将终端设备的分辨率切换至目标分辨率,目标分辨率用于显示目标图像。
具体地,可以检测分辨率切换(例如,通过桌面抓取模块检测到分辨率切换),之后,通知切换分辨率(例如,通过FBIO客户端模块通知FBIO设备驱动模块切换分辨率,FBIO设备驱动模块通过写入切换分辨率IO寄存器通知FBIO设备模块切换分辨率,FBIO设备模块接收切换分辨率的命令及信息之后,通知Spice服务端模块切换分辨率),接着,Spice服务端模块完成分辨率的切换,并通知Spice客户端切换分辨率,最后,Spice客户端模块完成分辨率切换。
应理解,在上述方案中,所有设备与模块均可以对应图1中的设备与模块,例如,虚拟设备可以对应图1中的虚拟机,宿主设备可以对应图1中的宿主机,为了简洁,本公开在此不做赘述。
基于上述方案,虚拟设备的目标图像可以直接写入虚拟的设备(例如,目标设备)的内存空间,宿主设备将目标设备作为Spice的显示设备以完成远程桌面的显示,完美兼容了Spice远程桌面传输协议。
此外,通过映射目标设备的空间至用户态空间缓冲区,直接抓取桌面图像的信息和/或系统光标图像的信息至设备IO空间,以传输这些数据到宿主设备,可以减少大量数据在内存空间中的复制,极大地提升了图像信息传输的效率,降低了CPU的开销,提升了用户的使用体验。
基于上述图2对应的实施例中所描述的数据处理方法200,下述为本公开装置实施例,可以用于执行本公开方法实施例。
本公开实施例提供一种数据处理设备,如图3所示。数据处理设备300可以是终端设备或者网络设备。该数据处理设备300包括:存储模块301和处理模块302。
存储模块301用于存储程序。
当所述程序在处理模块302中执行时,所述处理模块302用于执行前文的数据处理方法。
处理模块302用于:
在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;
通过所述虚拟设备获取所述目标图像的信息;
将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。
可选地,处理模块302具体用于,将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;
抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;
通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。
可选地,所述处理模块302具体用于,抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;
将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。
可选地,所述处理模块302还用于,在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。
可选地,所述处理模块302还用于,将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。
本公开实施例提供的数据处理设备,可以使得目标设备的设备内存为宿主设备上分配的内存,所以宿主设备可以获取虚拟设备的目标图像的信息,完成图像渲染的本地或远程的显示,避免用户出现黑屏的现象,提高用户体验和用户粘性。
此外,虚拟设备的目标图像可以直接写入虚拟的设备(例如,目标设备)的内存空间,宿主设备将目标设备作为Spice的显示设备以完成远程桌面的显示,完美兼容了Spice远程桌面传输协议。
最后,通过映射目标设备的空间至用户态空间缓冲区,直接抓取桌面图像的信息和/或系统光标图像的信息至设备IO空间,以传输这些数据到宿主设备,可以减少大量数据在内存空间中的复制,极大地提升了图像信息传输的效率,降低了CPU的开销,提升了用户的使用体验。
基于上述图2对应的实施例中所描述的数据处理方法,本公开实施例还提供一种数据处理装置,如图4所示。
数据处理装置400包括存储器401和处理器402。数据处理装置400可以是终端设备或者网络设备。
存储器401用于存储程序指令。
当所述程序在处理器402中执行时,所述处理器402用于执行前文中的数据处理方法。
处理器402用于:
在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;
通过所述虚拟设备获取所述目标图像的信息;
将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。
可选地,处理器402具体用于,将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;
抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;
通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。
可选地,处理器402具体用于,抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;
将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。
可选地,处理器402还用于,在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。
可选地,处理器402还用于,将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。
基于上述图2对应的实施例中所描述的数据处理方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图2对应的实施例中所描述的应用于终端设备或服务器的数据处理方法,此处不再赘述。
基于上述图2对应的实施例中所描述的数据处理方法,本公开实施例还提供一种芯片系统,该芯片系统包括至少一个处理器,当程序指令在至少一个处理器中执行时,使得至少一个处理器执行上述图2对应的实施例中所描述的应用于终端设备或服务器的数据处理方法,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;
通过所述虚拟设备获取所述目标图像的信息;
将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存,包括:
将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;
抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;
通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存,包括:
抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;
将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。
6.一种数据处理装置,其特征在于,包括存储器和处理器;
所述存储器用于存储程序;
当所述程序在所述处理器中执行时,所述处理器用于:
在虚拟设备上构造目标设备,所述目标设备的内存为宿主设备的部分或全部内存,所述宿主设备通过所述虚拟设备显示目标图像;
通过所述虚拟设备获取所述目标图像的信息;
将所述目标图像的信息通过所述目标设备写入所述虚拟设备的内存。
7.根据权利要求6所述的装置,其特征在于,所述处理器具体用于:
将所述目标设备的第一内存空间映射至所述虚拟设备的空间缓存区;
抓取桌面图像的更新区域集合的信息,所述桌面图像属于所述目标图像;
通过所述目标设备将所述桌面图像的更新区域集合的信息写入所述虚拟设备的空间缓存区。
8.根据权利要求6或7所述的装置,其特征在于,所述处理器具体用于:
抓取系统光标图像的信息,所述系统光标图像属于所述目标图像;
将所述系统光标图像的信息写入所述目标设备的第二内存空间,所述目标设备的第二内存空间映射至所述虚拟设备的空间缓存区。
9.根据权利要求6所述的装置,其特征在于,所述处理器还用于:
在终端设备通过所述宿主设备显示所述目标图像,所述终端设备用于显示所述目标图像。
10.根据权利要求9所述的装置,其特征在于,所述处理器还用于:
将所述终端设备的分辨率切换至目标分辨率,所述目标分辨率用于显示所述目标图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211730146.2A CN116126441A (zh) | 2022-12-30 | 2022-12-30 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211730146.2A CN116126441A (zh) | 2022-12-30 | 2022-12-30 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126441A true CN116126441A (zh) | 2023-05-16 |
Family
ID=86300332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211730146.2A Pending CN116126441A (zh) | 2022-12-30 | 2022-12-30 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126441A (zh) |
-
2022
- 2022-12-30 CN CN202211730146.2A patent/CN116126441A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2445705C2 (ru) | Способ подготовки отображения данных в серверах (варианты) и машиночитаемый носитель | |
US10114600B2 (en) | Systems and methods for providing adapted multi-monitor topology support in a virtualization environment | |
US20170323418A1 (en) | Virtualized gpu in a virtual machine environment | |
RU2424559C1 (ru) | Способ и вычислительная система для сокращения количества данных, передаваемых удаленному клиентскому терминалу | |
US8872835B2 (en) | Prevention of DoS attack by a rogue graphics application | |
US20160371874A1 (en) | Command remoting | |
US9235452B2 (en) | Graphics remoting using augmentation data | |
JP2013542515A (ja) | 異環境間リダイレクション | |
US11055154B2 (en) | Screen-shooting method and device for guest operating system in computer apparatus | |
US9104452B2 (en) | Hybrid remote sessions | |
US20230410245A1 (en) | Cloud desktop display method and system | |
CN110442389B (zh) | 一种多桌面环境共享使用gpu的方法 | |
CN110968395A (zh) | 一种在模拟器中处理渲染指令的方法及移动终端 | |
CN113784049A (zh) | 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质 | |
US9460481B2 (en) | Systems and methods for processing desktop graphics for remote display | |
CN110545415A (zh) | 数据传输方法、装置及服务器 | |
CN110941408A (zh) | 一种kvm虚拟机图形界面输出方法及装置 | |
CN116126441A (zh) | 数据处理方法及装置 | |
CN113835816A (zh) | 一种虚拟机桌面显示方法、装置、设备及可读存储介质 | |
CN114090188A (zh) | 基于安卓系统虚拟化的实现独立多用户系统的方法及应用 | |
KR20220048311A (ko) | 가상화 환경에서 사용자 가상머신의 화면을 미러링하는 방법 | |
CN115390987A (zh) | 一种基于在arm64架构虚拟机中支持qxl显示的方法 | |
EP3259661B1 (en) | Systems and methods for providing adapted multi-monitor topology support in a virtualization environment | |
CN117591053A (zh) | 信息显示方法、装置、扩展现实设备及计算机存储介质 | |
CN116382838A (zh) | gpu虚拟化实施方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |