一种图像渲染方法及装置的制造方法

文档序号:9668097阅读:246来源:国知局
一种图像渲染方法及装置的制造方法
【技术领域】
[0001]本发明涉及图像处理技术领域,尤其涉及一种图像渲染方法及装置。
【背景技术】
[0002]目前,安卓Android系统的软件应用的界面可以使用CPU或GPU进行渲染,常规的渲染操作是直接将场景呈现到一块内存中,场景通过绘制函数载入显存后,再送至显示器进行显示。而为了实现一些特殊的效果,比如常见的环境映射,就需要渲染到纹理,进行纹理清染操作。清染操作通常依赖于两个核心组件:中央处理器(Central Processing Unit,简称为“CPU”)以及图形处理器(Graphic Processing Unit,简称为“GPU”),CPU负责包括测量(Measure)、布局(Layout)、记录(Record)、执行(Execute)等计算操作,GPU负责栅格化(Rasterizat1n)等操作。栅格化是绘制位图(Bitmap)组件的基础操作,通过栅格化可以把Bitmap组件拆分到不同的像素上进行显示。
[0003]在实际应用中,进行图像渲染操作时,一般会保存两份数据,其分别保存在Java虚拟机分配的内存和GPU分配的内存中。具体的,Android系统对图像进行处理时会通过函数将位图数据存储在Java虚拟机分配的内存中;而GPU设备驱动运行在自己分配的空间,由此在采用GPU来渲染位图数据时,需要将Java虚拟机中的位图图像复制拷贝至该GPU分配的空间,以进行图像渲染,其占用的是GPU额外分配的内存。也就是说,目前在进行图像渲染时,Java虚拟机分配的内存和GPU分配的内存均保存了一份位图数据,这就造成了内存空间的浪费。而且,在目前的图像渲染操作下Java虚拟机和GPU均需要对内存进行分配,内存分配的频繁触发容易导致进程出现频繁卡顿的现象,并且将Java虚拟机分配的内存中的位图拷贝将GPU额外分配的内存中需要花费较长的时间。

【发明内容】

[0004]本发明实施例提供了一种图像渲染方法及装置,能够节省内存空间,避免因内存频繁分配而导致进程频繁卡顿的问题,并且能够提高图像渲染的效率。
[0005]本发明实施例公开了一种图像渲染方法,包括:
[0006]图形处理器GPU接收中央处理器CPU发送的渲染图像的指令,所述指令包含待渲染的图像的标识;
[0007]所述GPU在能被应用程序和所述GPU访问的内存空间中读取与所述标识对应的位图图像;
[0008]所述GPU对所述位图图像进行渲染。
[0009]可选的,所述GPU对所述位图图像进行渲染,包括:
[0010]所述GPU将所述位图图像作为纹理图像进行渲染。
[0011 ] 可选的,在所述GPU在能被应用程序和所述GPU访问的内存空间中读取与所述标识对应的位图图像之前,所述方法还包括:
[0012]创建所述能被应用程序和所述GPU访问的内存空间。
[0013]可选的,所述方法还包括:
[0014]所述CPU在所述能被应用程序和所述GPU访问的内存空间中存储所述位图图像。
[0015]可选的,所述能被应用程序和所述GPU访问的内存空间为图形内存管理设备Ι0Ν创建的内核空间。
[0016]相应地,本发明实施例还公开了一种图像渲染装置,包括:
[0017]指令接收单元,用于接收中央处理器CPU发送的渲染图像的指令,所述指令包含待渲染的图像的标识;
[0018]图像读取单元,用于在能被应用程序和所述GPU访问的内存空间中读取与所述标识对应的位图图像;
[0019]图像渲染单元,用于对所述图像读取单元读取的所述位图图像进行渲染。
[0020]可选的,所述图像渲染单元具体用于:
[0021]将所述位图图像作为纹理图像进行渲染。
[0022]可选的,所述装置还包括:
[0023]创建单元,用于创建所述能被应用程序和所述GPU访问的内存空间。
[0024]可选的,所述装置还包括:
[0025]存储单元,用于在所述能被应用程序和所述GPU访问的内存空间中存储所述位图图像。
[0026]可选的,所述能被应用程序和所述GPU访问的内存空间为图形内存管理设备Ι0Ν创建的内核空间。
[0027]实施本发明实施例,具有如下有益效果:
[0028]在本发明实施例中,GPU可在接收到渲染图像的指令时,根据该指令携带的待渲染图像的标识从预置的应用程序及GPU均能访问的内存空间中读取该标识对应的位图图像,并对读取的该位图图像进行渲染处理。本发明实施例的所述图像渲染方法仅需要将位图图像保存在应用程序及GPU均能访问的内存空间,而无需再保存两份数据,从而节省了内存空间,并且GPU通过读取该空间的位图图像,而不需拷贝图像,因此提升了图形渲染效率,避免了因内存分配的频繁触发而导致进程频繁卡顿的问题。
【附图说明】
[0029]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1是本发明实施例提供的一种图像渲染方法的流程示意图;
[0031]图2是本发明实施例提供的另一种图像渲染方法的流程示意图;
[0032]图3是本发明实施例提供的一种图像渲染装置的结构示意图;
[0033]图4是本发明实施例提供的另一种图像渲染装置的结构示意图;
[0034]图5是本发明实施例提供的一种终端的结构示意图。
【具体实施方式】
[0035]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]本发明实施例公开了一种图像渲染方法、装置及终端,能够节省内存空间,避免因内存分配的频繁触发而导致进程频繁卡顿的问题。以下分别详细说明。
[0037]请参阅图1,图1是本发明实施例提供的一种图像渲染方法的流程示意图,具体的,如图1所示,本发明实施例的所述图像渲染方法可以包括以下步骤:
[0038]101:图形处理器GPU接收中央处理器CPU发送的渲染图像的指令,所述指令包含待渲染的图像的标识。
[0039]应理解,本发明实施例的所述方法可应用于配置有GPU的终端中。该终端可以包括但不限于智能手机(如Android手机、1S手机等)、平板电脑、移动互联网设备(MobileInternet Devices,简称 “MID”)、个人数字助理(Personal Digital Assistant,简称“PDA”)、个人电脑等等。
[0040]具体的,可以在终端接收到用户打开图像的操作后,终端中的CPU生成渲染图像的指令,并将该指令发送给终端中的GPU。
[0041 ] 其中,所述待渲染的图像的标识可以是需要渲染的图像的名称、图像ID (identificat1n)、存储路径等等,本发明实施例不做限定。
[0042]102:所述GPU在能被应用程序和所述GPU访问的内存空间中读取与所述标识对应的位图图像。
[0043]在Linux系统中,一部分核心软件独立于普通应用程序,运行在较高的特权级别上,它们可驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,Linux将此称为内核空间。相应地,应用程序则是在“用户空间”中运行。运行在用户空间的应用程序仅能使用允许的部分系统资源,并且不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备。由此,为满足一些特殊需求,可预先创建得到一个内存空间,该内存空间为应用程序及该GPU均能访问的空间,例如,该内存空间可以是图形内存管理设备Ι0Ν预先申请的内核(Kernel)空间。从而在进行图像渲染操作时无需再通过用户空间即Java虚拟机分配的内存和GPU分配的内存来存储双份位图数据,而仅需在该应用程序和GPU均能访问的内存空间存储
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1