r28.A "Tremble in Fear"
Compared to upstream r28 release, this release introduces custom kernel support.
For example, a silly way to implement bilinear using custom kernel support is:
scaled = core.fmtc.resample(src, scale=2, custom=lambda x: max(0, 1-abs(x)), support=1) # bilinear upscale
Added parameters: custom
/support
, custom_h
/support_h
, custom_v
/support_v
. They should behave as the rest of fmtconv parameters (including specifying different custom kernel for horizontal/vertical scaling and/or each plane.)
Also note that fmtconv will apply an additional anti-aliasing low-pass filter for downscales (easy to compensate in your custom kernel though)