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

Re: 再求教一个deband问题...

话说我万年关麻痹树的现在都开了。之前动辄一集DVD上360M的开了MB,260左右,qcomp,开0.8
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 再求教一个deband问题...

aq的话8bit下还是用1比较保险(给大面积flat区域分配码率多)。
10bit下的话看情况可以选择3(对于细节的保留较好,并且没有在大面积flat区域浪费很多码率),但aq3的aq-strength不宜太高或太低,高了浪费码率严重,低了block也会出来,建议在0.6-0.9之间调整。

至于8bit下要防止banding,关mbtree、加噪点之类都是下策,fgo的效果是最好的。
上次由 mawen1250 在 2013-02-28 18:49,总共编辑 1 次。
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 再求教一个deband问题...

MStabilize
于是为了解决这个时域上的问题蛋疼写了个脚本。

在这个问题上的例子
[syntax=avisynth]
MP_Pipeline("""

FFVideoSource("banding_sample.mkv", threads=1)

dbmask = last.tcanny(sigma=1.7, mode=1, plane=1).mt_binarize(2, U=1, V=1).mt_expand(U=1, V=1).RemoveGrain(11, -1).RemoveGrain(20, -1)

### export clip: dbmask
### prefetch: 64, 32
### ###

SetMemoryMax(1000)

src = last

MStabilize(radius=7, limit=255, lsb_in=false, lsb=true, Y=3, U=3, V=3)

### export clip: dbmask, src
### prefetch: 32, 16
### ###

SetMemoryMax(1000)

MStabilize(radius=4, limit=255, lsb_in=true, lsb=true, Y=3, U=3, V=3)

### export clip: dbmask, src
### prefetch: 16, 8
### ###

SetMemoryMax(1000)

MStabilize(radius=1, limit=255, lsb_in=true, lsb=true, Y=3, U=3, V=3)

### export clip: dbmask, src
### prefetch: 8, 0
### ###

SetMemoryMax(1000)

src16 = src.U16

Dither_limit_dif16(src16, thr=3.00, Y=3, U=3, V=3)

db1 = last.GradFun3(smode=2, radius=20, thr=0.45, thrc=0.45, mask=0, lsb_in=true, lsb=true, Y=3, U=3, V=3)
db2 = db1.f3kdb(20, 52, 52, 52, 0, 0, input_mode=1, output_mode=1).Dither_limit_dif16(last, thr=0.60, Y=3, U=3, V=3)

Dither_merge16_8(db2, src16, dbmask, luma=true, Y=3, U=3, V=3)
Down10(stack=false, dither=-2)

""")
[/syntax]
头像
小炸孩
帖子: 40
注册时间: 2012-07-24 9:48

Re: 再求教一个deband问题...

{:cat_15} 其实我就是10BIT编码啊...因为只是几个短短的PV,不怎么在意体积所以--crf 16 --no-mbtree保证足够的还原(而且即使这样也比当年蛇神做的那版8BIT体积小了不少)
头像
小炸孩
帖子: 40
注册时间: 2012-07-24 9:48

Re: 再求教一个deband问题...

mawen1250 写了:MStabilize
于是为了解决这个时域上的问题蛋疼写了个脚本。

在这个问题上的例子
[syntax=avisynth]
MP_Pipeline("""

FFVideoSource("banding_sample.mkv", threads=1)

dbmask = last.tcanny(sigma=1.7, mode=1, plane=1).mt_binarize(2, U=1, V=1).mt_expand(U=1, V=1).RemoveGrain(11, -1).RemoveGrain(20, -1)

### export clip: dbmask
### prefetch: 64, 32
### ###

SetMemoryMax(1000)

src = last

MStabilize(radius=7, limit=255, lsb_in=false, lsb=true, Y=3, U=3, V=3)

### export clip: dbmask, src
### prefetch: 32, 16
### ###

SetMemoryMax(1000)

MStabilize(radius=4, limit=255, lsb_in=true, lsb=true, Y=3, U=3, V=3)

### export clip: dbmask, src
### prefetch: 16, 8
### ###

SetMemoryMax(1000)

MStabilize(radius=1, limit=255, lsb_in=true, lsb=true, Y=3, U=3, V=3)

### export clip: dbmask, src
### prefetch: 8, 0
### ###

SetMemoryMax(1000)

src16 = src.U16

Dither_limit_dif16(src16, thr=3.00, Y=3, U=3, V=3)

db1 = last.GradFun3(smode=2, radius=20, thr=0.45, thrc=0.45, mask=0, lsb_in=true, lsb=true, Y=3, U=3, V=3)
db2 = db1.f3kdb(20, 52, 52, 52, 0, 0, input_mode=1, output_mode=1).Dither_limit_dif16(last, thr=0.60, Y=3, U=3, V=3)

Dither_merge16_8(db2, src16, dbmask, luma=true, Y=3, U=3, V=3)
Down10(stack=false, dither=-2)

""")
[/syntax]
{:cat_13} 8G内存跑这AVS直接Crash了...我还是等买了内存再来战吧= =

删掉SetMemoryMax(1000)能跑了...AVG FPS也有2.3,其实也挺快了...
头像
小炸孩
帖子: 40
注册时间: 2012-07-24 9:48

Re: 再求教一个deband问题...

{:cat_13} 对于全片...我写出了一个非常微妙的AVS...求意见
不过没片源的话可能不太好说明问题...但片源1.19G而且百度盘和快传都不能直接通过SHA校验秒传...所以只能像这样说说了...
[syntax=avisynth]
MP_Pipeline("""

FFVideoSource("00011.mkv", threads=1)
clip = last
src = clip.Trim(2521,3664)
png1 = ImageSource("1.png").ConvertToYV12
png2 = ImageSource("2.png").ConvertToYV12
png3 = png1.Trim(0,1) + png2.Trim(0,8) #Frame 150-158
dbmask = src.tcanny(sigma=1.7, mode=1, plane=1).mt_binarize(2, U=1, V=1).mt_expand(U=1, V=1).RemoveGrain(11, -1).RemoveGrain(20, -1)

### export clip: dbmask, png3, clip, src
### prefetch: 64, 32
### ###

src16 = src.U16
nr = src16.dfttest(dither=0,Y=true,U=true,V=true,sigma=8.0,sigma2=10.0,lsb_in=true,lsb=true)

### export clip: dbmask, png3, clip, src16, nr
### prefetch: 8, 0
### ###

db1 = nr.GradFun3(smode=2, radius=20, thr=0.90, thrc=0.70, mask=0, lsb_in=true, lsb=true, Y=3, U=3, V=3)
db2 = db1.f3kdb(20, 64, 64, 64, 0, 0, input_mode=1, output_mode=1).Dither_limit_dif16(src16, thr=0.85, Y=3, U=3, V=3)
clip1 = Dither_merge16_8(db2, src16, dbmask, luma=true, Y=3, U=3, V=3)

### export clip: clip1, png3, clip
### prefetch: 8, 0
### ###

clip.Trim(0,149).U16.f3kdb(16,40,40,40,0,0,input_mode=1,output_mode=1) + png3.Trim(1,9).U16 + clip.Trim(159,2520).U16.f3kdb(16,40,40,40,0,0,input_mode=1,output_mode=1) + clip1 + clip.Trim(3665,7209).U16.f3kdb(16,40,40,40,0,0,input_mode=1,output_mode=1)
Down10(10, stack=false, dither=-2)

""")
[/syntax]

用MStabilize的话在AVSP预览中直接卡死(8G内存捉鸡...),于是只能做回dfttest...各方面强度略高...磨掉点细节就不管了...
这个AVS中最微妙的部分应该是那莫名其妙出现的PNG了...稍微解释一下...
这是Frame 150
1.png
这是Frame 151-158
00011_001_151.png
可以看出Frame 151人物的线条上出现了一些像是锯齿的东西...所以为了修复Frame 151-158我还真用到PS了...将Frame 151的文字部分弄到Frame 150存为2.png...1.png就是Frame150...因为色彩略微有些不同干脆一起改成PNG那就无违和了 {:cat_13}

其他部分的话我是只看出个别场景有轻微banding以及比较模糊,但也不想做锐化了...所以就放个f3kdb地图炮...
上次由 小炸孩 在 2013-03-01 11:49,总共编辑 1 次。
头像
-o-o-304-o-o-
超级版主
帖子: 640
注册时间: 2010-10-10 20:00
来自: US
联系: 网站

Re: 再求教一个deband问题...

不限定每个进程的内存开销的话,MPP您这么用我估计16G都不一定够,可能需要32G内存嗯(MPP本身是用来解决爆内存的,结果拿来爆内存说啥好呢……

没看到问题在哪,求标示(另外最近这股PS风是哪吹来的啊……

题外话--NMM自己有图片附件功能为啥外链呢?您这外链的图床我这直接访问似乎有点问题(需要挂代理,好奇怪额……
► 显示剧情透露 En Taro 06!Taro Pie NC Fanclub project始动!聊天用Q群开放中
► 显示剧情透露 胸中有万言,退敌无一策,是谓书生误国"
► 显示剧情透露 前辈们的信念
► 显示剧情透露 妇联招新广告,走过路过可以看看撒
► 显示剧情透露 香芋派,后期菊苣们的一致选择
► 显示剧情透露 众菊苣喜评香芋派
► 显示剧情透露 聊天用工具
头像
小炸孩
帖子: 40
注册时间: 2012-07-24 9:48

Re: 再求教一个deband问题...

-o-o-304-o-o- 写了:不限定每个进程的内存开销的话,MPP您这么用我估计16G都不一定够,可能需要32G内存嗯(MPP本身是用来解决爆内存的,结果拿来爆内存说啥好呢……

没看到问题在哪,求标示(另外最近这股PS风是哪吹来的啊……

题外话--NMM自己有图片附件功能为啥外链呢?您这外链的图床我这直接访问似乎有点问题(需要挂代理,好奇怪额……
因为当时快熄灯了所以也没尝试跑一下...我觉得应该是能跑的...只是内存占用妥妥的超7G而且开一个别的程序就跳内存警告而已- -
PS风...这个就别吐槽了- -因为感觉Freeze Frame也没用...
图片放大看的话问题应该很明显的。Frame 151 人物线条边缘出现了锯齿一样的东西。
图床问题的话...算是一个比较奇怪的习惯吧- -明天我改一下好了...
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 再求教一个deband问题...

► 显示剧情透露 旧的回答
2015.01.27 Edit
MStabilize用Dither_lutxyz8实现temporal的加权平均处理,而Dither_lutxyz8是用两个mt_lutxyz实现的,也就是初始化时需要建立两个2^24 * 8bit的查找表(Lookup Table,LUT),所以初始化的速度会很慢。
实际上AVS中可以利用Dither_resize16的convolute功能,用类似于Dither_convert_yuv_to_rgb的方式,实现16bit精度下的temporal的加权平均;而VapourSynth中可以用效率更高且原生支持16bit的TempLinearApproximate或std.Expr来实现。只不过因为这个脚本似乎没啥市场所以也就懒得改了……
上次由 mawen1250 在 2015-01-27 22:30,总共编辑 1 次。
头像
小炸孩
帖子: 40
注册时间: 2012-07-24 9:48

Re: 再求教一个deband问题...

mawen1250 写了:MStabilize因为里面用Trim来实现temporal处理所以初始化会比较慢,但初始化完成后速度就正常了。
只是拿sample的话的确是没问题...但放到全片的话过了3分钟电脑还是卡...而且动都不能动...按Ctrl+Alt+Del出任务管理器都卡...所以也就算了- -...

回到 “AviSynth”