• 
    

    
    

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

      ?

      實(shí)時(shí)DSP圖像處理高斯濾波優(yōu)化

      2014-12-18 08:04:42王洪元虞祖耀
      制造業(yè)自動(dòng)化 2014年24期
      關(guān)鍵詞:像素點(diǎn)高斯濾波器

      金 龍,王洪元,張 繼,虞祖耀

      (常州大學(xué) 信息科學(xué)與工程學(xué)院,常州 213164)

      0 引言

      高斯濾波是一種線性濾波,可以用于圖像平滑處理和噪聲的去除,但是有著龐大的計(jì)算量。因此,有必要對(duì)高斯濾波算法進(jìn)行優(yōu)化。目前,對(duì)算法硬件優(yōu)化的研究已經(jīng)取得了一定的進(jìn)展。文獻(xiàn)[1]、[2]介紹了DSP算法優(yōu)化的思路,但沒有給出實(shí)例;文獻(xiàn)[3]優(yōu)化了Sobel邊緣檢測(cè)等三種圖像預(yù)處理算法,但也沒有詳細(xì)描述其優(yōu)化方法;文獻(xiàn)[4]對(duì)中值濾波算法在DSP上進(jìn)行了優(yōu)化,但是其優(yōu)化方法仍然需要改進(jìn)。

      本文所用的平臺(tái)是TMS320DM6446定點(diǎn)DSP處理器[5,6],它擁有ARM和DSP雙核心處理器。在對(duì)高斯平滑濾波算法程序分析的基礎(chǔ)上,分解運(yùn)算高斯平滑濾波器,將程序的運(yùn)行流程進(jìn)行重新設(shè)計(jì)和規(guī)劃,并進(jìn)行內(nèi)聯(lián)函數(shù)優(yōu)化,在算法設(shè)計(jì)和代碼優(yōu)化兩方面提高了程序的運(yùn)行效率。

      1 高斯濾波

      高斯濾波是一種低通濾波的方法器,這是它被用來對(duì)圖像進(jìn)行平滑處理的根本原因。圖1是高斯低通濾波方法器的示意圖。

      高斯濾波掩膜二維形式如下:

      式中,x和y表示的是到像素點(diǎn)間的距離,σ為分布函數(shù),高斯濾波曲線的形狀可以通過改變分布函數(shù)σ來完成。下面以如下5×5大小的高斯模板為例來說明本文的優(yōu)化方法:

      圖1 高斯低通濾波方法器

      2 基于DM6446高斯濾波實(shí)現(xiàn)及優(yōu)化

      2.1 數(shù)據(jù)相關(guān)性分析

      高斯濾波器是一種相對(duì)簡單的算法,如何充分利用DM6446 DSP良好的并行處理性能,來最快的實(shí)現(xiàn)算法是研究的重點(diǎn)。在高斯濾波算法計(jì)算過程中,每次像素點(diǎn)的計(jì)算都是相關(guān)聯(lián)的。比如當(dāng)前像素點(diǎn)和其周邊各個(gè)像素點(diǎn)的計(jì)算便有著大量重復(fù)計(jì)算。而且計(jì)算相鄰的像素點(diǎn)時(shí)獲取的圖像數(shù)據(jù)也有重復(fù)。使用DM6446芯片中的寄存器,一方面可以暫時(shí)存儲(chǔ)中間計(jì)算結(jié)果,在計(jì)算下一個(gè)像素點(diǎn)時(shí)使用,如此便可有效地避免重復(fù)運(yùn)算;另一方面,可以在計(jì)算像素點(diǎn)時(shí)將寄存器中相鄰像素點(diǎn)計(jì)算所需的圖像數(shù)據(jù)暫時(shí)存儲(chǔ),對(duì)新像素點(diǎn)進(jìn)行計(jì)算時(shí)便只需讀取新進(jìn)入濾波窗口的圖像數(shù)據(jù),數(shù)據(jù)從內(nèi)存到寄存器的傳輸量將會(huì)大大減少。

      如圖2所示,將計(jì)算像素點(diǎn)(點(diǎn)I33)時(shí)相對(duì)應(yīng)的高斯濾波窗口所覆蓋的像素點(diǎn)數(shù)據(jù)舉出,而且將窗口外相鄰的像素點(diǎn)數(shù)據(jù)也一一列出。

      圖2 濾波窗口覆蓋區(qū)域示例

      計(jì)算像素點(diǎn)I33時(shí),利用式(1),在以像素點(diǎn)I33為中心點(diǎn)的圖像區(qū)域上用高斯濾波器H覆蓋,高斯濾波器H與圖像區(qū)域內(nèi)相對(duì)應(yīng)的像素點(diǎn)數(shù)據(jù)相乘并累加,最后將所得結(jié)果與高斯濾波器系數(shù)的累加和相除,便可得到I33像素點(diǎn)的高斯濾波處理結(jié)果。計(jì)算I34像素點(diǎn)時(shí),將高斯濾波器H向右移一個(gè)像素的位置,然后做出同樣的操作。

      _dotpsu4()內(nèi)聯(lián)函數(shù)是一種可以快速完成求點(diǎn)積和指令,可以完成同行中四個(gè)相鄰的元素與濾波系數(shù)累加和的相乘并累加。因此,對(duì)圖2中所示I33 像素點(diǎn)至I36像素點(diǎn)的圖像區(qū)域,調(diào)用_dotpsu4()內(nèi)聯(lián)函數(shù)計(jì)算覆蓋區(qū)域內(nèi)像素點(diǎn)數(shù)據(jù)與高斯濾波器的卷積累加和,并與高斯濾波系數(shù)累加和相除,便得到高斯濾波結(jié)果G11、G12、G13和G14。

      2.2 內(nèi)聯(lián)函數(shù)優(yōu)化及高斯滑動(dòng)模板的運(yùn)用

      內(nèi)聯(lián)函數(shù)(intrinsics)的作用是將復(fù)雜的C語言程序替換來使程序運(yùn)行效率提高。內(nèi)聯(lián)函數(shù)的使用有兩方面,一方面是將使用頻繁調(diào)用的小函數(shù)改變?yōu)閮?nèi)聯(lián)函數(shù);另一方面則是使用C64X編譯器所提供的內(nèi)聯(lián)函數(shù)。

      不難發(fā)現(xiàn)因?yàn)樵诳臻g上相鄰所以計(jì)算中的許多數(shù)據(jù)讀取操作是可以避免的,還有很多中間結(jié)果是可以復(fù)用的。針對(duì)上述問題,利用內(nèi)聯(lián)函數(shù)_memd8(),可以一次讀取8個(gè)原始圖像像素?cái)?shù)據(jù)。因此只需要八條數(shù)據(jù)讀取指令,便可以對(duì)圖2中全部的圖像數(shù)據(jù)進(jìn)行讀取,同時(shí)還可以對(duì)多個(gè)像素點(diǎn)進(jìn)行濾波處理。

      通過_memd8()內(nèi)聯(lián)函數(shù)讀取8個(gè)原始圖像數(shù)據(jù)并與高斯平滑濾波模板進(jìn)行卷積。將1×5的高斯模板[1,2,3,2,1]用0補(bǔ)全成1×8的模板,橫向?qū)?×8的圖像數(shù)據(jù)分別做卷積之后再縱向做卷積,并按劃分成高位模板和低位模板。計(jì)算I13像素點(diǎn)處的濾波結(jié)果時(shí),如圖3(a)所示對(duì)應(yīng)原始圖像數(shù)據(jù)都按照高位和低位劃分。使用_dotpsu4()函數(shù)來計(jì)算圖像數(shù)據(jù)高位或低位與濾波模板對(duì)應(yīng)高位或低位的卷積和,其結(jié)果除以9,便可得出該像素點(diǎn)的處理結(jié)果。但當(dāng)所需計(jì)算像素點(diǎn)改變時(shí),數(shù)據(jù)中的高位和低位也會(huì)發(fā)生改變,高斯模板就需要隨著變化。計(jì)算I15像素點(diǎn)時(shí),原始圖像數(shù)據(jù)如圖3(b)所示劃分高位和低位,為了方便計(jì)算,本文采用高斯滑動(dòng)模板,1×8的模板同樣劃分高位模板和低位模板,如圖4所示高斯模板發(fā)生滑動(dòng),根據(jù)所需計(jì)算像素點(diǎn)的位置變換而變換,這樣大大方便了計(jì)算,提高了效率。

      圖3 像素點(diǎn)原始圖像數(shù)據(jù)高、低位劃分

      2.3 高斯平滑濾波優(yōu)化

      圖4 高斯模板滑動(dòng)

      高斯濾波掩膜具有可分解性的特點(diǎn),二維高斯濾波模板可以分解成橫向的一維高斯濾波模板和縱向的一維高斯濾波模板。這樣將高斯濾波掩膜進(jìn)行分解運(yùn)算大大減少了計(jì)算量,提高了程序運(yùn)行效率。

      為了使算法耗時(shí)最短,應(yīng)盡可能的減少對(duì)濾波處理過程中產(chǎn)生的中間結(jié)果進(jìn)行存儲(chǔ)或讀取操作,所以卷積累加操作應(yīng)在一次遍歷中完成。所以就需對(duì)每次遍歷處理所需讀取的基本處理單元大小進(jìn)行確定,從而讓優(yōu)化的效果最好。

      要通過_memd8()內(nèi)聯(lián)函數(shù)對(duì)濾波處理結(jié)果進(jìn)行迅速的存儲(chǔ),每次遍歷得到的濾波處理結(jié)果在行方向上應(yīng)相鄰且為8的整數(shù)倍。為了通過_dotpsu4()內(nèi)聯(lián)函數(shù)完成對(duì)像素點(diǎn)數(shù)據(jù)與高斯濾波器系數(shù)的累加卷積處理,每次應(yīng)讀取相鄰的8個(gè)同行像素點(diǎn)數(shù)據(jù)來進(jìn)行橫向卷積處理,與之類似,每次讀取相鄰的8個(gè)同列像素點(diǎn)數(shù)據(jù)來進(jìn)行縱向卷積處理。經(jīng)過以上分析,選擇8×8大小的圖像區(qū)域作為卷積處理的基本處理單元,首先進(jìn)行橫向卷積處理,再遍歷其結(jié)果進(jìn)行縱向卷積處理便可以得到8×8大小的濾波結(jié)果。

      本文在存儲(chǔ)濾波結(jié)果時(shí)選用縱向排列的方法,以大小為8×4的區(qū)域存儲(chǔ)。這樣做的好處是可以直接使用_memd8()函數(shù)對(duì)濾波結(jié)果進(jìn)行讀取,大大提高了程序讀取效率。

      2.4 濾波模塊分解優(yōu)化

      因?yàn)樵跒V波處理過程中有著很多復(fù)運(yùn)算和讀取數(shù)據(jù)操作,所以需要對(duì)處理的運(yùn)算過程進(jìn)行優(yōu)化。通過對(duì)濾波器進(jìn)行的分析,濾波器H可作如下分解:

      其中:

      可以看出,對(duì)該濾波器H線性分解后,對(duì)圖像的濾波效果和分解前是相同的。分解后的模板全部轉(zhuǎn)換為0和1的形式,免去了計(jì)算中的乘法運(yùn)算,只需加法運(yùn)算,使代碼運(yùn)算效率大大提高。分解后的濾波器對(duì)圖像進(jìn)行濾波處理的計(jì)算如圖5所示。

      圖5 濾波器線性分解后計(jì)算H1+H2+H3+H4+2H5+3H6

      其中:I11,I12,…,I55等是讀入寄存器中的像素點(diǎn)數(shù)據(jù),而中間結(jié)果存儲(chǔ)在寄存器A,B,C,…,E中。每次循環(huán)都可以得出K1、K2兩個(gè)濾波處理結(jié)果,K1和K2分別為:

      F、F(1)、F(2)、F(3)、F(4)、F(5)計(jì)算方法如圖5中E、E(1)、E(2)、E(3)、E(4)、E(5)所示。計(jì)算得出K1、K2后濾波掩膜右移兩個(gè)像素位置,以I53、T63像素點(diǎn)為中心,便只需計(jì)算新進(jìn)窗口的像素點(diǎn)數(shù)據(jù),計(jì)算K3、K4兩個(gè)濾波結(jié)果時(shí)可以重復(fù)利用開始時(shí)已經(jīng)計(jì)算出的中間結(jié)果,計(jì)算新進(jìn)入窗口元素如公式(6)所示。

      3 實(shí)驗(yàn)結(jié)果及分析

      為了測(cè)試高斯平滑濾波的優(yōu)化效果,利用式(2)所示5×5高斯濾波器應(yīng)用到尺寸不同的圖像進(jìn)行高斯濾波處理,得到算法程序消耗時(shí)間與優(yōu)化前作對(duì)比如表1所示。實(shí)驗(yàn)的仿真環(huán)境為CCSv3.3,處理器是TMS320DM6446/594MHz定點(diǎn)DSP。

      表1 優(yōu)化前后濾波耗時(shí)對(duì)比

      如表1所示,對(duì)未優(yōu)化的高斯濾波程序在-O3模式下進(jìn)行編譯,對(duì)不同尺寸的原始圖像進(jìn)行高斯平滑濾波處理所消耗時(shí)間都比較長。利用高斯濾波器可分解性的特點(diǎn),對(duì)圖像數(shù)據(jù)進(jìn)行兩次卷積處理并進(jìn)行內(nèi)聯(lián)函數(shù)優(yōu)化,先遍歷圖像數(shù)據(jù)進(jìn)行橫向卷積處理,再對(duì)其處理結(jié)果進(jìn)行縱向卷積處理。這就使兩次卷積處理能夠在對(duì)原始圖像的一次遍歷中完成。本文采用高斯滑動(dòng)模板,根據(jù)所需計(jì)算像素點(diǎn)的位置變換而變換,這樣大大方便了計(jì)算,提高了效率。分析實(shí)驗(yàn)結(jié)果后發(fā)現(xiàn),對(duì)尺寸不同的原始圖像進(jìn)行高斯濾波處理,處理效率提高了22倍以上,而且尺寸越大的原始圖像,高斯濾波處理的優(yōu)化效果就越顯著。

      對(duì)一幅240×180×8bit大小的原始圖像,使用不同大小的高斯濾波器進(jìn)行濾波處理,所得到算法消耗時(shí)間如表2所示。分析后可以看出,高斯濾波器的尺度越大,采用本文所述的優(yōu)化方法進(jìn)行高斯濾波處理,所得的優(yōu)化效果就會(huì)越明顯。

      表2 不同尺寸掩膜優(yōu)化性能對(duì)比

      4 結(jié)論

      本文以TMS320DM6446 DSP為平臺(tái),基于高斯平滑掩膜的可分解性,通過對(duì)濾波器進(jìn)行線性分解,內(nèi)聯(lián)函數(shù)優(yōu)化,優(yōu)化高斯濾波模板,合理安排存儲(chǔ)方式等技術(shù),大大減少了高斯濾波算法的執(zhí)行時(shí)間。實(shí)驗(yàn)表明,本文所述的優(yōu)化方法可以明顯提高高斯濾波算法運(yùn)行效率,具有較好的應(yīng)用價(jià)值。

      [1]刁一平,趙曉群.基于TI C6000DSP的C/C++語言代碼效率優(yōu)化[J].微計(jì)算機(jī)應(yīng)用,2007,28(5):544-548.

      [2]楊光宇,高曉蓉,王黎,等.基于TI C6000 系列DSP C/C++程序優(yōu)化技術(shù)[J].現(xiàn)代電子技術(shù),2009,33(8):544-548.

      [3]陳松,鄭紅,吳興華,等.基于DSP 的數(shù)字圖像預(yù)處理算法優(yōu)化方法[J].儀器儀表用戶,2010,17(3):58-60.

      [4]黃德天,陳建華.DSP圖像處理的程序優(yōu)化[J].中國光學(xué)與應(yīng)用光學(xué),2009,2(5):452-459.

      猜你喜歡
      像素點(diǎn)高斯濾波器
      基于無擾濾波器和AED-ADT的無擾切換控制
      小高斯的大發(fā)現(xiàn)
      天才數(shù)學(xué)家——高斯
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      開關(guān)電源EMI濾波器的應(yīng)用方法探討
      電子制作(2018年16期)2018-09-26 03:26:50
      基于canvas的前端數(shù)據(jù)加密
      基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
      基于TMS320C6678的SAR方位向預(yù)濾波器的并行實(shí)現(xiàn)
      有限域上高斯正規(guī)基的一個(gè)注記
      基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
      苍溪县| 盱眙县| 肥西县| 哈密市| 隆昌县| 鄂州市| 克什克腾旗| 庆阳市| 正定县| 梁河县| 凌云县| 嘉鱼县| 五家渠市| 垦利县| 云安县| 方山县| 堆龙德庆县| 沂南县| 抚顺市| 辽宁省| 长武县| 班玛县| 外汇| 聊城市| 米易县| 靖江市| 沂水县| 广丰县| 大兴区| 广德县| 宝应县| 保德县| 石台县| 池州市| 图们市| 镇巴县| 金寨县| 呼图壁县| 百色市| 溆浦县| 和林格尔县|