色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

          作者: 時間:2017-06-04 來源:網(wǎng)絡 收藏

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

          摘要:

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

          關鍵詞:;DDR2 SDRAM;;;FPGA;

          1. 引言

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

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

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

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

          2.設計性能指標

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

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

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

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

          (4)16倍光學變倍;

          (5)變倍放大后具有自動聚焦功能,自動聚焦執(zhí)行時間在2秒以內;

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

          3. 系統(tǒng)方案

          系統(tǒng)結構如圖1所示。

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

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

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

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

          4. 系統(tǒng)設計

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

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

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

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

          1. 前端處理模塊

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

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

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

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

          1. 格式轉換

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

          (2) 步進電機初始化

          該模塊功能是實現(xiàn)電機初始位置的判斷,并驅動電機轉動到某一固定位置。

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

          圖5 電機位置檢測電路

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

          (3) 變倍跟蹤

          (4) 自動聚焦算法

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

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

          圖6 自動聚焦算法實現(xiàn)內部模塊

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

          (5) 搜索

          該模塊根據(jù)自動聚焦算法模塊輸出的相鄰兩場圖像聚焦函數(shù)值的比較結果,來控制聚焦電機的轉動方向,當輸出圖像的聚焦函數(shù)值最大時停止轉動,則實現(xiàn)圖像的自動聚焦。

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

          (6) 系統(tǒng)控制

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

          (7)電機驅動模塊

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

          表1 步進電機驅動脈沖

          1

          2

          3

          4

          A+

          H

          H

          L

          L

          A-

          L

          L

          H

          H

          B+

          L

          H

          H

          L

          B-

          H

          L

          L

          H

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

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

          1. 圖像處理模塊

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

          1. 后端處理模塊

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

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

          1. 輸入緩沖模塊

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

          1. 主控制器模塊

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

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

          1. DDR控制器模塊

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

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

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

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

          1. 輸出緩沖模塊

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

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

          1. 色空間轉換模塊

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

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

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

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

          1. 圖像放大模塊

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

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

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

          SC_X = 1024/736 ≈ 1.3913

          SC_Y = 768/576 ≈ 1.3333

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

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

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

          f0 = g0

          f1 = 1/4 g0+3/4 g1

          f2 = 2/4 g1+2/4 g2

          f3 = 3/4 g2+1/4 g3

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

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

          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

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

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

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

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

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

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

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

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

          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

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

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

          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內部實現(xiàn)上述算法,將X[n]右移2位得到0.25*X[n],將X[n]右移1位與X[n]右移2位相加得到0.75*X[n]。這樣通過移位相加求和代替了乘法器,節(jié)省了系統(tǒng)資源并避免了浮點計算帶來的舍入誤差。

          5.系統(tǒng)完成的關鍵設計

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

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

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

          4. 實現(xiàn)了對光學電機中變倍和聚焦電機的驅動控制,完成了圖像的變倍跟蹤功能。

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

          6.評測與結論

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

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

          附錄1 圖像采集板原理圖

          1. 圖像傳感器原理圖

          附圖1

          2. H橋驅動電路

          附圖2

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

          附圖3

          附錄2 項目中使用的光學電機

          附圖4

          附錄3 圖像采集板外觀圖

          附圖5

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

          附圖6



          評論


          相關推薦

          技術專區(qū)

          關閉