CN107729095B - 图像处理方法、虚拟化平台及计算机可读存储介质 - Google Patents
图像处理方法、虚拟化平台及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107729095B CN107729095B CN201710827346.2A CN201710827346A CN107729095B CN 107729095 B CN107729095 B CN 107729095B CN 201710827346 A CN201710827346 A CN 201710827346A CN 107729095 B CN107729095 B CN 107729095B
- Authority
- CN
- China
- Prior art keywords
- image data
- image
- interface
- sequence
- calling
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于虚拟桌面环境的图像处理方法,应用于计算机辅助设计,所述图像处理方法包括以下步骤:虚拟化平台接收虚拟客户端发送的图形接口调用序列;基于所述图形接口调用序列,在显存中渲染生成图像数据;调用显卡通用计算能力,对所述图像数据进行预处理;调用显卡硬件编码接口,对进行预处理后的所述图像数据进行编码处理,得到编码图像数据;将所述编码图像数据从显存拷贝到主存,再从主存发送至所述虚拟客户端进行显示。本发明还公开了一种虚拟化平台及可读存储介质。本发明在显存中对图像数据进行预处理和编码处理,避免额外占用主存资源、浪费不必要的网络带宽和消耗CPU计算能力,进而提升了用户使用虚拟桌面的体验。
Description
技术领域
本发明涉及虚拟化技术领域,尤其涉及一种图像处理方法、虚拟化平台及计算机可读存储介质。
背景技术
随着科学技术的进步及桌面虚拟化技术的发展,越来越多的计算机辅助设计应用被部署到VDI虚拟桌面上,而虚拟桌面中的内容是以图像的方式传输到虚拟客户端进行显示的。
目前,在虚拟桌面的图像传输过程中,为了使图像更逼真,通常采用主存对图像进行处理,再把处理后的图像拷贝到显存中进行编码压缩,最后将处理结果回传到虚拟客户端。然而,对于虚拟桌面的每一次操作,都需要进行图像处理,而主存对图像进行处理无疑极大地占用了主存资源和空间,增加额外的主存带宽消耗,造成不必要的网络带宽浪费,同时还消耗大量的CPU计算能力,不利于提高图像传输速率以及减轻虚拟化平台处理信息的负担,从而降低了用户使用虚拟桌面的体验。
发明内容
本发明的主要目的在于提供一种图像处理方法、虚拟化平台及计算机可读存储介质,旨在解决如何实现虚拟桌面的图像处理避免额外占用主存资源和浪费不必要的网络带宽的技术问题。
为实现上述目的,本发明提供的一种基于虚拟桌面环境的图像处理方法,应用于计算机辅助设计,所述图像处理方法包括以下步骤:
虚拟化平台接收虚拟客户端发送的图形接口调用序列;
基于所述图形接口调用序列,在显存中渲染生成图像数据;
调用显卡通用计算能力,对所述图像数据进行预处理;
调用显卡硬件编码接口,对进行预处理后的所述图像数据进行编码处理,得到编码图像数据;
将所述编码图像数据从显存拷贝到主存,再从主存发送至所述虚拟客户端进行显示。
优选地,在所述基于所述图形接口调用序列,在显存中渲染生成图像数据的步骤之前,所述图像处理方法还包括:
判断所述图形接口调用序列中的图像接口调用类型是否为所述虚拟化平台的图像接口调用类型;
若否,则基于所述图形接口调用序列中的图像接口调用的语义,将所述图形接口调用序列中的图像接口调用转换为所述虚拟化平台的图像接口调用。
优选地,所述基于所述图形接口调用序列,在显存中渲染生成图像数据包括:
基于所述图形接口调用序列,依序调用对应的显卡图形接口,以在显存中渲染生成图像数据;
在显存中创建所述图像数据的多个缓冲区,并根据渲染生成所述图像数据时所调用的显卡图形接口类型,采用对应类型的显卡交互接口共享所述缓冲区,以供所述显卡硬件编码接口与所述显卡通用计算能力进行访问。
优选地,所述基于所述图形接口调用序列,在显存中渲染生成图像数据包括:
基于所述图形接口调用序列,采用离屏渲染技术在显存中渲染生成所述图像数据。
优选地,所述预处理至少包括:将RGB格式的所述图像数据转化为YUV格式,或者自定义所述图像数据的压缩算法。
为实现上述目的,本发明还提供一种虚拟化平台,应用于计算机辅助设计,其特征在于,所述虚拟化平台包括:
存储有图像处理程序的存储器;
处理器,配置为执行图像处理程序以执行下述操作:
接收虚拟客户端发送的图形接口调用序列;
基于所述图形接口调用序列,在显存中渲染生成图像数据;
调用显卡通用计算能力,对所述图像数据进行预处理;
调用显卡硬件编码接口,对进行预处理后的所述图像数据进行编码处理,得到编码图像数据;
将所述编码图像数据从显存拷贝到主存,再从主存发送至所述虚拟客户端进行显示。
优选地,在执行所述基于所述图形接口调用序列,在显存中渲染生成图像数据的操作之前,所述处理器还包括执行以下操作:
判断所述图形接口调用序列中的图像接口调用类型是否为所述虚拟化平台的图像接口调用类型;
若否,则基于所述图形接口调用序列中的图像接口调用的语义,将所述图形接口调用序列中的图像接口调用转换为所述虚拟化平台的图像接口调用。
优选地,执行所述基于所述图形接口调用序列,在显存中渲染生成图像数据的操作包括:
基于所述图形接口调用序列,依序调用对应的显卡图形接口,以在显存中渲染生成图像数据;
在显存中创建所述图像数据的多个缓冲区,并根据渲染生成所述图像数据时所调用的显卡图形接口类型,采用对应类型的显卡交互接口共享所述缓冲区,以供所述显卡硬件编码接口与所述显卡通用计算能力进行访问。
优选地,执行所述基于所述图形接口调用序列,在显存中渲染生成图像数据的操作包括:
基于所述图形接口调用序列,采用离屏渲染技术在显存中渲染生成所述图像数据。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有图像处理程序,所述图像处理程序被处理器执行时实现如上述任一项所述的基于虚拟桌面环境的图像处理方法的步骤。
本发明中,虚拟化平台根据接收虚拟客户端发送的图形接口调用序列,在显存中渲染生成图像数据,并通过调用显卡通用计算能力和显卡硬件编码接口,对所述图像数据进行预处理和编码处理,最后将最终的处理结果从显存拷贝到主存后再发送到虚拟客户端。本发明在进行预处理和编码处理过程中无须主存参与,进而避免引入额外的主存占用、产生额外的主存带宽消耗、造成不必要的网络带宽浪费以及消耗大量的CPU计算能力,从而提高图像传输速率,减轻虚拟化平台处理信息的负担,并提升了用户使用虚拟桌面的体验。
附图说明
图1为本发明图像处理方法一实施例的流程示意图;
图2为图1中步骤S20一实施例的细化流程示意图;
图3为本发明图像处理方法一较佳实施例的流程示意图;
图4为本发明虚拟化平台执行图像处理一实施例的流程示意图;
图5为本发明虚拟化平台在虚拟桌面环境下的部署架构图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于虚拟桌面环境的图像处理方法。
参照图1,图1为本发明图像处理方法一实施例的流程示意图。本实施例中,基于虚拟桌面环境的图像处理方法包括:
步骤S10,虚拟化平台接收虚拟客户端发送的图形接口调用序列;
本实施例中,虚拟桌面是建立在虚拟桌面基础架构(Virtual DesktopInfrastructure,简称VDI)下,而VDI是一种基于服务器的计算模型,将桌面系统的远程动态访问与数据中心进行托管并统一管理的技术,使得用户可以通过任何设备、在任何地点或任何时间,访问在网络上属于用户个人的桌面系统。虚拟桌面可以使一个用户拥有多个桌面环境,也可以使一个桌面环境供多个用户共同使用。同时在极小的广域网带宽环境下,用户可以使用平板电脑、智能手机等移动终端通过虚拟化平台随时随地访问自己的桌面环境。同时虚拟桌面依赖于虚拟化平台,而虚拟化平台是虚拟化技术的核心。目前虚拟化平台主要产品有VSphere、Hyper-V、XenServer、PowerVM、、FusionSphere、KVM等,具体根据实际需要进行设置。
虚拟客户端是网络体系中的计算机终端,可以是智能手机、掌上电脑、瘦客户端等,将鼠标、键盘等输入传送到虚拟化平台处理,虚拟化平台把处理结果回传到虚拟客户端进行显示。不同的虚拟客户端可以同时登录到虚拟化平台上,模拟出一个相互独立的工作环境。
在计算机领域中,所有软件的程序接口,包括图形接口(GDI、X11、GUI等)在内,统称为应用程序接口API(Application Program Interface)。在计算机辅助设计场景中,应用程序开发员使用图形接口绘制图像,并在显示器、打印机或其它设备上输出图像结果。图形接口函数包括:颜色函数、位图函数、字体和文本函数、直线和曲线函数等。
用户在网络上使用虚拟桌面,通过虚拟客户端的应用程序向虚拟化平台发送图形接口调用序列,进而虚拟化平台根据接收到的图形接口调用序列进行处理,再把处理结果回传到虚拟客户端进行显示,最终用户在个人的虚拟桌面环境得到该图像的输出结果。图形接口调用序列包括多个图形接口调用,次序不做任何限定,优选按时间顺序排序。在将图像传输到虚拟客户端时,通常为了降低带宽、提高传输效率,需要将图像进行编码压缩处理,而把图像进行压缩会使图像出现画面颜色暗淡模糊、不够流畅等问题,因此并不适用于VDI场景。为进一步适用于VDI场景,同时保证图像的质量高,可利用CPU对图像进行预处理再进行编码压缩,最后将处理结果回传到虚拟客户端。随着科技的快速发展,利用CPU对图像进行预处理无疑占用了主存资源、延缓了传输效率,同时还增加额外的主存带宽消耗,造成不必要的网络带宽浪费,不利于减轻虚拟化平台处理信息的负担。
步骤S20,基于图形接口调用序列,在显存中渲染生成对应图像数据;
本实施例中,图形接口可自动和显卡的驱动程序对接,启动GPU强大的图形处理功能,加速渲染三维、二维场景。在计算机图形技术领域中,图像渲染是利用计算机强大计算能力,模拟现实生活中的各种视觉现象,使图像在虚拟环境中更为逼真、更为生动、更为立体。根据图形接口调用序列,依次与显卡的驱动程序对接,通过渲染技术在显存中生成图像数据。渲染技术可以是缓冲技术、光线跟踪技术、辐射度技术等;图像数据包括彩色图像、灰度图像、文字符号、坐标数据等。
步骤S30,调用显卡通用计算能力,对图像数据进行预处理;
本实施例中,显卡通用计算能力是专为执行复杂的数学和几何计算而设计的,而这些计算是图形渲染所必需的。显卡通用计算能力的运算速率高能够满足复杂的图像要求,同时采用显卡通用计算能力协助绘图计算能够有效降低占用主存资源。目前市场上显卡通用计算能力有很多,主要有CUDA、DirectCompute、OpenCL、ATI Stream,其中CUDA只能使用NVIDIA的显卡实现;DirectCompute可以在ATI、NVIDIA、Intel的显卡使用;OpenCL可以在不同架构CPU、GPU等硬件提供支持。具体地,虚拟化平台根据显卡硬件厂商提供的显卡通用计算能力进行调用,用以对图像数据进行预处理,优化图像数据、保证图像在后续压缩处理时不会影响最终的显示效果。同时对于图像数据进行预处理不需要额外拷贝,占用显存资源,从而减少了图像数据在主存和显存之间的拷贝所增加的传输数据,简化处理步骤。
步骤S40,调用显卡硬件编码接口,对处理后的图像数据进行编码处理,得到编码图像数据;
本实施例中,显卡硬件编码接口是由显卡硬件厂商提供的,可直接对图像进行编码,但通常是针对视频场景设计的,从而在VDI虚拟桌面中并不能够很好地运用,使得虚拟桌面的图像在显色、清晰度、流畅性等出现不同问题。显卡硬件编码接口包括但不限于目前已知的有NVENC、AMD VEC、Intel Media SDK等,具体根据实际需要进行设置。由于处理后的图像数据仍然较为庞大,在存储、传输时也较为困难,大量消耗网络带宽,因此处理后的图像数据在不丢失有用数据的前提下,必须进行编码处理。采用显卡硬件编码接口对处理后的图像数据进行编码处理不仅能够达到良好的压缩质量,还能够大幅度提高图像数据的传输速度。具体地,处理后的图像数据同样不需要额外拷贝,额外占用显存资源,即可被显卡硬件编码接口处理。
步骤S50,将编码图像数据从显存拷贝到主存,再从主存发送至虚拟客户端进行显示。
本实施例中,将编码图像数据从显存拷贝到主存,涉及到显存数据到主存数据的交互,但经过显卡硬件编码接口的压缩处理使得数据量较小,能够减少数据的传输量,进而提高图像传输速度和处理效率。具体地,最后处理结果从主存发送到虚拟客户端的方式可以是直接或间接、连续或断续等,例如构建第三方数据交换通道,并分段传输数据的方式。其图像格式一般为BMP、PCX、GIF、JPG、H264,HEVC,VP8,VP9等,具体根据实际需要进行设置。
需要进一步说明的是,搭载虚拟化平台或是虚拟客户端的操作系统有多种,如市面上的windows、Unix、Linux、Mac OS等,其硬件配置设置不一样,也就是说,显卡配置不同,其图形接口、显卡硬件编码接口、显卡计算能力也会有所不同,具体根据实际使用情况进行设置。
本实施例中,虚拟化平台根据接收虚拟客户端发送的图形接口调用序列,在显存中渲染生成图像数据,并通过调用显卡通用计算能力和显卡硬件编码接口,对所述图像数据进行预处理和编码处理,最后将处理结果从显存拷贝到主存并发送到虚拟客户端。在进行预处理和编码处理过程中,避免引入额外的主存占用资源、产生额外的主存带宽消耗和造成不必要的网络带宽浪费,从而提高图像传输速率,减轻虚拟化平台处理信息的负担,并提升了用户使用虚拟桌面的体验。
可选的,图像接口调用包括处理二维图像的二维图像接口调用和处理三维图像的三维图像接口调用,其二维图像接口调用和三维图像接口调用根据厂家推出的品牌划分为不同类型,比如X11、GUI、DirectX、OpenGL、2D GDI等,均设有丰富底层图形库,调用方便,其图像处理功能强大,均为专业的图形编程接口。不同的图像接口体现了不一样的扩展性、灵活性和便捷性,而这些正是图形用户们所在乎的。一般三维图像接口调用可处理三维图像和/或二维图像,其图像处理能力比二维图像接口调用只能处理二维图像要强大的多,而且运算处理能力也更快。
为了简化图像处理过程,以及增强图像处理能力,在本发明步骤S20之前,还需对接收到的图形接口调用序列进行判断分析,判断图形接口调用序列中的图像接口调用类型是否为虚拟化平台的图像接口调用类型。当接收到的图形接口调用序列中的图像接口调用类型不为虚拟化平台的图像接口调用类型,即与虚拟化平台的图像接口调用类型不相同时,基于接收到的图像接口调用的语义转换为虚拟化平台的图像接口调用,比如当接收到的图形接口调用序列中有2D GDI,虚拟化平台的图像接口调用没有2D GDI的类型而有DirectX,则按照语义将2D GDI转换成DirectX的接口调用。当接收到的当接收到的图形接口调用序列中有DirectX,同时虚拟化平台的图像接口调用也有DirectX的类型,则可直接调用而无需转换。具体地,基于虚拟化平台硬件设备的局限性,将接收虚拟客户端发送的图形接口调用序列中的图像接口调用,只要转化成能够让虚拟化平台进行进一步处理的图像接口调用即可。进一步地,图形接口调用序列包括多个图形接口调用,比如若干个二维图像接口调用和/或若干个三维图像接口调用,优选按逻辑顺序和/或时间顺序调用图形接口。
参照图2,图2为图1中步骤S20的细化流程示意图。基于上述实施例,本实施例中,步骤S20:基于图形接口调用序列,在显存中渲染生成图像数据包括:
步骤S21,基于图形接口调用序列,依序调用对应的显卡图形接口,以在显存中渲染生成图像数据;
本实施例中,图形接口调用序列包括多个图形接口调用,根据图形接口调用序列,按顺序读取调用对应的显卡图形接口实现接口,进而通过显卡驱动调用对应的底层图形库,达到实现加速的目的。虚拟化平台接收到三维图像接口调用,则调用显卡中三维图像接口用以实现接口。例如,接收到DirectX接口调用,则调用显卡中DirectX接口的底层图形库,并通过渲染技术在显存中生成图像数据。
步骤S22,在显存中创建图像数据的多个缓冲区,并根据渲染生成图像数据时所调用的显卡图形接口类型,采用对应类型的显卡交互接口共享缓冲区,以供显卡硬件编码接口与显卡通用计算能力进行访问。
本实施例中,显卡图形接口、显卡硬件编码接口以及显卡通用计算能力的产品多且并不通用,因此在显存中需创建多个缓冲区,实现显存共享。例如,在显存中,渲染生成的图像数据根据所调用的显卡图形接口是DirectX,创建Render Targets缓冲区并共享。硬件编码接口(NVENC)与显卡通用计算能力(CUDA)在该Render Targets缓冲区对图像数据进行预处理、编码处理,且处理结果存储在Render Targets缓冲区中。显卡图形接口是OpenGL,可以创建Framebuffer、RenderBuffer、Texure等缓冲区,缓冲区的数量、形式、规模可根据实际需要进行设置。
本实施例中,渲染是将抽象的模型(一个抽象的但是可以可视化的东西,可以是物体模型,比如桌子椅子;也可以是数据模型,比如树状图、饼图等)变成屏幕上可以显示的图像。离屏渲染(Off-Screen Rendering)指的是显存在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。采用离屏渲染技术可提高在显存中渲染生成图像数据的效率,同时处理流程相对于稳定流畅,能够提高图像处理能力,以及减轻虚拟化平台处理信息的负担。例如在显存的Framebuffer缓冲区中,渲染生成图像数据。
进一步地,在本发明图像处理方法一实施例中,对图像数据进行预处理的方式至少包括:将RGB格式的图像数据转化为YUV格式,或者自定义图像数据的压缩算法。
通常,RGB是按三基色(红、绿、篮)加光系统的原理来描述颜色,而YUV则是按照亮度,色差的原理来描述颜色。将RGB格式的图像数据转化为YUV格式进行传输、储存,占用更少的数据量。YUV是一种颜色编码方法,亮度信号Y和两个色差信号B-Y(即U)、R-Y(即V),而YUV的采样格式又有多种,如YUV444、YUV411、YUV422、YUV420等YUV图像数据,具体根据实际需要进行设置。同样自定义图像数据的压缩算法也是基于保留有有用的图像数据,减少数据的冗余和存储的空间,具体根据实际需要进行设置。
参照图3,图3为本发明图像处理方法一较佳实施例的流程示意图。
为了辅助理解本发明图像处理方法,在此提供基于虚拟桌面环境的图像处理方法一较佳实施例,是以图形接口调用为2D GDI和OpenGL接口调用、显卡通用计算能力为OpenCL、显卡硬件编码接口为NVENC举例说明,图像处理方法包括:
1.用户使用虚拟客户端向虚拟化平台发送图形接口调用序列;
本实施例中,图形接口主要是负责虚拟客户端与虚拟化平台之间绘图程序的信息交换,提供一系列的函数和相关的结构,处理所有程序的图形输出。图形接口可自动和显卡的驱动程序对接,启动GPU强大的图形处理功能,加速渲染三维、二维场景。
2.虚拟化平台接收到虚拟客户端发送的图形接口调用序列;
3.判断图形接口调用序列是否存在2D GDI接口调用,若存在则继续,若不存在则跳转到第5步;
三维图像接口调用可处理三维图像和/或二维图像,其图像处理能力比二维图像(2D GDI)接口调用只能处理二维图像要强大的多,为简化图像处理过程,以及增强图像处理能力,对接收到的图形接口调用序列进行判断分析。
4.根据2D GDI接口调用的语义转换为OpenGL接口调用;
5.依序调用对应的OpenGL接口;
按顺序读取调用对应的显卡OpenGL接口实现接口,进而通过显卡驱动调用对应的底层图形库,达到实现加速的目的。
6.在显存中创建RenderBuffer缓冲区;
在显存中创建缓冲区,采用对应类型的显卡交互接口共享缓冲区,以供显卡硬件编码接口以及显卡通用计算能力进行访问。
7.在RenderBuffer缓冲区内离屏渲染生成图像数据;
采用离屏渲染技术可提高在显存中渲染生成图像数据的效率,同时处理流程相对于稳定流畅,能够提高图像处理能力,以及减轻虚拟化平台处理信息的负担。
8.调用OpenCL对图像数据进行预处理;
预处理的方式有很多,至少包括:将RGB格式的图像数据转化为YUV格式,或者自定义图像数据的压缩算法。
9.调用NVENC对进行预处理后的图像数据进行编码处理;
由于处理后的图像数据仍然较为庞大,在存储、传输时也较为困难,大量消耗网络带宽,因此处理后的图像数据在不丢失有用数据的前提下,必须进行编码处理。采用显卡硬件编码接口对处理后的图像数据进行编码处理不仅能够达到良好的压缩质量,还能够大幅度提高图像数据的传输速度。
10.将编码图像数据从显存拷贝到主存,再从主存发送至虚拟客户端进行显示。
最后处理结果从主存发送到虚拟客户端的方式可以是直接或间接、连续或断续等,具体根据实际需要进行设置。
本实施例中,图像数据是在显存中进行预处理和编码处理,避免引入额外的主存占用资源、产生额外的主存带宽消耗和造成不必要的网络带宽浪费,从而提高图像传输速率,减轻虚拟化平台处理信息的负担,并提升了用户使用虚拟桌面的体验。
基于本发明上述实施例中的图像处理方法,本实施例还提供一种虚拟化平台,应用于计算机辅助设计。虚拟化平台包括:
存储有图像处理程序的存储器;
处理器,配置为执行图像处理程序以执行下述操作:
接收虚拟客户端发送的图形接口调用序列;
基于图形接口调用序列,在显存中渲染生成图像数据;
调用显卡通用计算能力,对图像数据进行预处理;
调用显卡硬件编码接口,对进行预处理后的图像数据进行编码处理,得到编码图像数据;
将编码图像数据从显存拷贝到主存,再从主存发送至虚拟客户端进行显示。
本发明虚拟化平台根据接收虚拟客户端发送的图形接口调用序列,在显存中渲染生成图像数据,并通过调用显卡通用计算能力和显卡硬件编码接口,对所述图像数据进行预处理和编码处理,最后将处理结果从显存拷贝到主存并发送到虚拟客户端。在进行预处理和编码处理过程中,避免引入额外的主存占用资源、产生额外的主存带宽消耗和造成不必要的网络带宽浪费,从而提高图像传输速率,减轻处理信息的负担,并提升了用户使用虚拟桌面的体验。
进一步可选地,在本发明虚拟化平台一实施例中,用户在网络上使用虚拟桌面,通过虚拟客户端的应用程序向虚拟化平台发送图形接口调用序列,进而虚拟化平台根据接收到的图形接口调用序列进行处理,再把处理结果回传到虚拟客户端进行显示,最终用户在个人的虚拟桌面环境得到该图像的输出结果。根据图形接口调用序列,依次与显卡的驱动程序对接,通过渲染技术在显存中生成图像数据。图像数据包括彩色图像、灰度图像、文字符号、坐标数据等。
进一步可选地,在本发明虚拟化平台另一实施例中,虚拟化平台根据显卡硬件厂商提供的显卡通用计算能力进行调用,用以对图像数据进行预处理,优化图像数据、保证图像在后续压缩处理时不会影响最终的显示效果。同时对于图像数据进行预处理不需要额外拷贝,占用显存资源,从而减少了图像数据在主存和显存之间的拷贝所增加的传输数据,简化处理步骤。
进一步可选地,在本发明虚拟化平台又一实施例中,由于处理后的图像数据仍然较为庞大,在存储、传输时也较为困难,大量消耗网络带宽,因此处理后的图像数据在不丢失有用数据的前提下,必须进行编码处理。采用显卡硬件编码接口对处理后的图像数据进行编码处理不仅能够达到良好的压缩质量,还能够大幅度提高图像数据的传输速度。将编码图像数据从显存拷贝到主存,涉及到显存数据到主存数据的交互,但经过显卡硬件编码接口的压缩处理使得数据量较小,能够减少数据的传输量,进而提高图像传输速度和处理效率。
进一步可选地,在本发明虚拟化平台一实施例中,对接收到的图形接口调用序列进行判断分析,判断图形接口调用序列中的图像接口调用类型是否为虚拟化平台的图像接口调用类型。根据厂家推出的品牌划分为不同类型,比如X11、GUI、DirectX、OpenGL、2D GDI等。当接收到的图形接口调用序列中的图像接口调用类型不为虚拟化平台的图像接口调用类型,即与虚拟化平台的图像接口调用类型不相同时,基于接收到的图像接口调用的语义转换为虚拟化平台的图像接口调用。具体地,基于虚拟化平台硬件设备的局限性,将接收虚拟客户端发送的图形接口调用序列中的图像接口调用,只要转化成能够让虚拟化平台进行进一步处理的图像接口调用即可。
进一步可选地,在本发明虚拟化平台一实施例中,根据图形接口调用序列,按顺序读取调用对应的显卡图形接口实现接口,进而通过显卡驱动调用对应的底层图形库,达到实现加速的目的。虚拟化平台接收到三维图像接口调用,则调用显卡中三维图像接口用以实现接口。例如,接收到DirectX接口调用,则调用显卡中DirectX接口的底层图形库,并通过渲染技术在显存中生成图像数据。
进一步可选地,在本发明虚拟化平台一实施例中,显卡图形接口、显卡硬件编码接口以及显卡通用计算能力的产品多且并不通用,因此在显存中需创建多个缓冲区,实现显存共享。例如,在显存中,渲染生成的图像数据根据所调用的显卡图形接口是DirectX,创建Render Targets缓冲区并共享。显卡硬件编码接口(NVENC)与显卡通用计算能力(CUDA)在该Render Targets缓冲区对图像数据进行预处理、编码处理,且处理结果存储在RenderTargets缓冲区中。显卡图形接口是OpenGL,可以创建Framebuffer、RenderBuffer、Texure等缓冲区,缓冲区的数量、形式、规模可根据实际需要进行设置。
进一步可选地,在本发明虚拟化平台一实施例中,采用离屏渲染技术可提高在显存中渲染生成图像数据的效率,同时处理流程相对于稳定流畅,能够提高图像处理能力,以及减轻虚拟化平台处理信息的负担。
参照图4,图4为本发明虚拟化平台执行图像处理一实施例的流程示意图。
由图4可知,显卡内存被划分为多个区域存储有不同的程序、数据等,至少包括显卡图形接口10、显卡通用计算能力20、显卡硬件编码接口30、缓冲区40。根据所调用的显卡图形接口10渲染生成的图像数据存储在对应的缓冲区内,显卡通用计算能力20通过访问缓冲区40对图像数据进行预处理和存储处理结果,显卡硬件编码接口30通过访问缓冲区40对图像数据进行编码处理和存储处理结果。对图像数据的预处理和编码处理都是在缓冲区40中进行,无需拷贝到主存中处理,提高了图像处理能力,同时释放了主存资源及减轻运行负担。具体地,显卡图形接口10包括但不限于目前已知的DirectX、OpenGL、2D GDI;显卡通用计算能力20包括但不限于目前已知的OpenCL、CUDA;显卡硬件编码接口30包括但不限于目前已知的NVENC、AMD VEC、Intel Media SDK;缓冲区40包括但不限于Render Targets、Framebuffer、RenderBuffer、Texure缓冲区等。
参照图5,图5为本发明虚拟化平台在虚拟桌面环境下的部署架构图。
本实施例中,一个虚拟化平可对应处理一个虚拟机层的多个虚拟客户端,一个虚拟化平台可对应调用一个显卡硬件层的多个显卡进行图像处理。图5例举了3个虚拟客户端和3个显卡,每一个虚拟客户端都可向虚拟化平台发送信息,虚拟化平台向每一个虚拟客户端发送消息,同时虚拟化平台可调用每一个显卡用以处理信息。每个虚拟客户端至少包括多个图形接口,每个显卡至少包括多个显卡图形接口、一个显卡通用计算能力、一个显卡硬件编码接口。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,在本实施例中提出的计算机可读存储介质上存储有图像处理程序,包括图像数据、中间预处理结果和最终编码处理结果等。存储的图像处理程序能够被处理器读取、解读并执行,从而实现上述任一图像处理方法实施例中所述的图像处理方法的步骤。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于虚拟桌面环境的图像处理方法,应用于计算机辅助设计,其特征在于,所述图像处理方法包括以下步骤:
虚拟化平台接收虚拟客户端发送的图形接口调用序列;
基于所述图形接口调用序列,在显存中渲染生成图像数据;
调用显卡通用计算能力,对所述图像数据进行预处理;
调用显卡硬件编码接口,对进行预处理后的所述图像数据进行编码处理,得到编码图像数据;
将所述编码图像数据从显存拷贝到主存,再从主存发送至所述虚拟客户端进行显示;
所述基于所述图形接口调用序列,在显存中渲染生成图像数据包括:
基于所述图形接口调用序列,依序调用对应的显卡图形接口,以在显存中渲染生成图像数据;
在显存中创建所述图像数据的多个缓冲区,并根据渲染生成所述图像数据时所调用的显卡图形接口类型,采用对应类型的显卡交互接口共享所述缓冲区,以供所述显卡硬件编码接口与所述显卡通用计算能力进行访问。
2.如权利要求1所述的图像处理方法,其特征在于,在所述基于所述图形接口调用序列,在显存中渲染生成图像数据的步骤之前,所述图像处理方法还包括:
判断所述图形接口调用序列中的图像接口调用类型是否为所述虚拟化平台的图像接口调用类型;
若否,则基于所述图形接口调用序列中的图像接口调用的语义,将所述图形接口调用序列中的图像接口调用转换为所述虚拟化平台的图像接口调用。
3.如权利要求1所述的图像处理方法,其特征在于,所述基于所述图形接口调用序列,在显存中渲染生成图像数据包括:
基于所述图形接口调用序列,采用离屏渲染技术在显存中渲染生成所述图像数据。
4.如权利要求1所述的图像处理方法,其特征在于,所述预处理至少包括:将RGB格式的所述图像数据转化为YUV格式,或者自定义所述图像数据的压缩算法。
5.一种虚拟化平台,应用于计算机辅助设计,其特征在于,所述虚拟化平台包括:
存储有图像处理程序的存储器;
处理器,配置为执行图像处理程序以执行下述操作:
接收虚拟客户端发送的图形接口调用序列;
基于所述图形接口调用序列,在显存中渲染生成图像数据;
调用显卡通用计算能力,对所述图像数据进行预处理;
调用显卡硬件编码接口,对进行预处理后的所述图像数据进行编码处理,得到编码图像数据;
将所述编码图像数据从显存拷贝到主存,再从主存发送至所述虚拟客户端进行显示;
执行所述基于所述图形接口调用序列,在显存中渲染生成图像数据的操作包括:
基于所述图形接口调用序列,依序调用对应的显卡图形接口,以在显存中渲染生成图像数据;
在显存中创建所述图像数据的多个缓冲区,并根据渲染生成所述图像数据时所调用的显卡图形接口类型,采用对应类型的显卡交互接口共享所述缓冲区,以供所述显卡硬件编码接口与所述显卡通用计算能力进行访问。
6.如权利要求5所述的虚拟化平台,其特征在于,在执行所述基于所述图形接口调用序列,在显存中渲染生成图像数据的操作之前,所述处理器还包括执行以下操作:
判断所述图形接口调用序列中的图像接口调用类型是否为所述虚拟化平台的图像接口调用类型;
若否,则基于所述图形接口调用序列中的图像接口调用的语义,将所述图形接口调用序列中的图像接口调用转换为所述虚拟化平台的图像接口调用。
7.如权利要求5所述的虚拟化平台,其特征在于,执行所述基于所述图形接口调用序列,在显存中渲染生成图像数据的操作包括:
基于所述图形接口调用序列,采用离屏渲染技术在显存中渲染生成所述图像数据。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有图像处理程序,所述图像处理程序被处理器执行时实现如权利要求1至4中任一项所述的基于虚拟桌面环境的图像处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710827346.2A CN107729095B (zh) | 2017-09-13 | 2017-09-13 | 图像处理方法、虚拟化平台及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710827346.2A CN107729095B (zh) | 2017-09-13 | 2017-09-13 | 图像处理方法、虚拟化平台及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729095A CN107729095A (zh) | 2018-02-23 |
CN107729095B true CN107729095B (zh) | 2020-12-04 |
Family
ID=61206204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710827346.2A Active CN107729095B (zh) | 2017-09-13 | 2017-09-13 | 图像处理方法、虚拟化平台及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729095B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984244A (zh) * | 2018-06-12 | 2018-12-11 | 深圳市网心科技有限公司 | 浏览器页面渲染方法、电子装置及计算机可读存储介质 |
CN109218802B (zh) * | 2018-08-23 | 2020-09-22 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN110012003B (zh) * | 2019-03-22 | 2022-04-22 | 厦门网宿有限公司 | 一种云应用抓屏方法和装置 |
CN110636305B (zh) * | 2019-09-26 | 2023-04-28 | 华为技术有限公司 | 图像渲染和编码方法及相关装置 |
CN113157226A (zh) * | 2020-01-22 | 2021-07-23 | 阿里巴巴集团控股有限公司 | 远程数据的显示方法、装置、设备及机器可读存储介质 |
CN112351281A (zh) * | 2020-10-28 | 2021-02-09 | 西安万像电子科技有限公司 | 图像处理方法及装置、处理器、非易失性存储介质 |
CN112748921A (zh) * | 2020-12-30 | 2021-05-04 | 天地伟业技术有限公司 | 一种嵌入式设备中低计算量gui渲染方法 |
CN113064728B (zh) * | 2021-04-16 | 2022-11-04 | 上海众链科技有限公司 | 高负载应用图像显示方法、终端及可读存储介质 |
CN114579255A (zh) * | 2022-03-07 | 2022-06-03 | 北京金山云网络技术有限公司 | 虚拟机的图像处理方法、装置、系统以及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
CN103810021A (zh) * | 2014-02-19 | 2014-05-21 | 福建升腾资讯有限公司 | 一种vdi下基于宿主机的虚拟桌面显示方法及其系统 |
CN104144351A (zh) * | 2014-04-04 | 2014-11-12 | 北京泰然神州科技有限公司 | 应用虚拟化平台的视频播放方法和装置 |
CN104318511A (zh) * | 2014-10-24 | 2015-01-28 | 江西创成电子有限公司 | 一种电脑显卡及其图像处理方法 |
CN106020929A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市青葡萄科技有限公司 | 一种虚拟化环境下支持3d应用的系统和方法 |
-
2017
- 2017-09-13 CN CN201710827346.2A patent/CN107729095B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
CN103810021A (zh) * | 2014-02-19 | 2014-05-21 | 福建升腾资讯有限公司 | 一种vdi下基于宿主机的虚拟桌面显示方法及其系统 |
CN104144351A (zh) * | 2014-04-04 | 2014-11-12 | 北京泰然神州科技有限公司 | 应用虚拟化平台的视频播放方法和装置 |
CN104318511A (zh) * | 2014-10-24 | 2015-01-28 | 江西创成电子有限公司 | 一种电脑显卡及其图像处理方法 |
CN106020929A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市青葡萄科技有限公司 | 一种虚拟化环境下支持3d应用的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107729095A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729095B (zh) | 图像处理方法、虚拟化平台及计算机可读存储介质 | |
CN1856819B (zh) | 通过分布式应用程序的图形数据的网络传输的系统和方法 | |
CN113661471A (zh) | 混合渲染 | |
US11882297B2 (en) | Image rendering and coding method and related apparatus | |
CN113244614B (zh) | 图像画面展示方法、装置、设备及存储介质 | |
CN107665128B (zh) | 图像处理方法、系统、服务器及可读存储介质 | |
CN112316433B (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN113515396A (zh) | 图形渲染方法、装置、电子设备与存储介质 | |
US9721359B2 (en) | Apparatus and method of decompressing rendering data and recording medium thereof | |
CN116821040B (zh) | 基于gpu直接存储器访问的显示加速方法、装置及介质 | |
CN108733356B (zh) | 一种纹理共享方法、计算机设备和存储介质 | |
CN113778604A (zh) | 一种操作界面的展示方法、装置、电子设备和存储介质 | |
US20120218292A1 (en) | System and method for multistage optimized jpeg output | |
CN113076152A (zh) | 渲染方法及装置、电子设备和计算机可读存储介质 | |
CN114968152B (zh) | 减少virtio-gpu额外性能损耗的方法 | |
US10237563B2 (en) | System and method for controlling video encoding using content information | |
CN114570020A (zh) | 数据处理方法以及系统 | |
US11593908B2 (en) | Method for preprocessing image in augmented reality and related electronic device | |
US20230316626A1 (en) | Image rendering method and apparatus, computer device, and computer-readable storage medium | |
CN115705668A (zh) | 一种视图绘制的方法、装置及存储介质 | |
RU2810701C2 (ru) | Гибридный рендеринг | |
CN114191816A (zh) | Android端的视频编码优化方法及装置 | |
CN118283331A (zh) | 播放处理方法、装置和计算机可读存储介质 | |
CN116402933A (zh) | 多视窗的渲染方法、装置、计算机设备、存储介质及车辆 | |
JP2006107337A (ja) | 3dコンテンツ配信方法、システム、装置、及び、プログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |