可重構(gòu)的多DSP圖像并行處理系統(tǒng)
引言
隨著多媒體圖像處理應(yīng)用的迅速發(fā)展,體積小、重量輕、結(jié)構(gòu)靈活、處理能力強(qiáng)的嵌入式數(shù)字圖像處理系統(tǒng)在工業(yè)、醫(yī)學(xué)等方面都有越來(lái)越廣泛的需求。實(shí)時(shí)性高、計(jì)算復(fù)雜、數(shù)據(jù)量大是圖像處理系統(tǒng)面臨的重大挑戰(zhàn)。并行計(jì)算是提高處理速度最有效的技術(shù)之一,圖像并行處理技術(shù)為提高圖像處理效率提供了廣闊的空間。圖像并行處理包括并行算法和多處理器并行硬件系統(tǒng),圖像處理并行算法的執(zhí)行效率依賴(lài)于多處理器系統(tǒng)的硬件結(jié)構(gòu)。通常,一種并行結(jié)構(gòu)只適合于一類(lèi)并行算法的映射。
20世紀(jì)90年代至今,圖像并行處理技術(shù)一直是圖像處理領(lǐng)域研究的熱點(diǎn)之一。參考文獻(xiàn)分別對(duì)并行處理結(jié)構(gòu)及其實(shí)現(xiàn)方法進(jìn)行了探討,提出了流水結(jié)構(gòu)、分列并行等很有價(jià)值的硬件并行結(jié)構(gòu)框架。目前,圖像并行處理結(jié)構(gòu)設(shè)計(jì)面臨的主要問(wèn)題可以概括為兩個(gè)方面:
①圖像并行處理硬件結(jié)構(gòu)復(fù)雜,在實(shí)際應(yīng)用中圖像處理結(jié)構(gòu)的開(kāi)發(fā)周期長(zhǎng)、成本高;
②面向圖像處理算法的硬件結(jié)構(gòu)針對(duì)性設(shè)計(jì)方法導(dǎo)致圖像處理平臺(tái)的可重用性差,調(diào)整、擴(kuò)展和升級(jí)困難。
本文構(gòu)建的可重構(gòu)并行計(jì)算系統(tǒng)可以通過(guò)配置可重構(gòu)處理單元來(lái)滿(mǎn)足不同應(yīng)用的計(jì)算要求。這樣的系統(tǒng)使圖像處理結(jié)構(gòu)設(shè)計(jì)與圖像處理的算法設(shè)計(jì)分離,具有很高的性能并且結(jié)構(gòu)靈活,能大大提高圖像處理并行算法的執(zhí)行效率和加速比。
1 傳統(tǒng)圖像并行處理技術(shù)
1.1 圖像并行處理系統(tǒng)概述
目前,用于嵌入式圖像處理系統(tǒng)的高速器件主要是DSP和FPGA。處理核心的合理選用是影響并行系統(tǒng)處理能力的一個(gè)關(guān)鍵因素。
并行處理的目的是通過(guò)采用多個(gè)處理單元同時(shí)處理輸入信息來(lái)縮短任務(wù)的執(zhí)行時(shí)間。在任務(wù)和算法確定的情況下,Amdahl定律可表明:加速比與任務(wù)并行度和處理單元個(gè)數(shù)密切相關(guān)。在任務(wù)并行度一定的情況下,增加處理單元所獲得的加速比有一個(gè)極限值,任務(wù)的并行度制約著并行處理機(jī)的性能。
在實(shí)際應(yīng)用中,還必須考慮各個(gè)處理單元之間的數(shù)據(jù)交換和同步時(shí)間。由于比串行程序執(zhí)行增加了數(shù)據(jù)通信和同步等待等開(kāi)銷(xiāo),因此當(dāng)加速比Sp<p(p為處理單元個(gè)數(shù))時(shí),并行效率Eff<1。為使任務(wù)執(zhí)行時(shí)間縮短而Sp增大,增加處理單元個(gè)數(shù)p成為首要手段,同時(shí)要將任務(wù)進(jìn)行更細(xì)粒度的劃分以增加任務(wù)的并行度。
如圖1所示,在增加處理單元和任務(wù)細(xì)粒度化的同時(shí)將帶來(lái)總通信量的增加,影響了Sp的增加并導(dǎo)致Eff呈下降趨勢(shì)。
1.2 并行計(jì)算硬件體系結(jié)構(gòu)
并行計(jì)算處理單元之間的網(wǎng)絡(luò)結(jié)構(gòu)大致可分為2種:一種是共享總線(xiàn)或共享存儲(chǔ)器系統(tǒng),稱(chēng)為“緊耦合式并行系統(tǒng)”,如圖2所示;另一種是各處理單元有獨(dú)立的數(shù)據(jù)存儲(chǔ)器而通過(guò)通信口相連的分布式并行系統(tǒng),稱(chēng)為“松耦合式系統(tǒng)”,如圖3所示。
兩種并行計(jì)算體系結(jié)構(gòu)的比較如表1所列。
1.3 并行算法到并行結(jié)構(gòu)的映射
一個(gè)任務(wù)要在多處理機(jī)系統(tǒng)上得到處理,首先必須將其分解成一些子任務(wù),再由多處理系統(tǒng)中的各處理機(jī)分別處理這些子任務(wù),協(xié)同完成該任務(wù)。如圖4所示,并行算法在并行硬件系統(tǒng)上的應(yīng)用是一個(gè)映射過(guò)程。一類(lèi)并行算法依賴(lài)于適合的并行網(wǎng)絡(luò)結(jié)構(gòu)才能高效率地運(yùn)行。
導(dǎo)致并行算法與并行結(jié)構(gòu)不匹配的原因主要有2個(gè):一是欲把一個(gè)系統(tǒng)上開(kāi)發(fā)的并行算法用于另一個(gè)系統(tǒng)上;二是由于問(wèn)題內(nèi)在的并行性,使并行算法與并行結(jié)構(gòu)不匹配。
常用圖像處理算法的特點(diǎn)及適用的并行處理結(jié)構(gòu)分析如表2所列。
綜上所述,傳統(tǒng)的共享總線(xiàn)系統(tǒng)與分布式并行系統(tǒng)分別適用于不同的圖像并行處理算法。分布式并行系統(tǒng)的不同連接方式之間也有較大的差異。并行算法的高效率運(yùn)行依賴(lài)于并行硬件拓?fù)浣Y(jié)構(gòu)的支持,某種硬件結(jié)構(gòu)只適合一類(lèi)并行算法。一般情況,一個(gè)圖像處理任務(wù)是多個(gè)算法的集合,并行系統(tǒng)單靠某種固定結(jié)構(gòu)無(wú)法適應(yīng)所有的并行算法,這就給圖像處理系統(tǒng)帶來(lái)了問(wèn)題。當(dāng)并行硬件拓?fù)浣Y(jié)構(gòu)不適合并行算法時(shí),系統(tǒng)的性能和算法執(zhí)行效率都會(huì)受到影響,需要對(duì)并行硬件結(jié)構(gòu)做出改進(jìn)和完善。
2 可重構(gòu)數(shù)字圖像并行處理系統(tǒng)
2.1 可重構(gòu)處理系統(tǒng)的組成
可重構(gòu)計(jì)算是指基于可改變(可動(dòng)態(tài)改變)的硬件,以硬件適應(yīng)算法(即可重構(gòu)特性)、硬件定制和硬件并行的方式實(shí)現(xiàn)計(jì)算??芍貥?gòu)處理系統(tǒng)結(jié)合了可重構(gòu)硬件處理單元和軟件可編程處理器,系統(tǒng)允許對(duì)可重構(gòu)處理單元進(jìn)行配置以滿(mǎn)足不同應(yīng)用的具體計(jì)算要求。
如圖5所示,可重構(gòu)處理系統(tǒng)的組成基本相同,即通用處理器(陣列)、可重構(gòu)資源(陣列)、存儲(chǔ)器(陣列)、公用存儲(chǔ)器、系統(tǒng)接口等。面向圖像處理的可重構(gòu)系統(tǒng)在器件選用上通用處理器可采用適合圖像處理的高性能DSP陣列。
2.2 可重構(gòu)數(shù)字圖像并行處理系統(tǒng)的優(yōu)點(diǎn)
可重構(gòu)數(shù)字圖像并行處理系統(tǒng)有以下優(yōu)點(diǎn):
①FPGA內(nèi)部的邏輯功能可以在系統(tǒng)運(yùn)行過(guò)程中動(dòng)態(tài)重載,使系統(tǒng)可以實(shí)現(xiàn)多DSP之間拓?fù)涞撵`活改變以適應(yīng)各種并行算法的需求,使算法執(zhí)行效率達(dá)到最高。靜態(tài)重構(gòu)和動(dòng)態(tài)重構(gòu)使系統(tǒng)相比傳統(tǒng)固定系統(tǒng)具有很強(qiáng)的通用性和適應(yīng)性。
②系統(tǒng)的“多DSP+FPGA”結(jié)構(gòu)能將系統(tǒng)任務(wù)劃分成適合FPGA處理的低層信號(hào)處理和圖像預(yù)處理部分及適合DSP處理的算法,便于發(fā)揮兩者的優(yōu)勢(shì);且 FPGA可通過(guò)軟件適應(yīng)不同時(shí)序格式的數(shù)字圖像,使得系統(tǒng)具有很高的性能和靈活性。
3 系統(tǒng)設(shè)計(jì)實(shí)例
3.1 系統(tǒng)硬件結(jié)構(gòu)
基于TI公司C6000系列DSP和Xilinx公司Spartan一3系列FPGA,構(gòu)建基于圖像的點(diǎn)源目標(biāo)識(shí)別系統(tǒng),對(duì)在線(xiàn)可重構(gòu)數(shù)字圖像并行處理系統(tǒng)的可實(shí)現(xiàn)性和性能進(jìn)行驗(yàn)證。
硬件結(jié)構(gòu)如圖6所示。圖像輸入FPGA—P,各DSP分別外擴(kuò)一片雙口RAM,且將總線(xiàn)EMIFA接到FPGA—P。FPGA—P可用來(lái)完成圖像時(shí)序處理、圖像數(shù)據(jù)的轉(zhuǎn)換、圖像濾波等預(yù)處理工作,且可以靈活地將處理后的圖像數(shù)據(jù)保存到大容量公用數(shù)據(jù)存儲(chǔ)器SRAM中,并將各DSP訪(fǎng)問(wèn)的仲裁邏輯或分配保存到各DSP外擴(kuò)的雙口RAM中。這種結(jié)構(gòu)使系統(tǒng)可以輕松地適應(yīng)多路圖像輸入。
DSP陣列可以并行完成各種圖像處理算法。FPGA-C建立起DSP間的通信鏈路且暫存各DSP的處理結(jié)果。構(gòu)建通信鏈路的方法有:用FPGA—C在兩 DSP之間構(gòu)造FIF0或小容量雙口RAM,構(gòu)建EMIF—HPI通路等。DSP-M可以根據(jù)算法需求通過(guò)McBSP在線(xiàn)配置FPGA—C,F(xiàn)PGA—C 的配置文件存放在DSP—M外擴(kuò)的Flash中,這樣就實(shí)現(xiàn)了DSP對(duì)FPGA的在線(xiàn)可重構(gòu)。同時(shí),DSP-M擴(kuò)展了USB、PCI、McBSP等多種接口用來(lái)輸出圖像處理結(jié)果。
3.2 實(shí)驗(yàn)及結(jié)果分析
系統(tǒng)用于實(shí)現(xiàn)4路分辨率為256×256、幀頻為50 Hz的8位圖像(如圖7所示)的移動(dòng)點(diǎn)源目標(biāo)識(shí)別。
處理過(guò)程包括圖像時(shí)序采集、轉(zhuǎn)換,圖像濾波,去除噪聲,姿態(tài)融合和目標(biāo)識(shí)別等環(huán)節(jié)。圖像分配和算法執(zhí)行所需平均時(shí)間僅為9.5 ms。
若用共享總線(xiàn)系統(tǒng)來(lái)實(shí)現(xiàn),則多路圖像數(shù)據(jù)的存儲(chǔ)和分配以及處理器之間的通信將消耗大量時(shí)間,大大降低系統(tǒng)效率。若用分布式并行系統(tǒng)來(lái)實(shí)現(xiàn),則姿態(tài)和多路圖像的綜合處理會(huì)給某一個(gè)處理器帶來(lái)很大的通信量和運(yùn)算量。將實(shí)驗(yàn)中的圖像處理任務(wù)在同等規(guī)模的3種系統(tǒng)上分別實(shí)現(xiàn),執(zhí)行時(shí)間如圖8所示。
如圖9所示,這些不同形式的計(jì)算系統(tǒng)是性能和通用性的不同折衷??芍貥?gòu)算系統(tǒng)代表了介于ASIC和通用處理器之間的計(jì)算途徑,在通用性和性能上都優(yōu)于傳統(tǒng)的硬件系統(tǒng)。圖像處理中數(shù)據(jù)量大、算法復(fù)雜,與其他計(jì)算技術(shù)相比,可重構(gòu)計(jì)算能充分發(fā)揮出效率優(yōu)勢(shì)??芍貥?gòu)系統(tǒng)具有很多優(yōu)點(diǎn),但重構(gòu)延遲和軟硬件劃分問(wèn)題是應(yīng)用中需要重點(diǎn)考慮的問(wèn)題。
結(jié)語(yǔ)
傳統(tǒng)固定結(jié)構(gòu)并行圖像處理系統(tǒng)不能適應(yīng)多種圖像處理并行算法。而可重構(gòu)數(shù)字圖像并行處理系統(tǒng)數(shù)據(jù)流和結(jié)構(gòu)組織靈活,適于模塊化設(shè)計(jì),能大大提高并行算法的執(zhí)行效率;有較強(qiáng)的通用性,同時(shí)其開(kāi)發(fā)周期較短,易于維護(hù)和擴(kuò)展??芍貥?gòu)數(shù)字圖像并行處理系統(tǒng)為多媒體圖像處理提供了一個(gè)非常有價(jià)值的發(fā)展方向。