数据传输方法、装置及服务器

文档序号:1697097 发布日期:2019-12-10 浏览:20次 >En<

阅读说明:本技术 数据传输方法、装置及服务器 (Data transmission method and device and server ) 是由 李超 王知明 范志刚 于 2019-07-16 设计创作,主要内容包括:本公开实施例提供的数据传输方法、装置及服务器,涉及云计算技术领域,能够解决目前云桌面技术中服务器无法支撑大量3D图像渲染工作任务以及升级服务器难度很高的问题。具体技术方案为:数据处理装置接收客户端的请求后转发给服务器;当该请求为图像渲染请求时,服务器获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;服务器为客户端在数据处理装置中确定对应的图像处理单元,将指令传输给数据处理装置后对应的图像处理单元完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。(The data transmission method, the data transmission device and the server provided by the embodiment of the disclosure relate to the technical field of cloud computing, and can solve the problems that the server cannot support a large number of 3D image rendering work tasks and the difficulty in updating the server is high in the existing cloud desktop technology. The specific technical scheme is as follows: the data processing device receives the request of the client and forwards the request to the server; when the request is an image rendering request, the server acquires an instruction corresponding to image rendering; wherein the instructions include: the method comprises the following steps that (1) a display card configuration instruction, a special effect instruction and a drawing instruction are carried out; the server determines a corresponding image processing unit in the data processing device for the client, transmits the instruction to the data processing device, finishes image rendering by the corresponding image processing unit and transmits image data to the client; wherein, the image rendering is not required to be carried out according to the instruction in the server.)

数据传输方法、装置及服务器

技术领域

本公开涉及云计算技术领域,尤其涉及数据传输方法、装置及服务器。

背景技术

云桌面技术是指用户通过客户端远程访问服务器,服务器将当前服务器主机的桌面图像通过虚拟方式提供给远程客户端的技术。服务器通过屏幕拷贝,将图像传输给用户,用户获得的是桌面图像序列。图像经过压缩后,通过网络传输到云终端,终端解码得到桌面图像内容。

现有很多场景下,比如,网络游戏、三维(three dimensional,3D)视频或者3D远程桌面传输等等,需要进行3D图像的传输和客户端显示。在这种情况下,服务器端往往需要同时支撑大量客户端的3D图像渲染工作,这对服务器端的图形处理器(Graphics ProcessingUnit,GPU)资源的要求非常高,但是,现有服务器一般不具备这么强大的GPU资源,甚至是不具备3D渲染能力的。如果直接对服务器进行配置升级则需要服务器中断工作,在中断工作的一段时间内,服务器需要消耗一定的时间成本,而且配置升级的过程需要对服务器机架内部进行改造,这一过程也是非常繁琐、困难。

发明内容

本公开实施例提供一种数据传输方法、装置及服务器,能够解决目前云桌面技术中服务器无法支撑大量3D图像渲染工作任务以及升级服务器难度很高的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种数据传输方法,该方法包括:

服务器接收数据处理装置转发的客户端的请求;

当该请求为图像渲染请求时,服务器获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;

服务器确定数据处理装置中对应客户端的图像处理单元;

服务器将指令传输给数据处理装置以使图像处理单元根据指令完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。

通过数据处理装置这一设置于服务器与客户端之间的设备完成客户端的图像渲染任务,从而使得服务器可以无需通过麻烦的升级就能支持大量来自客户端的图像渲染请求。

在一个实施例中,该方法之前还包括:

服务器将数据处理装置的图像处理模块划分为N个图像处理单元;其中,每个图像处理单元能够独立完成图像渲染任务。

服务器对数据处理装置的图像处理模块划分成若干个可以独立完成图像任务的图像处理单元,分配给各个客户端,可以更加高效的利用图像处理单元完成图像渲染,避免多个客户端争抢资源以及等待处理时间较长。

在一个实施例中,服务器确定数据处理装置中对应处理客户端的图像渲染请求的图像处理单元,包括:

服务器从图像渲染请求中获取客户端的标识;

服务器根据客户端的标识判断是否存在客户端对应的图像处理单元;

如果不存在,则服务器为客户端分配对应的图像处理单元,并将客户端与对应的图像处理单元绑定。

通过将图像处理单元与客户端绑定,便于在客户端发送图像渲染请求后选择对应的图像处理单元直接处理,并且可以将同一客户端的图像渲染请求交由同一图像处理单元,提升处理效率。

在一个实施例中,服务器为客户端分配对应的图像处理单元,包括:

服务器判断当前是否存在空闲的图像处理单元;

如果存在,则服务器选择一个空闲的图像处理单元分配给客户端;

如果不存在,则服务器按照预设规则选择一个图像处理单元分配给客户端。

在一个实施例中,服务器按照预设规则选择一个图像处理单元分配给客户端,包括:

服务器查找出绑定客户端数量最少的图像处理单元分配给客户端;或者,

服务器查找出当前处理负荷最低的图像处理单元分配给客户端。

在一个实施例中,服务器获取图像渲染对应的指令,包括:

服务器截获服务器的操作系统中的D3D RT程序向用户模式显示驱动程序发送的绘图指令;

服务器截获服务器的操作系统中的图形内核子系统向显示微型端口驱动程序发送的显卡配置指令以及特效指令。

服务器操作系统按照客户端3D图像渲染的请求生成指令,通过截获指令则可以不用服务器去执行3D图像渲染,改动很小,对服务器无任何改造负担。

在一个实施例中,该方法还包括:

当该请求为除图像渲染请求以外的请求时,服务器根据该请求进行处理后将处理结果传输给数据处理装置以使数据处理装置转发给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,无需交由数据处理装置处理,只需将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

根据本公开实施例的第二方面,提供一种数据传输方法,包括:

数据处理装置接收客户端的请求;

数据处理装置向服务器发送客户端的请求;

当该请求为图像渲染请求时,数据处理装置接收服务器发送的图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;

数据处理装置根据指令通过数据处理装置的图像处理模块完成图像渲染;

数据处理装置将完成图像渲染后得到的图像数据发送给客户端。

通过数据处理装置这一设置于服务器与客户端之间的设备完成客户端的图像渲染任务,从而使得服务器可以无需通过麻烦的升级就能支持大量来自客户端的图像渲染请求。

在一个实施例中,数据处理装置根据指令通过数据处理装置的图像处理模块完成图像渲染,包括:

图像处理模块中对应客户端的图像处理单元根据指令完成图像渲染;其中,图像处理单元是服务器在图像处理模块中为客户端分配的用于对应处理客户端的图像渲染请求。

服务器对数据处理装置的图像处理模块划分成若干个可以独立完成图像任务的图像处理单元,分配给各个客户端,可以更加高效的利用图像处理单元完成图像渲染,避免多个客户端争抢资源以及等待处理时间较长。

在一个实施例中,该方法还包括:

当该请求为除图像渲染请求以外的请求时,数据处理装置接收服务器根据该请求进行处理后得到的处理结果;

数据处理装置将处理结果发送给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,无需交由数据处理装置处理,只需将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

根据本公开实施例的第三方面,提供一种服务器,包括:

接收模块,用于接收数据处理装置转发的客户端的请求;

获取模块,用于当该请求为图像渲染请求时,获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;

确定模块,用于确定数据处理装置中对应客户端的图像处理单元;

传输模块,用于将指令传输给数据处理装置以使图像处理单元根据指令完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。

通过数据处理装置这一设置于服务器与客户端之间的设备完成客户端的图像渲染任务,从而使得服务器可以无需通过麻烦的升级就能支持大量来自客户端的图像渲染请求。

在一个实施例中,服务器还包括:

划分模块,用于将数据处理装置的图像处理模块划分为N个图像处理单元;其中,每个图像处理单元能够独立完成图像渲染任务。

服务器对数据处理装置的图像处理模块划分成若干个可以独立完成图像任务的图像处理单元,分配给各个客户端,可以更加高效的利用图像处理单元完成图像渲染,避免多个客户端争抢资源以及等待处理时间较长。

在一个实施例中,确定模块具体用于:

从图像渲染请求中获取客户端的标识;

根据客户端的标识判断是否存在客户端对应的图像处理单元;

如果不存在,则为客户端分配对应的图像处理单元,并将客户端与对应的图像处理单元绑定。

通过将图像处理单元与客户端绑定,便于在客户端发送图像渲染请求后选择对应的图像处理单元直接处理,并且可以将同一客户端的图像渲染请求交由同一图像处理单元,提升处理效率。

在一个实施例中,确定模块具体用于:

判断当前是否存在空闲的图像处理单元;

如果存在,则选择一个空闲的图像处理单元分配给客户端;

如果不存在,则按照预设规则选择一个图像处理单元分配给客户端。

在一个实施例中,确定模块具体用于:

查找出绑定客户端数量最少的图像处理单元分配给客户端;或者,

查找出当前处理负荷最低的图像处理单元分配给客户端。

在一个实施例中,获取模块具体用于:

截获服务器的操作系统中的D3D RT程序向用户模式显示驱动程序发送的绘图指令;

截获服务器的操作系统中的图形内核子系统向显示微型端口驱动程序发送的显卡配置指令以及特效指令。

服务器操作系统按照客户端3D图像渲染的请求生成指令,通过截获指令则可以不用服务器去执行3D图像渲染,改动很小,对服务器无任何改造负担。

在一个实施例中,服务器还包括:

处理模块,用于当该请求为除图像渲染请求以外的请求时,服务器根据该请求进行处理后调用传输模块将处理结果传输给数据处理装置以使数据处理装置转发给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,无需交由数据处理装置处理,只需将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

根据本公开实施例的第四方面,一种数据处理装置,包括:通信模块、处理器、图像处理模块、及存储器;数据处理装置通过通信模块分别与客户端和服务器之间进行通信;通信模块包括:请求接收模块、请求转发模块、指令接收模块、图像采集模块和图像传输模块;

请求接收模块,用于接收客户端的请求;

请求转发模块,用于向服务器发送客户端的请求;

指令接收模块,用于当该请求为图像渲染请求时,数据处理装置接收服务器发送的图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;

存储器,用于缓存从服务器接收到的图像渲染对应的指令以及完成图像渲染后得到的图像;

处理器,用于根据指令指示图像处理模块完成图像渲染;

图像采集模块,用于采集完成图像渲染后得到的图像;

图像传输模块,用于将完成图像渲染后得到的图像发送给客户端。

通过数据处理装置这一设置于服务器与客户端之间的设备完成客户端的图像渲染任务,从而使得服务器可以无需通过麻烦的升级就能支持大量来自客户端的图像渲染请求。

在一个实施例中,处理器具体用于:

根据指令指示图像处理模块中对应客户端的图像处理单元完成图像渲染;其中,图像处理单元是服务器在图像处理模块中为客户端分配的用于对应处理客户端的图像渲染请求。

服务器对数据处理装置的图像处理模块划分成若干个可以独立完成图像任务的图像处理单元,分配给各个客户端,可以更加高效的利用图像处理单元完成图像渲染,避免多个客户端争抢资源以及等待处理时间较长。

在一个实施例中,图像采集模块还用于:当该请求为除图像渲染请求以外的请求时,采集服务器发送的根据该请求进行处理后得到的图像;

相应的,图像传输模块还用于:将服务器发送的根据该请求进行处理后得到的图像发送给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,无需交由数据处理装置处理,只需将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

本公开实施例提供的数据传输方法、装置及服务器,数据处理装置接收客户端的请求后转发给服务器;当该请求为图像渲染请求时,服务器获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;服务器为客户端在数据处理装置中确定对应的图像处理单元,将指令传输给数据处理装置后对应的图像处理单元完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。因此,服务器的工作量大大减轻,甚至可以不需要图形处理器就可以支撑大量客户端的3D图像渲染任务,也无需升级服务器。

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

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例的系统架构示意图;

图2是现有的WDDM驱动模型体系结构图;

图3是本公开实施例提供的一种数据传输方法的流程示意图;

图4是本公开实施例中服务器操作系统的WDDM驱动模型体系结构图;

图5是本公开实施例提供的另一种数据传输方法的流程示意图;

图6是本公开实施例提供的一种服务器的结构示意图;

图7是本公开实施例提供的一种数据处理装置的结构示意图;

图8是本公开实施例提供的一个实施效果示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例的系统架构示意图如图1所示,其中,服务器与M(M为正整数)个客户端之间通过数据处理装置进行通信,M个客户端的请求以及服务器的应答均通过数据处理装置转发,数据处理装置与服务器均需配置支持Windows显示器驱动程序模型(WindowsDisplay Driver Model,WDDM)的操作系统。

WDDM是在微软公司开发的Windows Vista操作系统中开始支持的一种显示器驱动程序体系结构。WDDM是对Windows XP操作系统中的显示器驱动程序结构的革新,在支持新的方案、图形和应用程序的同时,能够为用户提供性能更佳、可靠性更高的桌面体验。

图2是WDDM驱动模型体系结构示意图,当应用程序有图像渲染需求时,操作系统会调用D3D RT(Direct 3D runtime)程序的相关接口函数,同时向D3D RT程序发送与图像渲染相关的参数(对显卡的配置参数)、特效参数(与特效相关的参数)及绘图参数等。一方面,D3D RT程序会与用户模式显示驱动程序(User Mode Display Driver,UMDD)进行交互,以获取显卡状态,并向用户模式显示驱动程序传递绘图指令(绘图指令根据绘图参数生成),用户模式显示驱动程序对接收到的绘图指令进行翻译后,会将翻译后的指令放入内存,以方便显示微型端口驱动(Display miniport driver)读取该翻译后的指令,同时,用户模式显示驱动会通知D3D RT程序指令翻译完成,此时,D3D RT程序会经由图形内核子系统(Direct Graphics kernel subsysterm或者Dxgkrnl.sys)通知显示微型端口驱动去内存中获取翻译后的指令,并通过直接内存存取(Direct Memory Access,DMA))方式传递给显卡的显存后供显卡执行;另一方面,D3D RT程序将显卡配置指令(显卡配置指令根据显卡配置参数生成)和特效指令(特效指令根据特效参数生成)传递给图形内核子系统。其中,图形硬件供应商(显卡制造商)必须提供用户模式显示驱动程序和显示微型端口驱动程序。用户模式显示驱动程序是Microsoft Direct3D(微软公司在Microsoft Windows操作系统上所开发的一套3D绘图编程接口,是DirectX的一部分,目前广为各家显卡制造商所支援)运行时加载的动态链接库(Dynamic Link Library,DLL)。显示微型端口驱动程序与DirectX(微软公司创建的多媒体编程接口)图形内核子系统进行通信。图形内核子系统是操作系统完成图像显示管理的系统文件,其参与系统所有的图像生成管理。

本公开实施例提供一种数据传输方法,如图3所示,该方法包括以下步骤:

101、服务器接收数据处理装置转发的客户端的请求。

具体的,在服务器与客户端之间通过数据处理装置进行通信,客户端的请求以及服务器的应答均通过数据处理装置转发,数据处理装置上配置有与服务器上操作系统相同的操作系统,例如均安装有支持WDDM的操作系统。

102、当该请求为图像渲染请求时,服务器获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令。

在一个实施例中,步骤102中服务器获取图像渲染对应的指令,具体可以包括:

102a、服务器截获服务器的操作系统中的D3D RT程序向用户模式显示驱动程序发送的绘图指令;

102b、服务器截获服务器的操作系统中的图形内核子系统向显示微型端口驱动程序发送的显卡配置指令以及特效指令。

具体的,图4所示为本公开实施例中提供的针对服务器的WDDM驱动模型体系结构,相较于图2,在服务器的操作系统中的D3D RT程序和用户模式显示驱动之间增加一个用户模式过滤驱动(或者采用虚拟驱动),同时,在图形内核子系统和显示微型端口驱动之间增加一个内核模式过滤驱动(或者采用虚拟驱动)。下面分别对这两个增加的过滤驱动的功能进行介绍:

1)用户模式过滤驱动

用户模式过滤驱动用于对D3D RT程序向用户模式显示驱动传递的绘图指令进行截获。用户模式过滤驱动相当于D3D RT程序和用户模式显示驱动之间的一个桥梁,对它们之间的指令进行监听,但并不会改变指令本身内容。

具体的,如图4所示的结构,当服务器的操作系统中的D3D RT程序收到应用层发送的图像渲染需求时,会首先通知用户模式显示驱动程序(比如DrawPrimitive),用户模式显示驱动会对接收到的绘图指令进行转换处理得到显卡能够识别的指令并通过DMA方式传递给显卡的显存由显卡进行指令执行。本公开实施例中通过用户模式过滤驱动在用户模式显示驱动执行指令转换处理动作之前对绘图指令进行截获。

2)内核模式过滤驱动

内核模式过滤驱动用于对图形内核子系统发给显示微型端口驱动的显卡配置指令和特效指令进行截获,这些指令是D3D RT程序从应用层接收到并传递给图形内核子系统的。

需要说明的是,对于虚拟化的服务器,由于没有实体显卡,对于这种场景,应用本公开实施例的技术方案时,在该虚拟化服务器的操作系统中的WDDM驱动模型体系结构中设置一个虚拟的用户模式过滤驱动用于充当用户模式显示驱动的角色以便截获绘图指令,以及设置一个虚拟的显示微型端口驱动用于充当显示微型端口驱动的角色以便显卡配置指令和特效指令。

103、服务器确定数据处理装置中对应客户端的图像处理单元。

本公开实施例中数据处理装置具备图像渲染能力即配置有图形处理器(GraphicsProcessing Unit,GPU),若干个客户端通过数据处理装置与服务器连接,这种情况下,来自若干个客户端的3D图像渲染需求也会非常多,数据处理装置需根据渲染需求任务量配置若干个显卡作为数据处理装置的图像处理模块。

在一个实施例中,服务器将数据处理装置的图像处理模块划分为N个图像处理单元;其中,每个图像处理单元能够独立完成图像渲染任务。

具体的,服务器端对数据处理装置的图像处理模块进行逻辑上的划分,将图像处理模块划分后得到N(N为正整数)个可以独立完成图像渲染任务的图像处理单元,具体的,可以是按照显卡的数量进行划分,还可以是通过对若干个显卡的显存资源进行划分后得到N个图像处理单元。值得一提的是,一个图像处理单元可以为一个或多个客户端提供3D图像渲染服务。

通过将数据处理装置的图像处理模块划分成若干个可以独立完成图像任务的图像处理单元,分配给各个客户端,可以更加高效的利用图像处理单元完成图像渲染,避免多个客户端争抢资源以及等待处理时间较长。

在一个实施例中,服务器确定数据处理装置中对应处理客户端的图像渲染请求的图像处理单元,包括:

服务器从图像渲染请求中获取客户端的标识;

服务器根据客户端的标识判断是否存在客户端对应的图像处理单元;

如果不存在,则服务器为客户端分配对应的图像处理单元,并将客户端与对应的图像处理单元绑定。

具体的,客户端的标识可以是IP地址、媒体访问控制地址(Media Access ControlAddress,MAC地址)等。图像处理单元会有空闲和占用两种状态。服务器端对于每一个图像处理单元会设置一个对应的编号,并在服务器端实时记录相应的状态,占用状态下,服务器会同时记录所占用的客户端数量及相应的标识。本公开实施例中,服务器会为客户端分配一个对应的图像处理单元,并会通过客户端的标识以及图像处理单元的编号对两者进行绑定,这样,就可以高效管理数据处理装置的图像处理资源,为若干个客户端提供图像渲染服务。

值得一提的是,当一个客户端与一个图像处理单元绑定之后,如果长时间,比如超过30分钟、或者40分钟客户端没有发送3D图像渲染请求,则解除该客户端与其对应图像处理单元的绑定关系;解除绑定之后,如果该客户端再次发送3D图像渲染请求,则重新为其分配图像处理单元即可。

通过将图像处理单元与客户端绑定,便于在客户端发送图像渲染请求后选择对应的图像处理单元直接处理,并且可以将同一客户端的图像渲染请求交由同一图像处理单元,提升处理效率。

在一个实施例中,服务器为客户端分配对应的图像处理单元,包括:

服务器判断当前是否存在空闲的图像处理单元;

如果存在,则服务器选择一个空闲的图像处理单元分配给客户端;

具体的,选择一个空闲的图像处理单元分配给客户端,包括:

从所有空闲的图像处理单元中随机选择一个图像处理单元;或者,从所有空闲的图像处理单元中选择编号最小的图像处理单元;或者,从所有空闲的图像处理单元中选择编号最大的图像处理单元。

如果不存在,则服务器按照预设规则选择一个图像处理单元分配给客户端。

在一个实施例中,服务器按照预设规则选择一个图像处理单元分配给客户端,包括:

服务器查找出绑定客户端数量最少的图像处理单元分配给客户端;或者,

服务器查找出当前处理负荷最低的图像处理单元分配给客户端。

具体的,处理负荷最低的图像处理单元可以是指:单位时间内接收到的3D图像渲染请求数量最少的图像处理单元。前述单位时间是指当前时间之前的一个时间点到当前时间之间的一段时间,其时长可以根据需要进行设置和调整。

如果绑定客户端数量最少的图像处理单元和当前处理负荷最低的图像处理单元为多个时,则可以随机选择一个/选择编号最小的一个/选择编号最大的一个,分配给客户端。

值得一提的是,步骤102与步骤103的执行顺序可以调换,具体的,当当该请求为图像渲染请求时,服务器可以先执行确定数据处理装置中对应客户端的图像处理单元的步骤,再执行获取图像渲染对应的指令的步骤。

104、服务器将指令传输给数据处理装置以使图像处理单元根据指令完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。

具体的,用户模式过滤驱动将截获的绘图指令发送到数据处理装置,内核模式过滤驱动将截获的显卡配置指令和特效指令发送给数据处理装置,数据处理装置操作系统根据前述指令利用数据处理装置的显卡完成图像渲染。具体的,数据处理装置操作系统根据图像渲染相关的指令通过显卡完成图像渲染的过程参照相关的显卡渲染图像的技术资料即可,在此不做详述。

在一个实施例中,该方法还包括:

105、当该请求为除图像渲染请求以外的请求时,服务器根据该请求进行处理后将处理结果传输给数据处理装置以使数据处理装置转发给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,无需交由数据处理装置处理,只需将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

本公开实施例提供的数据传输方法,数据处理装置接收客户端的请求后转发给服务器;当该请求为图像渲染请求时,服务器获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;服务器确定数据处理装置中对应客户端的图像处理单元;服务器将指令传输给数据处理装置以使图像处理单元根据指令完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。因此,服务器的工作量大大减轻,甚至可以不需要图形处理器就可以支撑大量客户端的3D图像渲染任务,也无需升级服务器。

本公开实施例提供另一种数据传输方法,如图5所示,该方法包括以下步骤:

201、数据处理装置接收客户端的请求。

202、数据处理装置向服务器发送客户端的请求。

203、当该请求为图像渲染请求时,数据处理装置接收服务器发送的图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令。

204、数据处理装置根据指令通过数据处理装置的图像处理模块完成图像渲染。

本公开实施例中数据处理装置具备图像渲染能力即配置有图形处理器(GraphicsProcessing Unit,GPU),在实际应用中,有若干个客户端通过数据处理装置与服务器连接,这种情况下,来自客户端的3D图像渲染需求会非常多,数据处理装置需根据渲染需求任务量配置若干个显卡作为数据处理装置的图像处理模块。

205、数据处理装置将完成图像渲染后得到的图像数据发送给客户端。

在一个实施例中,步骤204具体包括:

图像处理模块中对应客户端的图像处理单元根据指令完成图像渲染;其中,图像处理单元是服务器在图像处理模块中为客户端分配的用于对应处理客户端的图像渲染请求。通过划分图像处理单元可以高效利用数据处理装置的图像处理资源。

数据处理装置的操作系统中的用户模式显示驱动程序对绘图指令转换处理成显卡可识别的指令并由图像处理单元对应的显卡执行;数据处理装置的操作系统中的显示微型端口驱动程序获取显卡配置指令以及特效指令并由图像处理单元对应的显卡执行。

具体的,数据处理装置接收到服务器发送的指令后,数据处理装置安装的微软windows操作系统支持WDDM驱动模型体系结构,数据处理装置操作系统中的用户模式显示驱动对接收到的绘图指令进行转换处理得到显卡能够识别的指令并通过直接内存存取(DMA)方式传递给显卡的显存,结合接收到的显卡配置指令以及特效指令,由显卡进行指令执行完成图像渲染。

示例性的,数据处理装置所执行的图像渲染过程基于图2所示的WDDM模型框架实现,数据处理装置通过网络接收到服务器发送的指令(包括对显卡的配置指令、特效指令及绘图指令)后,其中,绘图指令由一个或者多个包含具体参数的函数组成,这些函数可以在数据处理装置的操作系统中重现,从而完成最终的3D图像渲染工作。比如,接收到的绘图指令为:func1(参数1、参数2、参数3);func2(参数1、参数2);func3(参数1、参数2、参数3、参数4);其中,func1、func2、func3是为了区分不同函数,而给出的三个示例性的函数名,根据上述示例,数据处理装置可以执行绘图指令中的三个函数来进行3D图像渲染(也就是函数重现过程)。

在一个实施例中,该方法还可以包括:

206、当该请求为除图像渲染请求以外的请求时,数据处理装置接收服务器根据该请求进行处理后得到的处理结果;

207、数据处理装置将处理结果发送给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,服务器将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

本公开实施例提供的数据传输方法,数据处理装置接收客户端的请求后转发给服务器;当该请求为图像渲染请求时,数据处理装置接收服务器发送的图像渲染对应的指令,其中,指令包括:显卡配置指令、特效指令及绘图指令;数据处理装置根据指令通过数据处理装置的图像处理模块完成图像渲染;数据处理装置将完成图像渲染后得到的图像数据发送给客户端。因此,服务器的工作量大大减轻,甚至可以不需要图形处理器就可以支撑大量客户端的3D图像渲染任务,也无需升级服务器。

基于上述对应的实施例中所描述的数据传输方法,下述为本公开装置实施例,可以用于执行上述本公开方法实施例。

本公开实施例提供一种服务器,如图6所示,该服务器60包括:

接收模块601,用于接收数据处理装置转发的客户端的请求;

获取模块602,用于当该请求为图像渲染请求时,获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;

确定模块603,用于确定数据处理装置中对应客户端的图像处理单元;

传输模块604,用于将指令传输给数据处理装置以使图像处理单元根据指令完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。

通过数据处理装置这一设置于服务器与客户端之间的设备完成客户端的图像渲染任务,从而使得服务器可以无需通过麻烦的升级就能支持大量来自客户端的图像渲染请求。

在一个实施例中,如图6所示,服务器60还可以包括:

划分模块600,用于将数据处理装置的图像处理模块划分为N个图像处理单元;其中,每个图像处理单元能够独立完成图像渲染任务。

服务器对数据处理装置的图像处理模块划分成若干个可以独立完成图像任务的图像处理单元,分配给各个客户端,可以更加高效的利用图像处理单元完成图像渲染,避免多个客户端争抢资源以及等待处理时间较长。

在一个实施例中,确定模块603具体用于:

从图像渲染请求中获取客户端的标识;

根据客户端的标识判断是否存在客户端对应的图像处理单元;

如果不存在,则为客户端分配对应的图像处理单元,并将客户端与对应的图像处理单元绑定。

通过将图像处理单元与客户端绑定,便于在客户端发送图像渲染请求后选择对应的图像处理单元直接处理,并且可以将同一客户端的图像渲染请求交由同一图像处理单元,提升处理效率。

在一个实施例中,确定模块603具体用于:

判断当前是否存在空闲的图像处理单元;

如果存在,则选择一个空闲的图像处理单元分配给客户端;

如果不存在,则按照预设规则选择一个图像处理单元分配给客户端,包括:

查找出绑定客户端数量最少的图像处理单元分配给客户端;或者,

查找出当前处理负荷最低的图像处理单元分配给客户端。

在一个实施例中,如图6所示,服务器60还可以包括:

处理模块605,用于当该请求为除图像渲染请求以外的请求时,根据该请求进行处理后调用传输模块603将处理结果传输给数据处理装置以使数据处理装置转发给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,无需交由数据处理装置处理,只需将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

在一个实施例中,获取模块602具体用于:

截获服务器的操作系统中的D3D RT程序向用户模式显示驱动程序发送的绘图指令;

截获服务器的操作系统中的图形内核子系统向显示微型端口驱动程序发送的显卡配置指令以及特效指令。

本公开实施例提供的服务器,数据处理装置接收客户端的请求后转发给服务器;当该请求为图像渲染请求时,服务器获取图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;服务器确定数据处理装置中对应客户端的图像处理单元;服务器将指令传输给数据处理装置以使图像处理单元根据指令完成图像渲染后将图像数据传输给客户端;其中,在服务器内不需要根据指令进行图像渲染。因此,服务器的工作量大大减轻,甚至可以不需要图形处理器就可以支撑大量客户端的3D图像渲染任务,也无需升级服务器。

本公开实施例提供一种数据处理装置,如图7所示,该数据处理装置70包括:

通信模块701、处理器702、图像处理模块703、及存储器704;数据处理装置70通过通信模块701分别与客户端和服务器之间进行通信;通信模块701包括:请求接收模块7011、请求转发模块7012、指令接收模块7013、图像采集模块7014和图像传输模块7015;

请求接收模块7011,用于接收客户端的请求;

请求转发模块7012,用于向服务器发送客户端的请求;

指令接收模块7013,用于当请求为图像渲染请求时,数据处理装置接收服务器发送的图像渲染对应的指令;其中,指令包括:显卡配置指令、特效指令及绘图指令;

存储器704,用于缓存从服务器接收到的图像渲染对应的指令以及缓存完成图像渲染后得到的图像;

处理器702,用于根据指令指示图像处理模块703完成图像渲染;

图像采集模块7014,用于采集完成图像渲染后得到的图像;

图像传输模块7015,用于将完成图像渲染后得到的图像发送给客户端。

通过数据处理装置这一设置于服务器与客户端之间的设备完成客户端的图像渲染任务,从而使得服务器可以无需通过麻烦的升级就能支持大量来自客户端的图像渲染请求。

在一个实施例中,处理器702具体用于:

根据指令指示图像处理模块中对应客户端的图像处理单元完成图像渲染;其中,图像处理单元是服务器在图像处理模块中为客户端分配的用于对应处理客户端的图像渲染请求。数据处理装置的操作系统中的用户模式显示驱动程序对绘图指令转换处理成显卡可识别的指令并由图像处理单元对应的显卡执行;数据处理装置的操作系统中的显示微型端口驱动程序获取显卡配置指令以及特效指令并由图像处理单元对应的显卡执行。

示例性的,数据处理装置配置有支持WDDM的操作系统,接收到服务器发送的图像渲染对应的指令后,按照操作系统中执行指令的流程通过自身配置的显卡完成图像渲染。

服务器对数据处理装置的图像处理模块划分成若干个可以独立完成图像任务的图像处理单元,分配给各个客户端,可以更加高效的利用图像处理单元完成图像渲染,避免多个客户端争抢资源以及等待处理时间较长。

在一个实施例中,图像采集模块7014还用于:当该请求为除图像渲染请求以外的请求时,采集服务器发送的根据该请求进行处理后得到的图像;

相应的,图像传输模块7015还用于:将服务器发送的根据该请求进行处理后得到的图像发送给客户端。

对于一般的云桌面客户端请求,服务器可以直接处理的则直接在服务器内处理,服务器将处理结果例如计算机桌面图像数据通过数据处理装置转发给客户端即可。

基于图7所示的数据处理装置,图8为本公开实施例提供的一个详细的实施效果示意图。

本公开实施例提供的数据处理装置,数据处理装置接收客户端的请求后转发给服务器;当该请求为图像渲染请求时,数据处理装置接收服务器发送的图像渲染对应的指令,其中,指令包括:显卡配置指令、特效指令及绘图指令;数据处理装置根据指令通过数据处理装置的图像处理模块完成图像渲染;数据处理装置将完成图像渲染后得到的图像数据发送给客户端。因此,服务器的工作量大大减轻,甚至可以不需要图形处理器就可以支撑大量客户端的3D图像渲染任务,也无需升级服务器。

基于上述图3/5对应的实施例中所描述的数据传输方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(ReadOnly Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图3/5对应的实施例中所描述的数据传输方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:虚拟形象直播方法、终端、计算机设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类