??? 摘? 要: 應(yīng)用VerilogHDL在FPGA中實(shí)現(xiàn)了視頻增強(qiáng)算法,設(shè)計(jì)了視頻增強(qiáng)算法所需的輔助功能,包括視頻編解碼控制、SRAM訪問(wèn)仲裁控制及色度空間變換控制,用Matlab進(jìn)行了視頻增強(qiáng)的仿真,優(yōu)化了視頻增強(qiáng)算法的參數(shù)。?
??? 關(guān)鍵詞: 工業(yè)監(jiān)控;視頻增強(qiáng);視頻識(shí)別;數(shù)字視頻;色度空間變換?
?
??? 視頻監(jiān)控得以廣泛應(yīng)用的主要條件是網(wǎng)絡(luò)帶寬、計(jì)算機(jī)處理能力和存儲(chǔ)容量的迅速提高以及各種視頻信息處理技術(shù)的涌現(xiàn)[1]。但目前絕大部分視頻監(jiān)控應(yīng)用缺乏對(duì)所記錄視頻數(shù)據(jù)的深層處理,其原因是目前視頻數(shù)據(jù)主要靠人工監(jiān)視分析,人工無(wú)法應(yīng)對(duì)大量、實(shí)時(shí)的視頻數(shù)據(jù)[2]。所以市場(chǎng)迫切呼喚實(shí)用的視頻識(shí)別技術(shù)[3],網(wǎng)絡(luò)巨頭Google已經(jīng)在視頻識(shí)別上大量投入,時(shí)代華納、迪士尼也正在合作開(kāi)發(fā)新的視頻識(shí)別應(yīng)用,微軟也宣布將把視頻識(shí)別技術(shù)應(yīng)用于最新的XBOX游戲引擎,讓用戶體驗(yàn)全新的“自然控制方式”。但不管采用何種算法,視頻質(zhì)量是影響視頻識(shí)別的最重要因素,特別是一些高速工業(yè)監(jiān)控、交通流監(jiān)控,原始視頻質(zhì)量不易提高,而視頻增強(qiáng)處理是后期提升視頻質(zhì)量的有效手段。本文論述視頻增強(qiáng)處理算法的高速實(shí)現(xiàn)方法,即使用現(xiàn)場(chǎng)可編程邏輯器件FPGA的并行邏輯處理能力實(shí)時(shí)實(shí)現(xiàn)視頻增強(qiáng)處理的各個(gè)環(huán)節(jié),為后期視頻識(shí)別應(yīng)用提供在線數(shù)據(jù)前處理。?
1 視頻增強(qiáng)處理系統(tǒng)硬件結(jié)構(gòu)?
??? 視頻增強(qiáng)對(duì)硬件處理速度的要求較高,使用傳統(tǒng)的單CPU或DSP很難獲得較高性價(jià)比,而FPGA由于內(nèi)部集成了多個(gè)可并行工作的高速有符號(hào)乘法器而在視頻處理中具有明顯的優(yōu)勢(shì)。FPGA中資源控制的靈活性和并行特點(diǎn)體現(xiàn)在并行邏輯運(yùn)算、并行多SRAM訪問(wèn)控制和外圍模擬信號(hào)解碼器件接口的并行控制上。為快速實(shí)現(xiàn)并驗(yàn)證本文所述視頻增強(qiáng)處理的效果,使用了Xilinx公司的FPGA多媒體開(kāi)發(fā)板(Microblaze & Multimedia Demonstration Board,No.0381112)[4]。開(kāi)發(fā)板集成了測(cè)試所用的所有硬件資源,其總體結(jié)構(gòu)如圖1所示。?
?
?
??? 開(kāi)發(fā)板核心器件為Xilinx公司的FPGA芯片Vertex-II(XC2V2000),還包含了多媒體和人機(jī)接口所用的外圍器件,包括視頻輸入采集芯片、視頻輸出驅(qū)動(dòng)芯片、外圍SRAM存儲(chǔ)器、AC97音頻編解碼器、以太網(wǎng)接口、RS232接口、LED指示燈和鍵盤(pán)接口。FPGA的配置采用可進(jìn)行多版本控制的CF卡為存儲(chǔ)介質(zhì),配置芯片為Xilinx SystemACE。所有的視頻增強(qiáng)處理和與外圍器件接口的功能使用硬件描述語(yǔ)言VerilogHDL開(kāi)發(fā),VerilogHDL代碼經(jīng)編譯后使用JTAG調(diào)試器下載到XC2V2000芯片中,同時(shí)也可使用CF卡存儲(chǔ)8份測(cè)試代碼進(jìn)行自動(dòng)加載,分版本調(diào)試,開(kāi)發(fā)板上沒(méi)有CPU,所有的邏輯處理由FPGA實(shí)現(xiàn)。板上還配置了5塊NtSRAM(型號(hào)K7N163601M),NtSRAM是三星公司推出的無(wú)周轉(zhuǎn)隨機(jī)存儲(chǔ)器,即讀寫(xiě)采用單周期操作,提高了存取速度。每塊NtSRAM都用單獨(dú)的地址總線、數(shù)據(jù)總線和控制總線直接與FPGA連接,保證了5個(gè)SRAM可同時(shí)作為視頻高速緩存區(qū)使用,保證了并行性。K7N163601M為100引腳芯片,5片SRAM消耗了480條FPGA引腳,XC2V2000共有896條引腳。開(kāi)發(fā)板提供的視頻編解碼器件也為算法驗(yàn)證提供了條件。?
2 視頻增強(qiáng)處理算法的Matlab仿真?
??? 視頻增強(qiáng)處理算法分為7部分,分別為視頻運(yùn)動(dòng)補(bǔ)償、幀內(nèi)圖像的邊緣銳化、數(shù)字亮度瞬態(tài)增強(qiáng)、數(shù)字色彩瞬態(tài)增強(qiáng)、亮度對(duì)比度調(diào)整、色度飽和度調(diào)整、黑級(jí)擴(kuò)展。這些處理在測(cè)試系統(tǒng)中需要并行進(jìn)行,以保證視頻流的實(shí)時(shí)性。為驗(yàn)證視頻增強(qiáng)算法的可行性,在進(jìn)行VerilogHDL設(shè)計(jì)實(shí)現(xiàn)之前進(jìn)行了Matlab仿真。仿真程序使用Matlab的圖形界面開(kāi)發(fā)環(huán)境GUIDE(Graphic User Interface Development Environment)完成,實(shí)現(xiàn)的視頻增強(qiáng)功能模塊如圖2所示,其中只有視頻運(yùn)動(dòng)補(bǔ)償沒(méi)有進(jìn)行仿真。?
?
?
??? 圖2所示各處理環(huán)節(jié)的功能描述如表1所示。其中峰值濾波算法實(shí)現(xiàn)方法如下:以同一行內(nèi)5個(gè)像素點(diǎn)YUV色度空間的亮度信號(hào)Y為周期,編號(hào)為Y0,Y1,Y2,Y3,Y4,分別設(shè)計(jì)低通、帶通和高通濾波器YLP,YBP,YHP:?
??? YLP=(Y0+4×Y1+6×Y2+4×Y3+Y4)/16?????????????????????? (1)?
??? YBP=(-Y0+2×Y2-Y4)/8?????????????????????????????????? (2)?
??? YHP=(Y0-4×Y1+6×Y2-4×Y3+Y4)/16?????????????????????? (3)?
??? 峰值濾波器的輸出為:?
??? Y2′=Y2+fC(YHBPS)????????????????????????????????????? (4)?
??? 其中:YHBPS=kbp×YBP+khp×YHP-YBP-YHP?
???????? kbp=kbpw/2(klp)?
???????? khp=khpw/2(klp)?
?????
式中khpw是高通濾波系數(shù),kbpw是帶通濾波系數(shù),klp是低通濾波系統(tǒng),Ygate是濾波輸出閾值。?
??? 視頻增強(qiáng)算法中黑級(jí)擴(kuò)展算法如公式(6)所示,當(dāng)亮度低于一個(gè)域值時(shí),輸出亮度信號(hào)迅速減小,表現(xiàn)為黑到一定程度后的黑色變得更黑。?
??????
其中Yin為輸入亮度信號(hào),k為黑級(jí)擴(kuò)展比例系數(shù),YGate為擴(kuò)展閾值。?
?
?
??? Matlab仿真軟件界面如圖3所示,其中峰值濾波器、DLTI、DCTI、亮度對(duì)比度調(diào)整、色度飽和度調(diào)整、黑級(jí)擴(kuò)展6部分增強(qiáng)算法的系數(shù)都可以動(dòng)態(tài)調(diào)整來(lái)觀察增強(qiáng)的效果,從而確定最佳增強(qiáng)參數(shù)。為測(cè)試對(duì)不同類(lèi)型視頻圖像的增強(qiáng)效果,軟件中設(shè)計(jì)了圖像選擇功能,備選圖像中有加入各種噪聲和模糊化的測(cè)試圖像,仿真測(cè)試表明,當(dāng)參數(shù)調(diào)整合適后,增強(qiáng)效果明顯。?
?
?
3 視頻增強(qiáng)處理算法的VerilogHDL設(shè)計(jì)?
??? 測(cè)試視頻增強(qiáng)所用視頻信號(hào)源由DVD播放機(jī)提供,模擬視頻信號(hào)通過(guò)S端子接入開(kāi)發(fā)板,通過(guò)ADV7185解碼成數(shù)字視頻信號(hào)接入FPGA,數(shù)字視頻信號(hào)經(jīng)過(guò)增強(qiáng)處理后由FMS3810視頻DAC轉(zhuǎn)換為模擬視頻信號(hào),輸出到SVGA顯示器進(jìn)行觀察。SVGA輸出僅測(cè)試時(shí)使用,當(dāng)視頻增強(qiáng)系統(tǒng)作為視頻識(shí)別前處理方式工作時(shí),增強(qiáng)的數(shù)字視頻信號(hào)將以數(shù)字方式直接傳輸?shù)揭曨l識(shí)別單元。視頻增強(qiáng)處理算法充分利用了Vertex-II的并行數(shù)字信號(hào)處理功能,XC2V2000集成了56個(gè)18bit高速有符號(hào)乘法器和336KB快速分布式RAM,便于實(shí)現(xiàn)各種增強(qiáng)算法的并行處理和數(shù)據(jù)緩沖。視頻增強(qiáng)算法及其輔助處理的VerilogHDL實(shí)現(xiàn)結(jié)構(gòu)如圖4所示,格式為CCIR601標(biāo)準(zhǔn)的視頻信號(hào)經(jīng)輸入解碼處理后存儲(chǔ)于三個(gè)NtSRAM緩沖區(qū)。視頻增強(qiáng)系統(tǒng)中設(shè)置一個(gè)行緩沖區(qū),采用FPGA內(nèi)部集成的分布式雙端口SRAM實(shí)現(xiàn),NtSRAM顯示緩沖區(qū)中的數(shù)據(jù)被逐行傳輸?shù)叫芯彌_區(qū)中,三個(gè)NtSRAM緩沖區(qū)由三個(gè)對(duì)應(yīng)的控制器管理,數(shù)據(jù)需要通過(guò)讀請(qǐng)求獲得。讀請(qǐng)求控制功能由圖4中的數(shù)據(jù)請(qǐng)求控制模塊實(shí)現(xiàn),當(dāng)此模塊在消隱期獲得經(jīng)過(guò)同步了的NtSRAM緩沖區(qū)就緒信號(hào)后,開(kāi)始選定這一緩沖區(qū),并產(chǎn)生數(shù)據(jù)讀請(qǐng)求信號(hào)。然后NtSRAM控制器按照請(qǐng)求信號(hào)的目的地址、源地址和數(shù)據(jù)長(zhǎng)度將顯示數(shù)據(jù)送到行緩沖區(qū)SRAM中。行緩沖區(qū)中的數(shù)據(jù)按照顯示器輸出信號(hào)的時(shí)序輸出,即在每個(gè)有效行產(chǎn)生行緩沖區(qū)的連續(xù)增量地址信號(hào),將YUV像素信號(hào)讀出,再送入圖像增強(qiáng)模塊,圖像增強(qiáng)模塊的輸出信號(hào)送入YUV-RGB轉(zhuǎn)換模塊中,然后將RGB信號(hào)接到SVGA驅(qū)動(dòng)器FMS3810的D/A中,產(chǎn)生模擬的顏色信號(hào)。其中顯示時(shí)序控制由SVGA時(shí)序控制模塊產(chǎn)生。?
?
?
??? 圖4中YUV信號(hào)是位寬為8bit的數(shù)字信號(hào),其編碼格式符合數(shù)字演播室標(biāo)準(zhǔn)ITU- RRec.BT601。YUV信號(hào)經(jīng)色度空間變換算法轉(zhuǎn)換為RGB信號(hào),輸出到SVGA,顯示像素時(shí)鐘頻率為54MHz。實(shí)現(xiàn)上述功能的硬件時(shí)間延遲為6個(gè)時(shí)鐘周期,其速度是使用嵌入式處理器或單個(gè)DSP系統(tǒng)難以實(shí)現(xiàn)的。?
??? 本文應(yīng)用VerilogHDL硬件描述語(yǔ)言在Xilinx的XC2V2000-FPGA中實(shí)現(xiàn)了視頻增強(qiáng)算法。經(jīng)使用不同畫(huà)質(zhì)的視頻碟片用DVD播放器作為信號(hào)源進(jìn)行測(cè)試,視頻增強(qiáng)效果明顯,可為后期視頻識(shí)別提供較好的信息基礎(chǔ)。在算法實(shí)現(xiàn)中,Matlab軟件仿真對(duì)視頻增強(qiáng)算法的參數(shù)優(yōu)化起到了決定性作用,凸顯了仿真對(duì)系統(tǒng)實(shí)現(xiàn)的指導(dǎo)作用。?
參考文獻(xiàn)?
[1] 阮秋琦.數(shù)字圖像處理學(xué).北京:電子工業(yè)出版社,2001.?
[2] TEKALP A.M著;崔之祜,江春,陳麗鑫譯.數(shù)字視頻處理.北京:電子工業(yè)出版社,1998.?
[3] BENNETT Eric P,Leonard McMillan,Video enhancement using per-pixel virtual exposures,Proceedings of ACM SIGGRAPH 2005(NY,USA),2005,124(3).?
[4] Data Sheets of Virtex-II FPGA XC2V2000.Xilinx Corporation,2002.