为什么屏幕分辨率是 640x480?

文章转自EasyX,原链接点击打开链接

常见的屏幕分辨率很奇怪,为什么总用一些不零不整的数字?比如以前最常见的分辨率是 640x480,当初为什么这么设计?

因为这个分辨率运算速度比较快,人也相对比较好记。

大家知道,屏幕上的每一个点,都会对应内存中的一个位置。比如 640x480@256色,表示每个点占用一个字节,整个屏幕有 640x480=300k 个点,占用 300KB 内存。屏幕的每一个像素的保存,在内存中是线性存储结构。在屏幕上的坐标 (x, y) 画一个点,就相当于在对应显存偏移 y * 640 + x 的位置赋值。

PS:在这篇文章中有一段代码,可以实践一下通过内存赋值来直接画点:http://www.easyx.cn/skills/View.aspx?id=55

每绘制一个点,都需要执行一次乘法和一次加法运算。所有的绘图操作都需要调用画点函数,因此提高画点的效率,将会提升所有绘图操作的速度。

现在我们将计算内存偏移量的算法修改一下:

d = y * 640 + x
  = y * (512 + 128) + x
  = y * 512 + y * 128 + x
  = y * 2^9 + y * 2^7 + x
  = y << 9 + y << 7 + x

于是,1 次乘法 1 次加法,就修改为了 2 次移位 2 次加法。学过计算机组成原理的同学应该知道,修改后的算法虽然繁琐,但是性能提高了数倍。

这也是为什么采用 640 的原因。

常见的分辨率,都可以拆分为 2 的 n 次方的和差运算,例如: 

640 = 512 + 128 = 2^9 + 2^7
768 = 512 + 256 = 2^9 + 2^8
800 = 512 + 256 + 32 = 2^9 +2^8 + 2^5
1024 = 2^10
1152 = 1024 + 128 = 2^10 + 2^7
1280 = 1024 + 256 = 2^10 + 2^8
1920 = 2048 - 128 = 2^11 - 2^7

基于前面讲的原理,大家可以将其应用在最基础的画点上,以提升算法的效率。

不过现在 CPU 里面都有乘法器单元,写程序时直接用乘法性能也不差。但是在硬件实现上,这个数值还是很有意义的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能⼿机屏幕尺⼨和分辨率⼀览表 智能⼿机屏幕尺⼨和分辨率⼀览表 2.8英⼨分辨率为640x480(VGA) 像素密度286PPI 3.2英⼨分辨率为480x320(HVGA) 像素密度167PPI 3.3英⼨分辨率为854x480(WVGA)像素密度297PPI 3.5英⼨分辨率为480x320(HVGA)像素密度165PPI 3.5英⼨分辨率为800x480(WVGA)像素密度267PPI 3.5英⼨分辨率为854x480(WVGA)像素密度280PPI 3.5英⼨分辨率为960x640(DVGA)像素密度326PPI(苹果iphone4) 3.7英⼨分辨率为800x480(WVGA)像素密度252PPI 3.7英⼨分辨率为800x480(WVGA)像素密度252PPI 3.7英⼨分辨率为960x540(qHD)像素密度298PPI 4.0英⼨分辨率为800x480(WVGA)像素密度233PPI 4.0英⼨分辨率为854x480(WVGA)像素密度245PPI 4.0英⼨分辨率为960x540(qHD)像素密度275PPI 4.0英⼨分辨率为1136x640(HD)像素密度330PPI(苹果iphone) 4.2英⼨分辨率为960x540(qHD)像素密度262PPI 4.3英⼨分辨率为800x480(WVGA)像素密度217PPI 4.3英⼨分辨率为960x640(qHD)像素密度268PPI 4.3英⼨分辨率为960x540(qHD)像素密度256PPI 4.3英⼨分辨率为1280x720(HD)像素密度342PPI 4.5英⼨分辨率为960*540(qHD)像素密度245PPI 4.5英⼨分辨率为1280x720(HD)像素密度326PPI 4.5英⼨分辨率为1920x1080(FHD)像素密度490PPI4.7英⼨分辨率为1280x720(HD)像素密度312PPI 4.7英⼨分辨率为1280x720(HD)像素密度312PPI 4.7英⼨分辨率为1280x720(HD)像素密度312PPI 4.8英⼨分辨率为1280x720(HD)像素密度306PPI 5.0英⼨分辨率为480x800(WVGA)像素密度186PPI 5.0英⼨分辨率为1024x768(XGA)像素密度256PPI 5.0英⼨分辨率为1280*720像素密度294PPI 5.0英⼨分辨率为1920x1080(FHD)像素密度441PPI 5.3英⼨分辨率为1280x800(WXGA)像素密度285PPI 5.3英⼨分辨率为960x540(qHD)像素密度207PPI 6.0英⼨分辨率为854×480像素密度163PPI 6.0英⼨分辨率为1280 X 720像素密度245PPI 6.0英⼨分辨率为2560×1600像素密度498ppi 7.0英⼨分辨率为800x480(WVGA)像素密度128PPI 7.0英⼨分辨率为1024*600像素密度169PPI 7.0英⼨分辨率为1280*800像素密度216PPI 9.7英⼨分辨率为1024x768(XGA),像素密度132ppi 9.7英⼨分辨率为2048x1536,像素密度264PPI 10英⼨分辨率为1200X600,像素密度170ppi 10英⼨分辨率为2560x1600像素密度299ppi android开发主流的品牌机的分辨率有:240*320,320*480,480*800,480*854,540*960,640*960,720*1024

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值