子像素形态学反走样算法的改进

2017-12-14 05:22刘镜荣杜慧敏杜琴琴
计算机应用 2017年10期
关键词:走样形态学轮廓

刘镜荣,杜慧敏,杜琴琴

(1.西安邮电大学 电子工程学院,西安 710061 2.西安邮电大学 计算机学院,西安 710061) (*通信作者电子邮箱425114135@qq.com)

子像素形态学反走样算法的改进

刘镜荣1*,杜慧敏1,杜琴琴2

(1.西安邮电大学 电子工程学院,西安 710061 2.西安邮电大学 计算机学院,西安 710061) (*通信作者电子邮箱425114135@qq.com)

针对子像素形态学反走样(SMAA)算法提取图像轮廓信息少和存储空间较大的问题,提出一种改进的形态学反走样算法。该算法用一个像素的亮度与调整因子的乘积作为动态阈值,来判定该像素是否为轮廓条件。与SMAA利用固定阈值判定轮廓相比,动态阈值严格限制了轮廓的判断条件,因此改进算法可以提取出更多的轮廓信息。同时,在分析SMAA存储形态模式的基础上,合并了不同模式但是面积计算和混合方式相同的存储,能有效地减少面积纹理的存储面积。在Windows 7操作系统下,用Microsoft DirectX SDK和HLSL着色语言实现了所改进的算法。实验结果表明:相对于SMAA算法,改进后算法可以提取更多更清晰的轮廓线,存储减少了51.93%。

形态学;反走样;像素亮度;调整因子;阈值

0 引言

计算机图形的走样主要发生在光栅化[1]和纹理映射[2]过程中,分别被称为几何走样和纹理走样。早期为了消除几何走样,研究者提出了超采样反走样(Super Sampling Antialiasing, SSAA)算法[3]。SSAA是一种全屏反走样(Full Scene Anti-Aliasing,FSAA)技术,它将屏幕上所有的像素细分成子像素,用子像素颜色的平均值作为该像素的颜色,经过SSAA处理后的图形质量好,一般用作衡量标准。但是,SSAA的计算量和存储代价较大,不适用于图形的实时反走样,因此,研究人员又相继提出了多重采样反走样(MultiSampling Anti-Aliasing, MSAA)[4]、覆盖采样抗锯齿(Coverage Sampling Anti-aliasing, CSAA)技术[5]和增强质量反走样(Enhanced Quality Anti-Aliasing, EQAA)[6],这些算法存储代价和计算量都有所减少,但处理反走样的效果不如SSAA。纹理反走样通常采用纹理滤波的方式,主要有最近邻采样、双线性插值[7]、MIPmapping[8]、三线性插值[9]和各向异性滤波[10]等。

延迟渲染(Deferred Shading)技术[11-13]将像素的几何信息(位置坐标、纹理坐标、法线向量等)存储在中间缓存G-buffer中,然后从G-buffer中读取信息并进行光照等处理。与传统的渲染方式相比,延迟渲染推迟了光照计算,极大提高了渲染速度,是目前比较流行的一种渲染技术。为了与延时渲染技术相适应,近些年来,业界提出对渲染后的像素进行反走样处理,取得了较好的效果。通常这个阶段采用的反走样技术被称为后处理反走样技术,而在光栅化和纹理映射阶段采用的反走样技术被称为前处理反走样技术。

本文对后处理反走样算法中主流的形态学反走样算法进行了研究,通过对边缘检测阈值的改进和纹理存储面积的优化,提高了反走样效果并且降低了内存占用。

1 形态学反走样技术相关工作

2009年Intel工程师Reshetov[14]将形态学引入到了计算机反走样领域,提出了形态学反走样(MorphoLogical Anti-Aliasing, MLAA)技术。MLAA根据相邻像素之间的颜色差值提取边缘轮廓,对提取出的边缘轮廓与预定的模式匹配,利用模式计算权值进行颜色混合。最初的MLAA只能在CPU上进行处理,速度比较慢。MLAA算法的优点是独立于图形流水线,对边缘像素进行抗锯齿处理,算法简单且易于实现;其缺点是无法处理因采样不足造成的走样现象,受光照的影响较大。但是MLAA是具有代表性的边缘反走样技术,后续研究者在此基础上提出了多种改进算法。2009年,NVIDIA提出了快速近似反走样(Fast approXimate Anti-Aliasing, FXAA)技术,FXAA与MLAA类似,对图像边缘进行抗锯齿处理,速度快,但反走样效果无法与硬件反走样相比;2010年,Jimenez等[15]提出了实用性MLAA(Practical MLAA)技术,为了与MLAA区分,本文命名为Jimenez’s MLAA,该算法是MLAA的改进算法,可对实时性图像进行抗锯齿处理,但仍存在模糊现象。2013年Intel公司改进了Jimenez’s MLAA,提出了一种子像素形态学反走样(Sub-pixel Morphological Antialiasing, SMAA)技术[17],该技术可与硬件反走样技术(如SSAA)相抗衡,能得到较高品质的图像质量。但SMAA算法采用固定阈值,能提取的图像轮廓较少;同时存储了不必要的面积纹理,存储面积较大。

本文提出了一种改进的形态学反走样算法,引入了动态阈值,严格限制了像素边界条件,使算法可以提取出更多的边界细节;同时剔除了不必要的面积纹理,减少了面积纹理的存储。本文在Microsoft DirectX SDK下实现了改进算法,实验结果表明:本文提出的改进算法可提取更多更清晰的轮廓线,存储减少了51.93%。

2 改进的形态学反走样算法

2.1 算法概述

同Jimenez’s MLAA和SMAA算法一样,本文算法可分为边缘提取、面积计算和颜色混合等三个步骤,具体流程见图1。

图1 本文算法的设计流程

1)边缘提取。SMAA算法的边缘检测算法有三种方式:亮度检测、颜色检测和深度检测。SMAA设定固定的阈值提取边缘像素,造成部分几何边界无法被提取。本文提出自适应阈值的边缘检测算法,以提取出更多的图像边缘信息。

2)权值计算。将检测到的边缘轮廓线与预设几何模式进行匹配,通过距离搜索长度对应的面积纹理(面积表示混合权值)进行颜色混合。本文提高了存储的面积纹理空间效率,减少了内存占用。

3)颜色混合。本文采用与SMAA算法一样的混合方式。

2.2 边缘提取算法阈值的改进

SMAA的三种边缘提取算法中,提取颜色信息可以提取出色度差产生的走样边缘,但计算量偏大;深度信息虽然能够快速提取出边缘信息,但容易丢失边缘信息;亮度信息边缘提取算法与前两者相比,能够提取出边缘信息,代价比深度信息大。

SMAA利用式(1)将场景中像素的颜色值RGB转化为亮度信息,然后在根据局部对比调整判定边缘像素。在式(1)中采用归一化的颜色空间,即R、G、B的取值范围为0~1。

L=0.212 6R+0.715 2G+0.072 2B

(1)

图2说明了边界信息,灰色圆点所在的像素表示待检测的当前像素,ct、cb、cl和cr分别表示上下左右四个相邻像素的亮度值与当前像素亮度值的差值。c2l和c2t分别表示左方和上方第一个像素与第二个像素之间的亮度差。SMAA算法只对左方像素和上方像素进行标记,相应的右方和下方像素的信息可从其他像素得到。

图2 SMAA亮度信息边缘提取算法[16]

cmax=max(ct,cb,cl,cr,c2t,c2l)

(2)

(3)

该方法利用固定阈值,不能根据场景的实际复杂程度进行边缘提取,造成部分几何边界无法被提取出来,如图3所示。

图3 不同算法的人物边缘提取结果

本文引入动态阈值T′=α·Lc作为判定像素边界条件,其中:Lc是当前像素的亮度,α是调整因子。当α的取值范围设定为[0.05, 0.2]时,一定有T′=α·Lc≤T,即动态阈值一定小于T,因为α和Lc均是小于1的实数。动态阈值导致了像素边界的判定条件更加严格,这样提取出的边缘轮廓更接近实际场景。从图3~4可以看出:本文算法能够提取更多的边缘,而SMAA容易丢失这些几何特征。

图4 不同算法的物体边缘提取结果

2.3 面积纹理存储的改进

SMAA算法中预设的几何模式主要分为正交和对角线模式两种类型,分别用于处理倾向于水平、垂直和倾斜方向上的走样现象。如图5(a)所示,根据正交边检测出的几何模式有16种,每种几何模式的主边长度可能是[1, 16]内的整数,因此16种模式就需要存储16×16=256种情况的面积。预设定的几何形状有L-Shapes、U-Shapes和Z-Shapes三种。如果对图5(a)中的模式0、5、10、15进行面积混合,容易产生走样,因此对这四种模式不作任何处理,相应的区域面积为0;模式7、11、13、14与预设的三种几何形状不匹配,计算面积时按照Z-Shapes进行处理;模式11、13的面积计算和混合方式与模式9一样;模式7、14的面积计算和混合方式与模式6相同。SMAA需要对这16种几何模式进行面积存储,共需要存储16×16=256种情况的面积。

图5 预设的几何模式及其对应的面积纹理存储方式[17]

根据上面的分析,可以优化面积模式的存储,如表1所示,对面积为0的模式0、5、10、15不进行存储,直接返回值0。将模式11、13的面积和模式9存储到一个面积纹理中,将模式7、14的面积和模式6存储到一个面积纹理中。优化后,需要存储8×16=128种模式,SMAA需要256种面积存储情况,本文算法只需要128种面积存储情况。

预设的正交模式相应的面积存储空间降低了50%,极大地减少了所需内存。

表1 预设正交模式存储的改进

3 结果对比

实验的计算机环境是Intel core i7 3.4 GHz CPU、16 GB内存、64位操作系统、NVIDIA GTX560 GPU。在Windows 7 系统下的Microsoft Visual Studio 2010环境下,使用Python语言实现面积纹理,用Microsoft DirectX SDK和HLSL着色语言实现了所提出的算法。

3.1 边缘提取算法结果对比

本文算法采用自适应阈值的方式进行边缘提取,能够更好地提取出场景的几何轮廓,减少几何边缘轮廓的走样现象。从图6所示的边缘轮廓线提取结果可看出,本文算法能够提取出图像更多的边缘轮廓和几何轮廓。

图6 边缘提取算法结果对比

3.2 面积纹理存储的对比

本文算法对面积纹理存储进行改进,对正交模式和对角线模式中不需要进行存储的面积进行剔除。本文算法和SMAA面积纹理大小的对比结果:SMAA算法的面积纹理大小为1 138 KB,而本文算法面积纹理的大小为547 KB。本文算法与SMAA算法相比,降低了51.93%的存储比例。

3.3 反走样效果比较

本文算法能够提取出更好的几何轮廓和图像轮廓,可以对SMAA中不能检测到的几何边缘进行抗锯齿处理。

从图7所示的反走样效果图可看出,圆形窗户的外部边框(方框处)的边缘锯齿明显相对平缓、光滑,圆形窗户的内部边框(椭圆处)的边缘锯齿相对也有一定的改善。本文算法处理后的圆形窗户边缘的锯齿状现象明显减弱。

图7 复杂场景抗锯齿效果对比

从图8中放大烟囱的左下角可以明显看出,本文算法处理后的抗锯齿效果较好。

图8 简单场景抗锯齿效果对比

4 结语

本文分析了SMAA算法的不足,并提出用一个像素的亮度与调整因子的乘积作为动态阈值来判定该像素是否为轮廓;同时,合并了不同模式但是面积计算和混合方式相同的存储,有效地减少了面积纹理的存储。实验结果表明:本文算法比SMAA算法可以提取更多更清晰的轮廓线,存储面积减少了51.93%。本文算法可以集成在大型三维场景软件中,提高场景的真实感,减少运行存储。但是,相对于SMAA,由于提出轮廓信息多,因此,所需要的反走样处理时间就长。未来可以考虑用硬件实现本文提出的改进算法,提高处理速度。

References)

[1] 杜慧敏, 郝哲, 王鹏超, 等. 三角形的光栅化与反走样算法[J]. 西安邮电大学学报, 2015, 20(3): 33-38. (DU H M, HAO Z, WANG P C, et al. Rasterization and anti-aliasing algorithm for triangles [J]. Journal of Xi’an University of Posts and Telecommunications, 2015, 20(3): 33-38.)

[2] 李增忠. 纹理映射技术的研究[D]. 西安:西安电子科技大学, 2005. (LI Z Z. Research on texture mapping technology [D]. Xi’an: Xidian University, 2005.)

[3] CROW F C. A comparison of antialiasing techniques [J]. IEEE Computer Graphics amp; Applications, 1981, 1(1): 40-48.

[4] LAINE S, AILA T. A weighted error metric and optimization method for antialiasing patterns [EB/OL]. [2017- 01- 10]. http://dx.doi.org/10.1111/j.1467-8659.2006.00919.x.

[5] YOUNG P. Coverage sampled antialiasing. [EB/OL]. NVIDIA. [2016- 10- 26]. http://www.nvidia.com/object/coverage-sampled-aa.html.

[6] AMD. EQAA modes for AMD 6900 series graphics cards [EB/OL]. [2016- 11- 01]. http://amd-dev. wpengine. netdna-cdn. com/wordpress/media/2012/10/EQAA%20Modes%20for%20AMD%20HD%206900%20Series%20Cards. pdf.

[7] BLINN J. Hyperbolic interpolation [J]. IEEE Computer Graphics amp; Applications, 1992, 12(4): 89-94.

[8] WILLIAMS L. Pyramidal parametrics [J]. ACM SIGGRAPH Computer Graphics, 1983, 17(3): 1-11.

[9] EWINS J P, WALLER M D, WHITE M, et al. MIP-map level selection for texture mapping [J]. IEEE Transactions on Visualization amp; Computer Graphics, 1998, 4(4): 317-329.

[10] EWINS J P, WALLER M D, WHITE M, et al. Implementing an anisotropic texture filter [J]. Computers amp; Graphics, 2000, 24(2): 253-267.

[11] SHISHKOVTSOV O. Deferred shading in S. T. A. L. K. E. R. in GPU Gems 2. [M]. Upper Saddle River: Addison Wesley Professional, 2005: 143-166.

[12] HARGREAVES S. Deferred shading [EB/OL]. [2016- 11- 02]. http://amd.wpengine.com/wordpress/media/2012/10/D3DTutor ial_DeferredShading.pdf.

[13] KOONCE R. Deferred Shading in Tabula Rasa. in GPU Gems 3. [M]. Upper Saddle River: Addison Wesley Professional, 2007: 429-457.

[14] RESHETOV A. Morphological antialiasing [EB/OL]. [2017- 01- 10]. http://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/readings/reshetov09_mlaa.pdf.

[15] JIMENEZ J, MASIA B, ECHEVARRIA J I, et al. Practical morphological antialiasing [M]// ENGEL W. GPU Pro 2: Advanced Rendering Techniques. Boca Raton, Florida, USA: CRC Press, 2011.

[16] JIMENEZ J, ECHEVARRIA J I, SOUSA T, et al. SMAA: enhanced subpixel morphological antialiasing [J]. Computer Graphics Forum, 2012, 31(2): 355-364.

[17] PERSSON E. Second-depth antialiasing [M]// ENGEL W. GPU Pro 4: Advanced Rendering Techniques. Boca Raton, Florida: CRC Press, 2013: 201-212.

Improvementofsub-pixelmorphologicalanti-aliasingalgorithm

LIU Jingrong1*, DU Huimin1, DU Qinqin2

(1.SchoolofElectronicEngineering,Xi’anUniversityofPostsandTelecommunications,Xi’anShaanxi710061,China2.SchoolofComputerScienceamp;Technology,Xi’anUniversityofPostsandTelecommunications,Xi’anShaanxi710061,China)

Since Sub-pixel Morphological Anti-Aliasing (SMAA) algorithm extracts images with less contour and needs larger storage, an improved algorithm for SMAA was presented.In the improved algorithm, the multiplication of luminance of a pixel and an adjustable factor was regarded as a dynamic threshold, which was used to decide whether the pixel is a boundary pixel. Compared with fixed threshold for boundary decision in SMAA, the dynamic threshold is stricter for deciding whether a pixel is a boundary one, so the presented algorithm can extract more boundaries. Based on the analysis of different morphological models and used storage, some redundant storages were merged so as to reduce the size of memory. The algorithm was implemented by Microsoft DirectX SDK and HLSL under Windows 7. The experimental results show that the proposed algorithm can extract clearer boundaries and the size of the memory is reduced by 51.93%.

morphology; anti-aliasing; pixel luminance; adjustable factor; threshold value

2017- 04- 06;

2017- 06- 12。

国家自然科学基金资助项目(61136002);西安市科技发展计划项目(CXY1440(10))。

刘镜荣(1992—),男,陕西西安人,硕士研究生,主要研究方向:计算机图形学、图形图像处理; 杜慧敏(1966—),女,山东潍坊人,教授,博士,CCF会员,主要研究方向:计算机体系结构、计算机图形学; 杜琴琴(1989—),女,陕西西安人,硕士研究生,主要研究方向:计算机体系结构。

1001- 9081(2017)10- 2871- 04

10.11772/j.issn.1001- 9081.2017.10.2871

TP391.41

A

This work is partially supported by the National Natural Science Foundation of China (61136002);the Science and Technology Development Programmer of Xi’an (CXY 1440(10)).

LIUJingrong, born in 1992, M. S. candidate. His research interests include computer graphics, graphics and image processing.

DUHuimin, born in 1966, Ph. D., professor. Her research interests include computer architecture, computer graphics.

DUQinqin, born in 1989, M. S. candidate. Her research interests include computer architecture.

猜你喜欢
走样形态学轮廓
临床检验中血细胞形态学观察与分析
“双减”,如何确保落地实施不走样
音乐科学研究中的思想实验——以音乐形态学研究中的四个重大发现为例
颅内后交通动脉瘤破裂出血的临床特征和形态学的危险因素
女性衰老从身体走样开始
基于G-Buffer的深度学习反走样算法
跟踪导练(三)
疏肝祛瘀方对兔膝早期骨关节炎软骨组织形态学影响的研究
儿童筒笔画
创造早秋新轮廓