摘要:傳統的插值算法在視頻圖像縮放尤其是輸出高分辨率的視頻圖像時,對細節方面的處理性能較差。采用多相位插值算法實現視頻圖像縮放,主要闡述算法的原理及算法實現的硬件結構。其中硬件電路控制部分使用Xilinx公司的Spartan6系列FPGA芯片,系統可以實現將四路攝像頭采集的視頻信號從任意通道放大到1 920x1 080@60 Hz的分辨率顯示,結果表明輸出視頻圖像的實時性和細節保持良好。
?
0引言
視頻圖像縮放又可以稱為視頻圖像分辨率的轉換、視頻圖像的重采樣、視頻圖像的尺度變換等,是數字視頻圖像處理技術中的關鍵技術之一,直接影響著視頻圖像輸出質量效果和視覺體驗。目前視頻圖像縮放技術廣泛應用于醫學圖像、工程學、多媒體、視頻會議等領域[1]。
傳統的視頻圖像縮放插值算法有最近鄰插值、雙線性插值、雙立方插值等,其他的插值算法還有邊緣插值、B樣條插值、自適應插值等,其中基于線性模型的算法在應用于圖像處理時高頻信號會疊加到低頻信號區域,導致輸出視頻圖像出現混疊情況,尤其是視頻圖像輸出分辨率要求較高時細節方面的處理會帶來較差的視覺體驗效果。多相位插值算法也是一種常用的視頻圖像縮放方法,其相對于傳統的插值算法而言,在細節保持上具有較好的性能,也被廣泛用于工業界。
1算法原理
視頻圖像縮放的基本原理是將分辨率為(M,N)的原圖像轉換成分辨率為(X,Y)的目標圖像。用數學定義可以描述為:已知(M,N)個像素點,Pixelin(i,j)(i=1,2,…,M;j=1,2,…,N),其中i,j為原圖像的像素點坐標,Pixelin(i,j)為原圖像像素值?,F在希望通過一個數學關系式的映射,利用已知像素點求得輸出像素點,Pixelout(x,y)(x=1,2,…,X; y=1,2,…,Y),其中x,y為目標圖像的像素點坐標,Pixelout(x,y)為目標圖像像素值。那么輸入輸出圖像的像素值對應函數關系可以表示為:Pixelout(x,y)=f(i,j, Pixelin(i,j)),多相位插值的本質就是根據函數的映射關系求解目標圖像的像素值。
根據上述分析知,目標圖像像素值并不能直接從原圖像獲取,而是需要通過原圖像相關的位置坐標、像素值等信息計算得出。由于圖像內容的局部相關性,輸出目標圖像的像素值和相應空間位置鄰近的輸入原圖像像素值相關性較大,與空間位置較遠的像素值相關性較小。一般的視頻圖像縮放處理是典型的二維濾波的過程,可以用公式表示[4]如下:
Pixelout(x,y)=
∑HTaps-1i=0∑VTaps-1j=0Pixelinx-HTaps2+i,y-VTaps2+j×
Coef(i,j)(1)
式中HTaps和VTaps為兩個二維濾波器在水平和垂直方向上的抽頭數,Coef(i,j)為對應濾波器的系數,這個系數代表了參與運算的輸入像素值對輸出像素值的權值大小。它的值確定了相應位置輸入像素值對輸出像素值的影響并直接決定縮放的效果,系數的確定取決于濾波器低通和抗混疊等需求。
圖1視頻縮放系統FPGA實現硬件結構圖二維結構在數據運算時比較復雜,為了簡化運算一般將二維濾波器進行拆分,使用兩個一維濾波器級聯來實現二維特性,即水平濾波器和垂直濾波器。首先第一級進行垂直濾波輸出中間值Pixeltemp(x,y),該過程用公式表示如下:
通過以上分析可知,簡化運算前后需要的乘法器個數從(VTaps×HTaps)減少為(VTaps+HTaps)個,運算量大大降低,這種方式非常有利于實現實時性要求較高的硬件系統。同時這個思路也是各種視頻圖像縮放算法硬件實現的基本模型,即在水平方向和垂直方向分別進行縮放處理,這樣問題就成了一維信號采樣率變化的分析處理過程。
2系統硬件結構
系統硬件結構如圖1所示,使用Xilinx公司的Spartan6系列FPGA芯片對多相位插值縮放算法進行驗證。系統采用四路模擬攝像頭采集視頻信號作為輸入源,通過TW2867多路視頻解碼芯片將模擬視頻信號轉化成數字視頻信號送給FPGA芯片進行數據處理,FPGA首先對輸入的數據信號進行一定的預處理,由于采集的圖像與輸出顯示的圖像刷新率不一致,為了保證數據處理時讀寫速率的匹配,需要將圖像數據寫入DDR3然后讀取數據進行縮放處理再輸出,輸出的信號需要符合HDMI標準時序,最后通過SIL9134視頻編碼芯片將輸出數據信號編碼成視頻流傳輸到屏幕顯示并查看輸出的效果。
2.1相關芯片介紹
2.1.1視頻解碼芯片
評論