作者web2312 ()
看板AVEncode
标题[教学] SmoothVideo Project与相关avisynth语法使用分享
时间Tue Aug 16 04:04:24 2011
SmoothVideo Project (SVP)
========================
-----
前言
-----
SVP可让你在观看电脑上所有影片时拥有
动态补偿(如同你在许多高阶电视
所看到的).透过在原始的影格之间插入中间影格以提升影格速率,使画面
流畅清晰.这项技术已经广为熟知
("TrimensionDNM", "Motion Plus",
"Motionflow" 等...),现在PC使用者可以免费的使用这项技术,只需透过
简单的GUI介面点几下滑鼠.
自SVP 3.0版起,SVP具备了GPU加速演算,现在只要你使用近代的显示卡配备,
就有机会观赏实时演算至60hz的1080p影片.
SVP并不是一个播放器,但它可让大部分的播放器拥有动态补偿的功能.
-------------------
谁可能需要这项功能?
-------------------
http://www.svp-team.com/wiki/Frame_interpolation_overview
如果你看得出上述网址网页中三张动画的差异,你可能需要试一下SVP.
-------------------
为什麽需要这项功能?
-------------------
因为人眼视觉残留的因素,当画面由A瞬间切换成B时,大脑所接收的视觉将残留
少部分的A影像.对影片中移动的物体,我们可发现当影格速率越低时,眼球追踪
该物体的视觉模糊越严重,反之,只要提高影格速率,模糊的程度就会降低,动态
上的解析度也较能保持.
目前大部分LCD萤幕采用的是Hold-type显像法,当LCD接收到60hz的影像讯号,
每一张画面将完整呈现1/60秒後再转换到下一张.而CRT的pulse-type显像则是
每一张画面只呈现一个短暂的时间(远低於1/60秒),各影格之间存在黑画面.
示意图:
LCD hold-type rendering
frame (1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3...61 61 61 61 61 61)
sec 0 1/60 2/60 60/60
CRT pulse-type rendering
frame (1 X X X X X 2 X X X X X 3 X X X X X...61 X X X X X )
sec 0 1/60 2/60 60/60
由上图可知,CRT在显像时,画面消隐时间可降低视觉残留程度,
因此追踪画面移动中的物体时,60hz CRT的动态清晰度将远大於60hz LCD.
(可试着将LCD萤幕中的视窗随意移动,并试着追踪移动中视窗上的文字,
即可感受到动态模糊.这在CRT中并不明显,即使是晃动视窗文字也不会
大幅模糊,戏院所使用的胶卷放映也是属於pulse-type显像,因此对於
动态上的呈现要比hold-type更具有速度感.)
即使将LCD的反映速率降至0.001ms仍会有明显的动态模糊,会造成
动态模糊的原因主要有两个
LCD液晶反映速率 (Response time) + Hold-type显像的存留时间 (Hold time)
同时考虑这两者所得出的为MPRT(Motion Picture Response Time)
(动态上的顿感(judder)也会造成动态模糊,人眼倾向追踪线性速率
移动的物体,当画面忽快忽慢时(也包括hold-type的"瞬间移动"),
人眼将不易追踪而造成动态模糊.可能会造成影片播放不规则顿感的原因
包括硬体设备上的满载和软体上的因素,以及最常见的萤幕更新率与
影格速率的不一致,前两者如果操作正确的话不会发生,第三个须由
Reclock或类似方案解决,详细可参考本版
#1CtNwF4f )
大部分的TFT LCD萤幕皆可达到16ms以下的G2G response time,
因此主要造成LCD动态模糊的是hold-type显像.
而对於LCD hold-type显示在动态上的不足,主要有以下三种方式补偿.
(1) 背光扫描技术
主要是让背光分组进行显像,每一个瞬间只有一个水平线画面亮起,由上至下
循环扫描,有的则是使用循环关闭一组背光以使画面亮度不至於掉太多.
缺点: 亮度降低,闪烁感.
(2) 插黑帧技术
在每张画面之间进行插黑画面的动作,与背光扫描技术原理相同.
缺点:亮度降低,闪烁感.
(3) 动态插补技术
透过在画面之间,实时演算出中间帧,使每一张画面存留的时间缩短,降低
视觉模糊的程度.
缺点:原始画面破坏(Artifacts),不自然感,肥皂剧感觉(Soap Opera Effect).
注:Soap opera effect-
大部分廉价肥皂剧(电视剧)是以60i摄影的,当24p的电影透过动态插补
至48p或60p时,会有类似肥皂剧的感觉,因此动态插补又被称为肥皂剧效果.
-------
SVP下载
-------
当前最新版本为
3.0.4 (09/15/2011)
SVP 3.0.4 Lite (2MB)
http://www.svp-team.com/files/SVP_3.0.4_Lite.exe
适用於已经自行安装了播放器和ffdshow,avisynth等配件
或已经安装了过去版本的SVP的使用者
SVP 3.0.4 Full (27MB)
http://www.svp-team.com/files/SVP_3.0.4.exe
适用於尚未安装任何播放器与ffdshow,avisynth等配件的使用者
SVP至少需要 ffdshow, AviSynth 才能运作,
其中AviSynth必须为支援多核心运算的版本.
有缺漏的配件可至SVP官网补齐
http://www.svp-team.com/wiki/Download
--------
快速上路
--------
1.强烈建议在安装SVP前移除所有解码包(如K-Lite等).
2.执行SVP安装档,整个过程不需更改任何设定,照着指示点选下一步即可.
3.安装完成後,在开始功能表中开启"SVP Manager".
SVP的图示应该会出现在右下角的常驻列.
4.开启MPC-HC (或其他可调用ffdshow filter的播放器),
确认MPC-HC调用ffdshow video decoder或ffdshow raw video filter播放後,
开启想观看的影片,SVP的图示将会转为绿色,并且在影片中提示
"SVP: Smooth playback...".
5.Enjoy!
--------
效果调整
--------
SVP非常的吃CPU,虽然我们已内建了可用於大部分硬体的设定档,
你或许会想自行调整效果使其更适合您的电脑.
要调整效果,在SVP图示上点右键,[Algorithms profiles settings]下
有三个设定档,将会依照影片播放的解析度自动套用,点击设定档以进入
设定方块. (可调设定的数目由SVP选单 [Interface]下的三个选项
Simple, Advanced, Expert调整)
影片播放时,在SVP图示上点两下可开启当前影片所使用的设定档.
------------
个人设定分享
------------
Smoothness improvement: Advanced
SVP-shader: 23. Complex
Framerate change: Double the frame rate(2x)
Interpolated frames size: Full size
Search radius: 1 pixel
Search type: Uneven Multi Hexagon
Motion estimation accuracy: To pixel
Recalculation of vectors: Do not recalculate
Blocks size: 32x32 pixels
Blocks overlapping: No overlap
Contour artifacts suppression: Normal
Bad areas artifacts suppression: Normal
Bad areas artifacts mask: Normal
Processing of scene change: Frame repeating
Reduce resolution: Do not reduce
Frame blending to screen refresh
-rate: 不勾选
这设定值产生的artifacts比较少,但是相对的判断动态移动的标准就比较严格,
如果场景移动幅度非常大或者影格之间差距较大帧数较低(如动画等),
则不会对其做插补.
个人在使用上搭配了Reclock,可以达到完全去除judder的效果,并且将萤幕更新率
设定为影片速率的整数倍,例如24p影片设定为48hz,30p设定为60hz.
如果有更好的设定值欢迎版友分享上来XD
-------------------
使用DXVA配合SVP播放
-------------------
使用条件:
1.需使用PotPlayer
2.作业系统必须是Windows Vista/7
3.并非所有显示卡皆支援
说明:
1.安装PotPlayer.
2.开启PotPlayer,右键/选项,左侧[滤镜]/[视频解码],点一下"内置解码器/DXVA
设置".
3.在右侧硬件加速(DXVA)设置,使用条件选为"总是使用",下方
VC1,H264,AVC1及MPEG4选为VLD,最後将"在 Vista/Win7 中开启DXVA无渲染模式"
打勾後按确定. (如果无此选项请更新您的PotPlayer)
4.左侧[滤镜]/[滤镜优先权],点一下"添加系统解码器",
找到"ffdshow raw video filter"将其加入後,将其优先顺序选为"强制使用",
并对ffdshow raw video filter点两下,在设定方块左侧[Codecs]点一下,
确认Raw video选为all supported後,按确定再确定即可.
5.开启SVP Manager後,使用PotPlayer播放想观赏的影片 then Enjoy!
注: nVidia显卡使用者可使用LAV CUVID Decoder进行显卡加速解码.
一些"无用"的有趣avisynth语法
============================
使用方法:
1.让播放器调用ffdshow video decoder或ffdshow raw video filter播放.
2.开启ffdshow设定方块,将左侧AviSynth设定选项打勾.
3.点选AviSynth设定,右侧将Add ffdshow video source取消勾选,
Input colorspaces的四个方块打勾,Buffer back/ahead不勾选
3:2 Pulldown选为Ignore pulldown.
4.将语法贴在下方空白处,按确定後即可.
--------------------------------------
让LCD或非交错式显示设备输出交错式画面
--------------------------------------
语法:
ffdshow_source()
AssumeTFF
ConvertToYUY2(interlaced=true)
Original=SeparateFields
EvenFields=SelectEven(Original)
EvenFields=AssumeFrameBased(EvenFields)
OddFields=SelectOdd(Original)
OddFields=AssumeFrameBased(OddFields)
BlackFields=Blankclip(EvenFields,color=$000000)
Even=Interleave(EvenFields,BlackFields)
Even=AssumeFieldBased(Even)
Even=AssumeTFF(Even)
Evenprog=Weave(Even)
Odd=Interleave(OddFields,BlackFields)
Odd=AssumeFieldBased(Odd)
Odd=AssumeBFF(Odd)
OddProg=Weave(Odd)
Interleave(EvenProg,OddProg)
说明:
这个语法可以将30p或24p的画面输出成60i或48i,
对於60i的画面则是直接原始输出60i的交错画面.
使用上需要注意ffdshow设定方块左侧RGB conversion,
必须将Method下面的Interlace or Progressive设定在Force Progressive,
这样当avisynth处理完交错画面要从YUY2转回YV12时才不会发生误判.
另外如果影片来源的垂直解析度与显示设备的当前垂直解析度不同的话,
可利用ffdshow的Resize功能,或者直接在avisynth语法中使用LanczosResize()
将影片解析度调整至与萤幕解析度一致,以取得最佳观赏效果.
视觉效果:
仔细靠近萤幕,你会发现萤幕稍有闪烁的感觉,且亮度暗了一些.
如CRT pulse type显像般的感觉,然而因为LCD的液晶反映速率仍远远不及
CRT,LCD的更新频率为60hz(Hold-type),实际上每条水平像素显示的频率在30hz,
所以闪烁的感觉或许会比CRT严重.
Source:
http://tinyurl.com/3t9y8j8
---------------------------------------------
让Hold-type的LCD模拟pulse-type的CRT输出(插黑)
---------------------------------------------
※注意 : 长时间使用此语法观看影片可能造成眼睛不适!
语法:
在120hz/60hz/48hz的萤幕上观看60fps/30fps/24fps影片使用1/2的hold time
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black)
在72hz的萤幕上观看24fps影片使用1/3的hold time
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Black)
在96hz的萤幕上观看24fps影片使用1/2的hold time
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Original,Black)
在120hz的萤幕上观看24fps及30fps影片使用2/5及1/2的hold time
#24fps
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Black,Original,Black)
#30fps
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Original,Black)
此语法会带来强烈的闪烁感,请降低显示器的亮度或戴上护目镜或墨镜
说明:
这个语法在影格之间进行插黑,除了120hz的插黑闪烁感较不严重(120hz语法
插黑频率为60hz,其余皆为48hz,30hz与24hz),其余因插黑频率偏低,闪烁感比较重.
因为影格的hold time进行了缩减,所以动态模糊的情形可以改善许多.
视觉效果:
非常闪,并且亮度降低许多,但眼球追踪画面移动中的物体会发现动态模糊的
情形改善许多,并且有类似戏院胶卷放映般的动态感.
使用软体进行插黑,因为硬体信号输入频率的关系,插黑频率无法太高,
如果能将插黑频率提高,闪烁的感觉将可以改善.
Source:
http://forum.doom9.org/showthread.php?t=144276
近期会更新前一篇Reclock的教学文(有些内容是过时的)
主要新增madVR与Reclock的搭配使用方案
1F:→ dkfum:效果不错 但还是有些artifacts... 08/16 17:49
2F:→ dkfum:解析度低的影片或是动画类更明显 而且可惜不能在DXVA下使用 08/16 17:50
3F:→ xvid:我试的结果画面很暗 而且有横纹 08/16 17:52
4F:→ xvid:不过Arcsoft的double frame rate还算正常 08/16 18:00
5F:→ web2312:待会我PO个个人设定档,拿来看动画几乎没有artifacts XD 08/16 18:41
6F:→ web2312:DXVA下是可以使用的,依据官网的说法,要配合potplayer 08/16 18:41
7F:→ web2312:晚上再更新上去... 08/16 18:41
8F:→ web2312:有横纹是正常的,间隔萤幕30cm以上观看比较好 XDD 08/16 18:53
9F:→ web2312:就像我们在看CRT一样XDD 08/16 18:54
10F:→ dkfum:potplayer下还是需要AviSynth吗? 08/16 18:55
12F:→ web2312:需要potplayer配合ffdshow (avisynth) 08/16 18:56
13F:→ web2312:我前几天测试过,似乎是我的显卡比较旧的关系,画面会卡 08/16 18:57
14F:→ dkfum:如果再加上madVR CPU大概会吃得很吓人www 08/16 18:58
15F:→ web2312:madVR我是没有用啦,因为效果一眼看不出来XD 08/16 19:01
16F:→ xvid:madVR对CPU影响不大啦 08/16 19:18
17F:→ xvid:刚试用一下SVP 效果还不错耶 可是偶尔有线条模糊 或字体抖动 08/16 20:16
18F:→ web2312:可以先自己玩一下设定,再调之前先拍张照,免得玩坏了 08/16 20:20
19F:→ web2312:调不回去ww 08/16 20:20
20F:→ xvid:阿... 我应该是调坏了XDDDD 08/16 20:24
21F:→ xvid:不过有restore setting还ok 08/16 20:39
22F:→ xvid:调一调我觉得CPU在喘了...XDDD 08/16 20:43
23F:→ web2312:之前在新i5系列跑过SVP,就算开1080p+SVP CPU也不过20% XD 08/16 20:45
24F:→ web2312:PS:预设值啦, 如果要调的话,把i7操爆的设定都有XDD 08/16 20:49
25F:→ web2312:对耶,有restore setting...之前还拍了一堆照= = 08/16 20:51
26F:→ xvid:SVP-Shader没有调满 画面里的静态文字就会随背景运动而抖动 08/16 20:56
27F:→ xvid:不过一调满cpu负载就变很高 另外我播电视录的乌龙派出所 08/16 20:57
28F:→ xvid:开启enable deinterlace的话 画面里线条就会有马赛克的迹象 08/16 20:58
29F:→ web2312:对於interlaced的片源,motion判断可能会比较差,所以会有 08/16 21:16
30F:→ web2312:较多的artifacts,试试看progressive的片源吧 08/16 21:16
31F:→ xvid:可惜不能启用OpenCL 倍频感觉不太出来+小不习惯 似乎会有些 08/16 21:24
32F:→ xvid:差异 为了爱地球 我放弃SVP了XD 08/16 21:25
33F:→ dkfum:搞了半天 1080i解交错还是有问题 不过进步很多了... 08/16 21:46
34F:→ web2312:因为SVP主要不是拿来作解交错用的@@ 08/16 21:49
※ 编辑: web2312 来自: 114.44.141.176 (08/17 11:22)
35F:推 tonyhsie:竟然没人推 头推 XD 08/19 20:16
36F:→ goldie:好文章,先推^^ 再来慢慢消化 08/20 20:13
※ 编辑: web2312 来自: 114.32.133.33 (10/08 22:41)
37F:推 lacefairy:web大您真是我的苦海明灯啊!!~ 11/26 15:37