新聞中心

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

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

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

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

摘要:

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

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

1. 引言

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

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

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

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

2.設(shè)計(jì)性能指標(biāo)

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

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

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

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

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

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

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

3. 系統(tǒng)方案

系統(tǒng)結(jié)構(gòu)如圖1所示。

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

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

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

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

4. 系統(tǒng)設(shè)計(jì)

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

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

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

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

  1. 前端處理模塊

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

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

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

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

  1. 格式轉(zhuǎn)換

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

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

該模塊功能是實(shí)現(xiàn)電機(jī)初始位置的判斷,并驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)到某一固定位置。

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

圖5 電機(jī)位置檢測電路

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

(3) 變倍跟蹤

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

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

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

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

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

(5) 搜索

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

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

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

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

(7)電機(jī)驅(qū)動(dòng)模塊

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

表1 步進(jìn)電機(jī)驅(qū)動(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

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

該模塊根據(jù)系統(tǒng)控制模塊輸出的電機(jī)驅(qū)動(dòng)信號(轉(zhuǎn)向,步長)來產(chǎn)生對應(yīng)的A+、A-、B+、B-電機(jī)驅(qū)動(dòng)脈沖。該模塊內(nèi)部為模值為4的計(jì)數(shù)器,輸入轉(zhuǎn)向控制信號為高電平時(shí),該計(jì)數(shù)器加法計(jì)數(shù),轉(zhuǎn)向?yàn)榈碗娖綍r(shí),計(jì)數(shù)器減法計(jì)數(shù),根據(jù)輸入的步長控制輸出驅(qū)動(dòng)脈沖的持續(xù)時(shí)間長度,計(jì)數(shù)器值對應(yīng)不同的驅(qū)動(dòng)脈沖信號,則可產(chǎn)生不同方向、不同步長的電機(jī)驅(qū)動(dòng)脈沖。

  1. 圖像處理模塊

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

  1. 后端處理模塊

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

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

  1. 輸入緩沖模塊

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

  1. 主控制器模塊

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

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

  1. DDR控制器模塊

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

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

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

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

  1. 輸出緩沖模塊

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

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

  1. 色空間轉(zhuǎn)換模塊

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

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

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

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

  1. 圖像放大模塊

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

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

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

SC_X = 1024/736 ≈ 1.3913

SC_Y = 768/576 ≈ 1.3333

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

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

垂直方向放大將3個(gè)原始像素放大生成4個(gè)新像素,其核函數(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表示原始輸入像素?cái)?shù)據(jù),f表示放大處理后輸出的像素?cái)?shù)據(jù)。

水平方向放大將5個(gè)原始像素放大生成7個(gè)新像素,其核函數(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

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

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

圖9 圖像放大模塊內(nèi)部結(jié)構(gòu)圖

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

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

圖10 插值算法模塊內(nèi)部寄存器

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

當(dāng)輸入到SRAM1和SARM2的數(shù)據(jù)分別滿1行時(shí),寄存器組a和b開始接收數(shù)據(jù)并進(jìn)行插值濾波,同時(shí)輸出放大后的數(shù)據(jù)。SRAM3同時(shí)緩沖下一行數(shù)據(jù),緩沖結(jié)束后新的一行數(shù)據(jù)開始往SRAM1中緩沖,如此交替循環(huán)。根據(jù)上述公式濾波R、G、B三個(gè)通道之一的插值計(jì)算的結(jié)果,以寄存器組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

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

圖像行數(shù)由576放大到768時(shí),放大比例系數(shù)可選為4/3,則根據(jù)上述公式,用X[n]表示原始行相素?cái)?shù)據(jù),用Y[n]表示列放大后行的數(shù)據(jù),則放大行的計(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內(nèi)部實(shí)現(xiàn)上述算法,將X[n]右移2位得到0.25*X[n],將X[n]右移1位與X[n]右移2位相加得到0.75*X[n]。這樣通過移位相加求和代替了乘法器,節(jié)省了系統(tǒng)資源并避免了浮點(diǎn)計(jì)算帶來的舍入誤差。

5.系統(tǒng)完成的關(guān)鍵設(shè)計(jì)

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

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

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

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

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

6.評測與結(jié)論

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

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

附錄1 圖像采集板原理圖

1. 圖像傳感器原理圖

附圖1

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

附圖2

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

附圖3

附錄2 項(xiàng)目中使用的光學(xué)電機(jī)

附圖4

附錄3 圖像采集板外觀圖

附圖5

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

附圖6



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉