《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 一種SIMD多DSP數(shù)字圖像處理系統(tǒng)研究與設(shè)計(jì)

一種SIMD多DSP數(shù)字圖像處理系統(tǒng)研究與設(shè)計(jì)

2008-07-17
作者:李 勇,齊同斌,張瑞生

??? 摘 要: 圖像處理" title="圖像處理">圖像處理" title="數(shù)字圖像處理" title="數(shù)字圖像處理">數(shù)字圖像處理">數(shù)字圖像處理需要大量的數(shù)據(jù)運(yùn)算,要求系統(tǒng)具有很高的數(shù)據(jù)吞吐量。并行處理" title="并行處理">并行處理結(jié)構(gòu)能較好地滿(mǎn)足這一要求。介紹一種SIMD并行多DSP數(shù)字圖像處理系統(tǒng)" title="處理系統(tǒng)">處理系統(tǒng)。該系統(tǒng)具有避免沖突、能連續(xù)處理圖像數(shù)據(jù)、處理器間通信及I/O部分簡(jiǎn)單、硬件及軟件模塊化等優(yōu)點(diǎn)。
??? 關(guān)鍵詞: SIMD? 數(shù)字圖像處理? DSP處理器

?

??? 數(shù)字圖像處理與分析技術(shù)已是一門(mén)較為成熟的二維信號(hào)處理技術(shù),現(xiàn)已被廣泛應(yīng)用于通信、生物醫(yī)學(xué)、工業(yè)檢測(cè)和軍事等各個(gè)方面。它是計(jì)算機(jī)技術(shù)、電視光學(xué)技術(shù)和數(shù)學(xué)分析方法等相結(jié)合的多學(xué)科綜合技術(shù)。
??? 近年來(lái),數(shù)字圖像處理在硬件結(jié)構(gòu)方面發(fā)生了重大變化,它已由基本的串行處理結(jié)構(gòu)發(fā)展成并行處理結(jié)構(gòu),由單處理器發(fā)展成多處理器系統(tǒng),或帶陣列處理器的高速處理系統(tǒng)。圖像處理可以分成一系列的子處理,如預(yù)處理、邊界判定、區(qū)域標(biāo)號(hào)、量化及最終合成等,而且整個(gè)圖像也可分成一系列圖像塊分別處理。因而并行處理技術(shù)可應(yīng)用于圖像處理系統(tǒng)。
??? 目前,帶有DSP芯片的數(shù)字圖像處理應(yīng)用系統(tǒng)大都采用模塊化與開(kāi)放式的主從分布式系統(tǒng)結(jié)構(gòu),如圖1所示。系統(tǒng)主機(jī)采用通用計(jì)算機(jī),高速運(yùn)算處理單元的數(shù)據(jù)處理從機(jī)采用基于DSP芯片構(gòu)成,主從機(jī)之間通過(guò)共用存儲(chǔ)器交換數(shù)據(jù)。這實(shí)際上是多處理機(jī)系統(tǒng)的特例。這種結(jié)構(gòu)既充分利用了主機(jī)擁有的硬、軟件資源,又具有很好的靈活性與較高的性能價(jià)格比,從而成為DSP芯片應(yīng)用系統(tǒng)中一種良好的體系結(jié)構(gòu)。

?

?

1 系統(tǒng)硬件結(jié)構(gòu)
??? SIMD并行處理系統(tǒng)構(gòu)成如圖2所示,包括SIMD并行多處理器單元、MC68000單板控制器、PC主計(jì)算機(jī)及幀接收/顯示單元等。

?


??? 控制器由MC68000微處理器、68230外圍接口/適配器、ACIA6850、程序存儲(chǔ)器等構(gòu)成,以串行線(xiàn)與其他單元連接。
??? SIMD并行多處理器單元由八個(gè)DSP、八個(gè)16K字雙端口存儲(chǔ)器(DPR)、八個(gè)數(shù)據(jù)選擇器" title="數(shù)據(jù)選擇器">數(shù)據(jù)選擇器、八個(gè)局部存儲(chǔ)器SRAM、一個(gè)狀態(tài)選擇器及一個(gè)地址譯碼器構(gòu)成。
??? SIMD方式是一種單元指令多數(shù)據(jù)操作方式,即在控制單元控制下,各處理器對(duì)多路數(shù)據(jù)流進(jìn)行相同程序指令的處理。本系統(tǒng)處理器選用TI公司的產(chǎn)品TMS320C25。處理程序裝在系統(tǒng)程序存儲(chǔ)器中,由TMS320C25#1對(duì)其進(jìn)行存取,并將程序轉(zhuǎn)存入各處理器的局部RAM中。TMS320C25#1還負(fù)責(zé)在處理完成后通知控制器。各處理器的運(yùn)算及程序的傳送均是同步進(jìn)行的。每個(gè)16K字的DPR是由一個(gè)2K×8位的Cypress CYTC132和一個(gè)2K×8位的CYTC142IC以主從方式配置而成,其存取時(shí)間為25ns。DPR的功能是存儲(chǔ)原始圖像和結(jié)果圖像,以及和數(shù)據(jù)選擇器一起完成相鄰處理器間的通信。數(shù)據(jù)選擇器和狀態(tài)選擇器都是定制的,由觸發(fā)器和組合邏輯構(gòu)成。狀態(tài)選擇器可控制系統(tǒng)選擇兩種操作狀態(tài):并行狀態(tài)和非并行狀態(tài)。系統(tǒng)程序存儲(chǔ)器由4KB高速靜態(tài)RAM構(gòu)成,為各處理器公用,設(shè)置在它們的直接尋址存儲(chǔ)空間內(nèi)。各處理器各自擁有的局部SRAM均用Cypress芯片CYTC169 SRAM構(gòu)成,也分別設(shè)置在各處理器的直接尋址空間內(nèi),并且各SRAM間是相互隔離的。地址譯碼器為SN74AS138譯碼器。
??? 系統(tǒng)進(jìn)行圖像處理時(shí),首先處于非并行狀態(tài),由控制器把處理程序裝入公用程序RAM中,操作指令裝入各處理器的局部SRAM,幀接收器緩沖器中的原始數(shù)字化圖像裝入各DPR(各DPR是相互隔離的)。之后,系統(tǒng)進(jìn)入并行狀態(tài),各處理器開(kāi)始以SIMD方式對(duì)DPR中的圖像進(jìn)行同步處理,處理結(jié)果存入DPR結(jié)果單元。處理結(jié)束后,TMS320C25向控制器發(fā)出中斷信號(hào),把系統(tǒng)重新設(shè)置為非并行狀態(tài)。控制器中斷幀顯示單元,用DPR中的處理結(jié)果更新其緩沖器,顯示新的處理圖像。若結(jié)果還需進(jìn)一步處理,則將其轉(zhuǎn)送到DPR的原始圖像單元,開(kāi)始新的處理及顯示。
2 圖像處理算法
??? 并行圖像處理常用的兩種算法:用斜率判定邊緣的算法及細(xì)化算法。
2.1 邊緣判定
??? 圖像分析的一個(gè)重要操作是確定邊緣。邊緣表征目標(biāo)邊界的特征,可用于分段、對(duì)位及識(shí)別等。圖像中灰度突變點(diǎn)即可認(rèn)為是邊緣點(diǎn)。在黑白圖像處理中,黑色邊緣點(diǎn)至少與一個(gè)白色像素相鄰,即像素單元(m,n)應(yīng)有:u(m,n)=0,g(m,n)=1,且:

???

式中,表示異或操作。對(duì)連續(xù)圖像f(x,y),其邊緣方向的導(dǎo)數(shù)應(yīng)為局部極大值。所以,可以通過(guò)f沿r的θ角方向的斜率來(lái)進(jìn)行邊緣判定。這里引入斜率算子H1和H2,計(jì)算圖像u(m,n)在兩個(gè)垂直方向上的斜率。對(duì)數(shù)字化圖像,該算子表示為水平方向或垂直方向斜率的有限差分近似。算子尺寸為3×3,其結(jié)構(gòu)如下:
??? m-1,n-1??m-1,n+0??m-1,n+1
??? m+0,n-1??m+0,n+0??m+0,n+1
??? m+1,n-1??m+1,n+0??m+1,n+1
??? 斜率向量的模值和方向?yàn)椋?/FONT>

???

??? g1(m,n)和g2(m,n)的運(yùn)算包括算子和像素間的乘法和加法。斜率向量模值也常用下式計(jì)算:

???

??? 邊緣判定常使用Sobel算子:

???

??? Sobel算子計(jì)算水平和垂直方向局部和差值,這樣可以減少數(shù)據(jù)中噪聲的影響。對(duì)于均勻區(qū)域,該算子計(jì)算結(jié)果為0。若g(m,n)超出閾值t,則可判決定u(m,n)是邊緣點(diǎn),各邊緣點(diǎn)組成邊緣線(xiàn)e(m,n),它定義為:

??? 通過(guò)邊緣線(xiàn)就可追蹤目標(biāo)的邊界了。一般地,t值的選取通過(guò)g(m,n)的累積直方圖進(jìn)行,使具有最大斜率的像素的5%~10%成為邊緣點(diǎn)。用Sobel算子時(shí),需用到相鄰像素。因此,硬件中訪(fǎng)問(wèn)相鄰存儲(chǔ)器的功能對(duì)此處理很有用。
2.2 細(xì)化
??? 用Sobel算子求出的邊緣線(xiàn)線(xiàn)寬常大于一個(gè)像素,所以需對(duì)其進(jìn)行細(xì)化,使線(xiàn)寬減為一個(gè)像素。細(xì)化算法大致是沿目標(biāo)邊緣中間軸線(xiàn)將其轉(zhuǎn)換成一系列的簡(jiǎn)單弧線(xiàn)。所得結(jié)果不受原始圖像大小和輪廓拐折的影響。一種簡(jiǎn)單的處理方法是從目標(biāo)X中刪除與X不只一點(diǎn)相鄰的邊界點(diǎn),這種刪除還須不斷開(kāi)X。這里區(qū)域不斷開(kāi)的定義是區(qū)域內(nèi)任意兩點(diǎn)都能由區(qū)域內(nèi)曲線(xiàn)相連。這樣,就可保證不刪除細(xì)化弧線(xiàn)的端點(diǎn)。下面是一個(gè)產(chǎn)生連續(xù)弧線(xiàn)而對(duì)輪廓噪聲不敏感的簡(jiǎn)單算法。
??? 細(xì)化算法如圖3所示。參照?qǐng)D3(a),以Z(0)表示有序集[P2,P3,P4,…P9]中非零變換的零的數(shù)量,NZ(P1)表示P1的非零鄰點(diǎn)的數(shù)量。當(dāng)P1滿(mǎn)足下列條件時(shí)可刪除圖3(b):

???

??? 反復(fù)進(jìn)行這一過(guò)程,直至圖像不再變化。

?

?

3 圖像數(shù)據(jù)的分塊及分配
??? 幀接收器中存儲(chǔ)的圖像尺寸可以為:128×128、256×256或512×512。在SIMD并行方式時(shí),各處理器分別處理圖像的一個(gè)固定部分,因此圖像需相應(yīng)地均勻分塊。例如,128×128圖像需分成8塊64×32或32×64。圖4是分成64×32塊。在并行處理時(shí),塊#1由處理器1處理,塊#2由處理器2處理等。各圖像塊的數(shù)據(jù)量相同,所以處理時(shí)間也相同。

?

?

??? 圖像分塊是系統(tǒng)在非并行狀態(tài)時(shí),由控制器完成,并分別存入各處理器的DPR中。對(duì)于N×N的圖像,分塊方式如圖5所示。

?

?

??? 在邊緣判定時(shí),處理器對(duì)每個(gè)像素均用Sobel算子處理。因Sobel算子是3×3核,所以有時(shí)要用到相鄰處理器DPR中的圖像像素。例如,當(dāng)IM(i,j)為圖像塊的左邊界時(shí),運(yùn)算就要使用左鄰圖像塊的像素IM(i,j-1)、IM(i+1,j-1)和IM(i-1,j-1)。因此,處理器#1和處理器#8僅需訪(fǎng)問(wèn)兩個(gè)DPR,而其余的處理器均訪(fǎng)問(wèn)三個(gè)DPR。
4 系統(tǒng)性能分析
??? 本系統(tǒng)的結(jié)構(gòu)防止了對(duì)存儲(chǔ)器及總線(xiàn)的爭(zhēng)用。圖像塊的存入在非并行狀態(tài)下進(jìn)行,而其讀取在并行狀態(tài)下進(jìn)行,這就消除了對(duì)DPR的爭(zhēng)用。圖像塊從幀接收器裝入DPR在數(shù)據(jù)總線(xiàn)上進(jìn)行,而處理結(jié)果存入幀接收器是在全部圖像處理完成后才進(jìn)行,這樣就不會(huì)出現(xiàn)對(duì)數(shù)據(jù)總線(xiàn)的爭(zhēng)用。因此,系統(tǒng)總處理時(shí)間取決于圖像裝入DPR的時(shí)間t1、圖像塊的處理時(shí)間t2、處理結(jié)果送入幀接收器緩沖器的時(shí)間t3。即系統(tǒng)總處理時(shí)間可表示為:

???

??? t1包括對(duì)幀接收器的訪(fǎng)問(wèn)及把圖像存入DPR的時(shí)間,由控制器在非并行狀態(tài)用MOVE.B Mem1、Mem2指令依次把圖像存入DPR并完成其分塊。各處理器同步并行操作,所以全部圖像處理時(shí)間t2等于一個(gè)圖像塊的處理時(shí)間。它包括像素檢索時(shí)間、圖像處理及存入DPR時(shí)間、中間結(jié)果的讀取及處理后再存入DPR的時(shí)間等。圖像的讀取用LAC指令,處理用ADD和MAC指令,結(jié)果存儲(chǔ)用SACL和SACH指令。因MAC指令為單周期,所以處理速度很高。t3包括把DPR中的結(jié)果依序存入顯示緩沖器相應(yīng)單元的時(shí)間。這一操作用MOVE.B Mem2、Mem1指令完成。使用高速直接訪(fǎng)問(wèn)存儲(chǔ)器控制器(DMA)也可提高系統(tǒng)速度。DMA可以大大減少?gòu)膸邮掌骶彌_器到DPR及從DPR到顯示器緩沖器的數(shù)據(jù)存儲(chǔ)時(shí)間,使其小于處理時(shí)間,即t12、t32。
??? 本系統(tǒng)結(jié)構(gòu)可以很容易地?cái)U(kuò)展更多的處理器及相應(yīng)的DPR的數(shù)據(jù)選擇器,構(gòu)成更大的處理系統(tǒng),處理更大的圖像。隨著社會(huì)和經(jīng)濟(jì)的發(fā)展,數(shù)字圖像處理系統(tǒng)的應(yīng)用范圍越來(lái)越廣,例如會(huì)議電視、可視電話(huà)、機(jī)器視覺(jué)等。因此,人們對(duì)數(shù)字圖像處理系統(tǒng)的要求也越來(lái)越高,對(duì)DSP芯片及其應(yīng)用系統(tǒng)的開(kāi)發(fā)與研制將是以后高速數(shù)字圖像處理系統(tǒng)發(fā)展的一個(gè)重要方向,它在今后的軍用與民用領(lǐng)域?qū)l(fā)揮更大的作用。
參考文獻(xiàn)
[1] 張雪松,倪國(guó)強(qiáng),周立偉,等.帶有DSP芯片的新型實(shí)時(shí)數(shù)字圖像處理系統(tǒng)[A].光學(xué)技術(shù),1997,(4):16-18.
[2] HWANG Kai,XU Zhi Wei.Scalable parallel computers for?real-time signal processing.IEEE Signal Processing Magazine,1996:50-66.
[3] KAI H著.高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)并行性可擴(kuò)展性可編程性.王鼎興等譯.北京:清華大學(xué)出版社,1995.
[4] 李曉梅,蔣增榮.并行算法.長(zhǎng)沙:湖南科學(xué)技術(shù)出版社,1992.
[5] 胡輝.基于多處理機(jī)平臺(tái)-TMS320C80的并行算法實(shí)現(xiàn)方法的研究.小型微型計(jì)算機(jī)系統(tǒng),1999,20(12):881-884.
[6] 陳景良.并行算法引論.北京:石油工業(yè)出版社,1992.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。