国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于窗結(jié)構(gòu)和巴切奇偶排序的中值濾波器硬件設(shè)計(jì)與實(shí)現(xiàn)

2013-12-18 10:37:22孫凱旻顧美康
關(guān)鍵詞:奇偶中值排序

孫凱旻,王 亮,顧美康

(上海師范大學(xué) 信息與機(jī)電工程學(xué)院,上海 200234)

0 引 言

數(shù)字圖像處理領(lǐng)域中,非線性中值濾波器的應(yīng)用非常廣泛.在進(jìn)行圖像識(shí)別、視頻跟蹤等工作之前一般都會(huì)用中值濾波器進(jìn)行圖像預(yù)處理,因?yàn)樗苡行符}噪聲,并不會(huì)使邊界區(qū)域模糊過大.中值濾波器一般是用通用計(jì)算機(jī)和軟件來實(shí)現(xiàn)的,然而由于傳統(tǒng)處理器串行結(jié)構(gòu)的局限性,隨著視頻圖像分辨率的不斷提高,對(duì)濾波處理速度的要求也越來越高,因此這種方式已經(jīng)越來越不能滿足實(shí)時(shí)性的要求.另外專用芯片設(shè)計(jì)周期長(zhǎng)、成本高、而且靈活性差,因此也不適合用來專門進(jìn)行圖像濾波工作.現(xiàn)場(chǎng)可編程門陣列(FPGA)以其可編程性和并行計(jì)算結(jié)構(gòu)的特點(diǎn),成為了實(shí)現(xiàn)濾波處理的理想工具[1].

利用FPGA進(jìn)行數(shù)字圖像處理中值濾波的研究文獻(xiàn)較多.如文獻(xiàn)[2]提出一種快速排序法的新算法,用于濾波器的功能邏輯模塊.該算法為比特串行濾波算法(Bit serial median algorithm),并在此基礎(chǔ)上擴(kuò)展并結(jié)合權(quán)重法和優(yōu)先級(jí)次序法.如果對(duì)N個(gè)像素值進(jìn)行處理,這種算法復(fù)雜度為O(N),與冒泡排序法(Bubble Sort)O(N)的復(fù)雜度相比,所占用的邏輯資源大大減少.然而在XC4010E-1 FPGA芯片實(shí)現(xiàn)后,處理速度相對(duì)較慢,圖像處理速度僅僅為25幀/s.文獻(xiàn)[3]實(shí)現(xiàn)了向量中值濾波器,并組成了圖像濾波系統(tǒng).該系統(tǒng)使用Stratix EP1S40F780C5 FPGA芯片,處理速度達(dá)到80 MHz/像素,然而缺點(diǎn)是需要硬件設(shè)計(jì)結(jié)合軟核處理器,因此所占邏輯資源較多.

本文作者以進(jìn)一步權(quán)衡邏輯資源和處理速度為目標(biāo),利用Altera EP2C70 FPGA硬件平臺(tái)設(shè)計(jì)了基于窗結(jié)構(gòu)和巴切奇偶排序的中值濾波器并搭建了系統(tǒng)結(jié)構(gòu).文章第1章介紹了中值濾波器和巴切奇偶排序的概念;第2章闡述了濾波器硬件結(jié)構(gòu)設(shè)計(jì)思路,具體而言即掃描模塊和濾波器功能模塊,前者完成對(duì)視頻信息的輸入工作,后者對(duì)視頻信號(hào)作排序處理工作,作者分別使用窗結(jié)構(gòu)和巴切奇偶排序來完成2個(gè)模塊的搭建.之后給出濾波器在ModelSim上仿真波形圖驗(yàn)證了結(jié)果,并針對(duì)濾波效果圖進(jìn)行分析;第3章提出了可進(jìn)一步改進(jìn)結(jié)構(gòu)的想法;第4章總結(jié)全文.

1 理論背景

1.1 中值濾波器

中值濾波器是一種基于統(tǒng)計(jì)排序的非線性濾波器.它的響應(yīng)是濾波器掩膜所包圍的圖像區(qū)域中各個(gè)像素從小到大排序后的中間值.中值濾波器的使用非常普遍,這是因?yàn)閷?duì)于一定類型的隨機(jī)噪聲,它的去噪聲能力非常優(yōu)秀,比小尺寸的線性平滑濾波器的模糊程度明顯要低.中值濾波器對(duì)處理脈沖噪聲(椒鹽噪聲)非常有效,這種噪聲是黑白點(diǎn)疊加在圖像上而形成的[4-5].

假設(shè)一個(gè)數(shù)值集合的中值為£,則有一半元素的值小于或等于£,還有一半元素的值大于或等于£.中值濾波處理時(shí),必須先設(shè)定掩膜,然后將掩膜內(nèi)的像素按大小排序,確定出中值,并將中值賦予新像素點(diǎn).

本文作者設(shè)計(jì)的是一個(gè)3中值濾波器,掩膜內(nèi)共包括9個(gè)像素,可以用下式表示濾波:

£=middle{Zk|k=1,2,3,…,9}.

(1)

式(1)中:£表示新像素點(diǎn)的值,Zk表示掩膜內(nèi)各個(gè)像素點(diǎn)的值,middle運(yùn)算表示排序后取中值.

1.2 巴切奇偶排序

巴切排序網(wǎng)絡(luò)本質(zhì)上是一個(gè)非線性排序算法,由一系列巴切比較器構(gòu)成.巴切排序網(wǎng)絡(luò)理論有2個(gè)分支:巴切奇偶排序網(wǎng)絡(luò)(Batcher’s Odd-Even Sort Network)和巴切雙調(diào)排序歸并網(wǎng)絡(luò)(Batcher’s Bitonic Sort Network),本設(shè)計(jì)的濾波功能邏輯模塊使用前者.使用巴切奇偶排序能大大降低比較器的數(shù)量,從而減少邏輯資源的使用.

巴切奇偶排序網(wǎng)絡(luò)數(shù)學(xué)理論基于Knuth 0-1 原理,由巴切比較器構(gòu)成.其8元排序網(wǎng)絡(luò)排序過程如圖1所示.

由圖1可以看出,8元巴切奇偶排序網(wǎng)絡(luò)排序過程是,先將8個(gè)元素分為2組,每組4個(gè)元素,對(duì)這2組進(jìn)行并行4元巴切奇偶排序.然后對(duì)這兩個(gè)排序后的序列做歸并得到最終8元奇偶排序網(wǎng)絡(luò).

圖1 8元巴切奇偶排序網(wǎng)絡(luò)排序過程

2 硬件結(jié)構(gòu)設(shè)計(jì)

2.1 系統(tǒng)結(jié)構(gòu)

為在FPGA硬件上實(shí)現(xiàn)作者設(shè)計(jì)的中值濾波器,設(shè)計(jì)并搭建以下系統(tǒng)平臺(tái):

視頻信號(hào)從CCD攝像頭通過AV輸入接口進(jìn)入,此時(shí)信號(hào)還是模擬的,需要使用ADV7180芯片對(duì)其進(jìn)行模數(shù)轉(zhuǎn)換.I2C_AV配置模塊對(duì)ADV7180芯片進(jìn)行適當(dāng)配置后能對(duì)模擬信號(hào)識(shí)別并解碼成8位4∶2∶2分量視頻數(shù)據(jù).

圖2 基于FPGA的中值濾波器系統(tǒng)架構(gòu)

隨后視頻圖像數(shù)據(jù)流進(jìn)入SDRAM進(jìn)行存儲(chǔ).使用SDRAM作為緩存的主要目的在于整合奇偶場(chǎng),這是因?yàn)镹TSC制式是隔行掃描,每一場(chǎng)只包括奇數(shù)行或者是偶數(shù)行的視頻圖像數(shù)據(jù).緩存后再從緩存器中提取完整的幀圖像,以供后續(xù)模塊處理使用.

經(jīng)過分量轉(zhuǎn)換后,提取其中的Y灰度分量,送入中值濾波器進(jìn)行處理.作者設(shè)計(jì)視頻圖像的采集、顯示等工作都是以27 MHz/像素的速度進(jìn)行的,因此要求中值濾波器有同樣速率的處理能力,并盡量減少邏輯資源的使用.

另外視頻圖像經(jīng)過模數(shù)轉(zhuǎn)換后分辨率為480,每秒需處理30幀圖像,因此每秒處理像素?cái)?shù)為640×480×30=9.216×106,因此中值濾波器工作在27 MHz時(shí)鐘頻率上完全能滿足實(shí)時(shí)性的要求.

2.2 圖像掃描模塊硬件設(shè)計(jì)

圖3 空域?yàn)V波器窗結(jié)構(gòu)

數(shù)字電路設(shè)計(jì)空域?yàn)V波器主要有兩個(gè)方面模塊需要考慮:一個(gè)是圖像掃描模塊,另一個(gè)是濾波器功能邏輯模塊,本節(jié)介紹圖像掃描模塊的硬件結(jié)構(gòu).設(shè)計(jì)中掃描方式是從第1行第1列的第1個(gè)像素開始,由左到右讀入1行像素值后再讀取后面1行的像素值,直到整幅圖像所有像素值都讀入.

根據(jù)掃描方式,設(shè)計(jì)的掃描模塊的硬件結(jié)構(gòu)為窗結(jié)構(gòu),包括9個(gè)寄存器,用來存儲(chǔ)9個(gè)相鄰區(qū)域的像素值.每個(gè)時(shí)鐘上升沿來臨時(shí),9個(gè)寄存器更新存儲(chǔ)的像素值,提供給濾波器功能模塊完成計(jì)算.

在掃描過程中,需要考慮1個(gè)區(qū)域相鄰的9個(gè)像素.用空域?yàn)V波器掃描1行時(shí),必須提取上2行對(duì)應(yīng)列位置的像素值,因此需要使用緩存器存儲(chǔ)當(dāng)前行像素值,以提供給下2行掃描時(shí)使用.

2.3 雙口FPGA的FIFO的設(shè)計(jì)

圖4 緩存器模塊

利用FPGA內(nèi)部存儲(chǔ)資源,設(shè)計(jì)了具有FIFO數(shù)據(jù)結(jié)構(gòu)的緩存器模塊用于存儲(chǔ)行像素值.該模塊按輸入順序依次存儲(chǔ)數(shù)據(jù),讀數(shù)據(jù)時(shí)按先進(jìn)先出的原則讀取.模塊引腳如圖4所示.

當(dāng)輸入時(shí)鐘clk上升沿來時(shí),若時(shí)鐘使能信號(hào)為高,并且寫使能信號(hào)為高時(shí),就將輸入數(shù)據(jù)data_in存入緩存器;如果讀使能信號(hào)為高,便將數(shù)據(jù)從data_out讀出,在處理時(shí)讀入和讀出可以同時(shí)進(jìn)行.設(shè)計(jì)的模塊還包括full與empty狀態(tài)信號(hào),用來監(jiān)控存儲(chǔ)器使用情況,然而設(shè)計(jì)1次存儲(chǔ)數(shù)據(jù)量不會(huì)超出存儲(chǔ)空間,因此無需引出這2個(gè)狀態(tài)信號(hào)引腳.

該模塊內(nèi)部有2個(gè)地址計(jì)數(shù)寄存器,分別記錄讀地址與寫地址.每進(jìn)行1次讀或?qū)?對(duì)應(yīng)地址寄存器的值就加1,因此能實(shí)現(xiàn)先進(jìn)先出的功能.當(dāng)2個(gè)地址寄存器的值相等時(shí),說明已讀完緩存器內(nèi)全部數(shù)據(jù),因此為空;當(dāng)2個(gè)地址寄存器值的差為存儲(chǔ)器地址最大值,說明數(shù)據(jù)已存滿整個(gè)存儲(chǔ)器.

當(dāng)讀或?qū)懙刂愤_(dá)到最大值,并要讀取或?qū)懭胂乱粋€(gè)值時(shí),地址計(jì)數(shù)器又回到0并重新開始計(jì)數(shù).由于系統(tǒng)設(shè)計(jì)時(shí)已經(jīng)使一次存儲(chǔ)的數(shù)據(jù)不會(huì)超過存儲(chǔ)空間,因此無需考慮寫入的新值會(huì)覆蓋有用的舊值的情況.

2.4 濾波器功能邏輯模塊

濾波器功能模塊借鑒奇偶排序進(jìn)行邏輯設(shè)計(jì),給出中值.本設(shè)計(jì)將需要排序的像素值先分為3組,每組3個(gè)元素先進(jìn)行排序.完成之后再按照每組的min、median和max再分成3組,進(jìn)行排序.接下來取min組的最大值、median組的中間值和max組的最小值進(jìn)行排序,排序后的中間值即為所求的中值.具體操作步驟舉例如表1所示.

表1 濾波器功能模塊工作步驟

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

實(shí)驗(yàn)平臺(tái)采用裝有Alter公司Cyclone II FPGA的DE2-70開發(fā)板,通過Quartus II并使用verilog語言進(jìn)行硬件編程;編寫TestBench并用ModelSim仿真,得到如圖5的實(shí)驗(yàn)波形圖結(jié)果.

由波形圖5可以看出filter_en使能信號(hào)為1時(shí),濾波器開始工作,工作頻率即時(shí)鐘頻率為27 MHz.實(shí)驗(yàn)中假設(shè)輸入數(shù)據(jù)流為1、2、3…,可以看到濾波器內(nèi)部產(chǎn)生像素位置坐標(biāo)值(pixel_X,pixel_Y),程序中可以設(shè)置需要處理的圖像的行數(shù)和列數(shù)變量.Buffer寫使能wren在開始讀第1個(gè)像素時(shí)就設(shè)置為高電平,將第1行像素存入,在第2行像素開始讀入時(shí)讀使能rden置位,讀出第1行的像素值,另一個(gè)Buffer工作也同理.從波形圖中可以看到窗內(nèi)9個(gè)像素寄存器的值.data_out是將9個(gè)像素值進(jìn)行排序后的中值,可以看到輸出的值確實(shí)是9個(gè)值的中值,工作正常.

另外通過Quartus II的Compilation Report可以看出濾波器只使用了741個(gè)邏輯資源.由濾波效果圖(圖7)可見,濾波器減少了視頻圖像的椒鹽噪聲.由于濾波器窗較小,部分噪聲肉眼很難分辨,然而對(duì)于后續(xù)其他數(shù)字圖像處理工作來說,微小顆粒噪聲的減少具有非常重要的意義.

圖5 ModelSim仿真結(jié)果

圖6 邏輯資源使用情況

圖7 濾波效果圖

4 總 結(jié)

本文作者首先介紹了相關(guān)理論背景,隨后在FPGA中設(shè)計(jì)并實(shí)現(xiàn)了中值濾波器.主要介紹了整個(gè)系統(tǒng)的架構(gòu),中值濾波器架構(gòu)以及仿真實(shí)現(xiàn)和濾波效果圖.系統(tǒng)主要由輸入輸出控制模塊、FIFO、格式轉(zhuǎn)換相關(guān)模塊和中值濾波器模塊組成,中值濾波器由掃描模塊和功能邏輯模塊組成.實(shí)驗(yàn)數(shù)據(jù)符合設(shè)計(jì)要求,達(dá)到了節(jié)約邏輯資源和加快處理速度的目的.

圖像濾波的器的硬件設(shè)計(jì)在占用資源和速度上想要得到進(jìn)一步的改進(jìn),還需要在濾波器的掃描模塊結(jié)構(gòu)和濾波器功能邏輯模塊所使用的算法上進(jìn)行深入研究分析.如掃描結(jié)構(gòu)上可以將窗加大成3結(jié)構(gòu),用2個(gè)功能邏輯模塊并行計(jì)算,加快處理速度.也可以將窗做成4結(jié)構(gòu)進(jìn)行垂直掃描,不但加快速度,對(duì)Buffer大小要求也得到降低;濾波器功能模塊的改進(jìn)主要是對(duì)排序算法上的優(yōu)化來實(shí)現(xiàn),可以使用多個(gè)周期進(jìn)行排序處理,以降低邏輯資源的使用.也可以使用排序寄存器的方法,即當(dāng)新像素加入窗時(shí),它與窗內(nèi)每個(gè)像素值都進(jìn)行比較,來決定并調(diào)整它在窗內(nèi)的位置[6-8].

參考文獻(xiàn):

[1] BAILEY D G.Design for embedded image processing on FPGAs[M].Singapore:Wiley-IEEE Press,2011.

[2] BENKRID K,CROOKES D,BENKRID A.Design and implementation of a novel algorithm for general purpose median filtering on FPGAs [C]∥International Symposium on Circuits and Systems,Phoenix Arizona:IEEE Press,2002.

[3] BOUDABOUS A,BEN A,KADIONIK P,et al.HW/SW FPGA implementation of vector median filter[C]∥Proceedings of the 2007 Ph.D Research in Microelectronics and Electronics Conference,Bordeaux:IEEE Press,2007.

[4] 吳玉蓮.圖像處理的中值濾波方法及其應(yīng)用[D].西安:西安電子科技大學(xué),2006.

[5] 宋洋.圖像處理的中值濾波算法優(yōu)化與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2001.

[6] 湯亞玲,秦鋒.高效快速排序算法研究[J].計(jì)算機(jī)工程,2011,37(6):77-78.

[7] 秦玉平,馬靖善.一種改進(jìn)的計(jì)數(shù)排序算法[J].渤海大學(xué)學(xué)報(bào),2010,31(2):174-176.

[8] 汪紅,田莎莎,丁林.基于FPGA的圖像中值濾波器設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2012,31(13):46-48.

猜你喜歡
奇偶中值排序
三招求解“奇偶項(xiàng)交織”遞推數(shù)列問題
排序不等式
談?wù)勂媾己瘮?shù)的應(yīng)用
n分奇偶時(shí),如何求數(shù)列的通項(xiàng)
恐怖排序
活用奇偶函數(shù)的性質(zhì)妙解題
節(jié)日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
Lagrange中值定理的巧妙應(yīng)用
微分中值定理教法研討
汽车| 万山特区| 塔河县| 逊克县| 临夏市| 廉江市| 乐安县| 满洲里市| 绥江县| 峡江县| 科技| 兰西县| 鲁山县| 兴仁县| 疏附县| 娄烦县| 阿巴嘎旗| 温州市| 西乌珠穆沁旗| 象州县| 江门市| 浏阳市| 顺昌县| 三门县| 乌鲁木齐县| 隆化县| 阳东县| 英超| 西峡县| 图木舒克市| 炎陵县| 陵水| 攀枝花市| 霍邱县| 遂宁市| 尼勒克县| 恩施市| 重庆市| 三都| 赤水市| 长岛县|