演讲嘉宾 | 陈中贵
回顾整理 | 廖 涛
排版校对 | 李萍萍
嘉宾介绍
OS内核及视窗分论坛
陈中贵,厦门大学信息学院教授,博士生导师,美国卡耐基梅陇大学访问学者,中国计算机学会高级会员。主要从事计算机辅助设计与图形学研究,已发表学术论文60余篇,主持参与多项国家自然科学基金项目、重点研发项目等。担任CCF计算机辅助设计与图形学专委会执行委员,CSIAM几何设计与计算专委会委员,CSIG智能图形专委会委员。
视频回顾
打开哔哩哔哩APP,观看更清晰视频
正文内容
矢量图和位图都是图形表达中的常用表达形式。相较于位图而言,矢量图具有更小文件大小、更易于编辑以及更准确表达等优势,且能够实现无损缩放,已广泛运用在Logo、图标、矢量艺术和线条图形等领域。如何实现矢量图的高质量重建与高效绘制?厦门大学信息学院教授陈中贵在第二届OpenHarmony技术大会上带来了精彩分享。
矢量图是基于数学方程的几何图元表示,也称为面向对象的图像或绘图图像,根据几何特性来绘制图形。在计算机中图形学中,矢量图的绘制都需要经过光栅化(Rasterization),而光栅化则需要通过图形渲染管线实现。
由于三角剖分可以将复杂的形状分解为一系列简单的小三角形,从而使得图像处理和渲染更加高效和精确,且在扫描线算法中使用三角形能够使渲染过程更加高效,绝大部分的GPU都选择以三角形作为其图像渲染的基本元素。在二维的图像绘制中,对于非三角形的元素,如何绘制呢?主要有以下几种方法:
-
化曲为直法:在曲线上采样,将曲线转化为直线(或线段),进而转换成三角形。Google开发的2D图形绘制引擎Skia就采用了该方法。但该方法不是分辨率独立,且放大易失真,递归算法不易并行。
-
缠绕数法以及扫描线法。前者可以计算缠绕数来判断像素归属,后者可以利用扫描线提取图形的边界片段。但这两种方法都较难在GPU上实现。
-
隐式方程法:将曲线表达转化为隐式方程,以隐式方程为基础判断像素的内外归属。但该方法实际复杂度较高,预处理效率很慢。
目前,在二维矢量图绘制需要解决的问题主要有:(1)分辨率相关:路径仿射变换后需要重新细分,导致需要重复计算,实际应用中存在大量需要变换后复用的路径;(2)不适合移动端:NVPR需要大量的访存操作,移动端中对内存的读写会显著增加能耗;(3)Stroke难计算:Stroke绘制需要计算偏移曲线,确定偏移曲线的计算量巨大。
NVPR是一种不依赖于CPU的硬件光柵化算法,目前在产业界得到了广泛应用。但由于NVPR采取了任意三角化方案,导致可能出现部分重叠区域,需要经过额外的计算来删除,使其绘制效率较低。此外,NVPR采取了在采样点级别(sample-rate)执行片段着色器的抗锯齿方案,导致其绘制效率进一步降低,需要更大的显示内存消耗,且不适合移动端。
针对上述NVPR算法的不足,作者本人及其所在研究团队将模版测试、着色和有符号距离抗锯齿进行结合,提出了一种适合移动端的路径高效硬件绘制方法。该方法能够降低内存带宽和功耗,使其适合移动端实现,且克服了因分辨率升高带来的内存瓶颈,实现了分辨率无关。
此外,在图像矢量化方面,作者本人及其所在研究团队提出了基于曲边网格的图像矢量化方法以及基于TCB样条的图像矢量化方法。前者基于输入的位图以及特征检测结果,经矢量图初始化表示以及多次绘制优化后,相较直边网格有更好的重建效果;后者基于TCB样条函数所具有的分片多项式、局部支撑性以及高阶光滑性等优良性质,解决了图像矢量化的颜色跳跃问题,且轻量级、高保真。
矢量图在视窗系统中有广泛的应用,矢量图绘制的效率会直接或间接影响视窗系统的性能。在设计和开发视窗系统时,需要同时考虑矢量图的绘制方案,并采取相应的优化措施,以提高系统的性能。E N D
关注我们,获取更多精彩。
审核编辑 黄宇
-
算法
+关注
关注
23文章
4608浏览量
92844 -
OpenHarmony
+关注
关注
25文章
3716浏览量
16271
发布评论请先 登录
相关推荐
评论