馬文丹,李 凡,俞文靜
(廣州軟件學院網絡技術系,廣州 510990)
電影通常以每秒24幀的速度播放,而電視節目則以30 Hz的標準幀率播放。特別是在多媒體物聯網中,受無線信道帶寬的限制,對視頻序列進行編碼時要求較低的幀率。低幀率基本可以滿足人們的娛樂需求,但當視頻序列中存在大量快速運動時,會出現運動模糊的現象。高幀率的視頻序列相比低幀率視頻包含更少的模糊和偽影,能夠帶來更好的視覺體驗。因此,在多媒體物聯網的接收端,應提高視頻幀率以使視頻更加流暢、觀看者的舒適度更高。為滿足上述需求,運動補償幀率上轉換(motioncompensated frame rate up-conversion,MC-FRUC)通常可以用來將低幀率視頻轉換為高幀率視頻。
MC-FRUC是一種在兩個相鄰的原始幀之間插入多個插值幀的視頻處理技術,近年來得到了學者們的廣泛關注。由于插值算法的精度在很大程度上影響插值幀質量,因此對運動估計(motion estimation,ME)、運動矢量平滑(Motion vector smoothing,MVS)和運動矢量映射(motion vector mapping,MVM)進行了大量研究。ME是計算兩個相鄰原始幀間的運動矢量場(motion vector field,MVF);MVS是對得到的運動矢量(motion vector,MV)進行校正,提高MV的準確度;MVM是得到插值幀的MVF。
塊匹配算法(block matching algorithm,BMA)是各種ME算法中最典型的方法,與逐像素ME相比具有較低的復雜度。一個標準塊的大小遠遠小于視頻幀的大小并且大多數目標像素分布在不同的相鄰塊,由此提出了基于時空相關性的三維遞歸搜索算法(3D recursive search,3DRS)。為了盡可能真實地獲取MV,MVS對塊匹配進行了平滑約束,從而有效抑制異常的MV。MVS可以通過中值濾波和懲罰項來實現,但是這種方法增加了計算復雜度。MVS之后,利用MVM從相鄰原始幀的MVF推導出中間幀的MVF。前向MVM是將MV的二分之一沿著其方向映射到目標塊,會出現少量的時域錯配問題,中間幀的某些塊可能存在多個MV或者沒有MV,導致重疊和空洞。根據時間對稱假設,雙邊MVM對中間幀進行雙邊運動估計(bilateral motion estimation,BME),能夠有效避免塊偽影。然而,由于視頻序列統計偏差,異常MV總是存在,導致運動補償插幀過程中出現邊緣模糊和偽影。現有的運動補償插幀算法,如重疊塊運動補償(overlapped block motion compensation,OBMC),可以減少異常MV帶來的不良影響。
現有研究校正異常MV耗費大量的計算,但MV精確度的提高不盡人意。本文提出了一種基于空間預測的ME算法,此算法的核心是一種預測模型,它定義了兩種類型的塊:基礎塊和缺失塊。為提高BME計算速度,計算基礎塊的MV時采用連續消除算法(successive elimination algorithm,SEA),減少搜索候選并采用下采樣模式進行塊匹配,進而從相鄰基礎塊的MV準確地恢復出缺失塊的MV。實驗結果表明,所提算法生成的上轉換視頻效果良好且計算復雜度較低。
本文提出基于空間預測算法的流程圖如圖1所示,首先將視頻幀進行塊分類:基礎塊和缺失塊,再利用SEA進行全搜索ME獲取基礎塊的MV,然后采用空間預測方法根據基礎塊的運動信息實現缺失塊的ME,結合兩類塊的MV值,使用兩幀參考幀進行插值中間幀。

圖1 基于空間預測算法流程圖
空間預測技術的關鍵在于有效利用空間相關性,而應用該技術的前提在于塊分類。空間預測技術模型如圖2所示。灰色塊表示基本塊,其余塊表示缺失塊,這兩種塊在水平和垂直方向交替,通過BME算法精確獲得基礎塊的MV,然后利用相鄰基礎塊的運動信息計算出每個缺失塊的MV。

圖2 塊分類模型
缺失塊的MV獲得由相鄰基本塊的MV進行預測,更好的ME算法可以保證基礎塊MV的精確度。全搜索ME在基礎塊上進行BME算法。如圖3所示,全搜索ME是匹配搜索窗口內最優運動軌跡,但缺點明顯。假設搜索半徑為8,塊尺寸為16×16,則需要搜索289個塊才能找到最佳匹配塊。以CIF為例,396個16×16尺寸的匹配塊,使用全搜索ME意味著巨大的計算量,因此,引入SEA降低計算復雜度。

圖3 全搜索ME示意圖
假設插值幀f的分辨率是×,塊的大小為×,每幀包含×/s個標準塊,和必須能被s整除,每個塊的左上角像素坐標(,)作為參考,第幀和第+1幀中塊(,)的亮度累加和計算如下:

其中f(+,+)和f(+,+)分別表示f和f中(+,+)坐標處的亮度,(,)是塊中像素坐標。


其中B(-,-)是f中塊(-,-)所有像素行向量,‖·‖是向量的范數。計算后,v'在搜索窗口內進行候選塊更新,如果滿足以下不等式:

計算第個候選塊的差值D:

更新當前基礎塊MVv:

然后更新=min{D,};否則,v保持不變,搜索窗口內的所有候選塊根據以上過程對稱遍歷。
通過全搜索ME獲取基礎塊的MV,當前缺失塊相鄰四個基礎塊的MV作為候選矢量,候選矢量集組成如下:

當前缺失塊的左上角像素坐標設為,根據雙向絕對差值和計算缺失塊的MV:

其中B(-)是f中塊(-)所有像素行的向量,‖·‖是向量的范式,是候選向量。
預測得到缺失塊MV,兩類塊的所有MV形成插值幀f的MVFV,然后利用OBMC計算f中=(,)處的像素值:

其中v是V在處的MV,表示三種重疊類型:=1代表沒有重疊部分;=2代表兩塊重疊部分;=3代表四塊重疊部分,根據重疊類型設置值,=1,=1;=2,=1/2;=3,=1/4。
所有用于實驗的測試序列為標準的CIF(352×288)格式和30幀/秒,通過不同視頻序列測試空間預測算法性能,并與文獻[21]和文獻[22]ME算法進行比較。從主客觀兩個角度對插值幀進行評價,客觀評價采用峰值信噪比(peak signal-to-noise ratio,PSNR)和結構相似度(structural similarity,SSIM)。
選擇Foreman和Stefan視頻序列進行主觀視覺質量對比實驗,其中Foreman包含適度的場景運動,而Stefan有大量的劇烈運動。圖4和圖5為對比算法和所提算法的插值幀,分別以foreman的第78幀和Stefan的第88幀為例。觀察插值幀效果,可以看出對比算法人臉出現明顯模糊和偽影,所提算法對人臉部分插值效果更好,對比算法在Stefan中存在大量的背景模糊和廣告牌字體錯位問題,而所提算法可以減少背景模糊并提供更多的細節。總體而言,所提算法可以提供更好的主觀視覺質量。

圖4 三種算法的Foreman序列視覺對比

圖5 三種算法的Stefan序列視覺對比
表1顯示了不同FRUC技術的PSNR值。對于9個測試視頻序列,與文獻[21]方法相比,本文算法顯著提高了PSNR值,最大提高了2.72dB,達到了提高插值幀質量的目的。文獻[22]方法可以有效地應用于相對靜態或包含較少運動的視頻序列中,如Foreman和Mother。但對于包含大量運動的視頻,如Bus,City,Football,Mobile,Stefan,所提算法可以更精確地跟蹤目標的軌跡,PSNR值比文獻[22]提高了3.21dB。不同FRUC技術的SSIM值如表2所示。通過對比看出,本文提出的算法具有明顯的優勢,在處理靜態視頻方面只比文獻[22]效果差。如表3所示,所提算法運行時間比文獻[21]方法和文獻[22]方法短,說明空間預測算法的計算復雜度較低。

表1 不同ME方法在測試序列上PSNR值比較

表2 不同ME方法在測試序列上的SSIM值比較

表3 不同ME方法在測試序列上的平均處理時間比較
綜上可得,所提算法的計算資源配置更有效,結合全搜索ME和空間相關性,保證精度的同時節省計算時間。
本文提出了一種基于空間預測的ME算法,以提高插值幀的MVF精度。設計了一個預測模型,將視頻幀劃分為基礎塊和缺失塊。首先用BME估計基礎塊的MV,然后由相鄰基礎塊的MV推導出缺失塊的MV。為了減少冗余計算,設計了雙邊SEA來改進BME。基于MVF的空間相關性,設計MV預測來計算缺失塊的MVF。實驗結果表明,本文所提算法能夠在較低計算復雜度下提高插值幀的客觀和主觀質量。