基于S3C2440的LED背光源節(jié)電系統(tǒng)設(shè)計方案
定時器輸出時鐘頻率= PCLK/(prescaler value+1)/(divider value)
TCFG0 寄存器設(shè)置:TCFG0=99;//prescaler value=99
TCFG1 寄存器設(shè)置:TCFG1=0x03;//divider value=1/16
這樣,當(dāng)PCLK=400M 時,定時器輸出頻率為6.25M.
定時器初值的設(shè)置包括:
TCNTB0 寄存器設(shè)置:TCNTB0=62500;// 裝入初值1s 中斷一次
TCMPB0 寄存器設(shè)置:TCMPB0=rTCNTB0》1;//50%
接著就可以啟動定時器,第一次必須手動裝載:TCON=1《1;
裝載后, 改為自動裝載, 并啟動定時器:TCON=0x09.
S3C2440 芯片內(nèi)部集成了LCD 控制器,用來向LCD 傳輸圖像數(shù)據(jù),并提供必要的控制信號,比如VFRAME、VLINE、VCLK、VM 等,可以支持STNLCD和TFTLCD.mini2440 采用3.5in(分辨率為240×320像素)的TFT 液晶顯示屏,配置為常用的16BPP(5:6:5)模式。要顯示圖像,只要向LCD_BUFFER 寫入像素數(shù)據(jù)(R(5):G(6):B(5)),LCD 控制器就會自動通過DMA讀取數(shù)據(jù)送往TFTLCD顯示。
圖像算法是基于圖像直方圖進行數(shù)據(jù)變換的,所以,首先應(yīng)編寫子程序并先計算形成顯示圖像的灰度直方圖,算法如下所示(其中bmp 為原始的灰度圖像,bmp_2 為灰度值數(shù)組):
for( y = 0;y 320;y++ )
{for(x = 0; x 240; x++)
{bmp_2 [bmp[p]] ++;
p = p + 1;
}
}
假設(shè)取5%的失真度,那么需要變換的像素點數(shù)量為240×320×5%=3,840 點,然后根據(jù)上述算法原理采用逐點計算的方法使fgl 從灰度0 開始分別計算出對應(yīng)的(fgh- fgl ),最后比較求出min(fgh - fgl)。
下一步對直方圖進行線性搬移,使灰度整體向暗區(qū)域移動fgl,這樣圖像灰度區(qū)域由[0,255]區(qū)間內(nèi)的原分布,被壓縮在[0,fgh- fgl]區(qū)間。接下來應(yīng)對圖像進行灰度拉伸,以彌補背光導(dǎo)致的亮度損失。若采取線性拉伸方法, 顯然拉伸的最大倍數(shù)為255/ (fgh- fgl)。算法如下所示(其中bmp 為原始的灰度圖像,bmp_new 為更新圖像,min= min(fgh - fgl)):
for(y = 0;y 320;y++)
{for(x = 0;x 240;x++ )
{if (bmp[p]>= fgl )
bmp_new[p] = (bmp[p] - fgl )*255/min;
else
bmp_new[p] =0;
p++;
}
}
此時像素灰度不會飽和,則背光亮度可由1 降低為(fgh- fgl)/255,由LED 驅(qū)動電路通過PWM 實現(xiàn)相應(yīng)亮度的控制。
3 實驗結(jié)果
如圖4 所示為測試圖像,圖4(a)為原始圖像,圖4(b)、(c)、(d)為采用直方圖裁剪與拉伸算法的試驗結(jié)果圖。
測試圖4 (b) 的失真度為5% ,節(jié)能比例為35% ;測試圖4(c)的失真度為10% ,節(jié)能比例為55% ;測試圖4(d)的失真度為20% ,節(jié)能比例為67%.由實驗結(jié)果可知,在一定的失真度下,顯然直方圖裁剪的灰度范圍越小,背光亮度可降低的幅度越大。原始測試圖像與經(jīng)過直方圖裁剪和拉伸的圖像相比,在失真度5%的約束下,由于圖像進行了直方圖搬移,整體亮度有所變化,總的來說圖像質(zhì)量沒有明顯損失。
4 結(jié)論
本文提出了基于視覺特性的液晶顯示器背光源節(jié)電調(diào)光方法,建立了直方圖裁剪和拉伸的處理框架,并在此基礎(chǔ)上利用ARM 平臺加以驗證,證明本文的方法在失真度為5%的情況下可實現(xiàn)約35%的背光節(jié)電效果,且圖像質(zhì)量沒有明顯損失。
分頻器相關(guān)文章:分頻器原理
評論