劉冰,徐文濤
(南京航空航天大學(xué)理學(xué)院,江蘇南京211100)
?
基于FPGA和gamma校正的視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)
劉冰,徐文濤
(南京航空航天大學(xué)理學(xué)院,江蘇南京211100)
摘要:本文針對視頻監(jiān)控系統(tǒng)實時處理速度瓶頸和視頻監(jiān)控圖像失真等問題,提出一種基于FPGA和gamma校正的視頻監(jiān)控系統(tǒng)解決方案,充分利用FPGA并行數(shù)據(jù)處理的優(yōu)勢,很好地滿足了視頻監(jiān)控系統(tǒng)實時性和高清晰度的要求;并采用查找表(LUT)的方法實現(xiàn)快速gamma校正,解決了由顯示器亮度非線性輸出所導(dǎo)致的視頻失真問題。實驗結(jié)果顯示視頻監(jiān)控系統(tǒng)運行穩(wěn)定,圖像清晰度高,且經(jīng)gamma校正后,暗場灰階的顯示明顯改善,細(xì)節(jié)分明,很好地解決了失真的問題。
關(guān)鍵詞:視頻監(jiān)控;FPGA;gamma校正;圖像失真;查找表
隨著視頻處理技術(shù)的不斷發(fā)展,視頻監(jiān)控系統(tǒng)在生活中得到了廣泛的應(yīng)用,同時用戶對視頻監(jiān)控技術(shù)的實時性、穩(wěn)定性和清晰度也提出了更高的要求。以往基于CPU/DSP的視頻監(jiān)控系統(tǒng),以程序順序執(zhí)行的方式對視頻進(jìn)行采集和處理,限制了視頻監(jiān)控系統(tǒng)的處理速度,不能滿足實時性和高清晰度的要求。近些年基于FPGA的數(shù)字系統(tǒng)設(shè)計得到了迅速的發(fā)展,F(xiàn)PGA并行處理能力強[1-2],設(shè)計靈活,集成度高,在視頻處理方面有巨大的優(yōu)勢,可以滿足現(xiàn)今對視頻監(jiān)控的要求[3]。
在監(jiān)控系統(tǒng)中,由于顯示器輸出亮度與輸入電壓不成正比,如果不對數(shù)字視頻信號進(jìn)行處理,則會導(dǎo)致圖像的失真,影響視頻監(jiān)控質(zhì)量。對顯示器的非線性修正,常常被稱為gamma校正[4-6]。
本文基于FPGA設(shè)計并實現(xiàn)了一種視頻監(jiān)控系統(tǒng),在FPGA中,集成了視頻數(shù)據(jù)的采集、解碼、顏色空間轉(zhuǎn)換等功能模塊,并用FPGA實現(xiàn)了gamma校正,能夠通過Verj1og程序?qū)amma值進(jìn)行修改,適配不同gamma參數(shù)的顯示器,該校正方法可以簡化電路結(jié)構(gòu),不需要單獨的RAM單元,能夠解決圖像失真的問題。實驗結(jié)果表明,該系統(tǒng)可以滿足視頻監(jiān)控系統(tǒng)對清晰度和實時性的要求。
本系統(tǒng)通過CCD攝像頭捕捉到PAL格式的模擬視頻信號,然后通過ADV7180芯片將其轉(zhuǎn)換為YUV4:2:2數(shù)字視頻數(shù)據(jù)。在FPGA中完成對視頻信號的處理,通過解碼、插值、解交織等過程,將YUV4:2:2轉(zhuǎn)換成YUV4:4:4,,再將其轉(zhuǎn)換成RGB格式。再此過程中需要對數(shù)據(jù)進(jìn)行緩存,緩存模塊使用SDRAM。在視頻信號通過gamma校正模塊校正后,由VGA顯示器進(jìn)行顯示。系統(tǒng)構(gòu)成如圖1所示。
視頻解碼芯片ADV7180是一種能將NTSC、PAL等標(biāo)準(zhǔn)模擬視頻信號轉(zhuǎn)換為符合ITU-R BT.656標(biāo)準(zhǔn)的數(shù)字視頻數(shù)據(jù)的綜合視頻解碼器。在本系統(tǒng)中,F(xiàn)PGA通過I2C總線對
圖1 視頻監(jiān)控系統(tǒng)系統(tǒng)構(gòu)成圖
ADV7180的寄存器進(jìn)行配置,配置完成后,芯片對通過CCD攝像頭輸入的模擬視頻進(jìn)行視頻解碼,輸出符合ITU-R BT. 656標(biāo)準(zhǔn)的YCrCb4:2:2視頻數(shù)據(jù)。
完成對ADV7180的初始化要通過對ADV7180的寄存器進(jìn)行配置。在FPGA中設(shè)計一個I2C總線配置模塊,將要配置的寄存器數(shù)據(jù)存儲在I2C的查找表中,通過調(diào)用該模塊,完成對ADV7180的配置。寄存器的地址和配置參數(shù)值如表1所示。
視頻采集芯片ADV7180輸出的視頻信息為串行的YCrCb4:2:2格式數(shù)據(jù),但是這一格式的數(shù)據(jù)并不能在VGA顯示器上顯示,要進(jìn)一步對此視頻數(shù)據(jù)進(jìn)行處理,最終轉(zhuǎn)換為RGB格式才能滿足VGA顯示的要求。本文在FPGA上設(shè)計并實現(xiàn)了數(shù)據(jù)轉(zhuǎn)換模塊,該模塊具有ITU-R BT.656解碼、隔行掃描轉(zhuǎn)逐行掃描、顏色空間變化3個功能。
表1 寄存器地址和參數(shù)值
3.1ITU-R BT.656解碼
ITU-R BT.656解碼工作將串行的YCrCb4:2:2視頻數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),并對YCrCb4:2:2視頻數(shù)據(jù)進(jìn)行插值,使其轉(zhuǎn)換為YCrCb4:4:4格式。
圖2 YCrCb4:2:2視頻流轉(zhuǎn)換為YCrCb4:4:4示意圖
如圖2所示,YCrCb4:2:2格式即水平方向上每兩個點采樣色差信號Cr、Cb,每一個點采樣亮度信號Y,數(shù)據(jù)順序為Cb0 Y0 Cr0 Y1 Cb1 Y2 Cr1 Y3……。當(dāng)有效視頻起始標(biāo)志到來后,F(xiàn)PGA中的解碼模塊對視頻數(shù)據(jù)進(jìn)行讀入,并將Cb、Cr各復(fù)用一次,數(shù)據(jù)格式轉(zhuǎn)變?yōu)镃b0 Y0 Cr0 Cb0 Y1 Cr0 Cb1 Y2 Cr1 Cb1 Y3 Cr1……,即可完成從數(shù)據(jù)格式Y(jié)CrCb4:2:2到格式Y(jié)CrCb4:4:4的轉(zhuǎn)換。
3.2隔行掃描轉(zhuǎn)逐行掃描
PAL制式對視頻的掃描方式是隔行掃描的,但是VGA對視頻的掃描方式是逐行掃描的。將YCrCb4:2:2為YCrCb4:4:4視頻數(shù)據(jù)轉(zhuǎn)換之后,還需要將隔行掃描數(shù)據(jù)轉(zhuǎn)換為逐行掃描數(shù)據(jù)。本系統(tǒng)通過3個FIFO便可完成隔行掃描轉(zhuǎn)逐行掃描的操作,,無需設(shè)計專門的功能電路,優(yōu)化了系統(tǒng)結(jié)構(gòu),節(jié)約了系統(tǒng)資源。
SDRAM控制模塊如圖3所示,其中包含了3個FIFO和 SDRAM控制器。
圖3 隔行掃描轉(zhuǎn)逐行掃描示意圖
YCrCb4:4:4視頻數(shù)據(jù)寫入SDRAM時是隔行寫入的,其占用的地址空間為0-640*585,其中每一行的前24個數(shù)據(jù)為起始標(biāo)志,然后依順序方式依次寫入奇數(shù)場和偶數(shù)場數(shù)據(jù)。從SDRAM中640x24地址到640x294地址取奇數(shù)場的270行數(shù)據(jù),從640x315地址到640x585地址取偶數(shù)場的270行數(shù)據(jù),當(dāng)從SDRAM讀出視頻數(shù)據(jù)時,由兩個讀出FIFO交替讀出奇數(shù)場和偶數(shù)場的數(shù)據(jù),這樣的讀取的方法最終實現(xiàn)了隔行掃描轉(zhuǎn)換為逐行掃描的目的。
3.3顏色空間變化(YCrCb->RGB)
ITU-R BT.656解碼后的視頻格式為YCrCb4:4:4,并且每個像素的Y、CB、Cr都是獨立的,顏色空間變換就是從YCrCb顏色空間變換到RGB顏色空間,得到像素的RGB值。
YCbCr到RBG空間的變換公式為:
R=1.164(Y-16)+1.59(Cr-128)
G=1.164(Y-16)-0.391(Cb-128)-0.813(Cr-128)
B=1.164(Y-16)+2.018(Cb-128)
用Verj1og編程時,因為以上公式涉及到小數(shù),若直接運用,編譯過程中會在ISE綜合時報錯。因此使用FPGA處理浮點運算時,一般采取放大的方法,先將公式放大512倍得:
R-jnt=512*R=596Y+817Cr-114131
G-jnt=512*G=596Y-200Cb-416Cr+69370
B-jnt=512*B=596Y+1033Cb-141787
計算出R-jnt、G-jnt和B-jnt等之后,均除以512(右移9位),即得到RGB的值。
4.1gamma校正原理
對于理想的顯示系統(tǒng),顯示信號的電壓與顯示器亮度應(yīng)為線性關(guān)系,如圖4所示。但是由于顯示器紅藍(lán)綠3色的光電特性不同,導(dǎo)致顯示系統(tǒng)的響應(yīng)曲線是非線性的,輸入信號與輸出信號關(guān)系如圖5所示,輸入與輸出之間呈現(xiàn)以gamma為參數(shù)的指數(shù)關(guān)系。當(dāng)Gamma值=1的時候,曲線為正比例函數(shù),這個時候輸出值等于輸入值,為理想系統(tǒng)。當(dāng)Gamma值>1時,圖像變暗;而當(dāng)Gamma值<1時,圖像變亮。一般VGA顯示器的gamma值為2.8,導(dǎo)致輸出亮度變暗。通過反效果補償?shù)姆椒ń鉀Q顯示器非線性失真問題。理想狀態(tài)下要達(dá)到的效果為:其中Loutput為顯示器最終輸出的值,Linput為輸入顯示器的值。顯示器的亮度相應(yīng)曲線為:
圖4 理想顯示系統(tǒng)輸入輸出關(guān)系
圖5 實際顯示系統(tǒng)輸入輸出關(guān)系
其中M為總的色階數(shù)。
采用反效果補償法,在數(shù)據(jù)輸出顯示器之前,先對數(shù)據(jù)做補償處理,設(shè)補償后數(shù)據(jù)為L′input,則有:將L′input輸入顯示器后,最終得到:
最終達(dá)到和式(1)相同的結(jié)果,從而實現(xiàn)gamma值的補償,這就是gamma校正的原理。
4.2gamma校正FPGA實現(xiàn)
如果對每個像素點都執(zhí)行上述的指數(shù)運算,那樣運算量十分龐大。我們采取查找表(LUT)的方法實現(xiàn)gamma值的快速校正。
顏色空間變換之后,得到RGB信號均為8位256色,在給定gamma值的情況下,對0-255進(jìn)行(3)式的計算,得到的值就可以制作為查找表,對于不同的像素值只需通過對表的查找就可以完成校正,這樣的方法極大的提高了運算效率。具體的操作為打開quarters II軟件,新建一個.mjf文件,將得到的(3)式的結(jié)果導(dǎo)入到.mjf中。隨后創(chuàng)建一個RAM,并將前面的mjf文件導(dǎo)入到RAM中。
quarters II自帶工具即可創(chuàng)建RAM模塊,這樣省去了復(fù)雜的編程過程,實現(xiàn)了快速方便的gamma校正。
經(jīng)過FPGA處理過的數(shù)字視頻數(shù)據(jù)通過VGA接口控制模塊在VGA顯示器中進(jìn)行顯示。本系統(tǒng)使用的VGA顯示器的分辨率為800*600,刷新頻率為60 MHz。VGA時序中,行同步信號包括消隱信號區(qū)和有效視頻信號區(qū)[7-8]。其中有效視頻信號區(qū)為要顯示的視頻信號,共800個時鐘周期,當(dāng)行同步信號到達(dá)有效視頻信號區(qū)時,每個時鐘周期應(yīng)攜帶RGB信息。消隱信號區(qū)包括同步脈沖、顯示后沿和顯示前沿,時鐘周期數(shù)分別128、88和40。每一行的同步脈沖是數(shù)據(jù)行的結(jié)束標(biāo)志,同時也是下一行的開始標(biāo)志。列同步信號和行同步信號類似,
表1 VGA時序表
如表2所示。
本文使用是ALTERA公司的CYCLONE IV系列的EP4CE30F23C8芯片,該芯片運算速度快,LE資源豐富,符合本系統(tǒng)視頻圖像處理的要求。為了驗證gamma校正效果,圖6 (a)和圖6(b)分別為同一場景下無gamma校正和有g(shù)amma校正的視頻效果,由圖可見,gamma校正前的視頻圖像對比度低,圖像偏暗,亮度較低的地方模糊不清,圖像不易分辨。而gamma校正后的視頻圖像陰影部分細(xì)節(jié)顯示更加清晰。
圖6 gamma校正結(jié)果
本文基于FPGA實現(xiàn)了視頻監(jiān)控系統(tǒng),通過CCD攝像頭輸入視頻信號,經(jīng)過ADV7180芯片將模擬信號轉(zhuǎn)換為YUV4:2:2數(shù)字視頻數(shù)據(jù),數(shù)字信號在FPGA中經(jīng)過一系列處理最終轉(zhuǎn)換為可供VGA顯示器顯示的RGB格式數(shù)據(jù),并通過gamma校正解決了視頻圖像失真的問題。實驗結(jié)果證明,視頻監(jiān)控系統(tǒng)運行穩(wěn)定,而且gamma校正后的圖像比校正前有明顯的改善。該系統(tǒng)實時性強,清晰度高,顏色誤差小,細(xì)節(jié)分明,在監(jiān)控安防領(lǐng)域有很好的應(yīng)用前景。
參考文獻(xiàn):
[1]楊海鋼,孫嘉斌,王慰. FPGA器件設(shè)計技術(shù)發(fā)展綜述[J].電子與信息學(xué)報,2010,32(3):714-727.
[2]郭龍,段哲民,陳洋,等.基于FPGA的視頻實時邊緣檢測系統(tǒng)[J].電子設(shè)計工程,2014,22(3):183-185.
[3]孫軍文,肖金明,王中訓(xùn).基于FPGA的實時視頻信號處理平臺的設(shè)計[J].電子設(shè)計工程,2012,20(14):163-165.
[4]趙建森.視頻通信中的伽瑪校正[J].電子科技,2006(7):43-46.
[5]續(xù)天翔. LED圖象顯示屏Gamma校正及在FPGA中的實現(xiàn)[J].機械管理開發(fā),2008,23(6):187-188.
[6]楊露,蘇秀琴,向靜波,等.基于DSP和FPGA的視頻圖像處理系統(tǒng)設(shè)計[J].微計算機信息,2008(21):288-289.
[7]廖永清,丁旭昌,付建國.基于FPGA的VGA圖像動態(tài)顯示控制器的設(shè)計與實現(xiàn)[J].電視技術(shù),2011,17:52-54.
[8]李雷,鄭為民,劉金剛.基于PMON的龍芯BIOS初始化及VGABIOS模擬器[J].計算機工程》2009,1:204-206.
[9]任君,徐超,李周奎.高清視頻VGA模擬差分信號的遠(yuǎn)距離傳輸系統(tǒng)設(shè)計[J].光學(xué)技術(shù),2013,5:433-437.
[10]吳邦忠夏英.EGA/VGA圖形方式下FOXBASE+屏幕疊加式菜單的實現(xiàn)[J].計算機應(yīng)用研究,1992,3:19-21.
[1]曹旭東,王程錦,孫云龍.基于FPGA的視頻圖像畫面分割器設(shè)計[J].2014,22(1):44-46,50.姜輝.基于FPGA的飛行模擬器通信接口設(shè)計[J].2014,22 (3):88-90.
[2]郭龍,段哲民,陳洋,等.基于FPGA的視頻實時邊緣檢測系統(tǒng)[J].2014,22(3):183-185.
[3]馬玫,唐娜.視頻監(jiān)控系統(tǒng)與環(huán)境監(jiān)控系統(tǒng)在電力中的整合應(yīng)用方案[J].2014,22(9):162-164.
[4]李文方,李海霞.基于3G的家用遠(yuǎn)程視頻監(jiān)控系統(tǒng)研究[J]. 2014,22(18):122-124.
[5]溫挺華,林琴,王強,等.基于Wj-Fj的移動視頻監(jiān)控平臺[J]. 2015,23(4):130-132.
[6]詹一佳,鄧本再,曹宇杰.基于S3C6410的無線視頻監(jiān)控系統(tǒng)設(shè)計[J].2015,23(4):172-175.
[7]張海山.基于云存儲視頻監(jiān)控系統(tǒng)的研究[J].2015,23(10):169-171.
[8]田甜,林筑英.基于云存儲的Androjd手機視頻監(jiān)控和流量共享系統(tǒng)設(shè)計[J].2015,23(24):190-193.
[9]鄧軍勇,蔣林,曾澤滄.2.5Gbps收發(fā)器中1:2解復(fù)用電路的設(shè)計[J].2014,22(9):101-103
[10]李文方,李海霞.基于3G的家用遠(yuǎn)程視頻監(jiān)控系統(tǒng)研究[J]. 2014,22(18):122-124.
[11]詹一佳,鄧本再,曹宇杰.基于S3C6410的無線視頻監(jiān)控系統(tǒng)設(shè)計[J].2015,23(4):172-175.
[12]張海山.基于云存儲視頻監(jiān)控系統(tǒng)的研究[J].2015,23(10):169-171.
[13]云吉,楊鑄,姚嚴(yán)峰.視頻監(jiān)控系統(tǒng)跨瀏覽器插件的研究與實現(xiàn)[J].2015,23(16):65-67.
[14]宛吉林,沈瓊霞.Onvjf雙網(wǎng)段開發(fā)在視頻監(jiān)控系統(tǒng)中的應(yīng)用[J].2015,23(16):75-78.
[15]侯操,孫小平.基于ARM的智能車無線視頻監(jiān)控系統(tǒng)設(shè)計[J].2015,23(23):190-192.
[16]李南伯,李天志,汪洋.多模式視頻監(jiān)控系統(tǒng)在武器試飛中的應(yīng)用[J].2016,24(4):94-97.
[17]盛平,韓偉.基于Androjd平臺的視頻監(jiān)控客戶端的設(shè)計與實現(xiàn)[J].2015,23(22):26-28.
[18]趙國開,馬洪兵,陳從華.一種無線車載視頻監(jiān)控專用文件系統(tǒng)的設(shè)計[J].2016,24(4):10-13.
相關(guān)文獻(xiàn):
Deslgn and reallzatlon of vldeo survelllance system based on FPGA and gamma correctlon
LIU Bjng,XU Wen-tao
(College of Science,Nanjing University of Aeronautics and Astronautics,Nanjing 211100,China)
Abstract:Ajmjng at the bott1eneck of rea1-tjme processjng speed of vjdeo survej11ance system and the prob1em of vjdeo djstortjon,a new sett1ement scheme of vjdeo survej11ance system whjch js based on FPGA and gamma correctjon js proposed. In thjs scheme,the requjrements of rea1-tjme and hjgh defjnjtjon are satjsfjed we11 by makjng the utmost of the advantage of the FPGA para11e1 data processjng. Meanwhj1e,the prob1em of vjdeo djstortjon caused by the djsp1ay's non1jnear brjghtness output js reso1ved by the method of rapjd gamma correctjon usjng 1ook-up tab1e. The experjmenta1 resu1t jndjcates that the vjdeo survej1-1ance system js stab1e and hjgh-defjnjtjon. The dark fje1d graysca1e?js jmproved apparent1y,as a resu1t,the djsp1ay shows c1ear detaj1s and the djstortjon prob1em js so1ved effectjve1y.
Key words:vjdeo survej11ance;FPGA;gamma correctjon;vjdeo djstortjon;1ook-up tab1e
中圖分類號:TN492
文獻(xiàn)標(biāo)識碼:A
文章編號:1674-6236(2016)07-0175-04
收稿日期:2015-05-22稿件編號:201505207
基金項目:2015年國家級大學(xué)生創(chuàng)新訓(xùn)練計劃項目(201510287038)
作者簡介:劉冰(1993—),男,河南登封人。研究方向:視頻信號處理。