Echo
帖子: 7
注册时间: 2016-08-09 18:35

Re: BM3D-r7 | BM3D和V-BM3D降噪算法的VS滤镜实现

NAVras 写了:
Echo 写了: 这样处理的好处是,可以利用100帧的信息;
对于需要帧间关系来完成的处理更为有益。
过完BM3D再select every输出? {:cat_11}
速度应该不会变慢
还是会慢的,因为若是跳帧处理,则输出帧=处理帧<输入帧 {:cat_9}
可能只能牺牲速度,先全处理,再选择输出帧
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: BM3D-r7 | BM3D和V-BM3D降噪算法的VS滤镜实现

► 显示剧情透露
上次由 NAVras 在 2016-10-22 15:57,总共编辑 1 次。
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: BM3D-r7 | BM3D和V-BM3D降噪算法的VS滤镜实现

Echo 写了:
vempx 写了: 不是很懂你的思考逻辑……
你这个需求,先在VS里面用内置滤镜把100帧变成50
然后再把这50帧全部送给BM3D处理输出不就行了?
这样处理的好处是,可以利用100帧的信息;
对于需要帧间关系来完成的处理更为有益。
首先你用的是BM3D还是V-BM3D(在mvf.BM3D里是radius0>0),前者是纯intra处理,在之前或之后SelectEvery都没有区别。
如果是V-BM3D,那么就在之后SelectEvery,至于哪些帧会被处理,则是由每个滤镜对帧的请求逻辑决定的,不需要你自己管。
——实际上由于Collaborative Filter的特点,当select 1/2帧时,只有最后一个bm3d.VAggregate不会被请求所有帧,而之前的主要部分(VBasic、VFinal),所有帧都会被请求(因为radius=1时,bm3d.VAggregate每一帧的结果由前后共三帧来决定),所以理论上速度和是否SelectEvery都不会有多大区别。
Echo
帖子: 7
注册时间: 2016-08-09 18:35

Re: BM3D-r7 | BM3D和V-BM3D降噪算法的VS滤镜实现

mawen1250 写了: 首先你用的是BM3D还是V-BM3D(在mvf.BM3D里是radius0>0),前者是纯intra处理,在之前或之后SelectEvery都没有区别。
如果是V-BM3D,那么就在之后SelectEvery,至于哪些帧会被处理,则是由每个滤镜对帧的请求逻辑决定的,不需要你自己管。
——实际上由于Collaborative Filter的特点,当select 1/2帧时,只有最后一个bm3d.VAggregate不会被请求所有帧,而之前的主要部分(VBasic、VFinal),所有帧都会被请求(因为radius=1时,bm3d.VAggregate每一帧的结果由前后共三帧来决定),所以理论上速度和是否SelectEvery都不会有多大区别。
V-BM3D√
嗯,因为VAggregate的原因,所有帧都会被请求,隔帧处理的需求是 无法实现 的
不过还是多谢各位,SelectEvery在其他地方还是帮了大忙的,谢谢
NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: BM3D-r7 | BM3D和V-BM3D降噪算法的VS滤镜实现

mawen1250 写了: 首先BM3D依赖于block match进行降噪,而对于YUV,Y是用于BM的,如果分开处理意味着U、V被用作BM,而它们本身通常并不适合做BM(包含的结构信息太少);其次是OPP效果比普通matrix的YUV好。
所以我的建议是转YUV444处理(mvf.BM3D里做的)。
转444后处理确实仍然非常干净,,但好奇还想问下 {:cat_11} 如果用havsfunc里对knlmeans的方法到BM3D上(降Y修shift然后cmode=True,最后UV合cmode=False的Y),对chroma噪点严重的效果还会有提升吗?(更慢了... {:cat_3}

回到 “VapourSynth”