Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PLOTTING METHOD, DEVICE AND TERMINAL
Document Type and Number:
WIPO Patent Application WO/2014/134912
Kind Code:
A1
Abstract:
An embodiment of the present invention relates to computer technology. Provided in the embodiment of the present invention are a plotting method, device and terminal, comprising: receiving the plotting command set of a current frame; determining the CPU plotting time and GPU plotting time of the current frame according to the plotting command set of the current frame; if the CPU plotting time is less than the GPU plotting time, then utilizing the CPU to render the current frame; and if the CPU plotting time is greater than the GPU plotting time, then utilizing the GPU to render the current frame, such that the plotting method is dynamically determined according to the plotting time corresponding to the CPU and GPU, thereby reducing the plotting time of each frame to a certain extent, and further improving the display speed and display performance of the system.

Inventors:
JIA XIANGHONG (CN)
Application Number:
PCT/CN2013/084148
Publication Date:
September 12, 2014
Filing Date:
September 25, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
G06T1/20
Foreign References:
CN103164839A2013-06-19
CN101354780A2009-01-28
CN101706741A2010-05-12
CN102521050A2012-06-27
US20120159090A12012-06-21
Other References:
See also references of EP 2793185A4
None
Download PDF:
Claims:
权 利 要 求 书

1、 一种绘图方法, 其特征在于, 所述方法包括:

接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及 所述绘图命令的^!史;

根据所述当前帧的绘图命令集中的一条或多条绘图命令及所述绘图命令 的参数确定所述当前帧的中央处理器 CPU绘图时间和图形处理器 GPU绘图 时间;

若所述 CPU绘图时间小于所述 GPU绘图时间, 则使用 CPU对所述当前 帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间, 则使用 GPU对 所述当前帧进行绘制。

2、 根据权利要求 1所述的方法, 其特征在于, 所述根据所述当前帧的绘 图命令集中的一条或多条绘图命令及所述绘图命令的参数确定所述当前帧的 CPU绘图时间和 GPU绘图时间, 包括;

遍历所述当前帧的绘图命令集中的每一条绘图命令及该条绘图命令的参 数;

根据所述每一条绘图命令及所述绘图命令的参数在预设的性能表中查 询,得到与所述每一条绘图命令及所述绘图命令的参数对应的 CPU绘图时间 和 GPU绘图时间;

将所述当前帧的绘图命令集中每一条绘图命令的 CPU绘图时间累加得到 所述当前帧的 CPU绘图时间;将所述当前帧的绘图命令集中每一条绘图命令 的 GPU绘图时间累加得到所述当前帧的 GPU绘图时间。

3、 根据权利要求 2所述的方法, 其特征在于, 所述方法还包括: 若在所述预设的性能表中查询不到与所述绘图命令及所述绘图命令的参 数对应的 CPU绘图时间和 GPU绘图时间, 则根据所述绘图命令及所述绘图 命令的参数计算与所述绘图命令及所述绘图命令的参数对应的 CPU绘图时间 和 GPU绘图时间; 将计算得到的所述 CPU绘图时间和所述 GPU绘图时间, 以及所述绘图 命令及所述绘图命令的参数存储到所述预设的性能表中。

4、 根据权利要求 3所述的方法, 其特征在于, 所述根据所述绘图命令及 所述绘图命令的^ t计算与所述绘图命令及所述绘图命令的参数对应的 CPU 绘图时间和 GPU绘图时间, 包括:

根据所述绘图命令与所述绘图命令的参数, 使用所述 CPU和所述 GPU 分别绘制与所述绘图命令及所述绘图命令的参数对应的图像对象;

在所述 CPU和所述 GPU绘制所述与所述绘图命令及所述绘图命令的参 数对应的图像对象的过程中分别记录所述 CPU和所述 GPU绘制所述图像对 象所使用的时间,其中所述记录的所述 CPU绘制所述与所述绘图命令及所述 绘图命令的参数对应的图像对象所使用的时间为与所述绘图命令及所述绘图 命令的参数对应的 CPU绘图时间, 所述记录的所述 GPU绘制所述与所述绘 图命令及所述绘图命令的参数对应的图像对象所使用的时间为与所述绘图命 令及所述绘图命令的参数对应的 GPU绘图时间。

5、根据权利要求 1-4任一项所述的方法,其特征在于,所述方法还包括: 若使用 CPU对所述当前帧进行绘制, 则将当前帧的 CPU绘制结果保存 在位图图像中, 若使用 GPU对所述当前帧进行绘制, 则将当前帧的 GPU绘 制结果保存在纹理图像中;

将所述位图图像或纹理图像中保存的绘制结果显示到屏幕上。

6、 一种绘图装置, 其特征在于, 所述装置包括:

接收模块, 用于接收当前帧的绘图命令集, 所述绘图命令集包含一条或 多条绘图命令及所述绘图命令的参数;

确定模块, 用于根据所述接收模块接收的当前帧的绘图命令集中的一条 或多条绘图命令及所述绘图命令的参数确定所述当前帧的中央处理器 CPU绘 图时间和图形处理器 GPU绘图时间;

绘制决策模块,用于若所述确定模块确定的所述当前帧的 CPU绘图时间 和 GPU绘图时间中, 所述 CPU绘图时间小于所述 GPU绘图时间, 则使用 CPU对所述当前帧进行绘制,若所述 GPU绘图时间小于所述 CPU绘图时间, 则使用 GPU对所述当前帧进行绘制。

7、 根据权利要求 6所述的装置, 其特征在于, 所述确定模块具体用于: 遍历所述当前帧的绘图命令集中的每一条绘图命令及该条绘图命令的参 数;

根据所述每一条绘图命令及该条绘图命令的参数在预设的性能表中查 询,得到与所述每一条绘图命令及该条绘图命令的参数对应的 CPU绘图时间 和 GPU绘图时间;

将所述当前帧的绘图命令集中每一条绘图命令的 CPU绘图时间累加得到 当前帧的 CPU绘图时间; 将所述当前帧的绘图命令集中每一条绘图命令的 GPU绘图时间累加得到当前帧的 GPU绘图时间。

8、 根据权利要求 7所述的装置, 其特征在于, 所述装置还包括: 计算模块, 用于若所述确定模块在所述预设的性能表中查询不到与所述绘 图命令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间, 则根 据该条绘图命令及所述绘图命令的参数计算与所述绘图命令及所述绘图命令 的参数对应的 CPU绘图时间和 GPU绘图时间;

更新模块, 用于将所述计算模块计算得到的所述 CPU 绘图时间和所述 GPU绘图时间, 以及所述绘图命令及所述绘图命令的参数存储到所述预设的 性能表中。

9、 根据权利要求 8所述的装置, 其特征在于, 所述计算模块具体用于: 若所述确定模块在所述预设的性能表中查询不到与所述绘图命令及所述绘图 命令的参数对应的 CPU绘图时间和 GPU绘图时间, 则根据所述绘图命令与 所述绘图命令的参数, 使用所述 CPU和所述 GPU分别绘制与所述绘图命令 及所述绘图命令的参数对应的图像对象; 在所述 CPU和所述 GPU绘制所述 与所述绘图命令及所述绘图命令的参数对应的图像对象的过程中分别记录所 述 CPU和所述 GPU绘制所述图像对象所使用的时间, 其中所述记录的所述 CPU绘制所述与所述绘图命令及所述绘图命令的参数对应的图像对象所使用 的时间为与所述绘图命令及所述绘图命令的参数对应的 CPU绘图时间,所述 记录的所述 GPU绘制所述与所述绘图命令及所述绘图命令的参数对应的图 像对象所使用的时间为与所述绘图命令及所述绘图命令的参数对应的 GPU 绘图时间。

10、 根据权利要求 6-9任一项所述的装置, 其特征在于, 所述装置还包 括:

保存模块,用于若使用 CPU对所述当前帧进行绘制,则将当前帧的 CPU 绘制结果保存在位图图像中, 若使用 GPU对所述当前帧进行绘制, 则将当前 帧的 GPU绘制结果保存在纹理图像中;

显示模块, 用于将所述位图图像或纹理图像中保存的绘制结果显示到屏 幕上。

11、一种终端设备,其特征在于, 包括中央处理器 CPU、图形处理器 GPU 和设备屏幕, 所述中央处理器 CPU、 图形处理器 GPU与所述设备屏幕相连, 其中:

所述 CPU用于: 接收当前帧的绘图命令集, 所述绘图命令集包含一条或 多条绘图命令及所述绘图命令的参数; 根据所述当前帧的绘图命令集中的一 条或多条绘图命令及所述绘图命令的参数确定所述当前帧的 CPU绘图时间和 GPU绘图时间; 若所述 CPU绘图时间小于所述 GPU绘图时间, 则对所述当 前帧进行绘制,若所述 GPU绘图时间小于所述 CPU绘图时间,则由所述 GPU 对所述当前帧进行绘制;

所述 GPU用于: 对所述当前帧进行绘制;

所述设备屏幕用于显示所述 CPU或所述 GPU对所述当前帧的绘制结果。 12、 根据权利要求 11所述的终端, 其特征在于, 所述 CPU具体用于: 遍历所述当前帧的绘图命令集中的每一条绘图命令及该条绘图命令的参数; 根据所述每一条绘图命令及所述绘图命令的参数在预设的性能表中查询, 得 到与所述每一条绘图命令及所述绘图命令的参数对应的 CPU 绘图时间和 GPU绘图时间; 将所述当前帧的绘图命令集中每一条绘图命令的 CPU绘图 时间累加得到当前帧的 CPU绘图时间;将所述当前帧的绘图命令集中每一条 绘图命令的 GPU绘图时间累加得到当前帧的 GPU绘图时间。

13、 根据权利要求 12所述的终端, 其特征在于, 所述 CPU还用于: 若 所述绘图命令集中的一条绘图命令及该条绘图命令的参数在所述预设的性能 表中查询不到与所述绘图命令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间, 则根据所述绘图命令及所述绘图命令的参数计算与所述绘图 命令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间; 将计算得 到的所述 CPU绘图时间和 GPU绘图时间, 以及该条绘图命令及该条绘图命令 的参数存储到所述预设的性能表中。

Description:
一种绘图方法、 装置及终端

技术领域

本发明涉及计算机技术, 尤其涉及一种绘图方法、 装置及终端。 背景技术

2D ( Two Dimensions, 二维) 图形库作为计算机操作系统的核心库, 它 所提供的各个绘图接口的性能直接影响系统对 用户 UI ( User Interface, 用户 界面 )操作响应的及时性。 目前 2D绘制有 CPU ( Central Processing Unit, 中 央处理器)和 GPU ( Graphic Processing Unit, 图形处理器) 两种方式, 从性 能的角度来讲, CPU方式适合筒单小场景绘图, GPU方式适合大场景绘图。 所谓 2D绘图中的场景, 是指绘图过程中涉及的操作复杂度(如几何变 换) 以及区域的大小。 若小场景的绘图采用 GPU绘图方式或者大场景采用 CPU 绘图方式, 性能都会大打折扣, 直接影响系统的 UI性能。 还有一种实现方式 是由绘制帧所属的应用程序决定, 开发者可以在应用程序中设置是否采用 GPU方式绘制。 若设置为 GPU绘制方式, 则系统会采用 GPU方式绘制该应 用程序的每一帧内容; 否则采用 CPU方式绘制。 但是, 采用应用程序配置的 方式, 由于开发者对所开发的应用程序是采用 GPU绘制还是 CPU绘制哪个 更优也是未知的, 所以该方式也必然会导致某些复杂内容的帧最 终采用了 CPU方式绘制或者筒单的帧采用 GPU方式, 从而 2D绘图性能也同样偏低。 发明内容

本发明实施例提供一种绘图方法、 装置及终端, 用以一定程度上提高计 算机系统的显示性能。

第一方面, 本发明实施例提供一种绘图方法, 该方法包括: 接收当前 帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令 的参数; 根据所述当前帧的绘图命令集中的一条或多条 绘图命令及所述绘图 命令的参数确定所述当前帧的中央处理器 CPU绘图时间和图形处理器 GPU 绘图时间; 若所述 CPU绘图时间小于所述 GPU绘图时间, 则使用 CPU对所 述当前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间, 则使用 GPU对所述当前帧进行绘制。

结合第一方面, 在第一种实现方式下, 所述根据所述当前帧的绘图命 令集中的一条或多条绘图命令及所述绘图命令 的参数确定所述当前帧的 CPU 绘图时间和 GPU绘图时间, 包括; 遍历所述当前帧的绘图命令集中的每一条 绘图命令及该条绘图命令的参数; 根据所述每一条绘图命令及所述绘图命令 的参数在预设的性能表中查询 , 得到与所述每一条绘图命令及所述绘图命令 的参数对应的 CPU绘图时间和 GPU绘图时间; 将所述当前帧的绘图命令集 中每一条绘图命令的 CPU绘图时间累加得到所述当前帧的 CPU绘图时间; 将所述当前帧的绘图命令集中每一条绘图命令 的 GPU绘图时间累加得到所 述当前帧的 GPU绘图时间。

结合第一方面的第一种实现方式, 在第二种实现方式下, 若在所述预 设的性能表中查询不到与所述绘图命令及所述 绘图命令的参数对应的 CPU绘 图时间和 GPU绘图时间,则根据所述绘图命令及所述绘图 命令的参数计算与 所述绘图命令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间; 将计算得到的所述 CPU绘图时间和所述 GPU绘图时间, 以及所述绘图命令 及所述绘图命令的参数存储到所述预设的性能 表中。

结合第一方面的第二种实现方式, 在第三种实现方式下, 所述根据所述 绘图命令及所述绘图命令的参数计算与所述绘 图命令及所述绘图命令的参数 对应的 CPU绘图时间和 GPU绘图时间, 包括: 根据所述绘图命令与所述绘 图命令的参数, 使用所述 CPU和所述 GPU分别绘制与所述绘图命令及所述 绘图命令的参数对应的图像对象; 在所述 CPU和所述 GPU绘制所述与所述 绘图命令及所述绘图命令的参数对应的图像对 象的过程中分别记录所述 CPU 和所述 GPU绘制所述图像对象所使用的时间, 其中所述记录的所述 CPU绘 制所述与所述绘图命令及所述绘图命令的参数 对应的图像对象所使用的时间 为与所述绘图命令及所述绘图命令的参数对应 的 CPU绘图时间,所述记录的 所述 GPU绘制所述与所述绘图命令及所述绘图命令的 参数对应的图像对象 所使用的时间为与所述绘图命令及所述绘图命 令的参数对应的 GPU绘图时 间。

结合第一方面、 第一方面的第一种实现方式、 第一方面的第二种实现方 式或第一方面的第三种实现方式, 在第四种实现方式下, 所述方法还包括: 若使用 CPU对所述当前帧进行绘制, 则将当前帧的 CPU绘制结果保存在位 图图像中, 若使用 GPU对所述当前帧进行绘制, 则将当前帧的 GPU绘制结 果保存在纹理图像中; 将所述位图图像或纹理图像中保存的绘制结果 显示到 屏幕上。

第二方面, 本发明实施例提供一种绘图装置, 该装置包括接收模块, 用 于接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的参数; 确定模块, 用于根据所述接收模块接收的当前帧的绘图 命令集中的一条或多条绘图命令及所述绘图命 令的参数确定所述当前帧的中 央处理器 CPU绘图时间和图形处理器 GPU绘图时间; 绘制决策模块, 用于 若所述确定模块确定的所述当前帧的 CPU绘图时间和 GPU绘图时间中, 所 述 CPU绘图时间小于所述 GPU绘图时间, 则使用 CPU对所述当前帧进行绘 制, 若所述 GPU绘图时间小于所述 CPU绘图时间, 则使用 GPU对所述当前 帧进行绘制。

结合第二方面, 在第一种实现方式下, 所述确定模块具体用于: 遍历 所述当前帧的绘图命令集中的每一条绘图命令 及该条绘图命令的参数; 根据 所述每一条绘图命令及该条绘图命令的参数在 预设的性能表中查询 , 得到与 所述每一条绘图命令及该条绘图命令的参数对 应的 CPU绘图时间和 GPU绘 图时间;将所述当前帧的绘图命令集中每一条 绘图命令的 CPU绘图时间累加 得到当前帧的 CPU绘图时间;将所述当前帧的绘图命令集中每 一条绘图命令 的 GPU绘图时间累加得到当前帧的 GPU绘图时间。

结合第二方面的第一种实现方式, 在第二种实现方式下, 所述装置还 包括: 计算模块, 用于若所述确定模块在所述预设的性能表中查 询不到与所 述绘图命令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间, 则根据该条绘图命令及所述绘图命令的参数计 算与所述绘图命令及所述绘图 命令的参数对应的 CPU绘图时间和 GPU绘图时间; 更新模块, 用于将所述 计算模块计算得到的所述 CPU绘图时间和所述 GPU绘图时间, 以及所述绘 图命令及所述绘图命令的参数存储到所述预设 的性能表中。

结合第二方面的第二种实现方式, 在第三种实现方式下, 所述计算模 块具体用于: 若所述确定模块在所述预设的性能表中查询不 到与所述绘图命 令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间, 则根据所 述绘图命令与所述绘图命令的参数, 使用所述 CPU和所述 GPU分别绘制与 所述绘图命令及所述绘图命令的参数对应的图 像对象; 在所述 CPU和所述 GPU绘制所述与所述绘图命令及所述绘图命令的 参数对应的图像对象的过程 中分别记录所述 CPU和所述 GPU绘制所述图像对象所使用的时间, 其中所 述记录的所述 CPU绘制所述与所述绘图命令及所述绘图命令的 参数对应的图 像对象所使用的时间为与所述绘图命令及所述 绘图命令的参数对应的 CPU绘 图时间,所述记录的所述 GPU绘制所述与所述绘图命令及所述绘图命令的 参 数对应的图像对象所使用的时间为与所述绘图 命令及所述绘图命令的参数对 应的 GPU绘图时间。

结合第二方面、 第二方面的第一种实现方式、 第二方面的第二种实现方 式或第二方面的第三种实现方式, 在第四种实现方式下, 所述装置还包括: 保存模块, 用于若使用 CPU对所述当前帧进行绘制, 则将当前帧的 CPU绘 制结果保存在位图图像中, 若使用 GPU对所述当前帧进行绘制, 则将当前帧 的 GPU绘制结果保存在纹理图像中; 显示模块, 用于将所述位图图像或纹理 图像中保存的绘制结果显示到屏幕上。 第三方面, 本发明实施例还提供一种终端设备, 该终端设备包括中央处 理器 CPU、 图形处理器 GPU和设备屏幕, 所述中央处理器 CPU、 图形处理 器 GPU与所述设备屏幕相连, 其中: 所述 CPU用于: 接收当前帧的绘图命 令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的参数; 根 据所述当前帧的绘图命令集中的一条或多条绘 图命令及所述绘图命令的参数 确定所述当前帧的 CPU绘图时间和 GPU绘图时间; 若所述 CPU绘图时间小 于所述 GPU绘图时间, 则对所述当前帧进行绘制, 若所述 GPU绘图时间小 于所述 CPU绘图时间, 则由所述 GPU对所述当前帧进行绘制; 所述 GPU用 于: 对所述当前帧进行绘制; 所述设备屏幕用于显示所述 CPU或所述 GPU 对所述当前帧的绘制结果。

结合第三方面, 在第一种实现方式下, 所述 CPU具体用于: 遍历所述当 前帧的绘图命令集中的每一条绘图命令及该条 绘图命令的参数; 根据所述每 一条绘图命令及所述绘图命令的参数在预设的 性能表中查询, 得到与所述每 一条绘图命令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间; 将所述当前帧的绘图命令集中每一条绘图命令 的 CPU绘图时间累加得到当前 帧的 CPU绘图时间; 将所述当前帧的绘图命令集中每一条绘图命令 的 GPU 绘图时间累加得到当前帧的 GPU绘图时间。

结合第三方面的第一种实现方式下, 在第二种实现方式下, 所述 CPU还 用于: 若所述绘图命令集中的一条绘图命令及该条绘 图命令的参数在所述预 设的性能表中查询不到与所述绘图命令及所述 绘图命令的参数对应的 CPU绘 图时间和 GPU绘图时间,则根据所述绘图命令及所述绘图 命令的参数计算与 所述绘图命令及所述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间; 将计算得到的所述 CPU绘图时间和 GPU绘图时间, 以及该条绘图命令及该 条绘图命令的参数存储到所述预设的性能表中 。

可见, 本发明实施例提供的绘图方法、 装置以及终端, 通过接收当前帧 的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的 参数,根据所述当前帧的绘图命令集确定所述 前帧的 CPU绘图时间和 GPU 绘图时间,若所述 CPU绘图时间小于所述 GPU绘图时间,则使用 CPU对当 前帧进行绘制, 若所述 GPU 绘图时间小于所述 CPU 绘图时间, 则使用 GPU对当前帧进行绘制, 实现根据 CPU/GPU方式对应的绘图时间动态决 定采用绘图时间较短的绘图方式, 从而一定程度上减少每一帧的绘图时 间, 进而提高系统的显示速度, 提升显示性能。 附图说明

为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下面将对 实施例或现有技术描述中所需要使用的附图作 筒单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对于本领域普通技术人员 来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附 图。

图 1为现有的一种终端的逻辑结构示意图;

图 2a为本发明实施例提供的一种绘图方法的方法 程示意图; 图 2 b为本发明实施例提供的另一种绘图方法的方 流程示意图; 图 3 a为本发明实施例提供的再一种绘图方法的方 流程示意图; 图 3 b为本发明实施例提供的再一种绘图方法的方 流程示意图; 图 4 a为本发明实施例提供的一种绘图装置的结构 意图;

图 4b为本发明实施例提供的另一种绘图装置的结 示意图; 图 4c为本发明实施例提供的再一种绘图装置的结 示意图; 图 5为本发明实施例提供的一种终端设备的结构 意图;

图 6为本发明实施例提供的另一种终端设备的结 示意图。

具体实施方式

下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行 清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而 不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例 , 都属于本发明保护的范围。

请参阅附图 2a,为本发明实施例提供的一种绘图方法的方法 流程示意图, 本发明实施例提供的绘图方法可以应用于计算 机系统中, 该计算机系统可以 位于一台物理主机上, 也可以分布位于多台物理主机上。 具体地, 该计算机 系统可以位于一台或多台计算机、 便携式电脑、 手持设备(例如手机, PAD 等)、 服务器等类型的终端上。

以图 1为例介绍本发明实施例提供的绘图方法应用 终端的逻辑结构。 该终端具体可以为一智能手机。 如图所示,硬件层包括 CPU和 GPU, 当然还 可以包括存储器、 输入 /输出设备、 网络接口等, 在硬件层之上运行有操作系 统 Android以及一些应用程序。 2D图形库引擎是操作系统的核心部分, 包括 实现 CPU绘图的 Skia和实现 GPU绘图的 openGL(Open Graphics Library);除 此之外, 该终端还包括显示驱动层的显示驱动器; 显示合成层 的 SurfaceFlinger; 显示框架, 包括 view、 widget以及 canvas; 以及应用层, 该 应用层包括 Android操作系统常见的主界面 Home、 联系簿 Contacts, 浏览器 Browser等。 在此终端中, 采用本发明实施例提供的绘图方法, 可以根据当前 帧的绘图命令集动态选取 CPU绘图或 GPU绘图,从而提供系统的绘图性能。

如图 2a所示, 本发明实施例提供的绘图方法包括:

S101、 接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图 命令及所述绘图命令的参数。

所述绘图命令可以包括线性渐变、 图片渐变, 对应的参数可以包括区域 大小、 坐标、 渐变颜色等; 所述绘图命令还可以包括绘制方形或圆形或直 线 或曲线, 对应的参数可以包括绘制的起始坐标和结束坐 标、 线条类型、 线条 粗细、 线条颜色等。 本领域技术人员应当理解, 以上仅是举例, 本发明实施 例所述的绘图命令还可以包括任意一种计算机 系统中会使用的任意一种绘图 命令, 其对应的参数也可以根据实际的参数需求来灵 活确定, 本发明实施例 对此并不作限定。

5102、 根据所述当前帧的绘图命令集中的一条或多条 绘图命令及所述绘 图命令的参数确定所述当前帧的 CPU绘图时间和 GPU绘图时间。

所述 CPU绘图时间为 CPU执行完所述当前帧的绘图命令集需要的时间 ; 所述 GPU绘图时间为 GPU执行完所述当前帧的绘图命令集需要的时间 。

5103、 若所述 CPU绘图时间小于所述 GPU绘图时间, 则使用 CPU对所 述当前帧进行绘制。

具体地, CPU绘图时间小于所述 GPU绘图时间可以实现为: 所述 GPU 绘图时间与所述 CPU绘图时间的差值大于一定的阈值 1¾。 例如 CPU绘图时 间为 T CPU , GPU绘图时间为 T GPU , 则 TGPU-TCPU , k 其中, ^>0。

5104、 若所述 GPU绘图时间小于所述 CPU绘图时间, 则使用 GPU对所 述当前帧进行绘制。

具体地, GPU绘图时间小于所述 CPU绘图时间可以实现为: 所述 CPU 绘图时间与所述 GPU绘图时间的差值大于一定的阈值 k 2 。 例如 CPU绘图时 间为 T CPU , GPU绘图时间为 T GPU , 则 T CPU -T GPU = t 2 , t 2 > k 2 , 其中, t 2 >0。

值得注意的是, 1¾和1¾可以分分别设置为一个具体的数值, 也可以分别 设置为一个数值范围。 1¾和1¾可以设置为相同, 也可以设置为不同。

需说明的是, 若当前帧的 CPU绘图时间和 GPU绘图时间相等; 或者, 当前帧的 CPU绘图时间和 GPU绘图时间的差值的绝对值不超过某一特定阈 值 k 3 , 例如可以设置 k 3 =2; 或者, 当前帧的 CPU绘图时间和 GPU绘图时间 的差值不属于某一特定区间 k 3 , 例如可以设置 k 3 =[-2,2]或 [-3,4] , 那么说明当 前帧采用 CPU绘制和采用 GPU绘制的性能相近, 那么可以根据当前系统的 实际情况选择采取哪一种绘图, 本发明实施例对此不作限定。

以图 1为例, 本发明实施例提供的绘图方法可以应用于 2D图形库引擎 层,在该层中根据 CPU绘图时间和 GPU绘图时间动态决定调用 Skia提供的 API ( Application Program Interface, 应用程序接口)实现 CPU绘图, 或调 用 openGL提供的 API接口实现 GPU绘图。

进一步的, 如图 2b所示, 本发明实施例还包括:

S105、 若对当前帧采用 CPU进行绘制, 则将当前帧的 CPU绘制结果保 存在位图图像 ( Bitmap ) 中。

S106、 若对当前帧采用 GPU进行绘制, 则将当前帧的 GPU绘制结果保 存在纹理图像 ( Texture ) 中。

Bitmap和 Texture是操作系统提供的两种不同的渲染通道 Bitmap对应 一块内存, 访问方式为逐行逐像数; 若为 GPU方式, 则所有的绘图命令执 行后会将绘图内容保存在 Texture中, Texture也是对应一块内存, 访问方式 按块 (Tile)访问。

S107、 将 Bitmap或 Texture保存的绘制结果显示到屏幕上。

以图 1 为例, 显示合成层支持多任务, 一次可显示多个应用程序的 UI 窗体, 且同一个应用程序也可能创建多个窗体。 在所有窗体绘制完成后, 系 统最终显示结果是当前可显示的所有窗体的一 个集合。 合成完成后, 调用显 示驱动层的显示驱动器将结果拷贝到帧緩沖区 (FrameBuffer ); 显示驱动器, 例如终端的 LCD ( Liquid Crystal Display, 液晶显示 )驱动, 会将帧緩沖区的 内容显示在屏幕上。

可见, 本发明实施例提供的绘图方法, 通过接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的参数, 根据所述 当前帧的绘图命令集确定所述当前帧的 CPU绘图时间和 GPU绘图时间, 若 所述 CPU绘图时间小于所述 GPU绘图时间,则使用 CPU对当前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间,则使用 GPU对当前帧进行绘 制, 实现根据 CPU/GPU方式对应的绘图时间动态决定采用绘图 间较短 的绘图方式, 从而一定程度上减少每一帧的绘图时间, 进而提高系统的显 示速度, 提升显示性能。 在 UI交互过程中, 可以极大地提升用户体验。

进一步的, 通过选择采用 Bitmap或 Texture的保存方式, 实现根据不同 的绘图方式, 选择不同的渲染通道显示的方法, 更加有效地提升了系统的显 示性能。

请参阅附图 3a, 为本发明实施例提供的另一种绘图方法的方法 流程示意 图, 该方法可以应用于计算机系统中, 该计算机系统可以位于一台物理主机 上, 也可以分布位于多台物理主机上。 具体地, 可以应用于如图 1所示的终 端。 该方法包括:

S101、 接收当前帧的绘图命令集, 所述绘图命令集中包含多条绘图命令 及与这些绘图命令分别对应的绘图参数。

S1021、 遍历每一条绘图命令及该条绘图命令的参数。

S1022、根据每一条绘图命令及该条绘图命令的 数在预设的性能表中查 询,得到与所述每一条绘图命令及该条绘图命 令的参数对应的 CPU绘图时间 和 GPU绘图时间。

需说明的是, 在本发明实施例中, 同样的绘图命令不同的参数, 其 CPU 绘图时间或 GPU绘图时间也可能不相同。

S1023、 将所述当前帧的绘图命令集中每一条绘图命令 的 CPU绘图时间 累加得到当前帧的 CPU绘图时间;将所述当前帧的绘图命令集中每 一条绘图 命令的 GPU绘图时间累加得到当前帧的 GPU绘图时间。

当然, 本发明实施例还包括前述实施例的 S103和 S104, 进一步的, 也 可以包括前述实施例的步骤 S105、 S106、 S107, 在此不再赘述。

可见, 本发明实施例提供的绘图方法, 通过接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的参数, 根据所述 当前帧的绘图命令集确定所述当前帧的 CPU绘图时间和 GPU绘图时间, 若 所述 CPU绘图时间小于所述 GPU绘图时间,则使用 CPU对当前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间,则使用 GPU对当前帧进行绘 制, 实现根据 CPU/GPU方式对应的绘图时间动态决定采用绘图 间较短 的绘图方式, 从而一定程度上减少每一帧的绘图时间, 进而提高系统的显 示速度, 提升显示性能。 在 UI交互过程中, 可以极大地提升用户体验。 在 UI交互过程中, 可以极大地提升用户体验。

下面通过一个具体实施例描述本发明提供的绘 图方法中获得当前帧 的 CPU绘图时间和 CPU绘图时间的一种具体实现。

如图 3b所示, 该方法包括:

5201、 接收当前帧的绘图命令集, 所述绘图命令集中包含多条绘图命令 及与这些绘图命令分别对应的绘图参数。

5202、 遍历每一条绘图命令及该条绘图命令的参数。

5203、 在预设的性能表中查询 CPU绘图时间和 GPU绘图时间。

预设的性能表示例如下:

表 1 性能表

如表 1所示, 线性变换和图片渐变是两个绘图命令, 这两个绘图命令分 别对应绘图参数即区域大小。 根据绘图命令和区域大小可以确定一条绘图命 令的 GPU渲染时间和 CPU渲染时间 (以 ms计算 ), 例如表 1中区域大小为 100*100像素,绘图操作是图片渐变时,需要的 GPU和 CPU渲染时间分贝为 108ms和 80ms。

需说明的是, 表 1仅是示例形式, 其中的绘图命令也仅是举例说明。 在 本发明的其它一些实施例中, 性能表中绘图命令的参数也可以有两个或两个 以上。 相同绘图命令的绘图参数若不相同通常在性能 表中会有各自的记录。 若在预设的性能表中查询到该条绘图命令及该 条绘图命令的参数对应的

GPU绘图时间和 CPU绘图时间, 则转到步骤 S204 , 否则转到步骤 S205。

S204、获得与该条绘图命令及该条会命令的参 对应的 CPU绘图时间和 GPU绘图时间。

S205、 计算该条绘图命令及该条会命令的参数对应的 CPU绘图时间 和 GPU绘图时间。

具体地, 若所述绘图命令集中的一条绘图命令及该条绘 图命令的参数在 所述预设的性能表中查询不到与之对应的 CPU绘图时间和 GPU绘图时间, 则启动计算进程;将该条绘图命令及该条绘图 命令的参数传入所述计算进程; 由该计算进程同时计算与该条绘图命令及该条 绘图命令的参数对应的 CPU绘 图时间和 GPU绘图时间。

可选的, 计算方法如下: 根据所述绘图命令与所述绘图命令的参数, 使 用所述 CPU和所述 GPU分别绘制与所述绘图命令及所述绘图命令的 参数对 应的图像对象; 在所述 CPU和所述 GPU绘制所述与所述绘图命令及所述绘 图命令的参数对应的图像对象的过程中分别记 录所述 CPU和所述 GPU绘制 所述图像对象所使用的时间,其中记录的所述 CPU绘制所述与所述绘图命令 及所述绘图命令的参数对应的图像对象所使用 的时间为与所述绘图命令及所 述绘图命令的参数对应的 CPU绘图时间, 记录的所述 GPU绘制所述与所述 绘图命令及所述绘图命令的参数对应的图像对 象所使用的时间为与所述绘图 命令及所述绘图命令的参数对应的 GPU绘图时间。

进一步地, 为了实现对性能表的及时更新, 所述方法还包括:

S206、 可以将此次计算获得的 CPU绘图时间和 GPU绘图时间增添到所 述预设的性能表中 ,这样下一次再有与此次绘图命令及参数相同 的绘图命令 时就可以直接通过查询所述预设的性能表获得 。

无论是通过查表还是计算的方式获得该条绘图 命令及其参数对应的 CPU 绘图时间和 GPU绘图时间后, 判断绘图命令集的遍历是否结束, 若结束, 则 继续步骤 S207; 若没有结束, 则返回步骤 S202继续遍历下一条绘图命令。

S207、将所述当前帧的绘图命令集中每一条 图命令的 CPU绘图时间累 加获得当前帧的 CPU绘图时间;将所述当前帧的绘图命令集中每 一条绘图命 令的 GPU绘图时间累加获得当前帧的 GPU绘图时间。

获得当前帧的 CPU绘图时间和 GPU绘图时间之后, 根据本发明前述实 施例的方法可以进行 CPU绘制和 GPU绘制的选择, 进一步地, 再执行绘制 结果的保存和显示。 具体步骤可参考前述实施例, 在此不再赘述。

可见, 本发明实施例提供的绘图方法, 通过接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的参数, 根据所述 当前帧的绘图命令集确定所述当前帧的 CPU绘图时间和 GPU绘图时间, 若 所述 CPU绘图时间小于所述 GPU绘图时间,则使用 CPU对当前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间,则使用 GPU对当前帧进行绘 制, 实现根据 CPU/GPU方式对应的绘图时间动态决定采用绘图 间较短 的绘图方式, 从而一定程度上减少每一帧的绘图时间, 进而提高系统的显 示速度, 提升显示性能。 在 UI交互过程中, 可以极大地提升用户体验。

请参阅图 4a, 为本发明实施例提供的一种绘图装置 10的逻辑结构示意 图。 本发明实施例提供的绘图装置 10可以对应于如图 1 所示的终端系统的 2D图形库引擎层。 如图 4a所示, 该装置包括:

接收模块 11 , 用于接收当前帧的绘图命令集, 所述绘图命令集包含一条 或多条绘图命令及所述绘图命令的参数。

所述绘图命令可以包括线性渐变、 图片渐变, 对应的参数可以包括区域 大小、 坐标、 渐变颜色等; 所述绘图命令还可以包括绘制方形或圆形或直 线 或曲线等, 对应的参数可以包括绘制的起始坐标和结束坐 标、 线条类型、 线 条粗细、 线条颜色等。 本领域技术人员应当理解, 以上仅是举例, 本发明实 施例所述的绘图命令还可以包括任意一种计算 机系统中会使用的任意一种绘 图命令, 其对应的参数也可以根据实际的参数需求来灵 活确定, 本发明实施 例对此并不作限定。

确定模块 12, 用于根据接收模块 11接收的所述当前帧的绘图命令集中 的绘图命令及所述绘图命令的参数确定所述当 前帧的 CPU绘图时间和 GPU 绘图时间;

绘制决策模块 13,用于若所述确定模块确定的所述当前帧的 CPU绘图时 间和 GPU绘图时间中, 所述 CPU绘图时间小于所述 GPU绘图时间, 则使用 CPU对所述当前帧进行绘制,若所述 GPU绘图时间小于所述 CPU绘图时间, 则使用 GPU对所述当前帧进行绘制。

参考图 4b,绘制决策模块 13根据绘图时间的比较结果选择调用 CPU或 GPU进行当前帧的绘制。 调用方式可以是通过图 1 示例中的图形库 skia和 openGL提供的 API。 图 4b中的 CPU和 GPU是该本发明实施例提供的绘图 装置所位于的终端设备的硬件层提供的两个处 理器。

进一步地, 如图 4c所示, 该绘图装置 10还可以包括:

保存模块 14, 用于若使用 CPU对所述当前帧进行绘制, 则将当前帧的 CPU绘制结果保存在 Bitmap中, 若使用 GPU对所述当前帧进行绘制, 则将 当前帧的 GPU绘制结果保存在 Texture中;

显示模块 15,用于将 Bitmap或 Texture中保存的绘制结果显示到屏幕上。 以图 1为例, 显示模块 15可以调用显示合成层的 SurfaceFlinger进行图 像的合成, 合成完成后, 在调用显示驱动器将合成结果拷贝到帧緩沖区 framebuffer, 然后由显示驱动器将帧緩沖区的内容显示在屏 幕上。

可见, 本发明实施例提供的绘图装置, 通过接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的参数, 根据所述 当前帧的绘图命令集确定所述当前帧的 CPU绘图时间和 GPU绘图时间, 若 所述 CPU绘图时间小于所述 GPU绘图时间,则使用 CPU对当前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间,则使用 GPU对当前帧进行绘 制, 实现根据 CPU/GPU方式对应的绘图时间动态决定采用绘图 间较短 的绘图方式, 从而一定程度上减少每一帧的绘图时间, 进而提高系统的显 示速度, 提升显示性能。 在 UI交互过程中, 可以极大地提升用户体验。

进一步的, 通过选择采用 Bitmap或 Texture的保存方式, 实现根据不同 的绘图方式, 选择不同的渲染通道显示的方法, 更加有效地提升了系统的显 示性能。

需说明的是, 本说明书中的各个实施例均采用递进的方式描 述, 各个实 施例之间相同相似的部分互相参见即可, 每个实施例重点说明的都是与其他 实施例的不同之处。 尤其, 对于装置实施例而言, 由于其基本相似于方法实 施例, 所以描述得比较筒单, 相关之处参见方法实施例的部分说明即可。 例 如, 确定模块 12的具体实现方法可以参考前述实施例所述的 取 CPU绘图 时间和 GPU绘图时间的方法。 在该获取方法中存在的性能表(如表 1 ) 即也 作为本发明装置的一部分, 可以存储在磁盘上, 掉电不丢失的, 这样终端多 次开关机, 之前积累的绘图数据还在。

请参阅图 5, 为本发明实施例提供的一种终端设备 20的结构示意图。 如 图 5所示,该终端 20包括 CPU21、 GPU22以及设备屏幕 23 , CPU21和 GPU22 与设备屏幕 23相连, 其中:

CPU21用于接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条 绘图命令及所述绘图命令的参数; 根据所述当前帧的绘图命令集中的一条或 多条绘图命令及所述绘图命令的参数确定所述 当前帧的 CPU 绘图时间和 GPU绘图时间; 若所述 CPU绘图时间小于所述 GPU绘图时间, 则对所述当 前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间, 则由 GPU22 对所述当前帧进行绘制;

具体的, CPU21用于: 遍历所述当前帧的绘图命令集中的每一条绘图 命 令及该条绘图命令的参数; 根据所述每一条绘图命令及该条绘图命令的参 数 在预设的性能表中查询, 得到与所述每一条绘图命令及该条绘图命令的 参数 对应的 CPU绘图时间和 GPU绘图时间; 将所述当前帧的绘图命令集中每一 条绘图命令的 CPU绘图时间累加得到当前帧的 CPU绘图时间; 将所述当前 帧的绘图命令集中每一条绘图命令的 GPU绘图时间累加得到当前帧的 GPU 绘图时间。

CPU21还用于: 若在所述预设的性能表中查询不到与所述绘图 命令及所 述绘图命令的参数对应的 CPU绘图时间和 GPU绘图时间, 则根据所述绘图 命令及所述绘图命令的参数计算与所述绘图命 令及所述绘图命令的参数对应 的 CPU绘图时间和 GPU绘图时间;将计算得到的所述 CPU绘图时间和 GPU 绘图时间, 以及该条绘图命令及该条绘图命令的参数存储 到所述预设的性能 表中。

计算方法可以如下: 根据所述绘图命令与所述绘图命令的参数, 通过所 述 CPU和 GPU分别绘制与所述绘图命令及所述绘图命令的 参数对应的图像 对象; 在所述 CPU和 GPU绘制所述与所述绘图命令及所述绘图命令的 参数 对应的图像对象的过程中分别记录所述 CPU和 GPU绘制所述图像对象所使 用的时间,其中所述记录的所述 CPU绘制所述与所述绘图命令及所述绘图命 令的参数对应的图像对象所使用的时间为与所 述绘图命令及所述绘图命令的 参数对应的 CPU绘图时间, 所述记录的所述 GPU绘制所述与所述绘图命令 及所述绘图命令的参数对应的图像对象所使用 的时间为与所述绘图命令及所 述绘图命令的参数对应的 GPU绘图时间。

进一步的, CPU21还用于: 若使用 CPU对所述当前帧进行绘制, 则将当 前帧的 CPU绘制结果保存在位图图像中, 若使用 GPU对所述当前帧进行绘 制, 则将当前帧的 GPU绘制结果保存在纹理图像中; 将所述位图图像或纹理 图像中保存的绘制结果显示到设备屏幕上。

所述 GPU用于: 对所述当前帧进行绘制; 设备屏幕 23用于显示 CPU21 或 GPU22对所述当前帧的绘制结果。 具体的, 用于显示所述位图图像或所述 纹理图像中保存的绘制结果。

可见, 本发明实施例提供的终端设备, 通过接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的参数, 根据所述 当前帧的绘图命令集确定所述当前帧的 CPU绘图时间和 GPU绘图时间, 若 所述 CPU绘图时间小于所述 GPU绘图时间,则使用 CPU对当前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间,则使用 GPU对当前帧进行绘 制, 实现根据 CPU/GPU方式对应的绘图时间动态决定采用绘图 间较短 的绘图方式, 从而一定程度上减少每一帧的绘图时间, 进而提高系统的显 示速度, 提升显示性能。 在 UI交互过程中, 可以极大地提升用户体验。

进一步的, 通过选择采用 Bitmap或 Texture的保存方式, 实现根据不同 的绘图方式, 选择不同的渲染通道显示的方法, 更加有效地提升了系统的显 示性能。

请参阅图 6, 为本发明实施例提供的另一种终端设备 30的结构示意图。 如图 6所示, 该终端设备 30包括 CPU31、 GPU32、 存储器 33、 显示屏 34以 及总线 35。 CPU31、 GPU32、 存储器 33、 显示屏 34通过总线 35连接。

存储器 33可以实现为计算机的软盘、 U盘、移动硬盘、只读存储器( ROM, Read-Only Memory )、 随机存取存储器(RAM, Random Access Memory ), 磁 碟或者光盘等的一种或多种。

存储器 33存储了如下的元素, 可执行模块或者数据结构, 或者它们的子 集, 或者它们的扩展集:

应用程序 331 包括各种应用程序, 例如图 1 所示的 Home、 Contacts, Browser等, 用于实现各种应用业务。

操作系统 332包括各种系统程序, 例如图 1所示的显示框架、 2D图形库 引擎、 显示合成层等, 用于实现各种基础业务以及处理基于硬件的任 务。

在本发明实施例中, CPU通过调用存储器 33中存储的程序(该程序可以 存储在操作系统 332中 ) , 执行如下操作:

接收当前帧的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及 所述绘图命令的参数; 根据所述当前帧的绘图命令集确定所述当前帧 的中央 处理器 CPU绘图时间和图形处理器 GPU绘图时间; 若所述 CPU绘图时间小 于所述 GPU绘图时间, 则使用 CPU31对所述当前帧进行绘制, 若所述 GPU 绘图时间小于所述 CPU绘图时间, 则使用 GPU32对所述当前帧进行绘制。 其中, 所述当前帧的绘图命令集可能来自于操作系统 332本身, 也可能来自 于应用程序 331。

具体地, CPU31遍历所述当前帧的绘图命令集中的每一条 图命令及该 条绘图命令的参数; 根据所述每一条绘图命令及该条绘图命令的参 数在预设 的性能表中查询, 获得与所述每一条绘图命令及该条绘图命令的 参数对应的 CPU绘图时间和 GPU绘图时间; 将所述当前帧的绘图命令集中每一条绘图 命令的 CPU绘图时间累加获得当前帧的 CPU绘图时间; 将所述当前帧的绘 图命令集中每一条绘图命令的 GPU绘图时间累加获得当前帧的 GPU绘图时 间。 若所述绘图命令集中的一条绘图命令及该条绘 图命令的参数在所述预设 的性能表中查询不到与之对应的 CPU绘图时间和 GPU绘图时间, 则根据该 条绘图命令及该条绘图命令的参数计算与之对 应的 CPU绘图时间和 GPU绘 图时间, 具体地, 启动计算进程; 将该条绘图命令及该条绘图命令的参数传 入所述计算进程; 由该计算进程同时计算与该条绘图命令及该条 绘图命令的 参数对应的 CPU绘图时间和 GPU绘图时间; 将计算获得的所述 CPU绘图时 间和 GPU绘图时间, 以及该条绘图命令及该条绘图命令的参数存储 到所述预 设的性能表中。 具体计算方法可以如下: 根据所述绘图命令与所述绘图命令 的参数, 通过所述 CPU和 GPU分别绘制与所述绘图命令及所述绘图命令的 参数对应的图像对象; 在所述 CPU和 GPU绘制所述与所述绘图命令及所述 绘图命令的参数对应的图像对象的过程中分别 记录所述 CPU和 GPU绘制所 述图像对象所使用的时间,其中所述记录的所 述 CPU绘制所述与所述绘图命 令及所述绘图命令的参数对应的图像对象所使 用的时间为与所述绘图命令及 所述绘图命令的^ t对应的 CPU绘图时间, 所述记录的所述 GPU绘制所述 与所述绘图命令及所述绘图命令的参数对应的 图像对象所使用的时间为与所 述绘图命令及所述绘图命令的参数对应的 GPU绘图时间。

其中, 预设的性能表可以存储在存储器 33中。 优选地, 预设的性能表存 储在掉电不丢失的存储器中。 在一些实现方式下, 存储器 33包括 RAM和磁 盘, 其中预设的性能表可以存储在磁盘中。

进一步的, CPU31还用于若使用 CPU对所述当前帧进行绘制, 则将当前 帧的 CPU绘制结果保存在位图图像中,若使用 GPU对所述当前帧进行绘制, 则将当前帧的 GPU绘制结果保存在纹理图像中;将所述位图图 像或纹理图像 中保存的绘制结果显示到屏幕上。

GPU32用于进行图形绘制; CPU31还用于进行图形绘制。

显示屏 34用于输出 CPU31或 GPU32绘制的图形。 显示屏 34可以同时 为触摸屏。

进一步的, 本发明实施例提供的终端设备还可以包括输入 设备 36, 用户 可以使用输入设备 36输入帧绘制命令, 在其它一些实施例中, 帧绘制命令也 可以来自于操作系统或应用程序。 输入设备 35可以实现为触摸屏、 鼠标、 键 盘等。 那么还可以包括通信接口、 声音输入 /输出设备(例如话筒 /扬声器)、 传感器 等。该手机终端中设置的应用程序还可以包括 GPS( Global Positioning System, 全球定位系统)、 视频、 音乐、 游戏、 浏览器等。

另外,如图 6所示各个模块通过总线 35连接,该总线可以是 ISA( Industry

Standard Architecture, 工业标准体系结构 )总线、 PCI ( Peripheral Component, 夕卜部设备互连 )总线或 EISA ( Extended Industry Standard Architecture, 扩展 工业标准体系结构) 总线等。 所述总线可以是一条或多条物理线路, 当是多 条物理线路时可以分为地址总线、 数据总线、 控制总线等。 在本发明其它一 些实现方式中,本发明实施例提供的各个模块 也可以不通过总线的方式连接, 而根据信号传递关系直接建立通信连接。 需说明的是,存储器 33中存储的程序的模块划分可以参考前述实施 的 模块划分方式, 也可以采用另外的模块划分方式。

可见, 本发明实施例提供的绘图方法、 装置以及终端, 通过接收当前帧 的绘图命令集, 所述绘图命令集包含一条或多条绘图命令及所 述绘图命令的 参数,根据所述当前帧的绘图命令集确定所述 前帧的 CPU绘图时间和 GPU 绘图时间, 若所述 CPU绘图时间小于所述 GPU绘图时间, 则使用 CPU对当 前帧进行绘制, 若所述 GPU绘图时间小于所述 CPU绘图时间, 则使用 GPU 对当前帧进行绘制, 实现根据 CPU/GPU方式对应的绘图时间动态决定采用 绘图时间较短的绘图方式, 从而一定程度上减少每一帧的绘图时间, 进而提 高系统的显示速度, 提升显示性能。 在 UI交互过程中, 可以极大地提升用户 体验。

进一步的, 通过选择采用位图图像或纹理图像的保存方式 , 实现根据不 同的绘图方式, 选择不同的渲染通道显示, 更加有效地提升了系统的显示性 能。

以上所描述的装置实施例仅仅是示意性的, 其中所述作为分离部件说明 的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或 者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络 单元上。 可以根据实际的需要选择其中的部分或者全部 模块来实现本实施例 方案的目的。 另外, 本发明提供的装置实施例附图中, 模块之间的连接关系 表示它们之间具有通信连接,具体可以实现为 一条或多条通信总线或信号线。 本领域普通技术人员在不付出创造性劳动的情 况下, 即可以理解并实施。

通过以上的实施方式的描述, 所属领域的技术人员可以清楚地了解到本 发明实施例所述的绘图装置可借助软件加必需 的通用硬件的方式来实现, 当 然也可以通过专用硬件包括专用集成电路、 专用 CPU、 专用存储器、 专用元 器件等来实现。 一般情况下, 凡由计算机程序完成的功能都可以很容易地用 相应的硬件来实现, 而且, 用来实现同一功能的具体硬件结构也可以是多 种 多样的, 例如模拟电路、 数字电路或专用电路等。

以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应以所述权利要求的保护范围为准。