專利名稱:一種預投影光線投射體繪制的并行處理方法
技術領域:
本發(fā)明涉及一種科學計算可視化處理技術,尤其涉及的是一種體繪制技 術中圖像空間預投影的并行處理方法。
背景技術:
現(xiàn)有技術中,以體繪制技術為代表的科學可視化技術可把抽象的數據變 換成易于被人接受和理解的直觀形式一一圖形,為理解、發(fā)現(xiàn)科學計算過 程中的各種現(xiàn)象、規(guī)律提供有力的工具。體繪制技術能產生三維數據場的整體圖像,能包含數據場的大量細節(jié), 繪制高質量的圖像,但它涉及的數據量較多,計算量較大,因而繪制時間 較長,且難以利用傳統(tǒng)的圖形硬件實現(xiàn)繪制。雖然研究工作者在串行體繪 制算法的優(yōu)化方面做了很多工作,但是隨著應用領域的發(fā)展,數據規(guī)模急 劇擴大,繪制精度急劇增加,僅僅依靠對串行算法本身的優(yōu)化已經無法滿 足對繪制速度的需求??梢暬?Visualization)把抽象的數據變換成易于被人接受和理解的直觀 形式——圖形。根據側重面的不同,可視化可以分成三個分支科學可視 化(Scientific Visualization)、凄t據可i見化(Data Visualization)和信息可一見化 (Information Visualization)??茖W可視化(Scientific Visualization),又稱科學 計算可視化(Visualization in Scientific Computing),指運用計算機圖形學和圖 象處理技術,將科學計算過程中產生的計算結果轉換為圖形及圖像在屏幕 上顯示出來并進行交互處理的理論、方法和技術。科學計算可視化是20世紀80年代后期提出并發(fā)展起來的一個新的研究領域,是計算機圖形學中的一個重要研究方向。它將數據挖掘、圖形生成 技術、圖象處理技術和人機交互技術結合在一起,其主要功能是分析和理 解輸入到計算機中的多維數據,并將中間過程或分析結果用圖形或圖象形 象、直觀地顯示出來,供科研工作者和相關人員觀察和使用??茖W計算可視化的應用領域十分廣泛,幾乎涉及一切自然學科和工程領 域,其主要應用領域有醫(yī)學、分子模型構造、工業(yè)無損探傷、考古學、地 質勘探、氣象學、計算流體力學和有限元分析等。此外,科學計算可視化還可應用于空間探測、天體物理、數學領域等。以醫(yī)學領域的數字化虛擬人為例?;诙S的計算機斷層掃描(CT)數據、 核磁共振(MRI)數據以及真實人體的切片數據等三維規(guī)則數據場,利用人體 結構數字化和科學可視化技術可以重建出一個三維的數字化虛擬人,也就 是將人體結構數字化。通過計算機技術和圖像處理技術,在電腦屏幕上顯 示一模擬人體,再進一步將人體功能性的研究成果加以數字化,由信息科 學家將其轉變?yōu)殡娔X的語言符號,賦加到這個人體形態(tài)框架上;經過與虛 擬現(xiàn)實技術的交叉融合,通過操作者的調控,這個"虛擬人"將能模仿真 人做出各種各樣的反應。數字化虛擬人將人體結構數字化與可視化,建立起能夠用計算機處理的 數學模型,使計算機的定量分析和精確模擬成為可能。隨著信息獲取和處 理技術的進步、數據采集精度的提高,虛擬人將在越來越廣泛的領域內更 加精確地模擬人體的功能和行為,為醫(yī)學、國防、汽車等多學科研究提供 應用基礎??茖W計算可視化可以大大加速數據的處理速度,使每時每刻都在產生的 龐大數據得到有效的處理、利用;它可以通過圖片、圖像表達蘊含在科學 計算數據中的信息,為理解、發(fā)現(xiàn)科學計算過程中的各種現(xiàn)象、規(guī)律提供 有力工具??傊茖W計算可視化將極大地提高科學計算的速度和質量, 從而使科學研究工作的面貌發(fā)生根本性的變化,最終給人們的社會生活帶來巨大的便利。以醫(yī)療領域為例。在以往的影像醫(yī)療診斷中,主要是通過觀察一組CT、 MRI的三維切片圖像發(fā)現(xiàn)病變體,這主要依賴于醫(yī)務工作者豐富的讀片經 驗,對圖像進行定性分析。利用科學可視化技術可對二維切片圖像進行二 維或三維分析及處理,如對人體器官、軟組織和病變體的分割提取、三維 重建和二維顯示,可以輔助醫(yī)務工作者對病變體及其它感興趣的區(qū)域進行 定性直至準確的定量分析,從而可以大大提高醫(yī)療診斷的準確性和正確性, 最終帶來巨大的經濟效益和社會效益。科學計算可視化的核心是三維數據場的可視化,對于三維體數據來說,有兩類不同的可視化算法面繪制和體繪制。面繪制技術是指首先在三維 數據場中構造出中間幾何圖元,然后再由傳統(tǒng)的計算機圖形學技術實現(xiàn)畫 面的繪制。面繪制方法有多種算法,各種算法的不同點在于所采用的近似 表面幾何單元不同或幾何單元尺度選擇不同。典型算法有W. E.Lorenson 和H. E. Cline[LORE87]提出的MC方法(Marching Cubes)、 A. Doi[DOI91]提 出的MT方法(Marching Tetrahedral)、 H. E. Cline和W. E. Lorenson[CLIN98] 提出的剖分立方體法(Dividing Cubes)等。面繪制技術可以產生比較清晰的 等值面圖像,而且可以利用現(xiàn)有的圖形硬件實現(xiàn)繪制功能,使圖像生成及 變換的速度加快,適用于繪制表面特征分明的組織和器官。但是面繪制技 術對數據分割要求高,且物體內部信息無法保留,不能反映整個原始數據 場的全貌和細節(jié)。體繪制技術并不構造中間幾何圖元,而是直接由三維數據場產生屏幕上 的二維圖像,也稱為直接體繪制。體繪制技術是近年來得以迅速發(fā)展的一 種三維數據場可視化方法。相對于足跡算法、體元投影算法等其他體繪制 算法而言,光線投射體繪制算法能繪制出具有更高質量、體現(xiàn)更多內部細 節(jié)的圖像,是最基本、最常用的體繪制算法。由于光線投射體繪制算法需要對屏幕上的每一個像素進行光線投射和顏色計算,而且,當觀察方向發(fā)生變化時,數據場中的釆樣點之間的前后 關系也發(fā)生變化,這樣就要對所有像素進行重新繪制,因此計算量極為龐 大且造成了大量的不規(guī)則訪問,最終導致光線投射體繪制算法的繪制速度 達不到應用的要求。為了解決計算速度的問題,人們提出了各種的改進方法或加速算法,如 可以略過三維圖像空區(qū)域的空間跳躍算法、累積透明度接近于數值時終止光線投射的射線提前終止法等。基于集群的光線投射并行繪制算法也從90 年代開始發(fā)展。下面將根據時間次序,對光線投射體繪制中的改進和加速 技術以及基于集群的光線投射體并行體繪制算法進行介紹。 1、光線投射體繪制加速技術M. Levoy第一個提出了光線投射(Levoy稱其為"光線跟蹤,,)體繪制 算法。首先,對體數據進行適當的預處理,例如去噪、重采樣等;然后, 利用查找表來確定體素的不透明度值,同時利用Phong光照模型來確定體 素的顏色值;接著,沿著投射光線均勻采樣、對采樣點三次線性插值;最 后,用從后向前的方法合成顏色值和不透明度值,形成最后的圖像。為了 提高圖像的質量,Levoy采用了過采樣的方法一一在原始數據點之間插入更 多的中間點。這種方法能夠減少走樣,提高圖像質量,但是會增加計算的 開銷。M. Levoy提出由前向后的圖像合成方法。在這種新方法中,不透明值 必然逐步增大。當不透明值趨近于1時(例如Levoy選擇不透明值0.95作 為光線終止的條件),說明該像素點的圖像已經接近于完全不透明,后面的 體元不會再對該像素點的圖像有所貢獻,因而可以不再計算了。因此,由 前向后的圖象合成方法可以省去部分顏色計算,使速度加快。M. Levoy采用八叉樹方法組織體數據中的物體體元。體數據被遞歸均 勻子分并組成一個層次八叉樹結構。在采用光線投射進行體繪制時,通過 遍歷八叉樹,光線可跳過包含當前采樣點的最大空區(qū)域Tang對光線跟蹤體繪制算法進行了改進。先對體數據場根據投射光線 進行重采樣,然后再進行數據值分類、顏色賦值、不透明度賦值及明暗計 算等步驟。這種改進后的算法構造出的圖像質量有所提高;同時,由于不 需要對全部數據點賦顏色值和不透明度值,可以減少計算量、節(jié)省存儲空 間。PARC算法則利用物體體元的包圍盒來除去體數據中物體體元周圍的空 體元。該方法僅對由空區(qū)域包圍的物體體元有效,對包含多個物體體元區(qū) 域的體數據或物體體元區(qū)域中含有空體元的體數據均無法作有效處理。Lee等人提出了 一種用于加速體繪制的自適應子分算法,該算法將體數 據均勻分割成一定大小的子數據塊,每個子數據塊包含若干體元。若子數 據塊中的體元為空,則該塊被標識為空。在其后的合并過程中,按一定的 順序遍歷子數據塊,合并其中的空子數據塊,并且生成盡可能大的空塊。 在體繪制過程中,這種數據組織使得空塊得以有效地跳過,從而加速了體 繪制。Wald等人提出了最小值/最大值kd-tree方法。雖然每個kd-tree節(jié)點都 需要存儲最小值和最大值,增加了一倍的數據量;但是,由于能夠通過比 較各個節(jié)點最小值/最大值來快速地滑過空白區(qū)域、整合同源區(qū)域,達到比 較理想的幀率。Knittel第一個利用單CPU系統(tǒng)用軟件實現(xiàn)交互式光線投射體繪制算法。 當然,Knittel利用的ULTRAVIS系統(tǒng)雖然只有一個CPU,但是有像MMX 等和處理器無關的擴展;同時,采用利用了手工優(yōu)化的匯編語言和SIMD 指令集進行編程。2、基于集群的光線投射體并行體繪制算法J. Nieh和M. Levoy提出了第一個并行光線投射體繪制算法。該并行算 法在MIMD模式的多處理器環(huán)境DASH上實現(xiàn)(此環(huán)境提供了 一個共享存 儲區(qū),同時各子處理器也有本地存儲區(qū)),最大加速比能達到40 (48臺處理器),最大的幀頻為3Hz。該算法的基本思想是在開始繪制計算之前, 首先根據處理器數目進行一次粗略的任務分配,即將圖像空間劃分為大小 相等或接近的子區(qū)域,靜態(tài)地指定給各處理器;每個子處理器進而將對應 的子區(qū)域細分為適當大小的子塊,于是每個子區(qū)域中的所有子塊分別排成 一個隊列。每個子區(qū)域的大小非常接近,所以經過第一步粗略的任務劃分, 整個系統(tǒng)的負載平衡已經有了一定的保證。又由于實際的任務調度是在子 塊粒度下進行的,所以可以進一步改善負載平衡狀況。具體的方法是, 一旦某個子處理器對應的任務隊列為空,它可以直接接 管其他處理器尚未完成的部分子任務。實際上,這種接管過程中被接管的 處理器不必知曉和參與("任務竊取"算法)。在光線投射體繪制算法中, 所有計算發(fā)生的物理空間的位置難以預先確定,因此數據在空間上的相關 性極強。當某個子處理器在計算過程中需要訪問的數據不在本地存儲區(qū), 就只能通過數據通信來獲得。Meh和Levoy在共享存儲區(qū)中保留一份原始 數據場,供所有子處理器讀??;在各個處理器的本地存儲區(qū)之間,數據按 照交叉存儲的方式分布,按照頁面交換的方式進行通信。C. Montani等人提出了 一種混合式光線投射并行體繪制算法,該算是將 圖像空間分割成矩形的條狀子區(qū)域,各部分大小相等或接近;相應地,對 處理器節(jié)點進行分組,每組擁有相同數目的節(jié)點。繪制計算的任務劃分按 照條狀子區(qū)域為單位進行,即一個子區(qū)域對應于一個子任務。在通過令牌 傳遞方式來估計出各分組的相對計算能力之后,可以靜態(tài)的方式在各組之 間進行子任務分配;當然,這樣就要求每個組內部都擁有一套完整的數據 場拷貝。通過對計算任務和處理節(jié)點的合理劃分和組織,這類算法能夠有 效降低數據通信量;因為對各分組計算能力做了預先估計,雖然任務劃分 方式是靜態(tài)的,但是仍然可以得到滿意的負載平衡。但其缺點在于數據量 冗余量過大,實際上整個系統(tǒng)的存儲消耗不僅取決于原始數據的規(guī)模,而 且與組的數目成正比。K. Ma等人提出了另外一個光線投射并行體繪制算法,由Kwan-Liu、 K,Ma等人分別在CM-5以及工作站機群環(huán)境中實現(xiàn)。和所有的其他繪制算 法一樣,本算法包括兩個主要的計算過程對體數據的重采樣和圖像合成。 整個算法按照分治策略進行,重采樣過程經過遞歸劃分為最終由各處理器 并行完成,而圖4象合成則通過回溯過程進行。任繼成等人提出了非規(guī)則數據場并行體繪制算法(實質為"光線投射面 繪制算法"),該算法采用靜態(tài)數據分布,避免了繪制過程中的重分布與計 算節(jié)點間的通信,并提出了優(yōu)化的圖像合成方法,使繪制與合成并行執(zhí)行, 避免了網絡通信的阻塞,提高了算法的并行性。靜態(tài)與動態(tài)相結合的負載 平衡策略,進一步提高了算法的效率。鄧俊輝等人提出了 一種基于并行虛擬機結構的光線投射并行體繪制算 法,該算法以二維切片為單位來劃分和組織體數據,既降低了通信代價, 也保證了各子任務的數據局部性。在任務分配時,維護并使用性能指數數 據庫,自適應式地確定各個子任務,較好地實現(xiàn)了負載平衡;同時使用一 種異步二分方法,減少了所有局部圖像合并的時間。針對可視化算法在虛 擬機環(huán)境中的并行化實現(xiàn),自行設計并實現(xiàn)了一個基于TCP/IP和Socket 標準開發(fā)平臺PIPVR。易法令等人提出了一種基于BSP樹的光線跟蹤并行面繪制算法。該算 法通過分析視點與場景空間的關系,進行像素空間的劃分,避免并行處理 任務分配的盲目性。上述現(xiàn)有技術的各處理方法中,通常需要對數據進行重新組織,系統(tǒng)開 銷很大,而且數據的處理繁瑣復雜,處理速度比較慢。因此,現(xiàn)有技術還 有待于改進和發(fā)展。發(fā)明內容本發(fā)明的目的在于提供一種預投影光線投射體繪制的并行處理方法,實現(xiàn)在體繪制數據處理過程中數據處理的簡化和快捷。本發(fā)明的技術方案包括一種預投影光線投射體繪制的并行處理方法,通過至少一通用計算機, 在體繪制的數據處理過程中包括以下步驟A、 計算三維體模型的包圍盒;B、 將該包圍盒向屏幕空間進行投影;C、 存儲投影區(qū)域的相應坐標;D、 進行體繪制數據的并行處理。所述的并行處理方法,其中,所述步驟D還包括應用到一并行處理系 統(tǒng)中時的處理步驟如下Dl、由主節(jié)點向各計算節(jié)點分配數據處理任務;D2、所有計算節(jié)點在計算完一個任務塊后,即立即向主節(jié)點發(fā)送中間 結果數據,并且同時開始下一個任務塊的計算。所述的并行處理方法,其中,所述步驟D1中,所述主節(jié)點被分配較少 的計算任務。所述的并行處理方法,其中,所述步驟D1還包括Dll、記M為計算節(jié)點上劃分的任務塊個數,N為計算節(jié)點的個數(M >=2; N >= 2),預先估計計算量為CPU啟動一個通信傳輸的時間, T。。mra,為主節(jié)點收集其它節(jié)點的結果數據所需的時間,則M = VT~/T-,;D12、主節(jié)點在計算之后收集其他計算節(jié)點的結果數據。本發(fā)明所提供的一種預投影光線投射體繪制的并行處理方法,由于采用 了預投影的處理方式,減少了數據的處理量,在并行處理時采用了計算與 通信重疊的延遲隱藏技術,提高了數據處理速度。
10意圖;圖2a-圖2d分別示出了本發(fā)明方法實施例之一Photo—Head—1—260第50、100、 150和200張切片的原始圖;圖2e示出了 Photo—Head—1_260的效果參考圖;圖2f示出了 Photo_Head—1—260整體繪制效果圖;圖2g和圖2h分別示出的是對骨骼、肌肉進行繪制的效果圖;圖2i和圖2j分別示出的是骨骼和肌肉進行組合繪制時的兩種效果圖;圖3a和圖3b分別示意了本發(fā)明方法另 一 實施例CT_BostonTeapot的參照效果對比圖;圖3c、圖3d、圖3e和圖3f分別展現(xiàn)了利用不同顏色映射且從不同角度對CT_BostonTeapot繪制的效果圖;圖4a所示為本發(fā)明方法"預投影"導致的性能對比示意圖; 圖4b為現(xiàn)有技術未使用"預投影"技術時的負載平衡示意圖; 圖4c所示為本發(fā)明方法采用"預投影"技術時的負載平衡示意圖; 圖5a為本發(fā)明方法中通信比為0.001時任務塊個數對總體運行時間的影響圖;圖5b為本發(fā)明方法中通信比為0.0001時任務塊個數對總體運行時間的 影響圖;圖5c為本發(fā)明并行體繪制處理方法的加速比示意圖。
具體實施方式
以下結合附圖,將對本發(fā)明的各較佳實施例進行更為詳細的說明。 本發(fā)明首次提出一種與"裁剪,,方法思想類似的"預投影,,加速技術, 即在一通用計算機或由多個通用計算機組成的并行處理系統(tǒng)中,通過預先 把一個包含所有物體模型的包圍盒按照預定角度向屏幕圖像空間投影,屏 幕圖像空間上投影以外的部分則不需要進行光線的投射處理,直接呈現(xiàn)出 背景的顏色,如圖1所示,這樣就對圖像數據進行了分割,減少了數據處理的量,提高了數據處理的速度。本發(fā)明預投影光線投射體繪制的并行處理方法,在醫(yī)療檢測、工業(yè)探傷 等特定應用中,由于物體空間中的有效物體模型個數較少、不需要關心物 體空間的背景差異,大部分從屏幕圖像空間投射出的光線沒有和有效的物 體模型相交,而直接呈現(xiàn)出背景的顏色,本發(fā)明方法中的"預投影,,技術 能有效地減少無用的光線投射計算,提高體繪制的處理速度。本發(fā)明的處理過程包括以下步驟,通過至少一通用計算機在體繪制處理過程中1、 計算三維體模型的包圍盒;2、 將包圍盒向視窗(屏幕空間)進行投影;3、 存儲投影區(qū)域的相應坐標;4、 進行體繪制數據的處理。本發(fā)明所述體繪制數據的處理過程是在一機群的分布式和并行處理系 統(tǒng)中實現(xiàn),此實現(xiàn)方式為現(xiàn)有技術所熟知,因此在此不再贅述。本發(fā)明方法中"預投影"技術可以把是否受體數據影響的圖像區(qū)域進行 區(qū)分開來,有利于并行算法中任務分配的負載平衡。在以往的光線投射并 行體繪制算法中往往是直接對屏幕圖像空間進行任務分割,動態(tài)或靜態(tài)地 分配給執(zhí)行單元,而由于無效的投影區(qū)域的存在(即不受體數據影響的投 影區(qū)域),任務單元的執(zhí)行時間差異較大,造成了各個執(zhí)行單元的負載非 常不平衡?;?預投影"的任務劃分能夠剔除不受體數據影響的投影區(qū) 域,而對有效投影區(qū)域劃分的任務單元之間差異性較小,從而有利于負載 平衡。因而本發(fā)明方法基于"預投影"技術對屏幕圖像空間中的投影區(qū)域 進行了任務的劃分和分配。在以往的光線投射并行體繪制算法中,主要有兩種任務分配策略均分 策略和主從策略;同時,這兩種任務分配策略分別決定了相應的圖像合成在均分策略中,所有計算進程或節(jié)點有著等量的計算任務,在它們都完 成了計算之后,主進程或節(jié)點才開始收集結果數據。在結果收集的過程中, 其他節(jié)點不僅可能被閑置,也可能會因主節(jié)點資源有限而竟爭、等待。而在主從策略中,進程或節(jié)點按功能被劃分為計算節(jié)點和結果收集節(jié)點。主節(jié)點專門負責結果數據的收集,而不分配計算任務;而從節(jié)點專門 進行相關的任務計算,并定時向主節(jié)點發(fā)送計算結果。在這種方法中,主 節(jié)點的資源也將大大浪費。為了充分利用所有節(jié)點的資源,本發(fā)明方法采用了基于計算和通信重疊 的靜態(tài)任務分配算法。在此算法中,所有計算節(jié)點不再需要等待所有任務 計算完成才向主節(jié)點傳輸結果數據,而是在計算完一個任務塊以后就立即 向主節(jié)點發(fā)送中間結果數據,并且同時開始下一個任務塊的計算;主節(jié)點 開始被分配較少的計算任務以充分利用計算資源,同時這使得其他節(jié)點在 最后隱式同步等待的時間更短。本發(fā)明方法的基于計算和通信重疊的靜態(tài)任務分配算法,需要預先估計 在光線投射體繪制中的計算量。不妨設總的計算量(這里等同于計算時間) 記為,則c' = ;r—'—"。"+w—P。"。其中,圖像繪制部分為可并行部分,所占計算量"i己為r"。'。""-"?!?; 不可并4亍部分記為c',-,。以往的光線投射并行體繪制算法中,在計算之后和通信之前,需要進行 同步。不妨假設這些并行算法獲得了完全的負載平衡,每個處理機的計算 量為t—leumn/n (處理機個數記為N, n22)。主節(jié)點在計算之后收集其他節(jié)點的結果數據,所需的時間為T"自,。則以往的光線才殳射并行體繪制 算法執(zhí)行的時間Tp^為力口速比為Speedup — Tserial/Tpara||e| — [Tscrjal_pan +^"parallel_part I^r^sefiaJjiail +TparalleLpar/ N+Tc。誦^時在本發(fā)明方法所提出的基于計算和通信重疊的靜態(tài)任務分配算法中,計算節(jié)點不再需要等待所有任務計算完成才向主節(jié)點傳輸結果數據,而是在 計算完 一個任務塊以后就立即向主節(jié)點發(fā)送中間結果數據,這使得其他節(jié) 點在最后隱式同步等待的時間更短。同時,主節(jié)點被分配較少的計算任務, 充分地利用主節(jié)點的資源。為了簡化分析,假設系統(tǒng)只有一個節(jié)點收集結果數據,即主節(jié)點。繼承上面的記號,并且記M為計算節(jié)點上劃分的任務塊個數,N為計 算節(jié)點的個數(M>=2; N>=2), T,W為第i個節(jié)點的計算量(計算時間)。 為了讓各個節(jié)點之間的任務盡量平衡,建立如下方程Tc。mp(l) L Tc。mp (N 1) Tc。mp (0)+Tc。mm』加, Tcomp(0) + L + Tcomp(N-l) _ Tparailelj)art求解方程可得Tc,(l) - L _ Tcomp(N-l) - (Tc。咖』w+T—,ei』an)/N;由于每個計算節(jié)點分M次進行結果數據傳輸,最后結果數據傳輸的時間為T。。mmj)arl/M 。若記Ts'anjJart為CPU啟動一個通信傳輸的時間,則每個計算節(jié)點將增加大約M w^的額外開銷(由于CPU啟動通信的時間比數據傳輸時間小很多,在上面的分析中忽略不記)。因此,本發(fā)明方法的光線投射并行體繪制算法執(zhí)行的時間Tp』'為TpanJlei' 1^!," +M 丁s加』加十(Tc。j^』加+丁口咖||61^加XN+Tc。jjjj^』加/M由于M"^,相對其他時間要小很多,可以簡化為 力口速比為Speedup _ Ts^/T—u — [Ts^^p^+T—^,]/[T咖",+(T。腿,+T,^,)/N+Twj^,/M]則本發(fā)明方法的光線投射并行體繪制算法與以往的并行算法的加速比之比為Speedup'/Speedup = Tparallel/Tparallel.[Tserial_part +TparaHel_part ^^"+Tcomm_part ]z[Tseraiijjajt十(Tc。mm』art +Tparajie|j)art V^+Tj^^^j^/^^] —[丁seriaJj)art "l"fTparallel_part ^^+1^^^^^ ]/[Tseraj|jjart+rrpara]leljjart/N+rTcommjjart * (1/M+l/N)]由于M和N均為大于2的正整數,貝寸1 ^ (1/M + 1/N)。故Speed叩'/Speed叩21 , 即本文的光線投射并行體繪制算法比以往的并行體繪制算法有更好的理論 力口i^t匕。下面,將對本發(fā)明方法中負載平衡模型最重要的參數一一計算節(jié)點分 配任務塊個數M——進行詳細說明。為了簡化說明,假設系統(tǒng)只有一個節(jié) 點收集結果數據,即主節(jié)點;同時,認為節(jié)點個數N是固定的。如要取最小值,僅當F(M) = M^a^at+T^』加/M取最小值。即,僅當m = Vi;???/Ts加聲時,f(m)取最小但。在預投影技術和上述任務分配算法的基礎上,以下就本發(fā)明方法在曙明,見以下程序代碼的示例Read—And—Perprocess_Volume—Data (); If(vIDOfProc==i)Allocate—Tasks—To—Proci(); For(j = 0; j < vNumOfTasks; j++)Computing—Color_of—Pixels 0; Save—Color—of—Pixels—In—Proc (); Gather—Result—To—Proc0 ();Display—Result—In一Proc0 ();該并行處理過程主要針對圖像繪制這個性能瓶頸進行了并行處理設計,利用對屏幕圖像空間分塊的粗粒度并行減小通信開銷。同時,對主節(jié)點和 一般計算節(jié)點進行區(qū)分,在主節(jié)點中考慮通信的影響,來實現(xiàn)總體的負載 平衡。為了減少本發(fā)明方法并行化帶來的額外開銷影響,讓計算和通信重 疊進行,掩蓋了大部分的通信開銷和同步延遲問題。本方法方法提出的光線投射體繪制并行處理過程可在曙光4000A服務 器共享平臺上實現(xiàn),曙光4000A服務器共享平臺共有20個計算節(jié)點,每個 計算節(jié)點配有兩個AMDOpteron(tm)的CPU,主頻為1.6GHz,內存為4GB, 本地>磁盤1T,網紹 哽盤4T通過千兆網通信,所有計算節(jié)點通過一個百兆 網、 一個千兆網和一個InfiniBand網絡相連,計算節(jié)點之間用MPI進行通 信。測試數據所采用的數據為美國數字人骨骼的CT軸向采樣規(guī)則數據場, 數據大小為587 x 1878 x 341Bytes。為了驗證本發(fā)明方法的算法正確性,以下給出光線投射體繪制算法在一 個PC和SMP平臺上的繪制效果圖。本發(fā)明該實施例的實驗平臺主要兩個PC: CPU為Intel Pentium 4 2.4 GHz,內存512MB。SMP:兩個AMD Opteron 1.6GHz的處理器,內存IGB。該實施例中用于實驗的體數據主要有CT_BostonTeapot: 256x256x178, ll.lMB,內容為茶壺的CT數據。 Photo—Head—1—260: 587x341x260, 148MB,內容為頭部的彩色切片數據。CT—Foot: 256x256x256, 16MB,內容為足部骨骼的CT數據。 Photo—Head—1—260是由260張頭部的彩色切片組成的raw格式的體數 據,如圖2a、圖2b、圖2c和圖2d所示分別給出了第50、 100、 150和200 張切片的原始圖。其中,不同顏色分別代表了頭顱、肌肉以及人工對原始 噪聲數據的處理。圖2e給出了 Photo_Head—1—260效果參考圖,該圖由 3DMed軟件繪制(3D Med軟件是中國科學院自動化研究所開發(fā)的基于MITK的體繪制軟件)。圖2f給出了 Photo—Head—1_260整體繪制效果圖, 圖2g和圖2h分別表示對骨骼、肌肉進行繪制的效果圖。圖2i和圖2j分別 為骨骼和肌肉進行組合繪制時的兩種效果圖(顏色映射或傳遞函數有所不 同)。
圖3a和圖3b給出了 CT—BostonTeapot的參照效果圖。圖3a由 www.volren.org提供,圖3b由3DMed繪制(3D Med是中國科學院自動化 研究所開發(fā)的基于MITK的體繪制軟件)。圖3c、圖3d、圖3e和圖3f分別 展現(xiàn)了利用不同顏色映射且從不同角度對CT—BostonTeapot繪制的效果圖。
如圖2a給出了在曙光4000A服務器共享平臺上,"預投影"技術對美國 數字人骨骼的CT數據繪制性能的影響,其中視窗大小為2048x2048,物體 空間采樣率為10,圖像空間采樣率為2。如圖2b和圖2c所示分別給出了 是否使用"預投影"技術對負載平衡的影響。
如圖4a所示,本發(fā)明方法采用預投影技術有利于并行算法的整體性能。 "預投影"把不受體數據影響的屏幕圖像區(qū)域分離開來,只對受體數據影 響的投影區(qū)域進行繪制計算,減少了大量無效計算,有利于光線投射并行 體繪制算法的整體性能。
如圖4b和圖4c所示,本發(fā)明方法采用"預投影"技術有利于光線投射 并行體繪制算法中任務分配的負載平衡,基于"預投影,,的任務劃分把是 否受體數據影響的屏幕圖像區(qū)域區(qū)分開來,只對受體數據影響的投影區(qū)域 進行任務劃分,這使得任務單元之間差異性較小,從而有利于負載平衡。
本發(fā)明方法一較佳實施例中,利用了千兆網進行通信,CPU啟動一個 通信傳輸的時間Ts,art,=46M,;圖像繪制部分等可并行部分,所占計算時間 記為— = i2s;算法并行化帶來的通信開銷為T_, = 80(Kto。
如圖5a和圖5b分別給出了本發(fā)明方法的通信比UT。。,為0.001和 0.0001時,處理器個數為4, 8, 16時,任務塊個數M對總體運行時間T 的影響示意圖。從圖中可以看出,當每個計算節(jié)點的任務塊M為8和16時總體運行時間最少,即分別取得了最好的性能。由前面的分析知 M』-V^^:-^^^^13。由此可以看出,實驗結果和本發(fā)明方法的理 論分析是一致的。
加速比,由此可以看出,在處理機數目越大時,本發(fā)明的并行體繪制處理 過程的具有更好的加速比;隨著處理機數目的增加,本發(fā)明方法的并行體 繪制算法的加速比增長更快,可擴展性更好。由于本發(fā)明的并行處理方法 在實現(xiàn)時,引入了更多的計算和判斷等過程,從而增加了一些額外開銷, 這些開銷會導致在處理機個數較小時性能不佳;但在具有十個以上處理機 節(jié)點時,本發(fā)明并行處理方法所帶來的性能增加將抵消額外的平衡負載開 銷,因此具有更好的加速比,同時具有更好的可擴展性。
綜上,本發(fā)明方法針對機群體系結構的特點,提出了一種光線投射并行 體繪制處理方法,該處理方法首先把體數據"預投影"到屏幕圖像空間, 然后對投影區(qū)域按連續(xù)行進行任務劃分,根據基于計算和通信重疊的靜態(tài) 任務分配策略把不同計算量的任務分配給相應計算節(jié)點進行像素顏色值的 計算,每次繪制完一定的任務就開始收集中間圖像結果,讓顏色計算和結 果收集并行起來,很好地掩蓋了通信延遲,同時較好地實現(xiàn)了負載平衡。 該處理方法在曙光4000A服務器共享平臺上實現(xiàn),獲得了較好的加速比, 具有較好的可擴展性。
本發(fā)明方法中所有計算節(jié)點不再需要等待所有任務計算完成才向主節(jié) 點傳輸結果數據,而是在計算完一個任務塊以后就立即向主節(jié)點發(fā)送中間 結果數據,并且同時開始下一個任務塊的計算;主節(jié)點開始被分配較少的 任務塊,本發(fā)明方法并給出了每個計算節(jié)點分配多少任務塊的最佳估計, 大大減少了數據的處理量,提高了數據處理速度。
但應當理解的是,上述針對本發(fā)明較佳實施例的表述較為具體,并不能 因此而認為是對本發(fā)明專利保護范圍的限制,本發(fā)明的專利保護范圍應以所附權利要求為準:
權利要求
1、一種預投影光線投射體繪制的并行處理方法,通過至少一通用計算機,在體繪制的數據處理過程中包括以下步驟A、計算三維體模型的包圍盒;B、將該包圍盒向屏幕空間進行投影;C、存儲投影區(qū)域的相應坐標;D、進行體繪制數據的并行處理。
2、 根據權利要求1所述的并行處理方法,其特征在于,所述步驟D還 包括應用到 一并行處理系統(tǒng)中時的處理步驟如下Dl、由主節(jié)點向各計算節(jié)點分配數據處理任務; D2、所有計算節(jié)點在計算完一個任務塊后,即立即向主節(jié)點發(fā)送中間 結果數據,并且同時開始下一個任務塊的計算。
3、 根據權利要求2所述的并行處理方法,其特征在于,所述步驟D1 中,所述主節(jié)點被分配較少的計算任務。
4、 根據權利要求2所述的并行處理方法,其特征在于,所述步驟Dl 還包括Dll、預先估計計算量記T^,為CPU啟動一個通信傳輸的時間,主 節(jié)點在計算之后收集其他節(jié)點的結果數據,所需的時間為7。~;記M為計算節(jié)點上劃分的任務塊個數,則M = VT —/T"—;D12、主節(jié)點在計算之后收集其他計算節(jié)點的結果數據。
全文摘要
本發(fā)明公開了一種預投影光線投射體繪制的并行處理方法,通過一通用計算機,在體繪制的數據處理過程中包括以下步驟計算三維體模型的包圍盒;將該包圍盒向屏幕空間進行投影;存儲投影區(qū)域的相應坐標;進行體繪制數據的并行處理。本發(fā)明方法由于采用了預投影的處理方式,所有計算節(jié)點不再需要等待所有任務計算完成才向主節(jié)點傳輸結果數據,而是在計算完一個任務塊以后就立即向主節(jié)點發(fā)送中間結果數據,并且同時開始下一個任務塊的計算;主節(jié)點開始被分配較少的任務塊,本發(fā)明方法并給出了每個計算節(jié)點分配多少任務塊的最佳估計,大大減少了數據的處理量,提高了數據處理速度。
文檔編號G06T1/20GK101324962SQ200810142640
公開日2008年12月17日 申請日期2008年7月21日 優(yōu)先權日2008年7月21日
發(fā)明者馮圣中, 劉思源, 姜志陽, 文高進, 樊建平, 倩 鄭, 波 黃 申請人:深圳先進技術研究院