剪裁二维矢量图形的方法

文档序号:6434466阅读:199来源:国知局
专利名称:剪裁二维矢量图形的方法
技术领域
本发明涉及一种矢量(Vector)图形的处理方法,尤其涉及一种使用二维矢量图 形处理标准函式库(OpenVG)的剪裁方法。
背景技术
OpenVG规格是由Khronos组织主持下开发的一种应用程序编程接 口(Application Programming Interface, API)的规格,用在硬件加速的二维 (Two-dimension, 2D)矢量和点阵图形。通过公开、标准、统一的规格,硬件制造商可依据其 规格设计出二维矢量图形硬件加速器(hardware-acceIerator),同时也能加快2D矢量图 形展现技术与硬件加速器垂直整合的速度。
但是,根据目前OpenVG规格仍有不足之处。OpenVG规格中并没有关于剪裁 (scissoring)功能的硬件定义,因此对于剪裁功能的电路还没有所谓的标准电路。各家制 造商对于剪裁功能的电路的做法不一,又由于OpenVG规格有规定至少需支援32个剪裁矩 形(scissor rectangle)才能宣称该电路符合OpenVG的剪裁规格,因此各家制造厂商会设 计出一个专用于剪裁的电路,用来支援32个剪裁矩形。对于专用于剪裁的电路,部分制造 厂商采取剪裁缓冲器(scissoring buffer)单元,不过此方式会额外地增加电路成本;另 外,也有制造商采取用于三维矢量图形的图案缓冲器(stencil buffer)单元,其中图案缓 冲器是用于处理颜色、深度的缓冲器,但对于二维矢量图形的绘制并不需要处理深度的问 题,因此让图案缓冲器大材小用也会增加成本。原则上,所设计的剪裁电路会随着支援越多 个剪裁矩形而使此电路的成本与复杂性也跟着增加。
—般而言,若有一剪裁功能的剪裁电路仅支援32个剪裁矩形时,对于需要64个剪 裁矩形的剪裁图形,则此剪裁电路便无法进行剪裁。如何对OpenVG规格的二维矢量图形进 行剪裁且能支援任意个数的剪裁矩形,而且不需额外的剪裁电路,这是一个有待克服的课题。发明内容
有鉴于此,本发明提出一种符合二维矢量图形处理标准函式库(OpenVG)规格的 剪裁方法,而且不需额外的剪裁电路,藉以解决先前技术所述及的问题。
本发明提出剪裁二维矢量图形的方法,适用于具有遮罩功能的二维矢量图形硬件 加速器,此方法包括(a)决定至少一剪裁矩形且将每一剪裁矩形转换成相应于其矩形边 缘的矢量图形路径;(b)储存每一个矢量图形路径;(C)设定相应于一显示区域的多个遮罩 值,在显示区域中被所述矢量图形路径包围区域的遮罩值设定为非零值,显示区域中非包 围区域的遮罩值设定为零值;(d)使能二维矢量图形硬件加速器的遮罩功能,原始图像通 过多个遮罩值的帧缓冲而产生相应于显示区域的一新图片;以及(e)描绘新图片于显示区 域。
在本发明的一实施例中,步骤(a)中的每一剪裁矩形可为大小不等的矩形。步骤(a)包括下列步骤将每一剪裁矩形转换成其相应于矩形边缘的一对矢量图形路径,其中 所述一对矢量图形路径中的两者互相平行但方向相反。
在本发明的一实施例中,步骤(C)包括下列步骤将所有的遮罩值清除为零值;以 及在显示区域中,对应于被所述矢量图形路径包围区域的遮罩值填入非零值。
在本发明的一实施例中,步骤(d)包括下列步骤通过多个遮罩值的帧缓冲时,将 原始图片中各像素数据的覆盖值乘以相应的遮罩值以得到新图片中的各个覆盖值。
在本发明的一实施例中,步骤(e)包括下列步骤根据新图片中的各个像素数据 的覆盖值进行描绘,其中对于新图片中属于非零值的像素进行描绘,而不描绘属于零值的 像素。
基于上述,本发明主要是采用OpenVG所定义的遮罩功能。利用遮罩功能设定相应 于所有的矢量图形路径的遮罩值,并且利用遮罩功能使得原始图片通过多个遮罩值的帧缓 冲之后,产生相应显示区域的新图片。在原先的二维矢量图形硬件加速器在不变更硬件架 构/条件的情形下,本发明还可以扩展至64个剪裁矩形、128个剪裁矩形、甚至128个剪裁 矩形以上的剪裁应用。所以本发明可以有效地解决传统需要额外的剪裁电路的问题,且还 可以节省硬件成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。


图1是原始图片进行遮罩功能的示意图。
图2是依照本发明一实施例的二维显示区域与多个剪裁矩形的示意图。
图3是图2的矢量图形路径的示意图。
图4是图3的矢量图形路径包围区域的示意图。
图5是根据图4设定遮罩值的示意图。
图6是依照本发明一实施例的原始图片与多个剪裁矩形的示意图。
图7是描绘新图片于显示区域。
图8绘示为本发明一实施例的剪裁二维矢量图形的方法流程图。
附图标号
10、12、14、16、18、20、22 :剪裁矩形
110:原始图片
120 :遮罩缓冲器单元
130 :新图片
200 :显示区域
600 :原始图片
700 :新图片
E1、E2:矢量图形路径
S801 S809 :剪裁二维矢量图形的方法各步骤具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施 例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为 对本发明的限定。
基于符合二维矢量图形处理标准函式库(OpenVG)规格,在OpenVG规格里仅定义 遮罩缓冲器(mask buffer)单元,但未定义其他的剪裁缓冲器或是用于三维的缓冲器。本 发明实施例为有效地解决传统需要额外的剪裁电路的问题,采取不变更二维矢量图形硬件 加速器(hardware-acceIerator)的架构。关于二维矢量图形硬件加速器的架构包括遮罩 缓冲器单元。故,在本发明各实施例中皆不使用需要额外设计的剪裁缓冲器(scissoring buffer)单元,也不使用三维矢量图形的图案缓冲器(stencil buffer)单元。
图1是原始图片进行遮罩功能的示意图。请参照图1。若原始图片110为64个像 素(8X8像素)的二维图片,此原始图片110具有64个覆盖值(coverage value)。当遮罩 功能开启时,利用OpenVG规格所定义的遮罩缓冲器,可使用遮罩缓冲器单元120储存对应 于64个像素的遮罩值,其中欲遮罩区域的遮罩值为非零值,其余的非遮罩区域的遮罩值为 零值。接着,原始图片510通过相应的64个像素的帧缓冲,亦即对原始图片510的每一像 素进行一对一的覆盖值与遮罩值相乘,可以得到新图片530。请注意,本发明的原始图片的 像素大小以及遮罩缓冲器单元相应的像素大小,但并不限制于此。
图2是依照本发明一实施例的二维显示区域与多个剪裁矩形的示意图。图3是图 2的矢量图形路径的示意图。图4是图3的矢量图形路径包围区域的示意图。图5是根据 图4设定遮罩值的示意图。请合并参照图2至图5。
首先,在图2的显不区域200中设定了多个剪裁矩形(scissor rectangle) 10、12、 14、16、18、20、22。显示区域200可以为640X480的像素,但不以此为限。图2中每一个剪 裁矩形可为大小不等的矩形。请注意,本实施例绘示了 7个剪裁矩形仅用来当作示范,剪裁 矩形的数量并不以本实施例为限。在OpenVG规格里,所设计的二维矢量图形硬件加速器至 少需支援32个剪裁矩形,以本实施例为例可以支援32个剪裁矩形、64个剪裁矩形、128个 剪裁矩形、或更多个(128个以上)剪裁矩形。接着,请参看图3,根据图2的每一个剪裁矩 形,将每一个剪裁矩形转换成相应于其矩形边缘的矢量图形路径。图3所绘示的各个剪裁 矩形的矢量图形路径是以逆时针方式围绕在其矩形边缘,其中围绕的方向也可以定义为顺 时针方式。接着,请参看图4,剪裁矩形10、12、14的中的各个矢量图形路径包围区域相互独 立。剪裁矩形16、18、20和22的矢量图形路径包围区域则相互重叠,其中剪裁矩形22的矢 量图形路径包围区域中的右半部分已经超出显示区域100外。接着,请参看图5,图5所绘 示的斜线区域是相应于图4的各个矢量图形路径包围区域,其中设定在斜线区域的遮罩值 为非零值(例如遮罩值为I),而设定非斜线区域的遮罩值为零值。
图6是依照本发明一实施例的原始图片与多个剪裁矩形的示意图。图7是描绘新 图片于显示区域。请合并参照图2至图7。由于图6的多个剪裁矩形相同于图2的剪裁矩 形,在此不赘述。类似图1的遮罩功能产生新图片方式,原始图片600可以通过多个遮罩值 的帧缓冲而产生相应于显示区域的新图片700,亦即原始图片600的每一个像素与图5的相 应遮罩值相乘而得到剪裁后的新图片700。接着,将剪裁后的新图片700绘示于显示区域 200。显示区域200与新图片700可以为等同大小,例如640X480的像素,但不以此为限。 在显示区域200中仅描绘矢量图形路径包围区域的像素。剪裁后的新图片700中非为矢量图形路径包围区域因覆盖值为零值,所以呈现黑色。
基于上述,本发明实施例适用于使用符合OpenVG规格的标准二维矢量图形硬件 加速器。本实施例的剪裁二维矢量图形的方法主要是采用OpenVG所定义的遮罩功能。利 用遮罩功能设定相应于所有的矢量图形路径的遮罩值,并且利用遮罩功能使得原始图片通 过多个遮罩值的帧缓冲之后,产生相应显示区域的新图片。在原先的二维矢量图形硬件加 速器在不变更硬件架构/条件的情形下,还可以支援剪裁矩形的个数为32的倍数。所以可 以有效地解决传统需要额外的剪裁电路的问题。
基于上述实施例所揭示教示的内容,可以汇整出一种通用的剪裁二维矢量图形的 方法。更清楚来说,图8绘示为本发明一实施例的剪裁二维矢量图形的方法流程图。请参 照图8,本实施例的剪裁二维矢量图形的方法可以包括以下步骤
首先如步骤S801所示,决定至少一剪裁矩形且将每一剪裁矩形转换成相应于其 矩形边缘的矢量图形路径,其中每一剪裁矩形可为大小不等的矩形,剪裁矩形的数量不特 别限定,一切端视实际设计需求而论;
接着如步骤S803所示,储存每一个矢量图形路径;
接下来如步骤S805所示,设定相应于一显示区域的多个遮罩值,在显示区域中被 所述矢量图形路径包围区域的遮罩值设定为非零值(例如遮罩值为I),显示区域中非包围 区域的遮罩值设定为零值;
接下来如步骤S807所示,使能二维矢量图形硬件加速器的遮罩功能,原始图像通 过多个遮罩值的帧缓冲而产生相应于显示区域的一新图片(亦即对原始图片的每一像素 进行一对一的覆盖值与遮罩值相乘);以及
最后如步骤S809所不,描绘新图片于显不区域。
更清楚来说,步骤S801可以包括下列步骤将每一剪裁矩形转换成其相应于矩形 边缘的一对矢量图形路径,其中一对矢量图形路径中的两者互相平行但方向相反。例如图 3的绘示,矢量图形路径El和E2互相平行,El方向为向下而E2方向为向上。步骤S805包 括下列步骤将所有的遮罩值清除为零值;以及在显示区域中,对应于被矢量图形路径包 围区域的遮罩值填入非零值。步骤S807包括下列步骤通过多个遮罩值的帧缓冲时,将原 始图片中各像素数据的覆盖值乘以相应的遮罩值以得到剪裁后的新图片中的各个覆盖值, 其中新图片中的像素数据相应于被矢量图形路径包围区域的覆盖值可为非零值,而在新图 片中的像素数据相应于非包围区域的覆盖值一定为零值。步骤S809包括下列步骤根据剪 裁后的新图片中的各个像素数据的覆盖值进行描绘,其中对于新图片中属于非零值的像素 进行描绘,而不描绘属于零值的像素。
综上所述,本发明主要是采用OpenVG所定义的遮罩功能。利用遮罩功能设定相应 于所有的矢量图形路径的遮罩值,并且利用遮罩功能使得原始图片通过多个遮罩值的帧缓 冲之后,产生相应显示区域的新图片。在原先的二维矢量图形硬件加速器在不变更硬件架 构/条件的情形下,本发明可以支援32个剪裁矩形,还可以扩展至64个剪裁矩形、128个剪 裁矩形、甚至128个剪裁矩形以上的剪裁应用,所以剪裁矩形的个数可以任意地增加。另一 方面,本发明不需要额外的剪裁电路,所以可以有效地解决传统的问题,且还可以节省硬件 成本。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的结构及技术内容作出些许的更动或修饰为等同变化的等效实施例,但是凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
权利要求
1.一种剪裁二维矢量图形的方法,其特征在于,适用于具有遮罩功能的二维矢量图形硬件加速器,所述方法包括 (a)决定至少一剪裁矩形且将每一所述剪裁矩形转换成相应于其矩形边缘的矢量图形路径; (b)储存每一个矢量图形路径; (C)设定相应于一显示区域的多个遮罩值,在所述显示区域中被所述矢量图形路径包围区域的遮罩值设定为非零值,而所述显示区域中非包围区域的遮罩值设定为零值; (d)使能所述二维矢量图形硬件加速器的遮罩功能,所述原始图像通过所述多个遮罩值的帧缓冲而产生相应于所述显示区域的一新图片;以及 (e)描绘所述新图片于所述显示区域。
2.根据权利要求1所述的剪裁二维矢量图形的方法,其特征在于,步骤(a)中的每一所述剪裁矩形可为大小不等的矩形。
3.根据权利要求1所述的剪裁二维矢量图形的方法,其特征在于,步骤(a)包括下列步骤将每一所述剪裁矩形转换成其相应于矩形边缘的一对矢量图形路径,其中所述一对矢量图形路径中的两者互相平行但方向相反。
4.根据权利要求1所述的剪裁二维矢量图形的方法,其特征在于,步骤(c)包括下列步骤 将所有的遮罩值清除为零值;以及 在所述显示区域中,对应于被所述矢量图形路径包围区域的遮罩值填入非零值。
5.根据权利要求4所述的剪裁二维矢量图形的方法,其特征在于,步骤(d)包括下列步骤 通过所述多个遮罩值的帧缓冲时,将所述原始图片中各像素数据的覆盖值乘以相应的遮罩值以得到所述新图片中的各个覆盖值。
6.根据权利要求5所述的剪裁二维矢量图形的方法,其特征在于,步骤(e)包括下列步骤 根据所述新图片中的各个像素数据的覆盖值进行描绘,其中对于所述新图片中属于非零值的像素进行描绘,而不描绘属于零值的像素。
全文摘要
本发明公开了一种剪裁二维矢量图形的方法,适用于具有遮罩功能的二维矢量图形硬件加速器,此方法包括以下步骤决定至少一剪裁矩形且将每一剪裁矩形转换成相应于其矩形边缘的矢量图形路径;储存每一个矢量图形路径;设定相应于一显示区域的多个遮罩值,在显示区域中被所述矢量图形路径包围区域的遮罩值设定为非零值,显示区域中非包围区域的遮罩值设定为零值;使能二维矢量图形硬件加速器的遮罩功能,原始图像通过多个遮罩值的帧缓冲而产生相应于显示区域的一新图片;以及描绘新图片于显示区域。本发明在不变更硬件架构/条件的情形下,剪裁矩形的个数可以任意地增加,可以有效地解决传统需要额外的剪裁电路的问题。
文档编号G06T1/00GK103034968SQ201110294719
公开日2013年4月10日 申请日期2011年9月29日 优先权日2011年9月29日
发明者纪富中 申请人:扬智科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1