• vsfieldkit.prepare_nnedi3_chroma_upsampler() can now use the znedi3 or nnedi3cl plugin in addition to plain nnedi3 as before.

  • Add compatibility with VapourSynth>=63 Python wrapper, broken due to renamed PresetVideoFormat enum.


Fix vsfieldkit.resample_as_progressive()’s avoid_chroma_shift option. It was having an opposite effect from intended and resampling with even lossier shift.

The new method avoids the subsampling grid altogether by resampling the Cb and Cr planes separately, avoid unnecessary re-siting even with nearest-neighbor resampling.


New Features

  • Interlacing! Targeting deinterlacer testers and engineers in the broadcast space who’ve been instructed to avoid soft telecine. Two new functions:

  • [Re]sampling kernels to supplement the out of the box vapoursynth.resize functions, but specialized for vsfieldkit tasks. They can be found in the vsfieldkit.kernels module. Includes an nnedi3 kernel-maker for use as a chroma upsampler.

  • vsfieldkit.annotate_bobbed_fields() for retro-actively adding a property to bobbed frames noting the field (top or bottom) they came from.

  • vsfieldkit.output_frame_inferred_y4m() for outputting yuv4mpeg2 (y4m) data with metadata derived from the first frame’s properties, allowing for interlaced output, SAR, and chroma siting as available.

Changed APIs




Output Change:

  • vsfieldkit.bob() now defaults to shifting according to the field’s position. Feature added for completion, but it’s also deprecated in favor of resize.Bob() in VapourSynth R58+.

Version 1.0.0 was yanked for an immediate bug fix.



Adds vsfieldkit.bob() deinterlacer.


First release. vsfieldkit.scan_interlaced() and some nifty utilities.