CN106504301A - 一种通过多核cpu一一对应矢量数据的绘制方法 - Google Patents
一种通过多核cpu一一对应矢量数据的绘制方法 Download PDFInfo
- Publication number
- CN106504301A CN106504301A CN201610925071.1A CN201610925071A CN106504301A CN 106504301 A CN106504301 A CN 106504301A CN 201610925071 A CN201610925071 A CN 201610925071A CN 106504301 A CN106504301 A CN 106504301A
- Authority
- CN
- China
- Prior art keywords
- data
- threads
- sets
- cpu
- drafting
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种通过多核CPU一一对应矢量数据的绘制方法。包括如下步骤:步骤一,由程序主线程派生出线程组,每个线程组对应一个CPU核,把所需要显示绘制的矢量图层分配到每个CPU核上绘图处理;步骤二,在每个线程组上派生IO数据流水线和DC图形绘制流水线,通过数据流水线进行数据获取任务;通过图形绘制流水线进行图形绘制任务;步骤三,任务处理完成后在主线程中进行最终图像合成显示,达到在单机上进行并行绘制。本发明通过采用多核的CPU进行快速绘制海量矢量数据的方法,使得图形绘制效率得到明显提高,解决了矢量图层之间的并行绘制以及图像合成,提高系统运行的稳定性和数据处理的合理性。
Description
技术领域
本发明属于软件开发技术领域,特别是涉及一种通过多核CPU一一对应矢量数据的绘制方法。
背景技术
快速地在计算机终端显示器上显示矢量数据,一直是各种地理信息系统(Geographical Information System,GIS)软件以及制图软件需要解决的问题。目前图形领域中的许多应用仍然是单线程,大多数的GIS软件图形绘制方法仍然采用串行处理方式,依靠单核CPU单线程模式循环遍历绘制每个矢量数据图层及其每个要素,对于每绘制一遍海量数据图层,需要漫长等待,绘图效率极低。这种效率低下的图形绘制方式限制了大多数GIS软件绘图性能,因此必须改进矢量数据的绘制方式,提高图形绘制的效率。
计算机技术的革新,特别是在计算机CPU的发展方面,出现了多核处理器的体系结构。多核化趋势正在改变并行计算的面貌,跟传统的单核CPU相比,多核CPU带来了更强的并行处理能力、更高的计算密度和更低的时钟频率。多核平台的应用越来越广泛,逐渐渗透到计算机科学的各个领域,并将取代单核平台成为今后处理器发展的主流方向。双核、四核、八核甚至更多核CPU的计算机出现,串行矢量数据的绘制方式,它既不能提高矢量数据的绘制效率,也不能有效地利用多核CPU的硬件优势。
发明内容
本发明的目的在于提供一种通过多核CPU一一对应矢量数据的绘制方法,通过采用多核的CPU进行快速绘制海量矢量数据的方法,使得图形绘制效率得到明显提高,解决了矢量图层之间的并行绘制以及图像合成问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为一种通过多核CPU一一对应矢量数据的绘制方法,包括如下步骤:
步骤一,由程序主线程派生出线程组,每个线程组对应一个CPU核,把所需要显示绘制的矢量图层分配到每个CPU核上绘图处理;
步骤二,在每个线程组上派生IO(Input/Output)数据流水线和DC(DeviceContent)图形绘制流水线,通过数据流水线进行数据获取任务;通过图形绘制流水线进行图形绘制任务;
步骤三,任务处理完成后在主线程中进行最终图像合成显示,达到在单机上进行并行绘制。
该矢量数据的绘制包括矢量数据存储结构、本地缓存、内存位图池和线程组模型。
程序开始执行时,只有一条主线程,程序中的串行部分都由主线程执行。主线程会派生出线程组,线程组和主线程一起并行执行完成任务,并行区域结束时,子线程组全部合并到主线程,主线程继续执行到程序终结。线程组之间并行工作,由IO数据流水线和DC图形绘制流水线,分别进行矢量数据的获取和绘制。在并行区域中,同时并行工作的线程组不超过CPU核数。
如果绘制的矢量图层数目大于CPU的核数,则在下一次循环建立线程组模型进行作业,直到所有矢撤图层绘制完毕,按照矢量图层叠加的先后顺序进行图像合成,显示在计算机屏幕上。
本发明具有以下有益效果:
本发明通过采用多核的CPU进行快速绘制海量矢量数据的方法,使得图形绘制效率得到明显提高,解决了矢量图层之间的并行绘制以及图像合成,提高系统运行的稳定性和数据处理的合理性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种通过多核CPU一一对应矢量数据的绘制方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明为一种通过多核CPU一一对应矢量数据的绘制方法,包括如下步骤:
步骤一,由程序主线程派生出线程组,每个线程组对应一个CPU核,把所需要显示绘制的矢量图层分配到每个CPU核上绘图处理;
步骤二,在每个线程组上派生IO(Input/Output)数据流水线和DC(DeviceContent)图形绘制流水线,通过数据流水线进行数据获取任务;通过图形绘制流水线进行图形绘制任务;
步骤三,任务处理完成后在主线程中进行最终图像合成显示,达到在单机上进行并行绘制。
该矢量数据的绘制包括矢量数据存储结构、本地缓存、内存位图池和线程组模型。
其中,矢量数据存储结构:海量矢量数据一般采用大型关系型数据库Oracle,SqIServer存储,并建立与矢量图层对应的空间索引结构。空间索引介于空间操作算法和空间对象之间,通过它的筛选,大量与特定空间操作无关的空间对象被排除,使空间操作能够快速访问操作对象,从而提高空间操作的效率。
其中,本地缓存(Load Cache)是绘制的矢量数据图层在计算机终端内存中开辟的临时存储区域,采用循环存储,由获取远程矢量数据的IO流水线和图形绘制DC流水线共同维护。IO数据流水线和DC图形绘制流水线通过信号通信保持同步工作,IO数据流水线读取数据順序放入缓存中,DC图形绘制流水线顺序从缓存中取出数据进行绘制。在绘制矢量数据时,IO数据流水线和DC图形绘制流水线几乎不需要相互等待,避免获取一条数据绘制一条数据的作业方式,提高获取数据和绘制数据的工作效率。
其中,内存位图池采用OpenGL,Directx3D和GDI进行渲染。
程序开始执行时,只有一条主线程,程序中的串行部分都由主线程执行。主线程会派生出线程组,线程组和主线程一起并行执行完成任务,并行区域结束时,子线程组全部合并到主线程,主线程继续执行到程序终结。线程组之间并行工作,由IO数据流水线和DC图形绘制流水线,分别进行矢量数据的获取和绘制。在并行区域中,同时并行工作的线程组不超过CPU核数。
如果绘制的矢量图层数目大于CPU的核数,则在下一次循环建立线程组模型进行作业,直到所有矢撤图层绘制完毕,按照矢量图层叠加的先后顺序进行图像合成,显示在计算机屏幕上。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (1)
1.一种通过多核CPU一一对应矢量数据的绘制方法,其特征在于,包括如下步骤:
步骤一,由程序主线程派生出线程组,每个线程组对应一个CPU核,把所需要显示绘制的矢量图层分配到每个CPU核上绘图处理;
步骤二,在每个线程组上派生IO数据流水线和DC图形绘制流水线,通过数据流水线进行数据获取任务;通过图形绘制流水线进行图形绘制任务;
步骤三,任务处理完成后在主线程中进行最终图像合成显示,达到在单机上进行并行绘制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610925071.1A CN106504301A (zh) | 2016-10-30 | 2016-10-30 | 一种通过多核cpu一一对应矢量数据的绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610925071.1A CN106504301A (zh) | 2016-10-30 | 2016-10-30 | 一种通过多核cpu一一对应矢量数据的绘制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106504301A true CN106504301A (zh) | 2017-03-15 |
Family
ID=58318549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610925071.1A Pending CN106504301A (zh) | 2016-10-30 | 2016-10-30 | 一种通过多核cpu一一对应矢量数据的绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106504301A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522128A (zh) * | 2018-11-21 | 2019-03-26 | 北京像素软件科技股份有限公司 | 分段式多线程任务执行方法及装置 |
CN111179378A (zh) * | 2020-01-02 | 2020-05-19 | 中电投电力工程有限公司 | 一种可用于webGIS的全球电力气象图集绘图方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736898A (zh) * | 2012-05-08 | 2012-10-17 | 国家测绘局卫星测绘应用中心 | 一种适用于多核cpu的矢量数据并行绘制方法和装置 |
CN104268237A (zh) * | 2014-09-28 | 2015-01-07 | 南京国图信息产业股份有限公司 | 电子地图制作的批量并行生成系统及其生成方法 |
-
2016
- 2016-10-30 CN CN201610925071.1A patent/CN106504301A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736898A (zh) * | 2012-05-08 | 2012-10-17 | 国家测绘局卫星测绘应用中心 | 一种适用于多核cpu的矢量数据并行绘制方法和装置 |
CN104268237A (zh) * | 2014-09-28 | 2015-01-07 | 南京国图信息产业股份有限公司 | 电子地图制作的批量并行生成系统及其生成方法 |
Non-Patent Citations (1)
Title |
---|
王怀 等: "一种基于多核CPU 的矢量数据快速绘制方法", 《地理信息世界》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522128A (zh) * | 2018-11-21 | 2019-03-26 | 北京像素软件科技股份有限公司 | 分段式多线程任务执行方法及装置 |
CN109522128B (zh) * | 2018-11-21 | 2020-11-13 | 北京像素软件科技股份有限公司 | 分段式多线程任务执行方法及装置 |
CN111179378A (zh) * | 2020-01-02 | 2020-05-19 | 中电投电力工程有限公司 | 一种可用于webGIS的全球电力气象图集绘图方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102736898B (zh) | 一种适用于多核cpu的矢量数据并行绘制方法和装置 | |
CN103761215B (zh) | 基于图形处理器的矩阵转置优化方法 | |
US20200042863A1 (en) | Octree-based convolutional neural network | |
CN110663064A (zh) | 用于矢量图形和图像处理的并行化流水线 | |
CN102799416B (zh) | 面向gpu的细粒度并行应用映射方法 | |
CN102708009B (zh) | 一种基于cuda实现多任务共享gpu的方法 | |
Li et al. | Geometry synthesis on surfaces using field-guided shape grammars | |
DE102013218594A1 (de) | System, Verfahren und Computerprogrammprodukt zur parallelen Rekonstruktion eines gesampelten Suffixarrays | |
CN104584083A (zh) | 通过对称边缘分裂进行表面曲面细分 | |
CN102880509A (zh) | 基于cuda的格网数字高程模型邻域分析的系统和方法 | |
GB2493438A (en) | Water simulation using velocity-dependent column heights | |
CN106504301A (zh) | 一种通过多核cpu一一对应矢量数据的绘制方法 | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
CN106971369B (zh) | 一种基于gpu的地形可视域分析的数据调度与分发方法 | |
Teng et al. | IDEAL: a vector-raster hybrid model for efficient spatial queries over complex polygons | |
US9772864B2 (en) | Methods of and apparatus for multidimensional indexing in microprocessor systems | |
Potebnia et al. | Innovative GPU accelerated algorithm for fast minimum convex hulls computation | |
Wu et al. | Novel parallel algorithm for constructing Delaunay triangulation based on a twofold-divide-and-conquer scheme | |
CN103544729A (zh) | 一种动画数据处理方法及系统 | |
US11030714B2 (en) | Wide key hash table for a graphics processing unit | |
CN112395073A (zh) | 一种面向较大矢量数据的高性能快速渲染方法 | |
CN111625691A (zh) | 基于gpu的高性能图挖掘方法及系统 | |
Yang et al. | Efficient dense structure mining using mapreduce | |
Moreland et al. | Visualization for exascale: Portable performance is critical | |
CN107894992A (zh) | 一种gis点缓冲区分析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |
|
RJ01 | Rejection of invention patent application after publication |