一种远程桌面图像的合成方法和装置制造方法及图纸

技术编号:11694557 阅读:90 留言:0更新日期:2015-07-08 16:12
本发明专利技术实施例提出了一种远程桌面图像的合成方法、装置和系统,服务器端的渲染服务器能够实现将Direct3D和OpenGL分别渲染后图像的快速融合,以获得远程桌面图像,避免现有技术分别将渲染得到的图像返回给虚拟机进行组合的低效率的问题,实现了渲染后图像的快速融合,高效地获得远程桌面图像。

【技术实现步骤摘要】

本专利技术实施例涉及计算机技术,特别是一种远程桌面图像的合成方法、系统和装置。
技术介绍
远程桌面是目前企业办公环境的一种流行技术,常用来将一台计算机屏幕显示的内容传送到另外一处的显示屏显示,通常我们使用的windows远程登录程序(mstsc.exe)是最常见远程桌面程序,可以方便的登录另外的远程计算机。目前大多数的远程桌面系统都是基于IP网络来传送远程桌面。远程桌面并不仅指远程的屏幕显示,还可以包含远程声音传送、可插拔硬件映射等技术。远程桌面又可以称为虚拟桌面。在虚拟桌面场景下至少存在一台服务器和一台客户机,通过客户机上安装的虚拟桌面客户端软件登陆到服务器上。当用户使用远程桌面时,如果有三维(three-dimens1nal, 3D)图像需要处理的时候,就需要我们提供的虚拟桌面有图形处理器(Graphic Processing Unit, GPU)进行图形处理,而GPU虚拟化技术就是让多台远程主机(如虚拟机)共享使用一块或多块GPU进行图形运算。目前,业界存在多种3D绘图编程接口,例如Direct3D和OpenGl (Open GraphicsLibrary)。在采用GPU软件虚拟化方案中,由于Direct3D和OpenGl两种绘图接口的不同,因此在GPU中需要分别进行渲染实现。现有技术中的一种远程桌面GPU虚拟化方案中Direct3D和OpenGL渲染图像结果融合的方法,是服务端虚拟机将Direct3D和OpenGL指令和数据分别发送到渲染服务器上进行分开渲染,虚拟机获取到两种渲染后的图像后,在虚拟机中进行融合并形成桌面图像并发送到客户端显示。该方案的缺陷是Direct3D和OpenGL分别渲染后的图像在虚拟机进行融合效率不高,特别是在虚拟桌面开启Windows Aero特效的情况下,OpenGL渲染后的图像会从虚拟机再次发送到Direct3D所在的渲染服务器进行再次渲染,效率不高。
技术实现思路
本专利技术实施例提出了一种远程桌面图像的合成方法、装置和系统,用于在GPU虚拟化中将Direct3D和OpenGL分别渲染后图像快速融合,以获得远程桌面图像。第一方面,本专利技术实施例提出了一种远程桌面图像的合成方法,客户端通过远程桌面协议接入到虚拟机,所述虚拟机与渲染服务器通信以获得所述客户端的远程桌面图像,所述渲染服务器包括Direct3D渲染模块和OpenGL渲染模块,所述方法包括:所述渲染服务器接收所述虚拟机发送的Direct3D渲染指令,所述Direct3D渲染指令包含Direct3D的渲染指令和第一图像数据;所述渲染服务器接收所述虚拟机发送的OpenGL渲染指令,所述OpenGL渲染指令包含OpenGL的渲染指令和第二图像数据;所述渲染服务器采用所述Direct3D渲染模块根据所述Direct3D的渲染指令对所述第一图像数据进行渲染,得到第三图像数据;所述渲染服务器采用所述OpenGL渲染模块根据所述OpenGL的渲染指令对所述第二图像数据进行渲染,得到第四图像数据;所述渲染服务器将所述第三图像数据和第四图像数据组合成所述虚拟机的远程桌面图像;所述渲染服务器将所述远程桌面图像发送给所述虚拟机结合第一方面,在第一种可能的实现方式中,所述渲染服务器将所述远程桌面图像编码为桌面视频流数据;所述渲染服务器向所述虚拟机发送所述桌面视频流数据。结合第一方面或第一方面的第一种可能,在第二种可能的实现方式中,所述将所述第三图像数据和第四图像数据组合成所述虚拟机的远程桌面图像包括:所述OpenGL渲染模块向所述虚拟机发送所述第四图像数据的地址和桌面显示位置信息;所述Direct3D渲染模块获取所述虚拟机转发的所述第四图像数据的地址和桌面显示位置信息;所述Direct3D渲染模块根据所述第四图像数据的地址从所述OpenGL渲染模块获取所述第四图像数据;所述Direct3D渲染模块根据所述第三图像数据的桌面显示位置信息和所述第四图像数据的桌面显示位置信息,将所述第三图像数据和第四图像数据绘制成所述远程桌面图像。结合第一方面或者第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述将所述第三图像数据和第四图像数据组合成所述虚拟机的远程桌面图像包括:所述Direct3D渲染模块获取并保存所述第三图像数据绘制在所述虚拟机的远程桌面的桌面窗口句柄;所述OpenGL渲染模块从所述Direct3D渲染模块获取所述Direct3D渲染模块正在绘制的所述虚拟机的远程桌面图像的窗口句柄;所述OpenGL渲染模块根据获得的所述远程桌面图像的窗口句柄绘制所述第四图像数据;所述Direct3D渲染模块获得由所述第三图像数据和第四图像数据组合成的远程桌面图像。第二方面,本专利技术实施例提出了一种渲染服务器,客户端通过远程桌面协议接入到虚拟机,所述渲染服务器与所述虚拟机通信以获得所述客户端的远程桌面图像,包括:接收单元,用于接收所述虚拟机发送的Direct3D渲染指令,所述Direct3D渲染指令包含Direct3D的渲染指令和第一图像数据,以及接收所述虚拟机发送的OpenGL渲染指令,所述OpenGL渲染指令包含OpenGL的渲染指令和第二图像数据;Direct3D渲染模块,用于根据所述Direct3D的渲染指令对所述第一图像数据进行渲染,得到第三图像数据;OpenGL渲染模块,用于根据所述OpenGL的渲染指令对所述第二图像数据进行渲染,得到第四图像数据;所述Direct3D渲染模块,还用于将所述第三图像数据和第四图像数据组合成所述虚拟机的远程桌面图像;发送单元,用于将所述远程桌面图像发送给所述虚拟机。结合第二方面,在第一种可能的实现方式中,所述发送单元具体用于:将所述远程桌面图像编码为桌面视频流数据,向所述虚拟机发送所述桌面视频流数据。结合第二方面或第二方面的第一种可能,在第二种可能的实现方式中,所述OpenGL渲染模块还用于向所述虚拟机发送所述第四图像数据的地址和桌面显示位置信息;所述Direct3D渲染模块还用于获取所述虚拟机转发的所述第四图像数据的地址和桌面显示位置信息;以及,根据所述第四图像数据的地址从所述OpenGL渲染模块获取所述第四图像数据,根据所述第三图像数据的桌面显示位置信息和所述第四图像数据的桌面显示位置信息,将所述第三图像数据和第四图像数据绘制成所述远程桌面图像。结合第二方面或者第一方面的第一或二种可能的实现方式,在第三种可能的实现方式中,还包括:结合第二方面或第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述Direct3D渲染模块具体用于获取并保存所述第三图像数据绘制在所述虚拟机的远程桌面的桌面窗口句柄;所述OpenGL渲染模块具体用于从所述Direct3D渲染模块获取所述Direct3D渲染模块正在绘制的所述虚拟机的远程桌面图像的窗口句柄,根据获得的所述远程桌面图像的窗口句柄绘制所述第四图像数据;所述Direct3D渲染模块具体用于获得由所述第三图像数据和第四图像数据组合成的所述远程桌面图像。第三方面,本专利技术实施例提出了一种远程桌面服务器系统,包括:虚拟机,用于与客户端通过远程桌面协议建立远程会话连接,接收客户端的远程桌面获取请求,根据所述远程桌面获取请求生成Direct3D渲本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN104765636.html" title="一种远程桌面图像的合成方法和装置原文来自X技术">远程桌面图像的合成方法和装置</a>

【技术保护点】
一种远程桌面图像的合成方法,其特征在于,客户端通过远程桌面协议接入到虚拟机,所述虚拟机与渲染服务器通信以获得所述客户端的远程桌面图像,所述渲染服务器包括Direct3D渲染模块和OpenGL渲染模块,所述方法包括:所述渲染服务器接收所述虚拟机发送的Direct3D渲染指令,所述Direct3D渲染指令包含Direct3D的渲染指令和第一图像数据;所述渲染服务器接收所述虚拟机发送的OpenGL渲染指令,所述OpenGL渲染指令包含OpenGL的渲染指令和第二图像数据;所述渲染服务器采用所述Direct3D渲染模块根据所述Direct3D的渲染指令对所述第一图像数据进行渲染,得到第三图像数据;所述渲染服务器采用所述OpenGL渲染模块根据所述OpenGL的渲染指令对所述第二图像数据进行渲染,得到第四图像数据;所述渲染服务器将所述第三图像数据和第四图像数据组合成所述虚拟机的远程桌面图像;所述渲染服务器将所述远程桌面图像发送给所述虚拟机。

【技术特征摘要】

【专利技术属性】
技术研发人员:江志敏庞西豹
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1