運動估計(Motion Estimation)是幀率轉換中運動補償內插算法的關鍵環(huán)節(jié),運動估計的精度直接決定內插幀的質量[1~4],目前三維遞歸搜索法(3-D Recursive Search,3DRS)是現(xiàn)有通用的運動估計實現(xiàn)方法。但是傳統(tǒng)的三維遞歸搜索算法[5~7]存在以下不足:當視頻序列存在場景切換時,相鄰幀的相關性下降,這種內插幀的方法就會失效;當視頻序列劇烈運動,某一宏塊包含多個運動對象時,用此搜索算法估算出的宏塊運動矢量不準確,從而導致內插出來的圖像存在“塊效應”;同時,傳統(tǒng)的三維遞歸搜索算法采用固定位置鄰近宏塊運動矢量作為候選運動矢量,由于指定宏塊的局限性,通常有很多候選運動矢量是相同的,而與當前塊運動一致的運動矢量卻未進入候選矢量中,從而影響算法收斂速度和運動估計效果。
針對傳統(tǒng)三維遞歸搜索方法的不足,本算法先依據(jù)灰度直方圖的二階差分檢測場景,將視頻序列劃分為多個場景片段進行場景內插幀,同時利用灰度直方圖的一階差分獲得該場景內的幀序列運動強度,根據(jù)運動強度設置匹配塊大小。在包含當前塊的指定區(qū)域中,選取該區(qū)域中所有塊作為當前塊的時空預測塊,采用三維遞歸搜索算法獲得當前塊所有時空預測塊的運動矢量,選出互異的運動矢量作為當前塊的候選運動矢量,依據(jù)本文給出的比較指標求出最優(yōu)運動矢量。最后對最優(yōu)運動矢量進行平滑濾波,補償重構中間幀。
本算法包括4個主要模塊:場景及運動強度檢測、三維遞歸搜索獲取運動矢量、候選運動矢量處理及平滑中值濾波,具體如下:
對輸入的原始視頻序列,首先計算灰度直方圖的一階及二階差分[8],進行場景檢測,獲取幀間運動強度,根據(jù)運動強度的強弱設置匹配塊(測量窗口)的尺寸。
每個候選運動矢量都與當前塊對應一個匹配塊,用設定的比較指標計算所有候選運動矢量對應的匹配塊和當前塊相似程度,選出相似度最高的運動矢量作為當前塊的最優(yōu)運動矢量。
對上述的最優(yōu)運動矢量平滑中值濾波處理,插值補償重構中間幀。
圖1 算法結構框圖
為了有效消除場景變換檢測的誤檢,采用直方圖的二階差分檢測場景變換,幀間直方圖二階差分計算公式為[8]
當直方圖的二階差分大于給定場景切換檢測閥值時,即可認為發(fā)生了場景切換。
幀間運動強度對宏塊大小選取有較大影響,當運動劇烈時,為了獲取更多的運動細節(jié),獲得正確描述運動的估計矢量,需將該匹配塊細分,依據(jù)運動強度強弱,設置匹配塊(測量窗口)尺寸,設定宏塊運動強度高低門限值和每個宏塊的運動強度被定義成3種情形。
三維遞歸搜索塊匹配算法是結合空間和時間的遞歸算法,對于第t幀中像素點(x,y)所在的宏塊,其時空相關預測候選運動矢量的集合C為[5-7]
式(4)中候選矢量對應的時空預測塊,總是在當前塊鄰域中幾個固定的位置,它們的運動矢量在很多情形是相同的,而當前塊真正的運動矢量卻沒有被選為候選矢量,從而影響運動估計效果.適當擴大包含當前塊的區(qū)域,從而擴大候選運動矢量的范圍,去除候選矢量中相同的矢量,可避免大量候選矢量的重復而有效運動矢量被遺漏的問題,有效增加運動估計的效果,加快運動估計的收斂速度.
本算法根據(jù)運動強度對圖像按塊進行分割,指定包含當前塊的一個含有個塊的區(qū)域,按照從上到下、從左到右的順序掃描排序,該區(qū)域中位于當前塊之前的宏塊為空間預測塊,位于當前塊之后的宏塊為時間預測塊,利用三維遞歸搜索算法求出這個預測塊對應的時空運動矢量,將這個運動矢量構成的集合與式(4)作并集,再從此并集中挑選出互異的運動矢量,作為當前塊的候選運動矢量集合
對當前塊,每個候選運動矢量都對應一個匹配塊,計算候選運動矢量匹配塊與當前塊灰度值絕對差和(sum of absolute differences),計算公式為
運動矢量的類型有:空間候選矢量、時間候選矢量、更新矢量,它們在候選矢量中的優(yōu)先級是依次遞減的.為了區(qū)別它們的優(yōu)先級,在SAD值上增加一個類型懲罰因子[5-7],得到評價指標其計算公式為
為了保持運動矢量的連續(xù)性,減小內插幀的塊效應,需對求出的運動矢量進行平滑濾波.
計算當前塊運動矢量與8鄰域塊運動矢量的距離來衡量它們的一致性。設為當前塊坐標,是其運動矢量,為其周圍8鄰域塊坐標,為其對應的運動矢量,計算衡量運動矢量的連續(xù)性指標計算公式為
若當前塊為不連續(xù)的運動矢量,采用最小二乘法求其運動矢量,即求使下式
在Matlab軟件的Simulink下進行仿真編程[9,10],采用視頻標準化(CIF)格式4個標準測試序列bus、stefan、football、akiyo進行測試,圖像格式為YUV4:2:0,幀率為30幀/s.實驗從原始視頻序列抽取奇數(shù)幀,裁剪成15幀/s,然后采用幀率轉換算法重構出偶數(shù)幀恢復原始幀率,客觀質量通過內插幀與原始幀的PSNR值來衡量。
為驗證本算法的有效性,將本算法與全搜索FS(Full Search)、3DRS這2種算法應用于這4個標準測試序列,然后計算出每種算法的PSNR進行比較,如表1所示。
表1 測試序列內插幀PSNR(dB)
由表1可知,本算法獲得了最優(yōu)的內插幀PSNR值,優(yōu)于傳統(tǒng)的3DRS算法,而3DRS算法又優(yōu)于全搜索法。
圖2給出了3種算法對于akiyo序列內插幀后圖像的主觀質量比較,圖2(b)FS算法出現(xiàn)了明顯的宏塊效應,圖2(c)3RDS算法頭發(fā)邊緣重影現(xiàn)象較為明顯,圖2(d)本文算法對以上兩種情形都有了較為明顯的抑制效果。
圖2 akiyo序列內插幀結果
本文研究將場景檢測引入幀率轉換方法中,計算幀間灰度直方圖的一階和二階差分檢測場景變換及獲取幀間運動強度.在同一場景根據(jù)運動強度設置匹配塊大??;選取包含當前塊的某個指定區(qū)域中所有塊為當前塊的時空預測塊,采用三維遞歸搜索算法得到當前塊的候選運動矢量,同時優(yōu)化候選矢量的選擇,依據(jù)給出的比較指標求出最優(yōu)運動矢量,最后對運動矢量進行平滑濾波,重構內插幀.實驗結果表明, 該算法收斂速度快,計算復雜度低,與傳統(tǒng)的運動補償插值算法相比,對內插圖像的主觀質量和客觀質量都有所提高,易于硬件實現(xiàn),具有很強的實用性.