GUI渲染显示的方法、终端、服务器、电子设备及存储介质与流程

文档序号:24560266发布日期:2021-04-06 12:09阅读:153来源:国知局
GUI渲染显示的方法、终端、服务器、电子设备及存储介质与流程

本申请涉及软件技术领域,具体而言,本申请涉及一种gui渲染显示的方法、终端、服务器、电子设备及存储介质。



背景技术:

随着云技术、虚拟化和互联网技术的发展,以云桌面为代表的虚拟化桌面得到广泛应用。云桌面(虚拟桌面)基础架构(vdi,virtualdesktopinfrastructure)一般是通过数据中心的服务器运行操作系统,将用户的桌面进行虚拟化。用户通过来自客户端设备(客户机或是家用pc)的客户计算协议与虚拟桌面进行连接,用户访问他们的桌面就像是访问传统的本地安装桌面一样。

随着硬件技术发展及vr、ar云渲染、云游戏的广泛应用,用户终端硬件性能得到普遍提升,终端如何参与端、云gui(采用图形方式显示的计算机操作用户界面)协同渲染,实现充分发挥云端和终端的硬件性,提供高性能端、云gui协同渲染显示能力,成为一个需要解决的问题。

目前,为了提供高性能端、云gui协同渲染显示主要采用的方法有如:云端进行渲染,直接将结果映射给虚拟机,然后通过客户端直接显示;这种方式需要云端采用高性能处理装置,并且容易加重云端负荷,影响处理速率,另一种采用端、云分布式参与整个gui渲染流程,然后通过客户端显示,这种方式主要是使端、云共同渲染处理同一图像,虽然提高了图像处理速率,但是使端、云交互时,容易相互影响,不能够充分发挥端、云的硬件能力,还会影响用户体验。



技术实现要素:

本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的gui渲染显示方法、终端、服务器、电子设备及存储介质。

第一方面,提供了一种gui渲染显示的方法,应用于服务器,该方法包括:

接收终端发送的交互操作信息;

根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳,并构成渲染指令序列;时间戳用于表示帧图像对应屏幕刷新周期的发起时间;

获取终端和服务器处理帧图像的图形处理能力数据,以从渲染指令序列中确定第一渲染指令和第二渲染指令,第一渲染指令为由服务器执行的渲染指令,第二渲染指令为由终端执行的渲染指令;

将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳发送至终端,以使得终端根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像;

根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像,向终端发送渲染后的第一帧图像和对应的时间戳,以使得终端根据渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

进一步地,根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳,包括:

根据终端发送的交互操作信息,更新并处理待渲染的帧图像和待渲染的帧图像中的渲染节点;

对待渲染的帧图像,根据待渲染的帧图像和待渲染的帧图像中的渲染节点,确定待渲染帧图像对应的渲染指令,并将待渲染的帧图像所对应屏幕更新周期的发起时间作为对应待渲染的帧图像的时间戳。

进一步地,向终端发送渲染后的第一帧图像和对应的时间戳,之后还包括:

根据渲染后的第一帧图像对应的时间戳,对渲染后的第一帧图像进行标识,将标识后的第一帧图像发送至终端。

第二方面,提供了一种gui渲染显示的方法,应用于终端,方法包括:

将交互操作信息发送至服务器,以使得服务器根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳以及由服务器渲染后的第一帧图像,将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳发送至终端;

接收服务器发送的第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳,根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像;

接收服务器发送的渲染后的第一帧图像和对应的时间戳,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

进一步地,根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像,之后还包括:

根据渲染后的第二帧图像对应的时间戳,对渲染后的第二帧图像进行标识,得到标识后的第二帧图像。

进一步地,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果,包括:

对第一帧图像和第二帧图像,确定第一帧图像和第二帧图像中待显示的帧图像;

获取当前时刻,根据待显示的帧图像对应的时间戳和当前时刻,确定待显示的帧图像的时间间隔;

若待显示的帧图像的时间间隔小于或等于预设阈值,则保留待显示的帧图像,并将待显示的帧图像作为待显示的gui渲染结果;

若待显示的帧图像的时间间隔大于预设阈值,则清除待显示的帧图像。

第三方面,提供了一种服务器,包括:

第一接收模块,用于接收终端发送的交互操作信息;

第一处理模块,用于根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳,并构成渲染指令序列;时间戳用于表示帧图像的渲染指令所对应屏幕更新周期的发起时间;

第二处理模块,用于获取终端和服务器处理帧图像的图形处理能力数据,以从渲染指令序列中确定第一渲染指令和第二渲染指令,第一渲染指令为由服务器执行的渲染指令,第二渲染指令为由终端指向的渲染指令;

第二发送模块,用于将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳发送至终端,以使得终端根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像;

第三处理模块,用于根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像,向终端发送渲染后的第一帧图像和对应的时间戳,以使得终端根据渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

第四方面,提供了一种终端,包括:

第一发送模块,用于将交互操作信息发送至服务器,以使得服务器根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳以及由服务器渲染后的第一帧图像,将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳发送至终端;

第二接收模块,用于接收服务器发送的第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳,根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像;

第三接收模块,用于接收服务器发送的渲染后的第一帧图像和对应的时间戳,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

第五方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面或者第二方面所提供的方法的步骤。

第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或者第二方面所提供的方法的步骤。

本发明实施例提供的gui渲染显示的方法、终端、服务器、电子设备及存储介质,本方案通过接收终端发送的交互操作信息,根据交互操作信息更新每一帧帧图像的渲染指令和对应屏幕更新周期的的时间戳,服务器和终端分别单独根据渲染指令对待渲染的帧图像进行渲染,得到已渲染的帧图像,服务器将已渲染的帧图像发送至终端,终端接收服务器发送的已渲染的帧图像,结合终端已渲染的帧图像,共同用于系统gui的显示。本方案将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现时序差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种gui渲染显示的方法的应用环境的示意图;

图2为本申请实施例提供的一种gui渲染显示的方法的流程示意图;

图3为本申请实施例提供的一种帧图像渲染示意图;

图4为本申请实施例提供的一种帧图像组合示意图;

图5为本申请实施例的终端与服务器进行gui渲染显示的交互示意图;

图6为本申请实施例提供的另一种gui渲染显示的方法的流程示意图;

图7为本申请实施例提供的一种服务器的结构示意图;

图8为本申请实施例提供的一种终端的结构示意图;

图9为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本申请提供的一种gui渲染显示方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在对本申请所示的各个实施例进行说明之前,首先对本申请涉及到的几个概念进行介绍:

1)gui(graphicaluserinterface,图形用户界面,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面,一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。

2)gpu(graphicsprocessingunit,图形处理器)又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。

3)cpu(centralprocessingunit,中央处理器)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。

首先,本申请实施例可应用在gui渲染显示的应用场景中,例如:云桌面、vr、ar云渲染、云游戏等,一般通过数据中心的服务器运行操作系统,将用户的桌面进行虚拟化,用户通过来自客户端设备(客户机或是家用pc)的客户计算协议与虚拟桌面进行连接,用户访问他们的桌面就像是访问传统的本地安装桌面一样。

应理解,本申请提供的gui渲染显示的方法可以应用于任何由具有gui图形系统的计算机和服务器组成的系统中,参考图1,图1为本申请实施例提供的一种gui渲染显示的方法的应用环境的示意图,以终端、服务器共同执行gui渲染显示的方法为例。本申请实施例提供的gui渲染显示的方法包括终端10、服务器11等;终端10可以包括手机、平板电脑、笔记本电脑、或个人计算机(pc,personalcomputer)等,服务器11可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端10与服务器11之间通过网络连接,比如,通过有线或无线网络连接等。本申请实施例本方案通过采用时间戳和帧缓冲池技术,在终端10和服务器11两侧分别采用帧缓冲技术,终端10和服务器11协同渲染图形绘制指令,完成完整的gui绘制工作,生成帧图像并存储在终10端和服务器11的本地帧缓冲池中,并附加时间戳信息标记,服务器11依据时间戳发送服务器11中最新的渲染帧图像到终端10;终端10接收服务器11发送的最新帧图像,依据时间戳与本地最新的帧图像进行比较,选取最新的帧图像在终端10进行显示。本申请将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

为了解决上述问题,本申请实施例提供了一种gui渲染显示的方法。下面结合附图,通过具体的实施例及其他应用场景对本申请实施例提供的gui渲染显示的方法进行详细地说明,图2为本实施例提供的一种gui渲染显示的方法的流程示意图,如图2所示,该方法包括:

s202、接收终端发送的交互操作信息。

具体的,接收终端发送的交互操作信息,这些交互操作信息包括鼠标的移动、键盘的输入、应用程序的执行逻辑、菜单指令以及窗口的切换等。

本申请实施例的服务器接收终端发送的交操作信息,为实现后续帧图像渲染和选择符合要求的帧图像奠定基础。

s203、根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳,并构成渲染指令序列。

本申请实施例在接收终端发送的交互操作信息后,需要根据交互操作信息确定每一帧帧图像的渲染指令,比如:终端用户进行交互操作时(移动鼠标、键盘输入等),服务器的操作系统或是服务器的相关应用就会利用类似于响应事件的函数,通过函数确定每一帧图像的渲染指令,渲染指令是系统内部的各函数根据程序逻辑响应外部的输入产生的。还存在终端没有输入,用户在终端没有进行交互操作(没有进行键盘、鼠标等操作),服务器也需要更新待渲染的每帧帧图像,进行刷新,更新待渲染的每帧帧图像对应的渲染指令和时间戳,再根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像。

本申请实施例的服务器通过更新待渲染的每帧帧图像对应的渲染指令和时间戳,为实现后续帧图像渲染和选择符合要求的帧图像奠定基础。

s204、获取终端和服务器处理帧图像的图形处理能力数据,以从渲染指令序列中确定第一渲染指令和第二渲染指令,第一渲染指令为由服务器执行的渲染指令,第二渲染指令为由终端执行的渲染指令。

本申请实施例需要获取终端和服务器处理帧图像的图形处理能力数据,根据数据分析,确定分配给终端和服务器的渲染任务,第一渲染指令为由服务器执行的渲染指令,第二渲染指令为由终端执行的渲染指令,应当理解的是,服务器需要获取终端处理帧图像的能力,比如拥有的gpu的个数、型号以及用测试软件评分得到的性能评估等,根据终端和服务器之间的性能对应分配渲染任务,即对应分配帧图像序列中由服务器渲染的一部分帧图像,比如一共有10个处理任务,服务器的硬件能力比较好,能够处理7个任务,剩下的3个任务就分配给终端进行处理,这样可以提高处理速度,还能充分利用终端和服务器的硬件资源。

本申请实施例通过获取服务器和终端的性能数据,根据性能数据分配待渲染的帧图像,能够使终端和服务器独立处理帧图像,提高了帧图像处理速度,还能充分利用终端和服务器的硬件资源。

s205、将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳发送至终端,以使得终端根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像。

本申请实施例中由服务器根据终端和服务器的图像处理性能数据分配的渲染任务,由终端处理第二部分任务,将终端的渲染任务发送给终端,即第二渲染指令、第二渲染指令对应的待渲染帧图像和对应的时间戳,使终端能够根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像,确保能够渲染需要的帧图像。

本申请实施例将第二渲染指令、第二渲染指令对应的待渲染帧图像和对应的时间戳发送给终端,使终端能够渲染出帧图像,能够充分利用终端的硬件资源,提升整体效率。

s206、根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像,向终端发送渲染后的第一帧图像和对应的时间戳,以使得终端根据渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

本申请实施例中由服务器根据终端和服务器的图像处理性能数据分配的渲染任务,由服务器处理第一渲染任务,即第一渲染指令、第一渲染指令对应的待渲染帧图像和待渲染帧图像对应的时间戳,服务器根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像,然后再将渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

本申请实施例提供的gui渲染显示的方法,通过接收终端发送的交互操作信息,根据交互操作信息更新每一帧帧图像的渲染指令和对应屏幕更新周期的时间戳,服务器和终端分别单独根据渲染指令对帧图像进行渲染,得到已渲染的帧图像,服务器将已渲染的帧图像发送至终端,终端接收服务器发送的帧图像,结合终端已渲染的帧图像,依据时间戳选取最优的帧图像在终端进行显示,本方案将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现时序差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

在上述各实施例的基础上,作为一种可选实施例,根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳,包括:

根据终端发送的交互操作信息,更新并处理待渲染的帧图像和待渲染的帧图像中的渲染节点;

对待渲染的帧图像,根据待渲染的帧图像和待渲染的帧图像中的渲染节点,确定待渲染帧图像对应的渲染指令,并将待渲染的帧图像所对应屏幕更新周期的发起时间,作为对应待渲染的帧图像的时间戳。

本申请实施例服务器在接收终端发送的交换操作信息后,服务器根据交互操作信息,生成完整动作的所有帧图像,根据动作的变化,确定每一帧帧图像相互之间变化的区域,根据变换的区域的纹理、坐标、透明度以及颜色,确定需要渲染的地方,生成渲染指令,同时记录帧图像变换的区域转换为各种渲染参数的时刻,这个时刻就是待渲染的帧图像响应屏幕更新周期的发起时间,将这个时刻作为这个帧图像的时间戳,比如:终端用户进行交互操作时(移动鼠标、键盘输入等),会使远程桌面发生变化,则服务器的操作系统或是服务器的相关应用就会利用类似于响应事件的函数,通过函数确定每一帧图像的渲染指令,渲染指令是系统内部的各函数根据程序逻辑响应外部的输入产生的。远程桌面一般包括多个显示界面(窗口);每个窗口有对应多个surface(窗口框架,标题栏,菜单栏,状态栏,内容视图);每个surface可能又包括渲染节点(字符、图元、纹理);渲染指令都是对应到渲染节点的,根据窗口的位置、属性(是否有其他窗口遮盖,窗口是否有透明度),检测每次发生变化的区域,确定要渲染的区域,(如果被遮住,就不需要绘制),然后将要渲染的区域通过cpu处理,得到渲染指令,这个渲染指令包括具体的渲染参数(纹理、透明度、颜色等)。

图3为本申请实施例提供的一种帧图像渲染示意图,如图3所示,图中1部分表示帧图像未发生变换的区域,2部分表示帧图像发生变换的区域,本申请实施例在接收终端发送的交互操作信息后,需要更新每一帧帧图像的渲染指令和时间戳,首先,可以根据每一帧帧图像的排列位置,可以确定每一帧帧图像的时间顺序,即确定了帧图像由哪里开始,到哪里结束,再对比每一帧帧图像,可以确定每一帧帧图像变换的区域,比如鼠标的移动,以每一帧帧图像的左下角建立坐标轴,可以发现每一帧帧图像中鼠标的位置坐标都发生了变化,根据坐标位置的变化,可以确定每一帧图像中变换的区域,将每一帧帧图像变换的区域通过cpu转换,转换成每一帧帧图像的渲染参数,这些渲染参数包括颜色、纹理、透明度以及坐标等,比如鼠标变换的区域,颜色没变,纹理没变,透明度没变,则可以根据位置的变换,转换为坐标参数,帧图像的渲染参数对应帧图像的渲染指令。其中,为了节省资源,提高渲染的速率,只将每一帧帧图像中变换的区域转换为渲染参数,保留每一帧帧图像中未发生变换的区域,以便后续渲染出变换区域时,直接复用未发生变换的区域,节省时间。同时记录每一帧帧图像变换区域转换成渲染指令的时刻,将这个时刻作为每一帧帧图像的时间戳,这个时间戳是后续用于确定每一帧帧图像的间隔时间不可缺失的一部分。

本申请实施例接收待终端发送的交互操作信息后,确定待渲染的每帧帧图像对应的渲染指令和时间戳,其中设置时间戳是为了确保后续步骤的可行性以及帧图像的时序,避免出现乱序。

在上述确定了每一帧帧图像的渲染指令后,根据渲染指令渲染渲染指令对应的待渲染帧图像,获得渲染后的帧图像,包括:

对于一部分帧图像中任意一帧帧图像,将任意一帧帧图像对应的渲染参数进行渲染处理,得到任意一帧帧图像的已渲染的变换区域;

将任意一帧帧图像的已渲染的变换区域与任意一帧帧图像中未发生变换的区域组合,得到已渲染的任意一帧帧图像。

图4为本申请实施例提供的一种帧图像组合示意图,如图4所示,图中1部分表示帧图像未发生变换的区域,2部分表示帧图像已渲染的变换区域,将1和2两部分组合成已渲染的帧图像,本申请实施例根据每一帧帧图像的渲染指令,对待渲染的帧图像进行渲染处理,得到每一帧帧图像的已渲染的变换区域,将已渲染的变换区域与未发生变换的区域进行组合,得到完成的已渲染的帧图像,比如:根据鼠标位置坐标参数渲染出帧图像,这个帧图像只有一部分,这部分就是鼠标位置变换的区域,将这部分变换的区域和未发生变换的区域进行组合,构成一帧完整的帧图像。

本申请实时例根据渲染指令渲染对应的待渲染帧图像,渲染出每一帧帧图像发生变换的区域,再将已渲染的变换的区域与未发生变换的区域进行组合构成已渲染的帧图像,能够节省渲染时间和减少消耗系统资源,提高了渲染速度。

在上述各实施例的基础上,作为一种可选实施例,向终端发送渲染后的第一帧图像和对应的时间戳,之后还包括:

根据渲染后的第一帧图像对应的时间戳,对渲染后的第一帧图像进行标识,将标识后的第一帧图像发送至终端。

本申请实施例在完成帧图像渲染后,需要用帧图像对应的时间戳对应标识渲染后的帧图像,通过时间戳可以清楚知道渲染后的帧图像的顺序,便于根据时间戳确定帧图像的显示时间,以及选择最优的帧图像,为后续gui渲染显示奠定基础。

图5为本申请实施例的终端与服务器进行gui渲染显示的交互示意图;如图5所示,终端将交互操作信息发送至服务器,服务器接收交互操作信息,确定待渲染的每帧帧图像对应的渲染指令和时间戳,并构成渲染指令序列,获取终端和服务器处理帧图像的图形处理能力数据,从渲染指令序列中确定第一渲染指令和第二渲染指令,将第二渲染指令、第二渲染指令对应的待渲染帧图像和待渲染帧图像对应的时间戳发送至终端,然后服务器根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像,并向终端发送渲染后的第一帧图像和对应的时间戳,终端接收服务器发送的第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令的时间戳,根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像,并接收服务器发送的渲染后的第一帧图像和对应的时间戳,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

本申请还提供一种gui渲染显示的方法,应用于终端,图6为本实施例提供的另一种gui渲染显示的方法的流程示意图,如图6所示,该方法包括:

s201、将交互操作信息发送至服务器,以使得服务器根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳以及由服务器渲染后的第一帧图像,将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳发送至终端。

本申请实施例终端将交互操作信息发送至服务器后,具体地,终端根据用户对界面的操作,将用户具体的交互操作信息发送给服务器,使得服务器根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳,再根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像,比如,用户在终端移动了鼠标,终端则将这个鼠标移动的信息发送至服务器,由服务器根据这个鼠标移动的整个过程确定生成鼠标移动对应的每一帧帧图像的渲染指令,根据渲染指令对帧图像进行渲染,得到渲染后的帧图像,再将渲染后的帧图像发送至终端,由终端显示。还存在用户在终端没有进行交互操作,则终端不发送交互操作信息,但是这时候gui也还是要刷新的,还是会更新待渲染的每帧帧图像对应的渲染指令和时间戳,再根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像。

本申请实施例由终端记录用户的交互操作,并将交互操作信息发送至服务器,由服务器生成每一帧帧图像的渲染指令和时间戳,为后续实现gui渲染显示奠定基础。

s207、接收服务器发送的第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳,根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像。

本申请实施例中服务器根据终端和服务器各自处理图像的性能,为终端分配第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令的时间戳,根据服务器发送的第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令的时间戳,对第二渲染指令对应的待渲染帧图像进行渲染,得到第二帧图像,其中具体的渲染方法过程是,通过第二渲染指令对待渲染帧的图像进行渲染,得到待渲染的帧图像变换的区域,将帧图像变换的区域和帧图像未发生变换的区域组合成完整的已渲染的帧图像,将这些帧图像存入预设的缓冲池中,用来缓存这些帧图像,避免出现帧图像的遗失。

s208、接收服务器发送的渲染后的第一帧图像和对应的时间戳,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

本申请实施例在服务器发送的渲染后的第一帧图像和对应的时间戳,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,需要根据时间戳确定待显示的gui渲染结果,具体的,在显示帧图像时,需要获取当前时刻,根据当前时刻和这个帧图像的时间戳,得到这个帧图像的间隔时间,根据间隔时间的大小进行判定,确定符合时间要求的帧图像,其中不符合的帧图像需要删除,将符合时间戳的帧图像根据时间戳顺序进行显示。

本申请实施例提供的gui渲染显示的方法,通过发送交互操作信息,使服务器根据交互操作信息更新每一帧帧图像的渲染指令和对应的时间戳,服务器和终端分别单独根据渲染指令对待渲染的帧图像进行渲染,得到已渲染的帧图像,服务器将已渲染的帧图像发送至终端,终端接收服务器发送的已渲染的帧图像,结合终端已渲染的帧图像,共同用于系统gui的显示,本方案将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

在上述各实施例的基础上,作为一种可选实施例,根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像,之后还包括:

根据渲染后的第二帧图像对应的时间戳,对渲染后的第二帧图像进行标识,得到标识后的第二帧图像。

本申请实施例在完成帧图像渲染后,需要用帧图像对应的时间戳对应标识渲染后的帧图像,通过时间戳可以清楚知道渲染后的帧图像的顺序,便于根据时间戳确定帧图像的显示时间,以及选择最优的帧图像,为后续gui渲染显示奠定基础。

在上述各实施例的基础上,作为一种可选实施例,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果,包括:

对第一帧图像和第二帧图像,确定第一帧图像和第二帧图像中待显示的帧图像;

获取当前时刻,根据待显示的帧图像对应的时间戳和当前时刻,确定待显示的帧图像的时间间隔;

若待显示的帧图像的时间间隔小于或等于预设阈值,则保留待显示的帧图像,并将待显示的帧图像作为待显示的gui渲染结果;

若待显示的帧图像的时间间隔大于预设阈值,则清除待显示的帧图像。

本申请实施例在接收第一、第二帧图像后,需要确定待显示的帧图像,获取当前时刻,根据当前时刻和待显示的帧图像的时间戳,可以确定任意一帧帧图像的时间间隔,再将任意一帧帧图像的时间间隔与预设的时间间隔进行比较,如果时间间隔小于或等于预设间隔,则该任意一帧帧图像符合要求,发送至终端,若时间间隔大于预设间隔,则将该任意一帧帧图像删除,清除缓冲池缓存,避免占用资源,影响其他帧图像,例如:有3个可用的帧图像,在时序上分别为x1、x2、x3,三个帧图像离的时间间隔分别为t1、t2、t3,如果时间间隔太久,就会导致图像显示出现滞后,不连贯,影响体验,假如图像显示是60帧/秒,则每帧时间间隔应该在16.6666ms左右,假如可以容忍帧图像之间可以有2帧的延迟,那么就可以考虑选取在时间间隔49ms附近的帧图像作为符合要求的帧图像。假设x1的间隔t1=52ms,x2的间隔t2=46ms,x3的间隔t3=16ms,那么为了在单位时间内显示更多的帧,同时为了显示更平滑可以用x3作为最优的帧图像,保留x3,其中x2也符合预设时间间隔,也保留x2,将x2作为备用帧图像进行保留,为了避免在x3出现问题或是遗失时,没有帧图像可以显示,出现滞空的情况,x1的时间间隔大于预设间隔,不符合要求,将x1清除,释放缓冲池中x1占据的内存资源,同时可以提供给其他帧图像,合理利用资源。

具体的,服务器完成帧图像1和帧图像2,发送给终端,写入等待的可用帧图像队列里;这个时候可能因为网络原因,只能保证(在只用一个网卡发送的情况下)帧图像1和帧图像2可以插入终端可用帧队列的顺序,这时不能确定终端此时帧图像3的情况,如果没有渲染完成,那么终端可用帧队列里只有帧图像1和帧图像2;否则就会出现可用帧队列顺序是多种可能的,序列可能是:帧图像3(网络忙,服务器帧图像1、2没有传过来)或是帧图像1、帧图像3(服务器帧图像2还没有传输到终端)或是帧图像3、帧图像1或是帧图像1、帧图像2、帧图像3或是帧图像1、帧图像3、帧图像2或是帧图像3、帧图像2、帧图像1等情况,这个时候终端需要根据帧图像的时间戳来拿出一个最优的帧图像来显示,如果选择3来刷新屏幕,那么1、2就会被放弃;

还有一种可能情况是,服务器的gpu和网络性能太好了,服务器帧图像4都已经到达终端,那么可能终端正在渲染的帧图像3任务(终端gpu性能太弱了)就会被放弃,直接采用帧图像4刷新屏幕,

本申请实施例根据待显示任意一帧帧图像时间戳和当前时刻,确定符合预设要求的帧图像,能够提高帧图像的显示质量,确保整个显示的流畅,提升整体的工作效率。

本申请实施例提供了一种服务器,如图7所示,服务器可以包括:第一接收模块302、第一处理模块303、第二处理模块304、第二发送模块305以及第三处理模块306,具体地:

第一接收模块302,用于接收终端发送的交互操作信息。

第一处理模块303,用于根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳,并构成渲染指令序列;时间戳用于表示帧图像的渲染指令所对应屏幕更新周期的发起时间。

第二处理模块304,用于获取终端和服务器处理帧图像的图形处理能力数据,以从渲染指令序列中确定第一渲染指令和第二渲染指令,第一渲染指令为由服务器执行的渲染指令,第二渲染指令为由终端指向的渲染指令。

第二发送模块305,用于将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳发送至终端,以使得终端根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像。

第三处理模块306,用于根据第一渲染指令渲染第一渲染指令对应的帧图像,获得渲染后的第一帧图像,向终端发送渲染后的第一帧图像和对应的时间戳,以使得终端根据渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

本申请实施例提供的服务器,具体执行上述方法实施例流程在服务器侧的流程,具体请详见上述gui渲染显示的方法在服务器侧的实施例的内容,在此不再赘述,本申请实施例提供的服务器,通过接收终端发送的交互操作信息,根据交互操作信息更新每一帧帧图像的渲染指令和对应屏幕更新周期的时间戳,服务器和终端分别单独根据渲染指令对待渲染的帧图像进行渲染,得到已渲染的帧图像,服务器将已渲染的帧图像发送至终端,终端接收服务器发送的已渲染的帧图像,结合终端已渲染的帧图像,共同用于系统gui的显示,本申请将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现时序差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

在上述各实施例的基础上,作为一种可选实施例,第一处理模块303,包括:

确定模块,用于根据终端发送的交互操作信息,更新并处理待渲染的帧图像和待渲染的帧图像中的渲染节点;

对待渲染的帧图像,根据待渲染的帧图像和待渲染的帧图像中的渲染节点,确定待渲染帧图像对应的渲染指令,并将待渲染的帧图像所对应屏幕更新周期的发起时间作为对应待渲染的帧图像的时间戳。

在上述各实施例的基础上,作为一种可选实施例,第三处理模块306,包括:

第一标识模块,用于根据渲染后的第一帧图像对应的时间戳,对渲染后的第一帧图像进行标识,将标识后的第一帧图像发送至终端。

本申请实施例提供了一种终端,如图8所示,终端可以包括:第一发送模块301、第二接收模块307以及第三接收模块308,具体地,

第一发送模块301,用于将交互操作信息发送至服务器,以使得服务器根据交互操作信息,更新待渲染的每帧帧图像对应的渲染指令和时间戳以及由服务器渲染后的第一帧图像,将第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令的时间戳发送至终端;

第二接收模块307,用于接收服务器发送的第二渲染指令、第二渲染指令对应的待渲染帧图像和第二渲染指令对应的时间戳,根据第二渲染指令渲染第二渲染指令对应的待渲染帧图像,获得渲染后的第二帧图像;

第三接收模块308,用于接收服务器发送的渲染后的第一帧图像和对应的时间戳,结合渲染后的第一帧图像和第二帧图像以及渲染后的第一帧图像和第二帧图像对应的时间戳,确定待显示的gui渲染结果。

本申请实施例提供的终端,具体执行上述方法实施例流程在终端侧的流程,具体请详见上述gui渲染显示的方法在终端侧的实施例的内容,在此不再赘述,本申请实施例提供的终端,通过发送交互操作信息,使服务器根据交互操作信息更新每一帧帧图像的渲染指令和对应屏幕更新周期的时间戳,服务器和终端分别单独根据渲染指令对待渲染的帧图像进行渲染,得到已渲染的帧图像,服务器将已渲染的帧图像发送至终端,终端接收服务器发送的已渲染的帧图像,依据时间戳与本地最新的帧图像进行比较,选取最新的帧图像在终端进行显示,本申请将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现时序差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

在上述各实施例的基础上,作为一种可选实施例,第二接收模块307,包括:

第二标识模块,用于根据渲染后的第二帧图像对应的时间戳,对渲染后的第二帧图像进行标识,得到标识后的第二帧图像。

在上述各实施例的基础上,作为一种可选实施例,第三接收模块308包括:

筛选模块,用于对第一帧图像和第二帧图像,确定第一帧图像和第二帧图像中待显示帧图像;

获取当前时刻,根据待显示的帧图像对应的时间戳和当前时刻,确定待显示的帧图像的时间间隔;

若待显示的帧图像的时间间隔小于或等于预设阈值,则保留待显示的帧图像,并将待显示的帧图像作为待显示的gui渲染结果;

若待显示的帧图像的时间间隔大于预设阈值,则清除待显示的帧图像。

本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本方案通过接收终端发送的交互操作信息,根据交互操作信息更新每一帧帧图像的渲染指令和对应屏幕更新周期的时间戳,服务器和终端分别单独根据渲染指令对待渲染的帧图像进行渲染,得到已渲染的帧图像,服务器将已渲染的帧图像发送至终端,终端接收服务器发送的已渲染的帧图像,结合终端已渲染的帧图像,共同用于系统gui的显示本方案将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现时序差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

在一个可选实施例中提供了一种电子设备,如图9所示,图9所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。

处理器4001可以是cpu(centralprocessingunit,中央处理器),通用处理器,dsp(digitalsignalprocessor,数据信号处理器),asic(applicationspecificintegratedcircuit,专用集成电路),fpga(fieldprogrammablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器4003可以是rom(readonlymemory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(randomaccessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器)、cd-rom(compactdiscreadonlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本方案通过接收终端发送的交互操作信息,根据交互操作信息更新每一帧帧图像的渲染指令和对应屏幕更新周期的时间戳,服务器和终端分别单独根据渲染指令对待渲染的帧图像进行渲染,得到已渲染的帧图像,服务器将已渲染的帧图像发送至终端,终端接收服务器发送的已渲染的帧图像,结合终端已渲染的帧图像,共同用于系统gui的显示本方案将终端和服务器处理帧图像的能力进行隔离,互不影响,充分发挥各自的能力,并且依据时间戳信息进行同步,避免出现时序差错,不仅可以提高图像处理速率,还能够充分利用终端和服务器的硬件资源,提升整体效率,提高用户体验。

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

以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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