劉超李傳榮胡堅(jiān)賀文靜牛京玉孟凡榮
(1 中國(guó)科學(xué)院光電研究院 中國(guó)科學(xué)院定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100094)(2 中國(guó)科學(xué)院大學(xué),北京 100049)
EDMA3在LiDAR點(diǎn)云實(shí)時(shí)處理中的應(yīng)用
劉超1,2李傳榮1胡堅(jiān)1賀文靜1牛京玉1,2孟凡榮1
(1 中國(guó)科學(xué)院光電研究院 中國(guó)科學(xué)院定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100094)(2 中國(guó)科學(xué)院大學(xué),北京 100049)
針對(duì)激光雷達(dá)(Light Detection and Ranging,LiDAR)點(diǎn)云解算在軌/機(jī)載/車載處理中數(shù)據(jù)量大、實(shí)時(shí)性要求較高的需求,需要將LiDAR數(shù)據(jù)存儲(chǔ)在處理速度較快的內(nèi)部存儲(chǔ)器中進(jìn)行點(diǎn)云解算以提高處理速度。為了解決通常LiDAR數(shù)據(jù)量較大,內(nèi)部存儲(chǔ)器存儲(chǔ)空間相對(duì)較小的問(wèn)題,利用處理速度快的內(nèi)部存儲(chǔ)器和存儲(chǔ)空間大的外部存儲(chǔ)器建立數(shù)據(jù)緩存機(jī)制,用增強(qiáng)型直接內(nèi)存訪問(wèn)(the Third Generation Enhanced Direct Memory Access,EDMA3)的乒乓緩存技術(shù)將LiDAR數(shù)據(jù)從外部存儲(chǔ)器傳輸?shù)絻?nèi)部存儲(chǔ)器中以提高傳輸速率,并在內(nèi)部存儲(chǔ)器中開(kāi)辟兩個(gè)緩存區(qū)輪流接收LiDAR數(shù)據(jù),以減少傳輸?shù)却龝r(shí)間。傳輸LiDAR數(shù)據(jù)時(shí)是分塊進(jìn)行傳輸?shù)?,考慮到LiDAR數(shù)據(jù)的存儲(chǔ)格式,將其按行分塊,在DSP開(kāi)發(fā)板上對(duì)不同分塊大小的LiDAR數(shù)據(jù)分別進(jìn)行了EDMA3乒乓讀寫(xiě)方式和DSP的CPU讀寫(xiě)方式的傳輸測(cè)試。將兩種讀寫(xiě)方式的數(shù)據(jù)傳輸性能進(jìn)行了對(duì)比,驗(yàn)證了EDMA3的應(yīng)用能夠提高LiDAR數(shù)據(jù)傳輸速率,并對(duì)如何確定合理的數(shù)據(jù)分塊大小,使EDMA3乒乓讀寫(xiě)方式傳輸LiDAR數(shù)據(jù)的效率更高進(jìn)行了探討,對(duì)實(shí)時(shí)實(shí)現(xiàn)點(diǎn)云解算有一定的參考意義。
點(diǎn)云解算 數(shù)字信號(hào)處理器 第三代增強(qiáng)型直接內(nèi)存訪問(wèn) 乒乓存取
激光雷達(dá)(LiDAR)技術(shù)是一種新興的對(duì)地觀測(cè)技術(shù),能夠快速獲取高精度數(shù)字地表模型,具有速度快、高程精度高、信息豐富等特點(diǎn)[1],廣泛應(yīng)用于國(guó)土資源調(diào)查、城市三維建模、公路建設(shè)、電網(wǎng)工程、災(zāi)害評(píng)估及古跡保護(hù)等方面[2]。但它采集的原始回波數(shù)據(jù)需要通過(guò)一系列處理(點(diǎn)云解算),才能生成滿足應(yīng)用需求的三維點(diǎn)云。
點(diǎn)云具有高精度的三維坐標(biāo)信息和反射強(qiáng)度信息,具有離散性、數(shù)據(jù)量很大的特點(diǎn)。有些航天航空對(duì)地觀測(cè)應(yīng)用,如應(yīng)急救災(zāi)、戰(zhàn)場(chǎng)環(huán)境偵查以及車載即時(shí)定位與地圖構(gòu)建(Simultaneous Localization and Mapping,SLAM)應(yīng)用[2]等,對(duì)獲取三維場(chǎng)景的實(shí)時(shí)性有較高的要求,巨大的數(shù)據(jù)量與實(shí)時(shí)處理的運(yùn)算量會(huì)給點(diǎn)云解算中數(shù)據(jù)的存儲(chǔ)和處理帶來(lái)巨大的挑戰(zhàn)[3],從而對(duì)LiDAR數(shù)據(jù)實(shí)時(shí)處理平臺(tái)的性能提出了更高的要求。
DSP、GPU或FPGA等器件常常被用于構(gòu)建實(shí)時(shí)遙感數(shù)據(jù)處理平臺(tái)中的數(shù)據(jù)實(shí)時(shí)處理單元。在LiDAR載荷采集的原始回波數(shù)據(jù)生成三維點(diǎn)云數(shù)據(jù)過(guò)程中,需要經(jīng)過(guò)時(shí)間測(cè)量值到距離值的轉(zhuǎn)換、基于聯(lián)合成像時(shí)姿態(tài)位置數(shù)據(jù)的坐標(biāo)轉(zhuǎn)換以及誤差校正等處理步驟,涉及到了大量的浮點(diǎn)運(yùn)算以及相關(guān)回波信號(hào)質(zhì)量判斷等邏輯處理。在實(shí)際的實(shí)時(shí)數(shù)據(jù)處理平臺(tái)構(gòu)建中,由于DSP具有兼容定點(diǎn)運(yùn)算和浮點(diǎn)運(yùn)算、通信效率高、功耗低、并行性能好等特點(diǎn),能夠?qū)崿F(xiàn)復(fù)雜算法與邏輯運(yùn)算,因此,通常選擇DSP來(lái)實(shí)現(xiàn)點(diǎn)云實(shí)時(shí)解算功能。
由于LiDAR數(shù)據(jù)是實(shí)時(shí)獲取的,不僅數(shù)據(jù)量大,并且需要對(duì)其進(jìn)行實(shí)時(shí)處理,因此對(duì)數(shù)字信號(hào)處理器(DSP)存儲(chǔ)器的存儲(chǔ)空間的利用和算法處理速度都有較高的要求。DSP的內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器在速度上和存儲(chǔ)空間上存在差別:內(nèi)部存儲(chǔ)器I/O速度較快但是空間較?。煌獠看鎯?chǔ)器相對(duì)而言I/O速度較慢但存儲(chǔ)空間可以設(shè)計(jì)得比較大。目前常用的TI、ADI公司的DSP都設(shè)計(jì)了專用的數(shù)據(jù)傳輸模塊—第三代增強(qiáng)型直接內(nèi)存訪問(wèn)(the Third Generation Enhanced Direct Memory Access,EDMA3),可以在DSP緩存與外設(shè)之間進(jìn)行高效的數(shù)據(jù)傳輸,既解決了存儲(chǔ)空間的問(wèn)題,也能兼顧數(shù)據(jù)在DSP與外部存儲(chǔ)器之間的I/O速度。EDMA3技術(shù)已經(jīng)在實(shí)時(shí)圖像處理、實(shí)時(shí)視頻處理中得到了應(yīng)用[4-5],將其用于激光雷達(dá)點(diǎn)云解算,可以借助EDMA3在數(shù)據(jù)傳輸方面的強(qiáng)大功能,提高點(diǎn)云解算中數(shù)據(jù)的傳輸效率,以達(dá)到實(shí)時(shí)實(shí)現(xiàn)點(diǎn)云解算的應(yīng)用需求。
本文設(shè)計(jì)了一種在LiDAR數(shù)據(jù)實(shí)時(shí)處理過(guò)程中的基于EDMA3乒乓存取的LiDAR數(shù)據(jù)傳輸方式,并在DSP開(kāi)發(fā)板上驗(yàn)證了EDMA3乒乓存取方式的速率優(yōu)勢(shì),通過(guò)對(duì)比不同數(shù)據(jù)分塊大小對(duì)LiDAR數(shù)據(jù)傳輸耗時(shí)的影響,對(duì)如何確定合理的數(shù)據(jù)分塊大小使EDMA3乒乓讀寫(xiě)方式傳輸LiDAR數(shù)據(jù)的效率更高進(jìn)行了分析,對(duì)實(shí)時(shí)實(shí)現(xiàn)點(diǎn)云解算有一定的參考意義。
EDMA3是DSP的一種高效數(shù)據(jù)傳輸模塊,在進(jìn)行數(shù)據(jù)傳輸時(shí),EDMA3能夠做到幾乎不占用DSP的CPU時(shí)鐘周期[6]。
EDMA3主要包括通道控制器(EDMA3 Channel Controller,EDMA3CC)和傳輸控制器(EDMA3 Transfer Controller,EDMA3TC)兩部分[7]。EDMA3CC是EDMA3控制器與用戶之間的接口,包括參數(shù)存儲(chǔ)器(Parameter RAM,PaRAM)、通道控制類寄存器及中斷控制寄存器,對(duì)收到的請(qǐng)求或事件按優(yōu)先級(jí)進(jìn)行排序并向EDMA3TC提交傳輸請(qǐng)求。EDMA3TC負(fù)責(zé)控制數(shù)據(jù)的傳輸并分別向源地址和目的地址發(fā)出讀/寫(xiě)命令。
EDMA3CC支持?jǐn)?shù)組(Array)、數(shù)據(jù)幀(Frame)和數(shù)據(jù)塊(Block)三個(gè)維度上的數(shù)據(jù)傳輸[8]。EDMA3CC支持兩種傳輸方式:A同步傳輸方式和AB同步傳輸方式。每次事件觸發(fā)時(shí),A同步傳輸方式只能進(jìn)行一個(gè)維度上的傳輸,AB同步傳輸方式可以進(jìn)行兩個(gè)維度上的傳輸。A同步傳輸方式可以用于進(jìn)行數(shù)組的傳輸,AB同步傳輸方式則用于進(jìn)行數(shù)據(jù)幀的傳輸。具體使用哪種傳輸方式需要根據(jù)源地址和目的地址中的數(shù)據(jù)存儲(chǔ)形式以及每次觸發(fā)需要傳輸?shù)臄?shù)據(jù)量的情況來(lái)確定。如果一次觸發(fā)需要EDMA3完成多個(gè)數(shù)據(jù)塊的傳輸,這種情況下就只能用AB同步傳輸方式;如果一次觸發(fā)只要需要傳輸一個(gè)數(shù)據(jù)塊,這時(shí)候用A同步傳輸方式就可以了。A同步傳輸方式相對(duì)AB同步傳輸方式更簡(jiǎn)單,在兩種同步傳輸方式都適用的情況下,一般選擇A同步傳輸方式。本文采用的是A同步傳輸方式。
通道控制類寄存器用于通道及中斷寄存器的設(shè)置,包含全局寄存器、中斷寄存器以及其他的寄存器等。其中,全局寄存器可用于通道的配置與映射等,全局寄存器中的DMA通道映射寄存器(DMA Channel Map n Registers,DCHMAP n)用于將參數(shù)集(PaRAM Set)與通道相映射;中斷寄存器用于中斷使能,中斷寄存器中的中斷使能寄存器(Interrupt Enable Registers,IER/IERH)用于在EDMA3傳輸中使能中斷,中斷查詢寄存器(Interrupt Pending Register,IPR/IPRH)用于傳輸完成后相應(yīng)標(biāo)志位的置位,事件置位寄存器(Event Set Registers,ESR/ESRH)用于實(shí)現(xiàn)手動(dòng)觸發(fā)EDMA3傳輸?shù)墓δ堋?/p>
PaRAM中存放著512組傳輸控制參數(shù)(PaRAM Set),用于為EDMA3傳輸提供源地址、目的地址、地址增加量、傳輸?shù)臄?shù)據(jù)量和傳輸方式等參數(shù)[9]。PaRAM Set的結(jié)構(gòu)如圖1所示[9],
其中,OPT字段用于設(shè)定EDMA3的傳輸方式(A同步/AB同步)、傳輸完成中斷產(chǎn)生方式(正常/提前)、傳輸完成鏈接方式和TCC(傳輸完成后,IPR/IPRH寄存器中與TCC對(duì)應(yīng)的標(biāo)志位置位)等;SRC和DST是源地址和目的地址;ACNT、BCNT和CCNT用于對(duì)傳輸次數(shù)進(jìn)行計(jì)數(shù);SRCBIDX、DSTBIDX、SRCCIDX、DSTCIDX用于設(shè)定地址增加量;LINK用于存儲(chǔ)另一組PaRAM set實(shí)現(xiàn)參數(shù)鏈接。
加載參數(shù)后,EDMA3還需要觸發(fā)才能實(shí)現(xiàn)傳輸功能。觸發(fā)方式有三種:
1)事件觸發(fā):外設(shè)、系統(tǒng)、外部事件產(chǎn)生的傳輸請(qǐng)求;
2)手動(dòng)觸發(fā):DSP的CPU向相應(yīng)的ESR/ESRH中寫(xiě)1(置位)來(lái)觸發(fā)傳輸;
3)鏈接觸發(fā):一次傳輸完成后可以觸發(fā)下一次的傳輸。
EDMA3單次數(shù)據(jù)傳輸流程如下[10]:
1) EDMA3通道初始化:通過(guò)通道號(hào)和PaRAM Set的組號(hào)選擇用于EDMA3傳輸?shù)耐ǖ篮蚉aRAM Set,并通過(guò)DCHMAP寄存器將它們映射在一起;
2)配置PaRAM Set:通過(guò)相應(yīng)字段對(duì)源地址、目的地址、傳輸方式等進(jìn)行設(shè)定;
3)配置IER/IERH寄存器參數(shù):向IER/IERH寄存器相應(yīng)位寫(xiě)1(置位),使IPR/IPRH的對(duì)應(yīng)位在傳輸完成后置位;
圖1 參數(shù)集結(jié)構(gòu)Fig.1 Structure of PaRAM set
4)觸發(fā)EDMA3傳輸:按照選擇的觸發(fā)方式觸發(fā)EDMA3傳輸;
5)等待傳輸完成:通過(guò)查詢IPR/IPRH寄存器相應(yīng)位置的標(biāo)志位,確定EDMA3傳輸完成。
從傳輸過(guò)程來(lái)看,當(dāng)傳輸?shù)臄?shù)據(jù)用于運(yùn)算處理時(shí),由于EDMA3傳輸?shù)乃俣群芸欤鳧SP的CPU對(duì)這些數(shù)據(jù)的運(yùn)算處理相對(duì)較慢,EDMA3在傳輸完數(shù)據(jù)后必須等待數(shù)據(jù)處理完成,才能繼續(xù)傳輸,這就降低了處理效率。解決方法是利用EDMA3的鏈接功能加載多組PaRAM Set實(shí)現(xiàn)EDMA3的乒乓傳輸,在目的存儲(chǔ)器中設(shè)置兩個(gè)緩存區(qū),輪流向這兩個(gè)緩存區(qū)中傳輸數(shù)據(jù),以減少等待時(shí)間,提高處理效率。
EDMA3 Ping-pong傳輸?shù)膶?shí)現(xiàn)過(guò)程是[11]:
1) EDMA3通道初始化:通過(guò)通道號(hào)和PaRAM Set的組號(hào)選擇用于EDMA3傳輸?shù)耐ǖ篮腿MPaRAM Set,并通過(guò)DCHMAP寄存器將EDMA3通道與第一組PaRAM Set映射在一起;
2)配置PaRAM Set:通過(guò)相應(yīng)字段對(duì)源地址、目的地址、傳輸方式等進(jìn)行設(shè)定,將第一組與第三組PaRAM Set中的參數(shù)設(shè)置成相同,第二組PaRAM Set中的參數(shù)設(shè)置成與上述兩組不同,在第一組與第三組PaRAM Set中的鏈接地址(Link Address,LINK)字段中存儲(chǔ)第二組PaRAM Set的地址,第二組PaRAM Set中的LINK字段中存儲(chǔ)第三組PaRAM Set的地址;
3)配置IER/IERH寄存器參數(shù):向IER/IERH寄存器相應(yīng)位寫(xiě)1(置位),使IPR/IPRH的對(duì)應(yīng)位在傳輸完成后置位;
4)觸發(fā)EDMA3傳輸:首先加載與EDMA3通道映射的PaRAM Set,之后的觸發(fā)按照LINK的指向分別加載其他兩組PaRAM Set;
5)等待傳輸完成:查詢IPR/IPRH寄存器相應(yīng)位是否置位,確定Ping或者Pong傳輸完成,對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的運(yùn)算處理。EDMA3輪流向兩個(gè)緩存區(qū)傳輸數(shù)據(jù)直到完成所有數(shù)據(jù)的處理。
EDMA3的Ping-pong傳輸在處理數(shù)據(jù)的同時(shí)通過(guò)觸發(fā)EDMA3傳輸,實(shí)現(xiàn)了數(shù)據(jù)處理與數(shù)據(jù)傳輸?shù)耐瑫r(shí)進(jìn)行,減少了等待時(shí)間,提高了效率。
點(diǎn)云解算需要結(jié)合激光雷達(dá)采集的原始回波數(shù)據(jù)、激光脈沖測(cè)量時(shí)的姿態(tài)信息、位置信息以及掃描角參數(shù)等進(jìn)行運(yùn)算,求出每個(gè)激光腳點(diǎn)精確的三維空間坐標(biāo),完成相應(yīng)回波數(shù)據(jù)的三維點(diǎn)云解算。上述數(shù)據(jù)分別從LiDAR數(shù)據(jù)和POS數(shù)據(jù)中讀取,此外還需要讀取LiDAR配置參數(shù),因此,三維點(diǎn)云的解算過(guò)程涉及到對(duì)LiDAR數(shù)據(jù)、LiDAR配置參數(shù)和POS數(shù)據(jù)的傳輸和運(yùn)算,且在實(shí)時(shí)處理過(guò)程中需要源源不斷地接收載荷實(shí)時(shí)獲取的回波數(shù)據(jù)并輸入到DSP中進(jìn)行運(yùn)算處理。為了滿足這一實(shí)時(shí)處理要求,需要盡可能地提高數(shù)據(jù)傳輸速率來(lái)減少數(shù)據(jù)I/O的時(shí)間??衫肈SP處理速度快的內(nèi)部存儲(chǔ)器和存儲(chǔ)空間大的外部存儲(chǔ)器建立數(shù)據(jù)緩存機(jī)制,將LiDAR載荷實(shí)時(shí)獲取的數(shù)據(jù)流按照分段大小分批緩存到存儲(chǔ)空間較大的外部存儲(chǔ)器中,并在DSP中用于數(shù)據(jù)運(yùn)算處理的內(nèi)部存儲(chǔ)器中開(kāi)辟兩個(gè)緩存區(qū),將外部存儲(chǔ)器中的LiDAR數(shù)據(jù)基于EDMA3技術(shù)傳輸?shù)紻SP內(nèi)部來(lái)進(jìn)行點(diǎn)云解算。
為了實(shí)現(xiàn)數(shù)據(jù)的有效接收與高效處理,在點(diǎn)云解算處理中,一般情況下源源不斷的LiDAR原始數(shù)據(jù)(回波數(shù)據(jù)、姿態(tài)數(shù)據(jù)等)被分時(shí)逐段緩存到外部存儲(chǔ)器DDR3(第三代Dual Data Rate SDRAM存儲(chǔ)器)中,由EDMA3將獲取的LiDAR分塊數(shù)據(jù)高效地讀入到內(nèi)部存儲(chǔ)器中進(jìn)行處理。LiDAR數(shù)據(jù)的分塊須依據(jù)LiDAR載荷的數(shù)據(jù)存儲(chǔ)格式和處理程序進(jìn)行優(yōu)化。在傳輸與處理過(guò)程中,LiDAR數(shù)據(jù)一般是以數(shù)組的格式按數(shù)據(jù)獲取時(shí)的掃描行存儲(chǔ)與處理的。因此,在分塊時(shí)可以將數(shù)據(jù)塊的大小設(shè)定為數(shù)據(jù)行數(shù)據(jù)量的整數(shù)倍。
LiDAR數(shù)據(jù)的傳輸可以通過(guò)兩種途徑實(shí)現(xiàn):一種是利用DSP的CPU直接讀寫(xiě)數(shù)據(jù),這種方法設(shè)計(jì)簡(jiǎn)單,讀寫(xiě)速度取決于CPU主頻;一種是利用EDMA3實(shí)現(xiàn),使數(shù)據(jù)傳輸與CPU處理同步開(kāi)展,減少數(shù)據(jù)傳輸耗時(shí)。
為了驗(yàn)證將EDMA3技術(shù)用于LiDAR數(shù)據(jù)傳輸以提高運(yùn)行效率的可行性,設(shè)計(jì)了用EDMA3乒乓讀寫(xiě)和DSP的CPU讀寫(xiě)兩種方式傳輸LiDAR數(shù)據(jù)的對(duì)比實(shí)驗(yàn)。
2.1 利用DSP的CPU進(jìn)行數(shù)據(jù)讀寫(xiě)
用DSP的CPU直接讀寫(xiě)方式傳輸數(shù)據(jù)時(shí),在完成一塊數(shù)據(jù)傳輸后,CPU會(huì)對(duì)這些數(shù)據(jù)進(jìn)行運(yùn)算處理,等待對(duì)這些數(shù)據(jù)的運(yùn)算處理完成之后,再進(jìn)行下次傳輸,直至完成所有數(shù)據(jù)的傳輸與運(yùn)算處理。
在性能測(cè)試過(guò)程中,對(duì)傳輸全部數(shù)據(jù)的耗時(shí)、運(yùn)算處理所有數(shù)據(jù)的耗時(shí)以及傳輸與運(yùn)算處理兩個(gè)過(guò)程的總耗時(shí)進(jìn)行了統(tǒng)計(jì)。CPU讀寫(xiě)方式處理過(guò)程流程圖如下:
2.2 利用EDMA3進(jìn)行數(shù)據(jù)乒乓讀寫(xiě)
用EDMA3乒乓讀寫(xiě)方式進(jìn)行數(shù)據(jù)傳輸時(shí),需要在DSP的內(nèi)部存儲(chǔ)空間中開(kāi)辟兩個(gè)緩存區(qū)A和B,用于輪流接收數(shù)據(jù)和處理數(shù)據(jù)。完成EDMA3初始化之后觸發(fā)EDMA3進(jìn)行數(shù)據(jù)傳輸。EDMA3先向緩存區(qū)A傳輸數(shù)據(jù),然后繼續(xù)向緩存區(qū)B傳輸數(shù)據(jù),同時(shí)DSP的CPU會(huì)對(duì)緩存區(qū)A中數(shù)據(jù)進(jìn)行運(yùn)算處理。等待緩存區(qū)A中數(shù)據(jù)的運(yùn)算處理過(guò)程和緩存區(qū)B中數(shù)據(jù)的傳輸過(guò)程完成之后,繼續(xù)向緩存區(qū)A中傳輸數(shù)據(jù),同時(shí)對(duì)緩存區(qū)B中的數(shù)據(jù)進(jìn)行運(yùn)算處理,進(jìn)入下一輪循環(huán),直至完成所有數(shù)據(jù)的傳輸與運(yùn)算處理[9]。
在之后的性能測(cè)試過(guò)程中,同樣統(tǒng)計(jì)了傳輸全部數(shù)據(jù)的耗時(shí)、運(yùn)算處理所有數(shù)據(jù)的耗時(shí)以及傳輸與運(yùn)算處理兩個(gè)過(guò)程的總耗時(shí)。EDMA3乒乓讀寫(xiě)方式處理過(guò)程流程圖如圖3所示。
圖2 CPU讀寫(xiě)方式處理過(guò)程流程Fig.2 Flow chart of processing by the method of CPU direct writing and reading
實(shí)驗(yàn)選用的DSP型號(hào)是TMS320C6678,有8個(gè)核,單核頻率可達(dá)1.25GHz。C6678的每個(gè)核都有自己的內(nèi)部存儲(chǔ)器L1P(Level-1 Program Memory)、L1D(Level-1 Data Memory)和LL2(Local Level-2 Memory),所有核共享1024K的MSM SRAM寄存器,并且最多可以擴(kuò)展2Gbyte的外部DDR3寄存器[10]。實(shí)驗(yàn)選用的DSP開(kāi)發(fā)板型號(hào)是TMDXEVM6678L EVM[11]。
考慮到處理速度較快的LL2的存儲(chǔ)空間有限并且要建立兩個(gè)緩存區(qū),因此,用于測(cè)試的數(shù)據(jù)量不能太大。測(cè)試時(shí),LiDAR數(shù)據(jù)選取的是某載荷航空飛行時(shí)所獲取的一段連續(xù)的200行數(shù)據(jù),每行208byte,數(shù)據(jù)量一共是41 600byte。POS數(shù)據(jù)也選取了對(duì)應(yīng)的200行,每行52byte,共10 400byte。由于是為了測(cè)試DSP的EDMA3傳輸性能,因此測(cè)試開(kāi)始前,將LiDAR數(shù)據(jù)全部存儲(chǔ)在外部緩存DDR3中,而不需要像實(shí)際在軌/機(jī)載/車載LiDAR實(shí)時(shí)數(shù)據(jù)處理過(guò)程中那樣將數(shù)據(jù)流乒乓放入到外部緩存區(qū),這樣一方面能減少測(cè)試的復(fù)雜性,同時(shí)也排除了外部緩存區(qū)的輸入數(shù)據(jù)接收性能對(duì)于本次測(cè)試的影響。在DSP的LL2中建立兩個(gè)緩存區(qū)。數(shù)據(jù)處理過(guò)程中分別用EDMA3讀寫(xiě)的方式或直接用DSP的CPU讀寫(xiě)方式按照數(shù)據(jù)分塊大小將LiDAR數(shù)據(jù)傳輸?shù)絃L2的兩個(gè)緩存區(qū)中。
在開(kāi)發(fā)板上對(duì)用這兩種方式傳輸LiDAR數(shù)據(jù)的情況分別進(jìn)行了多次實(shí)驗(yàn)。每次傳輸數(shù)據(jù)塊的大小是在考慮DSP的LL2容量的基礎(chǔ)上,參照每次傳輸LiDAR數(shù)據(jù)的行數(shù)進(jìn)行設(shè)置的,分塊大小均為行數(shù)的整數(shù)倍,分別為1行、2行、5行、10行和20行,對(duì)應(yīng)數(shù)據(jù)量大小為208byte、416byte、1 040byte、2 080byte和4 160byte。實(shí)驗(yàn)中將各次統(tǒng)計(jì)的數(shù)據(jù)傳輸消耗的時(shí)間、數(shù)據(jù)運(yùn)算處理消耗的時(shí)間以及整個(gè)傳輸與運(yùn)算處理過(guò)程消耗的總處理時(shí)間分別求和取平均值作為最終統(tǒng)計(jì)結(jié)果。
圖3 EDMA3乒乓讀寫(xiě)方式處理過(guò)程流程Fig.3 Flow chart of processing by the method of ping-pong buffering based on EDMA3
完成測(cè)試后,將兩種讀寫(xiě)方式傳輸LiDAR數(shù)據(jù)的性能進(jìn)行了對(duì)比,然后分析了EDMA3乒乓讀寫(xiě)方式傳輸LiDAR數(shù)據(jù)時(shí)數(shù)據(jù)分塊大小對(duì)總處理時(shí)間的影響。
3.1 兩種讀寫(xiě)方式性能對(duì)比
兩種讀寫(xiě)方式按照不同數(shù)據(jù)分塊大小完成41 600byte LiDAR數(shù)據(jù)傳輸?shù)暮臅r(shí)及整個(gè)傳輸與運(yùn)算處理過(guò)程消耗的總處理時(shí)間統(tǒng)計(jì)如表1所示:
表1 兩種讀寫(xiě)方式數(shù)據(jù)傳輸時(shí)間及總處理時(shí)間統(tǒng)計(jì)Tab.1 Data transmission time and the whole processing time by two methods
圖4 單次處理時(shí)間隨數(shù)據(jù)分塊大小變化統(tǒng)計(jì)Fig.4 Change trend of the single processing time
從表中可以看出,當(dāng)傳輸數(shù)據(jù)塊的大小相同時(shí),EDMA3乒乓讀寫(xiě)方式消耗的時(shí)間遠(yuǎn)比DSP的CPU讀寫(xiě)方式要短,驗(yàn)證了EDMA3在數(shù)據(jù)傳輸速率方面有較大的優(yōu)勢(shì)。
數(shù)據(jù)的總處理時(shí)間包括數(shù)據(jù)的傳輸時(shí)間和數(shù)據(jù)的運(yùn)算處理時(shí)間兩部分。對(duì)采用兩種讀寫(xiě)方式傳輸?shù)臄?shù)據(jù)進(jìn)行運(yùn)算處理的過(guò)程是相同的,因此,兩種讀寫(xiě)方式下的運(yùn)算處理消耗的時(shí)間基本相同。由于EDMA3讀寫(xiě)方式傳輸數(shù)據(jù)耗時(shí)較短,因此總處理時(shí)間也相對(duì)較短。由此可見(jiàn),用EDMA3乒乓讀寫(xiě)方式能提高LiDAR數(shù)據(jù)處理效率。
3.2 數(shù)據(jù)分塊大小對(duì)EDMA3乒乓讀寫(xiě)方式總處理時(shí)間的影響
從表1可以看出用EDMA3乒乓讀寫(xiě)方式傳輸LiDAR數(shù)據(jù)時(shí),數(shù)據(jù)分塊大小對(duì)總處理時(shí)間的影響是:隨著數(shù)據(jù)分塊增大,總處理時(shí)間呈減小趨勢(shì)。
分別對(duì)不同數(shù)據(jù)分塊大小情況下數(shù)據(jù)的傳輸和數(shù)據(jù)的運(yùn)算處理兩個(gè)過(guò)程消耗時(shí)間的變化情況進(jìn)行分析。
對(duì)兩種讀寫(xiě)方式進(jìn)行數(shù)據(jù)傳輸消耗時(shí)間的情況(如表1所示)進(jìn)行分析,當(dāng)數(shù)據(jù)量一定時(shí),分塊越小,每次傳輸?shù)臄?shù)據(jù)量減少,傳輸次數(shù)相應(yīng)增加。EDMA3每次傳輸時(shí)都要進(jìn)行的通道觸發(fā),參數(shù)加載以及寄存器清零等步驟需要消耗時(shí)間,因此傳輸次數(shù)越多,附加的時(shí)間消耗也會(huì)越多,從而造成傳輸時(shí)間的增加。因此,隨著數(shù)據(jù)分塊增大,傳輸全部數(shù)據(jù)消耗的時(shí)間呈減少趨勢(shì),并且減少的趨勢(shì)越來(lái)越平緩。
不同分塊大小的數(shù)據(jù)塊所需運(yùn)算處理消耗的時(shí)間如圖4所示。
從圖中看出,分塊越大,數(shù)據(jù)運(yùn)算處理消耗時(shí)間也越多。對(duì)數(shù)據(jù)進(jìn)行分析,當(dāng)分塊大小為208byte時(shí),對(duì)208byte數(shù)據(jù)運(yùn)算處理消耗時(shí)間是24.6ms;分塊大小為4 160byte時(shí),對(duì)4 160byte數(shù)據(jù)運(yùn)算處理消耗時(shí)間是356.8ms。兩種情況下,數(shù)據(jù)塊大小是20倍關(guān)系,消耗的時(shí)間大約是14.5(356.8/24.6)倍關(guān)系。因此,數(shù)據(jù)分塊越大,對(duì)全部數(shù)據(jù)的運(yùn)算處理消耗的總時(shí)間越少。
綜上,結(jié)合數(shù)據(jù)傳輸時(shí)間和數(shù)據(jù)運(yùn)算處理時(shí)間隨數(shù)據(jù)分塊大小的變化情況,可以看出,隨著數(shù)據(jù)分塊增大,總處理時(shí)間有減小的趨勢(shì)。
盡管如此,在確定合理的數(shù)據(jù)分塊大小以提高運(yùn)行效率時(shí),還應(yīng)該考慮到DSP內(nèi)部存儲(chǔ)器LL2的存儲(chǔ)空間限制:除了兩個(gè)緩存區(qū),程序運(yùn)行過(guò)程中用到的變量的存儲(chǔ)以及數(shù)據(jù)緩存等均在LL2中,需要占用存儲(chǔ)空間。因此,需要 對(duì)LiDAR數(shù)據(jù)的格式以及輸入速率、DSP的點(diǎn)云處理任務(wù)、LL2的存儲(chǔ)空間的大小和緩沖區(qū)的數(shù)目以及LiDAR點(diǎn)云解算后續(xù)處理等方面進(jìn)行綜合考慮,以確定合適的EDMA3數(shù)據(jù)傳輸過(guò)程中數(shù)據(jù)塊的大小,以實(shí)現(xiàn)更高效的點(diǎn)云數(shù)據(jù)處理能力。
本文將EDMA3乒乓讀寫(xiě)方式用于LiDAR數(shù)據(jù)的傳輸,對(duì)某載荷航空飛行時(shí)所獲取的數(shù)據(jù)進(jìn)行了傳輸性能測(cè)試。測(cè)試的結(jié)果表明基于EDMA3乒乓讀寫(xiě)方式的應(yīng)用能夠提高LiDAR數(shù)據(jù)傳輸速率。另外探討了數(shù)據(jù)分塊大小對(duì)EDMA3乒乓讀寫(xiě)方式傳輸LiDAR數(shù)據(jù)消耗的總處理時(shí)間的影響。論文工作對(duì)基于EDMA3乒乓技術(shù)實(shí)現(xiàn)在軌/機(jī)載/車載激光雷達(dá)點(diǎn)云數(shù)據(jù)實(shí)時(shí)處理有一定的借鑒。
References)
[1] 黎荊梅, 周梅, 李傳榮. 陣列推掃式機(jī)載激光雷達(dá)三維點(diǎn)云解算方法研究[J]. 遙感技術(shù)與應(yīng)用, 2013, 28(6): 1033-1038. LI Jingmei, ZHOU Mei, LI Chuanrong. Research on Points Position Cloud Calculation Method of Airborne Linear Array Push-broom LiDAR[J]. Remote Sensing Technology and Application, 2013, 28(6): 1033-1038. (in Chinese)
[2] 許春曉, 周峰. 星載激光遙感技術(shù)的發(fā)展及應(yīng)用[J]. 航天返回與遙感, 2009, 30(4): 26-31. XU Chunxiao, ZHOU Feng. Development and Applications of Space-borne Laser Remote Sensing Technology[J]. Spacecraft Recovery & Remote Sensing, 2009, 30(4): 26-31. (in Chinese)
[3] 楊浩, 游安清, 潘文武, 等. 車載激光雷達(dá)三維點(diǎn)云重構(gòu)與漫游方法[J]. 太赫茲科學(xué)與電子信息學(xué)報(bào), 2015, 13(4): 579-583. YANG Hao, YOU Anqing, PAN Wenwu, et al. Reconstruction of 3D Point Cloud Based on Vehicle-borne LiDAR and Research on Roaming Methods[J]. Journal of Terahertz Science and Electronic Information Technology, 2015, 13(4): 579-583. (in Chinese)
[4] 汪開(kāi)理. 三維激光點(diǎn)云與全景影像匹配融合方法[J]. 測(cè)繪通報(bào), 2013, 12: 130-131. WANG Kaili. The Method of Fusion of 3D Laser Point Cloud and CCD Image[J]. Bulletin of Surveying and Mapping, 2013, 12: 130-131. (in Chinese)
[5] 陳振嬌, 徐新宇, 張猛華. EDMA3數(shù)據(jù)傳輸方式在視頻圖像處理系統(tǒng)中的應(yīng)用[J]. 電子與封裝, 2015, 15(4): 28-31. CHEN Zhenjiao, XU Xinyu, ZHANG Menghua. Data Transfers by EDMA3 in Video Image Processing System[J]. Electronics & Packaging, 2015, 15(4): 28-31. (in Chinese)
[6] 但永平, 彭紅濤, 王東云, 等. EDMA3在圖像數(shù)據(jù)快速傳輸中的應(yīng)用[J]. 液晶與顯示, 2013, 28(1): 99-104. DAN Yongping, PENG Hongtao, WANG Dongyun, et al. Application of EDMA3 in Rapid Transmission of Image Data[J]. Chinese Journal of Liquid Crystals and Displays, 2013, 28(1): 99-104. (in Chinese)
[7] 劉力, 張鵬, 楊軍. 基于EDMA3控制器的多通道音頻數(shù)據(jù)傳輸[J]. 電聲技術(shù), 2014, 38(8): 59-61. LIU Li, ZHANG Peng, YANG Jun. Multi-channel Audio Data Transmission Based on EDMA3 Controller[J]. Audio Engineering, 2014, 38(8): 59-61. (in Chinese)
[8] KeyStone Architecture Enhanced Direct Memory Access (EDMA3) Controller User Guide[Z]. Texas Instruments, 2014.
[9] 李靜, 安康. EDMA3在視頻采集和顯示系統(tǒng)中的運(yùn)用[J]. 實(shí)驗(yàn)室科學(xué), 2010, 13(1): 81-84. LI Jing, AN Kang. Application of EDMA3 in Video Capture and Display System[J]. Laboratory Science, 2010, 13(1):81-84. (in Chinese)
[10] 劉嵩, 喻勝輝, 劉海華, 等. 基于EDMA的多通道數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制, 2009, 17(7): 1429-1434. LIU Song, YU Shenghui, LIU Haihua, et al. Realization of Multi-channel Data Transmission Based on EDMA[J]. Computer Measurement & Control, 2009, 17(7): 1429-1434. (in Chinese)
[11] 余福榮, 羅海波, 胡宇, 等. 基于DSP處理系統(tǒng)的多路數(shù)據(jù)傳輸方法與實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用, 2014, 40(4): 25-28. YU Furong, LUO Haibo, HU Yu, et al. The Method and Implementation of Multi-channel Data Transmission Based on DSP Processing Systems[J]. Application of Electronic Technique, 2014, 40(4): 25-28. (in Chinese)
[12] 張麗娜, 張濤. EDMA3在實(shí)時(shí)視頻解碼中的應(yīng)用[J]. 電視技術(shù), 2014, 38(9): 81-84. ZHANG Lina, ZHANG Tao. Application of EDMA3 in Real-time Video Decoding [J]. Video Engineering, 2014, 38(9): 81-84. (in Chinese)
[13] 肖亮, 張學(xué)健. 基于多核DSP的超聲成像處理算法的并行實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用, 2013, 39(6): 27-30. XIAO Liang, ZHANG Xuejian. Parallel Implementation of Processing Algorithm of Ultrasound Imaging Based on Multi-core DSP[J]. Application of Electronic Technique, 2013, 39(6): 27-30. (in Chinese)
[14] 周禮慶. 嵌入式視頻處理 EDMA 數(shù)據(jù)存儲(chǔ)[J]. 科技情報(bào)開(kāi)發(fā)與經(jīng)濟(jì), 2011, 21(12): 112-113. ZHOU Liqing. Embedded Video Processing for EDMA Data Storage[J]. SCI-TECH Information Development &Economy, 2011, 21(12): 112-113. (in Chinese)
[15] 譚欽紅, 張艷, 劉永強(qiáng). 基于TMS320DM6437的4通道視頻數(shù)據(jù)的高速傳輸[J]. 電視技術(shù), 2014, 38(11): 71-73. TAN Qinhong, ZHANG Yan, LIU Yongqiang. High-speed Transmission of Four-channel Video Data Based on TMS320DM6437[J]. Video Engineering, 2014, 38(11): 71-73. (in Chinese)
[16] 顧永紅. 基于EDMA3實(shí)現(xiàn)TMS320C64X與FPGA的數(shù)據(jù)傳輸[J]. 信息化研究, 2012, 38(4): 61-63. GU Yonghong. The Application of Remote Service in Cloud Patent Examination[J]. Informatization Research, 2012, 38(4): 61-63. (in Chinese)
[17] 陳振華, 鄧少芝, 許寧生. EDM A數(shù)據(jù)傳輸方式在基于DSP的視頻信號(hào)處理系統(tǒng)中的應(yīng)用[J]. 液晶與顯示, 2007, 22(6): 719-724. CHEN Zhenhua, DENG Shaozhi, XU Ningsheng. Data Transfers by EDMA in Video Signal Processing System[J]. Chinese Journal of Liquid Crystals and Displays, 2007, 22(6): 719-724. (in Chinese)
[18] TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Data Manual[M]//Texas Instruments, 2014.
[19] Keystone Architecture DDR3 Memory Controller User's Guide[Z]. Texas Instruments, 2015.
[20] TMDXEVM6678L EVM Technical Reference Manual Version 2.0[Z]. Texas Instruments, 2011.
Application of EDMA3 in Real-time LiDAR Point Cloud Calculation
LIU Chao1,2LI Chuanrong1HU Jian1HE Wenjing1NIU Jingyu1,2MENG Fanrong1
(1 Key Laboratory of Quantitative Remote Sensing lnformation Technology, Academy of Opto-electronics, Chinese Academy of Sciences, Beijing 100094, China)
(2 University of Chinese Academy of Sciences, Beijing 100049, China)
Due to the high demand for real-time processing of the in-orbit, airborne and vehicle Light Detection And Ranging (LiDAR) point cloud calculation and their massive data volume, the LiDAR data should be processed in high-speed internal memory in DSP. To solve the problem that the internal memory is usually small for the LiDAR data, a data cache mechanism is established using high-speed internal memory in DSP and large-size external memory, and a Ping-Pong buffering method based on Enhanced Direct Memory Access (EDMA3) is used to transmit LiDAR data between the two level cache blocks for point cloud calculation. With considering the format of LiDAR data, it is segmented into several pieces along its row. By using the EDMA3 Ping-Pong buffering method and the DSP’s CPU read/write method, the LiDAR data transmission test is performed on DSP development board for data segmentations of different sizes. Bycomparing the data transmission performance of the two methods, the improvement of Lidar data transmission rate made by the EDMA3 Ping-Pong buffering method is verified. The determination of data segmentation size to best improve the LiDAR data transmission rate is deeply discussed, making reference to the implementation of the real-time point cloud calculation.
point cloud calculation; digital signal processor (DSP); the third generation enhanced direct memory access (EDMA3); ping-pong buffering
TP319
A
1009-8518(2016)06-0057-09
10.3969/j.issn.1009-8518.2016.06.007
劉超,男,1989年生,2012年獲山東大學(xué)通信工程專業(yè)學(xué)士學(xué)位,現(xiàn)在中國(guó)科學(xué)院大學(xué)電子與通信工程專業(yè)攻讀碩士學(xué)位。研究方向?yàn)榍度胧綌?shù)據(jù)處理。E-mail:liuchao13@mails.ucas.ac.cn。
(編輯:劉穎)
2016-03-15
國(guó)家863主題項(xiàng)目(2015AA123801)
李傳榮,男,1956年生,研究員。研究方向?yàn)檫b感地面系統(tǒng)工程與新型遙感器應(yīng)用。E-mail:crli@aoe.ac.cn。