文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.02.012
中文引用格式: 牛京玉,胡堅,孟凡榮,等. 基于多核DSP的激光點云解算算法并行設計[J].電子技術應用,2017,43(2):54-57.
英文引用格式: Niu Jingyu,Hu Jian,Meng Fanrong,et al. The parallel processing design of LiDAR point cloud calculation based on multicore DSP[J].Application of Electronic Technique,2017,43(2):54-57.
0 引言
近年來,將遙感技術與自動化控制技術、通信技術、傳感器檢測技術相結合,快速獲取并實時處理分析環境、時間等多維遙感信息是一種新型的遙感應用方式。該方式融合了多種專業的技術特點,已成為促進遙感技術在多領域得以廣泛應用的重點研究問題。其中,機載激光雷達技術(Light Detection And Ranging,LiDAR)作為一種實現高精度地表多維信息快速獲取的新興航空遙感技術[1],已被廣泛應用于油氣勘測、電力傳輸、城市規劃、土地資源調查、災害評估等領域。
目前,國內外針對機載激光雷達的研究和商業化應用不斷發展[2],其中 LiDAR系統直接獲取的原始數據(包括發射角、測距值)必須經過點云解算才能形成三維數據,因此,點云解算是LiDAR系統數據處理算法中不可或缺的環節。然而,面對當今應用對精度、實時性要求不斷提升的需求,具有計算量很大、處理算法復雜等特點的點云解算需要依托于高性能的機載處理平臺。其中,DSP憑借著運算能力強、功耗低、資源豐富、靈活性強等優勢,在圖像視頻處理、數字通信、神經網絡等方面[3,4]得到了廣泛運用。
隨著超大規模集成電路技術的日益發展,DSP技術已發展至可高效共享資源、降低功耗成本[5,6]的高性能多核DSP階段。這也是面對不斷向大帶寬、高精度、高實時性要求發展的信號處理趨勢的必然選擇。
本文將利用多核DSP展開面向機載陣列推掃式激光雷達系統的點云解算方法的并行設計與實現,在點云解算原理、多核DSP系統資源方面介紹基礎上,對點云解算算法的并行模型設計、核間通信設計、效能測試方面進行研究與分析。
1 點云解算原理
陣列推掃式機載激光雷達系統建立三維點云解算模型的數據采集模塊,而點云解算則是將該系統獲取的激光點數據通過一系列處理得到三維空間信息的過程。首先,利用激光雷達載荷獲得激光脈沖的往返時間間隔及載荷位置姿態信息;然后,將激光掃描坐標系下的測距值經激光掃描坐標系、慣性導航坐標系、導航投影坐標系、地心坐標系轉換后,求出每個激光腳點精確的三維空間坐標(X,Y,Z),從而完成激光點云解算。為提高激光點云的解算精度,在解算的過程中需將系統檢校參數代入,進行校正處理[1]。
另外,由于掃描過程中會出現誤將低空飛行物當作被測目標記錄,或受到多路徑誤差或激光測距儀誤差影響等情況,可能導致數據中出現粗差。為保證機上處理速度,在算法中加入基于掃描距離值的快速粗差濾除閾值處理。處理流程如圖1所示。
2 基于多核DSP的并行設計
2.1 硬件平臺資源介紹
相比于單核DSP,多核DSP具有更強的并行處理能力和更優化的功耗管理能力[7],因而得到了更多的關注。各主要數字信號處理器廠商,如Cradle、TI、ADI以及Freescale公司都相繼推出多核DSP。其中,TI公司的TMS320C6678在內核數、主頻、功耗、運算能力等方面均具有較為突出的優勢。
TMS320C6678是基于Keystone架構的定點/浮點混合多核DSP[8],內置8個C66x DSP核,最高工作頻率可達1.4 GHz,具有320GMACS的定點處理能力和160 GFLOPS的浮點運算能力。其還擁有豐富的片內資源,多種高速互聯接口[9]。此外,TI公司還提供了具有任務調度、資源管理等功能的SYS/BIOS實時操作系統,可大大縮短開發周期。可見,C6678能很好地適應對低功耗、高性能、可編程性等多方面有嚴格要求的應用環境,是實現實時處理復雜算法的最佳選擇。
2.2 并行模型設計
在多核DSP的系統設計中,并行處理模型的構建包括任務調度、消息通信、內存訪問三者間的綜合考慮,只有采用最優化的結合方案,才能達到處理效果和資源功耗間的平衡狀態,從而獲得處理系統的高性能。因此,選擇適合的并行模型無疑是多核DSP系統開發的最關鍵步驟之一。目前,多核DSP并行模型主要有兩種:數據流模型(Data Flow Model)和主從模型(Master Slave Model)[10]。其中,數據流模型描述了DSP的多個內核串行的工作方式,具有思路簡單、實時性較好、模塊間依賴性強、通信頻繁的特點,較為適合處理流程單一、內核間強相關性的應用;主從模型則是從多個內核中選定一個作為主核負責總體控制,其余內核作為從核執行具體計算任務的工作方式,具有各從核間相互獨立、配置靈活的特點,更適于處理流程算法復雜、核間弱相關性的應用。
本次設計中應用的點云解算算法具有處理流程復雜、浮點運算量大的特點,且待處理的數據將以一行的量為基本處理單位,處理過程獨立。可見該算法并不適合將整體算法分塊拆分至不同核的設計思路,這樣會造成大量由于機載點云數據質量檢測引入的邏輯消耗、核間同步以及數據通信消耗,是一種得不償失的做法。因此,本文將采用主從方式設計點云解算的并行模型。
本文的具體設計思路是:將0核設置為主核,其任務包括監控所有從核的任務進度、建立與多種外設以及從核間的有效通信橋梁;1~7核為從核,其任務包括當前狀態反饋、點云解算主體操作。
2.3 核間通信設計
核間通信是多核處理器實現并行處理的重要組成部分[11],其主要有消息通信和數據搬移兩方面。消息通信通常用于實現核間同步通知以及狀態反饋,而數據移動則適用于大量的運算數據傳輸。C6678中也提供了多種通信方式和模塊庫,主要的有:同步變量監視、核間直接中斷、Event Notify、MessageQ Queue、多核導航器以及EDMA3[10,12,13]。
其中,同步變量監視模式所需模塊最少,實現簡單,但需不斷維護Cache一致性和CPU占有情況;核間直接中斷方式無BIOS參與,實現思路清晰,但頻繁的中斷增加額外耗時,靈活度低;Event Notify方式簡單快捷,但數據傳輸能力弱,復雜度較高;Message Queue方式提供了更精細的數據消息,靈活性和適應性強,應用廣泛,但復雜度高;多核導航器方式實現設備內的數據高性能傳輸,靈活度大,但復雜度很大;增強型直接內存訪問(Enhanced Direct Memory Access 3,EDMA3)方式可實現數據的高效傳輸,且該過程幾乎不占用CPU時鐘[14],但復雜度也高。因此,同步變量監視、核間直接中斷、Event Notify和Message Queue這4種方式比較適合于核間同步消息通知,而多核導航器和EDMA3則更適合于數據通信。
本文待實現的點云解算算法在多核通信方面有如下需求:消息通信方面,需要實現主核和從核間的同步通知,用于監控處理的進度;數據通信方面,需要實現對原始數據塊、各階段處理結果的劃分及高速數據傳輸過程。
再結合DSP內部存儲器空間小但訪問速度快、外部存儲器DDR3空間大而訪問速度慢以及陣列推掃式激光雷達系統具有按描行存儲處理數據的特點,為了盡可能提高傳輸效率,以PING-PONG傳輸方式建立數據緩存機制:先將采集的數據流逐行緩存到DDR3中,并在從核內部存儲器建立兩個緩存區,以EDMA3方式實現數據在DDR3與內部存儲器之間的高速傳輸,并且采用靈活度高的Message Queue實現核間同步消息通信。圖2展示了本文基于TMS320C6678的點云解算總體設計構架。
3 實驗結果分析
本文實驗采用TMDXEVM6678L EVM C6678 DSP開發板,這是一款用于對TMS320C6678進行評估開發的硬件平臺。實驗時,DSP核主頻設置為1 GHz。實驗激光點云原始數據來自某線陣推掃LiDAR載荷飛行試驗獲取的一段數據,行數為8 400行,每行208 B,總數據量約為1.67 MB;載荷位置數據也選取對應的8 400行,每行52 B,總數據量約為426.56 KB。
實驗分析了不同大小數據塊對基于多核DSP主從模型的LiDAR數據實時處理運行效率的影響,在數據處理總行數一定的條件下,分別以1、2、4、6、8、10行數劃分每次處理數據傳輸塊,從而獲取數據傳輸及點云解算處理的耗時測試數據。同時,實驗還對比記錄了相同總數據量、每次處理行數不變的條件下,單核實現點云解算處理的耗時,如表1所示。
從表1可知,設計的點云解算多核并行模型在7核并行運算的情況下,效率達不到7倍單核的理想狀態,原因為實際的運算過程會由于核間通信、數據傳輸等原因產生時間消耗和資源競爭。需要注意的是,不合理的方案設置反而會增加整體的運行耗時,造成與資源消耗情況相距甚遠的結果。文中設計充分考慮并平衡了通信消耗和傳輸資源競爭等方面的影響,將效率提升到單核的6.6倍左右,使得性能得到了較大提升。
圖3顯示了單/多核模型的總耗時與處理行數間的關系。針對多核并行處理方式,如圖3(a)所示,運行耗時由核間通信和EDMA3模塊調用的次數變化共同影響,其隨著每次處理行數的增加而降低。在處理總行數一定的情況下,每次處理的行數越多,總體處理方案調用核間同步通信和EDMA 3模塊的次數越少,通信傳輸消耗降低。此外,從圖3(a)中還能看出:曲線斜率隨著行數的增加而變緩,其原因在于增加每核處理行數,也會增大每次傳輸時間和內部緩存壓力,體現出核間調度和數據傳輸兩者的矛盾關系,需要遇到具體問題具體劃分數據塊行數。圖3(b)顯示了單核處理方式下,運行耗時和每次處理行數的關系,其變化趨勢與多核一致。隨著每次處理的行數增多,每次EDMA3傳輸的數據量增加,對EDMA3相關控制器設置的總次數減少,而EDMA3控制器的設置耗時相對較少。由此可得:EDMA3每次傳輸數據量的不同導致了耗時的不同,充分驗證了EDMA3在傳輸大數據量時具有一定的優勢。在具體的設計過程中,需要合理選擇每次的處理行數,以達到效率最優化。
4 結論
本文采用TMS320C6678硬件平臺,設計搭建了基于機載陣列式推掃激光雷達系統的點云解算算法的多核并行主從處理模型,執行效率達到了單核的6.6倍,使得性能得到了很大的提升,證明了對激光雷達技術的嵌入式實時處理系統的可行性。為進一步的遙感三維影像生成技術的嵌入式實時處理系統的設計實現奠定了堅實的基礎。
參考文獻
[1] 黎荊梅,周梅,李傳榮.陣列推掃式機載激光雷達三維點云解算方法研究[J].遙感技術應用,2013,28(6):1033-1038.
[2] 李番,鄔雙陽,楊紅果,等.機關雷達多元陣列探測技術[J].紅外與激光工程,2009,38(2):295-299.
[3] 賀文靜,胡堅,李子揚,等.基于多DSP的遙感圖像實時壓縮系統設計[J].電子技術應用,2015,41(5):46-56.
[4] SEUI J,SUNG S K.Hardware implementation of a real-time neural network controller with a DSP and an FPGA for nonlinear systems[J].Industrial Electronics,IEEE Transactions on 2007,54(1):265-71.
[5] 李鑫,姜明.多核DSP告訴實時信號處理系統設計[J].光學設計,2012,38(1):116-120.
[6] 趙振華,鄭紅.嵌入式可重構的多DSP圖像并行處理系統[J].單片機與嵌入式系統應用,2009(2):12-15.
[7] 繩偉光,蔣建飛,何衛鋒.高性能DSP的發展現狀與未來趨勢[J].中國集成電路,2011(4):20-25.
[8] Texas Instruments.TMS320C66x DSP CPU and instruction set reference guide(Literature Number: SPRUGH7)[EB/OL].(2010)[2016].www.ti.com.
[9] Texas Instruments.TMS320C6678 multicore fixed and floating-point digital signal processor data manual[EB/OL].(2014)[2016].www.ti.com.
[10] Texas Instruments.Multicore programming guide(Literature Number:SPRAB27B)[EB/OL].(2011)(2016).www.ti.com.
[11] 吳灝,肖吉陽,范紅旗,等.TMS320C6678多核DSP的核間通信方法[J].電子技術應用,2012,38(9):11-13.
[12] Texas Instruments.SYS/BIOS inter-processor communication user’s guide(Literature Number: SPRUGO6E)[EB/OL].(2012)[2016].www.ti.com.
[13] 劉力,張鵬,楊軍.基于EDMA3控制器的多通道音頻數據傳輸[J].電聲技術,2014,38(8):59-61.
[14] 但永平,彭紅濤,王東云,等.EDMA3在圖像數據快速傳輸中的應用[J].液晶與顯示,2013,28(1):99-104.
作者信息:
牛京玉,胡 堅,孟凡榮,賀文靜
(中國科學院光電研究院 中國科學院定量遙感信息技術重點實驗室,北京100094)