0 引言
隨著新型傳感技術(shù)的發(fā)展,衛(wèi)星遙感圖像的分辨率迅速提升,數(shù)據(jù)量的爆炸式增長趨勢為傳輸信道和存儲空間帶了極大的壓力,因而,能否對遙感圖像進(jìn)行在軌實時高效壓縮便成為制約遙感技術(shù)發(fā)展的一個關(guān)鍵問題[1]。目前,相對于基于離散余弦變化廣泛采用的小波變換壓縮算法具有非常好的抗誤碼性能,不過相對于早期的壓縮算法,這類算法的復(fù)雜度明顯提高,運(yùn)算量和內(nèi)存消耗增大[2],這對圖像壓縮處理系統(tǒng)提出了較高的要求。
FPGA和DSP在數(shù)據(jù)處理平臺中發(fā)揮著日益重要的作用,F(xiàn)PGA擅長執(zhí)行并行處理,而DSP擅長多算法任務(wù)和多條件操作等,因而采用FPGA和多片DSP的并行運(yùn)算系統(tǒng)受到越來越多的關(guān)注。
為了探索遙感圖像的機(jī)載實時壓縮技術(shù),本文首先根據(jù)遙感圖像處理數(shù)據(jù)及流程特點(diǎn),設(shè)計了2 FPGA+8 DSP的并行拓?fù)浼軜?gòu),并構(gòu)建了機(jī)載實時處理硬件平臺,最后基于該平臺介紹了JPEG2000壓縮算法的實現(xiàn)方法,實驗結(jié)果表明該平臺具有較強(qiáng)的遙感數(shù)據(jù)實時處理能力。
1 圖像壓縮系統(tǒng)設(shè)計
1.1 芯片選型
在本系統(tǒng)中,F(xiàn)PGA主要實現(xiàn)外部接口、邏輯控制和時序控制等功能,并承擔(dān)部分?jǐn)?shù)據(jù)處理工作,因此,需要具有較大的存儲空間,支持PCIE接口設(shè)計,具備較多的邏輯資源實現(xiàn)圖像預(yù)處理功能,并具有足夠的I/O口為FPGA管理多片DSP提供管腳支持。本系統(tǒng)選用Xilinx公司的XC6VLX240T。
為了滿足遙感圖像實時壓縮的要求,系統(tǒng)中選用的DSP要具有很強(qiáng)的定點(diǎn)和浮點(diǎn)運(yùn)算能力;要具有高性能的互聯(lián)接口;支持DSP之間、DSP與FPGA之間建立高速的數(shù)據(jù)通道;并且具有較大的內(nèi)部存儲空間,適應(yīng)圖像壓縮過程中大量中間數(shù)據(jù)的高速緩存。因此本系統(tǒng)選用ADI公司的TS201。
1.2 并行互聯(lián)方式
實現(xiàn)大規(guī)模運(yùn)算的高速執(zhí)行,需要借助多個處理單元同時運(yùn)行來減少任務(wù)執(zhí)行時間。并行技術(shù)可以體現(xiàn)在處理器內(nèi)部、處理器級以及系統(tǒng)級等方面,處理器間的拓?fù)浣Y(jié)構(gòu)可分為兩種[3]:(1)多處理器共享總線和存儲器的緊耦合結(jié)構(gòu);(2)多處理器通過獨(dú)立接口實現(xiàn)互聯(lián)的松耦合結(jié)構(gòu)。
緊耦合結(jié)構(gòu)的優(yōu)點(diǎn)在于提供全局物理地址空間,允許任何處理器對等訪問全部存儲器,便于程序設(shè)計。ADSP-TS201的主機(jī)接口可以支持最高64 bit位寬的總線共享,全局映射的統(tǒng)一尋址空間可實現(xiàn)多處理器及存儲器間的無縫連接。但是,當(dāng)處理器數(shù)目較多時,頻繁的數(shù)據(jù)交換會產(chǎn)生嚴(yán)重的總線控制權(quán)競爭問題,從而導(dǎo)致系統(tǒng)運(yùn)算效率降低,特別是在進(jìn)行大數(shù)據(jù)量運(yùn)算和大數(shù)據(jù)量通信時,這個缺點(diǎn)會極大地制約整個系統(tǒng)的運(yùn)行效率。遙感圖像的實時壓縮是運(yùn)算密集型、數(shù)據(jù)吞吐密集型的數(shù)據(jù)處理過程,緊耦合結(jié)構(gòu)很難實現(xiàn)運(yùn)算、存儲、傳輸間的平衡,不利于實現(xiàn)復(fù)雜壓縮算法的實時處理。
在分布式松耦合結(jié)構(gòu)中,每片DSP通過獨(dú)立的接口連接到FPGA,這樣就能避免多個DSP同時訪問FPGA時的數(shù)據(jù)沖突。FPGA與DSP間常用的接口設(shè)計方法主要有3種:(1)采用外部雙口RAM;(2)在FPGA內(nèi)部構(gòu)建雙口RAM;(3)通過DSP的高速傳輸接口。前兩種連接方式中數(shù)據(jù)直接通過總線傳輸,且不涉及復(fù)雜的通信協(xié)議,接口設(shè)計比較簡單[4],但是當(dāng)芯片數(shù)量較多時,硬件設(shè)計中的管腳及布線壓力會很大;
另外DSP的數(shù)據(jù)總線將同時用于與FPGA和與外部存儲器通信,仍然會存在總線競爭風(fēng)險。TS201可提供4路鏈路口,在采用4位并行方式傳輸時,可支持高達(dá)1.2 GB/s的雙向吞吐率;數(shù)據(jù)通信可由處理器核控制,也可由DMA控制器控制,而不需要占用處理器資源,這能為FPGA與DSP、DSP與外部存儲器以及DSP與DSP之間的高速數(shù)據(jù)傳輸提供便利,解決在數(shù)據(jù)密集型處理中這一制約系統(tǒng)整體性能的問題,因此,本系統(tǒng)將采用這種互聯(lián)結(jié)構(gòu)。
1.3 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)采用2片F(xiàn)PGA和8片DSP的拓?fù)浣Y(jié)構(gòu),其結(jié)構(gòu)框圖如圖1所示。8片DSP分為結(jié)構(gòu)對稱的2簇,構(gòu)成兩個并行的運(yùn)算子模塊。每簇內(nèi)的4片DSP利用鏈路口點(diǎn)對點(diǎn)互聯(lián),并且每片DSP分別通過一個鏈路口與FPGA相連。2片F(xiàn)PGA各負(fù)責(zé)一個運(yùn)算子模的任務(wù)和數(shù)據(jù)交互管理工作。這種拓?fù)浣Y(jié)構(gòu)使得簇內(nèi)各DSP以及DSP與FPAG間都能實現(xiàn)高速互聯(lián),且增強(qiáng)了數(shù)據(jù)流的靈活性,可實現(xiàn)按任務(wù)劃分的流水并行計算,也可實現(xiàn)按數(shù)據(jù)劃分的分布式并行計算。
每片DSP都外掛4 M×32 bit的SDRAM作為外部存儲空間,利用TS201內(nèi)的SDRAM地址映射空間和外部接口,借助SDRAM控制器可輕松實現(xiàn)無縫連接,滿足大量數(shù)據(jù)實時處理過程中的存儲需求。DSP采用EPROM和鏈路口相結(jié)合的程序引導(dǎo)和加載方式[5],每簇外掛1片F(xiàn)lash,簇內(nèi)其他DSP采用鏈路口形式,這種設(shè)計避免了給每片DSP配備Flash,降低了功耗和電路面積。
1.4 FPGA程序設(shè)計
在本系統(tǒng)中,F(xiàn)PGA作為邏輯控制中心,主要實現(xiàn)以下幾個功能:
(1)數(shù)據(jù)解包、切分、串/并轉(zhuǎn)換、打包、分發(fā)等數(shù)據(jù)管理功能;
(2)數(shù)據(jù)緩存,利用DDR3 SDRAM乒乓作業(yè)的工作方式實現(xiàn)數(shù)據(jù)無縫緩存;
(3)快速流水協(xié)議,實現(xiàn)與TS201鏈路口進(jìn)行高速通信;
(4)自定義接口協(xié)議,參考快速流水協(xié)議設(shè)計自定義協(xié)議,通過LVDS總線實現(xiàn)與另一片F(xiàn)PGA通信;
(5)數(shù)據(jù)預(yù)處理功能,利用內(nèi)部DSP和邏輯資源實現(xiàn)數(shù)據(jù)預(yù)處理,發(fā)揮FPGA并行處理的運(yùn)算優(yōu)勢。此外,系統(tǒng)中的FPGA_A還負(fù)責(zé)與上位機(jī)通信,因此,需要利用設(shè)計PCIE接口單元。FPGA_A中的邏輯結(jié)構(gòu)如圖2所示,F(xiàn)PGA_B采用相似的邏輯設(shè)計。
2 JPEG2000壓縮應(yīng)用實例
JPEG2000作為新一代靜止圖像壓縮標(biāo)準(zhǔn),能在甚低比特率壓縮時提供良好的率失真特性和主觀視覺質(zhì)量,并且具有非常好的抗誤碼性能,在星載遙感圖像壓縮領(lǐng)域受到越來越多的關(guān)注。
JPEG2000的基本編碼過程為:源圖像數(shù)據(jù)經(jīng)正向預(yù)處理后進(jìn)行離散小波變換(DWT),對變換后的DWT系數(shù)進(jìn)行量化,再進(jìn)行熵編碼,最后根將熵編碼后的數(shù)據(jù)組織成壓縮碼流輸出[6]。
為了使程序在TS201上高效運(yùn)行,從系統(tǒng)層、算法層、代碼層三個不同層面上對JPEG2000壓縮程序進(jìn)行了優(yōu)化[7,8],例如:優(yōu)化DWT中的中間結(jié)果存儲方式,在節(jié)約內(nèi)存的同時減少訪問時間;采用建立上下文索引表的方法減小嵌入式最優(yōu)截斷編碼過程中的掃描運(yùn)算量;適當(dāng)修改數(shù)據(jù)類型,進(jìn)行數(shù)據(jù)拼接存儲,提高數(shù)據(jù)讀寫效率等。
2.1 DSP與FPGA接口設(shè)計
此外,系統(tǒng)的高效運(yùn)行還依賴于高效的數(shù)據(jù)收發(fā)機(jī)制。DSP通過Link Port接口與FPGA通信,實現(xiàn)原始圖像數(shù)據(jù)的接收和壓縮碼流的發(fā)送,本系統(tǒng)DSP中的發(fā)送和接收單元中分別采用了乒乓緩存+突發(fā)式DMA傳輸?shù)脑O(shè)計方法。以數(shù)據(jù)接收單元為例,DSP中分配了3個緩存空間:input_buffer1、input_buffer2和input,其中,input_buffer1和input_buffer2以乒乓作業(yè)的方式緩存接收數(shù)據(jù),input用于緩存預(yù)處理后的圖像數(shù)據(jù),以備后續(xù)壓縮處理。
在接收數(shù)據(jù)時,DSP接收到FPGA的發(fā)送指令,便開啟Link Port接口接收數(shù)據(jù)到Link Port Receive Buffer中,在接收到指定數(shù)據(jù)量后,Link Port接口自動開啟DMA傳輸,將數(shù)據(jù)轉(zhuǎn)移到input_buffer1中,并關(guān)閉Link Port口,以防止接收到錯誤數(shù)據(jù)。此后,DSP對input_buffer1中的數(shù)據(jù)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換等預(yù)處理,然后轉(zhuǎn)存到input緩存區(qū)中??紤]到Link Port接收、DMA傳輸均需要耗時,而又可以不需要內(nèi)核參與。
因此,設(shè)計了雙通道乒乓作業(yè)的接收方式,這樣在數(shù)據(jù)的突發(fā)傳輸任務(wù)中,可以配置好參數(shù)交給Link Port接口和DMA來獨(dú)立完成,從而解放出內(nèi)核的邏輯計算單元,使之專注于運(yùn)算和判斷。DSP內(nèi)核在監(jiān)測到本次DMA傳輸完成后,首先交換DMA接收端的選擇指針,指向input_buffer2,再開啟Link Port接口,便可以利用內(nèi)核進(jìn)行預(yù)處理操作了。處理過程中如果有新數(shù)據(jù)到來,硬件會自動完成接收操作并更改狀態(tài)標(biāo)識,內(nèi)核只需要在完成當(dāng)前處理后,查詢其狀態(tài)標(biāo)識便可知道數(shù)據(jù)是否已經(jīng)接收完成。如此循環(huán),便可實現(xiàn)圖像數(shù)據(jù)的快速接收。
2.2 軟件設(shè)計流程
從系統(tǒng)層面來看,F(xiàn)PGA與其控制的4片DSP組成兩個運(yùn)算節(jié)點(diǎn)A、B,8個DSP之間執(zhí)行以數(shù)據(jù)劃分的分布式并行計算。FPGA_A通過PCIE總線接收源圖像數(shù)據(jù),解析包頭獲取任務(wù)信息并進(jìn)行串/并轉(zhuǎn)換、數(shù)據(jù)緩存、數(shù)據(jù)切分、將數(shù)據(jù)分發(fā)給DSP和FPGA_B等。DSP內(nèi)的壓縮處理以圖像塊為單位,在完成當(dāng)前圖像塊數(shù)據(jù)的接收后,開始壓縮處理并將壓縮碼流實時回傳至FPGA,DSP內(nèi)程序流程如圖3所示。FPGA接收各DSP發(fā)送的壓縮數(shù)碼流數(shù)據(jù)包,再以圖像塊為單位進(jìn)行碼流重組、緩存,最終通過PCIE總線傳輸給上位機(jī)。
3 實驗結(jié)果
為了驗證壓縮系統(tǒng)的可行性,本文采用12 800×12 800的8 bit圖像數(shù)據(jù)分別進(jìn)行了2:1無損壓縮和8:1高倍率壓縮實驗。圖4所示為Lena圖像和一副紋理復(fù)雜的城市場景遙感圖像的無損壓縮實驗結(jié)果,可見系統(tǒng)具有較高的壓縮質(zhì)量。表1為應(yīng)用本平臺的JPEG2000壓縮系統(tǒng)的性能測試結(jié)果,無損壓縮時系統(tǒng)最高吞吐速率可達(dá)5.9 Mpixels/s,高倍率壓縮時性能略有提升,最高吞吐速率可達(dá)6.2 Mpixels/s,可見,本系統(tǒng)具有較強(qiáng)的數(shù)據(jù)處理能力。
4 結(jié)論
本文首先分析了多DSP并行處理拓?fù)浣Y(jié)構(gòu)及片間互聯(lián)方式,為了有效平衡系統(tǒng)運(yùn)行速度、數(shù)據(jù)傳輸能力和板上存儲空間三大因素,采用松耦合結(jié)構(gòu)設(shè)計了基于2 FPGA+8 DSP的高速大容量實時壓縮處理平臺。最后,基于該平臺實現(xiàn)了JPEG2000壓縮處理。實驗結(jié)果表明,該系統(tǒng)具有強(qiáng)大的數(shù)據(jù)處理和吞吐能力,能夠為遙感圖像實時壓縮應(yīng)用奠定技術(shù)基礎(chǔ)。
參考文獻(xiàn)
[1] 劉榮科,張曉林,廖小濤。星載遙感圖像壓縮編碼技術(shù)綜述[J]。遙測遙控,2004,25(2):7-12.
[2] 肖志東,肖明君,劉淼?;谛〔ㄗ儞Q的遙感圖像壓縮算法綜述[J]。科技創(chuàng)新導(dǎo)報,2008(35):75.
[3] Wu Jie.分布式系統(tǒng)設(shè)計[M]。高傳善,譯。北京:機(jī)械工業(yè)出版社,2001.
[4] 唐垚,曹劍中,李變俠,等。高分辨率圖像采集與壓縮系統(tǒng)的設(shè)計實現(xiàn)[J]??茖W(xué)技術(shù)與工程,2007,5(20):1510-1513.
[5] Analog Devices.ADSP-TS20x TigerSHARC processor boot loader kernels operation[Z].2004.
[6] ISO/IEC 15444-13:2008(E).Information technology-JPEG 2000 image coding system:An entry level JPEG 2000 encoder[S].2008.
[7] BISHOP S L,RAI S,GUNTURK B,et al.Reconfigurable implementation of wavelet integer lifting transforms for image compression[C].ReConFig 2006,IEEE International Conference on:1-9.
[8] LIAN C J,CHEN K F.Analysis and architecture design of block-coding engine for EBCOT in JPEG2000[J].IEEE Transactions on Circuits and Systems for Video Teehnology,2003,13(3):219-230.
編輯:jq
-
dsp
+關(guān)注
關(guān)注
552文章
7959瀏覽量
347926 -
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601238 -
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1792瀏覽量
64411 -
三線耦合結(jié)構(gòu)
+關(guān)注
關(guān)注
0文章
2瀏覽量
1674
發(fā)布評論請先 登錄
相關(guān)推薦
評論