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

技术编号:3628939 阅读:208 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于位图缓存的矢量图形显示的加速方法,该方法在矢量动画的播放过程中,将连续显示的复杂矢量对象的渲染结果缓存,当显示对象再次出现时,取出对应的位图缓存对象,经过变换操作,直接显示在指定位置。该加速方法包括预缓存策略,缓存选择策略,缓存使用策略,缓存压缩保存策略和缓存替换策略。其优点在于:省去大量计算,节省渲染矢量图像的时间,加快显示速度;根据嵌入实式设备的内存大小和处理速度的不同,调整缓存容量大小和复杂图形的边缘曲线门限达到最佳效果;操作简单,只保存矢量对象的ID号,长宽,位图数据,优先级和最近使用帧号,用一个简单的链表即可实现;渲染步骤及播放流程透明,不影响矢量动画的播放过程。

【技术实现步骤摘要】

本专利技术涉及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) 显示对象再次出现时,不再进行渲染计算,取出对应的位图缓存对象,经 过简单处理,直接显示在指定位置。在上述方法中,显示对象是指本文档来自技高网...

【技术保护点】
一种基于位图缓存的矢量图形显示的加速方法,其特征在于,在矢量动画的播放过程中,将连续显示的复杂矢量对象的渲染结果缓存,当显示对象再次出现时,取出对应的位图缓存对象,经过数学变换操作,直接显示在指定位置。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:王劲林刘建胡冰王春孙晓辉陈晓
申请(专利权)人:中国科学院声学研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利