美文网首页
屏幕图像显示的那些事儿

屏幕图像显示的那些事儿

作者: _涼城 | 来源:发表于2020-07-18 10:42 被阅读0次

计算机显示方式的演变

扫描演变.jpg

光栅扫描显示

图像 - 像素矩阵,显示一个图像时间,显示整个光栅的时间,和图像复杂度无关。

如下图所示,从上到下逐行扫描,扫描完成后显示器就呈现一帧画面。然后电子枪回到初始位置进行下一次扫描。

ios-screen-scan.png

水平同步与垂直同步

为了同步显示器的显示过程和系统的视频控制器,显示器会用硬件时钟产生一系列的定时信号。

当电子枪换行进行扫描时,显示器会发出一个水平同步信号(horizonal synchronization),简称 HSync

当一帧画面绘制完成后,电子枪回复到原位,准备画下一帧前,显示器会发出一个垂直同步信号(vertical synchronization),简称 VSync

显示器通常以固定频率进行刷新,这个刷新率就是 VSync 信号产生的频率。

渲染过程

CPU 计算好显示内容提交至 GPU,GPU 渲染完成后将渲染结果存入帧缓冲区,视频控制器会按照 VSync 信号逐帧读取帧缓冲区的数据,经过数据转换后最终由显示器进行显示。

渲染流程.jpg

双缓冲区

为了解决效率问题,GPU 通常会引入两个缓冲区,即 双缓冲机制。在这种情况下,GPU 会预先渲染一帧放入一个缓冲区中,用于视频控制器的读取。当下一帧渲染完毕后,GPU 会直接把视频控制器的指针指向第二个缓冲器。

gpu-double-buffer.png
图像撕裂

双缓冲虽然能解决效率问题,但会引入一个新的问题。当视频控制器还未读取完成时,即屏幕内容刚显示一半时,GPU 将新的一帧内容提交到帧缓冲区并把两个缓冲区进行交换后,视频控制器就会把新的一帧数据的下半段显示到屏幕上,造成图像撕裂现象。

为了解决这个问题,GPU 通常有一个机制叫做垂直同步(简写也是 V-Sync),当开启垂直同步后,GPU 会等待显示器的 VSync 信号发出后,才进行新的一帧渲染和缓冲区更新。这样能解决画面撕裂现象,也增加了画面流畅度,但需要消费更多的计算资源,也会带来部分延迟。

图像掉帧

渲染流水线耗时过长会导致重复渲染同一帧数据,使用三缓存区可以减少掉帧次数。

相关文章

  • 屏幕图像显示的那些事儿

    计算机显示方式的演变 光栅扫描显示 图像 - 像素矩阵,显示一个图像时间,显示整个光栅的时间,和图像复杂度无关。 ...

  • 深入理解IOS离屏渲染

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

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

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

  • 屏幕显示图像原理

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

  • iOS 渲染流程和屏幕卡顿原因

    屏幕卡顿 屏幕卡顿是指图形显示到屏幕上时,出现了图像撕裂、掉帧等问题 卡顿原因 图形、图像显示到屏幕上,需要经过C...

  • ios--离屏渲染详解

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

  • iOS 离屏渲染

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

  • 多媒体技术应用知识点

    分辨率:分为屏幕分辨率、数字图像分辨率和设备分辨率。 屏幕分辨率:是指计算机显示器屏幕显示图像的最大显示区,以水平...

  • OpenGL -- 纹理

    一张图片显示到屏幕上,最终都会转成位图再显示图像存储空间 = 图像高度 * 图像宽度 * 每个像素字节 在Open...

  • iOS 关于离屏渲染的理解 以及解决方案

    屏幕显示图像的原理: 高中物理应该学过显示器是如何显示图像的:需要显示的图像经过CRT电子枪以极快的速度一行一行的...

网友评论

      本文标题:屏幕图像显示的那些事儿

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