Skip to content


Subversion checkout URL

You can clone with
Download ZIP
nnedi3 filter for VapourSynth
Assembly C++ C
Branch: master

Translate some SSE2 functions into NEON intrinsics

Babby's first NEON.

Testing on an ODROID-U2 shows that it is ~3.6 times faster
with 8 bit input and default parameters, and ~2.1 times
faster with 16 bit input and default parameters, compared
to plain C code.
latest commit 7c9348fa07
@dubhater authored



nnedi3 filter for VapourSynth.

This is a port of tritical's nnedi3 filter.


The file nnedi3_weights.bin is required. In Windows, it must be located in the same folder as libnnedi3.dll. Everywhere else it can be located either in the same folder as, or in $prefix/share/nnedi3/. The build system installs it at the latter location automatically.

nnedi3.nnedi3(clip clip, int field[, bint dh=False, bint Y=True, bint U=True, bint V=True, int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2, bint opt=True, int fapprox=15])

Allowed values (ranges are inclusive):

  • field: 0..3
  • nsize: 0..6
  • nns: 0..4
  • qual: 1..2
  • etype: 0..1
  • pscrn: 0..4
  • fapprox: 0..15

When the input clip has more than 8 bits per sample, some parameters' allowed and default values change:

  • pscrn: 0, 1, default 1
  • fapprox: 0, 4, 8, 12, default 12

The opt parameter is now a boolean. If False, only C functions will be used. If True, the best functions that can run on your CPU will be selected automatically.

The _FieldBased frame property is now used to determine each frame's field dominance. The field parameter is only a fallback for frames that don't have the _FieldBased property, or where said property indicates that the frame is progressive.

nnedi3.nnedi3_rpow2(clip clip, int rfactor[, int width=clip.width*rfactor, int height=clip.height*rfactor, bint correct_shift=1, int nsize=0, int nns=3, int qual=1, int etype=0, int pscrn=2, bint opt=True, int fapprox=15])

Requires Firesledge's fmtconv plugin.

  • rfactor

    Magnification factor. It must be a power of 2 between 2 and 1024.

  • width

  • height

    Dimensions of the output. These parameters only have an effect if correct_shift is True. If they are different from the default values, the image will be enlarged by rfactor and then scaled to the desired dimensions using fmtconv.

  • correct_shift

    If set to True, the shift introduced by nnedi3 will be corrected using fmtconv's spline36 resizer. The same resizer will scale the image to width×height pixels, if those parameters were provided.

    If the video is vertically subsampled, the vertical chroma shift will be corrected regardless of this parameter's value.



On x86, yasm is currently not optional.

DLLs can be found in the "releases" section.



Something went wrong with that request. Please try again.