头像
Sakura2020
帖子: 15
注册时间: 2020-03-19 15:22

JincResize - jinc(EWA Lanczos)插值

移植了 avs 版 jinc-resize 到 vs 中(指令集优化部分只移植了 avx2),部分代码参考了 EWA-Resampling-VS

支持 8-16bit int 和 32bit float,由于核心的卷积运算都是在 float 下进行的,所以不同精度下的速度没有什么区别。

Github | 下载地址:JincResize-r7.2

代码: 全选

core.jinc.JincResize(clip clip, int width, int height[, int tap, float src_left, float src_top, float src_width, float src_height, int quant_x, int quant_y, float blur])

参数说明
  • 必要参数为 width、height,目标尺寸。
  • 其余为可选参数,使用时最需要调整的参数是 tap,和 madVR 中 tap 的含义一致,tap 越大,卷积范围越大,速度越慢,取值范围为 1-16。tap = 3, 4, 6, 8 分别对应 avs 版的 Jinc36Resize、Jinc64Resize、Jinc128Resize、Jinc256Resize,推荐使用这几个参数。默认为 tap=3。
  • src_left 等四个参数与 avs 插值滤镜中对应参数一致,无相关需求可以不用管这些参数。
  • quant_x、quant_y 用来控制子像素量化,默认值为256,一般保持默认值即可。
  • blur 让画面模糊一些,以降低插值的副作用,默认值为 0.9812505644269356。如果不了解相关内容,最好不要修改这个参数。
速度
在我的笔记本上(i5-4260U 主频1.4GHz 2c4t),默认参数(tap=3) 720p 插值到 1080p 能跑到 10fps,好一点 CPU 翻几番应该是不成问题的。
Update: 同样的参数,在 2700x 上测试,70fps 左右。

Change log
r7.2 增加 quant_x、quant_y 参数;将 crop_left 等四个参数改名为 src_left 等,与 avs 保持一致。

感谢提供 pr 以及进行指点的前辈们。

回到 “VapourSynth”