• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向視頻流的畸變矯正算法的FPGA實現(xiàn)

      2013-09-17 10:26:24謝時岳
      電視技術(shù) 2013年13期
      關(guān)鍵詞:視頻流存儲器畸變

      徐 曉,謝時岳

      (華南理工大學(xué)理學(xué)院,廣東廣州 510641)

      面向視頻流的畸變矯正算法的FPGA實現(xiàn)

      徐 曉,謝時岳

      (華南理工大學(xué)理學(xué)院,廣東廣州 510641)

      本設(shè)計用一款中低端的FPGA——Altera公司的EP3C40來實現(xiàn)一種通用的畸變矯正算法,主要用于對成本要求低、實時性要求高的視頻流圖像處理系統(tǒng)中的前端處理部分。FPGA具有強大的并行處理性能,因此相比PC處理平臺或者DSP處理平臺,F(xiàn)PGA更能保證視頻流的實時性。經(jīng)實際驗證,該方法能達到畸變矯正的實時性要求。

      FPGA;畸變矯正;實時性

      【本文獻信息】徐曉,謝時岳.面向視頻流的畸變矯正算法的FPGA實現(xiàn)[J].電視技術(shù),2013,37(13).

      理論上定義的攝像機透鏡是不引入任何畸變的,然而在現(xiàn)實生活中,不可能制造出完美的透鏡,這主要是制造上的原因,因為制作一個“球形”透鏡比制作一個數(shù)學(xué)上理想的透鏡更容易。攝像機鏡頭畸變會導(dǎo)致攝像機成像面(即投影平面)上的坐標(biāo)失準(zhǔn),直觀上看就是拍攝出來的物體會有變形,而圖像坐標(biāo)準(zhǔn)確性會直接影響圖像的配準(zhǔn)以及三維坐標(biāo)重建等問題[1]。如今對于圖像畸變矯正主要還是對于單幅或多幅靜態(tài)圖片的畸變矯正,而對于視頻圖像的畸變矯正方案較少。視頻流圖像矯正是基于靜態(tài)圖像畸變矯正的方法,加入了對圖像處理實時性的要求和大數(shù)據(jù)量搬運和存儲的要求,尤其對于高清視頻流的矯正,實時處理的數(shù)據(jù)量非常大。目前市場上通常會選擇用DSP或者FPGA為核心的圖像處理系統(tǒng)來完成對視頻流畸變的矯正。FPGA以其強大的并行處理能力著稱,內(nèi)部擁有非常豐富的時序邏輯單元[2],非常適合處理一些并行性強,但復(fù)雜度不高的簡單算法,因此是處理視頻流畸變矯正這種簡單并行算法的最佳選擇。對此,本文提供了一種使用目前市場上中低端FPGA產(chǎn)品Altera公司的EP3C40來進行視頻流的圖像畸變矯正方案。

      1 畸變矯正系統(tǒng)硬件電路原理框圖

      如圖1所示,基于FPGA的畸變矯正硬件系統(tǒng)主要由以下3個主要模塊組成:1)視頻數(shù)據(jù)編解碼模塊;2)DDR2存儲器控制模塊;3)畸變矯正模塊。

      圖1 畸變矯正系統(tǒng)硬件電路原理框圖

      CCD攝像機輸出的彩色電視信號經(jīng)過視頻解碼器后以8 bit BT656(4∶2∶2)YCbCr SDTV(標(biāo)清)數(shù)字視頻信號格式存入DDR2存儲器,當(dāng)DDR2內(nèi)存滿一幀圖像后(一幀圖像共576行有效視頻數(shù)據(jù)),畸變矯正模塊開始從DDR2存儲器中讀取數(shù)據(jù)進行矯正工作,一次矯正一行有效視頻數(shù)據(jù),矯正后的一行圖像數(shù)據(jù)存儲在雙口RAM(DPRAM)中作為緩存,最后DPRAM中的數(shù)據(jù)通過視頻編碼器后轉(zhuǎn)化成PAL制式的電視信號在顯示終端上輸出[3]。

      2 視頻數(shù)據(jù)編解碼模塊

      視頻編解碼模塊主要由I2C控制模塊和有效視頻信號采集模塊組成。視頻編解碼器分別通過I2C總線進行內(nèi)部模式寄存器的配置,設(shè)置上電后的參數(shù)。

      在本方案中,視頻解碼器TVP5150采用8 bit的BT656(4∶2∶2)YCbCr格式輸入數(shù)字視頻信號。電視信號采用隔行PAL制式。圖像幀的圖像分辨率為720×576。每場數(shù)據(jù)由288行行數(shù)據(jù)組成,每行數(shù)據(jù)包括EAV,SAV,行消隱信號和有效視頻信號數(shù)據(jù)4個部分,具體格式如表1所示。

      ?

      每行有效視頻數(shù)據(jù)包含1 440 byte的Y,Cb,Cr數(shù)據(jù),其中,亮度信號Y占720 byte,色度信號Cb,Cr各占360 byte。而每幀的有效視頻數(shù)據(jù)為576行×1 440 byte共829 440 byte(810 kbyte),是本系統(tǒng)要進行存儲和處理的一幀原始有效視頻圖像。

      本系統(tǒng)用FPGA構(gòu)建有效視頻信號采集模塊,目的是把每一幀的有效視頻提取出來,以供畸變矯正模塊使用。

      2.1 有效視頻信號采集子模塊

      視頻數(shù)據(jù)編解碼模塊的子模塊中的有效視頻信號采集子模塊能夠準(zhǔn)確地從TVP5150的輸出端提取每一行的有效視頻數(shù)據(jù),時鐘頻率為27 MHz,同時給頂層的畸變矯正模塊輸出1個1位的信號ActiveVideo_flag,這個信號在解碼器輸出有效視頻數(shù)據(jù)時為高電平,在輸出非有效視頻數(shù)據(jù)(例如EAV,SAV,場消隱信號等)時為低電平。視頻編碼器ADV7179內(nèi)部設(shè)置了把SAV和EAV編碼作為同步信息的軟同步方式,因此ADV7179的同步信號輸出管腳HSYNC,F(xiàn)IELD/VSYNC和BLANK懸空即可。有效視頻信號采集子模塊也采用了軟同步的方式對有效視頻數(shù)據(jù)的行進行了跟蹤,即需要找到幀頭并設(shè)置1位幀頭標(biāo)記,并把這1位幀頭標(biāo)記保存在FPGA內(nèi)部的寄存器中,同時設(shè)置一個行計數(shù)器,從遇到幀頭標(biāo)記開始計為第0行,以后每遇到一個新的有效視頻行的時候,計數(shù)器加1,共計數(shù)576行,循環(huán)計數(shù),這樣就可以控制FPGA對每一幀中特定行進行操作。找到幀頭的具體方法是每當(dāng)SAV編碼為FF 00 00 AB,且下一個EAV的編碼為FF 00 00 9D時,此時刻即可設(shè)置一個幀頭標(biāo)記。

      2.2 DDR2存儲器控制器子模塊

      本系統(tǒng)使用DDR2 SDRAM High Performance Controller v9.0 IP核來對2片外掛的DDR2存儲器MT47H64M16進行配置,DDR2存儲器負(fù)責(zé)將每一幀的原始圖像數(shù)據(jù)保存下來,供畸變矯正模塊使用。主要配置參數(shù)是存儲器時鐘周期為200 MHz,數(shù)據(jù)讀寫時鐘為100 MHz,數(shù)據(jù)位寬為32 bit,地址寬度為26 bit,其中Bank address width為3 bit,Row address width 為 13 bit,Column address width 為10 bit。傳輸模式采用突發(fā)傳輸模式,拍數(shù)為4拍,突發(fā)傳輸方式為連續(xù)型,因此實際一次讀寫32 bit×4=128 bit數(shù)據(jù)。CAS Latency設(shè)為3個時鐘周期,刷新間隔為7.8 μs。參數(shù)的配置均遵照MT47H64M16的器件手冊以及Altera公司關(guān)于DDR2控制器的IP核用戶手冊進行配置,硬件測試DDR2讀寫正常。

      3 畸變矯正模塊

      攝像機畸變矯正是在求解出相機投影矩陣的前提下,利用畸變模型(變換函數(shù))將實際的圖像點平面映射到理想圖像點平面。核心的問題是選擇一個合適的畸變模型并求解出畸變模型的各項參數(shù)。其中對成像影響最大的是透鏡的徑向畸變和切向畸變。要求取攝像機的投影矩陣和畸變參數(shù),首先需要進行攝像機標(biāo)定。

      3.1 攝像機的標(biāo)定

      攝像機標(biāo)定[4](Camera Calibration)的過程簡單來說就是給攝像機建模的過程,用數(shù)學(xué)的方法來建立攝像機的自然單位(像素)和物理世界單位(米)的關(guān)系。過程中能得到攝像機的幾何模型和透鏡的畸變模型,這兩個模型共同定義了攝像機的內(nèi)參數(shù)。因為對于某一個特定的攝像機,幾何模型和畸變模型是不會改變的,因此可以利用計算機計算出該攝像機的內(nèi)參數(shù)(幾何模型的參數(shù))和畸變參數(shù)(畸變模型的參數(shù)),然后再使用這些內(nèi)參數(shù)通過FPGA的畸變矯正模塊來對攝像機透鏡畸變進行矯正。

      對于攝像機標(biāo)定的具體過程的研究,本文不作論述。正如上節(jié)所說,攝像機的標(biāo)定工作最后會得出攝像機的幾何模型和畸變模型,標(biāo)定工作在PC上完成,軟件環(huán)境是Visual C++6.0,主要運用到的庫是OpenCV庫,OpenCV是Intel開源計算機視覺庫。對于本系統(tǒng)中用到的攝像機求取的內(nèi)參數(shù)和畸變參數(shù)的結(jié)果如下,攝像機的型號是奧德麗公司的OCC-3105。

      相機內(nèi)參數(shù)矩陣:

      畸變系數(shù):

      3.2 畸變矯正坐標(biāo)計算模塊

      利用上一節(jié)中的攝像機的內(nèi)參數(shù)矩陣和畸變系數(shù)來計算畸變矯正坐標(biāo),由于計算出攝像機的內(nèi)參數(shù)和畸變參數(shù)都是浮點數(shù),切向畸變系數(shù)甚至只有104數(shù)量級的大小,因此計算畸變坐標(biāo)時應(yīng)全部用浮點計算來保證計算精度。本系統(tǒng)用到的是Altera公司Cyclone III系列的FPGA EP3C40C8,畸變矯正模塊中運用的所有浮點計算單元的時鐘頻率均為100 MHz,小于Cyclone III器件浮點加減法模塊的最高時鐘頻率150 MHz,因此完全在合理時鐘頻率范圍之內(nèi)。

      由于計算出的畸變矯正坐標(biāo)點并不一定落在原始圖像的像素點上(大部分情況是落在原始圖像4個像素點的中間),因此還要通過一定手段計算出畸變矯正坐標(biāo)點的灰度值,常用的算法有最近鄰點法,三次卷積法和雙線性內(nèi)插法[5]。本系統(tǒng)是為了驗證引入畸變矯正算法在FPGA中的可行性,因此選用了較簡單的最近鄰點法。最近鄰點法是用畸變矯正坐標(biāo)點周圍4個原始像素點中最靠近畸變矯正坐標(biāo)的點的灰度值來作為畸變矯正坐標(biāo)點的灰度值[6],顯然該方法會引入最大半個像素的誤差。

      3.3 DDR2地址計算子模塊

      有了每一行的畸變矯正坐標(biāo)后,就可以通過讀取DDR2存儲器中最靠近矯正坐標(biāo)的像素點的地址(最近鄰點法),來完成畸變矯正的工作。對于每一個畸變坐標(biāo)對應(yīng)的DDR2存儲器中的原始像素點的地址,可以通過一個DDR2地址計算子模塊來完成,原理圖如圖2所示。

      圖2 DDR2地址計算子模塊原理圖

      4 系統(tǒng)的可行性分析及驗證

      4.1 DDR2讀寫數(shù)據(jù)的時間分析

      如上節(jié)所說,本系統(tǒng)中DDR2的讀寫數(shù)據(jù)總線寬度為32 bit,傳輸模式為突發(fā)傳輸模式,突發(fā)傳輸長度為4,因此在FPGA內(nèi)部給DDR2存儲器控制模塊定義的數(shù)據(jù)寬度為32 bit×4=128 bit,傳輸時鐘設(shè)為有效視頻采集子模塊時鐘的4倍,由于有效視頻采集子模塊一個時鐘輸出8 bit給FPGA,因此FPGA給DDR2傳輸數(shù)據(jù)的速度是有效視頻采集速度的(128/8)×4=64倍,給畸變矯正部分留下了非常大的時間裕量。為了一次采集一行有效視頻數(shù)據(jù)進行處理,有效視頻數(shù)據(jù)采集子模塊將未矯正的原始有效視頻數(shù)據(jù)以行為單位存儲到畸變矯正模塊中定義的一個深度為4 096的DPRAM(雙向端口RAM)中,這個DPRAM的容量可以存儲兩行的有效視頻數(shù)據(jù),可以用乒乓讀寫來使速度提高一倍。

      4.2 畸變矯正模塊的時間分析

      計算出一個原始圖像點的矯正坐標(biāo)的頻率為50 MHz,時間為1/50 MHz=20 ns,因此得到一行的矯正坐標(biāo)的時間為720×20 ns=14 400 ns,此時間小于傳輸一行有效視頻數(shù)據(jù)的時間((1/27 MHz)×1 440=53 333.333 ns),因此可以達到邊傳輸原始圖像,邊計算矯正坐標(biāo)的效果。利用上面提到的DPRAM乒乓讀寫思想,建立3個深度為2 048的DPRAM來存儲每次矯正計算需要從DDR2存儲器中讀取的行、列和位區(qū)間信息。

      4.3 系統(tǒng)實時性分析及驗證

      本系統(tǒng)將DDR2作為幀緩存器,存儲當(dāng)前幀有效視頻數(shù)據(jù)的同時在DDR2內(nèi)部緩存了上一幀的有效視頻數(shù)據(jù),畸變矯正模塊用DDR2緩存的上一幀的數(shù)據(jù)來進行圖像算法處理,這樣實際上就引入了一幀的延時。PAL制式標(biāo)準(zhǔn)的全電視信號1 s能傳輸30幀圖像,即延時為33 ms,滿足實時性的要求。圖3為Quartus II 9.0軟件自帶邏輯分析儀測試波形圖,可以看到在有效視頻數(shù)據(jù)傳輸?shù)钠陂g(即ActiveVideo_flag為高電平的時候),畸變矯正模塊將矯正后的一行圖像輸出到輸出視頻緩存DPRAM(ram_40962)中,視頻編碼器同時讀取DPRAM中的內(nèi)容輸出到顯示器上。

      圖3 Quartus II 9.0內(nèi)置邏輯分析儀SignalTap II實時測試波形(截圖)

      本系統(tǒng)驗證了一種畸變矯正算法在市場中低端FPGA平臺中的實現(xiàn),合理利用和優(yōu)化FPGA內(nèi)部的邏輯單元和內(nèi)存BLOCK RAM資源,提出了一種可用的滿足實時性的、小成本的面向視頻流的畸變矯正解決方案,可作為圖像配準(zhǔn),三維坐標(biāo)重建等復(fù)雜圖像處理工作的基礎(chǔ)。

      :

      [1]張靜,秦文健,賈亮.攝像機畸變矯正研究的綜述[J].科技創(chuàng)新導(dǎo)報,2011(7):5-7.

      [2]吳繼華,王誠.Altera FPGA/CPLD設(shè)計(高級篇)[M].北京:人民郵電出版社,2005.

      [3]王德勝,康令州.基于FPGA的實時圖像采集與預(yù)處理[J].電視技術(shù),2011,35(3):32-35.

      [4]崔莉娟,朱洪俊,王金鵬.基于畸變校正的雙目立體攝像機線性標(biāo)定[J].測控技術(shù)與儀器儀表,2011,37(1):84-87.

      [5]牛建軍,劉尚乾,姚榮輝,等.高準(zhǔn)確度光電成像測量系統(tǒng)圖像畸變校正算法[J].光子學(xué)報,2006,35(9):1317-1320.

      [6]宋玲玲,謝洪波,陳曉冬,等.基于FPGA的MEE畸變實時校正系統(tǒng)設(shè)計[J].儀器儀表學(xué)報,2003,24(4):371-372.

      Realization of Distortion Correction Algorithms for Streaming Video Based on FPGA

      XU Xiao,XIE Shiyue

      (School of Science,South China University of Technology,Guangzhou 510641,China)

      It uses Altera’s FPGA EP3C40 to achieve a common correction algorithm for distortion effects,mainly used in the front-end processing part of video streaming image processing system which has requirements of low cost and real-time.Compared to the PC processing platform or DSP processing platform,F(xiàn)PGA can better ensure real-time video streaming because it has powerful parallel processing performance.By experimental tests,this method can achieve real-time requirements of the distortion correction.

      FPGA;distortion correction;real-time requirement

      TN911.73

      A

      徐 曉,碩士生導(dǎo)師,主要從事光電技術(shù)與住處技術(shù)方面的研究、工程開發(fā)和教學(xué)工作;

      謝時岳,碩士生,主要從事FPGA平臺下圖像處理算法的研究工作。

      責(zé)任編輯:魏雨博

      2013-05-24

      猜你喜歡
      視頻流存儲器畸變
      邊緣實時視頻流分析系統(tǒng)配置動態(tài)調(diào)整算法研究
      靜態(tài)隨機存儲器在軌自檢算法
      基于視頻流傳輸中的擁塞控制研究
      在Lightroom中校正鏡頭與透視畸變
      美國視頻流市場首現(xiàn)飽和征兆
      存儲器——安格爾(墨西哥)▲
      輻射誘導(dǎo)染色體畸變的快速FISH方法的建立
      基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計
      《癌變·畸變·突變》2014年第26卷索引
      《癌變·畸變·突變》第六屆編委會第2次會議紀(jì)要
      西贡区| 靖边县| 介休市| 龙游县| 闽清县| 军事| 闻喜县| 万年县| 锦屏县| 偏关县| 奉化市| 项城市| 姜堰市| 宁陕县| 获嘉县| 南木林县| 梁河县| 工布江达县| 隆尧县| 太仆寺旗| 东源县| 策勒县| 江源县| 洪江市| 株洲市| 通江县| 富川| 小金县| 伊宁县| 信丰县| 平凉市| 和顺县| 涟水县| 青神县| 丰都县| 师宗县| 丹凤县| 富川| 重庆市| 个旧市| 镇原县|