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