專利名稱:一種適用于多核cpu的矢量數(shù)據(jù)并行繪制方法和裝置的制作方法
技術領域:
本發(fā)明涉及地理信息系統(tǒng)矢量數(shù)據(jù)的繪制顯示技術領域。具體地說,本發(fā)明涉及ー種利用矢量圖層數(shù)和CPU核數(shù)之間的關系建立多線程池模型,并行獲取、繪制矢量數(shù)據(jù)的方法和系統(tǒng)。
背景技術:
社會經(jīng)濟的快速發(fā)展,矢量數(shù)據(jù)在社會各個領域得到廣泛的應用。不同部門、不同行業(yè)根據(jù)自身的需求,生產(chǎn)不同比例尺、不同時態(tài)、不同數(shù)據(jù)結構的矢量數(shù)據(jù),可以劃分為基礎地理、土地利用、環(huán)境等方面的數(shù)據(jù),這造成矢量數(shù)據(jù)的異構、數(shù)據(jù)量之大的特性。
快速地在計算機終端顯示器上繪制顯示矢量數(shù)據(jù),一直是各種地理信息系統(tǒng)(Geographical Information System,GIS)軟件以及制圖軟件需要解決的問題。如何能夠快速高效訪問海量的數(shù)據(jù)并能夠快速繪制顯示一直是GIS軟件關心的問題,這也是具有挑戰(zhàn)性的問題。矢量數(shù)據(jù)能夠在計算機終端快速繪制顯示,必然要能夠快速的訪問數(shù)據(jù)實體,因此要對海量的矢量數(shù)據(jù),設計高效的數(shù)據(jù)管理方法,建立有效的海量數(shù)據(jù)的空間索引機制。目前矢量數(shù)據(jù)的存儲方法提出了對象數(shù)據(jù)模型、矢量數(shù)據(jù)拓撲模型,在空間索引方面提出了網(wǎng)格索弓I、四叉樹索弓I、R樹以及R+等。隨著計算機技術革新,特別是在計算機CPU的發(fā)展方面,出現(xiàn)了多核處理器的體系結構,多核處理器技術在應用上的優(yōu)勢有兩個方面為用戶帶來更強大的計算性能;更重要的是可滿足用戶同時進行多任務處理和多任務計算環(huán)境的要求。因此在進行海量矢量數(shù)據(jù)的繪制顯示時,能夠利用多核CPU的優(yōu)勢進行并行繪制處理。但是,目前大多數(shù)的矢量數(shù)據(jù)繪制方法仍然采用的是傳統(tǒng)的串行處理方式,依靠單核CPU單線程模式循環(huán)遍歷每個矢量圖層以及矢量圖層的每個要素,對于每繪制一遍海量的矢量數(shù)據(jù),需要用戶等待,效率極低。在早期的單核CPU計算機硬件水平下,這用繪制方式是可行的,隨著計算硬件水平的發(fā)展,雙核、四核、八核甚至更多核CPU的計算機出現(xiàn),這種串行矢量數(shù)據(jù)的繪制方式,已經(jīng)不是最優(yōu)的繪制方式,它不能提高矢量數(shù)據(jù)的繪制效率,不能有效的利用多核CPU計算機硬件優(yōu)勢。
發(fā)明內(nèi)容
因此,根據(jù)本發(fā)明的優(yōu)選實施方式,本發(fā)明解決了現(xiàn)有技術中不能有效利用多核CPU計算機硬件優(yōu)勢,提高矢量數(shù)據(jù)的繪制效率的技術問題。根據(jù)本發(fā)明的ー個方面,本發(fā)明提供了一種適用于多核CPU的矢量數(shù)據(jù)并行繪制方法,其特征在于,所述方法包括以下步驟并行獲取矢量數(shù)據(jù)步驟根據(jù)計算機終端的CPU的核數(shù)和矢量圖層數(shù),建立多線程模型體系,所述多線程模型各自獨立,并行處理每個矢量圖層,每個多線程模型根據(jù)計算機終端的屏幕范圍獲取矢量圖層空間索引塊,通過所述空間索引塊來獲取索引塊內(nèi)的矢量要素實體集;并行符號化繪制步驟對獲取的所述矢量要素實體集進行矢量圖層并行繪制,每個矢量圖層生成內(nèi)存位圖并放入內(nèi)存位圖池;終端屏幕顯示步驟對每個矢量圖層生成的內(nèi)存位圖,按照矢量圖層疊加的先后順序依次顯示到計算機終端的屏幕。優(yōu)選的,所述方法進ー步包括以下步驟矢量數(shù)據(jù)存儲步驟將不同數(shù)據(jù)格式、不同來源的異構矢量數(shù)據(jù),按照不同領域的分層方式進行分層,形成矢量圖層,在數(shù)據(jù)庫中建立與矢量圖層對應的空間索引表,進行矢量數(shù)據(jù)入庫;空間索引處理步驟對矢量數(shù)據(jù)進行空間網(wǎng)格索引化,形成矢量圖層的空間網(wǎng)格 索引塊。優(yōu)選的,建立網(wǎng)格索引的規(guī)則是采用四叉樹。優(yōu)選的,每個多線程模型均對應IO和DC兩個線程,所述IO線程用于獲取本地或者遠程數(shù)據(jù),所述DC線程用于繪制所述IO線程獲取的矢量數(shù)據(jù)。優(yōu)選的,所述IO線程和DC線程保持并行同歩。根據(jù)本發(fā)明的ー個方面,本發(fā)明還提供了一種適用于多核CPU的矢量數(shù)據(jù)并行繪制裝置,其特征在于,所述裝置包括以下模塊并行獲取矢量數(shù)據(jù)模塊用于根據(jù)計算機終端的CPU的核數(shù)和矢量圖層數(shù),建立多線程模型體系,所述多線程模型各自獨立,并行處理每個矢量圖層,每個多線程模型根據(jù)計算機終端的屏幕范圍獲取矢量圖層空間索引塊,通過所述空間索引塊來獲取索引塊內(nèi)的矢量要素實體集;并行符號化繪制模塊用于對獲取的要素實體集進行矢量圖層并行繪制,每個矢量圖層生成內(nèi)存位圖并放入內(nèi)存位圖池;終端屏幕顯示模塊用于對每個矢量圖層生成的內(nèi)存位圖,按照矢量圖層疊加的先后順序依次顯示到計算機終端的屏幕。優(yōu)選的,所述裝置進ー步包括以下模塊矢量數(shù)據(jù)存儲模塊用于將不同數(shù)據(jù)格式、不同來源的異構矢量數(shù)據(jù),按照不同領域的分層方式進行分層,形成矢量圖層,在數(shù)據(jù)庫中建立與矢量圖層對應的空間索引表,進行矢量數(shù)據(jù)入庫;空間索引處理模塊用于對矢量數(shù)據(jù)進行空間網(wǎng)格索引化,形成矢量圖層的空間網(wǎng)格索引塊。優(yōu)選的,建立網(wǎng)格索引的規(guī)則是采用四叉樹。優(yōu)選的,每個多線程模型均對應IO和DC兩個線程,所述IO線程用于獲取本地或者遠程數(shù)據(jù),所述DC線程用于繪制所述IO線程獲取的矢量數(shù)據(jù)。優(yōu)選的,所述IO線程和DC線程保持并行同歩。本發(fā)明利用多核CPU建立多核線程模型,多核線程并行地獲取和繪制矢量數(shù)據(jù),充分利用計算機硬件水平,使海量的矢量數(shù)據(jù)繪制效率最大化。每個矢量圖層創(chuàng)建ー個內(nèi)存設備,并在其上進行繪制數(shù)據(jù),繪制過程中可實時更新屏幕,整個矢量圖層繪制完畢后生成內(nèi)存位圖并放入內(nèi)存位圖池中,在下次繪制時可以直接從內(nèi)存位圖池中取出對應的位圖進行顯示。本發(fā)明所提出的所述方法和裝置將會在地理信息系統(tǒng)的軟件中提高矢量數(shù)據(jù)的繪圖效率,提高數(shù)據(jù)生產(chǎn)単位的制圖效率。本發(fā)明所提出的所述方法和裝置最終將會在地理系統(tǒng)及相關行業(yè)的軟件使用和推廣,將會產(chǎn)生良好的社會經(jīng)濟效益。
下面結合附圖詳細說明本發(fā)明的特征和優(yōu)點,在附圖中圖I圖示了根據(jù)本發(fā)明的優(yōu)選實施方式的適用于多核CPU矢量數(shù)據(jù)并行繪制方法的流程圖。圖2圖示了根據(jù)本發(fā)明的優(yōu)選實施方式的矢量數(shù)據(jù)空間索引化采用四叉數(shù)逆時針編碼方式。圖3圖示了根據(jù)本發(fā)明的優(yōu)選實施方式的矢量數(shù)據(jù)空間索引化處理流程圖。、圖4圖示了根據(jù)本發(fā)明的優(yōu)選實施方式的矢量數(shù)據(jù)并行獲取數(shù)據(jù)、并行繪制模型。圖5圖示了根據(jù)本發(fā)明的優(yōu)選實施方式的由IO線程獲取數(shù)據(jù)的操作流程圖。圖6圖示了根據(jù)本發(fā)明的優(yōu)選實施方式的由DC線程繪制數(shù)據(jù)的操作流程圖。
具體實施例方式下面,參照附圖更全面地描述本發(fā)明、示出本發(fā)明的各方面的優(yōu)選實施方式。為了更好地突出本發(fā)明的實質(zhì)性特點,在以下的描述中將省略對公知常識的描述。實現(xiàn)海量矢量數(shù)據(jù)并行繪制方法,前期要大量的準備工作,例如矢量數(shù)據(jù)的分層設計、空間索引策略、本地緩存策略。下面根據(jù)實例和附圖對本發(fā)明作進ー步詳細說明為了能夠適用不同領域的矢量數(shù)據(jù)存儲管理,本發(fā)明采用Oracle關系型數(shù)據(jù)庫存儲數(shù)據(jù),矢量圖層可按照基本的點、線、面、文本方式存儲。矢量數(shù)據(jù)圖層屬性結構表中包括ID字段以及其他輔助信息字段。矢量數(shù)據(jù)存儲管理中,設計ー個矢量圖層對應ー個空間索引表以實現(xiàn)空間索引管理。圖I列出了海量矢量數(shù)據(jù)快速繪制的流程,下面分別按照步驟詳細說明步驟SlOl :將不同數(shù)據(jù)格式、不同來源的異構矢量數(shù)據(jù),按照不同領域的分層方式進行分層,建立矢量數(shù)據(jù)存儲體系。每個矢量圖層必須包含基本的ID序號字段、幾何圖形等基本字段信息,其中幾何圖形字段存儲矢量要素的幾何實體形狀。在Oracle數(shù)據(jù)庫中建立與矢量圖層對應的空間索引表,進行矢量數(shù)據(jù)入庫。步驟S102 :矢量數(shù)據(jù)入完庫后,對矢量數(shù)據(jù)進行相應的空間網(wǎng)格索引化。下面結合圖2和圖3進行詳細說明。建立網(wǎng)格索引的規(guī)則是采用四叉樹,如圖2所示,將矢量圖層在空間范圍四等分塊。限定每個子區(qū)域分塊內(nèi)要素實體個數(shù)小于某個閾值(如2000),如果子區(qū)域分塊內(nèi)的要素實體個數(shù)大于閾值,則繼續(xù)遞歸四等分該子區(qū)域,直到所有的區(qū)域都小于閾值。最后形成矢量圖層的空間網(wǎng)格索引塊,將網(wǎng)格索引塊序號和索引塊內(nèi)的矢量要素實體ID集存儲到空間索引表中??臻g網(wǎng)格索引編碼以左下角為起始位置逆時針編號1、2、3、4,自頂向下,每層編碼后就是對應的空間網(wǎng)格索引碼。矢量數(shù)據(jù)圖層空間網(wǎng)格索引流程所圖3所示。流程開始后,首先將矢量數(shù)據(jù)空間區(qū)域進行四等分,然后判斷每個子區(qū)域分塊內(nèi)要素實體個數(shù)是否大于子區(qū)域實體數(shù)閾值,如果大于,則繼續(xù)遞歸四等分該子區(qū)域,否則,就將子區(qū)域記錄到空間索引表,最后結束整個流程。步驟S103 :根據(jù)計算機終端的CPU的核數(shù)和矢量圖層數(shù),建立多線程模型體系,模型圖如圖4。在圖4中,每繪制ー個矢量圖層則調(diào)用空閑的CPU核創(chuàng)建ー個多線程模型。每個多線程模型均對應I0(Input/0utput輸入輸出)和DC (Device Content設備上下文,用于繪圖)兩個線程,IO線程負責獲取本地或遠程矢量數(shù)據(jù),DC線程負責繪制IO獲取的矢量數(shù)據(jù),IO線程和DC線程通過信號通信,保持并行同歩,繪制完矢量圖層后則順序的顯示在計算機終端屏幕上。圖4中多線程模型是各自獨立的,并行處理每個矢量圖層。每個多線程模型根據(jù)計算機終端的屏幕范圍獲取矢量圖層空間索引塊,通過空間索引塊獲取、繪制索引塊內(nèi)的矢量數(shù)據(jù)實體集。下面根據(jù)圖2對如何根據(jù)計算機終端的屏幕范圍獲取矢量圖層空間索引塊進行進ー步的說明。在圖2中,假定外框是矢量圖層空間范圍,由空間索引塊1、21、22、23、24、3、 41、421、422、423、424、43、44組成,虛線框是由計算機終端的屏幕范圍計算出來的地理空間范圍,其覆蓋了 41、423、424、43、44空間索引塊。步驟S104 :根據(jù)步驟S103獲取的要素實體集進行矢量圖層并行繪制,每個圖層生成內(nèi)存位圖并放入內(nèi)存位圖池,圖5是獲取數(shù)據(jù)流程,圖6是繪制數(shù)據(jù)流程,分別由IO線程和DC線程兩個線程模型完成。在計算機終端開辟矢量數(shù)據(jù)存儲的緩存區(qū)域(如10000個存儲單位),該緩存循環(huán)利用,IO線程和DC線程同時工作,通過信號通信。IO線程讀取數(shù)據(jù)順序放入緩存中,DC線程順序從緩存中取出數(shù)據(jù)進行繪制。在圖5中,IPutIndex是線程IO存入數(shù)據(jù)的計數(shù)器,IGetIndex是取出數(shù)據(jù)的計數(shù)器,IBuffersize是緩存區(qū)域大小,hIOAccess是獲取數(shù)據(jù)信號,bGetFeature是IO線程獲取矢量數(shù)據(jù)標志,初始狀態(tài)True。當滿足(IPutIndex-IGetIndex) > IBuffersize條件時,IO線程等待hIOAccess為可用信號后獲取數(shù)據(jù),不滿足時IO直接獲取數(shù)據(jù),直到獲取完該矢量圖層數(shù)據(jù)。IO線程獲取完矢量圖層數(shù)據(jù)后bGetFeature置為False。IO線程每放入一條數(shù)據(jù)到緩存中,IPutIndex計數(shù)加I,并設置hDCAccess為可用狀態(tài)。在圖6中,hDCAccess是繪制數(shù)據(jù)信號,當滿足IGetIndex > = IPutIndex條件吋,DC線程等待hDCAccess信號為可用信號后,從緩存中取出數(shù)據(jù)進行繪制,不滿足時直接從緩存中取出數(shù)據(jù)進行繪制,DC線程每取出一條數(shù)據(jù)后,IGetIndex計數(shù)加1,并設置hIOAccess為可用狀態(tài)。DC線程循環(huán)檢測bGetFeature,當為False時,停止從緩存中取出數(shù)據(jù)繪圖,并生成內(nèi)存位圖,否則繼續(xù)循環(huán)從緩存中取出數(shù)據(jù)進行繪制。步驟S105 :對每個矢量圖層生成的內(nèi)存位圖,按照矢量圖層疊加的先后順序依次顯示到計算機屏幕。本發(fā)明利用多核CPU建立多核線程池模型,多核線程并行地獲取和繪制矢量數(shù)據(jù),充分利用計算機硬件水平,使海量的矢量數(shù)據(jù)繪制效率最大化。每個矢量圖層創(chuàng)建ー個內(nèi)存設備,并在其上進行繪制數(shù)據(jù),繪制過程中可實時更新屏幕,整個矢量圖層繪制完畢后生成內(nèi)存位圖并放入內(nèi)存位圖池中,在下次繪制時可以直接從內(nèi)存位圖池中取出對應的位圖進行顯示。本發(fā)明所提出的所述方法和裝置將會在地理信息系統(tǒng)的軟件中提高矢量數(shù)據(jù)的繪圖效率,提高數(shù)據(jù)生產(chǎn)単位的制圖效率。本發(fā)明所提出的所述方法和裝置最終將會在地理系統(tǒng)及相關行業(yè)的軟件使用和推廣,將會產(chǎn)生良好的社會經(jīng)濟效益。以上內(nèi)容僅為本發(fā)明的較佳實施例,對于本領域的普通技術人員,依據(jù)本發(fā)明的 思想,在具體實施方式
及應用范圍上均會有改變之處,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
1.一種適用于多核CPU的矢量數(shù)據(jù)并行繪制方法,其特征在于,所述方法包括以下步驟 并行獲取矢量數(shù)據(jù)步驟根據(jù)計算機終端的CPU的核數(shù)和矢量圖層數(shù),建立多線程模型體系,所述多線程模型各自獨立,并行處理每個矢量圖層,每個多線程模型根據(jù)計算機終端的屏幕范圍獲取矢量圖層空間索引塊,通過所述空間索引塊來獲取索引塊內(nèi)的矢量要素實體集; 并行符號化繪制步驟對獲取的所述矢量要素實體集進行矢量圖層并行繪制,每個矢量圖層生成內(nèi)存位圖并放入內(nèi)存位圖池; 終端屏幕顯示步驟對每個矢量圖層生成的內(nèi)存位圖,按照矢量圖層疊加的先后順序依次顯示到計算機終端的屏幕。
2.根據(jù)權利要求I所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制方法,其特征在于,所述方法進ー步包括以下步驟 矢量數(shù)據(jù)存儲步驟將不同數(shù)據(jù)格式、不同來源的異構矢量數(shù)據(jù),按照不同領域的分層方式進行分層,形成矢量圖層,在數(shù)據(jù)庫中建立與矢量圖層對應的空間索引表,進行矢量數(shù)據(jù)入庫; 空間索引處理步驟對矢量數(shù)據(jù)進行空間網(wǎng)格索引化,形成矢量圖層的空間網(wǎng)格索引塊。
3.根據(jù)權利要求2所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制方法,其特征在于,建立網(wǎng)格索引的規(guī)則是采用四叉樹。
4.根據(jù)權利要求1-3中任意一項所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制方法,其特征在干,每個多線程模型均對應IO和DC兩個線程,所述IO線程用于獲取本地或者遠程數(shù)據(jù),所述DC線程用于繪制所述IO線程獲取的矢量數(shù)據(jù)。
5.根據(jù)權利要求4所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制方法,其特征在于,所述IO線程和DC線程保持并行同歩。
6.一種適用于多核CPU的矢量數(shù)據(jù)并行繪制裝置,其特征在于,所述裝置包括以下模塊 并行獲取矢量數(shù)據(jù)模塊用于根據(jù)計算機終端的CPU的核數(shù)和矢量圖層數(shù),建立多線程模型體系,所述多線程模型各自獨立,并行處理每個矢量圖層,每個多線程模型根據(jù)計算機終端的屏幕范圍獲取矢量圖層空間索引塊,通過所述空間索引塊來獲取索引塊內(nèi)的矢量要素實體集; 并行符號化繪制模塊用于對獲取的要素實體集進行矢量圖層并行繪制,每個矢量圖層生成內(nèi)存位圖并放入內(nèi)存位圖池; 終端屏幕顯示模塊用于對每個矢量圖層生成的內(nèi)存位圖,按照矢量圖層疊加的先后順序依次顯示到計算機終端的屏幕。
7.根據(jù)權利要求6所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制裝置,其特征在于,所述裝置進ー步包括以下模塊 矢量數(shù)據(jù)存儲模塊用于將不同數(shù)據(jù)格式、不同來源的異構矢量數(shù)據(jù),按照不同領域的分層方式進行分層,形成矢量圖層,在數(shù)據(jù)庫中建立與矢量圖層對應的空間索引表,進行矢量數(shù)據(jù)入庫;空間索引處理模塊用于對矢量數(shù)據(jù)進行空間網(wǎng)格索引化,形成矢量圖層的空間網(wǎng)格索引塊。
8.根據(jù)權利要求7所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制裝置,其特征在于,建立網(wǎng)格索引的規(guī)則是采用四叉樹。
9.根據(jù)權利要求6-8中任意一項所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制裝置,其特征在干,每個多線程模型均對應IO和DC兩個線程,所述IO線程用于獲取本地或者遠程數(shù)據(jù),所述DC線程用于繪制所述IO線程獲取的矢量數(shù)據(jù)。
10.根據(jù)權利要求9所述的適用于多核CPU的矢量數(shù)據(jù)并行繪制裝置,特征在于,所述IO線程和DC線程保持并行同歩。
全文摘要
本發(fā)明公開了一種適用于多核CPU的矢量數(shù)據(jù)并行繪制方法和裝置,所述方法包括并行獲取矢量數(shù)據(jù)步驟、并行符號化繪制步驟和終端屏幕顯示步驟。所述裝置包括相應的并行獲取矢量數(shù)據(jù)模塊、并行符號化繪制模塊和終端屏幕顯示模塊。本發(fā)明利用多核CPU建立多核線程模型,多核線程并行地獲取和繪制矢量數(shù)據(jù),充分利用計算機硬件水平,使海量的矢量數(shù)據(jù)繪制效率最大化。本發(fā)明所提出的所述方法和裝置最終將會在地理系統(tǒng)及相關行業(yè)的軟件使用和推廣,將會產(chǎn)生良好的社會經(jīng)濟效益。
文檔編號G06F9/38GK102736898SQ201210139268
公開日2012年10月17日 申請日期2012年5月8日 優(yōu)先權日2012年5月8日
發(fā)明者何昭寧, 信晟, 唐新明, 汪匯兵, 王懷 申請人:國家測繪局衛(wèi)星測繪應用中心