[劉曉玲 張萍]
?
反交錯濾鏡YADIF及PP li的技術(shù)實現(xiàn)分析
[劉曉玲張萍]
摘要反交錯濾鏡是一種視頻圖像編碼處理技術(shù),用于解決從隔行掃描到逐行掃描的轉(zhuǎn)換后圖像出現(xiàn)的拖尾及鋸齒等畫面質(zhì)量問題。本文分析了兩種采用不同技術(shù)原理實現(xiàn)的反交錯濾鏡YADIF和PP li的具體實現(xiàn)方式,并提出了一種綜合使用兩種濾鏡獲得更好的反交錯處理畫面效果的方法。
關(guān)鍵詞:反交錯 YADIF 逐行掃描 隔行掃描
劉曉玲
2007年碩士畢業(yè)于中山大學(xué),現(xiàn)就職于中國電信股份有限公司廣州研究院,研究方向:視頻編解碼算法、視頻云轉(zhuǎn)碼,云計算。
張萍
碩士,中國電信股份有限公司廣州研究院,工程師,研究方向:視頻編解碼算法、互聯(lián)網(wǎng)應(yīng)用、云計算。
1.1隔行掃描與逐行掃描的原理及轉(zhuǎn)換問題
隔行掃描[1],是每一幀被分割為兩場,每一場包含了一幀中所有的奇數(shù)掃描行或者偶數(shù)掃描行,通常是先掃描奇數(shù)行得到第一場,然后掃描偶數(shù)行得到第二場。在處理設(shè)備和帶寬受限的情況下,隔行掃描可以獲得比逐行掃描更好的視頻播放質(zhì)量。例如廣播電視系統(tǒng)的NTSC及 PAL制式,都是采用隔行掃描的方式[2]。另外,在安防領(lǐng)域眾多的模擬信號設(shè)備也是采用隔行掃描的方式。然而,隨著電子技術(shù)的發(fā)展,越來越多的視頻設(shè)備采用逐行掃描的方式。特別是互聯(lián)網(wǎng)上的視頻流格式,只支持逐行掃描方式。因此,需要反交錯技術(shù),將視頻影像從隔行掃描的方式轉(zhuǎn)換為逐行掃描的方式。
在轉(zhuǎn)換過程,如果直接將兩幅隔行掃描的圖像合成一幀,則往往會出現(xiàn)橫向的“鋸齒”現(xiàn)象。這是由于隔行掃描方式下奇場和偶場的拍攝時間存在時差。在目標(biāo)運動的情況下,兩次拍攝的目標(biāo)會存在一個相對于攝像機的橫向位移,這個位移反映在圖像上就是圖像奇、偶行之間會存在錯位。直觀的感覺就是圖像上原本應(yīng)該很平滑的邊緣會變成參差不齊的鋸齒狀邊緣。反交錯Deinterlace技術(shù)正是為了解決這一問題而產(chǎn)生。
1.2反交錯的技術(shù)原理與目標(biāo)
在反交錯的實現(xiàn)過程,主要的技術(shù)方法可以分為兩類[3],場內(nèi)插值和場間插值。場內(nèi)插值,是根據(jù)隔行掃描獲得的一半圖像數(shù)據(jù),通過插值計算,填補上另一半的數(shù)據(jù),例如下文介紹的PP li濾鏡。場內(nèi)插值的實現(xiàn)簡單,但無法提高畫面的垂直分辨率,且會使得圖像邊緣模糊。場間插值,則是根據(jù)奇偶場合并后的數(shù)據(jù)進行插值計算。直接進行奇數(shù)場和偶數(shù)場合并的鋸齒現(xiàn)象,主要是由于拍攝目標(biāo)的橫向運動分量產(chǎn)生,因此,一些反交錯算法提出給予基于運動搜索和補償?shù)姆椒?。不過雖然基于運動搜索和補償?shù)姆椒ǐ@得的圖像質(zhì)量效果很優(yōu)秀,但是由于往往需要耗費大量資源以及時間,以至于無法直接應(yīng)用于實時視頻流的場景。在實時視頻流的反交錯處理中,往往需要在性能和畫面質(zhì)量之間選擇一個最優(yōu)方案。下文介紹的YADIF濾鏡則是一種具備運動補償思想的方法。在計算過程中會通過考量目標(biāo)點及垂直方向上的周圍點在時間軸上的變化,以此對目標(biāo)點值進行矯正,是一種具備運動搜索與運動補償能力的高效簡單的處理方法。
YADIF是一種反交錯過濾器算法[4]?;驹硎窃诿恳粠瑘D像中,通過設(shè)定頂部優(yōu)先或底部優(yōu)先,相應(yīng)選擇奇數(shù)行或偶數(shù)行為正確數(shù)據(jù),另外一半數(shù)據(jù)則通過計算矯正獲得。以頂部優(yōu)先為例,YADIF計算基于以下原則:
(1)對于待糾正的點,當(dāng)前幀的上一行和下一行的相同位置的點是正確的;
(2)對于待糾正的點,當(dāng)前幀的的上兩行和下兩行的相同位置的點是可供參考的;
(3)對于待糾正的點,前一幀的相同位置的點是可供參考的;
(4)對于待糾正的點,前一幀的上一行、下一行、上兩行和下兩行的相同位置的點是可供參考的。
基于上述假設(shè),YADIF在計算一個點的值時,會根據(jù)它的周圍信息(垂直方向上的點)以及運動方向(時間軸上的信息,上一幀的相同位置及垂直方向的點)進行計算。計算的基本方法包括均值、差值、以及比較計算。具體的計算流程如下:
(1)取當(dāng)前幀上一行和下一行相同點的值的均值,以此為基數(shù),記為spatial_pred。
(2)以當(dāng)前點的值,與上一幀的當(dāng)前位置點,取二者均值,記為d。
(3)當(dāng)前點的值與上一幀當(dāng)前點的差值,取其的1/2,記為diff0。
再考慮上下一行的點的前一幀與當(dāng)前幀的差值:取前一幀下一行的點與當(dāng)前幀下一行的點c的差值,前一幀上一行的點與當(dāng)前幀上一行e的點差值,取二者均值,記為diff1。
diff =MAX{diff0,diff1};
(4)進一步計算上下兩行的前一幀與當(dāng)前幀的情況:
①取上一幀的下兩行的點的值,當(dāng)前幀的下兩行點的值,取均值b
②取上一幀的上兩行的點的值,當(dāng)前幀的上兩行點的值,取均值f
int max = FFMAX3(d - e, d - c, FFMIN(b - c, f - e));
int min = FFMIN3(d - e, d - c, FFMAX(b - c, f - e));
diff = FFMAX3(diff, min, -max);
(5)最后將spatial_pred的值限定在區(qū)間(d-diff,d+diff)之內(nèi)。取前點值= spatial_pred
if (spatial_pred > d + diff)
spatial_pred = d + diff;
else if (spatial_pred < d - diff)
spatial_pred = d - diff;
下面是對圖像采用yadif濾鏡進行處理的效果。圖1是原始圖像,圖2是經(jīng)過yadif濾鏡處理過后的圖像。圖像1的可見橫向的鋸齒,特別是下方滾動字幕。圖像2畫面質(zhì)量基本接近原圖,鋸齒現(xiàn)象也有所減輕,但是下方的字幕仍然還是可見有鋸齒。
圖1 原始圖片
圖2 經(jīng)過yadif處理后的圖片
PP濾鏡組提供了一組使用不同插值方法實現(xiàn)的子濾鏡,包括LINEAR_IPOL_DEINT_FILTER,LINEAR_ IPOL_DEINT_FILTER、CUBIC_IPOL_DEINT_FILTER、MEDIAN_DEINT_FILTER等等。本文以子濾鏡li (LINEAR_IPOL_DEINT_FILTER)為例,其計算原理如下:
(1)對每一幀的數(shù)據(jù)按順序等分成不同的block,每個block的大小是8*8Byte;
(2)在block內(nèi)部,對待修正的點,取上一行相同位置的點和下一行相同位置點的值,通過以下位運算獲得:
src[stride*k]= (a|b) - (((a^b)&0xFEFEFEFEUL)>>1);
其中,a=src[stride*(k-1)],=src[stride*(k+1)],stride=d ata->linesize。
圖3 是原始圖像圖1經(jīng)過濾鏡pp=li的處理之后的效果。字幕的基本沒有鋸齒現(xiàn)象,然而整體畫面明顯模糊了。
圖3 經(jīng)過濾鏡pp=li的處理之后的效果
通過的實驗對比效果中發(fā)現(xiàn),使用YADIF濾鏡,獲得的視頻的運動畫面質(zhì)量較好,但是滾動字幕的鋸齒現(xiàn)象還是比較明顯;采用PP LI濾鏡則對滾動字幕的鋸齒現(xiàn)象處理較好,但是運動畫面質(zhì)量有相對比較明顯的下降,出現(xiàn)輪廓模糊,畫面感不夠銳利,特別是左側(cè)的臺徽圖案圖標(biāo)。因此本文提出一種通過區(qū)域劃分的方式,對視頻圖像的不同區(qū)域采用不同濾鏡的,可達到同時獲得較優(yōu)的運動畫面質(zhì)量與滾動字幕質(zhì)量的效果。
具體的實現(xiàn)方式是,對整個視頻畫面進行區(qū)域劃分,將滾動字幕的所處區(qū)域劃為字幕區(qū)域,其它部分為運動畫面區(qū)域。對滾動字幕區(qū)域采用PP li濾鏡,而對運動畫面區(qū)域采用YADIF區(qū)域。
圖4 通過區(qū)域劃分整合兩種濾鏡的處理效果
對視頻編碼圖像的反交錯處理是傳統(tǒng)電視視頻信號到互聯(lián)網(wǎng)視頻流格式轉(zhuǎn)換中必須使用的關(guān)鍵技術(shù),由于電視視頻信號上疊加的滾動字幕與主體畫面的圖像呈現(xiàn)不同的運動特性,因此本文提出的分區(qū)域聯(lián)合使用兩種濾鏡的技術(shù)方案能較好的提升整體的畫面質(zhì)量,從而改善用戶的觀看體驗,提高視頻畫面處理質(zhì)量。
參考文獻
1隔行掃描.百度百科。2016.3
http://baike.baidu.com/link?url=2afm7hDpzUNBeeuU3H8ntZta0OR5oekLdYHgYyza8f_ICPXWJm99zHTn1KB svJ6LC4uTF6GEOmoRkYDgEvZyq
2高平.詳解視頻格式種類與轉(zhuǎn)換方法.現(xiàn)代電視技術(shù)。2012.7
3彭勇.一種運動分級反交錯算法在視頻監(jiān)控中的應(yīng)用.儀器儀表用戶。Vol.16, ,No.3.2009
4YADIF. https://trac.handbrake.fr/wiki/yadif 2016.3
DOI:10.3969/j.issn.1006-6403.2016.04.011
收稿日期:(2016-03-09)