一种二维矢量图形的硬件优化渲染算法
来源:六九路网
Computer Engineering andApplications计算机工程与应用 一种二维矢量图形的硬件优化渲染算法 媛 ,杨迪威 沈永珞 ,章SHEN Yong-luo ,ZHANG Yuan2,YANG Di—wei 1.中国地质大学机械与电子信息学院,武汉430074 2.高丽大学计算机与情报学院,首尔136701,韩国 3_中国地质大学数学与物理学院,武汉430074 1.Faculty of Mechanical&Electronic Information,China Unversity of Geosciences,Wuhall 430074.China 2.Korea University。Seoul。136701,Korea 3.School of Mathematics and Physics,China Unversity of Geosciences,Wuhan 430074,China E.mail:sylkyo@hotmail.corn SHEN Yong-luo,ZHANG Yuan,YANG Di-wei.2D vector graphics rendering algorithm with low hardware cost for sn— persampHng antialiasing.Computer Engineering and Applications。2010。46(31):19・21. Abstract:This paper proposes a low hardware cost 2D vector graphics rendering algorithm which is based on common edge—flag rendering algorithm.The proposed algorithm only uses one counter per pixel instead of multiple counters for supers- ampling.Compared to the common rendering algoritm,thhe proposed one uses about 83%less memo ̄capaciy ftor a scan— line-sized buffer and saves nearly 65%of the memo ̄accesses performed in implementng tihe 8-Queen supersampling algo- itrhm for XVGA panels.Experiments show that the proposed algorithm performs antialiasing wih faitrly good qualiy as wel1.t Key words:2D vecmr graphics;rendering algorithm;supersampling;antialiasing 摘要:提出了一种适用于嵌入式设备的二维矢量图形硬件优化渲染算法。在采用超采样反锯齿模式下,该算法中每个像素点 只使用一个方向权重计数器,而并非以往算法中每个像素点使用多个计数器,从而达到节省硬件资源,并大幅减少渲染所需计算 量的效果。实验结果表明,和以往算法相比,在8-queen超采样模式和XVGA显示大小下,能节省83%的存储器使用量和65%的 存储器访问量,并且能取得较好的反锯齿效果。 关键词:二维矢量图形;渲染算法;超采样;反锯齿 DOI:10.3778/j.issn.1002.8331.2010.31.005 文章编号:l002.8331(2010)31-0019.03 文献标识码:A 中图分类号:TP391 1引言 自从2005年Khronos发布针对于嵌入式设备优化的Open. VG(http://www.kt ̄onos.org/openvg/)矢量图形标准后,矢量图 形成为图形显示领域的研究热点。在矢量图形的渲染过程中 所渲染面积上的每一个像素点都需要至少一个计数器来存储 各条边的方向信息。在硬件资源有限的嵌入式设备中,通常 只有片外存储器(sD )才具备如此大量的存储空间。但 SDRAM的存储时间开销通常将会达到几十甚至几百个时钟 仅仅依靠有限的图形特性数据,即边(edge)信息,可以实现图 形的无限制缩放、旋转、扭曲操作,并且能保证图像质量无损失。 基于不同的渲染方式,矢量图形的渲染算法可以分为以 下三类:基于像素点的渲染(pixe1.based) ,基于边的渲染 (edge.based)[ 和基于扫描线的渲染(scanline.based)[* 。 周期,渲染效率将会大幅度降低。 和上述两种渲染算法相比,基于扫描线的渲染算法更为 高效并且节省硬件资源。因为无需对有效边排序,而且只需 要为扫描线上的每个像素点配备计数器,该计数器缓存将被 重复应用于每条扫描线,所以并不需要大量的存储空间,因此 易于使用高速片内存储器(SRAM)来具体实现。 对于基于像素的渲染算法,通常需要对每一条扫描线的 有效边(active edges)进行排序。比如Hyb谢公司的OpenVG 实现方案就采用这种算法。由于扫描线拥有大量的有效边, 这种排序过程将会成为实时渲染的瓶颈。 对于基于边的渲染算法,虽然不需要对边进行排序,但是 2硬件优化渲染算法 2.1算法的描述 本文将介绍一种支持超采样(Supersamplnig)反锯齿,并 基金项目:湖北省自然科学基金(the Natural Science Foundation of Hubei Province of China under Grit No.2009CDB077)。 作者简介:沈永珞(1979.),男,韩国高丽大学博士研究生,中国地质大学(武汉)讲师,主研领域为矢量图形硬件加速器设计;章嫒(1982.),女,韩国高 丽大学博士研究生,主研领域为数字图像处理;杨迪威(198O.),男,博士研究生,中国地质大学(武汉)讲师,主研领域为数字图像处理。 收稿日期:2010 06.22修回日期:2010.09.27 Computer Engineering andApplications计算机工程与应用 且基于扫描线的硬件优化渲染算法。其算法流程如图1所 (2)DWC更新 示。算法由以下三个主要步骤组成:寻找有效抽样点,每个像 素的方向权重计数器DWC(Direction.Weight-Counter)更新以 及DWC行累加。 由于每个像素点都有其独立的方向权重计数器DWC,且 初始化为零。当逐个处理各有效边时,结合有效边的方向,本 文算法将该有效边所影响的像素点内的有效抽样点的个数记 录在DWC中。文中有效边的向上方向定义为1,向下方向定 义为一1。如在图2所示的例子中,有效边AE0将影响像素点 n+l的7个抽样点,所以像素点n+l的DWC的内容将会更新 为7。同时,该有效边将影响像素点n+2的1个抽样点,所以像 素点n+2的DWC将会更新为I。 比较特殊的情况发生在像素点m+l。当处理有效边AE1 时,像素点m+l的DWC将被更新为.1;当处理有效边AE2时, 该像素点的SWC将被更新为.2,因为累计有两条向下方向的 有效边影响了该像素点的抽样点。所以,当处理完有效边 AE3的时候,像素点m+l的DWC的最终结果将为.3。四条有 效边全部处理完后,各像素点的DWC如表1所示。 表1方向权重计数器内容 +1 坍+2 DWC Acc-DWC coverage O 8 .3 5 .5 0 8/8 5/8 0 (3)Dwc行累加 图1算法流程图 此步骤将沿着扫描线的方向对各DWC进行逐一累加,并 且获得像素点的最终透明度值。累加后,各像素点的计数器 的内容如表1中Acc.DWC行所示。每个像素点的透明度值 (coverage)将取决于该像素点内的有效抽样点与总抽样点的 一。8眺 透明);像素点m+l的最终透明度为5/8(几乎半透明);中间的 条同方向有效边),扫描方向定义为从左至右。因为Even—Odd ~一0 8眺 跨度像素点n+2到m将被全色填充(不透明);而像素点 和像 填充规则实现较为容易,且每个抽样点仅需1位标志位,所以 后文将只讨论None.Zero规则下的渲染过程。 (1)寻找有效抽样点 比值。 本文以8-queen超采样模式和渲染面积为XVGA(1 024x 一7 7傩 位于图形边界的像素点n+l的最终透明度为7/8(几乎不 780)为例,支持OpenVG标准(每条扫描线允许通过至多255 素点m+2将 0嗔充。由此体现出图形边界部分的反锯齿效-果。 2.2算法的进一步优化 (1)无除法操作优化 如图2所示,该例子描述了8-queen超采样模式下,4条有 效边通过该扫描线,并且图形跨度从像素点"到像素点m+2。 根据在同一像素点内位置从左到右,8个采样点分别以s 到 SP 予以标注。 如图2所示,若将有效边AE0与该扫描线的上下边的交 点定义为MinX和MaxXo当进行有效边AEO的处理时,该有 效边所影响的抽样点的位置必定位于日MinXJ,tMaxX+1 1}区 间内,即像素点n+l和n+2。但是计算扫描线和有效边的交点 需要除法操作,这对于资源有限的嵌入式设备而言将会是很 沉重的负担。为了避免除法操作,在本文算法中,将有效边的 Scan direction ——— 处理范围扩大到 /10 I, +1Il},/4) 和 分别代表有效边 的两个端点横坐标。对于AE0而言,查找有效抽样点的范围 将扩展成从像素点n到像素点n+2。虽然有效抽样点的搜寻 图2 8-queen超采样渲染实例 范围扩大了,但是对于流水线操作的硬件加速器设计而言,每 个像素点只损失一个时钟周期用于无效抽样点搜索。 (2)扫描线行跨度优化 有效抽样点即水平扫描方向上第一个位于该有效边右边 的抽样点,超采样模式下需要对不同位置的采样点进行逐一 判断。实心圆点表示被有效边影响到的抽样点,即有效抽样 点;空心圆点表示未被影响到的抽样点。从图中可以观察到, 有效边AEO将会影响像素点 +1的7个抽样点(sP 到sP ), 以及像素点n+2的sP。抽样点;有效边AE1只影响像素点m+l 在行累加步骤中,从头至尾的扫描线行累加是没有必要 的。因为并不是所有的几何图形将跨度整个扫描线,而在大 多数的情况下,所渲染的图形只跨度扫描线的一部分像素 点。所以在本算法中,当逐个处理各有效边时,记录下该图形 在此扫描边的起始像素点位置和终止像素点位置,从而在进 行行累加时,只需累加图形所覆盖的像素点的各DWC即可。 (3)双扫描线缓存优化 的SP ;有效边AE2将影响像素点m+2的5个抽样点(sP。,SP , sP,,sP 和SP );有效边AE3将影响像素点m+l的sP 和sP 。 沈永珞,章媛,杨迪威:一种二维矢量图形的硬件优化渲染算法 2010,46(31) 21 当用硬件实现本文算法时,可以利用双扫描线缓存方式 来并行处理两条扫描线,从而进一步提高渲染效率。当行累 加第k条扫描线的各DWC时,可以并行处理第抖1条扫描线 图3所示,顶部三幅图形分别来自于Khronos Group和Hua— yue Tech Co.,Ltd(http://www.hygraphics.com/English/index. hUn);底部三幅图形用于重点比较反锯齿效果。图3中从上 到下,从左至右分别为:Tiger,Manga,Subway,Lines,Radiate 和Circles。 的各有效边,即将第 1条扫描线的各像素点的DWC值存储 于另一扫描缓存中。然后彼此交替。 3算法的硬件优化分析 在以往的矢量图形渲染算法中 ,如果利用超采样方式 实现反锯齿效果,则每个像素点需要多个独立的计数器来为 该像素点内的每个抽样点记录有效边方向信息。 因为系统能耗很大程度上取决于对于存储器的使用量 豳●辫 (Memory Usage)和访问次数(Memory Accesses),所以本文 将从上述两方面比较本文算法和以往算法。 (1)存储器使用量(Mu)比较 对于以往算法所需的存储器使用量可以表示为公式(1): MUori=ClbMax ̄+1) ×W (1) 本文所提出的算法存储器使用量可以表示为公式(2): Mg=p (Ilb(Max× )l+1)×W (2) 其中Max代表每条扫描线所支持的最多同方向的有效边个 数; 代表每个像素点中的抽样点个数; 代表扫描线的宽 度。公式(1)和公式(2)中都有+1操作来表示需要单独一位来 显示有效边的方向。 通过公式(1)和公式(2)的分析,本文提出的优化算法能 更节省存储器使用量。以在XVGA显示大小的8-queen多抽 样模式为例,若需要支持OpenVG标准(在同条扫描线上至多 255条同方向的有效边),删 将会达到9 KB,而优化算法只 需1.5 KB。存储器使用量将减少83%。 (2)存储器访问量(MA)比较 假设每条有效边将会影响8-queen所采样模式下的8个抽 样点;P表示所有有效边所影响的像素点的个数;Bnd表示该 图形在此扫描线的边界跨度。对于以往算法的存储器访问量 如公式(3)所示: MA=。 Px^ +(Bnd一1)m ̄p+(Ⅳ ~1)(Bnd一1) (3) 公式(3)的第一项多项式表示当每条有效边影响到各个 像素点的抽样点计数器时,各抽样点计数器的更新次数;第二 项多项式表示各抽样点计数器在行累加时,所需的存储器访 问次数;第三项多项式表示行累加后,各像素点对于其内部的 总有效抽样点个数统计时,所需的存储器访问次数。 本文提出的算法的计算量如公式(4)所示: MA ='P( 一1)+(Bnd—1) (4 ) 公式(4)的第一项多项式表示在各有效边处理时,更新各 像素点的DWC所需的存储器访问次数;第二项多项式表示 WDC的行累加所需的存储器访问次数。 当使用8-queen超采样模式,支持OpenVG标准并且以 XVGA显示大小,且当P等于扫描线的宽度时,优化算法将会 减少65%的存储器访问操作。 4实验结果 为了比较本文算法的反锯齿效果,作者基于Hybrid公司 的OpenVG实现方案,分别实现了两种渲染算法。渲染面积 为XVGA显示大小,支持8-queen超采样反锯齿。测试图形如 图3测试矢量图形 。 表2中可以看出,在各种测试图形环境下,本文算法和以 往算法的结果图形相比较后,比较结果均能取得较高的峰值 信噪比(PSNR)。这表明本文算法结果和以往算法图形结果 的高度相似,都能取得较好的反锯齿效果。 表2测试矢量图形信息及PSNR比较结果 但是对 ̄:Lines例子,PSNR结果偏低。这是因为当多条 有效边影响同一像素点的同一抽样点的时候,本文算法将会 重复记录多条有效边的影响,而以往算法不予记录。所以当 Lines例子通过一条路径(Path)来描述的时候,两种算法会有 较大差异;而若通过多条路径来描述,两种算法则没有区别。 5结束语 本文提出的硬件优化二维矢量图形渲染算法采用逐扫描 线处理的渲染方式,无需对有效边进行排序操作和使用片外 存储器。通过每个像素点的方向权重计数器记录有效边的方 向信息,避免了以往算法中每个抽样点使用一个计数器。实 验结果表明,本文算法渲染图形结果和以往算法渲染图形结 果高度相似,从而证明本文算法能取得和以往算法一样的反 锯齿效果。在实验环境下,本算法能节省83%的存储器使用 量和65%的存储器访问量,因此更利于嵌入式设备硬件实现 实时渲染效果。 参考文献: 【1】Lee S,Kim S,Choi B.Vecmr graphics reference implementation for embedded system[J].Lecture Notes in Computer Science, 2007,4761:243—252. (下转42页) 42 2010,46(31) ComputerEngineeringandApplications计算机工程与应用 值得注意的是,诸如MV代数,风代数,MTL代数,格蕴涵代数 以及有界BCK代数等都可以看成是FI代数的特例,因此,可 ,(y))} vO 1))=厂 [y](1),且Vx,y∈ 有 f [v]( =v(,( )≥ min{v(f(x)),V(/( min{v(f∞),v(f(x 故/【 】是 的fuzzy滤子。 ))= ) min{f [v】( ,f [vl(x 以说上述结果是这诸多逻辑代数的共同特征性质。此外,用 类似的方法,还可以在FI代数中引入其他类型的区间值fuzzy 滤子和区间值粗糙滤子等概念,限于篇幅,相应的讨论将在另 文中呈现。 定义9 c 设 和y是两个非空集合, ,,是一个映 射,F和G分别为 和y上的IV-fuzzy集,定义IV-fuzzy集 参考文献: [1】王国俊.非经典数理逻辑与近似推理【M】.北京:科学出版社,2003. [2]Xu Y,Ruan D,Qin K Y,et a1.Lattice・valued logic[M].Berlin: Springer,2004. /《,』和厂 Ⅲ使得 ∽:sup( ),厂 ( ) I[0'0],否则 )),Vx∈X ’ ∈y y , (3)(4) 【3】Hajek P.Metamathematics of Fuzzy Logic[M].Dordrecht:Kluwer Academic Publishers,1998. fG1 ) G [4】吴望名.Fuzzy蕴涵代数[J】.模糊系统与数学,1990,4(1):56—64. [5罗敏霞,何华灿.5]一种泛逻辑代数系统[J】.计算机科学与应用, 2005,41(14):21.22. f6】Pei D W.On equivalent forms of fuzzy logic systems NM and 其中厂 ∽:协∈ ∽= ,则称fl[F]为y上的IV-ufzzy 集,称为F的象,f IGl为 上的IV-fuzzy集,称为G的原象。 引理3[18 设 和】,是非空集合, y是一个映射, F=[PF, ;】和G= , 分别为 和Y_[21 ̄JIV-fuzzy集,则 IMTL[J].Fuzzy Sets and Systems,2005,138:187—195. [7】裴道武,王国俊.形式系统L 的完备性及其应用[J].中国科学:E (1)厂《Fl=[/【 厂[ ; (2)厂 = [ 】,f [ 十】】。 定理7设 和 是两个FI代数,f:x1 的同态。 辑,2002,16(2):1.15. [8】Haveshki M,Sacid A B,Eslaml E.Some types of filters in 是 到 BL—algebras[J].Soft Computing,2006,10:657 664. [9]肖云萍,邹庭荣.泛逻辑学中UB代数系统的滤子与商代数【J].计算 机工程与应用,2007,43(35):90—92. (1)若F是 的IV-fuzy滤子且 与 同构,z则/4, 是 的IV-fuzzy滤子; [1O]刘春辉,徐罗山.Fuzzy蕴涵代数的MP滤子[J].模糊系统与数学, 2009,23(2):1-6. [11]Zadeh L A.Fuzzy sets[J].Information Control,1965,8:338—353. (2)若G是 的IV-fuzzy滤子,则f G』是 的iv= uzzfy滤子。 [12]肖云萍,邹庭荣.泛逻辑学UB代数系统的fuzy滤子【zJ].计算机科 学与探索,2008,2(2):212—216. [13】Liu L z,Li K T.Fuzzy filters of BL—algebras[J].Information Science,2005,173(1-3):141—154. 证明(1)设F=[ , 二】是 的IV-uzfy滤子,则由定理 z3知 ;和 ;都是 的fuzzy滤子,故由 与 同构以及引 理2可得f[P-F]和,[ 都是 的fuzzy滤子。再由引理3和 定理3便得 别是 的IV-fuzzy滤子。 (2)设G= , 是 的IV-uzzfy滤子,则由定理3知 [14】Liu L Z,Li K T.Fuzzy implicative and Boolean filters of R0一algebras[J].Information Science,2005,171:61—71. [15]刘春辉,徐罗山.FI代数的多种Fuzzy滤子[J].模糊系统与数学, 2010,24(2):21.27. 和 都是 的fuzzy滤子,故由引理2可得f [ 和 f DG]都是 的fuzzy滤子。再由引理3和定N3便得厂 l 是 的IV=fuzzy滤子。 [16】刘春辉,泛逻辑学中UB代数系统的(∈,∈vq)一fuzzy滤子[J]计 算机工程与应用,2009,45(34):29.31. [17]Zadeh L A.The concept of a lnguiistic variable and its appli— cation to approximate reasoning[J].Information Science,1975, 8:199.249. 4结束语 将区间值fuzzy集的思想和方法应用q:FI代数,引入了区 间值fuzzy滤子的概念,并详细讨论了它们的性质及其与MP 滤子,fuzzy滤子问的相互关系,获得了若干有意义的结果。 [1 8]Biswas R.Rossenfeld’s fuzzy subgroups with interval—valued membership functions[J].Fuzzy Sets and Systems,1 994,63: 87.90. (上接21页) 【2]Huang R,Chae S.Implementation of an OpenVG rasterizer wi出configurable anti-aliasing and multi-window scissoring[C]// Proceedings of the Sixth IEEE International Conference on Computer and Information Technology,2006:179—184. [4]Kallio K.Scanline edge-lfag algorithm for antialiasing[J].EG UK Theory and Practice of Computer Graphics.2007. [5]Kim Daewoong,Cha KiMyung,Chae Soo—Ik.A high-performance OpenVG accelerator with dual—scanline filling rendering[J]. IEEE Transactions Consumer Electronics. [6】Cha Kilhyung,Kim Daewoong,Chae Soo—Ik.An optimized ran— defing algorithm for hardware implementation of OpenVG 2D 【3】Catthoor F,Franssen F,Wuytack S,et a1.Global communic ̄ion and memory optimizing transformations for low ower signal vector graphics[C]//2008 International SoC Desin Confgerence, 2008 processing systems[C]//VLSI Sinalg Processing,1994,VII:178—187.