作者web2312 ()
看板AVEncode
标题[教学] MPC-HC EVR Sync 使用指南
时间Sat Jan 30 01:58:31 2010
全文基本翻译自官网
由於本人仍是初学者所以有些翻译可能会出错,请多多指教
官网:
http://www.ostrogothia.com/
EVR Sync的前身为Gothsync
其实这玩意儿之前就写过一篇介绍了@@
不过这次将它写的详细一些(推广?
这东西就是让您播放影片画面十分流畅,不会突然卡一下的
(因为硬体效能不行,造成解码lag的状况不适用)
以我个人来说
它的"方案1"对我十分有效
安装好MPC-HC後,选择EVR Sync并且将方案一打勾即可(参数都按照预设的)
接着将萤幕更新率调整至影格速率的整数倍
以动画和电影(23.976FPS)来说通常是48HZ(可以的话调成47.952HZ就完美了,
就我所知,NV显卡驱动可以调)
播放时,按Ctrl+J,可以看同步情形
Audio lag即音讯延迟,理论上-20ms~+20ms是合理范围
# of sync glitches指的是同步时,每个frame呈现的间隔与该fps下
每个影格实际平均的间隔,如果两者相差太大就会被视为glitch.
例如23.976fps 开 60hz就会增加这个数值.
# of frames dropped指的是影格有没有丢失,例如60fps的影片开48hz时
就会drop frames,然而23.976fps 开60hz则不会.
基本上,上面两个数值都是0的话就表示影片非常顺畅,不过有时候会有误判的情况
例如播放时,把踩地雷拖到MPC-HC上面晃来晃去之类的,还有playback刚开始时通常
会有127个glitches也是误判,切换全萤幕时也会造成误判,这时候可以按
Ctrl+Alt+R来清理统计资讯.
图形上,红线在中间直的(没有太大上下跳动)就表示影片流畅.
其他还有一些情况,例如使用MPC-HC的internal sub 去开idx/sub字幕的影片时
会无法完全sync之类的,得改成挂vobsub,或将EVR buffer及字幕buffer加大等...
就请有兴趣的人自己玩玩看吧= =
MPC-HC EVR Sync 使用指南
-----------------------------
前言
-----------------------------
本计画的目标是使MPC-HC播出完美的流畅影像.
要得到流畅的影像基本的要求是当每一个视讯框架准备好被呈现时,
它就必须被呈现在显示器.每一个视框开始呈现与结束呈现的时间是
由该视框关联的时间标记决定,例如欧洲DVD的视框就有一个40 ms间隔
的时间标记指示该影片要以25 HZ的速率播放.40 ms到底是多长,一般
由电脑音效卡上的时钟决定,因为该装置有合适的硬体时钟装置.
然而该时钟与决定视讯框架呈现时间的显示卡时钟是完全脱节的.
(一般LCD通常设定萤幕更新率为60 HZ,然而大部分的电影动画
视框速率是23.976 fps)
因为显示卡时钟并不知道影片视框的速率,所以可能造成视框准备好
呈现时,显示卡未将其呈现的情况,更糟的是,如果显示器更新速率与
视讯框架更新速率不同,部份视框可能会被鬼隐或者是呈现过久,当
眼睛和脑部针对移动画面进行预测,结果跟预想的有差异时就会感到
不满,并将其感知为"卡".
要呈现的影像会在"垂直空白"(以下简称VBlank)时更新,在那个短暂的间
隔,显示缓冲(Front buffer)的内容不会被呈现.(任何画面都会在VBlank
之後呈现并持续显示至下一个VBlank).常见的问题是,当一个视讯框架要
准备呈现的时间点与VBlank非常接近,就可以在指定的VBlank之後立即呈现,
如果视讯框架准备呈现的时间点稍稍晚了一些,可能就会变成在下一次
的VBlank後呈现,就算强制使视框在指定的VBlank呈现,无论多靠近VBlank,
都会使得部分视讯内容溢出到下一个VBlank之後,呈现出"撕裂"(Tearing)
的现象,即画面部分更新,上半部是一个视讯框架的下面,下半部是另一个
视讯框架的上面.相反的如果视讯框架准备呈现的时间点过早,就会在原先
指定的VBlank之前的VBlank後呈现(假设萤幕更新率是视讯框架速率的两倍,
则每隔一个的VBlank应该都是"未使用的",即该VBlank没有画面更新)
(例如萤幕更新率60 HZ 视框速率29.970 fps,则更新顺序应该是1,3,5
但是视框速率稍微快一些,所以可能在第二次Vertical Blank时就更新了
,这将导致画面出现撕裂或者每过一段时间drop掉一个frame)
因此要获得流畅的影像必须
(1)显示卡必须能产生一个适当的VBlank间隔与视讯框架呈现速率吻合.
(只要显示卡萤幕更新速率是视讯框架速率的整速倍即可)
(2)视讯框架抵达处理的最後阶段时要有足够的剩余时间允许显示卡在VBlank时
且将要呈现之前进行处理,如此一来,由於过慢更新造成的撕裂即可避免.
视讯框架处理的最後阶段包括视框的呈现是由MPC-HC中的一个函式"Paint"
进行的.很重要的是,播放程式须在下个VBlank之前适当提前呼叫Paint,不过不需
太早.从实验来看,在前一个VBlank後的萤幕更新周期的1/4时呼叫Paint是个不错
的时间点,以50 HZ萤幕更新率来说,将有15 ms的时间进行最後处理与呈现的工作.
-----------------------------
开始着手
-----------------------------
1.下载MPC-HC svn 1465之後的版本
http://www.xvidvideo.ru/media-player-classic-home-cinema-x86-x64/
2.如果你的目标是要完美的同步,请注意要将萤幕更新率调整至视讯框架速率
(影格速率)整数倍的正负0.1%之内,也就是说23.976 fps的片源用23.976 HZ
47.95 HZ 的萤幕更新率是OK的.对於25 fps的片源则使用25 HZ,50 HZ,75 HZ...
这样你就得到它了.在"EVR Sync Settings"中,使用最下面的同步方案"於最近的
垂直同步呈现"不需要去同步更新率,因为它是设计去降低非同步更新率所造成
的负面影响.同时也请留意在您显示卡驱动程式控制面板所显示的萤幕更新率
不见得都完全准确,EVR Sync会在视讯串流开始时进行实际萤幕更新率的测量,
并将其显示在OSD统计资讯(Ctrl+J)上供您参考.如果您在获得同步上有困难,
请检查该数据.
3.如果选择同步方案1和2,不要使用Reclock.
4.确定您安装了Enhanced Video Renderer (EVR).XP的使用者,请从微软下载并
安装.NET 3.5 framework以使用EVR. EVR Sync是基於EVR的绘制器.
5.开启播放器(MPC-HC).
6.开启 检视 -> 设定选项(或直接按O) 选择 播放->输出 页面.
7.在DirectShow 视讯选择EVR Sync作为您的绘制器,然後关闭设定选项画面.
-----------------------------
方案1 : 同步视讯至显示
-----------------------------
如果您可以将萤幕更新率同步至视讯框架速率,那麽这是您第一个可以尝试的方案.
这个方案应该可适用於所有萤幕及显示卡.如果使用SPDIF数位音讯输出,此方法可
能造成轻微的影音不同步,尤其是播放一部完整的电影时.因此爲了获得准确的影音
同步,必须使用类比音讯输出.
这个同步模式以萤幕更新率作为基准,并调整视讯及音讯对其加速或减速来与萤幕
更新率进行同步.请注意影片的影格速率与萤幕更新率的差距必须足够小,如果两者
之差距大於0.5%左右,音讯将开始失去同步.(即使是使用较大的控制参数,影像维持
同步)
要使用此方案
1.按O开启设定页面,选择"EVR Sync Settings"页面.选择"同步视讯至显示".
"频率调整"应该要设定为0.0012左右(标准频率的0.12%),"目标同步偏移量"
60 HZ的萤幕更新率设定为 8~14 ms,50 HZ的萤幕更新率设定为 10~18 ms,
然後"控制限制"设定为 2.0 ms.如果没有选择EVR Sync作为绘制器,或者正在
播放影片中(那个情况下请按档案/关闭或Ctrl+C),Sync Settings的选项将
不可使用.
2.好好享受影片并根据下篇文章检查同步情形吧.
-----------------------------
方案2 : 同步显示至视讯
-----------------------------
经本人测试完毕@@
有时间再补介绍
这个方案基本跟第一个方案是类似的,上面那个方案是对影片做加速减速来配合萤幕
这个方案则是对萤幕更新率微调来与影片同步,由於硬体限制的关系,实际上没办法
刚好设定在47.952或59.940之类的更新率,所以EVR Sync中的"目标同步偏移量"及
"控制限制"就是让你设定一个target,然後给一个range,当超出那个range时(out of
sync)就微调更新率,让sync offset永远在那个范围内.
-----------------------------
方案3 : 於最近的垂直同步呈现
-----------------------------
本方案是给那些不是使用类比音讯输出,而是使用SPDIF数位音讯输出(方案1不可行),
并且没有可被PowerStrip支援的显示卡及萤幕(方案2不可行)或者单纯因为萤幕限制
而无法将萤幕调整至与影格速率同步的人.本方案同时也能在与Reclock组合下良好
运作.
这个同步模式会尝试降低不良同步情形所造成的负面影响,藉由
(1)在垂直同步後的一个确切时间永远呈现最新的视框以防止撕裂.
(2)只要有机会就将视讯框架"拖"至最近的垂直同步.
造成可见跳动感(乎快乎慢或突然卡一下)的常见原因是一个视框的标准呈现时间
精准的就在垂直同步开始时,因为视讯呈现码本身的不精确,有时视框会在垂直同步
前呈现,有时候则在其之後呈现.如此一来,每个影格将不会以均等的间隔呈现,
也就造成了跳动感.
当打开"於最近的垂直同步呈现"时,跳动感将会被抑制成为只有一个明显的跳动.
要使用此方案
1.按O开启设定页面,选择"EVR Sync Settings"页面.选择"於最近的垂直同步呈现".
"目标同步偏移量"60 HZ的萤幕更新率设定为 8~14 ms,50 HZ的萤幕更新率设定
为 10~18 ms然後"控制限制"设定为 2.0 ms.如果没有选择EVR Sync作为绘制器
,或者正在播放影片中(那个情况下请按档案/关闭或Ctrl+C),Sync Settings的选
项将不可使用.
-----------------------------
Report(2010/3/31)
-----------------------------
1.若怕切萤幕更新率麻烦,新版的MPC-HC已经将自动萤幕更新率切换的功能并进去了,
目前使用上还不是非常稳定(有bug).
2."於最近的垂直同步呈现"个人使用起来感觉还是不顺(约每几分钟卡一次).
ar-jar(作者在doom9的帐号)有提到这方案本来就不是完美的同步.
所以要追求完全平顺的人还是使用方案一效果较好.
3.
"同步显示至视讯"必须搭配powerstrip使用,mpc-hc会藉由powerstrip去微调
显卡的更新率输出来达到同步,因为我使用的是N牌显卡,powerstrip似乎不支援
8-9系列的N牌显卡,所以就没办法测罗@@ (2010/2/9 更新:NV8/9 可使用)
4.使用方案1,影格速率等於萤幕更新率时,使用一般的全萤幕(非D3D Fullscreen)
会有不同步的现象.我测的例子是用60i的影片去跑.暂时的替代方式是不要开全萤幕
或者使用D3D Fullscreen模式(如果开GUI支援会失去D3D特性,所以不能开),基本上
我用到现在EVR Sync+D3D Fullscreen的组合几乎是perfect smooth playback.
1920*1080开动态字幕也不见任何跳格.
5.VSfilter与EVR Sync的组合完全没问题(不开动态字幕,开缓冲)
6.使用MPC-HC内建字幕器,如遇idx/sub字幕,需将EVR及字幕buffer加大(个人直接调60)
其余状况皆设为标准的EVR 4 Sub 4.
7.除非真的需要开CUDA,不然都不要开,CUDA+VSFilter的组合在许多片子都会卡.
对於某些特定高流量的片子,开CUDA画面会花掉.
8.播放中切换播放位置(即直接拖移时间轴)会导致Audio lag持续增加,所以要改个习惯
先按暂停,拖时间轴,在按开始= =
9.Audio lag大於或小於20或-20时,会自动加速或减速来match rate,不过似乎在要变换
速率的时候,会"啪"的一声,听起来不是很舒服,英文OK的版友可以的话,请帮我回报
ar-jar...3Q
http://forum.doom9.org/showthread.php?t=148221&page=31
http://forum.doom9.org/showthread.php?t=123537&page=588
方案2测试心得
1.Perfect solution
2.原本以为powerstrip不支援NV 8/9(gothsync官网写的),不小心无聊去抓下来装了一下,
发现其实可以用= =(不过powerstrip官方还是强调,未"正式"支援NV8/9及更新的系列
所以要自己去试试看)
3.在此模式下基本上是完美了,除了上面第八点,第九点外,其余特性皆与第一方案相同
4.重点是这样就可以SPDIF到电视罗...(这个方案不会动到音频)
总结这个方案大概就是 跟看电视台播的一样完全流畅了
没有tearing 没有glitches
Overall
1.不知道为什麽,就算绿线一直维持在适当的范围,依然会不定时出现1~2个glitch,
测试一部24分钟影片,约出现2个glitches,就算开启D3D模式亦同,这个状况在使用
Reclock时没有发生过.(同样的设置,同样的影片)
2.考虑到许多monitor不支援方案二(需使用powerstrip做动态即时微调),并且使用
方案一的话,会有一些小问题,如上一页所述,因此目前是建议使用Reclock.
以上仅个人测试结果回报
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.133.33
※ 编辑: web2312 来自: 114.32.133.33 (01/30 02:07)
※ 编辑: web2312 来自: 114.32.133.33 (01/30 14:30)
1F:推 Luciferspear:推 01/30 15:01
2F:推 goldie:^^b赞 01/30 21:59
※ 编辑: web2312 来自: 114.32.133.33 (01/31 00:02)
3F:推 albomxx:推教学文=w= 01/31 00:21
※ 编辑: web2312 来自: 114.32.133.33 (02/03 00:43)
※ 编辑: web2312 来自: 114.32.133.33 (02/06 01:03)
※ 编辑: web2312 来自: 114.32.133.33 (02/06 01:05)
※ 编辑: web2312 来自: 114.32.133.33 (03/31 19:30)
4F:推 xvid:reclock移除不乾净 不推荐 05/05 20:15
5F:→ web2312:可以说明一下详细情形吗? 05/08 11:44
6F:→ xvid:上面我的推文请忽略 推错了= =... 11/15 12:05