版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
头像
kewenyu
帖子: 33
注册时间: 2013-07-28 0:23

TAAmbk - 发一个我自己胡思乱想改的TAAmod [2015/10/05]

2015-02-18 21:19

前几天看见某贴吧上有人抱怨AA脚本速度慢而且“怎么调都有残留锯齿”,于是在洗澡时一拍脑袋在Taro大大的TAA基础上捣鼓出了这么个玩意。由于之前看见TAA貌似有mod了,为了区分,我这个暂且就先叫TAAmbk吧(Modified By Kewenyu)
初衷是为了提高TAA的速度,不过貌似只提升那么一点;后来又想简化参数添加功能,也没简化或添加到什么。最后乱搞了一通更像是个四不像吧(笑)
脚本修改技术含量不是很高,且本人也是小白一枚,第一次写脚本
其实所有的一切可以说都不是我想出来的,而是听菊苣间讨论、参考其他脚本得来的,我只能算是把各家的东西组合起来而已
如果有什么错误,恳请各路菊苣立刻指出, 同时也希望各路菊苣手下留情

需要滤镜/脚本
eedi2
eedi3 (0.9.2)
nnedi3/nnedi3ocl
Masktools2
SangNom/SangNom2
TEdgeMask/TEMmod
TCanny/TCannymod
MSharpen
Rgtools
Lsfmod
soothe
Mvtools2
FTurn (not required forcedly)
Toon
aWarpSharp2

函数:TAAmbk( clip input, int "aatype", int "preaa", float "sharp", bool "postaa", int "mtype", int "mthr", clip "src", clip "mclip", int "cycle", bool "predown", int "aarepair", int "stablize", bool "useOpenCL", bool "preferSangNom2", float "p1", float "p2", float "p3", float "p4", float "p5", float "p6" )
某些参数(比如aatype=-3)下可以比原TAA更快
脚本基本用法与原TAA相同,不同之处有以下几个


(1) 增加参数useOpenCL [bool, 默认false]
是否使用OpenCL加速处理,设为true的话将会使用Set菊苣nnedi3ocl代替nnedi3。此参数仅对使用nnedi3的模式有效。
根据Set菊苣的说法,原来的nnedi3处理速度取决于画面复杂度,而nnedi3ocl速度则与画面复杂度无关而完全取决于硬件性能。也就是说画面越复杂nnedi3ocl优势越大。另外Set菊苣还提到nnedi3ocl配合SetMTMode(2)使用效果更佳。另外Set菊苣还说了nnedi3ocl在A卡上有神秘加成(GCN架构)

具体效果测试见下文


(2) 增加参数preferSangNom2 [bool, 默认true]
是否用SangNom2代替SangNom。
之前测试发现SangNom2的速度比SangNom更快。但考虑到SangNom2的处理结果并不与SangNom完全一致,所以没有直接用SangNom2替换SangNom


(3) 增加参数cycle [int 0~6, 默认0]
设置脚本循环次数。0为不循环
非常简(sang)单(xin)粗(bing)暴(kuang)的一个参数。适合贴吧上各位深受rmvb毒害多年钟爱干净平滑线条的童鞋以及刚接触avs追求苏联式暴力作风的朋友。之前Taro菊苣提到过用递归的方法不断重复AA过程,无论什么锯齿都能推得一平川,甚至是3D锯齿(也是这个参数的主要目的)。设置这么个参数的动机是当初压某部动画时被渣CG亮瞎狗眼。这样做后果就是画面细节也被严重破坏了,需配合Mask谨慎使用。配置不好的电脑慎用。其实本质上与TAA利用src串联是一致的。
效果测试见下文


(4) 增加参数stablize [int 0~3, 默认0]
是否稳定输出结果,数字越大越慢,0为不使用
稳定输出结果可以减少artifacts。这个参数效果同MCAA中MC部分,会降低AA强度,甚至还原回部分锯齿。注意应避免与cycle一起使用(很慢,且目的与cycle完全相反因而毫无必要,而且两个在一起很容易假死)。现在可以根据个人需要考虑是否联用

(5) 增加参数limit [bool, 默认false]
是否用clamp进行时域最值限制
非常厉害的一个参数,瞬间还原大部分锯齿
启用时域最值限制后,最明显的表现是动态区域AA强度弱爆了,静态区域仍然有较强的AA强度(其实这样很科学,动态区域的锯齿因为变化很快你也来不及看)。非常慢也是要避免与cycle一起使用

(6) 自动使用FTurn提速
如果你有FTurn这个滤镜,脚本会自动使用FTurn(速度较快),如果没有,则会使用avs自带的Turn(速度较慢)

(7) 增加参数thin [int -128~127, 默认0] 和 参数dark [float 0.0~1.0, 默认0]
用法同MCAA
注意的是如果用了cycle,那这些效果会积累。

(8) 移除参数mclip
如果要用自己的mask直接mtype=clip就行了

(9) 增加参数showmask [bool, 默认false]
打开将会输出mask

(10) 增加参数mtype2和mthr2 [类型和取值范围同mtype与mthr]
生成第二个mask与第一个mask进行max。主要是之前处理某片时锯齿太厉害使线条断线严重,tcannymod出来的mask也是断线的。而MSharpen和TEdgeMask虽然不会断,但是背景一些色线mask不住,所以想出这种方法。典型用法是mtype1用mthr较小的tcanny,mtype2用mthr较大的其他mask。(当mtype为clip时mtype2无效)

(11) 增加参数averagemask [bool, 默认false]
将aa后的clip与source进行average再建mask,目的同上

(12) 增加参数auxmthr [float]
mtype=1时为tcannymod的sigma,mtype=3时为TEdgeMask的threshY

(13) 增加参数eedi3mask [int 0~255, 默认0]
用msharpen建一个mask作为eedi3的mclip使用,可以提升速度(充当prescreener)。不过按照taro菊苣的说法是不过把死慢死慢的东西变得死慢而已

下载地址http://pan.baidu.com/s/1hq6CxfA
下载地址:http://pan.baidu.com/s/1bnqdXhX
VS移植版点击这里 by Evalyn

Benchmark

本人配置
CPU: Intel Core I7 4790K
GPU: AMD Radeon R9 290
Memory: 8G
OS: Win7
Avisynth版本:Avisynth2.6 RC1 Set MTmod

1、速度测试(因人机而异,仅供参考)
640x480
EF1%MDVOD$EJ8UW@TVK11B9.png
EF1%MDVOD$EJ8UW@TVK11B9.png (5.77 KiB) 查看 3978 次
可以看见在打开opencl下使用nnedi3及sangnom2的模式有较大的速度提升

1080p,aatype=3测试
TAAmbk:useOpenCL=true,preferSangNom2=true ; have FTurn
► 显示内容 TAAmbk
Q1($6@S`D0@)NFR9I$~KGTN.png
TAA:
► 显示内容 TAA
old.PNG
2、Cycle效果测试
原始图:
52a53e38a862d20a0622dddafe32a65a.png
52a53e38a862d20a0622dddafe32a65a.png (38.4 KiB) 查看 4241 次
cycle=0:
nocycle.png
nocycle.png (90.49 KiB) 查看 4241 次
Cylce=6:
cycle6.png
cycle6.png (104.87 KiB) 查看 4241 次

-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Changlog
v0.6.1
1.使用雯姐的Resize8进行Resize避免产生chroma shift
2.修复一些bug

v0.6.0
对TAAmbk进行了一次大改
首先以模块化重写了脚本,将TAA原先的功能按prepass、mainpass、postpass、mask拆成四个函数执行
1.将preaa默认值按mawen菊苣的建议改成0,cycle也只循环mainpass了
3.增加参数showmask,打开将输出mask。这样可以比较方便的调试mask,生成的mask也许还可以给其他函数用。
4.调整了mtype,1、2、3分别使用tcannymod、MSharpen、TEdgeMask。4、5、6分别为sobel、roberts、prewitt。默认mtype为1
5.移除参数mclip。想要使用自己的mask直接mtype=clip
6.增加参数mtype2和mthr2。生成第二个mask,并与mtype的mask取max。主要用途是当某些锯齿断线比较厉害的时候tcannymod出来的mask也是断线,而其他mask又有漏线时,可以用这种方法弥补一下。
7.增加参数averagemask。将aa后的clip与input先average再建mask,目的同上
8.增加参数auxmthr,当mtype=1时为tcannymod的sigma,当mtype=3时为TEdgeMask的threshY。
9.增加参数eedi3mask。用msharpen建一个mask供eedi3的mclip使用以提升速度
另外修复了很多bug。其中之前因为理解错误,limit貌似并没有正确发挥效果,修改过后limit能正常生效且速度有所提升。
v0.5.1
-更改: “cycle”只循环MainpassAA,不会循环前后处理,可以放心的与stablize与limit联用
-增加: “mtype=7“,使用tcannymod(sobel)替换掉”mtype=5“中的tcanny。由于tcannymod默认强度貌似比tcanny低(?),所以其调低了它的mthr(不知是不是线性的,试了下貌似还真的跟tcanny对应上了)
-更改: ”preaa“默认参数改为-1
这次更新感谢mawen大大的建议

v0.5.0
-增加: ”limit“,使用clamp进行时域最值限制
-增加: ”thin“、”dark“,用法同MCAA
感谢feisty2菊苣的建议

v0.4.1
-新特性: 当Fturn滤镜可用时自动使用FTurn提速

v0.4.0
-增加: ”stablize“,时域平均,同MCAA

v0.3.0
-增加: ”cycle“,设置脚本循环次数

再往前就是些自娱自乐的版本号了,我就不列出来了
附件
new without gpu.png
new.PNG
上次由 kewenyu 在 2015-10-06 1:44,总共编辑 69 次。

头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 21:46

nnedi3不是拿来抗锯齿或者反交错的 强度太小 nnedi3可以作为抗锯齿或反交错的附加组件 (如eedi3 (sclip=nnedi3 ())进一步增加抗锯齿效果) 也可以作为特殊图像的放大插件 抗锯齿或者反交错老老实实eedi3
默认eedi 这样比较合适 上面没有看仔细
进行mc 除了进行时域上的平均 还可以进行时域上的最值限制 (clamp) 空域上还可以对dif进行lut计算减小损失 (由于锯齿变平衡通常是变化比较巨大的dif 可以把比较微弱的dif平滑的去除掉)

lwjkk666
帖子: 314
注册时间: 2012-05-29 13:43

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 22:13

nnedi3ocl这个该在哪里下载,可否提供一下插件下载。最近我用处理一些顽固狗牙问题回归TAA,还头痛着TAA的速度,今晚一看楼主的mod,刚好真想拿来测试一下。

头像
kewenyu
帖子: 33
注册时间: 2013-07-28 0:23

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 22:23

lwjkk666 写了:nnedi3ocl这个该在哪里下载,可否提供一下插件下载。最近我用处理一些顽固狗牙问题回归TAA,还头痛着TAA的速度,今晚一看楼主的mod,刚好真想拿来测试一下。
http://forum.doom9.org/showthread.php?t=169766

lwjkk666
帖子: 314
注册时间: 2012-05-29 13:43

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 22:24

kewenyu 写了:
lwjkk666 写了:nnedi3ocl这个该在哪里下载,可否提供一下插件下载。最近我用处理一些顽固狗牙问题回归TAA,还头痛着TAA的速度,今晚一看楼主的mod,刚好真想拿来测试一下。
http://forum.doom9.org/showthread.php?t=169766
漏了一句,关怀一下不能翻墙的人士

头像
kewenyu
帖子: 33
注册时间: 2013-07-28 0:23

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 22:31

lwjkk666 写了:
kewenyu 写了:
lwjkk666 写了:nnedi3ocl这个该在哪里下载,可否提供一下插件下载。最近我用处理一些顽固狗牙问题回归TAA,还头痛着TAA的速度,今晚一看楼主的mod,刚好真想拿来测试一下。
http://forum.doom9.org/showthread.php?t=169766
漏了一句,关怀一下不能翻墙的人士
http://pan.baidu.com/s/1hqqxskW

lwjkk666
帖子: 314
注册时间: 2012-05-29 13:43

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 22:36

OK,感谢。看看效果如何先

lwjkk666
帖子: 314
注册时间: 2012-05-29 13:43

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 22:54

useOpenCL=true的时候不知道为何压制出的视频全绿屏,画面全没或者全黑,cycle=6勉强有0.95FPS/S

头像
kewenyu
帖子: 33
注册时间: 2013-07-28 0:23

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 22:57

lwjkk666 写了:useOpenCL=true的时候不知道为何压制出的视频全绿屏,画面全没或者全黑,cycle=6勉强有0.95FPS/S
贴脚本和片源。另外至于这么丧心病狂要用6吗?实际测试过程中大部分情况3已经是一马平川了

补充:还有你的电脑配置信息尤其是GPU

lwjkk666
帖子: 314
注册时间: 2012-05-29 13:43

Re: TAAmbk - 发一个我自己胡思乱想改的TAAmod,可GPU加速及循环处理

2015-02-18 23:08

DGDecode_mpeg2source("F:\encode\Regios\VTS_01_1.d2v", info=3)
tfm(order=1).tdecimate(hybrid=1)
TAAmbk(aatype=-3, sharp=-1, preaa=-1,mtype=5, aarepair=0, useOpenCL=true, preferSangNom2=true,cycle=3)
LanczosResize(720,400) # Lanczos (Sharp)

E3的U,显卡是HD7850

回到 “AviSynth”