洪惠群
(陽光學院人工智能學院,福建福州 350015)
去隔行算法是實現視頻信號從隔行掃描到逐行掃描格式轉換的關鍵技術,其實質是對隔行電視信號進行插補,重建奇偶場中缺少的行信號,將場圖像還原成幀圖像[1,2].
傳統的去隔行算法主要分為場間去隔行算法、場內去隔行算法和混合去隔行算法[3].場間去隔行算法主要利用時間上相鄰的前一場或后一場的數據進行插值,可以消除閃爍,保護細節,提高圖像的垂直分辨率,比較適合處理靜止場景.當處理運動場景時,常會產生嚴重的運動模糊、齒狀、羽化等現象[4].場內去隔行算法主要利用空間上同一場相鄰數據進行插值,丟失另外一場畫面的部分細節,能較好地消除閃爍、羽化或鋸齒等問題;但存在垂直分辨率下降、幾何失真及部分區域較模糊、細節表現不足等現象[5].混合去隔行算法主要有運動補償、中值濾波、運動自適應等算法,綜合了場內去隔行算法和場間去隔行算法,具有較好的去隔行效果,但計算量偏大,垂直分辨率不高[6].
其中,混合去隔行算法中的運動自適應算法是根據運動信息將圖像劃分為靜止區域和運動區域,對靜止區域采用場間去隔行算法[7],對于運動區域采用場內去隔行算法,計算量相對較小,能夠有效減少硬件開銷,能夠提高靜止區域的垂直分辨率,并有效消除運動區域的羽化、重影等現象,但無法提升運動區域的垂直分辨率,當場景中存在運動較快的空間周期模式運動時容易產生運動虛像[8].因此,本文以傳統的運動自適應算法為基礎,通過改進算法中的動靜檢測方法[9],預先對視頻進行插值點運動狀態判斷,能更好的識別視頻中運動區域和靜止區域,提高其抗噪聲能力.改進后的算法具有更好的靜止物體邊緣保持能力,能夠根據圖像內容自適應的調節運動靜止加權權重,達到更好的去隔行效果.
改進的運動自適應去隔行算法主要由內容自適應動靜檢測模塊、場內插值和場間插值的權重自適應調節模塊、靜止區域插值模塊和運動區域插值模塊等組成.本文主要在動靜檢測方面進行試驗與改進.系統的工作流程如圖1所示.當隔行掃描視頻幀輸入時,系統采用本文改進的運動自適應去隔行算法進行動靜檢測,根據檢測結果判斷該視頻幀中的靜止區域和運動區域范圍,并對靜止區域和運動區域分別進行場間去隔行插值和場內去隔行插值,隨后將兩個區域合并成視頻幀進行輸出.在視頻動靜檢測過程中,本文采用基于內容優化的雙邊濾波器進行算法改進.

圖1 系統的工作流程圖Fig.1 Flow Chart of the System
基于內容優化雙邊濾波改進的動靜檢測方法是本文改進的運動自適應算法中重要的一個步驟,在進行動靜檢測前,先對視頻進行預處理得到對應的幀差信號(由兩幀的各個點差值絕對值組成的一幅圖像).為了判斷某個像素是處于運動區域還是靜止區域,如果采用單點測試,由于噪聲影響,魯棒性太弱.因此,通常都是判斷以這個像素點為中心的一個窗口內的幀差信號的絕對差的總和(SAD) 或者差值的平方和(SSE) 是否小于某個閾值,或者利用計算結果做歸一化,使之成為場內插值和場間插值的加權權重[10-12].如果采用 SSE 進行判斷的方式,本質就是判斷以該像素為中心的窗口內各個像素組成的向量的歐氏距離是否小于某個閾值,即為對幀差平方信號進行平滑濾波,判斷濾波后的某個像素的幀差平方信號是否小于一定的值.具體計算公式如下:
(1)

(2)

在以往的研究中,通常卷積核 K 采用 box filter,即對窗口內的所有像素求平均得到的用于判斷動靜區域的值.但是這種方法存在許多弊端.
首先,窗口內每個像素點采用相同的權重,并未考慮空間上每個像素點對中心點的距離相關性.其次,窗口大小是固定的.如果窗口太大導致靜止物體的邊緣像素被誤認為運動,而如果窗口太小則魯棒性太差,容易出現許多誤判.再有,采用固定閾值,無法對視頻內容進行區分.由于視頻編碼后視頻紋理區域編碼噪聲大,而平坦區域噪聲小,如果采用固定閾值,容易導致視頻紋理區域更加趨向于被判斷為運動區域,而平坦區域更趨向于被判斷為靜止區域.
為了克服上述三個問題,本文提出了一種基于內容優化雙邊濾波運動自適應去隔行算法.該算法具體實現如下:
(1)假設輸入圖像為 F(n),F(n+1),兩幅圖像的某一像素 (x,y) 差值平方為:
Dl(x,y,n)=(Fl(x,y,n)-Fl(x,y,n+1))2
(3)
其中,Fl為圖像的亮度信號.為了克服窗口內采用相同權重所帶來的動靜區域判斷的空間局限性,本文采用空間上不同的權重的卷積核來表示空間的某個像素對中心像素(x,y) 的相關度不同,改進了傳統采用相同權重的卷積核的計算方式.具體表示如下:
通過多次試驗,將卷積核Kl設為:

(4)
卷積結果可以看作時間上的梯度值 Gt,計算公式為:
Gt=Kl*Dl
(5)
通常視頻中的作為物體的前景和背景具有不同的亮度信息,為了得到更好的判斷靜止者靜止背景邊緣像素,本文提出了一種類似雙邊濾波器的值域判斷,利用值域信息對空間濾波器系數進行調整,得到更好的動靜判斷結果.具體實現如下:
假設像素 F(k,l,n) 在以像素 F(x,y,n) 為中心的卷積窗內部,則它們的差值為:
δ(k,l,n)=|F(x,y,n)-F(k,l,n)|
(6)
對差值進行歸一化:
(7)
其中,CLIP 為截至函數,表達式如下:

(8)
(2)利用值域差值對卷積核進行優化,假設空間上像素 (k,l) 的權重為:ωs(k,l)
則優化后的卷積核上像素 (k,l) 的權值為:
Kt(k,l)=ωv(k,l)·ωs(k,l)
(9)
由此可以得到時間的差值,即時間梯度:
Gt(n)=D(n)*Kt
(10)
視頻中垂直方向細節部分在去隔行時,使用場內插值方法,會產生劇烈抖動,在改進的算法中,需要利用場間插值方法來彌補垂直方向上的高頻紋理數據,因此,在進行動靜檢測時,其結果依賴于時間方向的梯度與空間垂直方向上的梯度的比值.也就是說,如果空間垂直方向的梯度越大,在進行動靜檢測時,對時間軸上的變化容限越大.
為了計算空間上的垂直梯度,采用Sobel 卷積核如下:
(11)
通過 Sobel 核卷積,可以得到垂直梯度值:
Gv(n)=F(n)*Kv
(12)
最終本文根據空間上的梯度和時間上的梯度的比值,可以得到某個像素的運動和靜止的權重W(x,y,n).
(13)
其中,Gt(x,y,n)為幀 n 像素點(x,y) 的時間梯度,Gv(x,y,n) 為幀 n 像素點 (x,y) 的空間梯度,為比例系數.

圖2 測試視頻幀1Fig.2 Frame 1 of the Tested Video
為了試驗驗證本文中提出的動靜判斷方法,本文采用多種測試序列進行測試,同時為了簡化方法,并突出動靜判決這個主題,本文的場內插值僅使用簡單的 LA,場間僅使用當前幀的同位置像素.由于篇幅有限,下面僅舉其中HQV 測試視頻的兩個實驗幀作為例子.
實驗幀一采用的是Flagtest測試序列,在Flag test中,某幀的圖像如下圖2所示.
它的特點是,旗幟一直處在運動中,背景靜止,但是存在很大的噪聲,前景疊加了一個箭頭.

圖3 測試幀1傳統算法歸一化權重圖Fig.3 Traditional Algorithm Normalizing Weight Graph of Tested Frame 1
對于測試幀1,如果采用傳統的動靜判決方式,由于窗口選擇和閾值都是固定,很難準確將帶有噪聲的背景和緩慢移動的旗幟很好的區分開,且由于采用了窗口的 boxfilter,它的邊界存在很大的過渡空間,導致前景中的箭頭的邊緣容易受到后面的旗幟運動的干擾,偏向于判斷為運動而使用場內插值導致垂直分辨率下降,并且產生抖動.
采用傳統的動靜判決方法得到的場內插值和場間插值的權重圖如下圖3所示,為了繪圖方便,權重被歸一化到 0~255.權重值越小則場間插值權重越高,反之則場內插值權重越高.
由圖3可見,采用傳統動靜判決方法,背景由于存在很大的噪聲干擾,出現比較多的灰色點,并且場間插值權重并沒有降到足夠低.其次,由于每個像素都是由一個窗口內的像素的差值平均而來,旗幟的邊緣存在很大的過渡帶.圖3上可見,前景的箭頭周邊幾乎都已經偏向白色.

圖4 測試幀1改進算法歸一化權重圖Fig.4 Improved Algorithm Normalizing Weight Graph of Tested Frame 1
而使用本文提出的算法得到權重圖如下圖4所示,同樣,為了作圖方便,本文將權重映射到 0-255.由圖4中可見,背景的噪聲干擾被很好的抑制,并且旗幟的周邊過渡帶比較窄,運動和靜止的像素被很好的區分開,而且圖中還能夠很容易的識別的箭頭的形狀,靜止的箭頭邊緣被很好的保持下來.并且,本文提出的基于內容的自適應方法,能夠對圖像中水平線的加權權重進行很好的調節,水平線的場間插值權重被提高,能夠有效的抗閃爍.圖5,圖6分別代表這兩種算法的去隔行效果.

圖5 測試幀1傳統動靜檢測方法去隔行效果Fig.5 Traditional Static and Motion Detection De-Interlacing Effect of Tested Frame 1圖6 測試幀1改進的動靜檢測方法去隔行效果Fig.6 Improved Static and Motion Detection De-Interlacing Effect of Tested Frame 1
實驗測試幀2采用的是 Detail test 測試序列,在 Detail test中,某幀的圖像如下圖7所示.
它的特點是,背景靜止,但是存在小物體運動.比如天空中的飛機和路上的汽車.

圖7 測試視頻幀2Fig.7 Frame 2 of Tested Video
如果采用傳統的動靜判決方式,由于窗口選擇和閾值都是固定,很難準確將帶有噪聲的背景和運動的車、飛機很好的區分開,且由于采用了窗口的 boxfilter,它的邊界同樣存在很大的過渡空間,導致在畫面中占比較小運動的車和飛機容易被周邊大面積的靜止背景影響,偏向于判斷為靜止而使用場間插值導致出現梳狀線.
采用傳統的動靜判決方法得到的場內插值和場間插值的權重圖如下圖8所示,為了繪圖方便,權重被歸一化到 0~255.權重值越小則場間插值權重越高,反之則場內插值權重越高.
由圖8可見,采用傳統動靜判決方法,背景由于存在很大的噪聲干擾,出現比較多的灰色點,并且場間插值權重并沒有降到足夠低.其次,由于每個像素都是由一個窗口內的像素的差值平均而來,小運動物體,如汽車的邊緣存在很大的過渡帶.圖8上可見,汽車的周邊運動權重存在較大的過渡帶.導致最后的去隔行時使用了較多的場間插值,導致梳狀線的出現.
而使用本文提出的算法得到權重圖如下圖9所示,同樣,為了作圖方便,本文將權重映射到 0~255.由圖4中可見,背景的噪聲干擾被很好的抑制,并且汽車周邊過渡帶比較窄,運動和靜止的像素被很好的區分開,而且圖中還能夠很容易的識別的汽車的形狀,運動的汽車邊緣被很好的保持下來.很好的區分使用場間和場內插值的區域,不會出現傳統算法中出現的梳狀線.圖10,圖11分別代表這兩種算法的去隔行效果.

圖8 測試幀2傳統算法歸一化權重圖Fig.8 Traditional Algorithm Normalizing Weight Graph of Tested Frame 2圖9 測試幀2改進算法歸一化權重圖Fig.9 Improved Algorithm Normalizing Weight Graph of Tested Frame 2圖10 測試幀2傳統算法去隔行效果Fig.10 Traditional Algorithm De-Interlacing Effect of Tested Frame 2圖11 測試幀2改進算法去隔行效果Fig.11 Improved Algorithm De-Interlacing Effect of Tested Frame 2
本文提出了一種基于內容優化雙邊濾波運動自適應視頻去隔行算法.該算法以傳統的運動自適應算法為基礎,通過改進的動靜檢測方法,對視頻進行插值點運動狀態判斷,綜合采用多種方法,對不同的區域,自適應的選擇最優插值方法.實驗證明,與傳統的去隔行方法相比,該算法能較好的還原垂直細節,有效的抗閃爍,達到更好的去隔行效果.