《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 基于二維FFT的圖像濾波方法及實(shí)現(xiàn)

基于二維FFT的圖像濾波方法及實(shí)現(xiàn)

2008-12-03
作者:鄒德財(cái)1,2,吳海濤1,盧曉春1

  摘 要: 二維傅立葉變換" title="傅立葉變換">傅立葉變換" title="快速傅立葉變換" title="快速傅立葉變換">快速傅立葉變換">快速傅立葉變換(FFT)在一個(gè)傳統(tǒng)概念的處理機(jī)上實(shí)現(xiàn)時(shí),需要芯片具有更多的邏輯資源。本文給出了基于FPGA的自定義處理機(jī)(CCM)的二維FFT算法和實(shí)現(xiàn)。在CCM的Splash-2平臺(tái)上實(shí)現(xiàn)了二維FFT,計(jì)算速度達(dá)到180Mflops,最快速度超過Sparc-10工作站的23倍。同時(shí),對(duì)于一個(gè)N×N圖像,這種實(shí)現(xiàn)方法可以滿足二維FFT所需要的O(N2log2N)次的浮點(diǎn)算術(shù)運(yùn)算。
  關(guān)鍵詞: 自定義處理機(jī)(CCM);二維;快速傅立葉變換(FFT); 圖像;Splash-2

?

  當(dāng)被處理的圖像像素相對(duì)較小時(shí),可以直接采用空間域?yàn)V波的方法。但隨著像素的增多,計(jì)算量也隨之增大。針對(duì)這種情況,本文對(duì)像素較大的圖像,采用了一種將圖像先從空域轉(zhuǎn)換到頻域,執(zhí)行點(diǎn)到點(diǎn)的乘法濾波,然后通過反傅立葉變換,將頻域內(nèi)濾波器圖像再轉(zhuǎn)換到空間域的方法。在此基礎(chǔ)上,對(duì)二維快速傅立葉變換采用了基于FPGA的CCM的Splash-2平臺(tái)實(shí)現(xiàn)方式,目的是為了對(duì)視頻信號(hào)進(jìn)行實(shí)時(shí)濾波。實(shí)現(xiàn)過程中需要對(duì)浮點(diǎn)數(shù)" title="浮點(diǎn)數(shù)">浮點(diǎn)數(shù)進(jìn)行計(jì)算,采用了CCM可以自定義數(shù)據(jù)格式和算法數(shù)據(jù)流以滿足應(yīng)用的需要。
1 用傅立葉變換進(jìn)行圖像濾波
  圖1是用快速傅立葉變換進(jìn)行圖像濾波處理的實(shí)現(xiàn)過程[1],其中,預(yù)處理階段包括確定圖像大小、獲得填充參數(shù)和生成一個(gè)濾波函數(shù)等過程;后處理階段包括計(jì)算結(jié)果的實(shí)部" title="實(shí)部">實(shí)部,修剪圖像以及將圖像進(jìn)行轉(zhuǎn)換等操作,其他部分將在以下環(huán)節(jié)分別進(jìn)行介紹。

?

1.1 離散傅立葉變換(DFT)
  一個(gè)N×N圖像的二維的DFT,f(x,y)定義為:
  

  二維的DFT變換可以分解成多個(gè)一維的傅立葉變換,則(1)式等同于:
  

  公式(1)、(2)表明一個(gè)N×N的二維DFT可以通過先進(jìn)行N個(gè)一維DFT(行),然后再進(jìn)行另外N個(gè)一維DFT(列)來計(jì)算,即所謂的行列分解法[2]。
1.2 快速傅立葉變換(FFT)
? 執(zhí)行一個(gè)N點(diǎn)DFT所需的復(fù)雜乘法和加法運(yùn)算次數(shù)與N2成正比。由于一維DFT可以被分解,所以進(jìn)行乘法與加法運(yùn)算的次數(shù)正比于N×log2N。而FFT算法通過“分而治之”的方法來實(shí)現(xiàn)其較高的計(jì)算效率。通過時(shí)間與頻率采樣的分組,具有N個(gè)值的DFT運(yùn)算可以表示成兩點(diǎn)DFT的組合方式。這兩點(diǎn)DFT稱為蝶形運(yùn)算,它需要一次復(fù)乘和兩次復(fù)加來實(shí)現(xiàn)。蝶形結(jié)構(gòu)的符號(hào)如圖2所示(左側(cè):基2的蝶形結(jié)構(gòu))。

?

  用FFT“分而治之”的方法,一個(gè)8點(diǎn)的FFT的計(jì)算如圖2所示。N點(diǎn)FFT的每一級(jí)運(yùn)算由N/2基2的蝶形組成,總共有l(wèi)og2N次運(yùn)算。因此,每個(gè)FFT共有(N/2)×log2N個(gè)蝶形結(jié)構(gòu)。一個(gè)二維FFT可以拆分為兩組一維的DFT運(yùn)算,且每個(gè)DFT可以用一維的FFT來計(jì)算。此外,數(shù)據(jù)以倒位序輸入而以正常的線性順序輸出。
2 浮點(diǎn)算法
2.1 浮點(diǎn)格式的表示

  為了實(shí)現(xiàn)本文給出的FFT運(yùn)算,在此設(shè)計(jì)了一個(gè)較小的18bit的浮點(diǎn)格式。用這種格式來滿足兩種特定要求:(1)動(dòng)態(tài)范圍需要非常大,以便能夠準(zhǔn)確地表示一個(gè)實(shí)數(shù)的大小、正負(fù);(2)進(jìn)入Splash-2平臺(tái)的XILINX 4010處理器的數(shù)據(jù)通道寬度為36bit,且每一個(gè)時(shí)鐘周期" title="時(shí)鐘周期">時(shí)鐘周期內(nèi)都輸入復(fù)數(shù)的實(shí)部與虛部?;谶@些要求,使用的浮點(diǎn)格式如圖3所示。

?

2.2 浮點(diǎn)加法減法與乘法
  為了在每個(gè)時(shí)鐘周期產(chǎn)生一個(gè)結(jié)果,開發(fā)浮點(diǎn)加減法程序來實(shí)現(xiàn)管道化單元,所實(shí)現(xiàn)的浮點(diǎn)加法與減法算法與最傳統(tǒng)的處理器相似。
  浮點(diǎn)乘法與整數(shù)乘法類似。因?yàn)楦↑c(diǎn)數(shù)是以“符號(hào)-數(shù)字”的形式存儲(chǔ),乘法器僅需要處理無符號(hào)整數(shù),與浮點(diǎn)加法器的結(jié)構(gòu)類似[3],浮點(diǎn)乘法器單元也是每個(gè)時(shí)鐘周期產(chǎn)生一次結(jié)果,這種設(shè)計(jì)的瓶頸是整數(shù)乘法器。
  本文將VHDL語言放在XILINX芯片相應(yīng)開發(fā)工具ISE中進(jìn)行編譯,同時(shí)給出時(shí)延、速度等相關(guān)參數(shù)。
  浮點(diǎn)運(yùn)算單元還與FIR濾波器組合一起使用。FFT運(yùn)算以10MHz工作,轉(zhuǎn)換的結(jié)果存儲(chǔ)在Splash-2開發(fā)板的存儲(chǔ)器中。算術(shù)單元的最大時(shí)鐘速度至少可以工作在10MHz。
3 FFT的實(shí)現(xiàn)
  本文從一個(gè)幀緩沖區(qū)得到連續(xù)的視頻圖像提供給FFT和IFFT參與并行計(jì)算從而構(gòu)建出濾波算法。以下討論用于實(shí)現(xiàn)FFT、FFT中的蝶形操作以及濾波處理的再循環(huán)算法。
3.1 FFT再循環(huán)算法
  為了計(jì)算二維的FFT,需要設(shè)計(jì)一個(gè)通過蝶形運(yùn)算的數(shù)據(jù)循環(huán)算法。圖4給出了相應(yīng)的結(jié)構(gòu)圖。

?

?

  兩列存儲(chǔ)器用來存儲(chǔ)FFT的每一級(jí)運(yùn)算的輸入輸出數(shù)據(jù)。每一列存儲(chǔ)器包括三個(gè)處理單元,用來把兩個(gè)18bit浮點(diǎn)數(shù)的實(shí)部與虛部存儲(chǔ)到它們的本地內(nèi)存。由于本地內(nèi)存只有16bit寬,先將兩個(gè)18bit浮點(diǎn)數(shù)值進(jìn)行分割,然后按順序放在三個(gè)存儲(chǔ)單元中。為了計(jì)算輸入圖像的FFT,來自于幀緩沖區(qū)中的數(shù)據(jù)幀從8bit的整數(shù)被轉(zhuǎn)換為18bit的浮點(diǎn)數(shù)存儲(chǔ)在第一列中。在計(jì)算二維FFT時(shí),首先計(jì)算圖像每一行的一維FFT,然后計(jì)算行變換后每一列的FFT。一維FFT的計(jì)算與圖2中所示方法相同。FFT的第一級(jí)通過從第一列存儲(chǔ)區(qū)以倒位序讀取數(shù)據(jù)采樣點(diǎn)的每一行,然后將它送給蝶形操作進(jìn)行計(jì)算。蝶形計(jì)算的結(jié)果存儲(chǔ)在第二列存儲(chǔ)區(qū)。當(dāng)?shù)谝患?jí)中的蝶形計(jì)算完成時(shí),開始第二級(jí)計(jì)算,從第二列存儲(chǔ)區(qū)中順序讀取數(shù)據(jù)然后送入蝶形處理器,這一操作的結(jié)果存儲(chǔ)在第一列存儲(chǔ)區(qū)。這一循環(huán)方法通過從一個(gè)存儲(chǔ)區(qū)中讀數(shù)而在另一外存儲(chǔ)區(qū)存儲(chǔ)計(jì)算結(jié)果來進(jìn)行。當(dāng)圖中每一行一維FFT計(jì)算完時(shí)循環(huán)終止。第二組一維FFT與第一組以相同的方法進(jìn)行計(jì)算,直到第二組的FFT計(jì)算完第一組的所有結(jié)果。當(dāng)最后一次FFT的最后一級(jí)計(jì)算完時(shí),數(shù)據(jù)從X11傳到X15進(jìn)行濾波。一次完整的二維FFT過程包括2×N2×log2N次蝶形操作。
3.2 蝶形實(shí)現(xiàn)
  蝶形操作是FFT算法的核心。蝶形運(yùn)算框圖如圖2所示,它包括了一次復(fù)乘與兩次浮點(diǎn)加法、減法。復(fù)乘包括4次乘法和兩次加減。每個(gè)時(shí)鐘周期內(nèi)以10MHz進(jìn)行8次浮點(diǎn)操作。蝶形操作的計(jì)算量為80Mflops。圖5表示在Splash-2平臺(tái)上如何將蝶形運(yùn)算在5個(gè)處理單元之間進(jìn)行分割計(jì)算。
  復(fù)乘的實(shí)部與虛部分別用下式來表示:
  
  圖2中蝶形運(yùn)算輸入A與輸入B如圖5中的f(x)所示。A值先送入計(jì)算,在下個(gè)時(shí)鐘周期再送入B的值。輸入A不與旋轉(zhuǎn)因子相乘而是通過多路選擇開關(guān)對(duì)它乘1加0無改變地通過循環(huán)運(yùn)算。當(dāng)B的實(shí)部與虛部送入時(shí),它們依次通過4個(gè)處理單元來得到復(fù)乘結(jié)果。處理單元1(PE1)讀出相應(yīng)旋轉(zhuǎn)因子的實(shí)部并將它與B的實(shí)部相乘,計(jì)算結(jié)果與旋轉(zhuǎn)因子送到處理單元3(PE3),B的實(shí)部與虛部送到處理單元2(PE2)。PE2將B的虛部與相應(yīng)旋轉(zhuǎn)因子相乘結(jié)果送入PE3。PE3從PE1中讀取B.re.re,把它與從PE2中讀取的B.im.im相加,得到復(fù)乘實(shí)部的最終結(jié)果.re;復(fù)乘虛部.im可用同樣的方法在PE3與PE4中得到。在第一個(gè)時(shí)鐘周期內(nèi)將A與相加得到X,在第二個(gè)時(shí)鐘周期內(nèi)將A減去得到Y(jié),這樣就完成了蝶形運(yùn)算。

?

  由于存儲(chǔ)器數(shù)據(jù)總線的寬度僅為16bit,在本地PE1、PE2的存儲(chǔ)器中無法存儲(chǔ)18bit格式的旋轉(zhuǎn)因子。因此從18bit浮點(diǎn)指數(shù)域中減去2bit來產(chǎn)生一個(gè)較小的16bit格式,而用歐拉定理可以將旋轉(zhuǎn)因子表示成正余弦函數(shù)的形式,因此浮點(diǎn)數(shù)的值將不會(huì)有大于0的指數(shù)。因此,指數(shù)域范圍從0~-31變化,這樣指數(shù)域的長(zhǎng)度從7bit減到5bit。當(dāng)旋轉(zhuǎn)因子被讀入處理單元時(shí),在相應(yīng)運(yùn)算單元中進(jìn)行一次從16bit格式到18bit格式的轉(zhuǎn)換即可。
3.3 濾波
  當(dāng)輸入圖像轉(zhuǎn)換到頻域時(shí),矩陣濾波系數(shù)H(u,v)和轉(zhuǎn)換后的圖像可以通過濾波器得到濾波后的圖像。矩陣H(u,v)元素值的范圍為0~1.0,它與蝶形運(yùn)算旋轉(zhuǎn)因子以相同的的存儲(chǔ)方式存儲(chǔ)在本地的存儲(chǔ)器中。濾波系數(shù)存儲(chǔ)在X15和X16芯片的本地存儲(chǔ)器中。濾波器芯片包括一個(gè)浮點(diǎn)乘法單元和濾波系數(shù)地址邏輯單元,X15與X16用來對(duì)轉(zhuǎn)換后圖像的實(shí)部和虛部分別進(jìn)行濾波。
  不同類型的濾波器如理想濾波器以及其他類型濾波器可以先計(jì)算,然后從宿主機(jī)下載到開發(fā)平臺(tái)的存儲(chǔ)器中。
  由于CCM的靈活性,浮點(diǎn)格式可以通過自定義方式以最小的比特?cái)?shù)來達(dá)到最大精度。利用Splash-2的并行結(jié)構(gòu),地址計(jì)算、蝶形運(yùn)算以及濾波可以并行地進(jìn)行計(jì)算。通過蝶形運(yùn)算操作,每個(gè)時(shí)鐘周期內(nèi)可以以10MHz的速度得到一個(gè)實(shí)數(shù)或復(fù)數(shù)結(jié)果。這種應(yīng)用的性能類似于一個(gè)典型的DSP處理器所達(dá)到的性能。


參考文獻(xiàn)
[1] RAFAE1 C G,RICHARD E W,STEVEN L E.數(shù)字圖像處理.北京:電子工業(yè)出版社,2006.
[2] DAN E D,RUSSELL M M.多維數(shù)字信號(hào)處理.北京:科學(xué)出版社,1991.
[3] SHIRAZI N,WALTERS A P A.Quantitative analysis of floating point arithmetic on FPGA based custom computing?machines.IEEE Symposium on FPGAs for Custom Computing Machines,1995,(4).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲午夜黄色| 99视频在线观看一区三区| 欧美成人三级在线| 亚洲男人av电影| 亚洲精品一区中文| 亚洲一区二区三区在线观看视频| 激情综合色丁香一区二区| 欧美一站二站| 在线视频欧美一区| 亚洲日本欧美日韩高观看| 亚洲欧美日本伦理| 一区二区av在线| 亚洲电影av| 国内成人精品2018免费看 | 亚洲欧美国产精品va在线观看| 亚洲国产专区校园欧美| 欧美一级一区| 亚洲欧美成aⅴ人在线观看| 亚洲理论在线| 91久久精品国产91久久性色tv| 伊人久久成人| 国产一区二区三区在线观看免费视频 | 欧美视频一区二区三区在线观看| 欧美日韩视频专区在线播放 | 国产精品久久久久久久久果冻传媒| 国产精品成人一区二区网站软件| 国产精品国产自产拍高清av王其| 国产精品美女一区二区在线观看| 国产精品免费区二区三区观看| 国产精品看片资源| 国产视频久久| 伊人色综合久久天天| 亚洲丰满少妇videoshd| 日韩视频第一页| 亚洲综合成人在线| 久久国产精品电影| 亚洲破处大片| 中文国产成人精品| 欧美一级播放| 久久天堂成人| 欧美精品在线一区二区| 国产精品久久久久久久app| 国产亚洲精品久久久久动| 伊人久久大香线蕉综合热线| 亚洲黄色在线视频| 亚洲视频在线观看| 欧美专区亚洲专区| 99re6热只有精品免费观看| 亚洲一区二区三区免费视频| 欧美资源在线观看| 欧美成人dvd在线视频| 国产精品草草| 国产一区美女| 亚洲乱码国产乱码精品精天堂| 亚洲已满18点击进入久久| 亚洲国产精品久久久久婷婷老年 | 国产一区二区三区在线观看网站 | 欧美亚洲免费| 男男成人高潮片免费网站| 欧美日韩另类视频| 国产婷婷色一区二区三区在线| 亚洲第一福利视频| 亚洲午夜91| 亚洲激情午夜| 亚洲欧美日韩国产另类专区| 久久中文在线| 国产精品每日更新| 亚洲国产成人久久| 亚洲欧美日产图| 日韩午夜免费视频| 欧美中文字幕| 欧美精品一区在线发布| 国产亚洲视频在线| 亚洲精品一区二区三区不| 午夜精品福利一区二区蜜股av| 日韩视频在线你懂得| 欧美中文在线观看| 欧美日韩你懂的| 一区二区在线看| 一区二区三区四区五区视频| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲一区二区精品| 免费在线成人av| 国产日韩在线播放| 亚洲精品视频在线观看免费| 欧美伊人久久大香线蕉综合69| 国产精品99久久久久久人| 久久久五月婷婷| 国产精品色午夜在线观看| 亚洲啪啪91| 亚洲国产精品久久久久久女王| 香蕉国产精品偷在线观看不卡| 欧美精品成人一区二区在线观看 | 久久精品国产精品亚洲综合| 欧美色图首页| 亚洲激情小视频| 欧美在线综合视频| 午夜精品福利在线| 欧美日韩精品一区二区三区| 在线看片一区| 欧美一区二区三区喷汁尤物| 亚洲免费一在线| 欧美日韩另类国产亚洲欧美一级| 在线观看欧美| 久久精品亚洲一区二区| 亚洲欧美一区二区视频| 欧美日韩国产综合视频在线观看| 亚洲国产成人精品久久久国产成人一区| 欧美一区二区三区免费观看| 亚洲欧美在线视频观看| 欧美日韩一区二区三区免费看| 亚洲国产婷婷香蕉久久久久久| 久久精品青青大伊人av| 久久精品视频在线| 国产欧美一区二区精品婷婷 | 午夜视频精品| 国产精品视频久久一区| 亚洲深夜激情| 亚洲一卡久久| 国产精品护士白丝一区av| a4yy欧美一区二区三区| 一本色道久久综合狠狠躁的推荐| 欧美高清在线精品一区| 亚洲国产乱码最新视频| 亚洲美女在线视频| 欧美精品激情| 日韩午夜免费| 亚洲视频视频在线| 欧美日韩在线不卡| 亚洲色在线视频| 性高湖久久久久久久久| 国产精品久久久久久久一区探花| 99国内精品久久| 亚洲影院免费| 国产欧美午夜| 久久国产手机看片| 男人的天堂亚洲在线| 亚洲国产一区二区精品专区| 亚洲精品自在在线观看| 欧美日韩福利视频| 一区二区成人精品| 午夜视频一区二区| 国产日韩欧美一区二区三区在线观看 | 一本大道久久精品懂色aⅴ| 亚洲欧美视频在线| 国产欧美日韩亚洲一区二区三区| 欧美在现视频| 欧美国产一区二区在线观看| 亚洲精品少妇| 欧美一区二区大片| 一区视频在线播放| 一本色道久久加勒比精品| 国产精品成人观看视频国产奇米| 午夜激情一区| 另类天堂av| 亚洲精品一区在线观看香蕉| 亚洲一级影院| 国内精品免费在线观看| 亚洲免费大片| 国产精品亚洲综合天堂夜夜| 亚洲国产第一| 欧美日一区二区三区在线观看国产免| 亚洲午夜精品网| 久久久久久综合| 最新日韩欧美| 欧美一级精品大片| 在线不卡免费欧美| 亚洲一区欧美一区| 狠狠干成人综合网| 在线中文字幕一区| 国产亚洲欧美一级| 一区二区欧美激情| 国产一区二区三区免费不卡| 99riav国产精品| 国产情人综合久久777777| 亚洲高清在线观看一区| 欧美日韩一区二区在线观看| 新67194成人永久网站| 欧美激情在线观看| 性8sex亚洲区入口| 欧美日本国产一区| 欧美一区二区福利在线| 欧美区在线播放| 欧美一区二区三区日韩视频| 欧美日韩精品免费观看| 欧美在线视频在线播放完整版免费观看| 欧美精品日本| 久久国产视频网站| 欧美日韩四区| 亚洲国产小视频在线观看| 国产精品久久久久天堂| 91久久在线观看| 国产农村妇女毛片精品久久莱园子 | 亚洲人成在线观看| 国产精品自拍一区| 这里只有精品丝袜| 极品尤物一区二区三区| 午夜亚洲一区| 亚洲免费观看| 欧美h视频在线|