CN112330783A - 云渲染方法、装置、终端设备及可读存储介质 - Google Patents
云渲染方法、装置、终端设备及可读存储介质 Download PDFInfo
- Publication number
- CN112330783A CN112330783A CN201910700981.3A CN201910700981A CN112330783A CN 112330783 A CN112330783 A CN 112330783A CN 201910700981 A CN201910700981 A CN 201910700981A CN 112330783 A CN112330783 A CN 112330783A
- Authority
- CN
- China
- Prior art keywords
- picture
- rendering
- server
- drawing instruction
- terminal device
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 143
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000001133 acceleration Effects 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 28
- 230000003993 interaction Effects 0.000 abstract description 2
- 239000000872 buffer Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013075 data extraction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种云渲染方法、装置、终端设备及可读存储介质,涉及人机交互领域。首先,将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中;接着,在满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送到服务器中,由服务器根据绘图指令及绘图参数进行画面渲染;最后,接收渲染后的画面,并将渲染后的画面进行显示。在上述过程中,在检测到满足预设的信息发送条件时,再将无锁队列中存储的绘图指令及绘图参数批量进行发送,减少调用IO线程进行数据发送的次数和上下文切换的次数,可节省终端设备发送数据的耗时,降低整个云渲染过程的延迟。
Description
技术领域
本申请涉及人机交互领域,具体而言,涉及一种云渲染方法、装置、终端设备及可读存储介质。
背景技术
云渲染是指终端设备将待渲染画面发送给运行有云渲染平台的服务器,由服务器对待渲染画面进行渲染后,将渲染后的画面发送给终端设备进行显示的过程。服务器相对于终端设备具有更加强大的软件资源及硬件资源,对画面进行渲染的速度更快。
然而,由于云渲染需要借助于终端设备与服务器之间的数据通信完成,终端设备将待渲染画面发送到服务器需要花费一定时间,这会增加整个云渲染过程的耗时,造成云渲染的延迟,降低云渲染的效率。
发明内容
为了至少克服现有技术中的上述不足,本申请的目的之一在于提供一种降低云渲染延迟方法、装置、服务器及可读存储介质。
第一方面,本申请实施例提供一种云渲染方法,包括终端设备及服务器的云渲染***,所述方法包括:
所述终端设备将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中,其中,渲染一画面需要多条绘图指令;
在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器;
所述服务器在接收到所述绘图指令及绘图参数后,根据所述绘图指令及绘图参数进行画面渲染;
所述服务器在完成画面渲染后,将渲染后的画面进行编码并发送给所述终端设备;
所述终端设备接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
第二方面,本申请实施例提供一种云渲染方法,应用于云渲染***中与服务器通信的终端设备,所述方法包括:
将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中,其中,渲染一画面需要多条绘图指令;
在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器,由所述服务器根据接收到的所述绘图指令及绘图参数进行画面渲染,在完成图像渲染后,将渲染后的画面进行编码,并将编码的画面发给所述终端设备;
接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
第三方面,本申请实施例还提供一种云渲染装置,应用于云渲染***中的终端设备,所述云渲染***还包括服务器,所述装置包括:
发送模块,用于将待渲染画面及渲染参数存入无锁队列中,在检测到预设开放图形库的指令执行时,将存入无锁队列的待渲染画面及渲染参数发送给服务器,由所述服务器根据接收到的所述渲染参数对所述待渲染画面进行渲染,对渲染后的画面进行编码,并将编码的画面发给所述终端设备;
接收模块,用于接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
第四方面,本申请实施例还提供一种终端设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当终端设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面所述的云渲染方法的步骤。
第五方面,本申请实施例还提供一种可读存储介质,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面所述的云渲染方法的步骤。
相对于现有技术而言,本申请具有以下有益效果:
在对画面进行云渲染时,首先将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中,在满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送到服务器中,由服务器根据绘图指令及绘图参数进行画面渲染,最后从服务器接收渲染后的画面进行显示。在上述过程中,在检测到满足预设的信息发送条件时,再将无锁队列中存储的绘图指令及绘图参数批量进行发送,减少调用IO线程进行数据发送的次数和上下文切换的次数,以节省终端设备发送数据的耗时,降低整个云渲染过程的延迟。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的云渲染***的应用场景示意图;
图2示出了本申请第一实施例所提供的云渲染方法的流程示意图;
图3示出了本申请第二实施例所提供的云渲染方法的流程示意图;
图4示出了本申请第三实施例所提供的终端设备的方框结构示意图。
图标:10-云渲染***;100-终端设备;200-服务器;110-存储介质;120-处理器;130-云渲染装置;1301-存入模块;1302-发送模块;1303-接收模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
发明人发现,对画面进行云渲染所需的时间主要由以下几个部分构成:第一,终端设备将用于渲染画面的绘图指令及绘图参数发送到服务器所需的时间;第二,服务器根据绘图指令及绘图参数进行画面渲染所需的时间;第三,将渲染好的画面经过压缩、编码等过程所需时间;第四,将编码好的画面通过网络发送会终端设备所需的时间;第五,终端设备将编码的画面进行解码,获得画面所需的时间。
为了减少云渲染所需时间的时长,降低云渲染延迟,发明人通过研究,提供以下解决方案。
第一实施例
请参照图1,图1为本申请技术方案所适用的云渲染***10的应用场景示意图。云渲染***10包括相互通信连接的终端设备100及服务器200。
终端设备100为具备视频和图像解码、及视频和图像播放的能力,但终端设备100相对于服务器200的画面渲染能力较弱,难以运行渲染要求较高程序(比如,3D渲染程序)。具体地,终端设备100可以是,但不限于但不限于智能手机、个人电脑(Personal Computer,PC)、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(MobileInternet Device,MID)等。
服务器200中运行有云渲染平台,云渲染平台可以利用服务器200的GPU(GraphicsProcessing Unit,图像处理器),运行各种渲染任务。云渲染平台具有画面渲染、编码等能力。
请参照图2,图2是本申请实施例提供的云渲染方法的流程示意图。该云渲染方法可以由图1中所示的云渲染平台来执行。应当理解的是,在其他实施例中,本申请实施例所描述的云渲染方法中的部分步骤的顺序可以根据实际需求进行交换,或者其中的部分步骤也可以省略或删除。下面对该云渲染方法的详尽步骤介绍如下。
步骤S210,终端设备将用于渲染画面的绘图指令及绘图指令对应的绘图参数存入无锁队列中。
在本申请实施例中,终端设备100响应用户触发的画面渲染请求,生成用于进行画面渲染的绘图指令及对应的绘图参数。终端设备100在截获到上述的绘图指令及绘图参数后,将绘图指令及绘图参数进行序列化处理,并将该绘图指令及绘图参数进行序列化处理后得到的数据存入到无锁队列中,序列化是指将对象的状态信息转换为可以存储或传输的形式的过程,即是在本申请实施例中将绘图指令及绘图参数转换为字节流的过程。将数据存入无锁队列中,可以确保在一个入队线程和一个出队线程的场景下,两个线程可以并发操作,而不需要任何加锁行为,就可以保证线程安全。即采用无锁队列存储数据,可以在保证数据存入和取出安全性的前提下,确保数据存储和取出的效率。
在本申请实施例中,渲染一画面需要多个绘图指令,每个绘图指令对应有用于完成该绘图指令任务的绘图参数,绘图参数包括纹理参数和色彩参数等。
将绘图指令及绘图参数存储到无锁队列中,而不是将截获的绘图指令及对应的绘图参数直接调用IO发送线程立即进行处理,比如,一画面的渲染需要1000条绘图指令,若每条绘图指令都调用一次IO发送线程,则需要调用1000次IO发送线程。若将序列化后的数据存入无锁队列中,在满足发送条件时再进行发送,多条绘图指令可以通过调用一次IO发送线程发送出去。如此,可以减少IO发送线程的调用次数,减少上下文切换次数。其中,一次上下文切换是指CPU(Central Processing Unit,中央处理器)保存上一次任务状态,加载下一任务的过程。
在本步骤中,以采用OpenGL(Open Graphics Library,开放图形库)进行画面渲染为例,终端设备100将截获的OpenGL绘图指令实例化为各种GLTask的子类(绘图指令及绘图参数),对GLTask进行序列化后,放入到无锁队列中。实例化是指在面向对象的编程中,用类创建对象的过程。
步骤S220,终端设备在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器。
在本申请实施例中,终端设备100会检测自身是否满足预设的信息发送条件。详细地,以采用OpenGL进行画面渲染为例进行说明,可以在检测到OpenGL的等待同步对象指令(wait)、刷新缓存区指令(flush)、同步API调用指令(get*)及渲染动作指令(draw*)等指令中的任意一个时,即可判定终端设备100满足预设的信息发送条件,在终端设备100满足预设的信息发送条件时,再将存储在无锁队列中的绘图指令及对应的绘图参数进行批量发送,可以减少调用IO发送线程的次数,节省终端设备100发送数据的耗时。
步骤S230,服务器在接收到绘图指令及绘图参数后,根据绘图指令及绘图参数进行画面渲染。
步骤S240,服务器在完成画面渲染后,将渲染后的画面进行编码并发送给终端设备。
步骤S250,终端设备接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
在上述方法中,先将截获的绘图指令及绘图参数存储在无锁队列中,在检测到满足预设的信息发送条件时,再将无锁队列中存储的绘图指令及绘图参数批量进行发送,减少调用IO线程进行数据发送的次数,即减少上下文切换的次数,以达到节省终端设备100发送数据的耗时,上述方法可以减少云渲染过程中终端设备100将绘图指令及绘图参数发送给服务器200所需的时间,从而减少整个云渲染过程的耗时,达到降低整个云渲染过程的延迟的目的。
进一步地,为了减少云渲染过程中服务器200对画面进行渲染的耗时。发明人发现,在采用终端设备100进行画面渲染时,为了防止在终端设备100上渲染的画面出现撕裂现象,会限制每秒的帧率(比如,每秒不超过60帧)。为了限制每秒的帧率,终端设备100会开启垂直同步(vsync)功能,在本申请实施例中,由于画面渲染动作由服务器200完成,而服务器200并不会显示该渲染的画面。
为了减少服务器200对画面进行渲染所需的时间,步骤S230可以通过以下方式实现:
关闭所述服务器200中的垂直同步功能,根据绘图指令及绘图参数进行画面渲染。
通过关闭垂直同步功能可以将渲染画面的帧率提高(比如,每秒200帧),如此即可以提高单位时间画面的渲染速度,减少每一画面渲染的耗时,降低整个云渲染过程的延迟。
服务器200接收终端设备100发送的字节流,将接收的字节流进行反序列化后得到绘图指令及绘图参数,并根据得到的绘图指令及绘图参数进行画面渲染,其中,反序列化是指从字节流创建对象的相反过程。在本申请实施例中,可以采用protobuf协议实现序列化和反序列化。
进一步地,为了减少服务器200对渲染后画面经压缩、编码所需的时间。发明人发现大多数窗口***为了避免画面撕裂和闪烁会使用双缓存区(例如,包括前端缓存区和后端缓存区)进行画面的缓存。屏幕显示的是前端缓存区中的画面,渲染发生在后端缓存区中,所以前端缓存区和后端缓存区中缓存的图像相差一帧,即人眼通过屏幕看到的画面是延迟的,在本申请实施例中,采用服务器200进行画面渲染,只有在交换缓存区时,才能判断画面是否渲染完成,在交换缓存区的动作完成前,后端缓存区中存储的画面为最新画面,在完成缓存区的交换动作后,前端缓存区上保存的画面为最新画面,进行编码的动作发生在交换缓存区之后,必须使用前端缓存区才能保证编码内容为最新的画面内容。
为了减少服务器200对渲染后画面经压缩、编码所需的时间,步骤S240可以通过以下方式实现:
首先,从服务器200显卡的前端缓存区中获得渲染后的画面;
接着,采用硬件加速的方式对渲染后的画面进行编码,并将编码后的画面发送给终端设备100。
通过从前端缓存区中拷贝画面,可以确保获取到最新的渲染画面。在编码时,采用硬件加速的方式直接将获取的渲染画面进行编码,得到H264或H265的码流。然后,将编码后的码流发送给终端设备100,硬件加速是计算机设备通过将计算量大的工作分配给专门的硬件来处理以减少中央处理器工作量的技术,通过硬件加速的方式可以通过中央处理器和图像处理器同时进行编码,节省编码耗时。为了确保编码过程不会阻塞服务器200的画面渲染过程,在本申请实施例中,采用独立的编码线程对渲染好的画面进行编码。编码线程可以通过同步机制与渲染画面的线程进行交互,确保画面渲染及编码的正常进行。
在本申请实施例中,服务器200在将编码后的码流发送给终端设备100的过程中,首先,将编码后的码流进行序列化处理,将序列化处理后得到的数据存入一发送队列;接着,根据服务器200与终端设备100之间的网络状态将发送队列中的数据发送给终端设备100。详细地,服务器200可以根据与终端设备100之间的网络状态动态调节数据传输速率,以避免在采用TCP(Transmission Control Protocol,传输控制协议)进行数据传输时,因网络状态不好导致的数据丢失。
进一步地,为了减少画面进行云渲染中将编码好的画面通过网络发送给终端设备100所需的时间和终端设备100解码画面所需的时间。在本申请实施例中,步骤S250可以通过以下方式实现:
首先,采用独立的IO接收线程接收编码后的画面。
终端设备100采用独立的IO接收线程服务器200发送的数据,将接收的数据进行反序列化处理得到编码后的图像。采用相对于IO发送线程独立的IO接收线程接收数据,可以减小数据发送与数据接收之间的相互影响,提高数据接收和发送的效率,减少数据接收和发送的耗时。
接着,采用硬件加速的方式对编码后的画面进行解码,并将解码后的画面进行显示。
采用硬件加速进行解码的方式与上面的编码方式类似,在此就不再赘述。
第二实施例
请参照图3,图3是本申请实施例提供的云渲染方法的流程示意图。该云渲染方法可以由图1中所示终端设备100来执行。应当理解的是,在其他实施例中,本申请实施例所描述的云渲染方法中的部分步骤的顺序可以根据实际需求进行交换,或者其中的部分步骤也可以省略或删除。下面对该云渲染方法的详尽步骤介绍如下。
步骤S310,将用于渲染画面的绘图指令及绘图指令对应的绘图参数存入无锁队列中。
在本申请实施例中,终端设备100响应用户触发的画面渲染请求,生成用于进行画面渲染的绘图指令及对应的绘图参数。终端设备100在截获到上述的绘图指令及绘图参数后,将绘图指令及绘图参数进行序列化处理,并将该绘图指令及绘图参数进行序列化处理后得到的数据存入到无锁队列中,序列化是指将对象的状态信息转换为可以存储或传输的形式的过程,即是在本申请实施例中将绘图指令及绘图参数转换为字节流的过程。将数据存入无锁队列中,可以确保在一个入队线程和一个出队线程的场景下,两个线程可以并发操作,而不需要任何加锁行为,就可以保证线程安全。即采用无锁队列存储数据,可以在保证数据存入和取出安全性的前提下,确保数据存储和取出的效率。
在本申请实施例中,渲染一画面需要多个绘图指令,每个绘图指令对应有用于完成该绘图指令任务的绘图参数,绘图参数包括纹理参数和色彩参数等。
将绘图指令及对应的绘图参数存储到无锁队列中,而不是将截获的绘图指令及对应的绘图参数直接调用IO发送线程立即进行处理,如此,可以减少IO发送线程的调用次数,即可以减少上下文切换次数。其中,一次上下文切换是指CPU(Central Processing Unit,中央处理器)保存上一次任务状态,加载下一任务的过程。
在本步骤中,以采用OpenGL(Open Graphics Library,开放图形库)进行画面渲染为例,终端设备100将截获的OpenGL绘图指令实例化为各种GLTask的子类(绘图指令及绘图参数),对GLTask进行序列化后,放入到无锁队列中。实例化是指在面向对象的编程中,用类创建对象的过程;序列化是指将对象的状态信息转换为可以存储或传输的形式的过程。
步骤S320,在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器,由所述服务器根据接收到的所述绘图指令及绘图参数进行画面渲染,在完成图像渲染后,将渲染后的画面进行编码,并将编码的画面发给所述终端设备。
在本申请实施例中,终端设备100会检测自身是否满足预设的信息发送条件。详细地,以采用OpenGL进行画面渲染为例进行说明,可以在检测到OpenGL的等待同步对象指令(wait)、刷新缓存区指令(Flush)、同步API调用指令(get*)及渲染动作指令(draw*)等指令中的任意一个时,即可判定终端设备100满足预设的信息发送条件,在终端设备100满足预设的信息发送条件时,再将存储在无锁队列中的绘图指令及对应的绘图参数进行批量发送,可以减少调用IO发送线程的次数,节省终端设备100发送数据的耗时。
步骤S330,接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
第三实施例
请参照图4,图4示出了本申请实施例提供的图1中终端设备100的方框结构示意图,终端设备100可以包括存储介质110、处理器120以及云渲染装置130。本实施例中,存储介质110与处理器120均位于终端设备100中且二者分离设置。然而,应当理解的是,存储介质110也可以是独立于终端设备100之外,且可以由处理器120通过总线接口来访问。可替换地,存储介质110也可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
云渲染装置130可以理解为上述终端设备100,或终端设备100的处理器120,也可以理解为独立于上述终端设备100或处理器120之外的在终端设备100控制下实现上述云渲染方法的软件功能模块。如图4所示,该云渲染装置130可以包括存入模块1301、发送模块1302以及接收模块1303,下面分别对该云渲染装置130的各个功能模块的功能进行详细阐述。
存入模块1301,用于将用于渲染画面的绘图指令及绘图指令对应的绘图参数存入无锁队列中,其中,渲染一画面需要多条绘图指令。可以理解的是,该存入模块1301可以用于执行上述步骤S310,关于该存入模块1301的详细实现方式可以参照上述对步骤S310有关的内容。
发送模块1302,用于在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器,由服务器根据接收到的所述绘图指令及绘图参数进行画面渲染,在完成图像渲染后,将渲染后的画面进行编码,并将编码的画面发给所述终端设备。可以理解的是,该发送模块1302可以用于执行上述步骤S320,关于该发送模块1302的详细实现方式可以参照上述对步骤S320有关的内容。
接收模块1303,用于接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。可以理解的是,该接收模块1303可以用于执行上述步骤S330,关于该接收模块1303的详细实现方式可以参照上述对步骤S330有关的内容。
本申请实施例还提供了一种可读存储介质,所述可读存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的域名解析方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的方法和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种云渲染方法,其特征在于,应用于包括终端设备及服务器的云渲染***,所述方法包括:
所述终端设备将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中,其中,渲染一画面需要多条绘图指令;
在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器;
所述服务器在接收到所述绘图指令及绘图参数后,根据所述绘图指令及绘图参数进行画面渲染;
所述服务器在完成画面渲染后,将渲染后的画面进行编码并发送给所述终端设备;
所述终端设备接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
2.如权利要求1所述的方法,其特征在于,所述终端设备将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中,包括:
所述终端设备将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数进行序列化处理,并将所述绘图指令及绘图参数进行序列化处理得到的数据存入无锁队列中。
3.如权利要求1所述的方法,其特征在于,所述终端设备接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示,包括:
采用独立的IO接收线程接收所述编码后的画面;
采用硬件加速的方式对编码后的画面进行解码,并将解码后的画面进行显示。
4.如权利要求3所述的方法,其特征在于,所述采用独立的IO接收线程接收所述编码后的画面,包括:
所述终端设备通过独立的IO接收线程接收所述服务器对编码后的画面进行序列化处理得到的数据,将接收的数据经过反序列化处理得到编码后的图像。
5.如权利要求1-4中任意一项所述的方法,其特征在于,所述服务器在接收到所述绘图指令及绘图参数后,根据所述绘图指令及绘图参数进行画面渲染,包括:
关闭所述服务器的垂直同步功能,将所述终端设备发送的数据进行反序列化后得到所述绘图指令及绘图参数,并根据所述绘图指令及绘图参数进行画面渲染。
6.如权利要求5所述的方法,其特征在于,所述服务器在完成画面渲染后,将渲染后的画面进行编码并发送给所述终端设备,包括:
从所述服务器显卡的前端缓存区中获得渲染后的画面;
采用硬件加速的方式对所述渲染后的画面进行编码,将编码后的画面进行序列化处理后得到的数据存入发送队列,并根据所述服务器与所述终端设备之间的网络状态将发送队列中存入的数据发送给所述终端设备。
7.如权利要求5所述的方法,其特征在于,在所述终端设备将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中之前,所述方法还包括:
响应用户触发的画面渲染请求,截获用于渲染画面的绘图指令及所述绘图指令对应的绘图参数。
8.如权利要求5所述的方法,其特征在于,所述方法还包括:
在检测到开放图形库的等待同步对象指令、刷新缓存区指令、同步API调用指令及渲染动作指令中的至少一个时,判定满足预设的信息发送条件。
9.一种云渲染方法,其特征在于,应用于云渲染***中与服务器通信的终端设备,所述方法包括:
将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中,其中,渲染一画面需要多条绘图指令;
在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器,由所述服务器根据接收到的所述绘图指令及绘图参数进行画面渲染,在完成图像渲染后,将渲染后的画面进行编码,并将编码的画面发给所述终端设备;
接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
10.一种云渲染装置,其特征在于,应用于云渲染***中的终端设备,所述云渲染***还包括服务器,所述装置包括:
存入模块,用于将用于渲染画面的绘图指令及所述绘图指令对应的绘图参数存入无锁队列中,其中,渲染一画面需要多条绘图指令;
发送模块,用于在检测到满足预设的信息发送条件时,将存入无锁队列的绘图指令及绘图参数发送给服务器,由所述服务器根据接收到的所述绘图指令及绘图参数进行画面渲染,在完成图像渲染后,将渲染后的画面进行编码,并将编码的画面发给所述终端设备;
接收模块,用于接收编码后的画面,对接收的画面进行解码,并将解码后的画面进行显示。
11.一种终端设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当终端设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求9中所述的云渲染方法的步骤。
12.一种可读存储介质,其特征在于,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求9所述的云渲染方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910700981.3A CN112330783A (zh) | 2019-07-31 | 2019-07-31 | 云渲染方法、装置、终端设备及可读存储介质 |
PCT/CN2020/099053 WO2021000843A1 (zh) | 2019-07-04 | 2020-06-29 | 一种直播数据处理方法、***、电子设备及存储介质 |
US17/566,790 US20220210484A1 (en) | 2019-07-04 | 2021-12-31 | Method for processing live broadcast data, system, electronic device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910700981.3A CN112330783A (zh) | 2019-07-31 | 2019-07-31 | 云渲染方法、装置、终端设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112330783A true CN112330783A (zh) | 2021-02-05 |
Family
ID=74319569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910700981.3A Pending CN112330783A (zh) | 2019-07-04 | 2019-07-31 | 云渲染方法、装置、终端设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112330783A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114581580A (zh) * | 2022-02-28 | 2022-06-03 | 维塔科技(北京)有限公司 | 渲染图像的方法、装置、存储介质及电子设备 |
CN115361579A (zh) * | 2022-07-28 | 2022-11-18 | 珠海全志科技股份有限公司 | 视频送显方法、装置、电子设备及存储介质 |
CN117689785A (zh) * | 2023-06-30 | 2024-03-12 | 荣耀终端有限公司 | 渲染方法、电子设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729602A (zh) * | 2009-12-11 | 2010-06-09 | 北京工业大学 | 一种获取p2p视频***节目信息的方法 |
CN103399729A (zh) * | 2013-06-28 | 2013-11-20 | 广州市动景计算机科技有限公司 | 一种HTML5 Canvas应用处理方法、装置及处理器 |
CN105741227A (zh) * | 2016-01-26 | 2016-07-06 | 网易(杭州)网络有限公司 | 渲染方法和装置 |
CN106709856A (zh) * | 2016-11-11 | 2017-05-24 | 广州华多网络科技有限公司 | 一种图形渲染方法及相关设备 |
CN108377229A (zh) * | 2018-01-23 | 2018-08-07 | 广州视源电子科技股份有限公司 | 数据处理方法、发送终端、服务器及接收终端 |
CN109343837A (zh) * | 2018-09-12 | 2019-02-15 | Oppo广东移动通信有限公司 | 游戏渲染方法及相关设备 |
CN109919827A (zh) * | 2019-02-22 | 2019-06-21 | 搜游网络科技(北京)有限公司 | 一种图形绘制方法、装置及计算机可读介质、设备 |
-
2019
- 2019-07-31 CN CN201910700981.3A patent/CN112330783A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729602A (zh) * | 2009-12-11 | 2010-06-09 | 北京工业大学 | 一种获取p2p视频***节目信息的方法 |
CN103399729A (zh) * | 2013-06-28 | 2013-11-20 | 广州市动景计算机科技有限公司 | 一种HTML5 Canvas应用处理方法、装置及处理器 |
CN105741227A (zh) * | 2016-01-26 | 2016-07-06 | 网易(杭州)网络有限公司 | 渲染方法和装置 |
CN106709856A (zh) * | 2016-11-11 | 2017-05-24 | 广州华多网络科技有限公司 | 一种图形渲染方法及相关设备 |
CN108377229A (zh) * | 2018-01-23 | 2018-08-07 | 广州视源电子科技股份有限公司 | 数据处理方法、发送终端、服务器及接收终端 |
CN109343837A (zh) * | 2018-09-12 | 2019-02-15 | Oppo广东移动通信有限公司 | 游戏渲染方法及相关设备 |
CN109919827A (zh) * | 2019-02-22 | 2019-06-21 | 搜游网络科技(北京)有限公司 | 一种图形绘制方法、装置及计算机可读介质、设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114581580A (zh) * | 2022-02-28 | 2022-06-03 | 维塔科技(北京)有限公司 | 渲染图像的方法、装置、存储介质及电子设备 |
CN115361579A (zh) * | 2022-07-28 | 2022-11-18 | 珠海全志科技股份有限公司 | 视频送显方法、装置、电子设备及存储介质 |
CN117689785A (zh) * | 2023-06-30 | 2024-03-12 | 荣耀终端有限公司 | 渲染方法、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10110662B2 (en) | Method and apparatus for sending data in VDI environment | |
CN103688240B (zh) | 用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备 | |
KR102154456B1 (ko) | 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용 | |
CN110377263B (zh) | 图像合成方法、装置、电子设备及存储介质 | |
CN112330783A (zh) | 云渲染方法、装置、终端设备及可读存储介质 | |
CN107729095B (zh) | 图像处理方法、虚拟化平台及计算机可读存储介质 | |
CN111432262B (zh) | 页面视频渲染方法及装置 | |
CN112843676B (zh) | 数据处理方法、装置、终端、服务器及存储介质 | |
CN109992347B (zh) | 界面显示方法、装置、终端及存储介质 | |
US20220210484A1 (en) | Method for processing live broadcast data, system, electronic device, and storage medium | |
CN113655975B (zh) | 图像显示方法、装置、电子设备和介质 | |
CN116821040B (zh) | 基于gpu直接存储器访问的显示加速方法、装置及介质 | |
WO2016073137A1 (en) | Systems and methods for performing display mirroring | |
US20120218292A1 (en) | System and method for multistage optimized jpeg output | |
CN109587555B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN109587561B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN115409681A (zh) | 一种渲染方法及相关装置 | |
CN113411660A (zh) | 视频数据的处理方法、装置和电子设备 | |
CN112565869A (zh) | 一种视频重定向的窗口融合方法、装置及设备 | |
CN116866658A (zh) | 视频数据的处理方法、装置、设备和介质 | |
CN115460419A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
US20220261945A1 (en) | Data processing system, data processing method, and computer program | |
CN112370776A (zh) | 通过动态限帧提升云游戏流畅度的方法、装置及介质 | |
CN113961484A (zh) | 数据的传输方法、装置、电子设备以及存储介质 | |
CN113038276A (zh) | 视频播放方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |