來雪梅,張耀政
(中北大學(xué)信息與通信工程學(xué)院,山西太原030051)
基于FPGA實時處理的視頻信號濾波模塊設(shè)計
來雪梅,張耀政
(中北大學(xué)信息與通信工程學(xué)院,山西太原030051)
以Xilinx公司生產(chǎn)的FPGA芯片XC4VSX25及其開發(fā)系統(tǒng)為實驗平臺,針對TVP5150視頻解碼器輸出的ITU-R BT.656格式數(shù)據(jù),采用幀內(nèi)濾波方法,通過VHDL硬件語言設(shè)計空間域濾波器,實現(xiàn)視頻灰度信號的實時提取,并對每幀視頻數(shù)據(jù)在二維空間內(nèi)進(jìn)行濾波與處理,這種方法可用于實時處理要求較高的場合。
視頻信號;FPGA;濾波
視頻信號的處理和圖像信號的處理具有很大的不同,視頻信號具有連續(xù)性,是不間斷的圖像信號所組成的數(shù)據(jù)流。視頻圖像的實時處理對系統(tǒng)性能有很高的要求,可編程邏輯器件能夠采用并行處理技術(shù)實現(xiàn)數(shù)據(jù)流的處理。因此,數(shù)字視頻圖像濾波方法主要分為幀內(nèi) (空域)濾波方法和幀間(時間域)濾波方法兩種。本設(shè)計采用幀內(nèi)濾波方法,將視頻中的灰度信號提取出來,對獨立的每幀視頻數(shù)據(jù)在二維空間內(nèi)進(jìn)行濾波。這樣,既可以有效地去除幀與幀之間的相關(guān)性和幀內(nèi)噪聲,又可以利用V4系列芯片強大的數(shù)字信號處理資源來實現(xiàn)濾波處理的實時性,使得以往濾波實時性和計算量這兩個的技術(shù)指標(biāo)能夠在最大程度上得到協(xié)調(diào)統(tǒng)一[1-4]。
在FPGA硬件電路的圖像處理系統(tǒng)的基礎(chǔ)上,設(shè)計了TVP5150接口模塊、緩存模塊、EDK嵌入模塊、模板生成模塊、行列計數(shù)器模塊以及算法處理模塊。TVP5150接口設(shè)計模塊功能目的是,得到同步信號和數(shù)據(jù)格式;緩存模塊既是模板的基礎(chǔ)同時也是數(shù)據(jù)緩存的重要環(huán)節(jié);實現(xiàn)各種圖像處理算法所需的基礎(chǔ)是模板生成模塊的主要功能之一;行列計數(shù)器模塊是用來確定,正在處理的數(shù)據(jù)完成圖像行列計數(shù)功能以及在圖像數(shù)據(jù)陣列中的位置;算法處理模塊是實現(xiàn)電路設(shè)計中的圖像處理的硬件的核心模塊,是對模板中數(shù)據(jù)值進(jìn)行圖像濾波算法處理。系統(tǒng)總體硬件模塊框圖見圖1[5]。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
通過EDK的編程以及配置TVP5150內(nèi)部寄存器產(chǎn)生VBLK和AVID同步信號,在標(biāo)準(zhǔn)數(shù)據(jù)流ITU-R BT.656格式下,衰減色度信號為零值,使其成為13.5 MHz頻率的只有亮度信號的數(shù)據(jù)流。在ISE的環(huán)境下,利用硬件描述語言VHDL完成濾波模塊的設(shè)計。整個濾波模塊可以分為方形窗口模塊(3×3,5×5)、行列計數(shù)模塊、緩存模塊和數(shù)據(jù)處理模塊。其中可以復(fù)用的是方形窗口模塊和緩存模塊,而數(shù)據(jù)處理模塊可根據(jù)均值濾波和銳化濾波以及中值濾波的不同特性設(shè)置不同算法。
圖2 濾波模塊總體框圖
濾波模塊總體框圖如圖2所示。其中VPIN(7:0)為8位灰度圖像信號輸入,VPOUT(7:0)為經(jīng)過圖像算法處理后的8位信號輸出。當(dāng)VBLK為低電平、AVID為高電平時,13.5 MHz的數(shù)據(jù)就進(jìn)入FIFO緩存模塊,然后通過時序的設(shè)計,使得數(shù)據(jù)流依次進(jìn)入3×3,5×5模板中的各個硬件模塊中,當(dāng)窗口中的值達(dá)到濾波條件時,行列計數(shù)器和算法處理模塊開始進(jìn)行濾波算法處理,整個數(shù)據(jù)流通過整個模塊后,又按照原來順序流出,達(dá)到了視頻圖像實時增強處理目的。
2.1 緩存模塊
緩存模塊采用FIFO(First In First Out)存儲器,它是一個具有輸入口和輸出口兩個端口的,能夠按照先進(jìn)先出的順序,暫時存放數(shù)據(jù)的存儲器件。作為一塊數(shù)據(jù)內(nèi)存,F(xiàn)IFO具有兩個端口:一個將數(shù)據(jù)存入FIFO之中,另一個從FIFO當(dāng)中把數(shù)據(jù)取出。與FIFO操作相關(guān)的有兩個指針,其中寫指針指向要寫的內(nèi)存部分,而讀指針則指向要讀的內(nèi)存部分,F(xiàn)IFO控制器對這兩個指針則通過外部的讀寫信號進(jìn)行控制和操作,F(xiàn)IFO空信號或滿信號均由此產(chǎn)生。為了保證模板中每行流出的數(shù)據(jù)為同一列,F(xiàn)IFO之間采用串聯(lián)的方式,每個FIFO之間讀數(shù)據(jù)的差值為一行720個有效數(shù)據(jù),這樣既方便構(gòu)成模板,也便于后面的算法模塊處理。因為讀寫時鐘的不同,選擇異步FIFO,數(shù)據(jù)的寬度選擇與視頻流的位數(shù)相同的8位,深度選擇1024(〉720)。
2.2 模板生成模塊[6]
為得到后續(xù)的算法處理所需要的行列數(shù)據(jù),根據(jù)模板窗口大小的不同,模板生成模塊,生成3×3和5×5模板,3×3模板和5×5模板分別需要同時提供空間上相鄰的9個數(shù)據(jù)和25個數(shù)據(jù)。這樣模板生成后,在同一時刻把已經(jīng)緩存好的9個或者25個數(shù)據(jù)同時提取到數(shù)據(jù)處理模塊。圖3為3×3模板圖,圖4為5×5模板流程圖。
圖3 3×3模板流程圖
以3×3為例,在數(shù)據(jù)的處理過程中,為了能同時提到模板相應(yīng)位置的9個數(shù)據(jù)而采用了三個FIFO存儲器,每個FIFO必須存儲一行共720個灰度數(shù)據(jù)。FIFO的深度為1024(〉720),寬度是8位,當(dāng)AVID,VBLK滿足條件時,F(xiàn)IFOA的寫使能有效,寫時鐘為TVP5150同步輸出頻率為13.5 MHz的時鐘SCLK,數(shù)據(jù)開始進(jìn)入第一個FIFO中,與此同時相應(yīng)的計數(shù)模塊開始計數(shù),F(xiàn)IFOA的讀使能在計數(shù)達(dá)到720后有效,而為了使下個SCLK的上升沿來時第一行的第一個數(shù)據(jù)不僅能進(jìn)入FIFOB,而且進(jìn)入FIFOB的數(shù)據(jù)線必須有穩(wěn)定的數(shù)據(jù),則FIFOA寫時鐘要比讀時鐘早半個周期,這樣可以既保證一行的數(shù)據(jù)量又保證下個寫時鐘到達(dá)時,數(shù)據(jù)能同步穩(wěn)定的進(jìn)入FIFOB和FIFOA。依照此原理,F(xiàn)IFOB的數(shù)據(jù)按順序依次導(dǎo)入FIFOC中。這樣,數(shù)據(jù)輸入端分別同時輸入第一行、第二行和第三行的數(shù)據(jù),數(shù)據(jù)輸出端同時輸出相應(yīng)的數(shù)據(jù)。同時這3個FIFO時序還要和六個寄存器相匹配,當(dāng)FIFOB寫滿第一行的數(shù)據(jù)時,后續(xù)處理模塊已經(jīng)可以處理第一行的數(shù)據(jù)了,因此FIFOB的讀使能有效與6個寄存器的寫時能是同時有效的,這樣第一行和第二行的數(shù)據(jù)在導(dǎo)入下一個FIFO時,又分別把數(shù)據(jù)轉(zhuǎn)入后面的寄存器r2、r4、r6中,當(dāng)下個時鐘沿來時,這些數(shù)據(jù)再進(jìn)入r3,r5,r7中,這樣h(1,1)h(1,2)h(1,3)h(2,1)h(2,2)h(2,3)h(3,1)h(3,2)h(3,3)便構(gòu)成了3×3的濾波窗口,而中心像素為h(2,2)。
圖4 5×5模板流程圖
在形成窗口過程時,還必須注意處理邊界點。以3×3模板為例,如果不對行、列計數(shù),將會出現(xiàn)每行最后兩列和下一行第一列的象素形成濾波窗口或者第一幀的最后兩行跟下一幀的第一行的情況,這時形成的濾波窗口不是我們要的濾波窗口,所以對于一幀圖像來說,不論采用哪種濾波算法,第一行、第一列、最后一行和最后一列的像素點無法作為窗口中心點進(jìn)行濾波算法的處理。因此,我們需要設(shè)計一個計數(shù)模塊來對窗口的合理與否進(jìn)行判斷。
視頻信號有效與否是通過判斷 AVID和VBLK,clk為亮度時鐘信號,ccln為列計數(shù),rrow為行計數(shù),這四位為“0000”當(dāng)濾波模塊處理的是合理模板的時候,當(dāng)濾波模塊處于第一行、第一列、最后一行、最后一列等不合理模塊時,根據(jù)表1的對應(yīng)關(guān)系可以得到不同的處理方式。
表1 3×3行列對應(yīng)值
5×5模板的邊緣檢測可按照表2對應(yīng)關(guān)系,多了第二行、倒數(shù)第二行、第二列和倒數(shù)第二列,因此不合理的窗口要比3×3窗口多。
表2 5×5行列對應(yīng)值
根據(jù)表1和表2設(shè)計行列計數(shù)模塊,根據(jù)不同的模板形式,提供不同的算法,從而為后續(xù)算法處理模塊提供有效的判斷標(biāo)準(zhǔn)。對不合理的窗口模塊,為保證窗口大小一致性,在圖像邊緣處的像素?zé)o法用模板來覆蓋并進(jìn)行算法處理時把圖像邊緣不合理的像素區(qū)的值設(shè)置成0值。
2.3 算法處理模塊
均值濾波意為濾除掉信號變化迅速的高頻分量,而信號緩慢變化部分低頻分量則保留下來,相反的,對于銳化濾波而言,邊緣頻率分量變化迅速屬于高頻部分,被保留下來。均值濾波和銳化濾波都是利用空間域的卷積來實現(xiàn)的,均值濾波模版的尺寸為3×3和5×5,銳化濾波為3×3。所使用的均值模板和高通模板分別為:
3.1 實時性
在實時性方面,輸入和輸出的延遲時間是決定實時性的本質(zhì),即數(shù)字視頻數(shù)據(jù)處理運算的時間越少,實時性越好。在本文設(shè)計的視頻圖像增強系統(tǒng)中,決定實時性的因素主要有兩個:模板緩存延遲和數(shù)據(jù)處理延遲。在模板緩存的設(shè)計中,視頻流的處理是基于模板操作的,本質(zhì)上只有當(dāng)數(shù)據(jù)處于模板的中間行和中心像素的時候,才符合模板操作的條件,從而進(jìn)一步進(jìn)行增強運算。系統(tǒng)分別實現(xiàn)了兩種模板兩種方式。例如3×3模板,第二行是3×3模板的中心位置,只有當(dāng)?shù)谝恍械臄?shù)字視頻流數(shù)據(jù)進(jìn)入緩存模塊的中間FIFO時,第一行數(shù)據(jù)才能被處理掉。對于3×3模板而言,模板緩存模塊造成了兩行的數(shù)據(jù)延遲時間。每一行除了有效數(shù)據(jù)外根據(jù)視頻流的基本格式,還有數(shù)據(jù)行消隱信號和輔助信號,一切通過緩存模板的輸入輸出的延遲時間為1728×2個時鐘周期 (時鐘周期為27MHz),同理運用于5×5模板,數(shù)據(jù)處理的中心行為第三行,延遲時間需要1728×3個時鐘周期。而在數(shù)據(jù)處理方面,主要采用流水線的處理方式,能在視頻流數(shù)據(jù)的一個時鐘周期內(nèi)運算完成,即:模板緩存的延遲時間是數(shù)據(jù)處理延遲時間的1728×N倍(N為整數(shù),根據(jù)模板大小而定),因此數(shù)據(jù)處理的延遲影響相比模板緩存造成的延遲很小,可忽略不計。以數(shù)據(jù)實時處理能夠完成為前提,系統(tǒng)的延遲將隨著模板范圍的不斷擴大按一定的關(guān)系成比例增加。延遲時間的關(guān)系式:
其中,N為奇數(shù)方形模板的行列數(shù),1728為一行
數(shù)據(jù)的采樣點數(shù),t為延遲時間。
3.2 濾波結(jié)果
(1)實驗1。實驗結(jié)果見圖5。
(2)實驗2。實驗結(jié)果見圖6。
(3)實驗3。實驗結(jié)果見圖7。
文章采用VHDL語言,在FPGA芯片XC4VSX25實驗平臺上實現(xiàn)了FIFO,3×3和5×5窗口模塊、行列計數(shù)器模塊和算法處理模塊的濾波模塊實時處理功能。通過對實時性的分析,計算了輸入輸出的延遲;通過實驗,顯示了不同背景的濾波效果,驗證了系統(tǒng)設(shè)計的有效性。
圖5 原始圖像與3×3均值濾波圖像對比圖
圖6 原始圖像與3×3銳化濾波圖像對比圖
圖7 原始圖像與3×3銳化濾波圖像對比圖
[1]David Katz,Rick Gentile.Fundamentals of Embedded Video Processing[C].2008:42-45.
[2]田耘,胡彬,徐文波.Xilinx ISEDesign Suite 10.x FPGA開發(fā)指南[M].北京:人民郵電出版社,2008.
[3]田耘,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學(xué)出版社,2008.
[4]REC.ITU-R BT.656.Digtal TV System[S].1995.
[5]張耀政.基于FPGA實時處理的視頻圖像增強技術(shù)[D].太原:中北大學(xué),2010.
[6]高金良.基于Adaboost算法的人臉實時臉檢測及FPGA設(shè)計[D].太原:中北大學(xué),2011.
The Design of F ilter M odule for V ideo S ignal b ase d on R eal-time P rocessing by FPGA
LAIXue-mei,ZHANG Yao-zheng
(School of Information and Communication Engineering,North University of China,Taiyuan Shanxi,030051)
Based on experimental platform of Xilinx Company′s FPGA chip XC4VSX25 and its development system,spatial filtermodule design is implemented to obtain video signals in real-time gray-scale extraction by use of the TVP5150 video decoder outputof ITU-R BT.656 format data,intra-frame filteringmethod and VHDL hardware design language.Video data of each frame is filtered and processed in two-dimensional space.Themethod can be used for situation of requiring real-time processing.
video signal;FPGA;filter〔責(zé)任編輯 李?!?/p>
O571.5
A
1674-0874(2012)02-0022-06
2012-02-15
來雪梅(1969-),女,山西五臺人,碩士,實驗師,研究方向:測控技術(shù)。