新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 實時視頻數(shù)據(jù)采集的FPGA實現(xiàn)

實時視頻數(shù)據(jù)采集的FPGA實現(xiàn)

作者: 時間:2010-12-02 來源:網(wǎng)絡 收藏

若要截取一行數(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,結束一行有效數(shù)據(jù)的采集。在這個時間段內(nèi)就可以截取一行中1 280 B的有效數(shù)據(jù),繼而送入雙口RAM緩存。
2.2.2 雙口RAM器件lpm_ram_dp0
雙口RAM 器件利用內(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
幀存控制模塊是芯片與片外SRAM的接口,其任務是產(chǎn)生片內(nèi)雙口RAM的讀地址和片外SRAM的寫地址,將每行視頻數(shù)據(jù)從雙口RAM中順序讀出,按照逐行存儲的形式寫入SRAM中。當一片SRAM寫滿一幀數(shù)據(jù)后,逐行送入VGA接口單元,同時切換讀寫操作,在另一片 SRAM里連續(xù)寫入下一幀視頻數(shù)據(jù)。幀存控制單元的工作主要是對雙口RAM的讀操作、SRAM的讀寫操作、SRAM的乒乓控制和幀頻的轉換。
雙口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)了隔行掃描到逐行存儲的結構轉換。
系統(tǒng)中采用了2片SRAM,以乒乓方式工作,一片在寫入視頻數(shù)據(jù)的同時,另一片讀出數(shù)據(jù)送入VGA接口單元。當其中一片SRAM寫完一幀數(shù)據(jù)后,幀存控制模塊會產(chǎn)生一個轉換信號,輸出互補的讀允許SRAM_RD和寫允許信號SRAM_WR,控制2片SRAM切換工作,從而實現(xiàn)視頻數(shù)據(jù)的實時連續(xù)處理。
幀頻的轉換是通過復制幀實現(xiàn)的。PAL制式的信號每秒25幀,VGA顯示器工作場頻是每秒60幀,幀頻比為5:12。要轉換為能夠滿足每秒60幀要求的視頻信號,最簡單的辦法就是復制幀。在本設計中每5幀做一次頻率放大,第一幀、第三幀傳輸3次,其余各幀傳輸2次[3]。由于RTS0信號的上升沿表示新幀的起點,所以可以利用RTS0信號觸發(fā)一個序列發(fā)生器,產(chǎn)生對SRAM讀操作次數(shù)的控制。
2.3 VGA接口單元
VGA接口單元由2個模塊組成:VGA時序驅動模塊,用于產(chǎn)生VGA正常工作所需的時序信號,包括60 Hz掃描時鐘VGA_CLK、場同步信號VS和行同步信號HS;VGA信號轉換模塊,用于接收SRAM中的YUV信號并將其轉換成RGB信號,并根據(jù) VGA的掃描時序將RGB信號通過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信號轉換模塊VGA_COV
VGA信號轉換模塊將輸入的PAL制式的YUV(4:2:2)信號轉換成RGB信號。首先對單元截獲的 YUV(4:2:2)視頻數(shù)據(jù)進行插值,得到YUV(4:4:4)視頻數(shù)據(jù)(如圖6所示),將一個像素點的數(shù)據(jù)YUV(如U0Y0V0)合并為獨立并行的 24 bit數(shù)據(jù),進入色彩轉換單元VGA_COV后再經(jīng)過程序計算來進行色度空間變換,獲取并行輸出的RGB(8:8:8)值。色彩空間變換公式如下:


計算結果均除以1 024(即右移10位),即可得到RGB的值[4]。對輸出的RGB(8:8:8)取高位獲得RGB(5:6:5),通過D/A轉換器送入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……。
6875341586913.JPG
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,程序下載到 芯片進行仿真驗證,很好地實現(xiàn)了監(jiān)控的功能。在本設計的基礎上稍加改動即可實現(xiàn)可變分辨率的視頻圖像采集與處理系統(tǒng)。

本文引用地址:http://butianyuan.cn/article/191456.htm

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉