《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 實時視頻數(shù)據(jù)采集的FPGA實現(xiàn)
實時視頻數(shù)據(jù)采集的FPGA實現(xiàn)
覃永新,陳文輝,章 帆
廣西工學院 電子信息與控制工程系,,廣西 柳州545006
摘要: 介紹一種在工礦監(jiān)視系統(tǒng)中采用FPGA實現(xiàn)視頻數(shù)據(jù)實時采集和顯示的設計方案,。系統(tǒng)中采用FPGA和視頻解碼器實現(xiàn)了高速連續(xù)的視頻數(shù)據(jù)采集與處理,。處理后的視頻信號通過VGA格式轉(zhuǎn)換,,可以在現(xiàn)場VGA顯示器上觀看,,也可以通過鍵控將數(shù)據(jù)存儲在存儲介質(zhì)中,,從而實現(xiàn)了實時視頻監(jiān)視,。
Abstract:
Key words :

摘  要: 介紹一種在工礦監(jiān)視系統(tǒng)中采用FPGA實現(xiàn)視頻數(shù)據(jù)實時采集和顯示的設計方案。系統(tǒng)中采用FPGA和視頻解碼器實現(xiàn)了高速連續(xù)的視頻數(shù)據(jù)采集與處理,。處理后的視頻信號通過VGA格式轉(zhuǎn)換,,可以在現(xiàn)場VGA顯示器上觀看,也可以通過鍵控將數(shù)據(jù)存儲在存儲介質(zhì)中,,從而實現(xiàn)了實時視頻監(jiān)視,。
 關鍵詞: 實時數(shù)據(jù)采集,;視頻監(jiān)視;數(shù)據(jù)格式,;可編程邏輯陣列

  視頻監(jiān)控系統(tǒng)利用現(xiàn)存的企業(yè)計算機網(wǎng)絡平臺,,將監(jiān)控范圍內(nèi)所需的視頻、音頻等數(shù)據(jù)以數(shù)字形式通過網(wǎng)絡進行傳輸,、存儲和共享,,使安全監(jiān)控部門及時獲得關于監(jiān)控現(xiàn)場實時、準確,、具體,、直觀的數(shù)據(jù),為安全生產(chǎn)提供一種新的技術手段,。FPGA以其高性能,、高可靠性以及現(xiàn)場修改、現(xiàn)場驗證,、現(xiàn)場實現(xiàn)的數(shù)字系統(tǒng)單片化的應用優(yōu)勢而日益成為視頻信號處理領域的熱門技術,。特別是其高速并行處理能力,使其在處理速度,、成本,、可靠性、開發(fā)周期和擴展能力等方面具有明顯的優(yōu)勢,。
  本文設計一種用于工礦監(jiān)控系統(tǒng)的實時視頻數(shù)據(jù)采集系統(tǒng),,系統(tǒng)中由CCD攝像頭采集到模擬視頻信號,通過視頻解碼芯片轉(zhuǎn)換為PAL制式的數(shù)字視頻信號,,采用FPGA對其進行格式轉(zhuǎn)換,,在現(xiàn)場使用VGA顯示器進行視頻監(jiān)視,在按鍵的控制下可以存儲于硬盤等存儲介質(zhì)中或傳輸至網(wǎng)絡中,。本設計以高性能的FPGA為核心部件,,與視頻解碼芯片、SRAM等外圍器件構成整個視頻數(shù)據(jù)處理系統(tǒng),,集采集,、存儲、顯示功能于一體,,其系統(tǒng)總體框圖如圖1所示,。設計中的FPGA器件采用Altera公司的CycloneII系列EP2C8Q208C8N芯片;視頻解碼芯片選用Philips公司的SAA7113H作為視頻數(shù)據(jù)的模數(shù)轉(zhuǎn)換器件,;SRAM采用高速,、低功耗8 Mbit的IS61LV51216作為圖像數(shù)據(jù)緩存器。

1 實時視頻監(jiān)視系統(tǒng)的結(jié)構
  一個完整的成像系統(tǒng)不但要具備圖像信號采集功能,,對圖像進行實時顯示[1],,而且要完成圖像信號的分析、處理(如圖像壓縮等)以及圖像處理結(jié)果的反饋等,?;贔PGA的實時視頻監(jiān)視系統(tǒng)的結(jié)構如圖2所示,主要包括IIC配置單元,、數(shù)據(jù)采集及控制單元,、VGA接口單元和壓縮存儲單元等。

2 視頻信號采集和顯示部分的實現(xiàn)
  SAA7113H輸出PAL制式的ITU656標準YUV(4:2:2)格式數(shù)據(jù)[2],,其中Y表示亮度信號,,而UV表示色差信號,并且輸出像素時鐘為27 MHz,。信號掃描方式為隔行掃描,,幀率為25幀/秒,每幀圖像分為奇偶兩場,,每幀像素為864×625,,其中有效數(shù)據(jù)為720×576。SAA7113H輸出的一行視頻數(shù)據(jù)格式如圖3所示,,每行有1 728 B,,其中有效數(shù)據(jù)1 440 B,對應720個有效像素,,可以看成每一個像素由2個連續(xù)的字節(jié)表示,,每個像素有自己的亮度數(shù)據(jù)Y,每兩個相鄰像素共用一組色差數(shù)據(jù)U和V,。

  由于系統(tǒng)要求在VGA顯示器上采用逐場逐行方式顯示RGB格式的數(shù)據(jù),,并且要求所采集圖像的大小為640×480,因此,,必須對SAA7113H所采集到的原始數(shù)字視頻信號進行格式轉(zhuǎn)換和存儲方式的處理,。
2.1 IIC配置單元
  視頻解碼芯片SAA7113H接收CCD攝像頭輸出的模擬視頻信號,將其轉(zhuǎn)換成標準的VPO數(shù)字信號,。SAA7113H上電后,,必須由核心控制芯片F(xiàn)PGA通過IIC總線對其內(nèi)部的寄存器進行初始化設置,然后才能正常工作,。IIC配置單元的任務就是按照IIC總線的數(shù)據(jù)傳輸規(guī)范對SAA7113H內(nèi)部的寄存器進行初始化設置,,其時鐘信號由SAA7113H提供的27 MHz的像素時鐘經(jīng)過時鐘控制單元分頻得到,數(shù)據(jù)速率在100 kb/s~400 kb/s,。
  IIC配置單元的內(nèi)部結(jié)構如圖4所示,,由IIC控制單元iic_all、配置數(shù)據(jù)存儲器iic_rom和讀地址發(fā)生器div448構成,。IIC控制單元iic_all是核心控制單元,,采用狀態(tài)機設計,,在start信號有效后使SCL高電平時拉低SDA數(shù)據(jù)線,同時控制地址發(fā)生器div448產(chǎn)生讀地址信號送入配置數(shù)據(jù)存儲器iic_rom,; iic_rom采用可設置參數(shù)模塊LPM_ROM,,定制為數(shù)據(jù)寬度為1的只讀ROM,每個存儲單元按位預存SAA7113H內(nèi)部寄存器的控制字,;在時鐘使能端clken有效時按位串行寫入SDA數(shù)據(jù)線,。IIC控制單元在start信號有效后的第8個時鐘上升沿獲取到SAA7113H的低電平應答信號后繼續(xù)發(fā)送數(shù)據(jù)給SAA7113H,否則將重新回到起始狀態(tài)等待,。
 SAA7113H完成初始化配置后,,輸出數(shù)字視頻信號VPO[7..0]和相應的同步信號:行有效信號RTS0、奇偶場標識信號RTS1等,。其中RTS0高電平表示有效數(shù)據(jù)行,,低電平表示消隱行;RTS1為奇偶場標識信號,,高電平表示奇場,,低電平表示偶場。

2.2 數(shù)據(jù)采集及控制單元
  數(shù)據(jù)采集及控制單元主要由3個模塊組成:采集模塊acquisition,、雙口RAM器件lpm_ram_dp0和幀存控制模塊sto_ctl,,其內(nèi)部電路圖如圖5所示。此單元的任務就是由采集模塊截取SAA7113H輸出的一行數(shù)據(jù)中的640個有效像素(共1 280 B)寫入雙口RAM器件進行緩存,,幀存控制模塊將數(shù)據(jù)從雙口RAM中順序讀出后送入外擴SRAM中逐行存儲,,同時控制2片SRAM交替讀寫,讀出的數(shù)據(jù)送入VGA接口單元進行VGA格式轉(zhuǎn)換和圖像顯示,。

2.2.1 采集模塊acqusition
  采集模塊接收SAA7113H的RTS0,、像素時鐘信號SYS_CLK和視頻數(shù)據(jù)VPO[7..0],輸出為一行數(shù)據(jù)中的有效數(shù)據(jù)vpo_out[7..0],、有效像素的計數(shù)值tempp[10..0]和表示行狀態(tài)有效的信號line_state,。
  若要截取一行數(shù)據(jù)中的有效數(shù)據(jù),首先要捕捉到有效數(shù)據(jù)的起始時刻,。采集模塊根據(jù)圖3中視頻數(shù)據(jù)流的時間參考代碼SAV來獲取有效數(shù)據(jù)的起始時刻,。在一幀完整的圖像數(shù)據(jù)中,第一場有效數(shù)據(jù)階段的SAV為“1000XXXX”,,而消隱階段的時間參考代碼中的SAV為“1010XXXX”,。通過判斷場有效信號rts0為1時,分析數(shù)據(jù)流中的“80 10 FF 00 00 SAV”定時參考代碼,,啟動計數(shù)模為1 440的計數(shù)器tempp,。計數(shù)值為40時置狀態(tài)信號line_state為1,標志一行有效數(shù)據(jù)的開始,;計數(shù)值為1 320時置line_state為0,,結(jié)束一行有效數(shù)據(jù)的采集,。在這個時間段內(nèi)就可以截取一行中1 280 B的有效數(shù)據(jù),繼而送入雙口RAM緩存,。
2.2.2 雙口RAM器件lpm_ram_dp0
  雙口RAM 器件利用FPGA內(nèi)部的參數(shù)可設置模塊LPM_RAM_DP定制而成,,用來緩存一行的有效視頻數(shù)據(jù),,而后存儲在SRAM中,。由于SAA7113H輸出是8位的VPO數(shù)據(jù),而片外SRAM具有16根數(shù)據(jù)線,,作為連接于兩者之間的數(shù)據(jù)接口,,雙口RAM應該有兩套獨立的數(shù)據(jù)端口和時鐘端口,可以同時進行讀寫操作,。在軟件QUARTUSⅡ上定制LPM_RAM_DP的參數(shù)為:寫數(shù)據(jù)位寬=8,;寫地址線寬=11;讀數(shù)據(jù)位寬=16,,讀地址線寬=10,;地址輸入由時鐘的上升沿鎖入。雙口RAM的容量為2 KB,,寫時鐘采用系統(tǒng)像素時鐘,,讀時鐘采用由幀存控制模塊產(chǎn)生的像素時鐘的二分頻信號rdram_clk。
2.2.3 幀存控制模塊sto_ctl
  幀存控制模塊是FPGA芯片與片外SRAM的接口,,其任務是產(chǎn)生片內(nèi)雙口RAM的讀地址和片外SRAM的寫地址,,將每行視頻數(shù)據(jù)從雙口RAM中順序讀出,按照逐行存儲的形式寫入SRAM中,。當一片SRAM寫滿一幀數(shù)據(jù)后,,逐行送入VGA接口單元,同時切換讀寫操作,,在另一片SRAM里連續(xù)寫入下一幀視頻數(shù)據(jù),。幀存控制單元的工作主要是對雙口RAM的讀操作、SRAM的讀寫操作,、SRAM的乒乓控制和幀頻的轉(zhuǎn)換,。
  雙口RAM的讀操作由模為640的加法計數(shù)器rdram_addd完成。為了保證數(shù)據(jù)不讀空,,在雙口RAM寫使能信號有效后的第8個系統(tǒng)時鐘,,幀存控制模塊向雙口RAM發(fā)出讀允許信號rd_ram,同時計數(shù)器工作,,按照rdram_clk時鐘輸出雙口RAM的讀地址,。
  SRAM的讀寫操作主要是對SRAM訪問地址的控制。SRAM芯片IS61LV51216具有19根地址線,,取其中10根為行向地址線,,則每行存儲640個雙字節(jié)的視頻數(shù)據(jù),;9根為列向地址線,可存儲480行的視頻數(shù)據(jù),;剩余的存儲空間空閑,。視頻數(shù)據(jù)在SRAM中存儲的行向地址與雙口RAM讀地址之間有確定的等同關系,所以行向地址仍然采用計數(shù)器rdram_addd的計數(shù)值,,列向地址由模為480的計數(shù)器cnt480產(chǎn)生,。為了實現(xiàn)數(shù)據(jù)的逐行存儲,奇場和偶場的行數(shù)據(jù)必須隔行交錯存儲,,即列向地址是在RTS1=1時(即奇場)從000H按時鐘加2遞增至1DEH,,在RTS1=0時(偶場)從001H按時鐘加2遞增至1DFH,這樣就實現(xiàn)了隔行掃描到逐行存儲的結(jié)構轉(zhuǎn)換,。
  系統(tǒng)中采用了2片SRAM,,以乒乓方式工作,一片在寫入視頻數(shù)據(jù)的同時,,另一片讀出數(shù)據(jù)送入VGA接口單元,。當其中一片SRAM寫完一幀數(shù)據(jù)后,幀存控制模塊會產(chǎn)生一個轉(zhuǎn)換信號,,輸出互補的讀允許SRAM_RD和寫允許信號SRAM_WR,,控制2片SRAM切換工作,從而實現(xiàn)視頻數(shù)據(jù)的實時連續(xù)處理,。
  幀頻的轉(zhuǎn)換是通過復制幀實現(xiàn)的,。PAL制式的信號每秒25幀,VGA顯示器工作場頻是每秒60幀,,幀頻比為5:12,。要轉(zhuǎn)換為能夠滿足每秒60幀要求的視頻信號,最簡單的辦法就是復制幀,。在本設計中每5幀做一次頻率放大,,第一幀、第三幀傳輸3次,,其余各幀傳輸2次[3],。由于RTS0信號的上升沿表示新幀的起點,所以可以利用RTS0信號觸發(fā)一個序列發(fā)生器,,產(chǎn)生對SRAM讀操作次數(shù)的控制,。
2.3 VGA接口單元
  VGA接口單元由2個模塊組成:VGA時序驅(qū)動模塊,用于產(chǎn)生VGA正常工作所需的時序信號,,包括60 Hz掃描時鐘VGA_CLK,、場同步信號VS和行同步信號HS;VGA信號轉(zhuǎn)換模塊,用于接收SRAM中的YUV信號并將其轉(zhuǎn)換成RGB信號,,并根據(jù)VGA的掃描時序?qū)GB信號通過DAC,,最后送入VGA顯示器。
2.3.1 VGA時序發(fā)生模塊VGA_SHIXU
  VGA時序發(fā)生器遵循VGA工業(yè)標準,,即640 Hz×480 Hz×60 Hz模式,,行同步HS和場同步VS信號的頭脈沖是負脈沖,所要求的頻率有:像素輸出頻率為25.175 MHz,,行頻為31469 Hz,,場頻為59.94 Hz。VGA水平時序中,,每行包括800像素點,,其中640像素點為有效顯示區(qū),160像素點為行消隱區(qū),。VGA垂直時序中,每場有525行,,其中480行為有效顯示行,,45行為場消隱區(qū)。時序發(fā)生器接收外部輸入50 MHz時鐘信號,,利用模為800的行點數(shù)計數(shù)器cnt800完成行掃描時序,,模為525的場行數(shù)計數(shù)器cnt525完成場掃描時序。cnt800對經(jīng)過PLL分頻得到的25 MHz時鐘進行像素計數(shù),,并在每次計數(shù)值清零前生成一個脈沖L_STATUS,,cnt525對L_STATUS進行場行數(shù)計數(shù)。系統(tǒng)復位時,,同步信號HS,、VS為1,計數(shù)器全部清零,;幀存控制單元的寫VGA信號VGA_WR有效時,,將HS、VS拉低電平,,cnt800開始計數(shù),。程序中對cnt800的計數(shù)值進行判斷,當為95時(行消隱前肩)將L_STATUS置1,,為143時將640 B的RGB信號送入VGA顯示器,,計滿后再次拉低HS信號和L_STATUS。當cnt525的計數(shù)值為1時(場消隱前肩)將VS置1,,為35時場同步輸出,,允許輸出HS信號。行、場消隱的邏輯與即為復合消隱信號,,連同行,、場同步信號便產(chǎn)生了VGA接口的時序信號[3]。
2.3.2 VGA信號轉(zhuǎn)換模塊VGA_COV
  VGA信號轉(zhuǎn)換模塊將輸入的PAL制式的YUV(4:2:2)信號轉(zhuǎn)換成RGB信號,。首先對數(shù)據(jù)采集單元截獲的YUV(4:2:2)視頻數(shù)據(jù)進行插值,,得到Y(jié)UV(4:4:4)視頻數(shù)據(jù)(如圖6所示),將一個像素點的數(shù)據(jù)YUV(如U0Y0V0)合并為獨立并行的24 bit數(shù)據(jù),,進入色彩轉(zhuǎn)換單元VGA_COV后再經(jīng)過程序計算來進行色度空間變換,,獲取并行輸出的RGB(8:8:8)值。色彩空間變換公式如下:
  

   計算結(jié)果均除以1 024(即右移10位),,即可得到RGB的值[4],。對輸出的RGB(8:8:8)取高位獲得RGB(5:6:5),通過D/A轉(zhuǎn)換器送入VGA顯示器,。
3 仿真與性能分析
3.1 部分仿真波形
  SRAM寫入第一行數(shù)據(jù)的仿真波形如圖7所示,。當RTS1=1(奇場)時,在行有效信號有效后,,模為1 440的行計數(shù)器tempp開始計數(shù),;在計數(shù)值tempp為40時,應該提取到有效數(shù)據(jù)流中A8 A9 AA AB AC AD AE……計數(shù)值為48時,,視頻數(shù)據(jù)開始將雙字節(jié)的視頻數(shù)據(jù)寫入SRAM中,,如A8 A9, AA AB,, AC AD……,。

3.2 系統(tǒng)性能估算
  為了保證系統(tǒng)的實時性,一行有效視頻數(shù)據(jù)的存儲必須在下一行數(shù)據(jù)到來之前完成,。本系統(tǒng)中,,存儲一行有效視頻數(shù)據(jù)以及格式調(diào)整等需要占用1 288個系統(tǒng)時鐘。SRAM的最高時鐘頻率可以達到125 MHz,,則存儲一行視頻數(shù)據(jù)所需的時間T1=1 288/125=10.304 ns,。一行視頻數(shù)據(jù)中的消隱期和無效數(shù)據(jù)占用448字節(jié)時間,輸出的像素時鐘為27 MHz,,則消隱期和無效數(shù)據(jù)所占的時間為T2=448/27=16.592 ns,。由于在行消隱期和無效數(shù)據(jù)所花費的時間T2大于存儲一行視頻數(shù)據(jù)所需的時間T1,因此完全可以在行消隱期實現(xiàn)一行視頻數(shù)據(jù)的實時存儲,,滿足實時數(shù)據(jù)處理的要求,。
  本設計在QUARTUSⅡ8.1環(huán)境下進行綜合驗證,其頂層設計采用原理圖設計方式,,各模塊采用VHDL語言設計,,共使用了364個LE,程序下載到FPGA芯片進行仿真驗證,很好地實現(xiàn)了實時視頻監(jiān)控的功能,。在本設計的基礎上稍加改動即可實現(xiàn)可變分辨率的視頻圖像采集與處理系統(tǒng),。
參考文獻
[1] 沈蘭蓀.實時系統(tǒng)構成技術[M].合肥:中國科學技術大學出版社,1999.
[2] 肖文才,,樊豐.視頻實時采集系統(tǒng)的FPGA設計[J].中國有線電視.2006,,21:2104-2108.
[3] 張旭,王彬.一種基于FPGA的實時圖像轉(zhuǎn)換控制器設計[J].電子技術應用.2001(10):66-71.
[4] 邵應昭,,任愛鋒.基于FPGA的視頻監(jiān)控系統(tǒng)[J].電子技術應用.2008(5):20-22.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉(zhuǎn)載。