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

1. 背景

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

5c20fd786b5d40611766ce66c34c3d73.png
智能动态刷新海报

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

2. 刷新率

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

efee7236dd8c5ab7c587f07a7d15dc9e.png
刷新率示意图

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

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

678c09863da3115119ca9e89806364dd.png
不同刷新率的显示效果

3. 帧率

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

f0584574f88fb654062a8303e5cb6170.png
帧率示意图

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

4. 显示撕裂

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

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

a4bff99f4cf05031988a373bf81e99aa.png
FPS vs Hz

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

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

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

c741df54f8abdcb51c8653e143983d60.png
tearing

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

d58f94ad951a99c0265889b796a5e65e.png
AMD 和 NVIDIA的vsync技术

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

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

197aa4e3bc83067250297be5093c751b.png
小米调整刷新率的显示效果

END

2efe352a02e5e6f27c417f07449f126f.png 欢迎点击下面,关注我们f0487f7003e4cb0ef294a4a6afebecea.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看看高手做的ARM开发板

放假前,我写了一篇文章,里面有提到我放假的时候会接触一个开发板,这个开发板就是标题提到的这个ARM处理器,这篇文章会对这个处理器和开发板做个简单的介绍。说这个开发板前,先介绍下我的一个朋友zzy。zzy是通过公众号接…

心情-天气

最近雨还满多的,但不是阴雨连绵,中间会时不时有个大晴天。一直觉得下雨的日子就应该是安排在周一到周五,这样的话我就可以安心的聚精会神的上班,因为反正下雨哪里也不想去,还是好好上班比较好,躲在办公室里…

单线程会导致死锁吗?

我之前在我们的项目里面解决了一个死锁的问题,然后我跟一个我的朋友聊了下,他让我深入研究下这个问题。大家也可以考虑想我的这个问题。首先我们再看看什么是死锁?什么是死锁用个通俗的例子讲一讲死锁死锁从文字理论上说明的是两个线程&#…

Json的优缺点

JSON的定义 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON…

软件工程师 VS 硬件工程师

因为在软件行业35岁就算老人了而搞硬件的53岁正辉煌表面上看起来高大上的硬件工程师在实际的工作中,其实很惨...以上漫画虽然调侃的意味更多但现实中搞硬件的门槛确实很高收入也会随着经验的增多不断增长硬件工程师也基本不存在中年危机如果实在搞不下去了转项目经理…

假如我们的坦克继续前进队——需求改进系统设计

需求和原型改进 在上个星期的《需求说明书》课堂讨论中,老师提出了游戏的用户界面的设计问题。 经过小组成员的讨论后,我们的想法如下:设计关卡基于时间和人手问题难以实现因此改为一关的形式,以便有更多的时间出开发趣味性更高的…

DIY一个低成本多功能点阵时钟!

大家好,转发一篇正念同学的文章----大家好,我是ZhengN。本次转载一篇保姆级的diy教程:基于Esp8266的多功能点阵时钟 。简介很早就了解ESP8266了,当时也用这个搞过一些小demo,一直也没有想过要弄些实际的作品出来&#…

从DataTable导出Excel,并下载,删除Excel进程。

页面上加入一个button即可.源代码如下: usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlC…

Traceroute(路由追踪)的原理及实现

现实世界中的网络是由无数的计算机和路由器组成的一张的大网,应用的数据包在发送到服务器之前都要经过层层的路由转发。而Traceroute是一种常规的网络分析工具,用来定位到目标主机之间的所有路由器 原理 在介绍Traceroute的原理之前,需要了解…

我们应该搞清楚分支预测

分支预测的英文名字是「Branch Prediction」大家可以在Google上搜索这个关键字&#xff0c;可以看到关于分支预测的很多内容&#xff0c;不过要搞清楚分支预测如何工作的&#xff0c;才是问题的关键。分支预测对程序的影响我们来看看下面的两段代码代码1#include <algorithm…

Intent介绍及Intent在Activity中的使用方法

1.Intent的实现过程   在Android中&#xff0c;Intent不仅可用于应用程序之间的交互&#xff0c;也可用于应用程序内部的Activity/Service之间的交互。   Intent负责对应用中一次操作进行描述&#xff0c;描述内容包括动作以及动作所涉及的数据&#xff0c;Android中的In…

程序结束后去哪儿了?

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;转发一篇卓老师的文章&#xff0c;文章中的内容我之前做单片机的时候也有遇到过。推荐给大家看看~简 介&#xff1a; 对于嵌入式系统&#xff0c;如果没有运行RTOS&#xff0c;那么程序开发中的 主函数&#xff08;main()&a…

CodeSmith终极玩法

CodeSmith是一个模仿asp.net运行机制的代码生成器, 运行时分析模板(相当aspx文件)的预编译指令和主体内容, 生成一个继承自CodeSmith.Engine.CodeTemplate(相当于System.Web.UI.Page)或者一个在Inherites预编译指令指定的类(相当于CodeBehind类)的源码, 且把它编译. 然后把这个…

bom与dom

区别 BOM&#xff08;Browser Object Model&#xff09; BOM 即浏览器对象模型&#xff0c;BOM没有相关标准&#xff0c;BOM的最核心对象是window对象。window对象既为javascript访问浏览器提供API&#xff0c;同时在ECMAScript中充当Global对象。BOM和浏览器关系密切&#xff…

有些事不用听别人的

今天在群里跟几个朋友聊天&#xff0c;然后说了自己的想法&#xff0c;最近很多人在说公众号不会有好的发展&#xff0c;写文章也是没有出路的。不过这个是事实。短视频才是可能是出路&#xff0c;短视频是个很大的蛋糕&#xff0c;从表达方式上来说&#xff0c;视频的表达方式…

25个优秀的设计机构网站设计案例

今天&#xff0c;我们一起来欣赏网站设计工作室自己的网站。设计公司的网站除了要能够吸引客户以外&#xff0c;还要通过他们自己的网站向客户展示他们的设计理念和风格。这里收集的25个优秀的设计机构网站既有清爽简洁风格的&#xff0c;也有色彩丰富&#xff0c;图文并茂的&a…

一个适用各类场合的Makefile模板

1.写在前面对于Windows下开发&#xff0c;很多IDE都集成了编译器&#xff0c;如Visual Studio&#xff0c;提供了“一键编译”&#xff0c;编码完成后只需一个操作即可完成编译、链接、生成目标文件。Linux开发与Windows不同&#xff0c;Linux下一般用的的gcc/g编译器&#xff…

毕业十年|我的嵌入式AI学习路线(笔记、代码)

嵌入式从业者接下来会有怎样的黄金十年&#xff1f;在物联网和人工智能的促进下&#xff0c;嵌入式在未来的5-10年内会迎来更多的发展机会&#xff0c;一方面嵌入式开发会迎来更多的应用场景&#xff0c;另一方面嵌入式开发的技术体系也会逐渐丰富&#xff0c;从而拓展物联网开…

在艰苦年代,买不起万用表,怎么测量电路电压?

如何测量电压&#xff1f;有这样一张图片&#xff1a;用舌头来测量&#xff1f;开玩笑的吧&#xff01;不过这张照片勾起了我的回忆&#xff1a;有一位玩电子的老前辈&#xff0c;现在已经70多岁了。和他聊天&#xff0c;他说&#xff0c;当年他们玩电子&#xff0c;条件非常艰…

VBA学习_5:流程控制

1、If If Range("B2").Value >60 Then Range("C2").Value "及格" Else Range("C2").Value"不及格"如果。。。那么。。。。否则。。。。 If Range("B2").Value > 60 ThenRange("C2").Value "…