劉 健,郭江宇,張海峰,郝志超,于佳杰
(北方自動控制技術研究所,太原 030006)
目前,移動手持設備集成的功能越來越豐富,隨之功耗也越來越大。研究表明,移動手持設備的能量消耗主要集中在射頻、CPU與LCD顯示模塊[1]。LCD顯示模塊的主要功耗來自其LED背光源,而在使用過程中,背光源不能關閉。降低背光亮度是減少移動手持設備功耗的有效方法。但是,背光亮度的降低,會造成圖像顯示質量的降低。因此,研究LCD在低背光條件下的圖像增強很有必要。
LCD低背光條件下的亮度補償方法是:當背光降低時,通過補償像素的灰度值來提高液晶的光透過率,從而維持圖像亮度與降低背光前一致[2]。文獻[3]提出了一種 CBCS(Concurrent Brightness and Contrast Scaling)算法,通過提高圖像像素灰度值來減少背光降低造成的失真,該方法在處理有較多高灰度值的圖像時,會造成高灰度區域的細節丟失。文獻[4]提出的算法有效避免了高灰度區域的細節丟失,該算法通過假設溢出值,對圖像進行預處理,計算假設溢出值時的圖像失真度,來反饋調節溢出值,算法的復雜度過高,可能造成計算資源的過多占用。文獻[5]提出的算法將提取的灰度圖像通過低通濾波器,分別對低頻部分與高頻部分進行像素補償與對比度增強,之后恢復彩色圖像,該算法較大程度地提高了圖像亮度,但是圖像的清晰度與SSIM(structural similarity index)指標還有提升空間。
針對LCD在低背光條件下圖像質量降低的問題,本文提出一種基于人眼視覺感知特性的圖像增強算法。算法考慮了人眼在低灰度背景中的JND(Just Noticeable Difference)曲線,在高灰度區域,設計了防溢出參數避免細節丟失,并對圖像進行了局部對比度增強。
LCD本身不發光,背光源的光經過LCD液晶分子的過濾后才被人眼感知[6]。人眼最終感知的圖像像素點亮度L由背光源的光強和液晶分子的光透過率決定,液晶分子的光透過率與像素點亮度值近似成正比關系[6]。由式(1)表示:
其中,b表示背光調節因子,取值為0~1,B表示背光源最大光強,t(x)表示某個液晶分子的光透過率。
當b<1時,為保持L不變,需將t(x)擴大1/b倍,即將該像素點的亮度值擴大1/b倍。像素點的亮度值取值范圍為0~255,對某些高亮度的像素點亮度值擴大后,會導致亮度值溢出,造成圖像失真。
人眼視覺的感知特性表現為,人眼欲辨別目標,需要滿足目標與背景的亮度差大于特定閾值的條件,該閾值稱為JND,而在不同的灰度背景中,JND有很大差異,JND曲線[7]如圖1所示。
由圖1可知,在背景灰度較小和較大的區域,人眼辨別目標的能力較弱。例如,背景灰度為25時,人眼無法分辨灰度值為30的目標。通過灰度變換來提高圖像的平均灰度,從而提高背景灰度值。在灰度變換領域,采用非線性變換要優于線性變換,非線性變換的結果更適宜人眼觀察,常使用的非線性變換有對數函數與指數函數[8]。此外,人眼視覺系統對圖像的局部對比度更為敏感。
由第1節可知,在高灰度區域,對圖像像素亮度的提升需要考慮溢出范圍的大小及處理,避免高灰度區域的細節丟失。在中灰度區域,圖像的像素亮度不需要太大的提升。在低灰度區域,可以對圖像像素的亮度作較大的提升,增加圖像亮度的同時,增加低灰度區域的細節表現力。
算法主要對圖像的灰度圖進行處理,因此,需要將原RGB顏色空間圖像轉換到YIQ顏色空間,對Y分量進行處理,最后恢復為RGB顏色空間圖像。YIQ空間的各個分量由式(2)計算得到。
依據文獻[5]對圖像的分類,由圖像Y分量的平均值μ確定溢出值θth。當μ值較小時,圖像的灰度值主要集中在較低的區域,可以選擇較小的溢出值,以增大補償強度。當μ值較大時,圖像的灰度值主要集中在較高的區域,溢出值不宜過小,否則會造成高灰度區域的細節丟失。溢出值由式(3)計算得到。
由人眼視覺感知特性可知,背景灰度在60~200的范圍內,人眼的分辨力較好。以某像素點領域內的灰度平均值作為該點的背景灰度。通過提高圖像的平均灰度,來提高背景灰度。灰度變換如式(4)所示。
其中,I'(z)為某像素點變換后的灰度值,I(z)為該點變換前的灰度值。算法根據圖像亮度均值確定溢出點的大小,從全局上確定圖像亮度補償的強度,對于低灰度區域,為避免對數函數增幅過大,設計了增幅適當且可以根據背光因子動態改變的非線性變換函數,增幅隨背光因子的變小而增大。gl為低灰度區域臨界點,gb為防止溢出的修正點,a為避免增幅過大的調節參數。式(4)中相關參數由下式決定。
背光因子為0.75,圖像Y分量平均值為0.39時的輸入輸出像素映射曲線如圖2所示。變換函數是連續函數,在灰度變換后,不會發生灰度倒序的情況。
經過亮度補償,圖像的亮度會有很大提高,但是會造成局部對比度的下降。由第1節可知,人眼對圖像的局部對比度更為敏感。采用Michelson對比度[9]計算公式,如式(6)所示。
其中,Imax和Imin表示鄰域中的最高與最低灰度值。Michelson對比度更加符合人眼視覺感知特性。用式(7)對像素點的灰度值進行提升或降低。
其中,μlocal為原圖像某像素點領域內的灰度平均值。當該點灰度值大于領域內平均灰度值時,對其進行提升,反之,降低。經式(7)處理后,提高了圖像的Michelson對比度。
采用文獻[5]算法與本文算法進行圖像仿真處理,使用Matlab工具進行仿真的結果如圖3與圖4所示。圖3為不降低背光時的仿真結果,其中圖3(a)為原圖像顯示效果;圖 3(b)為使用文獻[5]算法處理的圖像顯示效果,與原圖比較,圖像亮度有很大提高,但是圖像清晰度有所下降;圖3(c)為本文算法處理的圖像顯示效果,提升了圖像亮度與清晰度,人眼能分辨出更多細節。圖4為應用式(1)進行模擬背光降低25%時的仿真結果。
選取平均亮度由低到高的10幅圖像作為測試對象,應用平均梯度與SSIM作為圖像增強效果的客觀質量評價指標。平均梯度反映圖像清晰度;SSIM衡量處理前后兩幅圖像的結構相似性,取值為0~1,值越大,結構失真度越小[8]。
在進行圖像的清晰度質量評價時,需要考慮不同背光源光強對清晰度的影響,結合圖像平均梯度的計算方法與式(1),對不同背光因子條件下的圖像平均梯度進行比較,比較結果如下頁表1所示,表明增強算法對圖像的清晰度有較好的提升。表2為不同背光因子條件下SSIM指標大小,結果表明增強算法對圖像的結構相似性保持較好。綜上所述,增強算法在降低背光的條件下,可以提升圖像清晰度并較好的保持圖像結構相似性,適宜人眼感知。
在CycloneIV系列FPGA硬件平臺上實現了本文算法,并將處理結果與MATLAB仿真結果進行比較,如圖 5 所示。從圖 5(c)與圖 5(a)可以看出,本文算法在降低背光的情況下與原圖在不降低背光的情況下視覺效果相近。比較圖 5(b)與圖 5(c),FPGA相較于MATLAB的處理精度誤差不大于1%,此外,本文算法在FPGA上每秒能夠處理1 024×768大小的圖像60幀以上,滿足實時性的要求。

表1 不同背光因子時平均梯度

表2 不同背光因子時SSIM指標
本文依據人眼視覺感知特性,提出了LCD在低背光條件下的圖像增強算法。在亮度補償后容易發生溢出的高灰度區域,采用防止溢出的修正值代替溢出值,從而避免高灰度區域的細節丟失,在低灰度區域,設計了增幅適當且可以根據背光因子動態改變的非線性變換函數,在提高圖像整體亮度之后,對局部對比度進行增強,提升了增強后的圖像清晰度,并維持了較好的結構相似性。