android lcd帧率

首先说一下屏幕帧率计算相关的硬件参数:
Xres 、Yres:横、纵向物理分辨率
left_margin、right_margin:左/右边界,即行切换回扫时间
upper_margin、low_margin:上/下边界,即帧切换回扫时间
hsync 、vsync:水平/垂直同步时间
而在 LCD 驱动中,有一个重要的参数----点时钟,即 dot clock,在 LCD 的 data sheet 里面一般是 MHZ,名称为 PCLK 或者DCLK。例如,如果为 28.37516 MHz,那么画 1 个像素需要 35242 ps(皮秒):
1/(28.37516E6 Hz) = 35.242×10^-9 s
如果屏幕的分辨率是 640×480,显示一行需要的时间是:
640*35.242×10^-9 s = 22.555*10^-6 s
每条扫描线是 640,但是水平回扫和水平同步也需要时间(回扫时间),假设水平回扫同步需要 272 个像素时钟,因此,画一条扫描线完整的时间是:
(640+272)*35.242*10^-9 s = 32.141*10^-6 s
可以计算出水平扫描率大约是 31kHz:
1/(32.141*10^-6 s) = 31.113E3 Hz
完整的屏幕有 480 线,但是垂直回扫和垂直同步也需要时间,假设垂直回扫和垂直同步需要49 个象素时钟,因此,画一个完整的屏幕的时间是:
(480+49)*32.141*10^-6 s = 17.002*10^-3 s
可以计算出垂直扫描率大约是 59kHz:
1/(17.002E-3 s) = 58.815 Hz
这意味着屏幕数据每秒钟大约刷新 59 次,即帧率为59fps。
由此可得公式:
帧率 =dotclock/((xres+left_margin+right_margin+hsync)*(yres+upper_margin+low_margin+vsync))
而android系统最高帧率为60fps,所以最好保证lcd的帧率也应大于等于60fps。xres和yres已经由硬件固定,因此根据公式调整其他参数,可以调整lcd帧率,使其尽量接近60fps。

你可能感兴趣的:(开发经验总结)