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

做过显示性能优化的同学应该常常听到别人说显示性能优化的目标就是达到 60 fps, 但是至于为什么是 60 fps 而不是 55 fps 或者 65 fps 就众说纷纭了,例如知乎上的这个问题为什么安卓不把系统显示帧数提高?

  • 为什么是60fps ? 这是因为人眼与大脑之间的协作无法感知超过60fps的画面更新。
  • 好像眼睛能识别的帧数低于60很多,而系统到60帧依然很清晰了
  • 60fps 完全够了

但是这些答案既没有相关文献引用也没有进行因果关系的分析,用大脚趾思考一下都会感觉不怎么靠谱。

凭借钻研到底的精神,我们一个一个地来细细探究这些问题:

首先,人眼的感知极限并不是 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 以内

后话 1:将显示性能的极限限制为 60 fps 加剧了屏幕迟滞(Lag)和卡顿(Stutter)现象

先说迟滞(Lag):
请考虑如下场景:当前显示器频率为 60 fps,某游戏的实时帧率固定为是 12 fps。那么在为 1/12 秒的时间内,显示器将会刷新5次,但显示的都是同一帧的图像。 这时游戏的给人的感觉如同幻灯片一般,这就是迟滞(Lag)。

再说卡顿(Stutter):
前面有提到,当帧率高于 12 fps 时,人眼都会认为画面是流畅的。但是,因为人眼能够识别出 85 fps 以内的帧率变化,所以,当显示器输出画面的帧率不停变化时,人们就会认为画面是卡顿(Stutter)的。

正如先前讨论的那样,V-Sync 仅仅是让显卡在某个确定的时间开始渲染某一帧, 但这并不意味着这一帧就一定能够及时的呈现在你的面前。 仅仅如此, 显卡还是难以匹配显示器的刷新频率, 有时它能满足要求(渲染速度超过 60 fps), 有时就不行了(渲染速度低于 60 fps)。所以在这样的情况下,V-Sync 就带来了新的麻烦: 当帧率低于 60 fps 时将加剧画面的卡顿和迟滞现象, 因为显卡一直在尝试让渲染时间能够与屏幕刷新时间能够匹配。 但开启 V-Sync 后, 40~50 fps 的渲染频率意味着将会使得显示器输出的画面帧率从 60 fps 骤降至 30 fps。如图所示:

这里写图片描述

后话 2:现代化的显示技术可以绕过这个坑

其实,简单分析全文我们就会发现,这一切的坑都是为了让显卡去适应显示器的频率所造成的。因此,根本的解决方案其实也很简单,掉个头,让显示器去适应显卡的频率。一切就迎刃而解了。

该方案的实现目前有两种实现形式: Nvidia 提出的专利技术 G-Sync 以及 AMD 提出开放标准 FreeSync。

G-Sync

G-Sync 技术于 2013 年底被提出, 它是以显示器的附加模块的形式出现(于2014年初正式产品化)。 G-Sync 模块受专利保护, 它取代了传统显示中的脉冲计数器(scaler)。 但 G-Sync 模块并非真正意义上的硬件计数器, 而是将这部分工作转交 GPU 进行控制。在未获得更多内部实现机制的情况下, 我们只能简单的说 G-Sync 模块用于决定显示器何时(或何频率)绘制下一帧。

该方案的问题在于: 要么显示器制造商在制造显示器时嵌入 G-Sync 模块, 要么用户购买 DIY 套件并安装于兼容的显示器上。 但这都将产生额外的费用。 虽然该方案是有效的, 并且有助于 Nvidia 控制自身成本, 但却显著地提高了显示器的价格。 此外,G-Sync 仅能在配备了高于 GTX 650 Ti 的 Nvidia GPU的PC机上工作。 这意味着使用 AMD 和 Intel 集成显卡的人就不那么不走运了。

FreeSync

在采用 Adaptive-Sync 技术的显示器已经发布的情况下, AMD 于 2014 年初从另一个方面推出了 FreeSync, 截至2015年初依然未有上市计划。 FreeSync 是一个开放标准, VESA(视频电子设备协会)于2014年4月采用 Adaptive-Sync 技术作为 DisplayPort 1.2a 的规范。

Adaptive-Sync 是 AMD 的 FreeSync 必要组成部分, 它使得显示器可以基于GPU来改变刷新率。 而 DisplayPort 是一种通用、 开放的标准, 支持所有的现代显卡和大多数现代显示器。 然而, 应该指出的是, 尽管 Adaptive-Sync 是 VESA DisplayPort 1.2 及 1.3 规范的一部分, 但它是可选的而非强制性的。 这意味着并非所有基于 DisplayPort 1.3 的显示器都会支持 Adaptive-Sync。 虽然我们非常希望能引入这样一个十分强大的通用标准, 但即便是引入 Adaptive-Sync 都会在制造显示器时引入的验证和测试的额外成本。

需要明确区分的是, Adaptive-Sync 是 DisplayPort 的功能, 它允许改变显示器的刷新频率, FreeSync 与 AMD该项技术相偕同是为了通过 Adaptive-Sync 在显示帧被GPU渲染出来时刷新屏幕。

后话 3:目前显示性能的极限是 60 fps,但将来能达到更高的水平

目前, G-Sync、FreeSync 均未普及,但随着新技术的优化及推广,我们有理由相信显示性能的极限将会得到提高!

参考文献:
Why 30 / 60 fps? why not 40, 45, 50 fps?
Android Performance Patterns: Why 60fps?
G-Sync vs FreeSync: The Future of Monitors
维基百科:帧率
果壳问答:人眼能识别的帧数最高是多少?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容