真是EP到吐血..
v0.2.5对应新版CSmod 3.7 + CSmod16 1.6移植 v0.2.3更新一处bug,修正在处理chroma的情况下,temporal limit时 chromamv = False 导致报错的问题。
以及原来temporal limit部分的一处逻辑问题
v0.2.4修正edgemask mode -5/-7/5 下存在的edgethr scale问题,现在edgethr均为8bit scale。
v0.2.5修复内置函数clamp一处错误,修正一处逻辑错误导致limit结果异常,从而引起ringing严重的问题
如果后面没有功能性更新的话
(估计也不会有
大概只会有小版本号的迭代用于修正潜在的bug...
欢迎回报捉虫 \\QwQ//
多的话我就不写了,有什么问题参考雯姐原来的帖子。
VS版的特性为:仅支持YUV(或灰阶)输入,支持8~16bit INT输入,支持YV12与YV24。其他色彩空间未测试。
(实际上,如果不处理Chroma的话,YUV Colorfamily应该都是支持的。并且在ss_w * ss_h <= 3.0625时,即使处理Chroma应该也没有什么问题)
2.5版的锐化强度基本与avs版一致,不过,使用时还是请留意一下。(尤其是直接改写脚本时
速度方面,相比AVS提速较为明显。框多时应该很快。
► 显示剧情透露 SpeedTest By 舒书好@VCB-S
替偷懒的雯姐写一下v0.2的Changelog。
1. 参数 ss_hq 从bool 改为 int[0~2]
## 0:当横纵方向的supersample倍数乘积小于3.0625,即(ss_w*ss_h < 3.0625)时,使用non-ringing Spline64Resize做supersampling,否则使用nnedi3(pscrn=2)做supersampling。
## 1:一直使用nnedi3(pscrn=1)做supersampling,慢,但效果好一些。
## 2:一直使用nnedi3(pscrn=2)做supersampling,比1快很多,提升大概2-3倍。
(pscrn=0几乎没啥意义,太慢了。。)
2. 增加参数 showmask[bool]
是否输出内部mask,用于调试或者其他用途,默认False。
► 显示剧情透露 内置edgemask mode一览表
如果以supersample分辨率输出(ssout=True),且不处理UV(chroma = False),则UV平面默认会用non-ringing Spline64Resize修正到对应分辨率后一起输出。
# 但注意!如果以supersampling分辨率输出且处理Chroma,则你需要自己承担可能的Chroma shift风险。这个下面详细解释。
4. 加入灰阶支持
可直接处理Y8,Y16等。
同时如果不处理Chroma,内部将以灰阶处理,UV会被完全Copy。可以快大概10%。
5. 参数 secure 从 bool 改为 float[0~255]
Threshold(on an 8-bit scale) to avoid banding & oil painting (or face wax) effect of sharpening, set 0 to disable it.(from LSFmod)
5. 增加参数 preset[str]
预设有:
very fast
faster【Default if source[clip] is defined】
fast
medium【Default if source[clip] is not defined】
slow
slower
very slow
noise(细噪点)
grain(颗粒噪点)
detail(细节)
和CSmod1.6相比,去除了deband预设以及相关参数,因为可以用参数filter_ss自定义实现一样的效果。
预设非常快,建议降到very slow使用。
6. 增加参数 nr[bool]
控制是否在Spline64Resize时使用non-ringing算法,与预设有关。
7. 增加参数 sspre[bool]
True则在supersample分辨率下做pre-filter,False则在原分辨率下做pre-filter。
默认False,除非已经定义了filter_ss参数。
► 显示剧情透露 内置pre-filtering mode一览表
控制是否在时域以及空域稳定上使用source clip作为参照。
请注意下另一个参数 limit 的生效条件!
limit参数,控制是否依据source clip对filtered clip做Repair(3x3邻域像素限制),只在(Defined(source) || Defined(filter_ss) || usepasf) == True时有效。
类似的thr / thrc 参数并没有这个限制,并且 thr / thrc 的取值范围均为 0-255 ( 8bit scale )!
► 显示剧情透露 可能的Chroma shift风险 When "ssout=True"
代码: 全选
# 参数 "ssmethod" 的使用示例
import vapoursynth as vs
import nnedi3_resample as nnrs
import CSMOD as cs
core = vs.get_core()
def SSMethod(clip):
ss_w = 2 # scale ratio in horizon
ss_h = 2 # scale ratio in vertical
width = clip.width # source width
height = clip.height # source height
clip = nnrs.nnedi3_resample(clip, width * ss_w, height * ss_h, nnrs=3)
return clip
# using nnedi3_resample as internal supersample method.
# (No chroma placement issue when "ssout=True")
src = core.lsmas.LWLibavSource('xxx.mp4')
cs = cs.CSMOD(src, ssmethod=SSMethod, ss_w=2, ss_h=2, ssout=True)
# you should keep scale ratio set correctly
cs.set_output()
► 显示剧情透露 How to reproduce "preset=deband" using param "filter_nr"
代码: 全选
# 参数 "filter_nr" 的使用示例
import vapoursynth as vs
import CSMOD as cs
core = vs.get_core()
def deband(clip):
clip = core.f3kdb.Deband(clip)
return clip
# you can also define a AA processing in supersample resolution with "filter_ss" param here
src = core.lsmas.LWLibavSource('xxx.mp4')
cs = cs.CSMOD(src, filter_nr=deband)
cs.set_output()
► 显示剧情透露 内置unsharp kernel一览表
可定义预设 [1]Linear , [2]Non-linear , [3]Non-linear 2(from LSFmod Smode=5) 之外的sharpen mode。