文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.172946
中文引用格式: 高俊嶺,陳志飛,章佩佩. 基于FPGA的實時視頻圖像采集處理系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2018,44(2):10-12,19.
英文引用格式: Gao Junling,Chen Zhifei,Zhang Peipei. Design of real time video image acquisition and processing system based on FPGA[J]. Application of Electronic Technique,2018,44(2):10-12,19.
0 引言
隨著社會的不斷發(fā)展,視頻圖像采集處理技術(shù)在許多行業(yè)領(lǐng)域中扮演著非常重要的角色,如軍事、安全監(jiān)控、工業(yè)視覺等領(lǐng)域,而各行各業(yè)對于視頻圖像采集和處理技術(shù)的要求也越來越高。高速、實時性是主要發(fā)展趨勢之一。目前,視頻圖像采集與處理技術(shù)的發(fā)展主要分為兩類:一是基于PC在相關(guān)特定的PCIe采集板卡的基礎(chǔ)上,通過軟件對視頻圖像進行處理;二是利用相關(guān)的集成硬件如DSP、MCU、FPGA等對視頻圖像進行采集處理[1]。相對來講后者的處理效果不如前者,但實時性好、體積小、方便使用,更適合于工業(yè)的需求。
FPGA現(xiàn)場可編程邏輯門列,采用并行運算模式,且工作頻率較高,可對大量數(shù)據(jù)進行實時操作與處理,在通信領(lǐng)域、圖像處理等方面上優(yōu)勢明顯[2]。因此,本設(shè)計選用FPGA作為系統(tǒng)的控制和數(shù)據(jù)處理中心。
1 系統(tǒng)總體概述
基于FPGA的視頻采集處理系統(tǒng)可分為:視頻采集模塊、圖像存儲模塊、數(shù)據(jù)處理模塊和圖像顯示模塊。工作過程為:首先,F(xiàn)PGA通過IIC總線協(xié)議對攝像頭進行初始化配置,攝像頭對焦工作拍攝采集圖像,然后,采集的視頻數(shù)據(jù)通過FIFO緩存器不斷寫入到DDR2 SDRAM中存儲,再經(jīng)過FIFO緩存器讀出視頻數(shù)據(jù),接著,選擇性對讀出的視頻圖像數(shù)據(jù)進行處理,最后在VGA上顯示視頻圖像。系統(tǒng)的總體框圖如圖1所示。
2 中央控制單元
2.1 FPGA
從FPGA硬件開發(fā)的角度考慮,利用EDA開發(fā)軟件和硬件描述語言Verilog編程,對FPGA芯片進行開發(fā),得到其工程要求的硬件功能。對比傳統(tǒng)的硬件設(shè)計開發(fā),減少了器件的浪費和多次焊接的工作量,設(shè)計過程也更加靈活、方便、高效。
另外,F(xiàn)PGA要實現(xiàn)對每個模塊的控制和處理,除并行數(shù)據(jù)處理優(yōu)點外,自身必須擁有較多I/O口,豐富的邏輯單元等。鑒于此,選用了Alter公司研發(fā)的Cyclone IV系列的EP4CE617C8。此款FPGA擁有179個I/O接口,62 792個邏輯單元,392個乘法器,且功耗低。
2.2 視頻圖像采集模塊
CMOS OV7670圖像傳感器,其體積小,工作電壓小,640×380像素,可選用自帶的降噪、數(shù)模轉(zhuǎn)換、分頻等功能,是較好的視頻圖像采集選擇。FPGA通過IIC總線協(xié)議與CMOS攝像頭進行初始化配置。IIC總線寫入前,CMOS攝像頭的SCLK和SDAT引腳必須帶上拉電阻。IIC總線寫入時,首先寫入設(shè)備地址,CMOS的初始地址為0x42,其次寫入寄存器地址,最后寫入數(shù)據(jù)。其IIC總線數(shù)據(jù)寫入流程如圖2所示。
IIC總線與CMOS的數(shù)據(jù)通信后,配置CMOS攝像頭控制寄存器。時鐘配置使用外部時鐘即FPGA的工作時鐘頻率,目的是更好地控制CMOS攝像頭。PLL寄存器配置零分頻、使能內(nèi)部線性穩(wěn)壓器LDO,內(nèi)部電壓工作穩(wěn)定。配置的Verilog部分代碼分別依次為:
SET_OV7670+19 : LUT_DATA=16'h1180;
SET_OV7670:5 : LUT_DATA=16'h6b00;
其他相關(guān)控制寄存器中,配置了水平鏡像、關(guān)閉彩條、視頻格式RGB565等功能。保證其能在系統(tǒng)高速運行下采集到可靠度大、信息性強的視頻圖像數(shù)據(jù)。
2.3 系統(tǒng)存儲模塊
2.3.1 DDR2 SDRAM
DDR2 SDRAM作為系統(tǒng)存儲器,選用采用1 GB內(nèi)存的DDR2 800系列 SDRAM作為存儲器。DDR2工作時鐘頻率為200 MHz[2],具有讀寫速度快、集成度高、存儲容量大以及成本低等特點。其操作速率是普通SDRAM的4倍,能夠較好地達到系統(tǒng)實時性的要求。
DDR2不僅能在系統(tǒng)時鐘控制下工作,也可以獨立的進行操作,如自刷新、自預(yù)充電凈化等,其控制復雜[3]。因此,利用Quartus II自帶的IP核構(gòu)建DDR2 SDRAM控制器。同時也生成了Altera數(shù)字PHY。PHY是連接DDR2 內(nèi)核控制器和外部DDR2器件的橋梁。PHY擁有四層接口,分別為帶local_*類的用戶邏輯接口、帶mem_*類的外部DDR2芯片接口、帶ctl_*和ctl_mem_*的PHY與IP控制器相互連接的接口。其功能框圖如圖3所示。
IP內(nèi)核控制器的使用將DDR2復雜的控制操作轉(zhuǎn)變成用戶簡單的讀寫時序操作,因此,DDR2存儲模塊可設(shè)計分為時鐘、復位、初始化、控制、數(shù)據(jù)通道和仲裁等子模塊。其中數(shù)據(jù)通道子模塊建立了DDR2連接FIFO緩存器的通道。
2.3.2 FIFO
FIFO是一種先入先出的存儲器,沒有地址定義,使用簡單。FIFO只能順序讀寫數(shù)據(jù),確保了數(shù)據(jù)的安全性。由此,在多數(shù)情況下作為系統(tǒng)數(shù)據(jù)緩沖器使用[5]。
在Quartus II的內(nèi)核中,建立異步FIFO的控制器。異步FIFO,即讀寫操作時鐘信號不一致,有利于圖像數(shù)據(jù)的緩沖。wrusedw信號控制著數(shù)據(jù)的讀寫請求。當wrusedwd等于FIFO深度值4時(為方便說明,仿真的FIFO深度為4),表示FIFO已空,Write_Req信號有效,只能寫入數(shù)據(jù)。wrusedw為0,表示FIFO已滿,Read_Req信號有效,只能讀出數(shù)據(jù)。wrusedwd為其余值,則讀、寫數(shù)據(jù)請求都可執(zhí)行。如圖4所示。
3 視頻圖像處理模塊
本文通過Sobel邊緣檢測對圖像數(shù)據(jù)進行處理。邊緣檢測意義在于能夠獲取目標物體的邊緣信息,有利于目標識別和追蹤[6]。Sobel邊緣檢測算法具有計算量小、檢測精度高等優(yōu)點,也是最常用的圖像邊緣處理方法之一。
Sobel邊緣檢測算法過程:首先,確立Sobel算子模板,它包含了橫縱向兩組3×3運算算子矩陣模板。如下式:
其次,利用水平和垂直方向的矩陣算子與原始圖像像素點進行平面卷積分運算,算出X、Y兩個方向上的一階導數(shù)梯度值[7],如下式:
然后,把計算出的X、Y方向梯度值做平方求和后再開方,得到中心點的梯度值。如下式:
最后,中心點梯度值與設(shè)定的閾值互相比較,大于閾值的為邊緣點,輸出為黑色,小于閾值的為普通點,輸出為白色[8-9]。
Sobel邊緣檢測的實現(xiàn)包括緩沖模塊、計算卷積模塊和門級處理模塊。其中,緩沖模塊使用基于RAM的移位寄存器altshift_taps,卷積計算模塊使用6個可編程乘加器aitmult_add和2個并行加法器parallel_add計算出水平和垂直的梯度值,再通過浮點平方根altfr_sqrt得到中心點值。門級處理模塊即閾值的比較[10]。原理過程如圖5所示。
4 實驗
完成系統(tǒng)硬件設(shè)計后,保存工程文件。并繪制電路原理圖和PCB圖。最后,制作電路板。完成所有工作后,建立系統(tǒng),進行實驗。
實驗一:實時視頻圖像采集顯示實驗。首先,F(xiàn)PGA控制CMOS 7670采集圖像;然后,F(xiàn)PGA對采集圖像數(shù)據(jù)傳輸和存儲;最后,通過VGA顯示圖像。其畫面清晰、流暢。實驗結(jié)果如圖6所示。
實驗二:Sobel邊緣檢測算法處理視頻圖像顯示實驗。在實驗一的基礎(chǔ)上,增加了對圖像數(shù)據(jù)的Sobel邊緣檢測處理,再通過VGA進行顯示。圖像中物體輪廓提取明顯,且實時性較好。實驗結(jié)果如圖7所示。
5 結(jié)論
實時視頻圖像采集與處理技術(shù)廣泛用于監(jiān)控、工業(yè)視覺等領(lǐng)域。本系統(tǒng)以FPGA核心,充分利用其高速、大數(shù)據(jù)處理能力和硬件編程設(shè)計等特點,結(jié)合相關(guān)器件,實現(xiàn)了對視頻圖像的采集、處理和顯示。實驗結(jié)果畫面清晰、流暢,效果好。同時在此基礎(chǔ)上,增加了對物體的邊緣檢測,在物體追蹤和識別方面也具有一定的實用意義。
參考文獻
[1] 田杰,玉廣龍,喬中濤,等.基于FPGA高速視頻圖像實時采集與處理系統(tǒng)設(shè)計[J].電子器件,2016,39(3).
[2] 王誠,蔡海寧,吳繼華.Alter FPGA/CPLD設(shè)計[M].北京:人民郵電出版社,2011.
[3] 李原.DDR/DRR2接口的FIFO設(shè)計[D].西安:西安電子科技大學,2009.
[4] 吳厚航.例說FPGA:可直接用于工程項目的第一手經(jīng)驗[M].北京:機械工業(yè)出版社,2016.
[5] 梅傲寒.基于FPGA的無線圖像采集傳輸系統(tǒng)的設(shè)計與研究[D].合肥:安徽大學,2016.
[6] 丁繼生.基于FPGA的數(shù)字圖像處理算法研究及實現(xiàn)[D].合肥:合肥工業(yè)大學,2015.
[7] 羅琳.基于FPGA的快速圖像處理算法的研究與實現(xiàn)[D].重慶:重慶交通大學,2015.
[8] 馬苗,樊養(yǎng)余,謝松元,等.基于灰色系統(tǒng)理論的圖像邊緣檢測新算法[J].中國圖像圖形學報,2003,10(10):1136-1139.
[9] 仝海峰.基于FPGA的視頻圖像邊緣檢測優(yōu)化設(shè)計[D].淮南:安徽理工大學,2016.
[10] 張麗紅,凌朝東.基于FPGA的Sobel邊緣檢測應(yīng)用[J].電子技術(shù)應(yīng)用,2011,37(8).