《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NiosII的視頻采集與DVI成像研究及實現
基于NiosII的視頻采集與DVI成像研究及實現
蔡欣榮,許泰峰,奚冠巍
中國船舶重工集團公司江蘇自動化研究所,江蘇 連云港222006
摘要: 采用FPGA作為視頻采集控制和圖像處理芯片,配置NiosII軟核,在FPGA片內完成圖像處理和圖像顯示控制,簡化了硬件電路和軟件程序的設計。在FPGA片內編寫視頻采集時序,并配置NiosII控制軟核,模擬視頻數據經視頻解碼芯片輸出ITU-RBT.656格式數據送入FPGA,通過時序控制和NiosII軟核把視頻解碼數據依序存儲在SSRAM中,并進行裁剪、交織、顏色處理。
中圖分類號: TP274+2
文獻標識碼: A
Research and realization of video capture based on NiosII and DVI imaging
CAI Xin Rong,XU Tai Feng,XI Guan Wei
JiangSu Automation Research Institute of CSIC, Lianyungang 222006,China
Abstract: This paper takes FPGA as video capture control and image processing chip, configure NiosII processor, processing image in FPGA, that simplify hardware circuit design and software design. Designing control program and burning it into FPGA, configuring NiosII processor, analog video signal captured by video decode chip and output the ITU-RBT.656 data sequence, the data sequence is captured by FPGA, through time scheduling and NiosII processor control , put the decoded data sequence into SSRAM, and take image cut out , interlace and color process and so on.
Key words : video capture;FPGA;NiosII processor;ITU-RBT.656;digital visual interface


    視頻采集是進行圖像及圖形處理的第一步,目前視頻采集系統一般由FPGA和DSP組成,FPGA作為視頻采集控制芯片,DSP作為圖像處理與成像控制芯片[1]。隨著FPGA技術的發展,片內的邏輯單元越來越多,片內的DSP資源也越來越豐富,因此可直接在FPGA片內進行圖像處理。目前Altera公司的FPGA支持NiosII[2]軟核,通過Avalon設備總線掛接自定義模塊,編寫用戶控制程序。本設計通過Avalon總線讀取RGB像素值進行像素處理,通過I2C總線初始化視頻解碼芯片和DVI視頻編碼芯片。NiosII是一種可配置片內外設的軟核CPU,采用RISC精簡指令系統,流水線處理技術,用戶可自定義Avalon總線外設構成SoC系統,支持32 bit存儲寬度,支持DDR2、SSRAM存儲器。結合項目,采用TVP5146[3]視頻解碼芯片,FPGA采集解碼數據并進行隔行轉逐行、像素裁剪處理、像素YCrCb轉RGB、RGB轉灰度等處理后,采用NiosII軟核配置Avalon總線DVI接口從設備外設,把儲存在SSRAM中的視頻數據依次送入DVI編碼芯片SiI178[4],帶有DVI接口的監視器接收解碼并顯示采集的視頻數據。
1 視頻采集與DVI成像系統的組成
    視頻采集與DVI成像硬件構成如圖1所示。該系統由視頻解碼芯片、FPGA控制芯片、DVI接收編碼芯片、SSRAM和Flash組成。硬件系統分為模擬視頻信號解碼、視頻數據采集、圖像處理和DVI編碼顯示3大部分。

    模擬視頻信號解碼由TVP5146芯片組成,該部分主要完成PAL-D制式模擬視頻信號解碼,輸出符合ITU-RBT656[5]且內嵌同步字符4:2:2格式數據供FPGA采集。TVP5146支持NTSC、PAL、SCEAM、CVBS、S-video制式視頻輸入,具有RGB轉換為YCbCr功能。

    視頻數據采集部分由FPGA控制芯片、SSRAM、Flash、電源芯片、輔助外圍電路組成。該部分以TVP5146輸出像素時鐘作為FPGA采集時鐘采集解碼后的數據,在系統時鐘的控制下,交織乒乓存儲于SSRAM芯片,并在幀信號控制下交換存儲體。FPGA采用Altera公司CycloneII系列EP2C35F672[6]芯片,該芯片具有33 216個邏輯單元,內部RAM高達484 KB,支持NiosII嵌入式處理器,核心電壓1.2 V,IO電壓3.3 V,具有4個PLL輸入,12個PLL輸出。Altera的FPGA采用SRAM工藝,掉電就會丟失配置數據,所以外部需要掛接存儲配置數據的部件。Altera公司FPGA一般都支持串行被動配置、串行主動配置、JTAG配置,通過跳線選擇配置方式,JTAG配置在調試時很方便。串行主動配置一般需要Altera公司的專用配置芯片,在系統上電后主動配置芯片。FPGA配置完成后,NiosII從Flash中讀取程序,完成相應的功能。TVP5146采用I2C口配置其工作方式,配置的數據亦存儲在Flash芯片中。SSRAM采用CY7C1380D,32 bit數據位寬,2 MB存儲空間,3.3 V供電,提供高性能3-1-1-1訪問時鐘周期速率,最高頻率達250 MHz。
    圖像處理在FPGA片內實現,進行YCbCr轉RGB、RGB轉灰度、線性插值等處理,DVI編碼顯示在DVI接收芯片Si178片內完成,在系統時鐘的控制下,依照DVI顯示時序,控制行、場同步信號,依次把RGB像素送入編碼芯片,完成圖像數據的編碼和傳輸。Si178具有25~165 M點像素每秒,24 bit模式,I2C編程接口,支持熱插拔,兼容DVI1.0標準,3.3 V供電。
2 模擬視頻信號解碼
      視頻解碼格式有ITU-RBT.601標準格式和ITU-RBT.656標準格式。ITU-RBT.601標準需要行、場同步信號線,ITU-RBT.656標準無需同步信號線。ITU-RBT.656標準采用8 bit傳輸格式,亮度信號Y和色度信號Cb/Cr交替傳輸。本設計采用ITU-RBT.656標準。我國電視制式為PAL-D,一幀電視圖像有625行,每行可視像素為720個,因為有行消隱和場消隱,實際可視像素面為720×576,電視圖像傳輸采用奇偶場交替傳輸,所以通常奇偶場各傳輸288行。圖2是行同步4:2:2輸出時序圖。

    PAL-D制式一行可視像素有720個,因為采用ITU-RBT.656標準,每2個DATACLK時鐘才輸出一個像素,所以,一行可視像素需要1 440個DATACLK時鐘。一行像素輸出完畢后緊接4個行結束標志,然后進入行消隱階段,行消隱階段結束后,4個字符的開始標志表明一行的開始,從4個結束標志到4個開始標志,共有288個DATACLK時鐘。這288個DATACLK期間的數據不用于顯示,用于同步和消隱,所以對于PAL-D制式,采用ITU-RBT.656標準傳輸一行視頻需要1 728個DATACLK時鐘[7]。
    EAV和SAV分別表示一行有效視頻的結束和開始,EAV/SAV序列由FF-00-00-XX表示,其中XX是狀態字,表1為EAV/SAV序列字段位表。

    F場標志:F=0是偶場,F=1是奇場;V視頻有無效標志:V=0為有效視頻數據,V=1為無效視頻數據;H有效視頻結束起始標志:H=0是SAV,H=1是EAV。
    從624行~22行和311行~335行為無效視頻行,此時V=1;從23行~310行和336行~623行為有效視頻行,此時V=0。從1行~312行為偶場,此時F=0;從313行~625行為奇場,此時F=1。
    配置TVP5146使其正確初始化。設置正常工作模式,視頻選擇輸入口,色度和亮度AGC自動增益,視頻輸入為PAL-D制式625行,解碼輸出格式為10 bit 4:2:2(2倍像素時鐘速率)內嵌同步字符,實際10 bit輸出時最低2 bit可丟棄。設置亮度信號范圍為16~235,色度信號范圍為16~240。配置NiosII軟核,設置CPU類型為經濟型32 bit,CPU時鐘頻率為100 MHz,復位向量起始地址為Flash,異常向量起始地址為On-chip-ram,設置PIO線模擬I2C協議,用于配置TVP5146,配置Avalon-MM三態橋用于掛接Flash,配置On-chip-ram為32 KB[8],添加一個Avalon從設備。該從設備為用戶自定義接口,NiosII軟核可以通過該從設備口實時訪問轉換后的RGB像素,進行圖像處理。
3 視頻圖像數據采集
    視頻解碼芯片輸出內嵌同步字符8 bit視頻數據,參照解碼芯片輸出DATACLK時鐘,FPGA采集視頻解碼數據。FPGA采集之前先要進行圖像裁剪、交織處理。裁剪處理是為了產生640×480的像素面,交織處理即變隔行視頻數據為逐行視頻輸出,即兩場圖像交叉嵌入一個存儲體中,形成一幀。當一幀存儲完畢后,切換存儲體,而先前的存儲體內容參照系統時鐘,依次像素處理送DVI編碼芯片進行顯示。
3.1 視頻信號采集控制
    視頻輸出信號為內嵌同步字符8 bit Y:Cb:Cr=4:2:2輸出,本設計中視頻信號采集采用狀態機控制法。視頻信號采集控制狀態機表示如圖3所示。


    Idel:默認空閑狀態。如果視頻采集標志capture置位,則進入Wait State狀態;如果capture不置位,則停留在Idel狀態。
    Wait State:此時如果收到數據0xff,則進入State1,其他情況仍然循環停留。
    State1:如果此時收到數據0x00,則進入State2;收到其他數據則進入Error。
    State2:如果此時收到數據0x00,則進入New page狀態,否則狀態返回到Wait State。
    New page:此時視頻處于消隱狀態,如果收到的視頻數據vpo[6:5]=01,則正在消隱,轉入第一行數據接收狀態First Line,否則跳回Wait State狀態。
    First Line:如果收到vpo[6:4]=000,表明下一個數據即視頻圖像數據,否則返回到Wait State。
    Chroma blue:正確有效的數據,如果此時接收到vpo=0xff,則表明數據轉入End Line,如果收到vpo=0x00,則轉入Error狀態。
    Luma blue:亮度藍色數據,接收完轉入Chroma red狀態。
    Chroma red:色度紅色數據,接收完轉入Luma red狀態。
    Luma red:亮度紅色數據,接收完轉入Chroma blue狀態。
    End Line:如果vpo[6:4]=011,表示奇數場結束,偶數場將要開始,轉入New line狀態;如果vpo[6:4]=111,表示一幀數據結束,轉入Idle狀態;如果vpo[5:4]=01,表示一行結束,下一行將要開始,轉入New line狀態;否則進入Error狀態。
    New Line:如果接收到的vpo[5:4]=00,表示有效數據接收,轉入Chroma blue狀態;否則轉到End Line狀態。
    Error:錯誤狀態,ITU-RBT656規定Y=[16 235] CBCR=[16 240]范圍內,越此范圍就為錯誤狀態。如果capture=1,跳轉到Wait state狀態,否則停留在Error狀態。該系統具有自動錯誤恢復能力。
3.2 圖像剪裁處理
    PAL-D制式視頻在ITU-RBT.656標準下,輸出像素面為720×576大小,而本設計中要求輸出大小為640×480像素面,所以必須使得行720像素變為640個,采用每9個像素丟棄1個像素,因為Y/Cb/Cr是交替輸出的,即Cb-Y-Cr-Y傳輸,每個像素都有亮度數據Y,但是色度Cr和Cb是交替的。如果第1個像素是Cb和Y數據,則第8個像素即為Cr和Y數據,第9個像素為Cb和Y數據,現在丟棄第9個像素數據,先把第10個素的Cr數據和第11個像素的Cb交換,這樣就保持了Cb和Cr的交替。視頻中采取每6行可視像素丟棄1行,對于576行可視像素,實際丟棄96行,即變為實際可顯示480行。
3.3 圖像交織與存儲處理
    視頻信號采集控制處理后產生行、場、幀、視頻有效標志及每場視頻行數、每行像素點數。本設計利用這些信號組合作為存儲地址控制字寫入SSRAM,每2個DATACLK為1個像素數據,4個DATACLK為2個像素數據32 bit,FPGA控制每4個DATACLK寫入一次32 bit數據。
    每場視頻可視行為288行,占用2進制位9 bit,奇偶場標志1 bit,每行像素有640個,存入SSRAM時按照每2個像素寫入一次,故每行像素為360個寫入次,設計為9 bit,總共為19 bit,正好占用完19 bit地址線。
    奇偶場標志就是上述EAV/SAV狀態字中的F,電視視頻中,首先傳輸的是偶數場,此時A9=0;其次傳輸的是奇數場,此時A9=1。幀控制位frame定義為1 bit,當完成一幀的傳輸后就使frame<=frame+1,這樣幀控制位就是0-1-0-1-0-1序列,完成一幀傳輸就翻轉一次。幀控制位用來切換存儲體,當幀控制位切換在第一片SSRAM上時,偶數場先存入到SSRAM中,然后奇數場數據嵌入到SSRAM中。
4 圖像處理和DVI編碼顯示
    視頻采集的圖像已經交替存入SSRAM中,當一幀存儲完畢,該存儲體就可以進行處理上傳。圖像處理包括Y/Cb/Cr 4:2:2格式轉化為Y/Cb/Cr 4:4:4,Y/Cb/Cr轉化為RGB格式,可實時RGB像素處理,像素處理后按照行、場同步信號依次送入DVI芯片。
4.1 YCrCb轉RGB處理
    首先處理的是Y/Cb/Cr 4:2:2格式轉化為Y/Cb/Cr 4:4:4格式,就是對每個像素擴展其色度數據,使得每個像素為24 bit。其中8 bit為亮度數據,8 bit為Cr數據,8 bit為Cb數據。
    由YCrCb數據轉換為RGB數據可按照下式:
  R=1.164&times;(Y-16)+1.596&times;(Cr-128)
  G=1.164&times;(Y-16)-0.813&times;(Cr-128)-0.392&times;(Cb-128)(1)
  B=1.164&times;(Y-16)+2.017&times;(Cb-128)
    實際上FPGA片內不能進行小數運算,因此把需要運算的數左移9 bit,且運用FPGA片內的乘法器宏單元完成。則式(1)變為式(2):
    R=596&times;Y+817&times;Cr-114 131
    G=596&times;Y-416&times;Cr-200&times;Cb+69 370(2)
    B=596&times;Y+1 033&times;Cb-141 787
    這樣得到的RGB信號只需要右移9 bit就可以得到正確的8 bit數據位寬度的RGB信號,對RGB像素的處理受NiosII核控制,掛接在NiosII核上的Avalon從設備有3 bit控制信號,其值從0~7,分別對應灰度處理、像素水平線性放大插值處理、水平縮小處理、原三彩色輸出和無定義。
    若進行灰度處理,則按照下式計算:
    Y=0.299&times;R+0.587&times;G+0.114&times;B(3)
    在計算時也需要先左移9 bit,采用3路乘法MULT_
ADD宏單元計算,計算結果右移9 bit。如果進行水平像素放大,則采取線性插值法,其他圖像處理按照相應算法進行。
4.2 視頻數據輸出和DVI配置
    DVI輸出刷新頻率為75 Hz,輸出屏幕像素為640&times;480,查VGA時序表得到在640&times;480@75 Hz時,水平像素總共為840,垂直像素總共為500,行頻為37.5 kHz,點時鐘頻率為31.5 MHz,這個頻率由FPGA片內PLL倍頻得到。配置DVI芯片引腳,設置IDCK+為像素時鐘31.5 MHz,IDCK-接地,DE表示有效像素數據使能,其值在有效行和有效列內為高電平,否則為低電平。行、場同步信號由在FPGA片內編寫的DVI模塊產生時序控制。通過I2C口配置SiI178芯片,設置其為正常工作方式,VSYNC、HSYNC為正常輸入狀態,輸入總線為24 bit寬,IDCK+下降沿將數據打入DVI編碼芯片。
    系統采用FPGA為主控芯片,通過一片FPGA完成視頻解碼數據的采集和圖像處理,并在FPGA片內配置NiosII軟核,作為初始化TVP5146和SiI178使用,在圖像處理模塊中掛接Avalon從設備,YCbCr轉換為RGB后可以通過NiosII處理器編寫C算法處理或者通過NiosII的標志信號進行處理,處理結果直接送DVI編碼器。采用乒乓交織算法,保證了圖像不閃爍和無鋸齒現象。
參考文獻
[1] 錢建良.DSP+FPGA嵌入式多路視頻監控系統硬件平臺 [J].電子產品世界,2007(11).
[2] Altera.Nios II Hardware Development Tutorial[DB/OL]. www.altera.com,2004.
[3] TI.TVP5146 Datasheet[DB/OL].www.ti.com,2007.
[4] Silicon Image.SiI178 Datasheet[DB/OL].www.siliconimage.com,2004.
[5] The ITU Radiocommunication Assembly.Recommendation  ITU-R BT.656-4[DB/OL].www.itu.com,1998.
[6] Altera.EP2C35F672 Datasheet.www.altera.com,2004.
[7] 劉韜,樓興華.FPGA數字電子系統設計與開發實例導航[M].北京:人民郵電出版社,2005.
[8] 王建校,危建國.SOPC設計基礎與實踐[M].西安:西安電子科技大學出版社,2006.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美一级成人毛片影院 | 日韩一级片在线免费观看 | mm在线精品视频 | 国产好片无限资源 | 另类二区三四 | 一级成人黄色片 | 国产成人精品综合在线观看 | 国产在线手机视频 | 91情侣在线偷精品国产 | 福利网址在线 | 国产成人一区二区三中文 | 亚洲在线视频网站 | 欧美成人免费全网站大片 | 亚洲福利影视 | 成年日韩片av在线网站 | 一级特黄一欧美俄罗斯毛片 | 美女免费黄网站 | 亚洲免费三级 | 手机在线免费毛片 | 草草影院在线播放 | 久草在线免费播放 | 国产性大片黄在线观看在线放 | 精品高清国产a毛片 | 国产女人一区二区 | 亚洲wwww | 91成人影院| 久久青草国产手机看片福利盒子 | 亚洲www色| 国产片91人成在线观看 | 国产99视频精品免费观看7 | 国内自拍第五一页 | av在线天堂网 | 精品九九久久国内精品 | 精品久久中文网址 | 寡妇一级a毛片免费播放 | 国产成人免费影片在线观看 | 成人午夜爽爽爽免费视频 | 国产精品一区二区三区四区五区 | 亚洲精品手机在线 | 欧美a一| 高清欧美日本视频免费观看 |