《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于多相位插值的視頻縮放系統(tǒng)FPGA實現(xiàn)
基于多相位插值的視頻縮放系統(tǒng)FPGA實現(xiàn)
2016年微型機與應(yīng)用第24期
王中博,,周遠遠,黃魯
中國科學技術(shù)大學 信息科學技術(shù)學院,,安徽 合肥 230026
摘要: 傳統(tǒng)的插值算法在視頻圖像縮放尤其是輸出高分辨率的視頻圖像時,對細節(jié)方面的處理性能較差,。采用多相位插值算法實現(xiàn)視頻圖像縮放,,主要闡述算法的原理及算法實現(xiàn)的硬件結(jié)構(gòu)。其中硬件電路控制部分使用Xilinx公司的Spartan6系列FPGA芯片,,系統(tǒng)可以實現(xiàn)將四路攝像頭采集的視頻信號從任意通道放大到1 920x1 080@60 Hz的分辨率顯示,,結(jié)果表明輸出視頻圖像的實時性和細節(jié)保持良好。
關(guān)鍵詞: 視頻縮放 多相位 FPGA 實時性
Abstract:
Key words :

  王中博,,周遠遠,,黃魯

  (中國科學技術(shù)大學 信息科學技術(shù)學院,,安徽 合肥 230026)

       摘要:傳統(tǒng)的插值算法在視頻圖像縮放尤其是輸出高分辨率的視頻圖像時,,對細節(jié)方面的處理性能較差。采用多相位插值算法實現(xiàn)視頻圖像縮放,,主要闡述算法的原理及算法實現(xiàn)的硬件結(jié)構(gòu),。其中硬件電路控制部分使用Xilinx公司的Spartan6系列FPGA芯片,系統(tǒng)可以實現(xiàn)將四路攝像頭采集的視頻信號從任意通道放大到1 920x1 080@60 Hz的分辨率顯示,,結(jié)果表明輸出視頻圖像的實時性和細節(jié)保持良好,。

  關(guān)鍵詞視頻縮放,;多相位;FPGA,;實時性

  中圖分類號:TN911.73文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2016.24.014

  引用格式:王中博,,周遠遠,黃魯.基于多相位插值的視頻縮放系統(tǒng)FPGA實現(xiàn)[J].微型機與應(yīng)用,,2016,35(24):46-49.

0引言

  視頻圖像縮放又可以稱為視頻圖像分辨率的轉(zhuǎn)換,、視頻圖像的重采樣、視頻圖像的尺度變換等,,是數(shù)字視頻圖像處理技術(shù)中的關(guān)鍵技術(shù)之一,,直接影響著視頻圖像輸出質(zhì)量效果和視覺體驗。目前視頻圖像縮放技術(shù)廣泛應(yīng)用于醫(yī)學圖像,、工程學,、多媒體、視頻會議等領(lǐng)域[1],。

  傳統(tǒng)的視頻圖像縮放插值算法有最近鄰插值,、雙線性插值、雙立方插值等,,其他的插值算法還有邊緣插值,、B樣條插值、自適應(yīng)插值等[23],,其中基于線性模型的算法在應(yīng)用于圖像處理時高頻信號會疊加到低頻信號區(qū)域,,導(dǎo)致輸出視頻圖像出現(xiàn)混疊情況,尤其是視頻圖像輸出分辨率要求較高時細節(jié)方面的處理會帶來較差的視覺體驗效果,。多相位插值算法也是一種常用的視頻圖像縮放方法,,其相對于傳統(tǒng)的插值算法而言,在細節(jié)保持上具有較好的性能,,也被廣泛用于工業(yè)界,。

1算法原理

  視頻圖像縮放的基本原理是將分辨率為(M,N)的原圖像轉(zhuǎn)換成分辨率為(X,Y)的目標圖像。用數(shù)學定義可以描述為:已知(M,N)個像素點,,Pixelin(i,j)(i=1,2,…,M;j=1,2,…,N),,其中i,j為原圖像的像素點坐標,,Pixelin(i,j)為原圖像像素值?,F(xiàn)在希望通過一個數(shù)學關(guān)系式的映射,利用已知像素點求得輸出像素點,,Pixelout(x,y)(x=1,2,…,X; y=1,2,…,Y),,其中x,y為目標圖像的像素點坐標,Pixelout(x,y)為目標圖像像素值,。那么輸入輸出圖像的像素值對應(yīng)函數(shù)關(guān)系可以表示為:Pixelout(x,y)=f(i,j, Pixelin(i,j)),,多相位插值的本質(zhì)就是根據(jù)函數(shù)的映射關(guān)系求解目標圖像的像素值。

  根據(jù)上述分析知,,目標圖像像素值并不能直接從原圖像獲取,,而是需要通過原圖像相關(guān)的位置坐標、像素值等信息計算得出,。由于圖像內(nèi)容的局部相關(guān)性,,輸出目標圖像的像素值和相應(yīng)空間位置鄰近的輸入原圖像像素值相關(guān)性較大,與空間位置較遠的像素值相關(guān)性較小,。一般的視頻圖像縮放處理是典型的二維濾波的過程,,可以用公式表示[4]如下:

  Pixelout(x,y)=

  ∑HTaps-1i=0∑VTaps-1j=0Pixelinx-HTaps2+i,y-VTaps2+j×

  Coef(i,j)(1)

  式中HTaps和VTaps為兩個二維濾波器在水平和垂直方向上的抽頭數(shù),Coef(i,j)為對應(yīng)濾波器的系數(shù),,這個系數(shù)代表了參與運算的輸入像素值對輸出像素值的權(quán)值大小。它的值確定了相應(yīng)位置輸入像素值對輸出像素值的影響并直接決定縮放的效果,,系數(shù)的確定取決于濾波器低通和抗混疊等需求,。

001.jpg

  圖1視頻縮放系統(tǒng)FPGA實現(xiàn)硬件結(jié)構(gòu)圖二維結(jié)構(gòu)在數(shù)據(jù)運算時比較復(fù)雜,為了簡化運算一般將二維濾波器進行拆分,,使用兩個一維濾波器級聯(lián)來實現(xiàn)二維特性,,即水平濾波器和垂直濾波器。首先第一級進行垂直濾波輸出中間值Pixeltemp(x,y),,該過程用公式表示如下:

  _1LR${Q@$@$O~2A5CI9%)RV.png

  通過以上分析可知,,簡化運算前后需要的乘法器個數(shù)從(VTaps×HTaps)減少為(VTaps+HTaps)個,運算量大大降低,,這種方式非常有利于實現(xiàn)實時性要求較高的硬件系統(tǒng),。同時這個思路也是各種視頻圖像縮放算法硬件實現(xiàn)的基本模型,即在水平方向和垂直方向分別進行縮放處理,,這樣問題就成了一維信號采樣率變化的分析處理過程,。

2系統(tǒng)硬件結(jié)構(gòu)

  系統(tǒng)硬件結(jié)構(gòu)如圖1所示,使用Xilinx公司的Spartan6系列FPGA芯片對多相位插值縮放算法進行驗證,。系統(tǒng)采用四路模擬攝像頭采集視頻信號作為輸入源,,通過TW2867多路視頻解碼芯片將模擬視頻信號轉(zhuǎn)化成數(shù)字視頻信號送給FPGA芯片進行數(shù)據(jù)處理,F(xiàn)PGA首先對輸入的數(shù)據(jù)信號進行一定的預(yù)處理,,由于采集的圖像與輸出顯示的圖像刷新率不一致,,為了保證數(shù)據(jù)處理時讀寫速率的匹配,需要將圖像數(shù)據(jù)寫入DDR3然后讀取數(shù)據(jù)進行縮放處理再輸出,,輸出的信號需要符合HDMI標準時序,,最后通過SIL9134視頻編碼芯片將輸出數(shù)據(jù)信號編碼成視頻流傳輸?shù)狡聊伙@示并查看輸出的效果。

  2.1相關(guān)芯片介紹

  2.1.1視頻解碼芯片

  TW2867是Techwell半導(dǎo)體公司生產(chǎn)的一款芯片,主要功能是將模擬的復(fù)合視頻信號轉(zhuǎn)換成數(shù)字視頻信號,,便于進行顯示,、存儲和傳輸?shù)葦?shù)字化視頻信息處理。芯片包括視頻解碼器和音頻編碼器,,其中視頻解碼器每個通道包含有數(shù)字化輸入模擬視頻信號的ADC(模數(shù)轉(zhuǎn)換器),。TW2867芯片I2C信號線引腳與STM32芯片I2C信號線引腳連接,TW2867芯片寄存器的參數(shù)通過STM32芯片進行配置,。

  2.1.2視頻編碼芯片

  SIL9134是SILicon Image半導(dǎo)體公司生產(chǎn)的一款芯片,,支持HDMI1.3接口規(guī)范,可以將符合時序標準的數(shù)據(jù)信號編碼成HDMI視頻流,。它還能傳輸高清晰度的音頻和視頻信號,,最高支持1 080P@60 Hz分辨率的視頻輸出。SIL9134芯片I2C信號線引腳與STM32芯片I2C信號線引腳連接,,SIL9134芯片寄存器的參數(shù)通過STM32芯片進行配置,。

  2.2主要模塊介紹

  根據(jù)上述系統(tǒng)硬件結(jié)構(gòu)的介紹,F(xiàn)PGA輸入部分是攝像頭采集的模擬視頻源,,它是四路復(fù)用的BT656格式視頻信號,,分辨率為720×576@25 Hz。輸出部分視頻分辨率為1 920×1 080@60 Hz,,視頻信號的格式是HDMI,。在處理過程中由于視頻數(shù)據(jù)的格式存在變化,首先要將復(fù)用的四路視頻信號進行解調(diào),,然后選擇任意一路視頻信號進行解碼,;解碼后的視頻信號寫入數(shù)據(jù)存儲模塊,然后讀取視頻信號進行縮放處理,,最后將處理完的數(shù)據(jù)與相應(yīng)分辨率的時序信號進行整合輸出,。

  2.2.1視頻數(shù)據(jù)存儲模塊

002.jpg

  視頻數(shù)據(jù)存儲模塊的實現(xiàn)思路如圖2所示。輸入數(shù)據(jù)位寬是16位,,如果往DDR3寫入的數(shù)據(jù)也是16位,,則效率太低,而DDR3的接口是最高支持128位的雙向端口,,因此選擇最大位寬以提高數(shù)據(jù)處理速度,,這里需要使用FIFO來進行速率轉(zhuǎn)換。視頻數(shù)據(jù)的處理是以幀為單位的,,每幀的處理又是以行為單位的,,對每行數(shù)據(jù)處理時采用乒乓處理方式,當FIFO的數(shù)據(jù)達到半行時就開始將輸入數(shù)據(jù)寫入DDR3同時繼續(xù)接收剩余半行的輸入數(shù)據(jù),。其中DDR3存儲地址也是按照上述思路來計算的,。

  2.2.2縮放算法實現(xiàn)模塊

  縮放算法實現(xiàn)模塊的結(jié)構(gòu)圖如圖3所示,。視頻數(shù)據(jù)按照自左向右、自上而下逐行逐像素的掃描順序進行顯示,,在縮放計算時也是依據(jù)此順序進行,。先將進入到縮放模塊的數(shù)據(jù)進行輸入緩存,經(jīng)過縮放處理后再對數(shù)據(jù)進行輸出緩存,,然后根據(jù)特定的時序從緩存區(qū)域讀取數(shù)據(jù)輸出,。一般而言輸入和輸出的數(shù)據(jù)時鐘及縮放模塊的時鐘是不一致的,前者的時鐘由輸入輸出視頻的分辨率決定,,后者采用單獨的時鐘以適應(yīng)不同采樣率變換的縮放要求,。

 

003.jpg

  圖4縮放模塊實現(xiàn)結(jié)構(gòu)圖如圖3所示,數(shù)據(jù)緩存的實現(xiàn)是利用雙口RAM異步存儲機制,,不同模塊之間的數(shù)據(jù)調(diào)用,、參數(shù)計算、模式選擇和輸出格式等都是通過狀態(tài)機進行控制的,。其中縮放模塊的實現(xiàn)思路如圖4所示,。基于前文的理論分析,,將二維圖像的插值簡化成一維的水平插值和垂直插值方式處理,。硬件實現(xiàn)時濾波器的抽頭數(shù)越多輸出圖像的性能越好,同時消耗的資源也越多,。實際運算時垂直方向需要預(yù)先緩存多行數(shù)據(jù),這樣帶來的運算量必然會非常大,,如果垂直方向濾波器抽頭數(shù)太多就會造成數(shù)據(jù)存儲的壓力而增加硬件實現(xiàn)的成本,,因此設(shè)計時垂直方向使用更少的濾波器抽頭數(shù),減少系統(tǒng)的行緩存數(shù)量[5],。綜合對性能和資源的考慮,,根據(jù)行緩存最少需求,采用固定垂直濾波器5Taps和水平濾波器7Taps電路結(jié)構(gòu),。

004.jpg

  2.2.3乘法器的流水線實現(xiàn)

  算法實現(xiàn)過程中運算量和資源開銷主要集中在乘法器,,因此為了提升電路性能就要對乘法器進行轉(zhuǎn)化。通過對乘法運算原理的分析,,采用加法器和選擇器代替乘法器實現(xiàn)乘法運算[6],,并且使用流水線結(jié)構(gòu)提高數(shù)據(jù)處理速度。

  例如兩個K位數(shù)據(jù)A,、B的乘法運算轉(zhuǎn)化過程如式(4)~(6)所示,,通過硬件語言描述時可用選擇器和加法器表示。

  CTJNUR~KF4[A2LQW]%4NOUQ.png

  為了使每位數(shù)據(jù)運算時序?qū)R添加D觸發(fā)器實現(xiàn)流水線結(jié)構(gòu),,這里的流水線級數(shù)不宜太多,,否則功耗會加大,。本文處理的數(shù)據(jù)是RGB格式,三通道數(shù)據(jù)分離同時運算再合并,,主要采用K=8的電路形式,。

3實驗結(jié)果

  系統(tǒng)在沒有進行算法處理時,直接將四個通道采集的視頻數(shù)據(jù)縮小同時輸出到同一顯示器屏幕,,如圖5所示,。系統(tǒng)進行算法處理時,可以將任意通道采集的視頻數(shù)據(jù)放大后輸出在顯示器屏幕,,分辨率信息為1 920x1 080@60 Hz,。如圖6所示,默認放大顯示第一通道采集的視頻,,通過按鍵實時切換任意通道采集的視頻,。

  

005.jpg

006.jpg

4結(jié)論

  本文采用多相位插值算法實現(xiàn)視頻圖像的縮放,并且在FPGA硬件平臺驗證,,放大后的視頻圖像信息過渡平緩,,細節(jié)保持良好,切換放大任意通道視頻圖像信號顯示迅速,,采集的視頻圖像信息內(nèi)容變化顯示同步實時變化,。多相位插值算法對放大后視頻圖像內(nèi)容信息保持較好,但對邊緣部分未能做較好的處理,,雖然這沒有帶來什么影響,,但為了進一步提升放大后視頻圖像的性能,在今后的研究中可以考慮融合多種性能良好且互補的插值算法,,比如融合多相位插值和邊緣插值兩種算法,,這樣縮放后輸出的視頻圖像性能保持會更加優(yōu)異。

參考文獻

 ?。?] Wang Yangang, Peng Silong. A reconfigurable lowcost memoryefficient VLSI architecture for video scaling[J]. High Technology Letters, 2013(1).137 144.[2] 胡小龍,馮彬. 基于FPGA的高分辨實時監(jiān)控圖像縮放設(shè)計[J]. 液晶與顯示,2009,,24(6):882 885.

  [3] Shi Zaifeng, Yao Suying, Zhao Yingchun. A novel video image scaling algorithm based on morphological edge interpolation[C]. 2008 International Conference on Neural Networks and Signal Proceesing, 2008:. 388 391.

 ?。?] Xilinx Company.LogiCORE IP Video Scaler v.7.00.a[EB/OL].(201207)[2016 07 24]http://www.xilinx.com/products/intellectualproperty/efdividscaler.html.

 ?。?] 郭若杉.并行多相位圖像插值裝置和方法[P].中國:104935831A,2015 09 23.

 ?。?] LIN M B. 超大規(guī)模集成電路系統(tǒng)導(dǎo)論:邏輯,、電路與系統(tǒng)設(shè)計[M]. 劉艷艷,等,,譯.北京:電子工業(yè)出版社,,2015.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。