CN113947519A - 细分曲线数据处理方法、系统、介质及矢量图形处理装置 - Google Patents
细分曲线数据处理方法、系统、介质及矢量图形处理装置 Download PDFInfo
- Publication number
- CN113947519A CN113947519A CN202010693897.6A CN202010693897A CN113947519A CN 113947519 A CN113947519 A CN 113947519A CN 202010693897 A CN202010693897 A CN 202010693897A CN 113947519 A CN113947519 A CN 113947519A
- Authority
- CN
- China
- Prior art keywords
- node
- information
- information table
- nodes
- coordinate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种细分曲线数据处理方法、系统、介质及矢量图形处理装置,包括:在存储器中构建一包括内容表和信息表的数据结构;当细分曲线产生的矢量线与X/Y行相交得到一个新的交叉点时,根据交叉点的Y/X坐标对应的水平/竖直行在所述内容表中读取对应的信息表的地址和X/Y节点个数;根据读取的信息表的地址和X/Y节点个数在存储器中读取对应的X/Y节点信息;比较交叉点信息和读取的X/Y节点信息,在Y/X坐标对应的水平/竖直行的信息表上更新或增加X/Y节点。本发明的细分曲线数据处理方法、系统、介质及矢量图形处理装置通过只保存细分曲线产生的有效交叉点的填充信息来代替保存整个矢量图形所有像素的填充信息,有效地减少了对存储器资源的需求,提升了矢量图形渲染的性能。
Description
技术领域
本发明涉及数据结构的处理方法,特别是涉及一种细分曲线(Tessellation)的数据结构处理方法、系统、介质及矢量图形处理装置。
背景技术
Tessellation技术,也被称为细分曲线技术。在矢量图形(Vector Graphic)的应用中,tessellation产生的线与某个Y行生成交叉(intersection)点,这些交叉点需要存放于存储器(memory)。Tessellation处理完成当前矢量图形后,再将存储器中存放的交叉点数据读回;并根据交叉点的填充和位置信息计算矢量图形中每一个像素(pixel)的覆盖率值,按照填充规则绘制出整个矢量图形。
现有技术中,Tessellation的数据结构(Data structure)中存储器中存放信息为整个矢量图形所有像素的填充和统计信息,这种实现方式导致Tessellation对于存储器资源的需求很大。
另外,在Tessellation处理完整个矢量图形后,使用现有技术中的数据结构需要根据矢量图形位置从上到下、从左到右的顺序将存储器中的数据全部读回,寻找到交叉点,进行填充判断。上述存储器数据读回方式具有以下缺陷:
(1)导致系统的带宽很大;
(2)寻找交叉点花费的时间很长,相当于对于矢量图形填充增加了很大的气泡时间,严重影响了渲染的性能。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种矢量图形处理装置中细分曲线数据处理方法、系统、介质及矢量图形处理装置,通过只保存细分曲线产生的有效交叉点的填充信息来代替保存整个矢量图形所有像素的填充信息,有效地减少了对存储器资源的需求,提升了矢量图形渲染的性能。
为实现上述目的及其他相关目的,本发明提供一种矢量图形处理装置中细分曲线数据处理方法,包括以下步骤:在存储器中构建一数据结构,所述数据结构包括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节点。
于本发明一实施例中,所述X节点信息包括交叉点的X坐标、填充信息、子位置的个数和子位置信息;所述Y节点信息包括交叉点的Y坐标、填充信息、子位置的个数和子位置信息;所述交叉点信息包含X坐标、Y坐标、子位置信息和填充信息。
于本发明一实施例中,所述子位置的个数能够自定义;所述子位置的个数不是固定值,能够保存所述X节点的所有子位置信息。
于本发明一实施例中,当所述数据结构包括X节点内容表和X节点信息表,所述交叉点信息的X坐标和读取的X节点信息中X坐标都不相等时,在所述X节点信息表的对应位置处中增加一个X节点,同时更新所述X节点内容表中的X节点个数;
当所述数据结构包括Y节点内容表和Y节点信息表,所述交叉点信息的Y坐标和读取的Y节点信息中Y坐标都不相等时,在所述Y节点信息表的对应位置处中增加一个Y节点,同时更新所述Y节点内容表中的Y节点个数。
于本发明一实施例中,当所述数据结构包括X节点内容表和X节点信息表,所述交叉点信息的X坐标和读取的X节点信息中某一X坐标相同时,更新所述X坐标对应的X节点信息;
当所述数据结构包括Y节点内容表和Y节点信息表,所述交叉点信息的Y坐标和读取的Y节点信息中某一Y坐标相同时,更新所述Y坐标对应的X节点信息。
于本发明一实施例中,所述X节点信息表中各个X节点根据对应的X坐标依次排序;所述Y节点信息表中各个Y节点根据对应的Y坐标依次排序。
于本发明一实施例中,所述数据结构中X节点的位宽能够自定义,并在所述X节点信息中的子位置的最大个数确定时,为固定值;所述数据结构中Y节点的位宽能够自定义,并在所述Y节点信息中的子位置的最大个数确定时,为固定值。
对应地,本发明提供一种矢量图形处理装置中细分曲线数据处理系统,:包括构建模块、X节点处理模块和Y节点处理模块;
所述构建模块用于在存储器中构建一数据结构,所述数据结构包括X节点内容表和X节点信息表或包括Y节点内容表和Y节点信息表;所述X节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中X节点个数,所述X节点信息表用于存储水平行对应的信息表包含的X节点信息;所述Y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中Y节点个数,所述Y节点内容表用于存储竖直行对应的信息表包含的Y节点信息;
所述X节点处理模块用于当所述数据结构包括X节点内容表和X节点信息表,细分曲线产生的矢量线与X行相交得到一个新的交叉点时,根据所述交叉点的Y坐标对应的水平行在所述内容表中读取对应的信息表的地址和X节点个数;根据读取的信息表的地址和X节点个数在所述存储器中读取对应的X节点信息;比较所述交叉点信息和读取的X节点信息,在所述Y坐标对应的水平行的信息表上更新或增加X节点;
所述Y节点处理模块用于当所述数据结构包括Y节点内容表和Y节点信息表,细分曲线产生的矢量线与Y行相交得到一个新的交叉点时,根据所述交叉点的X坐标对应的竖直行在所述内容表中读取对应的信息表的地址和Y节点个数;根据读取的信息表的地址和Y节点个数在所述存储器中读取对应的Y节点信息;比较所述交叉点信息和读取的Y节点信息,在所述X坐标对应的竖直行的信息表上更新或增加Y节点。
本发明提供一种存储介质,其上存储有计算机程序,该所述计算机程序被处理器执行时实现上述的矢量图形处理装置中细分曲线数据处理方法。
最后,本发明提供一种矢量图形处理装置,包括:处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述矢量图形处理装置执行上述的矢量图形处理装置中细分曲线数据处理方法。
如上所述,本发明的矢量图形处理装置中细分曲线数据处理方法、系统、介质及矢量图形处理装置,具有以下有益效果:
(1)通过基于横或纵坐标的排序算法,只保存细分曲线产生的有效交叉点的填充信息来代替保存整个矢量图形所有像素的填充信息,有效地减少了对存储器资源的需求;
(2)能够直接按照所保存的交叉点信息依序进行矢量图形的填充,从而避免了交叉点的搜寻时间,有效降低了系统带宽,提升了矢量图形渲染的性能。
附图说明
图1显示为本发明的矢量图形处理装置中细分曲线数据处理方法于一实施例中的流程图;
图2显示为本发明的矢量图形处理装置中细分曲线的数据结构于一实施例中的结构示意图;
图3显示为本发明的矢量图形处理装置中细分曲线数据处理系统于一实施例中的结构示意图;
图4显示为本发明的矢量图形处理装置于一实施例中的结构示意图。
元件标号说明
31 构建模块
32 X节点处理模块
33 Y节点处理模块
41 处理器
42 存储器
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的细分曲线数据处理方法、系统、介质及矢量图形处理装置在进行矢量图形的细分曲线处理时只保存细分曲线后的有效交叉点的填充和位置信息,无需保存整个矢量图形所有像素的方向信息,从而有效地减少了对存储器资源的需求;同时由于根据交叉点在笛卡尔坐标系下的X坐标或Y坐标进行排序存储,故无需交叉点的查找步骤,有效提升了矢量图形渲染的性能。
如图1所示,于一实施例中,本发明的矢量图形处理装置中细分曲线数据处理方法包括以下步骤:
步骤S1、在存储器中构建一数据结构,所述数据结构包括X节点内容表和X节点信息表或包括Y节点内容表和Y节点信息表;所述X节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中X节点个数,所述X节点信息表用于存储水平行对应的信息表包含的X节点信息;所述Y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中Y节点个数,所述Y节点内容表用于存储竖直行对应的信息表包含的Y节点信息。
于本发明一实施例中,在存储器中构建一数据结构,所述数据结构包括X节点内容表和X节点信息表;所述X节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述X节点信息表中X节点个数;所述X节点信息表用于存储水平行对应的X节点信息。所述X节点是指位于同一水平行的交叉点,具有不同的X坐标,相同的Y坐标。
于本发明另一实施例中,在存储器中构建一数据结构,所述数据结构包括Y节点内容表和Y节点信息表;所述Y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述Y节点信息表中Y节点个数;所述Y节点信息表用于存储竖直行对应的Y节点信息。所述Y节点是指位于同一竖直行的交叉点,具有不同的Y坐标,相同的X坐标。
具体地,在矢量图形处理装置的存储器中构建一新型的数据结构,以存储细分曲线处理所产生的数据。如图2所示,所述数据结构采用二级结构,第一级为内容表(Contenttable),第二级为信息表(Xblock)。所述内容表中以水平行(horizontal line)为单位,存储每个水平行对应的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。
同时,一个水平行对应的X节点对应所述X节点信息表中的一个元素。针对每个水平行,所述X节点信息表存储所述X节点信息。于本发明一实施例中,所述X节点信息包括交叉点的X坐标(Coordinate)、填充信息(Fill Information)、子位置的个数(Count)和子位置信息(sub location)。相应地,所述Y节点信息包括交叉点的Y坐标、填充信息、子位置的个数和子位置信息。在图2所示的实施例中,包含4个子位置,子位置信息分别为SubLoc0、SubLoc1、SubLoc2和SubLoc4。于本发明一实施例中,所述数据结构中X节点/Y节点的位宽为固定值。因此,在读取所述数据结构中的数据时,首先读取所述X节点内容表/Y节点内容表,根据所读取的X节点/Y节点个数和X节点/Y节点的位宽,可以确定当前X节点信息表/Y节点信息表的数据长度;再通过所述X节点内容表/Y节点内容表中存储的地址信息,在存储器中直接读取当前X节点信息表/Y节点信息表的所有有效数据。于本发明一实施例中,所述子位置的个数能够自定义;所述子位置的个数不是固定值,能够保存所述X节点的所有子位置信息。于本发明的另一实例中,当所述子位置的最大个数没有预先确定时,在内容表中保存的数据还增加有信息表的数据长度。
为了提高图像质量,矢量图形处理应用通常会采用抗锯齿算法,将交叉点的位置进一步分成4x、8x、16x等子位置。因此,为了固定X节点/Y节点的位宽,可以按照实际需求和抗锯齿算法的质量设置一个X节点/Y节点中所保存子位置的个数,如4个、6个、8个等等。
在矢量图形(Vector Graphic)处理应用中,交叉点随着绘制的推进,有可能会被矢量线(vector line)穿过多次,每次的方向可能不同。交叉点每次被绘制的矢量线穿过一次,其被经过的子位置和填充信息都需要保存下来。由于交叉点可能会被多次穿过,因此子位置的信息可能彼此相同。一个X节点保存的所有子位置的填充信息相同,对应为FillInformation;同时将子位置的方向相同的保存在一起,并记录为Direction。因此,一个交叉点被矢量线穿过的方向不同或者子位置个数超过预设值,其信息会被保存在两个或者多个X节点/Y节点中,且这些X节点/Y节点的X坐标/Y坐标相同。
于本发明一实施例中,所述X节点信息表中各个X节点根据对应的X坐标依次排序。所述Y节点信息表中各个Y节点根据对应的Y坐标依次排序。当细分曲线完成后回读X节点/Y节点进行矢量图形渲染时,可以直接按照所述X节点信息表/Y节点信息表中保存的排列好的交叉点信息进行矢量图形的渲染,从而无需对交叉点进行搜索,提升了矢量图形渲染充的性能。
由于X节点信息表和Y节点信息表中只保存有交叉点信息,无需存储整个矢量图形所有像素的方向信息,因此对存储器的需求显著降低,缓解了系统压力。
步骤S2、当所述数据结构包括X节点内容表和X节点信息表,细分曲线产生的矢量线与X行相交得到一个新的交叉点时,根据所述交叉点的Y坐标对应的水平行在所述内容表中读取对应的信息表的地址和X节点个数;根据读取的信息表的地址和X节点个数在所述存储器中读取对应的X节点信息;比较所述交叉点信息和读取的X节点信息,在所述Y坐标对应的水平行的信息表上更新或增加X节点。
具体地,当所述数据结构包括X节点内容表和X节点信息表,在细分曲线过程中获取一个新的交叉点时,需要根据该交叉点的信息更新所述数据结构。首先根据所述交叉点的Y坐标在所述数据结构中获取对应的水平行的X节点信息表的存储地址和X节点个数。
具体地,根据读取的X节点信息表的地址和X节点个数在所述X节点信息表中读取X节点信息表中所有的X节点信息。其中,可以根据X节点的位宽来读取X节点信息,也可以根据预设的X节点截止标志来读取X节点信息,其读取方式不作具体限定,凡是能准确读取X节点信息的方法均在本发明的保护范围之列。于本发明一实施例中,所述数据结构中X节点的位宽能够自定义,并在所述X节点信息中的子位置的最大个数确定时,为固定值。
于本发明一实施例中,所述交叉点信息包含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节点信息。
步骤S3、当所述数据结构包括Y节点内容表和Y节点信息表,细分曲线产生的矢量线与Y行相交得到一个新的交叉点时,根据所述交叉点的X坐标对应的竖直行在所述内容表中读取对应的信息表的地址和Y节点个数;根据读取的信息表的地址和Y节点个数在所述存储器中读取对应的Y节点信息;比较所述交叉点信息和读取的Y节点信息,在所述X坐标对应的竖直行的信息表上更新或增加Y节点。
具体地,当所述数据结构包括Y节点内容表和Y节点信息表,在细分曲线过程中获取一个新的交叉点时,需要根据该交叉点的信息更新所述数据结构。首先根据所述交叉点的X坐标在所述数据结构中获取对应的竖直行的Y节点信息表的存储地址和Y节点个数。
具体地,根据读取的Y节点信息表的地址和Y节点个数在所述Y节点信息表中读取Y节点信息表中所有的Y节点信息。其中,可以根据Y节点的位宽来读取Y节点信息,也可以根据预设的Y节点截止标志来读取X节点信息,其读取方式不作具体限定,凡是能准确读取Y节点信息的方法均在本发明的保护范围之列。于本发明一实施例中,所述数据结构中Y节点的位宽能够自定义,并在所述Y节点信息中的子位置的最大个数确定时,为固定值。
具体地,所述交叉点信息包含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节点信息。
如图3所示,于一实施例中,本发明的矢量图形处理装置中细分曲线数据处理系统包括构建模块31、X节点处理模块32和Y节点处理模块33。
所述构建模块31用于在存储器中构建一数据结构,所述数据结构包括X节点内容表和X节点信息表或包括Y节点内容表和Y节点信息表;所述X节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中X节点个数,所述X节点信息表用于存储水平行对应的信息表包含的X节点信息;所述Y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中Y节点个数,所述Y节点内容表用于存储竖直行对应的信息表包含的Y节点信息。
所述X节点处理模块32与所述构建模块31相连,用于当所述数据结构包括X节点内容表和X节点信息表,细分曲线产生一个新的交叉点时,根据所述交叉点的Y坐标对应的水平行在所述内容表中读取对应的信息表的地址和X节点个数;根据读取的信息表的地址和X节点个数在所述存储器中读取对应的X节点信息;比较所述交叉点信息和读取的X节点信息,在所述Y坐标对应的水平行的信息表上更新或增加X节点。
所述Y节点处理模块33与所述构建模块31相连,用于当所述数据结构包括Y节点内容表和Y节点信息表,细分曲线产生一个新的交叉点时,根据所述交叉点的X坐标对应的竖直行在所述内容表中读取对应的信息表的地址和Y节点个数;根据读取的信息表的地址和Y节点个数在所述存储器中读取对应的Y节点信息;比较所述交叉点信息和读取的Y节点信息,在所述X坐标对应的竖直行的信息表上更新或增加Y节点。
其中,构建模块31、X节点处理模块32和Y节点处理模块33的结构和原理与上述矢量图形处理装置中细分曲线数据处理方法中的步骤一一对应,故在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个数字信号处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
本发明的存储介质上存储有计算机程序,该所述计算机程序被处理器执行时实现上述的矢量图形处理装置中细分曲线数据处理方法。优选地,所述存储介质包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
如图4所示,于一实施例中,本发明的矢量图形处理装置包括:处理器41及存储器42。
所述存储器42用于存储计算机程序。
所述存储器42包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
所述处理器41与所述存储器42相连,用于执行所述存储器42存储的计算机程序,以使所述矢量图形处理装置执行上述的矢量图形处理装置中细分曲线数据处理方法。
优选地,所述处理器41可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明的细分曲线数据处理方法、系统、介质及矢量图形处理装置通过基于横坐标/纵坐标的排序算法,只保存细分曲线产生的有效交叉点的填充和位置信息来代替保存整个矢量图形所有像素的填充和位置信息,有效地减少了对存储器资源的需求;能够直接按照所保存的交叉点信息依序进行矢量图形的填充,从而避免了交叉点的搜寻时间,有效降低了系统带宽,提升了矢量图形渲染的性能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种矢量图形处理装置中细分曲线数据处理方法,其特征在于:包括以下步骤:
在存储器中构建一数据结构,所述数据结构包括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节点。
2.根据权利要求1所述的矢量图形处理装置中细分曲线数据处理方法,其特征在于:所述X节点信息包括交叉点的X坐标、填充信息、子位置的个数和子位置信息;所述Y节点信息包括交叉点的Y坐标、填充信息、子位置的个数和子位置信息;所述交叉点信息包含X坐标、Y坐标、子位置信息和填充信息。
3.根据权利要求2所述的矢量图形处理装置中细分曲线数据处理方法,其特征在于:所述子位置的个数能够自定义;所述子位置的个数不是固定值,能够保存所述X节点的所有子位置信息。
4.根据权利要求1所述的矢量图形处理装置中细分曲线数据处理方法,其特征在于:
当所述数据结构包括X节点内容表和X节点信息表,所述交叉点信息的X坐标和读取的X节点信息中X坐标都不相等时,在所述X节点信息表的对应位置处中增加一个X节点,同时更新所述X节点内容表中的X节点个数;
当所述数据结构包括Y节点内容表和Y节点信息表,所述交叉点信息的Y坐标和读取的Y节点信息中Y坐标都不相等时,在所述Y节点信息表的对应位置处中增加一个Y节点,同时更新所述Y节点内容表中的Y节点个数。
5.根据权利要求1所述的矢量图形处理装置中细分曲线数据处理方法,其特征在于:
当所述数据结构包括X节点内容表和X节点信息表,所述交叉点信息的X坐标和读取的X节点信息中某一X坐标相同时,更新所述X坐标对应的X节点信息;
当所述数据结构包括Y节点内容表和Y节点信息表,所述交叉点信息的Y坐标和读取的Y节点信息中某一Y坐标相同时,更新所述Y坐标对应的X节点信息。
6.根据权利要求1所述的矢量图形处理装置中细分曲线数据处理方法,其特征在于:所述X节点信息表中各个X节点根据对应的X坐标依次排序;所述Y节点信息表中各个Y节点根据对应的Y坐标依次排序。
7.根据权利要求1所述的矢量图形处理装置中细分曲线数据处理方法,其特征在于:所述数据结构中X节点的位宽能够自定义,并在所述X节点信息中的子位置的最大个数确定时,为固定值;所述数据结构中Y节点的位宽能够自定义,并在所述Y节点信息中的子位置的最大个数确定时,为固定值。
8.一种矢量图形处理装置中细分曲线数据处理系统,其特征在于:包括构建模块、X节点处理模块和Y节点处理模块;
所述构建模块用于在存储器中构建一数据结构,所述数据结构包括X节点内容表和X节点信息表或包括Y节点内容表和Y节点信息表;所述X节点内容表用于存储每个水平行对应的信息表在所述存储器中的地址和所述信息表中X节点个数,所述X节点信息表用于存储水平行对应的信息表包含的X节点信息;所述Y节点内容表用于存储每个竖直行对应的信息表在所述存储器中的地址和所述信息表中Y节点个数,所述Y节点内容表用于存储竖直行对应的信息表包含的Y节点信息;
所述X节点处理模块用于当所述数据结构包括X节点内容表和X节点信息表,细分曲线产生的矢量线与X行相交得到一个新的交叉点时,根据所述交叉点的Y坐标对应的水平行在所述内容表中读取对应的信息表的地址和X节点个数;根据读取的信息表的地址和X节点个数在所述存储器中读取对应的X节点信息;比较所述交叉点信息和读取的X节点信息,在所述Y坐标对应的水平行的信息表上更新或增加X节点;
所述Y节点处理模块用于当所述数据结构包括Y节点内容表和Y节点信息表,细分曲线产生的矢量线与Y行相交得到一个新的交叉点时,根据所述交叉点的X坐标对应的竖直行在所述内容表中读取对应的信息表的地址和Y节点个数;根据读取的信息表的地址和Y节点个数在所述存储器中读取对应的Y节点信息;比较所述交叉点信息和读取的Y节点信息,在所述X坐标对应的竖直行的信息表上更新或增加Y节点。
9.一种存储介质,其上存储有计算机程序,其特征在于,该所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的矢量图形处理装置中细分曲线数据处理方法。
10.一种矢量图形处理装置,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述矢量图形处理装置执行权利要求1至7中任一项所述的矢量图形处理装置中细分曲线数据处理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693897.6A CN113947519A (zh) | 2020-07-17 | 2020-07-17 | 细分曲线数据处理方法、系统、介质及矢量图形处理装置 |
EP21186437.6A EP3965062A1 (en) | 2020-07-17 | 2021-07-19 | Tessellation data processing method, system, medium and vector graphics processing device |
US17/378,803 US11557090B2 (en) | 2020-07-17 | 2021-07-19 | Tessellation data processing method, system, medium and vector graphics processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693897.6A CN113947519A (zh) | 2020-07-17 | 2020-07-17 | 细分曲线数据处理方法、系统、介质及矢量图形处理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113947519A true CN113947519A (zh) | 2022-01-18 |
Family
ID=79185779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010693897.6A Pending CN113947519A (zh) | 2020-07-17 | 2020-07-17 | 细分曲线数据处理方法、系统、介质及矢量图形处理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11557090B2 (zh) |
EP (1) | EP3965062A1 (zh) |
CN (1) | CN113947519A (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633297B2 (en) * | 2000-08-18 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | System and method for producing an antialiased image using a merge buffer |
AUPR970501A0 (en) * | 2001-12-21 | 2002-01-24 | Canon Kabushiki Kaisha | A method for performing set operations on two or more arbitrary paths to produce a simple outline path |
US8253730B1 (en) * | 2008-08-29 | 2012-08-28 | Adobe Systems Incorporated | System and method for construction of data structures for ray tracing using bounding hierarchies |
KR101039132B1 (ko) * | 2008-11-11 | 2011-06-03 | 엠진 (주) | 2차원 벡터 그래픽 처리를 위한 라스터라이저 및 그 방법 |
CN102682419B (zh) * | 2011-03-14 | 2015-04-22 | 扬智科技股份有限公司 | 用于向量图形的动态线段对照表产生方法及装置 |
US9330495B2 (en) * | 2012-08-09 | 2016-05-03 | Qualcomm Incorporated | Extending DX11 GPU for programmable vector graphics |
US9299181B2 (en) * | 2013-08-28 | 2016-03-29 | Qualcomm Incorporated | Target independent stenciling in graphics processing |
US10121276B2 (en) * | 2016-12-01 | 2018-11-06 | Nvidia Corporation | Infinite resolution textures |
-
2020
- 2020-07-17 CN CN202010693897.6A patent/CN113947519A/zh active Pending
-
2021
- 2021-07-19 EP EP21186437.6A patent/EP3965062A1/en active Pending
- 2021-07-19 US US17/378,803 patent/US11557090B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11557090B2 (en) | 2023-01-17 |
US20220028165A1 (en) | 2022-01-27 |
EP3965062A1 (en) | 2022-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481954B2 (en) | Systems and methods for 3-D scene acceleration structure creation and updating | |
US20220245111A1 (en) | Hierarchy Merging in Computer Graphics | |
US6868420B2 (en) | Method for traversing quadtrees, octrees, and N-dimensional bi-trees | |
US11810240B2 (en) | Methods and systems for constructing ray tracing acceleration structures | |
US20220028161A1 (en) | Systems and methods for traversing implied subdivision hierarchical level of detail content | |
CN103164864B (zh) | 计算机图像处理中多边形的三角化方法及其系统 | |
US11282260B2 (en) | Bounded volume hierarchy (BVH) tree traversal using spatial division | |
GB2586696A (en) | A graphics processing unit that performs path rendering, and a method of operating the same | |
CN113947519A (zh) | 细分曲线数据处理方法、系统、介质及矢量图形处理装置 | |
CN115346005B (zh) | 基于嵌套包围盒概念用于物面网格的数据结构构建方法 | |
CN113947515A (zh) | 细分曲线数据处理实现方法、系统、介质及矢量图形处理装置 | |
CN113947516A (zh) | 矢量图形数据处理方法、系统、介质及矢量图形处理装置 | |
US11403803B2 (en) | Hierarchical acceleration structures for use in ray tracing systems | |
US20220301255A1 (en) | Intersection Testing in Ray Tracing Systems Using Hierarchical Acceleration Structures With Implicitly Represented Nodes | |
US20230419589A1 (en) | Intersection Testing in Ray Tracing Systems with Skipping of Nodes in Sub-trees of Hierarchical Acceleration Structures | |
CN111243073A (zh) | 一种规则栅格的相交加速方法、装置及计算机存储介质 | |
CN117785759A (zh) | 数据存储方法、数据读取方法、电子设备和存储介质 | |
CN116991921A (zh) | 地图数据加载方法、装置、计算机设备和存储介质 | |
CN116703695A (zh) | 非极大值抑制的硬件加速方法及系统 | |
JPH05233769A (ja) | 図形データ管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |