基于DSP的數(shù)字圖像處理實(shí)現(xiàn)
隨著計(jì)算機(jī)、多媒體和數(shù)據(jù)通信技術(shù)的高速發(fā)展,數(shù)字圖像技術(shù)近年來(lái)得到了極大的重視和長(zhǎng)足的發(fā)展,并在科學(xué)研究、工業(yè)生產(chǎn)、醫(yī)療衛(wèi)生、教育、娛樂(lè)、管理和通信等方面取得了廣泛的應(yīng)用。同時(shí),人們對(duì)計(jì)算機(jī)視頻應(yīng)用的要求也越來(lái)越高,從而使得高速、便捷、智能化的高性能數(shù)字圖像處理設(shè)備成為未來(lái)視頻設(shè)備的發(fā)展方向,數(shù)字圖像處理(DigitalImageProcessing)是通過(guò)計(jì)算機(jī)對(duì)圖像進(jìn)行去除噪聲、增強(qiáng)、復(fù)原、分割、提取特征等處理的方法和技術(shù)。數(shù)字圖像處理的產(chǎn)生和迅速發(fā)展主要受三個(gè)因素的影響:一是計(jì)算機(jī)的發(fā)展;二是數(shù)學(xué)的發(fā)展(特別是離散數(shù)學(xué)理論的創(chuàng)立和完善);三是廣泛的農(nóng)牧業(yè)、林業(yè)、環(huán)境、軍事、工業(yè)和醫(yī)學(xué)等方面的應(yīng)用需求的增長(zhǎng)。數(shù)字圖像處理(digital Image Processing)又稱(chēng)為計(jì)算機(jī)圖像處理,它是指將圖像信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)并利用計(jì)算機(jī)對(duì)其進(jìn)行處理的過(guò)程。數(shù)字圖像處理最早出現(xiàn)于20世紀(jì)50年代,當(dāng)時(shí)的電子計(jì)算機(jī)已經(jīng)發(fā)展到一定水平,人們開(kāi)始利用計(jì)算機(jī)來(lái)處理圖形和圖像信息。數(shù)字圖像處理作為一門(mén)學(xué)科大約形成于20世紀(jì)60年代初期。早期的圖像處理的目的是改善圖像的質(zhì)量,它以人為對(duì)象,以改善人的視覺(jué)效果為目的。圖像處理中,輸入的是質(zhì)量低的圖像,輸出的是改善質(zhì)量后的圖像,常用的圖像處理方法有圖像增強(qiáng)、復(fù)原、編碼、壓縮等。首次獲得實(shí)際成功應(yīng)用的是美國(guó)噴氣推進(jìn)實(shí)驗(yàn)室(JPL)。他們對(duì)航天探測(cè)器徘徊者7號(hào)在1964年發(fā)回的幾千張?jiān)虑蛘掌褂昧藞D像處理技術(shù),如幾何校正、灰度變換、去除噪聲等方法進(jìn)行處理,并考慮了太陽(yáng)位置和月球環(huán)境的影響,由計(jì)算機(jī)成功地繪制出月球表面地圖,獲得了巨大的成功。隨后又對(duì)探測(cè)飛船發(fā)回的近十萬(wàn)張照片進(jìn)行更為復(fù)雜的圖像處理,以致獲得了月球的地形圖、彩色圖及全景鑲嵌圖,獲得了非凡的成果,為人類(lèi)登月創(chuàng)舉奠定了堅(jiān)實(shí)的基礎(chǔ),也推動(dòng)了數(shù)字圖像處理這門(mén)學(xué)科的誕生。
1 功能強(qiáng)大的TMS320C6x
TMS320C6000是美國(guó)TI(Texas Instruments)公司于1997年推出的新一代高性能DSP芯片。這種芯片是定點(diǎn)、浮點(diǎn)兼容的DSP。DSP(digital signal processor)是一種獨(dú)特的微處理器,是以數(shù)字信號(hào)來(lái)處理大量信息的器件。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào)。再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬(wàn)條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過(guò)通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱(chēng)道的兩大特色。
C6000內(nèi)部結(jié)構(gòu)的主要特點(diǎn)包括:
①定點(diǎn)/浮點(diǎn)系列兼容DSP,目前CPU主頻100MHz~600MHz。
②具有先進(jìn)VLIW結(jié)構(gòu)內(nèi)核。
(1)8個(gè)獨(dú)立的功能單元:6個(gè)ALU(32/40bit),2個(gè)乘法器(16×16),浮點(diǎn)系列支持IEEE標(biāo)準(zhǔn)單精度和雙精度浮點(diǎn)運(yùn)算。
(2)可以每周期執(zhí)行8條32bit指令,最大峰值速度4800MIPS。
(3)專(zhuān)用存取結(jié)構(gòu),32/64個(gè)32bit通用寄存器。
(4)指令打包技術(shù),減少代碼容量。
③具有類(lèi)似RISC的指令集。
(1)32bit尋址范圍,支持bit尋址。
(2)支持40bitALU運(yùn)算。
(3)支持bit操作。
(4)100%條件指令。
④片內(nèi)集成大容量SRAM,最大可達(dá)8Mbit。
⑤16/32/64bit高性能外部存儲(chǔ)器接口(EMIF)提供了與SDRAM、SBRAM和SRAM登同步/異步存儲(chǔ)器的直接接口。
⑥內(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)可以訪(fǎng)問(wèn)DSP整個(gè)存儲(chǔ)空間的主機(jī)口(HPI)
(5)32bit擴(kuò)展總線(xiàn)(xBUS)
(6)32bit/33MHz PCI主/從模式接口
(7)32bit通用計(jì)數(shù)器(Timer)
(8)UTOPIA接口
(9)通用輸入/輸出(GPIO)
(10)總線(xiàn)主/從模式接口
(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,屬于類(lèi)RISC結(jié)構(gòu),從而使它的c編譯器具有很高的效率,因此稱(chēng)之為面向C語(yǔ)言結(jié)構(gòu)的 DSP芯片。這使得其在絕大多數(shù)應(yīng)用中,可以采用 C語(yǔ)言編寫(xiě)TMS320C6x程序,從而充分利用大量用c描述的算法程序,并獲得遠(yuǎn)勝于傳統(tǒng)DSP程序的可維護(hù)性、可移植性、可繼承性,縮短開(kāi)發(fā)周期。
2 FPGA計(jì)算系統(tǒng)模型
FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。FPGA一般來(lái)說(shuō)比ASIC(專(zhuān)用集成芯片)的速度要慢,無(wú)法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開(kāi)發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類(lèi)似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。
在通常的并行系統(tǒng)設(shè)計(jì)中,微處理器在空間維上是固定的,而在時(shí)間維上是可變的;而連接的專(zhuān)用芯片在空間維和時(shí)間維上都是固定的。這樣的系統(tǒng)往往只能適用于特定應(yīng)用場(chǎng)合下的特定算法。
FPGA是二十世紀(jì)80年代后期出現(xiàn)的新型的大規(guī)模可編程器件,由邏輯單元和互連線(xiàn)網(wǎng)絡(luò)兩部分組成,兩者均可編程。邏輯單元能完成一些基本操作。邏輯單元經(jīng)互連線(xiàn)網(wǎng)絡(luò)互連,通過(guò)對(duì)基本邏輯塊和互連線(xiàn)網(wǎng)絡(luò)編程,可以實(shí)現(xiàn)非常復(fù)雜的邏輯功能。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(xiàn)(Interconnect)三個(gè)部分。 現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門(mén)陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16×1RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線(xiàn)互相連接或連接到I/O模塊。FPGA的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及個(gè)模塊之間或模塊與I/O間的連接方式,并最終決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能, FPGA允許無(wú)限次的編程。
FPGA計(jì)算系統(tǒng)就是充分利用FPGA的高集成度和硬件可編程性在系統(tǒng)中用FPGA實(shí)現(xiàn)除了必要模塊(如微處理器和存儲(chǔ)器等)之外的其它邏輯和硬件互連,從而使系統(tǒng)具有空間上的可編程性。系統(tǒng)的空間可編程性是FPGA計(jì)算系統(tǒng)引入的新特征。它是指通過(guò)對(duì)FPGA的重新編程和配置來(lái)改變系統(tǒng)體系結(jié)構(gòu)等一系列硬件邏輯結(jié)構(gòu)。系統(tǒng)的空間可編程性是系統(tǒng)可重構(gòu)的前提,它使得硬件系統(tǒng)的設(shè)計(jì)趨于軟件編程化。然而需要指出的是,由于FPGA內(nèi)部結(jié)構(gòu)的完全分布性和內(nèi)部單元的百分之百的互連連通性,系統(tǒng)的硬件互連編程不象由中央處理單元引起的軟件編程那樣可以充分總結(jié)指令集。
3 基于FPGA計(jì)算系統(tǒng)模型的雙DSP實(shí)時(shí)圖像處理系統(tǒng)
為了盡可能地獲得高性能,我們提出以?xún)蓚€(gè)TMS320C62x為中央處理核心構(gòu)成雙DSP處理系統(tǒng),由FPGA(這里采用ALTERA的FLEX系列)實(shí)現(xiàn)系統(tǒng)互連。系統(tǒng)分為處理器模塊、FPGA組模塊和各總線(xiàn)接口模塊等,如圖1所示。
其中處理器模塊包含TMS320C62x、內(nèi)存空間以及相應(yīng)邏輯。處理器作為最小處理單元模塊而存在,可以完成相應(yīng)的處理子任務(wù)。在我們的系統(tǒng)中設(shè)置了兩個(gè)這樣的處理模塊。這兩個(gè)處理模塊都是在系統(tǒng)核心FPGA控制下運(yùn)行的。而FPGA作為系統(tǒng)中心,負(fù)責(zé)兩個(gè)微處理器互相通信、互相協(xié)調(diào)以及它們與外界(這里通過(guò)主從總線(xiàn)和互連總線(xiàn))的信息交換。同時(shí),系統(tǒng)處理子任務(wù)可以由 FPGA直接派發(fā)給處理器。靈活的FPGA體系結(jié)構(gòu)設(shè)計(jì)是該系統(tǒng)有效性的保證。在實(shí)際應(yīng)用中,可以根據(jù)系統(tǒng)的任務(wù),通過(guò)配置FPGA控制兩個(gè)微處理器按流水線(xiàn)方式運(yùn)行,也可以控制它們按MIMD方式并行處理同一輸入圖像。由于并行效率的要求,我們將系統(tǒng)存儲(chǔ)空間設(shè)置為兩個(gè)Bank結(jié)構(gòu),兩個(gè)Bank是獨(dú)立控制和運(yùn)行的,系統(tǒng)的實(shí)現(xiàn)框圖見(jiàn)圖2。
由于系統(tǒng)的互連、各個(gè)接口以及數(shù)據(jù)通道都是通過(guò)FPGA完成,并在FPGA內(nèi)部實(shí)現(xiàn)除一些必要邏輯之外的其它所有邏輯,因此系統(tǒng)的重構(gòu)非常方便。這是系統(tǒng)設(shè)計(jì)中的最大特點(diǎn)。另外系統(tǒng)還有可測(cè)性好,可裁減性,系統(tǒng)設(shè)計(jì)的方便性等其它優(yōu)點(diǎn)。
參考文獻(xiàn):
[1].TMS320C6000datasheethttp:///datasheet/TMS320C6000_891022.html.
[2].ALUdatasheethttp:///datasheet/ALU_2089372.html.
[3].RISCdatasheethttp:///datasheet/RISC_1189725.html.
[4].BGAdatasheethttp:///datasheet/BGA_1071529.html.
[5].CPLDdatasheethttp:///datasheet/CPLD_1136600.html.
QICK