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