upstream r29 (requires api4 VS) + 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)