为什么安卓不把系统显示帧数提高?

安卓与 iOS 都使用 60FPS 的屏幕刷新率,为什么安卓不使用更高的屏幕刷新率?
关注者
60
被浏览
29,471

18 个回答

iOS 上一众国产 App (因为你用『安卓』而不是 "Android" ,所以默认你用国产 App 比较多)在列表加载图片时候都会掉帧,你居然觉得帧数高。说明:

你的眼睛不满 60 fps,或者

你的『安卓』手机实在太低端。

=============

不调侃的补充一下,60fps 完全够了,如果觉得多数 iOS app 比较流畅,Android 原生系统和优质 App 也比较流畅的话,那就不应该在『安卓系统不把系统显示帧数提高』上纠结,因为短板不在这里,而在你所安装的劣质软件和恶心的『厂商定制』上。

首先,人眼的感知极限并不是 60 fps

我们从维基百科以及果壳中,可以查到:”有了平滑度高的60hz之后,更有极度连贯的120hz的电视推出,而超过大概85赫兹的视频,像是画面每更新一次只会发光几百分之一秒的阴极射线管及等离子显示屏,此时已经到达大脑处理视频的极限,人眼并无法分辨与更高更新率的差异,因此使用主动式快门眼镜的3D电视更新率达到200赫兹或以上,对人眼来说是无法看到左右视角切换的过程。“

因此,人眼的感知极限是高于 60 fps 的


其次,画面帧率越高,体验越好

维基百科中提到几个重要的帧率数值:

  • 12 fps:由于人类眼睛的特殊生理结构,如果所看画面之帧率高于每秒约10-12帧的时候,就会认为是连贯的
  • 24 fps:有声电影的拍摄及播放帧率均为每秒24帧,对一般人而言已算可接受
  • 30 fps:早期的高动态电子游戏,帧率少于每秒30帧的话就会显得不连贯,这是因为没有动态模糊使流畅度降低
  • 60 fps:在实际体验中,60帧相对于30帧有着更好的体验
  • 85 fps:一般而言,大脑处理视频的极限

注:如果需要了解动态模糊技术相关知识,可以查阅这里

所以,总体而言,帧率越高体验越好。一般的电影拍摄及播放帧率均为每秒24帧,但是据称《霍比特人:意外旅程》是第一部以每秒48帧拍摄及播放的电影,观众认为其逼真度得到了显著的提示。


但是,目前显示性能优化的极限是 60 fps

这里出现了一个悖论:既然帧率越高体验越好,那为什么我们的显示性能优化只需要做到 60 fps 就 OK 了?具体的原因就要从我们使用的设备说起了。

首先,我们需要明确一点:生成图像的设备(如显卡)与显示图像的设备(如显示器)是分离的。下面我们分别进行讨论:

显示器的刷新频率是固定的

目前, 大多数显示器根据其设定按 30Hz、 60Hz、 120Hz 或者 144Hz 的频率进行刷新。 而其中最常见的刷新频率是 60 Hz。 这样做是为了继承以前电视机刷新频率为 60Hz 的设定。 而 60 Hz 是美国交流电的频率, 电视机如果匹配交流电的刷新频率就可以有效的预防屏幕中出现滚动条,即互调失真。(这样我想起了一个老段子:马屁股决定航天飞机火箭助推器的宽度)

显卡的生成图像的频率是变化的

因为,显卡的生成图像的频率与显示器的刷新频率是相互独立的。因此,就涉及到了一个配合的问题。

最理想的情况是两者之间的频率是相同且协同进行工作的,在这样的理想条件下,达到了最优解。但实际中显卡的生成图像的频率是变化的,如果没有有效的技术手段进行保证,两者之间很容易出现这样的情况:当GPU还在渲染下一帧图像时,显示器却已经开始进行绘制,这样就会导致屏幕撕裂(Tear)。这会使得屏幕的一部分显示的是前一帧的内容,而另一部分却在显示下一帧的内容。如下图所示:

屏幕撕裂(Tear)的问题,早在 PC 游戏时代就被发现, 并不停的在尝试进行解决。 其中最知名可能也是最古老的解决方案就是 V-Sync 技术。

V-Sync 的原理简单而直观:产生屏幕撕裂的原因是显卡在屏幕刷新时进行了渲染,而 V-Sync 通过同步渲染/刷新时间的方式来解决这个问题。显示器的刷新频率为 60 Hz,若此时开启 V-Sync,将控制显卡渲染速度在 60 Hz 以内以匹配显示器刷新频率。这也意味着,在 V-Sync 的限制下,显卡显示性能的极限就限制为 60 Hz 以内


更多信息:脑洞大开:为啥帧率达到 60 fps 就流畅?