《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的高清視頻采集與顯示系統設計
基于FPGA的高清視頻采集與顯示系統設計
來源:電子技術應用2011年第6期
左事君1,2,劉新朝2,何巧珍2,傅興華1
1.貴州大學 理學院電子科學系,貴州 貴陽550025; 2.深圳市艾立克電子有限公司,廣州 深圳518034
摘要: 介紹了一種基于FPGA的視頻采集與顯示系統的設計。系統以FPGA為核心,配合高分辨率CCD圖像傳感器、ADC模數轉換、視頻編碼器等,實現了高清視頻實時采集與顯示。詳細闡述了色彩插值與色彩空間轉換算法和BURST傳輸的FPGA硬件實現。測試表明,該系統運行良好,能夠滿足高清視頻實時監控要求。
中圖分類號: TN911.73
文獻標識碼: A
文章編號: 0258-7998(2011)06-0056-03
Design of high definition video acquisition and display system based on FPGA
Zuo Shijun1,2,Liu Xinchao2,He Qiaozhen2,Fu Xinghua1
1.The Electronic Science Department of Science College, Guizhou University, Guiyang 550025,China; 2.Shenzhen SAE Electronics Co., Ltd, Shenzhen 518034,China
Abstract: A design of high definition video acquisition and display system based on FPGA is presented. The system uses FPGA as the main processor cooperated with the high definition CCD image sensor, ADC analog-digital convertor, video coder etc. The real-time high definition video acquisition and display system is realized. The FPGA implementation of the Bayer interpolation, color space conversion and BURST transmission are detailedly delivered. The test shows that the system works well, can satisfy the real-time video surveillance requirement.
Key words : FPGA;Bayer interpolation;color space conversion;BURST transmission;NIOS processor


 近年來,高清網絡攝像機席卷視頻監控市場,傳統的模擬攝像機也在尋找新的出路提升圖像質量,采用非壓縮方案的高清模擬攝像機成為首選。一般來說,非壓縮方案的硬件平臺有DSP或ASIC或FPGA。它們各有優缺點,FPGA是現場可編程門陣列,兼顧了實時性與靈活性,而且還可以內嵌CPU,因此適合用來做圖像處理。FPGA的最大缺點是功耗太大,但本文設計的不是便攜式消費電子,功耗問題可以不考慮。
    本文在數據傳輸方式上進行了創新,一般的視頻采集與顯示方案均需要使用2個DMA通道和2片SDRAM做緩存,本文采用自行編寫的BURST模塊傳輸,僅需要一片SDRAM,節省硬件開銷的同時降低了PCB板的復雜度。
1 系統總體設計
    系統結構如圖1所示。FPGA是整個系統的核心,本文采用的FPGA是Cyclone系列的EP3C16,它內部集成了15 408個邏輯單元,56個18×18乘法器,4個鎖相環,CCD是SONY的ICX274,其有效分辨率是1 600×1 200,像素時鐘是36 MHz,并且逐行掃描。SDRAM是Micron的MT48LC2M32B2,容量是2 M×32 bit,完全滿足本設計的需要。

    首先ADC驅動CCD,CCD輸出模擬視頻,經過ADC轉換成數字圖像數據,然后通過FPGA內部的BURST傳輸寫到SDRAM,在SDRAM內部開辟三段數據空間,如圖2所示。其中code區域存放NIOS軟件代碼,bufferA和bufferB作為圖像數據緩存,當圖像數據寫入bufferA時,可以讀bufferB用于顯示,當一幀數據采集完后,切換BURST傳輸地址,寫入bufferB,此時讀bufferA用于顯示,這樣數據可以不間斷地采集和顯示,這就是所謂乒乓操作。FPGA輸出的視頻數據經過編碼器編碼后形成串行碼流,即SDI數據,然后經過同軸電纜線傳輸到具有SDI接口的顯示器顯示。其中,FLASH用來保存NIOS軟件和FPGA硬件配置信息。

 

 

    在FPGA內部實現的模塊如圖3所示。其中VIDEO IP是根據AVALON總線規范編寫的用戶自定義模塊,其余的模塊均是ALTERA提供的標準模塊,只需要在SoPC Builder中調用即可,因此本系統的設計主要是VIDEO IP的設計。

2 硬件模塊設計
    硬件模塊也就是VIDEO IP模塊,圖4所示為VIDEO IP頂層模塊,主要由色彩插值、色彩空間轉換、FIFO三部分構成。基于成本與工程復雜度的考慮,本系統為單CCD系統,在CCD表面覆蓋一層色彩濾波陣列(CFA),該濾波陣列采用Bayer格式,如圖5所示。從圖中看出,每個像素點只有一個顏色通道,為了實現彩色顯示,每個像素點必須要有RGB 3個通道,要通過色彩插值才能獲得其余兩個通道。本文處理的視頻數據都是YCbCr格式,因此還需要經過色彩空間轉換將RGB格式轉換成YCbCr格式。由于NIOS處理器的位寬是32 bit,而YCbCr(4:2:2)是16 bit,所以YCbCr必須經過FIFO,當FIFO半滿時,通過BURST傳輸寫數據到SDRAM。值得注意的是:寫入FIFO之前,YCbCr的格式是4:4:4,為了方便顯示,必須轉換成4:2:2,本設計采取了最簡單的處理方式,就是Cb和Cr間隔采樣。實驗表明,這種處理不影響顯示效果。

2.1 色彩插值算法
    考慮到本文設計的系統主要用于視頻監控,因此采用最簡單的插值算法,即雙線性正交法。該算法的原理是在每個像素的領域取8個像素構成3×3陣列,該陣列中心的像素為待插值像素,其中一個色彩通道直接使用該像素的數據,另外兩個色彩通道通過計算領域的2個或4個像素的平均值獲得。從圖6中看出,不同位置的像素四周情況不同,根據待插值像素所處位置總結出4種情況,如圖6所示(設待插值像素坐標為(X,Y))。

    (a)R(X,Y)=[R(X,Y-1)+R(X,Y+1)]/2;
        G(X,Y)=G(X,Y);
        B(X,Y)=[B(X-1,Y)+B(X+1,Y)]/2;
    (b)R(X,Y)=[R(X-1,Y-1)+R(X+1,Y-1)+R(X-1,
                Y+1)+R(X+1,Y+1)]/4;
        G(X,Y)=[G(X-1,Y)+G(X,Y-1)+G(X+1,Y)+
                G(X,Y+1)]/4;
        B(X,Y)=B(X,Y);
    (c)R(X,Y)=R(X,Y);
        G(X,Y)= [G(X-1,Y)+G(X,Y-1)+G(X+1,Y)+
                G(X,Y+1)]/4;
        B(X,Y)= [B(X-1,Y-1)+B(X+1,Y-1)+
                B(X-1,Y+1)+B(X+1,Y+1)]/4;
    (d)R(X,Y)=[R(X-1,Y)+R(X+1,Y)]/2;
        G(X,Y)=G(X,Y);
        B(X,Y)= [B(X,Y-1)+B(X,Y+1)]/2
    由于要形成3×3陣列,因此FPGA硬件實現時,如圖7所示為色彩插值模塊,采用3個雙口RAM分別保存3行數據,其中A、B、C、D、E、F表示寄存器,CCD的數據是在行場同步控制下從左到右、從上到下輸出,在行場同步下先把第一行數據寫到RAM1,寫完第一行再切換到第二行,寫完第二行再寫第三行,第三行寫完第3個數據即可讀出RAM和各寄存器的數據做色彩插值,當第三行寫完以后,第四行數據再寫到RAM1,以此類推,一直循環直到一幀數據處理結束。值得注意的是:3×3陣列各行的數據是循環切換的,當RAM1保存的是3×3陣列的第一行數據時,3×3陣列第一行數據從左到右依次為B、A、RAM1,第二行數據從左到右依次D、C、RAM2,第三行數據從左到右依次為F、E、RAM3;當RAM2保存第一行數據時,第一行是D、C、RAM2,以后各行循環切換,不再贅述。

    3×3陣列的數據進入多路選擇器,根據當前的位置以及所需的顏色通道選出4個像素進行相加求和運算。4個像素的獲得方法是:當是1個像素時,復制3次;得到4個像素,當是2個像素求平均時,每個像素各復制1次;當是4個像素求平均時,不用復制。
    本文采用的CCD為SONY的ICX274,其有效分辨率為1 600×1 200,而用于顯示的分辨率為1 280×720(720P),因此需要截取1 600×1 200為1 282×722進行插值,增加兩行兩列是為了做邊界處理。
2.2 色彩空間轉換
    本文采用的轉換關系如下:
    Y=0.257×R+0.504×G+0.098×B+16
    Cb=-0.148×R-0.291×G+0.439×B+128
    Cr=0.439×R-0.368×G-0.071×B+128
    在FPGA實現時,以上轉換關系要調用乘加單元,圖8所示為乘加單元。其中為了保持數據的穩定,增加處理速度,增加了三級流水線,由于系數為小數,因此先左移8位,取整數后分別與R、G、B相乘,再右移8位輸出,最后與整數相加輸出YCbCr格式數據。

2.3 突發傳輸模塊
    經過上述兩步處理以后的視頻數據即可用于顯示,本文采用的突發傳輸方案如圖9所示。視頻數據首先經過FIFO緩沖,然后經過突發傳輸寫到SDRAM,數據從SDRAM讀出也是采用突發傳輸,讀出的數據再經過另外的FIFO緩沖以后即可用于顯示。突發(BURST)傳輸一次進行多個數據單元的傳輸,而不僅僅是把每個數據單元作為一次單獨的傳輸。這樣便提高了從端口的數據吞吐量,在主端口一次處理多個數據單元時,可以達到極高的效率。要使用突發傳輸就必須嚴格按照突發傳輸的規范設計AVALON總線接口。限于篇幅,本文不再詳述AVALON總線接口。

3 測試結果
    本系統使用了48%的邏輯單元和40%的存儲器,還有剩余的資源可以給系統增加更多的功能。該系統運行良好。
    本文設計的基于FPGA的高清視頻處理系統,能在FPGA硬件設備中高速、高質量地對CCD傳感器采集的Bayer圖像進行色彩插值和色彩空間轉換,經過SDI編碼后能夠實時顯示。在本設計的基礎上可以增加更多的功能以改變圖像質量,例如3A算法(自動曝光,自動白平衡,自動聚焦)。

參考文獻
[1] 周榮政.數碼相機處理器設計及系統集成研究[D]:(博士學位論文).上海:復旦大學,2004.
[2] 孟楠.基于FPGA的彩色CCD圖像信號處理技術的研究[D]:(碩士學位論文).西安:中國科學院西安光學精密機械研究所,2009.
[3] 梁海軍,趙建.基于NIOSII的高分辨率圖像采集系統設計[J].中國測試技術,2008,35(5).
[4] ITU-R BT.1120-7建議書.高清晰度電視演播室信號數字接口.國際電聯無線電通信全會,2007.
[5] 王剛,張瀲.基于FPGA的SOPC嵌入式系統設計與典型實例[M].北京:電子工業出版社,2009.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产亚洲精品成人婷婷久久小说 | 女大学生的沙龙室电影 | 欧美成人一区二区三区不卡视频 | 成人精品视频一区二区三区尤物 | 成人亚洲性情网站www在线观看 | 中文字幕久久精品 | 欧美操日韩| 天天爽天天射 | 亚洲精品性夜夜夜 | 无限资源免费观看高清在线播放 | 能看毛片的网址 | 第七色电影院 | 欧美日韩久久中文字幕 | 青楼十二妓 | 国产综合精品在线 | 久久这里是精品 | 日本久久综合视频 | 国产福利一区在线 | 第四奇米影视 | 丁香五月缴情综合网 | 久久久久久久久久久久福利 | 色婷婷久久免费网站 | 国产在线一区精品对白麻豆 | 国产成人短视频在线观看免费 | 国产精品一区二区四区 | 奇米在线播放 | 免费观看毛片 | 色婷婷5月 | 99精品视频在线观看 | 久久国产精品视频一区 | 国产乱理 | 日本一区二区三区高清福利视频 | 婷婷六月丁| 国产精品视频免费的 | 国产精品视频国产永久视频 | 亚洲伊人成综合成人网 | 四虎影视884a精品国产古代 | 免费看成人毛片 | 午夜男人天堂 | 国产视频日韩 | 久青草视频在线播放 |