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

请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 13:38

下了两套日升的BDMV,一套是鲁鲁修,一套是高达00,发现都有一个共同点,就是既不能说暗场,就是人物座机譬如高达的驾驶舱,还有鲁鲁修里面的机械叫night什么的,旁边座位后背,或者是驾驶操控器,都有一些比较明显的band,上过deband滤镜,F3KDB开到了72的强度,加了一少量噪点上去也是难以清除依然有残留,反而线条有点渣了。

高达00第一季,大概思路是deband+AA,其余的都没有要做的了。于是做了几个测试,截取的都是同一个图的。源文件人物口型对不上,不过主要还是看旁边的banding。

一、deband为:f3kdb(16, 64, 24, 24, 0, 0, dither_algo=3,input_mode=1, output_mode=1)
AA为:MAA2()
addgain为;GrainFL()
效果如图1

二、后来发现效果和原盘差别不大,甚至还残留着难看的band。
于是就多上了个dfttest(Y=true, U=true, V=true, lsb_in=true, lsb=true,dither=2),addgain,和deband保留上面一样,效果如图2
发现那些难看的band去除了不少,差不多达到理想的效果。

三、于是将dftest换成smdegain,AA,deband,addgain不变,结果如图4,虽然band少了不少,但是还是没有dftest处理过的好。SMDegrain(tr=1, plane=4, RefineMotion=true, ContraSharp=false, TrueMotion=false, lsb_in=true, lsb=true, lsb_out=true, chroma=true, prefilter=1, pel=1, search=4, thSAD=280, thSADC=140, thSCD1=200, limit=4, limitC=3, str=2.0)

于是问题就来了,想请教一下这些banding我想去除类似(二)那种处理方法,因为BDMV上dftest处理实在太慢了,开了MP也是0.8FPS,于是想请教SMDegain该怎样设置才能有dftest处理后的效果,- -SMDegain确实比dftest快多了

图层我放网盘吧,都是BMP图片的。
http://pan.baidu.com/s/1ntzCwQH

fch1993
帖子: 213
注册时间: 2012-06-12 11:56

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 14:03

鲁鲁修我是使用NRDB处理的。
对于第一季,第二季几乎没有banding。

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

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 14:22

鲁鲁修S1,13话,20:08,鲁鲁修座驾即是靠头部后面的椅子就存在条纹band了
附件
[アニメ BD] コードギアス 反逆のルルーシュ 第13話 「シャーリー と 銃口」(1920x1080 Hi10p x264 FLAC ).mkv_20140910_142322.464.png

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

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 19:11

dfttest和mdegrain适用的降噪区域是不同的 通常降噪要配合使用然后用mask合并
dfttest对低频flat区域 比如背景等部分 效果好 噪点去的干净损失也比mdegrain小 但是dfttest对高频破坏太大
mdegrain正好相反 mdegrain对高频区域 比如边缘 密集锐利的细节等 损失小 失真少 效果优秀 但是对flat区域损失大 噪点去的也不是很干净
降噪一般用广域的edgemask结合它们的结果 flat区域用dfttest edge区域用mdegrain
banding一般出现在flat区域 当然dfttest效果好

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

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 19:46

feisty2 写了:dfttest和mdegrain适用的降噪区域是不同的 通常降噪要配合使用然后用mask合并
dfttest对低频flat区域 比如背景等部分 效果好 噪点去的干净损失也比mdegrain小 但是dfttest对高频破坏太大
mdegrain正好相反 mdegrain对高频区域 比如边缘 密集锐利的细节等 损失小 失真少 效果优秀 但是对flat区域损失大 噪点去的也不是很干净
降噪一般用广域的edgemask结合它们的结果 flat区域用dfttest edge区域用mdegrain
banding一般出现在flat区域 当然dfttest效果好

原来如此,受教了~

头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 20:19

NR de-banding的思路:
- 用快速的noise dumper作为pre-filter。
- 也就是降噪以后做de-banding,以减少噪点对f3kdb这类基于阈值检测的de-banding滤镜产生的干扰(这点类似于MC降噪中的pre-filter,通过快速的noise dumper获取较高SNR的clip用于ME,防止噪点对ME的干扰),同时也能减少de-banding滤镜的smooth效果对噪点的影响(比较明显的例子如GradFun3),最后再把之前去掉的噪点加回去。
- 因此NRDB使用的降噪通常只需要足够的强度,同时速度较快,如Dither_removegrain16。
- 降噪部分用16bit滤镜防止降噪本身产生banding,如果用8bit精度的降噪,有可能在背景中产生banding,被de-banding滤镜消除后再加上去掉的噪点反而形成banding的pattern。同时要谨慎使用如Dither_removegrain16(4)也就是median filter这类clip filter,clip filter获取的噪点容易产生不平滑的现象,和linear filter处理后的平滑背景相加后同样可能产生不期望获得的效果。所以一般选择Dither_removegrain的11、20这些Gaussian/average filter。

for example
# stacked-16bit input
last = last # this line can be ignored, just in case someone who doesn't understand it

# pre-filter
nr16 = last.Dither_removegrain16(11, 11).Dither_removegrain16(20, 0)
# get noise diff clip
noise = last.Dither_sub16(nr16, y=3, u=3, v=3, dif=True)
# refine pre-filtered clip due to limited range of diff clip: [-32768, 32767], avoiding potential issue that the noise can not be fully added back
nr16 = last.Dither_sub16(noise, y=3, u=3, v=3, dif=True)
# de-banding on pre-filtered clip
last = nr16
last = last.f3kdb(16, 40, 40, 40, 0, 0, input_mode=1, output_mode=1).Dither_limit_dif16(last, ref=nr16, thr=0.30, elast=2.5, y=3, u=3, v=3)
# add back noise
last = last.Dither_add16(noise, y=3, u=3, v=3, dif=True)

# stacked-16bit output
last
当然,在此基础上还可以加上mask merge,f3kdb也可以用多个级联的方式来处理(radius依次增大,threshold根据对应radius下的情况设置),Dither_limit_dif16用于限制de-banding的改变量,这些思路都来自于GradFun3(不过GF3里的多个不同radius的Dither_box16或Dither_bilateral16级联是为了用多个box spatial filter的级联来近似Gaussian spatial filter)。

另外就是在此基础上更高级的用法了,这种通过low-pass filter做差取得high frequency component(在上面的example里就是noise这个clip)的方式在很多处理里都有用到,例如CSmod16基于的unsharp mask原理,还有GSMC里的Grain Stabilize也是在此基础上实现的。也就是可以把CSmod16、GSMC里的核心处理部分的脚本拆出来用于处理这个noise,分别能起到锐化、降噪的效果,同时配合de-banding部分使用的mask还可以对edge、flat部分分别使用不同的处理方式和强度。
上次由 mawen1250 在 2015-05-27 20:10,总共编辑 7 次。

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

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 20:35

dfttest默认的平滑核心是wiener filter, 这个本身就有deband的效果
觉得用来这个就不用加噪了, 最后直接round到10bpc或者用合适的ditherpost降低到8bpc好像都没什么问题

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

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 22:21

mawen1250 写了:NR de-banding的思路:
- 用快速的noise dumper作为pre-filter。
- 也就是降噪以后做de-banding,以减少噪点对f3kdb这类基于阈值检测的de-banding滤镜产生的干扰(这点类似于MC降噪中的pre-filter,通过快速的noise dumper获取较高SNR的clip用于ME,防止噪点对ME的干扰),同时也能减少de-banding滤镜的smooth效果对噪点的影响(比较明显的例子如GradFun3),最后再把之前去掉的噪点加回去。
- 因此NRDB使用的降噪通常只需要足够的强度,同时速度较快,如Dither_removegrain16。
- 降噪部分用16bit滤镜防止降噪本身产生banding,如果用8bit精度的降噪,有可能在背景中产生banding,被de-banding滤镜消除后再加上去掉的噪点反而形成banding的pattern。同时要谨慎使用如Dither_removegrain16(4)也就是median filter这类clip filter,clip filter获取的噪点容易产生不平滑的现象,和linear filter处理后的平滑背景相加后同样可能产生不期望获得的效果。所以一般选择Dither_removegrain的11、20这些Gaussian/average filter。

for example
[syntax="avisynth"]# stacked-16bit input

# pre-filter
nr16 = Dither_removegrain(11, 11).Dither_removegrain(20, 0)
# get noise diff clip
noise = Dither_sub16(last, nr16, y=3, u=3, v=3, dif=True)
# de-banding on pre-filtered clip
nr16
f3kdb(16, 40, 40, 40, 0, 0, input_mode=1, output_mode=1).Dither_limit_dif16(last, ref=nr16, thr=0.30, elast=2.5, y=3, u=3, v=3)
# add back noise
Dither_add16(noise, y=3, u=3, v=3, dif=True)

# stacked-16bit output[/syntax]

当然,在此基础上还可以加上mask merge,f3kdb也可以用多个级联的方式来处理(radius依次增大,threshold根据对应radius下的情况设置),Dither_limit_dif16用于限制de-banding的改变量,这些思路都来自于GradFun3(不过GF3里的多个不同radius的Dither_box16或Dither_bilateral16级联是为了用多个box spatial filter的级联来近似Gaussian spatial filter)。

另外就是在此基础上更高级的用法了,这种通过low-pass filter做差取得high frequency component(在上面的example里就是noise这个clip)的方式在很多处理里都有用到,例如CSmod16基于的unsharp mask原理,还有GSMC里的Grain Stabilize也是在此基础上实现的。也就是可以把CSmod16、GSMC里的核心处理部分的脚本拆出来用于处理这个noise,分别能起到锐化、降噪的效果,同时配合de-banding部分使用的mask还可以对edge、flat部分分别使用不同的处理方式和强度。
这个用法挺高级的。对我来说,一时间难以理解 {:cat_8}

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

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 22:33

这个不算难理解 你综合画面结构的特点理解 高频 (边缘 细节 噪声等) 都是难以出现banding的部分 现在用一个removegrain相当于一个loss pass filter直接把这些高频过滤掉(保护)了 banding集中的低频部分就暴露出来了 然后就可以直接在上面进行deband 最后把已经deband的低频重新和原来过滤掉的高频合并就得到了高频被保护的deband结果 这个taro在masktools教程里面写的edgemask分离aa和deband其实只是同样思路的不同做法 只是分离高频的做法一个是mask 一个是dif, 这个和masktools教程里面比有一点额外好处就是这里的高频过滤把噪点也过滤了 所以效果应该更好一些 而edgemask只能过滤掉边缘和高频细节 不能过滤噪点

alexz220
帖子: 115
注册时间: 2012-07-21 17:15

Re: 请教一个DEBAND问题关于sunrise的BDMV

2014-09-10 23:42

feisty2 写了:dfttest和mdegrain适用的降噪区域是不同的 通常降噪要配合使用然后用mask合并
dfttest对低频flat区域 比如背景等部分 效果好 噪点去的干净损失也比mdegrain小 但是dfttest对高频破坏太大
mdegrain正好相反 mdegrain对高频区域 比如边缘 密集锐利的细节等 损失小 失真少 效果优秀 但是对flat区域损失大 噪点去的也不是很干净
降噪一般用广域的edgemask结合它们的结果 flat区域用dfttest edge区域用mdegrain
banding一般出现在flat区域 当然dfttest效果好
feisty2菊苣看过灌篮高手原盘吗?
那种块状噪点怎么轰也轰不干净,
用SMD和dfttest背景细节都损失明显,
还有就是龙珠Z剧场版也是。
请问这种块状噪声怎么做降噪比较好?

这个跟本帖有关就不开新帖了,
如果三星冰块下藏着banding会很麻烦吧。

回到 “AviSynth”