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

GrainStabilizeMC v1.0 - 高速的时域轻度降噪脚本

GrainStabilizeMC v1.0
NMM碗柜:http://nmm.me/z1
我的所有avsi脚本所需滤镜(Requirements)打包下载(文件夹分享):http://pan.baidu.com/s/1Bt2fY

函数名GSMC()
降噪原理和taro大的GrainStabilize类似。
Grain Stablize实现方法和MCAA、MCTD_PP中的MC reduc类似。
主要是把GrainStabilize中处理噪点的temporalsoften替换成了MDegrain,并且支持16bit的输入、处理和输出(分别由参数lsb_in、lsb、lsb_out控制)。

在处理精度上比GrainStabilize高,速度会慢一些(特别是lsb=true时),用于实时处理的话就要看CPU够不够好了。
radius参数的值允许1~3,决定MDegrain处理的temporal radius,越高速度越慢降噪强度越大。

具体的东西见脚本内部,懒得写说明了……
Preset有"Very Fast"、"Faster"、"Fast"、"Medium"、"Slow"、"Slower"、"Very Slow",默认"Faster",只决定mvtools2相关函数的一些参数的质量/速度,由于降噪方法的特殊性,提高Preset对最终结果的影响其实不大……

Y/U/V三个参数控制是否处理3个平面,3为处理,2为不处理,1为完全不管输出的结果。默认Y=3、U=2、V=2,也就是只处理luma。

v0.2
修复bug...

v0.3
代码的改进优化,默认的preset改为"Faster"。

v0.4
修复脚本内将Ymask转为YUVmask时在2.5版Avisynth下不支持mod2的问题。

v0.5
MinBlur优化、一些杂七杂八的小改动及bug修复

v0.7
加入SBR作为默认的noise dumper。修改nrmode参数对应的denoiser,1~3对应SBR的radius,-1~-3对应MinBlur的radius,0为Average Blur。默认对HD源使用2,对SD源使用1。
adapt参数默认值从64改为-1(关闭Luma-Adaptive Mask Merging)。
增加参数tv_range,默认True,当设为False时使用SmoothAdjust进行PC-Range下正确的Bit Depth转换。
Requirements中,RemoveGrain改为RgTools,RemoveGrainHD改为MedianBlur2,增加SmoothAdjust。

v0.8
修正GSMC_sbr()在lsb=True时的错误。

v0.9
由于O16mod对于PC Range下CbCr的改动,相应地改动GrainStabilizeMC内部的bit depth转换函数。
脚本内部的MinBlur在调用MedianBlur时不处理的平面参数设为-256,所以MedianBlur2需要更新至0.94及以上版本才能运行。

v1.0
由于O16mod对于PC Range下CbCr的改动,相应地改动Bit Depth转换函数——将CbCr表达式超界的部分通过线性缩放限制在对应Bit Depth的上界,防止CbCr降低Bit Depth且输出为PC Range时导致Overflow。
修正在adapt=-1时指定Lmaskl clip时并没有进行mask merge的问题。
上次由 mawen1250 在 2014-03-22 13:14,总共编辑 26 次。
a000
帖子: 13
注册时间: 2012-03-14 19:10

Re: GrainStabilizeMC v0.1 - 高速的时域轻度降噪脚本

跪mawen大大 有空试一试
头像
gnaggnoyil
帖子: 5
注册时间: 2011-07-16 20:48

Re: GrainStabilizeMC v0.1 - 高速的时域轻度降噪脚本

多謝mawen大大.支持16bit輸入大好~
julseven9920
帖子: 42
注册时间: 2011-04-18 11:37

Re: GrainStabilizeMC v0.1 - 高速的时域轻度降噪脚本

嘗試一下GSMC() 就出現錯誤...
1105.JPG
mawen大這是哪裡的問題?
头像
4h4h270
帖子: 163
注册时间: 2011-04-10 17:59

Re: GrainStabilizeMC v0.3 - 高速的时域轻度降噪脚本

好物,拜谢收下
200458
帖子: 7
注册时间: 2012-02-24 22:44

Re: GrainStabilizeMC v0.3 - 高速的时域轻度降噪脚本

谢谢,速度很快,不过,有一个问题请教下:

试了一个片源,尺寸为720*576,当在AVS中使用如下语句
crop(8, 10, -6, -10)
GSMC(U=3,V=3)

x264编码时会报错:
avs [error]: Resize: YV12 width must be even.
(D:\Program Files\Megui\tools\AviSynth 2.5\plugins\GrainStabilize\GrainStabilizeMC_v0.3.avsi, line 190)
(D:\Program Files\Megui\tools\AviSynth 2.5\plugins\GrainStabilize\GrainStabilizeMC_v0.3.avsi, line 191)
(D:\Program Files\Megui\tools\AviSynth 2.5\plugins\GrainStabilize\GrainStabilizeMC_v0.3.avsi, line 152)

只有把crop语句改为crop(10, 10, -6, -10)后,再应用GSMC(U=3,V=3)才没问题

“YV12 width must be even”,裁剪后的宽mod 2不行吗?
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: GrainStabilizeMC v0.4 - 高速的时域轻度降噪脚本

感谢报错。
因为处理U或V时,我在脚本内手动将luma的mask转换为三个平面的mask,如果是2.6版Avisynth会转换为Y8之后resize,所以没有问题,而2.5版Avisynth不支持Y8,而我又没有考虑到mod2时的问题,于是就出错了。
所以更新了一下,在2.5版Avisynth碰到mod2时会自动pad 2 pixel来变成mod4处理。2.6版的Avisynth没有影响。
kinso
帖子: 40
注册时间: 2012-06-01 13:18

Re: GrainStabilizeMC v0.4 - 高速的时域轻度降噪脚本

mawen,用你的提示出现
QQ截图20121213111641.jpg
是没有功能名
AVS以下LoadPlugin("D:\MeGUI_2112_x86\tools\dgindex\DGDecode.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\VSFilter.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\TIVTC.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\dither.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\RemoveGrain.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\mt_masktools.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\RepairSSE3.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\delogo.dll")
LoadPlugin("D:\MeGUI_2112_x86\tools\avisynth_plugin\mvtools2.dll")
DGDecode_mpeg2source("F:\名探偵コナン 第279話 「迷宮のフーリガン(前編)」 (NTV).d2v")
EraseLOGO(logofile = "G:\CONAN\名探偵コナン -TS-TV - 1440x108.lgd", start = 804, end = 4875, interlaced = true)
EraseLOGO(logofile = "G:\CONAN\名探偵コナン -TS-TV - 1440x108.lgd", start = 7577, end = 25704, interlaced = true)
EraseLOGO(logofile = "G:\CONAN\名探偵コナン -TS-TV - 1440x108.lgd", start = 29306, end = 51747, interlaced = true)
Trim(803,4877)+Trim(7576,25706)+Trim(29304,51747)
tfm(mode=5).tdecimate(mode=1)

BlackManResize(1280,720,0,0,-0,0)

Import("G:\CONAN\LSFmod.v1.9.avsi")
LSFMod(defaults="slow",strength=100,undershoot=5,overshoot=2,overshoot2=2)

Import("G:\CONAN\GrainStabilizeMC_v0.4.avsi")
GSMC(nrmode=1,radius=2,adapt=64,rep=13,lsb=true)

TextSub("G:\CONAN\279logo.ass")

ConvertToYV12()

回到 “AviSynth”