羅 敏,李子揚(yáng),馮 磊
(1.中國科學(xué)院 定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100094;2.中國科學(xué)院 光電研究院,北京 100094;3.中國科學(xué)院大學(xué),北京 100049)
多通道三維動(dòng)態(tài)顯示同步方法研究
羅 敏1,2,3,李子揚(yáng)1,2,馮 磊1,2
(1.中國科學(xué)院 定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100094;2.中國科學(xué)院 光電研究院,北京 100094;3.中國科學(xué)院大學(xué),北京 100049)
在多通道三維動(dòng)態(tài)顯示技術(shù)中,保持通道間的同步顯示一直是技術(shù)難點(diǎn)之一。確保不同通道之間的同步顯示,尤其是在顯示大規(guī)模場(chǎng)景和仿真運(yùn)動(dòng)實(shí)體時(shí),對(duì)保持畫面的流暢和質(zhì)量具有重要的意義。提出了使用數(shù)據(jù)包發(fā)送控制信息分別控制靜態(tài)場(chǎng)景和動(dòng)態(tài)實(shí)體的解決方法,實(shí)現(xiàn)了通道間動(dòng)靜態(tài)數(shù)據(jù)的同步;針對(duì)通道間顯示不同步的問題,提出了自適應(yīng)等待時(shí)間的消息反饋方法,實(shí)現(xiàn)了通道間顯示的同步。對(duì)比實(shí)驗(yàn)表明,該技術(shù)有效提高了多通道的顯示同步率,實(shí)現(xiàn)了大規(guī)模場(chǎng)景、多運(yùn)動(dòng)實(shí)體的平滑顯示。
多通道顯示;同步顯示;消息反饋算法
多通道顯示系統(tǒng)[1]是指利用一個(gè)或多個(gè)顯示通道共同拼接生成一個(gè)完整的視景畫面,為用戶提供一個(gè)具有高度沉浸感的虛擬環(huán)境。與一般單通道顯示相比,其具有更大的顯示尺寸、更多的顯示內(nèi)容和更好的視覺效果[2]。同步問題是多通道顯示系統(tǒng)的關(guān)鍵技術(shù)之一[3],在顯示同一幅視景畫面時(shí),不同的通道間需要協(xié)同工作,共同完成渲染任務(wù)。傳統(tǒng)的多通道顯示系統(tǒng)往往只側(cè)重于靜態(tài)場(chǎng)景的同步,當(dāng)場(chǎng)景中同時(shí)含有運(yùn)動(dòng)實(shí)體時(shí),常常會(huì)出現(xiàn)畫面撕裂、重影等問題。
常見的同步算法[4]可分為4類:保守算法[5]、樂觀算法[6]、混合算法[7]和自適應(yīng)算法[8]。保守算法要求各類事件嚴(yán)格按時(shí)間先后順序處理執(zhí)行,方法雖簡(jiǎn)單卻容易出現(xiàn)死鎖現(xiàn)象;樂觀算法允許事件按任意順序執(zhí)行,如果發(fā)生因果關(guān)系錯(cuò)誤,則退回重新執(zhí)行該事件,這樣會(huì)增加系統(tǒng)的復(fù)雜性;混合算法是保守算法和樂觀算法的混合;自適應(yīng)算法是混合算法的動(dòng)態(tài)調(diào)整算法,通過動(dòng)態(tài)地改變一個(gè)或多個(gè)變量使系統(tǒng)在保守算法和樂觀算法之間調(diào)整。多通道動(dòng)態(tài)同步顯示由于其自身具有幀速高、數(shù)據(jù)交換頻繁等特點(diǎn),一般的同步算法并不能完全解決通道間同步顯示的問題。在常見的同步算法基礎(chǔ)上,文獻(xiàn)[9]通過控制節(jié)點(diǎn)發(fā)送命令通知渲染節(jié)點(diǎn)切換緩沖,隨后渲染節(jié)點(diǎn)要求控制節(jié)點(diǎn)發(fā)送數(shù)據(jù)的方法來解決由于負(fù)載不均衡引起的不同步;文獻(xiàn)[10]通過保守算法和運(yùn)動(dòng)實(shí)體的平滑技術(shù)來實(shí)現(xiàn)多通道間的同步;文獻(xiàn)[11]通過推算定位的方法來實(shí)現(xiàn)多通道的顯示同步;文獻(xiàn)[12]通過反饋確認(rèn)和紋理切割的同步算法來實(shí)現(xiàn)多通道間的同步。
本文采用了Master/Slave結(jié)構(gòu)的多通道三維顯示系統(tǒng),按功能可分為4個(gè)部分:Master節(jié)點(diǎn)、Slave節(jié)點(diǎn)、投影儀和顯示屏,如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
Master節(jié)點(diǎn)為主控端,負(fù)責(zé)信息的交互,包括Master節(jié)點(diǎn)與Slave節(jié)點(diǎn)間信息的網(wǎng)絡(luò)交互和Master節(jié)點(diǎn)與用戶間的操作信息交互。前者用于實(shí)現(xiàn)通道間的控制與場(chǎng)景的同步顯示,后者便于用戶操作整個(gè)多通道顯示系統(tǒng)。Slave節(jié)點(diǎn)為從屬端,接收主控端的數(shù)據(jù)并根據(jù)這些信息進(jìn)行場(chǎng)景的顯示和渲染。
本文以三通道顯示系統(tǒng)為例進(jìn)行研究。在三通道顯示系統(tǒng)中,選取中間節(jié)點(diǎn)作為Master節(jié)點(diǎn),該節(jié)點(diǎn)不僅用于實(shí)現(xiàn)信息交互,還作為顯示節(jié)點(diǎn)的一部分參與場(chǎng)景的顯示。用戶通過該節(jié)點(diǎn)發(fā)送控制信息,控制信息和同步信息組成的數(shù)據(jù)包通過網(wǎng)絡(luò)傳輸?shù)絊lave節(jié)點(diǎn),所有節(jié)點(diǎn)均完成渲染任務(wù)后同時(shí)顯示并投影到大屏幕上,完成完整的三維地理信息動(dòng)態(tài)顯示過程。
2.1 傳統(tǒng)顯示同步技術(shù)
系統(tǒng)顯示場(chǎng)景一般需要經(jīng)過3個(gè)階段,即讀取數(shù)據(jù)、渲染場(chǎng)景及顯示場(chǎng)景[13]。由于各個(gè)通道的獨(dú)立性,在經(jīng)歷這3個(gè)階段時(shí),各通道處理能力無法完全一致,必然會(huì)造成處理時(shí)間上的差異,最終導(dǎo)致系統(tǒng)顯示的不同步。因此,為了保證通道間的顯示同步,一般會(huì)進(jìn)行兩次同步控制,第一次同步要保證不同的顯示節(jié)點(diǎn)顯示同一時(shí)刻的動(dòng)態(tài)視景畫面;第二次同步要保證不同的顯示節(jié)點(diǎn)在同一時(shí)刻顯示,即畫面顯示同步。多通道同步控制如圖2所示。
圖2 多通道同步控制圖
但是,在大規(guī)模場(chǎng)景中存在運(yùn)動(dòng)實(shí)體的情況下,簡(jiǎn)單的兩次同步仍不能達(dá)到很好的效果,特別是在運(yùn)動(dòng)物體穿越一個(gè)屏幕進(jìn)入另一個(gè)屏幕時(shí),常會(huì)出現(xiàn)畫面撕裂、運(yùn)動(dòng)不平滑的現(xiàn)象??紤]到大規(guī)模場(chǎng)景動(dòng)態(tài)顯示的特殊性,需將現(xiàn)有的同步控制方法加以改進(jìn):在第一次同步時(shí)確保運(yùn)動(dòng)實(shí)體的平滑顯示,第二次同步時(shí)確保畫面的同時(shí)顯示。只有兩次同步共同起作用才能保證動(dòng)態(tài)視景畫面的顯示同步。
2.2 運(yùn)動(dòng)實(shí)體同步方法
多通道三維顯示系統(tǒng)的目的之一就是為觀察者提供更大的觀察角度,多個(gè)通道的視域范圍拼接形成更大的觀察范圍。換句話說,多通道三維顯示也可以理解為將從給定點(diǎn)觀察到的視景畫面平均地分配到多個(gè)通道上顯示,而這個(gè)給定點(diǎn)位置也可稱之為視點(diǎn)的位置,如圖3。
視點(diǎn)坐標(biāo)的改變即改變了地形觀察的范圍。對(duì)靜態(tài)場(chǎng)景來說,通過改變視點(diǎn)坐標(biāo)就可達(dá)到地形場(chǎng)景的變換,就如同使用照相機(jī)拍攝照片,場(chǎng)景未發(fā)生改變,改變了相機(jī)的方向就改變了拍攝的內(nèi)容。然而,運(yùn)動(dòng)實(shí)體每一幀的位置和姿態(tài)都可能發(fā)生改變,其參考的坐標(biāo)系為世界坐標(biāo)系和自身坐標(biāo)系。參考坐標(biāo)系的不統(tǒng)一導(dǎo)致了控制方式的不一致。因此,本文采用的方法為分開控制靜態(tài)場(chǎng)景和運(yùn)動(dòng)實(shí)體。
圖3 三通道顯示
針對(duì)控制方式的不同,改進(jìn)了傳統(tǒng)的數(shù)據(jù)包格式,將數(shù)據(jù)包分為了基本信息、固定部分和可變部分,如圖4所示。基本信息包括當(dāng)前渲染場(chǎng)景的幀數(shù)、時(shí)間戳、渲染狀態(tài)等基本信息;固定部分即視點(diǎn)同步信息,主要用來控制靜態(tài)場(chǎng)景的同步;可變部分為場(chǎng)景中運(yùn)動(dòng)實(shí)體的信息,主要用來控制每一個(gè)運(yùn)動(dòng)實(shí)體的同步,可根據(jù)場(chǎng)景中運(yùn)動(dòng)物體的個(gè)數(shù)調(diào)整其大小,同步信息中包括了運(yùn)動(dòng)物體的編號(hào)和位置姿態(tài)矩陣。主節(jié)點(diǎn)獲取這些信息并通過UDP將數(shù)據(jù)包發(fā)送到從節(jié)點(diǎn),從節(jié)點(diǎn)根據(jù)收到的信息設(shè)置自己渲染范圍內(nèi)的場(chǎng)景和運(yùn)動(dòng)實(shí)體,就完成了第一次同步。
2.3 自適應(yīng)等待時(shí)間的消息反饋同步方法
圖4 數(shù)據(jù)包格式
在多通道顯示過程中,為了避免由于單個(gè)節(jié)點(diǎn)渲染過慢或UDP丟包導(dǎo)致等待時(shí)間過長、顯示時(shí)刻不一致的情況出現(xiàn),本文提出了一種自適應(yīng)等待時(shí)間的消息反饋方法,由Master節(jié)點(diǎn)控制通道間的統(tǒng)一顯示。如果遇到Slave節(jié)點(diǎn)在一定時(shí)間內(nèi)沒有返回反饋信息的情況,則根據(jù)當(dāng)前幀率動(dòng)態(tài)地調(diào)整反饋消息的等待時(shí)間,不但可保證所有節(jié)點(diǎn)在同一時(shí)刻更新顯示內(nèi)容,而且可保持畫面刷新的幀率,不影響顯示效果。在圖形繪制時(shí),還結(jié)合了雙緩存技術(shù),讓下一幀的數(shù)據(jù)渲染在后臺(tái)進(jìn)行,前端只負(fù)責(zé)當(dāng)前幀圖形的顯示,當(dāng)一幀圖形顯示完畢,兩組緩存交換內(nèi)容。具體的流程如圖5所示。
關(guān)鍵步驟總結(jié)如下:①M(fèi)aster和Slave分別初始化并設(shè)置最長等待時(shí)間,等待時(shí)間隨當(dāng)前幀率動(dòng)態(tài)調(diào)整;②Slave收到數(shù)據(jù)則即刻向Master返回接收信息,若超過等待時(shí)間仍未收到數(shù)據(jù)則向Master返回未接收信息;③Master收到所有反饋或超過最大等待時(shí)間均即刻發(fā)送顯示命令; ④Slave接收顯示命令則即刻顯示,若未收到數(shù)據(jù)包,則用上一幀的渲染數(shù)據(jù)代替當(dāng)前幀;若未收到顯示命令,則超過等待時(shí)間后直接顯示。
圖5 顯示同步流程圖
3.1 硬件及其參數(shù)信息
該實(shí)驗(yàn)的硬件部分由3臺(tái)配置相同的圖形工作站組成,把其中一臺(tái)作為Master主控端,用來發(fā)送基本信息及顯示,另外兩臺(tái)作為Slave從屬端,用來接收數(shù)據(jù)和顯示渲染效果。硬件及其參數(shù)信息如表1所示.
表1 硬件及其參數(shù)信息
3.2 評(píng)估參數(shù)
幀速率是指計(jì)算機(jī)每秒畫面更新的次數(shù),是評(píng)估一個(gè)顯示系統(tǒng)優(yōu)劣的重要標(biāo)準(zhǔn)。其數(shù)值越大,畫面的顯示就越流暢。因此,顯示系統(tǒng)在加入了同步模塊,保證畫面同步顯示的同時(shí)還需要保證幀速率的大小。如果為了保證畫面的同步顯示而造成幀速率的大幅降低,那么同步顯示顯然是不成功的,整個(gè)顯示系統(tǒng)也是毫無意義的。
在多通道三維顯示系統(tǒng)中,還可通過節(jié)點(diǎn)間的差異公式來判斷各通道間幀速率的差異。渲染節(jié)點(diǎn)差異公式如下:
式中,參數(shù)P為渲染節(jié)點(diǎn)間的差異值;M為Master節(jié)點(diǎn)的幀率;Si為第i個(gè)Slave節(jié)點(diǎn)的幀率;n為參與計(jì)算的幀率的個(gè)數(shù)。P值越大,說明通道間幀速率的差異越大,同步效果越差;反之,則同步效果越好。
3.3 實(shí)驗(yàn)結(jié)果對(duì)比
采用表1的配置搭建了一個(gè)基于PC機(jī)群的三通道三維仿真系統(tǒng),設(shè)計(jì)了3組實(shí)驗(yàn)來驗(yàn)證算法的有效性,分別為未使用同步算法與使用同步算法的對(duì)比實(shí)驗(yàn)、動(dòng)態(tài)場(chǎng)景增多后幀率的變化實(shí)驗(yàn)和三角片元增大后幀率的變化實(shí)驗(yàn)。測(cè)試場(chǎng)景幀速,并將數(shù)值記錄下來。由圖6和圖7對(duì)比可知,未使用同步算法時(shí),三通道間的幀率并不完全一致,有一定差別,容易導(dǎo)致通道間視景畫面的不同步,特別是在運(yùn)動(dòng)物體跨越屏幕時(shí),會(huì)出現(xiàn)割裂現(xiàn)象。由圖8和圖9對(duì)比可知,當(dāng)運(yùn)動(dòng)物體增多時(shí),同步算法能達(dá)到較好的同步效果。由圖10和圖11對(duì)比可知,渲染場(chǎng)景中的三角片元增多時(shí),同步算法仍能達(dá)到較好的同步效果。
圖6 未使用同步時(shí)幀率
圖7 使用同步時(shí)幀率
圖9 使用同步時(shí)增多運(yùn)動(dòng)物體幀率
圖10 未使用同步時(shí)增大片元數(shù)幀率
圖11 使用同步時(shí)增大片元數(shù)幀率
將使用同步算法和未使用同步算法的幀率進(jìn)行比較,可以看到,無論是否使用同步算法,最大幀率和最小幀率都在30 fps以上,畫面的流暢性較好[14]。但是在未使用同步算法時(shí),渲染節(jié)點(diǎn)間的差異較大,無法實(shí)現(xiàn)多通道下的運(yùn)動(dòng)實(shí)體的平滑過渡。根據(jù)式(1)計(jì)算渲染節(jié)點(diǎn)的差異,如表2所示。在3組對(duì)比實(shí)驗(yàn)中,使用同步算法后,節(jié)點(diǎn)間的差異明顯縮小,達(dá)到了良好的同步效果。
表2 使用同步算法和未使用同步算法的數(shù)據(jù)比較/ fps
針對(duì)現(xiàn)有的多通道三維地理顯示往往側(cè)重于靜態(tài)場(chǎng)景的同步渲染,沒有過多考慮場(chǎng)景中包含運(yùn)動(dòng)實(shí)體的情況,本文提出了該系統(tǒng)下的運(yùn)動(dòng)實(shí)體同步方法和自適應(yīng)消息反饋同步方法。從理論上論證了實(shí)驗(yàn)的可行性,給出了具體的步驟,最后用實(shí)驗(yàn)驗(yàn)證了算法的有效性,提高了通道間顯示同步率。
盡管文中的方法能較好解決多通道三維動(dòng)態(tài)顯示的問題,但仍存在一些值得改進(jìn)的地方。在自適應(yīng)反饋同步方法中,當(dāng)數(shù)據(jù)包丟失,則用上一幀來顯示當(dāng)前幀的內(nèi)容,在渲染大量運(yùn)動(dòng)實(shí)體,通道間數(shù)據(jù)交換較大時(shí),可能會(huì)造成畫面不同步。在今后的研究中,可探討通過預(yù)測(cè)軌跡的方法對(duì)運(yùn)動(dòng)實(shí)體的具體位置進(jìn)行預(yù)測(cè),從而達(dá)到更好的同步。
[1] 馬天,黃建國,胡方. 基于PC機(jī)群的多通道視景仿真系統(tǒng)的研究[J].系統(tǒng)仿真學(xué)報(bào),2009(19):6 053-6 056
[2] Nam S, Deshpande S, Vishwanath V, et al. Multi-application Inter-tile Synchronization on Ultra-high-resolution Display Walls[C].Proceedings of the First Annual ACM SIGMM Conference on Multimedia Systems, 2010
[3] 王學(xué)慧,張磊.并行與分布式仿真時(shí)間推進(jìn)同步機(jī)制綜述[J].計(jì)算機(jī)仿真,2010(2):126-129,281
[4] Hiller J B, Hartrum T C. Conservative Synchronization in Objectoriented Paralleled Battlefield Discrete Event Simulation[C]. Proc.11th Workshop on Parallel and Distributed Simulation, 1997
[5] Som T K, Sargent R G. A Probabilistic Event Scheduling Policy for Optimistic Parallel Discrete Event Simulation[J]. IEEE Computer Society, 1998, 28(1): 56-63
[6] Steinman J S. Breathing Time Warp[C].ACM SIGSIM Simulation Digest, 1993
[7] Ferscha A. Adaptive Time Warp Simulation of Timed Petri Nets[J]. IEEE Transactions on, 1999, 25(2): 237-257
[8] 王海峰,孫益輝,陳福民.分布式實(shí)時(shí)渲染中幀同步的實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2007(10):1 073-1 076
[9] 呂品,張金芳. 基于PC機(jī)群的多通道視景仿真技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2006(26):38-40,70
[10] 呂鵬,龍飛隆.基于虛擬現(xiàn)實(shí)的船舶操縱系統(tǒng)視景多通道同步技術(shù)[J].艦船電子工程,2007(3):129-132,223
[11] 肖朝,楊紅雨. 多通道投影顯示系統(tǒng)同步算法研究[J].四川大學(xué)學(xué)報(bào):工程科學(xué)版,2012(4):96-102
[12] Soares L P, Raffin B, Jorge J A. PC Clusters for Virtual Reality [J]. IJVR, 2008, 7(1): 67-80
[13] 馬繼峰,彭曉源,馮勤,等. 虛擬作戰(zhàn)系統(tǒng)中場(chǎng)景生成與顯示關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2004(8):1 735-1 737,1 741
[14] 黃昆侖,白蔚.視頻幀率上轉(zhuǎn)換技術(shù)綜述[J].數(shù)字通信世界,2011(5):82-84
P208
B
1672-4623(2016)03-0048-04
10.3969/j.issn.1672-4623.2016.03.016
羅敏,碩士,主要從事地理信息系統(tǒng)研究。
2015-03-11。
項(xiàng)目來源:國家高技術(shù)研究發(fā)展計(jì)劃資助項(xiàng)目(2013AA7026059)。