美文网首页
iOS:屏幕显示图像原理

iOS:屏幕显示图像原理

作者: 棋剑千秋 | 来源:发表于2018-10-23 09:41 被阅读0次

最近无意中翻到一篇文章,讲述的是屏幕图像显示原理,以前我并不太关心这方面的理论,认为这仅仅是关乎于硬件的层面,对于我这种软件开发方面用处并不大。百无聊赖之下看了此篇文章后,收获不小。在这里为了温故而知新,浅谈一下我认为对自己比较重要的知识点。
屏幕显示图像的原理:从过去的CRT到现在的液晶显示器,成像的原理是一样的。


image.png

(请原谅我盗个图,嘿嘿...)
看上图一目了然的能够大致看出成像的原理。成像的核心就是GPU为主导的,首先CPU计算好屏幕要显示的内容,将它提交给GPU,GPU开始渲染后将结果放入到帧缓冲区,随后视频控制器读取帧缓冲区的数据经过转换后传递过显示器显示。
画面撕裂的现象:但是GPU的渲染完成一个新的图像帧时,此时屏幕显示器只完成了上一帧的部分图像时,此时GPU刷新帧缓冲区时,这时就会出现画面撕裂的现象了。为了解决这个问题,GPU 通常有一个机制叫做垂直同步(简写也是 V-Sync),当开启垂直同步后,GPU 会等待显示器的 VSync 信号发出后,才进行新的一帧渲染和缓冲区更新。这样能解决画面撕裂现象,也增加了画面流畅度,但需要消费更多的计算资源,也会带来部分延迟。这里我困惑了,帧缓冲区难道只能放一帧的图像?为此我查了一下帧缓冲区的定义:帧缓冲存储器(Frame Buffer):简称帧缓存或[显存],它是屏幕所显示画面的一个直接映象,又称为位映射图(Bit Map)或光栅。帧缓存的每一[存储单元]对应屏幕上的一个像素,整个帧缓存对应一帧图像。
卡顿产生的原因:看图说话(再盗一下图)


image.png
此图更为形象的反映了屏幕成像的原理流程是怎么样的。CPU计算显示内容,例如视图创建,布局计算、图片解码、文本绘制等。随后 CPU 会将计算好的内容提交到 GPU进行合成、渲染。随后 GPU 会把渲染结果提交到帧缓冲区去,等待VSync 信号到来时显示到屏幕上。如果此时下一个VSync 信号到来时,CPU或GPU都没有完成相应的工作时,则那一帧将会丢失,则就是我们看到屏幕卡顿的原因。
所以说,卡顿造成的原因通常是CPU和GPU导致的掉帧引起的,那么我们在编码的同时就会从这两方面去思考问题所在。

相关文章

  • iOS图像显示原理

    iOS图像显示原理 iOS图像显示原理

  • iOS:屏幕显示图像原理

    最近无意中翻到一篇文章,讲述的是屏幕图像显示原理,以前我并不太关心这方面的理论,认为这仅仅是关乎于硬件的层面,对于...

  • iOS 屏幕图像显示原理

    在图形渲染流程一文中可知,GPU完成渲染后会将渲染结果提交到帧缓存区,再由视频控制器逐行读取数据,然后经由数模转换...

  • 屏幕显示图像解析及屏幕卡顿现象

    在了解屏幕卡顿现象之前,我们先来了解一下屏幕显示图像的原理。 屏幕显示图像的原理 首先从过去的 CRT 显示器原理...

  • iOS 流畅度性能优化、CPU、GPU、离屏渲染

    屏幕显示图像的原理 ios_screen_scan 首先从过去的 CRT 显示器原理说起。CRT 的电子枪按照上面...

  • ios--离屏渲染详解

    目录: 1.图像显示原理 2.图像显示原理2.1 图像到屏幕的流程2.2 显示器显示的流程 3.卡顿、掉帧3.1...

  • 深入理解IOS离屏渲染

    目录:图像显示原理1.1 将图像显示到屏幕的流程1.2 显示器显示流程UI卡顿、掉帧2.1 屏幕撕裂 Screen...

  • 屏幕显示图像原理

    首先从过去的CRT显示器原理说起。CRT的电子枪按照上面的方式,从上到下一行行扫描,扫描完成之后显示器上就显示一帧...

  • iOS 离屏渲染

    一、概念 屏幕显示图像的原理: 显示器如何显示图像,需要显示的图像经过 CRT 电子枪以极快的速度一行一行的扫描,...

  • Core Animation渲染过程

    上一篇iOS图片渲染过程初探介绍了屏幕显示图像的原理,这一篇简书探讨下iOS和OS X系统下Core Animat...

网友评论

      本文标题:iOS:屏幕显示图像原理

      本文链接:https://www.haomeiwen.com/subject/uzlozftx.html