張曉晶
摘要:利用Altera公司CycloneⅢ系列的FPGA作為主控芯片,通過VHDL語言編程,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)實(shí)時(shí)的視頻低通濾波處理系統(tǒng)。通過低通濾波改變輸入視頻信號(hào)的帶寬,從而在監(jiān)視器上觀測(cè)到不同帶寬視頻信號(hào)的顯示質(zhì)量變化。
關(guān)鍵詞:圖像濾波;低通濾波;FPGA
中圖分類號(hào):TN713.4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)12-0119-02
0 引言
實(shí)時(shí)視頻處理是圖像處理領(lǐng)域的研究熱點(diǎn)之一,廣泛應(yīng)用于可視電話、視頻會(huì)議,監(jiān)控、通信等領(lǐng)域中。現(xiàn)場(chǎng)可編程門陣列(FPGA)的優(yōu)點(diǎn)在于其靈活的可編程性和強(qiáng)大的并行處理能力,可以把很多圖像處理功能集成在一個(gè)FPGA芯片上。為了觀測(cè)不同帶寬視頻信號(hào)的顯示質(zhì)量變化,本文基于FPGA設(shè)計(jì)實(shí)現(xiàn)了一個(gè)視頻圖像低通濾波處理系統(tǒng)。降低視頻信號(hào)的帶寬,只會(huì)改變視頻圖像的水平分辨力,而視頻圖像的垂直分辨力是由電視系統(tǒng)的掃描參數(shù)決定的,基本不受信號(hào)帶寬變化的影響[1],所以本文只需要設(shè)計(jì)水平濾波器,不需要設(shè)計(jì)二維濾波器。
1 系統(tǒng)整體設(shè)計(jì)
本系統(tǒng)的硬件平臺(tái)如:FPGA型號(hào)為EP3C55F484用于對(duì)視頻進(jìn)行實(shí)時(shí)低通濾波處理。A/D芯片為TVP5150將輸入的模擬視頻信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸入FPGA,D/A芯片為ADV7171將處理后的數(shù)字視頻信號(hào)轉(zhuǎn)換回模擬視頻最終在監(jiān)視器上顯示,另外FPGA連接了兩塊16bit數(shù)據(jù)線的SRAM用于對(duì)視頻數(shù)據(jù)進(jìn)行存儲(chǔ)。系統(tǒng)板如圖1所示。
1.1 信號(hào)采集
在系統(tǒng)前端,先利用攝像頭取得光學(xué)圖像。攝像頭的輸出為一路PAL制復(fù)合視頻信號(hào),完成光信號(hào)到模擬電信號(hào)的轉(zhuǎn)變。之后通過TVP5150視頻解碼芯片將模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)。利用FPGA對(duì)TVP5150進(jìn)行I2C配置,選擇輸出格式為ITU-RBT.656,即時(shí)鐘頻率為27MHz的4:2:2取樣格式的YCrCb信號(hào)。
1.2 場(chǎng)解碼
一幀完整的PAL制式ITU-RBT656數(shù)據(jù)分為奇偶兩場(chǎng),23-311行為偶數(shù)場(chǎng)有效數(shù)據(jù),366-624行為奇數(shù)場(chǎng)有效數(shù)據(jù),其余為行場(chǎng)控制信號(hào)或無效數(shù)據(jù)。每行前288byte為行控制信號(hào),其中最前面的4byte為EAV(有效視頻結(jié)束)信號(hào),最后面的4byte是SAV(有效視頻起始)信號(hào)。
EAV信號(hào)和SAV信號(hào)均有3byte的前導(dǎo):FF,00,00。最后1byte為XY。F為奇偶標(biāo)志位,V為垂直消隱標(biāo)志位,H為水平消隱標(biāo)志位,P3,P2,P1,P0為保護(hù)比特位。首先通過連續(xù)判斷FF,00,00和XY來進(jìn)行F、V、H的提取與檢測(cè)。若H為0,即為SAV,再去判斷F,若F為0,即為奇數(shù)場(chǎng),若F為1,即為偶數(shù)場(chǎng)。每當(dāng)F從1跳變到0,則為一幀的幀頭。之后去判斷V,若V為0,則為場(chǎng)正程。由于我們只處理有效數(shù)據(jù),所以在檢測(cè)到幀頭的情況下,若H=0且V=0,則此行為有效數(shù)據(jù)。
1.3 幀緩存
本文利用兩塊SRAM進(jìn)行乒乓存儲(chǔ)實(shí)現(xiàn)處理與顯示之間的轉(zhuǎn)換。以一幀數(shù)據(jù)為單位進(jìn)行存儲(chǔ)。當(dāng)向SRAM1中寫當(dāng)前幀時(shí),讀的是SRAM2中存儲(chǔ)的前一幀,當(dāng)SRAM1中存好一幀后,才會(huì)進(jìn)行乒乓切換,讀取SRAM1中的數(shù)據(jù)。
一幀中的有效數(shù)據(jù)為720×576個(gè)像素,開始時(shí)寫地址指針位于(0,78),當(dāng)檢測(cè)到幀頭且H=0、V=0后,第一行有效數(shù)據(jù)的SAV中的FF、00會(huì)寫入(0,78),隨后的00、xy會(huì)寫入(0,79),隨后的第一個(gè)有效像素會(huì)被寫入(0,80)。存儲(chǔ)時(shí),若發(fā)現(xiàn)SAV中的F從0跳變到1時(shí),意味著奇數(shù)場(chǎng)結(jié)束,進(jìn)來的將是偶數(shù)場(chǎng)的數(shù)據(jù),寫地址指針將跳到(1,78),進(jìn)行偶數(shù)場(chǎng)的存儲(chǔ)。當(dāng)F從1跳變到0,即為新的一幀幀頭,寫地址指針會(huì)重新位于(0,78),如此循環(huán)往復(fù)。
2 視頻低通濾波在FPGA上實(shí)現(xiàn)
2.1 低通濾波器的設(shè)計(jì)
人眼對(duì)色度變化的敏感性很低,故本文只對(duì)亮度信號(hào)Y分量進(jìn)行低通濾波處理[2-3]。因?yàn)檩斎胄盘?hào)的時(shí)鐘頻率是27MHz,輸入數(shù)據(jù)是YCbYCr格式,即一個(gè)亮度信號(hào)一個(gè)色度信號(hào)的排列,可知像素時(shí)鐘為13.5MHz,即Y信號(hào)的采樣頻率為13.5MHz。在標(biāo)清信號(hào)中輸入視頻信號(hào)的帶寬一般不大于6MHz,我們這里選擇將輸入視頻信號(hào)的帶寬限制在3MHz以內(nèi),即對(duì)應(yīng)的數(shù)字低通濾波器的截止頻率為:
wc=fc/fs*2pi=3/13.5*2pi=0.44pi
從而可進(jìn)行低通濾波器的設(shè)計(jì)。
2.2 低通濾波器在FPGA上實(shí)現(xiàn)
本文選擇12階FIR濾波器實(shí)現(xiàn),得到13個(gè)系數(shù),F(xiàn)IR濾波器實(shí)現(xiàn)的公式為:
(1)
其中h(n)為濾波器系數(shù),x(n)為每行像素的亮度Y值,y(n)為濾波后的像素的亮度信號(hào)Y。
使用該公式濾波會(huì)造成輸出圖像相對(duì)于輸入視頻圖像產(chǎn)生向右的平移。為了避免濾波后圖像的移位問題,本文先對(duì)輸入的像素進(jìn)行緩存然后使用非因果濾波器進(jìn)行濾波,由于所設(shè)計(jì)的濾波器是線性相位的濾波器,即系數(shù)是對(duì)稱的,可采用線性相位結(jié)構(gòu)以提高計(jì)算效率,這樣濾波一次只需要7次乘法。由于得到的FIR濾波器的系數(shù)都是小數(shù),本文先對(duì)濾波器的系數(shù)進(jìn)行左移8bit進(jìn)行放大,在完成濾波的相乘累加處理后再把所得結(jié)果右移8bit恢復(fù)到原來的大小,從而實(shí)現(xiàn)亮度信號(hào)Y分量的低通濾波處理。
3 實(shí)驗(yàn)結(jié)果
通過以上步驟,完成了各個(gè)系統(tǒng)模塊的設(shè)計(jì),實(shí)現(xiàn)了攝像頭采集視頻的降低帶寬處理,濾波前輸入圖像是多波群信號(hào),包含了0.5M,1M,2M,4M,4.8M和5.8MHz的信號(hào)。經(jīng)過截止頻率為3MHz的低通濾波后,高于3MHz的信號(hào)被濾除,即4MHz、4.8MHz和5.8MHz的信號(hào)被濾除,只保留了0.5MHz、1MHz和2MHz的信號(hào)。
4 結(jié)語
本文基于FPGA設(shè)計(jì)實(shí)現(xiàn)了對(duì)視頻圖像信號(hào)的低通濾波處理,濾波器的截止頻率可以不同,比如選擇1MHz、2MHz、3MHz、4MHz等,不同截止頻率的濾波器可以通過修改FIR系數(shù)改變,所以可以很方便的觀測(cè)不同帶寬的視頻信號(hào)的顯示質(zhì)量的變化。整個(gè)系統(tǒng)分為場(chǎng)解碼模塊、幀緩存(乒乓存儲(chǔ))模塊和低通濾波模塊。實(shí)驗(yàn)結(jié)果表明了本方法的可行性。
參考文獻(xiàn)
[1] 張虎軍.基于FPGA的視頻采集輸出系統(tǒng)的實(shí)現(xiàn)[D].大連海事大學(xué),2011.
[2] 俞彬杰.基于FPGA的全彩色LED同步顯示屏控制系統(tǒng)的設(shè)計(jì)[D].上海交通大學(xué),2008.
[3] 吳鎮(zhèn)楊.數(shù)字信號(hào)處理[M].高等教育出版社,2016.
FPGA-based Video Image Low-pass Filtering
ZHANG Xiao-jing
(Beijing Polytechnic, Beijing? 100176)
Abstract:A real-time video low-pass filter processing system is designed and implemented by using FPGA of cyclone Ⅲ series of Altera company as the main control chip and programming with VHDL language. By changing the bandwidth of the input video signal through low-pass filtering, the display quality of the video signal with different bandwidth can be observed on the monitor.
Key words:image filtering; low pass filtering; FPGA