<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的實(shí)時(shí)視頻信號處理平臺的設計,包括電路圖及源代碼

基于FPGA的實(shí)時(shí)視頻信號處理平臺的設計,包括電路圖及源代碼

作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201706/348676.htm

摘要:

介紹了一種實(shí)時(shí)視頻信號處理平臺的設計,該系統接收低幀率數字YCbCr視頻信號,利用一片DDR2 SDRAM存儲器作為幀緩存,對接收的視頻信號進(jìn)行格式轉換、、圖像放大、色空間轉換,使輸入的視頻信號可以在VGA顯示器上實(shí)時(shí)顯示;并研究了光學(xué)鏡頭中變倍電機和聚焦電機的控制原理,實(shí)現了步進(jìn)電機初始位置檢測、圖像變倍時(shí)變倍電機與聚焦電機的配合驅動(dòng),為了適應不同物距變倍跟蹤,實(shí)現了灰度差分算法,實(shí)時(shí)計算當前幀圖像的聚焦評價(jià)函數值,采用爬山搜索策略實(shí)現對聚焦電機的控制,使當前圖像的聚焦函數值最大,實(shí)現圖像的。整個(gè)設計采用VHDL語(yǔ)言實(shí)現,在Xilinx XUPV5-LX110T FPGA開(kāi)發(fā)板上驗證。利用該平臺還可實(shí)現圖像的壓縮編碼、解碼、本地存儲及以太網(wǎng)傳輸等功能。

關(guān)鍵詞:;DDR2 SDRAM;;;FPGA;

1. 引言

隨著(zhù)半導體技術(shù)的發(fā)展,圖像傳感器的分辨率有了很大提高,但由于處理數據量巨大,圖像傳感器輸出高分辨率圖像時(shí)幀率一般較低,其輸出圖像不能直接在VGA顯示器上顯示。為了使高分辨率圖像傳感器采集的圖像在VGA顯示器上實(shí)時(shí)顯示,需要對其輸出的圖像進(jìn)行、色空間轉換等后端處理。目前,市場(chǎng)上常用的芯片有PixelWorks公司的PW1226、Tvia公司的TrueView5725、Averlogic公司的AL250、威斯達公司的WSC2000等。采用上述芯片可實(shí)現視頻圖像的幀率提升、圖像增強等功能,但由于其功能固定,不能適用于一些特殊應用場(chǎng)合,如圖像存儲、自動(dòng)聚焦等。

指內置光學(xué)鏡頭,具有變倍、自動(dòng)聚焦功能的攝像機,其結構小巧、使用方便、監控范圍廣,已廣泛應用在教學(xué)視頻展臺、視頻監控等領(lǐng)域。變焦控制可實(shí)現圖像的變倍、自動(dòng)聚焦,是一體化攝像機中的關(guān)鍵技術(shù)之一。步進(jìn)電機可將電脈沖信號轉換成角位移,每接收一個(gè)脈沖信號就可驅動(dòng)步進(jìn)電機轉動(dòng)一個(gè)固定角度,實(shí)現物體的準確定位,通過(guò)控制脈沖的頻率可控制電機轉動(dòng)的速度,步進(jìn)電機已廣泛應用于高精度控制系統中。一體化攝像機光學(xué)鏡頭中包含變倍步進(jìn)電機與聚焦步進(jìn)電機,變倍電機轉動(dòng)時(shí),為使圖像聚焦清晰,聚焦電機也應隨之轉動(dòng),具體轉動(dòng)步數與物距有關(guān),具體參數可由鏡頭生產(chǎn)廠(chǎng)家提供的變焦跟蹤曲線(xiàn)獲得。為了適應不同物距的清晰成像,變倍跟蹤結束后,還應進(jìn)行自動(dòng)聚焦,以顯示清晰的圖像。

圖像聚焦程度與其高頻分量有關(guān),圖像聚焦時(shí),其包含的高頻分量最大,圖像最清晰,通常采用聚焦評價(jià)函數來(lái)描述圖像的清晰程度。常用的聚焦評價(jià)函數主要有:高頻分量法、平滑法、閾值積分法、灰度差分法、拉普拉斯像能函數等。為了提高聚焦速度,本項目采用灰度差分法實(shí)時(shí)計算每場(chǎng)圖像的聚焦函數值,判斷當前圖像的清晰與否,采用爬山搜索策略,實(shí)現圖像的快速自動(dòng)聚焦??焖僮詣?dòng)聚焦的實(shí)現與變倍跟蹤曲線(xiàn)的精度、自動(dòng)聚焦算法的優(yōu)劣、搜索策略、電機驅動(dòng)速度等因素有關(guān)。

由于FPGA 器件的可并行處理能力及其可重復在系統編程的靈活性,其應用越來(lái)越廣泛。同時(shí)隨著(zhù)微處理器、專(zhuān)用邏輯器件、以及DSP算法以IP Core的形式嵌入到FPGA中,FPGA可實(shí)現的功能越來(lái)越強,FPGA在現代電子系統設計中正發(fā)揮著(zhù)越來(lái)越重要的作用。本項目設計的實(shí)時(shí)視頻信號處理平臺利用XUPV5-LX110T FPGA開(kāi)發(fā)板,并自制了視頻圖像采集板,采用22倍一體化光學(xué)鏡頭,利用FPGA開(kāi)發(fā)板上的一片DDR2存儲器作為幀緩存,已實(shí)現的圖像的幀率提升、圖像放大,并實(shí)現灰度差分自動(dòng)聚焦算法,實(shí)時(shí)計算當前圖像的高頻分量,利用爬山搜索策略控制聚焦步進(jìn)電機的轉動(dòng),實(shí)現圖像的自動(dòng)聚焦,在該開(kāi)發(fā)平臺上還可實(shí)現視頻圖像的壓縮編碼、解壓縮、本地存儲、網(wǎng)絡(luò )傳輸等功能。

2.設計性能指標

該平臺可將CMOS彩色圖像傳感器輸出的分辨率為736*576、幀率為12Hz的8位YCbCr視頻信號放大到分辨率為1024*768、幀率為60Hz的24位RGB信號,經(jīng)過(guò)Xilinx XUP Virtex-5LX110T開(kāi)發(fā)板上的DVI轉換器(CHRONTEL CH7301),可通過(guò)DVI接口在顯示器上直接顯示,或通過(guò)DVI-VGA轉接口在VGA接口的顯示器上顯示。同時(shí),實(shí)現了圖像的變倍跟蹤、自動(dòng)聚焦功能,具體性能指標如下:

(1)輸入視頻圖像分辨率736*576、幀率12Hz、8位YCbCr視頻信號;

(2)輸出圖像分辨率1024*768、幀率60Hz,以DVI或VGA接口輸出;

(3)具有黑白/彩色轉換、圖像凍結、OSD等功能;

(4)16倍光學(xué)變倍;

(5)變倍放大后具有自動(dòng)聚焦功能,自動(dòng)聚焦執行時(shí)間在2秒以?xún)龋?/p>

(6)支持輸入圖像的壓縮編碼、解碼、本地硬盤(pán)存儲及以太網(wǎng)傳輸。

3. 系統方案

系統結構如圖1所示。

圖像傳感器輸出分辨率為736*576、幀率為12Hz的8位YCbCr視頻信號,并輸入到FPGA,FPGA利用外部一片DDR2存儲器內的兩個(gè)Bank空間作為幀緩存,采用乒乓存儲機制將輸入的視頻幀率由12Hz提升到60Hz,將視頻信號由YCbCr空間轉換到RGB色空間,分辨率由736*576放大到1024*768,并產(chǎn)生1024*768@60Hz的行場(chǎng)時(shí)序掃描信號,FPGA輸出的數字視頻信號經(jīng)D/A轉換后,輸出到VGA接口,從而圖像傳感器采集的圖像可在VGA顯示器上實(shí)時(shí)顯示。

FPGA輸出變倍電機和聚焦電機驅動(dòng)信號,并經(jīng)H橋驅動(dòng)電路放大后輸出到光學(xué)鏡頭,同時(shí),光學(xué)鏡頭將變倍電機和聚焦電機的位置檢測信號反饋輸出到FPGA,用以檢測當前電機位置。

系統上電后,FPGA判斷光學(xué)鏡頭返回的變倍電機位置檢測信號和聚焦電機返回的檢測信號,若檢測信號為低電平則驅動(dòng)電機向靠近圖像傳感器方向轉動(dòng),直至檢測信號為高電平,在電平跳變處停止,同理,若檢測信號為高電平,則驅動(dòng)電機向遠離傳感器方向轉動(dòng),直至檢測信號為低電平,在電平跳變處停止,以上則完成對電機的初始化。初始化結束后,則驅動(dòng)電機轉動(dòng)到一固定放大倍數位置。電機變倍時(shí),變倍電機轉動(dòng)一定步數,同時(shí)驅動(dòng)聚焦電機轉動(dòng)對應步數,具體步數可根據變倍跟蹤曲線(xiàn)獲得,變倍結束后,FPGA從輸入的視頻信號中提取亮度Y信號,采用灰度差分聚焦算法,實(shí)時(shí)計算當前幀圖像的高頻分量,圖像完全聚焦時(shí),圖像聚焦評價(jià)函數值最大。利用爬山搜索策略,控制聚焦電機的轉動(dòng),使當前圖像的聚焦函數值最大,即當前圖像最清晰,從而實(shí)現了圖像的自動(dòng)聚焦,從而可保證每次變倍結束后得到清晰的圖像。

該視頻信號處理平臺可對輸入的視頻圖像進(jìn)行壓縮編碼(H.264、AVS等算法),通過(guò)硬盤(pán)控制器模塊實(shí)現壓縮圖像的本地存儲,并通過(guò)內部以太網(wǎng)控制器模塊將壓縮后的數據輸出到FPGA開(kāi)發(fā)板上的以太網(wǎng)物理層芯片,進(jìn)而通過(guò)RJ45網(wǎng)絡(luò )接口進(jìn)行以太網(wǎng)傳輸,還可通過(guò)以太網(wǎng)接收壓縮的視頻數據流,進(jìn)行解碼,并通過(guò)后端處理在本地播放。

4. 系統設計

本項目采用現代EDA設計常用的“自頂向下”的設計方法,進(jìn)行功能劃分并按模塊化設計原則,FPGA內部功能模塊如圖2所示。

數字視頻信號輸入到FPGA后,首先進(jìn)入前端處理模塊,前端處理模塊主要實(shí)現了對外部光學(xué)電機的控制,該模塊對輸入的視頻信號進(jìn)行格式轉換并提取亮度Y信號,根據亮度Y信號實(shí)現了灰度差分自動(dòng)聚焦算法,并實(shí)現了步進(jìn)電機初始位置檢測、圖像變倍時(shí)變倍電機與聚焦電機的配合驅動(dòng),為了適應不同物距變倍跟蹤,利用灰度差分自動(dòng)聚焦算法獲得的當前幀圖像的聚焦評價(jià)函數值,采用爬山搜索策略實(shí)現對聚焦電機的控制,使當前圖像的聚焦函數值最大,實(shí)現圖像的自動(dòng)聚焦。

圖像處理模塊可實(shí)現圖像的壓縮編碼(可實(shí)現H.264、AVS等壓縮算法)、本地硬盤(pán)存儲,并通過(guò)以太網(wǎng)控制器實(shí)現壓縮圖像的網(wǎng)絡(luò )傳輸,該模塊還可通過(guò)以太網(wǎng)接收壓縮視頻流,進(jìn)行解碼,并通過(guò)后端處理模塊進(jìn)行圖像顯示。

后端處理模塊接收前端處理模塊輸入的視頻信號,或接收圖像處理模塊解碼的視頻信號,主要實(shí)現了圖像的幀率提升、圖像放大、色空間轉換,使輸入的低幀率YCbCr視頻信號在DVI接口顯示器或VGA顯示器上實(shí)時(shí)顯示。下面詳細介紹各模塊的功能及實(shí)現方法。

  1. 前端處理模塊

該模塊接收輸入的YCbCr格式8位數字視頻信號,進(jìn)行格式轉換,轉換成16位YCbCr(4:2:2)格式,根據亮度Y信號,采用灰度差分算法計算當前幀圖像的高頻分量。

該模塊輸出變倍電機和聚焦電機的驅動(dòng)信號,經(jīng)H橋驅動(dòng)放大電路后輸出到光學(xué)鏡頭,同時(shí),光學(xué)鏡頭將變倍電機和聚焦電機的位置檢測信號反饋輸出到該模塊,用以檢測當前電機位置。

系統工作時(shí),首先判斷光學(xué)鏡頭返回的變倍電機位置檢測信號和聚焦電機返回的檢測信號,若檢測信號為低電平則驅動(dòng)電機向靠近圖像傳感器方向轉動(dòng),直至檢測信號為高電平,在電平跳變處停止,同理,若檢測信號為高電平,則驅動(dòng)電機向遠離傳感器方向轉動(dòng),直至檢測信號為低電平,在電平跳變處停止,以上則完成對電機的初始化。初始化結束后,則驅動(dòng)電機轉動(dòng)到一固定放大倍數位置。電機變倍時(shí),變倍電機轉動(dòng)一定步數,同時(shí)驅動(dòng)聚焦電機轉動(dòng)對應步數,具體步數可根據變倍跟蹤曲線(xiàn)獲得,變倍結束后,該模塊計算當前場(chǎng)圖像的高頻分量,判斷當前圖像的清晰度,并采用爬山搜索策略驅動(dòng)聚焦電機,以實(shí)現圖像的自動(dòng)聚焦,從而可保證每次變倍結束后得到清晰的圖像。

前端處理模塊可分為以下功能子模塊:格式轉換、電機初始化、變倍跟蹤、搜索、自動(dòng)聚焦算法、系統控制、電機驅動(dòng)等,如圖3所示,下面將詳細介紹各模塊的實(shí)現方法。

  1. 格式轉換

該模塊功能是將輸入的8位視頻信號轉換成16位YCbCr(4:2:2)格式視頻信號。實(shí)現方法如下:在輸入視頻信號的行同步信號有效時(shí),在第一個(gè)像素時(shí)鐘同步下,將第一個(gè)8位數據寫(xiě)入8位寄存器1,第二個(gè)像素時(shí)鐘同步下,將第二個(gè)8位數據寫(xiě)入8位寄存器3,同時(shí)將寄存器1的數據輸出到8位寄存器2,第三個(gè)像素時(shí)鐘同步下,將第三個(gè)8位輸入數據寫(xiě)入寄存器1,同時(shí),將寄存器2、寄存器3的數據寫(xiě)入到16位寄存器4,一直按此規則進(jìn)行寫(xiě)入,則寄存器4輸出16位YCbCr(4:2:2)格式數據,輸出速率為原像素時(shí)鐘的2分頻。其內部寄存器格式如圖4所示。

(2) 步進(jìn)電機初始化

該模塊功能是實(shí)現電機初始位置的判斷,并驅動(dòng)電機轉動(dòng)到某一固定位置。

由于每次系統掉電時(shí),步進(jìn)電機的停止位置不固定,所以每次系統工作時(shí),首先要進(jìn)行步進(jìn)電機位置的判斷并驅動(dòng)步進(jìn)電機轉到某一固定位置,如一倍放大位置。步進(jìn)電機中用電機位置檢測器來(lái)判斷電機的位置,位置檢測器電路如圖5所示。其工作原理為,當電機驅動(dòng)的檢測器運動(dòng)到發(fā)光二極管與光敏三極管之間時(shí),阻擋二極管發(fā)出的光線(xiàn),則三極管處于截止狀態(tài),輸出信號為高電平;當檢測器離開(kāi)中間位置時(shí),發(fā)光二極管使三極管導通,則輸出信號為低電平。由于二極管和三極管位置固定,所以輸出信號電平跳變位置是固定的。

圖5 電機位置檢測電路

系統上電后,根據電機位置檢測器返回的狀態(tài)信號判斷當前電機的運動(dòng)位置,若返回低電平則驅動(dòng)電機向圖像傳感器方向移動(dòng),直至檢測信號為高電平,在檢測信號跳變時(shí),停止電機轉動(dòng);若檢測信號為高電平,則驅動(dòng)電機向遠離傳感器方向移動(dòng),直至檢測信號為低電平,在檢測信號跳變時(shí),停止電機轉動(dòng),由于檢測信號跳變位置是固定的,所以系統上電后可驅動(dòng)電機轉動(dòng)到預設置的固定位置。

(3) 變倍跟蹤

(4) 自動(dòng)聚焦算法

通常采用聚焦評價(jià)函數來(lái)描述圖像的清晰程度,常用的聚焦評價(jià)函數有:高頻分量法、平滑法、閾值積分法、灰度差分法、拉普拉斯像能函數等?;叶炔罘址ɡ脠D像的相鄰像素灰度值差的絕對值之和作為聚焦評價(jià)函數,灰度差分算法實(shí)現簡(jiǎn)單,由于沒(méi)有復雜的運算,易于在FPGA上實(shí)現,算法公式描述為:

該算法實(shí)現時(shí),緩存四行數據,實(shí)現內部功能模塊如圖6所示。

圖6 自動(dòng)聚焦算法實(shí)現內部模塊

讀寫(xiě)控制模塊控制四個(gè)行緩存中數據的讀寫(xiě),每場(chǎng)圖像第一行數據寫(xiě)入到行緩存1,第二行數據寫(xiě)入到行緩存2,第三行數據寫(xiě)入到行緩存3,第四行數據寫(xiě)入到行緩存4,同時(shí),將行緩存1、2、3中數據讀出到算法實(shí)現模塊,第五行數據寫(xiě)入到行緩存1,同時(shí),將行緩存2、3、4中數據讀出到算法實(shí)現模塊,按此讀寫(xiě)規律進(jìn)行直至一場(chǎng)圖像結束。算法實(shí)現模塊接收從行緩存中讀出的數據,并將每個(gè)行緩存讀出的數據賦值給內部相連的三個(gè)寄存器,則第二行中間寄存器對應算法中的像素,根據聚焦評價(jià)函數值公式即可求出當前場(chǎng)的聚焦函數值,并將當前場(chǎng)圖像的聚焦函數值與前一場(chǎng)圖像的聚焦函數值相比較,如當前場(chǎng)圖像的聚焦函數值大于前一場(chǎng)圖像聚焦函數值,則輸出比較信號為高電平,表示當前場(chǎng)比前一場(chǎng)圖像清晰,反之輸出低電平,表示當前場(chǎng)圖像比前一場(chǎng)圖像模糊。

(5) 搜索

該模塊根據自動(dòng)聚焦算法模塊輸出的相鄰兩場(chǎng)圖像聚焦函數值的比較結果,來(lái)控制聚焦電機的轉動(dòng)方向,當輸出圖像的聚焦函數值最大時(shí)停止轉動(dòng),則實(shí)現圖像的自動(dòng)聚焦。

該模塊具體實(shí)現過(guò)程為,變倍結束后,在圖像場(chǎng)同步信號的消隱期間,使聚焦電機朝預定義的固定方向轉動(dòng)一步,在下一場(chǎng)圖像場(chǎng)同步的下降沿采集自動(dòng)聚焦算法模塊輸出的聚焦函數值比較結果信號,若該信號為高電平,則表示當前圖像比前一場(chǎng)圖像清晰,則電機轉動(dòng)方向正確,繼續向該方向轉動(dòng)一步,同理,在下一場(chǎng)圖像的場(chǎng)同步下降沿采集聚焦函數值比較結果信號,若為高電平,則繼續向該方向轉動(dòng),若為低電平,則向相反方向轉動(dòng)一步后停止電機轉動(dòng),則自動(dòng)聚焦結束;若第一次采集的聚焦函數值比較結果信號為低電平,則表明首次設定的轉動(dòng)方向錯誤,則向相反方向轉動(dòng)兩步后,在下一場(chǎng)圖像的場(chǎng)同步下降沿判斷聚焦函數值比較結果信號,若為高電平,則繼續沿該方向轉動(dòng),若為低電平,則向相反方向轉動(dòng)一步后停止電機轉動(dòng),則自動(dòng)聚焦結束。

(6) 系統控制

該模塊主要對初始化模塊、變倍跟蹤模塊、搜索模塊輸出的變倍電機和聚焦電機的驅動(dòng)信號(包括轉動(dòng)方向、步數)進(jìn)行選擇輸出,系統上電后,首先是初始化模塊產(chǎn)生的驅動(dòng)信號有效,初始化結束后,其它模塊才可正常工作,圖像變倍時(shí),變倍跟蹤模塊輸出的電機驅動(dòng)信號有效,變倍結束后,搜索模塊產(chǎn)生的電機驅動(dòng)信號有效。

(7)電機驅動(dòng)模塊

本項目選用的光學(xué)鏡頭具有變倍和聚焦兩個(gè)步進(jìn)電機,光學(xué)變焦22倍,步距角18°,每步位移量0.02mm,轉速600~800pps,采用2-2相驅動(dòng)勵磁方式,驅動(dòng)脈沖變化如表1所示。

表1 步進(jìn)電機驅動(dòng)脈沖

1

2

3

4

A+

H

H

L

L

A-

L

L

H

H

B+

L

H

H

L

B-

H

L

L

H

若驅動(dòng)脈沖按1à2à3à4方向循環(huán)發(fā)出,則步進(jìn)電機帶動(dòng)的鏡片朝靠近圖像傳感器方向移動(dòng),反之朝遠離圖像傳感器方向移動(dòng),從而可通過(guò)產(chǎn)生不同的驅動(dòng)脈沖控制電機的轉動(dòng)步數及轉動(dòng)方向。

該模塊根據系統控制模塊輸出的電機驅動(dòng)信號(轉向,步長(cháng))來(lái)產(chǎn)生對應的A+、A-、B+、B-電機驅動(dòng)脈沖。該模塊內部為模值為4的計數器,輸入轉向控制信號為高電平時(shí),該計數器加法計數,轉向為低電平時(shí),計數器減法計數,根據輸入的步長(cháng)控制輸出驅動(dòng)脈沖的持續時(shí)間長(cháng)度,計數器值對應不同的驅動(dòng)脈沖信號,則可產(chǎn)生不同方向、不同步長(cháng)的電機驅動(dòng)脈沖。

  1. 圖像處理模塊

圖像處理模塊可實(shí)現圖像的壓縮編碼、解碼、本地存儲及以太網(wǎng)傳輸。其內部功能模塊如圖7所示。

  1. 后端處理模塊

后端處理模塊主要實(shí)現了圖像的幀率提升、圖像放大。其內部結構如圖8所示。

該模塊接收16位的YCbCr(4:2:2)格式視頻信號,并輸入到輸入緩沖,輸入緩沖寫(xiě)滿(mǎn)一行、即736*16數據后,觸發(fā)主控制器讀取,主控制器將從輸入緩沖中連續讀取一行數據并輸出到DDR控制器模塊,由于DDR存儲器為雙沿觸發(fā),所以主控制器模塊將接收的16位數據轉換成32位寬。DDR控制器分別在260MHz時(shí)鐘上升沿、下降沿將數據寫(xiě)入到DDR存儲器的Bank0中,并從Bank1中每次連續讀取一行圖像數據,即736個(gè)數據,輸出到輸出緩沖中。當一幀圖像都寫(xiě)入到Bank0中,則下一幀圖像數據寫(xiě)入到Bank1中,并從Bank0中讀取數據,一直按此規則進(jìn)行讀寫(xiě)切換。同時(shí),時(shí)序發(fā)生器模塊產(chǎn)生1024*768@60Hz的行場(chǎng)掃描信號,在行場(chǎng)信號都有效時(shí),在輸出像素時(shí)鐘同步下,從輸出緩沖中讀取視頻數據,由于寫(xiě)入輸入緩沖中的數據速率較低,在寫(xiě)滿(mǎn)一幀圖像的時(shí)間內可從DDR中讀出5幀,則輸出圖像的幀率可由12Hz提升至60Hz。色空間轉換模塊將16位的YCbCr(4:2:2)格式視頻信號轉換成24位的RGB信號,并通過(guò)圖像放大模塊將分辨率由736*576放大到1024*768。

  1. 輸入緩沖模塊

該模塊內部包含一個(gè)異步先進(jìn)先出(FIFO),寬度為16位,深度為2048,接收格式轉換模塊輸出的16位圖像數據,寫(xiě)入速率為原視頻輸入像素時(shí)鐘的2分頻,當寫(xiě)滿(mǎn)一行圖像數據(736*16)時(shí),觸發(fā)主控制器產(chǎn)生讀使能信號,在520MHz主時(shí)鐘同步下,連續讀取736個(gè)數據。

  1. 主控制器模塊

該模塊為視頻處理的主要控制模塊,接收輸入緩沖模塊發(fā)出的讀觸發(fā)信號,產(chǎn)生輸入緩沖的讀使能信號,從輸入緩沖中讀取數據,并轉換成32數據寬度,轉換方法與格式轉換模塊原理相同,轉換后的32位寬數據寫(xiě)入到DDR控制器模塊。該模塊同時(shí)接收輸出緩沖模塊發(fā)出的寫(xiě)觸發(fā)信號,并向DDR控制器模塊發(fā)出讀請求信號,接收DDR控制器模塊輸出的32位寬的數據信息,并將32位寬數據轉換成16位寬,寫(xiě)入到輸出緩沖,每次連續寫(xiě)入數據個(gè)數為736。

當從輸入緩沖模塊接收完一幀數據,并寫(xiě)入到DDR存儲器Bank0空間后,第二幀數據將寫(xiě)入到Bank1空間,同時(shí)從Bank0中讀取數據,寫(xiě)滿(mǎn)一幀數據后,進(jìn)行讀寫(xiě)切換,由于寫(xiě)滿(mǎn)一幀的時(shí)間為輸入圖像的場(chǎng)周期,即83ms,讀取一幀的時(shí)間為輸出視頻的場(chǎng)頻,即16.67ms,則在寫(xiě)滿(mǎn)一幀數據的時(shí)間內,可連續循環(huán)讀出5幀數據,提高了幀率。

  1. DDR控制器模塊

該模塊工作時(shí),首先對DDR2存儲器進(jìn)行初始化,設置迸發(fā)長(cháng)度為4。由于選用的DDR2存儲器的行寬度為13位,所以設置刷新周期為64ms/213,即7.8125us。

該模塊主要功能是接收主控制器模塊發(fā)出的寫(xiě)命令、寫(xiě)地址、32位寬的寫(xiě)入數據,將數據寫(xiě)入到對應存儲單元,由于DDR存儲器為雙沿觸發(fā),在內部260MHz時(shí)鐘的上升沿和下降沿分別將低16位和高16位數據寫(xiě)入到DDR2存儲器,同時(shí)接收主控制器模塊產(chǎn)生的讀命令、讀地址,并讀取對應存儲單元的數據,輸出到主控制器模塊。

  1. 時(shí)序發(fā)生器模塊

該模塊主要功能是根據VESA標準,產(chǎn)生1024*768@60Hz的行場(chǎng)掃描信號,并在行場(chǎng)信號都有效時(shí),產(chǎn)生輸出緩沖的讀使能信號。

  1. 輸出緩沖模塊

該模塊內部包含一個(gè)異步先進(jìn)先出(FIFO),寫(xiě)時(shí)鐘為520MHz的系統主時(shí)鐘,寫(xiě)入數據來(lái)自主控制器模塊從DDR控制器中讀出的視頻數據,每次連續寫(xiě)入一行數據,即736個(gè)數據,讀時(shí)鐘為時(shí)序發(fā)生器模塊生成的輸出像素時(shí)鐘,讀使能為時(shí)序發(fā)生器模塊輸出的讀使能信號。

系統工作時(shí),主控制器模塊首先向輸出緩沖中寫(xiě)入一行數據,在讀使能信號有效時(shí)讀取FIFO中的數據,當快讀空時(shí),觸發(fā)主控制器模塊從DDR存儲器中再讀取一行數據并寫(xiě)入到輸出緩沖中,由于輸出緩沖的讀使能信號是輸出時(shí)序信號的行場(chǎng)同步信號都有效時(shí)生成的,行同步信號有消隱時(shí)間,所以輸出緩沖模塊不會(huì )出現讀空現象。

  1. 色空間轉換模塊

該模塊將輸出緩沖模塊輸出的16位YCbCr(4:2:2)格式視頻信號轉換成RGB空間(8:8:8)格式。首先將16位YCbCr(4:2:2)格式信號采用臨近插值算法生成24位YCbCr(4:4:4)格式視頻信號。根據CCIR-601標準,數字YCbCr色空間到RGB色空間轉換的公式為:

其中,Y的取值范圍是(16,240),Cb、Cr的取值范圍是(16,235)。

該轉換公式實(shí)現時(shí),由于含有小數乘法,可將小數乘以211,取整進(jìn)行乘法運算,將運算結果右移11位,可近似求得小數的乘法運算。

該模塊生成的RGB視頻信號經(jīng)外部D/A轉換后,可直接輸出到VGA接口,則圖像傳感器采集的圖像可在VGA顯示器上實(shí)時(shí)顯示。

  1. 圖像放大模塊

該模塊實(shí)現圖像的分辨率由736*576放大到1024*768。

本項目選用一種特定比例的圖像放大算法。特定比例的圖像放大算法的出發(fā)點(diǎn)是利用給定的放大比例尋找一個(gè)簡(jiǎn)單、易于實(shí)現且具有較高精度的核函數。其基本原理是,選擇兩個(gè)互質(zhì)的整數q和p,使其比值q/p與給定的放大比例盡可能接近。于是放大算法簡(jiǎn)化為:利用原始圖像的p個(gè)離散值求得連續核函數模型參數,并用采樣率q對連續核函數模型重新采樣,得到放大后的q個(gè)像素值。在水平和垂直方向上重復循環(huán)若干次可得到整幅圖像的縮放結果。

將水平和垂直放大比例分別記為SC_XSC_Y,則有:

SC_X = 1024/736 ≈ 1.3913

SC_Y = 768/576 ≈ 1.3333

因4/3 ≈1.3333與SC_Y近似,IZAS算法的列處理過(guò)程選擇將3行原始圖像濾波插值擴展為4行,即選取垂直放大比例。SC_Y0 = 4/3

7/5 = 1.4與SC_X接近,IZAS算法的行處理過(guò)程選擇將5列原始圖像濾波插值擴展為7列,即選取水平放大比例,SC_X0 = 7/5

垂直方向放大將3個(gè)原始像素放大生成4個(gè)新像素,其核函數公式:

f0 = g0

f1 = 1/4 g0+3/4 g1

f2 = 2/4 g1+2/4 g2

f3 = 3/4 g2+1/4 g3

其中g表示原始輸入像素數據,f表示放大處理后輸出的像素數據。

水平方向放大將5個(gè)原始像素放大生成7個(gè)新像素,其核函數公式:

f0 = g0

f1 = 2/7 g0+5/7 g1

f2 = 4/7 g1+3/7 g2

f3 = 6/7 g2+1/7 g3

f4 = 1/7 g2+6/7 g3

f5 = 3/7 g3+4/7 g4

f6 = 6/7 g4+1/7 g5

插值模塊的實(shí)現需要一定的行緩存,來(lái)緩存三行數據,然后可根據插值算法來(lái)實(shí)現。設計中利用FPGA內部的塊RAM存儲器(Block RAM)來(lái)作為行緩存。

該模塊內部功能模塊如圖9所示,數據傳輸控制模塊控制對輸入緩沖數據的更新和讀取,并且在系數定標器模塊選擇相應的插值系數送給插值模塊進(jìn)行插值計算。本項目采用的IZAS放大算法計算每一個(gè)目標圖像像素值需要原始圖像相鄰3行像素,因此輸入緩沖模塊采用3個(gè)雙口SRAM來(lái)實(shí)現??蓪⒃紙D像的相鄰3行像素寫(xiě)入雙口SRAM中,計算出利用這三行數據能插值出的所有目標像素,然后更新較早寫(xiě)入雙口SRAM對應的一行像素數據再進(jìn)行插值計算。系數定標器模塊含有從分辨率736*576放大到分辨率1024*768所對應的插值系數。

圖9 圖像放大模塊內部結構圖

數據存取控制處理由數據傳輸控制模塊配合系數定標器模塊和輸入緩沖來(lái)實(shí)現??刂颇K選擇當前行數據存入哪一個(gè)雙口SRAM并產(chǎn)生讀寫(xiě)地址。例如水平方向要進(jìn)行2倍放大時(shí)要讀取2個(gè)原始像素,計算出4個(gè)插值像素,而在進(jìn)行7/5倍放大時(shí)要讀取5個(gè)原始像素,計算出7個(gè)插值像素。因此在進(jìn)行2倍放大時(shí)連續讀取緩沖里面的2個(gè)原始像素后要停頓2個(gè)像素周期再讀取新的原始像素,而進(jìn)行7/5倍放大時(shí)連續讀取緩沖里面的5個(gè)原始像素后要停頓2個(gè)像素周期再讀取新的原始像素。

當一幀中的第一行圖像數據到來(lái)時(shí),數據傳輸控制模塊先將此行數據寫(xiě)入SRAM1中,不讀取另外兩個(gè)SRAM,第二行數據到來(lái)時(shí)控制模塊將此行數據寫(xiě)入SRAM2中,第三行數據到來(lái)時(shí)控制模塊將此行數據寫(xiě)入SRAM3中,當第四行數據到來(lái)時(shí)將此行數據寫(xiě)入SRAM1中,當第五行數據到來(lái)時(shí),將此行數據寫(xiě)入SRAM2中如此反復完成數據的緩沖。另外因為圖像在垂直方向也要進(jìn)行4/3倍的放大,即把三行數據計算出四行,所以每緩沖三行后要停止一行緩沖。

圖10 插值算法模塊內部寄存器

插值模塊內部對R、G、B信號各有1組9個(gè)8位的寄存器,如圖10所示。這9個(gè)寄存器分成a,b,c三組,分別接收來(lái)自3個(gè)雙口SRAM(SRAMi,i = 1,2,3)的輸出數據。在輸入時(shí)鐘的同步下,寄存器a1在接收到SRAM1輸出的數據之前,先完成寄存器ai 給ai+1的數據賦值操作,另外2組寄存器依次類(lèi)推。

當輸入到SRAM1和SARM2的數據分別滿(mǎn)1行時(shí),寄存器組a和b開(kāi)始接收數據并進(jìn)行插值濾波,同時(shí)輸出放大后的數據。SRAM3同時(shí)緩沖下一行數據,緩沖結束后新的一行數據開(kāi)始往SRAM1中緩沖,如此交替循環(huán)。根據上述公式濾波R、G、B三個(gè)通道之一的插值計算的結果,以寄存器組a為例說(shuō)明如下:

fR0 =a1

fR1 =5/7 a2+2/7 a1

fR2 =4/7 a2+3/7 a1

fR3 =6/7 a2+1/7 a1

fR4 =1/7 a3+6/7 a2

fR5 =3/7 a2+4/7 a1

fR6 =2/7 a2+5/7 a1

為提高計算精確度,可將系數擴大210倍后與像素數據進(jìn)行乘法運算,然后將乘積進(jìn)行右移10位操作。

圖像行數由576放大到768時(shí),放大比例系數可選為4/3,則根據上述公式,用X[n]表示原始行相素數據,用Y[n]表示列放大后行的數據,則放大行的計算公式描述為:

Y[0]=X[0];

Y[1]=0.25*X[0]+0.75*X[1];

Y[2]=0.75*X[1]+0.25*X[2];

Y[3]=X[2];

在FPGA內部實(shí)現上述算法,將X[n]右移2位得到0.25*X[n],將X[n]右移1位與X[n]右移2位相加得到0.75*X[n]。這樣通過(guò)移位相加求和代替了乘法器,節省了系統資源并避免了浮點(diǎn)計算帶來(lái)的舍入誤差。

5.系統完成的關(guān)鍵設計

1. 實(shí)現了對DDR2存儲器的控制,利用一片DDR2中的兩個(gè)BANK空間作為幀緩存實(shí)現圖像的幀率提升,將幀率由12Hz提升到60Hz。

2. 采用給定比例的圖像放大算法將圖像分辨率由736*576放大到1024*768,實(shí)現了圖像的實(shí)時(shí)放大。

3. 實(shí)現了灰度差分聚焦算法,實(shí)時(shí)計算當前幀圖像的聚焦評價(jià)函數值,采用爬山搜索策略實(shí)現對聚焦電機的控制,實(shí)現圖像的自動(dòng)聚焦。

4. 實(shí)現了對光學(xué)電機中變倍和聚焦電機的驅動(dòng)控制,完成了圖像的變倍跟蹤功能。

5. 建立了視頻信號從輸入,校正,處理,格式變換,輸出,顯示的完整平臺,在此平臺上可以進(jìn)一步開(kāi)發(fā)各種圖像處理應用(如編解碼、分析、識別、跟蹤等算法)系統。

6.評測與結論

本項目設計的實(shí)時(shí)視頻信號處理平臺實(shí)現了輸入圖像的格式轉換、幀率提升、色空間轉換等功能,并從輸入圖像的亮度信息中計算當前圖像的高頻分量,采用爬山搜索策略,實(shí)現了圖像的自動(dòng)聚焦,由于對整幀圖像計算高頻分量,該算法得到的聚焦函數值較好的反映圖像的離焦極性,可適應不同的環(huán)境,由于FPGA的并行處理能力,本項目設計的變焦控制系統可同時(shí)控制變倍電機和聚焦電機,極大提高了變倍跟蹤速度。

利用平臺中的圖像處理部分可實(shí)現圖像的壓縮編碼、解碼、本地硬盤(pán)存儲、網(wǎng)絡(luò )傳輸等功能,該平臺可應用于高分辨率一體化網(wǎng)絡(luò )攝像機、視頻編解碼芯片的研發(fā)。該平臺中前端處理和后端處理模塊已在Xilinx XUPV5-LX110T FPGA開(kāi)發(fā)板上驗證,并獲得了滿(mǎn)意的效果。

附錄1 圖像采集板原理圖

1. 圖像傳感器原理圖

附圖1

2. H橋驅動(dòng)電路

附圖2

3. 圖像采集板與XUPV5-LX110T FPGA開(kāi)發(fā)板接口

附圖3

附錄2 項目中使用的光學(xué)電機

附圖4

附錄3 圖像采集板外觀(guān)圖

附圖5

附錄4 圖像采集板XUPV5-LX110T FPGA開(kāi)發(fā)板連接外觀(guān)圖

附圖6



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>