馬文丹,李 凡,俞文靜
(廣州軟件學(xué)院網(wǎng)絡(luò)技術(shù)系,廣州 510990)
電影通常以每秒24幀的速度播放,而電視節(jié)目則以30 Hz的標(biāo)準(zhǔn)幀率播放。特別是在多媒體物聯(lián)網(wǎng)中,受無(wú)線信道帶寬的限制,對(duì)視頻序列進(jìn)行編碼時(shí)要求較低的幀率。低幀率基本可以滿足人們的娛樂(lè)需求,但當(dāng)視頻序列中存在大量快速運(yùn)動(dòng)時(shí),會(huì)出現(xiàn)運(yùn)動(dòng)模糊的現(xiàn)象。高幀率的視頻序列相比低幀率視頻包含更少的模糊和偽影,能夠帶來(lái)更好的視覺(jué)體驗(yàn)。因此,在多媒體物聯(lián)網(wǎng)的接收端,應(yīng)提高視頻幀率以使視頻更加流暢、觀看者的舒適度更高。為滿足上述需求,運(yùn)動(dòng)補(bǔ)償幀率上轉(zhuǎn)換(motioncompensated frame rate up-conversion,MC-FRUC)通??梢杂脕?lái)將低幀率視頻轉(zhuǎn)換為高幀率視頻。
MC-FRUC是一種在兩個(gè)相鄰的原始幀之間插入多個(gè)插值幀的視頻處理技術(shù),近年來(lái)得到了學(xué)者們的廣泛關(guān)注。由于插值算法的精度在很大程度上影響插值幀質(zhì)量,因此對(duì)運(yùn)動(dòng)估計(jì)(motion estimation,ME)、運(yùn)動(dòng)矢量平滑(Motion vector smoothing,MVS)和運(yùn)動(dòng)矢量映射(motion vector mapping,MVM)進(jìn)行了大量研究。ME是計(jì)算兩個(gè)相鄰原始幀間的運(yùn)動(dòng)矢量場(chǎng)(motion vector field,MVF);MVS是對(duì)得到的運(yùn)動(dòng)矢量(motion vector,MV)進(jìn)行校正,提高M(jìn)V的準(zhǔn)確度;MVM是得到插值幀的MVF。
塊匹配算法(block matching algorithm,BMA)是各種ME算法中最典型的方法,與逐像素ME相比具有較低的復(fù)雜度。一個(gè)標(biāo)準(zhǔn)塊的大小遠(yuǎn)遠(yuǎn)小于視頻幀的大小并且大多數(shù)目標(biāo)像素分布在不同的相鄰塊,由此提出了基于時(shí)空相關(guān)性的三維遞歸搜索算法(3D recursive search,3DRS)。為了盡可能真實(shí)地獲取MV,MVS對(duì)塊匹配進(jìn)行了平滑約束,從而有效抑制異常的MV。MVS可以通過(guò)中值濾波和懲罰項(xiàng)來(lái)實(shí)現(xiàn),但是這種方法增加了計(jì)算復(fù)雜度。MVS之后,利用MVM從相鄰原始幀的MVF推導(dǎo)出中間幀的MVF。前向MVM是將MV的二分之一沿著其方向映射到目標(biāo)塊,會(huì)出現(xiàn)少量的時(shí)域錯(cuò)配問(wèn)題,中間幀的某些塊可能存在多個(gè)MV或者沒(méi)有MV,導(dǎo)致重疊和空洞。根據(jù)時(shí)間對(duì)稱假設(shè),雙邊MVM對(duì)中間幀進(jìn)行雙邊運(yùn)動(dòng)估計(jì)(bilateral motion estimation,BME),能夠有效避免塊偽影。然而,由于視頻序列統(tǒng)計(jì)偏差,異常MV總是存在,導(dǎo)致運(yùn)動(dòng)補(bǔ)償插幀過(guò)程中出現(xiàn)邊緣模糊和偽影。現(xiàn)有的運(yùn)動(dòng)補(bǔ)償插幀算法,如重疊塊運(yùn)動(dòng)補(bǔ)償(overlapped block motion compensation,OBMC),可以減少異常MV帶來(lái)的不良影響。
現(xiàn)有研究校正異常MV耗費(fèi)大量的計(jì)算,但MV精確度的提高不盡人意。本文提出了一種基于空間預(yù)測(cè)的ME算法,此算法的核心是一種預(yù)測(cè)模型,它定義了兩種類型的塊:基礎(chǔ)塊和缺失塊。為提高BME計(jì)算速度,計(jì)算基礎(chǔ)塊的MV時(shí)采用連續(xù)消除算法(successive elimination algorithm,SEA),減少搜索候選并采用下采樣模式進(jìn)行塊匹配,進(jìn)而從相鄰基礎(chǔ)塊的MV準(zhǔn)確地恢復(fù)出缺失塊的MV。實(shí)驗(yàn)結(jié)果表明,所提算法生成的上轉(zhuǎn)換視頻效果良好且計(jì)算復(fù)雜度較低。
本文提出基于空間預(yù)測(cè)算法的流程圖如圖1所示,首先將視頻幀進(jìn)行塊分類:基礎(chǔ)塊和缺失塊,再利用SEA進(jìn)行全搜索ME獲取基礎(chǔ)塊的MV,然后采用空間預(yù)測(cè)方法根據(jù)基礎(chǔ)塊的運(yùn)動(dòng)信息實(shí)現(xiàn)缺失塊的ME,結(jié)合兩類塊的MV值,使用兩幀參考幀進(jìn)行插值中間幀。
圖1 基于空間預(yù)測(cè)算法流程圖
空間預(yù)測(cè)技術(shù)的關(guān)鍵在于有效利用空間相關(guān)性,而應(yīng)用該技術(shù)的前提在于塊分類??臻g預(yù)測(cè)技術(shù)模型如圖2所示?;疑珘K表示基本塊,其余塊表示缺失塊,這兩種塊在水平和垂直方向交替,通過(guò)BME算法精確獲得基礎(chǔ)塊的MV,然后利用相鄰基礎(chǔ)塊的運(yùn)動(dòng)信息計(jì)算出每個(gè)缺失塊的MV。
圖2 塊分類模型
缺失塊的MV獲得由相鄰基本塊的MV進(jìn)行預(yù)測(cè),更好的ME算法可以保證基礎(chǔ)塊MV的精確度。全搜索ME在基礎(chǔ)塊上進(jìn)行BME算法。如圖3所示,全搜索ME是匹配搜索窗口內(nèi)最優(yōu)運(yùn)動(dòng)軌跡,但缺點(diǎn)明顯。假設(shè)搜索半徑為8,塊尺寸為16×16,則需要搜索289個(gè)塊才能找到最佳匹配塊。以CIF為例,396個(gè)16×16尺寸的匹配塊,使用全搜索ME意味著巨大的計(jì)算量,因此,引入SEA降低計(jì)算復(fù)雜度。
圖3 全搜索ME示意圖
假設(shè)插值幀f的分辨率是×,塊的大小為×,每幀包含×/s個(gè)標(biāo)準(zhǔn)塊,和必須能被s整除,每個(gè)塊的左上角像素坐標(biāo)(,)作為參考,第幀和第+1幀中塊(,)的亮度累加和計(jì)算如下:
其中f(+,+)和f(+,+)分別表示f和f中(+,+)坐標(biāo)處的亮度,(,)是塊中像素坐標(biāo)。
其中B(-,-)是f中塊(-,-)所有像素行向量,‖·‖是向量的范數(shù)。計(jì)算后,v'在搜索窗口內(nèi)進(jìn)行候選塊更新,如果滿足以下不等式:
計(jì)算第個(gè)候選塊的差值D:
更新當(dāng)前基礎(chǔ)塊MVv:
然后更新=min{D,};否則,v保持不變,搜索窗口內(nèi)的所有候選塊根據(jù)以上過(guò)程對(duì)稱遍歷。
通過(guò)全搜索ME獲取基礎(chǔ)塊的MV,當(dāng)前缺失塊相鄰四個(gè)基礎(chǔ)塊的MV作為候選矢量,候選矢量集組成如下:
當(dāng)前缺失塊的左上角像素坐標(biāo)設(shè)為,根據(jù)雙向絕對(duì)差值和計(jì)算缺失塊的MV:
其中B(-)是f中塊(-)所有像素行的向量,‖·‖是向量的范式,是候選向量。
預(yù)測(cè)得到缺失塊MV,兩類塊的所有MV形成插值幀f的MVFV,然后利用OBMC計(jì)算f中=(,)處的像素值:
其中v是V在處的MV,表示三種重疊類型:=1代表沒(méi)有重疊部分;=2代表兩塊重疊部分;=3代表四塊重疊部分,根據(jù)重疊類型設(shè)置值,=1,=1;=2,=1/2;=3,=1/4。
所有用于實(shí)驗(yàn)的測(cè)試序列為標(biāo)準(zhǔn)的CIF(352×288)格式和30幀/秒,通過(guò)不同視頻序列測(cè)試空間預(yù)測(cè)算法性能,并與文獻(xiàn)[21]和文獻(xiàn)[22]ME算法進(jìn)行比較。從主客觀兩個(gè)角度對(duì)插值幀進(jìn)行評(píng)價(jià),客觀評(píng)價(jià)采用峰值信噪比(peak signal-to-noise ratio,PSNR)和結(jié)構(gòu)相似度(structural similarity,SSIM)。
選擇Foreman和Stefan視頻序列進(jìn)行主觀視覺(jué)質(zhì)量對(duì)比實(shí)驗(yàn),其中Foreman包含適度的場(chǎng)景運(yùn)動(dòng),而Stefan有大量的劇烈運(yùn)動(dòng)。圖4和圖5為對(duì)比算法和所提算法的插值幀,分別以foreman的第78幀和Stefan的第88幀為例。觀察插值幀效果,可以看出對(duì)比算法人臉出現(xiàn)明顯模糊和偽影,所提算法對(duì)人臉部分插值效果更好,對(duì)比算法在Stefan中存在大量的背景模糊和廣告牌字體錯(cuò)位問(wèn)題,而所提算法可以減少背景模糊并提供更多的細(xì)節(jié)??傮w而言,所提算法可以提供更好的主觀視覺(jué)質(zhì)量。
圖4 三種算法的Foreman序列視覺(jué)對(duì)比
圖5 三種算法的Stefan序列視覺(jué)對(duì)比
表1顯示了不同F(xiàn)RUC技術(shù)的PSNR值。對(duì)于9個(gè)測(cè)試視頻序列,與文獻(xiàn)[21]方法相比,本文算法顯著提高了PSNR值,最大提高了2.72dB,達(dá)到了提高插值幀質(zhì)量的目的。文獻(xiàn)[22]方法可以有效地應(yīng)用于相對(duì)靜態(tài)或包含較少運(yùn)動(dòng)的視頻序列中,如Foreman和Mother。但對(duì)于包含大量運(yùn)動(dòng)的視頻,如Bus,City,Football,Mobile,Stefan,所提算法可以更精確地跟蹤目標(biāo)的軌跡,PSNR值比文獻(xiàn)[22]提高了3.21dB。不同F(xiàn)RUC技術(shù)的SSIM值如表2所示。通過(guò)對(duì)比看出,本文提出的算法具有明顯的優(yōu)勢(shì),在處理靜態(tài)視頻方面只比文獻(xiàn)[22]效果差。如表3所示,所提算法運(yùn)行時(shí)間比文獻(xiàn)[21]方法和文獻(xiàn)[22]方法短,說(shuō)明空間預(yù)測(cè)算法的計(jì)算復(fù)雜度較低。
表1 不同ME方法在測(cè)試序列上PSNR值比較
表2 不同ME方法在測(cè)試序列上的SSIM值比較
表3 不同ME方法在測(cè)試序列上的平均處理時(shí)間比較
綜上可得,所提算法的計(jì)算資源配置更有效,結(jié)合全搜索ME和空間相關(guān)性,保證精度的同時(shí)節(jié)省計(jì)算時(shí)間。
本文提出了一種基于空間預(yù)測(cè)的ME算法,以提高插值幀的MVF精度。設(shè)計(jì)了一個(gè)預(yù)測(cè)模型,將視頻幀劃分為基礎(chǔ)塊和缺失塊。首先用BME估計(jì)基礎(chǔ)塊的MV,然后由相鄰基礎(chǔ)塊的MV推導(dǎo)出缺失塊的MV。為了減少冗余計(jì)算,設(shè)計(jì)了雙邊SEA來(lái)改進(jìn)BME?;贛VF的空間相關(guān)性,設(shè)計(jì)MV預(yù)測(cè)來(lái)計(jì)算缺失塊的MVF。實(shí)驗(yàn)結(jié)果表明,本文所提算法能夠在較低計(jì)算復(fù)雜度下提高插值幀的客觀和主觀質(zhì)量。