美文网首页
图像撕裂、卡顿产生的原因以及解决方式

图像撕裂、卡顿产生的原因以及解决方式

作者: BeginnerX | 来源:发表于2020-07-06 15:53 被阅读0次

图像显示的流程(单缓冲区)

单缓冲区图像显示流程

理想情况下前一帧数据显示完成时,后一帧数据已经存入帧缓存去。这样循环,完美的显示图像。

但是,现实情况中往往会出现,上一帧数据显示完了,下一帧数据还没处理完成。这样就会造成撕裂现象。如下图:

图像撕裂

垂直同步

为了解决撕裂的问题,采用了垂直同步的技术。这项技术是在两帧之间添加一个垂直同步脉冲,它指示着前一帧的结束,和新一帧的开始。这样就能避免游戏画面高速移动时画面撕裂现象。

但是,这样由引入了新的问题,有时候帧缓冲区长时间得不到新的帧数据,显示器就会一直显示同一帧的数据,造成画面卡顿(掉帧),如下图。为了解决这个问题,引入了双缓冲区/三缓冲区的概念。

卡顿(掉帧)

双缓冲区/三缓冲区

一台机器进料口上料的速度赶不上机器处理的速度就会出现机器的空转。为了应对这样的问题,可以增加一个进料口,当一个进料口的物料用完之后,切换到另外一个进料口,同事补充空进料口的物料。这样来回切换,已解决机器空转的问题。

类似的,双缓冲区/三缓冲区是为了解决画面卡顿问题而采用的技术。双缓冲区/三缓冲区并不能完全解决画面卡顿的问题,但是相对于撕裂问题,小概率的画面卡顿是可以接受的。

采用双缓冲区/三缓冲区技术的图像显示流程:

多缓冲区图像显示流程

总结

1.在单缓冲区模式下,高速刷新的画面会出现画面撕裂的现象.

2.利用垂直同步技术可以解决画面撕裂的问题

3.采用垂直同步技术引入了新的问题:画面卡顿

4.采用双缓冲区/三缓冲区技术可以有效地缓解画面卡顿问题,采用双缓冲区/三缓冲区技术并不能完美的解决卡顿的问题。

5.什么情况下回发生画面卡顿:

    1)CPU/GPU 渲染流水线耗时过长

    2)强制进行同步。已掉帧为代价解决撕裂问题

    3)采用双缓冲区/三缓冲区技术也有可能出现卡顿现象。

相关文章

  • 图像撕裂、卡顿产生的原因以及解决方式

    图像显示的流程(单缓冲区) 理想情况下前一帧数据显示完成时,后一帧数据已经存入帧缓存去。这样循环,完美的显示图像。...

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

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

  • iOS 中的保持页面流畅的技巧

    产生卡顿的原因屏幕显示图像的原理 在通产情况下.计算机中的CPU和GPU,以及显示器是以上面的这种方式来进行工作的...

  • iOS 性能优化之界面优化

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

  • 浅谈图像撕裂与掉帧产生的原因及解决办法

    1. 撕裂 1.1 产生原因 图像撕裂就是一张图片在显示的时候发生错位,产生断层,如下图所示:断层.png 图像的...

  • iOS界面优化的技巧

    转载自:iOS 保持界面流畅的技巧 屏幕显示图像的原理 卡顿产生的原因和解决方案 从上面的图中可以看到,CPU 和...

  • 屏幕撕裂、卡顿原因

    如图1。 这种图片撕裂的情况大家都应该见过。 现在都是光栅扫描的方式进行显示(一行一行的扫描),显示一个图像的时间...

  • iOS性能优化策略

    解决卡顿 卡顿产生原因:屏幕上每一帧内容,都是CPU计算后,GPU渲染的结果。当垂直信号(Vsync)产生时,如果...

  • 卡顿优化

    目录 1.屏幕显示图像的原理 2.卡顿产生的原因 3.卡顿优化1.优化CPU2.优化GPU 4.离屏渲染1.GPU...

  • 深入理解IOS离屏渲染

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

网友评论

      本文标题:图像撕裂、卡顿产生的原因以及解决方式

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