细分曲线数据处理方法、系统、介质及矢量图形处理装置与流程

文档序号:28528470发布日期:2022-01-18 21:07阅读:75来源:国知局
1.本发明涉及数据结构的处理方法,特别是涉及一种细分曲线(tessellation)的数据结构处理方法、系统、介质及矢量图形处理装置。
背景技术
::2.tessellation技术,也被称为细分曲线技术。在矢量图形(vectorgraphic)的应用中,tessellation产生的线与某个y行生成交叉(intersection)点,这些交叉点需要存放于存储器(memory)。tessellation处理完成当前矢量图形后,再将存储器中存放的交叉点数据读回;并根据交叉点的填充和位置信息计算矢量图形中每一个像素(pixel)的覆盖率值,按照填充规则绘制出整个矢量图形。3.现有技术中,tessellation的数据结构(datastructure)中存储器中存放信息为整个矢量图形所有像素的填充和统计信息,这种实现方式导致tessellation对于存储器资源的需求很大。4.另外,在tessellation处理完整个矢量图形后,使用现有技术中的数据结构需要根据矢量图形位置从上到下、从左到右的顺序将存储器中的数据全部读回,寻找到交叉点,进行填充判断。上述存储器数据读回方式具有以下缺陷:5.(1)导致系统的带宽很大;6.(2)寻找交叉点花费的时间很长,相当于对于矢量图形填充增加了很大的气泡时间,严重影响了渲染的性能。技术实现要素:7.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种矢量图形处理装置中细分曲线数据处理方法、系统、介质及矢量图形处理装置,通过只保存细分曲线产生的有效交叉点的填充信息来代替保存整个矢量图形所有像素的填充信息,有效地减少了对存储器资源的需求,提升了矢量图形渲染的性能。8.为实现上述目的及其他相关目的,本发明提供一种矢量图形处理装置中细分曲线数据处理方法,包括以下步骤:在存储器中构建一数据结构,所述数据结构包括x节点内容表和x节点信息表或包括y节点内容表和y节点信息表;所述x节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中x节点个数,所述x节点信息表用于存储水平行对应的信息表包含的x节点信息;所述y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中y节点个数,所述y节点内容表用于存储竖直行对应的信息表包含的y节点信息;当所述数据结构包括x节点内容表和x节点信息表,细分曲线产生的矢量线与x行相交得到一个新的交叉点时,根据所述交叉点的y坐标对应的水平行在所述内容表中读取对应的信息表的地址和x节点个数;根据读取的信息表的地址和x节点个数在所述存储器中读取对应的x节点信息;比较所述交叉点信息和读取的x节点信息,在所述y坐标对应的水平行的信息表上更新或增加x节点;当所述数据结构包括y节点内容表和y节点信息表,细分曲线产生的矢量线与y行相交得到一个新的交叉点时,根据所述交叉点的x坐标对应的竖直行在所述内容表中读取对应的信息表的地址和y节点个数;根据读取的信息表的地址和y节点个数在所述存储器中读取对应的y节点信息;比较所述交叉点信息和读取的y节点信息,在所述x坐标对应的竖直行的信息表上更新或增加y节点。9.于本发明一实施例中,所述x节点信息包括交叉点的x坐标、填充信息、子位置的个数和子位置信息;所述y节点信息包括交叉点的y坐标、填充信息、子位置的个数和子位置信息;所述交叉点信息包含x坐标、y坐标、子位置信息和填充信息。10.于本发明一实施例中,所述子位置的个数能够自定义;所述子位置的个数不是固定值,能够保存所述x节点的所有子位置信息。11.于本发明一实施例中,当所述数据结构包括x节点内容表和x节点信息表,所述交叉点信息的x坐标和读取的x节点信息中x坐标都不相等时,在所述x节点信息表的对应位置处中增加一个x节点,同时更新所述x节点内容表中的x节点个数;12.当所述数据结构包括y节点内容表和y节点信息表,所述交叉点信息的y坐标和读取的y节点信息中y坐标都不相等时,在所述y节点信息表的对应位置处中增加一个y节点,同时更新所述y节点内容表中的y节点个数。13.于本发明一实施例中,当所述数据结构包括x节点内容表和x节点信息表,所述交叉点信息的x坐标和读取的x节点信息中某一x坐标相同时,更新所述x坐标对应的x节点信息;14.当所述数据结构包括y节点内容表和y节点信息表,所述交叉点信息的y坐标和读取的y节点信息中某一y坐标相同时,更新所述y坐标对应的x节点信息。15.于本发明一实施例中,所述x节点信息表中各个x节点根据对应的x坐标依次排序;所述y节点信息表中各个y节点根据对应的y坐标依次排序。16.于本发明一实施例中,所述数据结构中x节点的位宽能够自定义,并在所述x节点信息中的子位置的最大个数确定时,为固定值;所述数据结构中y节点的位宽能够自定义,并在所述y节点信息中的子位置的最大个数确定时,为固定值。17.对应地,本发明提供一种矢量图形处理装置中细分曲线数据处理系统,:包括构建模块、x节点处理模块和y节点处理模块;18.所述构建模块用于在存储器中构建一数据结构,所述数据结构包括x节点内容表和x节点信息表或包括y节点内容表和y节点信息表;所述x节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中x节点个数,所述x节点信息表用于存储水平行对应的信息表包含的x节点信息;所述y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中y节点个数,所述y节点内容表用于存储竖直行对应的信息表包含的y节点信息;19.所述x节点处理模块用于当所述数据结构包括x节点内容表和x节点信息表,细分曲线产生的矢量线与x行相交得到一个新的交叉点时,根据所述交叉点的y坐标对应的水平行在所述内容表中读取对应的信息表的地址和x节点个数;根据读取的信息表的地址和x节点个数在所述存储器中读取对应的x节点信息;比较所述交叉点信息和读取的x节点信息,在所述y坐标对应的水平行的信息表上更新或增加x节点;20.所述y节点处理模块用于当所述数据结构包括y节点内容表和y节点信息表,细分曲线产生的矢量线与y行相交得到一个新的交叉点时,根据所述交叉点的x坐标对应的竖直行在所述内容表中读取对应的信息表的地址和y节点个数;根据读取的信息表的地址和y节点个数在所述存储器中读取对应的y节点信息;比较所述交叉点信息和读取的y节点信息,在所述x坐标对应的竖直行的信息表上更新或增加y节点。21.本发明提供一种存储介质,其上存储有计算机程序,该所述计算机程序被处理器执行时实现上述的矢量图形处理装置中细分曲线数据处理方法。22.最后,本发明提供一种矢量图形处理装置,包括:处理器及存储器;23.所述存储器用于存储计算机程序;24.所述处理器用于执行所述存储器存储的计算机程序,以使所述矢量图形处理装置执行上述的矢量图形处理装置中细分曲线数据处理方法。25.如上所述,本发明的矢量图形处理装置中细分曲线数据处理方法、系统、介质及矢量图形处理装置,具有以下有益效果:26.(1)通过基于横或纵坐标的排序算法,只保存细分曲线产生的有效交叉点的填充信息来代替保存整个矢量图形所有像素的填充信息,有效地减少了对存储器资源的需求;27.(2)能够直接按照所保存的交叉点信息依序进行矢量图形的填充,从而避免了交叉点的搜寻时间,有效降低了系统带宽,提升了矢量图形渲染的性能。附图说明28.图1显示为本发明的矢量图形处理装置中细分曲线数据处理方法于一实施例中的流程图;29.图2显示为本发明的矢量图形处理装置中细分曲线的数据结构于一实施例中的结构示意图;30.图3显示为本发明的矢量图形处理装置中细分曲线数据处理系统于一实施例中的结构示意图;31.图4显示为本发明的矢量图形处理装置于一实施例中的结构示意图。32.元件标号说明33.31ꢀꢀꢀꢀꢀꢀꢀ构建模块34.32ꢀꢀꢀꢀꢀꢀꢀx节点处理模块35.33ꢀꢀꢀꢀꢀꢀꢀy节点处理模块36.41ꢀꢀꢀꢀꢀꢀꢀ处理器37.42ꢀꢀꢀꢀꢀꢀꢀ存储器具体实施方式38.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。39.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。40.本发明的细分曲线数据处理方法、系统、介质及矢量图形处理装置在进行矢量图形的细分曲线处理时只保存细分曲线后的有效交叉点的填充和位置信息,无需保存整个矢量图形所有像素的方向信息,从而有效地减少了对存储器资源的需求;同时由于根据交叉点在笛卡尔坐标系下的x坐标或y坐标进行排序存储,故无需交叉点的查找步骤,有效提升了矢量图形渲染的性能。41.如图1所示,于一实施例中,本发明的矢量图形处理装置中细分曲线数据处理方法包括以下步骤:42.步骤s1、在存储器中构建一数据结构,所述数据结构包括x节点内容表和x节点信息表或包括y节点内容表和y节点信息表;所述x节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中x节点个数,所述x节点信息表用于存储水平行对应的信息表包含的x节点信息;所述y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中y节点个数,所述y节点内容表用于存储竖直行对应的信息表包含的y节点信息。43.于本发明一实施例中,在存储器中构建一数据结构,所述数据结构包括x节点内容表和x节点信息表;所述x节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述x节点信息表中x节点个数;所述x节点信息表用于存储水平行对应的x节点信息。所述x节点是指位于同一水平行的交叉点,具有不同的x坐标,相同的y坐标。44.于本发明另一实施例中,在存储器中构建一数据结构,所述数据结构包括y节点内容表和y节点信息表;所述y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述y节点信息表中y节点个数;所述y节点信息表用于存储竖直行对应的y节点信息。所述y节点是指位于同一竖直行的交叉点,具有不同的y坐标,相同的x坐标。45.具体地,在矢量图形处理装置的存储器中构建一新型的数据结构,以存储细分曲线处理所产生的数据。如图2所示,所述数据结构采用二级结构,第一级为内容表(contenttable),第二级为信息表(xblock)。所述内容表中以水平行(horizontalline)为单位,存储每个水平行对应的x节点信息表在所述存储器中的地址(addr)和所述x节点信息表中x节点(xnode)个数(count)。也就是说,每个y坐标对应的水平行对应一个x节点信息表,所述x节点内容表中根据y坐标依次存储各个x节点信息表的存储地址和该水平行中x节点信息表所包含的x节点的个数。例如,y坐标为y0时,对应的存储地址为addr0,x节点个数为count0;y坐标为y1时,对应的存储地址为addr1,x节点个数为count1;以此类推,y坐标为yn时,对应的存储地址为addrn,x节点个数为countn。46.同时,一个水平行对应的x节点对应所述x节点信息表中的一个元素。针对每个水平行,所述x节点信息表存储所述x节点信息。于本发明一实施例中,所述x节点信息包括交叉点的x坐标(coordinate)、填充信息(fillinformation)、子位置的个数(count)和子位置信息(sublocation)。相应地,所述y节点信息包括交叉点的y坐标、填充信息、子位置的个数和子位置信息。在图2所示的实施例中,包含4个子位置,子位置信息分别为subloc0、subloc1、subloc2和subloc4。于本发明一实施例中,所述数据结构中x节点/y节点的位宽为固定值。因此,在读取所述数据结构中的数据时,首先读取所述x节点内容表/y节点内容表,根据所读取的x节点/y节点个数和x节点/y节点的位宽,可以确定当前x节点信息表/y节点信息表的数据长度;再通过所述x节点内容表/y节点内容表中存储的地址信息,在存储器中直接读取当前x节点信息表/y节点信息表的所有有效数据。于本发明一实施例中,所述子位置的个数能够自定义;所述子位置的个数不是固定值,能够保存所述x节点的所有子位置信息。于本发明的另一实例中,当所述子位置的最大个数没有预先确定时,在内容表中保存的数据还增加有信息表的数据长度。47.为了提高图像质量,矢量图形处理应用通常会采用抗锯齿算法,将交叉点的位置进一步分成4x、8x、16x等子位置。因此,为了固定x节点/y节点的位宽,可以按照实际需求和抗锯齿算法的质量设置一个x节点/y节点中所保存子位置的个数,如4个、6个、8个等等。48.在矢量图形(vectorgraphic)处理应用中,交叉点随着绘制的推进,有可能会被矢量线(vectorline)穿过多次,每次的方向可能不同。交叉点每次被绘制的矢量线穿过一次,其被经过的子位置和填充信息都需要保存下来。由于交叉点可能会被多次穿过,因此子位置的信息可能彼此相同。一个x节点保存的所有子位置的填充信息相同,对应为fillinformation;同时将子位置的方向相同的保存在一起,并记录为direction。因此,一个交叉点被矢量线穿过的方向不同或者子位置个数超过预设值,其信息会被保存在两个或者多个x节点/y节点中,且这些x节点/y节点的x坐标/y坐标相同。49.于本发明一实施例中,所述x节点信息表中各个x节点根据对应的x坐标依次排序。所述y节点信息表中各个y节点根据对应的y坐标依次排序。当细分曲线完成后回读x节点/y节点进行矢量图形渲染时,可以直接按照所述x节点信息表/y节点信息表中保存的排列好的交叉点信息进行矢量图形的渲染,从而无需对交叉点进行搜索,提升了矢量图形渲染充的性能。50.由于x节点信息表和y节点信息表中只保存有交叉点信息,无需存储整个矢量图形所有像素的方向信息,因此对存储器的需求显著降低,缓解了系统压力。51.步骤s2、当所述数据结构包括x节点内容表和x节点信息表,细分曲线产生的矢量线与x行相交得到一个新的交叉点时,根据所述交叉点的y坐标对应的水平行在所述内容表中读取对应的信息表的地址和x节点个数;根据读取的信息表的地址和x节点个数在所述存储器中读取对应的x节点信息;比较所述交叉点信息和读取的x节点信息,在所述y坐标对应的水平行的信息表上更新或增加x节点。52.具体地,当所述数据结构包括x节点内容表和x节点信息表,在细分曲线过程中获取一个新的交叉点时,需要根据该交叉点的信息更新所述数据结构。首先根据所述交叉点的y坐标在所述数据结构中获取对应的水平行的x节点信息表的存储地址和x节点个数。53.具体地,根据读取的x节点信息表的地址和x节点个数在所述x节点信息表中读取x节点信息表中所有的x节点信息。其中,可以根据x节点的位宽来读取x节点信息,也可以根据预设的x节点截止标志来读取x节点信息,其读取方式不作具体限定,凡是能准确读取x节点信息的方法均在本发明的保护范围之列。于本发明一实施例中,所述数据结构中x节点的位宽能够自定义,并在所述x节点信息中的子位置的最大个数确定时,为固定值。54.于本发明一实施例中,所述交叉点信息包含x坐标、y坐标、子位置信息和填充信息。将所述交叉点信息和所读取的x节点信息一一进行比对,并根据比对结果实现所述y坐标对应的水平行的x节点信息表上x节点的更新或增加。当所述交叉点信息的x坐标和读取的x节点信息中x坐标都不相等时,表明当前交叉点为新产生的x节点,则根据所述交叉点的x坐标和x节点信息表中已有的x节点的坐标排序,在所述x节点信息表的对应位置处中增加一个x节点,根据所述交叉点信息存储对应的x节点信息,同时更新所述x节点内容表中的x节点个数,即x节点个数加1。当所述交叉点信息的x坐标和读取的x节点信息中某一x坐标相同时,表明所获取的新的交叉点所在位置之前已经被矢量线穿过,则根据所述交叉点信息更新所述x坐标对应的x节点信息。55.步骤s3、当所述数据结构包括y节点内容表和y节点信息表,细分曲线产生的矢量线与y行相交得到一个新的交叉点时,根据所述交叉点的x坐标对应的竖直行在所述内容表中读取对应的信息表的地址和y节点个数;根据读取的信息表的地址和y节点个数在所述存储器中读取对应的y节点信息;比较所述交叉点信息和读取的y节点信息,在所述x坐标对应的竖直行的信息表上更新或增加y节点。56.具体地,当所述数据结构包括y节点内容表和y节点信息表,在细分曲线过程中获取一个新的交叉点时,需要根据该交叉点的信息更新所述数据结构。首先根据所述交叉点的x坐标在所述数据结构中获取对应的竖直行的y节点信息表的存储地址和y节点个数。57.具体地,根据读取的y节点信息表的地址和y节点个数在所述y节点信息表中读取y节点信息表中所有的y节点信息。其中,可以根据y节点的位宽来读取y节点信息,也可以根据预设的y节点截止标志来读取x节点信息,其读取方式不作具体限定,凡是能准确读取y节点信息的方法均在本发明的保护范围之列。于本发明一实施例中,所述数据结构中y节点的位宽能够自定义,并在所述y节点信息中的子位置的最大个数确定时,为固定值。58.具体地,所述交叉点信息包含x坐标、y坐标、子位置信息和填充信息。将所述交叉点信息和所读取的y节点信息一一进行比对,并根据比对结果实现所述x坐标对应的水平行的y节点信息表上y节点的更新或增加。当所述数据结构包括y节点内容表和y节点信息表,所述交叉点信息的y坐标和读取的y节点信息中y坐标都不相等时,在所述y节点信息表的对应位置处中增加一个y节点,同时更新所述y节点内容表中的y节点个数,则根据所述交叉点的y坐标和y节点信息表中已有的y节点的坐标排序,在所述y节点信息表的对应位置处中增加一个y节点,根据所述交叉点信息存储对应的y节点信息,同时更新所述y节点内容表中的y节点个数,即y节点个数加1。当所述交叉点信息的y坐标和读取的y节点信息中某一y坐标相同时,表明所获取的新的交叉点所在位置之前已经被矢量线穿过,则根据所述交叉点信息更新所述y坐标对应的y节点信息。59.如图3所示,于一实施例中,本发明的矢量图形处理装置中细分曲线数据处理系统包括构建模块31、x节点处理模块32和y节点处理模块33。60.所述构建模块31用于在存储器中构建一数据结构,所述数据结构包括x节点内容表和x节点信息表或包括y节点内容表和y节点信息表;所述x节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中x节点个数,所述x节点信息表用于存储水平行对应的信息表包含的x节点信息;所述y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中y节点个数,所述y节点内容表用于存储竖直行对应的信息表包含的y节点信息。61.所述x节点处理模块32与所述构建模块31相连,用于当所述数据结构包括x节点内unit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。72.综上所述,本发明的细分曲线数据处理方法、系统、介质及矢量图形处理装置通过基于横坐标/纵坐标的排序算法,只保存细分曲线产生的有效交叉点的填充和位置信息来代替保存整个矢量图形所有像素的填充和位置信息,有效地减少了对存储器资源的需求;能够直接按照所保存的交叉点信息依序进行矢量图形的填充,从而避免了交叉点的搜寻时间,有效降低了系统带宽,提升了矢量图形渲染的性能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。73.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
:中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1