向祖權 劉政林 劉志會
(武漢理工大學交通學院1) 武漢 430063) (華中科技大學光學與電子信息學院2) 武漢 430074)
在圖像顯示領域,很多情況下圖像源輸出的圖像分辨率是變化的,目前工業上常用的分辨率有 VGA,SVGA,XGA,SXGA,UXGA 等.另一方面由于工業生產標準化的需要,常見的LCD顯示面板中,某一物理尺寸的顯示屏其分辨率都是固定的,例如381mm(15in)液晶屏的分辨率為1 024×768,431.8mm(17in)液晶屏的分辨率為1 280×1 024,這就造成信號源輸出的圖像分辨率和LCD顯示器的物理分辨率不匹配的問題[1].要在液晶顯示器上取得最佳的全屏圖像顯示效果,就是以顯示屏的物理分辨率來顯示圖像.假如輸入圖像的分辨率為800×600,而顯示器的物理分辨率為1024×768,如果沒有LCD控制器的話,800×600大小的圖像將顯示在顯示屏的中央,而在圖像四周填充黑框來實現全屏顯示.這樣的顯示效果是難以令人接受的,故而需要LCD控制器對圖像數據進行縮放以匹配顯示器的物理分辨率,以求獲得最佳的顯示效果.
圖1是設計的大尺寸LCD控制器的原理框圖,本文主要論述了控制器的核心部分——圖像縮放引擎的設計實現[2-5].

圖1 LCD控制器的基本結構
在圖像縮放應用中,用的最流行的簡單算法主要是nearest,bilinear和bicubic.例如,Adobe的圖像處理軟件Photoshop中提供了這3種插值算法.在中低端數碼相機圖像插值中,幾乎全部采用這3種插值算法,具體采用這3種算法中的哪一種,主要根據應用場合而定.圖像縮放算法的復雜程度和圖像的縮放質量是成正比的,也就是說算法越復雜,得到的縮放圖像質量一般也越高.但復雜的算法需要的計算時間大大增加,從而造成前面的數據計算還沒有完成,后面的數據已經進入而覆蓋前面的數據這樣的混亂局面,且隨著算法的復雜程度增加,用硬件實現也較困難,因此兩者是不可兼得的.例如LCD顯示器在UXGA模式下時,其顯示時鐘高達135.48MHz,要在如此高的頻率下實現圖像縮放的實時性,采用復雜的算法具有相當的難度.本文結合LCD這一特定的應用場合,提出了一種基于兩點的三次樣條插值算法,該算法在硬件實現上和nearest,bilinear一樣簡單,但可以獲得比它們好的圖像處理效果.
下面闡述基于兩點的三次樣條插值函數的求取過程.如圖2所示,虛線表示最近領域插值的插值核曲線,點化線表示線性插值的插值核曲線,實線表示提出的基于兩點的三次樣條插值核曲線.三次樣條函數f(x)必須滿足下面3個條件:(1)函數通過點A(0,0),C(1/2,1/2)和D(1,1),即f(xi)=yi,i=1,2,3;(2)函數一階導數和二階導數連續;(3)函數在每一個子區間[xi,xi+1]上均是三次多項式.

圖2 插值核曲線
根據條件(3),三次樣條函數f(x)的一般表達式可寫為


式中:ai,bi,ci,di為待定系數.
根據式(1)和分段插值條件,來建立由系數ci表示的函數表達式.根據條件(1),可以得到

用ci來表達未定系數bi,di,f(x)的表達式為:

式中:hi+1=xi+1-xi.
基于子區間[xi,xi+1]和[xi-1,xi]上樣條函數內在關系.可以得到一個可以惟一確定系數ci的表達式

式中:

為了惟一的確定出ci,還需要另外一個邊界條件,在本算法的推導中設定點A和D的一階導數為零.最后可以推出基于兩點的三次樣條插值函數為

提出的基于兩點的三次樣條插值核曲線之所以能夠取得比線性插值更好的圖像插值效果,其主要原因在于:(1)點A和D 處的一階導數為零,保證了尖銳邊緣區域與平滑區域兩邊的平滑過渡;(2)點C處的一階導數等于1.5,這和線性插值相比,可以得到更好的高頻響應,從而使圖像邊緣更加接近源圖像.
LCD控制器的關鍵部分就是圖像縮放引擎.從圖1可以看出,圖像縮放引擎由FIFO、水平縮放、Line buffer和垂直縮放4個部分組成.在用硬件實現時,其具體的結構及各功能模塊之間的信號關系見圖3.

圖3 圖像縮放引擎的總體結構
FIFO的作用是用來在輸入時鐘域和顯示時鐘域之間穩定地傳遞數據,并緩沖輸入數據,保證輸入和輸出圖像的幀同步,FIFO以前為輸入時鐘域,之后屬于顯示像素時鐘域,該時鐘由內部或者外部PLL提供.水平縮放引擎實現對輸入圖像水平方向的縮放,處理后的數據進入行緩沖器(line buffer)進行緩存.垂直縮放引擎實現對輸入圖像垂直方向的縮放.水平和垂直縮放器均是基于本章第三節提出的兩點三次樣條插值的低通濾波器.設計的LCD控制器預期支持的最高分辨率為SXGA,為了給FIFO預留一定的裕度,圖像縮放引擎中的FIFO大小為2 048×24.在垂直方向要插值出一行新的數據,由兩點三次樣條插值算法可知必須事先在line buffer中預存2行圖像數據,同時為了時序配合的需要,line buffer也需要一定的裕度,因此在設計中line buffer的大小為4行,每行的大小為2 048×24.
從兩點三次樣條插值的插值核函數可以看知,每求取一個插值系數,需要做一次立方、一次平方、兩次乘法和一次減法運算,為了減少實時計算濾波器插值系數的工作量,在濾波器硬件實現時采用查表法(look-up table,LUT)來實現插值系數的求解.每一個LUT的大小是256×8,將插值曲線的變量取值區間[0,1]等分為256份,則可以得到256個函數值f(xi),i=0,1,2,…,255,每個f(xi)為8bits.具體的插值實現如下.
如圖4所示,插值點的像素值由下式確定

式中:i和j均為整數,i=1,2,…,out_num,j=1,2,…;in_num,out_num 為圖像放大后的分辨率,in_num 是源圖像的分辨率;f(xi)和1-f(xi)為插值濾波器的插值系數.
i和j之間的關系如下.

函數Round就是對i×ratio截取整數部分.ratio則由下式求得.

新的插值位置:

函數Fraction就是對i×ratio截取其小數部分.

圖4 插值實現原理圖
式(12)確定了插值點的位置,該位置信息確定后,將其映射成LUT的入口地址,則可以查找到相應的插值系數f(xi),另外一個插值系數1-f(xi)通過對f(xi)執行邏輯非操作來實現.LUT的入口地址由下式確定:

LUT技術的使用,簡化了水平和垂直縮放器的濾波器結構,水平和垂直濾波器結構見圖5.

圖5 插值濾波器結構
為了評價本文提出的兩點三次樣條插值的圖像處理效果,采用文獻[6]提出的Q值評價法來評價插值后的圖像質量,該評價方法已經被證明了它比MSE,NMSE,PSNR更符合人的主觀視覺感受.用于評價的圖像來自 USC-SIPI(university of southern california-signal &image processing institute)圖像數據庫.所選用的圖像見圖6.對圖中的8幅圖像先進行2倍抽取得到低分辨率的圖像,然后采用nearest,bilinear,bicubic和兩點三次樣條插值法進行重建.各重建圖像的Q值評價見表1.

圖6 用于Q值評價的測試圖像(512×512)

表1 兩點三次樣條插值和傳統插值算法之間的Q值評價
由表1可見,4種插值算法的Q值比較接近于1,可見各種算法處理后得到的圖像與原始圖像比較接近.但nearest插值法的Q值最低,bilinear的Q值較大,bicubic的Q值最高,本文提出的基于兩點的三次樣條插值法的Q值非常接近bicubic的Q值,甚至有2幅圖像(elaine、tiffany)的Q值大于了bicubic處理后的Q值,可見本文提出的算法處理效果非常接近于bicubic算法的處理效果.而在硬件實現時,當均使用LUT查找表技術來實現時,根據本課題LCD控制器的體系結構,實現bicubic算法時需要進行3次加法、4次乘法、且至少需要4行line buffer,而實現本文提出的插值算法則只需要進行1次加法,2次乘法和至少需要2行line buffer,因此本文提出的算法在節省硬件開銷的同時,可以達到和bicubic非常接近的圖像處理效果,對于設計的LCD控制器來說是一個性價比較高的選擇.
圖像縮放引擎已經用Verilog HDL進行RTL描述并完成FPGA驗證,許多測試圖像和幾部電影被顯示在15in的LCD屏上,FPGA驗證時的顯示效果見圖7.

圖7 FPGA驗證時靜態文本圖像和視頻圖像的顯示效果
當在 VGA,SVGA,XGA,SXGA,UXGA之間改變圖像分辨率時,圖像縮放引擎工作正常,在LCD屏上得到了良好的圖像顯示效果和穩定性,整個畫面清晰、無抖動、色彩渲染效果理想.這表明設計的圖像縮放引擎工作正確,達到預期設計目標.提出的兩點三次樣條插值算法不僅使圖像縮放引擎的硬件實現簡單,而且節省硬件開銷,同時取得了良好的圖像處理效果.
[1]KIM H C,KWON B H,CHOI M R.An image interpolator with image improvement for LCD controlle[J].IEEE Trans.On Consumer Electronics,2001,47(2):263-271.
[2]向祖權,鄒雪城,劉政林,等.應用 MTV412M實現LCD控制器AMI-Scaler的顯示控制[J].微電子學與計算機,2006,23(11):60-62.
[3]陸二慶,栗方,趙榮陽.S3C2410TFT-LCD顯示的驅動程序設計[J].電腦開發與應用,2009,22(3):55-59.
[4]梁浩東,張國平,潘 梁.基于ARM處理器S3C2440A的便攜式視頻展示臺的設計[J].電子設計工程,2013,21(14):21-25.
[5]趙慧波,鄒雪城.LCD定標器中輸入數據格式測量的設計實現[J].華中科技大學學報:自然科學版,2005(3):78-81.
[6]ZHOU Wang,ALAN C B.A universal image quality index[J].IEEE Signal Processing Letters,Mar.,2002(9):81-84.