snylonue 发表于 2022-5-4 14:24:49

各种缩放算法是怎么实现的

在写一个图片查看器,目前缩放是靠调整 vertex 的位置实现的。
感觉这样缩放出来的质量不太好,想用一些高质量的算法,但是不会实现,看 mpv 之类的源码又看不懂


blackmickey 发表于 2022-5-4 19:44:01

常見的算法公式在wiki都有。
要用的話,看看vapoursynth或avisynth的原始碼。

孤雨独火 发表于 2022-5-4 20:21:55

懂背后原理的可能不多,大多数工具都是通过挂载现有的着色器/修改已有的着色器来快速实现的,be团队最近实现jinc就是改现有的着色器直接用的(之前因为没有现成的例子所以一直缺席该算法)

Trans404 发表于 2022-5-5 16:17:52

最简单的质量不错的算法就是Lanczos了吧,CSDN,知乎之类的都有很多相关文章。其他的要么不好找要么不开源要么是深度学习算法实时跑不动

xfdz 发表于 2022-5-5 20:16:50

Trans404 发表于 2022-5-5 16:17
最简单的质量不错的算法就是Lanczos了吧,CSDN,知乎之类的都有很多相关文章。其他的要么不好找要么不开源 ...

我现在用Anime4K_Upscale_L感觉效能比很高,只需要Lanczos不到2倍的时间

Starlight 发表于 2022-5-5 20:50:22

https://www.shadertoy.com/view/MllSzX

Jan 发表于 2022-5-5 22:31:43

想从头写的话可以看这个
http://avisynth.nl/index.php/Resampling
水平、垂直方向分别重采样,相互不会受影响

dtlnor 发表于 2022-5-5 22:52:23

Jan 发表于 2022-5-5 22:31
想从头写的话可以看这个
http://avisynth.nl/index.php/Resampling
水平、垂直方向分别重采样,相互不会受 ...

又見Nyquist–Shannon (頭疼起來啦){:12_877:}
页: [1]
查看完整版本: 各种缩放算法是怎么实现的