虚拟机的图像处理方法、装置、系统以及电子设备制造方法及图纸

技术编号:33709877 阅读:15 留言:0更新日期:2022-06-06 08:40
本发明专利技术提供了一种虚拟机的图像处理方法、装置、系统以及电子设备,应用于虚拟机对应的图像编码模块,虚拟机还对应有虚拟机的虚拟机运行模块以及虚拟机的宿主机,宿主机包含宿主机显卡;方法包括:利用宿主机显卡驱动提供的机制访问宿主机显卡的显存;其中,显存中储存有宿主机显卡基于图像渲染指令进行渲染而得到的图像数据,图像渲染指令为虚拟机运行模块根据虚拟机的待渲染图像向宿主机显卡发送的图像渲染指令;通过宿主机显卡的GPU对显存中的图像数据进行编码,得到编码后的图像数据。本发明专利技术可以提高渲染图像的处理效率。本发明专利技术可以提高渲染图像的处理效率。本发明专利技术可以提高渲染图像的处理效率。

【技术实现步骤摘要】
虚拟机的图像处理方法、装置、系统以及电子设备


[0001]本专利技术涉及数据处理
,尤其是涉及一种虚拟机的图像处理方法、装置、系统以及电子设备。

技术介绍

[0002]目前,虚拟机运行软件通过自带的独立计算环境简单(Simple Protocol for Independent Computing Environment,简称SPICE)协议或虚拟网络控制台(Virtual Network Console,简称VNC)协议进行图像传输。例如,在当前虚拟机运行软件的实现方式中,宿主机声卡数据由SPICE服务器或VNC服务器进行编码后进行传输。但是,对于现有的这种图像数据的处理方法,图像数据的传输效率较低。

技术实现思路

[0003]有鉴于此,本专利技术的目的在于提供一种虚拟机的图像处理方法、装置、系统以及电子设备,可以提高图像数据的传输效率。
[0004]第一方面,本专利技术实施例提供了一种虚拟机的图像处理方法,应用于所述虚拟机对应的图像编码模块,所述虚拟机还对应有所述虚拟机的虚拟机运行模块以及所述虚拟机的宿主机,所述宿主机包含宿主机显卡;所述方法包括:
[0005]利用所述宿主机显卡驱动提供的机制访问所述宿主机显卡的显存;其中,所述显存中储存有所述宿主机显卡基于图像渲染指令进行渲染而得到的图像数据,所述图像渲染指令为所述虚拟机运行模块根据所述虚拟机的待渲染图像向所述宿主机显卡发送的图像渲染指令;
[0006]通过所述宿主机显卡的图形处理器(Graphics Processing Unit,简称GPU)对所述显存中的所述图像数据进行编码,得到编码后的图像数据。
[0007]在一种实施方式中,所述宿主机显卡驱动提供的机制包括:业务编程语言数据流机制(Enterprise Generation Language Stream,简称EGLStream)和/或直接存储器访问缓冲器(Direct Memory Access Buffer,简称DMABUF)机制。
[0008]在一种实施方式中,所述宿主机显卡驱动提供的机制为EGLStream机制;所述方法还包括:
[0009]在所述虚拟机运行模块根据所述待渲染图像向所述宿主机显卡发送图像渲染指令之前,基于所述EGLStream机制初始化第一EGL接口并创建EGLStream,得到Stream数据流的文件句柄,基于所述EGLStream初始化第一CUDA并创建CUeglStreamConnection,将所述CUeglStreamConnection连接至所述EGLStream上,以使所述虚拟机运行模块基于所述EGLStream机制初始化第二EGL接口和第一OpenGL接口并创建支持所述EGLStream的渲染环境;
[0010]将所述Stream数据流的文件句柄发送至所述虚拟机运行模块,以使所述虚拟机运行模块利用所述Stream数据流的文件句柄创建针对所述待渲染图像的图像区域。
[0011]在一种实施方式中,在所述通过所述宿主机显卡的GPU对所述显存中的所述图像数据进行编码,得到编码后的图像数据的步骤之后,所述方法还包括:
[0012]在所述图像编码模块的连接断开时,删除所述EGLStream的资源。
[0013]第二方面,本专利技术实施例提供了一种虚拟机的图像处理方法,所述虚拟机对应有图像编码模块、所述虚拟机的虚拟机运行模块以及所述虚拟机的宿主机,所述宿主机包含宿主机显卡;所述方法包括:
[0014]所述虚拟机运行模块获取所述虚拟机的待渲染图像,并根据所述待渲染图像向所述宿主机显卡发送图像渲染指令;
[0015]所述宿主机显卡基于所述图像渲染指令进行渲染,并将渲染后得到的图像数据储存于所述宿主机显卡的显存中;
[0016]所述图像编码模块利用所述宿主机显卡驱动提供的机制访问所述显存,并通过所述宿主机显卡的GPU对所述显存中的所述图像数据进行编码,得到编码后的图像数据。
[0017]在一种实施方式中,所述宿主机显卡驱动提供的机制为EGLStream机制;
[0018]在所述虚拟机运行模块根据所述待渲染图像向所述宿主机显卡发送图像渲染指令的步骤之前,所述方法还包括:
[0019]所述图像编码模块基于所述EGLStream机制初始化第一EGL接口并创建EGLStream,得到Stream数据流的文件句柄,基于所述EGLStream初始化第一统一计算架构(Compute Unified Device Architecture,简称CUDA)并创建CUeglStreamConnection(数据流连接),将所述CUeglStreamConnection连接至所述EGLStream上;
[0020]所述虚拟机运行模块基于所述EGLStream机制初始化第二EGL接口和第一开放图形库(Open Graphics Library,简称OpenGL)接口,创建支持所述EGLStream的渲染环境;
[0021]所述图像编码模块将所述Stream数据流的文件句柄发送至所述虚拟机运行模块;
[0022]所述虚拟机运行模块利用所述Stream数据流的文件句柄创建针对所述待渲染图像的图像区域。
[0023]在一种实施方式中,在所述宿主机显卡基于所述图像渲染指令进行渲染的步骤之后,所述方法还包括:
[0024]所述虚拟机运行模块将所述宿主机显卡渲染后得到的所述图像数据对应映射于所述图像区域中,并向所述图像编码模块发送图像渲染完成的消息;
[0025]所述图像编码模块读取所述CUeglStreamConnection,并将所述CUeglStreamConnection发送至所述第一CUDA的应用程序接口(Application Programming Interface,简称API),以基于所述API进行针对所述图像数据的编码操作。
[0026]在一种实施方式中,在所述图像编码模块通过所述宿主机显卡的GPU对所述显存中的所述图像数据进行编码,得到编码后的图像数据的步骤之后,所述方法还包括:
[0027]所述图像编码模块的连接断开时,删除所述EGLStream的资源;
[0028]所述虚拟机运行模块删除所述图像区域和所述EGLStream的资源。
[0029]在一种实施方式中,所述宿主机显卡驱动提供的机制为DMABUF机制;
[0030]在所述虚拟机运行模块根据所述待渲染图像向所述宿主机显卡发送图像渲染指令的步骤之前,所述方法还包括:
[0031]所述虚拟机运行模块基于所述DMABUF机制初始化第三EGL接口和第二OpenGL接
口,创建第一纹理对象并对所述第一纹理对象分配所述显存,利用所述第一纹理对象创建第一EGLImage对象,调用eglExportDMABUFImageMESA(数据流连接)获取所述第一纹理对象的DMABUF描述符,基于所述DMABUF机制初始化第二CUDA,并将所述EGLImage对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机的图像处理方法,其特征在于,应用于所述虚拟机对应的图像编码模块,所述虚拟机还对应有所述虚拟机的虚拟机运行模块以及所述虚拟机的宿主机,所述宿主机包含宿主机显卡;包括:利用所述宿主机显卡驱动提供的机制访问所述宿主机显卡的显存;其中,所述显存中储存有所述宿主机显卡基于图像渲染指令进行渲染而得到的图像数据,所述图像渲染指令为所述虚拟机运行模块根据所述虚拟机的待渲染图像向所述宿主机显卡发送的图像渲染指令;通过所述宿主机显卡的GPU对所述显存中的所述图像数据进行编码,得到编码后的图像数据。2.根据权利要求1所述的方法,其特征在于,所述宿主机显卡驱动提供的机制包括:EGLStream机制和/或DMABUF机制。3.根据权利要求1所述的方法,其特征在于,所述宿主机显卡驱动提供的机制为EGLStream机制;还包括:在所述虚拟机运行模块根据所述待渲染图像向所述宿主机显卡发送图像渲染指令之前,基于所述EGLStream机制初始化第一EGL接口并创建EGLStream,得到Stream数据流的文件句柄,基于所述EGLStream初始化第一CUDA并创建CUeglStreamConnection,将所述CUeglStreamConnection连接至所述EGLStream上,以使所述虚拟机运行模块基于所述EGLStream机制初始化第二EGL接口和第一OpenGL接口并创建支持所述EGLStream的渲染环境;将所述Stream数据流的文件句柄发送至所述虚拟机运行模块,以使所述虚拟机运行模块利用所述Stream数据流的文件句柄创建针对所述待渲染图像的图像区域。4.根据权利要求3所述的方法,其特征在于,在所述通过所述宿主机显卡的GPU对所述显存中的所述图像数据进行编码,得到编码后的图像数据之后,还包括:在所述图像编码模块的连接断开时,删除所述EGLStream的资源。5.一种虚拟机的图像处理方法,其特征在于,所述虚拟机对应有图像编码模块、所述虚拟机的虚拟机运行模块以及所述虚拟机的宿主机,所述宿主机包含宿主机显卡;包括:所述虚拟机运行模块获取所述虚拟机的待渲染图像,并根据所述待渲染图像向所述宿主机显卡发送图像渲染指令;所述宿主机显卡基于所述图像渲染指令进行渲染,并将渲染后得到的图像数据储存于所述宿主机显卡的显存中;所述图像编码模块利用所述宿主机显卡驱动提供的机制访问所述显存,并通过所述宿主机显卡的GPU对所述显存中的所述图像数据进行编码,得到编码后的图像数据。6.根据权利要求5所述的方法,其特征在于,所述宿主机显卡驱动提供的机制为EGLStream机制;在所述虚拟机运行模块根据所述待渲染图像向所述宿主机显卡发送图像渲染指令之前,所述方法还包括:所述图像编码模块基于所述EGLStream机制初始化第一EGL接口并创建EGLStream,得到Stream数据流的文件句柄,基于所述EGLStream初始化第一CUDA并创建CUeglStreamConnection,将所述CUeglStreamConnection连接至所述EGLStream上;
所述虚拟机运行模块基于所述EGLStream机制初始化第二EGL接口和第一OpenGL接口,创建支持所述EGLStream的渲染环境;所述图像编码模块将所述Stream数据流的文件句柄发送至所述虚拟机运行模块;所述虚拟机运行模块利用所述Stream数据流的文件句柄创建针对所述待渲染图像的图像区域。7.根据权利要求6所述的方法,其特征在于,在所述宿主机显卡基于所述图像渲染指令进行渲染之后,还包括:所述虚拟机运行模块将所述宿主机显卡渲染后得到的所述图像数据对应映射于所述图像区域中,并向所述图像编码模块发送图像渲染完成的消息;所述图像编码模块读取所述CUeglStreamConnection,并将所述CUeglStreamConnection发送至所述第一CUDA的API,以基于所述API进行针对所述图像数据的编码操作。8.根据权利要求6所述的方法,其特征在于,在所述图像编码模块通过所述宿主机显卡的GPU对所述显存中的所述图像数据进行编码,得到编...

【专利技术属性】
技术研发人员:赵自成
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:

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

1