趙興朋 , 劉衛(wèi)東 ,, 于 崗
(1.中國(guó)海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100;2.海信電器股份有限公司 山東 青島 266071)
圖像縮放技術(shù)在高清數(shù)字電視、多媒體投影機(jī)、智能手機(jī)等終端顯示設(shè)備中的應(yīng)用非常廣泛。特別是由于非線性濾波器的濾波效果相比線性濾波器的濾波效果更加真實(shí)細(xì)膩,所以基于非線性濾波(如多相濾波)插值的縮放技術(shù)得到了廣泛的研究并日漸成熟。但是該技術(shù)所帶來的振鈴現(xiàn)象是應(yīng)用中必須加以處理的問題。具體表現(xiàn)如一幀圖像中,相鄰兩個(gè)不同物體交界處,在圖像放大后會(huì)產(chǎn)生類似于波紋狀的振蕩現(xiàn)象——稱之為振鈴。特別是當(dāng)這兩個(gè)物體的像素灰度值差別很大時(shí),振鈴現(xiàn)象尤為明顯,圖像也更加模糊。
所以,對(duì)于某些清晰度要求比較高的顯示設(shè)備(如1 920×1 080 p全高清數(shù)字電視),圖像在縮放后,一般都要對(duì)其進(jìn)行去振鈴操作,以達(dá)到較好的顯示效果。常見的圖像縮放去振鈴技術(shù),為了達(dá)到去振鈴的目的,會(huì)在振鈴產(chǎn)生的小區(qū)域連同周圍相當(dāng)大的一部分區(qū)域內(nèi),用某種粗糙濾波代替原先的非線性濾波。這樣做的后果是把圖像縮放后的相當(dāng)一部分細(xì)節(jié)信息丟失。而本設(shè)計(jì)所采用的去振鈴算法針對(duì)上述缺點(diǎn)進(jìn)行了優(yōu)化和改進(jìn)。
振鈴現(xiàn)象產(chǎn)生的主要原因是圖像在變換過程中高頻信息的丟失,高頻分量丟失越多,振鈴越嚴(yán)重。而低通濾波器的特點(diǎn)是通低頻阻高頻,尤其是理想低通濾波器的高頻部分會(huì)被完全濾掉。因此,當(dāng)一幀圖像的全部像素點(diǎn)通過低通濾波器后,圖像中不同物體交界處的高頻細(xì)節(jié)丟失,振鈴現(xiàn)象由此產(chǎn)生,并且低通濾波器越是趨于理想振鈴現(xiàn)象越明顯[1]。
圖1是表示圖像縮放過程中產(chǎn)生振鈴現(xiàn)象的原理組圖。圖中A是理想低通濾波器的空間域圖。有1單位沖擊脈沖f(x)(類似于圖像中不同物體的交界處),通過該低通濾波器后(f(x)卷積h(x)),其空間域波形如圖1中B所示[2];顯然單位沖擊脈沖通過低通濾波器之后,變成了幅度向兩邊延伸且逐漸減小的振蕩波形,這種類似于波紋狀的振蕩就是振鈴現(xiàn)象產(chǎn)生的根本原因。圖中C是B的俯視平面圖[3]。
本設(shè)計(jì)中圖像縮放所采用的多相濾波器的系數(shù)分布如圖中D所示,其特性非常接近理想低通濾波器(如A)。由上述介紹可以想象到當(dāng)一幀圖像經(jīng)過該多相濾波系統(tǒng)時(shí)必然會(huì)產(chǎn)生較嚴(yán)重的振鈴現(xiàn)象。
圖1 圖像縮放產(chǎn)生振鈴現(xiàn)象原理圖Fig.1 Schematic diagram of ringing in image scaling
由振鈴產(chǎn)生的原因可知,要降低圖像縮放后的振鈴現(xiàn)象且盡可能的保持原圖像的真實(shí)細(xì)膩,我們只要在原圖像的平坦區(qū)域采用多相濾波器,而在像素灰度值劇烈變化區(qū)域采用線性濾波器就可以實(shí)現(xiàn)[4]。
本文所采用的線性濾波器是系數(shù)呈三角特性分布的六抽頭濾波器,抽頭系數(shù)的具體大小要根據(jù)相應(yīng)的插值位置計(jì)算得到。其頻譜圖如圖2中A所示,顯然相比理想低通濾波器的頻譜特性,線性三角濾波器對(duì)高頻信息的屏蔽就沒那么理想,進(jìn)而達(dá)到去振鈴的效果。我們?cè)鯓訉ふ倚枰フ疋彶僮鞯哪繕?biāo)插值像素點(diǎn)呢?
本文所用多相濾波器是6抽頭的,插值像素點(diǎn)的大小由插值像素位置的臨近6個(gè)原像素點(diǎn)通過多相濾波器計(jì)算得到。全局差值最大值g_max(global_max),即6個(gè)相鄰像素依次相減,絕對(duì)值最大者,其求解方法如圖2中B所示。局部差值最大值loc_max(local_max),求解方法如圖中C所示。圖中l(wèi)_max(left_max)表示插值點(diǎn)左側(cè)差值絕對(duì)值的最大值,r_max(right_max)表示插值點(diǎn)右側(cè)差值絕對(duì)值的最大值。兩者的具體求解過程同g_max類似,只是所涉及到的原像素點(diǎn)個(gè)數(shù)不同(圖2中C所示:左側(cè)為實(shí)線連接的3個(gè)像素點(diǎn),右側(cè)為虛線連接的3個(gè)像素點(diǎn),中間重疊兩個(gè),共4個(gè))。然后選擇l_max和r_max較小者作為loc_max。
圖2 線性濾波器頻譜及全局/局部差值最大值框圖Fig.2 Illustrative diagram of linear filter spectrum and global/local maximum difference
這樣求解g_max和loc_max的意義何在?我們來看圖3去振鈴算法原理圖,當(dāng)插值像素位于插值點(diǎn)0時(shí),因?yàn)椴逯迭c(diǎn)0所用到的有效像素點(diǎn)都在同一個(gè)物體1中,所以計(jì)算得到的g_max與loc_max近似相等,表示這6個(gè)像素點(diǎn)不包括邊界信息,此時(shí)不需要對(duì)插值點(diǎn)0進(jìn)行去振鈴操作;當(dāng)插值像素位于插值點(diǎn)1時(shí),其所用到的有效像素點(diǎn)分布于不同物體1和2中,此時(shí)計(jì)算得到g_max會(huì)遠(yuǎn)遠(yuǎn)大于loc_max。本文假定只要g_max大于10倍的loc_max就認(rèn)為此插值點(diǎn)包含了邊界信息,也就是包含了豐富的高頻分量,需要對(duì)該插值點(diǎn)(插值點(diǎn)1)進(jìn)行去振鈴操作,即用線性三角濾波器代替多相濾波器來對(duì)原素點(diǎn)進(jìn)行濾波[5]。
如上,我們只在物體交界處附近(插值點(diǎn)1)進(jìn)行去振鈴操作,而遠(yuǎn)離物體交界處(插值點(diǎn)0)不進(jìn)行去振鈴操作,從而達(dá)到該去振鈴區(qū)域盡量去振鈴不該去振鈴區(qū)域盡量不去振鈴的目的。這樣既減弱了振鈴現(xiàn)象的影響,又盡可能地保持了原圖像的真實(shí)細(xì)膩[6]。相比其他一些算法所介紹的,在離交界處相當(dāng)大的區(qū)域內(nèi)不加選擇的一概進(jìn)行去振鈴操作效果要好很多。
圖3 去振鈴算法原理圖Fig.3 Schematic diagram of deringing’s algorithm
該去振鈴模塊作為一個(gè)獨(dú)立的功能系統(tǒng)可直接掛接在圖像縮放模塊之后。根據(jù)上述算法,其硬件系統(tǒng)架構(gòu)框圖如圖4所示,該系統(tǒng)架構(gòu)主要包括ram緩存器、dering_ena(使能信號(hào)產(chǎn)生)模塊、global_max(全局最大值)模塊、local_max(局部最大值)模塊、linear_filter(線性濾波器)模塊以及result_modify(結(jié)果校正)模塊等6部分。其中,ram緩存器模塊用來暫存上一級(jí)模塊輸入的數(shù)據(jù)信息;dering_ena模塊產(chǎn)生去振鈴的使能信號(hào);global_max模塊用來計(jì)算全局最大值g_max;local_max模塊用來計(jì)算局部最大值 loc_max;linear_filter模塊用線性三角濾波器來計(jì)算插值點(diǎn)像素的值;result_modify 模 塊 根 據(jù) global_max、local_max、linear_filter模塊輸出結(jié)果的相對(duì)關(guān)系,對(duì)由前一級(jí)h/v_scaler模塊輸入的插值像素進(jìn)行相應(yīng)地修正。圖中實(shí)線包圍的部分表示該去振鈴架構(gòu)的主要功能模塊,虛線包圍的部分表示其外圍的連線電路、使能模塊及ram緩存器模塊。
圖4 去振鈴硬件系統(tǒng)架構(gòu)Fig.4 Hardware system architecture of deringing
根據(jù)算法介紹,global_max和local_max這兩個(gè)模塊用到的硬件資源很相似,都用到了減法器、選擇器、比較器等。因?yàn)楸驹O(shè)計(jì)中的插值多相濾波器是6抽頭的,所以global_max模塊在硬件實(shí)現(xiàn)的過程中用到10個(gè)減法器,5個(gè)選擇器,4個(gè)比較器[7];local_max模塊的計(jì)算過程稍微復(fù)雜一些,這里按照計(jì)算g_max的方法分別求出l_max和r_max,然后將兩者通過一個(gè)比較器,選出較小的一個(gè)作為loc_max輸出。用到的主要硬件資源有減法器、選擇器和比較器。
linear_filter模塊主要是對(duì)原像素點(diǎn)進(jìn)行線性濾波,根據(jù)前面講述到的,本模塊用到的主要硬件資源是乘法器和加法器。因?yàn)楸驹O(shè)計(jì)中的線性濾波器也是6抽頭的,所以本模塊主要包括6個(gè)乘法器和5個(gè)加法器,每一個(gè)像素點(diǎn)與相應(yīng)的抽頭系數(shù)相乘,然后逐級(jí)相加,得到濾波器的最終輸出結(jié)果。result_modify模塊主要根據(jù)g_max與loc_max相對(duì)大小關(guān)系,用線性濾波器的輸出對(duì)多相濾波器的插值像素進(jìn)行修正。本模塊用到的主要硬件資源有比較器、移位選擇器、減法器等。
圖5 FPGA驗(yàn)證效果對(duì)比圖Fig.5 Results of FPGA verification
本設(shè)計(jì)使用的FPGA是altera的stratixIV,通過VGA接口連接顯示器顯示圖像。當(dāng)dering_ena信號(hào)未被使能時(shí),圖像顯示如圖5中(a)所示;當(dāng)dering_ena信號(hào)被使能時(shí),圖像顯示如圖5中(b)所示。通過對(duì)比不難發(fā)現(xiàn):縮放后的圖像經(jīng)過去振鈴操作,中間黑白交界區(qū)域更加清晰,波紋狀的振鈴現(xiàn)象大大減弱,并且圖像的其他區(qū)域依然清晰細(xì)膩;而未經(jīng)過去振鈴操作的圖像交界區(qū)域有明顯的振鈴現(xiàn)象,畫面相對(duì)模糊。可見本設(shè)計(jì)在使用較少硬件資源和基本不影響縮放圖像畫面質(zhì)量的基礎(chǔ)上,對(duì)交界細(xì)節(jié)處的去振鈴效果是比較明顯的。
[1]鄭君里.信號(hào)與系統(tǒng)[M].2版.北京:高等教育出版社,2005:43-264.
[2]郭煒,祝永新.一種改進(jìn)的自適應(yīng)去振鈴濾波算法及其硬件實(shí)現(xiàn)[D].上海:上海交通大學(xué),2009.
[3]Gonzalez R C,Woods R E.Digital Image Processing[M].2nd ed.Beijing:Publishing House of Electronics Industry,2007:132-141.
[4]程佩青.數(shù)字信號(hào)處理教程[M].3版.北京:清華大學(xué)出版社,2007:8-322.
[5]ZHANG Bo,Ashish Koul.Dering operation for image processing:US,20100135592 AL[P].JUN.3,2010.
[6]Keshab,K Parhi.VLSI Digital Signal Processing Systems[M].3rd rd.[S.l.], 2004:34-451.
[7]徐宗琦,高璐.一種盲復(fù)原圖像振鈴效應(yīng)的后處理與質(zhì)量評(píng)價(jià)方法[J].計(jì)算機(jī)應(yīng)用, 2007(4):2-4.XU Zong-qi,GAO Lu.Ringing effect postprocessing and quality assessment method of blind restoration image[J].Journal of Computer Applications, 2007(4):2-4.