版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

EP向,没有双路Xeon的请勿尝试……
参数说明啥的还没时间写……

Y/Cb/Cr/ditherY/ditherC含义见f3kdb,其他参数用f3k_param来加,譬如
f3k_param="""range=20, random_algo_dither=2"""

Luma_Cpst是Luma补偿因子,越高对暗场的补偿就越高
Fade_Cpst是Fade补偿加成,越高对渐变的加成就越高
Blue_Cpst是Blue补偿加成,越高对蓝色的加成就越高
注意这三个都是float,要自定义请以小数为单位改,后两个可以想象一下x264里fade compensate和Haali's AQ的参数,别一下子几十几十地动,默认的1其实差不多能对应大部分情况……Luma_Cpst的单位相对来说保险一些,修改个0.5左右差距也不会太大,但是要注意Luma_Cpst同时也会对Fade判定有一定影响。

Fade_Cpst为0时,不做MC(因为不需要),否则通过MC来防止scenecut/平移等被错误识别为fade,当然此时速度会很疼很疼,虽然没怎么实验不过估计抹平f3kdb和QTGMC(preset="placebo")的差距压力不大,靠降低MVtools的那些参数可以稍微加快些,需要的自己调整。

其他各种用法可以靠 info=true 开启画面计算结果显示来调整。会显示当前画面对应的三个factor以及它们的乘积,还有画面复杂度。Y/Cb/Cr/ditherY/ditherC在当前帧实际使用的参数是它们各自设置的值与Final factor(= Luma adaptive factor x Fade adaptive factor x Blue adaptive factor)的积,因此预设的值比f3kdb低很多,因为乘以补偿因子后会变大。

补充说明:因为MVTools2的原因,输入必须是8bit的,输出不限,需要16bit输出的自己用f3k_param="""output_depth=16, output_mode=1/2"""来改。理论上可以放到MCTD、LumaDBL之类的工具内部使用,如果真有必要的话……
我脑残了……ScriptClip前后分辨率必须一样。嘛要支持16bit输出也不是没办法,预定下一个版本支持……

图片

图片

图片

图片

需要的插件:f3kdb、mvtools2、RemoveGrain,其中RemoveGrain是用来辅助判定画面复杂度的,复杂度高的deband强度会降低(只影响fade补偿加成)

下载:AdaptDBMC_beta.rar
► 显示剧情透露 或者自行将下面的代码保存成avsi
上次由 06_taro 在 2011-12-16 13:11,总共编辑 6 次。
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
-o-o-304-o-o-
超级版主
帖子: 640
注册时间: 2010-10-10 20:00
来自: US
联系: 网站

Re: AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

\taro大/\taro大/\taro大/

额,水就到此为止了,这帖子毕竟还是测试目的,还是说正事吧

简单测试的结果
测试平台
2630QM(2.0Ghz, TB 1t@2.8Ghz max,2t@2.7Ghz max,4t@2.6Ghz max)
win7 x64
测试片段 hunter TV ffv1
测试用参数
AdaptDBMC(Y=24, Cb=24, Cr=24, ditherY=24, ditherC=24, Luma_Cpst=2, Fade_Cpst=1, Blue_Cpst=1, radius=2)

avs2avi(laa)测试结果
TV720 24p
setmemorymax 1024:1.75fps@2.7Ghz
setmemorymax 2048:1.76fps@2.7Ghz
setmemorymax 3072:1.76fps@2.7Ghz

TV1080 24p
setmemorymax 1024:0.91fps@2.7Ghz
setmemorymax 2048:0.92fps@2.7Ghz
setmemorymax 3072:0.92fps@2.7Ghz

对比QTGMC默认参数的速度
TV720 24p
setmemorymax 3072:1.69fps@2.7Ghz

TV1080
setmemorymax 3072:0.77fps@2.7Ghz

小小的吐个槽…………
MC真不愧是内存占用大户,跟MC沾边的没一个省内存的(拖),给多少吃多少囧(继续拖)
速度上比预想的快了不少,默认参数比QTGMC默认参数快对于EP党来说完全能接受吧(大雾
期待优化了(继续,\taro大/…………
上次由 -o-o-304-o-o- 在 2011-12-16 11:59,总共编辑 1 次。
► 显示剧情透露 En Taro 06!Taro Pie NC Fanclub project始动!聊天用Q群开放中
► 显示剧情透露 胸中有万言,退敌无一策,是谓书生误国"
► 显示剧情透露 前辈们的信念
► 显示剧情透露 妇联招新广告,走过路过可以看看撒
► 显示剧情透露 香芋派,后期菊苣们的一致选择
► 显示剧情透露 众菊苣喜评香芋派
► 显示剧情透露 聊天用工具
头像
rshadow
帖子: 57
注册时间: 2011-03-23 10:18
联系: ICQ

Re: AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

\taro大/\taro大/\taro大/
头像
ikamusume
帖子: 77
注册时间: 2011-03-02 23:13

Re: AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

\taro大/\taro大/\taro大/

很明確看到這片是柯南M15 {:cat_17}
头像
xiao7
帖子: 138
注册时间: 2010-09-25 16:16

Re: AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

\taro大/\taro大/\taro大/



速度应该会很美 嗯,纯支持高科技 {:cat_5}
mickoo
帖子: 30
注册时间: 2010-11-23 19:18

Re: AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

EP向,没有双路Xeon的请勿尝试……
我单路Xeon怎么办
头像
angelcat
帖子: 90
注册时间: 2011-03-19 1:57

Re: AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

I7 980X開TESA RC250 SUBME=11的表示此腳本好快 記憶體占據不多 {:cat_3}
小夜攪基QQ:1592537325
histamine
帖子: 85
注册时间: 2010-09-23 20:07

Re: AdaptDBMC - Luma/Fade/Blue自适应debanding脚本(公测,各种待优化)

简单改了改,牺牲一点准确度,速度会快一些(每次GetFrame时,ScriptClip中不需要重新创建一个f3kdb滤镜实例)
(info=true时速度还能优化提升,嘛,感觉没必要)

代码: 全选

--- AdaptDBMC_beta.avsi	2011-12-15 05:49:50.000000000 +0800
+++ AdaptDBMC_beta_Mod.avsi	2011-12-16 14:18:57.000000000 +0800
@@ -128,16 +128,40 @@
 ### Mix all factors and calculate final factor of strength
 global strFact   = "( " + AdaptLuma + " * ( 1 + " + AdaptFade + " ) * ( 1 + " + AdaptBlue + " ) )"
 
-global f3kdb_eval = "f3kdb( Y=int("+String(Y)+"*"+strFact+
-\                       "), Cb=int("+String(Cb)+"*"+strFact+
-\                       "), Cr=int("+String(Cr)+"*"+strFact+
-\                       "), ditherY=int("+String(ditherY)+"*"+strFact+
-\                       "), ditherC=int("+String(ditherC)+"*"+strFact+
+global f3kdb_eval = "f3kdb( Y=int("+String(Y)+"*f3kdb_rfact"+
+\                       "), Cb=int("+String(Cb)+"*f3kdb_rfact"+
+\                       "), Cr=int("+String(Cr)+"*f3kdb_rfact"+
+\                       "), ditherY=int("+String(ditherY)+"*f3kdb_rfact"+
+\                       "), ditherC=int("+String(ditherC)+"*f3kdb_rfact"+
 \                           ( Defined(f3k_param) ? "), "+f3k_param+" )"
-\                                                : ") )" )
+\                                                : ") )" ) +
+\                           ( Info ? """.Subtitle("Real Final factor: "+String(f3kdb_rfact), x = 8, y = 28)""" : "")
 
-Info ? ScriptClip( f3kdb_eval+""".Subtitle( "Final factor: "+String( Eval(strFact) ), x=8, y=8 ).Subtitle( "Luma adaptive factor: "+String( Eval(AdaptLuma) ), x=8, y=38 ).Subtitle( "Fade adaptive factor: "+String( 1+Eval(AdaptFade) ), x=8, y=58 ).Subtitle( "Blue adaptive factor: "+String( 1+Eval(AdaptBlue) ), x=8, y=78 ).Subtitle( "Frame complexity: "+String( Eval(c_Complex) ), x=8, y=108 )""" )
-\    : ScriptClip( f3kdb_eval )
+global f3kdb_rfact = 1.00
+global f3kdb1 =  Eval(f3kdb_eval)
+
+global f3kdb_rfact = 1.33
+global f3kdb2 =  Eval(f3kdb_eval)
+
+global f3kdb_rfact = 1.67
+global f3kdb3 =  Eval(f3kdb_eval)
+
+global f3kdb_rfact = 2.00
+global f3kdb4 =  Eval(f3kdb_eval)
+
+global f3kdb_rfact = 2.33
+global f3kdb5 =  Eval(f3kdb_eval)
+
+global f3kdb_rfact = 2.66
+global f3kdb6 = Eval(f3kdb_eval)
+
+global f3kdb_rfact = 3.00
+global f3kdb7 = Eval(f3kdb_eval)
+
+global f3kdb_eval2 = """vStrFact = Eval(strFact)""" + chr(13)+"""(vStrFact < 1.33) ? f3kdb1:(vStrFact < 1.66) ? f3kdb2:(vStrFact < 2.0) ? f3kdb3:(vStrFact < 2.33) ? f3kdb4:(vStrFact < 2.66) ? f3kdb5: (vStrFact < 3) ? f3kdb6 : f3kdb7"""
+                                                                                                                                        
+Info ? ScriptClip( f3kdb_eval2+chr(13)+"""Subtitle( "Final factor: "+String( Eval(strFact) ), x=8, y=8 ).Subtitle( "Luma adaptive factor: "+String( Eval(AdaptLuma) ), x=8, y=58 ).Subtitle( "Fade adaptive factor: "+String( 1+Eval(AdaptFade) ), x=8, y=78 ).Subtitle( "Blue adaptive factor: "+String( 1+Eval(AdaptBlue) ), x=8, y=98 ).Subtitle( "Frame complexity: "+String( Eval(c_Complex) ), x=8, y=128 )""" )
+\       :ScriptClip( f3kdb_eval2 )
 
 return SelectEvery( 1 + radius * 2, radius)
 }

回到 “AviSynth”