用于向量图形的线段对照表产生方法与产生装置的制作方法

文档序号:6335281阅读:143来源:国知局

专利名称::用于向量图形的线段对照表产生方法与产生装置的制作方法
技术领域
:本发明涉及向量图形技术,尤指一种用于向量图形的线段对照表的产生方法。
背景技术
:在一般的向量图形(vectorgraphics)技术之中,为了要将一个三维(3-dimension)的物件模型呈现在一个二维平面上,需先计算该三维物件模型在该二维平面的投射,并以向量的方式来撷取一投射影像,再经由一线段化(Tessellation)引擎将该投射影像的所有线条转换成线段(edge),接着再由一栅格化(Rasterization)引擎将该些线段转换成像素信息(例如,一线条中每一像素的坐标等信息),最后再由绘图系统依据得到的像素信息来描绘成像。一般基本的栅格化引擎在处理一线段的线段时,会在该线段所经过的每一条扫描线(scanline)上作计算处理,亦即,假若该线段经过了300条扫描线,一般的基本栅格化引擎亦会相对应地处理300次。然而,当所处理的影像较复杂而有着相当大量的线段时,其所需要付出的时间以及资源也会大量增加。是故,有些现有栅格化引擎应用了线段对照表(edgetable)来处理相关的计算(例如应用一动态线段对照表(activeedgetable)来降低每一扫描线所需处理的线段),以减少计算所需的时间以及资源。请参照图1,其为现有栅格化引擎所应用的线段对照表的范例示意图。在图1的例子当中,共有四条扫描线LOL3,而与扫描线LOL3有所交会的线段分别有10、20、30、20条。因此该现有栅格化引擎所需处理的计算次数为10+(10+20)+(10+20+30)+(10+20+30+20)=180。相对来说,一般的基本栅格化引擎所需处理的计算次数则为4*(10+20+30+20)=320。因此,经由线段对照表,栅格化引擎的计算流程可被大幅地简化。然而,一般常见的线段对照表是经由链结串列(linked-list)的方式来加以产生。请同时参照图2与图3,图2为线段转换为线段对照表的一范例示意图,而图3为依据图2的线段所产生的线段对照表以及相对应的单向链结串列数据的示意图。图2中有五条扫描线YOY4,而由左至右分别有五条线段EOE4,图3中的一扫描线索引具有五个数据条目(dataentry),分别对应扫描线YOW,而每个数据条目所包含的数据均指向相对应的链结串列数据,而图3中的每一链结串列数据均有三笔数据条目,分别为数据序号、线段数据以及下笔数据序号,其中线段数据DOD4分别代表线段EOE4的相关信息,例如线段的长度、起点与终点坐标以及斜率等等信息。在此范例中,线段对照表会依据各个线段由上而下的起点来处理相关信息,举例来说,当在处理扫描线YO时,按照线段对照表的索引会先搜寻数据序号为1的链结串列数据,再接着依循搜寻到的链结串列数据是否包含下笔链结串列数据序号的继续进行搜寻,在此范例中,由数据序号为1的链结串列数据会链结到数据序号为0的链结串列数据,而数据序号为0的链结串列数据指示已无下笔数据,这时扫描线YO的处理程序会归类为已完成,而依序开始下个扫描线Yl的处理程序。然而,采用链结串列的方式来产生线段对照表的方法会需要较多的储存空间来置放链结顺序(双向的链结串列格式则需要更多一倍的数据顺序储存空间),因此,如何有效率地产生线段对照表以进行栅格化程序的方法仍是此领域尚待解决的一大课题。
发明内容有鉴于此,本发明提供了一种线段对照表的产生方法以及相关装置,以解决上述的问题。依据本发明的一实施例,其提供了一种用于向量图形(vectorgraphics)的线段对照表(edgetable)产生方法,包含有接收多条线段所分别对应的多笔线段数据,其中每一线段数据包含一相对应线段所对应的一端点的信息;依据该些线段所对应的多个端点,统计多条扫描线中每一扫描线于该些端点中所对应的端点数量,以产生一第一统计表;以及依据该第一统计表来重新排列该些线段数据,以产生并写入一线段对照表至一第一储存元件。依据本发明的另一实施例,其提供了一种用于向量图形的线段对照表产生装置,包含有一第一储存元件以及一处理电路。该第一储存元件用以储存一线段对照表。该处理电路耦接于该第一储存元件,用以接收多条线段所分别对应的多笔线段数据,其中每一线段数据包含一相对应线段所对应的一端点的信息,并依据该些线段所对应的多个端点,统计多条扫描线中每一扫描线于该些端点中所对应的端点数量,以产生一第一统计表,以及依据该第一统计表来重新排列该些线段数据,以产生并写入该线段对照表至该第一储存元件。本发明所提出的方法是应用统计的方式来依序将线段数据重新排列,因此不需要多余的储存空间来置放链结顺序,此外,具有同样特征的线段的线段数据会分配在邻近而连续的储存位置上,因此可加速读取与写入的效率,对栅格化处理的硬体设备来说会更加地便利。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中图1为现有栅格化引擎所应用的线段对照表的范例示意图。图2为线段转换为线段对照表的一范例示意图。图3为依据图2的线段所产生的线段对照表以及相对应的单向链结串列数据。图4为本发明用于向量图形的线段对照表产生装置的第一实施例的示意图。图5为本发明的一实施例中产生对应于图2所示的线段的一第一统计表与一第二统计表的范例示意图。图6为本发明的一实施例中依据一第二统计表以及所接收到的线段数据来产生线段对照表的示意图。图7为图6中同步产生线段对照表ET并更新第二统计表的流程示意图。图8为本发明用于向量图形的线段对照表产生装置的一第二实施例的示意图。附图标号100,200线段对照表产生装置110、210第一储存元件120、220处理电路121、221累计元件230第二储存元件ET线段对照表LlL4、YOY4扫描线DOD4扫描线数据Tl第一统计表T2第二统计表T1_0Tl_4、Τ1_0Tl_4统计表条目ΕΤ_0ΕΤ_4线段对照表条目具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。请参照图4,其为本发明用于向量图形(vectorgraphics)的线段对照表(edgetable)产生装置的一第一实施例的示意图。本实施例中,线段对照表产生装置100包含有一第一储存元件110以及一处理电路120,其中处理电路120中包含有一累计元件121。处理电路120在接收多条线段所分别对应的多笔线段数据后,会依据该些线段所对应的多个端点,统计多条扫描线中每一扫描线于该些端点中所对应的端点数量,并产生一第一统计表Tl,而累计元件121会接着依据该些扫描线的顺序以及第一统计表Tl,来产生一第二统计表T2。请配合图2来参照图5,其为依据本发明的一实施例来产生对应于图2所示的线段的第一统计表Tl与第二统计表T2的范例示意图。假若所接收的线段数据依序为DOD4(分别对应至线段EOE4),在此实施例中,处理电路120会查询每一线段在Y轴方向上所对应的起点来产生第一统计表Tl,举例来说,假设第一统计表Tl的各个条目可依序表示为T1_0Tl_4,线段EO与El的起点均在扫描线YO上,是故第一统计表Tl上对应扫描线YO的第一个条目Τ1_0便填入2,亦即代表在扫描线YO上具有两个线段的起点;同样地,线段Ε2与Ε3的起点均在扫描线Υ2上,是故第一统计表Tl上对应扫描线Υ2的第三个条目Tl_2便填入2,亦即代表在扫描线Υ2上具有两个线段的起点;线段Ε4的起点则是在扫描线Yl上,第一统计表Tl上对应扫描线Yl的第二个条目Tl_l便填入1;最后,扫描线TO与W上均无任何线段的起点,是故第三与第四个条目Tl_3与Tl_4均填入0,在完成所有扫描线的统计之后,处理电路120便可由此产生第一统计表Tl。然而,上述范例仅为说明之用,并非用来限定本发明的范畴,例如,处理电路120亦可应用每个线段的终点来作统计,以产生第一统计表Tl,此一设计上的变化亦属于本发明的范围之内。在得到第一统计表Tl之后,累计元件121会进一步将第一统计表Tl作累积计算,并依序产生第二统计表Τ2。请再参照图5,假设第二统计表Τ2的各个条目可依序表示为Τ2_0Τ2_4,第二统计表Τ2的每一个条目均表示了第一统计表Tl中相对应的条目之前的统计数值总和,亦即第二统计表Τ2中的条目Τ2_0表示第一统计表Tl中条目Τ1_0以前的统计数值总和,由于条目Τ1_0之前没有任何条目,是故条目Τ2_0内填入0;同样地,第二统计6表T2中的条目T2_l表示第一统计表Tl中条目Tl_l以前的统计数值总和,由于条目Tl_l以前仅有条目Τ1_0,是故T2_l=T1_0=2;而第二统计表T2中的条目Τ2_2表示第一统计表Tl中条目Tl_2以前的统计数值总和,T2_2=Τ1_0+Τ1_1=2+1=3;以此类推,便可得到如图5所示完整的第二统计表Τ2。由上述描述可知,第二统计表Τ2可以具有依序对应至上述扫描线的多个暂存区,且每一暂存区所纪录的一数值为基于累加暂存区所对应扫描线之前所有扫描线的端点数量。请参照图6,其为本发明的一实施例中依据第二统计表Τ2以及所接收到的线段数据DOD4来产生线段对照表ET的示意图。在得到第二统计表Τ2后,处理电路120会参照第二统计表Τ2来重新排列所接收到的线段数据DOD4,以产生线段对照表ΕΤ,并将线段对照表ET储存入第一储存元件110之中。请配合图6来参照图7,图7为图6中同步产生线段对照表ET并更新第二统计表的流程示意图。首先,第一储存元件110上会先分配出一个用以储存线段对照表ET的空间,在本实施例中,该空间分别具有对应至扫描线YOW的五个储存区ΕΤ_0ΕΤ_4,而处理电路120会依序对线段数据DOD4进行处理并重新分配线段数据DOD4至储存区ΕΤ_0ΕΤ_4中。首先,处理电路120会先查询线段数据D0,由于线段EO的起点位在扫描线YO上,处理电路120会查询第二统计表Τ2中对应扫描线YO的条目Τ2_0,而条目Τ2_0的内容为0,是故处理电路120便将线段数据DO写入至相对应的储存区ΕΤ_0之中,并将条目Τ2_0的内容加上1(亦即0+1)以更新第二统计表Τ2。接下来,处理电路120会查询线段数据D1,由于线段El的起点亦位在扫描线YO上,处理电路120同样地会查询更新后的第二统计表Τ2中对应扫描线YO的条目Τ2_0,由于条目Τ2_0的内容已被更新为1,故处理电路120便将线段数据Dl写入至相对应的储存区ΕΤ_1之中,并将条目Τ2_0的内容再加上1(亦即1+1)以进一步更新第二统计表Τ2。之后,处理电路120会查询线段数据D2,而线段Ε2的起点亦位在扫描线Υ2上,故处理电路120会查询更新后的第二统计表Τ2中对应扫描线Υ2的条目Τ2_2,条目Τ2_2的内容为3,因此处理电路120便将线段数据D2写入至相对应的储存区ΕΤ_3之中,并将条目Τ2_3的内容再加上1(亦即3+1)以更新第二统计表Τ2。以此类推,处理电路120可轻易地依据第二统计表Τ2来对线段数据DOD4重新排列并得到线段对照表ΕΤ,进而加速影像处理的效率。请参照图8,其为本发明用于向量图形的线段对照表产生装置的一第二实施例的示意图。本实施例中,线段对照表产生装置200包含有一第一储存元件210、一第二储存元件230以及一处理电路220,其中处理电路220中包含有一累计元件221。请注意,由于第一储存元件210与处理电路220的结构以及功能与图4所示的第一储存元件110与处理电路120的结构以及功能大致相同,在此便不再赘述。相较于线段对照表产生装置100,线段对照表产生装置200可将线段化(Tessellation)引擎所输出的线段数据储存至第二储存元件230内,并同时统计已储存的该些扫描线中每一扫描线于该些端点中所对应的端点数量(亦即每接收到一笔线段数据,在储存该笔线段数据时会一并进行前述的统计操作),以产生第一统计表Tl,因而不需要等待线段化引擎的处理程序完成之后才产生第一统计表Tl。此外,第一储存元件210与第二储存元件230均可用动态随机存取存储器(dynamicrandomaccessmemory,DRAM)或静态随机存取存储器(staticrandomaccessmemory,SRAM)来加以实现,这些设计上的变化均属于本发明的范围之内。7相较于现有的链结串列式的线段对照表,本发明所提出的方法应用统计的方式来依序将线段数据重新排列,因此不需要多余的储存空间来置放链结顺序,此外,具有同样特征(在实施例中,此项特征为该线段在由上而下的方向上的起点)的线段的线段数据会分配在邻近而连续的储存位置上,因而可加速读取与写入的效率,对栅格化处理的硬体设备来说会更加地便利。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。权利要求1.一种用于向量图形的线段对照表产生方法,其特征在于,所述线段对照表产生方法包含有接收多条线段所分别对应的多笔线段数据,其中每一线段数据包含一相对应的端点的fn息;统计多条扫描线中每一扫描线于所述线段中相对应的端点数量,以产生一第一统计表;依据所述第一统计表与所述扫描线的顺序累加以产生一第二统计表;以及依据所述第二统计表,来重新排列所述线段数据,以产生并写入一线段对照表至一第一储存元件。2.如权利要求1所述的线段对照表产生方法,其特征在于,依据所述第一统计表与所述扫描线的顺序累加以产生所述第二统计表的步骤更包含有所述第二统计表具有依序对应至所述扫描线的多个暂存区,且每一暂存区所纪录的一数值是基于累加所述暂存区所对应的扫描线之前所有扫描线的端点数量所产生;以及依据所述第二统计表来重新排列所述线段数据,以产生所述线段对照表并将所述线段对照表储存入所述第一储存元件。3.如权利要求2所述的线段对照表产生方法,其特征在于,依据所述第二统计表来重新排列所述线段数据的步骤包含有针对所述线段之中一特定线段依据所述特定线段的端点所对应的一特定扫描线来查询所述第二统计表,并由所述第二统计表中对应所述特定扫描线的一特定暂存区所纪录的数值来得到一查询结果;以及依据所述查询结果来决定所述第一储存元件中的一特定储存位址,并将所述特定线段的线段数据写入至所述第一储存元件中的所述特定储存位址。4.如权利要求3所述的线段对照表产生方法,其特征在于,依据所述第二统计表来重新排列所述线段数据的步骤另包含有针对所述些线段之中所述特定线段在决定出所述第一储存元件中的所述特定储存位址之后,更新所述特定暂存区所纪录的数值。5.如权利要求1所述的线段对照表产生方法,其特征在于,产生所述第一统计表的步骤包含有将所接收的所述线段数据逐一储存至一第二储存元件;以及在所述线段数据逐一储存至所述第二储存元件的过程中,同时统计所述扫描线中每一扫描线在所述端点中所对应的端点数量,以产生所述第一统计表。6.一种用于向量图形的线段对照表产生装置,其特征在于,所述的线段对照表产生装置包含有一第一储存元件,用以储存一线段对照表;以及一处理电路,耦接于所述第一储存元件,以产生并写入所述线段对照表至所述第一储存元件,其中,所述处理电路接收多条线段所分别对应的多笔线段数据,统计多条扫描线中每一扫描线上所对应的线段端点数量,以产生一第一统计表,利用所述第一统计表与所述扫描线顺序累加产生一第二统计表以重新排列所述线段数据,以产生所述线段对照表。7.如权利要求6所述的线段对照表产生装置,其特征在于,所述处理电路包含有一累计元件,依据所述扫描线的顺序以及所述第一统计表,累加所对应的扫描线之前所有扫描线的端点数量而产生所述第二统计表。8.如权利要求6所述的线段对照表产生装置,其特征在于,所述的线段对照表产生装置另包含有一第二储存元件,耦接至所述处理电路;其中所述处理电路将所接收的所述线段数据逐一储存至所述第二储存元件,并在所述线段数据逐一储存至所述第二储存元件的过程中,同时统计所述扫描线中每一扫描线在所述端点中所对应的端点数量,以产生所述第一统计表。全文摘要本发明公开了一种用于向量图形的线段对照表产生方法及装置,包含有接收多条线段所分别对应的多笔线段数据,其中每一线段数据包含一相对应线段所对应的一端点的信息;依据该些线段所对应的多个端点,统计多条扫描线中每一扫描线于该些端点中所对应的端点数量,以产生一第一统计表;以及依据该第一统计表来重新排列该些线段数据,以产生并写入一线段对照表至一第一储存元件。本发明实施例所提出的方法及装置是应用统计的方式来依序将线段数据重新排列,因此不需要多余的储存空间来置放链结顺序,此外,具有同样特征的线段的线段数据会分配在邻近而连续的储存位置上,因此可加速读取与写入的效率,对栅格化处理的硬体设备来说会更加地便利。文档编号G06T1/60GK102467737SQ20101053301公开日2012年5月23日申请日期2010年11月4日优先权日2010年11月4日发明者纪富中申请人:扬智科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1