揭秘 | 小米最新款12PRO"智能动态刷新率"技术原理

嵌入式Linux

共 1690字,需浏览 4分钟

 ·

2022-02-12 21:30

1. 背景

最新发布的小米手机12pro提到了一个安卓系统上的新技术:智能动态刷新率。这到底是个啥技术?让雷军同学可以大吹特吹。

智能动态刷新海报

要解释上面的技术,不得不提刷新率帧率这两个概念。在平时的生活当中,你可能也会经常听到这两个术语,但千万不要把它们搞混淆,这是两个不同的概念,涉及到不同的技术领域。我相信,对于游戏玩家而言,这两个词更是高频的出现过,如果理解了这两个概念,那么对于游戏玩家购买电脑主机和显示器会有很大的帮助。

2. 刷新率

刷新率是计算机显示器、电视和其他显示设备中的技术术语,如下图所示:

刷新率示意图

其含义是指显示器每秒能够绘制新图像的次数,通常以赫兹(Hz)来测量,如果显示器的刷新率为60Hz,那么它每秒刷新图像60次。刷新率越高,显示器就越能显示屏幕上快速移动的物体,比如动作电影或运动节目。而传统显示设备的刷新率是60Hz,这是一个经过科学验证过的数值,当刷新率为60Hz时人类基本不会感知到屏幕上的图像闪烁。

不同的刷新率具体有什么不同呢,我们可以看下图所示的说明,不同的刷新率代表了每幅图像之间时间间隔不同,例如120Hz刷新率时,理论上每幅图片之间的时间间隔是8.33ms,这显然比30Hz刷新率时每幅图片之间的33.33ms的体验更加。

不同刷新率的显示效果

3. 帧率

首先,什么是,什么决定了帧率?是一个单一的静止图像,然后将其与其他静止图像(每一个图像略有不同)组合成一个快速幻灯片,以实现自然运动的错觉。帧率是一秒内显示的图像数量,我们用FPS(Frame per second)来表示帧率。

帧率示意图

如上图所示,FPS是CPU/GPU与显示设备之间的一个概念,其核心为CPU/GPU。为了生成或渲染一个新的帧,你的CPU和GPU需要一起协同工作,CPU发送指令指定位置和场景中物体的纹理来生成图像,然后你的GPU按照你设定的分辨率将图像分割成像素,并将这些信息发送到显示器上。你的CPU和GPU越强大,它们每秒生成的帧数就越多,而我们看到的显示效果也就越顺爽丝滑

4. 显示撕裂

现在我们知道了刷新率Hz表示显示器每秒钟刷新图像的次数,帧率FPS是指CPU/GPU每秒钟产生或绘制的帧数。

它们在物理空间上是两个独立的概念,显示器的刷新率(Hz)不会影响CPU/GPU输出的帧率(FPS)。

FPS vs Hz

二者需要协同工作,才可以获取到一个较好的显示效果。

当帧率小于了刷新率,我们又不能获得顺爽丝滑的显示效果。当然,在帧率小于刷新率时,我们可以让CPU或者GPU在空出来的时间做额外的事情,比如,提高图片显示的分辨率。

当帧率大于屏幕刷新率时,会造成屏幕显示撕裂的效果,俗称为tearing。我们当然不希望让这样的显示效果呈现在我们的眼前,它已经不仅仅是降低我们感官体验了,而是出现了显示故障。
像下图这样,两帧图像同时出现在了显示器上,造成了显示的错位。

tearing

为了解决tearing问题,基于CPU绘图的显示设备,应用层代码可以获取到DRM panel的刷新率,然后强制帧刷新率等于屏幕刷新率。而通过GPU进行图像渲染输出的设备,常见的做法是引入vsync机制。目前做的比较好的是NVIDIA G-SYNCAMD FreeSync

AMD 和 NVIDIA的vsync技术

前者在显卡上放置了一颗用于vsync通讯的芯片,可以调整显示设备的刷新率以支持显卡的帧率。后者是基于液晶显示器的自适应同步技术,不需要额外的芯片。

现在回头看小米的动态刷新率,他是根据不同的应用场景动态的改变帧率,然后(注意这里:目前仅小米原生APP支持),基于帧率动态的调整刷新率,最终达到不同的显示效果,让用户获得到最佳显示体验的同时又可以降低手机的功耗。

小米调整刷新率的显示效果


END

欢迎点击下面,关注我们
浏览 114
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报