tritical's Avisynth Filters
All filters presented here are either licensed under the GPL or have no license at all (check the source code). Sources are included with all binaries along with a help file. Download and use these at your own risk. I hope they can be useful but can offer no guarantees. If you experience any problems use the email address at the bottom of the page to report bugs.
This page is broken down into an alphabetical list of all filters with an accompanying description and download link. All filters will either say "released" or "stable", indicating that I either posted about them on the doom9 forum or have tested them enough to know that they work, or will say "incomplete" meaning I never completely finished testing or writing the filter but got far enough along to have a working (testable) binary. If not otherwise stated, all filters support YV12 and YUY2 colorspaces and will only work with Avisynth v2.5.x.
To check out some other Avisynth filters visit: http://www.avisynth.org/warpenterprises/.
The following thread is also a good place to find filters: http://forum.doom9.org/showthread.php?t=84481.
And don't miss the Avisynth Manual: http://avisynth.org/mediawiki/Internal_filters.
Filters with working binaries
Cnr2 - 06/30/2004 v2.6.1 (Released)
I didn't make cnr2... just fixed some bugs that were present in previous versions (v2.4 + v2.5)
and added a little speed. The original author is MarcFD whose website can be found at
http://ziquash.chez.tiscali.fr/. Cnr2 is a chroma
temporal smoother (it wont touch luma), mainly aimed at tv/analogue captures. It is quite fast
and very good at removing the typical chroma artifacts that can be present in captures.
Download (also contains sources from v2.4 and v2.5 as well as v2.6.1)
ColorMatrix - 01/25/2009 v2.5 (Released)
ColorMatrix v2.0 is an updated version of the original ColorMatrix filter by Wilbert Dijkhof. It adds support for
converting between any of: Rec.709, FCC, Rec.601, and SMPTE 240M, makes pre/post clipping with limiter optional,
extends the d2v option to support changing colorimetry, and adds the ability to do YUV range conversion.
ddcc - 06/18/2010 v1.11 (Released)
ddcc performs gamut conversion (gamut mapping). It also includes the filter 'rgb3dlut' which performs a 3D rgb lut
operation (ddcc can output a lut file for use with rgb3dlut to perform the gamut mapping). rgb3dlut is also able
to take in yuy2 video, combining rgb and gamut conversion into a single step (visit
http://yesgrey.com/ycms.html to get the program 'yCMS' which can create the
necessary lut file). See the readme file for details.
Discussion (yCMS): http://forum.doom9.org/showthread.php?t=154719
dfttest - 06/22/2010 v1.8 (Released)
2D/3D frequency domain denoiser.
EDIUpsizer - 03/20/2004 v0.9.1 (Released)
EDIUpsizer is a resampling filter that upsizes an image by a factor of two both horizontally and vertically
using NEDI (new-edge directed interpolation). See http://neuron2.net/library/nedi.pdf
for more info on the algorithm. EDIUpsizer also uses a few modifications to basic NEDI in order to prevent
a lot of the artifacts that NEDI creates in detailed areas. These include condition number testing and
adaptive window size (http://www.cs.ucdavis.edu/~bai/ECS231/finaltzeng.pdf),
as well as capping constraints. All modifications and constraints to NEDI are optional
(can be turned on and off) and are user configurable. Just note that this filter is rather slow.
EEDI2 - 06/07/2006 v0.9.2 (Released)
EEDI2 resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and
interpolating the missing field. It is intended for edge-directed interpolation for deinterlacing
(i.e. not really made for resizing a normal image, but can do that as well). EEDI2 can be used with
both TDeint and TIVTC, see the discussion link for more info on how to do this.
Download Download - Multithreaded (foxyshadis) Download - Multithreaded 64 bit (squid_80)
eedi3 - 07/24/2010 v0.9.1 (Released)
Another edge directed interpolation filter. Works by minimizing a cost functional involving every pixel in a scan line. It is slow.
FastEDIUpsizer - 04/13/2004 v0.9.1 (Released)
FastEDIUpsizer is a slimed down version of EDIUpsizer that is slightly more tuned for speed.
It uses a constant 8x8 window size, only performs NEDI on the luma plane, and
only uses either bicubic or bilinear interpolation as the fall back interpolation method.
nnedi - 09/20/2007 v1.3 (Released)
nnedi is an intra-field only deinterlacer. It takes in a frame, throws away one field, and
then interpolates the missing pixels using only information from the kept field. It has same
rate and double rate modes, and works with YUY2 and YV12 input. nnedi can also be used to
enlarge images by powers of 2.
nnedi2 - 07/23/2010 v1.6 (Released)
nnedi2 is an intra-field only deinterlacer. It takes in a frame, throws away one field, and
then interpolates the missing pixels using only information from the kept field. It has same
rate and double rate modes, and works with YV12, YUY2, and RGB24 input. nnedi2 is also very good
for enlarging images by powers of 2, and includes a function 'nnedi2_rpow2' for that purpose.
nnedi3 - 06/10/2011 v0.9.4 (Released)
nnedi2 with improved predictor neural network architecture and local neighborhood pre-processing.
nnedi3 also has multiple local neighborhood size options to better handle image enlargement vs
deinterlacing and give more quality vs speed options.
t3dlut - 06/19/2010 v1.1 (Released)
An extension of the rgb3dlut function from ddcc. It supports 16 bit output LUT files (dithers to 8-bit). It also supports
yuy2 output, allowing yuy2->yuy2 LUT operations.
TAnisotropic - 06/14/2004 v0.9.0 (Incomplete)
TAnisotropic, as you can probably guess, is an anisotropic diffusion smoothing filter. I coded it about the
same time as TBilateral. I found that TBilateral almost always looked better and thus never completely
finished testing this filter (though as far as I know it does work perfectly fine). It is a straight
implementation of the algorithm described in "Scale-Space and Edge Detection Using Anisotropic Diffusion",
Pietro Perona and Jitendra Malik, July 1990 (
http://www.cs.berkeley.edu/~malik/papers/MP-aniso.pdf). It can process both
chroma and luma or luma only. It has the option to use four or eight neighbor pixels as well.
TBilateral - 05/16/2006 v0.9.11 (Released)
TBilateral is a spatial smoothing filter that uses the bilateral filtering algorithm. It does
a nice job of smoothing while retaining picture structure. It offers the ability to process both
luma and chroma or luma only, as well as an option for using the second derivative instead of the
first (better at filtering gradients). TBilateral seems to work better on anime/cartoon type images
then on real life video where it tends to create an oil painting/oversmoothing effect even with low settings.
The defaults for this filter are tuned for an anime source with some but not heavy noise. As of version
0.9.6, TBilateral includes a gui with realtime preview to help with tweaking settings. For more
information on bilateral filtering see these links:
tcanny - 06/03/2009 v1.0 (Released)
Contains a canny edge detection filter and distance transform filter.
TComb - 05/16/2006 v2.0 Beta 2
TComb is a temporal comb filter (it reduces cross-luminance (rainbowing) and cross-chrominance
(dot crawl) artifacts in static areas of the picture). It will ONLY work with NTSC material, and
WILL NOT work with telecined material where the rainbowing/dotcrawl was introduced prior to the
telecine process! It must be used before ivtc or deinterlace in order to work. In terms of what
it does it is similar to guavacomb/dedot. It is able to filter on the first filterable frame and
looks not only behind and ahead of the current frame, but at all possible combinations that include
the current frame when looking for oscillation. TComb currently supports YV12 and YUY2 colorspaces.
TCombMask - 05/21/2004 v0.9.4 (Released)
TCombMask creates a comb map that can be used by other filters. It currently
supports optional motion adaption (forward, backward, and bi-directional motion checks), optional spatial
adaption (four selectable area combing metrics), optional luma to chroma and chroma to luma linking, comb
map denoising, separate thresholds for chroma and luma, and much more. It also includes three isse/sse2
optimized masking fuctions which make it easy to build a deinterlacer using TCombMask's output, as well as a
conditional filter called IsCombedT() which uses TCombMask's comb map to check if the current frame is combed
(interlaced) or not.
TDeint - 01/18/2007 v1.1 (Released)
TDeint is a bi-directionally, motion adaptive, sharp deinterlacer. It can adaptively choose between
using per-field and per-pixel motion adaptivity, and can use cubic interpolation, kernel
interpolation (with temporal direction switching), or one of two forms of modified ELA interpolation
which help to reduce "jaggy" edges in moving areas where interpolation must be used. TDeint also
supports user overrides through an input file, and can act as a smart bobber or same frame rate
deinterlacer, as well as an IVTC post-processor. Currently only YV12 and YUY2 colorspaces are supported.
TEdgeMask - 01/20/2005 v0.9
TEdgeMask creates an edgemask based off gradient vector magnitude. It includes some useful
options such as luma to chroma linking of the edge map and seperate thresholds for each plane.
It can output a binary mask or a magnitude mask scaled to a 0-255 range. Currently TEdgeMask
supports YUY2 and YV12 colorspaces.
TIsophote - 07/24/2004 v0.9.1 (Released)
TIsophote is a level-set (isophote) smoothing filter. It does simple unconstrained level-set
smoothing. Basically, it can smooth jagged edges in an image. If over used it will remove jagged
edges as well as object features and eventually completely eliminate all level curves. For a more
in-depth explanation see the technical info in the help file or visit:
the pdf above includes info on more then just isophote smoothing. An example:
TIVTC - 01/17/2008 v1.0.5 (Released)
TIVTC is actually a combination of 7 different filters and 3 conditional functions. The
seven filters included are TFM, TDecimate, MergeHints, FrameDiff, FieldDiff, ShowCombedTIVTC,
and RequestLinear. TFM is a field matching filter that will recreate the
original progressive frames in a telecined source, and TDecimate is a decimation filter that
removes duplicates. These filters can be used together to achieve an ivtc or separately to
accomplish other tasks. TDecimate also provides special options for handling hybrid material
which include vfr via matroska (using a timecodes file) and blend decimation/upconversion for
cfr solutions. Mergehints, RequestLinear, FrameDiff, FieldDiff, and ShowCombedTIVTC are
special utility filters included to help perform specific functions. The conditional functions
are IsCombedTIVTC, CFieldDiff, and CFrameDiff which can be used via Avisynth's conditional
filtering environment to test if frames are combed, determine how well two fields fit together,
or calculate the difference between frames.
TNLMeans - 08/28/2007 v1.0.3 (Released)
TNLMeans is an implementation of the NL-means denoising algorithm. Aside from the original method,
TNLMeans also supports extension into 3D, a faster, block based approach, and a multiscale version.
For more information see the included readme or the following papers:
A Review of Image Denoising Algorithms, with a New One
A non-local algorithm for image denoising
Denosing image sequences does not require motion estimation
TTempSmooth - 11/17/2005 v0.9.4 (Released)
TTempSmooth is a motion adaptive (only works on stationary parts of the picture), temporal smoothing
filter aimed at preventing as many artifacts as possible at given lthresh and cthresh settings. To do
this it processes luma/chroma together when checking for pixel similarity and processes out from the
current center frame continuously checking difference to the center frame pixel as well as to the previous
frame pixel. Its averaging method allows it to create stable images and makes it very good at
removing grain in stationary areas. The filter includes TTempSmooth, the original version that uses
an inverse difference weighting system, as well as TTempSmoothF, which is a faster version (40-50%) that is
a special case of TTempSmooth with lmdiff/cmdiff set equal to or greater than lthresh/cthresh.
yadifmod - 09/15/2007 v1.0 (Released)
Modified version of Fizick's avisynth filter port of yadif from mplayer. This version doesn't internally generate spatial predictions, but takes them from an external clip. It also is not an
Avisynth_C plugin (just a normal one). This version works with YV12 and YUY2 colorspaces.
Filter Compiles for Avisynth 2.5.7
SmartDecimate/Avisynth_C - 11/7/2006
These are builds from the sources on Kevin Atkinson's site (avisynth_c 0.15/smartdecimate 0.23).
The normal version would always crash in Avisynth 2.5.7 if weave/bob were the same, along with some
other occasional weirdness. Sources are included.
SmoothDeinterlacer - 9/30/2005
Version 1.4 (originally an Avisynth 2.0 plugin) fixed up to work with Avisynth 2.5.6+ (2.5.3+ should work).
Parameters, defaults, and operation are all the same. Only the filter creation and constructor code was
changed. Sources included.
TMonitor - 11/16/2005 v0.9.4 (Released)
TMonitor is a filter very similar to AVSMon. It enables monitoring of
an Avisynth clip via previewing the video, viewing clip information (such
as video width, height, colorspace, number of frames, audio samples, sample rate,
number of audio channels, and more), and adjusting the audio delay. It also
supports multiple instances per script, allowing viewing of differences between
different parts of a processing chain.
Screenshot 1 Screenshot 2
TUnsharp - 05/24/2005 v0.9.3 (Released)
TUnsharp is a basic sharpening filter that uses a couple different variations of unsharpmasking
and allows for controlled sharpening based on edge magnitude and min/max neighborhood value clipping.
It also supports the XSharpen sharpening method. The real reason for its existence is that it sports a
gui with real time updating preview.
avi_tc_package - 08/02/2006 v1.5 (Released)
This package includes the commandline programs cfr2tc (v1.4), tc2cfr (v1.5), and tcConv (v1.0),
as well as a GUI frontend named tc-GUI for using them. tc-GUI is a c# program and will require the
.NET framework (at least version 1.1) to run. cfr2tc, tc2cfr, and tcConv are plain c++ commandline
programs and do not require the .NET framework. Following are descriptions of cfr2tc, tc2cfr,
cfr2tc takes an avi file with a video stream containing null frames and outputs a
new avi file containing the same video stream, but with all null frames removed and a v1 or
v2 timecode file. It also has timecode file only modes that create the timecode file but
do not create a new avi file. As of v1.4 there is also the option to output an avs script
instead of a new avi file.
tc2cfr turns an avi file (with each frame present once) into a new avi file with null frames
that has the specified framerate and varying display length for each individual frame based on a
v1 or v2 timecode file.
tcConv performs v1<->v2 timecode file conversions.
td2vfix and td2vparse - 12/22/2005 v1.3.3 (Released)
td2vfix is a command line tool that corrects illegal field order transitions in d2v files, and td2vparse is another
command line tool that parses a d2v file and outputs some useful information such as: encoded to display frame
mappings, field order, trf flags, gop starts/offsets, 3:2 pattern starts/breaks, illegal transitions, ignored rff flags,
and more. The supported d2v formats include dvd2avi 1.76/1.77, dgindex, and dvd2avidg d2vs. These programs are based
on D2VFix/D2VParse by Donald Graft.
To contact me, report bugs, or make suggestions: email