一种云渲染方法、系统、计算机设备及可读存储介质与流程

文档序号:24622597发布日期:2021-04-09 20:28阅读:52来源:国知局
一种云渲染方法、系统、计算机设备及可读存储介质与流程

本发明属于计算机领域,尤其涉及一种云渲染方法、系统、计算机设备及可读存储介质。



背景技术:

随着科技的发展,图像、视频媒体播放装置已经深入到人们工作、生活的方方面面,人们对图像渲染的要求也逐步提高。

而我们知道,越复杂的图像渲染需要越复杂、高端的硬件支持,而越复杂越高端的硬件往往越昂贵,对于普通用户而言往往并不实惠,普通用户的设备往往渲染能力较低,难以支持较为复杂的图像、视频渲染处理;而且,即便可以支持,也需要耗费较多的功耗和用户终端的系统资源。



技术实现要素:

本发明实施例的目的在于提供云渲染方法,旨在解决用户终端渲染能力低的问题。

本发明实施例是这样实现的,一种云渲染方法,包括:可进行数据交互的用户端、调度端,以及执行端;

其中,所述用户端用于向调度端发起渲染请求,所述渲染请求中至少包含有待渲染数据以及用户端的连接地址;

所述调度端用于接收所述渲染请求,并将所述待渲染数据分配至一个或者多个目标执行端,所述目标执行端为所述执行端中的任意一个;

所述目标执行端用于对所述待渲染数据进行渲染,并根据所述用户端的连接地址将渲染结果发送至所述用户端。

可选的,所述调度端上设置有执行端信息数据库,所述执行端信息数据库中至少包含有执行端的唯一标识、系统资源空闲率、以及更新时间;

所述调度端通过对所述执行端的系统资源空闲率的监测来更新所述系统资源空闲率数据库;并在接收到所述渲染请求时,对所述执行端按照所述系统资源空闲率的高低进行排序,并选择排序最高的一个或者多个执行端作为所述目标执行端。

可选的,所述调度端还用于计算所述执行端与所述用户端之间的传输效率;

所述调度端至少根据所述执行端的系统资源空闲率以及所述执行端与所述用户端之间的传输效率确定所述目标执行端。

可选的,所述执行端信息数据库还包含有所述执行端对各类型待渲染数据的处理效率;

所述调度端至少根据所述执行端的系统资源空闲率、所述执行端与所述用户端之间的传输效率,以及所述执行端对各类型待渲染数据的处理效率来确定所述目标执行端。

可选的,当所述目标执行端出现异常时,通过所述调度端选定新的目标执行端来处理所述渲染请求。

可选的,所述调度端还用于统计所述执行端的累计工作量,并根据所述累计工作量,为所述执行端计算奖励积分。

可选的,所述调度端还用于分解所述待渲染数据,并将分解后的数据分发至所述目标执行端。

本发明实施例还提供一种云渲染方法,应用于调度端,包括:

接收用户端发送的渲染请求,所述渲染请求中至少包含有待渲染数据以及用户端的连接地址;

将所述待渲染数据分配至一个或者多个目标执行端,所述目标执行端为所述执行端中的任意一个,以通过所述目标执行端对所述待渲染数据进行渲染并发送渲染结果至所述用户端。

本发明实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述云渲染方法的步骤。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述云渲染方法的步骤。

本申请的上述实施例中提供了一种云渲染系统,通过调度端来集中接收用户的渲染请求,并按照设定的规则分配至一个或者多个目标执行端,再通过目标执行端将处理结果返回;通过该方式,可以将渲染能力较低的用户终端上的待渲染数据转移至渲染能力、速度较高的执行端来处理,不仅实现了资源的合理配置,并释放了用户终端的大量系统资源,用户终端不用较高的硬件支持即可实现高渲染质量的视频/图像的输出,降低了用户终端的成本。

附图说明

图1为本发明实施例提供的云渲染方法的应用环境图;

图2为本发明实施例提供的云渲染系统的结构框图。

图3为本发明实施例提供的云渲染方法的流程图;

图4为一个实施例中计算机设备的内部结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。

图1为本发明实施例提供的云渲染方法的应用环境图,在该应用环境中,包括用户终端110、web服务器120、执行节点130。

其中,web服务器120、执行节点130均可以是一个或者多个,它们可以是独立的物理服务器或终端,也可以是多个物理服务器构成的服务器集群,可以是提供云服务器、云数据库、云存储和cdn等基础云计算服务的云服务器。

用户终端110可以是一个或者多个,其可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。用户终端110与web服务器120、执行节点130之间、web服务器120与执行节点130之间均可以通过网络进行连接(图1中的虚线表示网络通信关系),本发明在此不做限制。

如图2所示,在一个实施例中,提出了一种云渲染系统,具体的所述云渲染系统,具体可以包括:

可进行数据交互的用户端10、调度端20,以及多个执行端30;

其中,所述用户端10用于向调度端20发起渲染请求,所述渲染请求中至少包含有待渲染数据以及用户端的连接地址;

所述调度端20用于接收所述渲染请求,并将所述渲染请求分配至一个或者多个目标执行端30,所述目标执行端31为所述执行端30中的任意一个;

所述目标执行端31接收所述渲染请求后,对所述待渲染数据进行渲染,并根据所述用户端10的连接地址将渲染结果发送至所述用户端10。

在一个实施例中,参见图1,其中,用户终端110部署有用户端10,web服务器120部署有调度端20,执行节点130部署有执行端30,通过用户端10、调度端20、执行端30之间构成了上述云渲染系统。

在一个实施例中,用户端10可以是用户终端110上的应用程序、功能插件或者浏览器等,具体不限制。

在一个实施例中,用户端的连接地址可以是网络地址,例如ip(internetprotocol,互联网连接协议)地址。

在一个实施例中,用户可以通过用户端10直接访问调度端20,或者在用户端10通过用户账号访问调度端20,具体不限制。

在一个实施例中,用户端10通过媒体、程序、插件(例如游戏程序、网页游戏端、视频媒体播放器等等)运行相关的视频、图像、动画场景时,若涉及到较多或者较为复杂的画面渲染时,用户端10的设备硬件无法支持相关的渲染处理工作时,可向调度端20发送渲染请求,该渲染请求中至少包含有待渲染数据和用户终端的连接地址,可选的,还可以包含用户终端的唯一性标识、用户账号信息、待渲染数据的编码类型、待渲染数据的文件大小、渲染精度要求、反馈速率要求等。

在一个实施例中,执行端30的数量为一个或者多个,其作用是执行调度端20分配的渲染任务;其一般是专业的图像、视频渲染设备,配置有处理性能较为强大的cpu(centralprocessingunit,中央处理器)、gpu(graphicsprocessingunit,图形处理器)、内存等,可以执行较为高端、复杂的渲染处理,处理量、速度均较快;将用户端的待渲染数据转移至执行端,实现了资源的优化配置。

在一个实施例中,所述调度端20上设置有执行端信息数据库,所述执行端信息数据库中至少包含有执行端的唯一标识、系统资源空闲率、以及更新时间;可选的,该执行端信息数据库还包括:执行端对各类数据的渲染能力评估值(用于根据该能力来分配对应的任务)、执行端的历史故障率(可以在执行端淘汰机制中作为参考)等。

所述调度端通过对所述执行端的系统资源空闲率的监测来更新所述系统资源空闲率数据库;并在接收到所述渲染请求时,对所述执行端按照所述系统资源空闲率的高低进行排序,并选择排序最高的一个或者多个执行端作为所述目标执行端。其中,系统资源空闲率用于表征执行端目前的工作量大小以及处理资源的可用情况,一般而言,执行端的系统资源空闲率的值越大,说明该执行端当前的工作量较小,处理资源较为充裕,可以承接较多渲染任务;反之,则不适合继续加塞较多的渲染任务。当接收到渲染请求时,为了保证待渲染数据能够以高效的方式被进行渲染处理,调度端需要对当前的执行端按系统资源空闲率的高低进行排序,并选择排序最高的执行端或者排名最高的几个执行端来执行渲染任务。可以理解的,对于调度端而言,其还用于分解所述待渲染数据,并将分解后的数据分发至所述目标执行端,即将一个用户端发送的待渲染数据分解成多份任务,并分别发送至多个目标执行端进行并行处理,从而提高渲染效率。

在一个实施例中,所述调度端还用于计算所述执行端与所述用户端之间的传输效率;所述调度端至少根据所述执行端的系统资源空闲率以及所述执行端与所述用户端之间的传输效率确定所述目标执行端。

在本实施例中,所述执行端与所述用户端之间的传输效率主要是指数据在所述执行端与用户端之间发送的速度,该指标也是调度端在分配渲染任务时需要考虑的,在该应用场景中,调度端需要采集执行端与用户端之间的传输效率,检测方式根据实际环境确定,例如可以通过ping值检测来确定。调度端需要综合考虑所述执行端的系统资源空闲率以及所述执行端与所述用户端之间的传输效率,以确定当前的最佳目标执行端;具体的,可以通过加权公式进行计算,以得到一综合值,再根据该综合值的排序来确定执行端执行渲染任务的优先级,其中,各指标的加权值可以通过实际测验确定,通过有限次的尝试和对比即可得到。

在一个实施例中,所述执行端信息数据库还包含有所述执行端对各类型待渲染数据的处理效率;所述调度端至少根据所述执行端的系统资源空闲率、所述执行端与所述用户端之间的传输效率,以及所述执行端对各类型待渲染数据的处理效率来确定所述目标执行端。可以理解的,不同的执行端对各类型的代渲染数据的处理效率会不同,例如,有的执行端的硬件支持专门类型的数据的渲染,有的执行端可以渲染多种类型的数据,但对有些数据类型的处理表现会更好,对有些数据类型的处理会表现得较差;因此,调度端在分配渲染任务时,为了保证工作效率,需要进一步考虑执行端对各类型待渲染数据的处理效率,因此,可以将该处理效率作为一个考察指标,为其配置权重值,并入上一实施例中所提到的加权公式中。

在一个实施例中,当所述目标执行端出现异常时,通过所述调度端选定新的目标执行端来处理所述渲染请求。具体的,为了避免因执行端发生异常或者故障而影响渲染任务的完成,调度端20需要实时或者定期监控各目标执行端的工作状态,当发现目标执行端未按协议定期反馈任务执行情况,或者执行端上报异常提示信息时,调度端则将该目标执行端的任务进行重新分配。

在一个实施例中,所述调度端还用于统计所述执行端的累计工作量,并根据所述累计工作量,为所述执行端计算奖励积分。具体的,执行端执行完任务可以对其进行奖励,调度端会统计各执行端的累计工作量,计算奖励积分,并予以对应的奖励;以提高执行端的积极性。

本申请的上述实施例中,提供了一种云渲染的系统,具体的,通过调度端来集中接收用户的渲染请求,并按照设定的规则分配至一个或者多个目标执行端,再通过目标执行端将处理结果返回;通过该方式,可以将渲染能力较低的用户终端上的待渲染数据转移至渲染能力、速度较高的执行端来处理,不仅实现了资源的合理配置,并释放了用户终端的大量系统资源,用户通过轻量级的用户端程序、插件、网页即可实现高渲染质量的画面的输出,比如流畅观看高清晰度的视频、直播等,即用户终端不用较高的硬件支持即可实现高渲染质量的视频/图像的输出,降低了用户终端的成本。

如图3所示,在一个实施例中,提供了一种云渲染方法,应用于调度端20,该方法包括:

步骤s202,接收用户端发送的渲染请求,所述渲染请求中至少包含有待渲染数据以及用户端的连接地址;

步骤s204,将所述待渲染数据分配至一个或者多个目标执行端,所述目标执行端为所述执行端中的任意一个,以通过所述目标执行端对所述待渲染数据进行渲染并发送渲染结果至所述用户端。

在一个实施例中,用户端10可以是用户终端110上的应用程序、功能插件或者浏览器等,具体不限制。

在一个实施例中,用户端的连接地址可以是网络地址,例如ip地址。

在一个实施例中,用户可以通过用户端10直接访问调度端20,或者在用户端10通过用户账号访问调度端20,具体不限制。

在一个实施例中,用户端10通过媒体、程序、插件(例如游戏程序、网页游戏端、视频媒体播放器等等)运行相关的视频、图像、动画场景时,若涉及到较多或者较为复杂的画面渲染时,用户端10的设备硬件无法支持相关的渲染处理工作时,可向调度端20发送渲染请求,该渲染请求中至少包含有待渲染数据和用户终端的连接地址,可选的,还可以包含用户终端的唯一性标识、用户账号信息、待渲染数据的编码类型、待渲染数据的文件大小、渲染精度要求、反馈速率要求等。

在一个实施例中,执行端30的数量为一个或者多个,其作用是执行调度端20分配的渲染任务。其一般是专业的图像、视频渲染设备,配置有处理性能较为强大的cpu、gpu、内存等,可以执行较为高端、复杂的渲染处理,处理量、速度均较快;将用户端的待渲染数据转移至执行端,实现了资源的优化配置。

在一个实施例中,所述调度端20上设置有执行端信息数据库,所述执行端信息数据库中至少包含有执行端的唯一标识、系统资源空闲率、以及更新时间;可选的,该执行端信息数据库还包括:执行端对各类数据的渲染能力评估值(用于根据该能力来分配对应的任务)、执行端的历史故障率(可以在执行端淘汰机制中作为参考)等。

所述调度端通过对所述执行端的系统资源空闲率的监测来更新所述系统资源空闲率数据库;并在接收到所述渲染请求时,对所述执行端按照所述系统资源空闲率的高低进行排序,并选择排序最高的一个或者多个执行端作为所述目标执行端。其中,系统资源空闲率用于表征执行端目前的工作量大小以及处理资源的可用情况,一般而言,执行端的系统资源空闲率的值越大,说明该执行端当前的工作量较小,处理资源较为充裕,可以承接较多渲染任务;反之,则不适合继续加塞较多的渲染任务。当接收到渲染请求时,为了保证待渲染数据能够以高效的方式被进行渲染处理,调度端需要对当前的执行端按系统资源空闲率的高低进行排序,并选择排序最高的执行端或者排名最高的几个执行端来执行渲染任务。可以理解的,对于调度端而言,其还用于分解所述待渲染数据,并将分解后的数据分发至所述目标执行端,即将一个用户端发送的待渲染数据分解成多份任务,并分别发送至多个目标执行端进行并行处理,从而提高渲染效率。

在一个实施例中,所述调度端还用于计算所述执行端与所述用户端之间的传输效率;所述调度端至少根据所述执行端的系统资源空闲率以及所述执行端与所述用户端之间的传输效率确定所述目标执行端。

在本实施例中,所述执行端与所述用户端之间的传输效率主要是指数据在所述执行端与用户端之间发送的速度,该指标也是调度端在分配渲染任务时需要考虑的,在该应用场景中,调度端需要采集执行端与用户端之间的传输效率,检测方式根据实际环境确定,例如可以通过ping值检测来确定。调度端需要综合考虑所述执行端的系统资源空闲率以及所述执行端与所述用户端之间的传输效率,以确定当前的最佳目标执行端;具体的,可以通过加权公式进行计算,以得到一综合值,再根据该综合值的排序来确定执行端执行渲染任务的优先级,其中,各指标的加权值可以通过实际测验确定,通过有限次的尝试和对比即可得到。

在一个实施例中,所述执行端信息数据库还包含有所述执行端对各类型待渲染数据的处理效率;所述调度端至少根据所述执行端的系统资源空闲率、所述执行端与所述用户端之间的传输效率,以及所述执行端对各类型待渲染数据的处理效率来确定所述目标执行端。可以理解的,不同的执行端对各类型的代渲染数据的处理效率会不同,例如,有的执行端的硬件支持专门类型的数据的渲染,有的执行端可以渲染多种类型的数据,但对有些数据类型的处理表现会更好,对有些数据类型的处理会表现得较差;因此,调度端在分配渲染任务时,为了保证工作效率,需要进一步考虑执行端对各类型待渲染数据的处理效率,因此,可以将该处理效率作为一个考察指标,为其配置权重值,并入上一实施例中所提到的加权公式中。

在一个实施例中,当所述目标执行端出现异常时,通过所述调度端选定新的目标执行端来处理所述渲染请求。具体的,为了避免因执行端发生异常或者故障而影响渲染任务的完成,调度端20需要实时或者定期监控各目标执行端的工作状态,当发现目标执行端未按协议定期反馈任务执行情况,或者执行端上报异常提示信息时,调度端则将该目标执行端的任务进行重新分配。

在一个实施例中,所述调度端还用于统计所述执行端的累计工作量,并根据所述累计工作量,为所述执行端计算奖励积分。具体的,执行端执行完任务可以对其进行奖励,调度端会统计各执行端的累计工作量,计算奖励积分,并予以对应的奖励;以提高执行端的积极性。

本申请的上述实施例中,提供了一种云渲染方法,具体的,通过调度端来集中接收用户的渲染请求,并按照设定的规则分配至一个或者多个目标执行端,再通过目标执行端将处理结果返回;通过该方式,可以将渲染能力较低的用户终端上的待渲染数据转移至渲染能力、速度较高的执行端来处理,不仅实现了资源的合理配置,并释放了用户终端的大量系统资源,用户通过轻量级的用户端程序、插件、网页即可实现高渲染质量的画面的输出,比如流畅观看高清晰度的视频、直播等,即用户终端不用较高的硬件支持即可实现高渲染质量的视频/图像的输出,降低了用户终端的成本。

图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的用户终端110、web服务器120、执行节点130。如图4所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现云渲染方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行云渲染方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

接收用户端发送的渲染请求,所述渲染请求中至少包含有待渲染数据以及用户端的连接地址;

将所述待渲染数据分配至一个或者多个目标执行端,所述目标执行端为所述执行端中的任意一个,以通过所述目标执行端对所述待渲染数据进行渲染并发送渲染结果至所述用户端。

在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:

接收用户端发送的渲染请求,所述渲染请求中至少包含有待渲染数据以及用户端的连接地址;

将所述待渲染数据分配至一个或者多个目标执行端,所述目标执行端为所述执行端中的任意一个,以通过所述目标执行端对所述待渲染数据进行渲染并发送渲染结果至所述用户端。

应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1