美文网首页
2、图像撕裂问题及解决方法

2、图像撕裂问题及解决方法

作者: 花开富贵_cc | 来源:发表于2020-07-08 12:50 被阅读0次

什么是图像撕裂

就是一张图片在显示的时候分成了两半,即出现断层。如下图:

图像撕裂是如何形成的呢

我们先从图像的显示说起:

图像 -> CPU将图片解码,交给GPU -> GPU进行图像的渲染 -> 存储到到帧缓存区 -> 视频控制器进行读取帧缓存区信息,并刷新部件(视频控制器只是负责帧缓存区与显示器的对应关系) -> 显示器逐行扫描显示。

在视频控制器进行读取显示图像时,当当前这一帧的内容还未读取完成时,GPU将新的一帧内容提交到帧缓冲区并把两个帧缓冲区进行更新后,视频控制器就会把新的一帧数据的下半段显示到屏幕上,造成画面撕裂的现象。

既撕裂就是在于显卡输出帧的速度比显示器快,显示器的处理速度跟不上显卡,在显示器处理显卡丢过来的第1帧的时候,第2帧就又到了,导致同一个画面同时出现1、2两帧,撕裂就产生了。

图像撕裂如何解决呢

1.垂直同步

垂直同步又称场同步(Vertical synchronization),从CRT显示器的显示原理来看,单个像素组成了水平扫描线,水平扫描线在垂直方向的堆积形成了完整的画面。显示器的刷新率受显卡DAC控制,显卡DAC完成一帧的扫描后就会产生一个垂直同步信号。

简而言之:垂直同步就是加锁,在当前读取的帧数据结束之前,不会读取下一帧的数据。

2.双缓冲区

双缓冲区是在帧缓存区中开辟两个缓冲区,一个缓冲区通过视频控制器进行当前帧数据的读取显示,另一个缓冲区进行接收下一帧GPU渲染的图像。两个缓冲区都执行结束,然后再交换缓冲区。

弊端:使用以上两个解决方案后,图像撕裂问题解决了,但是有引发了一个新问题掉帧/卡顿。

掉帧/卡顿是如何生成的

在使用垂直同步和双缓冲区时,都有一个等待显示完成的过程,从而刷新的时间变慢,刷新频率减少,眼睛看到的图像就会变成卡顿。

三缓冲区

在双缓冲区的基础上再添加一个缓冲区,提高交换速率,减少卡顿。

相关文章

  • 2、图像撕裂问题及解决方法

    什么是图像撕裂 就是一张图片在显示的时候分成了两半,即出现断层。如下图: 图像撕裂是如何形成的呢 我们先从图像的显...

  • 02-图像撕裂,掉帧及解决方法

    图像撕裂原因及解决方法 先说说图片显示的过程,CPU将图片解码,交给GPU -> GPU进行图像的渲染 -> 存储...

  • iOS图像撕裂及解决方法

    一、什么是图像撕裂? 就是一张图片在显示的时候出现断层情况,如图所示 二、为什么会出现图像撕裂? 屏幕成像过程 G...

  • iOS 图像撕裂及解决方法

    1.图像撕裂 1.1 图像显示过程 图像 -> CPU将图片解码,交给GPU -> GPU进行图像的渲染 -> 存...

  • iOS 性能优化之界面优化

    1.卡顿原理 图像撕裂及解决方法[https://www.jianshu.com/p/486b8a119ffc]和...

  • 图像撕裂问题及处理方法

    什么是图像撕裂? 即一张图出现了错位的现象,如下图: 那图像撕裂是如何形成的? 1. 图像的显示过程 图像 -> ...

  • 图像撕裂的原因及解决方法

    1、什么是图像撕裂?图像撕裂是指我们肉眼看见一张图片上下两层发生了错位,如下图所示: 2、为什么会发生图像撕裂? ...

  • 图像撕裂问题及解决办法

    一、撕裂 发生原因: CPU 和 GPU 的计算能力跟不上现在的帧率,此时才会有可能发生撕裂。 当第一帧图像扫描到...

  • 图像撕裂、掉帧

    1 图像撕裂 图像撕裂就是一张图片显示的时候,出现了上下断层,如下图: 1.1 出现撕裂的原因 首先我们来看图像显...

  • 2018-05-23

    uv打印机输出的图像不够亮原因及解决方法 uv打印机输出的图像不够亮原因有那些,解决方法有哪几种?在实际的印刷过程...

网友评论

      本文标题:2、图像撕裂问题及解决方法

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