協(xié)同顯示系統(tǒng)實現(xiàn)GIS的超高分辨率顯示
1 引言
地理信息系統(tǒng)(GeographicInformatiONSySTem,簡稱GIS)是在地理學、地圖學、測量學和計算機科學等學科基礎(chǔ)上發(fā)展起來的一門學科,在最近的30多年內(nèi)取得了驚人的發(fā)展,廣泛應用于資源調(diào)查、環(huán)境評估、災害預測、國土管理、城市規(guī)劃、郵電通訊、交通運輸、軍事公安、水利電力、公共設(shè)施管理、農(nóng)林牧業(yè)、統(tǒng)計、商業(yè)金融等幾乎所有領(lǐng)域。
隨著GIS應用越來越普及,所處理的地理數(shù)據(jù)覆蓋范圍越來越廣,精細度也越來越高,單個PC機的顯示設(shè)備在顯示如此廣而細的數(shù)據(jù)時越來越吃力,地圖內(nèi)容的廣度和細度不能同時顯示的矛盾愈加明顯。因此,GIS應用中超高分辨率顯示的研究就很有現(xiàn)實意義。
基于PC集群系統(tǒng)的并行協(xié)同顯示是解決上述矛盾的一個十分經(jīng)濟而有效的途徑。采用多個顯示設(shè)備拼接來顯示地圖使得顯示區(qū)域增大為相應的倍數(shù),而顯示比例尺不變;各個顯示設(shè)備由單獨的計算機進行驅(qū)動,計算任務的分擔使得顯示速度也大大提高。與傳統(tǒng)的大型圖形工作站相比,PC集群機有如下優(yōu)勢:
(1)高性價比:價格是同等處理能力專業(yè)圖形工作站的十分之一;
(2)擴展性好:理論上,顯示分辨率隨集群節(jié)點數(shù)增加而線性增加,增刪節(jié)點方便;
(3)升級方便:可隨時采用當前最先進的PC配件進行升級。
2 系統(tǒng)體系結(jié)構(gòu)及原理
2.1 系統(tǒng)體系結(jié)構(gòu)
系統(tǒng)采用主/從模式設(shè)計,由一個GIS平臺自帶的綜合應用程序作為全景操作控制端,確定地圖顯示的實際范圍,另外由多個GIS應用集群機組成顯示輸出端,各顯示輸出端的外接顯示設(shè)備拼接成超分辨率顯示矩陣,將全景操作控制端的地圖范圍以更多的細節(jié)顯示出來。網(wǎng)絡(luò)架構(gòu)如圖1。
全景操作控制端與分布式集群顯示輸出端通過局域網(wǎng)進行連接,全景處理端的GIS程序在操作過程中,將當前屏幕的信息(地理位置、顯示范圍)按塊劃分后,同時分發(fā)給顯示矩陣中對應的各個從機,各從機將得到的位置、范圍信息與自身的顯示分辨率相比較,計算出相應的比例尺關(guān)系,根據(jù)比例尺關(guān)系按照最合適的縮放級別重新進行顯示。
2.2 系統(tǒng)原理
從系統(tǒng)的網(wǎng)絡(luò)體系結(jié)構(gòu)可以看出,物理的超分辨率顯示矩陣雖然搭建好,硬件的超分辨率不一定能被充分利用,從而顯示更多的細節(jié)信息。如何達到與物理顯示矩陣的分辨率一致的細節(jié)顯示率、實現(xiàn)真正的超分辨率顯示,就要通過軟件系統(tǒng)來控制。軟件系統(tǒng)結(jié)構(gòu)如圖2。
系統(tǒng)包括主節(jié)點和從節(jié)點兩個部分,并且它們之間采用TCP或UDP協(xié)議進行消息的傳遞。
通過GIS平臺提供的開發(fā)接口創(chuàng)建一個超分辨率顯示組件,將帶有該組件的GIS綜合應用程序作為全景操作控制端,即主節(jié)點。主節(jié)點的超分辨率顯示組件包括兩個模塊:主節(jié)點控制模塊、系統(tǒng)通信模塊?;贕IS平臺提供的開發(fā)接口,創(chuàng)建一個完全基于網(wǎng)絡(luò)消息驅(qū)動的顯示程序,該程序不提供任何直接與用戶交互的功能,作為顯示輸出端,即從節(jié)點。從節(jié)點與主節(jié)點對應,包括:從節(jié)點控制模塊,系統(tǒng)通信模塊。用戶交互界面是指主節(jié)點GIS綜合應用程序的用戶界面。
那么整個大視景系統(tǒng)是如何工作的呢?
圖3例舉了一個由四個從節(jié)點顯示終端所組成的超分辨率顯示系統(tǒng)。主節(jié)點控制模塊是控制核心,第一步,按照行優(yōu)先,從左到右的順序,為每個從節(jié)點賦予了一個唯一的編號。
由這個唯一的編號可以查找到對應的從節(jié)點的地址、端口、可用狀態(tài)等,為通信模塊做好通信準備。第二步,要計算出每個從節(jié)點所需顯示的區(qū)域的地理范圍。由圖我們可以看出,整個大視景顯示區(qū)域由若干局部區(qū)域拼接而成,各從節(jié)點的編號決定了它們所要顯示的局部區(qū)域。具體實現(xiàn)是,將主節(jié)點的顯示屏幕分割成與從節(jié)點顯示矩陣成相似形的若干區(qū)塊,每個屏幕區(qū)塊和一個從節(jié)點對應。GIS平臺提供了將屏幕坐標轉(zhuǎn)化為地理坐標的接口,因此每個屏幕區(qū)塊的地理坐標都可以計算出來。地理坐標計算出來之后,由編號值查找對應從節(jié)點的地址和端口,并將地理坐標信息傳送給該從節(jié)點。到這里,主節(jié)點控制模塊將從節(jié)點的編號和它所要顯示的內(nèi)容緊密地結(jié)合在了一起。圖3右側(cè)是系統(tǒng)顯示的戰(zhàn)場推演圖。
系統(tǒng)通信模塊基于ICE平臺而開發(fā),支持分布式對象通信,主節(jié)點端系統(tǒng)通信模塊主要負責:
一、向各個從節(jié)點發(fā)送消息或者數(shù)據(jù),包括命令消息、地理坐標信息、圖層數(shù)據(jù)等,
二、接受從節(jié)點返回的確認信息,包括從節(jié)點的可用狀態(tài)、同步狀態(tài)等。
從節(jié)點一側(cè),同樣包括通信模塊、控制模塊。從節(jié)點通信模塊負責接收主節(jié)點發(fā)送來的消息及數(shù)據(jù),以及向主節(jié)點反饋響應結(jié)果。從節(jié)點控制模塊響應接受到的命令消息,執(zhí)行相應操作,訪問地理信息數(shù)據(jù)庫,讀取相應的數(shù)據(jù)進行繪制并顯示。
3 系統(tǒng)同步技術(shù)
作為一個分布式協(xié)同顯示系統(tǒng),為了能給用戶呈現(xiàn)邏輯上唯一的、完整的、正確的大視景,各從節(jié)點之間的顯示同步顯得尤為重要,因此在實現(xiàn)過程中,必須對同步實施嚴格精準的控制,具體的指令流同步控制邏輯如圖4所示。
由圖可以看出,系統(tǒng)需要同步的操作主要分為三大類:繪圖、視圖變更、系統(tǒng)命令。繪圖命令包括繪制和顯示;視圖變更操作包括改變地圖投影類型和改變圖層顯示控制;系統(tǒng)命令指少量操作系統(tǒng)消息。這些同步的實現(xiàn)根據(jù)所涉及的層次由低到高劃分為:幀緩存交換同步,數(shù)據(jù)同步,消息同步。
(1)幀緩存交換同步
圖形顯示卡由兩組幀緩存的支持以達到幀與幀之間平滑的過渡。其中一組緩存用于畫面的顯示,而畫面的繪制則是在另一組緩存上進行,當一幅畫面繪制完成后這兩組幀緩存進行交換,新完成繪制的畫面將被顯示,而下一幅畫面將被繪制。這么做的目的在于避免發(fā)生在相同的幀緩存上進行顯示和繪制的工作所造成的畫面失真感。
幀緩存交換同步指的是各從節(jié)點圖形顯示卡的前后緩沖區(qū)交換動作的同步性:在二維GIS動態(tài)推演和三維GIS中,各從節(jié)點的幀繪制時間互有長短,若我們沒有有效的手段控制各幀繪制完成后幀緩沖交換動作的同步進行,那么繪制較快的從節(jié)點將提前進入下一幀的顯示,這就造成了各從節(jié)點顯示內(nèi)容的不一致性。例如,顯示移動目標時,如果其中一個從節(jié)點先進行幀緩沖交換而提前進入下一幀的顯示,那么大視景顯示矩陣的接縫處就會產(chǎn)生撕裂感。我們是用軟件實現(xiàn)幀緩存交換同步的,通過網(wǎng)絡(luò)進行消息傳遞,控制圖形API的SwapBuffers指令同步執(zhí)行:具體來說是使用網(wǎng)絡(luò)柵障(networkbarrier)功能,各從節(jié)點SwapBuffers命令的同步執(zhí)行由主節(jié)點控制,從節(jié)點在完成繪制并能夠進行幀緩存交換時將到達同步點,此時從節(jié)點將通知主節(jié)點并進入等待狀態(tài);繪制較快的從節(jié)點進程將被阻塞,直到最后的節(jié)點也完成繪制抵達同步點后,主節(jié)點向所有從節(jié)點發(fā)送繼續(xù)執(zhí)行的命令,各節(jié)點才同時執(zhí)行SwapBuffers指令,從而達到同時交換幀緩存的效果。由于同步的手段是通過網(wǎng)絡(luò)以軟件方式實現(xiàn)的,幀緩存交換同步在效果上可能會受到網(wǎng)絡(luò)延時影響。
(2)數(shù)據(jù)同步
數(shù)據(jù)同步指的是,主節(jié)點作為全景操作控制端,導入新的地圖圖層或者添加新的標繪圖形,從節(jié)點必須同步導入相同的地圖圖層或者同步畫上相同的標繪圖形。系統(tǒng)的數(shù)據(jù)同步是以主節(jié)點“推”的方式實現(xiàn)的,即主節(jié)點有新的數(shù)據(jù)輸入時,主動向所有從節(jié)點廣播數(shù)據(jù)同步消息,如果是主節(jié)點導入外部數(shù)據(jù),主節(jié)點就將外部數(shù)據(jù)源地址發(fā)送給所有從節(jié)點,各從節(jié)點自行從該數(shù)據(jù)源中取相應數(shù)據(jù);如果是主節(jié)點自行添加標繪數(shù)據(jù),主節(jié)點就向所有從節(jié)點發(fā)送一份該標繪層的數(shù)據(jù)。
(3)消息同步
此處的消息包括GIS平臺定義的消息以及少量操作系統(tǒng)消息。比如,地圖投影坐標系的改變、圖層顯示控制的改變、窗口大小的改變等等。主節(jié)點一旦截獲這些來自平臺或者操作系統(tǒng)的消息,就立即通知所有從節(jié)點,從節(jié)點根據(jù)收到的消息作同步響應動作。
4 結(jié)語
目前該系統(tǒng)已經(jīng)應用于某軍區(qū)的GIS作戰(zhàn)綜合應用系統(tǒng),獲得良好的表現(xiàn)。超高分辨率大視景顯示系統(tǒng)為GIS應用提供一種多通道并行協(xié)同圖形輸出,實現(xiàn)超高分辨率顯示的方法,適用于軍事指揮調(diào)度、交通路況分析、搶險救災分析、電網(wǎng)鋪設(shè)分析、國土資源調(diào)查等大型GIS應用場景。