CN103714569B - 一种渲染指令的处理方法、装置和系统 - Google Patents
一种渲染指令的处理方法、装置和系统 Download PDFInfo
- Publication number
- CN103714569B CN103714569B CN201310703684.7A CN201310703684A CN103714569B CN 103714569 B CN103714569 B CN 103714569B CN 201310703684 A CN201310703684 A CN 201310703684A CN 103714569 B CN103714569 B CN 103714569B
- Authority
- CN
- China
- Prior art keywords
- key assignments
- render instructions
- render
- instructions
- corresponding relation
- 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
Abstract
本发明公开了一种渲染指令的处理方法、装置和系统。该技术方案中,客户端在获取到3D渲染指令时,不是直接发送3D渲染指令给服务器端,而是先确定与3D渲染指令对应的用于表征3D渲染指令的特征信息的键值,并将确定出的键值发送给服务器端,以便服务器端能够根据收到的键值执行渲染处理,因此大大减小了3D渲染指令的传输量,降低了传输时延,从而提高了传输效率。
Description
技术领域
本发明涉及IT技术领域,尤其是涉及一种渲染指令的处理方法、装置和系统。
背景技术
图形处理器(Graphic Processing Unit,GPU)主要用于专业的图形处理,而GPU虚拟化技术就是让运行在数据中心服务器(以下简称为服务器端)上的虚拟机共享使用一块或多块GPU进行图形运算。目前越来越多的用户希望三维(three-dimensional,3D)应用的体验更好,与此同时对性能、安全、成本、效率方面的要求也越来越高;另外越来越多的3D应用程序也使用了GPU进行硬件加速。这些需求都促进着GPU虚拟化技术的发展。
目前,基于开放图形库(Open Graphics Library,OpenGL)指令的GPU虚拟化技术的实现过程如图1所示,主要是客户端将运行3D应用程序后产生的3D渲染指令(OpenGL3D指令)拦截并打包,再把打包后的OpenGL3D指令通过数据通道发送到具有硬件渲染的设备(服务器端)上执行,最后由服务器端把渲染结果回传给客户端上的3D应用程序。
上述过程中,3D应用程序在运行过程中会产生大量的3D渲染指令,因此在客户端和服务器端之间3D渲染指令的传输量很大,导致在传输过程中可能会产生较大的时延,使得传输效率较低。
发明内容
本发明实施例提供一种渲染指令的处理方法、装置和系统,用以解决现有技术中在传输渲染指令的过程中存在的传输效率比较低的问题。
第一方面,提供一种渲染指令的处理方法,包括:
获取当前运行的三维3D应用程序产生的3D渲染指令;
确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;
将确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端,以便服务器端能够根据所述当前运行的3D应用程序产生的3D渲染指令对应的键值执行渲染处理。
结合第一方面,在第一种可能的实现方式中,还包括:
预先设置3D渲染指令和键值的对应关系的集合;
所述确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值包括:
查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述对应关系的集合还指示已经记录了对应关系的3D渲染指令的类型;
则所述方法还包括:
判断所述当前运行的3D应用程序产生的3D渲染指令的类型是否是已经记录了对应关系的3D渲染指令的类型;
所述确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值包括:
如果判断出所述当前运行的3D应用程序产生的3D渲染指令的类型是已经记录了对应关系的3D渲染指令的类型,查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
如果判断出所述当前运行的3D应用程序产生的3D渲染指令的类型不是已经记录了对应关系的3D渲染指令的类型,则对所述当前运行的3D应用程序产生的3D渲染指令进行哈希运算,计算得到所述当前运行的3D应用程序产生的3D渲染指令对应的键值;
将所述计算得到的键值发送给服务器端。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
根据所述当前运行的3D应用程序产生的3D渲染指令与所述计算得到的键值,更新所述对应关系。
结合第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
在预先设置的时间周期内,统计所述对应关系的集合中的3D渲染指令的实施次数;
确定实施次数小于预先设置的阈值的3D渲染指令;
在所述对应关系的集合中删除所述实施次数小于预先设置的阈值的3D渲染指令相关的对应关系。
第二方面,提供一种渲染指令的处理方法,包括:
接收客户端发送的用于表征3D渲染指令的特征信息的键值;
确定所述键值对应的3D渲染指令;
根据所述3D渲染指令,处理得到渲染结果;
将得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示。
结合第二方面,在第一种可能的实现方式中,所述方法还包括:
预先设置键值与3D渲染指令的对应关系的集合;则
所述确定所述键值对应的3D渲染指令包括:
查询预先存储的所述对应关系的集合,确定所述键值对应的3D渲染指令。
结合第二方面,在第二种可能的实现方式中,所述方法还包括:
预先设置3D渲染指令与渲染结果的显示列表;则
所述根据所述3D渲染指令,处理得到渲染结果包括:
根据所述3D渲染指令查询所述显示列表,获得对应的渲染结果。
结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
在预先设置的时间周期内,统计所述对应关系的集合中的键值的实施次数;
确定实施次数小于预先设置的阈值的键值;
在所述对应关系的集合中删除所述实施次数小于预先设置的阈值的键值相关的对应关系,以及在所述显示列表中删除所述实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果。
第三方面,提供一种客户端设备,包括:
3D渲染指令获取单元,用于获取当前运行的3D应用程序产生的3D渲染指令;
键值确定单元,用于确定3D渲染指令获取单元获取的所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;
键值第一发送单元,用于将键值确定单元确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端,以便服务器端能够根据所述当前运行的3D应用程序产生的3D渲染指令对应的键值执行渲染处理。
结合第三方面,在第一种可能的实现方式中,所述设备还包括:
设置单元,用于预先设置3D渲染指令和键值的对应关系的集合;
所述键值确定单元,具体用于:
查询设置单元中预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述对应关系的集合还指示已经记录了对应关系的3D渲染指令的类型;
所述设备还包括:
判断单元,用于判断所述当前运行的3D应用程序产生的3D渲染指令的类型是否是已经记录了对应关系的3D渲染指令的类型;
所述键值确定单元,具体用于:
如果判断单元判断出所述当前运行的3D应用程序产生的3D渲染指令的类型是已经记录了对应关系的3D渲染指令的类型,查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述设备还包括:
键值计算单元,用于如果判断单元判断出所述当前运行的3D应用程序产生的3D渲染指令的类型不是已经记录了对应关系的3D渲染指令的类型,则对所述当前运行的3D应用程序产生的3D渲染指令进行哈希运算,计算得到所述当前运行的3D应用程序产生的3D渲染指令对应的键值;
键值第二发送单元,用于将键值计算单元计算得到的键值发送给服务器端。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述设备还包括:
更新单元,用于根据所述当前运行的3D应用程序产生的3D渲染指令与键值计算单元计算得到的键值,更新设置单元中设置的所述对应关系。
结合第三方面的第一种可能的实现方式、第三方面的第二种可能的实现方式、第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述设备还包括:
次数统计单元,用于在预先设置的时间周期内,统计所述对应关系的集合中的3D渲染指令的实施次数;
指令确定单元,用于确定次数统计单元统计出的实施次数小于预先设置的阈值的3D渲染指令;
删除单元,用于在所述对应关系的集合中删除指令确定单元中确定出的实施次数小于预先设置的阈值的3D渲染指令相关的对应关系。
第四方面,提供一种服务器设备,包括:
键值接收单元,用于接收客户端发送的用于表征3D渲染指令的特征信息的键值;
指令确定单元,用于确定键值接收单元接收的所述键值对应的3D渲染指令;
处理单元,用于根据指令确定单元确定出的所述3D渲染指令,处理得到渲染结果;
回传单元,用于将处理单元得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示。
结合第四方面,在第一种可能的实现方式中,所述设备还包括:
第一设置单元,用于预先设置键值与3D渲染指令的对应关系的集合;
所述指令确定单元,具体用于:
查询第一设置单元中预先存储的所述对应关系的集合,确定所述键值对应的3D渲染指令。
结合第四方面,在第二种可能的实现方式中,所述设备还包括:
第二设置单元,用于预先设置3D渲染指令与渲染结果的显示列表;
所述处理单元,具体用于:
根据所述3D渲染指令查询第二设置单元中的所述显示列表,获得对应的渲染结果。
结合第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述设备还包括:
次数统计单元,用于在预先设置的时间周期内,统计所述对应关系的集合中的键值的实施次数;
键值确定单元,用于确定次数统计单元统计的实施次数小于预先设置的阈值的键值;
删除单元,用于在所述对应关系的集合中删除键值确定单元确定出的所述实施次数小于预先设置的阈值的键值相关的对应关系,以及在所述显示列表中删除键值确定单元确定出的所述实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果。
第五方面,提供一种渲染指令的处理系统,包括客户端和服务器端,其中:
所述客户端,用于获取当前运行的三维3D应用程序产生的3D渲染指令;确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;将确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端;
所述服务器端,用于接收客户端发送的用于表征3D渲染指令的特征信息的键值;确定所述键值对应的3D渲染指令;根据所述3D渲染指令,处理得到渲染结果;将得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示。
本技术方案与现有技术相比,客户端在获取到3D渲染指令时,不是直接发送3D渲染指令给服务器端,而是先确定与3D渲染指令对应的用于表征3D渲染指令的特征信息的键值,并将确定出的键值发送给服务器端,以便服务器端能够根据收到的键值执行渲染处理,因此大大减小了3D渲染指令的传输量,降低了传输时延,从而提高了传输效率。
附图说明
图1为现有技术中基于OpenGL3D指令的GPU虚拟化技术的实现过程示意图;
图2为本发明实施例提供的一种基于客户端的渲染指令的处理方法的实现流程图;
图3为本发明实施例提供的一种基于服务器端的渲染指令的处理方法的实现流程图;
图4为本发明实施例提供的用于实现上述渲染指令的处理方法的系统框架图;
图5为本发明实施例提供的客户端处理OpenGL3D指令的方法流程图;
图6为本发明实施例提供的服务器端处理OpenGL3D指令的方法流程图;
图7为本发明实施例提供的一种客户端设备的结构示意图;
图8为本发明实施例提供的一种客户端设备的硬件结构示意图;
图9为本发明实施例提供的一种服务器端设备的结构示意图;
图10为本发明实施例提供的一种服务器端设备的硬件结构示意图;
图11为本发明实施例提供的一种渲染指令的处理系统的结构示意图。
具体实施方式
为了解决现有技术中存在的上述问题,本发明实施例提出了一种渲染指令的处理方案。该技术方案与现有技术相比,客户端在获取到3D渲染指令时,不是直接发送3D渲染指令给服务器端,而是先确定与3D渲染指令对应的用于表征3D渲染指令的特征信息的键值,并将确定出的键值发送给服务器端,以便服务器端能够根据收到的键值执行渲染处理,因此大大减小了3D渲染指令的传输量,降低了传输时延,从而提高了传输效率。
以下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限制本发明。并且在不冲突的情况下,本说明中的实施例及实施例的特征可以互相结合。
在本发明实施例的方案中,运行3D应用程序而产生3D渲染指令之后,需客户端首先对3D渲染指令进行处理,然后将处理后得到的键值发送给服务器端,再由服务器端根据收到的键值确定出3D渲染指令,并进行渲染处理。因此,本发明实施例包括客户端针对3D渲染指令的处理过程和服务器端针对3D渲染指令的处理过程,下面分别加以说明。
本发明实施例提供一种渲染指令的处理方法,如图2所示为该方法的实现流程图,该方法的执行主体为客户端,主要包括下述步骤:
步骤21,获取当前运行的3D应用程序产生的3D渲染指令;
其中,3D应用程序运行之后,会产生大量的3D渲染指令,客户端可以通过可安装客户端驱动(Installable Client Driver,ICD)截获到这些3D渲染指令,然后对截获到的3D渲染指令做相应处理。
步骤22,确定当前运行的3D应用程序产生的3D渲染指令对应的键值,其中,键值用于表征3D渲染指令的特征信息;
本发明实施例中,为了能够快速确定出3D渲染指令对应的键值,可以预先在缓存中设置3D渲染指令和键值的对应关系的集合。那么在获取到当前运行的3D应用程序产生的3D渲染指令时,便可以查询预先存储的上述对应关系的集合,确定当前运行的3D应用程序产生的3D渲染指令对应的键值。
由于3D应用程序在运行过程中会产生大量的3D渲染指令,但缓存的大小是受限制的,因此可以选择一些重复度比较大的3D渲染指令进行缓存,而对于重复度小的3D渲染指令不进行缓存。因此,上述3D渲染指令和键值的对应关系的集合中还可以指示已经记录了对应关系的3D渲染指令的类型,则在执行步骤22之前,可以先判断当前运行的3D应用程序产生的3D渲染指令的类型是否是已经记录了对应关系的3D渲染指令的类型,如果是,则执行查询预先存储的上述对应关系的集合,确定当前运行的3D应用程序产生的3D渲染指令对应的键值的步骤;如果不是,可以对当前运行的3D应用程序产生的3D渲染指令进行哈希运算,计算得到与其对应的键值,并将计算得到的键值发送给服务器端;
进一步的,还可以将当前运行的3D应用程序产生的3D渲染指令与计算得到的键值对应存储到上述对应关系的集合中,以便后续获取到相同的3D渲染指令时,可以直接根据上述对应关系确定出键值,提高客户端的处理效率。
另外,本发明实施例中还可以对3D渲染指令和键值的对应关系的集合进行学习和更新,具体的可以预先设置时间周期,然后在预先设置的时间周期内,统计对应关系的集合中的3D渲染指令的实施次数,并确定出实施次数小于预先设置的阈值的3D渲染指令,最后将实施次数小于预先设置的阈值的3D渲染指令和与该3D渲染指令对应的键值从对应关系的集合中删除,这样可以使得那些重复度低的3D渲染指令和对应的键值被及时的删除掉,节省缓存空间。
步骤23,将确定出的当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端,以便服务器端能够根据该键值执行渲染处理。
本发明实施例中,客户端在获取到3D渲染指令时,不是直接发送3D渲染指令给服务器端,而是先确定与3D渲染指令对应的用于表征3D渲染指令的特征信息的键值,并将确定出的键值发送给服务器端,以便服务器端能够根据收到的键值执行渲染处理,因此大大减小了3D渲染指令的传输量,降低了传输时延,从而提高了传输效率。
相应的,本发明实施例还提供一种渲染指令的处理方法,如图3所示为该方法的实现流程图,该方法的执行主体为服务器端,主要包括下述步骤:
步骤31,接收客户端发送的用于表征3D渲染指令的特征信息的键值;
步骤32,确定该键值对应的3D渲染指令;
本发明实施例中,可以预先在服务器端的缓存中设置3D渲染指令和键值的对应关系的集合,那么该步骤可以具体包括:查询预先存储的该对应关系的集合,确定收到的键值对应的3D渲染指令。
步骤33,根据确定出的渲染指令,处理得到渲染结果;
本发明实施例中,为了能够快速得到渲染结果,可以预先设置3D渲染指令与渲染结果的显示列表,则该步骤在执行时,可以根据3D渲染指令查询该显示列表,获得对应的渲染结果,从而提高服务器端的处理效率。
步骤34,将得到的渲染结果回传给客户端,以便客户端能够根据该渲染结果进行显示。
另外,本发明实施例中还可以对预先设置的键值和3D渲染指令的对应关系的集合,以及预先设置的显示列表进行学习和更新,具体的可以预先设置时间周期,然后在预先设置的时间周期内统计上述对应关系中的键值的实施次数,并确定实施次数小于预先设置的阈值的键值,最后将实施次数小于预先设置的阈值的键值相关的对应关系从对应关系的集合中删除,以及将实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果从上述显示列表中删除,这样可以使得那些重复度低的键值、3D渲染指令和渲染结果被及时的删除掉,节省缓存空间。
本发明实施例中,服务器端接收用于表征3D渲染指令的特征信息的键值,而不是直接接收3D渲染指令,因此大大减小了3D渲染指令的传输量,降低了传输时延,从而提高了传输效率。
图4为用于实现上述3D渲染指令的处理方法的系统框架图,如图4所示,该系统由三部分组成,包括客户端、服务器端和远程桌面。本发明实施例中的3D渲染指令为OpenGL3D指令。
第一阶段,客户端通过OpenGL ICD可以截获到OpenGL3D指令,并对这些OpenGL3D指令根据打包策略做相应的打包处理,然后再将打包好的指令流通过数据通道(比如共享内存)传输到服务器端做相应的解包处理,这个过程中涉及指令缓存和指令优化等功能,服务器端将解包出来的指令发送给GPU卡执行并渲染出图像。
第二阶段,渲染出来的图像数据存储在显存中,需要通过屏幕抓取将其拷贝到内存中,由于原始图像数据比较大,需要做压缩处理,再将压缩码流通过共享内存发送给客户端,由客户端对接收到的压缩码流进行解压,再调用应用编程接口(ApplicationProgramming Interface,API)将解压得到的图像贴到3D应用程序的图像区域。
第三阶段,由于客户端是一个虚拟机系统,在客户端的虚拟机系统中得到的3D应用程序的图像需要通过图形设备接口(Graphics Device Interface,GDI)被重定向到远程桌面,由远程桌面通过GDI显示最终的桌面图像。
下面在图2和图3所示的方法基础上对上述第一阶段的具体过程进行详细说明。如图5所示,为客户端处理OpenGL3D指令的方法流程图。该方法包括:
步骤51,客户端截获当前运行的3D应用程序产生的OpenGL3D指令;
步骤52,判断截获的OpenGL3D指令是否满足预先设置的缓存策略,当判断结果为是时,执行步骤53,否则执行步骤57;
其中,如果截获的OpenGL3D指令的类型为预先设置的指令类型,则OpenGL3D指令满足预先设置的缓存策略,否则不满足缓存策略。
步骤53,判断截获的OpenGL3D指令的类型是否为已经记录了对应关系的OpenGL3D指令的类型;在判断结果为是时,执行步骤54,在判断结果为否时,说明该OpenGL3D指令是第一次截获到,则执行步骤55。
其中,在客户端的缓存表中预先存储有OpenGL3D指令和用于表征OpenGL3D指令的特征信息的键key值的对应关系的集合。
步骤54,在客户端的缓存表中查询OpenGL3D指令和key值的对应关系的集合,确定截获的OpenGL3D指令对应的key值,再执行步骤58;
步骤55,对截获的OpenGL3D指令进行哈希运算,计算得到与其对应的key值,并将该OpenGL3D指令和得到的与其对应的key值添加到缓存表中对应关系的集合中;
具体的,对OpenGL3D指令进行哈希运算,即对该OpenGL3D指令中的glBegin和glEnd之间的指令进行哈希运算。
步骤56,将该OpenGL3D指令和得到的与其对应的key值打包后发送给服务器端,流程结束。
步骤57,将该OpenGL3D指令打包发送到服务器端,流程结束。
步骤58,将确定出的截获的OpenGL3D指令对应的key值打包后发送到服务器端,流程结束。
如图6所示,为服务器端处理OpenGL3D指令的方法流程图。该方法包括:
步骤61,服务器端对客户端发送的指令流进行解包,得到key值;
步骤62,在服务器端的缓存表中,查询预先设置的key值与OpenGL3D指令的对应关系的集合,若查询到,则执行步骤63,若没有查询到,说明服务器端是第一次接收到该key值,此时对接收到的指令流进行解包还能得到与该key值对应的OpenGL3D指令,继而执行步骤65;
步骤63,确定key值对应的OpenGL3D指令;
步骤64,根据确定出的OpenGL3D指令,查询预先设置的OpenGL3D指令与渲染结果的显示列表,获得对应的渲染结果;转至步骤66;
步骤65,根据该OpenGL3D指令,处理得到渲染结果;
进一步的,本步骤还可以包括:根据该OpenGL3D指令和key值,对预先设置的key值和OpenGL3D指令的对应关系的集合进行更新,以及根据该OpenGL3D指令和得到的渲染结果,对预先设置的OpenGL3D指令与渲染结果的显示列表进行更新;
步骤66,将得到的渲染结果回传给客户端,以便客户端能够根据该渲染结果进行显示。流程结束。
基于上述发明构思,本发明实施例提出一种客户端设备,如图7所示,为该客户端设备的结构示意图,包括:
3D渲染指令获取单元71,用于获取当前运行的3D应用程序产生的3D渲染指令;
键值确定单元72,用于确定3D渲染指令获取单元71获取的所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;
键值第一发送单元73,用于将键值确定单元72确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端,以便服务器端能够根据所述当前运行的3D应用程序产生的3D渲染指令对应的键值执行渲染处理。
其中,所述设备还可以包括:
设置单元74,用于预先设置3D渲染指令和键值的对应关系的集合;
则所述键值确定单元72,具体用于:
查询设置单元74中预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
进一步的,当所述对应关系的集合还指示已经记录了对应关系的3D渲染指令的类型时,所述设备还可以包括:
判断单元75,用于判断所述当前运行的3D应用程序产生的3D渲染指令的类型是否是已经记录了对应关系的3D渲染指令的类型;
则所述键值确定单元72,具体用于:
如果判断单元75判断出所述当前运行的3D应用程序产生的3D渲染指令的类型是已经记录了对应关系的3D渲染指令的类型,查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
其中,所述设备还可以包括:
键值计算单元76,用于如果判断单元75判断出所述当前运行的3D应用程序产生的3D渲染指令的类型不是已经记录了对应关系的3D渲染指令的类型,则对所述当前运行的3D应用程序产生的3D渲染指令进行哈希运算,计算得到所述当前运行的3D应用程序产生的3D渲染指令对应的键值;
键值第二发送单元77,用于将键值计算单元计算得到的键值发送给服务器端。
其中,所述设备还可以包括:
更新单元78,用于根据所述当前运行的3D应用程序产生的3D渲染指令与键值计算单元76计算得到的键值,更新设置单元74中设置的所述对应关系。
进一步的,所述设备还可以包括:
次数统计单元79,用于在预先设置的时间周期内,统计所述对应关系的集合中的3D渲染指令的实施次数;
指令确定单元710,用于确定次数统计单元79统计出的实施次数小于预先设置的阈值的3D渲染指令;
删除单元711,用于在所述对应关系的集合中删除指令确定单元710中确定出的实施次数小于预先设置的阈值的3D渲染指令相关的对应关系。
相应的,本发明实施例还提出一种客户端设备,如图8所示,为该客户端设备的硬件结构示意图,包括:存储器81、处理器82和发射器83,其中:
存储器81,用于存储预先设置3D渲染指令和键值的对应关系的集合,所述对应关系的集合还指示已经记录了对应关系的3D渲染指令的类型。
处理器82,用于获取当前运行的三维3D应用程序产生的3D渲染指令;确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;
发射器83,用于将处理器82确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端,以便服务器端能够根据所述当前运行的3D应用程序产生的3D渲染指令对应的键值执行渲染处理。
进一步的,处理器82具体用于:
查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
当处理器82还用于判断所述当前运行的3D应用程序产生的3D渲染指令的类型是否是已经记录了对应关系的3D渲染指令的类型时,处理器82具体用于:如果判断出所述当前运行的3D应用程序产生的3D渲染指令的类型是已经记录了对应关系的3D渲染指令的类型,查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
其中,处理器82还具体用于:
如果判断出所述当前运行的3D应用程序产生的3D渲染指令的类型不是已经记录了对应关系的3D渲染指令的类型,则对所述当前运行的3D应用程序产生的3D渲染指令进行哈希运算,计算得到所述当前运行的3D应用程序产生的3D渲染指令对应的键值;将所述计算得到的键值发送给服务器端。
可选的,处理器82还具体用于:
根据所述当前运行的3D应用程序产生的3D渲染指令与所述计算得到的键值,更新所述对应关系。
可选的,处理器82还具体用于:
在预先设置的时间周期内,统计所述对应关系的集合中的3D渲染指令的实施次数;确定实施次数小于预先设置的阈值的3D渲染指令;在所述对应关系的集合中删除所述实施次数小于预先设置的阈值的3D渲染指令相关的对应关系。
基于上述构思,本发明实施例还提出一种服务器端设备,如图9所示,为该服务器端设备的结构示意图,包括:
键值接收单元91,用于接收客户端发送的用于表征3D渲染指令的特征信息的键值;
指令确定单元92,用于确定键值接收单元91接收的所述键值对应的3D渲染指令;
处理单元93,用于根据指令确定单元92确定出的所述3D渲染指令,处理得到渲染结果;
回传单元94,用于将处理单元93得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示。
其中,所述设备还可以包括:
第一设置单元95,用于预先设置键值与3D渲染指令的对应关系的集合;
所述指令确定单元92,具体用于:
查询第一设置单元95中预先存储的所述对应关系的集合,确定所述键值对应的3D渲染指令。
其中,所述设备还可以包括:
第二设置单元96,用于预先设置3D渲染指令与渲染结果的显示列表;
所述处理单元93,具体用于:
根据所述3D渲染指令查询第二设置单元93中的所述显示列表,获得对应的渲染结果。
其中,所述设备还可以包括:
次数统计单元97,用于在预先设置的时间周期内,统计所述对应关系的集合中的键值的实施次数;
键值确定单元98,用于确定次数统计单元97统计的实施次数小于预先设置的阈值的键值;
删除单元99,用于在所述对应关系的集合中删除键值确定单元98确定出的所述实施次数小于预先设置的阈值的键值相关的对应关系,以及在所述显示列表中删除键值确定单元98确定出的所述实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果。
相应的,本发明实施例还提供了一种服务器端设备,如图10所示,为该服务器端设备的硬件结构示意图,包括:存储器101、处理器102、接收器103和发射器104,其中:
存储器101,用于存储预先设置键值与3D渲染指令的对应关系的集合,以及预先设置3D渲染指令与渲染结果的显示列表;
接收器103,用于接收客户端发送的用于表征3D渲染指令的特征信息的键值;
处理器102,用于确定所述键值对应的3D渲染指令;根据所述3D渲染指令,处理得到渲染结果;
发射器104,用于将得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示。
其中,所述处理器102,具体用于查询预先存储的所述对应关系的集合,确定所述键值对应的3D渲染指令。
所述处理器102,还具体用于根据所述3D渲染指令查询所述显示列表,获得对应的渲染结果;
所述处理器102,还具体用于在预先设置的时间周期内,统计所述对应关系的集合中的键值的实施次数;确定实施次数小于预先设置的阈值的键值;在所述对应关系的集合中删除所述实施次数小于预先设置的阈值的键值相关的对应关系,以及在所述显示列表中删除所述实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果。
基于上述构思,本发明实施例还提供了一种渲染指令的处理系统,如图11所示,为该处理系统的结构示意图,包括客户端111和服务器端112,其中:
所述客户端111,用于获取当前运行的三维3D应用程序产生的3D渲染指令;确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;将确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端112;
所述服务器端112,用于接收客户端111发送的用于表征3D渲染指令的特征信息的键值;确定所述键值对应的3D渲染指令;根据所述3D渲染指令,处理得到渲染结果;将得到的渲染结果回传给客户端111,以便客户端111能够根据所述渲染结果进行显示。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (17)
1.一种渲染指令的处理方法,其特征在于,包括:
获取当前运行的三维3D应用程序产生的3D渲染指令;
确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;
将确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端,以便服务器端能够根据所述当前运行的3D应用程序产生的3D渲染指令对应的键值执行渲染处理;
在预先设置的时间周期内,统计预先存储的3D渲染指令和键值的对应关系的集合中的3D渲染指令的实施次数;
确定实施次数小于预先设置的阈值的3D渲染指令;
在所述对应关系的集合中删除所述实施次数小于预先设置的阈值的3D渲染指令相关的对应关系。
2.如权利要求1所述的方法,其特征在于,还包括:
预先设置3D渲染指令和键值的对应关系的集合;
所述确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值包括:
查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
3.如权利要求2所述的方法,其特征在于,所述对应关系的集合还指示已经记录了对应关系的3D渲染指令的类型;
则所述方法还包括:
判断所述当前运行的3D应用程序产生的3D渲染指令的类型是否是已经记录了对应关系的3D渲染指令的类型;
所述确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值包括:
如果判断出所述当前运行的3D应用程序产生的3D渲染指令的类型是已经记录了对应关系的3D渲染指令的类型,查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
如果判断出所述当前运行的3D应用程序产生的3D渲染指令的类型不是已经记录了对应关系的3D渲染指令的类型,则对所述当前运行的3D应用程序产生的3D渲染指令进行哈希运算,计算得到所述当前运行的3D应用程序产生的3D渲染指令对应的键值;
将所述计算得到的键值发送给服务器端。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述当前运行的3D应用程序产生的3D渲染指令与所述计算得到的键值,更新所述对应关系。
6.一种渲染指令的处理方法,其特征在于,包括:
接收客户端发送的用于表征3D渲染指令的特征信息的键值;
确定所述键值对应的3D渲染指令;
根据所述3D渲染指令,处理得到渲染结果;
将得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示;
在预先设置的时间周期内,统计预先存储的键值与3D渲染指令的对应关系的集合中的键值的实施次数;
确定实施次数小于预先设置的阈值的键值;
在所述对应关系的集合中删除所述实施次数小于预先设置的阈值的键值相关的对应关系,以及在预先设置的3D渲染指令与渲染结果的显示列表中删除所述实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
预先设置键值与3D渲染指令的对应关系的集合;则
所述确定所述键值对应的3D渲染指令包括:
查询预先存储的所述对应关系的集合,确定所述键值对应的3D渲染指令。
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
预先设置3D渲染指令与渲染结果的显示列表;则
所述根据所述3D渲染指令,处理得到渲染结果包括:
根据所述3D渲染指令查询所述显示列表,获得对应的渲染结果。
9.一种客户端设备,其特征在于,包括:
3D渲染指令获取单元,用于获取当前运行的3D应用程序产生的3D渲染指令;
键值确定单元,用于确定3D渲染指令获取单元获取的所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;
键值第一发送单元,用于将键值确定单元确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端,以便服务器端能够根据所述当前运行的3D应用程序产生的3D渲染指令对应的键值执行渲染处理;
次数统计单元,用于在预先设置的时间周期内,统计预先存储的3D渲染指令和键值的对应关系的集合中的3D渲染指令的实施次数;
指令确定单元,用于确定次数统计单元统计出的实施次数小于预先设置的阈值的3D渲染指令;
删除单元,用于在所述对应关系的集合中删除指令确定单元中确定出的实施次数小于预先设置的阈值的3D渲染指令相关的对应关系。
10.如权利要求9所述的设备,其特征在于,所述设备还包括:
设置单元,用于预先设置3D渲染指令和键值的对应关系的集合;
所述键值确定单元,具体用于:
查询设置单元中预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
11.如权利要求10所述的设备,其特征在于,所述对应关系的集合还指示已经记录了对应关系的3D渲染指令的类型;
所述设备还包括:
判断单元,用于判断所述当前运行的3D应用程序产生的3D渲染指令的类型是否是已经记录了对应关系的3D渲染指令的类型;
所述键值确定单元,具体用于:
如果判断单元判断出所述当前运行的3D应用程序产生的3D渲染指令的类型是已经记录了对应关系的3D渲染指令的类型,查询预先存储的所述对应关系的集合,确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值。
12.如权利要求11所述的设备,其特征在于,所述设备还包括:
键值计算单元,用于如果判断单元判断出所述当前运行的3D应用程序产生的3D渲染指令的类型不是已经记录了对应关系的3D渲染指令的类型,则对所述当前运行的3D应用程序产生的3D渲染指令进行哈希运算,计算得到所述当前运行的3D应用程序产生的3D渲染指令对应的键值;
键值第二发送单元,用于将键值计算单元计算得到的键值发送给服务器端。
13.如权利要求12所述的设备,其特征在于,所述设备还包括:
更新单元,用于根据所述当前运行的3D应用程序产生的3D渲染指令与键值计算单元计算得到的键值,更新设置单元中设置的所述对应关系。
14.一种服务器端设备,其特征在于,包括:
键值接收单元,用于接收客户端发送的用于表征3D渲染指令的特征信息的键值;
指令确定单元,用于确定键值接收单元接收的所述键值对应的3D渲染指令;
处理单元,用于根据指令确定单元确定出的所述3D渲染指令,处理得到渲染结果;
回传单元,用于将处理单元得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示;
次数统计单元,用于在预先设置的时间周期内,统计预先存储的键值与3D渲染指令的对应关系的集合中的键值的实施次数;
键值确定单元,用于确定次数统计单元统计的实施次数小于预先设置的阈值的键值;
删除单元,用于在所述对应关系的集合中删除键值确定单元确定出的所述实施次数小于预先设置的阈值的键值相关的对应关系,以及在预先设置的3D渲染指令与渲染结果的显示列表中删除键值确定单元确定出的所述实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果。
15.如权利要求14所述的设备,其特征在于,所述设备还包括:
第一设置单元,用于预先设置键值与3D渲染指令的对应关系的集合;
所述指令确定单元,具体用于:
查询第一设置单元中预先存储的所述对应关系的集合,确定所述键值对应的3D渲染指令。
16.如权利要求14所述的设备,其特征在于,所述设备还包括:
第二设置单元,用于预先设置3D渲染指令与渲染结果的显示列表;
所述处理单元,具体用于:
根据所述3D渲染指令查询第二设置单元中的所述显示列表,获得对应的渲染结果。
17.一种渲染指令的处理系统,其特征在于,包括客户端和服务器端,其中:
所述客户端,用于获取当前运行的三维3D应用程序产生的3D渲染指令;确定所述当前运行的3D应用程序产生的3D渲染指令对应的键值,所述键值用于表征3D渲染指令的特征信息;将确定出的所述当前运行的3D应用程序产生的3D渲染指令对应的键值发送给服务器端;在预先设置的时间周期内,统计预先存储的3D渲染指令和键值的对应关系的集合中的3D渲染指令的实施次数;确定实施次数小于预先设置的阈值的3D渲染指令;在所述对应关系的集合中删除实施次数小于预先设置的阈值的3D渲染指令相关的对应关系;
所述服务器端,用于接收客户端发送的用于表征3D渲染指令的特征信息的键值;确定所述键值对应的3D渲染指令;根据所述3D渲染指令,处理得到渲染结果;将得到的渲染结果回传给客户端,以便客户端能够根据所述渲染结果进行显示;在预先设置的时间周期内,统计预先存储的键值与3D渲染指令的对应关系的集合中的键值的实施次数;确定实施次数小于预先设置的阈值的键值;在所述对应关系的集合中删除所述实施次数小于预先设置的阈值的键值相关的对应关系,以及在预先设置的3D渲染指令与渲染结果的显示列表中删除所述实施次数小于预先设置的阈值的键值对应的3D渲染指令相关的渲染结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310703684.7A CN103714569B (zh) | 2013-12-19 | 2013-12-19 | 一种渲染指令的处理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310703684.7A CN103714569B (zh) | 2013-12-19 | 2013-12-19 | 一种渲染指令的处理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714569A CN103714569A (zh) | 2014-04-09 |
CN103714569B true CN103714569B (zh) | 2017-12-15 |
Family
ID=50407510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310703684.7A Active CN103714569B (zh) | 2013-12-19 | 2013-12-19 | 一种渲染指令的处理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714569B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109493431B (zh) * | 2017-09-12 | 2023-06-23 | 阿里巴巴集团控股有限公司 | 3d模型数据处理方法、装置及系统 |
CN110796587B (zh) * | 2018-08-01 | 2023-08-11 | Oppo广东移动通信有限公司 | Drawcall调用处理方法、装置、终端及存储介质 |
CN109445760B (zh) * | 2018-10-08 | 2022-08-23 | 武汉联影医疗科技有限公司 | 图像渲染方法和系统 |
CN111562962B (zh) * | 2020-04-29 | 2023-07-04 | 百度在线网络技术(北京)有限公司 | 画面渲染方法、装置、电子设备和存储介质 |
CN112416330A (zh) * | 2020-11-23 | 2021-02-26 | 迷你学文化(深圳)有限公司 | 图形化编程方法、装置、电子设备及存储介质 |
CN114581558B (zh) * | 2022-02-25 | 2023-07-07 | 北京百度网讯科技有限公司 | 图像处理方法、装置、设备以及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6753863B1 (en) * | 2000-06-22 | 2004-06-22 | Techimage Ltd. | System and method for streaming real time animation data file |
US7274368B1 (en) * | 2000-07-31 | 2007-09-25 | Silicon Graphics, Inc. | System method and computer program product for remote graphics processing |
CN1501236A (zh) * | 2002-11-12 | 2004-06-02 | 英业达股份有限公司 | 连续单键执行复合命令的系统及方法 |
CN102254292A (zh) * | 2010-05-20 | 2011-11-23 | 盛乐信息技术(上海)有限公司 | 远程3d指令渲染系统及方法 |
US8799357B2 (en) * | 2010-11-08 | 2014-08-05 | Sony Corporation | Methods and systems for use in providing a remote user interface |
US20120169748A1 (en) * | 2011-01-03 | 2012-07-05 | Sifteo Inc. | Distributed graphics engine |
JP5436526B2 (ja) * | 2011-12-06 | 2014-03-05 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックスコマンド生成装置、グラフィックスコマンド生成方法、サーバ装置、およびクライアント装置 |
-
2013
- 2013-12-19 CN CN201310703684.7A patent/CN103714569B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103714569A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714569B (zh) | 一种渲染指令的处理方法、装置和系统 | |
US20230344731A1 (en) | Network security monitoring and correlation system and method of using same | |
KR101692193B1 (ko) | 크라우드소싱된 비디오 렌더링 시스템 | |
CN109522070B (zh) | 显示处理方法和系统 | |
CN105917382B (zh) | 用于交互式图形流传输的方法和系统 | |
CN108810554A (zh) | 虚拟场景的场景图像传输方法、计算机设备及存储介质 | |
EP2654911A2 (en) | Load balancing between general purpose processors and graphics processors | |
CN109309842B (zh) | 直播数据处理方法和装置、计算机设备和存储介质 | |
WO2012037504A1 (en) | A method and mechanism for delivering applications over a wan | |
EP3410302B1 (en) | Graphic instruction data processing method, apparatus | |
CN103650001A (zh) | 动画分发服务器、动画播放装置、控制方法、程序、及记录介质 | |
US11792245B2 (en) | Network resource oriented data communication | |
CN103164227B (zh) | 一种窗口图像的采集方法及装置 | |
Zhang et al. | Rendering multi-party mobile augmented reality from edge | |
CN106598523A (zh) | 图片加载方法、装置及电子设备 | |
US9948691B2 (en) | Reducing input processing latency for remotely executed applications | |
CN114968152B (zh) | 减少virtio-gpu额外性能损耗的方法 | |
WO2021002949A1 (en) | Asset aware computing architecture for graphics processing | |
US20080211820A1 (en) | Information Processing Device, Graphic Processor, Control Processor, and Information Processing Method | |
JP5817052B2 (ja) | 情報処理装置、制御方法、プログラム、及び記録媒体 | |
Anand et al. | CloudHide: Towards latency hiding techniques for thin-client cloud gaming | |
CN109379629A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN105354080B (zh) | 一种任务处理方法及装置 | |
CN104469385B (zh) | 基于虚拟化技术的图形显示方法及装置 | |
KR20180043112A (ko) | 가상 현실을 실현하는 사용자 장치가 컨텐츠를 제공하는 외부 장치와 연동하도록 하는 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220308 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |