《電子技術(shù)應用》
欢迎订阅(电子2025)
欢迎订阅(网数2025)
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 一種SIMD多DSP數(shù)字圖像處理系統(tǒng)研究與設計
NI-LabVIEW 2025

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

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

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

?

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

?

?

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

?


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

???

式中,表示異或操作。對連續(xù)圖像f(x,y),其邊緣方向的導數(shù)應為局部極大值。所以,可以通過f沿r的θ角方向的斜率來進行邊緣判定。這里引入斜率算子H1和H2,計算圖像u(m,n)在兩個垂直方向上的斜率。對數(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
??? 斜率向量的模值和方向為:

???

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

???

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

???

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

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

???

??? 反復進行這一過程,直至圖像不再變化。

?

?

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

?

?

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

?

?

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

???

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

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