头像
Evalyn
帖子: 17
注册时间: 2014-07-19 20:49

vsTAAmbk - AA Script ported from TAAmbk【已由原作者继续适配至R33+】

vsTAAmbk 0.4.1.zip
(6.2 KiB) 下载 258 次
v0.4.1并不支持到最新的R32/R33及以上...支持新版本VS的请直接到GitHub获取...我有空会继续更新下帖子.
忙里偷忙却不知道自己一天在忙什么

GitHub

vsTAAmbk是从Avisynth脚本TAAmbk 0.7.0移植而来。
感谢原作者kewenyu在移植过程中的帮助!
参数以及用法方面基本一致。
详细参数以及用法,可以参考上面的帖子和taro大原版TAA的帖子。
► 显示剧情透露 masktype注意事项:
► 显示剧情透露 和TAAmbk的主要区别在:
用法,把vsTAAmbk.py置于python安装目录下的Lib\site-packages里
► 显示剧情透露 VapourSynth调用函数如下
需要注意的是:
(1)只支持YUV colorfamily输入。并且输入只能为8bit或者16bit INT。输出统一为16bit INT。(测试看来420和444都没问题)
(2)内部AA部分几乎全是16bit精度。(8bit if necessary,eg,eedi2,sangnom)
(3)mask部分的精度取决于input clip。输入为8bit则8bit。输入16bit则16bit。
(4)其它部分均为16bit。
► 显示剧情透露 (v0.4的忏悔)
► 显示剧情透露 (v0.3.2的碎碎念)
[spoiler=(v0.3的补充)
v0.3版 速度大幅提升!]在我4c8t的渣本上,纯AA部分对AVS占据了相当明显的优势。
(当然你需要lsb=False)
SPEED.jpg
大概后面就是这样了。如果没有新的aa method的话。[/spoiler]
► 显示剧情透露 Requirements:

Changelog:
2015.12.3
更新v0.4
修复一摞子位深自适应bug,开放mtype 5
一些逻辑上的小优化

2015.11.9
更新v0.3.2
修复eedi3 AA模式的一处位深输入错误。
增加aatype 7

2015.10.24
更新v0.3
从TAAmbk 0.7.0移植。
大量精简脚本逻辑。
内置Depth转换函数。不再依赖mvf。雯姐么么哒。
开放aatype -2 和 2 (所以你需要保证VS最低为R28版本)
其他更新参考TAAmbk 0.7.0

2015.10.07
更新v0.2
修复若干奇怪的bug,应该是完全支持YUV colorfamily。
修改之前自适应resizer的一处错误,避免Chorma Shift。(感谢雯姐的思路)
重写eedi3的AA模式
优化脚本逻辑,减少不必要的判断。

2015.10.05
Initial release v0.1
上次由 Evalyn 在 2016-10-21 22:12,总共编辑 11 次。
► 显示剧情透露 欢迎各路姐姐前来照顾萝莉
头像
Evalyn
帖子: 17
注册时间: 2014-07-19 20:49

Re: vsTAAmbk - AA Script ported from TAAmbk 更新0.3【速度大幅度提升】

10.24更新 0.3版本。
感谢kewenyu和雯姐的帮助!
► 显示剧情透露 欢迎各路姐姐前来照顾萝莉
头像
Evalyn
帖子: 17
注册时间: 2014-07-19 20:49

Re: vsTAAmbk - AA Script ported from TAAmbk 更新0.3.2

预计近期(不知道啥时候)会有一次优化性更新.....
开放全部mtype...优化Expr...等等...
CSMOD大法好...!
► 显示剧情透露 欢迎各路姐姐前来照顾萝莉
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: vsTAAmbk - AA Script ported from TAAmbk 适配VS R29+

► 显示剧情透露
我的锅我的锅我的锅 {:cat_5}
setfieldbase(0)后不抖了,流里有交错的标记,以为没什么影响就直接预览了 {:cat_4}
多谢群里大大@クトゥグア 指出
真是添麻烦了,小白表示痛改前非好好背锅 {:cat_11}
kewenyu
帖子: 33
注册时间: 2013-07-28 0:23

vsTAAmbk - 更新实验版:v0.6.0

更新实验版:v0.6.0
github
出于为稳定版预留版本号的原因我跳过了v0.5.0

这是一次对TAAmbk的重写,借用了一些OOP的思路
比如把AA共通的方法和属性抽出来封装成一个类
各aatype则作为子类继承并按需重写方法并初始化自己的参数
这样可以把某些aatype的麻烦事(诸如eedi3的sclip之类的)局限在它内部

Change
1、去除了p1~p6参数
由于各个aatype所需参数用途极大不同,若不提前了解p1~p6指代的参数及用途的话
很难发挥它们的真正作用。因此我把传入函数的多余参数收集进了一个字典,各个aatype
在实例化时会先去字典里寻找有无对应参数,若无则初始化为预设默认值


也就是说,若要设置原p1~p6参数,直接在参数末尾传入p1~p6指代的参数即可
例:原:TAAmbk(src, aatype=3, mtype=0, p1=2)
新:TAAmbk(src, aatype=3, mtype=0, nns=2)


2、修改aatype
同上,若不提前了解各aatype数值代表具体methods,很难直接理解其aa方式
因此我将其改为易读的string形式
为了照顾旧使用习惯,原有的9种aatype仍可以用int访问,但以后若添加新的aatype则只用string访问

例:
TAAmbk(src, aatype=-3) 等价于 TAAmbk(src, aatype='Nnedi3SangNom')

出于某些考虑,暂时未添加eedi3sclip的功能


3、修改mask部分
(1) 恢复参数mclip
一旦设置mclip,其余mask相关参数均无效
注意脚本并不会帮你检查mclip,若有错误只会捕获后告诉你你的mclip有问题

(2) 增加参数mlthresh、mthr2,mthr允许传入列表
mlthresh用于传入一个列表对luma分段建立mask
根据mtype不同mthr和mthr2也有不同的含义
目前只实现了两个mtype:Canny(mtype=1) 和 CannySobel(mtype=2)
在Canny模式下,mthr代表sigma,mthr2代表t_h;
在CannySobel模式下,mthr代表二值化阈值,mthr2代表GBlur的sigma值
注意:一旦指定了mlthresh,mthr、mthr2要求传入列表

例:我要使用mtype=1,luma<20时sigma为0.6,20<luma<70为0.9,luma>70为1.2
TAAmbk(src, aatype=1, mtype=1, mthr=[0.6 ,0.9, 1.2], mthr2=[8.0, 8.0, 8.0], mlthresh=[20, 70])

(3) 增加参数mpand
设定对mask进行expand和inpand次数以消除空心现象
列表,第一个数字代表expand次数,第二个数字代表inpand次数

(4) 增加参数txtprt
int,在输入不是GRAY的情况下结合UV对白底文字进行保护
数值大小为luma阈值

(5) 去除参数mtype2、auxmthr
理由见上文

mask部分未来还要添加很多内容(这些内容大多是一些未经测试的想法,见avs版TAAmbk 0.8.0 beta)


4、增加参数down8
现在TAAmbk输入是什么位深输出就是什么位深
16bit输入若指定down8=True,则aa部分(仅aa部分)在8bit下完成,并在最后用LimitFilter限制精度损失
mask永远在8bit下生成(因为AAmask基本都是二值mask,不会有什么影响


5、改进showmask
showmask=-1,输出txtmask
showmask=2,同屏对比clip和mask
showmask=3,Interleave对比clip和mask


6、增加参数strength,去除参数predown
strength用于控制downscale力度,范围0~0.5


--------------------------------------------------------------------
由于改动巨大,加之未经详细测试,肯定存在一定的bugs,也不清楚速度相对旧版变化
甚至不清楚这种做法本身有没问题
在跟pov讨论过以后
我决定暂时把新TAAmbk函数名改为TAAmbkX,X是experimental的意思,同时保留旧有TAAmbk
等到稳定后再替换掉旧有TAAmbk
► 显示剧情透露 用法
--------------------------------------------------------------------

目前这版TAAmbk还有很多可以改进的地方
比如mask部分设计还过于繁琐、很多异常捕获还没完成、部分默认参数不合理、部分Expr还可以继续优化等等
我甚至还想把除clip的参数都收集进字典里(卒
比如还有基于xml的外部preset系统(卒 x2
以及一大堆代码规范问题(代码丑的不敢见人了,原谅我把太多avs的坏习惯带了过来
上次由 kewenyu 在 2016-10-09 23:32,总共编辑 5 次。
头像
Evalyn
帖子: 17
注册时间: 2014-07-19 20:49

Re: vsTAAmbk - AA Script ported from TAAmbk 适配VS R29+

太懒了我动不了.jpg

如果论坛帖子也能 co-operator多好....
► 显示剧情透露 欢迎各路姐姐前来照顾萝莉
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: vsTAAmbk - AA Script ported from TAAmbk 适配VS R29+

{:cat_8} 萌新脸黑..
输入YUV444P16时提示错误 MaskedMerge: mask clip must have same dimensions as main clip and be the same format or equivalent grayscale version
是由这句输出dn = mvf.BM3D(src, sigma=[2.5,1.5,1.5], radius2=1, profile2="high", ref=ref, matrix=5, output=0, css='444', depth=16, sample=0)
当depth为8可以通过
(貌似mask和clip的depth不同不能合? {:cat_10}
kewenyu
帖子: 33
注册时间: 2013-07-28 0:23

Re: vsTAAmbk - AA Script ported from TAAmbk 适配VS R29+

NAVras 写了:{:cat_8} 萌新脸黑..
输入YUV444P16时提示错误 MaskedMerge: mask clip must have same dimensions as main clip and be the same format or equivalent grayscale version
是由这句输出dn = mvf.BM3D(src, sigma=[2.5,1.5,1.5], radius2=1, profile2="high", ref=ref, matrix=5, output=0, css='444', depth=16, sample=0)
当depth为8可以通过
(貌似mask和clip的depth不同不能合? {:cat_10}
已修复,请测试
--------------------------------------------------------------------------------
顺带更新到v0.6.2

1、修复一大堆错误
2、支持eedi3_092(github),增加参数eedi3m (bool, default True)
如果拥有eedi3_092,则设置eedi3m来决定是否启用eedi3 mclip(测试可提速20%~200%)
若无,则自动禁用该选项并使用原始eedi3
3、在R33以上版本使用core自带resize取代fmtconv进行resize(可提速2%~5%左右)
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: vsTAAmbk - AA Script ported from TAAmbk 适配VS R29+

kewenyu 写了: 内容手动略 {:cat_11}
已测试,没看出什么没问题了,多谢大大 {:cat_11}
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: vsTAAmbk - AA Script ported from TAAmbk【已由原作者继续适配至R33+】

大大貌似这里有个问题
https://github.com/kewenyu/vsTAAmbk/blo ... bk.py#L621
当输入源为16bit且未down8时,textmask为全黑
expr为8bit表达式,但PROCE_DEPTH不一定为8,mvf.Depth那里或许应该直接round到8?

回到 “VapourSynth”