《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 基于流處理器的圖像灰度變換并行處理研究
基于流處理器的圖像灰度變換并行處理研究
來源:電子技術(shù)應(yīng)用2011年第2期
姜 濤, 張?jiān)苽ィ?何 芳
昆明理工大學(xué) 現(xiàn)代農(nóng)業(yè)工程學(xué)院, 云南 昆明650093
摘要: 提出了一種基于流處理器的圖像灰度變換并行處理系統(tǒng)。該系統(tǒng)采用Strom-1系列SP16HP-G220流數(shù)字信號(hào)處理器構(gòu)建硬件平臺(tái),根據(jù)流處理器體系結(jié)構(gòu)特點(diǎn)建立了適應(yīng)圖像灰度變換并行處理的流程序模型,并對(duì)圖像灰度變換進(jìn)行算法并行性分析與算法流化。對(duì)利用流化過的算法與傳統(tǒng)灰度變換算法進(jìn)行了對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,灰度變換加速比為200,可滿足機(jī)器人系統(tǒng)對(duì)圖像處理實(shí)時(shí)性的需求。
中圖分類號(hào): TP391.4
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)02-0116-04
Parallel processing of image gray transformation based on stream processor
Jiang Tao,Zhang Yunwei, He Fang
Faculty of Modern Agricultural Engineering, Kunming University of Science and Technology, Kunming 650093, China
Abstract: A parallel processing system of image gray transformation is proposed based on stream processor.The hardware platform employing SP16HP-G220 DSP of Strom-1 series is developed. The program model of stream processor that adapts the parallel processing of image gray transformation by architectural characteristic of stream processor is established, and the image grey transformation executes the analysis of parallel algorithm and algorithm of stream-oriented. The comparative experiment of stream-oriented and traditional grey transformation algorithm are carried out.The experimental results show that the speedup of grey-scale intensity image can reach 200. This system can meet the real-time requirement for image processing in robot system.
Key words : image processing; stream processor; parallel work; gray-scale image


    為了使機(jī)器人替代人類執(zhí)行簡單而重復(fù)的任務(wù)或在危險(xiǎn)環(huán)境中作業(yè),制作了大量機(jī)器視覺系統(tǒng)進(jìn)行試驗(yàn)。但是所建立的機(jī)器視覺檢測(cè)與處理系統(tǒng),僅局限于對(duì)人腦處理圖像的低級(jí)模仿,而對(duì)圖像的前期處理則要進(jìn)行大量的數(shù)學(xué)運(yùn)算,占用了大部分系統(tǒng)資源,這使機(jī)器人系統(tǒng)的反應(yīng)速度非常緩慢,遠(yuǎn)遠(yuǎn)達(dá)不到像人類一樣的反應(yīng)速度。
    目前,計(jì)算機(jī)所使用的中央處理器通常為傳統(tǒng)的馮·諾依曼體系結(jié)構(gòu)[1-5],該體系結(jié)構(gòu)為串行工作,雖然可以增加流水線深度提高中央處理器處理速度,在流水線上實(shí)現(xiàn)指令級(jí)并行,但是在同一時(shí)刻只能有一個(gè)運(yùn)算結(jié)果輸出給數(shù)據(jù)總線。哈佛體系結(jié)構(gòu)相對(duì)馮·諾依曼體系結(jié)構(gòu)有所改進(jìn),取指令與取數(shù)據(jù)同時(shí)進(jìn)行,但其運(yùn)算結(jié)果還是串行輸出,所以海量圖像數(shù)據(jù)處理的瓶頸限制了圖像處理技術(shù)與機(jī)器視覺技術(shù)領(lǐng)域的發(fā)展,只能在精簡算法、減少運(yùn)算量方面著手以加快圖像處理速度。而流處理器可以實(shí)現(xiàn)數(shù)據(jù)級(jí)、指令級(jí)、任務(wù)級(jí)的并行,根據(jù)圖像像素點(diǎn)之間相互獨(dú)立與數(shù)據(jù)類型一致的特點(diǎn),利用流處理器制作的圖像并行處理系統(tǒng)平臺(tái),可以通過并行的數(shù)據(jù)運(yùn)算來提高圖像處理的速度,從而提高整個(gè)機(jī)器人系統(tǒng)的反應(yīng)速度。
  針對(duì)現(xiàn)有圖像處理方法存在運(yùn)算瓶頸的不足,本文提出了一種基于流處理器的圖像并行處理系統(tǒng)。該系統(tǒng)采用Storm-1流處理器作為圖像并行處理平臺(tái),分析了現(xiàn)有灰度圖像處理算法的并行性,并根據(jù)所建立的流處理器程序模型將算法進(jìn)行流化,以適應(yīng)流處理器并行運(yùn)算的硬件體系結(jié)構(gòu),從而實(shí)現(xiàn)了圖像數(shù)據(jù)處理的并行運(yùn)算,加快了圖像灰度變換速度。
1 流處理器
    流處理器體系結(jié)構(gòu)是一個(gè)新興的體系結(jié)構(gòu)形式,與基于馮·諾依曼體系結(jié)構(gòu)的傳統(tǒng)處理器部分體系結(jié)構(gòu)相似,兩種體系結(jié)構(gòu)的比較如圖1所示[6]。傳統(tǒng)的處理器要對(duì)零散、無規(guī)律的數(shù)據(jù)進(jìn)行運(yùn)算處理,數(shù)據(jù)的運(yùn)算和存取操作必須緊密耦合,訪存操作占據(jù)大量系統(tǒng)資源。其體系結(jié)構(gòu)最大特點(diǎn)是處理器內(nèi)部大部分面積被用作放置一級(jí)、二級(jí)緩存,而計(jì)算單元只占據(jù)芯片較小面積。流處理器其運(yùn)算單元占整個(gè)芯片面積較大,其數(shù)量也遠(yuǎn)遠(yuǎn)多于傳統(tǒng)處理器,而緩存面積較小,其容量也低于傳統(tǒng)處理器。在數(shù)據(jù)處理方面,流處理器是將操作數(shù)據(jù)定義為流,數(shù)據(jù)為同構(gòu)有序的流動(dòng)與處理,數(shù)據(jù)運(yùn)算和數(shù)據(jù)存取分離,使訪存開銷減小,其高執(zhí)行效率和并行計(jì)算的特點(diǎn)適用于圖像處理與機(jī)器視覺領(lǐng)域[7]。

2 圖像并行處理系統(tǒng)
    為了增強(qiáng)機(jī)器人系統(tǒng)的互動(dòng)性與實(shí)時(shí)性,實(shí)現(xiàn)圖像數(shù)據(jù)的高速并行處理,采用SPI(Stream Processor Inc)公司的Storm-1系列的SP16HP-G220流數(shù)字信號(hào)處理器作為系統(tǒng)中央處理器[8],其體系結(jié)構(gòu)如圖2所示。該處理器為SoC級(jí)流處理器,其工作頻率為700 MHz,每秒可進(jìn)行1 120億次32位乘加操作。System MIPS為流處理器主控制核心,負(fù)責(zé)系統(tǒng)的初始化、任務(wù)調(diào)度與I/O口驅(qū)動(dòng)等整體操作。DSP子系統(tǒng)以一個(gè)32 bit的RISC處理器作為系統(tǒng)控制器,負(fù)責(zé)將需要執(zhí)行運(yùn)算的數(shù)據(jù)進(jìn)行流化傳送給數(shù)據(jù)并行處理單元(DPU)。DPU是流處理器的計(jì)算核心,進(jìn)行并行圖像數(shù)據(jù)運(yùn)算。該流處理器的DPU擁有16個(gè)計(jì)算簇,每個(gè)計(jì)算簇?fù)碛幸粋€(gè)16 KB的寄存器,組成256 KB的片上存儲(chǔ)器,計(jì)算簇中含有5個(gè)32位乘加運(yùn)算器,計(jì)算簇通過DPU Dispatcher硬件完成流的導(dǎo)入與導(dǎo)出操作。I/O子系統(tǒng)擁有108個(gè)高速I/O接口用于視頻采集、傳感器通信和數(shù)據(jù)交換;PCI接口支持66 MHz/33 MHz數(shù)據(jù)總線;內(nèi)存控制單元支持DDR1和DDR2內(nèi)存,傳輸速率為666 MHz,最大支持2 GB內(nèi)存尋址空間。

    圖像并行處理系統(tǒng)主要進(jìn)行圖像處理工作,解決圖像數(shù)據(jù)處理運(yùn)算速度瓶頸的問題,為機(jī)器人主控系統(tǒng)及其執(zhí)行機(jī)構(gòu)提供運(yùn)行數(shù)據(jù)支持,其機(jī)器視覺系統(tǒng)結(jié)構(gòu)如圖3所示。該系統(tǒng)由CCD傳感器作為圖像并行處理系統(tǒng)的輸入,圖像并行處理系統(tǒng)作為機(jī)器視覺系統(tǒng)的運(yùn)算處理核心進(jìn)行高速并行圖像處理,處理后將數(shù)據(jù)傳送給機(jī)器人的主控系統(tǒng)進(jìn)行相應(yīng)操作。


3 流處理器程序模型
    根據(jù)流處理器硬件體系結(jié)構(gòu),流程序模型分為流級(jí)程序模型和核心級(jí)程序模型[9-11],分別運(yùn)行在DSP子系統(tǒng)與數(shù)據(jù)并行處理單元。流級(jí)程序負(fù)責(zé)控制標(biāo)量處理器、流控制器和片外存儲(chǔ)器,并且進(jìn)行數(shù)據(jù)流化與流組織輸入輸出;核心級(jí)程序負(fù)責(zé)進(jìn)行數(shù)據(jù)并行計(jì)算,根據(jù)數(shù)據(jù)處理的復(fù)雜程度,將運(yùn)算處理過程分為一個(gè)或多個(gè)核心子程序。
3.1 流級(jí)程序模型
    數(shù)據(jù)流的運(yùn)算對(duì)流級(jí)程序是透明的,流程序不對(duì)數(shù)據(jù)流中的信息進(jìn)行實(shí)際的運(yùn)算操作。流級(jí)程序首先在初始化時(shí)將需要操作的數(shù)據(jù)定義為流,然后將數(shù)據(jù)流加載到數(shù)據(jù)并行處理單元,并按照算法調(diào)用核心級(jí)程序?qū)?shù)據(jù)流進(jìn)行操作,最后通過計(jì)算簇寄存器輸出與存儲(chǔ)流數(shù)據(jù),圖4所示為流數(shù)據(jù)輸入給計(jì)算簇的示意圖。圖5為流級(jí)程序模型,spi_load和spi_stroe為Storm-1系列流處理器關(guān)鍵詞,其功能為加載流與存儲(chǔ)流。format和encode為調(diào)用核心級(jí)程序,在數(shù)據(jù)并行處理單元中執(zhí)行。

3.2 核心級(jí)程序模型
    在數(shù)據(jù)并行處理單元中運(yùn)行的程序?yàn)楹诵募?jí)程序,該程序負(fù)責(zé)對(duì)輸入的流數(shù)據(jù)進(jìn)行密集的數(shù)學(xué)運(yùn)算。核心級(jí)程序的編寫與應(yīng)用有緊密耦合關(guān)系,不同的算法應(yīng)用有不同的程序模型與之對(duì)應(yīng),但其主要思想為挖掘算法的并行性。當(dāng)流級(jí)程序?qū)⒔M織好的數(shù)據(jù)流輸入給數(shù)據(jù)并行處理單元后,核心級(jí)程序首先進(jìn)行常數(shù)設(shè)置和參數(shù)讀取等操作,然后對(duì)輸入流根據(jù)算法進(jìn)行運(yùn)算等操作,最后向計(jì)算簇寄存器寫入流數(shù)據(jù)結(jié)果。
4  灰度變換及其算法流化
    由于圖像處理算法眾多,其算法結(jié)構(gòu)差別較大,因此,選取圖像處理中具有代表性的灰度變換進(jìn)行并行性分析與算法流化。圖像的灰度變換過程就是將彩色圖像變換為黑白圖像,因?yàn)榛叶葓D像更加容易進(jìn)行圖像分析與運(yùn)算,所以機(jī)器視覺系統(tǒng)在通過CCD傳感器采集到彩色圖像后的第一步預(yù)處理就是將其變換為灰度圖像?;叶茸儞Q方程如下:
    Xrgb=0.299 R+0.587 G+0.114 B  (1)
其中,Xrgb為圖像的灰度值,R、G、B分別為RGB圖像的三個(gè)分量值。
    原始的灰度處理方法是將圖像看成一個(gè)二維數(shù)組F(i,j),對(duì)圖像按照從左到右,從上到下的順序掃描,在掃描的過程中逐點(diǎn)對(duì)各像素進(jìn)行灰度變換,每次掃描過程之間沒有任何相關(guān)性,并且輸入和輸出數(shù)據(jù)之間也沒有聯(lián)系,所以在處理的過程中各像素點(diǎn)是相互獨(dú)立的,沒有數(shù)據(jù)相關(guān)性,因此該算法具有良好的并行性。根據(jù)式(1),每進(jìn)行一次灰度變換,需要進(jìn)行3次乘法運(yùn)算操作和2次加法運(yùn)算操作,將該算法固化到計(jì)算簇中,可在3個(gè)時(shí)鐘周期完成一個(gè)像素的灰度變換操作。將初始化中定義為流的圖像數(shù)據(jù)加載到所有計(jì)算簇中,即完成算法的流化等處理操作。其加載形式如圖4所示。通過對(duì)算法流化開發(fā)算法程序的并行性,減少訪存次數(shù)來提高整個(gè)算法程序的執(zhí)行效率。
    對(duì)灰度變換模型與算法程序并行性的分析,可將整個(gè)灰度變換分解為3個(gè)計(jì)算核心組成核心級(jí)程序,如圖6所示,整個(gè)計(jì)算核心程序固化在數(shù)據(jù)并行處理單元的計(jì)算簇中。首先將流級(jí)程序定義的流圖像數(shù)據(jù)加載到并行處理單元的流數(shù)據(jù)輸入端口作為輸入流,計(jì)算核心1在完成初始化過程后對(duì)順序流過的數(shù)據(jù)進(jìn)行并行計(jì)算,計(jì)算完成后流出計(jì)算核心1,并以中間流的形式流入計(jì)算核心2;然后通過類似操作完成整個(gè)流圖像數(shù)據(jù)的灰度變換;最后計(jì)算核心3將輸出流存儲(chǔ)到計(jì)算簇寄存器中供流級(jí)程序使用。

5 實(shí)驗(yàn)仿真與分析
5.1  仿真系統(tǒng)及實(shí)驗(yàn)樣本

    為了對(duì)流化算法進(jìn)行量化分析和對(duì)比實(shí)驗(yàn)以驗(yàn)證其優(yōu)越性,建立了一套實(shí)驗(yàn)仿真系統(tǒng),采用Intel Pentium Ⅲ作為中央處理器,處理器主頻為733 MHz,內(nèi)存為256 MB,操作系統(tǒng)為Windows XP SP3,利用MATLAB 7.0軟件構(gòu)建了仿真對(duì)比實(shí)驗(yàn)平臺(tái)。仿真系統(tǒng)以SP16HP-G220流數(shù)字信號(hào)處理器為基準(zhǔn)建立了仿真系統(tǒng)模型,模型內(nèi)部含有16路計(jì)算簇與該流處理器相對(duì)應(yīng),并將流化完成的灰度變換程序?qū)懭朐摲抡婺P椭羞M(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)樣本如圖7中的(a)、(c)、(e)、(g)、(i)所示,其圖片像素大小分別為500萬、200萬、78萬、48萬、30萬。通過使用不同的處理器處理實(shí)驗(yàn)樣本進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)分別仿真?zhèn)鹘y(tǒng)處理器與流處理器對(duì)實(shí)驗(yàn)樣本進(jìn)行灰度變換,由于仿真模型的預(yù)處理部分都是采用馮·諾依曼體系結(jié)構(gòu)指令集,所以只記錄傳統(tǒng)處理器運(yùn)行普通程序與流處理器運(yùn)行流程序處理不同實(shí)驗(yàn)樣本時(shí)算法部分操作所消耗的時(shí)間,最后對(duì)數(shù)據(jù)進(jìn)行分析得到流處理器相對(duì)于傳統(tǒng)處理器的算法運(yùn)算加速比。
5.2  灰度變換實(shí)驗(yàn)結(jié)果分析
    灰度變換實(shí)驗(yàn)結(jié)果如圖7中(b)、(d)、(f)、(h)、(j)所示,傳統(tǒng)處理方法與流化算法處理圖像結(jié)果相同。表1為灰度變換實(shí)驗(yàn)結(jié)果,記錄了三幅不同尺寸的圖片分別使用傳統(tǒng)處理器與流處理器進(jìn)行灰度變換操作時(shí)算法部分程序所消耗的時(shí)間。

    本文針對(duì)機(jī)器視覺系統(tǒng)中圖像處理計(jì)算數(shù)據(jù)量大、處理速度慢等問題,設(shè)計(jì)了一種基于流處理器的圖像并行處理系統(tǒng)。該系統(tǒng)采用Strom-1系列SP16HP-G220流數(shù)字信號(hào)處理器作為并行處理系統(tǒng)核心,根據(jù)其硬件體系結(jié)構(gòu)建立了流處理器程序模型,并參考圖像處理實(shí)際需求選取具有代表性的灰度變換進(jìn)行了算法并行性分析與流化,編寫了流程序與傳統(tǒng)程序進(jìn)行了對(duì)比仿真實(shí)驗(yàn)。圖像并行處理系統(tǒng)與傳統(tǒng)圖像處理系統(tǒng)處理灰度變換其算法部分最大加速比為200。通過實(shí)驗(yàn)表明,灰度變換算法在流處理器上可以獲得較高的性能加速比,反映出流處理器在圖像處理領(lǐng)域的巨大優(yōu)勢(shì),同時(shí)也證明了該圖像并行處理系統(tǒng)適用于高密度數(shù)據(jù)運(yùn)算的機(jī)器視覺系統(tǒng),能夠滿足機(jī)器人對(duì)信息處理時(shí)實(shí)性的需求,并為相關(guān)領(lǐng)域的應(yīng)用提供借鑒。
參考文獻(xiàn)
[1] KHILANY B, DALLY W J, CHANG A, et al. VLSI design and verification of the imagine processor[C].Proceedings of the IEEE International Conference on Computer Design. Freiburg, Germany: IEEE, 2002:289-294.
[2] RAMAN S K,PENTKOVSKI V, KESHAVA J. Implementing  streaming SIMD extensions on the Pentium III processor[J].  IEEE Micro, 2000,20(4):47-57.
[3] CLARK L T, HOFFMAN E J, MILLER J, et al. An embedded 32-b microprocessor core for low-power and high-performance applications[J]. IEEE Solid State Circuits,2001,36(11):1599-1608.
[4] KAPASI U J, RIXNER S, DALLY W J, et al. Programmable stream processors[J]. IEEE Computer, 2003,36(8):54-62.
[5] SAKURAI M, NAGATA H, YAMADA M, et al. A transport stream processor for HDD recording and playback of  HDTV signal[J]. IEEE Transactions on Consumer Electronics, 2002,48(4):810-815.
[6] TENLLADO C, SETOAIN J, PRIETO M, et al. Parallel  implementation of the 2Ddiscrete wavelet transform on graphics processing units: filter bank versus lifting[J]. IEEE Transactions on Parallel and Distributed Systems, 2008,19(3):299-310.
[7] CHAI S M, CHIRICESCU S, ESSICK R, et al. Streaming processors for next-generation mobile imaging applications [J]. IEEE Communications, 2005,43(12):81-89.
[8] YANG X J, YAN X B, XING Z C, et al. Fei Teng 64 stream processing system: architecture, compiler, and programming[J]. IEEE Parallel and Distributed Systems,2009,20(8):1142-1157.
[9] KHAILANY B, DALLY W J, KAPASI U J,et al. Imagine: media processing with streams[J].IEEE Micro, 2001,21(2):35-46.
[10] KHAILANY B, WILLIAMS T, LIN J, et al. A programmable 512 GOPS stream processor for signal, image, and video processing[J]. IEEE Solid State Circuits, 2008,43(1):202-213.
[11] CHEN J C, CHIEN S Y.CRISP: coarse-grained reconfig-urable image stream processor for digital still cameras and camcorders[J]. IEEE Transactions on Circuits and Systems  for Video Technology, 2008,18(9):1223-1236.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。