摘 要: 給出一種使用FPGA和ARM實現(xiàn)4路視頻采集存儲功能的嵌入式系統(tǒng)設計方法,介紹了FPGA控制視頻AD芯片TVP5154對模擬視頻進行數(shù)字轉(zhuǎn)換、多路ITU656格式的視頻數(shù)據(jù)的抽取方
法、視頻數(shù)據(jù)的乒乓存儲以及合成后的視頻數(shù)據(jù)的重組發(fā)送。
關鍵詞: 嵌入式系統(tǒng); TVP5154; 視頻合成; 乒乓存儲
為了滿足家庭和公共安全的需要,監(jiān)控系統(tǒng)越來越多地出現(xiàn)在日常生活中。采用多個攝像頭進行監(jiān)控可以有效地監(jiān)視各個方位,多路視頻合成一路既方便觀察又可以有效地減少數(shù)據(jù)存儲量。而采用視頻壓縮芯片可以進一步降低視頻數(shù)據(jù)的存儲量,壓縮后的視頻存儲后可以便于使用PC進行查詢。
1 系統(tǒng)組成及工作原理
視頻AD芯片TVP5154將PAL制式模擬視頻轉(zhuǎn)換成ITU656格式[1]的數(shù)字視頻, FPGA對ITU656格式的碼流進行采集抽取并將4路視頻合成1路,合成后的視頻分成兩路:一路由視頻DA芯片SAA7121進行D/A轉(zhuǎn)換,發(fā)送到LCD顯示器上進行視頻實時顯示;另一路進入ARM9模塊,由音視頻編解碼芯片VW2010進行視頻壓縮,將ITU656碼流壓縮成MPEG-4格式,建立文件系統(tǒng)進行視頻存儲。圖1為系統(tǒng)的硬件結(jié)構(gòu)圖。
考慮系統(tǒng)功耗、體積、成本和資源等因素,采用Xilinx公司Spartan 3E系列中的XC3S1200E芯片。TVP5154芯片[2]支持4通道 NTSC/PAL/SECAM制式的模擬視頻轉(zhuǎn)換成4通道的8位ITU-RBT.656格式的數(shù)字視頻。本文介紹FPGA抽取4路ITU656格式視頻數(shù)據(jù),利用乒乓緩存將其有效數(shù)據(jù)合成1路[3],并重新組成ITU656碼流進行發(fā)送。
2 功能實現(xiàn)
2.1 ITU656碼流的抽取
ITU656標準的數(shù)字視頻1 s有25幀(50場)圖像,每幀圖像分為偶場和奇場。每幀圖像有625行,864列。行數(shù)據(jù)分為有效行(576行)和消隱行(49行)兩種。有效行分為偶場有效行(288行)和奇場有效行(288行)。圖2是一幀圖像數(shù)據(jù),圖中表明了偶場有效行、奇場有效行和消隱行。
系統(tǒng)中使用4路攝像頭,合成1路時每路視頻只保留原來視頻數(shù)據(jù)的1/4。依據(jù)ITU656標準的特點,每幀數(shù)據(jù)舍棄一場。
TVP5154的輸出[4]有兩種輸出方式,一種是將基準信號(EAV和SAV)作為嵌入式控制字嵌入到視頻碼流中,并有1路時鐘信號CLK輸出,頻率為27 MHz;另一種由芯片的獨立引腳輸出,有3路同步信號FID/GLCO、HSYNC、VSYNC/PALI,分別配置為場、水平、豎直同步信號,并有1路時鐘信號CLK輸出,頻率為27 MHz。
系統(tǒng)中采用的是從數(shù)據(jù)端口接收內(nèi)含嵌入式基準信號(即EAV和SAV)的ITU656標準視頻數(shù)據(jù)。EAV與SAV的詳細定義如表1所示。
通過檢測基準信號,可以區(qū)別當前行屬于奇場(Odd)還是偶場(Even),是消隱行(Blank)還是有效行(Active)。依據(jù)ITU656標準,消隱行數(shù)據(jù)除了基準信號,其余均用0X8010進行填充即可。
圖3是有效行數(shù)據(jù)構(gòu)成。每行有1 728 B,其中720個像素點占用了1 440 B,為有效數(shù)據(jù)(Valid data)。另有280 B為行消隱數(shù)據(jù)(blanking,用0X8010進行填充),剩下8 B是基準信號,分為有效數(shù)據(jù)結(jié)束的基準信號(EAV)4 B和有效數(shù)據(jù)開始的基準信號(SAV)4 B。所要抽取的就是ITU656碼流的有效行的有效數(shù)據(jù)。
ITU656標準中像素采用YUV422格式表示。每個像素點都采集亮度信息,但是色差信息則隔一個像素點采集一種。這樣兩個相鄰像素點共有兩個亮度信息、兩個色差信息,按照每個信息8 bit計算,則兩個像素點共4 B,平均每個像素點2 B。ITU656格式中有效行中有效數(shù)據(jù)排列順序如圖4所示。
因為相鄰的兩個像素點共用一組色差信息,所以每個場有效行的有效數(shù)據(jù)區(qū)域采用每隔兩個像素點抽取2個像素點的策略。通過每幀只留一場和每個有效行只取一半像素,每路視頻實際得到的是其1/4的數(shù)據(jù),將4路視頻按一定規(guī)則存儲到SRAM中就得到了一幀完整YUV422格式的圖像。
2.2 4路視頻合成
ITU656標準的一幀圖像分為625×864,其中有效像素為576×720,每個像素點為2 B,每行有720個像素點,即1 440 B。不經(jīng)過壓縮的每幅圖像為810 KB。
系統(tǒng)中選取兩塊的容量為2 M×8 B的SRAM芯片CY7C1069AV33,它有21根地址線,其中行地址線10根,列地址線11根。一列可以存儲2 048 B。
以ITU656標準中一幀圖像的頂場(即F同步信號為0)為偶場。4路視頻中1、2兩路只采集偶場數(shù)據(jù),3、4兩路只采集奇場數(shù)據(jù),F(xiàn)PGA通過檢測ITU656碼流的基準信號來判斷當前處于哪一場。ITU656標準所用的時鐘為27 MHz,1 s有25幀(50場)圖像,每場所用時間為20 ms,每個場有效行的有效數(shù)據(jù)區(qū)域采用每隔兩個像素點抽取2個像素點,1個像素點用2 B數(shù)據(jù)表示,這樣采樣間隔為4/27 MHz=148 ns。每路每隔148 ns進行一次抽取,得到的4 B存儲到SRAM中, SRAM芯片讀寫周期為12 ns,寫入所用時間為12 ns×4=48 ns,時間上條件滿足。1、2路數(shù)據(jù)要分開抽取寫入,前一個148 ns抽取第1路視頻數(shù)據(jù)并寫入到SRAM,后一個148 ns第2路視頻數(shù)據(jù)被抽取并寫入SRAM中,這樣做是為了合理利用SRAM的地址和數(shù)據(jù)總線,防止寫入沖突。奇場有效行基準信號被檢測到之后,進行3、4路數(shù)據(jù)的抽取存儲,依次循環(huán)。采用如圖5所示的規(guī)則。
在1、2路偶場有效數(shù)據(jù)抽取完和3、4路奇場有效數(shù)據(jù)抽取完成后都存在一段時間的空白期??梢栽谶@段時間對SRAM中存入的數(shù)據(jù)進行處理。系統(tǒng)在這段時間為視頻數(shù)據(jù)添加時間水印,從ROM中取出子模取代要寫入位置的視頻數(shù)據(jù)。
依據(jù)TVP5154芯片手冊,輸出的4路ITU656碼流使用的是同一個時鐘,4路數(shù)據(jù)同步輸出。1、2路偶場和3、4路奇場視頻數(shù)據(jù)完全寫入第1塊SRAM之后,F(xiàn)PGA切換到第2塊SRAM繼續(xù)抽取視頻數(shù)據(jù)并寫入,第1塊SRAM中的數(shù)據(jù)則準備重組發(fā)送。
2.3 有效數(shù)據(jù)的重組發(fā)送
TVP5154發(fā)送的ITU656格式碼流的時鐘頻率是27 MHz,合成后的有效數(shù)據(jù)需要按照ITU656格式發(fā)送出去,每40 ms完成一幀圖像的發(fā)送[5]。在第1塊SRAM數(shù)據(jù)寫入完畢、第2塊SRAM開始寫入數(shù)據(jù)之前的這段時間,第1塊SRAM中的數(shù)據(jù)需要被讀取并發(fā)送出去。
合成后視頻數(shù)據(jù)的發(fā)送可以采用兩種方式,與TVP5154類似,一種以帶基準信號的嵌入式控制字形式,另一種以帶場、水平、豎直同步信號的方式發(fā)出。系統(tǒng)中的視頻DA芯片SAA7121、音視頻編解碼芯片VW2010都接收合成后的ITU656格式碼流,其中VW2010只支持帶基準信號的ITU656碼流。所以系統(tǒng)中采用帶基準信號的ITU656碼流發(fā)送合成后的視頻數(shù)據(jù)。
系統(tǒng)中發(fā)送模塊以27 MHz的頻率讀取SRAM中的數(shù)據(jù)。讀取時要隔行讀取,先讀出偶場有效數(shù)據(jù),再讀奇場有效數(shù)據(jù)。依據(jù)ITU656標準,讀取SRAM之前先發(fā)22行偶場消隱行, 再從SRAM中讀取288行偶場有效數(shù)據(jù)加上基準信號和消隱數(shù)據(jù)發(fā)送出去,然后再發(fā)2行偶場消隱行;接著發(fā)出23行奇場消隱行,再從SRAM中讀出288行奇場有效數(shù)據(jù)加上基準信號和消隱數(shù)據(jù)發(fā)送出去,然后再發(fā)2行奇場消隱行。至此完成一幀圖像的發(fā)送。重復此過程讀取第二塊SRAM中的數(shù)據(jù)并發(fā)送出去,依次循環(huán)。
偶場消隱行、奇場消隱行、偶場有效行基準信號和消隱數(shù)據(jù)以及奇場有效行基準信號和消隱數(shù)據(jù)提前存儲在ROM中。
本文介紹了一個使用FPGA和ARM設計的4路視頻采集存儲系統(tǒng)。該系統(tǒng)可以接收4路模擬攝像頭的數(shù)據(jù),合成1路后在LCD顯示器上顯示,并可以存儲合成后的視頻,可應用于家庭和公共環(huán)境的監(jiān)控。系統(tǒng)的體積小,功耗低,可便攜地使用。系統(tǒng)外圍諸多外設可用于系統(tǒng)測試和功能拓展。
參考文獻
[1] ITU. Recommendation BT.656-5[EB/OL].(2007-12)[2014-02].http://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.656-5-200712-I!!PDF-E.pdf.
[2] 吳厚航.深入淺出玩轉(zhuǎn)FPGA(第1版)[M].北京:北京航空航天大學出版社,2010.
[3] 蔡青青,龔立群,黃益新.基于FPGA的視頻監(jiān)控系統(tǒng)[J].微型機與應用, 2012,31(4):37-39.
[4] 韓峰,袁安民,趙穎輝.基于FPGA+ARM的多路視頻采集系統(tǒng)設計[J].火力與指揮控制,2010,35(6):86-93.
[5] 孫紅亮,唐艷發(fā),梁春鋒,等. 基于FPGA+ARM的高速計算機屏幕信息記錄系統(tǒng)[J].電子技術應用,2011,37(6):35-40.