关于Sync Renderer与画面撕裂(tearing & judder)的一些讨论

众所周知,我们深爱的VMR9其实存在种种不便。其一为困扰我们多年的色阶问题(0-255)。所幸,在众多高人的努力下,色阶问题有了各种解决方案。
其二,就是画面撕裂的问题。这个只在VMR上存在的问题,至今还没有一个十分完美的方法解决,特别是在我最钟爱的MPC-HC上。导致我们重新回到overlay的怀抱(个人觉得,overlay的好坏取决于显卡)。
在1465版的MPC-HC中,Directshow渲染器突然多了一个Sync Renderer渲染器,很多筒子也发文表示关注到了这个变化,可是实际使用下发现画质和vmr相比没有变化。不过Sync这个词令人想到这会不会与垂直同步有关,而同步问题恰恰是解决撕裂(tearing)的关键。
在doom9上有这个问题的答案,Sync Renderer的前身是ar-jar编写的GothPlayer,现在已经整合到mpc-hc中来了。ar-jar筒子在他的web上提出观点,tearing的原因在于视频源的frame大多为24/25fps(我发现还有更多动画是30fps),而我们的播放设备往往是50hz/60hz, 这导致了很多关键帧在播放设备上需要重复reflash两次或三次,导致画面出现不连贯甚至撕裂的现象。一个简单的方法就是把我们的显示设备刷新率调成与视频同步(24/25), 或是将视频本身插值一些过渡帧。这也是ar-jar的基本思路。

在我们选中Sync  Renderer后,选项中的Synchronization就可以选择了。其中有3个选项:
1,Synchronize video to display。顾名思义,就是将视频帧插值,于播放设备同步。这其实是最简单的,效果也能达到完美。但有一定限制,就是视频源与设备的不同步率不能太高,不然会导致音频输出稍有不同步,特别是在SPDIF输出的情况下。其实,这种方案就是使用evr同步的原理。
2,Synchronize display to video。将播放设备与视频同步,也就是调整显示设备的刷新率。个人认为,这其实才是最完美的方法,不会存在音频问题,不会生成垃圾帧。只是,实现起来有一定难度,我们需要配合PowerStrip。是的,实质这个选项就是利用PowerStrip调整显示器刷新率。这里也有一定局限,PowerStrip的兼容性并不是那么好,部分显卡和显示器不能实现自动调整。恩,其实吧overlay理解成一种播放设备,这其实就是overlay之所以同步的原因。
3,Present at nearest vsync。这是一种近似的解决方案,我理解时候和第一种有相似之处,但作者指出这种方案只是近似‘完美’,不能达到真正的同步。

好,我们的结论。这个新渲染器使用的前提:如果我们的显示器支持TV模式,也就是说,能支持24/25或其整数倍的刷新率(120hz是最完美的,是24与30的公倍数),那么使用这种渲染器,我们能达到完美的显示效果!!没有撕裂,没有停顿,如丝般柔顺。而对于普通显示器,与其用模式1,不如换用EVR或overlay,效果会更好。

[attach]567285[/attach]

没想到加精了。。呵呵,补充一下。
其实这个Sync模式作者也还在测试阶段。作者设计之初的目的,是为了在液晶电视,投影仪等播放设备上实现完全同步。
我们看这幅图
[attach]568165[/attach]
黄线处第一行是frame cycle,一部25fps的影片是40ms,第二行display cycle,50hz的显示器是20ms。显然display cycle与frame cycle成整数倍关系,说明片源于刷新率可以同步。所以我们看到第三行cycle mismatch为0%
模式2的目标就是这个cycle mismatch为0%
可以用PowerStrip,论坛也有朋友提供脚本。

而模式1,我们也能用reclock实现,同样有音频不同步的问题。

(转)Sync Renderer与画面撕裂相关推荐

  1. 谈谈我对画面撕裂,垂直同步,Freesync以及G-sync的理解

    最近一直在接触图形学相关的知识,感觉之前在学OpenGL的时候不需要思考帧缓冲是怎么处理到显示器上的,驱动都帮我做好了,现在在接触vulkan的时候发现自己对Swapchain这个东西的工作原理不是很 ...

  2. 解决游戏画面撕裂问题谁家显示器更强?

    [摘要]NVIDIA G-Sync和AMD Free Sync之争将是2015年显示器市场的一大亮点,它们都需要显卡和专用显示器支持,从而实现智能刷新率调节. 腾讯数码讯(编译:Lotus)不论是NV ...

  3. 画面撕裂、卡顿、垂直同步

    FPS:显卡可以支持每秒钟输出多少帧画面 刷新率:显示器最高支持每秒钟显示多少帧画面.刷新率越高的屏幕,在一秒内屏幕上可表达的帧数越多,画面延迟越低. 显卡有2个帧缓存,一个前缓存,一个后缓存.显卡不 ...

  4. 修复Linux下NVidia显卡画面撕裂的问题

    修复Linux下NVidia显卡画面撕裂的问题 为什么会出现画面撕裂 如何解决 修改配置文件 Modprobe.d 为什么会出现画面撕裂 基于我目前的认知,画面撕裂主要是因为没有开启等待垂直同步.于是 ...

  5. win7画面撕裂问题

    开始运行Unity画面撕裂,以为是Unity设置问题,后来发现视频也会撕裂,多方查找试了n多种方法后,通过更改Aero主题解决.

  6. 解决BurpSuite的画面撕裂问题

    BurpSuite会有一个启动文件,以我这个2023.6.1发布的版本为例 之前尝试过在2022.3的版本,同样的方法在.bat文件里编辑,行不通,建议使用作者在使用的这个版本 把原本的BurpSui ...

  7. linux amd显卡驱动画面撕裂,从此告别画面撕裂 AMD-FreeSync技术解析

    说到"垂直同步"技术,相信很多玩家都知道是啥意思,它可以有效解决游戏中的画面撕裂问题,让画面更平滑.然而它也有一个致命伤:会限制显卡的性能输出,进而造成卡顿.至于具体缘由,还要从显 ...

  8. linux 浏览器 画面撕裂,真不怪显卡 教你解决画面撕裂问题

    原标题:真不怪显卡 教你解决画面撕裂问题 游戏画面撕裂和垂直同步这两个词在最近出现频率还挺高,画面撕裂就是在游戏过程中,画面出现的错位现象.而垂直同步是解决这一问题的游戏设置,比较简单粗暴的办法.今天 ...

  9. Unity3d Linux 下面画面撕裂问题

    在Linux下游戏开发过程中,遇到了画面撕裂(tearing)的问题,一般来说,垂直同步应该是可以解决掉画面撕裂的问题,但是在多屏显示的情况下,即使开启了垂直同步,依然不能解决撕裂问题. 多屏显示是指 ...

最新文章

  1. java transient关键字_小伙子,你真的搞懂 transient 关键字了吗?
  2. 2021 年 5 月程序员工资统计,惨不忍睹。。。
  3. ANDROID内核和驱动篇-ANDROID内核介绍(转)
  4. Caffe官方教程翻译(3):Siamese Network Training with Caffe
  5. codeforces315Div1 B Symmetric and Transitive
  6. Spring注解开发-Bean注册
  7. 工业工程专业C语言,工欲善其事必先利其器——工业工程课程设置及其核心专业课简介...
  8. 牛客练习赛46 A 华华教奕奕写几何 (简单数学)
  9. BootstrapValidator验证
  10. quicktype游戏java程序_使用QuickType工具从json自动生成类型声明代码
  11. 装饰模式在Intermec CK1应用程序中通讯模块的应用
  12. html5不支持的属性,HTML5 常用语法一览(列举不支持的属性)
  13. Eric Evans谈领域驱动设计、微服务与边界
  14. 对等通信_新的通信技术如何影响对等参与
  15. parallels desktop 启动过失败_使用u启动软件制作启动盘时注意哪些【详细介绍】...
  16. 区块链项目开发区块链应用场景需满足3个
  17. git学习笔记(2-git初始化配置)
  18. matlab2014a vs2015,Matlab2014a使用VS2015混合编译
  19. java 偏向锁_Java 偏向锁
  20. COMSOL有限元仿真深度指南:超弹性模型有限元分析入门

热门文章

  1. ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践
  2. 圆形头像 android,android 一个简单的实现圆形头像的Demo
  3. PHP生成PDF Mpdf扩展
  4. wps两列数据分别作为xy轴_面对三维数据很慌张?气泡图了解一下
  5. 解决百度网盘限速的问题
  6. 非线性系统【二】Lyapunov稳定性
  7. 新南威语言班C加,2020年新南威尔士大学语言班学习攻略
  8. C# vb .NET读取识别条形码线性条码code128
  9. 【CFD理论】扩散项-01
  10. 16种常用的数据分析方法-主成分分析