一种基于位图缓存的矢量图形显示的加速方法

文档序号:6467664阅读:190来源:国知局
专利名称:一种基于位图缓存的矢量图形显示的加速方法
技术领域
本发明涉及Flash领域,特别涉及一种播放Flash(swf文件)时基于位图缓存的 矢量图形显示的加速方法,尤其是在cpu速度受限的嵌入式设备上。
背景技术
矢量图形,是一种用数学函数来描述图形位置、大小、形状、色彩的格式。矢 量图使用直线和曲线来描述图形,基本组成元素是点、线、矩形、多边形、圆和弧 线等,它们都是通过数学公式计算获得的,所以矢量图形文件体积一般比较小。矢 量图形的优点是无论放大、缩小或旋转等都不会失真,矢量图与位图的最大区别是 它不受分辨率影响,在显示或输出图像时,放大和縮小不会影响图像的品质。
Flash (swf文件)是adobe公司一种基于矢量图像的动画。动画以帧为单位, 帧之间独立且间隔时间大约20 100ms,每帧上的可视对象都是定义的矢量图形,因 此每帧动画的显示过程分为两步首先对所有矢量图形进行实时渲染,将矢量图像 解析为基于像素点的位图,然后将得到对应的位图显示在设备上。
现在各种常用图形系统都支持对矢量图形的渲染解析,但是矢量动画的渲染对 处理器的速度要求很高。 一个图形轮廓边缘比较复杂的矢量图形的渲染速度通常很 慢,因为图像中每个象素点的值都是经过复杂的数学运算计算得到。 一般来说在个 人PC上,渲染速度可以达到实时显示的要求,但是在嵌入式设备上,各种图形系 统对矢量动画的渲染速度非常慢,矢量动画往往由于渲染速度问题不能实时显示。 本专利发明为了解决在嵌入式设备上矢量动画的渲染速度问题,采用一种使用位图 缓存的加速方法,使flash文件在嵌入式环境下正常显示。

发明内容
为了克服上述现有技术的问题,本发明提出了一种基于位图缓存的矢量图形显 示的加速方法,加速矢量动画在嵌入式环境下的显示速度。在实际的flash文件中, 矢量图形经常在多帧出现,如果每帧都对这些矢量图形进行渲染,会耗费大量的时 间。而如果把第一次渲染之后的位像按照规定策略缓存起来,在以后显示的时 候直接使用位图缓存可以提高渲染速度。
为了达到上述目的,本发明提供了一种基于位图缓存的矢量图形显示的加速方
3法,在矢量动画的播放过程中,将连续显示的复杂矢量对象的渲染结果缓存,当显 示对象再次出现时,取出对应的位图缓存对象,经过数学变换操作,直接显示在指 定位置。
其中,在矢量动画渲染播放之前,还包括预缓存策略,所述预缓存策略是在swf
文件解析过程中,遍历所有帧上的所有不同的矢量显示对象,预先渲染超复杂矢量
图像,并将其对应的位图对象缓存;所述超复杂矢量图像的轮廓曲线数目大于60。 预缓存策略避免了在播放过程中实时渲染,提高了动画总体渲染速度。
其中,在矢量动画渲染播放时,该加速方法包括缓存选择策略和缓存使用策略。 所述缓存选择策略是根据矢量显示对象连续出现的帧数目和描述矢量对象图像 轮廓的曲线数目,判定该对象是否被缓存,如果矢量显示对象连续超过3帧、图像 轮廓的曲线数目为30 60,则该矢量显示对象为复杂的连续矢量对象并将其对应的 位图对象缓存。
所述缓存使用策略是取出位图缓存对象时,将位图缓存对象进行平移、放大、 縮小、旋转或颜色渐变的数学变换操作。如果是平移操作,直接拷贝位图到指定位 置;如果是放大时,需要做插值处理;如果是縮小操作,需要做亚采样处理,如果 是旋转操作,需要改变采样方向;如果是颜色渐变,需要进行颜色变换。经过各种 变换操作后的位图数据可以用于显示对象的显示。
其中,该加速方法还包括缓存压縮保存策略,所述缓存压缩保存策略是在嵌入 式环境内存受限制的情况下,位图缓存对象采用简单的游程编码压縮算法保存。
其中,该加速方法还包括缓存替换策略,所述缓存替换策略是指在缓存空间不 足时,采用最近使用策略和缓存优先级策略整理缓存空间;所述最近使用策略指所 有位图缓存对象有一个成员标识最近被使用帧号,每次删除最久未使用的帧;所述 优先级策略指所有位图缓存对象有一个成员标识该缓存的优先级大小,首先淘汰优 先级低的缓存;所述优先级的大小由描述该位图缓存对象对应的矢量图像的轮廓曲 线数目与该位图缓存对象占用空间的大小的比值确定。
本发明的优点在于
1、 本发明提供的基于位图缓存的矢量图形显示的加速方法,由于增加了位图缓 存,矢量图像在渲染时,可以省去大量计算,节省了多次渲染矢量图像的时间,加 快了矢量动画的显示速度。
2、 本发明提供的基于位图缓存的矢量图形显示的加速方法,在不同的嵌入式环 境下,内存容量和处理速度可能不一样,可以根据内存容量大小调节缓存容量的大 小,根据处理速度不同更改复杂图像边缘曲线数目的门限值,最好的发挥位图缓存
4系统的作用。
3、 本发明提供的基于位图缓存的矢量图形显示的加速方法,该加速方法的缓存 系统的操作比较简单,每个位图缓存对象只需要保存该位图对象对应矢量对象的ID 号,长宽和位图数据,以及用于淘汰策略的优先级和最近使用帧号,用一个简单的 链表就可以实现所用功能。
4、 本发明提供的基于位图缓存的矢量图形显示的加速方法,该加速方法对矢量 动画具体渲染步骤以及播放流程透明,不影响矢量动画的播放过程,可以作为可选 项和其他加速方法一起使用。


图1现有技术的矢量动画的播放过程;
图2本发明的位图缓存方法的工作流程图。
具体实施例方式
本发明提出了一种基于位图缓存的矢量图形显示的加速方法,加速矢量动画在 嵌入式环境下的显示速度。在实际的flash文件中,矢量图形经常在多帧出现,如果 每帧都对这些矢量图形进行渲染,会耗费大量的时间。而如果把第一次渲染之后的 图像按照规定策略缓存起来,在以后显示的时候直接使用缓存的图像可以提高渲染 速度。
如图1所示是传统矢量动画的渲染过程。矢量动画有许多帧组成,每帧之间播 放时间间隔为t,帧中定义的图形对象先经过预解析成矢量对象,在帧播放间隔时间 t内,图形系统必须渲染所有矢量图像对象,最后把位图结果显示出来。这个过程中, 为了提高显示速度,我们可以将复杂图形预先渲染并保存为位图(主动缓存策略), 那么图形系统渲染复杂矢量对象的时候,我们可以直接取出复杂图形的缓存位图, 经过适当变换就可以直接显示出来。
如图2所示是位图缓存方法的工作流程图。首先在矢量动画的解析过程中,矢 量动画播放之前,根据预先缓存策略,预先渲染超复杂矢量图形(轮廓边缘数目>60 ), 并将位图缓存起来。在矢量动画播放过程中,图形系统收到一个矢量图形的渲染请 求之后,并不直接渲染,首先判断该矢量图形是否己经缓存过,如果已经缓存,取 出位图缓存,在进行必要处理操作以后直接显示出来;如果没有缓存首先根据缓 存选择策略判断是否可缓存,如果不需要缓存,直接渲染并显示;如果需要缓存, 首先检查缓存空间大小,在缓存空间不足时按照最近使用策略和优先级策略整理位图缓存对象,然后渲染矢量图形,将渲染后的位图缓存对象采用压縮保存,然后显 示出来。
基于位图缓存的加速方法可以描述为以下流程
a) 采用预先缓存策略对所有显示对象预处理,将超复杂对象预渲染后得到的位
图数据缓存。
b) 矢量动画在播放过程中渲染时,将复杂的连续对象渲染得到的位图数据缓存。
c) 位图缓存对象采用压缩保存策略。
d) 釆用最近使用策略和缓存优先级策略管理位图缓存对象。
e) 显示对象再次出现时,不再进行渲染计算,取出对应的位图缓存对象,经 过简单处理,直接显示在指定位置。
在上述方法中,显示对象是指在矢量动画中出现的矢量图像对象,每个对象都 是独立的实体,具有颜色、形状、轮廓、大小和屏幕位置等属性。可以在维持它原 有分辨率和曲率的同时,独立的进行移动和属性的改变,而不会影响其它对象。
在上述方法中,连续对象是指在flash动画中,某个显示对象在此后连续的几帧 或几十帧中,保持原位置或者进行平移、缩放、旋转操作或者进行颜色变换。据统 计,在实际的FLASH动画中,超过卯%的对象属于连续对象。复杂对象是指描述 图像轮廓的曲线数目比较多的矢量对象,这些矢量图像的渲染速度很慢。据统计, 20%的复杂对象占用了 70%的渲染时间,而且大部分复杂图形都是小尺寸图形。而 复杂的连续对象是指在矢量动画中,连续数帧出现的图像轮廓比较复杂的矢量对象, 超复杂对象是指特别复杂(描述图像轮廓的曲线数目>60)的矢量对象。对于复杂对 象,会耗费大量的渲染时间。
在上述方法中,位图缓存对象是指矢量图形经过图形系统渲染后将要直接显示 出来的图像数据,以象素点为单位保存成位图。
在上述方法的(a)部分中,预先缓存策略指的是swf文件在解析过程中,动画渲 染之前提前渲染并缓存所有帧中的超复杂对象,避免在播放过程中实时渲染,提高 动画总体渲染速度。
在上述方法的(b)部分中,通过统计显示对象连续出现的帧数目和描述图像轮廓 的曲线数目,可以判定该对象是否应该被缓存。如果属于复杂的连续对象,把该矢 量对象被渲染后得到的位图数据保存到的缓存系统中。
在上述方法的(C)部分中,缓存压縮保存策略是指在嵌入式环境内存受限制的
情况下,位图采用简单的游程编码压缩算法(RLE)保存。在空间一定的条件下,增加位图缓存对象数目。
在上述方法的(d)部分中,由于一般嵌入式平台的资源受限,无法缓存太多的图 形。在缓存总量大小限制的条件下,当增加新的位图缓存对象导致缓存空间不足时, 采用最近使用策略和缓存优先级策略机制管理位图缓存对象。最近使用策略指所有 位图缓存对象有一个成员标识最近被使用帧号,每次删除最久未使用的帧。优先级 策略指所有位图缓存对象有一个成员标识该缓存的优先级大小,当缓存空间不足的 时候,首先淘汰优先级低的缓存。优先级的大小由描述该位图缓存对象对应的矢量 图像的轮廓曲线数目与该位图缓存对象占用空间大小的比值确定,比值越大优先级 越高。
在上述方法的(e)部分中,如果显示对象再次要被渲染而且对应缓存存在时,不 需要再进行渲染计算,可利用对应的位图缓存对象。显示对象相对于其初次被缓存 时的属性,可能会平移、放大、縮小、旋转或者颜色渐变等操作,所以不能直接使 用缓存数据。如果是平移操作,直接拷贝位图到指定位置;如果是放大时,需要做 插值处理;如果是缩小操作,需要做亚采样处理,如果是旋转操作,需要改变采样 方向;如果是颜色渐变,需要进行颜色变换。经过各种变换操作后的位图数据可以 用于显示对象的显示。
权利要求
1、一种基于位图缓存的矢量图形显示的加速方法,其特征在于,在矢量动画的播放过程中,将连续显示的复杂矢量对象的渲染结果缓存,当显示对象再次出现时,取出对应的位图缓存对象,经过数学变换操作,直接显示在指定位置。
2、 根据权利要求1所述的加速方法,其特征在于,在矢量动画渲染播放之前,还包括预缓存策略,所述预缓存策略是在swf文件解析过程中,遍历所有帧上的所有不同的矢量显示对象,预先渲染超复杂矢量图像,并将其对应的位图对象缓存;所述超复杂矢量图像的轮廓曲线数目大于60。
3、 根据权利要求1所述的加速方法,其特征在于,在矢量动画渲染播放时,该加速方法包括缓存选择策略和缓存使用策略;所述缓存选择策略是根据矢量显示对象连续出现的帧数目和描述矢量对象图像轮廓的曲线数目,判定该对象是否被缓存,如果矢量显示对象连续超过3帧、图像轮廓的曲线数目为30 60,则该矢量显示对象为复杂的连续矢量对象,并将其对应的位图对象缓存;所述缓存使用策略是取出位图缓存对象时,将位图缓存对象进行平移、放大、缩小、旋转或颜色渐变的数学变换操作。
4、 根据权利要求1所述的加速方法,其特征在于,该加速方法还包括缓存压縮保存策略,所述缓存压缩保存策略是在嵌入式环境内存受限制的情况下,位图缓存对象采用简单的游程编码压縮算法保存。
5、 根据权利要求1所述的加速方法,其特征在于,该加速方法还包括缓存替换策略,所述缓存替换策略是指在缓存空间不足时,采用最近使用策略和缓存优先级策略整理缓存空间;所述最近使用策略指所有位图缓存对象有一个成员标识最近被使用帧号,每次删除最久未使用的帧;所述优先级策略指所有位图缓存对象有一个成员标识该缓存的优先级大小,首先淘汰优先级低的缓存;所述优先级的大小由描述该位图缓存对象对应的矢量图像的轮廓曲线数目与该位图缓存对象占用空间的大小的比值确定。
全文摘要
本发明涉及一种基于位图缓存的矢量图形显示的加速方法,该方法在矢量动画的播放过程中,将连续显示的复杂矢量对象的渲染结果缓存,当显示对象再次出现时,取出对应的位图缓存对象,经过变换操作,直接显示在指定位置。该加速方法包括预缓存策略,缓存选择策略,缓存使用策略,缓存压缩保存策略和缓存替换策略。其优点在于省去大量计算,节省渲染矢量图像的时间,加快显示速度;根据嵌入实式设备的内存大小和处理速度的不同,调整缓存容量大小和复杂图形的边缘曲线门限达到最佳效果;操作简单,只保存矢量对象的ID号,长宽,位图数据,优先级和最近使用帧号,用一个简单的链表即可实现;渲染步骤及播放流程透明,不影响矢量动画的播放过程。
文档编号G06T1/60GK101470893SQ20081017252
公开日2009年7月1日 申请日期2008年10月29日 优先权日2007年12月26日
发明者建 刘, 孙晓辉, 春 王, 王劲林, 冰 胡, 晓 陈 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1