張應(yīng)均,劉一清,余 奔
(華東師范大學(xué) 信息科學(xué)技術(shù)學(xué)院,上海 200241)
雖然高清數(shù)字電視已經(jīng)越來越普及,但仍然需要對(duì)傳統(tǒng)模擬信號(hào)進(jìn)行兼容。傳統(tǒng)模擬標(biāo)準(zhǔn)如NTSC,PAL和SECAM等都包括了隔行掃描方式[1],而數(shù)字電視主要為逐行掃描方式,因此數(shù)字電視在接收傳統(tǒng)模擬信號(hào)時(shí)一定會(huì)進(jìn)行隔行轉(zhuǎn)逐行變換。常用的去隔行算法可以分為空域法、時(shí)域法和混合法??沼蛩惴ㄖ苯釉诋?dāng)前場(chǎng)插值得到缺失的行,而時(shí)域法涉及到了相鄰場(chǎng)之間的運(yùn)算,混合法結(jié)合了空域和時(shí)域兩種方法的優(yōu)勢(shì)。筆者分析了這3個(gè)方面幾種常見的去隔行算法,根據(jù)算法復(fù)雜度和處理效果折中考慮,提出了一種改進(jìn)的、適于硬件實(shí)現(xiàn)的運(yùn)動(dòng)自適應(yīng)去隔行算法。這個(gè)算法分別選擇了筆者提出的結(jié)合水平邊沿檢測(cè)的ELA算法作為運(yùn)動(dòng)圖像部分處理算法,并選擇場(chǎng)插值法作為靜止圖像部分處理算法。另外還提出一種新的運(yùn)動(dòng)檢測(cè)算法,使用了鄰域窗口內(nèi)帶權(quán)重的4場(chǎng)隔場(chǎng)差值作為運(yùn)動(dòng)估計(jì),并加入了一個(gè)簡(jiǎn)單的2維中值濾波器濾除由于圖像噪聲而引起的運(yùn)動(dòng)檢測(cè)噪點(diǎn)。
去隔行算法可以分為空域法、時(shí)域法和混合法,常見的空域法有直接重復(fù)行法、行平均法和邊沿自適應(yīng)平均法(Edge-based Line Average,ELA)[2-4]。 直接重復(fù)行法最為簡(jiǎn)單,其通過直接重復(fù)行來獲得缺失行,但會(huì)帶來垂直分辨力的下降。而行平均法通過平均缺失行的上下兩行來得到缺失行,也會(huì)帶來垂直方向上的模糊和物體邊緣鋸齒。ELA算法根據(jù)圖像中沿信息來進(jìn)行行插值,可以消除行平均法帶來的物體邊緣鋸齒失真。時(shí)域方法涉及到了相鄰場(chǎng)之間的運(yùn)算,常見方法有場(chǎng)混合法和場(chǎng)插值法。這兩種方法都是利用相鄰奇偶場(chǎng)插值得到逐行輸出場(chǎng),場(chǎng)混合法采用相鄰場(chǎng)兩兩合并的方法。而場(chǎng)插值法則根據(jù)多個(gè)相鄰場(chǎng)線性插值的方法得到缺失行,其處理效果優(yōu)于場(chǎng)混合法。時(shí)域法的優(yōu)點(diǎn)是保證了圖像的垂直分辨力,其缺點(diǎn)是對(duì)于運(yùn)動(dòng)圖像會(huì)產(chǎn)生錯(cuò)位鋸齒失真。混合法有VT中值濾波法[5-6],運(yùn)動(dòng)自適應(yīng)去隔行算法[2-9]以及復(fù)雜度最高的運(yùn)動(dòng)補(bǔ)償去隔行算法[1]?;旌戏ńY(jié)合了空域法和時(shí)域法各自的優(yōu)勢(shì),具有更好的處理效果。
考慮實(shí)現(xiàn)成本和處理效果,采用運(yùn)動(dòng)自適應(yīng)去隔行算法來進(jìn)行隔行轉(zhuǎn)逐行變換。其算法框圖如圖1所示[2-9],主要包括運(yùn)動(dòng)檢測(cè)算法以及場(chǎng)內(nèi)插值算法(空域)和場(chǎng)間插值算法(時(shí)域)3個(gè)部分。運(yùn)動(dòng)檢測(cè)算法對(duì)圖像進(jìn)行運(yùn)動(dòng)檢測(cè),然后根據(jù)檢測(cè)結(jié)果K去處理選擇場(chǎng)內(nèi)插值算法和場(chǎng)間插值算法得到缺失行,最后與當(dāng)前場(chǎng)已有行交織以實(shí)現(xiàn)逐行輸出。這里的fo為輸出函數(shù),它可以是一個(gè)選擇函數(shù),根據(jù)K值是否超過閾值來選擇輸出哪種算法結(jié)果;同時(shí)它也可是一個(gè)非線性函數(shù)[3],根據(jù)K值處理兩個(gè)算法對(duì)輸出的貢獻(xiàn)比例。這樣處理的結(jié)果既利用了時(shí)域算法保證垂直分辨力的優(yōu)點(diǎn),又用空域算法避免了時(shí)域算法在處理運(yùn)動(dòng)圖像上的不足。
圖1 運(yùn)動(dòng)自適應(yīng)去隔行算法框圖
設(shè)計(jì)運(yùn)動(dòng)自適應(yīng)去隔行算法的關(guān)鍵就是圖1中3個(gè)算法的設(shè)計(jì),以及選擇合適的輸出函數(shù)fo。對(duì)于基于空域的場(chǎng)內(nèi)插值算法的選擇,傳統(tǒng)的ELA算法選擇最小方向差為插值方向,但是這種算法的缺點(diǎn)是對(duì)于圖像中的水平邊沿會(huì)出現(xiàn)邊沿誤判,從而導(dǎo)致失真[7]。目前改進(jìn)ELA的一個(gè)方向是增大計(jì)算方向差的窗口,但是并不能完全消除對(duì)水平邊沿的誤判。筆者提出了一種結(jié)合水平邊沿檢測(cè)的改進(jìn)型ELA算法(見圖2)。
圖2 結(jié)合了水平邊沿檢測(cè)的ELA算法
圖2為插值場(chǎng)的一部分,其中Pn為正在處理的待插值像素,點(diǎn)a~j為其上下相鄰行的10個(gè)像素點(diǎn)。為了能夠判斷出水平邊沿,則需要計(jì)算上下兩行像素點(diǎn)的垂直差和上下兩行行內(nèi)的水平差,若垂直差遠(yuǎn)大于水平差則為水平邊沿的可能性就大。垂直方向差和水平方向差定義為
式中:4c和4h是考慮臨近點(diǎn)權(quán)重更大,且中心對(duì)稱。其中VD越大表示水平邊沿的可能性越大,而HD越大表示垂直邊沿的可能性越大。文中取VD>4HD,則判定插值像素部分為水平邊沿。
定義方向差如式(3)所示,若DMIN為方向差最小值,則定義PELA如式(4)所示,即窗口擴(kuò)展了的傳統(tǒng)ELA算法結(jié)果。算法最終的輸出如式(5)所示。
由于算法首先判斷了圖像是否為水平邊沿,因此可以在一定程度上避免傳統(tǒng)ELA對(duì)圖像水平邊沿的不足。另外通過把檢測(cè)窗口上下兩行由原來的各3個(gè)像素?cái)U(kuò)展到各5個(gè)像素,使得方向檢測(cè)擴(kuò)展到約26°~154°,接近水平的邊沿得到更準(zhǔn)確方向的插值。雖然這個(gè)算法實(shí)現(xiàn)起來要比行平均法復(fù)雜,但總的來說實(shí)現(xiàn)成本并不高。
對(duì)于時(shí)域的場(chǎng)間插值算法,使用場(chǎng)插值法,其算法描述如圖3所示。從圖中可以看出場(chǎng)混合法其實(shí)是將待插場(chǎng)前后兩場(chǎng)的行數(shù)據(jù)進(jìn)行平均而得到缺失行。這種輸出的特點(diǎn)既保證了圖像的垂直分辨力,又使得幀率提高1倍,減少圖像畫面的閃爍,而且其硬件也比較容易實(shí)現(xiàn)。
圖3 場(chǎng)插值法
運(yùn)動(dòng)檢測(cè)算法對(duì)于運(yùn)動(dòng)自適應(yīng)去隔行算法來說是至關(guān)重要的,因?yàn)橹挥袦?zhǔn)確檢測(cè)出圖像的運(yùn)動(dòng)狀態(tài)才能選擇合適的插值方法以獲得好的處理效果。運(yùn)動(dòng)自適應(yīng)去隔行算法的運(yùn)動(dòng)檢測(cè)可以既為運(yùn)動(dòng)塊檢測(cè),也可以為逐個(gè)像素點(diǎn)檢測(cè)[8],文中采用處理效果較好的逐點(diǎn)檢測(cè)。一般的運(yùn)動(dòng)檢測(cè)算法采用相鄰場(chǎng)相鄰像素的差作為運(yùn)動(dòng)值估計(jì)。對(duì)于傳統(tǒng)模擬信號(hào)經(jīng)視頻接口芯片采樣后的數(shù)字信號(hào),只使用亮度信號(hào)來作運(yùn)動(dòng)檢測(cè)依據(jù)。理由有3點(diǎn):一是模擬視頻傳輸過程中色度信號(hào)傳輸帶寬低,相對(duì)亮度信號(hào)包含噪聲多;二是亮度信號(hào)已經(jīng)包含了紅綠藍(lán)3個(gè)色彩分量的信息,且人眼對(duì)其更為敏感;三是可以減少硬件實(shí)現(xiàn)成本。同時(shí)由于傳統(tǒng)模擬信號(hào)中往往帶有噪聲,這些噪聲使得靜止圖像的相鄰場(chǎng)也有差值存在。因此運(yùn)動(dòng)檢測(cè)算法不能只是簡(jiǎn)單地根據(jù)相鄰場(chǎng)差值來判定圖像運(yùn)動(dòng)狀態(tài),而需要一定的濾波處理來減小誤判噪點(diǎn)。運(yùn)動(dòng)檢測(cè)算法框圖如圖4所示。
圖4 運(yùn)動(dòng)檢測(cè)算法
為了實(shí)現(xiàn)運(yùn)動(dòng)檢測(cè),使用相鄰4場(chǎng)數(shù)據(jù)進(jìn)行檢測(cè)。參考文獻(xiàn)[7]中,使用了相隔場(chǎng)和相鄰場(chǎng)來計(jì)算場(chǎng)差值。這樣做的缺點(diǎn)是會(huì)由于相鄰場(chǎng)插值后再做場(chǎng)差值而引入誤差[9]。筆者參考了文獻(xiàn)[8]~[9]所使用的方法,使用相隔場(chǎng)計(jì)算場(chǎng)差值。由于場(chǎng)差值直接從原始相隔場(chǎng)數(shù)據(jù)得到,因此避免了因插值而引入的誤差。運(yùn)動(dòng)檢測(cè)算法如圖5所示。其中Fn場(chǎng)內(nèi)的灰色像素點(diǎn)為當(dāng)前插值像素點(diǎn),其圖像坐標(biāo)為(i,j)。取其周圍3×3的領(lǐng)域作為隔場(chǎng)差值的計(jì)算窗口。
圖5 運(yùn)動(dòng)檢測(cè)數(shù)據(jù)
定義隔場(chǎng)差值如式6所示。FDxy表示窗口內(nèi)(x,y)坐標(biāo)處的兩相鄰隔場(chǎng)的場(chǎng)差值。定義窗口總場(chǎng)差值FD如式7所示。窗口總差值為窗口元素場(chǎng)差值矩陣與其對(duì)應(yīng)權(quán)重矩陣的點(diǎn)積。權(quán)重矩陣內(nèi)中心值最大,靠邊逐漸變小,表示其對(duì)當(dāng)前像素點(diǎn)的運(yùn)動(dòng)估計(jì)貢獻(xiàn)為中心最大,邊上最小。窗口總場(chǎng)差值的數(shù)值越大表示當(dāng)前像素為運(yùn)動(dòng)狀態(tài)的可能性越大。
運(yùn)動(dòng)檢測(cè)的輸出窗口總場(chǎng)差值FD傳輸給二值化模塊,其根據(jù)FD的大小是否超過設(shè)置好的閾值FDT,來判定當(dāng)前像素為運(yùn)動(dòng)像素(1),還是靜止像素(0)。由于誤判為運(yùn)動(dòng)的后果小于誤判為靜止,取FDT為1/8倍的像素亮度最大值。由于圖像中存在的噪聲會(huì)引起一些誤判,因此二值化后的數(shù)據(jù)最后經(jīng)過1個(gè)3×3的二維中值濾波器(也可稱為中值圖像濾波器)進(jìn)行濾除噪聲處理。這個(gè)二維中值濾波器實(shí)際為大數(shù)濾波器,當(dāng)窗口內(nèi)1的個(gè)數(shù)大于等于5時(shí),則輸出值為1,表示當(dāng)前像素為運(yùn)動(dòng)狀態(tài)。
為了獲得幀內(nèi)去隔行算法對(duì)隔行圖像的處理結(jié)果,先對(duì)去隔行算法常用的美國國旗照片進(jìn)行處理測(cè)試。測(cè)試時(shí)使用Matlab讀入照片,并進(jìn)行去隔行處理。然后分別用ELA和本文提出的結(jié)合了水平邊沿檢測(cè)的ELA算法進(jìn)行插值處理,最后輸出。利用Matlab視頻圖像處理包里提供的峰值信噪比(Peak Signal to Noise Ratio,PSNR)工具,計(jì)算得到的3種插值算法的處理后與原圖的PSNR如表1所示。從圖6中看出,本文算法對(duì)旗面上水平邊沿的處理效果要優(yōu)于ELA算法。
表1 各插值算法PSNR
圖6 3種圖像對(duì)比
對(duì)文中提出的運(yùn)動(dòng)檢測(cè)模塊的測(cè)試,筆者使用Mat?lab中的vipmen視頻進(jìn)行檢測(cè)。通過Matlab提供的視頻圖像處理包工具,獲取vipmen第5秒的4幀圖像(此時(shí)圖像為一男子從屏幕右邊走入),然后根據(jù)本文算法進(jìn)行處理。處理結(jié)果如圖7所示,其中中間圖像為運(yùn)動(dòng)檢測(cè)模塊檢測(cè)出的二值化圖像,白色部分表示運(yùn)動(dòng)物體。由于圖像噪聲的影響,可以看到很多錯(cuò)誤檢測(cè)噪點(diǎn)。在經(jīng)過了一個(gè)3×3的中值圖像濾波器后,大部分錯(cuò)誤噪點(diǎn)被濾除。注意對(duì)一些大塊的錯(cuò)誤檢測(cè)并不能通過中值濾波器消除,同時(shí)男子身體部分也存在大塊未被檢測(cè)出的區(qū)域。但從整體處理效果上來看,本文的運(yùn)動(dòng)檢測(cè)算法可以滿足運(yùn)動(dòng)自適應(yīng)去隔行算法的要求。
圖7 3種處理結(jié)果
在總結(jié)各種去隔行算法的基礎(chǔ)上,對(duì)運(yùn)動(dòng)自適應(yīng)去隔行算法中的空域場(chǎng)內(nèi)插值算法和運(yùn)動(dòng)檢測(cè)算法做了改進(jìn)。其中針對(duì)傳統(tǒng)ELA算法對(duì)圖像水平邊沿處理的不足,添加了水平邊沿檢測(cè),并加大了ELA窗口,使得其能適應(yīng)角度更大的沿。另外,提出了一種新的運(yùn)動(dòng)檢測(cè)算法,使用了領(lǐng)域窗口內(nèi)帶權(quán)重的4場(chǎng)隔場(chǎng)差值作為運(yùn)動(dòng)估計(jì),并利用2維中值濾波器濾除由于圖像噪聲而引起的運(yùn)動(dòng)檢測(cè)噪點(diǎn)。仿真測(cè)試結(jié)果顯示筆者提出的以上兩種算法處理效果與以往算法相比都有所提升,且算法簡(jiǎn)單,易于實(shí)現(xiàn)。
[1]JACK K.視頻技術(shù)手冊(cè)[M].5版.楊征,田尊華,張杰良,等,譯.北京:人民郵電出版社,2009.
[2]TAI S C, YU C S,CHANG F J.A motion and edge adaptive deinterlacing algorithm[C]//Proc.2004 IEEE International Conference on Multimedia and Expo.[S.l.]:IEEE Press,2004:659-662.
[3]SHAHINFARD E,SIDAHMED M A,AHMADI M.A motion adaptive deinterlacing method with hierarchical motion detection algorithm[C]//Proc.15th IEEE International Conference on Image Processing.[S.l.]:IEEE Press,2008:889-892.
[4]楊宇紅,張文軍,董云朝.一種自適應(yīng)去隔行算法及其電路設(shè)計(jì)[J].數(shù)據(jù)采集與處理,2004(3):334-337.
[5]羅寧,方向忠,張文軍.便于硬件實(shí)現(xiàn)的去隔行算法研究[J].電視技術(shù),2004(10):8-10.
[6]李成奇,何云斌.基于FPGA優(yōu)化運(yùn)動(dòng)檢測(cè)去隔行算法的設(shè)計(jì)[J].哈爾濱理工大學(xué)學(xué)報(bào),2008(5):67-70.
[7]JUNG Y Y,YANG S,YU P.An effective de-interlacing techniques using two types of motion information[J].IEEE Transactions on Consumer Electronics,2003,49(3):493-498.
[8]SUN Hongbin,ZHENG Nanning,GE Chenyang.An efficient motion adaptive de-interlacing and its VLSI architecture design two types of motion iInformation[C]//Proc.IEEE Computer Society Annual Symposium on VLSI.[S.l.]:IEEE Press,2008:455-458.
[9]SHAHINFARD E,SIDAHMED M,AHMADI M.An improved motion a daptive deinterlacing method using variableblock-sizemotion detection[C]//Proc.2007 IEEE International Symposium on Signal Processing and Information Technology.[S.l.]:IEEE Press,2007:122-126.