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

JincResize - jinc(EWA Lanczos)插值

2020-05-03 18:51

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

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

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

代码: 全选

core.jinc.JincResize(clip clip, int width, int height[, int tap, float crop_left, float crop_top, float crop_width, float crop_height, float blur])

参数说明
  • 必要参数为 width、height,目标尺寸。
  • 其余为可选参数,使用时最需要调整的参数是 tap,和 madVR 中 tap 的含义一致,tap 越大,卷积范围越大,速度越慢,取值范围为 1-16。tap = 3, 4, 6, 8 分别对应 avs 版的 Jinc36Resize、Jinc64Resize、Jinc128Resize、Jinc256Resize,推荐使用这几个参数。默认为 tap=3。
  • crop_left 等四个参数对应 avs 插值滤镜中的 src_left 等参数,我个人觉得写 crop 更准确一点。无相关需求可以不用管这些参数。
  • blur 让画面模糊一些,以降低插值的副作用,默认值为 0.9812505644269356。如果不了解相关内容,最好不要修改这个参数。
速度
在我的笔记本上(i5-4260U 主频1.4GHz 2c4t),默认参数(tap=3) 720p 插值到 1080p 能跑到 10fps,好一点 CPU 翻几番应该是不成问题的。


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

回到 “VapourSynth”