• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Canny算子在DSP上的實現及優(yōu)化

      2014-03-22 17:50徐克強等
      現代電子技術 2014年6期
      關鍵詞:圖像處理

      徐克強等

      摘 要: 為了在DSP平臺實現細胞圖像快速分割,詳細分析Canny算子原理,結合TI DSP TMS320C6678處理器特性,實現了算法移植。針對與外部存儲器圖像數據交互,改變以往對圖像逐灰度值進行訪問的方式, 設計了矢量化數據打包方法處理高斯濾波來提高并行運算。且在梯度計算、閾值計算過程中,采用寬存儲器訪問方法提高讀寫外部存儲器效率。結果表明設計的優(yōu)化方法在不改變分割效果前提下改善了算子速度,可為工程人員在DSP平臺進行算法移植與優(yōu)化提供借鑒。

      關鍵詞: 圖像處理; Canny算子; DSP優(yōu)化; 圖像快速分割

      中圖分類號: TN919?34 文獻標識碼: A 文章編號: 1004?373X(2014)06?0008?04

      0 引 言

      Canny算子屬于圖像處理和計算機視覺中的重要研究領域——邊緣檢測問題。邊緣檢測對后續(xù)的圖像分析和識別意義重大。例如,在鏡檢細胞圖像識別中,邊緣檢測就是要把從采集到的圖像中各種有形成分準確分離出來,進入后端進行特征建模與識別,邊緣檢測是整個系統(tǒng)的關鍵和核心,承上啟下,好的檢測效果是系統(tǒng)實現前提[1],快速檢測是智能系統(tǒng)的內在要求。

      John F.Canny將邊緣檢測問題歸結為檢測圖像梯度函數的極大值問題,提出了邊緣檢測最優(yōu)算法的三個評價準則,并基于該準則開發(fā)了一種多級邊緣檢測算法。目前,Canny算子在生物醫(yī)學,智能監(jiān)控,航空航天等領域應用廣泛,并由學者和工程人員不斷加以改進和優(yōu)化。例如韓慧妍等針對高斯濾波器的方差以及滯后閾值的選擇需要人工指定的問題,將形態(tài)學平滑和Otsu(最大類間方差法)方法引入Canny算子[2]。洪運國針對間斷的邊緣問題,提出矩量保持法來求取最優(yōu)閾值等[3]。

      眾多Canny的改進都體現在算法思想上,并在Windows操作系統(tǒng)和通用PC中得到廣泛應用,然而,在嵌入式平臺如DSP加以應用時,很少細致深入地研究實用有效的優(yōu)化方法使得Canny算子在DSP平臺高效率運行。例如金澤安在其學位論文中,詳盡設計了基于DSP的紅細胞圖像處理系統(tǒng),但在圖像處理算法性能優(yōu)化方面只做了粗略的優(yōu)化方法介紹[4]。通過詳細分析Canny算子原理基礎上,結合DSP特性,將矢量化打包數據處理在高斯濾波過程加以應用,提高運算并行性,并在邊緣計算過程中,靈活地使用對齊和非對齊的寬存儲器訪問,推導出梯度和方向的等價計算公式,四鄰域、八鄰域的等價的連續(xù)點四領域、八鄰域模板。

      1 Canny算法實現步驟

      經典著名的Canny準則是指:

      (1) 完全性。對邊緣檢測的錯誤率盡可能低。

      (2) 定位性。檢測結果和實際情況盡可能接近。

      (3) 最小性。圖像中的邊緣應該只被檢測一次[5]。

      基于邊緣檢測效果的三準則,結合原始Canny算子及改進思想,實現了顯微細胞圖像Canny分割,算法思想和步驟如下描述:

      Step 1:用二維高斯濾波模板進行卷積以消除雜點,采用的模板計算公式如下:

      濾波過程即將原輸入圖像與高斯模板進行卷積,濾波長度依據參數sigma而定,用公式表示如下:

      Step 2:計算差分圖像。一般采用2×2鄰域范圍,原圖中每一點水平方向和垂直方向的差分計算公式如下:

      式中IG為差分圖像的輸入,即二維高斯濾波后的結果;Δx為水平方向差分;Δy為垂直方向差分。

      Step 3:計算弧度和梯度,公式如下:

      Step 4:對梯度幅值進行非最大值抑制。若某個像素的灰度值與其梯度方向上前后兩個像素的灰度值相比不是最大的,那個這個像素置為255(白點),即不是邊緣 。

      Step 5:使用累計直方圖計算兩個閾值。凡是大于高閾值的一定作為邊緣,像素點置0;凡是小于低閾值的一定不是邊緣,像素點置255;若檢測結果位于兩者之間,檢測其鄰接像素中超過高閾值的邊緣像素:存在則為邊緣點,否則非邊緣點[6]。

      以上步驟結束,由輸入的原圖像得到一副二值邊緣圖。

      2 Canny算子的DSP優(yōu)化

      在DSP平臺編程實現和優(yōu)化Canny算子時,需要根據特定處理器的特點來展開,主要參考數據總線寬度,核內功能單元、寄存器等。

      2.1 TMS320C6678特性和優(yōu)化概述

      TMS320C6678在單芯片上集成8顆1.25 GHz C66X核,支持定點運算,字寬一般為16位;支持浮點運算,字寬可為32位、40位、48位、64位。每個核具有8個功能單元(.M1,.L1,.D1,.S1.,M2,.L2,.D2,.S2),2個寄存器組(A,B兩組64個寄存器)和2條數據通路。每個C66X核的.M單元在每個時鐘周期內能夠執(zhí)行以下定點操作:4個32×32 b乘法,16個16×16 b乘法,4個16×32 b乘法,8個8×8 b乘法, 4個16×16 b乘法和加減運算。.L和.S單元支持64 b操作數據,如此可以容納多算術、邏輯和數據打包指令并行處理。還可以通過長型操作數,最長可達128位,完成雙倍數據的轉換[7]。

      在DSP平臺上,數據傳輸的設計是圖像系統(tǒng)的關鍵環(huán)節(jié),CPU處理任務時的速度很大程度都受到外部存儲器的限制[8]。TMS320C6678片內存儲器含寄存器、Cache、L2、共享存儲器,訪問速度快,然而容量卻非常有限,當圖像數據量較大時,無法將待分割的整幅圖像和一些中間結果置于片內進行處理。例如對800×600、24位BMP圖像數據處理,其大小為1.37 MB,考慮到C6678片內存儲器的大小,分割的圖像數據和中間結果分布在外圍DDR,因此,在任務處理過程中,CPU直接訪問外部存儲器接口的情況下,頻繁與外部存儲器發(fā)生數據交互大大影響程序的執(zhí)行效率。

      針對以上問題,實現了基于矢量化打包數據處理實現預處理過程(高斯濾波)提高算法的并行能力,在分割過程(邊緣計算)中靈活運用對齊和非對齊的寬存儲器訪問提高存儲器讀/寫效率,另外,還參考的一般的優(yōu)化方法,如避免跳轉,展開不必要的循環(huán)等。

      2.2 矢量化打包數據處理高斯濾波

      高斯濾波是分割處理一個重要過程,在實現過程中,將輸入圖像與高斯模板進行卷積,橫向濾波時的單個像素點的濾波的濾波結果示意圖如圖1所示,縱向過程與之類似。

      采用乘累加容易實現高斯濾波,其偽代碼如下(橫向為例):

      采用以上方式實現的高斯濾波,代碼包含三重循環(huán),代碼前后相關性大,不利于編譯器優(yōu)化,每計算出單點的濾波結果,需要訪存N(N為濾波器長度)。針對該過程,采用矢量化的打包數據處理對高斯濾波進行優(yōu)化,其根本思想是利用TMS320C6678在一個時鐘周期內能夠執(zhí)行多個乘法運算,從而將濾波展開成多操作并行的代碼結構,另外,利用高斯模板的對稱結構,將兩次乘法運算優(yōu)化為一次加法和乘法。具體實現步驟如下描述:

      (1) 為更有效地讀取數據,讀取和存儲必須向量化。待處理數據最好在內存空間連續(xù)存儲,若不連續(xù),采用額外的數據打包操作,準備好數據。

      (2) 在讀取數據時,需要將一次并行處理的數據全部讀入,這一步需要采用寬存儲器對連續(xù)數據進行訪問,具體寬度根據需要并行的操作、處理器并行操作的能力、處理器單次最大訪問寬度而定。

      最后,將運算相關的指令合并成intrinsic函數[9},以充分利用C66x的特性。intrinsics函數直接調用某些匯編語句,其前綴以下劃線表明,和普通函數調用方法相同。如_mpy2實現將輸入的兩個操作數的高低16位相乘,_swap4將操作數高低半字中的每一對字節(jié)分別做大端終結交換,_dopt2實現低16位乘積和高16位乘積相加[10]。實現的矢量化打包數據處理高斯濾波偽采用以上方法,分解了濾波長度帶來的第三重循環(huán),多次調用內聯函數,執(zhí)行效率高,充分利用C66x在一個周期內,完成多個16×16的乘法運算的性能,單像素結果需要進行7次乘累加的操作,可在一個周期內并行完成,以上優(yōu)化思想和代碼結構在DSP平臺運行,極具優(yōu)勢。另外,進行縱向濾波處理,由于輸入圖像在內存一般采用按行優(yōu)先存儲,需要采用額外的數據打包處理,其他過程類似。

      2.3 寬存儲器訪問計算邊緣

      寬長度存儲器訪問是指充分利用C6x系列DSP一次讀取32 位數的特性,并利用一個指令周期能讀取多個數據的特點在DSP處理過程中,盡可能多的將所需短字長操作數讀入,如一次讀入2×32 b,4×16 b,甚至8×8 b等,可成倍減少與外部存儲器發(fā)生交互,是DSP優(yōu)化過程中一個重要的優(yōu)化手段。在實現C6678 DSP平臺的Canny算法時,不止是在高斯濾波的處理過程中,計算圖像梯度信息,進行非最大抑制等過程中也同樣采用寬長度存儲器訪問,脫離傳統(tǒng)的按單位像素交互圖像數據的思維和編程方式,結合具體芯片的處理性能和應用程序要求實現和優(yōu)化Canny算子,例如C6678甚至支持128 b的超長數據,在訪問和保存中間圖像結果時,具體采用的數據位寬需要結合系統(tǒng)對精度的要求,當用16位來表示梯度信息,即C語言中的short類型,采用64 b寬存儲器訪問,便推導出梯度計算公式的等價公式如下:

      采用寬存儲器非對齊數據訪問可以從DSP內存中任意起始地址開始讀取和存儲2 B,4 B,8 B的數據,分別使用(&)_mem2_(const),(&)_mem4_(const),(&)_mem8_(const)函數。如此,便可以將圖像處理領域中頻繁使用的四鄰域模板進行推導,處理具體任務時,將四領域模板升級為連續(xù)四點四鄰區(qū),連續(xù)八點四鄰區(qū),其示意圖如圖3所示。

      圖3(a)為四鄰域模板示意圖, (b)和(c)為分別采用4 B和8 B訪問時,鄰域模板示意圖。對(b)和(c)圖像進行處理的前提和依據是:連續(xù)4點的四鄰域在內存存儲中也是連續(xù)的(不包含邊界),連續(xù)訪問的4點,在物理位置上其相關鄰點也連續(xù)。如此,可成倍節(jié)省外部存儲器訪問操作時間。訪問(a)的四鄰域點,需要4次仿存,采用推導出等價模板后,處理連續(xù)四點和八點只需4次訪問。在Canny邊緣計算過程中,需對輸入逐點遍歷,如計算梯度時遍歷整幅圖像灰度,非最大抑制時遍歷梯度和方向等,以上等價模板思想,當需要處理圖像的八鄰域或在其他比較規(guī)整的膨脹和腐蝕模板同樣適應。

      3 硬件仿真結果

      硬件平臺采用TMS320C6678LE評估板,開發(fā)軟件采用CCS V5.3,量化位數16位,對一副800×600的顯微細胞圖像進行處理,分割效果良好,見圖4。此外,在優(yōu)化前后,分別對Canny算法步驟進行分析和測試,耗時統(tǒng)計采用TSCL和TSCH寄存器,結果見表1,所統(tǒng)計的結果均是在勾選相同的編譯器優(yōu)化選項后的比對。

      4 結 語

      在DSP平臺中,采用以上思想進行優(yōu)化后,對同樣的圖像進行處理,相對于原算法,性能可以提高近3倍,在差分圖像計算時,效果極為明顯。在DSP系統(tǒng)設計中,頻繁地直接外部存儲器接口訪問,是系統(tǒng)性能提升的瓶頸,優(yōu)化結果表明,采用數據打包處理和寬存儲器訪問方式能在一定程度上解決該問題,雖不能實現數量級的優(yōu)化,但研究的優(yōu)化方法同樣可以在工程中作為輔助的優(yōu)化策略,并且具有實際優(yōu)化效果。

      圖4 分割前后的顯微細胞圖像

      表1 耗時測試仿真結果 cycle

      參考文獻

      [1] 梁光明.體液細胞圖像有形成分智能識別關鍵技術研究[D].長沙:國防科技大學,2008.

      [2] 韓慧妍,韓燮.形態(tài)學和Otsu方法在Canny邊緣檢測算子中的應用[J].微電子學與計算機,2012,29(2):156?159.

      [3] 洪運國.基于改進Canny 算子和神經網絡的人體行為識別模型[J].計算機工程與應用,2013,49(8):202?205.

      [4] 金澤安.基于DSP紅細胞圖像處理技術[D].南京:南京理工大學,2009.

      [5] 孫興華,郭麗.數字圖像處理:編程框架、理論分析、實例應用和源碼實現[M].北京:機械工業(yè)出版社,2012.

      [6] 左飛,萬晉森,劉航.數字圖像處理原理與實踐:基于Visual C++開發(fā)[M].北京:電子工業(yè)出版社,2011.

      [7] Texas Instruments. TMS320C66x DSP CPU and instruction set reference guide [M]. USA: TI, 2010.

      [8] QURESHI Shehrzad. Embedded image processing on the TMS320C6000? DSP: examples in code composer studio and MATLAB [M]. [S.l.]: Springer Verlag, 2005.

      [9] Texas Instruments. TMS320C6000系列DSP編程工具與指南[M].田黎育,何佩琨,朱夢宇,譯.北京:清華大學出版社,2006.

      [10] Texas Instruments. Multicore fixed and floating?point digital signal processor TMS320C6678 data manual [M]. USA: TI, 2013.

      針對以上問題,實現了基于矢量化打包數據處理實現預處理過程(高斯濾波)提高算法的并行能力,在分割過程(邊緣計算)中靈活運用對齊和非對齊的寬存儲器訪問提高存儲器讀/寫效率,另外,還參考的一般的優(yōu)化方法,如避免跳轉,展開不必要的循環(huán)等。

      2.2 矢量化打包數據處理高斯濾波

      高斯濾波是分割處理一個重要過程,在實現過程中,將輸入圖像與高斯模板進行卷積,橫向濾波時的單個像素點的濾波的濾波結果示意圖如圖1所示,縱向過程與之類似。

      采用乘累加容易實現高斯濾波,其偽代碼如下(橫向為例):

      采用以上方式實現的高斯濾波,代碼包含三重循環(huán),代碼前后相關性大,不利于編譯器優(yōu)化,每計算出單點的濾波結果,需要訪存N(N為濾波器長度)。針對該過程,采用矢量化的打包數據處理對高斯濾波進行優(yōu)化,其根本思想是利用TMS320C6678在一個時鐘周期內能夠執(zhí)行多個乘法運算,從而將濾波展開成多操作并行的代碼結構,另外,利用高斯模板的對稱結構,將兩次乘法運算優(yōu)化為一次加法和乘法。具體實現步驟如下描述:

      (1) 為更有效地讀取數據,讀取和存儲必須向量化。待處理數據最好在內存空間連續(xù)存儲,若不連續(xù),采用額外的數據打包操作,準備好數據。

      (2) 在讀取數據時,需要將一次并行處理的數據全部讀入,這一步需要采用寬存儲器對連續(xù)數據進行訪問,具體寬度根據需要并行的操作、處理器并行操作的能力、處理器單次最大訪問寬度而定。

      最后,將運算相關的指令合并成intrinsic函數[9},以充分利用C66x的特性。intrinsics函數直接調用某些匯編語句,其前綴以下劃線表明,和普通函數調用方法相同。如_mpy2實現將輸入的兩個操作數的高低16位相乘,_swap4將操作數高低半字中的每一對字節(jié)分別做大端終結交換,_dopt2實現低16位乘積和高16位乘積相加[10]。實現的矢量化打包數據處理高斯濾波偽采用以上方法,分解了濾波長度帶來的第三重循環(huán),多次調用內聯函數,執(zhí)行效率高,充分利用C66x在一個周期內,完成多個16×16的乘法運算的性能,單像素結果需要進行7次乘累加的操作,可在一個周期內并行完成,以上優(yōu)化思想和代碼結構在DSP平臺運行,極具優(yōu)勢。另外,進行縱向濾波處理,由于輸入圖像在內存一般采用按行優(yōu)先存儲,需要采用額外的數據打包處理,其他過程類似。

      2.3 寬存儲器訪問計算邊緣

      寬長度存儲器訪問是指充分利用C6x系列DSP一次讀取32 位數的特性,并利用一個指令周期能讀取多個數據的特點在DSP處理過程中,盡可能多的將所需短字長操作數讀入,如一次讀入2×32 b,4×16 b,甚至8×8 b等,可成倍減少與外部存儲器發(fā)生交互,是DSP優(yōu)化過程中一個重要的優(yōu)化手段。在實現C6678 DSP平臺的Canny算法時,不止是在高斯濾波的處理過程中,計算圖像梯度信息,進行非最大抑制等過程中也同樣采用寬長度存儲器訪問,脫離傳統(tǒng)的按單位像素交互圖像數據的思維和編程方式,結合具體芯片的處理性能和應用程序要求實現和優(yōu)化Canny算子,例如C6678甚至支持128 b的超長數據,在訪問和保存中間圖像結果時,具體采用的數據位寬需要結合系統(tǒng)對精度的要求,當用16位來表示梯度信息,即C語言中的short類型,采用64 b寬存儲器訪問,便推導出梯度計算公式的等價公式如下:

      采用寬存儲器非對齊數據訪問可以從DSP內存中任意起始地址開始讀取和存儲2 B,4 B,8 B的數據,分別使用(&)_mem2_(const),(&)_mem4_(const),(&)_mem8_(const)函數。如此,便可以將圖像處理領域中頻繁使用的四鄰域模板進行推導,處理具體任務時,將四領域模板升級為連續(xù)四點四鄰區(qū),連續(xù)八點四鄰區(qū),其示意圖如圖3所示。

      圖3(a)為四鄰域模板示意圖, (b)和(c)為分別采用4 B和8 B訪問時,鄰域模板示意圖。對(b)和(c)圖像進行處理的前提和依據是:連續(xù)4點的四鄰域在內存存儲中也是連續(xù)的(不包含邊界),連續(xù)訪問的4點,在物理位置上其相關鄰點也連續(xù)。如此,可成倍節(jié)省外部存儲器訪問操作時間。訪問(a)的四鄰域點,需要4次仿存,采用推導出等價模板后,處理連續(xù)四點和八點只需4次訪問。在Canny邊緣計算過程中,需對輸入逐點遍歷,如計算梯度時遍歷整幅圖像灰度,非最大抑制時遍歷梯度和方向等,以上等價模板思想,當需要處理圖像的八鄰域或在其他比較規(guī)整的膨脹和腐蝕模板同樣適應。

      3 硬件仿真結果

      硬件平臺采用TMS320C6678LE評估板,開發(fā)軟件采用CCS V5.3,量化位數16位,對一副800×600的顯微細胞圖像進行處理,分割效果良好,見圖4。此外,在優(yōu)化前后,分別對Canny算法步驟進行分析和測試,耗時統(tǒng)計采用TSCL和TSCH寄存器,結果見表1,所統(tǒng)計的結果均是在勾選相同的編譯器優(yōu)化選項后的比對。

      4 結 語

      在DSP平臺中,采用以上思想進行優(yōu)化后,對同樣的圖像進行處理,相對于原算法,性能可以提高近3倍,在差分圖像計算時,效果極為明顯。在DSP系統(tǒng)設計中,頻繁地直接外部存儲器接口訪問,是系統(tǒng)性能提升的瓶頸,優(yōu)化結果表明,采用數據打包處理和寬存儲器訪問方式能在一定程度上解決該問題,雖不能實現數量級的優(yōu)化,但研究的優(yōu)化方法同樣可以在工程中作為輔助的優(yōu)化策略,并且具有實際優(yōu)化效果。

      圖4 分割前后的顯微細胞圖像

      表1 耗時測試仿真結果 cycle

      參考文獻

      [1] 梁光明.體液細胞圖像有形成分智能識別關鍵技術研究[D].長沙:國防科技大學,2008.

      [2] 韓慧妍,韓燮.形態(tài)學和Otsu方法在Canny邊緣檢測算子中的應用[J].微電子學與計算機,2012,29(2):156?159.

      [3] 洪運國.基于改進Canny 算子和神經網絡的人體行為識別模型[J].計算機工程與應用,2013,49(8):202?205.

      [4] 金澤安.基于DSP紅細胞圖像處理技術[D].南京:南京理工大學,2009.

      [5] 孫興華,郭麗.數字圖像處理:編程框架、理論分析、實例應用和源碼實現[M].北京:機械工業(yè)出版社,2012.

      [6] 左飛,萬晉森,劉航.數字圖像處理原理與實踐:基于Visual C++開發(fā)[M].北京:電子工業(yè)出版社,2011.

      [7] Texas Instruments. TMS320C66x DSP CPU and instruction set reference guide [M]. USA: TI, 2010.

      [8] QURESHI Shehrzad. Embedded image processing on the TMS320C6000? DSP: examples in code composer studio and MATLAB [M]. [S.l.]: Springer Verlag, 2005.

      [9] Texas Instruments. TMS320C6000系列DSP編程工具與指南[M].田黎育,何佩琨,朱夢宇,譯.北京:清華大學出版社,2006.

      [10] Texas Instruments. Multicore fixed and floating?point digital signal processor TMS320C6678 data manual [M]. USA: TI, 2013.

      針對以上問題,實現了基于矢量化打包數據處理實現預處理過程(高斯濾波)提高算法的并行能力,在分割過程(邊緣計算)中靈活運用對齊和非對齊的寬存儲器訪問提高存儲器讀/寫效率,另外,還參考的一般的優(yōu)化方法,如避免跳轉,展開不必要的循環(huán)等。

      2.2 矢量化打包數據處理高斯濾波

      高斯濾波是分割處理一個重要過程,在實現過程中,將輸入圖像與高斯模板進行卷積,橫向濾波時的單個像素點的濾波的濾波結果示意圖如圖1所示,縱向過程與之類似。

      采用乘累加容易實現高斯濾波,其偽代碼如下(橫向為例):

      采用以上方式實現的高斯濾波,代碼包含三重循環(huán),代碼前后相關性大,不利于編譯器優(yōu)化,每計算出單點的濾波結果,需要訪存N(N為濾波器長度)。針對該過程,采用矢量化的打包數據處理對高斯濾波進行優(yōu)化,其根本思想是利用TMS320C6678在一個時鐘周期內能夠執(zhí)行多個乘法運算,從而將濾波展開成多操作并行的代碼結構,另外,利用高斯模板的對稱結構,將兩次乘法運算優(yōu)化為一次加法和乘法。具體實現步驟如下描述:

      (1) 為更有效地讀取數據,讀取和存儲必須向量化。待處理數據最好在內存空間連續(xù)存儲,若不連續(xù),采用額外的數據打包操作,準備好數據。

      (2) 在讀取數據時,需要將一次并行處理的數據全部讀入,這一步需要采用寬存儲器對連續(xù)數據進行訪問,具體寬度根據需要并行的操作、處理器并行操作的能力、處理器單次最大訪問寬度而定。

      最后,將運算相關的指令合并成intrinsic函數[9},以充分利用C66x的特性。intrinsics函數直接調用某些匯編語句,其前綴以下劃線表明,和普通函數調用方法相同。如_mpy2實現將輸入的兩個操作數的高低16位相乘,_swap4將操作數高低半字中的每一對字節(jié)分別做大端終結交換,_dopt2實現低16位乘積和高16位乘積相加[10]。實現的矢量化打包數據處理高斯濾波偽采用以上方法,分解了濾波長度帶來的第三重循環(huán),多次調用內聯函數,執(zhí)行效率高,充分利用C66x在一個周期內,完成多個16×16的乘法運算的性能,單像素結果需要進行7次乘累加的操作,可在一個周期內并行完成,以上優(yōu)化思想和代碼結構在DSP平臺運行,極具優(yōu)勢。另外,進行縱向濾波處理,由于輸入圖像在內存一般采用按行優(yōu)先存儲,需要采用額外的數據打包處理,其他過程類似。

      2.3 寬存儲器訪問計算邊緣

      寬長度存儲器訪問是指充分利用C6x系列DSP一次讀取32 位數的特性,并利用一個指令周期能讀取多個數據的特點在DSP處理過程中,盡可能多的將所需短字長操作數讀入,如一次讀入2×32 b,4×16 b,甚至8×8 b等,可成倍減少與外部存儲器發(fā)生交互,是DSP優(yōu)化過程中一個重要的優(yōu)化手段。在實現C6678 DSP平臺的Canny算法時,不止是在高斯濾波的處理過程中,計算圖像梯度信息,進行非最大抑制等過程中也同樣采用寬長度存儲器訪問,脫離傳統(tǒng)的按單位像素交互圖像數據的思維和編程方式,結合具體芯片的處理性能和應用程序要求實現和優(yōu)化Canny算子,例如C6678甚至支持128 b的超長數據,在訪問和保存中間圖像結果時,具體采用的數據位寬需要結合系統(tǒng)對精度的要求,當用16位來表示梯度信息,即C語言中的short類型,采用64 b寬存儲器訪問,便推導出梯度計算公式的等價公式如下:

      采用寬存儲器非對齊數據訪問可以從DSP內存中任意起始地址開始讀取和存儲2 B,4 B,8 B的數據,分別使用(&)_mem2_(const),(&)_mem4_(const),(&)_mem8_(const)函數。如此,便可以將圖像處理領域中頻繁使用的四鄰域模板進行推導,處理具體任務時,將四領域模板升級為連續(xù)四點四鄰區(qū),連續(xù)八點四鄰區(qū),其示意圖如圖3所示。

      圖3(a)為四鄰域模板示意圖, (b)和(c)為分別采用4 B和8 B訪問時,鄰域模板示意圖。對(b)和(c)圖像進行處理的前提和依據是:連續(xù)4點的四鄰域在內存存儲中也是連續(xù)的(不包含邊界),連續(xù)訪問的4點,在物理位置上其相關鄰點也連續(xù)。如此,可成倍節(jié)省外部存儲器訪問操作時間。訪問(a)的四鄰域點,需要4次仿存,采用推導出等價模板后,處理連續(xù)四點和八點只需4次訪問。在Canny邊緣計算過程中,需對輸入逐點遍歷,如計算梯度時遍歷整幅圖像灰度,非最大抑制時遍歷梯度和方向等,以上等價模板思想,當需要處理圖像的八鄰域或在其他比較規(guī)整的膨脹和腐蝕模板同樣適應。

      3 硬件仿真結果

      硬件平臺采用TMS320C6678LE評估板,開發(fā)軟件采用CCS V5.3,量化位數16位,對一副800×600的顯微細胞圖像進行處理,分割效果良好,見圖4。此外,在優(yōu)化前后,分別對Canny算法步驟進行分析和測試,耗時統(tǒng)計采用TSCL和TSCH寄存器,結果見表1,所統(tǒng)計的結果均是在勾選相同的編譯器優(yōu)化選項后的比對。

      4 結 語

      在DSP平臺中,采用以上思想進行優(yōu)化后,對同樣的圖像進行處理,相對于原算法,性能可以提高近3倍,在差分圖像計算時,效果極為明顯。在DSP系統(tǒng)設計中,頻繁地直接外部存儲器接口訪問,是系統(tǒng)性能提升的瓶頸,優(yōu)化結果表明,采用數據打包處理和寬存儲器訪問方式能在一定程度上解決該問題,雖不能實現數量級的優(yōu)化,但研究的優(yōu)化方法同樣可以在工程中作為輔助的優(yōu)化策略,并且具有實際優(yōu)化效果。

      圖4 分割前后的顯微細胞圖像

      表1 耗時測試仿真結果 cycle

      參考文獻

      [1] 梁光明.體液細胞圖像有形成分智能識別關鍵技術研究[D].長沙:國防科技大學,2008.

      [2] 韓慧妍,韓燮.形態(tài)學和Otsu方法在Canny邊緣檢測算子中的應用[J].微電子學與計算機,2012,29(2):156?159.

      [3] 洪運國.基于改進Canny 算子和神經網絡的人體行為識別模型[J].計算機工程與應用,2013,49(8):202?205.

      [4] 金澤安.基于DSP紅細胞圖像處理技術[D].南京:南京理工大學,2009.

      [5] 孫興華,郭麗.數字圖像處理:編程框架、理論分析、實例應用和源碼實現[M].北京:機械工業(yè)出版社,2012.

      [6] 左飛,萬晉森,劉航.數字圖像處理原理與實踐:基于Visual C++開發(fā)[M].北京:電子工業(yè)出版社,2011.

      [7] Texas Instruments. TMS320C66x DSP CPU and instruction set reference guide [M]. USA: TI, 2010.

      [8] QURESHI Shehrzad. Embedded image processing on the TMS320C6000? DSP: examples in code composer studio and MATLAB [M]. [S.l.]: Springer Verlag, 2005.

      [9] Texas Instruments. TMS320C6000系列DSP編程工具與指南[M].田黎育,何佩琨,朱夢宇,譯.北京:清華大學出版社,2006.

      [10] Texas Instruments. Multicore fixed and floating?point digital signal processor TMS320C6678 data manual [M]. USA: TI, 2013.

      猜你喜歡
      圖像處理
      海戰(zhàn)場偵察圖像處理技術圖譜及應用展望
      人工智能輔助冠狀動脈CTA圖像處理和診斷的研究進展
      基于ARM嵌入式的關于圖像處理的交通信號燈識別
      基于圖像處理的機器人精確抓取的設計與實現
      機器學習在圖像處理中的應用
      Bayesian-MCMC算法在計算機圖像處理中的實踐
      改進壓縮感知算法的圖像處理仿真研究
      基于圖像處理的定位器坡度計算
      基于圖像處理的晶圓表面缺陷檢測
      對圖像處理中ROF全變分模型的兩種算法的比較研究
      桐梓县| 莱州市| 郓城县| 顺义区| 黄平县| 烟台市| 乌审旗| 峨边| 台南市| 定南县| 礼泉县| 明溪县| 汕头市| 来宾市| 丰都县| 牙克石市| 兴隆县| 增城市| 南京市| 三台县| 甘孜| 来安县| 应城市| 汶川县| 安庆市| 普安县| 雅安市| 康保县| 精河县| 鲁甸县| 专栏| 怀宁县| 五指山市| 新野县| 信阳市| 吉隆县| 嘉鱼县| 四会市| 肇庆市| 洪雅县| 府谷县|