基于DSP的數(shù)字圖像處理
隨著計算機、多媒體和數(shù)據(jù)通信技術(shù)的高速發(fā)展,數(shù)字圖像技術(shù)近年來得到了極大的重視和長足的發(fā)展,并在科學(xué)研究、工業(yè)生產(chǎn)、醫(yī)療衛(wèi)生、教育、娛樂、管理和通信等方面取得了廣泛的應(yīng)用。同時,人們對計算機視頻應(yīng)用的要求也越來越高,從而使得高速、便捷、智能化的高性能數(shù)字圖像處理設(shè)備成為未來視頻設(shè)備的發(fā)展方向,實時圖像處理技術(shù)在目標(biāo)跟蹤、機器人導(dǎo)航、輔助駕駛、智能交通監(jiān)控中都得到越來越多的應(yīng)用。由于圖像處理的數(shù)據(jù)量大,數(shù)據(jù)處理相關(guān)性高,實時的應(yīng)用環(huán)境決定嚴(yán)格的幀、場時間限制,因此實時圖像處理系統(tǒng)必須具有強大的運算能力。各種高性能DSP不僅可以滿足在運算性能方面的需要,而且由于DSP的可編程性,還可以在硬件一級獲得系統(tǒng)設(shè)計的極大靈活性。為了獲得足夠的計算能力,我們以兩片 TMS320C6201作為系統(tǒng)的運算中心構(gòu)筑了實時圖像處理系統(tǒng);為了獲取最大的靈活性,在系統(tǒng)體系機構(gòu)上采用了一種可重構(gòu)的FPGA計算系統(tǒng)模型。
1 功能強大的TMS320C6x
TMS320C6000是美國TI(Texas Instruments)公司于1997年推出的新一代高性能DSP芯片。這種芯片是定點、浮點兼容的DSP。其定點系列是 TMS32C62XX,浮點系列是TMS320C67XX。最早推出的C6201芯片的運算速度已經(jīng)達(dá)到1600MIPS,在業(yè)界首次突破1000MIPS,在數(shù)字信號處理器數(shù)里能力上創(chuàng)造了新的里程碑,并因此獲得了美國EDN雜志“1997年度創(chuàng)新大獎”2000年3月,TI發(fā)布了新的C64XX內(nèi)核,主頻1.1GHz,處理速度接近9000MIPS,總體性能比C62XX提高了10~15倍。其中C6416在2002年3月獲得EDN雜志“2001年度創(chuàng)新大獎”。
C6000內(nèi)部結(jié)構(gòu)的主要特點包括:
①定點/浮點系列兼容DSP,目前CPU主頻100MHz~600MHz。
②具有先進VLIW結(jié)構(gòu)內(nèi)核。
(1)8個獨立的功能單元:6個ALU(32/40bit),2個乘法器(16×16),浮點系列支持IEEE標(biāo)準(zhǔn)單精度和雙精度浮點運算。
(2)可以每周期執(zhí)行8條32bit指令,最大峰值速度4800MIPS。
(3)專用存取結(jié)構(gòu),32/64個32bit通用寄存器。
(4)指令打包技術(shù),減少代碼容量。
③具有類似RISC的指令集。
(1)32bit尋址范圍,支持bit尋址。
(2)支持40bitALU運算。
(3)支持bit操作。
(4)100%條件指令。
④片內(nèi)集成大容量SRAM,最大可達(dá)8Mbit。
⑤16/32/64bit高性能外部存儲器接口(EMIF)提供了與SDRAM、SBRAM和SRAM登同步/異步存儲器的直接接口。
⑥內(nèi)置高效率協(xié)處理器(C64X)。
(1)Viterbi編解碼協(xié)處理器(VCP),支持500路7.95kb/s AMR。
(2)Turbo碼編解碼協(xié)處理器(TCP),支持6路2Mb/s 3GPP。
⑦片內(nèi)提供多種集成外設(shè)(不同芯片的資源不同)
(1)多通道DMA/EDMA控制器
(2)多通道緩沖串口(McBSP)
(3)多通道音頻串口(McASP)
(4)可以訪問DSP整個存儲空間的主機口(HPI)
(5)32bit擴展總線(xBUS)
(6)32bit/33MHz PCI主/從模式接口
(7)32bit通用計數(shù)器(Timer)
(8)UTOPIA接口
(9)通用輸入/輸出(GPIO)
(10)總線主/從模式接口
(11)支持多種復(fù)位加載模式(Boot),提供3種節(jié)電控制模式(Power Down)
⑧支持IEEE一1149.1(JTAG)邊界掃描接口。
⑨內(nèi)核采用1.0/1.2/1.5/1.8V供電,周邊采用3.3V供電。
⑩0.12tzm0.18tμm CMOS工藝,5/6層金屬處理。BGA球柵陣列封裝。
TMS320C6x系列的DSP芯片結(jié)構(gòu)不同于一般的DSP,屬于類RISC結(jié)構(gòu),從而使它的c編譯器具有很高的效率,因此稱之為面向C語言結(jié)構(gòu)的 DSP芯片。這使得其在絕大多數(shù)應(yīng)用中,可以采用 C語言編寫TMS320C6x程序,從而充分利用大量用c描述的算法程序,并獲得遠(yuǎn)勝于傳統(tǒng)DSP程序的可維護性、可移植性、可繼承性,縮短開發(fā)周期。[!--empirenews.page--]
2 FPGA計算系統(tǒng)模型
在通常的并行系統(tǒng)設(shè)計中,微處理器在空間維上是固定的,而在時間維上是可變的;而連接的專用芯片在空間維和時間維上都是固定的。這樣的系統(tǒng)往往只能適用于特定應(yīng)用場合下的特定算法。為了使系統(tǒng)具有更加優(yōu)良的性能和靈活性,隨著可編程器件FPGA的應(yīng)用深入,一種新的通用處理模塊結(jié)構(gòu)呈現(xiàn)在我們面前——FPGA計算系統(tǒng)結(jié)構(gòu)。
FPGA是二十世紀(jì)80年代后期出現(xiàn)的新型的大規(guī)??删幊唐骷蛇壿媶卧突ミB線網(wǎng)絡(luò)兩部分組成,兩者均可編程。邏輯單元能完成一些基本操作。邏輯單元經(jīng)互連線網(wǎng)絡(luò)互連,通過對基本邏輯塊和互連線網(wǎng)絡(luò)編程,可以實現(xiàn)非常復(fù)雜的邏輯功能。由于FPGA是基于SRAM結(jié)構(gòu)的器件,所有的可編程邏輯加載在芯片內(nèi)部的SRAM上,因此可以通過一定的步驟在系統(tǒng)運行時進行編程來改變該器件的功能,從而實現(xiàn)更大的靈活性。
FPGA計算系統(tǒng)就是充分利用FPGA的高集成度和硬件可編程性在系統(tǒng)中用FPGA實現(xiàn)除了必要模塊(如微處理器和存儲器等)之外的其它邏輯和硬件互連,從而使系統(tǒng)具有空間上的可編程性。系統(tǒng)的空間可編程性是FPGA計算系統(tǒng)引入的新特征。它是指通過對FPGA的重新編程和配置來改變系統(tǒng)體系結(jié)構(gòu)等一系列硬件邏輯結(jié)構(gòu)。系統(tǒng)的空間可編程性是系統(tǒng)可重構(gòu)的前提,它使得硬件系統(tǒng)的設(shè)計趨于軟件編程化。然而需要指出的是,由于FPGA內(nèi)部結(jié)構(gòu)的完全分布性和內(nèi)部單元的百分之百的互連連通性,系統(tǒng)的硬件互連編程不象由中央處理單元引起的軟件編程那樣可以充分總結(jié)指令集。但在具體的系統(tǒng)設(shè)計中,可以根據(jù)實際的數(shù)據(jù)流結(jié)構(gòu)進行部分限制,這樣可以為用戶提供一些可選擇的重構(gòu)方案,方便用戶使用。
3 基于FPGA計算系統(tǒng)模型的雙DSP實時圖像處理系統(tǒng)
為了盡可能地獲得高性能,我們提出以兩個TMS320C62x為中央處理核心構(gòu)成雙DSP處理系統(tǒng),由FPGA(這里采用ALTERA的FLEX系列)實現(xiàn)系統(tǒng)互連。系統(tǒng)分為處理器模塊、FPGA組模塊和各總線接口模塊等,如圖1所示。
其中處理器模塊包含TMS320C62x、內(nèi)存空間以及相應(yīng)邏輯。處理器作為最小處理單元模塊而存在,可以完成相應(yīng)的處理子任務(wù)。在我們的系統(tǒng)中設(shè)置了兩個這樣的處理模塊。這兩個處理模塊都是在系統(tǒng)核心FPGA控制下運行的。而FPGA作為系統(tǒng)中心,負(fù)責(zé)兩個微處理器互相通信、互相協(xié)調(diào)以及它們與外界(這里通過主從總線和互連總線)的信息交換。同時,系統(tǒng)處理子任務(wù)可以由 FPGA直接派發(fā)給處理器。靈活的FPGA體系結(jié)構(gòu)設(shè)計是該系統(tǒng)有效性的保證。在實際應(yīng)用中,可以根據(jù)系統(tǒng)的任務(wù),通過配置FPGA控制兩個微處理器按流水線方式運行,也可以控制它們按MIMD方式并行處理同一輸入圖像。為了提高數(shù)據(jù)交換的效率,在FPGA控制下的數(shù)據(jù)交換中心設(shè)置了靈活的系統(tǒng)存儲空間。而這塊存儲空間與DSP的局部存儲空間構(gòu)成了一種分布共享式的結(jié)構(gòu)。然而不同于一般的分布共享式存儲結(jié)構(gòu)的是,我們的系統(tǒng)存儲空間相對獨立,不是直接掛接在各DSP的地址空間中,而是通過兩者的HPI口進行互連。從嚴(yán)格意義上講,這種結(jié)構(gòu)不能算分布共享式存儲結(jié)構(gòu),而應(yīng)稱之為一種松散的分布共享式存儲結(jié)構(gòu)。由于并行效率的要求,我們將系統(tǒng)存儲空間設(shè)置為兩個Bank結(jié)構(gòu),兩個Bank是獨立控制和運行的,系統(tǒng)的實現(xiàn)框圖見圖2。
由于系統(tǒng)的互連、各個接口以及數(shù)據(jù)通道都是通過FPGA完成,并在FPGA內(nèi)部實現(xiàn)除一些必要邏輯之外的其它所有邏輯,因此系統(tǒng)的重構(gòu)非常方便。這是系統(tǒng)設(shè)計中的最大特點。另外系統(tǒng)還有可測性好,可裁減性,系統(tǒng)設(shè)計的方便性等其它優(yōu)點。