??? 摘 要: 圖像處理" title="圖像處理">圖像處理" title="數字圖像處理" title="數字圖像處理">數字圖像處理">數字圖像處理需要大量的數據運算,要求系統具有很高的數據吞吐量。并行處理" title="并行處理">并行處理結構能較好地滿足這一要求。介紹一種SIMD并行多DSP數字圖像處理系統" title="處理系統">處理系統。該系統具有避免沖突、能連續處理圖像數據、處理器間通信及I/O部分簡單、硬件及軟件模塊化等優點。
??? 關鍵詞: SIMD? 數字圖像處理? DSP處理器
?
??? 數字圖像處理與分析技術已是一門較為成熟的二維信號處理技術,現已被廣泛應用于通信、生物醫學、工業檢測和軍事等各個方面。它是計算機技術、電視光學技術和數學分析方法等相結合的多學科綜合技術。
??? 近年來,數字圖像處理在硬件結構方面發生了重大變化,它已由基本的串行處理結構發展成并行處理結構,由單處理器發展成多處理器系統,或帶陣列處理器的高速處理系統。圖像處理可以分成一系列的子處理,如預處理、邊界判定、區域標號、量化及最終合成等,而且整個圖像也可分成一系列圖像塊分別處理。因而并行處理技術可應用于圖像處理系統。
??? 目前,帶有DSP芯片的數字圖像處理應用系統大都采用模塊化與開放式的主從分布式系統結構,如圖1所示。系統主機采用通用計算機,高速運算處理單元的數據處理從機采用基于DSP芯片構成,主從機之間通過共用存儲器交換數據。這實際上是多處理機系統的特例。這種結構既充分利用了主機擁有的硬、軟件資源,又具有很好的靈活性與較高的性能價格比,從而成為DSP芯片應用系統中一種良好的體系結構。
?
?
1 系統硬件結構
??? SIMD并行處理系統構成如圖2所示,包括SIMD并行多處理器單元、MC68000單板控制器、PC主計算機及幀接收/顯示單元等。
?
??? 控制器由MC68000微處理器、68230外圍接口/適配器、ACIA6850、程序存儲器等構成,以串行線與其他單元連接。
??? SIMD并行多處理器單元由八個DSP、八個16K字雙端口存儲器(DPR)、八個數據選擇器" title="數據選擇器">數據選擇器、八個局部存儲器SRAM、一個狀態選擇器及一個地址譯碼器構成。
??? SIMD方式是一種單元指令多數據操作方式,即在控制單元控制下,各處理器對多路數據流進行相同程序指令的處理。本系統處理器選用TI公司的產品TMS320C25。處理程序裝在系統程序存儲器中,由TMS320C25#1對其進行存取,并將程序轉存入各處理器的局部RAM中。TMS320C25#1還負責在處理完成后通知控制器。各處理器的運算及程序的傳送均是同步進行的。每個16K字的DPR是由一個2K×8位的Cypress CYTC132和一個2K×8位的CYTC142IC以主從方式配置而成,其存取時間為25ns。DPR的功能是存儲原始圖像和結果圖像,以及和數據選擇器一起完成相鄰處理器間的通信。數據選擇器和狀態選擇器都是定制的,由觸發器和組合邏輯構成。狀態選擇器可控制系統選擇兩種操作狀態:并行狀態和非并行狀態。系統程序存儲器由4KB高速靜態RAM構成,為各處理器公用,設置在它們的直接尋址存儲空間內。各處理器各自擁有的局部SRAM均用Cypress芯片CYTC169 SRAM構成,也分別設置在各處理器的直接尋址空間內,并且各SRAM間是相互隔離的。地址譯碼器為SN74AS138譯碼器。
??? 系統進行圖像處理時,首先處于非并行狀態,由控制器把處理程序裝入公用程序RAM中,操作指令裝入各處理器的局部SRAM,幀接收器緩沖器中的原始數字化圖像裝入各DPR(各DPR是相互隔離的)。之后,系統進入并行狀態,各處理器開始以SIMD方式對DPR中的圖像進行同步處理,處理結果存入DPR結果單元。處理結束后,TMS320C25向控制器發出中斷信號,把系統重新設置為非并行狀態。控制器中斷幀顯示單元,用DPR中的處理結果更新其緩沖器,顯示新的處理圖像。若結果還需進一步處理,則將其轉送到DPR的原始圖像單元,開始新的處理及顯示。
2 圖像處理算法
??? 并行圖像處理常用的兩種算法:用斜率判定邊緣的算法及細化算法。
2.1 邊緣判定
??? 圖像分析的一個重要操作是確定邊緣。邊緣表征目標邊界的特征,可用于分段、對位及識別等。圖像中灰度突變點即可認為是邊緣點。在黑白圖像處理中,黑色邊緣點至少與一個白色像素相鄰,即像素單元(m,n)應有:u(m,n)=0,g(m,n)=1,且:
???
式中,表示異或操作。對連續圖像f(x,y),其邊緣方向的導數應為局部極大值。所以,可以通過f沿r的θ角方向的斜率來進行邊緣判定。這里引入斜率算子H1和H2,計算圖像u(m,n)在兩個垂直方向上的斜率。對數字化圖像,該算子表示為水平方向或垂直方向斜率的有限差分近似。算子尺寸為3×3,其結構如下:
??? 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算子計算水平和垂直方向局部和差值,這樣可以減少數據中噪聲的影響。對于均勻區域,該算子計算結果為0。若g(m,n)超出閾值t,則可判決定u(m,n)是邊緣點,各邊緣點組成邊緣線e(m,n),它定義為:
??? 通過邊緣線就可追蹤目標的邊界了。一般地,t值的選取通過g(m,n)的累積直方圖進行,使具有最大斜率的像素的5%~10%成為邊緣點。用Sobel算子時,需用到相鄰像素。因此,硬件中訪問相鄰存儲器的功能對此處理很有用。
2.2 細化
??? 用Sobel算子求出的邊緣線線寬常大于一個像素,所以需對其進行細化,使線寬減為一個像素。細化算法大致是沿目標邊緣中間軸線將其轉換成一系列的簡單弧線。所得結果不受原始圖像大小和輪廓拐折的影響。一種簡單的處理方法是從目標X中刪除與X不只一點相鄰的邊界點,這種刪除還須不斷開X。這里區域不斷開的定義是區域內任意兩點都能由區域內曲線相連。這樣,就可保證不刪除細化弧線的端點。下面是一個產生連續弧線而對輪廓噪聲不敏感的簡單算法。
??? 細化算法如圖3所示。參照圖3(a),以Z(0)表示有序集[P2,P3,P4,…P9]中非零變換的零的數量,NZ(P1)表示P1的非零鄰點的數量。當P1滿足下列條件時可刪除圖3(b):
???
??? 反復進行這一過程,直至圖像不再變化。
?
?
3 圖像數據的分塊及分配
??? 幀接收器中存儲的圖像尺寸可以為:128×128、256×256或512×512。在SIMD并行方式時,各處理器分別處理圖像的一個固定部分,因此圖像需相應地均勻分塊。例如,128×128圖像需分成8塊64×32或32×64。圖4是分成64×32塊。在并行處理時,塊#1由處理器1處理,塊#2由處理器2處理等。各圖像塊的數據量相同,所以處理時間也相同。
?
?
??? 圖像分塊是系統在非并行狀態時,由控制器完成,并分別存入各處理器的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 系統性能分析
??? 本系統的結構防止了對存儲器及總線的爭用。圖像塊的存入在非并行狀態下進行,而其讀取在并行狀態下進行,這就消除了對DPR的爭用。圖像塊從幀接收器裝入DPR在數據總線上進行,而處理結果存入幀接收器是在全部圖像處理完成后才進行,這樣就不會出現對數據總線的爭用。因此,系統總處理時間取決于圖像裝入DPR的時間t1、圖像塊的處理時間t2、處理結果送入幀接收器緩沖器的時間t3。即系統總處理時間可表示為:
???
??? t1包括對幀接收器的訪問及把圖像存入DPR的時間,由控制器在非并行狀態用MOVE.B Mem1、Mem2指令依次把圖像存入DPR并完成其分塊。各處理器同步并行操作,所以全部圖像處理時間t2等于一個圖像塊的處理時間。它包括像素檢索時間、圖像處理及存入DPR時間、中間結果的讀取及處理后再存入DPR的時間等。圖像的讀取用LAC指令,處理用ADD和MAC指令,結果存儲用SACL和SACH指令。因MAC指令為單周期,所以處理速度很高。t3包括把DPR中的結果依序存入顯示緩沖器相應單元的時間。這一操作用MOVE.B Mem2、Mem1指令完成。使用高速直接訪問存儲器控制器(DMA)也可提高系統速度。DMA可以大大減少從幀接收器緩沖器到DPR及從DPR到顯示器緩沖器的數據存儲時間,使其小于處理時間,即t1
??? 本系統結構可以很容易地擴展更多的處理器及相應的DPR的數據選擇器,構成更大的處理系統,處理更大的圖像。隨著社會和經濟的發展,數字圖像處理系統的應用范圍越來越廣,例如會議電視、可視電話、機器視覺等。因此,人們對數字圖像處理系統的要求也越來越高,對DSP芯片及其應用系統的開發與研制將是以后高速數字圖像處理系統發展的一個重要方向,它在今后的軍用與民用領域將發揮更大的作用。
參考文獻
[1] 張雪松,倪國強,周立偉,等.帶有DSP芯片的新型實時數字圖像處理系統[A].光學技術,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著.高等計算機系統結構并行性可擴展性可編程性.王鼎興等譯.北京:清華大學出版社,1995.
[4] 李曉梅,蔣增榮.并行算法.長沙:湖南科學技術出版社,1992.
[5] 胡輝.基于多處理機平臺-TMS320C80的并行算法實現方法的研究.小型微型計算機系統,1999,20(12):881-884.
[6] 陳景良.并行算法引論.北京:石油工業出版社,1992.