一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-02-20 19:40:01 来源:中国专利 TAG:
1.本发明涉及数据结构的处理方法,特别是涉及一种细分曲线(tessellation)的数据结构处理实现方法、系统、介质及矢量图形处理装置。
背景技术
::2.tessellation技术,也被称为细分曲线技术。在矢量图形(vectorgraphic)的应用中,tessellation产生的线与某个y行生成交叉(intersection)点,这些交叉点需要存放于存储器(memory)。tessellation处理完成当前矢量图形后,再将存储器中存放的交叉点数据读回;并根据交叉点的填充和位置信息计算矢量图形中每一个像素(pixel)的覆盖率值,按照填充规则绘制出整个矢量图形。3.现有技术中,tessellation的数据结构(datastructure)中存储器中存放信息为整个矢量图形所有像素的填充和统计信息,这种实现方式导致tessellation对于存储器资源的需求很大。另外,大的存储器需求使得硬件很难实现多路细分曲线的并行工作,限制了系统硬件的性能。4.在tessellation处理完整个矢量图形后,使用现有技术中的数据结构需要根据矢量图形位置从上到下、从左到右的顺序将存储器中的数据全部读回,寻找到交叉点,进行渲染。上述存储器数据读回方式具有以下缺陷:5.(1)导致系统的带宽很大;6.(2)寻找交叉点花费的时间很长,相当于对于矢量图形填充增加了很大的气泡时间,严重影响了渲染的性能。7.另外,为了减少与存储器的交互,硬件中通常会添加缓存存储器(cache)来缓存一部分数据。而现有技术中的cache命中率较低,导致系统的带宽变大,性能降低,功耗增加。技术实现要素:8.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种细分曲线数据处理实现方法、系统、介质及矢量图形处理装置,通过多级查找表的方式基于交叉点的坐标进行有效数据的存储,从而有效地减少了对存储器资源的需求,支持多路细分曲线处理,提升了矢量图形渲染的性能。9.为实现上述目的及其他相关目的,本发明提供一种矢量图形处理装置中细分曲线数据处理实现方法,包括以下步骤:针对细分曲线的矢量线与x/y行相交得到的交叉点的指定坐标设置一级至多级缓存表;所述指定坐标为x坐标或y坐标;将信息表在所述存储器中的地址存储在所述内容表,将所述内容表在所述存储器中的地址存储在所述一级缓存表,将所述一级缓存表在存储器中的地址存储在更上一级缓存表;所述信息表中存储所述指定坐标对应的节点信息;当所述指定坐标为x坐标时,对应的节点信息为y节点信息;当所述指定坐标为y坐标时,对应的节点信息为x节点信息。10.于本发明一实施例中,多个指定坐标对应的所有节点信息共同保存在多个信息表中,单个信息表保存有多个指定坐标的部分节点信息。11.于本发明一实施例中,所述信息表中保存的指定坐标的个数按照需求设置一个或多个;所述部分节点的个数由所述指定坐标的个数和所述信息表的宽度决定。12.于本发明一实施例中,所述x节点信息包括交叉点的x坐标、填充信息、子位置和子位置个数;所述y节点信息包括交叉点的y坐标、填充信息、子位置和子位置个数;所述子位置包括x子位置和y子位置。13.于本发明一实施例中,细分曲线单次处理节点的最大数量能够自定义,若待处理的节点个数大于所述最大数量,首先针对前最大数量个节点进行矢量图形的渲染,再针对剩余的节点进行矢量图形的渲染;当不设置所述最大数量时,单次对所有节点进行矢量图形的渲染。14.于本发明一实施例中,所述信息表中各个节点根据对应的坐标依次从小到大排序;在所述内容表中设置节点的坐标最大值或坐标最小值;当节点的存储个数为所述最大数量时,若新产生的交叉点的坐标大于所述坐标最大值时,直接丢弃所述交叉点,并在下一轮时将所述坐标最小值设置为上一轮的坐标最大值,只处理坐标大于所述坐标最小值的新产生的交叉点。15.于本发明一实施例中,所述信息表中各个节点根据对应的坐标依次从大到小排序;在所述内容表中设置节点的坐标最大值或坐标最小值;当节点的存储个数为所述最大数量时,若新产生的交叉点的坐标小于所述坐标最小值时,直接丢弃所述交叉点,并在下一轮时将所述坐标最大值设置为上一轮的坐标最小值,只处理坐标小于所述坐标最大值的新产生的交叉点。16.于本发明一实施例中,根据新的交叉点的指定坐标在最高级缓存表中查找对应的下一级缓存表的地址,直至得到一级缓存表地址;17.若所述某一级缓存表不在缓存存储器中,从所述存储器中读取所述此级缓存表,再在所述此级缓存表中获取对应的下一级缓存表地址;否则直接在所述此级缓存表中获取对应的下一级地址;18.若所述一级缓存表不在缓存存储器中,从所述存储器中读取所述一级缓存表,再在所述一级缓存表中获取对应的内容表地址;否则直接在所述一级缓存表中获取对应的内容表地址;19.若所述内容表不在所述缓存存储器中,从所述存储器中读取所述内容表,再根据内容表判断是否丢掉所述新的交叉点;否则直接根据内容表判断是否丢掉所述新的交叉点;20.若丢掉所述新的交叉点,更新所述内容表;若不丢掉所述新的交叉点,获取对应的信息表地址;若信息表不在所述缓存存储器中,从所述存储器中读取所述信息表,将所述新的交叉点的信息更新或增加至所述信息表中的节点信息,并更新所述内容表;否则直接将所述新的交叉点的信息更新或增加至所述信息表中的节点信息,并更新所述内容表。21.对应地,本发明提供一种矢量图形处理装置中细分曲线数据处理实现系统,包括设置模块和存储模块;22.所述设置模块用于针对细分曲线产生的交叉点的指定坐标设置一级至多级缓存表;所述指定坐标为x坐标或y坐标;23.所述存储模块用于将信息表在所述存储器中的地址存储在所述内容表,将所述内容表在所述存储器中的地址存储在所述一级缓存表,将所述一级缓存表在存储器中的地址存储在更上一级缓存表;所述信息表中存储所述指定坐标对应的节点信息;当所述指定坐标为x坐标时,对应的节点信息为y节点信息;当所述指定坐标为y坐标时,对应的节点信息为x节点信息。24.本发明提供一种存储介质,其上存储有计算机程序,该所述计算机程序被处理器执行时实现上述的矢量图形处理装置中细分曲线数据处理实现方法。25.最后,本发明提供一种矢量图形处理装置,包括:处理器及存储器;26.所述存储器用于存储计算机程序;27.所述处理器用于执行所述存储器存储的计算机程序,以使所述矢量图形处理装置执行上述的矢量图形处理装置中细分曲线数据处理实现方法。28.如上所述,本发明的细分曲线数据处理实现方法、系统、介质及矢量图形处理装置,具有以下有益效果:29.(1)有效减少对于存储器的资源需求,支持并行进行多路细分曲线处理,提升了细分曲线的效率;30.(2)增加了缓存存储器的命中率,减少了对存储器的读取,降低了带宽;31.(3)避免了交叉点的搜寻时间,提升了矢量图形渲染的性能。附图说明32.图1显示为本发明的矢量图形处理装置中细分曲线数据处理实现方法于一实施例中的流程图;33.图2显示为本发明的矢量图形处理装置中细分曲线的数据结构于一实施例中的结构示意图;34.图3显示为本发明的x节点于一实施例中的结构示意图;35.图4显示为本发明的x节点缓存行于一实施例中的结构示意图;36.图5显示为本发明的内容表于一实施例中的结构示意图;37.图6显示为本发明的矢量图形处理装置中细分曲线数据处理实现方法于另一实施例中的流程图;38.图7显示为本发明的矢量图形处理装置中细分曲线数据处理实现系统于一实施例中的结构示意图;39.图8显示为本发明的矢量图形处理装置于一实施例中的结构示意图。40.元件标号说明41.71设置模块42.72存储模块43.81处理器44.82存储器具体实施方式45.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。46.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。47.本发明的矢量图形处理装置中细分曲线数据处理实现方法、系统、介质及矢量图形处理装置通过多级查找表的方式基于交叉点的坐标进行有效数据的存储,减少了对存储器资源的需求,使得系统可以提供足够的存储器让硬件并行进行多路细分曲线,有效提升了硬件的性能;同时由于基于坐标进行节点的存储,避免了渲染时交叉点的搜索过程,有效提升了矢量图形渲染的性能。48.如图1所示,于一实施例中,本发明的矢量图形处理装置中细分曲线数据处理实现方法包括以下步骤:49.步骤s1、针对细分曲线的矢量线与x/y行相交得到的交叉点的指定坐标设置一级至多级缓存表;所述指定坐标为x坐标或y坐标。50.其中,在设置缓存表时,在内容表中只保存产生的交叉点的指定坐标值;若不设置缓存表,则内容表中保存有所有指定坐标值。51.具体地,针对细分曲线的矢量线与x/y行相交得到的交叉点采用一级或多级查找表的方式进行存储。如图2所示,当指定坐标为y坐标且设置二级缓存表时,所述二级缓存表用于存储所述一级缓存表在存储器中的地址,所述一级缓存表用于存储所述内容表在存储器中的地址,所述内容表用于存储信息表(informationtable)在存储器中的地址。其中,交叉点的y坐标中包含有一级缓存表索引、内容表索引。因此,对于一个交叉点,可根据其y坐标,从二级缓存表依次定位到对应的一级缓存表和内容表,从而获取信息表的地址。当指定坐标为x坐标时,存储方式与指定坐标为y坐标时相同,故在此不再赘述。52.其中,所述信息表为交叉点的y坐标对应的水平行所对应的一定数量的x节点(xnode)或交叉点的x坐标对应的竖直行所对应的一定数量的y节点(ynode)。如图3所示,于一实施例中,所述x节点信息包括交叉点的x坐标(xcoord)、填充信息(info)、子位置(suby(0)、subx(0)、suby(1)、subx(1)、suby(2)、subx(2)…)和子位置个数(cnt),所述子位置包括x子位置和y子位置。相应地,所述y节点信息包括交叉点的y坐标、填充信息、子位置和子位置个数。优选地,所述信息表中各个节点根据对应的坐标依次排序。当细分曲线完成后,读取信息表进行矢量图形填充时,可以直接获取有效的数据,避免了交叉点的搜索时间,从而提升了矢量图形渲染的性能。53.步骤s2、将信息表在所述存储器中的地址存储在所述内容表,将所述内容表在所述存储器中的地址存储在所述一级缓存表,将所述一级缓存表在存储器中的地址存储在更上一级缓存表;所述信息表中存储所述指定坐标对应的节点信息;当所述指定坐标为x坐标时,对应的节点信息为y节点信息;当所述指定坐标为y坐标时,对应的节点信息为x节点信息。54.具体地,在设置完成细分曲线产生的交叉点的数据结构之后,将当新产生一个交叉点时,系统为交叉点自动分配一个地址,并根据交叉点的坐标存储为对应的信息表中,将信息表在所述存储器中的地址存储在所述内容表,将所述内容表在所述存储器中的地址存储在所述一级缓存表,将所述一级缓存表在存储器中的地址存储在更高一级缓存表中,以此类推直至最高级缓存表,从而完成所述交叉点的存储。其中,所有存储器地址的初始值均为0,即存储器为空。只有当新的交叉点产生后,如果其对应的某一级数据的地址为0,则会自动分配一个新地址使新产生的数据保存到对应的位置,并通过多级查找表进行地址的存储,从而通过仅保存有效的数据,降低了对存储器的需求,使得细分曲线处理多路并行处理成为可能。55.于本发明一实施例中,多个指定坐标对应的所有节点信息共同保存在多个信息表中,单个信息表保存有多个指定坐标的部分节点信息所述信息表中保存的指定坐标的个数按照需求设置一个或多个;所述部分节点的个数由所述指定坐标的个数和所述信息表的宽度决定。也就是说,相较于同时保存一个指定坐标对应的多个节点的地址,本发明实现了块状的存储,同时保存多个指定坐标对应的部分节点的地址。具体地,绘制矢量图形的操作连续的,因此连续产生的交叉点的x或y坐标也是向上或向下相邻的。以64byte的缓存行大小,8k的分辨率为例,为了提升缓存存储器的命中率,如图4所示,改变一个64b的信息表中存放一个水平行的16个x节点的方式,改为保存8个相邻的水平行各两个x节点的方式。因此,在处理新的交叉点时,这8个水平行的交叉点连续产生时,从连续缺失(miss)需要8个64bx块的数据,变为缺失一次接下来都命中到一条信息表的缓存行上,从而有效提高了缓存行的命中率。56.于本发明一实施例中,细分曲线单次处理节点的最大数量能够自定义。在实际应用中,一般矢量图形的交叉点在大部分情况下不会很多。为了减少对于存储器资源的需求,根据对于实际应用场景的分析,可以设置单次细分曲线处理的节点的最大数量,如16、32等。这样一来,能够在不影响性能或性能影响很小的情况下,减少数据的位宽,进一步减少单次细分曲线对于存储器的需求。若待处理的节点个数大于所述最大数量,首先针对前最大数量个节点进行矢量图形的渲染,然后重新进行细分曲线再在下一轮针对剩余的节点进行矢量图形的渲染;当不设置所述最大数量时,单次对所有节点进行矢量图形的渲染。57.于本发明一实施例中,所述信息表中各个节点根据对应的坐标依次从小到大排序;在所述内容表中设置节点的坐标最大值或坐标最小值;当节点的存储个数为所述最大数量时,若新产生的交叉点的坐标大于所述坐标最大值时,直接丢弃所述交叉点,并在下一轮时将所述坐标最小值设置为上一轮的坐标最大值,只处理坐标大于所述坐标最小值的新产生的交叉点。为了实现上述功能,于一实施例中,如图5所示,在所述内容表中设置水平行对应的x节点的x坐标最大值xcoordmax、x坐标最小值xcoordmin、标志位f和x节点个数cnt。xcoordmax表示对应的水平行中信息表现有保存的x节点的x坐标的最大值;xcoordmin表示对应当前需要渲染区域的左边界。x节点个数cnt表示水平行现有保存的x节点的个数;f表示水平行保存的x节点的数量是否达到预设定的最大值。当水平行对应的x节点的存储个数为所述x坐标最大值时,若新产生的交叉点的x坐标大于所述x坐标最大值时,则不用读取信息表而是直接丢弃所述交叉点,留待下一轮处理,从而减少对存储器的读取。在下一轮时将所述x坐标最小值设置为上一轮的x坐标最大值,只处理x坐标大于所述x坐标最小值的新产生的交叉点。58.于本发明另一实施例中,所述信息表中各个节点根据对应的坐标依次从大到小排序;在所述内容表中设置节点的坐标最大值或坐标最小值;当节点的存储个数为所述最大数量时,若新产生的交叉点的坐标小于所述坐标最小值时,直接丢弃所述交叉点,并在下一轮时将所述坐标最大值设置为上一轮的坐标最小值,只处理坐标小于所述坐标最大值的新产生的交叉点。59.基于上述设置,如图6所示,于本发明一实施例中,本发明的矢量图形处理装置中细分曲线数据处理实现方法包括以下步骤:60.根据新的交叉点的指定坐标在最高级缓存表中查找对应的下一级缓存表的地址,直至得到一级缓存表地址。61.若所述某一级缓存表不在缓存存储器中,从所述存储器中读取所述此级缓存表,再在所述此级缓存表中获取对应的下一级缓存表地址;否则直接在所述此级缓存表中获取对应的下一级地址。62.根据所述一级缓存表地址,若所述一级缓存表不在缓存存储器中,从所述存储器中读取所述一级缓存表,再在所述一级缓存表中获取对应的内容表地址;否则直接在所述一级缓存表中获取对应的内容表地址。63.根据所述内容表地址,若所述内容表不在所述缓存存储器中,从所述存储器中读取所述内容表,再根据内容表判断是否丢掉所述新的交叉点;否则直接根据内容表判断是否丢掉所述新的交叉点。具体地,根据所述新的交叉点的坐标和所述内容表中的节点的坐标最大值xcoordmax判断是否处理所述新的交叉点。即所述新的交叉点的x坐标大于xcoordmax,则丢弃所述新的交叉点,否则存储所述交叉点。64.若丢掉所述新的交叉点,更新所述内容表;若不丢掉所述新的交叉点,获取对应的信息表地址;若信息表不在所述缓存存储器中,从所述存储器中读取所述信息表,将所述新的交叉点的信息更新或增加至所述信息表中的节点信息,并更新所述内容表;否则直接将所述新的交叉点的信息更新或增加至所述信息表中的节点信息,并更新所述内容表。具体地,若不丢掉所述新的交叉点,根据所述内容表中的地址获取对应的信息表地址,再根据所述信息表地址从存储器或缓存存储器中读取信息表。当所述交叉点信息的坐标和信息表中节点信息中坐标都不相等时,表明当前交叉点为新产生的交叉点,则根据所述交叉点的坐标与已有的节点的坐标排序,在所述信息表的对应位置处中增加一个节点,根据所述新的交叉点信息存储对应的节点信息,同时更新所述内容表中的节点个数,即节点个数加1。当所述交叉点信息的坐标和信息表中节点信息中某一坐标相同时,表明当前交叉点所在位置之前已经被矢量线穿过,则根据所述交叉点信息更新所述坐标对应的节点信息,并更新所述内容表中的节点个数。65.如图7所示,于一实施例中,本发明的矢量图形处理装置中细分曲线数据处理实现系统包括设置模块71和存储模块72。66.所述设置模块71用于针对细分曲线产生的交叉点的指定坐标设置一级至多级缓存表;所述指定坐标为x坐标或y坐标。67.所述存储模块72与所述设置模块71相连,用于将信息表在所述存储器中的地址存储在所述内容表,将所述内容表在所述存储器中的地址存储在所述一级缓存表,将所述一级缓存表在存储器中的地址存储在更上一级缓存表;所述信息表中存储所述指定坐标对应的节点信息;当所述指定坐标为x坐标时,对应的节点信息为y节点信息;当所述指定坐标为y坐标时,对应的节点信息为x节点信息。68.其中,设置模块71和存储模块72的结构和原理与上述矢量图形处理装置中细分曲线数据处理实现方法中的步骤一一对应,故在此不再赘述。69.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。70.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个数字信号处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。71.本发明的存储介质上存储有计算机程序,该所述计算机程序被处理器执行时实现上述的矢量图形处理装置中细分曲线数据处理实现方法。优选地,所述存储介质包括:rom、ram、磁碟、u盘、存储卡或者光盘等各种可以存储程序代码的介质。72.如图8所示,于一实施例中,本发明的矢量图形处理装置包括:处理器81及存储器82。73.所述存储器82用于存储计算机程序。74.所述存储器82包括:rom、ram、磁碟、u盘、存储卡或者光盘等各种可以存储程序代码的介质。75.所述处理器81与所述存储器82相连,用于执行所述存储器82存储的计算机程序,以使所述矢量图形处理装置执行上述的矢量图形处理装置中细分曲线数据处理实现方法。76.优选地,所述处理器81可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。77.综上所述,本发明的细分曲线数据处理实现方法、系统、介质及矢量图形处理装置有效减少对于存储器的资源需求,支持并行进行多路细分曲线处理,提升了细分曲线的效率;增加了缓存存储器的命中率,减少了对存储器的读取,降低了带宽;避免了交叉点的搜寻时间,提升了矢量图形渲染的性能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。78.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
:中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献