王一程,陶會鋒,楊銘博
(1.紅外與低溫等離子體安徽省重點實驗室,脈沖功率激光技術國家重點實驗室,電子工程學院,合肥 230037;2.解放軍71146部隊,濰坊 261000)
基于FPGA的模擬視頻采集卡設計
王一程1,陶會鋒1,楊銘博2
(1.紅外與低溫等離子體安徽省重點實驗室,脈沖功率激光技術國家重點實驗室,電子工程學院,合肥 230037;2.解放軍71146部隊,濰坊261000)
視頻技術在現(xiàn)代生活中有著十分廣泛的應用,而視頻采集是所有視頻后續(xù)處理的基礎。視頻采集主要包含A/D轉換和視頻解碼兩個過程。A/D轉換即模擬視頻的數(shù)字化,視頻解碼是指將PAL或NTSC等模擬視頻信號轉換成8位ITU-R BT.656格式[1]。視頻采集質量的好壞將直接影響整個視頻系統(tǒng)的性能,是進行后續(xù)數(shù)字圖像處理的前提條件。
FPGA(現(xiàn)場可編程門陣列)既有用戶可編程特性,又能為設計者提供比DSP更高的并行性[2],特別適用于數(shù)據(jù)流量大數(shù)字視頻處理。因此,F(xiàn)PGA在視頻處理產品中的應用越來越廣泛。目前市場上的有很多不同型號的視頻采集卡,但大多都是采用PCI總線接口或USB等串行總線接口,視頻數(shù)據(jù)經過很多傳輸流程,無法直接傳入FPGA進行高速處理。因此,本文涉及的系統(tǒng)采用FPGA直接讀寫視頻解碼芯片的方案,F(xiàn)PGA直接獲取BT.656格式的視頻數(shù)據(jù)流。由于FPGA具有并行處理結構和高速處理速度,使整個系統(tǒng)的具備很高的處理性能。
本設計以Altera公司的Cyclone III系列FPGA芯片EP3C40F484C6N為處理核心,可分為視頻解碼模塊、視頻存儲模塊和視頻傳輸模塊,如圖1所示。
圖1 系統(tǒng)硬件方案
在視頻解碼模塊中,采用TI公司的TVP5150作為視頻解碼芯片。TVP5150將PAL或NTSC等制式的模擬視頻信號轉換為符合BT.656標準的數(shù)字信號,輸入FPGA進行處理。視頻存儲模塊為FPGA內部配置生成的FIFO和外部掛接的SRAM,可以將圖像數(shù)據(jù)存入其中。視頻傳輸模塊通過百兆以太網(wǎng)接口芯片BCM5221將圖像數(shù)據(jù)上傳到PC,PC上運行的上位機程序顯示采集到的視頻,以驗證采集系統(tǒng)的性能。本文主要討論視頻解碼模塊。
TVP5150是一款能夠兼容NTSC/PAL/SECAM三種制式的高性能視頻解碼芯片,具有超低功耗(115mW)和超小封裝(32pin TQFP)的特點,特別適用于便攜視頻應用[3]。模擬視頻輸入可以是2路CVBS(復合視頻)信號或1路S-Video信號,輸出為符合ITU-R BT.656標準的8位4:2:2數(shù)字視頻信號。它與主控芯片F(xiàn)PGA之間通過I2C串行總線連接,F(xiàn)PGA通過設置TVP5150的內部寄存器對其進行配置和控制。
視頻解碼模塊電路如圖2所示。TVP5150芯片的系統(tǒng)時鐘為14.31818 MHz;電源電壓有1.8V和3.3V兩種,1.8V為數(shù)字和模擬輸入電壓,3.3V為I/O口電壓;模擬視頻信號輸入有A1P1A和A1P1B兩路,圖中接入第1管腳A1P1A;數(shù)字視頻輸出信號端口YOUT [7:0]為8位寬度的YCbCr信號,消隱信號可用單獨引腳HSYNC和VSYNC輸出;SCL和SDA為其與FPGA通信的 I2C總線端口。將 YOUT[0:7]、SCL、SDA、HSYNC、VSYNC與FPGA連接。
圖2 視頻解碼模塊電路
本系統(tǒng)軟件是在Quartus II環(huán)境下采用VHDL語言開發(fā)完成的FPGA配置程序。其功能主要包括對視頻解碼芯片的初始化配置和采集控制、數(shù)字視頻數(shù)據(jù)的存儲、網(wǎng)口芯片的配置和數(shù)據(jù)傳輸?shù)裙δ?,這里主要介紹視頻解碼芯片的初始化配置和采集控制。
2.1I2C總線控制器
視頻解碼芯片TVP5150配有I2C總線接口,它的配置和控制是由FPGA通過I2C總線來完成。因此,需在FPGA內部設計生成一個I2C總線控制器,以實現(xiàn)I2C總線時序。I2C總線為兩線制,由數(shù)據(jù)線SDA和時鐘線SCL構成,可發(fā)送和接收數(shù)據(jù)。
I2C總線是同步傳輸?shù)拇锌偩€,總線信號由時鐘進行同步。為了保證總線數(shù)據(jù)的可靠傳輸,I2C協(xié)議對總線時序做了嚴格的規(guī)定,如圖3所示,傳輸數(shù)據(jù)時有起始位(S),終止位(P),發(fā)送零及應答位(A),發(fā)送l及非應答位(A)[4]。特別要注意起始和停止的條件,起始條件是SCL為高電平時SDA下降沿;而停止條件是SCL為高電平時SDA上升沿;起始位和終止位之間的數(shù)據(jù)的每一位傳輸都是必須在SCL為高電平時完成。
圖3 I2C總線時序圖
2.2BT.656數(shù)據(jù)處理
在BT.656標準中,8位寬度的并行接口除了傳輸4:2:2的YCbCr視頻數(shù)據(jù)流外,還包含行、列同步所用的控制信號。在視頻數(shù)據(jù)流中,一幀圖像數(shù)據(jù)為包含一個625行、每行l(wèi)728個字節(jié)的數(shù)據(jù)塊。其中,第23~311行是偶場視頻數(shù)據(jù),第336~624行是奇場視頻數(shù)據(jù),其余的行為垂直控制信號。數(shù)據(jù)流包括視頻信號、時基信號、輔助信號三個分量[4]。數(shù)據(jù)的歸屬由時基信號區(qū)分,它包括SAV(有效視頻起始)和EAV(有效視頻結束),分別表示行的開始和結束,由4字節(jié)的16進制數(shù)組成,用FF、00、00、XY表示。其中,F(xiàn)F、00、00為SAV 和EAV的前導字節(jié),XY為時基信號的信息位。SAV信號后為1440個YCbCr 4∶2∶2格式的有效數(shù)據(jù),編碼格式如圖4所示。
如表1所示,XY字節(jié)的最高位Bit7為1;F=0表示偶場數(shù)據(jù),F(xiàn)=1表示奇場數(shù)據(jù);V=0表示該行為有效視頻數(shù)據(jù);V=1表示該行為輔助數(shù)據(jù);H=0表示SAV信號,H=1表示EAV信號。
圖4 BT.656的行數(shù)據(jù)結構
表1 XY的含義
根據(jù)BT.656數(shù)據(jù)結構規(guī)定,幀數(shù)據(jù)塊中包含有效視頻數(shù)據(jù)和無效視頻數(shù)據(jù)(同步和消隱信號),F(xiàn)PGA只需要緩存有效數(shù)據(jù)。程序可以利用時基信號EAV、SAV產生控制信號去除幀數(shù)據(jù)塊中的無效數(shù)據(jù)。首先在輸入的數(shù)據(jù)流中檢測是否含有三個前導字節(jié)FF、FF、00,若檢出這三個字節(jié)的數(shù)據(jù)就可能是有效數(shù)據(jù)的開始或者結束。當判斷到SAV信號后,就可以開始接收有效數(shù)據(jù),直到出現(xiàn)EAV信號。在接收有效數(shù)據(jù)時,必須嚴格按照從偶場第一行開始,直到接收完完整一幀的數(shù)據(jù),否則可能會發(fā)生丟失數(shù)據(jù)等異?,F(xiàn)象,這樣做能夠簡化程序。當接收滿一幀后就存入FPGA的內部FIFO或外部SRAM中進行緩存,等待處理器進行處理或上傳。
將程序通過JTAG方式下載到FPGA后,利用QuartusⅡ軟件自帶的Signal TapⅡ邏輯分析儀來對FPGA內部信號進行觀察。為了捕獲SAV信號,可將Signal TapⅡ中的觸發(fā)使能信號設為SAV,觸發(fā)電平為SAV的上升沿。如圖7所示,SAV信號被成功捕獲,vpo [7:0]為FPGA通過I2C總線從視頻解碼芯片TVP5150獲取的BT.656數(shù)據(jù)流。在SAV上升沿之前,vpo的值為FFh 00h 00h 80h,反而言之,當vpo出現(xiàn)FFh 00h 00h 80h序列時,則認為一個SAV的到來。為了方便分辨vpo中的Y、Cb和Cr數(shù)據(jù),程序中加入 Y_ena、Cb_ena和Cr_ena信號??梢?,Y、Cb和Cr數(shù)據(jù)是交替到來的。
圖5 SAV信號
同樣,為了捕獲EAV信號,可將Signal TapⅡ中的觸發(fā)使能信號設為EAV,觸發(fā)電平為EAV的上升沿。如圖6所示,EAV信號被成功捕獲,在EAV上升沿之前,vpo的值為FFh 00h 00h 90h,反而言之,當vpo出現(xiàn)FFh 00h 00h 90h序列時,則認為一個EAV的到來。
圖6 EAV信號
將攝像機輸出的模擬視頻接入采集卡,上位機通過網(wǎng)口與采集卡連接,上位機程序界面顯示上傳的數(shù)字視頻信號。圖7顯示了采集卡所采集到的紅外熱像儀輸出的視頻,畫面清晰流暢。
本文介紹了一種以FPGA芯片為控制核心的模擬視頻采集卡的設計方法。FPGA通過I2C串行總線對視頻解碼器TVP5150進行配置,然后獲得BT.656格式的視頻數(shù)據(jù),最后通過實驗驗證了設計的有效性。
圖9 上位機程序顯示的視頻畫面
[1]趙鴻章.數(shù)字視頻處理[M].北京:北京師范大學出版社,2009.
[2]王一程,汪海兵.基于FPGA的光電跟蹤控制系統(tǒng)設計[J].電光與控制,2009,16(3):54-57.
[3]蔣陳銘,史小軍.基于TVP5150的低功耗視頻解碼模塊[J].電子工程師,2008,34(4):46-48.
[4]陳秀玲,周欣.I2C總線數(shù)據(jù)傳輸系統(tǒng)的設計及其應用[J].微型電腦應用,2003,19(5):42-44.
[5]仁帥,陳鐸.基于FPGA的TVP5150的視頻解碼模塊[J].科技創(chuàng)新導報,2014,(6):61.
FPGA;Video Capture;TVP5150;BT.656
Design of Analog Video Capture System Based on FPGA
WANG Yi-cheng1,TAO Hui-feng1,YANG Ming-bo2
(1.Key Laboratory of Infrared and Low Temperature Plasma of Anhui Province;State Key Laboratory of Pulsed Power Laser Technology,Electronic Engineering Institute,Hefei 230037;2.71146 PLA troops,Weifang 261000)
1007-1423(2015)33-0047-04
10.3969/j.issn.1007-1423.2015.33.013
王一程(1983-),男,廣西百色人,碩士,講師,研究方向為圖像處理、機器視覺、智能控制
2015-11-10
2015-11-20
模擬視頻信號采集是視頻處理系統(tǒng)的重要部分,為后續(xù)數(shù)字視頻信號的處理打下基礎。為了提高視頻采集和處理的實時性,設計一種基于FPGA芯片的視頻采集卡。該采集卡以Cyclone III系列FPGA芯片為核心,通過視頻解碼芯片TVP5150將模擬視頻信號轉換為符合BT.656標準的數(shù)字信號,輸入FPGA進行處理。實驗表明該方案的有效性,能為同類產品的設計提供參考。
FPGA;視頻采集;TVP5150;BT.656
陶會鋒(1988),男,河北邯鄲人,碩士研究生,研究方向為光電工程
Analog video signal acquisition is an important part of the video processing system,and it is the basis for the subsequent processing of digital video signals.In order to improve the real-time performance of video capture and processing,designs a video capture card based on FPGA chip.With a Cyclone III series FPGA chip as the core,this card converts the analog video signal into digital signal which is in accordance with BT.656 standard by the video decoder chip TVP5150.And digital video data are transferred into FPGA chip for subsequent processing.Experimental results show the effectiveness of the scheme,which can provide reference for the design of similar products.