基于S3C2440的LED背光源節電系統設計方案
定時器輸出時鐘頻率= PCLK/(prescaler value+1)/(divider value)
TCFG0 寄存器設置:TCFG0=99;//prescaler value=99
TCFG1 寄存器設置:TCFG1=0x03;//divider value=1/16
這樣,當PCLK=400M 時,定時器輸出頻率為6.25M.
定時器初值的設置包括:
TCNTB0 寄存器設置:TCNTB0=62500;// 裝入初值1s 中斷一次
TCMPB0 寄存器設置:TCMPB0=rTCNTB0》1;//50%
接著就可以啟動定時器,第一次必須手動裝載:TCON=1《1;
裝載后, 改為自動裝載, 并啟動定時器:TCON=0x09.
S3C2440 芯片內部集成了LCD 控制器,用來向LCD 傳輸圖像數據,并提供必要的控制信號,比如VFRAME、VLINE、VCLK、VM 等,可以支持STNLCD和TFTLCD.mini2440 采用3.5in(分辨率為240×320像素)的TFT 液晶顯示屏,配置為常用的16BPP(5:6:5)模式。要顯示圖像,只要向LCD_BUFFER 寫入像素數據(R(5):G(6):B(5)),LCD 控制器就會自動通過DMA讀取數據送往TFTLCD顯示。
圖像算法是基于圖像直方圖進行數據變換的,所以,首先應編寫子程序并先計算形成顯示圖像的灰度直方圖,算法如下所示(其中bmp 為原始的灰度圖像,bmp_2 為灰度值數組):
for( y = 0;y 320;y++ )
{for(x = 0; x 240; x++)
{bmp_2 [bmp[p]] ++;
p = p + 1;
}
}
假設取5%的失真度,那么需要變換的像素點數量為240×320×5%=3,840 點,然后根據上述算法原理采用逐點計算的方法使fgl 從灰度0 開始分別計算出對應的(fgh- fgl ),最后比較求出min(fgh - fgl)。
下一步對直方圖進行線性搬移,使灰度整體向暗區域移動fgl,這樣圖像灰度區域由[0,255]區間內的原分布,被壓縮在[0,fgh- fgl]區間。接下來應對圖像進行灰度拉伸,以彌補背光導致的亮度損失。若采取線性拉伸方法, 顯然拉伸的最大倍數為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 驅動電路通過PWM 實現相應亮度的控制。
3 實驗結果
如圖4 所示為測試圖像,圖4(a)為原始圖像,圖4(b)、(c)、(d)為采用直方圖裁剪與拉伸算法的試驗結果圖。

測試圖4 (b) 的失真度為5% ,節能比例為35% ;測試圖4(c)的失真度為10% ,節能比例為55% ;測試圖4(d)的失真度為20% ,節能比例為67%.由實驗結果可知,在一定的失真度下,顯然直方圖裁剪的灰度范圍越小,背光亮度可降低的幅度越大。原始測試圖像與經過直方圖裁剪和拉伸的圖像相比,在失真度5%的約束下,由于圖像進行了直方圖搬移,整體亮度有所變化,總的來說圖像質量沒有明顯損失。
4 結論
本文提出了基于視覺特性的液晶顯示器背光源節電調光方法,建立了直方圖裁剪和拉伸的處理框架,并在此基礎上利用ARM 平臺加以驗證,證明本文的方法在失真度為5%的情況下可實現約35%的背光節電效果,且圖像質量沒有明顯損失。
分頻器相關文章:分頻器原理
評論