CN103164839B - 一种绘图方法、装置及终端 - Google Patents
一种绘图方法、装置及终端 Download PDFInfo
- Publication number
- CN103164839B CN103164839B CN201310072936.0A CN201310072936A CN103164839B CN 103164839 B CN103164839 B CN 103164839B CN 201310072936 A CN201310072936 A CN 201310072936A CN 103164839 B CN103164839 B CN 103164839B
- Authority
- CN
- China
- Prior art keywords
- drawing command
- time
- cpu
- gpu
- parameter
- 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
- 238000000034 method Methods 0.000 claims description 44
- 239000012141 concentrate Substances 0.000 claims description 14
- 230000001186 cumulative effect Effects 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000003786 synthesis reaction Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000013517 stratification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明实施例涉及计算机技术。本发明实施例提供一种绘图方法、装置以及终端,通过接收当前帧的绘图命令集,所述绘图命令集包含一条或多条绘图命令及所述绘图命令的参数,根据所述当前帧的绘图命令集确定所述当前帧的CPU绘图时间和GPU绘图时间,若所述CPU绘图时间小于所述GPU绘图时间,则使用CPU对所述当前帧进行绘制,若所述GPU绘图时间小于所述CPU绘图时间,则使用GPU对所述当前帧进行绘制,实现根据CPU/GPU方式对应的绘图时间动态决定采用绘图时间较短的绘图方式,从而一定程度上减少每一帧的绘图时间,进而提高系统的显示速度,提升显示性能。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种绘图方法、装置及终端。
背景技术
2D(Two Dimensions,二维)图形库作为计算机操作系统的核心库,它所提供的各个绘图接口的性能直接影响系统对用户UI(User Interface,用户界面)操作响应的及时性。目前2D绘制有CPU(Central Processing Unit,中央处理器)和GPU(GraphicProcessing 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为本发明实施例提供的一种绘图方法的方法流程示意图;
图2b为本发明实施例提供的另一种绘图方法的方法流程示意图;
图3a为本发明实施例提供的再一种绘图方法的方法流程示意图;
图3b为本发明实施例提供的再一种绘图方法的方法流程示意图;
图4a为本发明实施例提供的一种绘图装置的结构示意图;
图4b为本发明实施例提供的另一种绘图装置的结构示意图;
图4c为本发明实施例提供的再一种绘图装置的结构示意图;
图5为本发明实施例提供的一种终端设备的结构示意图;
图6为本发明实施例提供的另一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图2a,为本发明实施例提供的一种绘图方法的方法流程示意图,本发明实施例提供的绘图方法可以应用于计算机系统中,该计算机系统可以位于一台物理主机上,也可以分布位于多台物理主机上。具体地,该计算机系统可以位于一台或多台计算机、便携式电脑、手持设备(例如手机,PAD等)、服务器等类型的终端上。
以图1为例介绍本发明实施例提供的绘图方法应用的终端的逻辑结构。该终端具体可以为一智能手机。如图所示,硬件层包括CPU和GPU,当然还可以包括存储器、输入/输出设备、网络接口等,在硬件层之上运行有操作系统Android以及一些应用程序。2D图形库引擎是操作系统的核心部分,包括实现CPU绘图的Skia和实现GPU绘图的openGL(OpenGraphics Library);除此之外,该终端还包括显示驱动层的显示驱动器;显示合成层的SurfaceFlinger;显示框架,包括view、widget以及canvas;以及应用层,该应用层包括Android操作系统常见的主界面Home、联系簿Contacts、浏览器Browser等。在此终端中,采用本发明实施例提供的绘图方法,可以根据当前帧的绘图命令集动态选取CPU绘图或GPU绘图,从而提供系统的绘图性能。
如图2a所示,本发明实施例提供的绘图方法包括:
S101、接收当前帧的绘图命令集,所述绘图命令集包含一条或多条绘图命令及所述绘图命令的参数。
所述绘图命令可以包括线性渐变、图片渐变,对应的参数可以包括区域大小、坐标、渐变颜色等;所述绘图命令还可以包括绘制方形或圆形或直线或曲线,对应的参数可以包括绘制的起始坐标和结束坐标、线条类型、线条粗细、线条颜色等。本领域技术人员应当理解,以上仅是举例,本发明实施例所述的绘图命令还可以包括任意一种计算机系统中会使用的任意一种绘图命令,其对应的参数也可以根据实际的参数需求来灵活确定,本发明实施例对此并不作限定。
S102、根据所述当前帧的绘图命令集中的一条或多条绘图命令及所述绘图命令的参数确定所述当前帧的CPU绘图时间和GPU绘图时间。
所述CPU绘图时间为CPU执行完所述当前帧的绘图命令集需要的时间;所述GPU绘图时间为GPU执行完所述当前帧的绘图命令集需要的时间。
S103、若所述CPU绘图时间小于所述GPU绘图时间,则使用CPU对所述当前帧进行绘制。
具体地,CPU绘图时间小于所述GPU绘图时间可以实现为:所述GPU绘图时间与所述CPU绘图时间的差值大于一定的阈值k1。例如CPU绘图时间为TCPU,GPU绘图时间为TGPU,则TGPU-TCPU=t1,t1>k1,其中,t1>0。
S104、若所述GPU绘图时间小于所述CPU绘图时间,则使用GPU对所述当前帧进行绘制。
具体地,GPU绘图时间小于所述CPU绘图时间可以实现为:所述CPU绘图时间与所述GPU绘图时间的差值大于一定的阈值k2。例如CPU绘图时间为TCPU,GPU绘图时间为TGPU,则TCPU-TGPU=t2,t2>k2,其中,t2>0。
值得注意的是,k1和k2可以分分别设置为一个具体的数值,也可以分别设置为一个数值范围。k1和k2可以设置为相同,也可以设置为不同。
需说明的是,若当前帧的CPU绘图时间和GPU绘图时间相等;或者,当前帧的CPU绘图时间和GPU绘图时间的差值的绝对值不超过某一特定阈值k3,例如可以设置k3=2;或者,当前帧的CPU绘图时间和GPU绘图时间的差值不属于某一特定区间k3,例如可以设置k3=[-2,2]或[-3,4],那么说明当前帧采用CPU绘制和采用GPU绘制的性能相近,那么可以根据当前系统的实际情况选择采取哪一种绘图,本发明实施例对此不作限定。
以图1为例,本发明实施例提供的绘图方法可以应用于2D图形库引擎层,在该层中根据CPU绘图时间和GPU绘图时间动态决定调用Skia提供的API(Application ProgramInterface,应用程序接口)实现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所示,该方法包括:
S201、接收当前帧的绘图命令集,所述绘图命令集中包含多条绘图命令及与这些绘图命令分别对应的绘图参数。
S202、遍历每一条绘图命令及该条绘图命令的参数。
S203、在预设的性能表中查询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-OnlyMemory)、随机存取存储器(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绘制所述与所述绘图命令及所述绘图命令的参数对应的图像对象所使用的时间为与所述绘图命令及所述绘图命令的参数对应的CPU绘图时间,所述记录的所述GPU绘制所述与所述绘图命令及所述绘图命令的参数对应的图像对象所使用的时间为与所述绘图命令及所述绘图命令的参数对应的GPU绘图时间。
其中,预设的性能表可以存储在存储器33中。优选地,预设的性能表存储在掉电不丢失的存储器中。在一些实现方式下,存储器33包括RAM和磁盘,其中预设的性能表可以存储在磁盘中。
进一步的,CPU31还用于若使用CPU对所述当前帧进行绘制,则将当前帧的CPU绘制结果保存在位图图像中,若使用GPU对所述当前帧进行绘制,则将当前帧的GPU绘制结果保存在纹理图像中;将所述位图图像或纹理图像中保存的绘制结果显示到屏幕上。
GPU32用于进行图形绘制;CPU31还用于进行图形绘制。
显示屏34用于输出CPU31或GPU32绘制的图形。显示屏34可以同时为触摸屏。
进一步的,本发明实施例提供的终端设备还可以包括输入设备36,用户可以使用输入设备36输入帧绘制命令,在其它一些实施例中,帧绘制命令也可以来自于操作系统或应用程序。输入设备35可以实现为触摸屏、鼠标、键盘等。
若本发明实施例提供的终端设备20或终端设备30实现为一个手机终端,那么还可以包括通信接口、声音输入/输出设备(例如话筒/扬声器)、传感器等。该手机终端中设置的应用程序还可以包括GPS(Global Positioning System,全球定位系统)、视频、音乐、游戏、浏览器等。
另外,如图6所示各个模块通过总线35连接,该总线可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral Component,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。在本发明其它一些实现方式中,本发明实施例提供的各个模块也可以不通过总线的方式连接,而根据信号传递关系直接建立通信连接。
需说明的是,存储器33中存储的程序的模块划分可以参考前述实施例的模块划分方式,也可以采用另外的模块划分方式。
可见,本发明实施例提供的绘图方法、装置以及终端,通过接收当前帧的绘图命令集,所述绘图命令集包含一条或多条绘图命令及所述绘图命令的参数,根据所述当前帧的绘图命令集确定所述当前帧的CPU绘图时间和GPU绘图时间,若所述CPU绘图时间小于所述GPU绘图时间,则使用CPU对当前帧进行绘制,若所述GPU绘图时间小于所述CPU绘图时间,则使用GPU对当前帧进行绘制,实现根据CPU/GPU方式对应的绘图时间动态决定采用绘图时间较短的绘图方式,从而一定程度上减少每一帧的绘图时间,进而提高系统的显示速度,提升显示性能。在UI交互过程中,可以极大地提升用户体验。
进一步的,通过选择采用位图图像或纹理图像的保存方式,实现根据不同的绘图方式,选择不同的渲染通道显示,更加有效地提升了系统的显示性能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明实施例所述的绘图装置可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种绘图方法,其特征在于,所述方法包括:
接收当前帧的绘图命令集,所述绘图命令集包含一条或多条绘图命令及所述绘图命令的参数;
根据所述当前帧的绘图命令集中的一条或多条绘图命令及所述绘图命令的参数确定所述当前帧的中央处理器CPU绘图时间和图形处理器GPU绘图时间,所述CPU绘图时间为CPU执行完所述当前帧的绘图命令集需要的时间,所述GPU绘图时间为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所述的方法,其特征在于,所述根据所述绘图命令及所述绘图命令的参数计算与所述绘图命令及所述绘图命令的参数对应的CPU绘图时间和GPU绘图时间,包括:
根据所述绘图命令与所述绘图命令的参数,使用所述CPU和所述GPU分别绘制与所述绘图命令及所述绘图命令的参数对应的图像对象;
在所述CPU和所述GPU绘制所述与所述绘图命令及所述绘图命令的参数对应的图像对象的过程中分别记录所述CPU和所述GPU绘制所述图像对象所使用的时间,其中所述记录的所述CPU绘制所述与所述绘图命令及所述绘图命令的参数对应的图像对象所使用的时间为与所述绘图命令及所述绘图命令的参数对应的CPU绘图时间,所述记录的所述GPU绘制所述与所述绘图命令及所述绘图命令的参数对应的图像对象所使用的时间为与所述绘图命令及所述绘图命令的参数对应的GPU绘图时间。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
若使用CPU对所述当前帧进行绘制,则将当前帧的CPU绘制结果保存在位图图像中,若使用GPU对所述当前帧进行绘制,则将当前帧的GPU绘制结果保存在纹理图像中;
将所述位图图像或纹理图像中保存的绘制结果显示到屏幕上。
6.一种绘图装置,其特征在于,所述装置包括:
接收模块,用于接收当前帧的绘图命令集,所述绘图命令集包含一条或多条绘图命令及所述绘图命令的参数;
确定模块,用于根据所述接收模块接收的当前帧的绘图命令集中的一条或多条绘图命令及所述绘图命令的参数确定所述当前帧的中央处理器CPU绘图时间和图形处理器GPU绘图时间,所述CPU绘图时间为CPU执行完所述当前帧的绘图命令集需要的时间,所述GPU绘图时间为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绘图时间,以及该条绘图命令及该条绘图命令的参数存储到所述预设的性能表中。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310072936.0A CN103164839B (zh) | 2013-03-07 | 2013-03-07 | 一种绘图方法、装置及终端 |
KR1020147012010A KR101623415B1 (ko) | 2013-03-07 | 2013-09-25 | 드로잉 방법, 장치, 및 단말 |
PCT/CN2013/084148 WO2014134912A1 (zh) | 2013-03-07 | 2013-09-25 | 一种绘图方法、装置及终端 |
JP2015503752A JP5963940B2 (ja) | 2013-03-07 | 2013-09-25 | 描画の方法、装置、および端末 |
EP13844577.0A EP2793185B1 (en) | 2013-03-07 | 2013-09-25 | Plotting method, device and terminal |
TW102149381A TWI604409B (zh) | 2013-03-07 | 2013-12-31 | 繪圖方法、裝置及終端機 |
US14/331,642 US9430810B2 (en) | 2013-03-07 | 2014-07-15 | Drawing method, apparatus, and terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310072936.0A CN103164839B (zh) | 2013-03-07 | 2013-03-07 | 一种绘图方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164839A CN103164839A (zh) | 2013-06-19 |
CN103164839B true CN103164839B (zh) | 2019-06-21 |
Family
ID=48587898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310072936.0A Active CN103164839B (zh) | 2013-03-07 | 2013-03-07 | 一种绘图方法、装置及终端 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9430810B2 (zh) |
EP (1) | EP2793185B1 (zh) |
JP (1) | JP5963940B2 (zh) |
KR (1) | KR101623415B1 (zh) |
CN (1) | CN103164839B (zh) |
TW (1) | TWI604409B (zh) |
WO (1) | WO2014134912A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164839B (zh) | 2013-03-07 | 2019-06-21 | 华为技术有限公司 | 一种绘图方法、装置及终端 |
GB2518846A (en) * | 2013-10-01 | 2015-04-08 | Ibm | Diagnosing graphics display problems |
CN104331858B (zh) * | 2014-11-24 | 2018-02-16 | 厦门美图之家科技有限公司 | 一种同时利用cpu和gpu进行图像处理的加速方法 |
US20160188279A1 (en) * | 2014-12-27 | 2016-06-30 | Intel Corporation | Mode-switch protocol and mechanism for hybrid wireless display system with screencasting and native graphics throwing |
CN105808342B (zh) * | 2014-12-30 | 2019-12-13 | 中国电信股份有限公司 | 用于分配客户请求的方法、判断装置和系统 |
CN104809684B (zh) | 2015-04-02 | 2018-03-27 | 华为技术有限公司 | 图形处理方法、装置及系统 |
CN105049609B (zh) * | 2015-06-29 | 2019-05-03 | 惠州Tcl移动通信有限公司 | 一种优化游戏画面的方法及系统 |
CN105279253B (zh) * | 2015-10-13 | 2018-12-14 | 上海联彤网络通讯技术有限公司 | 提升网页画布渲染速度的系统及方法 |
CN107153528A (zh) | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 混合模型列表项重用的方法及设备 |
JP6658136B2 (ja) * | 2016-03-14 | 2020-03-04 | コニカミノルタ株式会社 | 描画処理装置、画像処理装置、描画処理方法及び描画処理プログラム |
CN107203463B (zh) * | 2016-03-16 | 2021-10-08 | 斑马智行网络(香港)有限公司 | 界面测试的方法、界面绘制方法及装置 |
CN106502667B (zh) * | 2016-10-18 | 2019-09-03 | 广州视睿电子科技有限公司 | 一种渲染方法及装置 |
CN108269223B (zh) * | 2017-01-04 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 一种网页图形绘制方法及终端 |
WO2018143502A1 (ko) * | 2017-02-06 | 2018-08-09 | (주)볼트마이크로 | 데이터 포맷 변환 방법 |
CN108337465B (zh) * | 2017-02-09 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 视频处理方法和装置 |
CN108920412B (zh) * | 2018-06-20 | 2020-12-29 | 中国科学院计算技术研究所 | 针对异构计算机体系结构的算法自动调优方法 |
US11474824B1 (en) * | 2020-05-08 | 2022-10-18 | Corel Corporation | Performance benchmarking-based selection of processor for generating graphic primitives |
CN112346935B (zh) * | 2020-11-12 | 2024-08-27 | 腾讯科技(北京)有限公司 | 渲染耗时的获取、显示方法、性能监控方法、装置及设备 |
KR20220129337A (ko) | 2021-03-16 | 2022-09-23 | 주식회사 심률 | 아이드로우 서비스장치 및 그 장치의 구동방법 |
JP7499998B2 (ja) | 2022-05-17 | 2024-06-14 | 三菱電機株式会社 | 画像処理支援装置、画像処理支援方法及び画像処理支援プログラム |
CN115297359A (zh) * | 2022-07-29 | 2022-11-04 | 北京字跳网络技术有限公司 | 多媒体数据传输方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1445664A (zh) * | 2003-04-03 | 2003-10-01 | 浙江大学 | 计算机集群并行绘制系统中基于时空变换的负载平衡设计方法 |
CN101354780A (zh) * | 2007-07-26 | 2009-01-28 | Lg电子株式会社 | 图形数据处理设备和方法 |
CN101622646A (zh) * | 2007-02-28 | 2010-01-06 | 松下电器产业株式会社 | 图形描绘装置和图形描绘方法 |
CN101911111A (zh) * | 2007-11-30 | 2010-12-08 | 高通股份有限公司 | 在图形系统中使用二级处理器的系统和方法 |
CN102810133A (zh) * | 2012-05-15 | 2012-12-05 | 北京像素软件科技股份有限公司 | 网络游戏中的射线查询方法和场景服务器 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3639108B2 (ja) | 1998-03-31 | 2005-04-20 | 株式会社ソニー・コンピュータエンタテインメント | 描画装置および描画方法、並びに提供媒体 |
JP4071422B2 (ja) * | 2000-06-28 | 2008-04-02 | 株式会社東芝 | モーションブラー画像描画方法及び描画装置 |
US7671862B1 (en) * | 2004-05-03 | 2010-03-02 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7558428B2 (en) * | 2004-09-13 | 2009-07-07 | Microsoft Corporation | Accelerated video encoding using a graphics processing unit |
CN101091175B (zh) * | 2004-09-16 | 2012-03-14 | 辉达公司 | 负载均衡 |
CN1298049C (zh) | 2005-03-08 | 2007-01-31 | 北京中星微电子有限公司 | 一种图形引擎芯片及其应用方法 |
JP2007105917A (ja) * | 2005-10-11 | 2007-04-26 | Canon Inc | プリンタ装置 |
US8108844B2 (en) * | 2006-06-20 | 2012-01-31 | Google Inc. | Systems and methods for dynamically choosing a processing element for a compute kernel |
US8286196B2 (en) | 2007-05-03 | 2012-10-09 | Apple Inc. | Parallel runtime execution on multiple processors |
US7843462B2 (en) * | 2007-09-07 | 2010-11-30 | Seiko Epson Corporation | System and method for displaying a digital video sequence modified to compensate for perceived blur |
US8130232B2 (en) * | 2008-06-17 | 2012-03-06 | Nuvoton Technology Corporation | Drawing control method, drawing control apparatus, and drawing control system for embedded system |
GB2462860B (en) * | 2008-08-22 | 2012-05-16 | Advanced Risc Mach Ltd | Apparatus and method for communicating between a central processing unit and a graphics processing unit |
CN101706741B (zh) * | 2009-12-11 | 2012-10-24 | 中国人民解放军国防科学技术大学 | 一种基于负载平衡的cpu和gpu两级动态任务划分方法 |
US8669990B2 (en) | 2009-12-31 | 2014-03-11 | Intel Corporation | Sharing resources between a CPU and GPU |
JP2012003619A (ja) | 2010-06-18 | 2012-01-05 | Sony Corp | 情報処理装置、情報処理装置の制御方法、およびプログラム |
US8681162B2 (en) | 2010-10-15 | 2014-03-25 | Via Technologies, Inc. | Systems and methods for video processing |
US20120159090A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Scalable multimedia computer system architecture with qos guarantees |
US9465660B2 (en) * | 2011-04-11 | 2016-10-11 | Hewlett Packard Enterprise Development Lp | Performing a task in a system having different types of hardware resources |
KR101845328B1 (ko) * | 2011-08-22 | 2018-04-04 | 삼성전자 주식회사 | 단말 및 그 단말에서 어플리케이션 수행 방법 |
CN102521050A (zh) * | 2011-12-02 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种面向cpu和gpu的混合调度方法 |
CN102945560B (zh) * | 2012-08-21 | 2015-05-06 | 浙江大学 | 一种并行的可编程运动特效绘制方法 |
CN103164839B (zh) * | 2013-03-07 | 2019-06-21 | 华为技术有限公司 | 一种绘图方法、装置及终端 |
-
2013
- 2013-03-07 CN CN201310072936.0A patent/CN103164839B/zh active Active
- 2013-09-25 JP JP2015503752A patent/JP5963940B2/ja active Active
- 2013-09-25 WO PCT/CN2013/084148 patent/WO2014134912A1/zh unknown
- 2013-09-25 EP EP13844577.0A patent/EP2793185B1/en active Active
- 2013-09-25 KR KR1020147012010A patent/KR101623415B1/ko active IP Right Grant
- 2013-12-31 TW TW102149381A patent/TWI604409B/zh active
-
2014
- 2014-07-15 US US14/331,642 patent/US9430810B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1445664A (zh) * | 2003-04-03 | 2003-10-01 | 浙江大学 | 计算机集群并行绘制系统中基于时空变换的负载平衡设计方法 |
CN101622646A (zh) * | 2007-02-28 | 2010-01-06 | 松下电器产业株式会社 | 图形描绘装置和图形描绘方法 |
CN101354780A (zh) * | 2007-07-26 | 2009-01-28 | Lg电子株式会社 | 图形数据处理设备和方法 |
CN101911111A (zh) * | 2007-11-30 | 2010-12-08 | 高通股份有限公司 | 在图形系统中使用二级处理器的系统和方法 |
CN102810133A (zh) * | 2012-05-15 | 2012-12-05 | 北京像素软件科技股份有限公司 | 网络游戏中的射线查询方法和场景服务器 |
Also Published As
Publication number | Publication date |
---|---|
WO2014134912A1 (zh) | 2014-09-12 |
TW201435798A (zh) | 2014-09-16 |
KR101623415B1 (ko) | 2016-05-23 |
US9430810B2 (en) | 2016-08-30 |
EP2793185A1 (en) | 2014-10-22 |
EP2793185B1 (en) | 2018-04-11 |
JP5963940B2 (ja) | 2016-08-03 |
TWI604409B (zh) | 2017-11-01 |
US20140327686A1 (en) | 2014-11-06 |
JP2015520881A (ja) | 2015-07-23 |
KR20140133807A (ko) | 2014-11-20 |
CN103164839A (zh) | 2013-06-19 |
EP2793185A4 (en) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164839B (zh) | 一种绘图方法、装置及终端 | |
KR101980990B1 (ko) | 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용 | |
CN110211218B (zh) | 画面渲染方法和装置、存储介质及电子装置 | |
KR101952983B1 (ko) | 콘텐트의 타일-기반 렌더링을 위한 방법 및 콘텐트를 렌더링하기 위한 시스템 | |
KR102104996B1 (ko) | 중앙 연산 장치(cpu)와 그래픽 연산 유닛(gpu)을 위한 하이브리드 엔진 | |
JP2014533382A (ja) | グラフィックス処理ユニットにおけるレンダリングモード選択 | |
CN108399646B (zh) | 一种图像渲染方法及装置 | |
CN113470092B (zh) | 地形的渲染方法和装置、电子设备和存储介质 | |
CN109544658A (zh) | 地图的渲染方法和装置、存储介质、电子装置 | |
WO2015180448A1 (zh) | 移动终端播放方式切换方法、装置、存储介质和程序 | |
CN105466414A (zh) | 一种导航路线的推荐方法及服务器 | |
CN109697733A (zh) | 点云空间寻点方法、装置、计算机设备和存储介质 | |
KR20130097886A (ko) | 렌더링 장치 및 그 방법 | |
CN114758034A (zh) | 地图生成方法、装置、计算机可读存储介质及电子设备 | |
CN107301045B (zh) | 窗口显示方法及装置 | |
CN109657023B (zh) | 景区动态电子地图绘制方法、服务器及系统 | |
EP2911045A1 (en) | Method and device for controlling switching of virtual navigation bar | |
CN104504218A (zh) | 一种cad图形处理方法、装置及cad软件插件 | |
CN103700362A (zh) | 多信号窗口显示方法及装置 | |
CN111200705B (zh) | 图像处理方法和装置 | |
CN110852936B (zh) | 对图片进行混合处理的方法和装置 | |
CN106296564B (zh) | 嵌入式soc片上系统 | |
CN104461480B (zh) | 一种信息处理方法及电子设备 | |
CN113487708B (zh) | 基于图形学的流动动画实现方法、存储介质及终端设备 | |
CN112346813B (zh) | 操作列表的控制方法、装置 |
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 |