<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://avisynth.nl/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://avisynth.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yakub2.X</id>
		<title>Avisynth wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://avisynth.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yakub2.X"/>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Special:Contributions/Yakub2.X"/>
		<updated>2026-04-25T16:16:50Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.24</generator>

	<entry>
		<id>http://avisynth.nl/index.php/TIVTC</id>
		<title>TIVTC</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/TIVTC"/>
				<updated>2019-04-07T06:06:25Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|IVTC|Decimation}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=[https://forum.doom9.org/member.php?u=46085 tritical], [https://github.com/pinterf pinterf]&lt;br /&gt;
|2=1.0.14&lt;br /&gt;
|3=[https://github.com/pinterf/TIVTC/releases TIVTC-v1.0.11.7z]&lt;br /&gt;
|4=[[:Category:IVTC|IVTC]] &amp;amp; [[:Category:Decimation|Decimation]]&lt;br /&gt;
|5=[https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[https://forum.doom9.org/showthread.php?t=82264 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
'''TIVTC''' is a plugin package containing 7 different filters and 3 conditional functions. The seven filters included are '''[[TIVTC/TFM|TFM]], [[TIVTC/TDecimate|TDecimate]], [[TIVTC/MergeHints|MergeHints]], [[TIVTC/FrameDiff|FrameDiff]], [[TIVTC/FieldDiff|FieldDiff]], [[TIVTC/ShowCombedTIVTC|ShowCombedTIVTC]],''' and '''[[TIVTC/RequestLinear|RequestLinear]]'''. &lt;br /&gt;
&lt;br /&gt;
*'''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 [http://en.wikipedia.org/wiki/Ivtc IVTC] or separately to accomplish other tasks. &lt;br /&gt;
&lt;br /&gt;
*'''TDecimate''' also provides special options for handling hybrid material which include [[VFR]] via [http://en.wikipedia.org/wiki/Matroska Matroska] (using a timecodes file) and blend decimation/upconversion for CFR solutions. &lt;br /&gt;
&lt;br /&gt;
*'''Mergehints, RequestLinear, FrameDiff, FieldDiff,''' and '''ShowCombedTIVTC''' are special utility filters included to help perform specific functions. &lt;br /&gt;
&lt;br /&gt;
*The conditional functions are '''IsCombedTIVTC, CFieldDiff,''' and '''CFrameDiff''' which can be used via AviSynth's [[ConditionalFilter|conditional filtering]] environment to test if frames are combed, determine how well two fields fit together, or calculate the difference between frames.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [https://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[YUY2]], [[YV12]]&lt;br /&gt;
&lt;br /&gt;
==Usage Examples==&lt;br /&gt;
&lt;br /&gt;
====NTSC cases:====&lt;br /&gt;
&lt;br /&gt;
   1.) NTSC Film, normal source (not anime or cartoon).  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate()&lt;br /&gt;
&lt;br /&gt;
   2.) NTSC Film, anime or cartoon source.  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=1)&lt;br /&gt;
&lt;br /&gt;
   3.) NTSC Hybrid, using blend decimation on video sections (not anime or cartoon).  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(hybrid=1)&lt;br /&gt;
&lt;br /&gt;
   4.) NTSC Hybrid, using blend decimation on video sections, anime or cartoon source.  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=1,hybrid=1)&lt;br /&gt;
&lt;br /&gt;
   5.) NTSC Hybrid, using vfr via mkv (not anime or cartoon).  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=3,hybrid=2,vfrDec=0,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   6.) NTSC Hybrid, using vfr via mkv, anime or cartoon source.  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=3,hybrid=2,vfrDec=1,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   7.) NTSC, two pass (enables use of conCycleTP parameter) mkv vfr for hybrid source.&lt;br /&gt;
         First pass:&lt;br /&gt;
             mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
             tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;,output=&amp;quot;matches.txt&amp;quot;)&lt;br /&gt;
             tdecimate(mode=4,output=&amp;quot;metrics.txt&amp;quot;)&lt;br /&gt;
         Second pass (not anime or cartoon):&lt;br /&gt;
             mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
             tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;,input=&amp;quot;matches.txt&amp;quot;)&lt;br /&gt;
             tdecimate(mode=5,hybrid=2,vfrDec=0,input=&amp;quot;metrics.txt&amp;quot;,tfmIn=&amp;quot;matches.txt&amp;quot;,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
         Second pass (anime or cartoon):&lt;br /&gt;
             mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
             tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;,input=&amp;quot;matches.txt&amp;quot;)&lt;br /&gt;
             tdecimate(mode=5,hybrid=2,vfrDec=1,input=&amp;quot;metrics.txt&amp;quot;,tfmIn=&amp;quot;matches.txt&amp;quot;,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====PAL Cases:====&lt;br /&gt;
&lt;br /&gt;
   1.) PAL, no decimation (just field matching)&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   2.) PAL, decimate 1 in 25 (most similar)&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(cycle=25)&lt;br /&gt;
&lt;br /&gt;
== Archived Downloads ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;100px&amp;quot;| Version&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Download&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Mirror&lt;br /&gt;
|-&lt;br /&gt;
!v1.0.5&lt;br /&gt;
|[https://web.archive.org/web/20140420181748/http://bengal.missouri.edu/~kes25c/TIVTCv105.zip TIVTCv105.zip]&lt;br /&gt;
|[https://web.archive.org/web/20120223025813/http://ivtc.org/yatta%20support/TIVTCv105.zip TIVTCv105.zip]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--Old versions: https://web.archive.org/web/20081017060943/http://bengal.missouri.edu/~kes25c/old_stuff/--&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[https://forum.doom9.org/showthread.php?t=82264 Doom9 Forum] -  Discussion thread.&lt;br /&gt;
*[https://forum.doom9.org/showpost.php?p=1738414&amp;amp;postcount=1278 Doom9 Forum] - TIVTC built with VC10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#IVTC_.26_Decimation|External Filters]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/FFmpegSource</id>
		<title>FFmpegSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/FFmpegSource"/>
				<updated>2018-10-01T04:49:03Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* C Plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Plugins|Source_filters}}&lt;br /&gt;
{{Filter5&lt;br /&gt;
|1={{Author/Myrsloik}}, et al.&lt;br /&gt;
|2=v2.23.1&lt;br /&gt;
|3=[https://github.com/FFMS/ffms2/releases FFMS2 v2.23.1]&lt;br /&gt;
|4=[http://forum.doom9.org/member.php?u=135430 10bithack version]&lt;br /&gt;
|5=[https://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md User Manual]&lt;br /&gt;
|6=Source filters &lt;br /&gt;
|7=[https://opensource.org/licenses/MIT MIT] / binary is [https://www.gnu.org/licenses/gpl.txt GPLv3]&lt;br /&gt;
|8=[https://forum.doom9.org/showthread.php?t=127037 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
Opens files using [https://www.ffmpeg.org/ FFmpeg] and nothing else. May be frame accurate on good days. The source is MIT licensed and can be obtained from the [https://github.com/FFMS/ffms2/ GitHub repository]. The precompiled binary is GPL3 licensed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* AviSynth 2.6.0 or [https://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&amp;lt;br&amp;gt;&lt;br /&gt;
:([[High_bit-depth_Support_with_Avisynth#Importing_High_Bit-depth_Video_into_AviSynth|10-bit formats]] are supported with the 10bithack version - see alternate download above)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
*Because of LAVF's demuxer, most raw streams (such as elementary h264 and other mpeg video streams) will fail to work properly.&lt;br /&gt;
&lt;br /&gt;
*'''FFAudioSource''' will have to remake any index implicitly created by '''FFVideoSource''' and therefore code like&lt;br /&gt;
&amp;lt;div {{ListItemContinue}} &amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;AudioDub( FFVideoSource(X), FFAudioSource(X) )&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
will require two indexing passes. Apart from the time consumed this is harmless. To work around it open the audio first: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;A = FFAudioSource(X)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;V = FFVideoSource(X)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;AudioDub(V, A)&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
('''FFmpegSource2''' does this for you with a single function call) or use '''FFIndex''', like so: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;FFIndex(X)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;AudioDub( FFVideoSource(X), FFAudioSource(X) )&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*Interlaced H.264 mostly works these days, but seeking may occasionally result in corruption.&lt;br /&gt;
*Transport Streams will not decode reliably without {{FuncArg|seekmode}} -1.&lt;br /&gt;
*Open-GOP H.264 will sometimes produces corruption when seeking.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
(''NOTE this section does not appear in the [http://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md latest documentation] and may be obsolete'')&lt;br /&gt;
* Interlaced H.264 is decoded in an odd way; each field gets its own full-height frame and the fieldrate is reported as the framerate, and furthermore one of the fields (odd or even) may &amp;quot;jump around&amp;quot;. To get the correct behavior, you can try setting {{FuncArg|fpsnum}} and {{FuncArg|fpsden}} so that the framerate is halved (may or may not work). This issue is caused by libavcodec. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
===Video===&lt;br /&gt;
&lt;br /&gt;
*AVI, MKV, MP4, FLV: Frame accurate&lt;br /&gt;
*WMV: Frame accurate(?) but avformat seems to pick keyframes relatively far away&lt;br /&gt;
*OGM: Frame accurate(?)&lt;br /&gt;
*VOB, MPG: Seeking seems to be off by one or two frames now and then&lt;br /&gt;
*M2TS, TS: Seeking seems to be off a few frames here and there&lt;br /&gt;
**As MP4 container supports MPEG2/4 video stream, when seeking is off, you can try copying the stream to MP4 container (maybe without audio.) With FFmpeg: &amp;lt;code&amp;gt;ffmpeg -i file.m2ts -c:v copy -an file.mp4&amp;lt;/code&amp;gt;. You might have to specify &amp;lt;code&amp;gt;-fflags +genpts&amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Image files: Most formats can be opened if seekmode=-1 is set, no animation support&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
&lt;br /&gt;
Seeking should be sample-accurate with most codecs in AVI, MKV, MP4 and FLV. &lt;br /&gt;
&lt;br /&gt;
Decoding linearly will almost always give correct results, and forward-seeks from trimming should result in at most a few hundred samples of corruption.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Indexing and You ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
Before '''FFMS2''' can open a file, it must be indexed first so that keyframe/sample positions are known and seeking is easily accomplished. This is done automatically when using '''FFVideoSource''' or '''FFAudioSource''', but if you want to you can invoke the indexing yourself by calling '''FFIndex''', or by running &amp;lt;tt&amp;gt;ffmsindex.exe&amp;lt;/tt&amp;gt;. By default the index is written to a file so it can be reused the next time you open the same file, but this behavior can be turned off if desired.&lt;br /&gt;
&lt;br /&gt;
If you wonder why '''FFMS2''' takes so long opening files, the indexing is the answer. If you want a progress report on the indexing, you can use the supplied &amp;lt;tt&amp;gt;ffmsindex.exe&amp;lt;/tt&amp;gt; command line program.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
=== FFmpegSource2 ===&lt;br /&gt;
{{FuncDef|FFmpegSource2(string ''source'' [, int ''vtrack'', int ''atrack'' , &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''cache'', string ''cachefile'', int ''fpsnum'', int ''fpsden'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''threads'', string ''timecodes'', int ''seekmode'', bool ''overwrite'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''width'', int ''height'', string ''resizer'', string ''colorspace'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''rffmode'', int ''adjustdelay'', bool ''utf8'', string ''varprefix'' ] )&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
:{{Par2|source|string|(required)}}&lt;br /&gt;
::Path of the file to be opened.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|vtrack|int|-1}}&lt;br /&gt;
::The video track number to open, as seen by the relevant demuxer. Track numbers start from zero, and are guaranteed to be continous (i.e. there must be a track 1 if there is a track 0 and a track 2). {{FuncArg|vtrack}}=-1 (the default) means open the first video track. Note that this filter's idea about what ''track'' has what ''number'' may be completely different from what some other application might think. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|atrack|int|-2}}&lt;br /&gt;
::The audio track to open. {{FuncArg|atrack}}=-1 means select the first available track. {{FuncArg|atrack}}=-2 (the default) means audio is disabled. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|cache|bool|true}}&lt;br /&gt;
::If set to true (the default), this filter will first check if the {{FuncArg|cachefile}} contains a valid index, and if it does, that index will be used. If no index is found, all video tracks will be indexed, and the indexing data will be written to {{FuncArg|cachefile}} afterwards. If set to false, this filter will not look for an existing index file; instead all video tracks will be indexed when the script is opened, and the indexing data will be discarded after the script is closed; you will have to index again next time you open the script. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|cachefile|string|source + &amp;quot;.ffindex&amp;quot;}}&lt;br /&gt;
::The filename of the index file (where the indexing data is saved). Defaults to &amp;lt;tt&amp;gt;sourcefilename.ffindex&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|fpsnum|int|-1}}&lt;br /&gt;
:{{Par2|fpsden|int|1}}&lt;br /&gt;
::Controls the framerate of the output; used for VFR to CFR conversions. If {{FuncArg|fpsnum}} is less than or equal to zero (the default), the output will contain the same frames that the input did, and the frame rate reported to Avisynth will be set based on the input clip's average frame duration. If {{FuncArg|fpsnum}} is greater than zero, this filter will force a constant frame rate, expressed as a rational number where {{FuncArg|fpsnum}} is the numerator and {{FuncArg|fpsden}} is the denominator. This may naturally cause dropped or duplicated frames to achieve the desired frame rate, and the output is not guaranteed to have the same number of frames that the input did.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|threads|int|-1}}&lt;br /&gt;
::The number of decoding threads to request from [http://ffmpeg.org/libavcodec.html '''libavcodec''']. Setting it to less than or equal to zero means it defaults to the number of logical CPUs as reported by Windows. Note that this setting might be completely ignored under a number of conditions; most commonly because a lot of decoders actually do not support multithreading. Default -1.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|timecodes|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Filename to write [http://matroska.org/technical/specs/notes.html Matroska v2 timecodes] for the opened video track. If the file exists, it will be truncated and overwritten. Set to the empty string to disable timecodes writing (this is the default). &lt;br /&gt;
&lt;br /&gt;
:{{Par2|seekmode|int|1}}&lt;br /&gt;
::Controls how seeking is done. Mostly useful for getting uncooperative files to work. Valid modes are:&lt;br /&gt;
::*-1: Linear access without rewind; i.e. will throw an error if each successive requested frame number isn't bigger than the last one. Only intended for opening images but might work on well with some obscure video format.&lt;br /&gt;
::*0: Linear access (i.e. if you request frame n without having requested all frames from 0 to n-1 in order first, all frames from 0 to n will have to be decoded before n can be delivered). The definition of slow, but should make some formats &amp;quot;usable&amp;quot;.&lt;br /&gt;
::*1: Safe normal (the default). Bases seeking decisions on the keyframe positions reported by libavformat.&lt;br /&gt;
::*2: Unsafe normal. Same as mode 1, but no error will be thrown if the exact seek destination has to be guessed.&lt;br /&gt;
::*3: Aggressive. Seeks in the forward direction even if no closer keyframe is known to exist. Only useful for testing and containers where libavformat doesn't report keyframes properly.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|overwrite|bool|false}}&lt;br /&gt;
::If set to true, this filter will reindex the source file and overwrite the index file even if the index file already exists and is valid. Mostly useful for trackmask changes and testing.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|width|int|-1}}&lt;br /&gt;
:{{Par2|height|int|-1}}&lt;br /&gt;
::Sets the resolution of the output video, in pixels. Setting either dimension to less than or equal to zero (which is the default) means the resolution of the first decoded video frame is used for that dimension. These parameters are mostly useful because FFMS2 supports video streams that change resolution mid-stream; since Avisynth does not, these parameters are used to set single resolution for the output. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|resizer|string|&amp;quot;BICUBIC&amp;quot;}}&lt;br /&gt;
::The resizing algorithm to use if rescaling the image is necessary. If the video uses subsampled chroma but your chosen output colorspace does not, the chosen resizer will be used to upscale the chroma planes, even if you did not request an image rescaling. The available choices are &amp;lt;code&amp;gt;FAST_BILINEAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BILINEAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BICUBIC&amp;lt;/code&amp;gt; (default), &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;POINT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AREA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BICUBLIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GAUSS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SINC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LANCZOS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPLINE&amp;lt;/code&amp;gt;. Note that &amp;lt;code&amp;gt;SPLINE&amp;lt;/code&amp;gt; is completely different from Avisynth's builtin Spline [[Resize|resizers]]. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|colorspace|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Convert the output from whatever it was to the given colorspace, which can be one of &amp;lt;code&amp;gt;YV12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;YUY2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RGB24&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RGB32&amp;lt;/code&amp;gt;. Setting this to an empty string (the default) means keeping the same colorspace as the input. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|rffmode|int|0}}&lt;br /&gt;
::Controls how RFF flags in the video stream are treated (RFF = ''Repeat First Field''; used in 3:2 pulldown&amp;lt;sup&amp;gt;[http://wayback.archive.org/web/20150120040340/http://msdn.microsoft.com/en-us/library/windows/desktop/aa367729%28v=vs.85%29.aspx]&amp;lt;/sup&amp;gt;). In other words, it's equivalent to the &amp;quot;field operation&amp;quot; mode switch in [[DVD2AVI]]/[[DGIndex]]. Valid modes are:&lt;br /&gt;
::*0: Ignore all flags (the default mode).&lt;br /&gt;
::*1: Honor all pulldown flags.&lt;br /&gt;
::*2: Equivalent to DVD2AVI's &amp;quot;force film&amp;quot; mode.&lt;br /&gt;
::Note that using modes 1 or 2 will make FFMS2 throw an error if the video stream has no RFF flags at all. When using either of those modes, it will also make the output be assumed as CFR, disallow vertical scaling and disallow setting the output colorspace. &amp;lt;code&amp;gt;FFPICT_TYPE&amp;lt;/code&amp;gt; will also not be set as the output is a combination of several frames. Other subtle behavior changes may also exist. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|adjustdelay|int|-1}}&lt;br /&gt;
::Controls how audio delay is handled, i.e. what happens if the first audio sample in the file doesn't have a timestamp of zero. The following arguments are valid:&lt;br /&gt;
::*-3: No adjustment is made; the first decodable audio sample becomes the first sample in the output.&lt;br /&gt;
::*-2: Samples are created (with silence) or discarded so that sample 0 in the decoded audio starts at time zero.&lt;br /&gt;
::*-1: Samples are created (with silence) or discarded so that sample 0 in the decoded audio starts at the same time as frame 0 of the first video track. This is the default, and probably what most people want.&lt;br /&gt;
::*Any integer &amp;gt;= 0: Same as -1, but adjust relative to the video track with the given track number instead. If the provided track number isn't a video track, an error is raised.&lt;br /&gt;
::-2 obviously does the same thing as -1 if the first video frame of the first video track starts at time zero. In some containers this will always be the case, in others (most notably 188-byte MPEG TS) it will almost never happen. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|utf8|bool|false}}&lt;br /&gt;
::If set to true, this filter will assume that the .avs script is encoded as UTF-8 and therefore interpret all filenames as UTF-8 encoded strings. This makes it possible to open files with odd filenames that otherwise would not be openable. &lt;br /&gt;
&lt;br /&gt;
::'''NOTE:''' You must make sure you save the .avs file without a BOM (byte-order marker) or Avisynth will refuse to open it. Notepad will write a BOM, so use something else.&lt;br /&gt;
&lt;br /&gt;
::You should also note that setting this parameter incorrectly will cause all file openings to fail unless your filenames are exclusively 7-bit ASCII compatible. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|varprefix|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::A string that is added as a prefix to all [[#Exported_AviSynth_variables|exported]] Avisynth variables. This makes it possible to differentiate between variables from different clips. &lt;br /&gt;
&lt;br /&gt;
* Note, ''FFMS2'' is a shorter name (added in v2.22) for ''FFmpegSource2''. The syntax is the same for both.&lt;br /&gt;
&lt;br /&gt;
=== Other Functions ===&lt;br /&gt;
For complete documentation see the [http://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md#function-reference FFMS2 GitHub page].&lt;br /&gt;
{{PluginFilterTable2}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFIndex|&lt;br /&gt;
Indexes a number of tracks in a given source file and writes the index file to disk, where it can be picked up and used by &amp;lt;tt&amp;gt;FFVideoSource&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;FFAudioSource&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
}} &lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFAudioSource|&lt;br /&gt;
Opens audio. Invokes indexing of all tracks if no valid index file is found, or if the requested track isn't present in the index. &lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFVideoSource|&lt;br /&gt;
Opens video. Will invoke indexing of all video tracks (but no audio tracks) if no valid index file is found.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFmpegSource2|&lt;br /&gt;
A convenience function that combines the functionality of '''FFVideoSource''' and '''FFAudioSource''' (see above).&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFMS2|&lt;br /&gt;
A shorter '''FFmpegSource2''' alias, this feature was added in v2.22.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}} &lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFImageSource|&lt;br /&gt;
A convenience alias for '''FFVideoSource''', with the options set optimally for using it as an image reader. Disables caching and seeking for maximum compatiblity.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFSetLogLevel|&lt;br /&gt;
Sets the FFmpeg logging level, i.e. how much diagnostic spam it prints to STDERR.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFGetLogLevel|&lt;br /&gt;
Returns the current log level, as an integer.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFGetVersion|&lt;br /&gt;
Returns the '''FFMS2''' version, as a string.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRowNote|&lt;br /&gt;
'''Note''': the following functions are provided by &amp;lt;tt&amp;gt;[http://raw.githubusercontent.com/FFMS/ffms2/master/etc/FFMS2.avsi FFMS2.avsi]&amp;lt;/tt&amp;gt; and are not available unless that script has been imported or [[Plugins#Plugin_Autoload_and_Name_Precedence|autoloaded]].&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFFormatTime|&lt;br /&gt;
A helper function used to format a time given in milliseconds into a h:mm:ss.ttt string. Used internally by '''FFInfo'''.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFInfo|&lt;br /&gt;
A helper function similar to Avisynth's internal [[Info|Info()]] function; shows general information about the current frame.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exported AviSynth variables ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
All variable names are prefixed by the {{FuncArg|varprefix}} argument to the respective '''FFVideoSource''' or '''FFAudioSource''' call that generated them. &lt;br /&gt;
&lt;br /&gt;
'''NOTE''': these exported variables are mostly [[Runtime_environment|Runtime variables]], requiring [[ScriptClip]] etc to read them.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFSAR_NUM, FFSAR_DEN, FFSAR'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playback aspect ratio specified by the container. &amp;lt;tt&amp;gt;FFSAR_NUM&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;FFSAR_DEN&amp;lt;/tt&amp;gt; make up the rational number of the ratio; &amp;lt;tt&amp;gt;FFSAR&amp;lt;/tt&amp;gt; is only provided for convenience and may not be set in case it cannot be calculated (i.e. if &amp;lt;tt&amp;gt;FFSAR_DEN&amp;lt;/tt&amp;gt; is zero).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCROP_LEFT, FFCROP_RIGHT, FFCROP_TOP, FFCROP_BOTTOM'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The on-playback cropping specified by the container.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCOLOR_SPACE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The colorimetry the input claims to be using. Only meaningful for YUV inputs. The source for this variable is a metadata flag that can arbitrarily be set or manipulated at will by incompetent users or buggy programs without changing the actual video content, so blindly trusting its correctness is not recommended.&lt;br /&gt;
&lt;br /&gt;
The value is exported as a cryptic numerical constant that matches the values in the MPEG-2 specification. You can find the gory details in the FFMS2 API documentation, but the important ones are:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 0: RGB (usually indicates the stream isn't actually YUV, but RGB flagged as YUV)&lt;br /&gt;
 1: ITU-R Rec.709&lt;br /&gt;
 2: Unknown or unspecified&lt;br /&gt;
 5 and 6: ITU-R Rec.601&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCOLOR_RANGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The color range the input video claims to be using. Much like &amp;lt;tt&amp;gt;FFCOLOR_SPACE&amp;lt;/tt&amp;gt;, the source for this variable is a metadata flag that can freely be set to arbitrary values, so trusting it blindly might not be a good idea.&lt;br /&gt;
&lt;br /&gt;
Note that using &amp;lt;tt&amp;gt;SWScale&amp;lt;/tt&amp;gt;() or the width/height/colorspace parameters to '''FFVideoSource''' may under some circumstances change the output color range.&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 0: Unknown/unspecified&lt;br /&gt;
 1: Limited range (usually 16-235)&lt;br /&gt;
 2: Full range (0-255)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFPICT_TYPE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The picture type of the most recently requested frame as the ASCII number of the character listed below. Use &amp;lt;tt&amp;gt;Chr&amp;lt;/tt&amp;gt;() to convert it to an actual letter in AviSynth. Use {{FuncArg|after_frame}}&amp;lt;tt&amp;gt;=true&amp;lt;/tt&amp;gt; in AviSynth's conditional scripting for proper results. Only set when {{FuncArg|rffmode}}&amp;lt;tt&amp;gt;=0&amp;lt;/tt&amp;gt;. The FFmpeg source definition of the characters:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 I: Intra&lt;br /&gt;
 P: Predicted&lt;br /&gt;
 B: Bi-dir predicted&lt;br /&gt;
 S: S(GMC)-VOP MPEG4&lt;br /&gt;
 i: Switching Intra&lt;br /&gt;
 p: Switching Predicted&lt;br /&gt;
 b: FF_BI_TYPE (no good explanation available)&lt;br /&gt;
 ?: Unknown&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFVFR_TIME'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actual time of the source frame in milliseconds. Only set when no type of CFR conversion is being done ({{FuncArg|rffmode}} and {{FuncArg|fpsnum}} left at their defaults).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCHANNEL_LAYOUT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The audio channel layout of the audio stream. This is exported as a very cryptic integer that is constructed in the same way as the &amp;lt;tt&amp;gt;dwChannelMask&amp;lt;/tt&amp;gt; property of the Windows &amp;lt;tt&amp;gt;WAVEFORMATEXTENSIBLE&amp;lt;/tt&amp;gt; struct. If you don't know what a &amp;lt;tt&amp;gt;WAVEFORMATEXTENSIBLE&amp;lt;/tt&amp;gt; is or what the &amp;lt;tt&amp;gt;dwChannelMask&amp;lt;/tt&amp;gt; does, don't worry about it.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFVAR_PREFIX'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The variable prefix of the last called FFMS source function. Note that this is a global variable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==C Plugin==&lt;br /&gt;
The C plugin supports the additional [[planar]] colorspaces in AviSynth 2.6. Also starting with &amp;lt;tt&amp;gt;r940+64&amp;lt;/tt&amp;gt; it removes the Matroska demuxer too. This means that the *only* demuxer this build of FFMS2 uses is LAVF. The test this time is whether VP8 (and maybe VP9) bearing WebM files can be used correctly with the LAVF demuxer.&amp;lt;br&amp;gt;&lt;br /&gt;
*'''Discussion''' - [https://forum.doom9.org/showthread.php?t=175173 Doom9 Thread]&lt;br /&gt;
&lt;br /&gt;
*'''Download''' - [https://www.mediafire.com/file/oicbdrc4malqzzn/ffms2_r1327%2B119-avs%2Bvsp.7z FFMS2 C-plugin 1327+119]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Note:'''&amp;lt;/span&amp;gt; C-plugins must be loaded using [[Plugins#LoadCPlugin|LoadCPlugin]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
*[https://forum.doom9.org/showthread.php?t=127037 Doom9 Forum] - FFmpegSource discussion.&lt;br /&gt;
*[https://github.com/FFMS/ffms2 GitHub] - Source code repository.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Source_Filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/VapourSource</id>
		<title>VapourSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/VapourSource"/>
				<updated>2018-08-27T23:53:03Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Source_filters|Plugins}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/Chikuzen}}, [https://github.com/DJATOM DJATOM]&lt;br /&gt;
| 0.1.1 &lt;br /&gt;
| [https://github.com/DJATOM/VapourSource/releases Releases]&lt;br /&gt;
| Source filters &lt;br /&gt;
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=168339 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;tt&amp;gt;VapourSource&amp;lt;/tt&amp;gt; is a VapourSynth script reader for AviSynth 2.6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [http://sourceforge.net/projects/avisynth2/ AviSynth 2.6.0] or greater&lt;br /&gt;
* [http://www.vapoursynth.com/ VapourSynth] R32 or greater&lt;br /&gt;
* [[SSE2]] capable CPU&lt;br /&gt;
* [http://www.microsoft.com/en-us/download/details.aspx?id=51682 Microsoft Visual C++ 2015 Redistributable Package]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Supported Formats ==&lt;br /&gt;
&amp;lt;tt&amp;gt;VapourSource&amp;lt;/tt&amp;gt; supports the following formats:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;400px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| AviSynth colorspace&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| [http://www.vapoursynth.com/doc/pythonreference.html#format-constants VapourSynth colorspace]&lt;br /&gt;
|-&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|RGB24&lt;br /&gt;
|-&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|COMPATBGR32 &lt;br /&gt;
|-&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|COMPATYUY2&lt;br /&gt;
|-&lt;br /&gt;
|[[Y8]]*&lt;br /&gt;
|GRAY8/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV12]]*&lt;br /&gt;
|YUV420P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV16]]*&lt;br /&gt;
|YUV422P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV24]]*&lt;br /&gt;
|YUV444P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV411]]&lt;br /&gt;
|YUV411P8&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Only constant format/resolution/framerate clips are supported.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| *Y8/YV12/16/24 allow bit depths &amp;gt;8 using the [[Stack16]] format.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== VSImport===&lt;br /&gt;
Imports an external VapourSynth script (*.vpy).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:{{Template:FuncDef|VSImport (''string'' source, ''bool'' &amp;quot;stacked&amp;quot;, ''int'' &amp;quot;index&amp;quot;, ''int'' &amp;quot;prefetch&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::Path to VapourSynth script (*.vpy); path can be omitted if the script is in the same folder as the AviSynth script (*.avs).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::If this is set to true, MSB/LSB will be separated and be stacked vertically ([[Stack16]]).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|index|int|0}}&lt;br /&gt;
:::Index of input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|prefetch|int|0}}&lt;br /&gt;
:::Request given amount of frames in advance (MT behaviour). If you have 4 physical cores, set it to 4. If Avisynth part of script is too easy in comparison with VS one, It might be good idea to set prefetch to 5. Anyway you can tune it and seek for better performance.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
------------------------------------&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== VSEval===&lt;br /&gt;
Evaluates a VapourSynth script inside an AviSynth script, no need for an external script.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:{{Template:FuncDef|VSEval (''string'' source, ''bool'' &amp;quot;stacked&amp;quot;, ''int'' &amp;quot;index&amp;quot;, ''int'' &amp;quot;prefetch&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::VapourSynth script to be evaluated.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::If this is set to true, MSB/LSB will be separated and be stacked vertically.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|index|int|0}}&lt;br /&gt;
:::Index of input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|prefetch|int|0}}&lt;br /&gt;
:::Request given amount of frames in advance (MT behaviour). If you have 4 physical cores, set it to 4. If Avisynth part of script is too easy in comparison with VS one, It might be good idea to set prefetch to 5. Anyway you can tune it and seek for better performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
VSImport:&lt;br /&gt;
 VSImport(&amp;quot;script.vpy&amp;quot;, stacked=false, index=0, prefetch=4)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VSEval:&lt;br /&gt;
 script = &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 import vapoursynth as vs&lt;br /&gt;
 bc = vs.get_core().std.BlankClip&lt;br /&gt;
 clip0 = bc(format=vs.YUV422P8, color=[0, 128, 128])&lt;br /&gt;
 clip1 = bc(format=vs.YUV422P8, color=[255, 128, 128])&lt;br /&gt;
 clip0.set_output(index=0)&lt;br /&gt;
 clip1.set_output(index=1)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 VSEval(source=script, index=1, prefetch=4)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version      Date            Changes&amp;lt;br&amp;gt;&lt;br /&gt;
 0.1.1        07/19/2018      - add prefetch parameter.&lt;br /&gt;
 0.0.4        05/07/2016      - VS2010 to VS2015&lt;br /&gt;
                              - update avisynth.h, VapourSynth.h and VSScript.h&lt;br /&gt;
                              - add 64bit binary&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.2        08/06/2013      - fix vertical flip issue on COMPATBGR32.&lt;br /&gt;
                              - allow to input a RGB24 clip.&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.1        07/31/2013      - initial release&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Archived Downloads ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;800px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;100px&amp;quot;| Version&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Download&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Source code&lt;br /&gt;
!!width=&amp;quot;250px&amp;quot;| Mirror&lt;br /&gt;
|-&lt;br /&gt;
!v0.2.0&lt;br /&gt;
|[http://web.archive.org/web/20160302122938/https://filetea.me/t1ss3Zv3rqsSqSzOXX9tbp5Ww/dl VapourSource-0.0.2.zip]&lt;br /&gt;
|[http://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]&lt;br /&gt;
|[http://www.mediafire.com/download/nrk3k4xakkwujqx/VapourSource-0.0.2.zip VapourSource-0.0.2.zip] -- [http://web.archive.org/web/20160302140330/https://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=168339 Doom9 Forum] - VapourSource discussion.&lt;br /&gt;
*[http://github.com/chikuzen/VapourSource/ GitHub] - Source code repository. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Source_Filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/VapourSource</id>
		<title>VapourSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/VapourSource"/>
				<updated>2018-08-03T17:12:56Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Source_filters|Plugins}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/Chikuzen}}, [https://github.com/DJATOM/VapourSource/releases DJATOM]&lt;br /&gt;
| 0.1.1 &lt;br /&gt;
| [https://github.com/DJATOM/VapourSource/releases Releases]&lt;br /&gt;
| Source filters &lt;br /&gt;
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=168339 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;tt&amp;gt;VapourSource&amp;lt;/tt&amp;gt; is a VapourSynth script reader for AviSynth 2.6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [http://sourceforge.net/projects/avisynth2/ AviSynth 2.6.0] or greater&lt;br /&gt;
* [http://www.vapoursynth.com/ VapourSynth] R32 or greater&lt;br /&gt;
* [[SSE2]] capable CPU&lt;br /&gt;
* [http://www.microsoft.com/en-us/download/details.aspx?id=51682 Microsoft Visual C++ 2015 Redistributable Package]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Supported Formats ==&lt;br /&gt;
&amp;lt;tt&amp;gt;VapourSource&amp;lt;/tt&amp;gt; supports the following formats:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;400px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| AviSynth colorspace&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| [http://www.vapoursynth.com/doc/pythonreference.html#format-constants VapourSynth colorspace]&lt;br /&gt;
|-&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|RGB24&lt;br /&gt;
|-&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|COMPATBGR32 &lt;br /&gt;
|-&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|COMPATYUY2&lt;br /&gt;
|-&lt;br /&gt;
|[[Y8]]*&lt;br /&gt;
|GRAY8/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV12]]*&lt;br /&gt;
|YUV420P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV16]]*&lt;br /&gt;
|YUV422P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV24]]*&lt;br /&gt;
|YUV444P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV411]]&lt;br /&gt;
|YUV411P8&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Only constant format/resolution/framerate clips are supported.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| *Y8/YV12/16/24 allow bit depths &amp;gt;8 using the [[Stack16]] format.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== VSImport===&lt;br /&gt;
Imports an external VapourSynth script (*.vpy).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:{{Template:FuncDef|VSImport (''string'' source, ''bool'' &amp;quot;stacked&amp;quot;, ''int'' &amp;quot;index&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::Path to VapourSynth script (*.vpy); path can be omitted if the script is in the same folder as the AviSynth script (*.avs).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::If this is set to true, MSB/LSB will be separated and be stacked vertically ([[Stack16]]).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|index|int|0}}&lt;br /&gt;
:::Index of input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
------------------------------------&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== VSEval===&lt;br /&gt;
Evaluates a VapourSynth script inside an AviSynth script, no need for an external script.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:{{Template:FuncDef|VSEval (''string'' source, ''bool'' &amp;quot;stacked&amp;quot;, ''int'' &amp;quot;index&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::VapourSynth script to be evaluated.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::If this is set to true, MSB/LSB will be separated and be stacked vertically.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|index|int|0}}&lt;br /&gt;
:::Index of input clip.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
VSImport:&lt;br /&gt;
 VSImport(&amp;quot;script.vpy&amp;quot;, stacked=false, index=0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VSEval:&lt;br /&gt;
 script = &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 import vapoursynth as vs&lt;br /&gt;
 bc = vs.get_core().std.BlankClip&lt;br /&gt;
 clip0 = bc(format=vs.YUV422P8, color=[0, 128, 128])&lt;br /&gt;
 clip1 = bc(format=vs.YUV422P8, color=[255, 128, 128])&lt;br /&gt;
 clip0.set_output(index=0)&lt;br /&gt;
 clip1.set_output(index=1)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 VSEval(source=script, index=1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version      Date            Changes&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.4        05/07/2016      - VS2010 to VS2015&lt;br /&gt;
                              - update avisynth.h, VapourSynth.h and VSScript.h&lt;br /&gt;
                              - add 64bit binary&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.2        08/06/2013      - fix vertical flip issue on COMPATBGR32.&lt;br /&gt;
                              - allow to input a RGB24 clip.&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.1        07/31/2013      - initial release&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Archived Downloads ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;800px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;100px&amp;quot;| Version&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Download&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Source code&lt;br /&gt;
!!width=&amp;quot;250px&amp;quot;| Mirror&lt;br /&gt;
|-&lt;br /&gt;
!v0.2.0&lt;br /&gt;
|[http://web.archive.org/web/20160302122938/https://filetea.me/t1ss3Zv3rqsSqSzOXX9tbp5Ww/dl VapourSource-0.0.2.zip]&lt;br /&gt;
|[http://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]&lt;br /&gt;
|[http://www.mediafire.com/download/nrk3k4xakkwujqx/VapourSource-0.0.2.zip VapourSource-0.0.2.zip] -- [http://web.archive.org/web/20160302140330/https://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=168339 Doom9 Forum] - VapourSource discussion.&lt;br /&gt;
*[http://github.com/chikuzen/VapourSource/ GitHub] - Source code repository. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Source_Filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/VapourSource</id>
		<title>VapourSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/VapourSource"/>
				<updated>2018-08-03T17:12:28Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Source_filters|Plugins}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/Chikuzen}}, [https://github.com/DJATOM/VapourSource/releases DJATOM]&lt;br /&gt;
| 0.1.1 &lt;br /&gt;
| [http://github.com/chikuzen/VapourSource/releases/download/0.0.4/VapourSource-0.0.4.zip VapourSource-0.0.4.zip]&lt;br /&gt;
| Source filters &lt;br /&gt;
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=168339 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;tt&amp;gt;VapourSource&amp;lt;/tt&amp;gt; is a VapourSynth script reader for AviSynth 2.6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [http://sourceforge.net/projects/avisynth2/ AviSynth 2.6.0] or greater&lt;br /&gt;
* [http://www.vapoursynth.com/ VapourSynth] R32 or greater&lt;br /&gt;
* [[SSE2]] capable CPU&lt;br /&gt;
* [http://www.microsoft.com/en-us/download/details.aspx?id=51682 Microsoft Visual C++ 2015 Redistributable Package]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Supported Formats ==&lt;br /&gt;
&amp;lt;tt&amp;gt;VapourSource&amp;lt;/tt&amp;gt; supports the following formats:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;400px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| AviSynth colorspace&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| [http://www.vapoursynth.com/doc/pythonreference.html#format-constants VapourSynth colorspace]&lt;br /&gt;
|-&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|RGB24&lt;br /&gt;
|-&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|COMPATBGR32 &lt;br /&gt;
|-&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|COMPATYUY2&lt;br /&gt;
|-&lt;br /&gt;
|[[Y8]]*&lt;br /&gt;
|GRAY8/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV12]]*&lt;br /&gt;
|YUV420P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV16]]*&lt;br /&gt;
|YUV422P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV24]]*&lt;br /&gt;
|YUV444P8/9/10/16&lt;br /&gt;
|-&lt;br /&gt;
|[[YV411]]&lt;br /&gt;
|YUV411P8&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Only constant format/resolution/framerate clips are supported.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| *Y8/YV12/16/24 allow bit depths &amp;gt;8 using the [[Stack16]] format.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== VSImport===&lt;br /&gt;
Imports an external VapourSynth script (*.vpy).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:{{Template:FuncDef|VSImport (''string'' source, ''bool'' &amp;quot;stacked&amp;quot;, ''int'' &amp;quot;index&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::Path to VapourSynth script (*.vpy); path can be omitted if the script is in the same folder as the AviSynth script (*.avs).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::If this is set to true, MSB/LSB will be separated and be stacked vertically ([[Stack16]]).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|index|int|0}}&lt;br /&gt;
:::Index of input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
------------------------------------&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== VSEval===&lt;br /&gt;
Evaluates a VapourSynth script inside an AviSynth script, no need for an external script.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:{{Template:FuncDef|VSEval (''string'' source, ''bool'' &amp;quot;stacked&amp;quot;, ''int'' &amp;quot;index&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::VapourSynth script to be evaluated.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::If this is set to true, MSB/LSB will be separated and be stacked vertically.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|index|int|0}}&lt;br /&gt;
:::Index of input clip.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
VSImport:&lt;br /&gt;
 VSImport(&amp;quot;script.vpy&amp;quot;, stacked=false, index=0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VSEval:&lt;br /&gt;
 script = &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 import vapoursynth as vs&lt;br /&gt;
 bc = vs.get_core().std.BlankClip&lt;br /&gt;
 clip0 = bc(format=vs.YUV422P8, color=[0, 128, 128])&lt;br /&gt;
 clip1 = bc(format=vs.YUV422P8, color=[255, 128, 128])&lt;br /&gt;
 clip0.set_output(index=0)&lt;br /&gt;
 clip1.set_output(index=1)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 VSEval(source=script, index=1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version      Date            Changes&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.4        05/07/2016      - VS2010 to VS2015&lt;br /&gt;
                              - update avisynth.h, VapourSynth.h and VSScript.h&lt;br /&gt;
                              - add 64bit binary&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.2        08/06/2013      - fix vertical flip issue on COMPATBGR32.&lt;br /&gt;
                              - allow to input a RGB24 clip.&amp;lt;br&amp;gt;&lt;br /&gt;
 0.0.1        07/31/2013      - initial release&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Archived Downloads ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;800px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;100px&amp;quot;| Version&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Download&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Source code&lt;br /&gt;
!!width=&amp;quot;250px&amp;quot;| Mirror&lt;br /&gt;
|-&lt;br /&gt;
!v0.2.0&lt;br /&gt;
|[http://web.archive.org/web/20160302122938/https://filetea.me/t1ss3Zv3rqsSqSzOXX9tbp5Ww/dl VapourSource-0.0.2.zip]&lt;br /&gt;
|[http://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]&lt;br /&gt;
|[http://www.mediafire.com/download/nrk3k4xakkwujqx/VapourSource-0.0.2.zip VapourSource-0.0.2.zip] -- [http://web.archive.org/web/20160302140330/https://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=168339 Doom9 Forum] - VapourSource discussion.&lt;br /&gt;
*[http://github.com/chikuzen/VapourSource/ GitHub] - Source code repository. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Source_Filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/AviSynth%2B_x64_plugins</id>
		<title>AviSynth+ x64 plugins</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/AviSynth%2B_x64_plugins"/>
				<updated>2018-08-03T17:00:02Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: update versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:82em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
{{AvsPlusHeader}}&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
All listed plugins are the latest version unless stated otherwise.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;height:100px; width:100%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=12%| Category&lt;br /&gt;
!width=12%| Filter&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot; width=8%| Version&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot; width=15%| Download&lt;br /&gt;
!Comments&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[AdaptiveMedian]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus]&lt;br /&gt;
| &amp;quot;Median&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[[AddGrainC]]'''&lt;br /&gt;
|1.7.1&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z AddGrainC-1.7.1.7z]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012. AddGrain v1.7.0 compiled with Intel C++ Compiler XE 14: [https://www.dropbox.com/s/y5ymzmgfzddw0pn/AddGrainC_1.7.0_x64.zip?dl=1 AddGrainC_1.7.0_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=167573 AutoAdjust]'''&lt;br /&gt;
|2.6&lt;br /&gt;
|[http://latoninf.free.fr/d9/AA/AutoAdjust-v2.60.7z AutoAdjust-v2.60.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Crop&lt;br /&gt;
|'''[[AutoCrop]]'''&lt;br /&gt;
|1.2&lt;br /&gt;
|[https://www.mediafire.com/download/mzddfmjjdyx/autocrop_3-14-2010.rar autocrop_3-14-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|[[AutoOverlay]]&lt;br /&gt;
|0.2.1&lt;br /&gt;
|[https://github.com/introspected/AutoOverlay/releases Releases]&lt;br /&gt;
| [https://github.com/introspected introspected]&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[http://rationalqm.us/autoyuy2/autoyuy2.html AutoYUY2]'''&lt;br /&gt;
|4.0.0&lt;br /&gt;
|[https://github.com/jpsdr/AutoYUY2/releases Releases]&lt;br /&gt;
|Compiled by jpsdr.&lt;br /&gt;
|-&lt;br /&gt;
|Averaging&lt;br /&gt;
|'''[[Average]]'''&lt;br /&gt;
|0.94&lt;br /&gt;
|[https://github.com/pinterf/Average/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=172698 AviSynthShader]'''&lt;br /&gt;
|1.6.5&lt;br /&gt;
|[https://github.com/mysteryx93/AviSynthShader/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/Format Conversion&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=173986 avsresize]'''&lt;br /&gt;
|r1d&lt;br /&gt;
|[https://www.dropbox.com/s/3ocrd217pprrvmn/avsresize-r1d.7z?dl=0 avsresize-r1d.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=164407 AVSTP]'''&lt;br /&gt;
|1.0.3&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/avstp-1.0.3.zip avstp-1.0.3.zip]&lt;br /&gt;
|v1.0.1: [http://www.dropbox.com/s/59urdlk19pz6l2p/avstp-1.0.1_x64.zip?dl=1 avstp-1.0.1_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[[aWarpSharp2]]'''&lt;br /&gt;
|2.0.1&lt;br /&gt;
|[https://github.com/jpsdr/aWarpSharpMT/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=135855 BassAudio]'''&lt;br /&gt;
|2.4.10&lt;br /&gt;
|[https://www.sendspace.com/file/vwodyl BassAudio2410.7z] - [https://www.mediafire.com/download/0ydinsk5br3imgr/BassAudioSource24_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu - [https://www.un4seen.com/download.php?bass24 BASS audio library for Win64]&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Bifrost]]'''&lt;br /&gt;
|2.2&lt;br /&gt;
|[https://github.com/dubhater/vapoursynth-bifrost/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1721946#post1721946 l33tmeatwad].&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Checkmate]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/checkmate/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[https://github.com/tp7/CLExpr CLExpr]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[https://github.com/tp7/CLExpr/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Denoisers&lt;br /&gt;
|'''[[Cnr2]]&lt;br /&gt;
|2.6.1_avs26 &lt;br /&gt;
|[https://www.dropbox.com/s/9fiab3s5exi43h2/cnr2_v261-avs26.zip?dl=1 cnr2_v261-avs26.zip]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1771784#post1771784 Chikuzen].&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/realfinder/CombMask/releases CombMask]'''&lt;br /&gt;
|1.1.1s&lt;br /&gt;
|[https://github.com/realfinder/CombMask/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/sekrit-twc/EdgeFixer ContinuityFixer]'''&lt;br /&gt;
|r1&lt;br /&gt;
|[https://github.com/sekrit-twc/EdgeFixer/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1721946#post1721946 l33tmeatwad].&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|[https://github.com/DJATOM/CullResize CullResize]&lt;br /&gt;
|0.1&lt;br /&gt;
|[https://github.com/DJATOM/CullResize/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[DeBarrel]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Barrel&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[[DctFilter|DCTFilter]]'''&lt;br /&gt;
|0.5.0&lt;br /&gt;
|[https://github.com/chikuzen/DCTFilter/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[DeBlock]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/Deblock/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Decomb]]'''&lt;br /&gt;
|5.2.4&lt;br /&gt;
|[https://www.dropbox.com/s/wdnkly9xun1skj4/decomb_5.2.4_x64.zip?dl=1 decomb_5.2.4_x64.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14&lt;br /&gt;
|-&lt;br /&gt;
|Degrainer&lt;br /&gt;
|'''[[DeGrainMedian]]'''&lt;br /&gt;
|0.8.2&lt;br /&gt;
|[http://members.optusnet.com.au/squid_80/DeGrainMedian64.zip DeGrainMedian64.zip] - [http://members.optusnet.com.au/squid_80/sources/degrainmediansrc.zip source]&lt;br /&gt;
|Compiled by squid_80&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/DeJitter/DeJitter.htm DeJitter]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/DeJitter/DeJitter64.7z DeJitter64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Logo removal&lt;br /&gt;
|'''[https://github.com/makiuchi-d/delogo-avisynth Delogo]'''&lt;br /&gt;
|0.05a&lt;br /&gt;
|[https://github.com/makiuchi-d/delogo-avisynth/releases Releases]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeNoise]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;minvar&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeSaltPepper]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;SaltPepper&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/modPlus/Veed.html DeVeed]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;Veed&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[dfttest]]'''&lt;br /&gt;
|1.9.4.2&lt;br /&gt;
|[https://github.com/DJATOM/dfttest/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=170237 DGDecIM] '''&lt;br /&gt;
|b50&lt;br /&gt;
|[http://rationalqm.us/dgdecim/dgdecim_b50.zip dgdecim_b50.zip]&lt;br /&gt;
|Requires license from DGDecNV&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://rationalqm.us/dgdecnv/dgdecnv.html DGDecNV]'''&lt;br /&gt;
|205x&lt;br /&gt;
|&lt;br /&gt;
|Requires license.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://rationalqm.us/dgmpgdec/dgmpgdec.html DGMPGDec]'''&lt;br /&gt;
|1.5.8&lt;br /&gt;
|[https://www.mediafire.com/download/c0wmemj5jam/DGDecode_3-19-2010.rar DGDecode_3-19-2010.rar]&lt;br /&gt;
|Compiled by Joshy D, some IDCT modes are missing.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[Dither]]'''&lt;br /&gt;
|1.27.2&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/dither-1.27.2.zip dither-1.27.2.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]'''&lt;br /&gt;
|2.0.0.13&lt;br /&gt;
|[https://web.archive.org/web/20160224130625/https://filetea.me/t1siAfoCvW5Sy2d2BbRx2WBjg/dl avss_x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[EEDI2]]'''&lt;br /&gt;
|0.9.2&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 EEDI2_092_64.7z] [https://web.archive.org/web/20160908025751/http://www.iol.ie/~schubert/avs/EEDI2_092_64.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Compiled by Joshy D: [https://www.mediafire.com/download/znmyzdo2ize/EEDI2_4-10-2010.rar EEDI2_4-10-2010.rar]&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[eedi3|EEDI3]]'''&lt;br /&gt;
|0.9.2.3&lt;br /&gt;
|[https://github.com/pinterf/EEDI3/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. See [https://forum.doom9.org/showthread.php?t=172414 discussion].&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/EffectsPlus/EffectsPlus_index.html EffectsPlus]'''&lt;br /&gt;
|25 June 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/EffectsPlus/EffectsPlus.7z EffectsPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://forum.doom9.net/showthread.php?p=1820756#post1820756 ExactDedup]'''&lt;br /&gt;
|0.05&lt;br /&gt;
|[https://www.mediafire.com/file/8184da6dp4hsdcq/ExactDeDup-0.05_20171005.zip ExactDeDup-0.05_20171005.zi]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=161411 f3kdb]'''&lt;br /&gt;
|1.5.1&lt;br /&gt;
|[http://www.nmm-hd.org/upload/get~arIyHEnxIS8/flash3kyuu_deband_1.5.1_x64.7z flash3kyuu_deband_1.5.1_x64.7z]&lt;br /&gt;
|v2.0 prerelease (b98d6bc x86/x64): [https://web.archive.org/web/20150503191218/https://www.nmm-hd.org/upload/get~NfiLlgo1pX8/f3kdb-b98d6bc.rar f3kdb-b98d6bc.rar] - compiled with Intel C++ Compiler 2013. [https://web.archive.org/web/20160414135351/http://www.nmm-hd.org/upload/get~jW8DJGBDJro/f3kdb-rev410.7z f3kdb-rev410.7z] - compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[https://github.com/chikuzen/FCBI FCBI]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[https://github.com/chikuzen/FCBI/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[FFmpegSource]]'''&lt;br /&gt;
|2.23.1&lt;br /&gt;
|[https://github.com/FFMS/ffms2/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]'''&lt;br /&gt;
|2.5&lt;br /&gt;
|[https://github.com/pinterf/fft3dfilter/releases Releases]&lt;br /&gt;
|10-16bits/float support. Compiled with VS2015 Update 3. Needs the [http://www.fftw.org/install/windows.html 64-bit &amp;lt;tt&amp;gt;libfftw3f-3.dll&amp;lt;/tt&amp;gt;] to be in your System32 directory.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=89941 FFT3DGPU]'''&lt;br /&gt;
|0.8.2&lt;br /&gt;
|[https://www.mediafire.com/download/2chnt1jkwwm/FFT3DGPU_3-15-2010.rar FFT3DGPU_3-15-2010.rar]&lt;br /&gt;
|The HLSL (shader program) file is edited from the original to adhere to pixel shader 3.0 syntax rules. Please make sure to place the correct file in the same directory as the 64bit plugin. Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[FFTQuiver]]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
| &amp;quot;F1Quiver&amp;quot; &amp;amp; &amp;quot;F2Quiver&amp;quot; functions in FQPlus&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[FieldHint]]'''&lt;br /&gt;
|0.11 &lt;br /&gt;
|[https://www.mediafire.com/download/ynkidzz4joz/fieldhint.rar fieldhint.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[FluxSmooth]]'''&lt;br /&gt;
|2nd December 2010&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=11813&amp;amp;d=1291250198 FluxSmooth SSE DLLs.7z]&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?t=158245 Discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/FQPlus/F2QSharp.html F2QSharp]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174161 FQPlus]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[https://github.com/mysteryx93/FrameRateConverter FrameRateConverter]'''&lt;br /&gt;
|1.2.1&lt;br /&gt;
|[https://github.com/mysteryx93/FrameRateConverter/releases Releases]&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?t=174793 Discussion thread].&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174520 FredAverage]'''&lt;br /&gt;
|0.01&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 FredAverage64_0.01.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=169651 FRIMSource]'''&lt;br /&gt;
|1.27&lt;br /&gt;
|[https://drive.google.com/file/d/0BymRNDHq74DEbUVsQ0NwSGJqdUU FRIM_x64_version_1.27.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[[Fusion]]'''&lt;br /&gt;
|5th March 2013&lt;br /&gt;
|[http://horman.net/fusionx64.zip fusionx64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=173695 GamMac]'''&lt;br /&gt;
|1.10&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?p=1774281#post1774281 GamMac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[GBlur]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;GBlur&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[[GradFun2db]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[https://www.mediafire.com/download/w0trndmni3j/gradfun2db_3-29-2010.rar gradfun2db_3-29-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Debugging&lt;br /&gt;
|'''[[Grid]]'''&lt;br /&gt;
|21 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/Grid/Grid64.7z Grid64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[[GRunT]]'''&lt;br /&gt;
|1.0.1a&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=15400&amp;amp;d=1463511496 grunt-x64.rar]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1767990#post1767990 yesmanitsbearman]&lt;br /&gt;
|-&lt;br /&gt;
|Uncategorized &lt;br /&gt;
|'''[https://github.com/ladipro/avisynth_filters/wiki/HealDeadPixels HealDeadPixels]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://github.com/ladipro/avisynth_filters/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/modPlus/MBlur.html HBlur]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRCore]'''&lt;br /&gt;
|1.1.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRCore.7z HDRCore.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRMatrix]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRMatrix.7z HDRMatrix.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRNoise]'''&lt;br /&gt;
|1.2.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRNoise.7z HDRNoise.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener &lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRSharp]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRSharp.7z HDRSharp.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[http://avisynth.nl/index.php/HistogramAdjust HistogramAdjust]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;TweakHist&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?p=1781204#post1781204 hqdn3dY]'''&lt;br /&gt;
|2016-02-13&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=15589&amp;amp;d=1474456943 Hqdn3dY.7z]&lt;br /&gt;
|Modified by Rean.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[IT|IT_YV12]]'''&lt;br /&gt;
|0103_width8K&lt;br /&gt;
|[https://www.dropbox.com/s/002p6yed7dzi8f3/IT_YV12_0103_width8K.zip?dl=1 IT_YV12_0103_width8K.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[https://web.archive.org/web/20090220115721/http://members.at.infoseek.co.jp/kiraru2002/alpha_version.html Its]'''&lt;br /&gt;
|0.8.6&lt;br /&gt;
|&lt;br /&gt;
|Compiled by putin999&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[[JincResize]]'''&lt;br /&gt;
|r44&lt;br /&gt;
|[https://www.dropbox.com/s/pj37t6ackhbs42k/jincresize_r44.zip?dl=1 jincresize_r44.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://github.com/ladipro/avisynth_filters/wiki/KelvinColorShift KelvinColorShift]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://github.com/ladipro/avisynth_filters/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=171379 KNLMeansCL]'''&lt;br /&gt;
|1.1.1&lt;br /&gt;
|[https://github.com/Khanattila/KNLMeansCL/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[LSMASHSource]]'''&lt;br /&gt;
|r9xx&lt;br /&gt;
|{{Plugin/LSMASHSource}}&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''MaskCrop'''&lt;br /&gt;
|0.1.2&lt;br /&gt;
|[https://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=1 MaskCrop0.1.2.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[MaskTools2]]'''&lt;br /&gt;
|2.2.17&lt;br /&gt;
|[https://github.com/pinterf/masktools/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2017.&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[MedianBlur2]]'''&lt;br /&gt;
|0.94&lt;br /&gt;
|[https://github.com/tp7/MedianBlur2/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/docs/english/externalfilters/mipsmooth.htm MipSmooth]'''&lt;br /&gt;
|1.1.2&lt;br /&gt;
|[http://members.optusnet.com.au/squid_80/MipSmooth64.zip MipSmooth64.zip] - [http://members.optusnet.com.au/squid_80/sources/mipsmooth64src.zip source]&lt;br /&gt;
|Compiled by squid_80 - [https://forum.doom9.org/showthread.php?t=64940 discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174162 modPlus]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[MosquitoNR]]'''&lt;br /&gt;
|0.10 &lt;br /&gt;
|[https://www.dropbox.com/s/0dgrruxne80izus/MosquitoNR_0.10_x64.zip?dl=1 MosquitoNR_0.10_x64.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174163 movePlus]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://github.com/chikuzen/MPEG2DecPlus MPEG2DecPlus]'''&lt;br /&gt;
|0.1.1&lt;br /&gt;
|[http://kuroko.fushizen.eu/bin/mpeg2decplus-0.1.1.zip mpeg2decplus-0.1.1.zip] [https://web.archive.org/web/20161102003551/https://kuroko.fushizen.eu/bin/mpeg2decplus-0.1.1.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[[MSharpen]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/msharpen/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[[MVTools]]'''&lt;br /&gt;
|2.7.31&lt;br /&gt;
|[https://github.com/pinterf/mvtools/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[[NicAudio]]'''&lt;br /&gt;
|2.0.6&lt;br /&gt;
|[https://www.dropbox.com/s/lroqakipuoqnzby/NicAudio2.0.5_x64.zip?dl=1 NicAudio2.0.5_x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/NirMalam/NirMalam.html NirMalam]'''&lt;br /&gt;
|17 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/NirMalam/NirMalam64.7z NirMalam64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[nnedi3]]'''&lt;br /&gt;
|0.9.4.51&lt;br /&gt;
|[https://github.com/jpsdr/NNEDI3/releases Releases]&lt;br /&gt;
|Compiled by jpsdr, [https://forum.doom9.org/showthread.php?t=170083 discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://github.com/chikuzen/PlanarTools PlanarTools]'''&lt;br /&gt;
|0.3.0&lt;br /&gt;
|[https://github.com/chikuzen/PlanarTools/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[[PointSize]]'''&lt;br /&gt;
|0.2&lt;br /&gt;
|[https://github.com/Orum/PointSize/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[RawSource26]]'''&lt;br /&gt;
|20160814&lt;br /&gt;
|[https://github.com/chikuzen/RawSource_2.6x/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/chikuzen/ReduceFlicker/tree/master/avisynth ReduceFlicker]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[https://github.com/chikuzen/ReduceFlicker/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[Reformer]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Reform&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Range Processing&lt;br /&gt;
|'''[[RemapFrames]]'''&lt;br /&gt;
|0.4.1-avs26&lt;br /&gt;
|[https://www.dropbox.com/s/6830ri3btc5crfp/RemapFrames-0.4.1-avs26.zip?dl=1 RemapFrames-0.4.1-avs26.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[http://svn.int64.org/viewvc/int64/resamplehq/doc/index.html ResampleHQ]'''&lt;br /&gt;
|r349&lt;br /&gt;
|[https://www.mediafire.com/download/4m31za3np4o5d24/ResampleHQ_r349_110905.7z ResampleHQ_r349_110905.7z]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1722300#post1722300 l33tmeatwad] [https://forum.doom9.org/showthread.php?p=1722117#post1722117]. Older version: [https://sourceforge.net/projects/int64/files/ResampleHQ/ResampleHQ-v6.zip/download ResampleHQ-v6.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Degrainer&lt;br /&gt;
|'''[[RgTools]]'''&lt;br /&gt;
|0.97&lt;br /&gt;
|[https://github.com/pinterf/RgTools/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Borders and Cropping&lt;br /&gt;
|'''[[RoboCrop]]'''&lt;br /&gt;
|1.10&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 RoboCrop64_1.10.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Antialiasing&lt;br /&gt;
|'''[[SangNom2]]'''&lt;br /&gt;
|0.35&lt;br /&gt;
|[https://github.com/tp7/SangNom2/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[[SCXvidMask]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[https://github.com/tp7/SCXvidMask/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=154971 SmoothAdjust]'''&lt;br /&gt;
|3.2&lt;br /&gt;
|[http://latoninf.free.fr/d9/SA/SmoothAdjust-v3.20.7z SmoothAdjust-v3.20.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deblocking&lt;br /&gt;
|'''[[SmoothD2]]'''&lt;br /&gt;
|1.0.a3&lt;br /&gt;
|[https://www.dropbox.com/s/ui8chlbzopuqs5a/SmoothD2-a3_x64.zip?dl=1 SmoothD2-a3_x64.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[Spinner]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Turn&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[https://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]'''&lt;br /&gt;
|4.2.0.142&lt;br /&gt;
|[http://www.svp-team.com/files/gpl/svpflow-4.2.0.142.zip svpflow-4.2.0.142.zip]&lt;br /&gt;
|More information [https://forum.doom9.org/showpost.php?p=1722352&amp;amp;postcount=266 here].&lt;br /&gt;
|-&lt;br /&gt;
|Edges&lt;br /&gt;
|'''[[TCannyMod]]'''&lt;br /&gt;
|1.3.0 &lt;br /&gt;
|[https://github.com/chikuzen/TCannyMod/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/tp7/tcolormask TColorMask]'''&lt;br /&gt;
|1.2&lt;br /&gt;
|[https://github.com/tp7/tcolormask/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[TComb]]'''&lt;br /&gt;
|2.0&lt;br /&gt;
|[https://github.com/Elegant996/TComb/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''TCPDeliver'''&lt;br /&gt;
|0.2&lt;br /&gt;
|[https://github.com/DJATOM/TCPDeliver/releases Releases] &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[TDeint]]'''&lt;br /&gt;
|1.1 &lt;br /&gt;
|[https://www.mediafire.com/download/kmcztm1xzjm/TDeinterlace_3-14-2010.rar TDeinterlace_3-14-2010.rar]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Edges&lt;br /&gt;
|'''[[TEMmod]]'''&lt;br /&gt;
|0.2.1 &lt;br /&gt;
|[https://github.com/chikuzen/TEMmod/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[TIVTC]]'''&lt;br /&gt;
|v1.0.11&lt;br /&gt;
|[https://github.com/pinterf/TIVTC/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Deflicker&lt;br /&gt;
|'''[http://www.zhitenev.com/avisynth/TimeLapseDF/ TimeLapseDF]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[http://www.zhitenev.com/avisynth/TimeLapseDF/x64/TimeLapseDF64.dll TimeLapseDF64.dll]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/tp7/tmaskcleaner TMaskCleaner]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[https://github.com/tp7/tmaskcleaner/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/chikuzen/TMM2 TMM2]'''&lt;br /&gt;
|0.1.1&lt;br /&gt;
|[https://github.com/chikuzen/TMM2/releases TMM2-0.1.1.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[TNLMeans]]'''&lt;br /&gt;
|1.0.3 &lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 TNLMeans103_ICL.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Slower version compiled by Joshy D: [https://www.mediafire.com/download/y4e3zd2zodd/TNLMeans_3-20-2010.rar TNLMeans_3-20-2010.rar]&lt;br /&gt;
|-&lt;br /&gt;
|Effects&lt;br /&gt;
|'''[[TransAll]]'''&lt;br /&gt;
|13 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/TxPlus/TxPlus.7z TxPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[TTempSmooth]]'''&lt;br /&gt;
|0.9.4&lt;br /&gt;
|[https://www.mediafire.com/download/zv0jm3mtmzf/TTempSmooth_3-20-2010.rar TTempSmooth_3-20-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Effects&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174399 TxPlus]'''&lt;br /&gt;
|8 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/TxPlus/TxPlus.7z TxPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[VapourSource]]'''&lt;br /&gt;
|0.1.1&lt;br /&gt;
|[https://github.com/DJATOM/VapourSource/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/vague/vaguedenoiser.html VagueDenoiser]'''&lt;br /&gt;
|0.35.1&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 VagueDenoiser0351_64.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?p=1777949#post1777949 Groucho2004].&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[VariableBlur]]'''&lt;br /&gt;
|0.7&lt;br /&gt;
|[http://web.archive.org/web/20140420184040/http://bengal.missouri.edu/~kes25c/variableblur.zip variableblur.zip]&lt;br /&gt;
|Compiled by yo4kazu&lt;br /&gt;
|-&lt;br /&gt;
|Debugging&lt;br /&gt;
|'''[[ViewAudio]]'''&lt;br /&gt;
|0.3.01 &lt;br /&gt;
|[https://www.mediafire.com/download/iyeo4xjlm87hjwq/ViewAudio_x64.7z ViewAudio_x64.7z] - [https://www.mediafire.com/download/81kg55yaiqp1nxc/ViewAudio0301_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Vinverse]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/vinverse/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Subtitles&lt;br /&gt;
|'''[https://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ VSFilterMod]'''&lt;br /&gt;
|r90&lt;br /&gt;
|[http://yadi.sk/d/Mz3AmI4PYwjPu VSFilterMod64.dll]&lt;br /&gt;
|'''Note:''' this version outdated, r111 is the latest version.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.html WaterShed]'''&lt;br /&gt;
|23 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed64.7z Watershed64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[[Waveform]]'''&lt;br /&gt;
|0.3&lt;br /&gt;
|[https://www.dropbox.com/s/ufkw5w0nn79qzd5/waveform.zip?dl=1 waveform.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1751960#post1751960 `Orum].&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=172966 xNLMeans]'''&lt;br /&gt;
|0.03&lt;br /&gt;
|[https://www.mediafire.com/download/4stpv24pvpfclzm/xNLMeans_0.03_20160324.zip xNLMeans_0.03_20160324.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Subtitles&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?p=1839217#post1839217 xy-VSFilter]'''&lt;br /&gt;
|v3.1.0.800&lt;br /&gt;
|[https://github.com/pinterf/xy-VSFilter/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[https://github.com/chikuzen/yadifmod2 yadifmod2]'''&lt;br /&gt;
|0.0.4-1&lt;br /&gt;
|[https://github.com/chikuzen/yadifmod2/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://github.com/chikuzen/YV12To422 YV12to422]'''&lt;br /&gt;
|1.0.2&lt;br /&gt;
|[https://github.com/chikuzen/YV12To422/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. &lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=49429 Zoom]'''&lt;br /&gt;
|20140216&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=14054&amp;amp;d=1392574410 Zoom.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?p=1668648#post1668648 Paser]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
More 64-bit filters can be found in the following sites but be aware that some of the plugins listed are outdated.&lt;br /&gt;
*[https://code.google.com/p/avisynth64/wiki/PluginLinks 64-Bit plugin collection by JoshyD]  &lt;br /&gt;
*[http://members.optusnet.com.au/squid_80/ squid_80's 64-bit repository] &lt;br /&gt;
*[https://web.archive.org/web/20130922222259/http://yo4kazu.110mb.com/ 64-bit filters by yo4kazu]&lt;br /&gt;
*[https://sites.google.com/site/avisynth64bitplugin/download 64bit plugins download list by poodle]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Avisynthplus]]&lt;br /&gt;
[[Category:External_filters]]&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/FFmpegSource</id>
		<title>FFmpegSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/FFmpegSource"/>
				<updated>2018-07-11T06:53:14Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* C Plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Plugins|Source_filters}}&lt;br /&gt;
{{Filter5&lt;br /&gt;
|1={{Author/Myrsloik}}, et al.&lt;br /&gt;
|2=v2.23.1&lt;br /&gt;
|3=[https://github.com/FFMS/ffms2/releases FFMS2 v2.23.1]&lt;br /&gt;
|4=[http://forum.doom9.org/member.php?u=135430 10bithack version]&lt;br /&gt;
|5=[https://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md User Manual]&lt;br /&gt;
|6=Source filters &lt;br /&gt;
|7=[https://opensource.org/licenses/MIT MIT] / binary is [https://www.gnu.org/licenses/gpl.txt GPLv3]&lt;br /&gt;
|8=[https://forum.doom9.org/showthread.php?t=127037 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
Opens files using [https://www.ffmpeg.org/ FFmpeg] and nothing else. May be frame accurate on good days. The source is MIT licensed and can be obtained from the [https://github.com/FFMS/ffms2/ GitHub repository]. The precompiled binary is GPL3 licensed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* AviSynth 2.6.0 or [https://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&amp;lt;br&amp;gt;&lt;br /&gt;
:([[High_bit-depth_Support_with_Avisynth#Importing_High_Bit-depth_Video_into_AviSynth|10-bit formats]] are supported with the 10bithack version - see alternate download above)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
*Because of LAVF's demuxer, most raw streams (such as elementary h264 and other mpeg video streams) will fail to work properly.&lt;br /&gt;
&lt;br /&gt;
*'''FFAudioSource''' will have to remake any index implicitly created by '''FFVideoSource''' and therefore code like&lt;br /&gt;
&amp;lt;div {{ListItemContinue}} &amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;AudioDub( FFVideoSource(X), FFAudioSource(X) )&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
will require two indexing passes. Apart from the time consumed this is harmless. To work around it open the audio first: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;A = FFAudioSource(X)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;V = FFVideoSource(X)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;AudioDub(V, A)&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
('''FFmpegSource2''' does this for you with a single function call) or use '''FFIndex''', like so: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;FFIndex(X)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;AudioDub( FFVideoSource(X), FFAudioSource(X) )&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*Interlaced H.264 mostly works these days, but seeking may occasionally result in corruption.&lt;br /&gt;
*Transport Streams will not decode reliably without {{FuncArg|seekmode}} -1.&lt;br /&gt;
*Open-GOP H.264 will sometimes produces corruption when seeking.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
(''NOTE this section does not appear in the [http://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md latest documentation] and may be obsolete'')&lt;br /&gt;
* Interlaced H.264 is decoded in an odd way; each field gets its own full-height frame and the fieldrate is reported as the framerate, and furthermore one of the fields (odd or even) may &amp;quot;jump around&amp;quot;. To get the correct behavior, you can try setting {{FuncArg|fpsnum}} and {{FuncArg|fpsden}} so that the framerate is halved (may or may not work). This issue is caused by libavcodec. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
===Video===&lt;br /&gt;
&lt;br /&gt;
*AVI, MKV, MP4, FLV: Frame accurate&lt;br /&gt;
*WMV: Frame accurate(?) but avformat seems to pick keyframes relatively far away&lt;br /&gt;
*OGM: Frame accurate(?)&lt;br /&gt;
*VOB, MPG: Seeking seems to be off by one or two frames now and then&lt;br /&gt;
*M2TS, TS: Seeking seems to be off a few frames here and there&lt;br /&gt;
**As MP4 container supports MPEG2/4 video stream, when seeking is off, you can try copying the stream to MP4 container (maybe without audio.) With FFmpeg: &amp;lt;code&amp;gt;ffmpeg -i file.m2ts -c:v copy -an file.mp4&amp;lt;/code&amp;gt;. You might have to specify &amp;lt;code&amp;gt;-fflags +genpts&amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Image files: Most formats can be opened if seekmode=-1 is set, no animation support&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
&lt;br /&gt;
Seeking should be sample-accurate with most codecs in AVI, MKV, MP4 and FLV. &lt;br /&gt;
&lt;br /&gt;
Decoding linearly will almost always give correct results, and forward-seeks from trimming should result in at most a few hundred samples of corruption.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Indexing and You ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
Before '''FFMS2''' can open a file, it must be indexed first so that keyframe/sample positions are known and seeking is easily accomplished. This is done automatically when using '''FFVideoSource''' or '''FFAudioSource''', but if you want to you can invoke the indexing yourself by calling '''FFIndex''', or by running &amp;lt;tt&amp;gt;ffmsindex.exe&amp;lt;/tt&amp;gt;. By default the index is written to a file so it can be reused the next time you open the same file, but this behavior can be turned off if desired.&lt;br /&gt;
&lt;br /&gt;
If you wonder why '''FFMS2''' takes so long opening files, the indexing is the answer. If you want a progress report on the indexing, you can use the supplied &amp;lt;tt&amp;gt;ffmsindex.exe&amp;lt;/tt&amp;gt; command line program.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
=== FFmpegSource2 ===&lt;br /&gt;
{{FuncDef|FFmpegSource2(string ''source'' [, int ''vtrack'', int ''atrack'' , &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''cache'', string ''cachefile'', int ''fpsnum'', int ''fpsden'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''threads'', string ''timecodes'', int ''seekmode'', bool ''overwrite'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''width'', int ''height'', string ''resizer'', string ''colorspace'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''rffmode'', int ''adjustdelay'', bool ''utf8'', string ''varprefix'' ] )&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
:{{Par2|source|string|(required)}}&lt;br /&gt;
::Path of the file to be opened.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|vtrack|int|-1}}&lt;br /&gt;
::The video track number to open, as seen by the relevant demuxer. Track numbers start from zero, and are guaranteed to be continous (i.e. there must be a track 1 if there is a track 0 and a track 2). {{FuncArg|vtrack}}=-1 (the default) means open the first video track. Note that this filter's idea about what ''track'' has what ''number'' may be completely different from what some other application might think. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|atrack|int|-2}}&lt;br /&gt;
::The audio track to open. {{FuncArg|atrack}}=-1 means select the first available track. {{FuncArg|atrack}}=-2 (the default) means audio is disabled. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|cache|bool|true}}&lt;br /&gt;
::If set to true (the default), this filter will first check if the {{FuncArg|cachefile}} contains a valid index, and if it does, that index will be used. If no index is found, all video tracks will be indexed, and the indexing data will be written to {{FuncArg|cachefile}} afterwards. If set to false, this filter will not look for an existing index file; instead all video tracks will be indexed when the script is opened, and the indexing data will be discarded after the script is closed; you will have to index again next time you open the script. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|cachefile|string|source + &amp;quot;.ffindex&amp;quot;}}&lt;br /&gt;
::The filename of the index file (where the indexing data is saved). Defaults to &amp;lt;tt&amp;gt;sourcefilename.ffindex&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|fpsnum|int|-1}}&lt;br /&gt;
:{{Par2|fpsden|int|1}}&lt;br /&gt;
::Controls the framerate of the output; used for VFR to CFR conversions. If {{FuncArg|fpsnum}} is less than or equal to zero (the default), the output will contain the same frames that the input did, and the frame rate reported to Avisynth will be set based on the input clip's average frame duration. If {{FuncArg|fpsnum}} is greater than zero, this filter will force a constant frame rate, expressed as a rational number where {{FuncArg|fpsnum}} is the numerator and {{FuncArg|fpsden}} is the denominator. This may naturally cause dropped or duplicated frames to achieve the desired frame rate, and the output is not guaranteed to have the same number of frames that the input did.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|threads|int|-1}}&lt;br /&gt;
::The number of decoding threads to request from [http://ffmpeg.org/libavcodec.html '''libavcodec''']. Setting it to less than or equal to zero means it defaults to the number of logical CPUs as reported by Windows. Note that this setting might be completely ignored under a number of conditions; most commonly because a lot of decoders actually do not support multithreading. Default -1.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|timecodes|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Filename to write [http://matroska.org/technical/specs/notes.html Matroska v2 timecodes] for the opened video track. If the file exists, it will be truncated and overwritten. Set to the empty string to disable timecodes writing (this is the default). &lt;br /&gt;
&lt;br /&gt;
:{{Par2|seekmode|int|1}}&lt;br /&gt;
::Controls how seeking is done. Mostly useful for getting uncooperative files to work. Valid modes are:&lt;br /&gt;
::*-1: Linear access without rewind; i.e. will throw an error if each successive requested frame number isn't bigger than the last one. Only intended for opening images but might work on well with some obscure video format.&lt;br /&gt;
::*0: Linear access (i.e. if you request frame n without having requested all frames from 0 to n-1 in order first, all frames from 0 to n will have to be decoded before n can be delivered). The definition of slow, but should make some formats &amp;quot;usable&amp;quot;.&lt;br /&gt;
::*1: Safe normal (the default). Bases seeking decisions on the keyframe positions reported by libavformat.&lt;br /&gt;
::*2: Unsafe normal. Same as mode 1, but no error will be thrown if the exact seek destination has to be guessed.&lt;br /&gt;
::*3: Aggressive. Seeks in the forward direction even if no closer keyframe is known to exist. Only useful for testing and containers where libavformat doesn't report keyframes properly.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|overwrite|bool|false}}&lt;br /&gt;
::If set to true, this filter will reindex the source file and overwrite the index file even if the index file already exists and is valid. Mostly useful for trackmask changes and testing.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|width|int|-1}}&lt;br /&gt;
:{{Par2|height|int|-1}}&lt;br /&gt;
::Sets the resolution of the output video, in pixels. Setting either dimension to less than or equal to zero (which is the default) means the resolution of the first decoded video frame is used for that dimension. These parameters are mostly useful because FFMS2 supports video streams that change resolution mid-stream; since Avisynth does not, these parameters are used to set single resolution for the output. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|resizer|string|&amp;quot;BICUBIC&amp;quot;}}&lt;br /&gt;
::The resizing algorithm to use if rescaling the image is necessary. If the video uses subsampled chroma but your chosen output colorspace does not, the chosen resizer will be used to upscale the chroma planes, even if you did not request an image rescaling. The available choices are &amp;lt;code&amp;gt;FAST_BILINEAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BILINEAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BICUBIC&amp;lt;/code&amp;gt; (default), &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;POINT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AREA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BICUBLIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GAUSS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SINC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LANCZOS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPLINE&amp;lt;/code&amp;gt;. Note that &amp;lt;code&amp;gt;SPLINE&amp;lt;/code&amp;gt; is completely different from Avisynth's builtin Spline [[Resize|resizers]]. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|colorspace|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Convert the output from whatever it was to the given colorspace, which can be one of &amp;lt;code&amp;gt;YV12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;YUY2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RGB24&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RGB32&amp;lt;/code&amp;gt;. Setting this to an empty string (the default) means keeping the same colorspace as the input. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|rffmode|int|0}}&lt;br /&gt;
::Controls how RFF flags in the video stream are treated (RFF = ''Repeat First Field''; used in 3:2 pulldown&amp;lt;sup&amp;gt;[http://wayback.archive.org/web/20150120040340/http://msdn.microsoft.com/en-us/library/windows/desktop/aa367729%28v=vs.85%29.aspx]&amp;lt;/sup&amp;gt;). In other words, it's equivalent to the &amp;quot;field operation&amp;quot; mode switch in [[DVD2AVI]]/[[DGIndex]]. Valid modes are:&lt;br /&gt;
::*0: Ignore all flags (the default mode).&lt;br /&gt;
::*1: Honor all pulldown flags.&lt;br /&gt;
::*2: Equivalent to DVD2AVI's &amp;quot;force film&amp;quot; mode.&lt;br /&gt;
::Note that using modes 1 or 2 will make FFMS2 throw an error if the video stream has no RFF flags at all. When using either of those modes, it will also make the output be assumed as CFR, disallow vertical scaling and disallow setting the output colorspace. &amp;lt;code&amp;gt;FFPICT_TYPE&amp;lt;/code&amp;gt; will also not be set as the output is a combination of several frames. Other subtle behavior changes may also exist. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|adjustdelay|int|-1}}&lt;br /&gt;
::Controls how audio delay is handled, i.e. what happens if the first audio sample in the file doesn't have a timestamp of zero. The following arguments are valid:&lt;br /&gt;
::*-3: No adjustment is made; the first decodable audio sample becomes the first sample in the output.&lt;br /&gt;
::*-2: Samples are created (with silence) or discarded so that sample 0 in the decoded audio starts at time zero.&lt;br /&gt;
::*-1: Samples are created (with silence) or discarded so that sample 0 in the decoded audio starts at the same time as frame 0 of the first video track. This is the default, and probably what most people want.&lt;br /&gt;
::*Any integer &amp;gt;= 0: Same as -1, but adjust relative to the video track with the given track number instead. If the provided track number isn't a video track, an error is raised.&lt;br /&gt;
::-2 obviously does the same thing as -1 if the first video frame of the first video track starts at time zero. In some containers this will always be the case, in others (most notably 188-byte MPEG TS) it will almost never happen. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|utf8|bool|false}}&lt;br /&gt;
::If set to true, this filter will assume that the .avs script is encoded as UTF-8 and therefore interpret all filenames as UTF-8 encoded strings. This makes it possible to open files with odd filenames that otherwise would not be openable. &lt;br /&gt;
&lt;br /&gt;
::'''NOTE:''' You must make sure you save the .avs file without a BOM (byte-order marker) or Avisynth will refuse to open it. Notepad will write a BOM, so use something else.&lt;br /&gt;
&lt;br /&gt;
::You should also note that setting this parameter incorrectly will cause all file openings to fail unless your filenames are exclusively 7-bit ASCII compatible. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|varprefix|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::A string that is added as a prefix to all [[#Exported_AviSynth_variables|exported]] Avisynth variables. This makes it possible to differentiate between variables from different clips. &lt;br /&gt;
&lt;br /&gt;
* Note, ''FFMS2'' is a shorter name (added in v2.22) for ''FFmpegSource2''. The syntax is the same for both.&lt;br /&gt;
&lt;br /&gt;
=== Other Functions ===&lt;br /&gt;
For complete documentation see the [http://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md#function-reference FFMS2 GitHub page].&lt;br /&gt;
{{PluginFilterTable2}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFIndex|&lt;br /&gt;
Indexes a number of tracks in a given source file and writes the index file to disk, where it can be picked up and used by &amp;lt;tt&amp;gt;FFVideoSource&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;FFAudioSource&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
}} &lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFAudioSource|&lt;br /&gt;
Opens audio. Invokes indexing of all tracks if no valid index file is found, or if the requested track isn't present in the index. &lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFVideoSource|&lt;br /&gt;
Opens video. Will invoke indexing of all video tracks (but no audio tracks) if no valid index file is found.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFmpegSource2|&lt;br /&gt;
A convenience function that combines the functionality of '''FFVideoSource''' and '''FFAudioSource''' (see above).&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFMS2|&lt;br /&gt;
A shorter '''FFmpegSource2''' alias, this feature was added in v2.22.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}} &lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFImageSource|&lt;br /&gt;
A convenience alias for '''FFVideoSource''', with the options set optimally for using it as an image reader. Disables caching and seeking for maximum compatiblity.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFSetLogLevel|&lt;br /&gt;
Sets the FFmpeg logging level, i.e. how much diagnostic spam it prints to STDERR.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFGetLogLevel|&lt;br /&gt;
Returns the current log level, as an integer.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFGetVersion|&lt;br /&gt;
Returns the '''FFMS2''' version, as a string.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRowNote|&lt;br /&gt;
'''Note''': the following functions are provided by &amp;lt;tt&amp;gt;[http://raw.githubusercontent.com/FFMS/ffms2/master/etc/FFMS2.avsi FFMS2.avsi]&amp;lt;/tt&amp;gt; and are not available unless that script has been imported or [[Plugins#Plugin_Autoload_and_Name_Precedence|autoloaded]].&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFFormatTime|&lt;br /&gt;
A helper function used to format a time given in milliseconds into a h:mm:ss.ttt string. Used internally by '''FFInfo'''.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|FFmpegSource|FFInfo|&lt;br /&gt;
A helper function similar to Avisynth's internal [[Info|Info()]] function; shows general information about the current frame.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exported AviSynth variables ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
All variable names are prefixed by the {{FuncArg|varprefix}} argument to the respective '''FFVideoSource''' or '''FFAudioSource''' call that generated them. &lt;br /&gt;
&lt;br /&gt;
'''NOTE''': these exported variables are mostly [[Runtime_environment|Runtime variables]], requiring [[ScriptClip]] etc to read them.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFSAR_NUM, FFSAR_DEN, FFSAR'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The playback aspect ratio specified by the container. &amp;lt;tt&amp;gt;FFSAR_NUM&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;FFSAR_DEN&amp;lt;/tt&amp;gt; make up the rational number of the ratio; &amp;lt;tt&amp;gt;FFSAR&amp;lt;/tt&amp;gt; is only provided for convenience and may not be set in case it cannot be calculated (i.e. if &amp;lt;tt&amp;gt;FFSAR_DEN&amp;lt;/tt&amp;gt; is zero).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCROP_LEFT, FFCROP_RIGHT, FFCROP_TOP, FFCROP_BOTTOM'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The on-playback cropping specified by the container.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCOLOR_SPACE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The colorimetry the input claims to be using. Only meaningful for YUV inputs. The source for this variable is a metadata flag that can arbitrarily be set or manipulated at will by incompetent users or buggy programs without changing the actual video content, so blindly trusting its correctness is not recommended.&lt;br /&gt;
&lt;br /&gt;
The value is exported as a cryptic numerical constant that matches the values in the MPEG-2 specification. You can find the gory details in the FFMS2 API documentation, but the important ones are:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 0: RGB (usually indicates the stream isn't actually YUV, but RGB flagged as YUV)&lt;br /&gt;
 1: ITU-R Rec.709&lt;br /&gt;
 2: Unknown or unspecified&lt;br /&gt;
 5 and 6: ITU-R Rec.601&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCOLOR_RANGE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The color range the input video claims to be using. Much like &amp;lt;tt&amp;gt;FFCOLOR_SPACE&amp;lt;/tt&amp;gt;, the source for this variable is a metadata flag that can freely be set to arbitrary values, so trusting it blindly might not be a good idea.&lt;br /&gt;
&lt;br /&gt;
Note that using &amp;lt;tt&amp;gt;SWScale&amp;lt;/tt&amp;gt;() or the width/height/colorspace parameters to '''FFVideoSource''' may under some circumstances change the output color range.&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 0: Unknown/unspecified&lt;br /&gt;
 1: Limited range (usually 16-235)&lt;br /&gt;
 2: Full range (0-255)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFPICT_TYPE'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The picture type of the most recently requested frame as the ASCII number of the character listed below. Use &amp;lt;tt&amp;gt;Chr&amp;lt;/tt&amp;gt;() to convert it to an actual letter in AviSynth. Use {{FuncArg|after_frame}}&amp;lt;tt&amp;gt;=true&amp;lt;/tt&amp;gt; in AviSynth's conditional scripting for proper results. Only set when {{FuncArg|rffmode}}&amp;lt;tt&amp;gt;=0&amp;lt;/tt&amp;gt;. The FFmpeg source definition of the characters:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 I: Intra&lt;br /&gt;
 P: Predicted&lt;br /&gt;
 B: Bi-dir predicted&lt;br /&gt;
 S: S(GMC)-VOP MPEG4&lt;br /&gt;
 i: Switching Intra&lt;br /&gt;
 p: Switching Predicted&lt;br /&gt;
 b: FF_BI_TYPE (no good explanation available)&lt;br /&gt;
 ?: Unknown&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFVFR_TIME'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actual time of the source frame in milliseconds. Only set when no type of CFR conversion is being done ({{FuncArg|rffmode}} and {{FuncArg|fpsnum}} left at their defaults).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFCHANNEL_LAYOUT'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The audio channel layout of the audio stream. This is exported as a very cryptic integer that is constructed in the same way as the &amp;lt;tt&amp;gt;dwChannelMask&amp;lt;/tt&amp;gt; property of the Windows &amp;lt;tt&amp;gt;WAVEFORMATEXTENSIBLE&amp;lt;/tt&amp;gt; struct. If you don't know what a &amp;lt;tt&amp;gt;WAVEFORMATEXTENSIBLE&amp;lt;/tt&amp;gt; is or what the &amp;lt;tt&amp;gt;dwChannelMask&amp;lt;/tt&amp;gt; does, don't worry about it.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''FFVAR_PREFIX'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The variable prefix of the last called FFMS source function. Note that this is a global variable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==C Plugin==&lt;br /&gt;
The C plugin supports the additional [[planar]] colorspaces in AviSynth 2.6. Also starting with &amp;lt;tt&amp;gt;r940+64&amp;lt;/tt&amp;gt; it removes the Matroska demuxer too. This means that the *only* demuxer this build of FFMS2 uses is LAVF. The test this time is whether VP8 (and maybe VP9) bearing WebM files can be used correctly with the LAVF demuxer.&amp;lt;br&amp;gt;&lt;br /&gt;
*'''Discussion''' - [https://forum.doom9.org/showthread.php?t=175173 Doom9 Thread]&lt;br /&gt;
&lt;br /&gt;
*'''Download''' - [http://www.mediafire.com/file/k9j3mqcpkfiv337/ffms2_r1327%2B120-avs%2Bvsp.7z FFMS2 C-plugin 1327+120]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Note:'''&amp;lt;/span&amp;gt; C-plugins must be loaded using [[Plugins#LoadCPlugin|LoadCPlugin]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
*[https://forum.doom9.org/showthread.php?t=127037 Doom9 Forum] - FFmpegSource discussion.&lt;br /&gt;
*[https://github.com/FFMS/ffms2 GitHub] - Source code repository.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Source_Filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/QTGMC</id>
		<title>QTGMC</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/QTGMC"/>
				<updated>2018-07-11T06:51:46Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Core Plugins and scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Deinterlacers}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
| Vit, real.finder&lt;br /&gt;
| v3.358s&lt;br /&gt;
| 3=[http://forum.doom9.org/attachment.php?attachmentid=16264&amp;amp;d=1521180781 QTGMC3.358s.zip] &lt;br /&gt;
| 4=Deinterlacers&lt;br /&gt;
| 5=&lt;br /&gt;
| 6=[http://forum.doom9.org/showthread.php?t=156028 Doom9 Thread (original)] - [http://forum.doom9.org/showthread.php?t=174544 Update]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A very high quality deinterlacer with a range of features for both quality and convenience. These include a simple presets system, extensive noise processing capabilities, support for repair of progressive material, precision source matching, shutter speed simulation, etc. Originally based on [[TempGaussMC]] by Didée.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
QTGMC requires the latest version of the following plugins:&lt;br /&gt;
&lt;br /&gt;
====Core Plugins and scripts====&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!! style=&amp;quot;width: 113px&amp;quot; | Wiki page&lt;br /&gt;
!! style=&amp;quot;width: 132px&amp;quot; | Discussion thread&lt;br /&gt;
!! style=&amp;quot;width: 175px&amp;quot; | Download&lt;br /&gt;
!! style=&amp;quot;width: 575px&amp;quot; | Comments&lt;br /&gt;
|-&lt;br /&gt;
|[[MaskTools2]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174333 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/masktools/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[MVTools|MVTools2]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173356 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/mvtools/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170083 Doom9 Forum]&lt;br /&gt;
|[http://github.com/jpsdr/NNEDI3/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[RgTools]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1800941#post1800941 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/RgTools/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[SMDegrain]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174121 Doom9 Forum]&lt;br /&gt;
|[https://pastebin.com/u1xsPLwK SMDegrain]&lt;br /&gt;
|This script is required by default, unless you set &amp;lt;code&amp;gt;tv_range=false&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Optional Plugins and Scripts====&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!! style=&amp;quot;width: 113px&amp;quot; | Wiki page&lt;br /&gt;
!! style=&amp;quot;width: 132px&amp;quot; | Discussion thread&lt;br /&gt;
!! style=&amp;quot;width: 175px&amp;quot; | Download&lt;br /&gt;
!! style=&amp;quot;width: 575px&amp;quot; | Comments&lt;br /&gt;
|-&lt;br /&gt;
|[[AddGrainC]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=111849 Doom9 Forum]&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z AddGrainC-1.7.1.7z]&lt;br /&gt;
|Only required if &amp;lt;code&amp;gt;NoiseDeint=&amp;quot;Generate&amp;quot;&amp;lt;/code&amp;gt; is selected for noise bypass.&lt;br /&gt;
|-&lt;br /&gt;
|[[dfttest]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1386559#post1386559 Doom9 Forum]&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/dfttest-1.9.4.zip 32-bit] /// [http://www.dropbox.com/s/b0rl1xz5hxlo6og/dfttest-1.9.4_x64.zip?dl=1 64-bit]&lt;br /&gt;
|Only required if selected for noise processing.&lt;br /&gt;
|-&lt;br /&gt;
|[[EEDI2]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174333 Doom9 Forum]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173259 Doom9 Forum]&lt;br /&gt;
|Only required if selected directly or via a source-match preset.&lt;br /&gt;
|-&lt;br /&gt;
|[[eedi3|EEDI3]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173356 Doom9 Forum]&lt;br /&gt;
|[http://github.com/Elegant996/EEDI3/releases/ GitHub]&lt;br /&gt;
|Only required if selected directly or via a source-match preset.&lt;br /&gt;
|-&lt;br /&gt;
|[[FFT3DFilter]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174347 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/fft3dfilter/releases GitHub]&lt;br /&gt;
|Only required if selected for noise processing.&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Khanattila/KNLMeansCL KNLMeansCL]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171379 Doom9 Forum]&lt;br /&gt;
|[http://github.com/Khanattila/KNLMeansCL/releases GitHub]&lt;br /&gt;
|Only required if selected for noise processing. &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools PlanarTools]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170083 Doom9 Forum]&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools/releases GitHub]&lt;br /&gt;
|Not necessarily required but may improve speed when working with a [[YUY2]] source.&lt;br /&gt;
|-&lt;br /&gt;
|[[TDeint]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=82264 Doom9 Forum]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173259 32-bit] /// [http://www.mediafire.com/download/kmcztm1xzjm/TDeinterlace_3-14-2010.rar 64-bit]&lt;br /&gt;
|Only required if selected directly or via a source-match preset. &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/yadifmod2 yadifmod2]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173316 Doom9 Forum]&lt;br /&gt;
|[http://github.com/chikuzen/yadifmod2/releases GitHub]&lt;br /&gt;
|Only required for &amp;lt;code&amp;gt;Preset=&amp;quot;Ultra Fast&amp;quot;&amp;lt;/code&amp;gt; or if selected directly.&lt;br /&gt;
|-&lt;br /&gt;
|[[AnimeIVTC]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1673955#post1673955 Doom9 Forum]&lt;br /&gt;
|[http://pastebin.com/raw/z976zmzj AnimeIVTCmod_v2.20.avsi]&lt;br /&gt;
|Script is only required when working with a [[YUY2]] source.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dfttest, FFT3DFilter and MVTools2 need the [http://www.fftw.org/ FFTW3 library] ([http://www.fftw.org/install/windows.html windows builds]). On a 64-bit Windows OS, extract the 32-bit &amp;lt;code&amp;gt;libfftw3f-3.dll&amp;lt;/code&amp;gt;. Make a copy of it and rename it as &amp;quot;FFTW3.dll&amp;quot;. Place the files &amp;quot;libfftw3f-3.dll&amp;quot; and &amp;quot;FFTW3.dll&amp;quot; in the ''SysWow64'' folder. &lt;br /&gt;
&lt;br /&gt;
If you want to use the 64-bit libfftw3f-3.dll versions then extract the 64-bit &amp;lt;code&amp;gt;libfftw3f-3.dll&amp;lt;/code&amp;gt;. Make a copy of it and rename it as &amp;quot;FFTW3.dll&amp;quot;. Place the files &amp;quot;libfftw3f-3.dll&amp;quot; and &amp;quot;FFTW3.dll&amp;quot; in the ''System32'' folder.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
Install AviSynth and copy the plugins from the plugin package to the correct locations. Then to use QTGMC, write a script like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
YourSource(&amp;quot;yourfile&amp;quot;)    # DGDecode_mpeg2source, FFVideoSource, AviSource, whatever your source requires&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot; )&lt;br /&gt;
SelectEven()              # Add this line to keep original frame rate, leave it out for smoother doubled frame rate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this script with an &amp;quot;.avs&amp;quot; extension. You can now use it as an AVI source for encoding.&lt;br /&gt;
&lt;br /&gt;
''Most users should only use presets.'' The &amp;quot;Preset&amp;quot; used selects sensible settings for a given speed. Choose from:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;quot;Placebo&amp;quot; • &amp;quot;Very Slow&amp;quot; • &amp;quot;Slower&amp;quot; • &amp;quot;Slow&amp;quot; • &amp;quot;Medium&amp;quot; • &amp;quot;Fast&amp;quot; • &amp;quot;Faster&amp;quot; • &amp;quot;Very Fast&amp;quot; • &amp;quot;Super Fast&amp;quot; • &amp;quot;Ultra Fast&amp;quot; • &amp;quot;Draft&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
The default preset is '''&amp;quot;Slower&amp;quot;'''. Don't be obsessed with using the slowest settings, the differences can be very small for a huge increase in time. In particular HD material benefits less from extreme settings. HD is 6-8 times as slow as SD.&lt;br /&gt;
&lt;br /&gt;
There are many settings for tweaking this script, full details are provided in this documentation. The settings have been divided into categories, which each having key points, a detailed description, settings specifications/defaults, and several examples. The key points and examples should get you going. You can display settings currently being used with ''ShowSettings'':&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, ShowSettings=true )&lt;br /&gt;
&lt;br /&gt;
===Multi-Threaded Usage===&lt;br /&gt;
&lt;br /&gt;
QTGMC is very demanding on your system. For best performance try using it multi-threaded. You will need one of the &amp;quot;MT&amp;quot; versions of Avisynth from the [[Main Page]], only [http://forum.doom9.org/showthread.php?t=148782 2.6.0 MT by SEt] is supported. Use the multithreaded plugin pack in this case.&lt;br /&gt;
&lt;br /&gt;
You need to tweak multi-threaded scripts to suit your system. Here is a basic template - read and follow the comments carefully and provide the values noted (you cannot use this code just as it is):&lt;br /&gt;
&lt;br /&gt;
 SetMTMode(5, ''X'')        # See ''X'' below&lt;br /&gt;
 SetMemoryMax(''M'')        # Optional line. Leave it out at first. See ''M'' below&lt;br /&gt;
 YourSource(&amp;quot;yourfile&amp;quot;) # DGDecode_mpeg2source, FFVideoSource, AviSource, whatever your source requires&lt;br /&gt;
 SetMTMode(2)&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, EdiThreads=''Y'' ) # Choose preset based on overall speed/quality you want. See ''Y'' below&lt;br /&gt;
 Distributor()          # This line may or may not be necessary, try removing it and see if you get more speed&lt;br /&gt;
&lt;br /&gt;
====SetMTMode ''X''====&lt;br /&gt;
* Start at the number of logical cores in your machine (note: with HyperThreading enabled, logical cores = 2x physical cores)&lt;br /&gt;
* If it crashes, decrease 1 at a time&lt;br /&gt;
* Otherwise increase 1 at a time until CPU usage just reaches 100%, don't go too far or it will slow down&lt;br /&gt;
&lt;br /&gt;
====EdiThreads ''Y''====&lt;br /&gt;
* Start at about half number of cores and tweak upwards or downwards (but don't choose 0)&lt;br /&gt;
* Reducing this value may help stability, and might allow you to increase X for an overall speedup&lt;br /&gt;
&lt;br /&gt;
====SetMemoryMax ''M''====&lt;br /&gt;
* First try without the SetMemoryMax line&lt;br /&gt;
* However, selecting a good SetMemoryMax value might better utilise memory and increase stability. Particularly important for slower settings&lt;br /&gt;
* Try values 400,600,800,1000 etc. Sometimes reducing this value can allow you to increase X for a speedup&lt;br /&gt;
&lt;br /&gt;
====Notes====&lt;br /&gt;
* '''Do not use MT()'''.&lt;br /&gt;
* There are occasional instabilities with multi-threading, because AviSynth and plugins are not quite thread-safe. These instabilities affect different users in different ways: some report no issues, others can barely get multi-threading to work at all. But do try it as the speed increase can be considerable.&lt;br /&gt;
&lt;br /&gt;
==Features / Settings==&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': For basic usage, ''select a preset and leave the core settings alone''.&lt;br /&gt;
&lt;br /&gt;
===Core Settings===&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': Most useful setting is TR2, which controls smoothing of output.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| TR0&lt;br /&gt;
| (1,2)&lt;br /&gt;
| Temporal binomial smoothing radius used to create motion search clip. In general 2=quality, 1=speed&lt;br /&gt;
|-&lt;br /&gt;
| TR1&lt;br /&gt;
| (1,2)&lt;br /&gt;
| Temporal binomial smoothing radius used on interpolated clip for inital output. In general 2=quality, 1=speed&lt;br /&gt;
|-&lt;br /&gt;
| TR2&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Temporal linear smoothing radius used for final stablization / denoising. Increase for smoother output&lt;br /&gt;
|-&lt;br /&gt;
| Rep0&lt;br /&gt;
| (int)&lt;br /&gt;
| Repair motion search clip (0 = off): repair unwanted blur after temporal smooth TR0&lt;br /&gt;
|-&lt;br /&gt;
| Rep1&lt;br /&gt;
| (int)&lt;br /&gt;
| Repair initial output clip (0 = off): repair unwanted blur after temporal smooth TR1&lt;br /&gt;
|-&lt;br /&gt;
| Rep2&lt;br /&gt;
| (int)&lt;br /&gt;
| Repair final output clip (0 = off): unwanted blur after temporal smooth TR2 (will also repair TR1 blur if Rep1 not used)&lt;br /&gt;
|-&lt;br /&gt;
| RepChroma&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether the repair modes affect chroma. Default: '''True'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RepX syntax: first digit (0-5): how wide thin shimmering lines can be and still get removed, from 1px to ~3px; second digit (0-3): to restore a bit beyond the detected lines. A single digit counts as the first digit.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, TR2=3 )  # Strong final smooth (e.g. noisy / shimmery source)&lt;br /&gt;
&lt;br /&gt;
====Algorithm Details====&lt;br /&gt;
&lt;br /&gt;
The core algorithm is this:&lt;br /&gt;
&amp;lt;ol start=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Bob the source clip. Temporally smooth the bob to remove shimmer then analyse its motion&lt;br /&gt;
&amp;lt;li&amp;gt; More accurately interpolate the source clip (e.g. NNEDI3). Use the motion analysis from previous step to temporally smooth this interpolate with motion compensation. This removes shimmer whilst retaining detail. Resharpen the result to counteract any blurring&lt;br /&gt;
&amp;lt;li&amp;gt; A final light temporal smooth to clean the result&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stages 0 &amp;amp; 1 use a binomial smooth (similar to a Gaussian) to remove deinterlacing shimmer. Stage 2 uses a simple linear smoothing. Each stage's temporal radius (the number of frames out from the current) is given in the settings '''TR0''', '''TR1''' and '''TR2'''.&lt;br /&gt;
&lt;br /&gt;
The shimmer reduction is critical for the algorithm so TR0 and TR1 should be at least 1. TR0 only affects the motion analysis and is only indirectly visible, increasing it to 2 will generally give a better motion match. Increasing TR1 and TR2 will create a smoother and more stable output and more strongly denoise; the downside is increased blurring and possibly lost detail, and potentially can cause stronger artifacts where motion analysis is inaccurate. The blur is partially counteracted by the sharpening settings.&lt;br /&gt;
&lt;br /&gt;
The deinterlacer primarily tries to reduce &amp;quot;bob shimmer&amp;quot;: horizontal lines of shimmer created when interpolating an interlaced stream. Consequently any changes made to the initial interpolation (e.g. NNEDI3) are expected to be horizontal lines of change only. The repair stages '''Rep0''', '''Rep1''' and '''Rep2''' occur after each temporal smooth. They only allow such horizontal lines of change - shimmer fixes, discarding other changes. This prevents the motion blur&lt;br /&gt;
that temporal smoothing could generate. The repX settings control the size of areas to allow through. (See the ''QTGMC_KeepOnlyBobShimmerFixes'' function comments for more detail.)&lt;br /&gt;
&lt;br /&gt;
===Motion Analysis===&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': The presets make sensible choices for motion analysis. Some sources or requirements may require tweaks, but read these and MVTools2 docs first.&lt;br /&gt;
&lt;br /&gt;
The bobbed source clip is sent to the MVTools2 plugin to perform motion analysis. Almost all these settings are used directly in MVTools2 functions. Read the MVTools2 documentation for more details on their purpose. Some settings can be altered for a speed / accuracy tradeoff. Less accurate motion search can result in blurring and/or oversharpening (in different circumstances) as well as slight distortions of visual elements. The faster presets gain speed by simplifying the motion search parameters, use the &amp;quot;ShowSettings&amp;quot; parameter or look at the table a short way into the script to see how.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| SrchClipPP&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Pre-filtering for motion search clip, 0 = none, 1 = simple blur, 2 = Gauss blur, 3 = Gauss blur + edge soften&lt;br /&gt;
|-&lt;br /&gt;
| SubPel&lt;br /&gt;
| (1,2,4)&lt;br /&gt;
| Sub-pixel accuracy for motion analysis (1 = 1 pixel, 2 = 1/2 pixel, 4 = 1/4 pixel)&lt;br /&gt;
|-&lt;br /&gt;
| SubPelInterp&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Interpolation used for sub-pixel motion analysis: 0 = bilinear (soft), 1 = bicubic (sharper), 2 = Weiner (sharpest) Default: '''2'''&lt;br /&gt;
|-&lt;br /&gt;
| Blocksize&lt;br /&gt;
| (4,8,16,32)&lt;br /&gt;
| Size of blocks that are matched during motion analysis&lt;br /&gt;
|-&lt;br /&gt;
| Overlap&lt;br /&gt;
| (0-Blocksize/2)&lt;br /&gt;
| How much to overlap motion analysis blocks (requires more blocks, but essential to smooth block edges in motion compenstion)&lt;br /&gt;
|-&lt;br /&gt;
| Search&lt;br /&gt;
| (0...5)&lt;br /&gt;
| Search method used for matching motion blocks - see MVTools2 documentation for available algorithms&lt;br /&gt;
|-&lt;br /&gt;
| SearchParam&lt;br /&gt;
| (0...)&lt;br /&gt;
| Parameter for search method chosen. For default search method (hexagon search) it is the search range&lt;br /&gt;
|-&lt;br /&gt;
| PelSearch&lt;br /&gt;
| (0...)&lt;br /&gt;
| Search parameter (as above) for the finest sub-pixel level (see SubPel)&lt;br /&gt;
|-&lt;br /&gt;
| ChromaMotion&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to consider chroma when analyzing motion. Setting to false gives good speed-up, but may very occasionally make incorrect motion decision.&lt;br /&gt;
|-&lt;br /&gt;
| TrueMotion&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to use the 'truemotion' defaults from MAnalyse (see MVTools2 documentation) Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| Lambda&lt;br /&gt;
| (0...)&lt;br /&gt;
| Motion vector field coherence - how much the motion analysis favors similar motion vectors for neighboring blocks. Should be scaled by BlockSize*BlockSize/64&lt;br /&gt;
|-&lt;br /&gt;
| LSAD&lt;br /&gt;
| (0...)&lt;br /&gt;
| How much to reduce need for vector coherence (i.e. Lambda above) if prediction of motion vector from neighbors is poor, typically in areas of complex motion. This value is scaled in MVTools (unlike Lambda)&lt;br /&gt;
|-&lt;br /&gt;
| PNew&lt;br /&gt;
| (0...)&lt;br /&gt;
| Penalty for choosing a new motion vector for a block over an existing one - avoids chosing new vectors for minor gain&lt;br /&gt;
|-&lt;br /&gt;
| PLevel&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Mode for scaling lambda across different sub-pixel levels - see MVTools2 documentation for choices&lt;br /&gt;
|-&lt;br /&gt;
| GlobalMotion&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to estimate camera motion to assist in selecting block motion vectors. Default: '''True'''&lt;br /&gt;
|-&lt;br /&gt;
| DCT&lt;br /&gt;
| (0...10)&lt;br /&gt;
| Modes to use DCT (frequency analysis) or SATD as part of the block matching process - see MVTools2 documentation for choices.  Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSAD1&lt;br /&gt;
| (0...)&lt;br /&gt;
| SAD threshold for block match on shimmer-removing temporal smooth (''TR1''). Increase to reduce bob-shimmer more (may smear/blur) Default: '''640'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSAD2&lt;br /&gt;
| (0...)&lt;br /&gt;
| SAD threshold for block match on final denoising temporal smooth (''TR2''). Increase to strengthen final smooth (may smear/blur) Default: '''256'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSCD1&lt;br /&gt;
| (0...)&lt;br /&gt;
| Scene change detection parameter 1 - see MVTools documentation. Default: '''180'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSCD2&lt;br /&gt;
| (0...)&lt;br /&gt;
| Scene change detection parameter 2 - see MVTools documentation. Default: '''98'''&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
Defaults: &lt;br /&gt;
&lt;br /&gt;
TrueMotion is false : Lambda = '''(1000 * BlockSize2)/64''', LSAD='''400''',  PNew='''25''', PLevel='''0'''&lt;br /&gt;
&lt;br /&gt;
TrueMotion is true  : Lambda = '''(100  * BlockSize2)/64''', LSAD='''1200''', PNew='''50''', PLevel='''1'''&lt;br /&gt;
&lt;br /&gt;
Other settings defaults are determined by preset.&lt;br /&gt;
&lt;br /&gt;
===Interpolation===&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': Interpolation affects quality and speed. The presets can be relied on to provide sensible defaults mostly using NNEDI3.&lt;br /&gt;
&lt;br /&gt;
The first step to create the deinterlaced output is to spatially interpolate a single half-height field into a full-height frame. A variety of interpolators are supported, with various settings to control the quality/speed of the output.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| EdiMode&lt;br /&gt;
| (string)&lt;br /&gt;
| Interpolation method, from &amp;quot;NNEDI3&amp;quot;, &amp;quot;NNEDI2&amp;quot;, &amp;quot;NNEDI&amp;quot;, &amp;quot;EEDI3+NNEDI3&amp;quot; (EEDI3 with sclip from NNEDI3), &amp;quot;EEDI3&amp;quot;, &amp;quot;EEDI2&amp;quot;, &amp;quot;Yadif&amp;quot;, &amp;quot;TDeint&amp;quot; or &amp;quot;RepYadif&amp;quot; (&amp;quot;repaired&amp;quot; Yadif), anything else uses &amp;quot;Bob&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| ChromaEdi&lt;br /&gt;
| (string)&lt;br /&gt;
| Interpolation method used for chroma. Set to &amp;quot;&amp;quot; to use EdiMode above (default). Otherwise choose from &amp;quot;NNEDI3&amp;quot;, &amp;quot;Yadif&amp;quot; or &amp;quot;Bob&amp;quot; - all high speed variants. This can give a minor speed-up if using a very slow EdiMode (i.e. one of the EEDIx modes) Default: '''&amp;quot;&amp;quot;'''&lt;br /&gt;
|-&lt;br /&gt;
| NNSize&lt;br /&gt;
| (0...6)&lt;br /&gt;
| Area around each pixel used as predictor for NNEDI3. A larger area is slower with better quality, read the NNEDI3 docs to see the area choices. Note: area sizes are not in increasing order (i.e. increased value doesn't always mean increased quality)&lt;br /&gt;
|-&lt;br /&gt;
| NNeurons&lt;br /&gt;
| (0...4)&lt;br /&gt;
| Controls number of neurons in NNEDI2 (0-2) &amp;amp; NNEDI3 (0-4), larger = slower and better quality but improvements are small&lt;br /&gt;
|-&lt;br /&gt;
| EdiQual&lt;br /&gt;
| (1,2,3)&lt;br /&gt;
| Quality setting for NNEDI2 (1,2,3) &amp;amp; NNEDI3 (1,2 only). Higher values for better quality - but improvements are marginal&lt;br /&gt;
|-&lt;br /&gt;
| EdiMaxD&lt;br /&gt;
| (1...)&lt;br /&gt;
| Spatial search distance for finding connecting edges in EEDI2 and EEDI3&lt;br /&gt;
|-&lt;br /&gt;
| EdiThreads&lt;br /&gt;
| (0...)&lt;br /&gt;
| Number of threads to use in EEDI3 &amp;amp; NNEDI2/3, 0 = default = number of logical processors on system. Also affects source-match interpolations. Source-match can add 2 further interpolations per frame, adjusting this setting can help balance system load. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| EdiExt&lt;br /&gt;
| (clip)&lt;br /&gt;
| Provide externally created interpolated clip rather than use one of the above modes. Default: '''undefined'''&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
Other settings defaults are determined by preset.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, EdiMode=&amp;quot;EEDI3&amp;quot;, EdiMaxD=16 ) # Use EEDI3 with an explicit search radius&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Very Slow&amp;quot;, EdiThreads=2 )           # Specify number of threads (with default NNEDI3) useful to tweak if using SetMTMode or source-match&lt;br /&gt;
&lt;br /&gt;
===Sharpness===&lt;br /&gt;
&lt;br /&gt;
Key Points: Always consider adjusting the Sharpness setting to taste. The default 1.0 is fairly sharp. If using source-match the default is 0.2&lt;br /&gt;
&lt;br /&gt;
The core of the algorithm involves a binomial smooth to remove shimmer. So the result needs to be resharpened to counteract this blur. The main setting Sharpness defaults to 1.0, which is a level designed to retain the sharpness of stable areas. However, this level can cause moving areas to be oversharpened so you may wish to reduce the value depending on source. Sharpness when using source-match behaves differently, see that section. The sharpness processing for a given setting is tweaked to remain roughly similar regardless of other settings. However, there will be minor differences, so always consider adjusting sharpness if you tweak other major settings.&lt;br /&gt;
&lt;br /&gt;
Oversharpening is limited either spatially (SLMode = 1,3) or temporally (SLMode = 2,4). Temporal limiting is more &amp;quot;correct&amp;quot; but also more aggressive in preventing sharpening. It's also slower. You can set a small value in the overshoot setting (SOvs) to give the temporal limiting a bit of &amp;quot;headroom&amp;quot;. You can also perform sharpness limiting later in the algorithm (SLMode = 3,4) for more sharpness, but with the potential for minor artefacts.&lt;br /&gt;
Settings 	  	 &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Sharpness&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| How much to resharpen the temporally blurred clip (default is always 1.0 unlike original TGMC)&lt;br /&gt;
|-&lt;br /&gt;
| SMode&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Resharpening mode:  0 = none, 1 = difference from 3x3 blur kernel, 2 = vertical max/min average + 3x3 kernel&lt;br /&gt;
|-&lt;br /&gt;
| SLMode&lt;br /&gt;
| (0,1,2,3,4)&lt;br /&gt;
| Sharpness limiting: 0 = off, [1 = spatial, 2 = temporal] : before final temporal smooth, [3 = spatial, 4 = temporal] : after final temporal smooth&lt;br /&gt;
|-&lt;br /&gt;
| SLRad&lt;br /&gt;
| (0...)&lt;br /&gt;
| Temporal or spatial radius used with sharpness limiting (depends on SLMode). Temporal radius can only be 0,1 or 3&lt;br /&gt;
|-&lt;br /&gt;
| SOvs&lt;br /&gt;
| (0...255)&lt;br /&gt;
| Amount of overshoot allowed with temporal sharpness limiting (SLMode = 2,4), i.e. allow some oversharpening. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| SVThin&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| How much to thin down 1-pixel wide lines that have been widened due to interpolation into neighboring field lines. Default: '''0.0'''&lt;br /&gt;
|-&lt;br /&gt;
| Sbb&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Back blend (blurred) difference between pre &amp;amp; post sharpened clip (minor fidelity improvement): 0 = Off, 1 = before (1st) sharpness limiting, 2 = after (1st) sharpness limiting, 3 = both. Default: '''0'''&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
Other settings defaults are determined by preset.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, Sharpness=0.4 )           # Reduce oversharpening&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, Sharpness=1.2, SLMode=1 ) # Increase sharpness, use spatial sharpness limiting (which typically allows more sharpening)&lt;br /&gt;
&lt;br /&gt;
===Source Match / Lossless===&lt;br /&gt;
&lt;br /&gt;
Very detailed section for new feature [documentation likely to be thinned as feature matures]&lt;br /&gt;
Note: the effects of this feature are both subtle and precise, intended only for exacting detail. Make sure you can see exacting detail first.&lt;br /&gt;
&lt;br /&gt;
Key Points: Source-match creates higher fidelity output with extra processing. Enable with SourceMatch = 1,2 or 3. Higher values are slower and more accurate. Can combine with Lossless setting (especially Lossless=2) for more detail again. Tweak speed with MatchPreset (like Preset). Will honor artefacts in source, so best used with quality sources. By default Sharpness becomes 0.2 &amp;amp; sharpness limiting (SLMode) is switched off, so adjust sharpness carefully.&lt;br /&gt;
&lt;br /&gt;
Quickstart: The templates below increase in both quality and slowness. Choose a preset as required, the very fastest presets are not suitable though. The default Sharpness=0.2 but you may wish to increase it slightly. Set TR2=1 for clean source, set TR2=2 or TR2=3 (slower) if more denoising required or use noise processing&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=1, Sharpness=XXX, TR2=X )             # Basic mode, fastest&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=1, Sharpness=XXX, TR2=X, Lossless=2 ) # Good quality, efficient, minor residual combing&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=2, Sharpness=XXX, TR2=X )             # Good quality, slower, no combing&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=3, Sharpness=XXX, TR2=X, Lossless=2 ) # Best quality, slowest, very minor residual combing&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Intuitively, a deinterlacer should just inject new fields into the source, leaving the original pixels untouched. The temporal blur/resharpen in this script means that doesn't happen - the source pixels are changed in the output. The (optional) source-match steps attempt to fix this and make the result closer to the source. They work by looking at the difference between output and source at different points in the algorithm and correcting for that difference.&lt;br /&gt;
&lt;br /&gt;
Matching to the source will capture more source detail and reduce oversharpening / haloing. Caveat: the default algorithm temporally smooths but with source-matching much less so (by necessity / design). Source-matching may faithfully recreate artefacts in the source (e.g blocking, banding &amp;amp; some noise) so it's better for quality sources. The SourceMatch setting sets the mode: 0=off (standard [Q]TGMC algorithm), 1,2,3 for progressively more accurate but slower processing. Modes 2 &amp;amp; 3 restore almost exact source detail but are sensitive to noise &amp;amp; introduce occasional aliasing (mode 3 is less affected). Mode 1 is a more conservative halfway stage that rarely introduces artefacts.&lt;br /&gt;
&lt;br /&gt;
Since source-matching recovers sharpness, the Sharpness default is reduced to 0.2. Source-matching may initially appear less sharp than standard processing because it will not oversharpen. However, be careful if raising the sharpness, because sharpness limiting is switched off by default. This is because sharpness limiting reduces the the accuracy of these modes. Use the MatchEnhance setting to exaggerate additional detail found by modes 2 &amp;amp; 3. This gives a sharpening / detail enhancing effect and works well at sensible levels - but it's a slight cheat that should be used with care as it can easily enhance noise. Since source-match is sensitive to source noise you may want to set TR2 to 2 or 3 and/or use some noise processing (see below).&lt;br /&gt;
&lt;br /&gt;
The additional Lossless modes are designed to take source-match to its logical conclusion: Lossless mode 1 restores the *exact* pixels of the source into the output (provided NoiseRestore=0). This recovers a liitle more source detail but can introduce shimmering, minor combing, noise etc. Note the Sharpness and MatchEnhance settings have little effect in lossless mode 1. Lossless mode 2 makes the clip lossless before the sharpening &amp;amp; final temporal smooth. This removes most of the lossless artefacts and also allows sharpness control. This mode will not give an exactly lossless output but it will gain a little more detail.&lt;br /&gt;
&lt;br /&gt;
The source-match settings introduce further processing. SourceMatch mode 1 requires a second interpolation (e.g. NNEDI3), but it can use a lower quality settings than the main stage. SourceMatch mode 2 requires yet another interpolation, but works effectively with just a bob (but using a better interpolator can reduce occasional aliasing). Mode 3 adds just a little more processing and is usually worth it as it reduces artefacts. There is no exact control over the interpolations used (too many settings required), instead there are MatchPresets that work in a similar way to the main Preset. The extra processing suggests much slower speeds, but actually using higher speed presets (both MatchPreset and Preset) with source-matching can give results comparable to slower presets without it. Having said that, the extra detail from source-matching is too subtle to significantly affect very high speed main presets.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| SourceMatch&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| 0 = Source-matching off (standard algorithm), 1 = basic source-match, 2 = refined match, 3 = twice refined match&lt;br /&gt;
|-&lt;br /&gt;
| Lossless&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Puts exact source fields into result &amp;amp; cleans any artefacts. 0=off, 1=after final temporal smooth, 2=before resharpening. Adds some extra detail but: mode 1 gets shimmer / minor combing, mode 2 is more stable/tweakable but not exactly lossless. Default: '''0'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;for SourceMatch=1,2,3&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| MatchPreset&lt;br /&gt;
| (string)&lt;br /&gt;
| Speed/quality for basic source-match processing, select from &amp;quot;Placebo&amp;quot;, &amp;quot;Very Slow&amp;quot;, &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, &amp;quot;Faster&amp;quot;, &amp;quot;Very Fast&amp;quot;, &amp;quot;Super Fast&amp;quot;, &amp;quot;Ultra Fast&amp;quot; (no &amp;quot;Draft&amp;quot;). Ideal choice is the same as main preset, but can choose a faster setting (but not slower). Default: '''3 steps faster than MatchPreset'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchEdi&lt;br /&gt;
| (string)&lt;br /&gt;
| Override default interpolation method for basic source-match. Default method is same as main EdiMode setting (usually NNEDI3). Only need to override if using slow method for main interpolation (e.g. EEDI3) and want a faster method for source-match. Default: '''EdiMode'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;for SourceMatch=2,3&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| MatchPreset2&lt;br /&gt;
| (string)&lt;br /&gt;
| Speed/quality for refined source-match processing, select from &amp;quot;Placebo&amp;quot;, &amp;quot;Very Slow&amp;quot;, &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, &amp;quot;Faster&amp;quot;, &amp;quot;Very Fast&amp;quot;, &amp;quot;Super Fast&amp;quot;, &amp;quot;Ultra Fast&amp;quot; (no &amp;quot;Draft&amp;quot;). Faster settings are usually sufficient, but slower settings are useful if you get extra aliasing. Default: '''2 steps faster than MatchPreset'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchEdi2&lt;br /&gt;
| (string)&lt;br /&gt;
| Override interpolation method for refined source-match. Can be a good idea to pick MatchEdi2=&amp;quot;Bob&amp;quot; for speed. Default: '''NNEDI3'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchTR2&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Temporal radius for refined source-matching. 2=smoothness, 1=speed/sharper, 0=not recommended. Differences are very marginal. Basic source-match doesn't need this setting as its temporal radius must match TR1 core setting (i.e. there is no MatchTR1). Default: '''1'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchEnhance&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Enhance the detail found by source-match modes 2 &amp;amp; 3. A slight cheat - will enhance noise if set too strong. Best set &amp;lt; 1.0. Default: '''0.5'''&lt;br /&gt;
|}&lt;br /&gt;
  	  	 &lt;br /&gt;
Defaults changes:&lt;br /&gt;
* MatchEdi is &amp;quot;Yadif&amp;quot; when MatchPreset=&amp;quot;Ultra Fast&amp;quot;&lt;br /&gt;
* MatchEdi2 is &amp;quot;TDeint&amp;quot; when MatchPreset=&amp;quot;Super Fast&amp;quot;, or &amp;quot;Bob&amp;quot; when MatchPreset=&amp;quot;Ultra Fast&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=1 )                # Enable basic source-match. Result somewhat closer to source.&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=1, Sharpness=0.4 ) # Basic source-match but sharper (up from 0.2). Be careful as sharpness limiting defaults to off&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=1, Lossless=2 )    # Basic source-match with &amp;quot;fake&amp;quot; lossless. Efficient setting for quality, may bring minor combing&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Medium&amp;quot;, SourceMatch=2, TR2=2 )       # Refined source-match, closer to source with no combing, slower. Increased TR2 reduces noise&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, SourceMatch=3 )              # Twice refined source-match, higher quality than mode 2, but a little bit slower again&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, SourceMatch=3, Lossless=2 )  # Twice refined source-match with fake lossless. Almost perfect fidelity mode with few artefacts&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, SourceMatch=3, Lossless=1 )  # Twice refined source-match with true lossless. Exact detail, but likely combing and shimmer&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=3, Lossless=2, MatchEnhance=0.75 ) # Further enhance detail found by refined match, a little sharper, may be noisier&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=3, Lossless=2, MatchEnhance=0.75, NoiseProcess=1, NoiseRestore=0.7, Sigma=1.5 ) # As above, denoise a little to help&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, MatchPreset=&amp;quot;Very Fast&amp;quot;, SourceMatch=1 ) # Faster basic source-match preset (defaults to 3 steps faster than main Preset)&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, MatchPreset=&amp;quot;Faster&amp;quot;, MatchPreset2=&amp;quot;Ultra Fast&amp;quot;, SourceMatch=3 ) # Faster refined source-match preset as well&lt;br /&gt;
                                                                                         # (defaults to 2 steps faster than basic match Preset)&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, MatchPreset=&amp;quot;Slow&amp;quot;, MatchPreset2=&amp;quot;Slow&amp;quot;, SourceMatch=3 ) # Or use slower source-match presets (usually unnecessary)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Noise Bypass / Denoising===&lt;br /&gt;
&lt;br /&gt;
Key Points: QTGMC can remove, retain or strengthen noise and very fine detail. Has automatic &amp;quot;EZ&amp;quot; settings for simple operation. Refer to examples below&lt;br /&gt;
&lt;br /&gt;
The use of multiple temporal smooths means that this script denoises by default. QTGMC can extract some noise/grain from the source at the start, then optionally restore some of it back in again at the end. This allows either denoising, or for the grain/noise from the source to be retained. For simplest operation use one of the two automatic &amp;quot;EZ&amp;quot; modes, EZDenoise or EZKeepGrain (can only use one at once) and select a NoisePreset. For manual operation there are two modes: NoiseProcess=1 actually denoises at the start, whereas NoiseProcess=2 just identifies the noise in the source without removing it. NoiseProcess=1 is typically used for stronger denoising of the output, and NoiseProcess=2 is used to retain grain or for a very light denoise.&lt;br /&gt;
&lt;br /&gt;
Manual operation: after selecting a mode, set a Sigma value to estimate the level of source noise. Use the ShowNoise setting to help in this choice. Then decide how much of that noise to restore after the deinterlace. There are two restore points called GrainRestore/NoiseRestore, the amount of noise restored depends on their sum. For full denoising set them both to 0. For grain retention, a good starting point is 0.7/0.3 for NoiseProcess=1, and 0.3/0.1 for NoiseProcess=2. GrainRestore restores more stable &amp;quot;grain-like&amp;quot; detail. NoiseRestore restores finer more fluctuating noise. Usually best if GrainRestore is greater than NoiseRestore unless you want a very noisy look. Too high restoral values will give grain exaggeration and even luma changes.&lt;br /&gt;
&lt;br /&gt;
Important: You must use a non-zero value in one of EZDenoise, EZKeepGrain or NoiseProcess or no noise processing will occur&lt;br /&gt;
{|&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Quick Settings&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| EZDenoise&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Automatic setting to denoise source. Set &amp;gt; 0.0 to enable. Higher values denoise more. Can use ShowNoise to help choose value. Default: '''0.0'''&lt;br /&gt;
|-&lt;br /&gt;
| EZKeepGrain&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Automatic setting to retain source grain/detail. Set &amp;gt; 0.0 to enable. Higher values retain more grain. A good starting point = 1.0. Default: '''0.0'''&lt;br /&gt;
|-&lt;br /&gt;
| NoisePreset&lt;br /&gt;
| (string)&lt;br /&gt;
| Automatic setting for quality of noise processing. Choices: &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, and &amp;quot;Faster&amp;quot;. Default: '''&amp;quot;Fast&amp;quot;'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Full Settings&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NoiseProcess&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Bypass mode: 0 = disable, 1 = denoise source &amp;amp; optionally restore some noise back at end of script [use for stronger denoising], 2 = identify noise only &amp;amp; optionally restore some after QTGMC smoothing [for grain retention / light denoising]. Default: '''0''' (Very Slow: '''2''')&lt;br /&gt;
|-&lt;br /&gt;
| ChromaNoise&lt;br /&gt;
| (bool)&lt;br /&gt;
| When processing noise (NoiseProcess &amp;gt; 0), whether to process chroma noise or not (luma noise is always processed). Default: '''False'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Removing Noise&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Denoiser&lt;br /&gt;
| (string)&lt;br /&gt;
| Select denoiser to use for noise bypass / denoising. Select from &amp;quot;dfttest&amp;quot; or &amp;quot;fft3dfilter&amp;quot;. dfttest is better, but slower. Unknown value selects &amp;quot;fft3dfilter&amp;quot;. Default: '''fft3dfilter'''&lt;br /&gt;
|-&lt;br /&gt;
| DftThreads&lt;br /&gt;
| (0...)&lt;br /&gt;
| Number of threads to use if using &amp;quot;dfttest&amp;quot; for Denoiser, 0 = number of logical processors on system. Default: '''EdiThreads'''&lt;br /&gt;
|-&lt;br /&gt;
| DenoiseMC&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to provide a motion-compensated clip to the denoiser for better noise vs detail detection (will be a little slower). Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| NoiseTR&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Temporal radius used when analyzing clip for noise extraction. Higher values better identify noise vs detail but are slower. Default: '''1'''&lt;br /&gt;
|-&lt;br /&gt;
| Sigma&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Amount of noise known to be in the source, sensible values vary by source and denoiser, so experiment. Use ShowNoise to help. Default: '''2.0'''&lt;br /&gt;
|-&lt;br /&gt;
| ShowNoise&lt;br /&gt;
| (bool / 0.0...)&lt;br /&gt;
| Display extracted and &amp;quot;deinterlaced&amp;quot; noise rather than normal output. Set to true or false, or set a value (around 4 to 16) to specify contrast for displayed noise. Visualising noise helps to determine suitable value for Sigma or EZDenoise - want to see noise and noisy detail, but not too much clean structure or edges - fairly subjective. Pause the video when checking this. Default: '''False'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Restoring Noise&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GrainRestore&lt;br /&gt;
| (0.0...1.0...)&lt;br /&gt;
| How much removed noise/grain to restore before final temporal smooth. Retain &amp;quot;stable&amp;quot; grain and some detail (effect depends on TR2). Default: '''0.0''' (Very Slow: '''0.3''')&lt;br /&gt;
|-&lt;br /&gt;
| NoiseRestore&lt;br /&gt;
| (0.0...1.0...)&lt;br /&gt;
| How much removed noise/grain to restore after final temporal smooth. Retains any kind of noise. Default: '''0.0''' (Very Slow: '''0.1''')&lt;br /&gt;
|-&lt;br /&gt;
| NoiseDeint&lt;br /&gt;
| (string)&lt;br /&gt;
| When noise is taken from interlaced source, how to 'deinterlace' it before restoring. &amp;quot;Bob&amp;quot; &amp;amp; &amp;quot;DoubleWeave&amp;quot; are fast but with minor issues: &amp;quot;Bob&amp;quot; is coarse and &amp;quot;Doubleweave&amp;quot; lags by one frame. &amp;quot;Generate&amp;quot; is a high quality mode that generates fresh noise lines, but it is slower. Unknown value selects &amp;quot;DoubleWeave&amp;quot;. Default: '''&amp;quot;&amp;quot;'''&lt;br /&gt;
|-&lt;br /&gt;
| StabilizeNoise&lt;br /&gt;
| (bool)&lt;br /&gt;
| Use motion compensation to limit shimmering and strengthen detail within the restored noise. Recommended for &amp;quot;Generate&amp;quot; mode. Default: '''False'''&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
* EZDenoise and EZKeepGrain set automatic values for NoiseProcess, NoiseRestore/GrainRestore and Sigma&lt;br /&gt;
* Denoiser, DenoiseMC, NoiseTR, NoiseDeint and StabilizeNoise settings are determined by NoisePreset&lt;br /&gt;
* If using manual settings be sure to override *all* the values you are interested in&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Automatic Settings&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, EZDenoise=2.5,   NoisePreset=&amp;quot;Slow&amp;quot;   ) # Automatic denoising, value is denoising strength, preset is quality/speed tradeoff&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, EZKeepGrain=1.0, NoisePreset=&amp;quot;Faster&amp;quot; ) # Automatic grain retention - retain all source grain&lt;br /&gt;
&lt;br /&gt;
# Denoising&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, NoiseRestore=0.0, Sigma=4.0 ) # Fully denoise, strength of denoising depends on Sigma setting&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, NoiseRestore=0.0, Denoiser=&amp;quot;dfttest&amp;quot;, DenoiseMC=true, NoiseTR=2, Sigma=4.0 ) # More &amp;quot;accurate&amp;quot; denoising (slower)&lt;br /&gt;
&lt;br /&gt;
# Retain Noise / Grain&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, NoiseRestore=1.0, Sigma=2.0 ) # Retain *all* the noise / fine detail of a less noisy source&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, GrainRestore=1.0, Sigma=2.0 ) # Similar to above but only keep the more &amp;quot;stable&amp;quot; noise elements (depends on TR2)&lt;br /&gt;
 &lt;br /&gt;
# Strong Detail / Grain&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=2, GrainRestore=0.5, NoiseRestore=0.1, Sigma=2.5 ) # Using stronger mode 2, retains noise and sharpens slightly&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=2, GrainRestore=0.4, NoiseRestore=0.2, Sigma=1.8, \&lt;br /&gt;
       NoiseDeint=&amp;quot;Generate&amp;quot;, StabilizeNoise=true )  # As above with better quality, more stable detail and grain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Progressive Input===&lt;br /&gt;
&lt;br /&gt;
Key Points: Can remove horizontal shimmering effects from progressive sources. Experiment with InputType=1, 2 or 3 for best results. FPS will not be doubled&lt;br /&gt;
&lt;br /&gt;
This script is designed for deinterlacing and so by default expects an interlaced clip. However, much of its operation concerns the reduction of horizontal shimmering. It is possible to use the script to remove similar shimmer from a progressive clip by using the InputType setting. InputType=1 is used for general progressive material that contains less severe problems. InputType=2,3 are designed for badly deinterlaced material with considerable horizontal artefacts. These modes drop half the fields and recreate an interlaced stream from the others, which is then treated in the normal way. Mode 3 differs from mode 2 only in that it complements field parity of the input. Generally mode 1 will retain more detail, but repair less artefacts than modes 2,3. You may consider setting TR2 to a higher value (e.g. 2 or 3) when repairing progressive material.&lt;br /&gt;
&lt;br /&gt;
SourceMatch and Lossless modes are supported for progressive material. It works well for InputType=2,3, where the input is converted to an interlaced stream, and helps in detail retention. Source-match is much less useful for InputType=1&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| InputType&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Default = 0 for interlaced input. Settings 1,2 &amp;amp; 3 accept progressive input for deshimmer or repair. Frame rate of progressive source is not doubled. Mode 1 is for general progressive material. Modes 2 &amp;amp; 3 are designed for badly deinterlaced material. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| ProgSADMask&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Only applies to InputType=2,3. If ProgSADMask &amp;gt; 0.0 then blend InputType modes 1 and 2/3 based on block motion SAD. Higher values help recover more detail, but repair less artefacts. Reasonable range about 2.0 to 20.0, or 0.0 for no blending. Default: '''10.0''' ('''0.0''' for &amp;quot;Fast&amp;quot; and faster.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=1 )                   # Process progressive source, it will be temporally smoothed / deshimmered&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=2, ProgSADMask=12.0 ) # Process progressive source with major artefacts, slightly favoring detail over repairs&lt;br /&gt;
&lt;br /&gt;
===Shutter Speed Motion Blur / Frame Rate===&lt;br /&gt;
&lt;br /&gt;
Key Points: Can output video at single or double-frame rate. For smoother playback of single-rate output there are settings to add light motion blur to simulate different shutter angles (shutter speeds)&lt;br /&gt;
&lt;br /&gt;
By default QTGMC outputs video at &amp;quot;double-rate&amp;quot;, twice the frame rate of the source. This is because there are two separate images (fields) in every frame, which the deinterlacing process restores in full. By setting FPSDivisor to 2, every second frame is dropped and the output frame rate is the same as the source (&amp;quot;single-rate&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Single-rate output may look a little stuttery, depending on how the source was filmed/created. Adding motion blur to each frame can help with this, smoothing the feel of the slower rate playback. This is done by setting ShutterBlur to 1,2 or 3, then specifying the shutter angle that you wish the output to simulate. However, as there may be some motion blur already in the source you also need to specify/estimate the shutter angle used in the source. Shutter angles range from 0 to 360, with 0 being perfectly sharp and 360 being fully blurred from one frame to next (artificial output shutter angles &amp;gt; 360 are supported to a very limited degree). Motion-blur can also be applied to double-rate output, but the effect is less noticable.&lt;br /&gt;
&lt;br /&gt;
As motion analysis is block-based, motion blur of an object can &amp;quot;bleed&amp;quot; into surrounding, more static areas. This can be reduced using the slower ShutterBlur modes or by increasing the SBlurLimit setting (which is enabled and set to 4 by default). Both repair methods may reduce the level of motion blur a little though. In situations of complex motion the motion analysis can be incorrect, which can lead to inappropriate blurring.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| FPSDivisor&lt;br /&gt;
| (1,2...)&lt;br /&gt;
| 1 = Double-rate output, 2 = Single-rate output. Higher values can be used too (e.g. 60fps &amp;amp; FPSDivisor=3 gives 20fps output). '''Important:''' You do not need SelectEven() in the calling script if you use FPSDivisor=2. Default: '''1'''&lt;br /&gt;
|-&lt;br /&gt;
| ShutterBlur&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| 0 = Off, 1 = Enable, 2,3 = Higher precisions (slower). Higher precisions reduce blur &amp;quot;bleeding&amp;quot; into static areas a little. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| ShutterAngleSrc&lt;br /&gt;
| (0...360)&lt;br /&gt;
| Shutter angle used in source. If necessary, estimate from motion blur seen in a single frame: 0=pin-sharp, 360=fully blurred from frame to frame. Default: '''180'''&lt;br /&gt;
|-&lt;br /&gt;
| ShutterAngleOut&lt;br /&gt;
| (0...360)&lt;br /&gt;
| Shutter angle to simulate in output. Extreme values may be rejected (depends on other settings). Cannot reduce motion blur already in the source. Default: '''180'''&lt;br /&gt;
|-&lt;br /&gt;
| SBlurLimit&lt;br /&gt;
| (0...)&lt;br /&gt;
| Limit motion blur where motion lower than given value. Increase to reduce blur &amp;quot;bleeding&amp;quot;. 0=Off. Sensible range around 2-12. Default: '''4'''&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=2, ShutterBlur=1, ShutterAngleSrc=30,  ShutterAngleOut=180 ) # Smooth single-rate output, when input has little blur&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=2, ShutterBlur=1, ShutterAngleSrc=180, ShutterAngleOut=180 ) # Keep &amp;quot;film&amp;quot; look on single-rate output, &amp;quot;film&amp;quot; input&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=2, ShutterBlur=2, ShutterAngleSrc=180, ShutterAngleOut=180, SBlurLimit=8 ) # Same but srongly reduce blur &amp;quot;bleeding&amp;quot;&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=1, ShutterBlur=1, ShutterAngleSrc=0,   ShutterAngleOut=720 ) # Blur some high shutter-speed footage, keep double rate&lt;br /&gt;
                                                                                                # [Use of artificially high shutter angles is limited]&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Settings===&lt;br /&gt;
&lt;br /&gt;
Settings not covered above. Note that Border is false by default, which differs from TempGaussMC&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Border&lt;br /&gt;
| (bool)&lt;br /&gt;
| Pad a little vertically while processing (doesn't affect output size) - set true you see flickering on the very top or bottom line of the output. If you have wider edge effects than that, you should crop afterwards instead. Be wary of this setting if reusing QTGMC motion vectors in the calling script. Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| Precise&lt;br /&gt;
| (bool)&lt;br /&gt;
| Set to false to use faster algorithms with *very* slight imprecision in places&lt;br /&gt;
|-&lt;br /&gt;
| Preset&lt;br /&gt;
| (string)&lt;br /&gt;
| Sets a range of defaults for different encoding speeds. Select from &amp;quot;Placebo&amp;quot;, &amp;quot;Very Slow&amp;quot;, &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, &amp;quot;Faster&amp;quot;, &amp;quot;Very Fast&amp;quot;, &amp;quot;Super Fast&amp;quot;, &amp;quot;Ultra Fast&amp;quot; &amp;amp; &amp;quot;Draft&amp;quot;. Default: '''&amp;quot;Slower&amp;quot;'''&lt;br /&gt;
|-&lt;br /&gt;
| Tuning&lt;br /&gt;
| (string)&lt;br /&gt;
| Tweaks the defaults for different source types. Choose from &amp;quot;None&amp;quot;, &amp;quot;DV-SD&amp;quot;, &amp;quot;DV-HD&amp;quot;. Default: '''&amp;quot;None&amp;quot;''' [An idea for development based on the x264 approach, but as I don't work with many source types it has seen little development]&lt;br /&gt;
|-&lt;br /&gt;
| ShowSettings&lt;br /&gt;
| (bool)&lt;br /&gt;
| Display all the current parameter values - useful to find preset defaults. Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| GlobalNames&lt;br /&gt;
| (string)&lt;br /&gt;
| The name used to expose intermediate clips to calling script. See External Linkage section. Default: '''QTGMC'''&lt;br /&gt;
|-&lt;br /&gt;
| PrevGlobals&lt;br /&gt;
| (string)&lt;br /&gt;
| What to do with global variables from earlier QTGMC call that match above name. Either &amp;quot;Replace&amp;quot;, or &amp;quot;Reuse&amp;quot; (for a speed-up). Default: '''Undefined'''&lt;br /&gt;
|-&lt;br /&gt;
| ForceTR&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Ensure globally exposed motion vectors are calculated to this radius even if not needed by QTGMC. 0 = disabled. Default: '''0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Default for Precise depends on Preset.&lt;br /&gt;
&lt;br /&gt;
==External Linkage==&lt;br /&gt;
===Accessing QTGMC Motion Vectors===&lt;br /&gt;
QTGMC now exposes its motion vectors and other intermediate clips to the calling script through global variables. These globals are uniquely named. By default they begin with the prefix &amp;quot;QTGMC_&amp;quot;. The available clips are:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Backward motion vectors&lt;br /&gt;
| bVec1, bVec2, bVec3 (temporal radius 1 to 3)&lt;br /&gt;
|-&lt;br /&gt;
| Forward motion vectors&lt;br /&gt;
| fVec1, fVec2, fVec3&lt;br /&gt;
|-&lt;br /&gt;
| Filtered clip used for motion analysis&lt;br /&gt;
| srchClip&lt;br /&gt;
|-&lt;br /&gt;
| MVTools &amp;quot;super&amp;quot; clip for filtered clip&lt;br /&gt;
| srchSuper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Not all these clips are necessarily created - it depends on your QTGMC settings. To ensure motion vector creation to radius X, set ForceTR=X&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Medium&amp;quot;, ForceTR=2, SubPel=2 )  # Ensure we get temporal radius of at least 2, read note below regarding SubPel&lt;br /&gt;
 super = MSuper( pel=2, levels=1 )              # Faster to use levels=1, don't usually need more levels once you have the vectors&lt;br /&gt;
 MDegrain2( super, QTGMC_bVec1,QTGMC_fVec1, QTGMC_bVec2,QTGMC_fVec2 )  # Use QTGMC-created motion vectors&lt;br /&gt;
&lt;br /&gt;
====Important Notes====&lt;br /&gt;
&lt;br /&gt;
* The SubPel setting to QTGMC must match the pel setting in MVTools or you will get visual errors or crashes. Default SubPel in QTGMC varies depending on Preset, &amp;quot;Medium&amp;quot; and quicker settings get SubPel=1, slower settings get SubPel=2. Default pel in MVTools is 2&lt;br /&gt;
* Do not use Border=true if using motion vectors in this way, or the clips exposed will have an 8 pixel border top and bottom (i.e. they won't match your source)&lt;br /&gt;
&lt;br /&gt;
===Multiple QTGMC Calls===&lt;br /&gt;
The section above showed how global variables are used to expose the workings of QTGMC. However, if there are multiple calls to QTGMC in your script then you should consider whether they should work together with their exposed globals. By default the globals for each call to QTGMC will overwrite the globals from previous calls. However there are actually three options in this case:&lt;br /&gt;
&lt;br /&gt;
* Use the setting GlobalNames to make unique global names for each call. E.g. if you set GlobalNames=&amp;quot;TestA&amp;quot; you will receive a global called TestA_bVec1.&lt;br /&gt;
* Set PrevGlobals=&amp;quot;Reuse&amp;quot; to reuse existing similar named globals for this run &amp;amp; not recalculate motion vectors etc. This will improve performance.&lt;br /&gt;
* Set PrevGlobals=&amp;quot;Replace&amp;quot; to overwrite similar named globals from a previous run. This is the default and easiest option for most use cases.&lt;br /&gt;
&lt;br /&gt;
Here's an artifical example of multiple calls in a script to show the options:&lt;br /&gt;
&lt;br /&gt;
 q1 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot; )  # QTGMC_bVec1 and similar variables are created&lt;br /&gt;
 q2 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot; )  # Recalculates and replaces variables QTGMC_bVec1 and similar with new values (same as setting PrevGlobals=&amp;quot;Replace&amp;quot;)&lt;br /&gt;
 q3 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot;, PrevGlobals=&amp;quot;Reuse&amp;quot;   )  # Reuses QTGMC_bVec1 motion vectors from q2 above. Doesn't recalculate, improving performance&lt;br /&gt;
 q4 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot;, GlobalNames=&amp;quot;TestA&amp;quot;   )  # Creates new variables called TestA_bVec1...&lt;br /&gt;
 q5 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot;, GlobalNames=&amp;quot;TestA&amp;quot;, PrevGlobals=&amp;quot;Reuse&amp;quot; ) # Reuses the TestA_bVec1 motion vectors&lt;br /&gt;
&lt;br /&gt;
Here's a realistic example. This simple script repairs progressive material with very bad deinterlacing artefacts. It needs two calls to QTGMC:&lt;br /&gt;
&lt;br /&gt;
 t = QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=2 )&lt;br /&gt;
 b = QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=3, PrevGlobals=&amp;quot;Reuse&amp;quot; ) # Reuse motion vectors from first call for a good speed-up&lt;br /&gt;
 Repair( t, b, 1 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TempGaussMC Notes==&lt;br /&gt;
In its default setup this script is very similar in operation to TempGaussMC_beta2. The call QTGMC() is very similar to:&lt;br /&gt;
&lt;br /&gt;
 TempGaussMC_beta2( 2,2,1, Border=false, SVthin=0.0 )&lt;br /&gt;
&lt;br /&gt;
There are a few key differences:&lt;br /&gt;
&lt;br /&gt;
* QTGMC typically uses &amp;quot;NNEDI3&amp;quot; for interpolation (TempGaussMC_beta2 uses &amp;quot;EEDI2&amp;quot; by default)&lt;br /&gt;
* Sharpness default in QTGMC is always 1.0 (or 0.2 if using source-match) - adjusted internally to give very roughly the same sharpness across settings / presets&lt;br /&gt;
* In QTGMC, SVThin defaults to 0, Border defaults to false&lt;br /&gt;
* Lossless and Draft modes are supported but in a different way&lt;br /&gt;
* The parameter order is the same up to EdiMode, a couple of 'lesser' parameters have had name changes for consistency&lt;br /&gt;
&lt;br /&gt;
==Acknowledgements==&lt;br /&gt;
Thanks go to Didée for the script from where this began.&lt;br /&gt;
&lt;br /&gt;
Also thanks to the plugin coders: Manao, Fizick, Tritical, Kassandro, Tsp, SEt, Tom Barry, Foxyshadis, TSchniede, Kurosu, mg262 and any others...&lt;br /&gt;
&lt;br /&gt;
And to the many people who have given feedback, reported bugs and offered suggestions to help improve the script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# v3.357s&lt;br /&gt;
# - high bit depth now basically work in avs+&lt;br /&gt;
#&lt;br /&gt;
# v3.354s&lt;br /&gt;
# - added optional chikuzen PlanarTools for YUY2 using nonyuy2clipin/nonyuy2clipout in AnimeIVTC() v2.20&lt;br /&gt;
#&lt;br /&gt;
# v3.353s&lt;br /&gt;
# - added ndjamena suggestion for maximum temporal radius&lt;br /&gt;
# - added DftDither to controle dfttest dither Parameter&lt;br /&gt;
#&lt;br /&gt;
# v3.352s&lt;br /&gt;
# - added useEdiExt&lt;br /&gt;
# - added tr0=-1 to use the EdiExt clip (if there is no EdiExt clip then it will not work)&lt;br /&gt;
# - rep0 now will be 0 if tr0 &amp;lt; 1&lt;br /&gt;
#&lt;br /&gt;
# v3.347s&lt;br /&gt;
# - fix SourceMatch (bug after new YUY2 method, thanks to ndjamena for report it)&lt;br /&gt;
#&lt;br /&gt;
# v3.346s&lt;br /&gt;
# - EEDI3+NNEDI3 bug fix by ndjamena&lt;br /&gt;
# - Renamed DftThreads parameter to FftThreads, to set the ncpu argument of FFT3DFilter (from VS)&lt;br /&gt;
# - FFT3DFilter will work now in YUY2, use it with Denoiser=&amp;quot;fft3df&amp;quot; (or use NoisePreset)&lt;br /&gt;
#&lt;br /&gt;
# v3.345s&lt;br /&gt;
# - work with SMDegrain_KNLMeansCL now to process chroma too&lt;br /&gt;
#&lt;br /&gt;
# v3.343s&lt;br /&gt;
# - edit in ChromaEdi&lt;br /&gt;
# - others&lt;br /&gt;
#&lt;br /&gt;
# v3.34s (mod) 2016 12 18 (ravewulf idea in another way)&lt;br /&gt;
# - Added yadifmod2 (if you need old one use it like this EdiMode=&amp;quot;cYadif&amp;quot; or EdiMode=&amp;quot;RepcYadif&amp;quot;)&lt;br /&gt;
# - fast and clean up YUY2 (will work in x64 now, no need to SSETools)&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2016 12 06&lt;br /&gt;
# - Add TR2=4 and TR2=5&lt;br /&gt;
# - add TV_range bool and dither_luma_rebuild (from SMDegrain) Str and Amp&lt;br /&gt;
# - for avsplus now QTGMC_Bob is ready for any 420, not only yv12&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2016 04 11&lt;br /&gt;
# - Add KNLMeansCL as another Denoiser to NoiseProcess&lt;br /&gt;
# - others&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2016 01 19&lt;br /&gt;
# - make QTGMC_deflate/QTGMC_inflate work with YUY2 using masktool2 for avs 2.60&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 10 23&lt;br /&gt;
# - revert to QTGMC_deflate/QTGMC_inflate quoted from Dogway&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 9 10&lt;br /&gt;
# - fix Multiple QTGMC Calls&lt;br /&gt;
# - others fix&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 8 6&lt;br /&gt;
# - some changes in bob to speed up&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 8 4&lt;br /&gt;
# - fix bug in YUY2 with SourceMatch&lt;br /&gt;
# - add slice=false to ditherpost to avoid artefacts&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod)&lt;br /&gt;
# - fix bob chroma&lt;br /&gt;
# - work with new masktool2 for avs 2.60 in YUY2&lt;br /&gt;
#&lt;br /&gt;
# v3.33d (mod)&lt;br /&gt;
# - Added 32 bit precision option through the lsbd (for dfttest and knlmeanscl) and lsb (mdegrain) options.&lt;br /&gt;
# - optimized some mask handling a bit as originally suggested by Vit&lt;br /&gt;
# - others&lt;br /&gt;
#&lt;br /&gt;
# v3.33&lt;br /&gt;
# - Increased maximum value for Rep0, Rep1 and Rep2 to 7 (from 5). Higher values help with flicker on static detail, potential for minor motion blur&lt;br /&gt;
# - Bug fix for the fact that Bob always outputs a BFF clip regardless of field order of input (thanks ajp_anton)&lt;br /&gt;
# - Improved generation of noise (NoiseDeint=&amp;quot;Generate&amp;quot;) for noise bypass / EZKeepGrain&lt;br /&gt;
# - Minor change to denoising&lt;br /&gt;
#&lt;br /&gt;
# v3.32&lt;br /&gt;
# - Bugfix with shutter blur and ChromaMotion (thanks Heaud)&lt;br /&gt;
# - Tweaked vector recalculation for shutter motion blur&lt;br /&gt;
# - Changed defaults for TR2 when using source-match&lt;br /&gt;
# - Minor bugfix with SLMode/SLRad on pass-through settings&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links:==&lt;br /&gt;
*[http://www.spirton.com/uploads/QTGMC/QTGMC-3.32-Spanish.rar Spanish Instructions (3.32)] by Overdrive80&lt;br /&gt;
*[http://forum.doom9.org/showpost.php?p=1732845&amp;amp;postcount=2041 QTGMC-3.33s] by A.SONY&lt;br /&gt;
&amp;lt;!--[http://www.spirton.com/uploads/QTGMC/QTGMC-3.32.zip Download (v3.32), with English instructions] [[Media:QTGMC-3.32.avsi| QTGMC-3.32.avsi]] [http://www.spirton.com/uploads/QTGMC/QTGMC-3.33.avsi QTGMC-3.33.avsi]--&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Deinterlacing|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/QTGMC</id>
		<title>QTGMC</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/QTGMC"/>
				<updated>2018-07-11T06:50:26Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Deinterlacers}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
| Vit, real.finder&lt;br /&gt;
| v3.358s&lt;br /&gt;
| 3=[http://forum.doom9.org/attachment.php?attachmentid=16264&amp;amp;d=1521180781 QTGMC3.358s.zip] &lt;br /&gt;
| 4=Deinterlacers&lt;br /&gt;
| 5=&lt;br /&gt;
| 6=[http://forum.doom9.org/showthread.php?t=156028 Doom9 Thread (original)] - [http://forum.doom9.org/showthread.php?t=174544 Update]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A very high quality deinterlacer with a range of features for both quality and convenience. These include a simple presets system, extensive noise processing capabilities, support for repair of progressive material, precision source matching, shutter speed simulation, etc. Originally based on [[TempGaussMC]] by Didée.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
QTGMC requires the latest version of the following plugins:&lt;br /&gt;
&lt;br /&gt;
====Core Plugins and scripts====&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!! style=&amp;quot;width: 113px&amp;quot; | Wiki page&lt;br /&gt;
!! style=&amp;quot;width: 132px&amp;quot; | Discussion thread&lt;br /&gt;
!! style=&amp;quot;width: 175px&amp;quot; | Download&lt;br /&gt;
!! style=&amp;quot;width: 575px&amp;quot; | Comments&lt;br /&gt;
|-&lt;br /&gt;
|[[MaskTools2]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174333 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/masktools/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[MVTools|MVTools2]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173356 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/mvtools/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170083 Doom9 Forum]&lt;br /&gt;
|[http://github.com/jpsdr/NNEDI3/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[RgTools]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1800941#post1800941 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/RgTools/releases GitHub]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[SMDegrain]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174121 Doom9 Forum]&lt;br /&gt;
|[https://pastebin.com/raw/xMsxYztR SMDegrain_v3.1.2.93s.avsi]&lt;br /&gt;
|This script is required by default, unless you set &amp;lt;code&amp;gt;tv_range=false&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Optional Plugins and Scripts====&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!! style=&amp;quot;width: 113px&amp;quot; | Wiki page&lt;br /&gt;
!! style=&amp;quot;width: 132px&amp;quot; | Discussion thread&lt;br /&gt;
!! style=&amp;quot;width: 175px&amp;quot; | Download&lt;br /&gt;
!! style=&amp;quot;width: 575px&amp;quot; | Comments&lt;br /&gt;
|-&lt;br /&gt;
|[[AddGrainC]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=111849 Doom9 Forum]&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z AddGrainC-1.7.1.7z]&lt;br /&gt;
|Only required if &amp;lt;code&amp;gt;NoiseDeint=&amp;quot;Generate&amp;quot;&amp;lt;/code&amp;gt; is selected for noise bypass.&lt;br /&gt;
|-&lt;br /&gt;
|[[dfttest]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1386559#post1386559 Doom9 Forum]&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/dfttest-1.9.4.zip 32-bit] /// [http://www.dropbox.com/s/b0rl1xz5hxlo6og/dfttest-1.9.4_x64.zip?dl=1 64-bit]&lt;br /&gt;
|Only required if selected for noise processing.&lt;br /&gt;
|-&lt;br /&gt;
|[[EEDI2]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174333 Doom9 Forum]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173259 Doom9 Forum]&lt;br /&gt;
|Only required if selected directly or via a source-match preset.&lt;br /&gt;
|-&lt;br /&gt;
|[[eedi3|EEDI3]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173356 Doom9 Forum]&lt;br /&gt;
|[http://github.com/Elegant996/EEDI3/releases/ GitHub]&lt;br /&gt;
|Only required if selected directly or via a source-match preset.&lt;br /&gt;
|-&lt;br /&gt;
|[[FFT3DFilter]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174347 Doom9 Forum]&lt;br /&gt;
|[http://github.com/pinterf/fft3dfilter/releases GitHub]&lt;br /&gt;
|Only required if selected for noise processing.&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Khanattila/KNLMeansCL KNLMeansCL]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171379 Doom9 Forum]&lt;br /&gt;
|[http://github.com/Khanattila/KNLMeansCL/releases GitHub]&lt;br /&gt;
|Only required if selected for noise processing. &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools PlanarTools]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170083 Doom9 Forum]&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools/releases GitHub]&lt;br /&gt;
|Not necessarily required but may improve speed when working with a [[YUY2]] source.&lt;br /&gt;
|-&lt;br /&gt;
|[[TDeint]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=82264 Doom9 Forum]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173259 32-bit] /// [http://www.mediafire.com/download/kmcztm1xzjm/TDeinterlace_3-14-2010.rar 64-bit]&lt;br /&gt;
|Only required if selected directly or via a source-match preset. &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/yadifmod2 yadifmod2]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173316 Doom9 Forum]&lt;br /&gt;
|[http://github.com/chikuzen/yadifmod2/releases GitHub]&lt;br /&gt;
|Only required for &amp;lt;code&amp;gt;Preset=&amp;quot;Ultra Fast&amp;quot;&amp;lt;/code&amp;gt; or if selected directly.&lt;br /&gt;
|-&lt;br /&gt;
|[[AnimeIVTC]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1673955#post1673955 Doom9 Forum]&lt;br /&gt;
|[http://pastebin.com/raw/z976zmzj AnimeIVTCmod_v2.20.avsi]&lt;br /&gt;
|Script is only required when working with a [[YUY2]] source.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dfttest, FFT3DFilter and MVTools2 need the [http://www.fftw.org/ FFTW3 library] ([http://www.fftw.org/install/windows.html windows builds]). On a 64-bit Windows OS, extract the 32-bit &amp;lt;code&amp;gt;libfftw3f-3.dll&amp;lt;/code&amp;gt;. Make a copy of it and rename it as &amp;quot;FFTW3.dll&amp;quot;. Place the files &amp;quot;libfftw3f-3.dll&amp;quot; and &amp;quot;FFTW3.dll&amp;quot; in the ''SysWow64'' folder. &lt;br /&gt;
&lt;br /&gt;
If you want to use the 64-bit libfftw3f-3.dll versions then extract the 64-bit &amp;lt;code&amp;gt;libfftw3f-3.dll&amp;lt;/code&amp;gt;. Make a copy of it and rename it as &amp;quot;FFTW3.dll&amp;quot;. Place the files &amp;quot;libfftw3f-3.dll&amp;quot; and &amp;quot;FFTW3.dll&amp;quot; in the ''System32'' folder.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
Install AviSynth and copy the plugins from the plugin package to the correct locations. Then to use QTGMC, write a script like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
YourSource(&amp;quot;yourfile&amp;quot;)    # DGDecode_mpeg2source, FFVideoSource, AviSource, whatever your source requires&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot; )&lt;br /&gt;
SelectEven()              # Add this line to keep original frame rate, leave it out for smoother doubled frame rate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this script with an &amp;quot;.avs&amp;quot; extension. You can now use it as an AVI source for encoding.&lt;br /&gt;
&lt;br /&gt;
''Most users should only use presets.'' The &amp;quot;Preset&amp;quot; used selects sensible settings for a given speed. Choose from:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;quot;Placebo&amp;quot; • &amp;quot;Very Slow&amp;quot; • &amp;quot;Slower&amp;quot; • &amp;quot;Slow&amp;quot; • &amp;quot;Medium&amp;quot; • &amp;quot;Fast&amp;quot; • &amp;quot;Faster&amp;quot; • &amp;quot;Very Fast&amp;quot; • &amp;quot;Super Fast&amp;quot; • &amp;quot;Ultra Fast&amp;quot; • &amp;quot;Draft&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
The default preset is '''&amp;quot;Slower&amp;quot;'''. Don't be obsessed with using the slowest settings, the differences can be very small for a huge increase in time. In particular HD material benefits less from extreme settings. HD is 6-8 times as slow as SD.&lt;br /&gt;
&lt;br /&gt;
There are many settings for tweaking this script, full details are provided in this documentation. The settings have been divided into categories, which each having key points, a detailed description, settings specifications/defaults, and several examples. The key points and examples should get you going. You can display settings currently being used with ''ShowSettings'':&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, ShowSettings=true )&lt;br /&gt;
&lt;br /&gt;
===Multi-Threaded Usage===&lt;br /&gt;
&lt;br /&gt;
QTGMC is very demanding on your system. For best performance try using it multi-threaded. You will need one of the &amp;quot;MT&amp;quot; versions of Avisynth from the [[Main Page]], only [http://forum.doom9.org/showthread.php?t=148782 2.6.0 MT by SEt] is supported. Use the multithreaded plugin pack in this case.&lt;br /&gt;
&lt;br /&gt;
You need to tweak multi-threaded scripts to suit your system. Here is a basic template - read and follow the comments carefully and provide the values noted (you cannot use this code just as it is):&lt;br /&gt;
&lt;br /&gt;
 SetMTMode(5, ''X'')        # See ''X'' below&lt;br /&gt;
 SetMemoryMax(''M'')        # Optional line. Leave it out at first. See ''M'' below&lt;br /&gt;
 YourSource(&amp;quot;yourfile&amp;quot;) # DGDecode_mpeg2source, FFVideoSource, AviSource, whatever your source requires&lt;br /&gt;
 SetMTMode(2)&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, EdiThreads=''Y'' ) # Choose preset based on overall speed/quality you want. See ''Y'' below&lt;br /&gt;
 Distributor()          # This line may or may not be necessary, try removing it and see if you get more speed&lt;br /&gt;
&lt;br /&gt;
====SetMTMode ''X''====&lt;br /&gt;
* Start at the number of logical cores in your machine (note: with HyperThreading enabled, logical cores = 2x physical cores)&lt;br /&gt;
* If it crashes, decrease 1 at a time&lt;br /&gt;
* Otherwise increase 1 at a time until CPU usage just reaches 100%, don't go too far or it will slow down&lt;br /&gt;
&lt;br /&gt;
====EdiThreads ''Y''====&lt;br /&gt;
* Start at about half number of cores and tweak upwards or downwards (but don't choose 0)&lt;br /&gt;
* Reducing this value may help stability, and might allow you to increase X for an overall speedup&lt;br /&gt;
&lt;br /&gt;
====SetMemoryMax ''M''====&lt;br /&gt;
* First try without the SetMemoryMax line&lt;br /&gt;
* However, selecting a good SetMemoryMax value might better utilise memory and increase stability. Particularly important for slower settings&lt;br /&gt;
* Try values 400,600,800,1000 etc. Sometimes reducing this value can allow you to increase X for a speedup&lt;br /&gt;
&lt;br /&gt;
====Notes====&lt;br /&gt;
* '''Do not use MT()'''.&lt;br /&gt;
* There are occasional instabilities with multi-threading, because AviSynth and plugins are not quite thread-safe. These instabilities affect different users in different ways: some report no issues, others can barely get multi-threading to work at all. But do try it as the speed increase can be considerable.&lt;br /&gt;
&lt;br /&gt;
==Features / Settings==&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': For basic usage, ''select a preset and leave the core settings alone''.&lt;br /&gt;
&lt;br /&gt;
===Core Settings===&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': Most useful setting is TR2, which controls smoothing of output.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| TR0&lt;br /&gt;
| (1,2)&lt;br /&gt;
| Temporal binomial smoothing radius used to create motion search clip. In general 2=quality, 1=speed&lt;br /&gt;
|-&lt;br /&gt;
| TR1&lt;br /&gt;
| (1,2)&lt;br /&gt;
| Temporal binomial smoothing radius used on interpolated clip for inital output. In general 2=quality, 1=speed&lt;br /&gt;
|-&lt;br /&gt;
| TR2&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Temporal linear smoothing radius used for final stablization / denoising. Increase for smoother output&lt;br /&gt;
|-&lt;br /&gt;
| Rep0&lt;br /&gt;
| (int)&lt;br /&gt;
| Repair motion search clip (0 = off): repair unwanted blur after temporal smooth TR0&lt;br /&gt;
|-&lt;br /&gt;
| Rep1&lt;br /&gt;
| (int)&lt;br /&gt;
| Repair initial output clip (0 = off): repair unwanted blur after temporal smooth TR1&lt;br /&gt;
|-&lt;br /&gt;
| Rep2&lt;br /&gt;
| (int)&lt;br /&gt;
| Repair final output clip (0 = off): unwanted blur after temporal smooth TR2 (will also repair TR1 blur if Rep1 not used)&lt;br /&gt;
|-&lt;br /&gt;
| RepChroma&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether the repair modes affect chroma. Default: '''True'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RepX syntax: first digit (0-5): how wide thin shimmering lines can be and still get removed, from 1px to ~3px; second digit (0-3): to restore a bit beyond the detected lines. A single digit counts as the first digit.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, TR2=3 )  # Strong final smooth (e.g. noisy / shimmery source)&lt;br /&gt;
&lt;br /&gt;
====Algorithm Details====&lt;br /&gt;
&lt;br /&gt;
The core algorithm is this:&lt;br /&gt;
&amp;lt;ol start=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Bob the source clip. Temporally smooth the bob to remove shimmer then analyse its motion&lt;br /&gt;
&amp;lt;li&amp;gt; More accurately interpolate the source clip (e.g. NNEDI3). Use the motion analysis from previous step to temporally smooth this interpolate with motion compensation. This removes shimmer whilst retaining detail. Resharpen the result to counteract any blurring&lt;br /&gt;
&amp;lt;li&amp;gt; A final light temporal smooth to clean the result&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stages 0 &amp;amp; 1 use a binomial smooth (similar to a Gaussian) to remove deinterlacing shimmer. Stage 2 uses a simple linear smoothing. Each stage's temporal radius (the number of frames out from the current) is given in the settings '''TR0''', '''TR1''' and '''TR2'''.&lt;br /&gt;
&lt;br /&gt;
The shimmer reduction is critical for the algorithm so TR0 and TR1 should be at least 1. TR0 only affects the motion analysis and is only indirectly visible, increasing it to 2 will generally give a better motion match. Increasing TR1 and TR2 will create a smoother and more stable output and more strongly denoise; the downside is increased blurring and possibly lost detail, and potentially can cause stronger artifacts where motion analysis is inaccurate. The blur is partially counteracted by the sharpening settings.&lt;br /&gt;
&lt;br /&gt;
The deinterlacer primarily tries to reduce &amp;quot;bob shimmer&amp;quot;: horizontal lines of shimmer created when interpolating an interlaced stream. Consequently any changes made to the initial interpolation (e.g. NNEDI3) are expected to be horizontal lines of change only. The repair stages '''Rep0''', '''Rep1''' and '''Rep2''' occur after each temporal smooth. They only allow such horizontal lines of change - shimmer fixes, discarding other changes. This prevents the motion blur&lt;br /&gt;
that temporal smoothing could generate. The repX settings control the size of areas to allow through. (See the ''QTGMC_KeepOnlyBobShimmerFixes'' function comments for more detail.)&lt;br /&gt;
&lt;br /&gt;
===Motion Analysis===&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': The presets make sensible choices for motion analysis. Some sources or requirements may require tweaks, but read these and MVTools2 docs first.&lt;br /&gt;
&lt;br /&gt;
The bobbed source clip is sent to the MVTools2 plugin to perform motion analysis. Almost all these settings are used directly in MVTools2 functions. Read the MVTools2 documentation for more details on their purpose. Some settings can be altered for a speed / accuracy tradeoff. Less accurate motion search can result in blurring and/or oversharpening (in different circumstances) as well as slight distortions of visual elements. The faster presets gain speed by simplifying the motion search parameters, use the &amp;quot;ShowSettings&amp;quot; parameter or look at the table a short way into the script to see how.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| SrchClipPP&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Pre-filtering for motion search clip, 0 = none, 1 = simple blur, 2 = Gauss blur, 3 = Gauss blur + edge soften&lt;br /&gt;
|-&lt;br /&gt;
| SubPel&lt;br /&gt;
| (1,2,4)&lt;br /&gt;
| Sub-pixel accuracy for motion analysis (1 = 1 pixel, 2 = 1/2 pixel, 4 = 1/4 pixel)&lt;br /&gt;
|-&lt;br /&gt;
| SubPelInterp&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Interpolation used for sub-pixel motion analysis: 0 = bilinear (soft), 1 = bicubic (sharper), 2 = Weiner (sharpest) Default: '''2'''&lt;br /&gt;
|-&lt;br /&gt;
| Blocksize&lt;br /&gt;
| (4,8,16,32)&lt;br /&gt;
| Size of blocks that are matched during motion analysis&lt;br /&gt;
|-&lt;br /&gt;
| Overlap&lt;br /&gt;
| (0-Blocksize/2)&lt;br /&gt;
| How much to overlap motion analysis blocks (requires more blocks, but essential to smooth block edges in motion compenstion)&lt;br /&gt;
|-&lt;br /&gt;
| Search&lt;br /&gt;
| (0...5)&lt;br /&gt;
| Search method used for matching motion blocks - see MVTools2 documentation for available algorithms&lt;br /&gt;
|-&lt;br /&gt;
| SearchParam&lt;br /&gt;
| (0...)&lt;br /&gt;
| Parameter for search method chosen. For default search method (hexagon search) it is the search range&lt;br /&gt;
|-&lt;br /&gt;
| PelSearch&lt;br /&gt;
| (0...)&lt;br /&gt;
| Search parameter (as above) for the finest sub-pixel level (see SubPel)&lt;br /&gt;
|-&lt;br /&gt;
| ChromaMotion&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to consider chroma when analyzing motion. Setting to false gives good speed-up, but may very occasionally make incorrect motion decision.&lt;br /&gt;
|-&lt;br /&gt;
| TrueMotion&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to use the 'truemotion' defaults from MAnalyse (see MVTools2 documentation) Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| Lambda&lt;br /&gt;
| (0...)&lt;br /&gt;
| Motion vector field coherence - how much the motion analysis favors similar motion vectors for neighboring blocks. Should be scaled by BlockSize*BlockSize/64&lt;br /&gt;
|-&lt;br /&gt;
| LSAD&lt;br /&gt;
| (0...)&lt;br /&gt;
| How much to reduce need for vector coherence (i.e. Lambda above) if prediction of motion vector from neighbors is poor, typically in areas of complex motion. This value is scaled in MVTools (unlike Lambda)&lt;br /&gt;
|-&lt;br /&gt;
| PNew&lt;br /&gt;
| (0...)&lt;br /&gt;
| Penalty for choosing a new motion vector for a block over an existing one - avoids chosing new vectors for minor gain&lt;br /&gt;
|-&lt;br /&gt;
| PLevel&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Mode for scaling lambda across different sub-pixel levels - see MVTools2 documentation for choices&lt;br /&gt;
|-&lt;br /&gt;
| GlobalMotion&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to estimate camera motion to assist in selecting block motion vectors. Default: '''True'''&lt;br /&gt;
|-&lt;br /&gt;
| DCT&lt;br /&gt;
| (0...10)&lt;br /&gt;
| Modes to use DCT (frequency analysis) or SATD as part of the block matching process - see MVTools2 documentation for choices.  Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSAD1&lt;br /&gt;
| (0...)&lt;br /&gt;
| SAD threshold for block match on shimmer-removing temporal smooth (''TR1''). Increase to reduce bob-shimmer more (may smear/blur) Default: '''640'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSAD2&lt;br /&gt;
| (0...)&lt;br /&gt;
| SAD threshold for block match on final denoising temporal smooth (''TR2''). Increase to strengthen final smooth (may smear/blur) Default: '''256'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSCD1&lt;br /&gt;
| (0...)&lt;br /&gt;
| Scene change detection parameter 1 - see MVTools documentation. Default: '''180'''&lt;br /&gt;
|-&lt;br /&gt;
| ThSCD2&lt;br /&gt;
| (0...)&lt;br /&gt;
| Scene change detection parameter 2 - see MVTools documentation. Default: '''98'''&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
Defaults: &lt;br /&gt;
&lt;br /&gt;
TrueMotion is false : Lambda = '''(1000 * BlockSize2)/64''', LSAD='''400''',  PNew='''25''', PLevel='''0'''&lt;br /&gt;
&lt;br /&gt;
TrueMotion is true  : Lambda = '''(100  * BlockSize2)/64''', LSAD='''1200''', PNew='''50''', PLevel='''1'''&lt;br /&gt;
&lt;br /&gt;
Other settings defaults are determined by preset.&lt;br /&gt;
&lt;br /&gt;
===Interpolation===&lt;br /&gt;
&lt;br /&gt;
'''Key Points''': Interpolation affects quality and speed. The presets can be relied on to provide sensible defaults mostly using NNEDI3.&lt;br /&gt;
&lt;br /&gt;
The first step to create the deinterlaced output is to spatially interpolate a single half-height field into a full-height frame. A variety of interpolators are supported, with various settings to control the quality/speed of the output.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| EdiMode&lt;br /&gt;
| (string)&lt;br /&gt;
| Interpolation method, from &amp;quot;NNEDI3&amp;quot;, &amp;quot;NNEDI2&amp;quot;, &amp;quot;NNEDI&amp;quot;, &amp;quot;EEDI3+NNEDI3&amp;quot; (EEDI3 with sclip from NNEDI3), &amp;quot;EEDI3&amp;quot;, &amp;quot;EEDI2&amp;quot;, &amp;quot;Yadif&amp;quot;, &amp;quot;TDeint&amp;quot; or &amp;quot;RepYadif&amp;quot; (&amp;quot;repaired&amp;quot; Yadif), anything else uses &amp;quot;Bob&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| ChromaEdi&lt;br /&gt;
| (string)&lt;br /&gt;
| Interpolation method used for chroma. Set to &amp;quot;&amp;quot; to use EdiMode above (default). Otherwise choose from &amp;quot;NNEDI3&amp;quot;, &amp;quot;Yadif&amp;quot; or &amp;quot;Bob&amp;quot; - all high speed variants. This can give a minor speed-up if using a very slow EdiMode (i.e. one of the EEDIx modes) Default: '''&amp;quot;&amp;quot;'''&lt;br /&gt;
|-&lt;br /&gt;
| NNSize&lt;br /&gt;
| (0...6)&lt;br /&gt;
| Area around each pixel used as predictor for NNEDI3. A larger area is slower with better quality, read the NNEDI3 docs to see the area choices. Note: area sizes are not in increasing order (i.e. increased value doesn't always mean increased quality)&lt;br /&gt;
|-&lt;br /&gt;
| NNeurons&lt;br /&gt;
| (0...4)&lt;br /&gt;
| Controls number of neurons in NNEDI2 (0-2) &amp;amp; NNEDI3 (0-4), larger = slower and better quality but improvements are small&lt;br /&gt;
|-&lt;br /&gt;
| EdiQual&lt;br /&gt;
| (1,2,3)&lt;br /&gt;
| Quality setting for NNEDI2 (1,2,3) &amp;amp; NNEDI3 (1,2 only). Higher values for better quality - but improvements are marginal&lt;br /&gt;
|-&lt;br /&gt;
| EdiMaxD&lt;br /&gt;
| (1...)&lt;br /&gt;
| Spatial search distance for finding connecting edges in EEDI2 and EEDI3&lt;br /&gt;
|-&lt;br /&gt;
| EdiThreads&lt;br /&gt;
| (0...)&lt;br /&gt;
| Number of threads to use in EEDI3 &amp;amp; NNEDI2/3, 0 = default = number of logical processors on system. Also affects source-match interpolations. Source-match can add 2 further interpolations per frame, adjusting this setting can help balance system load. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| EdiExt&lt;br /&gt;
| (clip)&lt;br /&gt;
| Provide externally created interpolated clip rather than use one of the above modes. Default: '''undefined'''&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
Other settings defaults are determined by preset.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, EdiMode=&amp;quot;EEDI3&amp;quot;, EdiMaxD=16 ) # Use EEDI3 with an explicit search radius&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Very Slow&amp;quot;, EdiThreads=2 )           # Specify number of threads (with default NNEDI3) useful to tweak if using SetMTMode or source-match&lt;br /&gt;
&lt;br /&gt;
===Sharpness===&lt;br /&gt;
&lt;br /&gt;
Key Points: Always consider adjusting the Sharpness setting to taste. The default 1.0 is fairly sharp. If using source-match the default is 0.2&lt;br /&gt;
&lt;br /&gt;
The core of the algorithm involves a binomial smooth to remove shimmer. So the result needs to be resharpened to counteract this blur. The main setting Sharpness defaults to 1.0, which is a level designed to retain the sharpness of stable areas. However, this level can cause moving areas to be oversharpened so you may wish to reduce the value depending on source. Sharpness when using source-match behaves differently, see that section. The sharpness processing for a given setting is tweaked to remain roughly similar regardless of other settings. However, there will be minor differences, so always consider adjusting sharpness if you tweak other major settings.&lt;br /&gt;
&lt;br /&gt;
Oversharpening is limited either spatially (SLMode = 1,3) or temporally (SLMode = 2,4). Temporal limiting is more &amp;quot;correct&amp;quot; but also more aggressive in preventing sharpening. It's also slower. You can set a small value in the overshoot setting (SOvs) to give the temporal limiting a bit of &amp;quot;headroom&amp;quot;. You can also perform sharpness limiting later in the algorithm (SLMode = 3,4) for more sharpness, but with the potential for minor artefacts.&lt;br /&gt;
Settings 	  	 &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Sharpness&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| How much to resharpen the temporally blurred clip (default is always 1.0 unlike original TGMC)&lt;br /&gt;
|-&lt;br /&gt;
| SMode&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Resharpening mode:  0 = none, 1 = difference from 3x3 blur kernel, 2 = vertical max/min average + 3x3 kernel&lt;br /&gt;
|-&lt;br /&gt;
| SLMode&lt;br /&gt;
| (0,1,2,3,4)&lt;br /&gt;
| Sharpness limiting: 0 = off, [1 = spatial, 2 = temporal] : before final temporal smooth, [3 = spatial, 4 = temporal] : after final temporal smooth&lt;br /&gt;
|-&lt;br /&gt;
| SLRad&lt;br /&gt;
| (0...)&lt;br /&gt;
| Temporal or spatial radius used with sharpness limiting (depends on SLMode). Temporal radius can only be 0,1 or 3&lt;br /&gt;
|-&lt;br /&gt;
| SOvs&lt;br /&gt;
| (0...255)&lt;br /&gt;
| Amount of overshoot allowed with temporal sharpness limiting (SLMode = 2,4), i.e. allow some oversharpening. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| SVThin&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| How much to thin down 1-pixel wide lines that have been widened due to interpolation into neighboring field lines. Default: '''0.0'''&lt;br /&gt;
|-&lt;br /&gt;
| Sbb&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Back blend (blurred) difference between pre &amp;amp; post sharpened clip (minor fidelity improvement): 0 = Off, 1 = before (1st) sharpness limiting, 2 = after (1st) sharpness limiting, 3 = both. Default: '''0'''&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
Other settings defaults are determined by preset.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, Sharpness=0.4 )           # Reduce oversharpening&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slow&amp;quot;, Sharpness=1.2, SLMode=1 ) # Increase sharpness, use spatial sharpness limiting (which typically allows more sharpening)&lt;br /&gt;
&lt;br /&gt;
===Source Match / Lossless===&lt;br /&gt;
&lt;br /&gt;
Very detailed section for new feature [documentation likely to be thinned as feature matures]&lt;br /&gt;
Note: the effects of this feature are both subtle and precise, intended only for exacting detail. Make sure you can see exacting detail first.&lt;br /&gt;
&lt;br /&gt;
Key Points: Source-match creates higher fidelity output with extra processing. Enable with SourceMatch = 1,2 or 3. Higher values are slower and more accurate. Can combine with Lossless setting (especially Lossless=2) for more detail again. Tweak speed with MatchPreset (like Preset). Will honor artefacts in source, so best used with quality sources. By default Sharpness becomes 0.2 &amp;amp; sharpness limiting (SLMode) is switched off, so adjust sharpness carefully.&lt;br /&gt;
&lt;br /&gt;
Quickstart: The templates below increase in both quality and slowness. Choose a preset as required, the very fastest presets are not suitable though. The default Sharpness=0.2 but you may wish to increase it slightly. Set TR2=1 for clean source, set TR2=2 or TR2=3 (slower) if more denoising required or use noise processing&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=1, Sharpness=XXX, TR2=X )             # Basic mode, fastest&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=1, Sharpness=XXX, TR2=X, Lossless=2 ) # Good quality, efficient, minor residual combing&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=2, Sharpness=XXX, TR2=X )             # Good quality, slower, no combing&lt;br /&gt;
 QTGMC( Preset=XXXX, SourceMatch=3, Sharpness=XXX, TR2=X, Lossless=2 ) # Best quality, slowest, very minor residual combing&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Intuitively, a deinterlacer should just inject new fields into the source, leaving the original pixels untouched. The temporal blur/resharpen in this script means that doesn't happen - the source pixels are changed in the output. The (optional) source-match steps attempt to fix this and make the result closer to the source. They work by looking at the difference between output and source at different points in the algorithm and correcting for that difference.&lt;br /&gt;
&lt;br /&gt;
Matching to the source will capture more source detail and reduce oversharpening / haloing. Caveat: the default algorithm temporally smooths but with source-matching much less so (by necessity / design). Source-matching may faithfully recreate artefacts in the source (e.g blocking, banding &amp;amp; some noise) so it's better for quality sources. The SourceMatch setting sets the mode: 0=off (standard [Q]TGMC algorithm), 1,2,3 for progressively more accurate but slower processing. Modes 2 &amp;amp; 3 restore almost exact source detail but are sensitive to noise &amp;amp; introduce occasional aliasing (mode 3 is less affected). Mode 1 is a more conservative halfway stage that rarely introduces artefacts.&lt;br /&gt;
&lt;br /&gt;
Since source-matching recovers sharpness, the Sharpness default is reduced to 0.2. Source-matching may initially appear less sharp than standard processing because it will not oversharpen. However, be careful if raising the sharpness, because sharpness limiting is switched off by default. This is because sharpness limiting reduces the the accuracy of these modes. Use the MatchEnhance setting to exaggerate additional detail found by modes 2 &amp;amp; 3. This gives a sharpening / detail enhancing effect and works well at sensible levels - but it's a slight cheat that should be used with care as it can easily enhance noise. Since source-match is sensitive to source noise you may want to set TR2 to 2 or 3 and/or use some noise processing (see below).&lt;br /&gt;
&lt;br /&gt;
The additional Lossless modes are designed to take source-match to its logical conclusion: Lossless mode 1 restores the *exact* pixels of the source into the output (provided NoiseRestore=0). This recovers a liitle more source detail but can introduce shimmering, minor combing, noise etc. Note the Sharpness and MatchEnhance settings have little effect in lossless mode 1. Lossless mode 2 makes the clip lossless before the sharpening &amp;amp; final temporal smooth. This removes most of the lossless artefacts and also allows sharpness control. This mode will not give an exactly lossless output but it will gain a little more detail.&lt;br /&gt;
&lt;br /&gt;
The source-match settings introduce further processing. SourceMatch mode 1 requires a second interpolation (e.g. NNEDI3), but it can use a lower quality settings than the main stage. SourceMatch mode 2 requires yet another interpolation, but works effectively with just a bob (but using a better interpolator can reduce occasional aliasing). Mode 3 adds just a little more processing and is usually worth it as it reduces artefacts. There is no exact control over the interpolations used (too many settings required), instead there are MatchPresets that work in a similar way to the main Preset. The extra processing suggests much slower speeds, but actually using higher speed presets (both MatchPreset and Preset) with source-matching can give results comparable to slower presets without it. Having said that, the extra detail from source-matching is too subtle to significantly affect very high speed main presets.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| SourceMatch&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| 0 = Source-matching off (standard algorithm), 1 = basic source-match, 2 = refined match, 3 = twice refined match&lt;br /&gt;
|-&lt;br /&gt;
| Lossless&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Puts exact source fields into result &amp;amp; cleans any artefacts. 0=off, 1=after final temporal smooth, 2=before resharpening. Adds some extra detail but: mode 1 gets shimmer / minor combing, mode 2 is more stable/tweakable but not exactly lossless. Default: '''0'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;for SourceMatch=1,2,3&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| MatchPreset&lt;br /&gt;
| (string)&lt;br /&gt;
| Speed/quality for basic source-match processing, select from &amp;quot;Placebo&amp;quot;, &amp;quot;Very Slow&amp;quot;, &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, &amp;quot;Faster&amp;quot;, &amp;quot;Very Fast&amp;quot;, &amp;quot;Super Fast&amp;quot;, &amp;quot;Ultra Fast&amp;quot; (no &amp;quot;Draft&amp;quot;). Ideal choice is the same as main preset, but can choose a faster setting (but not slower). Default: '''3 steps faster than MatchPreset'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchEdi&lt;br /&gt;
| (string)&lt;br /&gt;
| Override default interpolation method for basic source-match. Default method is same as main EdiMode setting (usually NNEDI3). Only need to override if using slow method for main interpolation (e.g. EEDI3) and want a faster method for source-match. Default: '''EdiMode'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;for SourceMatch=2,3&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| MatchPreset2&lt;br /&gt;
| (string)&lt;br /&gt;
| Speed/quality for refined source-match processing, select from &amp;quot;Placebo&amp;quot;, &amp;quot;Very Slow&amp;quot;, &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, &amp;quot;Faster&amp;quot;, &amp;quot;Very Fast&amp;quot;, &amp;quot;Super Fast&amp;quot;, &amp;quot;Ultra Fast&amp;quot; (no &amp;quot;Draft&amp;quot;). Faster settings are usually sufficient, but slower settings are useful if you get extra aliasing. Default: '''2 steps faster than MatchPreset'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchEdi2&lt;br /&gt;
| (string)&lt;br /&gt;
| Override interpolation method for refined source-match. Can be a good idea to pick MatchEdi2=&amp;quot;Bob&amp;quot; for speed. Default: '''NNEDI3'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchTR2&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Temporal radius for refined source-matching. 2=smoothness, 1=speed/sharper, 0=not recommended. Differences are very marginal. Basic source-match doesn't need this setting as its temporal radius must match TR1 core setting (i.e. there is no MatchTR1). Default: '''1'''&lt;br /&gt;
|-&lt;br /&gt;
| MatchEnhance&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Enhance the detail found by source-match modes 2 &amp;amp; 3. A slight cheat - will enhance noise if set too strong. Best set &amp;lt; 1.0. Default: '''0.5'''&lt;br /&gt;
|}&lt;br /&gt;
  	  	 &lt;br /&gt;
Defaults changes:&lt;br /&gt;
* MatchEdi is &amp;quot;Yadif&amp;quot; when MatchPreset=&amp;quot;Ultra Fast&amp;quot;&lt;br /&gt;
* MatchEdi2 is &amp;quot;TDeint&amp;quot; when MatchPreset=&amp;quot;Super Fast&amp;quot;, or &amp;quot;Bob&amp;quot; when MatchPreset=&amp;quot;Ultra Fast&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=1 )                # Enable basic source-match. Result somewhat closer to source.&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=1, Sharpness=0.4 ) # Basic source-match but sharper (up from 0.2). Be careful as sharpness limiting defaults to off&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=1, Lossless=2 )    # Basic source-match with &amp;quot;fake&amp;quot; lossless. Efficient setting for quality, may bring minor combing&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Medium&amp;quot;, SourceMatch=2, TR2=2 )       # Refined source-match, closer to source with no combing, slower. Increased TR2 reduces noise&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, SourceMatch=3 )              # Twice refined source-match, higher quality than mode 2, but a little bit slower again&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, SourceMatch=3, Lossless=2 )  # Twice refined source-match with fake lossless. Almost perfect fidelity mode with few artefacts&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, SourceMatch=3, Lossless=1 )  # Twice refined source-match with true lossless. Exact detail, but likely combing and shimmer&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=3, Lossless=2, MatchEnhance=0.75 ) # Further enhance detail found by refined match, a little sharper, may be noisier&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slow&amp;quot;, SourceMatch=3, Lossless=2, MatchEnhance=0.75, NoiseProcess=1, NoiseRestore=0.7, Sigma=1.5 ) # As above, denoise a little to help&lt;br /&gt;
 &lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, MatchPreset=&amp;quot;Very Fast&amp;quot;, SourceMatch=1 ) # Faster basic source-match preset (defaults to 3 steps faster than main Preset)&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, MatchPreset=&amp;quot;Faster&amp;quot;, MatchPreset2=&amp;quot;Ultra Fast&amp;quot;, SourceMatch=3 ) # Faster refined source-match preset as well&lt;br /&gt;
                                                                                         # (defaults to 2 steps faster than basic match Preset)&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, MatchPreset=&amp;quot;Slow&amp;quot;, MatchPreset2=&amp;quot;Slow&amp;quot;, SourceMatch=3 ) # Or use slower source-match presets (usually unnecessary)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Noise Bypass / Denoising===&lt;br /&gt;
&lt;br /&gt;
Key Points: QTGMC can remove, retain or strengthen noise and very fine detail. Has automatic &amp;quot;EZ&amp;quot; settings for simple operation. Refer to examples below&lt;br /&gt;
&lt;br /&gt;
The use of multiple temporal smooths means that this script denoises by default. QTGMC can extract some noise/grain from the source at the start, then optionally restore some of it back in again at the end. This allows either denoising, or for the grain/noise from the source to be retained. For simplest operation use one of the two automatic &amp;quot;EZ&amp;quot; modes, EZDenoise or EZKeepGrain (can only use one at once) and select a NoisePreset. For manual operation there are two modes: NoiseProcess=1 actually denoises at the start, whereas NoiseProcess=2 just identifies the noise in the source without removing it. NoiseProcess=1 is typically used for stronger denoising of the output, and NoiseProcess=2 is used to retain grain or for a very light denoise.&lt;br /&gt;
&lt;br /&gt;
Manual operation: after selecting a mode, set a Sigma value to estimate the level of source noise. Use the ShowNoise setting to help in this choice. Then decide how much of that noise to restore after the deinterlace. There are two restore points called GrainRestore/NoiseRestore, the amount of noise restored depends on their sum. For full denoising set them both to 0. For grain retention, a good starting point is 0.7/0.3 for NoiseProcess=1, and 0.3/0.1 for NoiseProcess=2. GrainRestore restores more stable &amp;quot;grain-like&amp;quot; detail. NoiseRestore restores finer more fluctuating noise. Usually best if GrainRestore is greater than NoiseRestore unless you want a very noisy look. Too high restoral values will give grain exaggeration and even luma changes.&lt;br /&gt;
&lt;br /&gt;
Important: You must use a non-zero value in one of EZDenoise, EZKeepGrain or NoiseProcess or no noise processing will occur&lt;br /&gt;
{|&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Quick Settings&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| EZDenoise&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Automatic setting to denoise source. Set &amp;gt; 0.0 to enable. Higher values denoise more. Can use ShowNoise to help choose value. Default: '''0.0'''&lt;br /&gt;
|-&lt;br /&gt;
| EZKeepGrain&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Automatic setting to retain source grain/detail. Set &amp;gt; 0.0 to enable. Higher values retain more grain. A good starting point = 1.0. Default: '''0.0'''&lt;br /&gt;
|-&lt;br /&gt;
| NoisePreset&lt;br /&gt;
| (string)&lt;br /&gt;
| Automatic setting for quality of noise processing. Choices: &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, and &amp;quot;Faster&amp;quot;. Default: '''&amp;quot;Fast&amp;quot;'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Full Settings&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NoiseProcess&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Bypass mode: 0 = disable, 1 = denoise source &amp;amp; optionally restore some noise back at end of script [use for stronger denoising], 2 = identify noise only &amp;amp; optionally restore some after QTGMC smoothing [for grain retention / light denoising]. Default: '''0''' (Very Slow: '''2''')&lt;br /&gt;
|-&lt;br /&gt;
| ChromaNoise&lt;br /&gt;
| (bool)&lt;br /&gt;
| When processing noise (NoiseProcess &amp;gt; 0), whether to process chroma noise or not (luma noise is always processed). Default: '''False'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Removing Noise&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Denoiser&lt;br /&gt;
| (string)&lt;br /&gt;
| Select denoiser to use for noise bypass / denoising. Select from &amp;quot;dfttest&amp;quot; or &amp;quot;fft3dfilter&amp;quot;. dfttest is better, but slower. Unknown value selects &amp;quot;fft3dfilter&amp;quot;. Default: '''fft3dfilter'''&lt;br /&gt;
|-&lt;br /&gt;
| DftThreads&lt;br /&gt;
| (0...)&lt;br /&gt;
| Number of threads to use if using &amp;quot;dfttest&amp;quot; for Denoiser, 0 = number of logical processors on system. Default: '''EdiThreads'''&lt;br /&gt;
|-&lt;br /&gt;
| DenoiseMC&lt;br /&gt;
| (bool)&lt;br /&gt;
| Whether to provide a motion-compensated clip to the denoiser for better noise vs detail detection (will be a little slower). Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| NoiseTR&lt;br /&gt;
| (0,1,2)&lt;br /&gt;
| Temporal radius used when analyzing clip for noise extraction. Higher values better identify noise vs detail but are slower. Default: '''1'''&lt;br /&gt;
|-&lt;br /&gt;
| Sigma&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Amount of noise known to be in the source, sensible values vary by source and denoiser, so experiment. Use ShowNoise to help. Default: '''2.0'''&lt;br /&gt;
|-&lt;br /&gt;
| ShowNoise&lt;br /&gt;
| (bool / 0.0...)&lt;br /&gt;
| Display extracted and &amp;quot;deinterlaced&amp;quot; noise rather than normal output. Set to true or false, or set a value (around 4 to 16) to specify contrast for displayed noise. Visualising noise helps to determine suitable value for Sigma or EZDenoise - want to see noise and noisy detail, but not too much clean structure or edges - fairly subjective. Pause the video when checking this. Default: '''False'''&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|colspan=2| &amp;lt;small&amp;gt;Restoring Noise&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GrainRestore&lt;br /&gt;
| (0.0...1.0...)&lt;br /&gt;
| How much removed noise/grain to restore before final temporal smooth. Retain &amp;quot;stable&amp;quot; grain and some detail (effect depends on TR2). Default: '''0.0''' (Very Slow: '''0.3''')&lt;br /&gt;
|-&lt;br /&gt;
| NoiseRestore&lt;br /&gt;
| (0.0...1.0...)&lt;br /&gt;
| How much removed noise/grain to restore after final temporal smooth. Retains any kind of noise. Default: '''0.0''' (Very Slow: '''0.1''')&lt;br /&gt;
|-&lt;br /&gt;
| NoiseDeint&lt;br /&gt;
| (string)&lt;br /&gt;
| When noise is taken from interlaced source, how to 'deinterlace' it before restoring. &amp;quot;Bob&amp;quot; &amp;amp; &amp;quot;DoubleWeave&amp;quot; are fast but with minor issues: &amp;quot;Bob&amp;quot; is coarse and &amp;quot;Doubleweave&amp;quot; lags by one frame. &amp;quot;Generate&amp;quot; is a high quality mode that generates fresh noise lines, but it is slower. Unknown value selects &amp;quot;DoubleWeave&amp;quot;. Default: '''&amp;quot;&amp;quot;'''&lt;br /&gt;
|-&lt;br /&gt;
| StabilizeNoise&lt;br /&gt;
| (bool)&lt;br /&gt;
| Use motion compensation to limit shimmering and strengthen detail within the restored noise. Recommended for &amp;quot;Generate&amp;quot; mode. Default: '''False'''&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
* EZDenoise and EZKeepGrain set automatic values for NoiseProcess, NoiseRestore/GrainRestore and Sigma&lt;br /&gt;
* Denoiser, DenoiseMC, NoiseTR, NoiseDeint and StabilizeNoise settings are determined by NoisePreset&lt;br /&gt;
* If using manual settings be sure to override *all* the values you are interested in&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Automatic Settings&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, EZDenoise=2.5,   NoisePreset=&amp;quot;Slow&amp;quot;   ) # Automatic denoising, value is denoising strength, preset is quality/speed tradeoff&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, EZKeepGrain=1.0, NoisePreset=&amp;quot;Faster&amp;quot; ) # Automatic grain retention - retain all source grain&lt;br /&gt;
&lt;br /&gt;
# Denoising&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, NoiseRestore=0.0, Sigma=4.0 ) # Fully denoise, strength of denoising depends on Sigma setting&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, NoiseRestore=0.0, Denoiser=&amp;quot;dfttest&amp;quot;, DenoiseMC=true, NoiseTR=2, Sigma=4.0 ) # More &amp;quot;accurate&amp;quot; denoising (slower)&lt;br /&gt;
&lt;br /&gt;
# Retain Noise / Grain&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, NoiseRestore=1.0, Sigma=2.0 ) # Retain *all* the noise / fine detail of a less noisy source&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=1, GrainRestore=1.0, Sigma=2.0 ) # Similar to above but only keep the more &amp;quot;stable&amp;quot; noise elements (depends on TR2)&lt;br /&gt;
 &lt;br /&gt;
# Strong Detail / Grain&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=2, GrainRestore=0.5, NoiseRestore=0.1, Sigma=2.5 ) # Using stronger mode 2, retains noise and sharpens slightly&lt;br /&gt;
QTGMC( Preset=&amp;quot;Slower&amp;quot;, NoiseProcess=2, GrainRestore=0.4, NoiseRestore=0.2, Sigma=1.8, \&lt;br /&gt;
       NoiseDeint=&amp;quot;Generate&amp;quot;, StabilizeNoise=true )  # As above with better quality, more stable detail and grain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Progressive Input===&lt;br /&gt;
&lt;br /&gt;
Key Points: Can remove horizontal shimmering effects from progressive sources. Experiment with InputType=1, 2 or 3 for best results. FPS will not be doubled&lt;br /&gt;
&lt;br /&gt;
This script is designed for deinterlacing and so by default expects an interlaced clip. However, much of its operation concerns the reduction of horizontal shimmering. It is possible to use the script to remove similar shimmer from a progressive clip by using the InputType setting. InputType=1 is used for general progressive material that contains less severe problems. InputType=2,3 are designed for badly deinterlaced material with considerable horizontal artefacts. These modes drop half the fields and recreate an interlaced stream from the others, which is then treated in the normal way. Mode 3 differs from mode 2 only in that it complements field parity of the input. Generally mode 1 will retain more detail, but repair less artefacts than modes 2,3. You may consider setting TR2 to a higher value (e.g. 2 or 3) when repairing progressive material.&lt;br /&gt;
&lt;br /&gt;
SourceMatch and Lossless modes are supported for progressive material. It works well for InputType=2,3, where the input is converted to an interlaced stream, and helps in detail retention. Source-match is much less useful for InputType=1&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| InputType&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Default = 0 for interlaced input. Settings 1,2 &amp;amp; 3 accept progressive input for deshimmer or repair. Frame rate of progressive source is not doubled. Mode 1 is for general progressive material. Modes 2 &amp;amp; 3 are designed for badly deinterlaced material. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| ProgSADMask&lt;br /&gt;
| (0.0...)&lt;br /&gt;
| Only applies to InputType=2,3. If ProgSADMask &amp;gt; 0.0 then blend InputType modes 1 and 2/3 based on block motion SAD. Higher values help recover more detail, but repair less artefacts. Reasonable range about 2.0 to 20.0, or 0.0 for no blending. Default: '''10.0''' ('''0.0''' for &amp;quot;Fast&amp;quot; and faster.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=1 )                   # Process progressive source, it will be temporally smoothed / deshimmered&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=2, ProgSADMask=12.0 ) # Process progressive source with major artefacts, slightly favoring detail over repairs&lt;br /&gt;
&lt;br /&gt;
===Shutter Speed Motion Blur / Frame Rate===&lt;br /&gt;
&lt;br /&gt;
Key Points: Can output video at single or double-frame rate. For smoother playback of single-rate output there are settings to add light motion blur to simulate different shutter angles (shutter speeds)&lt;br /&gt;
&lt;br /&gt;
By default QTGMC outputs video at &amp;quot;double-rate&amp;quot;, twice the frame rate of the source. This is because there are two separate images (fields) in every frame, which the deinterlacing process restores in full. By setting FPSDivisor to 2, every second frame is dropped and the output frame rate is the same as the source (&amp;quot;single-rate&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Single-rate output may look a little stuttery, depending on how the source was filmed/created. Adding motion blur to each frame can help with this, smoothing the feel of the slower rate playback. This is done by setting ShutterBlur to 1,2 or 3, then specifying the shutter angle that you wish the output to simulate. However, as there may be some motion blur already in the source you also need to specify/estimate the shutter angle used in the source. Shutter angles range from 0 to 360, with 0 being perfectly sharp and 360 being fully blurred from one frame to next (artificial output shutter angles &amp;gt; 360 are supported to a very limited degree). Motion-blur can also be applied to double-rate output, but the effect is less noticable.&lt;br /&gt;
&lt;br /&gt;
As motion analysis is block-based, motion blur of an object can &amp;quot;bleed&amp;quot; into surrounding, more static areas. This can be reduced using the slower ShutterBlur modes or by increasing the SBlurLimit setting (which is enabled and set to 4 by default). Both repair methods may reduce the level of motion blur a little though. In situations of complex motion the motion analysis can be incorrect, which can lead to inappropriate blurring.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| FPSDivisor&lt;br /&gt;
| (1,2...)&lt;br /&gt;
| 1 = Double-rate output, 2 = Single-rate output. Higher values can be used too (e.g. 60fps &amp;amp; FPSDivisor=3 gives 20fps output). '''Important:''' You do not need SelectEven() in the calling script if you use FPSDivisor=2. Default: '''1'''&lt;br /&gt;
|-&lt;br /&gt;
| ShutterBlur&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| 0 = Off, 1 = Enable, 2,3 = Higher precisions (slower). Higher precisions reduce blur &amp;quot;bleeding&amp;quot; into static areas a little. Default: '''0'''&lt;br /&gt;
|-&lt;br /&gt;
| ShutterAngleSrc&lt;br /&gt;
| (0...360)&lt;br /&gt;
| Shutter angle used in source. If necessary, estimate from motion blur seen in a single frame: 0=pin-sharp, 360=fully blurred from frame to frame. Default: '''180'''&lt;br /&gt;
|-&lt;br /&gt;
| ShutterAngleOut&lt;br /&gt;
| (0...360)&lt;br /&gt;
| Shutter angle to simulate in output. Extreme values may be rejected (depends on other settings). Cannot reduce motion blur already in the source. Default: '''180'''&lt;br /&gt;
|-&lt;br /&gt;
| SBlurLimit&lt;br /&gt;
| (0...)&lt;br /&gt;
| Limit motion blur where motion lower than given value. Increase to reduce blur &amp;quot;bleeding&amp;quot;. 0=Off. Sensible range around 2-12. Default: '''4'''&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=2, ShutterBlur=1, ShutterAngleSrc=30,  ShutterAngleOut=180 ) # Smooth single-rate output, when input has little blur&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=2, ShutterBlur=1, ShutterAngleSrc=180, ShutterAngleOut=180 ) # Keep &amp;quot;film&amp;quot; look on single-rate output, &amp;quot;film&amp;quot; input&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=2, ShutterBlur=2, ShutterAngleSrc=180, ShutterAngleOut=180, SBlurLimit=8 ) # Same but srongly reduce blur &amp;quot;bleeding&amp;quot;&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Slower&amp;quot;, FPSDivisor=1, ShutterBlur=1, ShutterAngleSrc=0,   ShutterAngleOut=720 ) # Blur some high shutter-speed footage, keep double rate&lt;br /&gt;
                                                                                                # [Use of artificially high shutter angles is limited]&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous Settings===&lt;br /&gt;
&lt;br /&gt;
Settings not covered above. Note that Border is false by default, which differs from TempGaussMC&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Border&lt;br /&gt;
| (bool)&lt;br /&gt;
| Pad a little vertically while processing (doesn't affect output size) - set true you see flickering on the very top or bottom line of the output. If you have wider edge effects than that, you should crop afterwards instead. Be wary of this setting if reusing QTGMC motion vectors in the calling script. Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| Precise&lt;br /&gt;
| (bool)&lt;br /&gt;
| Set to false to use faster algorithms with *very* slight imprecision in places&lt;br /&gt;
|-&lt;br /&gt;
| Preset&lt;br /&gt;
| (string)&lt;br /&gt;
| Sets a range of defaults for different encoding speeds. Select from &amp;quot;Placebo&amp;quot;, &amp;quot;Very Slow&amp;quot;, &amp;quot;Slower&amp;quot;, &amp;quot;Slow&amp;quot;, &amp;quot;Medium&amp;quot;, &amp;quot;Fast&amp;quot;, &amp;quot;Faster&amp;quot;, &amp;quot;Very Fast&amp;quot;, &amp;quot;Super Fast&amp;quot;, &amp;quot;Ultra Fast&amp;quot; &amp;amp; &amp;quot;Draft&amp;quot;. Default: '''&amp;quot;Slower&amp;quot;'''&lt;br /&gt;
|-&lt;br /&gt;
| Tuning&lt;br /&gt;
| (string)&lt;br /&gt;
| Tweaks the defaults for different source types. Choose from &amp;quot;None&amp;quot;, &amp;quot;DV-SD&amp;quot;, &amp;quot;DV-HD&amp;quot;. Default: '''&amp;quot;None&amp;quot;''' [An idea for development based on the x264 approach, but as I don't work with many source types it has seen little development]&lt;br /&gt;
|-&lt;br /&gt;
| ShowSettings&lt;br /&gt;
| (bool)&lt;br /&gt;
| Display all the current parameter values - useful to find preset defaults. Default: '''False'''&lt;br /&gt;
|-&lt;br /&gt;
| GlobalNames&lt;br /&gt;
| (string)&lt;br /&gt;
| The name used to expose intermediate clips to calling script. See External Linkage section. Default: '''QTGMC'''&lt;br /&gt;
|-&lt;br /&gt;
| PrevGlobals&lt;br /&gt;
| (string)&lt;br /&gt;
| What to do with global variables from earlier QTGMC call that match above name. Either &amp;quot;Replace&amp;quot;, or &amp;quot;Reuse&amp;quot; (for a speed-up). Default: '''Undefined'''&lt;br /&gt;
|-&lt;br /&gt;
| ForceTR&lt;br /&gt;
| (0,1,2,3)&lt;br /&gt;
| Ensure globally exposed motion vectors are calculated to this radius even if not needed by QTGMC. 0 = disabled. Default: '''0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Default for Precise depends on Preset.&lt;br /&gt;
&lt;br /&gt;
==External Linkage==&lt;br /&gt;
===Accessing QTGMC Motion Vectors===&lt;br /&gt;
QTGMC now exposes its motion vectors and other intermediate clips to the calling script through global variables. These globals are uniquely named. By default they begin with the prefix &amp;quot;QTGMC_&amp;quot;. The available clips are:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Backward motion vectors&lt;br /&gt;
| bVec1, bVec2, bVec3 (temporal radius 1 to 3)&lt;br /&gt;
|-&lt;br /&gt;
| Forward motion vectors&lt;br /&gt;
| fVec1, fVec2, fVec3&lt;br /&gt;
|-&lt;br /&gt;
| Filtered clip used for motion analysis&lt;br /&gt;
| srchClip&lt;br /&gt;
|-&lt;br /&gt;
| MVTools &amp;quot;super&amp;quot; clip for filtered clip&lt;br /&gt;
| srchSuper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Not all these clips are necessarily created - it depends on your QTGMC settings. To ensure motion vector creation to radius X, set ForceTR=X&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
 QTGMC( Preset=&amp;quot;Medium&amp;quot;, ForceTR=2, SubPel=2 )  # Ensure we get temporal radius of at least 2, read note below regarding SubPel&lt;br /&gt;
 super = MSuper( pel=2, levels=1 )              # Faster to use levels=1, don't usually need more levels once you have the vectors&lt;br /&gt;
 MDegrain2( super, QTGMC_bVec1,QTGMC_fVec1, QTGMC_bVec2,QTGMC_fVec2 )  # Use QTGMC-created motion vectors&lt;br /&gt;
&lt;br /&gt;
====Important Notes====&lt;br /&gt;
&lt;br /&gt;
* The SubPel setting to QTGMC must match the pel setting in MVTools or you will get visual errors or crashes. Default SubPel in QTGMC varies depending on Preset, &amp;quot;Medium&amp;quot; and quicker settings get SubPel=1, slower settings get SubPel=2. Default pel in MVTools is 2&lt;br /&gt;
* Do not use Border=true if using motion vectors in this way, or the clips exposed will have an 8 pixel border top and bottom (i.e. they won't match your source)&lt;br /&gt;
&lt;br /&gt;
===Multiple QTGMC Calls===&lt;br /&gt;
The section above showed how global variables are used to expose the workings of QTGMC. However, if there are multiple calls to QTGMC in your script then you should consider whether they should work together with their exposed globals. By default the globals for each call to QTGMC will overwrite the globals from previous calls. However there are actually three options in this case:&lt;br /&gt;
&lt;br /&gt;
* Use the setting GlobalNames to make unique global names for each call. E.g. if you set GlobalNames=&amp;quot;TestA&amp;quot; you will receive a global called TestA_bVec1.&lt;br /&gt;
* Set PrevGlobals=&amp;quot;Reuse&amp;quot; to reuse existing similar named globals for this run &amp;amp; not recalculate motion vectors etc. This will improve performance.&lt;br /&gt;
* Set PrevGlobals=&amp;quot;Replace&amp;quot; to overwrite similar named globals from a previous run. This is the default and easiest option for most use cases.&lt;br /&gt;
&lt;br /&gt;
Here's an artifical example of multiple calls in a script to show the options:&lt;br /&gt;
&lt;br /&gt;
 q1 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot; )  # QTGMC_bVec1 and similar variables are created&lt;br /&gt;
 q2 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot; )  # Recalculates and replaces variables QTGMC_bVec1 and similar with new values (same as setting PrevGlobals=&amp;quot;Replace&amp;quot;)&lt;br /&gt;
 q3 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot;, PrevGlobals=&amp;quot;Reuse&amp;quot;   )  # Reuses QTGMC_bVec1 motion vectors from q2 above. Doesn't recalculate, improving performance&lt;br /&gt;
 q4 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot;, GlobalNames=&amp;quot;TestA&amp;quot;   )  # Creates new variables called TestA_bVec1...&lt;br /&gt;
 q5 = c.QTGMC( Preset=&amp;quot;Medium&amp;quot;, GlobalNames=&amp;quot;TestA&amp;quot;, PrevGlobals=&amp;quot;Reuse&amp;quot; ) # Reuses the TestA_bVec1 motion vectors&lt;br /&gt;
&lt;br /&gt;
Here's a realistic example. This simple script repairs progressive material with very bad deinterlacing artefacts. It needs two calls to QTGMC:&lt;br /&gt;
&lt;br /&gt;
 t = QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=2 )&lt;br /&gt;
 b = QTGMC( Preset=&amp;quot;Slower&amp;quot;, InputType=3, PrevGlobals=&amp;quot;Reuse&amp;quot; ) # Reuse motion vectors from first call for a good speed-up&lt;br /&gt;
 Repair( t, b, 1 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TempGaussMC Notes==&lt;br /&gt;
In its default setup this script is very similar in operation to TempGaussMC_beta2. The call QTGMC() is very similar to:&lt;br /&gt;
&lt;br /&gt;
 TempGaussMC_beta2( 2,2,1, Border=false, SVthin=0.0 )&lt;br /&gt;
&lt;br /&gt;
There are a few key differences:&lt;br /&gt;
&lt;br /&gt;
* QTGMC typically uses &amp;quot;NNEDI3&amp;quot; for interpolation (TempGaussMC_beta2 uses &amp;quot;EEDI2&amp;quot; by default)&lt;br /&gt;
* Sharpness default in QTGMC is always 1.0 (or 0.2 if using source-match) - adjusted internally to give very roughly the same sharpness across settings / presets&lt;br /&gt;
* In QTGMC, SVThin defaults to 0, Border defaults to false&lt;br /&gt;
* Lossless and Draft modes are supported but in a different way&lt;br /&gt;
* The parameter order is the same up to EdiMode, a couple of 'lesser' parameters have had name changes for consistency&lt;br /&gt;
&lt;br /&gt;
==Acknowledgements==&lt;br /&gt;
Thanks go to Didée for the script from where this began.&lt;br /&gt;
&lt;br /&gt;
Also thanks to the plugin coders: Manao, Fizick, Tritical, Kassandro, Tsp, SEt, Tom Barry, Foxyshadis, TSchniede, Kurosu, mg262 and any others...&lt;br /&gt;
&lt;br /&gt;
And to the many people who have given feedback, reported bugs and offered suggestions to help improve the script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# v3.357s&lt;br /&gt;
# - high bit depth now basically work in avs+&lt;br /&gt;
#&lt;br /&gt;
# v3.354s&lt;br /&gt;
# - added optional chikuzen PlanarTools for YUY2 using nonyuy2clipin/nonyuy2clipout in AnimeIVTC() v2.20&lt;br /&gt;
#&lt;br /&gt;
# v3.353s&lt;br /&gt;
# - added ndjamena suggestion for maximum temporal radius&lt;br /&gt;
# - added DftDither to controle dfttest dither Parameter&lt;br /&gt;
#&lt;br /&gt;
# v3.352s&lt;br /&gt;
# - added useEdiExt&lt;br /&gt;
# - added tr0=-1 to use the EdiExt clip (if there is no EdiExt clip then it will not work)&lt;br /&gt;
# - rep0 now will be 0 if tr0 &amp;lt; 1&lt;br /&gt;
#&lt;br /&gt;
# v3.347s&lt;br /&gt;
# - fix SourceMatch (bug after new YUY2 method, thanks to ndjamena for report it)&lt;br /&gt;
#&lt;br /&gt;
# v3.346s&lt;br /&gt;
# - EEDI3+NNEDI3 bug fix by ndjamena&lt;br /&gt;
# - Renamed DftThreads parameter to FftThreads, to set the ncpu argument of FFT3DFilter (from VS)&lt;br /&gt;
# - FFT3DFilter will work now in YUY2, use it with Denoiser=&amp;quot;fft3df&amp;quot; (or use NoisePreset)&lt;br /&gt;
#&lt;br /&gt;
# v3.345s&lt;br /&gt;
# - work with SMDegrain_KNLMeansCL now to process chroma too&lt;br /&gt;
#&lt;br /&gt;
# v3.343s&lt;br /&gt;
# - edit in ChromaEdi&lt;br /&gt;
# - others&lt;br /&gt;
#&lt;br /&gt;
# v3.34s (mod) 2016 12 18 (ravewulf idea in another way)&lt;br /&gt;
# - Added yadifmod2 (if you need old one use it like this EdiMode=&amp;quot;cYadif&amp;quot; or EdiMode=&amp;quot;RepcYadif&amp;quot;)&lt;br /&gt;
# - fast and clean up YUY2 (will work in x64 now, no need to SSETools)&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2016 12 06&lt;br /&gt;
# - Add TR2=4 and TR2=5&lt;br /&gt;
# - add TV_range bool and dither_luma_rebuild (from SMDegrain) Str and Amp&lt;br /&gt;
# - for avsplus now QTGMC_Bob is ready for any 420, not only yv12&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2016 04 11&lt;br /&gt;
# - Add KNLMeansCL as another Denoiser to NoiseProcess&lt;br /&gt;
# - others&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2016 01 19&lt;br /&gt;
# - make QTGMC_deflate/QTGMC_inflate work with YUY2 using masktool2 for avs 2.60&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 10 23&lt;br /&gt;
# - revert to QTGMC_deflate/QTGMC_inflate quoted from Dogway&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 9 10&lt;br /&gt;
# - fix Multiple QTGMC Calls&lt;br /&gt;
# - others fix&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 8 6&lt;br /&gt;
# - some changes in bob to speed up&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod) 2015 8 4&lt;br /&gt;
# - fix bug in YUY2 with SourceMatch&lt;br /&gt;
# - add slice=false to ditherpost to avoid artefacts&lt;br /&gt;
#&lt;br /&gt;
# v3.33s (mod)&lt;br /&gt;
# - fix bob chroma&lt;br /&gt;
# - work with new masktool2 for avs 2.60 in YUY2&lt;br /&gt;
#&lt;br /&gt;
# v3.33d (mod)&lt;br /&gt;
# - Added 32 bit precision option through the lsbd (for dfttest and knlmeanscl) and lsb (mdegrain) options.&lt;br /&gt;
# - optimized some mask handling a bit as originally suggested by Vit&lt;br /&gt;
# - others&lt;br /&gt;
#&lt;br /&gt;
# v3.33&lt;br /&gt;
# - Increased maximum value for Rep0, Rep1 and Rep2 to 7 (from 5). Higher values help with flicker on static detail, potential for minor motion blur&lt;br /&gt;
# - Bug fix for the fact that Bob always outputs a BFF clip regardless of field order of input (thanks ajp_anton)&lt;br /&gt;
# - Improved generation of noise (NoiseDeint=&amp;quot;Generate&amp;quot;) for noise bypass / EZKeepGrain&lt;br /&gt;
# - Minor change to denoising&lt;br /&gt;
#&lt;br /&gt;
# v3.32&lt;br /&gt;
# - Bugfix with shutter blur and ChromaMotion (thanks Heaud)&lt;br /&gt;
# - Tweaked vector recalculation for shutter motion blur&lt;br /&gt;
# - Changed defaults for TR2 when using source-match&lt;br /&gt;
# - Minor bugfix with SLMode/SLRad on pass-through settings&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links:==&lt;br /&gt;
*[http://www.spirton.com/uploads/QTGMC/QTGMC-3.32-Spanish.rar Spanish Instructions (3.32)] by Overdrive80&lt;br /&gt;
*[http://forum.doom9.org/showpost.php?p=1732845&amp;amp;postcount=2041 QTGMC-3.33s] by A.SONY&lt;br /&gt;
&amp;lt;!--[http://www.spirton.com/uploads/QTGMC/QTGMC-3.32.zip Download (v3.32), with English instructions] [[Media:QTGMC-3.32.avsi| QTGMC-3.32.avsi]] [http://www.spirton.com/uploads/QTGMC/QTGMC-3.33.avsi QTGMC-3.33.avsi]--&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Deinterlacing|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/SMDegrain</id>
		<title>SMDegrain</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/SMDegrain"/>
				<updated>2018-07-11T06:47:02Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Denoisers|Spatial-Temporal Denoisers|Deep_color_tools}}&lt;br /&gt;
{{Filter&lt;br /&gt;
| Caroliano, {{Author/Dogway}}, Real.Finder&lt;br /&gt;
| v3.1.2.100s&lt;br /&gt;
|&lt;br /&gt;
* [https://pastebin.com/u1xsPLwK SMDegrain]&amp;lt;br/&amp;gt;&lt;br /&gt;
* VapourSynth: [[https://github.com/HomeOfVapourSynthEvolution/havsfunc HAvsFunc]]&lt;br /&gt;
| 4=Spatial-Temporal Denoisers&lt;br /&gt;
| 7=[https://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-0d-A-Quality-Denoising-Solution VideoHelp], [https://forum.doom9.org/showthread.php?t=163604 Doom9], [https://forum.doom9.org/showthread.php?t=174121 Doom9 mod] }}&lt;br /&gt;
&lt;br /&gt;
'''SMDegrain''', the Simple MDegrain Mod, is mainly a convenience function for using [[MVTools]]. It is not a magic function (the magic comes from mvtools), it just takes the repetitive code blocks needed for mvtools+mdegrain denoising and wraps them into this function.&lt;br /&gt;
&lt;br /&gt;
It has internal switches for interlaced or YUY2 content, saving you from writing long lines of code and preventing from possible mistakes. YUY2 is even automatically detected. Apart of that it adds some small and simple enhancements listed below, like easy prefilters, slightly better motion vectors (thanks to an internal TV-&amp;gt;PC luma expansion and the possibility of dark enhancement), easy nnedi3 subpixel accuracy, globals import/export, show panel, and contra-sharpening option.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
[[MaskTools2]] and [[MVTools]] (mod versions recommended)&lt;br /&gt;
&lt;br /&gt;
===Optional===&lt;br /&gt;
* [[Dither]] for 16 bit processing (v1.26.5 or higher)&lt;br /&gt;
* [[RgTools]] for contrasharp=true or prefilter=1 or 2&lt;br /&gt;
* [[LSFmod]] for contrasharp &amp;gt; 0.0&lt;br /&gt;
* [[dfttest]] for prefilter=3&lt;br /&gt;
* [[nnedi3]] for subpixel=3&lt;br /&gt;
''Beware, tp7's plugin mods have no YUY2 support, require AviSynth 2.6a5 or latest Set's MT for v2.6, and Visual C++ 2012 Redistributable.''&lt;br /&gt;
&lt;br /&gt;
==Aknowledgements==&lt;br /&gt;
Original '''SMDegrain()''' by Caroliano&lt;br /&gt;
&lt;br /&gt;
This function uses code from Didée, and cretindesalpes' creations, and has parts inspired by LaTo's functions (old readme, Show panel, etc) and Jawed's Killer() function, apart of relying on third-party tools for certain features.&lt;br /&gt;
&lt;br /&gt;
Special thanks go to: cretindesalpes, Didée, Gavino, Sagekilla, and MVtools people.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The benefit of using SMDegrain over directly calling MDegrain is:&lt;br /&gt;
* '''High bitdepth denoising''': This is the first wrapper function to support 32bit (16bit pipeline) MDegrain denoising.&lt;br /&gt;
* '''Higher temporal radius''' (tr&amp;gt;3): The [[MVTools]] mod (and hence this script) also allows for hack-free higher temporal radius.&lt;br /&gt;
* '''Contrasharpening''': The pretty much standarized sharpening method created by Didée is blended into the function, so you can easily use it in 16bit pipelines. An strength biased method is also possible. A ''CClip'' parameter is also supplied so you can choose another source to sharpen from, other than the default '''SMDegrain()''' input.&lt;br /&gt;
* '''YUY2 support''': It automatically and fully supports YUY2.&lt;br /&gt;
* '''Interlaced support''': It supports interlaced sources with most parameters as well.&lt;br /&gt;
* '''Extended Subpixel Accuracy''': [[nnedi3]] is allowed as a subpixel filter, not necessary in most cases, but if you are quality mad try to set it on.&lt;br /&gt;
* '''Better Motion Vectors''': An internal conversion from TV levels (reduced values range) to PC levels (extended values range) is done to the clip the motion analysis will be performed on, so you can get better motion vectors (up to 16%)&lt;br /&gt;
* '''Prefilters''': An easy parameter to load generalist prefilters that perform well in most situations. It also accepts loading your personal prefiltered clips.&lt;br /&gt;
* '''Motion Filters''': New in version 3.0d. It will allow you to filter those parts where '''SMDegrain()''' couldn't find a matching block for denoising. One use for it would be spatial denoisers or deblockers since high-motion areas are prone to heavy blocking and artifacts.&lt;br /&gt;
* '''Global Motion Vector In/Out''': Reuse motion vectors globals for faster processing, or just use '''SMDegrain()''' as a shortcut for creating nice quality motion vectors.&lt;br /&gt;
* '''RefineMotion Option''' (MRecalculate): Slower, but sometimes a big quality boost.&lt;br /&gt;
* '''Show Panel''': Everything is off by default, but some settings change in context. Check what is happening behind the scenes and have a fast look at all your settings.&lt;br /&gt;
* '''Robust''': Everything of the above works with each other no problem (interoperability), also in the process some error proof, bugfixes and bug workarounds were implemented or at least warned so you know that most of what is done is reliable, bugs free and optimized. The general idea is to serve as an user friendly front end for vanilla mvtools2+mdegrain or as the original script creator entitled &amp;quot;To make your scripts shorter and less geeky&amp;quot;. Most parameters are turned off or defaulted to mvtools2 defaults and features are based on popular general conceived procedures.&lt;br /&gt;
&lt;br /&gt;
Parameters are arranged in 3 blocks.&lt;br /&gt;
*'''Basic''': For people who just need the most basic parameters because either they don't have the time, knowledge or interest into looking for complex settings. Or they are content with defaults (pretty much mvtools defaults)&lt;br /&gt;
*'''High Bit Depth''': There's not much to think about this. This just enables (default is disabled), high bit depth denoising. That is, more quality, but also needs more processing power hence slower.&lt;br /&gt;
*'''Advanced''': If you run into some problems, are nitpicking or just want to fine tune your settings according to the source, have a look at this block, it contains the rest and bulk of the function parameters.&lt;br /&gt;
&lt;br /&gt;
Temporal denoising is a widespread procedure for noise cleaning in most type of video sources. The only limitation for '''SMDegrain()''' being when there are (very) high levels of grain, in which case you would need to rely on more &amp;quot;creative&amp;quot; and source centric solutions (see [https://forum.doom9.org/showthread.php?p=1544619#post1544619 this] and ''prefilter'' notes), but those are the rare cases.&lt;br /&gt;
&lt;br /&gt;
To picture what the function does, a simple '''SMDegrain()''' call matches the next code (for SD resolutions):&lt;br /&gt;
&lt;br /&gt;
 super_search = Dither_Luma_Rebuild(S0=1.0,c=0.0625).MSuper(rfilter=4)&lt;br /&gt;
 &lt;br /&gt;
 bv2 = super_search.MAnalyse(isb = true,  delta = 2, overlap= 4)&lt;br /&gt;
 bv1 = super_search.MAnalyse(isb = true,  delta = 1, overlap= 4)&lt;br /&gt;
 fv1 = super_search.MAnalyse(isb = false, delta = 1, overlap= 4)&lt;br /&gt;
 fv2 = super_search.MAnalyse(isb = false, delta = 2, overlap= 4)&lt;br /&gt;
 &lt;br /&gt;
 MDegrain2(MSuper(levels=1), bv1, fv1, bv2, fv2, thSAD=300, thSADC=150)&lt;br /&gt;
&lt;br /&gt;
As you see no wizardry. The only changes made are the TV-&amp;gt;PC luma expansion (''Dither_Luma_Rebuild''(S0=1.0,c=0.0625) similar to ''color_yuv''(levels=&amp;quot;TV-&amp;gt;PC&amp;quot;)) so you have more range to detect motion vectors, the ''rfilter''=4 for a bit more quality super search, the changed default of ''overlap'' from 0 to 4 and ''thSAD'' and ''thSADC'' from 400 to 300 and 150 respectively for safer results. Nothing else. The problem is that as soon you want to change a little thing like say temporal radius it requires you to edit in more than a few places, so this is very annoying and so forth the main reason for '''SMDegrain()'''.&lt;br /&gt;
 &lt;br /&gt;
==Using the filter==&lt;br /&gt;
*Input can be YV12 or YUY2, and '''must''' be TV range (which is normal). It's also recommended to be in modulus 16 size (resolution multiple of 16), although not strictly necessary.&lt;br /&gt;
*Crop first (when not interlaced).&lt;br /&gt;
*Recommended to deblock if blocking is present, before crop (when cropping) and '''SMDegrain()'''. Or you can use ''prefilter''=3 which is also a good deblocker (dfttest) and let '''SMDegrain()''' clean the blocking for you.&lt;br /&gt;
*Default output mode(dithering) for ''lsb''=true (when non interlaced) is ordered dither (optimized for encoding), so it is not recommended to keep filtering non-edge areas of your source, you can instead use ''mode''=6 (error diffusion) or ''lsb_out''=true and keep filtering in 16bit&lt;br /&gt;
*Read the ''prefilter'' setting explanation for solutions to problematic sources&lt;br /&gt;
&lt;br /&gt;
==Ready-to-run Samples==&lt;br /&gt;
&lt;br /&gt;
I consider this a good starting point where to start tweaking, whether be it for quality or speed:&lt;br /&gt;
 SMDegrain(tr=2,thSAD=250,contrasharp=true,refinemotion=true,lsb=true)&lt;br /&gt;
 &lt;br /&gt;
A basic, fast, yet very functional call for light grain (mvtools2+masktools2 only needed)&lt;br /&gt;
 SMDegrain(tr=1,thSAD=300,contrasharp=true)&lt;br /&gt;
&lt;br /&gt;
A typical more worked call compatible with official mvtools2 (mvtools2+masktools2 only needed)&lt;br /&gt;
 SMDegrain(tr=2,thSAD=300,interlaced=true,prefilter=1,contrasharp=true)&lt;br /&gt;
&lt;br /&gt;
Good compromise between speed and quality (denoising with high precision)&lt;br /&gt;
 SMDegrain(tr=2,thSAD=300,contrasharp=true,refinemotion=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
Similar to the previous example, the next is a personal preference. Turned all chroma off for safeness (chroma is rarely temporal-reliable enough) and speed.&lt;br /&gt;
 SMDegrain(tr=2,thSAD=300,contrasharp=true,refinemotion=true,lsb=true,chroma=false,plane=0)&lt;br /&gt;
&lt;br /&gt;
This is a good example to show that interlaced YUY2 sources can be processed seamlessly.&lt;br /&gt;
 # mod4 (modulus 4) interlaced YUY2 source&lt;br /&gt;
 SMDegrain(tr=1,thSAD=250,interlaced=true,contrasharp=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
HD sources are detected automatically, and as so settings are optimized for speed; ''pel''=1, ''hpad''=0, ''vpad''=0, ''blksize''=32, ''overlap''=16, ''truemotion''=false&lt;br /&gt;
 # HD source (from 1100px wide or 600px high up)&lt;br /&gt;
 SMDegrain(tr=2,thSAD=180,prefilter=2,contrasharp=30,refinemotion=true,lsb=true,chroma=false,plane=0)&lt;br /&gt;
&lt;br /&gt;
For dealing with dark scenes (you could also add ''truemotion''=false)&lt;br /&gt;
 SMDegrain(tr=3,thSAD=300,contrasharp=true,str=2.0,refinemotion=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
Tackling a grainy source:&lt;br /&gt;
 pre=fluxsmootht(3).removegrain(11)&lt;br /&gt;
 SMDegrain(tr=6,thSAD=500,contrasharp=30,prefilter=pre,str=1.2,refinemotion=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
Here 2 things are shown; how to work on a 16bit pipeline, and reference a prior state of the script for ''contrasharp''.&lt;br /&gt;
 sharp=last&lt;br /&gt;
 dfttest(tbsize=1,sigma=10,lsb=true)&lt;br /&gt;
 &lt;br /&gt;
 SMDegrain(tr=3,thSAD=300,CClip=sharp,lsb_in=true,lsb_out=true)&lt;br /&gt;
 &lt;br /&gt;
 LinearResize(854,480,lsb_in=true, mode=0)&lt;br /&gt;
&lt;br /&gt;
(Re)using motion vectors globals&lt;br /&gt;
 SMDegrain(tr=1,thSAD=400,prefilter=3,str=1.4,globals=3)    # Output vectors only&lt;br /&gt;
 MFlowFps(Super, bv1, fv1, num=60,den=1)&lt;br /&gt;
 &lt;br /&gt;
==Parameters==&lt;br /&gt;
{{FuncDef|SMDegrain}} (clip input, int &amp;quot;tr&amp;quot;, int &amp;quot;thSAD&amp;quot;, int &amp;quot;thSADC&amp;quot;, bool &amp;quot;RefineMotion&amp;quot;, val &amp;quot;contrasharp&amp;quot;, clip &amp;quot;CClip&amp;quot;, bool &amp;quot;interlaced&amp;quot;, int &amp;quot;plane&amp;quot;, int &amp;quot;Globals&amp;quot;, int &amp;quot;pel&amp;quot;, int &amp;quot;subpixel&amp;quot;, val &amp;quot;prefilter&amp;quot;, clip &amp;quot;mfilter&amp;quot;, int &amp;quot;blksize&amp;quot;, int &amp;quot;overlap&amp;quot;, int &amp;quot;search&amp;quot;, bool &amp;quot;truemotion&amp;quot;, int &amp;quot;limit&amp;quot;, int &amp;quot;limitc&amp;quot;, int &amp;quot;thSCD1&amp;quot;, int &amp;quot;thSCD2&amp;quot;, bool &amp;quot;chroma&amp;quot;, int &amp;quot;hpad&amp;quot;, int &amp;quot;vpad&amp;quot;, bool &amp;quot;lsb&amp;quot;, bool &amp;quot;lsb_in&amp;quot;, bool &amp;quot;lsb_out&amp;quot;, int &amp;quot;mode&amp;quot;, val &amp;quot;Show&amp;quot;, float &amp;quot;Str&amp;quot;, float &amp;quot;Amp&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Basic===&lt;br /&gt;
&lt;br /&gt;
{{ParR|tr|int|2|1-128}}&lt;br /&gt;
:Temporal radius, selects the MDegrain to use. This can be considered the strength of the denoising. Higher is generally better, but also much slower and each extra frame gives less improvement.&lt;br /&gt;
:tr 4+ requires Dither's MVTools2 mod. Max 64 for interlaced.&lt;br /&gt;
&lt;br /&gt;
{{Par|thSAD|int|300}}&lt;br /&gt;
{{Par|thSADC|int|150}}&lt;br /&gt;
:&amp;quot;Sum of Absolute Differences&amp;quot; threshold. This is the spatial difference threshold where the motion search will consider whether to denoise given the formula: &lt;br /&gt;
::Denoise_Weight = max( 0, 1 - 2*blockSAD² / (thSAD² + blockSAD²) )&lt;br /&gt;
:This spatial difference will be compared in blocks (''blksize''). If your noise is not getting into consideration for the denoising try raising this value, or reduce its SAD with previous prefiltering. You can alternatively raise ''blksize'', which will likely even blocks SAD. Low values can result in staggered/blotchy denoising, large values can result in ghosting and artifacts. Values in the range 200~600 are usual.&lt;br /&gt;
:thSADC is the same logic applied to chroma planes, since there are less differences on the chroma planes it uses by default thSAD/2 for safer chroma results.&lt;br /&gt;
:'''Recommendation''': Use slightly greater values than you are used to in other mdegrain based functions since the internal clip for the motion search in SMDegrain() has the contrast increased.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Contrasharp|bool|False|True/False}}&lt;br /&gt;
{{ParR|Contrasharp|int|-|0-100}}&lt;br /&gt;
:Contrasharpening is a technique that compares the differences between the clip before blurring (original) and after blurring (filtered), and sharpens locally with consequent strength. By default the &amp;quot;sharp&amp;quot; clip is the input, the &amp;quot;after&amp;quot; clip is the denoised clip. Alternately, a &amp;quot;before&amp;quot; clip can be specified with ''CClip'' (See Advanced).&lt;br /&gt;
:*True: use Didée's Contrasharpening() function (ContraHD() for HD) which &amp;quot;Sharpens the denoised clip, but doesn't add more to any pixel than what was removed previously.&amp;quot; In the practice you will get a slightly sharper result than the source, which is welcome.&lt;br /&gt;
:*An integer: LSFmod() will be used instead. It will be much slower, but maybe better for certain sources. Its value will serve as a contrasharpening multiplier, use one around 50 for similar strength as Contrasharpening(). LSFmod is less-suitable for HD sources.&lt;br /&gt;
&lt;br /&gt;
{{Par|RefineMotion|bool|False}}&lt;br /&gt;
:Refines and recalculates motion data of previously estimated (by MAnalyse) motion vectors. Turn it on for better motion vectors, specially when dealing with ghosting issues, small details or lineart fading and whatnot.&lt;br /&gt;
:'''Caution''': It won't help much if you use a ''prefilter'' so strong that blurs too much or kills all the details you are aiming to protect in first place.&lt;br /&gt;
&lt;br /&gt;
{{ParR|plane|int|4|0-4}}&lt;br /&gt;
:Select the planes you wish to process:&lt;br /&gt;
:*0: luma only&lt;br /&gt;
:*1: chroma U&lt;br /&gt;
:*2: chroma V&lt;br /&gt;
:*3: both chromas&lt;br /&gt;
:*4: all (Default)&lt;br /&gt;
:'''Caution''': plane=1-4 can sometimes create chroma smearing. In such case I recommend denoising chroma planes in the spatial domain.&lt;br /&gt;
&lt;br /&gt;
{{Par|Interlaced|bool|False}}&lt;br /&gt;
:If you want to denoise an interlaced source set this parameter to true. Output will also be interlaced. If you pair this with ''lsb_out''=true then you will have to &amp;lt;tt&amp;gt;Weave().DitherPost(mode=6,interlaced=true)&amp;lt;/tt&amp;gt; when converting back to 8 bit.&lt;br /&gt;
&lt;br /&gt;
===High Bit Depth Processing And Dithering===&lt;br /&gt;
All High Bit Depth parameters require [[Dither]] and [[MVTools]] 2.6+. The [[VapourSynth]] version doesn't use these parameters; it automatically outputs the same bitdepth as the input.&lt;br /&gt;
&lt;br /&gt;
{{Par|lsb_in|bool|False}}&lt;br /&gt;
:Set true if you use a 16 bits filter chain. *(EXPERIMENTAL, use under test environment)&lt;br /&gt;
&lt;br /&gt;
{{Par|lsb_out|bool|False}}&lt;br /&gt;
:Output to 16-bit instead of 8-bit. Use the helpers at the end of the SMDegrain() script to use Ditherpost() with YUY2 formats.&lt;br /&gt;
&lt;br /&gt;
{{Par|lsb|bool|False}}&lt;br /&gt;
:This enables 32 bit depth precision for denoising. You gain extra denoising accuracy, most noticeable in the prevention of banding in flat areas. Automatically set if either ''lsb_in'' or ''lsb_out'' are enabled.&lt;br /&gt;
&lt;br /&gt;
{{ParR|mode|int|0|-1-8}}&lt;br /&gt;
:This is the '''mode''' of [[Dither#DitherPost|DitherPost]] when ''lsb_out''=False, as a dithering method must be chosen for the 32bit-&amp;gt;8bit conversion. (Interlaced content is locked to mode=6) The default ''mode''=0 will help you optimize the dithering for optimum encodings when no further non-edge processing is done. Use ''mode''=6 (error diffusion) if further processing will be done.&lt;br /&gt;
&lt;br /&gt;
===Advanced===&lt;br /&gt;
&lt;br /&gt;
{{ParR|pel|int|2|1,2,4}}&lt;br /&gt;
:Accuracy of the motion estimation:&lt;br /&gt;
:* 1: full-pixel (Default for HD)&lt;br /&gt;
:* 2: half-pixel (Default for SD)&lt;br /&gt;
:* 4: quarter-pixel (often more accurate, but much slower and not always better)&lt;br /&gt;
&lt;br /&gt;
{{ParR|subpixel|int|2|0-3}}&lt;br /&gt;
:Subpixel interpolation method for ''pel''=2 or 4. This is the 'sharp' parameter in MSuper(), although it isn't related to output sharpness but better accuracy for the motion estimation.&lt;br /&gt;
:* 0: bilinear (softest)&lt;br /&gt;
:* 1: bicubic (4 tap Catmull-Rom)&lt;br /&gt;
:* 2: sharper Wiener (6 tap, similar to Lanczos) (Default)&lt;br /&gt;
:* 3: [[nnedi3]] (very high quality: useful for small sources but usually overkill. requires plugin)&lt;br /&gt;
&lt;br /&gt;
{{ParR|prefilter|int|-1|-1-3}}&lt;br /&gt;
{{Par|prefilter|clip|None}}&lt;br /&gt;
:* -1: off (Default)&lt;br /&gt;
:* 0: light controlled gauss blur&lt;br /&gt;
:* 1: mild median/gauss blur&lt;br /&gt;
:* 2: strong median/gauss blur&lt;br /&gt;
:* 3: [[dfttest]] (spatial)&lt;br /&gt;
:* clip: supply your own&lt;br /&gt;
:Denoises a version of the clip that will be used to obtain the motion vectors. Useful for very damaged/grainy sources, this will help to get better motion vectors.&lt;br /&gt;
:For sources with Gibbs noise, especially on anime, try ''prefilter''=1 or 2 or better yet strong median filters (through clip input) in order to soothe the high SAD of sharp edges. For blocky sources, or a general more quality/safer prefilter use option 3 (dfttest)&lt;br /&gt;
:By default dfttest outputs a sstring txt file to your script folder, you can delete it. This doesn't happen when using the modded dfttest (version 1.9.2 or higher) of the Dither tools.&lt;br /&gt;
:For HD sources ''prefilter''=2 makes more sense than 1, because it uses a wider denoising window.&lt;br /&gt;
:If instead you want to use your own prefilter denoiser, just define it in a variable and reference it here. Remember to:&lt;br /&gt;
:*Feed always 8 bit clips.&lt;br /&gt;
:*Input in fields for interlaced content *(read below)&lt;br /&gt;
:*Feed here planar ( by using Interleaved2Planar() ) YUY2 clips (not interleaved) when working with YUY2 sources.&lt;br /&gt;
:You will likely want to use spatial denoisers like median filters (removegrain=17, medianblur, etc). For very grainy or fizz grain noise you can try prefiltering in temporal or if this is not enough, try adding a new SMDegrain() line again but without globals. Use ''lsb_in'', ''lsb_out'' according so results are smooth. You can even use SMDegrain() as a prefilter for SMDegrain() in very temporal unstable sources.&lt;br /&gt;
:Another trick for fizz grain is to serve a prefiltered clip where bright values are more denoised than dark values, you can do this through luma masks with masktools2 code. Search in [https://forum.doom9.org/showthread.php?t=162813 Doom9] for reference.&lt;br /&gt;
:For interlaced sources remember:&lt;br /&gt;
::Spatial filtering: pre=separatefields().spatial_prefilters_here()&lt;br /&gt;
::Temporal filtering: pre=separatefields().interleave(selecteven().temporal_filters(),selectodd().temporal_filters())&lt;br /&gt;
:SMDegrain() (and MDegrain) is likely to produce blending artifacts or oversmooth in dark areas specially on cartoons, to tackle this see RefineMotion or expand the luma range in the darks. For this there are many options, you can use your preferred gamma enhancer and input it as the prefilter, or use the examples below for linear brightening (masktools2) and input it as a ''prefilter'' as well. Or at last and the recommended solution, to use the built-in ''Str'' (strength) and ''Amp'' (amplitude) parameters for a curve type dark enhancement, check the effects by enabling Show and changing your previewing conditions to PC levels.&lt;br /&gt;
:For brightening dark values linearly (brighter parts less brightening)&lt;br /&gt;
 str=1&lt;br /&gt;
 mt_lut(&amp;quot;x x &amp;quot;+string(str)+&amp;quot; 6 * - 255 - abs 255 / ^ x 1 - abs +&amp;quot;)&lt;br /&gt;
:Or for a more contrasty image (although not as much dark enhancing - not linear)&lt;br /&gt;
 str=40&lt;br /&gt;
 mt_lut(&amp;quot;x x &amp;quot;+string(str)+&amp;quot; 6 * - 255 - abs 255 / ^ &amp;quot;+string(str)+&amp;quot; / x 1 - abs +&amp;quot;)&lt;br /&gt;
:Good resources for custom prefilters:&lt;br /&gt;
:*https://forum.doom9.org/showthread.php?t=162813&lt;br /&gt;
:*https://forum.doom9.org/showthread.php?t=132310&lt;br /&gt;
:*https://forum.doom9.org/showthread.php?t=133977&lt;br /&gt;
:Notes: To sum it up; generally in denoising, temporal filters are always preferred due to its natural look (versus spatial filters). But more often than not for good results prefiltering plays a key role on the output quality, and setting it up nicely can be looked as an art by itself.&lt;br /&gt;
:If there's a reached point where no prefiltering, no ''thSAD'' tweaking, etc, makes able to denoise a certain motion part/area/scene, then this is due to the motion vectors preventing them from being &amp;quot;denoised&amp;quot; (also read &amp;quot;artifacted&amp;quot;), in which case you will need to rely on alternative solutions (motion compensation, filters like MCTemporalDenoise(), TemporalDegrain(), [https://forum.doom9.org/showthread.php?p=1544619#post1544619 Multilevel MDegrain], etc) or just use plain spatial filters with motion masks. Creating these discerning masks for static and motion scenes and combining them is a research task on the end user side.&lt;br /&gt;
&lt;br /&gt;
{{Par|mfilter|clip|None}}&lt;br /&gt;
:Motion Filter, an optional user-supplied clip that will be passed through those areas where SMDegrain() couldn't find a matching block, normally high motion areas. One use for it would be to to use spatial filters, like deblockers or blurring filters that mimic motion blur.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Str|float|1.0|0.0-8.0}}&lt;br /&gt;
:Gamma correction. With this parameter you control the strength of the brightening of the ''prefilter'' clip, good for when problems with dark areas arise. Using this internally instead of externally creates less quantization artifacts, since it's done in the same stage as the TV-&amp;gt;PC range conversion.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Amp|float|0.0625|0.0-1.0}}&lt;br /&gt;
:Used when ''Str'' &amp;lt;&amp;gt; 1.0. This defines the amplitude of the brightening in the luma range, for example by using 1.0 all the luma range will be used and the brightening will find its peak at luma value 128 in the original. Default is 0.0625 (1.0/16) which just sits over luma value 16 (256/16) This and ''Str'' are extrapolated arguments from [https://forum.doom9.org/showthread.php?p=1548318#post1548318 cretindesalpes' function], you can find a graph and more insight explanations at the original post.&lt;br /&gt;
:Check these 2 parameters effects by enabling ''show''.&lt;br /&gt;
&lt;br /&gt;
{{ParR|blksize|int|8 for SD, 16 for HD|4,8,16}}&lt;br /&gt;
:Size of a block (horizontal x vertical). Larger blocks are faster and less sensitive to noise, but also less accurate.&lt;br /&gt;
&lt;br /&gt;
{{Par|overlap|int|blksize/2}}&lt;br /&gt;
:Must be *even* and *less* than block size. Common values: ''blksize''/4 or ''blksize''/2. Larger ''overlap'' looks slightly better and runs slower.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Search|int|4|0-7}}&lt;br /&gt;
:This is the '''search''' of [[MVTools/MAnalyze|MAnalyze]].&lt;br /&gt;
&lt;br /&gt;
{{Par|Truemotion|bool|True for SD, False for HD}}&lt;br /&gt;
:''Truemotion'' is a preset of some MVAnalyze parameter values. It allows easy to switch default values of all &amp;quot;true motion&amp;quot; parameters at once. Set it 'true' for true motion search (high vector coherence), set it 'false' to search motion vectors with best SAD. Truemotion is slower and may blur textures and thin details more, but will usually remove more noise.&lt;br /&gt;
:For HD sources where the main problems are just excessive grain, I have defaulted it to false, this is not only faster but honors detail accuracy (the main existing point for HD sources) and overall object shading.&lt;br /&gt;
&lt;br /&gt;
{{Par|Chroma|bool|True}}&lt;br /&gt;
:Set false to totally ignore chroma for finding motion vectors, for more speed with little cost in quality or when your chroma is too bad to find good matches. Don't process chroma planes without chroma vectors, MVTools doesn't seem to work right.&lt;br /&gt;
&lt;br /&gt;
{{Par|Hpad|int|''blksize'' for SD, 0 for HD}}&lt;br /&gt;
{{Par|Vpad|int|''blksize'' for SD, 0 for HD}}&lt;br /&gt;
:Horizontal/vertical padding added to source frame (left, right, top, and bottom) for better motion estimation near borders.&lt;br /&gt;
:Try to have clean borders in your source (no NAB/black borders) to start with before tweaking this setting. If necessary, crop beforehand ideally in multiples of 16. Turn it to 0 if you are running out of memory.&lt;br /&gt;
&lt;br /&gt;
{{Par|thSCD1|int|based on ''blksize'': 4{{=}}&amp;gt;100, 8{{=}}&amp;gt;400, 16{{=}}&amp;gt;1600}}&lt;br /&gt;
:Threshold which decides whether a block has changed between the previous frame and the current one, used to tweak the scene change detection. Raising it will lower the number of blocks detected as changed. It may be useful for noisy or flickered video. To fix blending on scene changes on dark scenes, first try ''Str'' and ''Amp''.&lt;br /&gt;
&lt;br /&gt;
{{ParR|thSCD2|int|130|0-250}}&lt;br /&gt;
:Threshold which sets how many blocks have to change for the frame to be considered as a scene change.&lt;br /&gt;
&lt;br /&gt;
{{ParR|limit|int|255|1-255}}&lt;br /&gt;
{{ParR|limitC|int|255|1-255}}&lt;br /&gt;
:Maximal change of pixel luma/chroma, to prevent some artifacts.&lt;br /&gt;
&lt;br /&gt;
{{Par|CClip|clip|None}}&lt;br /&gt;
:Optional sharp version for ''contrasharp'' to compare against; video resolution and properties must be the same (different bit depth is OK). Using this option defaults ''contrasharp'' to True.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Globals|int|0|0-3}}&lt;br /&gt;
:With this parameter you can create or load pre-processed motion vectors, to save doing the work for multiple SMDegrain calls.&lt;br /&gt;
:*0: Ignore globals, just process&lt;br /&gt;
:*1: Read globals and Process&lt;br /&gt;
:*2: Process and output globals&lt;br /&gt;
:*3: Output globals only, don't process&lt;br /&gt;
:Some parameters '''MUST MATCH''' between output and input stages: ''pel'', ''subpixel'', ''chroma'', and ''vpad''/''hpad'' cannot change. When reading (Globals=1) only some parameters work: ''tr'', ''thSAD'', ''plane'', ''limit'', ''limitc'', ''contrasharp'', ''CClip'', ''interlaced'' and the ''lsb'' parameters. Others are ignored.&lt;br /&gt;
:Global names that can be reused are: '''Super''', '''bv1''', '''fv1''', '''bv2''', '''fv2''', '''bv3''', '''fv3''', '''bv4''', '''fv4''', '''bv6''', '''fv6''', '''vmulti'''.&lt;br /&gt;
 SMDegrain(tr=3,thSAD=400,globals=3)    # Outputs vectors&lt;br /&gt;
 SMDegrain(tr=3,thSAD=400,globals=1)    # You can use a lower &amp;quot;tr&amp;quot; or &amp;quot;thSAD&amp;quot; if you want&lt;br /&gt;
:or&lt;br /&gt;
 SMDegrain(tr=3,thSAD=400,globals=3)    # Outputs vectors&lt;br /&gt;
 Super = MSuper(levels=1)               # Add this line just before if you have some processing between Globals Output and Input.&lt;br /&gt;
 MDegrain3(Super, bv1, fv1, bv2, fv2, bv3, fv3, thSAD=400)&lt;br /&gt;
&lt;br /&gt;
{{Par|Show|bool|False}}&lt;br /&gt;
{{ParR|Show|str|-|&amp;quot;Speed&amp;quot;, &amp;quot;Memory&amp;quot;, &amp;quot;Quality&amp;quot;}}&lt;br /&gt;
:This will show the prefiltered clip to be used for the motion search to the left(&amp;lt;--), and the used parameters list to the right (--&amp;gt;)&lt;br /&gt;
:If the parameters panel is broken i.e. overlapping lines, hidden lines, etc, most likely your settings are wrong, (e.g. ''lsb_in''=true when input is 8bit) so it will also work well as a debug function. If you set Show to a string as indicated above, related parameters will be highlighted to guide you on correctly tweaking the function. This is loosely based, so it doesn't exclude you from reading carefully every parameter explanation.&lt;br /&gt;
:Even when you are not using any prefiltering, the clip to be used for the motion search where you obtain the motion vectors, will be converted from TV levels to PC levels, the only exception being when using ''Globals''=1 (Read) in which case the &amp;quot;prefiltered&amp;quot; clip will be exactly the same as input clip (that is no luma conversion, although constrained to 8 bit). Additionally you can tweak the dark expansion with ''Str'' and ''Amp'' parameters and check the effects in the left panel, but be aware to change your viewing conditions as it is in PC levels.&lt;br /&gt;
:The left panel preserves its properties so you can crop out the right panel and use it as a prefilter clip of any MSuper(). Therefore if you are not processing chroma (''chroma''=false) the prefiltered clip will be green, don't panic, this is correct, this happens when the U and V planes are unset. In this regard for previewing tasks with prefilterings -- or just the ''Str'' and ''Amp'' effect -- set ''chroma'' to true temporally or follow with ''GreyScale''(). For YUY2 sources set ''Planar2Interleaved''() after cropping for previewing.&lt;br /&gt;
 &lt;br /&gt;
==Final Notes==&lt;br /&gt;
If there is an important parameter not implemented, you have any issue or found a bug, please don't hesitate and ask in its [https://forum.videohelp.com/threads/369142 VideoHelp thread].&lt;br /&gt;
 &lt;br /&gt;
==Changelog==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border: 1px solid darkgray&amp;quot;&lt;br /&gt;
!Version&lt;br /&gt;
!Date&lt;br /&gt;
!Changes&lt;br /&gt;
|-&lt;br /&gt;
|v3.1.2.97s&lt;br /&gt;
|2018-03-26&lt;br /&gt;
|&lt;br /&gt;
Fix subpixel=3&lt;br /&gt;
Add Prefilter auto 16 (lsb) support&amp;lt;br/&amp;gt;&lt;br /&gt;
YUY2 support in avs 2.6 with masktools 2.6&amp;lt;br/&amp;gt;&lt;br /&gt;
medianblur2 now will be used in Minblur instead of Quantile RemoveGrainHD in avs 2.6&amp;lt;br/&amp;gt;&lt;br /&gt;
Add TV_range bool&amp;lt;br/&amp;gt;&lt;br /&gt;
Less lsb if not use lsb things and get ready for yv16 and yv24&amp;lt;br/&amp;gt;&lt;br /&gt;
Add dct&amp;lt;br/&amp;gt;&lt;br /&gt;
Add device_id for prefilter=4&amp;lt;br/&amp;gt;&lt;br /&gt;
No need to use Planar2Interleaved() after cropping in Show with YUY2 (this is old changed, and now with mvtools support yv16 most people will not use YUY2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Add MDegrain4 and MDegrain5 and MDegrain6, this will make tr=4-6 faster&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|3.1.2d&lt;br /&gt;
|2015-07-21&lt;br /&gt;
|&lt;br /&gt;
Fixed regression where external prefilters wouldn't be parsed for luma expansion&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|3.1.1d&lt;br /&gt;
|2015-07-16&lt;br /&gt;
|&lt;br /&gt;
Workaround to force KNLMeansCL use discrete video card (now required)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|3.1d&lt;br /&gt;
|2015-07-14&lt;br /&gt;
|&lt;br /&gt;
New prefilter mode 4 for grainy sources. GPU based spatio-temporal KNLmeans&amp;lt;br/&amp;gt;&lt;br /&gt;
Added dither output mode &amp;quot;Random Dither&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
Added &amp;quot;slices&amp;quot; option from Dither&amp;lt;br/&amp;gt;&lt;br /&gt;
Added soft=-2 (automatic) to internal lsfmod&amp;lt;br/&amp;gt;&lt;br /&gt;
Added assert for chroma denoise when luma only motion vectors (mvtools bug)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improved lsb_in code (now using sub/add method)&amp;lt;br/&amp;gt;&lt;br /&gt;
Removed vpad/hpad=0 optimization preset for HD&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed prefilter=3 code for lsb_in YUY2&amp;lt;br/&amp;gt;&lt;br /&gt;
More fixes to Show Panel...&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated and fixed documentation (notes on YUY2 support)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3.0d&lt;br /&gt;
|2015-03-27&lt;br /&gt;
|&lt;br /&gt;
Adjusted SD&amp;lt;&amp;gt;HD discretion&amp;lt;br/&amp;gt;&lt;br /&gt;
Added mfilter (Motion Filter) new feature&amp;lt;br/&amp;gt;&lt;br /&gt;
subpixel=3 (nnedi3); removed qual=2 due to possible blending bug (quote by cretindesalpes), this also boosts speed&amp;lt;br/&amp;gt;&lt;br /&gt;
Lowered the defaults for less aggressive denoise (still somewhat high)&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed chroma not showing in debug (show) mode when lsb=true and prefilter=3 were paired&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed long lasting issues in Show Panel for certain not mod height resolutions&amp;lt;br/&amp;gt;&lt;br /&gt;
Now prefilter=0 is minblur(0), lighter denoising than prefilter=1, default is now -1 (off)&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation update (plugin updates, notes, links, examples, etc)&lt;br /&gt;
|-&lt;br /&gt;
|2.2d&lt;br /&gt;
|2013-03-05&lt;br /&gt;
|&lt;br /&gt;
Removed one residual variable in Contrasharpening function&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a regression at v2.0 for Interlaced YUY2 sources by changing wrong variable ifC to if0, and...&amp;lt;br/&amp;gt;&lt;br /&gt;
...adding a missing weave() to the last MergeChroma() call&amp;lt;br/&amp;gt;&lt;br /&gt;
Dropped Dither support. (Will still work/not work as before, but lack of official support renders it to a YMMV condition)&lt;br /&gt;
|-&lt;br /&gt;
|2.1d&lt;br /&gt;
|2012-09-09&lt;br /&gt;
|&lt;br /&gt;
Fixed Refinemotion Globals Input labels&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed ContrasharpeningHD Vectors for Interlaced HD sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Added ability to import Global Vectors even when &amp;quot;tr&amp;quot; is lower than parent instance &amp;quot;tr&amp;quot; (credit to cretindesalpes)&amp;lt;br/&amp;gt;&lt;br /&gt;
Expanded support for Interlaced Denoising &amp;quot;tr&amp;quot; up to 64 (credit to cretindesalpes)&amp;lt;br/&amp;gt;&lt;br /&gt;
Cosmetics&lt;br /&gt;
|-&lt;br /&gt;
|2.0d&lt;br /&gt;
|2012-06-07&lt;br /&gt;
|&lt;br /&gt;
Fixed and optimized chroma handling for lsb_in, contrasharpening and YUY2 content v.1.95&amp;lt;br/&amp;gt;&lt;br /&gt;
Enhanced Chroma bypass on the sharpening stage&amp;lt;br/&amp;gt;&lt;br /&gt;
Merged ContraHD() internally for Contrasharpening in HD sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Dropped QTGMC support on import/export motion vectors (small value for increased confusion)&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed Median code for planar inputs in MinBlur() (needs RemoveGrainHD, dropped medianblur requirement)&amp;lt;br/&amp;gt;&lt;br /&gt;
Defaulted truemotion to false for HD inputs&amp;lt;br/&amp;gt;&lt;br /&gt;
Code Optimization and Clean up&amp;lt;br/&amp;gt;&lt;br /&gt;
Others&lt;br /&gt;
|-&lt;br /&gt;
|1.9d&lt;br /&gt;
|2012-03-23&lt;br /&gt;
|&lt;br /&gt;
Added truemotion parameter (default=true), change it to false (as in MCTemporalDenoise()), so low frequency detail won't be lost (walls...), although it could leave more noise on high frequency details&amp;lt;br/&amp;gt;&lt;br /&gt;
Added thSADC, and thSCD1/thSCD2 parameters for finer control&amp;lt;br/&amp;gt;&lt;br /&gt;
Tweaked prefilter=3 dfttest sigmas for better low frequency detail protection&amp;lt;br/&amp;gt;&lt;br /&gt;
Detached explanation and converted to html. Updated and extended the contents as well&amp;lt;br/&amp;gt;&lt;br /&gt;
Fine tuned and robustized the Show Panel&amp;lt;br/&amp;gt;&lt;br /&gt;
Optimized and organized code, more precisely the contrasharpening part&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a few ternary checks for when Globals=3&amp;lt;br/&amp;gt;&lt;br /&gt;
Others&lt;br /&gt;
|-&lt;br /&gt;
|1.8d&lt;br /&gt;
|2012-01-18&lt;br /&gt;
|&lt;br /&gt;
Added automatic dark protection for prefilter=3 (dfttest performs badly in darks) v1.71d and extended its dark protection v1.8&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed chroma variable when chroma=false, from 2 (copy chroma) to 1 (discard chroma) v1.71d&amp;lt;br/&amp;gt;&lt;br /&gt;
Explanation and cosmetics v1.71d&amp;lt;br/&amp;gt;&lt;br /&gt;
Added acknowledgments and updated explanation&amp;lt;br/&amp;gt;&lt;br /&gt;
Added brackets to all functions (it has been reported to cause threading problems under certain circumstances) (https://forum.doom9.org/showthread.php?p=1515886#post1515886)&amp;lt;br/&amp;gt;&lt;br /&gt;
Reworked and fixed the parameters panel. Now you have a color guide to have an idea on what to tweak depending on selected mode in Show. For strings: &amp;quot;Speed&amp;quot;, &amp;quot;Memory&amp;quot; and &amp;quot;Quality&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Optimized lsb_in for HD resolutions which was causing memory hogs&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed contrasharpening for YUY2 sources when lsb=true&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed some inconsistencies for YUY2 sources when prefilter=3&lt;br /&gt;
|-&lt;br /&gt;
|1.7d&lt;br /&gt;
|2012-01-11&lt;br /&gt;
|&lt;br /&gt;
Fixed and extended introduction explanation v.1.61d&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed some issues for Globals=1 (Read) in relation to lsb_in and luma expansion auto-prefilter v.1.61d&amp;lt;br/&amp;gt;&lt;br /&gt;
Added mild gauss blur prefilter option as prefilter=1. Consequent modes are displaced v.1.61d&amp;lt;br/&amp;gt;&lt;br /&gt;
Changed prefilter 1 and 2 to Minblur (Gauss/Median combination) v.1.63d&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated MinBlur function v.1.62d and v.1.66&amp;lt;br/&amp;gt;&lt;br /&gt;
Code tidied up v.1.62d&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated luma expansion, now you can enhance darks (with 'Str' and 'Amp') in the same step as the TV-&amp;gt;PC conversion stage, thus +optimized, +quality. v.1.63d by cretindesalpes (https://forum.doom9.org/showthread.php?p=1548318#post1548318)&amp;lt;br/&amp;gt;&lt;br /&gt;
Removed pre_custom. Now use prefilter to load a prefiltered clip, as well as modes 0~3&amp;lt;br/&amp;gt;&lt;br /&gt;
Added Show parameter. Now you can see the used and default parameters along the prefilter clip as well&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed one note related to prefilter clip input for interlaced content&lt;br /&gt;
|-&lt;br /&gt;
|1.6d&lt;br /&gt;
|2011-12-24 (first open release)&lt;br /&gt;
|&lt;br /&gt;
Fixed and extended introduction explanation&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed Ditherpost for interlaced sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a broken reference for reading MRecalculate globals when tr&amp;gt;3&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a Globals=1 MSuper automatization&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a plane processing bypass when chroma=false&amp;lt;br/&amp;gt;&lt;br /&gt;
Added LSFmod as optional contrasharpening (slower, but biased contrasharpening and probably better depending on source)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added default luma expansion auto-prefilter for motion search (16% more values)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added YUY2 support&amp;lt;br/&amp;gt;&lt;br /&gt;
Added the 'mode' parameter of Ditherpost()&amp;lt;br/&amp;gt;&lt;br /&gt;
Added support for interlaced temporal radius up to 6&lt;br /&gt;
|-&lt;br /&gt;
|1.5d&lt;br /&gt;
|2011-10-14&lt;br /&gt;
|&lt;br /&gt;
Changed &amp;quot;srchSuper&amp;quot; Global variable to &amp;quot;QTGMC_srchSuper&amp;quot;, compatible with QTGMC. Anyhow you may probably want to create a new super clip. Test it out! v.1.41d&amp;lt;br/&amp;gt;&lt;br /&gt;
Introduction spelling and presentation v.1.42d&amp;lt;br/&amp;gt;&lt;br /&gt;
Added lsb and lsb_in for prefilter=2 (dfttest) v.1.43d &amp;amp; v.1.44d&amp;lt;br/&amp;gt;&lt;br /&gt;
Some better definitions for the settings help v.1.45d&amp;lt;br/&amp;gt;&lt;br /&gt;
pelclip is now subpixel = 3 ('sharp' parameter before) v.1.45d&amp;lt;br/&amp;gt;&lt;br /&gt;
Other minor tweaks v.1.45d&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed an important issue when using prefilter with subpixel=3 ('pelclip' parameter before)&amp;lt;br/&amp;gt;&lt;br /&gt;
Optimizations in Ditherpost for chroma&amp;lt;br/&amp;gt;&lt;br /&gt;
Changed rfilter (hierarchical levels smoothing/scaling) from default 2 to 4. Better results in my judge&amp;lt;br/&amp;gt;&lt;br /&gt;
Some more little tweaks in code and introduction&lt;br /&gt;
|-&lt;br /&gt;
|1.4d&lt;br /&gt;
|2011-09-16&lt;br /&gt;
|&lt;br /&gt;
Added pelclip option for top quality subpixel interpolation when pel &amp;gt; 1&amp;lt;br/&amp;gt;&lt;br /&gt;
Changed QTGMCV parameter to Globals, and added a bunch of new features like vectors output from SMDegrain()&amp;lt;br/&amp;gt;&lt;br /&gt;
Big introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|1.3d&lt;br /&gt;
|2011-09-14&lt;br /&gt;
|Fixed an important issue on the Interlaced parameter and improved overall handling (v.1.21d &amp;amp; v.1.3d)&lt;br /&gt;
|-&lt;br /&gt;
|1.2d&lt;br /&gt;
|2011-09-13&lt;br /&gt;
|&lt;br /&gt;
Added Interlaced parameter, for processing interlaced sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Some introduction and code optimization tweaks (v.1.12d &amp;amp; v.1.2d)&lt;br /&gt;
|-&lt;br /&gt;
|1.1d&lt;br /&gt;
|2011-09-12&lt;br /&gt;
|&lt;br /&gt;
Implemented MDegrainN for tr &amp;gt; 3, from the MVTools2 mod of Dither&amp;lt;br/&amp;gt;&lt;br /&gt;
Minor introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|1.0d&lt;br /&gt;
|2011-09-09&lt;br /&gt;
|&lt;br /&gt;
Added CClip parameter. Reference an earlier stage of your processing chain as your sharp version for the contrasharpening&lt;br /&gt;
|-&lt;br /&gt;
|0.9d&lt;br /&gt;
|2011-09-09&lt;br /&gt;
|&lt;br /&gt;
Added QTGMCV parameter, for reusing vectors from QTGMC bob deinterlacer&lt;br /&gt;
|-&lt;br /&gt;
|0.8d&lt;br /&gt;
|2011-09-05&lt;br /&gt;
|&lt;br /&gt;
Fixed a few things related to the lsb_in option&amp;lt;br/&amp;gt;&lt;br /&gt;
Minor introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|0.7d&lt;br /&gt;
|2011-09-05&lt;br /&gt;
|&lt;br /&gt;
Implemented &amp;quot;fake&amp;quot; lsb_in option. Output will have slightly more quality (if any), and will compress better. (Experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a not passed argument in the hpad, vpad parameters&lt;br /&gt;
|-&lt;br /&gt;
|0.6d&lt;br /&gt;
|2011-09-04&lt;br /&gt;
|&lt;br /&gt;
Minor introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|0.5d&lt;br /&gt;
|2011-07-19&lt;br /&gt;
|&lt;br /&gt;
Added dfttest option for preblur (now prefilter) option. Slower but better due to its internal deblock+denoise operation, plus sharper results&amp;lt;br/&amp;gt;&lt;br /&gt;
Added pre_custom option for the prefilter process, define here a denoised clip as your prefiltered version&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated the introduction help&lt;br /&gt;
|-&lt;br /&gt;
|0.4d&lt;br /&gt;
|2011-06-03&lt;br /&gt;
|&lt;br /&gt;
Added preblur option for slight vector blurring where motionmatch is bad (https://forum.doom9.org/showthread.php?t=161594)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added RefineMotion parameter for better motion vectors. Based off Killer() (https://forum.doom9.org/showthread.php?p=1266572#post1266572)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added parameters &amp;quot;lsb&amp;quot; and &amp;quot;lsb_out&amp;quot;, for the MVTools2 mod version of cretindesalpes' Dither (https://forum.doom9.org/showthread.php?p=1386559#post1386559)&amp;lt;br/&amp;gt;&lt;br /&gt;
Other minor aesthetics and performance adjustments&lt;br /&gt;
|-&lt;br /&gt;
|0.3d&lt;br /&gt;
|2011-03-04&lt;br /&gt;
|&lt;br /&gt;
First Mod version&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed plane (for MDegrain) and added chroma (for MAnalyse) parameters&lt;br /&gt;
|-&lt;br /&gt;
|0.2&lt;br /&gt;
|2010-01-24&lt;br /&gt;
|&lt;br /&gt;
Added introductory section&amp;lt;br/&amp;gt;&lt;br /&gt;
Added more parameters&lt;br /&gt;
|-&lt;br /&gt;
|0.1&lt;br /&gt;
|&lt;br /&gt;
Basic working version&amp;lt;br/&amp;gt;&lt;br /&gt;
Not released&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/AviSynth%2B_x64_plugins</id>
		<title>AviSynth+ x64 plugins</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/AviSynth%2B_x64_plugins"/>
				<updated>2018-07-11T06:41:58Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:82em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
{{AvsPlusHeader}}&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
All listed plugins are the latest version unless stated otherwise.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;height:100px; width:100%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=12%| Category&lt;br /&gt;
!width=12%| Filter&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot; width=8%| Version&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot; width=15%| Download&lt;br /&gt;
!Comments&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[AdaptiveMedian]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus]&lt;br /&gt;
| &amp;quot;Median&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[[AddGrainC]]'''&lt;br /&gt;
|1.7.1&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z AddGrainC-1.7.1.7z]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012. AddGrain v1.7.0 compiled with Intel C++ Compiler XE 14: [https://www.dropbox.com/s/y5ymzmgfzddw0pn/AddGrainC_1.7.0_x64.zip?dl=1 AddGrainC_1.7.0_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=167573 AutoAdjust]'''&lt;br /&gt;
|2.6&lt;br /&gt;
|[http://latoninf.free.fr/d9/AA/AutoAdjust-v2.60.7z AutoAdjust-v2.60.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Crop&lt;br /&gt;
|'''[[AutoCrop]]'''&lt;br /&gt;
|1.2&lt;br /&gt;
|[https://www.mediafire.com/download/mzddfmjjdyx/autocrop_3-14-2010.rar autocrop_3-14-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|[[AutoOverlay]]&lt;br /&gt;
|0.2.1&lt;br /&gt;
|[https://github.com/introspected/AutoOverlay/releases Releases]&lt;br /&gt;
| [https://github.com/introspected introspected]&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[http://rationalqm.us/autoyuy2/autoyuy2.html AutoYUY2]'''&lt;br /&gt;
|3.2.12&lt;br /&gt;
|[https://github.com/jpsdr/AutoYUY2/releases Releases]&lt;br /&gt;
|Compiled by jpsdr.&lt;br /&gt;
|-&lt;br /&gt;
|Averaging&lt;br /&gt;
|'''[[Average]]'''&lt;br /&gt;
|0.94&lt;br /&gt;
|[https://github.com/pinterf/Average/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=172698 AviSynthShader]'''&lt;br /&gt;
|1.6.5&lt;br /&gt;
|[https://github.com/mysteryx93/AviSynthShader/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/Format Conversion&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=173986 avsresize]'''&lt;br /&gt;
|r1d&lt;br /&gt;
|[https://www.dropbox.com/s/3ocrd217pprrvmn/avsresize-r1d.7z?dl=0 avsresize-r1d.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=164407 AVSTP]'''&lt;br /&gt;
|1.0.3&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/avstp-1.0.3.zip avstp-1.0.3.zip]&lt;br /&gt;
|v1.0.1: [http://www.dropbox.com/s/59urdlk19pz6l2p/avstp-1.0.1_x64.zip?dl=1 avstp-1.0.1_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[[aWarpSharp2]]'''&lt;br /&gt;
|2.0.1&lt;br /&gt;
|[https://github.com/jpsdr/aWarpSharpMT/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=135855 BassAudio]'''&lt;br /&gt;
|2.4.10&lt;br /&gt;
|[https://www.sendspace.com/file/vwodyl BassAudio2410.7z] - [https://www.mediafire.com/download/0ydinsk5br3imgr/BassAudioSource24_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu - [https://www.un4seen.com/download.php?bass24 BASS audio library for Win64]&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Bifrost]]'''&lt;br /&gt;
|2.2&lt;br /&gt;
|[https://github.com/dubhater/vapoursynth-bifrost/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1721946#post1721946 l33tmeatwad].&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Checkmate]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/checkmate/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[https://github.com/tp7/CLExpr CLExpr]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[https://github.com/tp7/CLExpr/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Denoisers&lt;br /&gt;
|'''[[Cnr2]]&lt;br /&gt;
|2.6.1_avs26 &lt;br /&gt;
|[https://www.dropbox.com/s/9fiab3s5exi43h2/cnr2_v261-avs26.zip?dl=1 cnr2_v261-avs26.zip]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1771784#post1771784 Chikuzen].&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/realfinder/CombMask/releases CombMask]'''&lt;br /&gt;
|1.1.1s&lt;br /&gt;
|[https://github.com/realfinder/CombMask/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/sekrit-twc/EdgeFixer ContinuityFixer]'''&lt;br /&gt;
|r1&lt;br /&gt;
|[https://github.com/sekrit-twc/EdgeFixer/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1721946#post1721946 l33tmeatwad].&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|[https://github.com/DJATOM/CullResize CullResize]&lt;br /&gt;
|0.1&lt;br /&gt;
|[https://github.com/DJATOM/CullResize/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[DeBarrel]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Barrel&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[[DctFilter|DCTFilter]]'''&lt;br /&gt;
|0.5.0&lt;br /&gt;
|[https://github.com/chikuzen/DCTFilter/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[DeBlock]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/Deblock/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Decomb]]'''&lt;br /&gt;
|5.2.4&lt;br /&gt;
|[https://www.dropbox.com/s/wdnkly9xun1skj4/decomb_5.2.4_x64.zip?dl=1 decomb_5.2.4_x64.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14&lt;br /&gt;
|-&lt;br /&gt;
|Degrainer&lt;br /&gt;
|'''[[DeGrainMedian]]'''&lt;br /&gt;
|0.8.2&lt;br /&gt;
|[http://members.optusnet.com.au/squid_80/DeGrainMedian64.zip DeGrainMedian64.zip] - [http://members.optusnet.com.au/squid_80/sources/degrainmediansrc.zip source]&lt;br /&gt;
|Compiled by squid_80&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/DeJitter/DeJitter.htm DeJitter]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/DeJitter/DeJitter64.7z DeJitter64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Logo removal&lt;br /&gt;
|'''[https://github.com/makiuchi-d/delogo-avisynth Delogo]'''&lt;br /&gt;
|0.05a&lt;br /&gt;
|[https://github.com/makiuchi-d/delogo-avisynth/releases Releases]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeNoise]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;minvar&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeSaltPepper]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;SaltPepper&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/modPlus/Veed.html DeVeed]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;Veed&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[dfttest]]'''&lt;br /&gt;
|1.9.4.2&lt;br /&gt;
|[https://github.com/DJATOM/dfttest/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=170237 DGDecIM] '''&lt;br /&gt;
|b50&lt;br /&gt;
|[http://rationalqm.us/dgdecim/dgdecim_b50.zip dgdecim_b50.zip]&lt;br /&gt;
|Requires license from DGDecNV&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://rationalqm.us/dgdecnv/dgdecnv.html DGDecNV]'''&lt;br /&gt;
|205x&lt;br /&gt;
|&lt;br /&gt;
|Requires license.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://rationalqm.us/dgmpgdec/dgmpgdec.html DGMPGDec]'''&lt;br /&gt;
|1.5.8&lt;br /&gt;
|[https://www.mediafire.com/download/c0wmemj5jam/DGDecode_3-19-2010.rar DGDecode_3-19-2010.rar]&lt;br /&gt;
|Compiled by Joshy D, some IDCT modes are missing.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[Dither]]'''&lt;br /&gt;
|1.27.2&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/dither-1.27.2.zip dither-1.27.2.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]'''&lt;br /&gt;
|2.0.0.13&lt;br /&gt;
|[https://web.archive.org/web/20160224130625/https://filetea.me/t1siAfoCvW5Sy2d2BbRx2WBjg/dl avss_x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[EEDI2]]'''&lt;br /&gt;
|0.9.2&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 EEDI2_092_64.7z] [https://web.archive.org/web/20160908025751/http://www.iol.ie/~schubert/avs/EEDI2_092_64.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Compiled by Joshy D: [https://www.mediafire.com/download/znmyzdo2ize/EEDI2_4-10-2010.rar EEDI2_4-10-2010.rar]&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[eedi3|EEDI3]]'''&lt;br /&gt;
|0.9.2.3&lt;br /&gt;
|[https://github.com/pinterf/EEDI3/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. See [https://forum.doom9.org/showthread.php?t=172414 discussion].&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/EffectsPlus/EffectsPlus_index.html EffectsPlus]'''&lt;br /&gt;
|25 June 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/EffectsPlus/EffectsPlus.7z EffectsPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://forum.doom9.net/showthread.php?p=1820756#post1820756 ExactDedup]'''&lt;br /&gt;
|0.05&lt;br /&gt;
|[https://www.mediafire.com/file/8184da6dp4hsdcq/ExactDeDup-0.05_20171005.zip ExactDeDup-0.05_20171005.zi]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=161411 f3kdb]'''&lt;br /&gt;
|1.5.1&lt;br /&gt;
|[http://www.nmm-hd.org/upload/get~arIyHEnxIS8/flash3kyuu_deband_1.5.1_x64.7z flash3kyuu_deband_1.5.1_x64.7z]&lt;br /&gt;
|v2.0 prerelease (b98d6bc x86/x64): [https://web.archive.org/web/20150503191218/https://www.nmm-hd.org/upload/get~NfiLlgo1pX8/f3kdb-b98d6bc.rar f3kdb-b98d6bc.rar] - compiled with Intel C++ Compiler 2013. [https://web.archive.org/web/20160414135351/http://www.nmm-hd.org/upload/get~jW8DJGBDJro/f3kdb-rev410.7z f3kdb-rev410.7z] - compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[https://github.com/chikuzen/FCBI FCBI]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[https://github.com/chikuzen/FCBI/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[FFmpegSource]]'''&lt;br /&gt;
|2.23.1&lt;br /&gt;
|[https://github.com/FFMS/ffms2/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]'''&lt;br /&gt;
|2.5&lt;br /&gt;
|[https://github.com/pinterf/fft3dfilter/releases Releases]&lt;br /&gt;
|10-16bits/float support. Compiled with VS2015 Update 3. Needs the [http://www.fftw.org/install/windows.html 64-bit &amp;lt;tt&amp;gt;libfftw3f-3.dll&amp;lt;/tt&amp;gt;] to be in your System32 directory.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=89941 FFT3DGPU]'''&lt;br /&gt;
|0.8.2&lt;br /&gt;
|[https://www.mediafire.com/download/2chnt1jkwwm/FFT3DGPU_3-15-2010.rar FFT3DGPU_3-15-2010.rar]&lt;br /&gt;
|The HLSL (shader program) file is edited from the original to adhere to pixel shader 3.0 syntax rules. Please make sure to place the correct file in the same directory as the 64bit plugin. Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[FFTQuiver]]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
| &amp;quot;F1Quiver&amp;quot; &amp;amp; &amp;quot;F2Quiver&amp;quot; functions in FQPlus&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[FieldHint]]'''&lt;br /&gt;
|0.11 &lt;br /&gt;
|[https://www.mediafire.com/download/ynkidzz4joz/fieldhint.rar fieldhint.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[FluxSmooth]]'''&lt;br /&gt;
|2nd December 2010&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=11813&amp;amp;d=1291250198 FluxSmooth SSE DLLs.7z]&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?t=158245 Discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/FQPlus/F2QSharp.html F2QSharp]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174161 FQPlus]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[https://github.com/mysteryx93/FrameRateConverter FrameRateConverter]'''&lt;br /&gt;
|1.2.1&lt;br /&gt;
|[https://github.com/mysteryx93/FrameRateConverter/releases Releases]&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?t=174793 Discussion thread].&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174520 FredAverage]'''&lt;br /&gt;
|0.01&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 FredAverage64_0.01.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=169651 FRIMSource]'''&lt;br /&gt;
|1.27&lt;br /&gt;
|[https://drive.google.com/file/d/0BymRNDHq74DEbUVsQ0NwSGJqdUU FRIM_x64_version_1.27.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[[Fusion]]'''&lt;br /&gt;
|5th March 2013&lt;br /&gt;
|[http://horman.net/fusionx64.zip fusionx64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=173695 GamMac]'''&lt;br /&gt;
|1.10&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?p=1774281#post1774281 GamMac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[GBlur]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;GBlur&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[[GradFun2db]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[https://www.mediafire.com/download/w0trndmni3j/gradfun2db_3-29-2010.rar gradfun2db_3-29-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Debugging&lt;br /&gt;
|'''[[Grid]]'''&lt;br /&gt;
|21 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/Grid/Grid64.7z Grid64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[[GRunT]]'''&lt;br /&gt;
|1.0.1a&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=15400&amp;amp;d=1463511496 grunt-x64.rar]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1767990#post1767990 yesmanitsbearman]&lt;br /&gt;
|-&lt;br /&gt;
|Uncategorized &lt;br /&gt;
|'''[https://github.com/ladipro/avisynth_filters/wiki/HealDeadPixels HealDeadPixels]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://github.com/ladipro/avisynth_filters/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/modPlus/MBlur.html HBlur]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRCore]'''&lt;br /&gt;
|1.1.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRCore.7z HDRCore.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRMatrix]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRMatrix.7z HDRMatrix.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRNoise]'''&lt;br /&gt;
|1.2.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRNoise.7z HDRNoise.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener &lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRSharp]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRSharp.7z HDRSharp.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[http://avisynth.nl/index.php/HistogramAdjust HistogramAdjust]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;TweakHist&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?p=1781204#post1781204 hqdn3dY]'''&lt;br /&gt;
|2016-02-13&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=15589&amp;amp;d=1474456943 Hqdn3dY.7z]&lt;br /&gt;
|Modified by Rean.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[IT|IT_YV12]]'''&lt;br /&gt;
|0103_width8K&lt;br /&gt;
|[https://www.dropbox.com/s/002p6yed7dzi8f3/IT_YV12_0103_width8K.zip?dl=1 IT_YV12_0103_width8K.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[https://web.archive.org/web/20090220115721/http://members.at.infoseek.co.jp/kiraru2002/alpha_version.html Its]'''&lt;br /&gt;
|0.8.6&lt;br /&gt;
|&lt;br /&gt;
|Compiled by putin999&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[[JincResize]]'''&lt;br /&gt;
|r44&lt;br /&gt;
|[https://www.dropbox.com/s/pj37t6ackhbs42k/jincresize_r44.zip?dl=1 jincresize_r44.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://github.com/ladipro/avisynth_filters/wiki/KelvinColorShift KelvinColorShift]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://github.com/ladipro/avisynth_filters/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=171379 KNLMeansCL]'''&lt;br /&gt;
|1.1.1&lt;br /&gt;
|[https://github.com/Khanattila/KNLMeansCL/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[LSMASHSource]]'''&lt;br /&gt;
|r9xx&lt;br /&gt;
|{{Plugin/LSMASHSource}}&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''MaskCrop'''&lt;br /&gt;
|0.1.2&lt;br /&gt;
|[https://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=1 MaskCrop0.1.2.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[MaskTools2]]'''&lt;br /&gt;
|2.2.17&lt;br /&gt;
|[https://github.com/pinterf/masktools/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2017.&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[MedianBlur2]]'''&lt;br /&gt;
|0.94&lt;br /&gt;
|[https://github.com/tp7/MedianBlur2/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/docs/english/externalfilters/mipsmooth.htm MipSmooth]'''&lt;br /&gt;
|1.1.2&lt;br /&gt;
|[http://members.optusnet.com.au/squid_80/MipSmooth64.zip MipSmooth64.zip] - [http://members.optusnet.com.au/squid_80/sources/mipsmooth64src.zip source]&lt;br /&gt;
|Compiled by squid_80 - [https://forum.doom9.org/showthread.php?t=64940 discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174162 modPlus]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[MosquitoNR]]'''&lt;br /&gt;
|0.10 &lt;br /&gt;
|[https://www.dropbox.com/s/0dgrruxne80izus/MosquitoNR_0.10_x64.zip?dl=1 MosquitoNR_0.10_x64.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174163 movePlus]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://github.com/chikuzen/MPEG2DecPlus MPEG2DecPlus]'''&lt;br /&gt;
|0.1.1&lt;br /&gt;
|[http://kuroko.fushizen.eu/bin/mpeg2decplus-0.1.1.zip mpeg2decplus-0.1.1.zip] [https://web.archive.org/web/20161102003551/https://kuroko.fushizen.eu/bin/mpeg2decplus-0.1.1.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[[MSharpen]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/msharpen/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[[MVTools]]'''&lt;br /&gt;
|2.7.31&lt;br /&gt;
|[https://github.com/pinterf/mvtools/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[[NicAudio]]'''&lt;br /&gt;
|2.0.6&lt;br /&gt;
|[https://www.dropbox.com/s/lroqakipuoqnzby/NicAudio2.0.5_x64.zip?dl=1 NicAudio2.0.5_x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/NirMalam/NirMalam.html NirMalam]'''&lt;br /&gt;
|17 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/NirMalam/NirMalam64.7z NirMalam64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[nnedi3]]'''&lt;br /&gt;
|0.9.4.51&lt;br /&gt;
|[https://github.com/jpsdr/NNEDI3/releases Releases]&lt;br /&gt;
|Compiled by jpsdr, [https://forum.doom9.org/showthread.php?t=170083 discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://github.com/chikuzen/PlanarTools PlanarTools]'''&lt;br /&gt;
|0.3.0&lt;br /&gt;
|[https://github.com/chikuzen/PlanarTools/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[[PointSize]]'''&lt;br /&gt;
|0.2&lt;br /&gt;
|[https://github.com/Orum/PointSize/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[RawSource26]]'''&lt;br /&gt;
|20160814&lt;br /&gt;
|[https://github.com/chikuzen/RawSource_2.6x/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/chikuzen/ReduceFlicker/tree/master/avisynth ReduceFlicker]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[https://github.com/chikuzen/ReduceFlicker/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[Reformer]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Reform&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Range Processing&lt;br /&gt;
|'''[[RemapFrames]]'''&lt;br /&gt;
|0.4.1-avs26&lt;br /&gt;
|[https://www.dropbox.com/s/6830ri3btc5crfp/RemapFrames-0.4.1-avs26.zip?dl=1 RemapFrames-0.4.1-avs26.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[http://svn.int64.org/viewvc/int64/resamplehq/doc/index.html ResampleHQ]'''&lt;br /&gt;
|r349&lt;br /&gt;
|[https://www.mediafire.com/download/4m31za3np4o5d24/ResampleHQ_r349_110905.7z ResampleHQ_r349_110905.7z]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1722300#post1722300 l33tmeatwad] [https://forum.doom9.org/showthread.php?p=1722117#post1722117]. Older version: [https://sourceforge.net/projects/int64/files/ResampleHQ/ResampleHQ-v6.zip/download ResampleHQ-v6.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Degrainer&lt;br /&gt;
|'''[[RgTools]]'''&lt;br /&gt;
|0.97&lt;br /&gt;
|[https://github.com/pinterf/RgTools/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Borders and Cropping&lt;br /&gt;
|'''[[RoboCrop]]'''&lt;br /&gt;
|1.10&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 RoboCrop64_1.10.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Antialiasing&lt;br /&gt;
|'''[[SangNom2]]'''&lt;br /&gt;
|0.35&lt;br /&gt;
|[https://github.com/tp7/SangNom2/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[[SCXvidMask]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[https://github.com/tp7/SCXvidMask/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=154971 SmoothAdjust]'''&lt;br /&gt;
|3.2&lt;br /&gt;
|[http://latoninf.free.fr/d9/SA/SmoothAdjust-v3.20.7z SmoothAdjust-v3.20.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deblocking&lt;br /&gt;
|'''[[SmoothD2]]'''&lt;br /&gt;
|1.0.a3&lt;br /&gt;
|[https://www.dropbox.com/s/ui8chlbzopuqs5a/SmoothD2-a3_x64.zip?dl=1 SmoothD2-a3_x64.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[Spinner]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Turn&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[https://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]'''&lt;br /&gt;
|4.2.0.142&lt;br /&gt;
|[http://www.svp-team.com/files/gpl/svpflow-4.2.0.142.zip svpflow-4.2.0.142.zip]&lt;br /&gt;
|More information [https://forum.doom9.org/showpost.php?p=1722352&amp;amp;postcount=266 here].&lt;br /&gt;
|-&lt;br /&gt;
|Edges&lt;br /&gt;
|'''[[TCannyMod]]'''&lt;br /&gt;
|1.3.0 &lt;br /&gt;
|[https://github.com/chikuzen/TCannyMod/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/tp7/tcolormask TColorMask]'''&lt;br /&gt;
|1.2&lt;br /&gt;
|[https://github.com/tp7/tcolormask/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[TComb]]'''&lt;br /&gt;
|2.0&lt;br /&gt;
|[https://github.com/Elegant996/TComb/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''TCPDeliver'''&lt;br /&gt;
|0.2&lt;br /&gt;
|[https://github.com/DJATOM/TCPDeliver/releases Releases] &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[TDeint]]'''&lt;br /&gt;
|1.1 &lt;br /&gt;
|[https://www.mediafire.com/download/kmcztm1xzjm/TDeinterlace_3-14-2010.rar TDeinterlace_3-14-2010.rar]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Edges&lt;br /&gt;
|'''[[TEMmod]]'''&lt;br /&gt;
|0.2.1 &lt;br /&gt;
|[https://github.com/chikuzen/TEMmod/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[TIVTC]]'''&lt;br /&gt;
|v1.0.11&lt;br /&gt;
|[https://github.com/pinterf/TIVTC/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Deflicker&lt;br /&gt;
|'''[http://www.zhitenev.com/avisynth/TimeLapseDF/ TimeLapseDF]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[http://www.zhitenev.com/avisynth/TimeLapseDF/x64/TimeLapseDF64.dll TimeLapseDF64.dll]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/tp7/tmaskcleaner TMaskCleaner]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[https://github.com/tp7/tmaskcleaner/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/chikuzen/TMM2 TMM2]'''&lt;br /&gt;
|0.1.1&lt;br /&gt;
|[https://github.com/chikuzen/TMM2/releases TMM2-0.1.1.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[TNLMeans]]'''&lt;br /&gt;
|1.0.3 &lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 TNLMeans103_ICL.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Slower version compiled by Joshy D: [https://www.mediafire.com/download/y4e3zd2zodd/TNLMeans_3-20-2010.rar TNLMeans_3-20-2010.rar]&lt;br /&gt;
|-&lt;br /&gt;
|Effects&lt;br /&gt;
|'''[[TransAll]]'''&lt;br /&gt;
|13 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/TxPlus/TxPlus.7z TxPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[TTempSmooth]]'''&lt;br /&gt;
|0.9.4&lt;br /&gt;
|[https://www.mediafire.com/download/zv0jm3mtmzf/TTempSmooth_3-20-2010.rar TTempSmooth_3-20-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Effects&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174399 TxPlus]'''&lt;br /&gt;
|8 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/TxPlus/TxPlus.7z TxPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[VapourSource]]'''&lt;br /&gt;
|0.1.0&lt;br /&gt;
|[https://github.com/chikuzen/VapourSource/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/vague/vaguedenoiser.html VagueDenoiser]'''&lt;br /&gt;
|0.35.1&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 VagueDenoiser0351_64.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?p=1777949#post1777949 Groucho2004].&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[VariableBlur]]'''&lt;br /&gt;
|0.7&lt;br /&gt;
|[http://web.archive.org/web/20140420184040/http://bengal.missouri.edu/~kes25c/variableblur.zip variableblur.zip]&lt;br /&gt;
|Compiled by yo4kazu&lt;br /&gt;
|-&lt;br /&gt;
|Debugging&lt;br /&gt;
|'''[[ViewAudio]]'''&lt;br /&gt;
|0.3.01 &lt;br /&gt;
|[https://www.mediafire.com/download/iyeo4xjlm87hjwq/ViewAudio_x64.7z ViewAudio_x64.7z] - [https://www.mediafire.com/download/81kg55yaiqp1nxc/ViewAudio0301_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Vinverse]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/vinverse/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Subtitles&lt;br /&gt;
|'''[https://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ VSFilterMod]'''&lt;br /&gt;
|r90&lt;br /&gt;
|[http://yadi.sk/d/Mz3AmI4PYwjPu VSFilterMod64.dll]&lt;br /&gt;
|'''Note:''' this version outdated, r111 is the latest version.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.html WaterShed]'''&lt;br /&gt;
|23 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed64.7z Watershed64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[[Waveform]]'''&lt;br /&gt;
|0.3&lt;br /&gt;
|[https://www.dropbox.com/s/ufkw5w0nn79qzd5/waveform.zip?dl=1 waveform.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1751960#post1751960 `Orum].&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=172966 xNLMeans]'''&lt;br /&gt;
|0.03&lt;br /&gt;
|[https://www.mediafire.com/download/4stpv24pvpfclzm/xNLMeans_0.03_20160324.zip xNLMeans_0.03_20160324.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Subtitles&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?p=1839217#post1839217 xy-VSFilter]'''&lt;br /&gt;
|v3.1.0.800&lt;br /&gt;
|[https://github.com/pinterf/xy-VSFilter/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[https://github.com/chikuzen/yadifmod2 yadifmod2]'''&lt;br /&gt;
|0.0.4-1&lt;br /&gt;
|[https://github.com/chikuzen/yadifmod2/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://github.com/chikuzen/YV12To422 YV12to422]'''&lt;br /&gt;
|1.0.2&lt;br /&gt;
|[https://github.com/chikuzen/YV12To422/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. &lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=49429 Zoom]'''&lt;br /&gt;
|20140216&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=14054&amp;amp;d=1392574410 Zoom.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?p=1668648#post1668648 Paser]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
More 64-bit filters can be found in the following sites but be aware that some of the plugins listed are outdated.&lt;br /&gt;
*[https://code.google.com/p/avisynth64/wiki/PluginLinks 64-Bit plugin collection by JoshyD]  &lt;br /&gt;
*[http://members.optusnet.com.au/squid_80/ squid_80's 64-bit repository] &lt;br /&gt;
*[https://web.archive.org/web/20130922222259/http://yo4kazu.110mb.com/ 64-bit filters by yo4kazu]&lt;br /&gt;
*[https://sites.google.com/site/avisynth64bitplugin/download 64bit plugins download list by poodle]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Avisynthplus]]&lt;br /&gt;
[[Category:External_filters]]&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/MVTools</id>
		<title>MVTools</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/MVTools"/>
				<updated>2018-07-11T06:40:17Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Other_filters|Support_filters}}&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;br /&gt;
{{Filter&lt;br /&gt;
|Manao, Fizick, Tsp, TSchniede, SEt, cretindesalpes, pinterf&lt;br /&gt;
|v2.5.11.22 / v2.7.31&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/mvtools/mvtools-v2.5.11.22.zip mvtools-v2.5.11.22.zip]&lt;br /&gt;
-----&lt;br /&gt;
[https://github.com/pinterf/mvtools/releases mvtools-2.7.31-with-depans.7z] ([[High_bit-depth_Support_with_Avisynth|8-16 bits, 420,422,444 support, x86/x64]])&lt;br /&gt;
|[[:Category:Support_filters|Support filters]], [[:Category:Deep_color_tools|Deep color tools]]&lt;br /&gt;
|&lt;br /&gt;
* AviSynth 2.6.0 or [https://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Avisynth+ r2294 or greater for native 10+ bits&lt;br /&gt;
* YV12&lt;br /&gt;
* YUY2&lt;br /&gt;
* YV16, YV24 (2.7.1-)&lt;br /&gt;
* YUV 4:2:0, 4:2:2, 4:4:4 10-16 bits (32 bits in MDegrain)&lt;br /&gt;
|[https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|7=[https://forum.doom9.org/showthread.php?t=84770 Doom9], [https://forum.doom9.org/showthread.php?t=131033 continued]&lt;br /&gt;
------&lt;br /&gt;
[https://forum.doom9.org/showthread.php?p=1386559#post1386559 Doom9 v2.6 mod], [https://forum.doom9.org/showthread.php?t=173356 v2.7mod]}}&lt;br /&gt;
&lt;br /&gt;
== About MVTools ==&lt;br /&gt;
MVTools plugin for AviSynth 2.6 is a collection of functions for estimation and compensation of objects motion in video clips. Motion compensation may be used for strong temporal denoising, advanced framerate conversions, image restoration and other tasks.&lt;br /&gt;
&lt;br /&gt;
The plugin contains the motion estimation server-function MAnalyse to find the motion vectors and several motion compensation client-functions (MCompensate, MMask and others) which use these vectors.&lt;br /&gt;
&lt;br /&gt;
Plugin uses block-matching method of motion estimation (similar methods are used in MPEG2, MPEG4, etc). At analysis stage plugin divides frames by small blocks and try to find for every block in current frame the most similar (matching) block in second frame (previous or next). The relative shift of these blocks is motion vector. The main measure of block similarity is sum of absolute differences (SAD) of all pixels of these two blocks compared. SAD is a value which says how good the motion estimation was.&lt;br /&gt;
&lt;br /&gt;
The output of MAnalyse (server) is special clip with motion vector information in some format.&lt;br /&gt;
&lt;br /&gt;
At compensation stage the plugin client functions read the motion vectors and use them to move blocks and form motion compensated frame (or realize some other full or partial motion compensation or interpolation function). Every object (block) in this (fully) compensated frame is placed in the same position as this object in current frame. So, we may (for example) use strong temporal denoising even for quite fast moving objects without producing annoying artifacts and ghosting (object's features and edges are coincide if compensation is perfect). Plugin can create compensated neighbor frames for every current frame, and denoise it by internal function. Alternatively, you can use compensated and original frames to create interleaved clip, denoise it by any external temporal filter, and select central cleaned original frames for output (see examples).&lt;br /&gt;
&lt;br /&gt;
Of course, the motion estimation and compensation is not ideal and precise. In some complex cases (video with fading, ultra-fast motion, or periodic structures) the motion estimation may be completely wrong, and compensated frame will be blocky and (or) ugly. Severe difficulty is also due to objects mutual screening (occlusion) or reverse opening. Complex Avisynth scripts with many motion compensation functions may eat huge amount of memory and result in very slow processing. It is not simple but quite advanced plugin. Use it for appropriate cases only, and try to tune its parameters. There are many discussions about motion compensation using at doom9 Avisynth forum. In particular see [https://forum.doom9.org/showthread.php?t=76041 old MVTools thread], [https://forum.doom9.org/showthread.php?t=102071 true motion thread], [https://forum.doom9.org/showthread.php?t=84770 new MVTools thread] and some other. Try to read the postings in addition to this documentation and ask for support there. If you really interested in motion estimation and compensation topics, you can easy find numerous scientific publications (use WWW search).&lt;br /&gt;
&lt;br /&gt;
Notes 1: The plugin is still under development. Version 2.5.11.22 version has some limitations. Only progressive YV12, YUY2 video is supported. Use color format conversion and try use (smart) bob-deinterlace for interlaced video (SeparateFields may works too with or without SelectEven/SelectOdd). Some complex scripts (MVBOB, MCBOB, TempGaussMC) use MVTools for motion compensated deinterlace.&lt;br /&gt;
Alternatively you can try to use Motion plugin by mg262.&lt;br /&gt;
&lt;br /&gt;
Notes 2: The pfmod branch (2.7.x.x.) supports YV16 and YV24 colorspaces under AviSynth 2.6 and AviSynth+ versions. Stacked 16 bit output for MDegrain1-6 and MDegrainN are also supported in general.&lt;br /&gt;
Native 10-16 bit colorspaces (and 32 bit float in MDegrain) are available when using MVTools with AviSynth+ r2294-.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Official documentation:&amp;lt;/span&amp;gt; http://www.avisynth.nl/users/fizick/mvtools/mvtools2.html'''&lt;br /&gt;
&lt;br /&gt;
== Common parameters ==&lt;br /&gt;
Filters that use motion vectors have common parameters. Those are the scene-change detection thresholds, and the isse mmx flag. They also use one or several vectors stream, which are produced by MAnalyse.&lt;br /&gt;
&lt;br /&gt;
*{{Template:FuncDef2|thSCD1}} (int): threshold which decides whether a block has changed between the previous frame and the current one. When a block has changed, it means that motion estimation for it isn't relevant. It occurs for example at scene changes. So it is one of the thresholds used to tweak the scene changes detection engine. Raising it will lower the number of blocks detected as changed. It may be useful for noisy or flickered video. The threshold is compared to the SAD (Sum of Absolute Differences, a value which says how bad the motion estimation was ) value. For exactly identical blocks we have SAD=0. But real blocks are always different because of objects complex movement (zoom, rotation, deformation), discrete pixels sampling, and noise. Suppose we have two compared 8x8 blocks with every pixel different by 5. It this case SAD will be 8x8x5 = 320 (block will not detected as changed for thSCD1=400). If you use 4x4 blocks, SAD will be 320/4. If you use 16x16 blocks, SAD will be 320*4. Really this parameter is scaled internally in MVTools, and you must always use reduced to block size 8x8 value. Default is 400 (since v.1.4.1).&lt;br /&gt;
When using with bit depth clips, this parameter is normalized to the proper bit depth, no special scaling needed.&lt;br /&gt;
&lt;br /&gt;
*{{Template:FuncDef2|thSCD2}} (int): threshold which sets how many blocks have to change for the frame to be considered as a scene change. It is ranged from 0 to 255, 0 meaning 0 %, 255 meaning 100 %. Default is 130 ( which means 51 % ).&lt;br /&gt;
&lt;br /&gt;
*{{Template:FuncDef2|isse}} (int): flag which allows to enable (if set to True) or disable (if set to False) ISSE, MMX and other CPU optimizations (for debugging). Default is True. If your processor doesn't support CPU optimizations, it will be disabled anyway ( and you won't be able to activate them ).&lt;br /&gt;
&lt;br /&gt;
*{{Template:FuncDef2|planar}} (bool): flag to use special planar color format for YUY2 clips both for input and output of function. It uses special trick for storing of frames with planar color data organization (separate Y, U, V planes in memory) in normal interleaved YUY2 frames format as a container. This way we can avoid numerous internal interleaved to planar conversions and increase speed. You can convert normal interleaved YUY2 source clip to planar format with Interleaved2planar function from RemoveGrain plugin by kassandro, and convert final result by Planar2interleaved function. This special planar YUY2 format is also supported by Removegrain plugin by Kassandro, MaskTools2 plugin by Manao and some others. This trick will not be needed in Avisynth v2.6 with native support of planar YV16 format. This parameter is ignored for YV12 clips. Note: super clip is always planar. Default is planar=false.&lt;br /&gt;
&lt;br /&gt;
== Filters ==&lt;br /&gt;
{{PluginFilterTable}}&lt;br /&gt;
|-&lt;br /&gt;
{{PluginFilterRow|MVTools2|MSuper|&lt;br /&gt;
Get source clip and prepare special &amp;quot;super&amp;quot; clip with multilevel (hierarchical scaled) frames data.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-32 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MAnalyse|&lt;br /&gt;
Get prepared multilevel super clip, estimate motion by block-matching method and produce special output clip with motion vectors data.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{PluginFilterRow|MVTools2|MCompensate|&lt;br /&gt;
Do a full motion compensation of the frame.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MMask|&lt;br /&gt;
Creates a mask clip from source clip with motion vectors data.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MSCDetection|&lt;br /&gt;
Creates scene detection mask clip from motion vectors data.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MShow|&lt;br /&gt;
Shows the motion vectors on padded source by super clip opening.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{PluginFilterRow|MVTools2|MDepan|&lt;br /&gt;
Get the motion vectors, estimate global motion and put data to output frame in special format for [[DePan]] plugin.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{PluginFilterRow|MVTools2|MFlow|&lt;br /&gt;
Do a motion compensation of the frame not by blocks (like MCompensate), but by pixels. &lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MFlowInter|&lt;br /&gt;
Motion interpolation function.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MFlowFps|&lt;br /&gt;
Will change the frame rate (fps) of the clip. The function can be used for frame rate conversion, slow-motion effect, etc.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MBlockFps|&lt;br /&gt;
The function uses block-based partial motion compensation to change the framerate (fps) of the clip.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{PluginFilterRow|MVTools2|MFlowBlur|&lt;br /&gt;
Experimental simple motion blur function. It may be used for FILM-effect (to simulate finite shutter time)..&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MDegrain1|&lt;br /&gt;
Temporal denoising with motion compensation. MDeGrain1 has a temporal radius of 1.&amp;lt;br&amp;gt;&lt;br /&gt;
(stacked 16-bit output support in version 2.6.0.5, 8-32 bits (8-16bit based vectors) in 2.7.x versions)&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-32 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MDegrain2|&lt;br /&gt;
Temporal denoising with motion compensation. MDeGrain2 has a temporal radius of 2.&amp;lt;br&amp;gt;&lt;br /&gt;
(stacked 16-bit output support in version 2.6.0.5, 8-32 bits (8-16bit based vectors) in 2.7.x versions)&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-32 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MDegrain3|&lt;br /&gt;
Temporal denoising with motion compensation. MDeGrain3 has a temporal radius of 3.&amp;lt;br&amp;gt;&lt;br /&gt;
(stacked 16-bit output support in version 2.6.0.5, 8-32 bits (8-16bit based vectors) in 2.7.x versions)&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-32 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MDegrain4,MDegrain5,MDegrain6|&lt;br /&gt;
Temporal denoising with motion compensation. With temporal radius of 4, 5, 6, respectively&amp;lt;br&amp;gt;&lt;br /&gt;
Available in the 2.7.x branch&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-32 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MDegrainN|&lt;br /&gt;
Temporal denoising with motion compensation. MDeGrainN has a temporal radius given by the tr parameter, and uses a special motion vector clip.&amp;lt;br&amp;gt;&lt;br /&gt;
(16-bit stacked support in version 2.6.0.5, 8-32 bits (8-16bit based vectors) in 2.7.x versions)&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-32 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MRecalculate|&lt;br /&gt;
Refines and recalculates motion data of previously estimated motion vectors.&lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
{{PluginFilterRow|MVTools2|MVShow|&lt;br /&gt;
Shows the motion vectors. &lt;br /&gt;
| [[YV12]], [[YUY2]],&amp;lt;br&amp;gt;any 8-16 bits 4:2:0, 4:2:2, 4:4:4&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note1: native 10-16 bits and 4:2:0 and 8-16 bits 4:2:2, 4:4:4 color spaces are supported in 2.7.x branch&lt;br /&gt;
Note2: native 10+ bits only work with Avisynth+&lt;br /&gt;
Note3: MDegrain supports 32 bit float input clips (Super and Input) but motion vectors should be calculated from 8-16 bits&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border: 1px solid darkgray&amp;quot;&lt;br /&gt;
!Version&lt;br /&gt;
!Date&lt;br /&gt;
!Author&lt;br /&gt;
!Changes&lt;br /&gt;
|-&lt;br /&gt;
|2.7.30&lt;br /&gt;
|20180405&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: crash in MFlowInter (and possibly other MFlow...). v2.7.29 revealed this additional bug (which was not even 100% reproducible), this fix is basically the 2nd part of the solution.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.29&lt;br /&gt;
|20180403&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: MFlowInter (and possibly other MFlow...) crash with specific combination of analyze parameters (e.g. blkSize=16,overlapv=4,divide=1). Bug existed since at least 2.5.11.22&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.28&lt;br /&gt;
|20180323&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: in MDegrain1-6/N allow Y8 input for out16 parameter&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.27&lt;br /&gt;
|20180318&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: MDepan: use zerow parameter. The parameter had no effect probably since it had been introduced.&amp;lt;br&amp;gt;&lt;br /&gt;
MDepan: report MT mode for Avisynth+. MT_MULTI_INSTANCE, except for logfile writing output mode when it reports MT_SERIALIZED. (other filters already have proper registration, MDepan was missed)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.26&lt;br /&gt;
|20180314&lt;br /&gt;
|pinterf&lt;br /&gt;
|New: MDegrain1-6 and N: new parameter bool &amp;quot;out16&amp;quot; = false. If set, 8 bit input results in native 16bit output (like lsb=true hack but this is native, faster).&amp;lt;br&amp;gt;&lt;br /&gt;
Faster: special 10 bit SAD functions instead of the generic 10-16bit one.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.25&lt;br /&gt;
|20180227&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: x64: not-cleared mmx state in MSuper assembly code would cause crash later, e.g. in x264 encoding, depending on following filters.&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: MSCDetection SC value parameter name to Ysc from Yth (must be an ancient typo), docs are OK, but the fix is mentioned in docs&amp;lt;br&amp;gt;&lt;br /&gt;
MSuper: import 8 bit sse2 interpolators from mvtools-vs. Extend them for 10-16bits (faster super clip). Some filters are still todo.&amp;lt;br&amp;gt;&lt;br /&gt;
MSuper: support 32bit float clips, which can be used later by MDegrains (but not for MAnalyse)&amp;lt;br&amp;gt;&lt;br /&gt;
MDegrains: allow degraining clip with different bit depth from vectors. Clip and Super must be the same bit depth&amp;lt;br&amp;gt;&lt;br /&gt;
MDegrains: consistently use limit and limitC, 255 do nothing, otherwise scale 0-254 value to the current bit-depth range&amp;lt;br&amp;gt;&lt;br /&gt;
Overlaps: more correct internal rounding for 8 bits&amp;lt;br&amp;gt;&lt;br /&gt;
Overlaps: round for 16bits&amp;lt;br&amp;gt;&lt;br /&gt;
Overlaps: 32bit float (but still use the original 11 bit window constants)&amp;lt;br&amp;gt;&lt;br /&gt;
Project: change from yasm to nasm.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.24&lt;br /&gt;
|20171205&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: MFlowBlur: possible access violation crash when nPel&amp;gt;1&amp;lt;br&amp;gt;&lt;br /&gt;
New: MScaleVect parameter 'bits'. e.g. Analyze 8 bit clips, use their vectors for 16 bits&amp;lt;br&amp;gt;&lt;br /&gt;
Move project to VS2017&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.23&lt;br /&gt;
|20171012&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: MScaleVect wrong rounding of scaled motion vectors with negative components. e.g. proper scaling (-1;-2) to (-2;-4) instead of (-1,-3)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.22&lt;br /&gt;
|20170830&lt;br /&gt;
|pinterf&lt;br /&gt;
|Misc: Stop using version suffix .22&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [DCT 8x8@8bit] garbage on x64: internal assembly code did not save xmm6/xmm7&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [DCT 8x8@8bit] safe multithreading for integer DCT (8x8 block size, 8 bit video): assembly had a single working buffer.&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [MDegrain] did not release input motion vector clips in destructor, possible hang at script closing. Bug since 2.7.1.22 (introducing MDegrain4/5)&amp;lt;br&amp;gt;&lt;br /&gt;
Mod: fftw conversion constant of sqrt(2)/2 is more accurate (was:0.707), 16 bit formats may benefit (by feisty2)&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: SSE4 assembly instructions in x64, broke on non-SSE4 processors&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.21.22&lt;br /&gt;
|20170629&lt;br /&gt;
|pinterf&lt;br /&gt;
|Mod: [MMask] Faster: request source frame only for kind=5.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.20.22&lt;br /&gt;
|2017.05.26&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: [MMask] greyscale input resulted in AV when filter exiting&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.19.22&lt;br /&gt;
|2017.05.25&lt;br /&gt;
|pinterf&lt;br /&gt;
|New: [MMask] Support any planar input video formats e.g. greyscale, Planar RGB. Input clip can even be of different bit depth or format from vector's original format. For kind==5 where U and V is filled, the greyscale option is not allowed&amp;lt;br&amp;gt;&lt;br /&gt;
Mod: [MMask] Faster: request source frame only for kind=5.&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [MxxxxFPS,MMask]: MakeVectorOcclusionMaskTime garbage in bottom blocks&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [MMask] bottom padding garbage for padded frame dimension&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [MMask] proper 10+ bits scene change values (for default: 1023, 4095, 16383, 65535. Was: 65535). Parameter is still in 8-bit range&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [MRecalculate] prevent overflow during thSAD scaling in 16 bits or large block sizes (32, 48...)&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [DepanEstimate] Sometimes giving wrong motion instead of scene change detection. Bug only existed in previous pfmod builds.&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: [MAnalyze] Possible overflow in MAnalyze 8 bit, block size 48x48 and above. Overflow-safe predictor recalc for big block sizes.&amp;lt;br&amp;gt;&lt;br /&gt;
New: [General] Add block size 12x3 for SAD, allow 6x24&amp;lt;br&amp;gt;&lt;br /&gt;
List of available block sizes&amp;lt;br&amp;gt;&lt;br /&gt;
- 64x64, 64x48, 64x32, 64x16&amp;lt;br&amp;gt;&lt;br /&gt;
- 48x64, 48x48, 48x24, 48x12&amp;lt;br&amp;gt;&lt;br /&gt;
- 32x64, 32x32, 32x24, 32x16, 32x8&amp;lt;br&amp;gt;&lt;br /&gt;
- 24x48, 24x24, 24x32, 24x12, 24x6&amp;lt;br&amp;gt;&lt;br /&gt;
- 16x64, 16x32, 16x16, 16x12, 16x8, 16x4, 16x2&amp;lt;br&amp;gt;&lt;br /&gt;
- 12x48, 12x24, 12x16, 12x12, 12x6, 12x3&amp;lt;br&amp;gt;&lt;br /&gt;
- 8x32, 8x16, 8x8, 8x4, 8x2, 8x1&amp;lt;br&amp;gt;&lt;br /&gt;
- 6x24, 6x12, 6x6, 6x3&amp;lt;br&amp;gt;&lt;br /&gt;
- 4x8, 4x4, 4x2&amp;lt;br&amp;gt;&lt;br /&gt;
- 3x6, 3x3&amp;lt;br&amp;gt;&lt;br /&gt;
- 2x4, 2x2&amp;lt;br&amp;gt;&lt;br /&gt;
Mod: [Internal] Reorganized 10-16 bit SAD simd intrinsics, faster 8-12% for BlkSize 12-32&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.18.22&lt;br /&gt;
|2017.05.12&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: 10-16 bit: DCT buffer possible overflow&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: DCT is fast again for non 8x8 blocksizes. Regression since 2.7.5.22.&amp;lt;br&amp;gt;&lt;br /&gt;
New: Chroma SAD is now always half of luma SAD, regardless of video format. Without this: YV24's luma:chroma SAD ratio is 4:8 instead of 4:2 (of YV12)&amp;lt;br&amp;gt;&lt;br /&gt;
New: MAnalyze, MRecalculate new parameter: &amp;quot;scaleCSAD&amp;quot; integer, default 0.&amp;lt;br&amp;gt;&lt;br /&gt;
Fine tune chroma SAD weight relative to luma SAD.&amp;lt;br&amp;gt;&lt;br /&gt;
ScaleCSAD values for luma:chroma SAD ratio&amp;lt;br&amp;gt;&lt;br /&gt;
* -2: 4:0.5&amp;lt;br&amp;gt;&lt;br /&gt;
* -1: 4:1&amp;lt;br&amp;gt;&lt;br /&gt;
* 0: 4:2 (default, same as the native ratio for YV12)&amp;lt;br&amp;gt;&lt;br /&gt;
* 1: 4:4&amp;lt;br&amp;gt;&lt;br /&gt;
* 2: 4:8&amp;lt;br&amp;gt;&lt;br /&gt;
New: Block sizes 64, 48, 24, 12, 6.&amp;lt;br&amp;gt;&lt;br /&gt;
MAnalyze/MRecalculate new block sizes (SATD support mod4 sizes)&amp;lt;br&amp;gt;&lt;br /&gt;
Note: some smaller block sizes can only be available in 4:4:4 formats, due to block size division (chroma subsampling)&amp;lt;br&amp;gt;&lt;br /&gt;
New: All block sizes are supported in MDegrain1-6, MDegrainN, and MScaleVect&amp;lt;br&amp;gt;&lt;br /&gt;
New: Changed to 2017 version of asm files for 8 bit SAD/SATD functions from x265 project. Added not implemented asm code for 12, 24, 48 sizes&amp;lt;br&amp;gt;&lt;br /&gt;
For some block sizes AVX2 and SSE4 is supported (AVX2 if reported under AviSynth+) e.g. BlkSize 32 is faster now.&amp;lt;br&amp;gt;&lt;br /&gt;
New: MMask SAD Mask to give identical weights for other-than-YV12 formats, e.g. for YV24&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.17.22&lt;br /&gt;
|2017.04.26&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: Regression in 2.7.16.22: MDegrain right pixel artifacts on non-modulo 16 widths&amp;lt;br&amp;gt;&lt;br /&gt;
Misc: MMask, mode SADMask output is normalized further by video subsampling (YV16/YV24 has larger SAD value due to bigger chroma part that classic YV12)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.16.22&lt;br /&gt;
|2017.04.23&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: MMask 10-16 bits&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: MRecalculate 14-16 bits passed nSCD1=999999 internally which caused overflow (scene change problems later)&amp;lt;br&amp;gt;&lt;br /&gt;
Fix is done by clamping SCD1 to 8*8*(255-0) (maximum value of sum of SADs on a 8x8 block)&amp;lt;br&amp;gt;&lt;br /&gt;
Misc: MDegrainX 8 bits: internal 16 bit buffer to 8 bits: SSE2&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: MFlow access violation in internal mv resizer when resizing factor was big (MCaWarpSharp3 4x supersampling case) (bug possibly introduced in upstream 2.5.11.22)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.15.22&lt;br /&gt;
|2017.03.16&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: 16 bit SAD for non-AVX code path&amp;lt;br&amp;gt;&lt;br /&gt;
Misc: MDegrain1-6: add error on lsb_flag=true for non-8 bit sources&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.14.22&lt;br /&gt;
|2017.02.06&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: MAnalyze divide=2 showed &amp;quot;vector clip is too small&amp;quot; (inherited from 2.6.0.5, sanity check was done but length was not filled for divideextra data)&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: MFlow access violation in internal mv resizer when resizing factor was big (MCaWarpSharp3 4x supersampling case) (bug possibly introduced in upstream 2.5.11.22)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.13.22&lt;br /&gt;
|2017.02.01&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: MDegrain1-6,N 10-16 bit thSCD scaling&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: MVShow: tolerance scaling for 10-16 bits&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.12.22&lt;br /&gt;
|2017.01.20&lt;br /&gt;
|pinterf&lt;br /&gt;
|New: Faster SATD (dct=5..10) 8 bit: updated x264 function selectors, SSE2/4/AVX/AVX2; +10% speed for a whole typical MDegrain3 process on i7-3770&amp;lt;br&amp;gt;&lt;br /&gt;
New: Much Faster SATD (dct=5..10) 10-16 bit: SSE2/SSE4 instead of C +50% speed for a whole typical MDegrain3 process (which is approx half speed of 8 bit)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.11.22&lt;br /&gt;
|2017.01.16&lt;br /&gt;
|pinterf&lt;br /&gt;
|New: MDegrain6&amp;lt;br&amp;gt;&lt;br /&gt;
Mod: MDegrain1-6 SSE4 for 10-16 bit (was: C. 3-5% gain, wasn't bottleneck)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.10.22&lt;br /&gt;
|2016.12.28&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: for YV12 the debug info text chroma part was positioned at wrong place&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.9.22&lt;br /&gt;
|2016.12.20&lt;br /&gt;
|pinterf&lt;br /&gt;
|Apply 2.5.11.9-svp analysis speedup, mainly when chroma is involved&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.8.22&lt;br /&gt;
|2016.12.18&lt;br /&gt;
|pinterf&lt;br /&gt;
|Fix: YUY2 input access violation (regression after 2.7.0.22d) - Fixed also in Depan.dll&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: MDegrain: free up YUY2 planes only if not planar input (bug inherited from 2.5.11.22 MDegrain3) resulting in freeze at script exit&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.7.22&lt;br /&gt;
|2016.12.14&lt;br /&gt;
|pinterf&lt;br /&gt;
|Optimizing 8 bits&amp;lt;br&amp;gt;&lt;br /&gt;
speed: change some 8 bit SAD functions for the better&amp;lt;br&amp;gt;&lt;br /&gt;
speed: separating bottleneck 8 bit/16 bit code paths in order not to use slower int64 calculations for 8 bit, where there are no integer overflow problems&amp;lt;br&amp;gt;&lt;br /&gt;
speed: more __forceinlines for helping the compiler&amp;lt;br&amp;gt;&lt;br /&gt;
info:  general speed gain of 5-15% compared to 2.7.6.22, much reduced speed gap compared to the &amp;quot;classic&amp;quot; YV12 8 bit mvtools2 versions&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.6.22&lt;br /&gt;
|2016.12.04&lt;br /&gt;
|pinterf&lt;br /&gt;
|fix: sumLumaChange underflow (used for dct=2,6,9) (regression during 16 bit support)&amp;lt;br&amp;gt;&lt;br /&gt;
fix: MeanLumaChange scale for 10-16 bits (used for dct=2,6,9)&amp;lt;br&amp;gt;&lt;br /&gt;
fix: Mask fix: 8 bit mask resizer bug in SIMD intrinsics (regression on inline asm -&amp;gt; SIMD transition)&amp;lt;br&amp;gt;&lt;br /&gt;
Fix: dctmode=1,2: pixel distance was not corrected for 16 bit pixel sizes&amp;lt;br&amp;gt;&lt;br /&gt;
speed: Let's help VS2015 with some __forceinline directives to recognize the truth.&amp;lt;br&amp;gt;&lt;br /&gt;
speed: Misc optimizations throughout the code (bit shifts instead of div or mul)&amp;lt;br&amp;gt;&lt;br /&gt;
speed: FFTW DCT: C code replaced with SIMD SSE2/SSE4 (FloatToBytes, BytesToFloat)&amp;lt;br&amp;gt;&lt;br /&gt;
speed: 16 bit SAD: a few optimizations in SSE2, AVX-coded SSE2 and AVX2 codepath&amp;lt;br&amp;gt;&lt;br /&gt;
VS2015 compiler: /MT -&amp;gt; /MD (from static to dynamic dlls - now it reallys need VS2015 redistributables)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.5.22&lt;br /&gt;
|2016.11.19&lt;br /&gt;
|pinterf&lt;br /&gt;
|Milestone release:&lt;br /&gt;
General support of 10-16 bit formats with Avisynth Plus (r2294 or newer recommended) with new MDegrain4 and MDegrain5 filters.&amp;lt;br&amp;gt;&lt;br /&gt;
Fix for MSCDetection: scene change filler pixel default value was always 0 (2.7.1.22 regression)&amp;lt;br&amp;gt;&lt;br /&gt;
MCompensate: possible bugfix bottom padding UV&amp;lt;br&amp;gt;&lt;br /&gt;
Fix SAD for 10-16 bit depths for horizontal block sizes &amp;gt;= 16&amp;lt;br&amp;gt;&lt;br /&gt;
Fix nSCD2 (Scene change threshold block count %) (2.7.1.22 regression)&amp;lt;br&amp;gt;&lt;br /&gt;
MBlockFPS: overlap fixes (right columns and bottom lines)&amp;lt;br&amp;gt;&lt;br /&gt;
MBlockFPS: overlap fix: missing copy buffer to output&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.1.22&lt;br /&gt;
|2016.10.20&lt;br /&gt;
|pinterf&lt;br /&gt;
|YV16 and YV24 avaliable&amp;lt;br&amp;gt;&lt;br /&gt;
dct modes &amp;gt;= 5 now use SATD again (so far it was in dead code, contrary to 2.5.13.1 remarks)&amp;lt;br&amp;gt;&lt;br /&gt;
New: MDegrain4, MDegrain5&amp;lt;br&amp;gt;&lt;br /&gt;
Experimental native 10-16 bit support (MSuper, MAnalyze, MDegrain1-5, MDegrainN) including 16 bit SATD (slow C) and SSE2 optimized regular SAD for 8+ (for 10+ bits you need at least Avisynth+ r2290)&amp;lt;br&amp;gt; &lt;br /&gt;
Inline assembly rewritten to intrinsics -&amp;gt; 64 bit build is possible in VS2015 (External assembly untouched)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.0.22&lt;br /&gt;
|2016.04.29&lt;br /&gt;
|pinterf&lt;br /&gt;
|Integrate Fizick's upstream changes of 2.5.11.22&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.7.0.1&lt;br /&gt;
|2016.03.31&lt;br /&gt;
|pinterf&lt;br /&gt;
|MVTools-pfmod&amp;lt;br&amp;gt;&lt;br /&gt;
2.6.0.5 x64 capable version ported under AviSynth 2.6 API&amp;lt;br&amp;gt;&lt;br /&gt;
Fixed access violation in MDepan&amp;lt;br&amp;gt;&lt;br /&gt;
Fixed access violation in x64 asm code&amp;lt;br&amp;gt;&lt;br /&gt;
Built with Visual Studio 2015 Community Edition, v140_xp toolset&amp;lt;br&amp;gt;&lt;br /&gt;
Compiler: Intel C++ 16 (because of inline 64 bit asm code)&amp;lt;br&amp;gt;&lt;br /&gt;
See [https://forum.doom9.org/showthread.php?t=173356 discussion] and [https://github.com/pinterf/mvtools/tree/mvtools-pfmod GitHub page] for more information.&amp;lt;br/&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
|2.6.0.5&lt;br /&gt;
|2012.07.17&lt;br /&gt;
|Firesledge&lt;br /&gt;
|MCompensate, MDegrainN: fixed a bug causing occasionally horizontal magenta stripes in multithreading mode.&lt;br /&gt;
|-&lt;br /&gt;
|2.6.0.4&lt;br /&gt;
|2012.06.14&lt;br /&gt;
|Firesledge&lt;br /&gt;
|MCompensate: fixed artifacts related to overlap with tr &amp;gt; 3 in multithreading mode.&lt;br /&gt;
|-&lt;br /&gt;
|2.6.0.3&lt;br /&gt;
|2012.05.13&lt;br /&gt;
|Firesledge&lt;br /&gt;
|MDegrainN: fixed artifacts related to overlap with tr &amp;gt; 3 in multithreading mode.&lt;br /&gt;
|-&lt;br /&gt;
|2.6.0.2&lt;br /&gt;
|2012.05.01&lt;br /&gt;
|Firesledge&lt;br /&gt;
|MAnalyse: fixed a threading issue when using FFTW.&lt;br /&gt;
|-&lt;br /&gt;
|2.6.0.1&lt;br /&gt;
|2012.03.12&lt;br /&gt;
|Firesledge&lt;br /&gt;
|&lt;br /&gt;
MAnalyse: fixed potential crash in multithreading mode.&amp;lt;br/&amp;gt;&lt;br /&gt;
MDegrainN: fixed systematic crash in multithreading mode.&amp;lt;br/&amp;gt;&lt;br /&gt;
All MDegrain functions: fixed potential crash when thSAD is set to 0.&lt;br /&gt;
|-&lt;br /&gt;
|2.6.0.0&lt;br /&gt;
|2012.03.11&lt;br /&gt;
|Firesledge&lt;br /&gt;
|&lt;br /&gt;
MDegrainN: internally uses MDegrain1/2/3 when tr ≤ 3, for optimal speed.&amp;lt;br/&amp;gt;&lt;br /&gt;
MCompensate: added multi-compensation mode for easy use with temporal filters.&amp;lt;br/&amp;gt;&lt;br /&gt;
MAnalyse, MSuper, MCompensate, MDegrainN: added multithreading (but partially, not for all code paths) using AVSTP.&amp;lt;br/&amp;gt;&lt;br /&gt;
MAnalyse: fixed a corruption of the global motion vector.&amp;lt;br/&amp;gt;&lt;br /&gt;
Improved page setting for this documentation.&lt;br /&gt;
|-&lt;br /&gt;
|2.5.14.2&lt;br /&gt;
|2012.01.10&lt;br /&gt;
|Firesledge&lt;br /&gt;
|Fixed MScaleVect with multi-vector clips.&lt;br /&gt;
|-&lt;br /&gt;
|2.5.14.1&lt;br /&gt;
|2011.12.13&lt;br /&gt;
|Firesledge&lt;br /&gt;
|Fixed crashes in the MDegrain functions when using both planar=true and lsb=true.&lt;br /&gt;
|-&lt;br /&gt;
|2.5.14.0&lt;br /&gt;
|2011.11.28&lt;br /&gt;
|Firesledge and Vit&lt;br /&gt;
|Added MStoreVect, MRestoreVect and MScaleVect from the Vit's [https://forum.doom9.org/showthread.php?t=84770&amp;amp;page=76#post1538821 MVExtras plugin].&lt;br /&gt;
|-&lt;br /&gt;
|2.5.13.1&lt;br /&gt;
|2011.11.09&lt;br /&gt;
|Firesledge&lt;br /&gt;
|&lt;br /&gt;
MAnalyse, MRecalculate: added an SATD approximation for blksize &amp;gt; 16 and dct ≥ 5. Previously, the SATD calculation was silently bypassed and always returned a null SAD value.&amp;lt;br/&amp;gt;&lt;br /&gt;
Functions now check that the pel setting is the same in the superclip and the motion vectors, instead of crashing if not.&lt;br /&gt;
|-&lt;br /&gt;
|2.5.13.0 beta&lt;br /&gt;
|2011.09.11&lt;br /&gt;
|Firesledge&lt;br /&gt;
|&lt;br /&gt;
MRecalculate: Can now process multi-vector clips.&amp;lt;br/&amp;gt;&lt;br /&gt;
All functions: Added the -Vit-'s fix that could improve the multithreading stability.&lt;br /&gt;
|-&lt;br /&gt;
|2.5.12.1 beta&lt;br /&gt;
|2011.09.10&lt;br /&gt;
|Firesledge&lt;br /&gt;
|MAnalyse: Fixed the ghosting bug introduced in the previous version.&lt;br /&gt;
|-&lt;br /&gt;
|2.5.12.0 beta&lt;br /&gt;
|2011.09.10&lt;br /&gt;
|Firesledge&lt;br /&gt;
|&lt;br /&gt;
MDegrainN added.&amp;lt;br/&amp;gt;&lt;br /&gt;
MAnalyse: Added the &amp;quot;multi&amp;quot; mode for MDegrainN.&amp;lt;br/&amp;gt;&lt;br /&gt;
MAnalyse: Documented the negative delta values and fixed some functions accordingly.&amp;lt;br/&amp;gt;&lt;br /&gt;
MFlowInter: Fixed the YUY2 planar mode.&lt;br /&gt;
|-&lt;br /&gt;
|2.5.11.2 beta mod16b&lt;br /&gt;
|2011.05.11&lt;br /&gt;
|Firesledge&lt;br /&gt;
|Fixed a regression in MDegrain1/2/3, related to the mod16 versions. thSADC is now taken into account correctly (instead of using thSAD).&lt;br /&gt;
|-&lt;br /&gt;
|2.5.11.2 beta mod16a&lt;br /&gt;
|2011.04.10&lt;br /&gt;
|Firesledge&lt;br /&gt;
|Merged 2.5.11.2 and 2.5.11 mod16a versions.&lt;br /&gt;
|}&lt;br /&gt;
[http://www.avisynth.nl/users/fizick/mvtools/mvtools2.html#revisions Changelog up to v2.5.11.22]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Links ==&lt;br /&gt;
*[https://forum.doom9.org/showthread.php?t=84770 Doom9 Forum] - MVTools discussion.&lt;br /&gt;
*[http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=1918 NMM-HD Forum] - MVTools documentation in Chinese.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Spinner</id>
		<title>Spinner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Spinner"/>
				<updated>2018-07-03T03:37:30Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=140019&amp;amp;highlight=Spinner Spinner plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Turn function rotates a frame or selected part of it about the specified fulcrum. [http://www.avisynth.nl/users/vcmohan/movePlus/Turn.html Full description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Turn (clip, clip &amp;quot;bg&amp;quot;, int &amp;quot;r&amp;quot;, float &amp;quot;angle&amp;quot;, float &amp;quot;x&amp;quot;, float &amp;quot;y&amp;quot;, int &amp;quot;q&amp;quot;, int &amp;quot;er&amp;quot;, float &amp;quot;eangle&amp;quot;, float &amp;quot;ex&amp;quot;, float &amp;quot;ey&amp;quot;, int &amp;quot;lx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ty&amp;quot;, int &amp;quot;by&amp;quot;, int &amp;quot;elx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ety&amp;quot;, int&amp;quot;eby&amp;quot;, int &amp;quot;p&amp;quot;, int &amp;quot;p&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|r|int|half of diagonal of frame}}&lt;br /&gt;
::: (Initial) radius of rotating disc&lt;br /&gt;
::::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|angle|float|45}}&lt;br /&gt;
::: (Initial) angle of rotation in degrees&lt;br /&gt;
::::* No limit. +ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|x|float|width/2}}&lt;br /&gt;
::: (Initial) x coordinate of rotation axis&lt;br /&gt;
::::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|y|float|height/2}}&lt;br /&gt;
::: (Initial) y coordinate of rotation axis&lt;br /&gt;
::::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|q|int|3 (Bicubic)}}&lt;br /&gt;
::: Interpolation type&lt;br /&gt;
::::* 1 = Nearest neighbor&lt;br /&gt;
::::* 2 = Bilinear&lt;br /&gt;
::::* 3 = Bicubic &lt;br /&gt;
::::* 4 = Lanczos 6x6 point&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|er|int|r}}&lt;br /&gt;
::: End radius of rotating disc&lt;br /&gt;
::::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eangle|float|angle}}&lt;br /&gt;
::: End angle of rotation in degrees&lt;br /&gt;
::::* No limit. -ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ex|float|x}}&lt;br /&gt;
::: End x coordinate of rotation axis&lt;br /&gt;
::::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ey|float|y}}&lt;br /&gt;
::: End y coordinate of rotation axis&lt;br /&gt;
::::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lx|int|0}}&lt;br /&gt;
::: (Initial) left x coordinate of rectangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|width - 1}}&lt;br /&gt;
::: (Initial) right x coordinate of rectangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ty|int|0}}&lt;br /&gt;
::: (Initial) top y coordinate of rectangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|by|int|height - 1}}&lt;br /&gt;
::: (Initial) bottom y coordinate of rectangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|elx|int|lx}}&lt;br /&gt;
::: End left x coordinate of rctangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|rx}}&lt;br /&gt;
::: End right x coordinate of rectangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ety|int|ty}}&lt;br /&gt;
::: End top y coordinate of rctangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eby|int|by}}&lt;br /&gt;
::: End bottom y coordinate of rectangle to display&lt;br /&gt;
::::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|50}}&lt;br /&gt;
::: Location percentile accuracy&lt;br /&gt;
::::* Should be 5 to 100&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|4}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
::::* 2 to 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
::::* true or false&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 im1 = imagereader(...).ConvertToRGB24()&lt;br /&gt;
 r1 = Turn(im1, q = 0, angle = 240, eangle = 4800, lx = 100, rx = 400, ty = 200, by = 250)&lt;br /&gt;
 r2 = Turn(im1, q = 2, angle = 240, x = 210.4, y = 188.6, r = 140)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Reformer</id>
		<title>Reformer</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Reformer"/>
				<updated>2018-07-03T03:36:32Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?t=166716&amp;amp;highlight=Reformer Reformer plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Reform uses matrix algebra for transformations. Reform has two modes viz: rectangle to quadrilateral and quadrilateral to rectangle. Lanczos or cubic or linear or nearest point interpolation methods can be opted. [http://www.avisynth.nl/users/vcmohan/movePlus/Reform.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Reform (clip, clip, string &amp;quot;resize&amp;quot;, float &amp;quot;ltopx&amp;quot;, float &amp;quot;ltopy&amp;quot;, float &amp;quot;lbotx&amp;quot;, float &amp;quot;lboty&amp;quot;, float &amp;quot;rtopx&amp;quot;, float &amp;quot;rtopy&amp;quot;, float &amp;quot;rbotx&amp;quot;, float &amp;quot;rboty&amp;quot;, float &amp;quot;leftx&amp;quot;, float &amp;quot;rightx&amp;quot;, float &amp;quot;ytop&amp;quot;, float &amp;quot;ybot&amp;quot;, bool &amp;quot;qr&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be skewed into quadrilateral or deskewed into rectangle&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|resize|string|&amp;quot;cubic&amp;quot;}}&lt;br /&gt;
::: Radius of grid to use&lt;br /&gt;
::::* &amp;quot;lanczos&amp;quot;&lt;br /&gt;
::::* &amp;quot;cubic&amp;quot;&lt;br /&gt;
::::* &amp;quot;line&amp;quot;&lt;br /&gt;
::::* &amp;quot;point&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopx|float|0}}&lt;br /&gt;
::: Q left top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopy|float|0}}&lt;br /&gt;
::: Q left top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lbotx|float|0}}&lt;br /&gt;
::: Q left bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lboty|float|frame height - 1}}&lt;br /&gt;
::: Q left bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopx|float|frame width - 1}}&lt;br /&gt;
::: Q right top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopy|float|0}}&lt;br /&gt;
::: Q right top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rbotx|float|frame width - 1}}&lt;br /&gt;
::: Q right bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rboty|float|frame height - 1}}&lt;br /&gt;
::: Q right bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|leftx|float|0}}&lt;br /&gt;
::: R left x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rightx|float|frame width - 1}}&lt;br /&gt;
::: R right x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ytop|float|0}}&lt;br /&gt;
::: R top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ybot|float|frame height - 1}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|qr|bool|true}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
::::* true = q to r&lt;br /&gt;
::::* false = r to q&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Whether normalised coordinates are specified?&lt;br /&gt;
::::* true = normalized&lt;br /&gt;
::::* false = real&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
Script example:&lt;br /&gt;
 ColorBars().ConvertToRGB32()&lt;br /&gt;
 bg = blankclip(last)&lt;br /&gt;
 Reform(bg, resize= &amp;quot;lanczos&amp;quot;,leftx = 100,rightx = 400, ytop = 200, ybot = 480,ltopx=200,ltopy=150, rbotx = 500, rboty = 400)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/DeBarrel</id>
		<title>DeBarrel</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DeBarrel"/>
				<updated>2018-07-03T03:35:27Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|Adjustment_filters|Transformation}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt;[http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt;30 Dec 2016&lt;br /&gt;
|3= [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4= External filters&lt;br /&gt;
|5= [https://www.gnu.org/licenses/gpl-3.0.en.html GPLv3]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?t=136083&amp;amp;highlight=DeBarrel Original DeBarrel plugin], [https://forum.doom9.org/showthread.php?t=174163 movePlus]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Corrects Barrel type or Pin Cushion type distortions in an image that result in due to camera lens projecting image on to a flat film or sensor array. [http://www.avisynth.nl/users/vcmohan/movePlus/Barrel.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Barrel (clip, float &amp;quot;a&amp;quot;, float &amp;quot;b&amp;quot;, float &amp;quot;c&amp;quot;, bool &amp;quot;pin&amp;quot;, float &amp;quot;vh&amp;quot;, bool &amp;quot;test&amp;quot;, float &amp;quot;ea&amp;quot;, float &amp;quot;eb&amp;quot;, float &amp;quot;ec&amp;quot;, int &amp;quot;nsteps&amp;quot;, Int &amp;quot;frame&amp;quot;, Int &amp;quot;color&amp;quot;, bool &amp;quot;ind&amp;quot;, bool &amp;quot;ypin&amp;quot;, float &amp;quot;ya&amp;quot;, float &amp;quot;yb&amp;quot;, float &amp;quot;yc&amp;quot;, float &amp;quot;yea&amp;quot;, float &amp;quot;yeb&amp;quot;, float &amp;quot;yec&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|a|float|0.005}}&lt;br /&gt;
::: Coefficient a (xa in independent mode and start val in test mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|b|float|0.005}}&lt;br /&gt;
::: Coefficient b (xb in independent mode and start val in test mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|c|float|0.005}}&lt;br /&gt;
::: Coefficient c (xc in independent mode and start val in test mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|pin|bool|false}}&lt;br /&gt;
::: Whether to correct pin cushion or barrel type distortion&lt;br /&gt;
::::* true = pin&lt;br /&gt;
::::* false = barrel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|vh|bool|1.0}}&lt;br /&gt;
::: Vertical to horizontal distortion ratio&lt;br /&gt;
::::* Between 0.1 and 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|test|bool|false}}&lt;br /&gt;
::: Whether in test mode&lt;br /&gt;
::::* true = test&lt;br /&gt;
::::* false = normal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ea|float|0.05}}&lt;br /&gt;
::: End value of coefficient a in test mode (xea in independent mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eb|float|0.05}}&lt;br /&gt;
::: End value of coefficient b in test mode (xeb in independent mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ec|float|0.05}}&lt;br /&gt;
::: End value of coefficient c in test mode (xec in independent mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|nsteps|int|20}}&lt;br /&gt;
::: Number of steps for variation (test mode only)&lt;br /&gt;
::::* Between 0 and 100&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|frame|Int|0}}&lt;br /&gt;
::: Input frame number for over lay (test mode only)&lt;br /&gt;
::::* Within input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|color|Int|0}}&lt;br /&gt;
::: Color of dots in test mode and left out borders in normal&lt;br /&gt;
::::* In RRGGBB format&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ind|bool|false}}&lt;br /&gt;
::: Whether x and y have independent coefficients&lt;br /&gt;
::::* true for independent&lt;br /&gt;
::::* false for pin cushion or barrel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ypin|bool|false}}&lt;br /&gt;
::: Whether Y direction has pin cushion distortion?&lt;br /&gt;
::::* true for pin cushion&lt;br /&gt;
::::* false for barrel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ya|float|0.05}}&lt;br /&gt;
::: Value of coefficient ya (start value in test mode )&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|yb|float|0.05}}&lt;br /&gt;
::: Value of coefficient yb (start value in test mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|yc|float|0.05}}&lt;br /&gt;
::: Value of coefficient yc (start value in test mode)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|yea|float|0.05}}&lt;br /&gt;
::: End value of coefficient ya (test mode only)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|yeb|float|0.05}}&lt;br /&gt;
::: End value of coefficient yb (test mode only)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|yec|float|0.05}}&lt;br /&gt;
::: End value of coefficient yc (test mode only)&lt;br /&gt;
::::* Between - 0.5 and 0.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 blankclip(width = 720, height = 480, pixel_type = &amp;quot;RGB32&amp;quot;, color = $ffffff, length = 10)&lt;br /&gt;
 grid()&lt;br /&gt;
 Barrel()&lt;br /&gt;
&lt;br /&gt;
Pin Cushion Distortion&lt;br /&gt;
 Barrel(a = 0.005, b = 0.005, c = 0.005, pin = false)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/DeSaltPepper</id>
		<title>DeSaltPepper</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DeSaltPepper"/>
				<updated>2018-07-03T03:34:20Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 17 Oct 2017&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?p=895926#post895926 Announced DeSaltPepper plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The function SaltPepper uses morphology technique to identify such noise and replace those pixels by average or minimum or maximum whichever is appropriate of the surrounding pixels. [http://www.avisynth.nl/users/vcmohan/modPlus/SaltPepper.html Full Description].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| SaltPepper(clip, string &amp;quot;opt&amp;quot;, bool &amp;quot;uv&amp;quot;, bool &amp;quot;avg&amp;quot;, int &amp;quot;feedback&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|opt|string|&amp;quot;both&amp;quot;}}&lt;br /&gt;
::: Process option&lt;br /&gt;
::::* &amp;quot;salt&amp;quot;&lt;br /&gt;
::::* &amp;quot;pepper&amp;quot;&lt;br /&gt;
::::* &amp;quot;both&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|uv|bool|true}}&lt;br /&gt;
::: UV processing required?&lt;br /&gt;
::::* true for u, v process&lt;br /&gt;
::::* false for not processing u, v&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|avg|bool|true}}&lt;br /&gt;
::: Is average is replacement value?&lt;br /&gt;
::::* true for average&lt;br /&gt;
::::* false for max value of neighborhood for salt and minimum value for pepper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|feedback|int|0}}&lt;br /&gt;
::: Number of feed back loops in processing to be used. applicable only if avg is true.&lt;br /&gt;
::::* 0 to 10&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 SaltPepper(img, opt = &amp;quot;both&amp;quot;,UV = true, tol = 0, avg = true, feedback = 3 ) &lt;br /&gt;
&lt;br /&gt;
 ds = SaltPepper(img, opt = &amp;quot;both&amp;quot;,UV = true)&lt;br /&gt;
 ds1 = SaltPepper(img, opt = &amp;quot;salt&amp;quot;,UV = false, avg = false)&lt;br /&gt;
 ds2 = SaltPepper(ds1, opt = &amp;quot;pepper&amp;quot;,UV = true)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/DeSaltPepper</id>
		<title>DeSaltPepper</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DeSaltPepper"/>
				<updated>2018-07-03T03:34:07Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 17 Oct 2017&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?p=895926#post895926 Announced DeSaltPepper plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The function SaltPepper uses morphology technique to identify such noise and replace those pixels by average or minimum or maximum whichever is appropriate of the surrounding pixels. [http://www.avisynth.nl/users/vcmohan/modPlus/SaltPepper.html Full Description].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| SaltPepper(clip, string &amp;quot;opt&amp;quot;, bool &amp;quot;uv&amp;quot;, bool &amp;quot;avg&amp;quot;, int &amp;quot;feedback&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|opt|string|&amp;quot;both&amp;quot;}}&lt;br /&gt;
::: Process option&lt;br /&gt;
::::* &amp;quot;salt&amp;quot;&lt;br /&gt;
::::* &amp;quot;pepper&amp;quot;&lt;br /&gt;
::::* &amp;quot;both&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|uv|bool|true}}&lt;br /&gt;
::: UV processing required?&lt;br /&gt;
::::* true for u, v process&lt;br /&gt;
::::* false for not processing u, v&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|avg|bool|true}}&lt;br /&gt;
::: Is average is replacement value?&lt;br /&gt;
::::* true for average&lt;br /&gt;
::::* false for max value of neighborhood for salt and minimum value for pepper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|feedback|int|0}}&lt;br /&gt;
::: Number of feed back loops in processing to be used. applicable only if avg is true.&lt;br /&gt;
::::* 0 to 10&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 SaltPepper(img, opt = &amp;quot;both&amp;quot;,UV = true, tol = 0, avg = true, feedback = 3 ) &lt;br /&gt;
&lt;br /&gt;
 ds = SaltPepper(img, opt = &amp;quot;both&amp;quot;,UV = true)&lt;br /&gt;
 ds1 = SaltPepper(img, opt = &amp;quot;salt&amp;quot;,UV = false, avg = false)&lt;br /&gt;
 ds2 = SaltPepper(ds1, opt = &amp;quot;pepper&amp;quot;,UV = true)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/DeNoise</id>
		<title>DeNoise</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DeNoise"/>
				<updated>2018-07-03T03:33:40Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt;[http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt;17 Oct 2017&lt;br /&gt;
|3= [http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- catagory --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt;[https://www.gnu.org/licenses/gpl-3.0.en.html GPLv3]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?p=712586#post712586 announced DeNoise plugin], [https://forum.doom9.org/showthread.php?t=174162 modPlus]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
This is an adaptive local noise reduction filter. It uses global variance of the noise, local mean and local variance in a moving grid of specified size. It tries to preserve edges as closely as possible. [http://www.avisynth.nl/users/vcmohan/modPlus/minvar.html Full Description]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| minvar (clip, int &amp;quot;sf&amp;quot;, int &amp;quot;xgrid&amp;quot;, int &amp;quot;ygrid&amp;quot;, int &amp;quot;lx&amp;quot;, int &amp;quot;ty&amp;quot;, int &amp;quot;wd&amp;quot;, int &amp;quot;ht&amp;quot;, bool &amp;quot;uv&amp;quot;, bool &amp;quot;a&amp;quot;, bool &amp;quot;show&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|sf|int|0}}&lt;br /&gt;
::: Frame number in which specified window is located.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|xgrid|int|5}}&lt;br /&gt;
::: Number of pixels along x axis in moving grid.&lt;br /&gt;
::::* Between 3 to 9&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ygrid|int|xgrid}}&lt;br /&gt;
::: Number of pixels along y axis in moving grid.&lt;br /&gt;
::::* Between 3 to 9&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lx|int|None. Must be specified}}&lt;br /&gt;
::: Window left x computing global variance.&lt;br /&gt;
::::* Within clip&lt;br /&gt;
::::* Less than rx&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ty|int|None. Must be specified}}&lt;br /&gt;
::: Window top y for computing global variance.&lt;br /&gt;
::::* Within clip&lt;br /&gt;
::::* Less than by&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|wd|int|None. Must be specified}}&lt;br /&gt;
::: Window width for computing global variance.&lt;br /&gt;
::::* lx + wd be within frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ht|int|None. Must be specified}}&lt;br /&gt;
::: Window height for computing global variance.&lt;br /&gt;
::::* ty + ht be within frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|uv|bool|true}}&lt;br /&gt;
::: Whether U and V of YUY2 and YUV formats to be processed.&lt;br /&gt;
::::* true = uv process&lt;br /&gt;
::::* false = do not process uv&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|a|bool|false}}&lt;br /&gt;
::: Whether A value of RGB formats to be processed.&lt;br /&gt;
::::* true = yes&lt;br /&gt;
::::* false = no&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|show|bool|false}}&lt;br /&gt;
::: Whether variance values are to be displayed as an error message.&lt;br /&gt;
::::* true = yes&lt;br /&gt;
::::* false = no&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 ## This is some example code to remove noise from an image.&lt;br /&gt;
 imagereader(&amp;quot;C:\avi_plugins\varianslim\theoin.jpg&amp;quot;, end = 10)&lt;br /&gt;
 converttoyv16()&lt;br /&gt;
 minvar(sf = 35,lx=220,wd=245,ty=322,ht=150, uv = true)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/AdaptiveMedian</id>
		<title>AdaptiveMedian</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/AdaptiveMedian"/>
				<updated>2018-07-03T03:33:07Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Denoisers|TODO}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus (Median filter)]&lt;br /&gt;
|4=External filters&lt;br /&gt;
|5=[https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[https://forum.doom9.org/showthread.php?p=712586#post712586 AdaptiveMedian], [https://forum.doom9.org/showthread.php?t=174162 modPlus update]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This is an adaptive Median Filter for eliminating certain types of noise. It uses local statistics (minimum, maximum and median values) of a moving local grid, and changes grid size depending on local statistics. [http://www.avisynth.nl/users/vcmohan/modPlus/Median.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|&amp;lt;!-- function name --&amp;gt; Median (''clip'', ''int'' &amp;quot;maxgrid&amp;quot;, ''bool'' &amp;quot;yy&amp;quot;, ''bool'' &amp;quot;uu&amp;quot;, ''bool'' &amp;quot;vv&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.       &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|maxgrid|int|5}}&lt;br /&gt;
:::Grid size to get statistics can grow to this value starting from 3x3.&lt;br /&gt;
::::* Maximum value allowed is 9.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|yy|bool|true}}&lt;br /&gt;
::{{Par2|uu|bool|false}}&lt;br /&gt;
::{{Par2|vv|bool|false}}&lt;br /&gt;
:::Choose which [[YUV]] planes to process.&lt;br /&gt;
::::* True: Do not process &lt;br /&gt;
::::* False: Process &lt;br /&gt;
:::By default only the luma plane (Y) is processed. If the input clip is [[RGB]], then these parameters are simply ignored.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
 Median()&lt;br /&gt;
&lt;br /&gt;
 a = converttoYUY2()&lt;br /&gt;
 Median(a, maxgrid=7, yy = false, uu = true, vv = true)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/AdaptiveMedian</id>
		<title>AdaptiveMedian</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/AdaptiveMedian"/>
				<updated>2018-07-03T03:32:57Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Denoisers|TODO}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus (Median filter)]&lt;br /&gt;
|4=External filters&lt;br /&gt;
|5=[https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[https://forum.doom9.org/showthread.php?p=712586#post712586 AdaptiveMedian], [https://forum.doom9.org/showthread.php?t=174162 modPlus update]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This is an adaptive Median Filter for eliminating certain types of noise. It uses local statistics (minimum, maximum and median values) of a moving local grid, and changes grid size depending on local statistics. [http://www.avisynth.nl/users/vcmohan/modPlus/Median.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|&amp;lt;!-- function name --&amp;gt; Median (''clip'', ''int'' &amp;quot;maxgrid&amp;quot;, ''bool'' &amp;quot;yy&amp;quot;, ''bool'' &amp;quot;uu&amp;quot;, ''bool'' &amp;quot;vv&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.       &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|maxgrid|int|5}}&lt;br /&gt;
:::Grid size to get statistics can grow to this value starting from 3x3.&lt;br /&gt;
:::* Maximum value allowed is 9.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|yy|bool|true}}&lt;br /&gt;
::{{Par2|uu|bool|false}}&lt;br /&gt;
::{{Par2|vv|bool|false}}&lt;br /&gt;
:::Choose which [[YUV]] planes to process.&lt;br /&gt;
::::* True: Do not process &lt;br /&gt;
::::* False: Process &lt;br /&gt;
:::By default only the luma plane (Y) is processed. If the input clip is [[RGB]], then these parameters are simply ignored.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
 Median()&lt;br /&gt;
&lt;br /&gt;
 a = converttoYUY2()&lt;br /&gt;
 Median(a, maxgrid=7, yy = false, uu = true, vv = true)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/GBlur</id>
		<title>GBlur</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/GBlur"/>
				<updated>2018-07-03T03:32:23Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Adjustment_filters|Blurring}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 17 Oct 2017&lt;br /&gt;
|3=&amp;lt;!-- download --&amp;gt; [http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z Download]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=174162 modPlus plugin for avisynth+]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
GBlur smoothes an image by use of separable symmetric matrix of convolution coefficients. [http://www.avisynth.nl/users/vcmohan/modPlus/GBlur.html Full Discription] &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| GBlur (clip, int &amp;quot;rad&amp;quot;, float &amp;quot;sd&amp;quot;, bool &amp;quot;u&amp;quot;, bool &amp;quot;v&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rad|int|3}}&lt;br /&gt;
::: Radius of grid to use&lt;br /&gt;
::::* Number between 3 to 8&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rad|float|1.5}}&lt;br /&gt;
::: Standard deviation&lt;br /&gt;
::::* More than 0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|u|bool|false}}&lt;br /&gt;
::: Is u plane smoothing required?&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|v|bool|false}}&lt;br /&gt;
::: Is v plane smoothing required?&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 GBlur()&lt;br /&gt;
&lt;br /&gt;
 GBlur(rad = 4,sd = 1.0, u = true, v = false)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/HistogramAdjust</id>
		<title>HistogramAdjust</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/HistogramAdjust"/>
				<updated>2018-07-03T03:31:57Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|17 Oct 2017 &lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt;External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt;[https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?p=719889#post719889 HistogramAdjust  plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function adjusts the histogram of a frame by either equalizing it or by matching with histogram of another image, or with given histogram table of values. [http://www.avisynth.nl/users/vcmohan/modPlus/TweakHist.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
* Source video: Progressive &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| GBlur (clip, int &amp;quot;rad&amp;quot;, float &amp;quot;sd&amp;quot;, bool &amp;quot;u&amp;quot;, bool &amp;quot;v&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rad|int|3}}&lt;br /&gt;
::: Radius of grid to use &lt;br /&gt;
::::* Between 3 to 8&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|sd|float|1.5}}&lt;br /&gt;
::: Standard deviation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|u|bool|false}}&lt;br /&gt;
::: Is u plane smoothing required?&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|v|bool|false}}&lt;br /&gt;
::: Is v plane smoothing required?&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
 TweakHist() &lt;br /&gt;
 TweakHist(c,type=2,mclip=mm,mf=26)&lt;br /&gt;
 TweakHist(c,15,2, 30,12, 50, 33, 90, 12,150,35,200,10, type=3,limit=50)&lt;br /&gt;
 TweakHist(20,1,150,100,255,110, type=4,limit = 70) &lt;br /&gt;
&lt;br /&gt;
:RGB input. Repeated for each color&lt;br /&gt;
&lt;br /&gt;
 TweakHist(limit = 70,rgb = 0)&lt;br /&gt;
 TweakHist(limit = 70,rgb = 1)&lt;br /&gt;
 TweakHist(limit = 50, rgb = 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Yadifmod</id>
		<title>Yadifmod</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Yadifmod"/>
				<updated>2018-07-03T03:27:22Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Restoration_filters|Deinterlacers}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/tritical}}, {{Author/Chikuzen}}&lt;br /&gt;
| 0.0.4-1&lt;br /&gt;
| [https://github.com/chikuzen/yadifmod2/releases/download/0.0.4-1/yadifmod2-0.0.4-1.zip yadifmod2-0.0.4-1.zip]&lt;br /&gt;
| Deinterlacing &lt;br /&gt;
| [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[https://forum.doom9.org/showthread.php?p=1045451#post1045451 Doom9 Thread]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
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's also not an Avisynth_C plugin (just a normal one).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.6 or later&lt;br /&gt;
* Color formats except alpha and [[YUY2]] are supported&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|yadifmod2 (clip, int &amp;quot;order&amp;quot;, int &amp;quot;field&amp;quot;, int &amp;quot;mode&amp;quot;, clip &amp;quot;edeint&amp;quot;, int &amp;quot;opt&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: All planar 8/10/12/14/16/float formats except alpha are supported.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|order|int|-1}}&lt;br /&gt;
::: Set the field order.&lt;br /&gt;
&lt;br /&gt;
::::*-1(default) : use Avisynth's internal parity value&lt;br /&gt;
::::*0 : bff (bottom field first)&lt;br /&gt;
::::*1 : tff (top field first)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|field|int|-1}}&lt;br /&gt;
:::Controls which field to keep when using same rate output.  This parameter doesn't do anything when using double rate output.&lt;br /&gt;
&lt;br /&gt;
::::*-1 : Set equal to order&lt;br /&gt;
::::*0 : Keep bottom field&lt;br /&gt;
::::*1 : Keep top field&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|mode|int|0}}&lt;br /&gt;
:::Controls double rate vs same rate output, and whether or not the spatial interlacing check is performed.&lt;br /&gt;
&lt;br /&gt;
::::*0 : Same rate, do spatial check&lt;br /&gt;
::::*1 : Double rate, do spatial check&lt;br /&gt;
::::*2 : Same rate, no spatial check&lt;br /&gt;
::::*3 : Double rate, no spatial check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|edeint|clip|NULL}}&lt;br /&gt;
:::Clip from which to take spatial predictions.  This clip must be the same width, height, and colorspace as the input clip.&lt;br /&gt;
:::If using same rate output, this clip should have the same number of frames as the input. If using double rate output, this clip should have twice as many frames as the input.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|opt|int|others}}&lt;br /&gt;
:::Controls which CPU optimizations are used.&lt;br /&gt;
::::*0 : Use C++ routine.&lt;br /&gt;
::::*1 : Use SSE2 + SSE routine if possible. When SSE2 can't be used, fallback to 0.&lt;br /&gt;
::::*2 : Use SSSE3 + SSE2 + SSE routine if possible. When SSSE3 can't be used, fallback to 1.&lt;br /&gt;
::::*3 : Use SSE4.1 + SSSE3 + SSE2 + SSE routine if possible. When SSE4.1 can't be used, fallback to 2.&lt;br /&gt;
::::*4 : Use SSE4.1 + SSSE3 + SSE2 + AVX routine if possible. When AVX can't be used, fallback to 3.&lt;br /&gt;
::::*others : Use AVX2 + AVX routine if possible. When AVX2 can't be used, fallback to 4.(default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples == &lt;br /&gt;
yadifmod with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;blah.avi&amp;quot;)&lt;br /&gt;
 yadifmod(order=-1, field=-1, mode=0, opt=0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[https://forum.doom9.org/showthread.php?t=173316 Discussion]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Deinterlacing|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Yadifmod</id>
		<title>Yadifmod</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Yadifmod"/>
				<updated>2018-07-03T03:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Restoration_filters|Deinterlacers}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/tritical}}, {{Author/Chikuzen}}&lt;br /&gt;
| 0.0.4-1&lt;br /&gt;
| [https://github.com/chikuzen/yadifmod2/releases/download/0.0.4-1/yadifmod2-0.0.4-1.zip yadifmod2-0.0.4-1.zip]&lt;br /&gt;
| Deinterlacing &lt;br /&gt;
| [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[https://forum.doom9.org/showthread.php?p=1045451#post1045451 Doom9 Thread]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
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's also not an Avisynth_C plugin (just a normal one).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.6 or later&lt;br /&gt;
* Color formats except alpha and [[YUY2]] are supported&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|yadifmod2 (clip, int &amp;quot;order&amp;quot;, int &amp;quot;field&amp;quot;, int &amp;quot;mode&amp;quot;, clip &amp;quot;edeint&amp;quot;, int &amp;quot;opt&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: All planar 8/10/12/14/16/float formats except alpha are supported.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|order|int|-1}}&lt;br /&gt;
::: Set the field order.&lt;br /&gt;
&lt;br /&gt;
::::*-1(default) : use Avisynth's internal parity value&lt;br /&gt;
::::*0 : bff (bottom field first)&lt;br /&gt;
::::*1 : tff (top field first)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|field|int|-1}}&lt;br /&gt;
:::Controls which field to keep when using same rate output.  This parameter doesn't do anything when using double rate output.&lt;br /&gt;
&lt;br /&gt;
::::*-1 : Set equal to order&lt;br /&gt;
::::*0 : Keep bottom field&lt;br /&gt;
::::*1 : Keep top field&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|mode|int|0}}&lt;br /&gt;
:::Controls double rate vs same rate output, and whether or not the spatial interlacing check is performed.&lt;br /&gt;
&lt;br /&gt;
::::*0 : Same rate, do spatial check&lt;br /&gt;
::::*1 : Double rate, do spatial check&lt;br /&gt;
::::*2 : Same rate, no spatial check&lt;br /&gt;
::::*3 : Double rate, no spatial check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|edeint|clip|NULL}}&lt;br /&gt;
:::Clip from which to take spatial predictions.  This clip must be the same width, height, and colorspace as the input clip.&lt;br /&gt;
:::If using same rate output, this clip should have the same number of frames as the input. If using double rate output, this clip should have twice as many frames as the input.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|opt|int|others}}&lt;br /&gt;
:::Controls which CPU optimizations are used.&lt;br /&gt;
::::*0 : Use C++ routine.&lt;br /&gt;
::::*1 : Use SSE2 + SSE routine if possible. When SSE2 can't be used, fallback to 0.&lt;br /&gt;
::::*2 : Use SSSE3 + SSE2 + SSE routine if possible. When SSSE3 can't be used, fallback to 1.&lt;br /&gt;
::::*3 : Use SSE4.1 + SSSE3 + SSE2 + SSE routine if possible. When SSE4.1 can't be used, fallback to 2.&lt;br /&gt;
::::*4 : Use SSE4.1 + SSSE3 + SSE2 + AVX routine if possible. When AVX can't be used, fallback to 3.&lt;br /&gt;
::::*others : Use AVX2 + AVX routine if possible. When AVX2 can't be used, fallback to 4.(default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples == &lt;br /&gt;
yadifmod with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;blah.avi&amp;quot;)&lt;br /&gt;
 yadifmod(order=-1, field=-1, mode=0, opt=0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[https://forum.doom9.org/showthread.php?t=173316 Discussion]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Deinterlacing|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/SMDegrain</id>
		<title>SMDegrain</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/SMDegrain"/>
				<updated>2018-07-03T02:11:59Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Denoisers|Spatial-Temporal Denoisers|Deep_color_tools}}&lt;br /&gt;
{{Filter&lt;br /&gt;
| Caroliano, {{Author/Dogway}}, Real.Finder&lt;br /&gt;
| v3.1.2.98s&lt;br /&gt;
|&lt;br /&gt;
* [https://pastebin.com/fU2a3Mqy SMDegrain]&amp;lt;br/&amp;gt;&lt;br /&gt;
* VapourSynth: [[https://github.com/HomeOfVapourSynthEvolution/havsfunc HAvsFunc]]&lt;br /&gt;
| 4=Spatial-Temporal Denoisers&lt;br /&gt;
| 7=[https://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-0d-A-Quality-Denoising-Solution VideoHelp], [https://forum.doom9.org/showthread.php?t=163604 Doom9], [https://forum.doom9.org/showthread.php?t=174121 Doom9 mod] }}&lt;br /&gt;
&lt;br /&gt;
'''SMDegrain''', the Simple MDegrain Mod, is mainly a convenience function for using [[MVTools]]. It is not a magic function (the magic comes from mvtools), it just takes the repetitive code blocks needed for mvtools+mdegrain denoising and wraps them into this function.&lt;br /&gt;
&lt;br /&gt;
It has internal switches for interlaced or YUY2 content, saving you from writing long lines of code and preventing from possible mistakes. YUY2 is even automatically detected. Apart of that it adds some small and simple enhancements listed below, like easy prefilters, slightly better motion vectors (thanks to an internal TV-&amp;gt;PC luma expansion and the possibility of dark enhancement), easy nnedi3 subpixel accuracy, globals import/export, show panel, and contra-sharpening option.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
[[MaskTools2]] and [[MVTools]] (mod versions recommended)&lt;br /&gt;
&lt;br /&gt;
===Optional===&lt;br /&gt;
* [[Dither]] for 16 bit processing (v1.26.5 or higher)&lt;br /&gt;
* [[RgTools]] for contrasharp=true or prefilter=1 or 2&lt;br /&gt;
* [[LSFmod]] for contrasharp &amp;gt; 0.0&lt;br /&gt;
* [[dfttest]] for prefilter=3&lt;br /&gt;
* [[nnedi3]] for subpixel=3&lt;br /&gt;
''Beware, tp7's plugin mods have no YUY2 support, require AviSynth 2.6a5 or latest Set's MT for v2.6, and Visual C++ 2012 Redistributable.''&lt;br /&gt;
&lt;br /&gt;
==Aknowledgements==&lt;br /&gt;
Original '''SMDegrain()''' by Caroliano&lt;br /&gt;
&lt;br /&gt;
This function uses code from Didée, and cretindesalpes' creations, and has parts inspired by LaTo's functions (old readme, Show panel, etc) and Jawed's Killer() function, apart of relying on third-party tools for certain features.&lt;br /&gt;
&lt;br /&gt;
Special thanks go to: cretindesalpes, Didée, Gavino, Sagekilla, and MVtools people.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The benefit of using SMDegrain over directly calling MDegrain is:&lt;br /&gt;
* '''High bitdepth denoising''': This is the first wrapper function to support 32bit (16bit pipeline) MDegrain denoising.&lt;br /&gt;
* '''Higher temporal radius''' (tr&amp;gt;3): The [[MVTools]] mod (and hence this script) also allows for hack-free higher temporal radius.&lt;br /&gt;
* '''Contrasharpening''': The pretty much standarized sharpening method created by Didée is blended into the function, so you can easily use it in 16bit pipelines. An strength biased method is also possible. A ''CClip'' parameter is also supplied so you can choose another source to sharpen from, other than the default '''SMDegrain()''' input.&lt;br /&gt;
* '''YUY2 support''': It automatically and fully supports YUY2.&lt;br /&gt;
* '''Interlaced support''': It supports interlaced sources with most parameters as well.&lt;br /&gt;
* '''Extended Subpixel Accuracy''': [[nnedi3]] is allowed as a subpixel filter, not necessary in most cases, but if you are quality mad try to set it on.&lt;br /&gt;
* '''Better Motion Vectors''': An internal conversion from TV levels (reduced values range) to PC levels (extended values range) is done to the clip the motion analysis will be performed on, so you can get better motion vectors (up to 16%)&lt;br /&gt;
* '''Prefilters''': An easy parameter to load generalist prefilters that perform well in most situations. It also accepts loading your personal prefiltered clips.&lt;br /&gt;
* '''Motion Filters''': New in version 3.0d. It will allow you to filter those parts where '''SMDegrain()''' couldn't find a matching block for denoising. One use for it would be spatial denoisers or deblockers since high-motion areas are prone to heavy blocking and artifacts.&lt;br /&gt;
* '''Global Motion Vector In/Out''': Reuse motion vectors globals for faster processing, or just use '''SMDegrain()''' as a shortcut for creating nice quality motion vectors.&lt;br /&gt;
* '''RefineMotion Option''' (MRecalculate): Slower, but sometimes a big quality boost.&lt;br /&gt;
* '''Show Panel''': Everything is off by default, but some settings change in context. Check what is happening behind the scenes and have a fast look at all your settings.&lt;br /&gt;
* '''Robust''': Everything of the above works with each other no problem (interoperability), also in the process some error proof, bugfixes and bug workarounds were implemented or at least warned so you know that most of what is done is reliable, bugs free and optimized. The general idea is to serve as an user friendly front end for vanilla mvtools2+mdegrain or as the original script creator entitled &amp;quot;To make your scripts shorter and less geeky&amp;quot;. Most parameters are turned off or defaulted to mvtools2 defaults and features are based on popular general conceived procedures.&lt;br /&gt;
&lt;br /&gt;
Parameters are arranged in 3 blocks.&lt;br /&gt;
*'''Basic''': For people who just need the most basic parameters because either they don't have the time, knowledge or interest into looking for complex settings. Or they are content with defaults (pretty much mvtools defaults)&lt;br /&gt;
*'''High Bit Depth''': There's not much to think about this. This just enables (default is disabled), high bit depth denoising. That is, more quality, but also needs more processing power hence slower.&lt;br /&gt;
*'''Advanced''': If you run into some problems, are nitpicking or just want to fine tune your settings according to the source, have a look at this block, it contains the rest and bulk of the function parameters.&lt;br /&gt;
&lt;br /&gt;
Temporal denoising is a widespread procedure for noise cleaning in most type of video sources. The only limitation for '''SMDegrain()''' being when there are (very) high levels of grain, in which case you would need to rely on more &amp;quot;creative&amp;quot; and source centric solutions (see [https://forum.doom9.org/showthread.php?p=1544619#post1544619 this] and ''prefilter'' notes), but those are the rare cases.&lt;br /&gt;
&lt;br /&gt;
To picture what the function does, a simple '''SMDegrain()''' call matches the next code (for SD resolutions):&lt;br /&gt;
&lt;br /&gt;
 super_search = Dither_Luma_Rebuild(S0=1.0,c=0.0625).MSuper(rfilter=4)&lt;br /&gt;
 &lt;br /&gt;
 bv2 = super_search.MAnalyse(isb = true,  delta = 2, overlap= 4)&lt;br /&gt;
 bv1 = super_search.MAnalyse(isb = true,  delta = 1, overlap= 4)&lt;br /&gt;
 fv1 = super_search.MAnalyse(isb = false, delta = 1, overlap= 4)&lt;br /&gt;
 fv2 = super_search.MAnalyse(isb = false, delta = 2, overlap= 4)&lt;br /&gt;
 &lt;br /&gt;
 MDegrain2(MSuper(levels=1), bv1, fv1, bv2, fv2, thSAD=300, thSADC=150)&lt;br /&gt;
&lt;br /&gt;
As you see no wizardry. The only changes made are the TV-&amp;gt;PC luma expansion (''Dither_Luma_Rebuild''(S0=1.0,c=0.0625) similar to ''color_yuv''(levels=&amp;quot;TV-&amp;gt;PC&amp;quot;)) so you have more range to detect motion vectors, the ''rfilter''=4 for a bit more quality super search, the changed default of ''overlap'' from 0 to 4 and ''thSAD'' and ''thSADC'' from 400 to 300 and 150 respectively for safer results. Nothing else. The problem is that as soon you want to change a little thing like say temporal radius it requires you to edit in more than a few places, so this is very annoying and so forth the main reason for '''SMDegrain()'''.&lt;br /&gt;
 &lt;br /&gt;
==Using the filter==&lt;br /&gt;
*Input can be YV12 or YUY2, and '''must''' be TV range (which is normal). It's also recommended to be in modulus 16 size (resolution multiple of 16), although not strictly necessary.&lt;br /&gt;
*Crop first (when not interlaced).&lt;br /&gt;
*Recommended to deblock if blocking is present, before crop (when cropping) and '''SMDegrain()'''. Or you can use ''prefilter''=3 which is also a good deblocker (dfttest) and let '''SMDegrain()''' clean the blocking for you.&lt;br /&gt;
*Default output mode(dithering) for ''lsb''=true (when non interlaced) is ordered dither (optimized for encoding), so it is not recommended to keep filtering non-edge areas of your source, you can instead use ''mode''=6 (error diffusion) or ''lsb_out''=true and keep filtering in 16bit&lt;br /&gt;
*Read the ''prefilter'' setting explanation for solutions to problematic sources&lt;br /&gt;
&lt;br /&gt;
==Ready-to-run Samples==&lt;br /&gt;
&lt;br /&gt;
I consider this a good starting point where to start tweaking, whether be it for quality or speed:&lt;br /&gt;
 SMDegrain(tr=2,thSAD=250,contrasharp=true,refinemotion=true,lsb=true)&lt;br /&gt;
 &lt;br /&gt;
A basic, fast, yet very functional call for light grain (mvtools2+masktools2 only needed)&lt;br /&gt;
 SMDegrain(tr=1,thSAD=300,contrasharp=true)&lt;br /&gt;
&lt;br /&gt;
A typical more worked call compatible with official mvtools2 (mvtools2+masktools2 only needed)&lt;br /&gt;
 SMDegrain(tr=2,thSAD=300,interlaced=true,prefilter=1,contrasharp=true)&lt;br /&gt;
&lt;br /&gt;
Good compromise between speed and quality (denoising with high precision)&lt;br /&gt;
 SMDegrain(tr=2,thSAD=300,contrasharp=true,refinemotion=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
Similar to the previous example, the next is a personal preference. Turned all chroma off for safeness (chroma is rarely temporal-reliable enough) and speed.&lt;br /&gt;
 SMDegrain(tr=2,thSAD=300,contrasharp=true,refinemotion=true,lsb=true,chroma=false,plane=0)&lt;br /&gt;
&lt;br /&gt;
This is a good example to show that interlaced YUY2 sources can be processed seamlessly.&lt;br /&gt;
 # mod4 (modulus 4) interlaced YUY2 source&lt;br /&gt;
 SMDegrain(tr=1,thSAD=250,interlaced=true,contrasharp=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
HD sources are detected automatically, and as so settings are optimized for speed; ''pel''=1, ''hpad''=0, ''vpad''=0, ''blksize''=32, ''overlap''=16, ''truemotion''=false&lt;br /&gt;
 # HD source (from 1100px wide or 600px high up)&lt;br /&gt;
 SMDegrain(tr=2,thSAD=180,prefilter=2,contrasharp=30,refinemotion=true,lsb=true,chroma=false,plane=0)&lt;br /&gt;
&lt;br /&gt;
For dealing with dark scenes (you could also add ''truemotion''=false)&lt;br /&gt;
 SMDegrain(tr=3,thSAD=300,contrasharp=true,str=2.0,refinemotion=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
Tackling a grainy source:&lt;br /&gt;
 pre=fluxsmootht(3).removegrain(11)&lt;br /&gt;
 SMDegrain(tr=6,thSAD=500,contrasharp=30,prefilter=pre,str=1.2,refinemotion=true,lsb=true)&lt;br /&gt;
&lt;br /&gt;
Here 2 things are shown; how to work on a 16bit pipeline, and reference a prior state of the script for ''contrasharp''.&lt;br /&gt;
 sharp=last&lt;br /&gt;
 dfttest(tbsize=1,sigma=10,lsb=true)&lt;br /&gt;
 &lt;br /&gt;
 SMDegrain(tr=3,thSAD=300,CClip=sharp,lsb_in=true,lsb_out=true)&lt;br /&gt;
 &lt;br /&gt;
 LinearResize(854,480,lsb_in=true, mode=0)&lt;br /&gt;
&lt;br /&gt;
(Re)using motion vectors globals&lt;br /&gt;
 SMDegrain(tr=1,thSAD=400,prefilter=3,str=1.4,globals=3)    # Output vectors only&lt;br /&gt;
 MFlowFps(Super, bv1, fv1, num=60,den=1)&lt;br /&gt;
 &lt;br /&gt;
==Parameters==&lt;br /&gt;
{{FuncDef|SMDegrain}} (clip input, int &amp;quot;tr&amp;quot;, int &amp;quot;thSAD&amp;quot;, int &amp;quot;thSADC&amp;quot;, bool &amp;quot;RefineMotion&amp;quot;, val &amp;quot;contrasharp&amp;quot;, clip &amp;quot;CClip&amp;quot;, bool &amp;quot;interlaced&amp;quot;, int &amp;quot;plane&amp;quot;, int &amp;quot;Globals&amp;quot;, int &amp;quot;pel&amp;quot;, int &amp;quot;subpixel&amp;quot;, val &amp;quot;prefilter&amp;quot;, clip &amp;quot;mfilter&amp;quot;, int &amp;quot;blksize&amp;quot;, int &amp;quot;overlap&amp;quot;, int &amp;quot;search&amp;quot;, bool &amp;quot;truemotion&amp;quot;, int &amp;quot;limit&amp;quot;, int &amp;quot;limitc&amp;quot;, int &amp;quot;thSCD1&amp;quot;, int &amp;quot;thSCD2&amp;quot;, bool &amp;quot;chroma&amp;quot;, int &amp;quot;hpad&amp;quot;, int &amp;quot;vpad&amp;quot;, bool &amp;quot;lsb&amp;quot;, bool &amp;quot;lsb_in&amp;quot;, bool &amp;quot;lsb_out&amp;quot;, int &amp;quot;mode&amp;quot;, val &amp;quot;Show&amp;quot;, float &amp;quot;Str&amp;quot;, float &amp;quot;Amp&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Basic===&lt;br /&gt;
&lt;br /&gt;
{{ParR|tr|int|2|1-128}}&lt;br /&gt;
:Temporal radius, selects the MDegrain to use. This can be considered the strength of the denoising. Higher is generally better, but also much slower and each extra frame gives less improvement.&lt;br /&gt;
:tr 4+ requires Dither's MVTools2 mod. Max 64 for interlaced.&lt;br /&gt;
&lt;br /&gt;
{{Par|thSAD|int|300}}&lt;br /&gt;
{{Par|thSADC|int|150}}&lt;br /&gt;
:&amp;quot;Sum of Absolute Differences&amp;quot; threshold. This is the spatial difference threshold where the motion search will consider whether to denoise given the formula: &lt;br /&gt;
::Denoise_Weight = max( 0, 1 - 2*blockSAD² / (thSAD² + blockSAD²) )&lt;br /&gt;
:This spatial difference will be compared in blocks (''blksize''). If your noise is not getting into consideration for the denoising try raising this value, or reduce its SAD with previous prefiltering. You can alternatively raise ''blksize'', which will likely even blocks SAD. Low values can result in staggered/blotchy denoising, large values can result in ghosting and artifacts. Values in the range 200~600 are usual.&lt;br /&gt;
:thSADC is the same logic applied to chroma planes, since there are less differences on the chroma planes it uses by default thSAD/2 for safer chroma results.&lt;br /&gt;
:'''Recommendation''': Use slightly greater values than you are used to in other mdegrain based functions since the internal clip for the motion search in SMDegrain() has the contrast increased.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Contrasharp|bool|False|True/False}}&lt;br /&gt;
{{ParR|Contrasharp|int|-|0-100}}&lt;br /&gt;
:Contrasharpening is a technique that compares the differences between the clip before blurring (original) and after blurring (filtered), and sharpens locally with consequent strength. By default the &amp;quot;sharp&amp;quot; clip is the input, the &amp;quot;after&amp;quot; clip is the denoised clip. Alternately, a &amp;quot;before&amp;quot; clip can be specified with ''CClip'' (See Advanced).&lt;br /&gt;
:*True: use Didée's Contrasharpening() function (ContraHD() for HD) which &amp;quot;Sharpens the denoised clip, but doesn't add more to any pixel than what was removed previously.&amp;quot; In the practice you will get a slightly sharper result than the source, which is welcome.&lt;br /&gt;
:*An integer: LSFmod() will be used instead. It will be much slower, but maybe better for certain sources. Its value will serve as a contrasharpening multiplier, use one around 50 for similar strength as Contrasharpening(). LSFmod is less-suitable for HD sources.&lt;br /&gt;
&lt;br /&gt;
{{Par|RefineMotion|bool|False}}&lt;br /&gt;
:Refines and recalculates motion data of previously estimated (by MAnalyse) motion vectors. Turn it on for better motion vectors, specially when dealing with ghosting issues, small details or lineart fading and whatnot.&lt;br /&gt;
:'''Caution''': It won't help much if you use a ''prefilter'' so strong that blurs too much or kills all the details you are aiming to protect in first place.&lt;br /&gt;
&lt;br /&gt;
{{ParR|plane|int|4|0-4}}&lt;br /&gt;
:Select the planes you wish to process:&lt;br /&gt;
:*0: luma only&lt;br /&gt;
:*1: chroma U&lt;br /&gt;
:*2: chroma V&lt;br /&gt;
:*3: both chromas&lt;br /&gt;
:*4: all (Default)&lt;br /&gt;
:'''Caution''': plane=1-4 can sometimes create chroma smearing. In such case I recommend denoising chroma planes in the spatial domain.&lt;br /&gt;
&lt;br /&gt;
{{Par|Interlaced|bool|False}}&lt;br /&gt;
:If you want to denoise an interlaced source set this parameter to true. Output will also be interlaced. If you pair this with ''lsb_out''=true then you will have to &amp;lt;tt&amp;gt;Weave().DitherPost(mode=6,interlaced=true)&amp;lt;/tt&amp;gt; when converting back to 8 bit.&lt;br /&gt;
&lt;br /&gt;
===High Bit Depth Processing And Dithering===&lt;br /&gt;
All High Bit Depth parameters require [[Dither]] and [[MVTools]] 2.6+. The [[VapourSynth]] version doesn't use these parameters; it automatically outputs the same bitdepth as the input.&lt;br /&gt;
&lt;br /&gt;
{{Par|lsb_in|bool|False}}&lt;br /&gt;
:Set true if you use a 16 bits filter chain. *(EXPERIMENTAL, use under test environment)&lt;br /&gt;
&lt;br /&gt;
{{Par|lsb_out|bool|False}}&lt;br /&gt;
:Output to 16-bit instead of 8-bit. Use the helpers at the end of the SMDegrain() script to use Ditherpost() with YUY2 formats.&lt;br /&gt;
&lt;br /&gt;
{{Par|lsb|bool|False}}&lt;br /&gt;
:This enables 32 bit depth precision for denoising. You gain extra denoising accuracy, most noticeable in the prevention of banding in flat areas. Automatically set if either ''lsb_in'' or ''lsb_out'' are enabled.&lt;br /&gt;
&lt;br /&gt;
{{ParR|mode|int|0|-1-8}}&lt;br /&gt;
:This is the '''mode''' of [[Dither#DitherPost|DitherPost]] when ''lsb_out''=False, as a dithering method must be chosen for the 32bit-&amp;gt;8bit conversion. (Interlaced content is locked to mode=6) The default ''mode''=0 will help you optimize the dithering for optimum encodings when no further non-edge processing is done. Use ''mode''=6 (error diffusion) if further processing will be done.&lt;br /&gt;
&lt;br /&gt;
===Advanced===&lt;br /&gt;
&lt;br /&gt;
{{ParR|pel|int|2|1,2,4}}&lt;br /&gt;
:Accuracy of the motion estimation:&lt;br /&gt;
:* 1: full-pixel (Default for HD)&lt;br /&gt;
:* 2: half-pixel (Default for SD)&lt;br /&gt;
:* 4: quarter-pixel (often more accurate, but much slower and not always better)&lt;br /&gt;
&lt;br /&gt;
{{ParR|subpixel|int|2|0-3}}&lt;br /&gt;
:Subpixel interpolation method for ''pel''=2 or 4. This is the 'sharp' parameter in MSuper(), although it isn't related to output sharpness but better accuracy for the motion estimation.&lt;br /&gt;
:* 0: bilinear (softest)&lt;br /&gt;
:* 1: bicubic (4 tap Catmull-Rom)&lt;br /&gt;
:* 2: sharper Wiener (6 tap, similar to Lanczos) (Default)&lt;br /&gt;
:* 3: [[nnedi3]] (very high quality: useful for small sources but usually overkill. requires plugin)&lt;br /&gt;
&lt;br /&gt;
{{ParR|prefilter|int|-1|-1-3}}&lt;br /&gt;
{{Par|prefilter|clip|None}}&lt;br /&gt;
:* -1: off (Default)&lt;br /&gt;
:* 0: light controlled gauss blur&lt;br /&gt;
:* 1: mild median/gauss blur&lt;br /&gt;
:* 2: strong median/gauss blur&lt;br /&gt;
:* 3: [[dfttest]] (spatial)&lt;br /&gt;
:* clip: supply your own&lt;br /&gt;
:Denoises a version of the clip that will be used to obtain the motion vectors. Useful for very damaged/grainy sources, this will help to get better motion vectors.&lt;br /&gt;
:For sources with Gibbs noise, especially on anime, try ''prefilter''=1 or 2 or better yet strong median filters (through clip input) in order to soothe the high SAD of sharp edges. For blocky sources, or a general more quality/safer prefilter use option 3 (dfttest)&lt;br /&gt;
:By default dfttest outputs a sstring txt file to your script folder, you can delete it. This doesn't happen when using the modded dfttest (version 1.9.2 or higher) of the Dither tools.&lt;br /&gt;
:For HD sources ''prefilter''=2 makes more sense than 1, because it uses a wider denoising window.&lt;br /&gt;
:If instead you want to use your own prefilter denoiser, just define it in a variable and reference it here. Remember to:&lt;br /&gt;
:*Feed always 8 bit clips.&lt;br /&gt;
:*Input in fields for interlaced content *(read below)&lt;br /&gt;
:*Feed here planar ( by using Interleaved2Planar() ) YUY2 clips (not interleaved) when working with YUY2 sources.&lt;br /&gt;
:You will likely want to use spatial denoisers like median filters (removegrain=17, medianblur, etc). For very grainy or fizz grain noise you can try prefiltering in temporal or if this is not enough, try adding a new SMDegrain() line again but without globals. Use ''lsb_in'', ''lsb_out'' according so results are smooth. You can even use SMDegrain() as a prefilter for SMDegrain() in very temporal unstable sources.&lt;br /&gt;
:Another trick for fizz grain is to serve a prefiltered clip where bright values are more denoised than dark values, you can do this through luma masks with masktools2 code. Search in [https://forum.doom9.org/showthread.php?t=162813 Doom9] for reference.&lt;br /&gt;
:For interlaced sources remember:&lt;br /&gt;
::Spatial filtering: pre=separatefields().spatial_prefilters_here()&lt;br /&gt;
::Temporal filtering: pre=separatefields().interleave(selecteven().temporal_filters(),selectodd().temporal_filters())&lt;br /&gt;
:SMDegrain() (and MDegrain) is likely to produce blending artifacts or oversmooth in dark areas specially on cartoons, to tackle this see RefineMotion or expand the luma range in the darks. For this there are many options, you can use your preferred gamma enhancer and input it as the prefilter, or use the examples below for linear brightening (masktools2) and input it as a ''prefilter'' as well. Or at last and the recommended solution, to use the built-in ''Str'' (strength) and ''Amp'' (amplitude) parameters for a curve type dark enhancement, check the effects by enabling Show and changing your previewing conditions to PC levels.&lt;br /&gt;
:For brightening dark values linearly (brighter parts less brightening)&lt;br /&gt;
 str=1&lt;br /&gt;
 mt_lut(&amp;quot;x x &amp;quot;+string(str)+&amp;quot; 6 * - 255 - abs 255 / ^ x 1 - abs +&amp;quot;)&lt;br /&gt;
:Or for a more contrasty image (although not as much dark enhancing - not linear)&lt;br /&gt;
 str=40&lt;br /&gt;
 mt_lut(&amp;quot;x x &amp;quot;+string(str)+&amp;quot; 6 * - 255 - abs 255 / ^ &amp;quot;+string(str)+&amp;quot; / x 1 - abs +&amp;quot;)&lt;br /&gt;
:Good resources for custom prefilters:&lt;br /&gt;
:*https://forum.doom9.org/showthread.php?t=162813&lt;br /&gt;
:*https://forum.doom9.org/showthread.php?t=132310&lt;br /&gt;
:*https://forum.doom9.org/showthread.php?t=133977&lt;br /&gt;
:Notes: To sum it up; generally in denoising, temporal filters are always preferred due to its natural look (versus spatial filters). But more often than not for good results prefiltering plays a key role on the output quality, and setting it up nicely can be looked as an art by itself.&lt;br /&gt;
:If there's a reached point where no prefiltering, no ''thSAD'' tweaking, etc, makes able to denoise a certain motion part/area/scene, then this is due to the motion vectors preventing them from being &amp;quot;denoised&amp;quot; (also read &amp;quot;artifacted&amp;quot;), in which case you will need to rely on alternative solutions (motion compensation, filters like MCTemporalDenoise(), TemporalDegrain(), [https://forum.doom9.org/showthread.php?p=1544619#post1544619 Multilevel MDegrain], etc) or just use plain spatial filters with motion masks. Creating these discerning masks for static and motion scenes and combining them is a research task on the end user side.&lt;br /&gt;
&lt;br /&gt;
{{Par|mfilter|clip|None}}&lt;br /&gt;
:Motion Filter, an optional user-supplied clip that will be passed through those areas where SMDegrain() couldn't find a matching block, normally high motion areas. One use for it would be to to use spatial filters, like deblockers or blurring filters that mimic motion blur.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Str|float|1.0|0.0-8.0}}&lt;br /&gt;
:Gamma correction. With this parameter you control the strength of the brightening of the ''prefilter'' clip, good for when problems with dark areas arise. Using this internally instead of externally creates less quantization artifacts, since it's done in the same stage as the TV-&amp;gt;PC range conversion.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Amp|float|0.0625|0.0-1.0}}&lt;br /&gt;
:Used when ''Str'' &amp;lt;&amp;gt; 1.0. This defines the amplitude of the brightening in the luma range, for example by using 1.0 all the luma range will be used and the brightening will find its peak at luma value 128 in the original. Default is 0.0625 (1.0/16) which just sits over luma value 16 (256/16) This and ''Str'' are extrapolated arguments from [https://forum.doom9.org/showthread.php?p=1548318#post1548318 cretindesalpes' function], you can find a graph and more insight explanations at the original post.&lt;br /&gt;
:Check these 2 parameters effects by enabling ''show''.&lt;br /&gt;
&lt;br /&gt;
{{ParR|blksize|int|8 for SD, 16 for HD|4,8,16}}&lt;br /&gt;
:Size of a block (horizontal x vertical). Larger blocks are faster and less sensitive to noise, but also less accurate.&lt;br /&gt;
&lt;br /&gt;
{{Par|overlap|int|blksize/2}}&lt;br /&gt;
:Must be *even* and *less* than block size. Common values: ''blksize''/4 or ''blksize''/2. Larger ''overlap'' looks slightly better and runs slower.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Search|int|4|0-7}}&lt;br /&gt;
:This is the '''search''' of [[MVTools/MAnalyze|MAnalyze]].&lt;br /&gt;
&lt;br /&gt;
{{Par|Truemotion|bool|True for SD, False for HD}}&lt;br /&gt;
:''Truemotion'' is a preset of some MVAnalyze parameter values. It allows easy to switch default values of all &amp;quot;true motion&amp;quot; parameters at once. Set it 'true' for true motion search (high vector coherence), set it 'false' to search motion vectors with best SAD. Truemotion is slower and may blur textures and thin details more, but will usually remove more noise.&lt;br /&gt;
:For HD sources where the main problems are just excessive grain, I have defaulted it to false, this is not only faster but honors detail accuracy (the main existing point for HD sources) and overall object shading.&lt;br /&gt;
&lt;br /&gt;
{{Par|Chroma|bool|True}}&lt;br /&gt;
:Set false to totally ignore chroma for finding motion vectors, for more speed with little cost in quality or when your chroma is too bad to find good matches. Don't process chroma planes without chroma vectors, MVTools doesn't seem to work right.&lt;br /&gt;
&lt;br /&gt;
{{Par|Hpad|int|''blksize'' for SD, 0 for HD}}&lt;br /&gt;
{{Par|Vpad|int|''blksize'' for SD, 0 for HD}}&lt;br /&gt;
:Horizontal/vertical padding added to source frame (left, right, top, and bottom) for better motion estimation near borders.&lt;br /&gt;
:Try to have clean borders in your source (no NAB/black borders) to start with before tweaking this setting. If necessary, crop beforehand ideally in multiples of 16. Turn it to 0 if you are running out of memory.&lt;br /&gt;
&lt;br /&gt;
{{Par|thSCD1|int|based on ''blksize'': 4{{=}}&amp;gt;100, 8{{=}}&amp;gt;400, 16{{=}}&amp;gt;1600}}&lt;br /&gt;
:Threshold which decides whether a block has changed between the previous frame and the current one, used to tweak the scene change detection. Raising it will lower the number of blocks detected as changed. It may be useful for noisy or flickered video. To fix blending on scene changes on dark scenes, first try ''Str'' and ''Amp''.&lt;br /&gt;
&lt;br /&gt;
{{ParR|thSCD2|int|130|0-250}}&lt;br /&gt;
:Threshold which sets how many blocks have to change for the frame to be considered as a scene change.&lt;br /&gt;
&lt;br /&gt;
{{ParR|limit|int|255|1-255}}&lt;br /&gt;
{{ParR|limitC|int|255|1-255}}&lt;br /&gt;
:Maximal change of pixel luma/chroma, to prevent some artifacts.&lt;br /&gt;
&lt;br /&gt;
{{Par|CClip|clip|None}}&lt;br /&gt;
:Optional sharp version for ''contrasharp'' to compare against; video resolution and properties must be the same (different bit depth is OK). Using this option defaults ''contrasharp'' to True.&lt;br /&gt;
&lt;br /&gt;
{{ParR|Globals|int|0|0-3}}&lt;br /&gt;
:With this parameter you can create or load pre-processed motion vectors, to save doing the work for multiple SMDegrain calls.&lt;br /&gt;
:*0: Ignore globals, just process&lt;br /&gt;
:*1: Read globals and Process&lt;br /&gt;
:*2: Process and output globals&lt;br /&gt;
:*3: Output globals only, don't process&lt;br /&gt;
:Some parameters '''MUST MATCH''' between output and input stages: ''pel'', ''subpixel'', ''chroma'', and ''vpad''/''hpad'' cannot change. When reading (Globals=1) only some parameters work: ''tr'', ''thSAD'', ''plane'', ''limit'', ''limitc'', ''contrasharp'', ''CClip'', ''interlaced'' and the ''lsb'' parameters. Others are ignored.&lt;br /&gt;
:Global names that can be reused are: '''Super''', '''bv1''', '''fv1''', '''bv2''', '''fv2''', '''bv3''', '''fv3''', '''bv4''', '''fv4''', '''bv6''', '''fv6''', '''vmulti'''.&lt;br /&gt;
 SMDegrain(tr=3,thSAD=400,globals=3)    # Outputs vectors&lt;br /&gt;
 SMDegrain(tr=3,thSAD=400,globals=1)    # You can use a lower &amp;quot;tr&amp;quot; or &amp;quot;thSAD&amp;quot; if you want&lt;br /&gt;
:or&lt;br /&gt;
 SMDegrain(tr=3,thSAD=400,globals=3)    # Outputs vectors&lt;br /&gt;
 Super = MSuper(levels=1)               # Add this line just before if you have some processing between Globals Output and Input.&lt;br /&gt;
 MDegrain3(Super, bv1, fv1, bv2, fv2, bv3, fv3, thSAD=400)&lt;br /&gt;
&lt;br /&gt;
{{Par|Show|bool|False}}&lt;br /&gt;
{{ParR|Show|str|-|&amp;quot;Speed&amp;quot;, &amp;quot;Memory&amp;quot;, &amp;quot;Quality&amp;quot;}}&lt;br /&gt;
:This will show the prefiltered clip to be used for the motion search to the left(&amp;lt;--), and the used parameters list to the right (--&amp;gt;)&lt;br /&gt;
:If the parameters panel is broken i.e. overlapping lines, hidden lines, etc, most likely your settings are wrong, (e.g. ''lsb_in''=true when input is 8bit) so it will also work well as a debug function. If you set Show to a string as indicated above, related parameters will be highlighted to guide you on correctly tweaking the function. This is loosely based, so it doesn't exclude you from reading carefully every parameter explanation.&lt;br /&gt;
:Even when you are not using any prefiltering, the clip to be used for the motion search where you obtain the motion vectors, will be converted from TV levels to PC levels, the only exception being when using ''Globals''=1 (Read) in which case the &amp;quot;prefiltered&amp;quot; clip will be exactly the same as input clip (that is no luma conversion, although constrained to 8 bit). Additionally you can tweak the dark expansion with ''Str'' and ''Amp'' parameters and check the effects in the left panel, but be aware to change your viewing conditions as it is in PC levels.&lt;br /&gt;
:The left panel preserves its properties so you can crop out the right panel and use it as a prefilter clip of any MSuper(). Therefore if you are not processing chroma (''chroma''=false) the prefiltered clip will be green, don't panic, this is correct, this happens when the U and V planes are unset. In this regard for previewing tasks with prefilterings -- or just the ''Str'' and ''Amp'' effect -- set ''chroma'' to true temporally or follow with ''GreyScale''(). For YUY2 sources set ''Planar2Interleaved''() after cropping for previewing.&lt;br /&gt;
 &lt;br /&gt;
==Final Notes==&lt;br /&gt;
If there is an important parameter not implemented, you have any issue or found a bug, please don't hesitate and ask in its [https://forum.videohelp.com/threads/369142 VideoHelp thread].&lt;br /&gt;
 &lt;br /&gt;
==Changelog==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border: 1px solid darkgray&amp;quot;&lt;br /&gt;
!Version&lt;br /&gt;
!Date&lt;br /&gt;
!Changes&lt;br /&gt;
|-&lt;br /&gt;
|v3.1.2.97s&lt;br /&gt;
|2018-03-26&lt;br /&gt;
|&lt;br /&gt;
Fix subpixel=3&lt;br /&gt;
Add Prefilter auto 16 (lsb) support&amp;lt;br/&amp;gt;&lt;br /&gt;
YUY2 support in avs 2.6 with masktools 2.6&amp;lt;br/&amp;gt;&lt;br /&gt;
medianblur2 now will be used in Minblur instead of Quantile RemoveGrainHD in avs 2.6&amp;lt;br/&amp;gt;&lt;br /&gt;
Add TV_range bool&amp;lt;br/&amp;gt;&lt;br /&gt;
Less lsb if not use lsb things and get ready for yv16 and yv24&amp;lt;br/&amp;gt;&lt;br /&gt;
Add dct&amp;lt;br/&amp;gt;&lt;br /&gt;
Add device_id for prefilter=4&amp;lt;br/&amp;gt;&lt;br /&gt;
No need to use Planar2Interleaved() after cropping in Show with YUY2 (this is old changed, and now with mvtools support yv16 most people will not use YUY2)&amp;lt;br/&amp;gt;&lt;br /&gt;
Add MDegrain4 and MDegrain5 and MDegrain6, this will make tr=4-6 faster&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|3.1.2d&lt;br /&gt;
|2015-07-21&lt;br /&gt;
|&lt;br /&gt;
Fixed regression where external prefilters wouldn't be parsed for luma expansion&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|3.1.1d&lt;br /&gt;
|2015-07-16&lt;br /&gt;
|&lt;br /&gt;
Workaround to force KNLMeansCL use discrete video card (now required)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|3.1d&lt;br /&gt;
|2015-07-14&lt;br /&gt;
|&lt;br /&gt;
New prefilter mode 4 for grainy sources. GPU based spatio-temporal KNLmeans&amp;lt;br/&amp;gt;&lt;br /&gt;
Added dither output mode &amp;quot;Random Dither&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
Added &amp;quot;slices&amp;quot; option from Dither&amp;lt;br/&amp;gt;&lt;br /&gt;
Added soft=-2 (automatic) to internal lsfmod&amp;lt;br/&amp;gt;&lt;br /&gt;
Added assert for chroma denoise when luma only motion vectors (mvtools bug)&amp;lt;br/&amp;gt;&lt;br /&gt;
Improved lsb_in code (now using sub/add method)&amp;lt;br/&amp;gt;&lt;br /&gt;
Removed vpad/hpad=0 optimization preset for HD&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed prefilter=3 code for lsb_in YUY2&amp;lt;br/&amp;gt;&lt;br /&gt;
More fixes to Show Panel...&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated and fixed documentation (notes on YUY2 support)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3.0d&lt;br /&gt;
|2015-03-27&lt;br /&gt;
|&lt;br /&gt;
Adjusted SD&amp;lt;&amp;gt;HD discretion&amp;lt;br/&amp;gt;&lt;br /&gt;
Added mfilter (Motion Filter) new feature&amp;lt;br/&amp;gt;&lt;br /&gt;
subpixel=3 (nnedi3); removed qual=2 due to possible blending bug (quote by cretindesalpes), this also boosts speed&amp;lt;br/&amp;gt;&lt;br /&gt;
Lowered the defaults for less aggressive denoise (still somewhat high)&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed chroma not showing in debug (show) mode when lsb=true and prefilter=3 were paired&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed long lasting issues in Show Panel for certain not mod height resolutions&amp;lt;br/&amp;gt;&lt;br /&gt;
Now prefilter=0 is minblur(0), lighter denoising than prefilter=1, default is now -1 (off)&amp;lt;br/&amp;gt;&lt;br /&gt;
Documentation update (plugin updates, notes, links, examples, etc)&lt;br /&gt;
|-&lt;br /&gt;
|2.2d&lt;br /&gt;
|2013-03-05&lt;br /&gt;
|&lt;br /&gt;
Removed one residual variable in Contrasharpening function&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a regression at v2.0 for Interlaced YUY2 sources by changing wrong variable ifC to if0, and...&amp;lt;br/&amp;gt;&lt;br /&gt;
...adding a missing weave() to the last MergeChroma() call&amp;lt;br/&amp;gt;&lt;br /&gt;
Dropped Dither support. (Will still work/not work as before, but lack of official support renders it to a YMMV condition)&lt;br /&gt;
|-&lt;br /&gt;
|2.1d&lt;br /&gt;
|2012-09-09&lt;br /&gt;
|&lt;br /&gt;
Fixed Refinemotion Globals Input labels&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed ContrasharpeningHD Vectors for Interlaced HD sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Added ability to import Global Vectors even when &amp;quot;tr&amp;quot; is lower than parent instance &amp;quot;tr&amp;quot; (credit to cretindesalpes)&amp;lt;br/&amp;gt;&lt;br /&gt;
Expanded support for Interlaced Denoising &amp;quot;tr&amp;quot; up to 64 (credit to cretindesalpes)&amp;lt;br/&amp;gt;&lt;br /&gt;
Cosmetics&lt;br /&gt;
|-&lt;br /&gt;
|2.0d&lt;br /&gt;
|2012-06-07&lt;br /&gt;
|&lt;br /&gt;
Fixed and optimized chroma handling for lsb_in, contrasharpening and YUY2 content v.1.95&amp;lt;br/&amp;gt;&lt;br /&gt;
Enhanced Chroma bypass on the sharpening stage&amp;lt;br/&amp;gt;&lt;br /&gt;
Merged ContraHD() internally for Contrasharpening in HD sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Dropped QTGMC support on import/export motion vectors (small value for increased confusion)&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed Median code for planar inputs in MinBlur() (needs RemoveGrainHD, dropped medianblur requirement)&amp;lt;br/&amp;gt;&lt;br /&gt;
Defaulted truemotion to false for HD inputs&amp;lt;br/&amp;gt;&lt;br /&gt;
Code Optimization and Clean up&amp;lt;br/&amp;gt;&lt;br /&gt;
Others&lt;br /&gt;
|-&lt;br /&gt;
|1.9d&lt;br /&gt;
|2012-03-23&lt;br /&gt;
|&lt;br /&gt;
Added truemotion parameter (default=true), change it to false (as in MCTemporalDenoise()), so low frequency detail won't be lost (walls...), although it could leave more noise on high frequency details&amp;lt;br/&amp;gt;&lt;br /&gt;
Added thSADC, and thSCD1/thSCD2 parameters for finer control&amp;lt;br/&amp;gt;&lt;br /&gt;
Tweaked prefilter=3 dfttest sigmas for better low frequency detail protection&amp;lt;br/&amp;gt;&lt;br /&gt;
Detached explanation and converted to html. Updated and extended the contents as well&amp;lt;br/&amp;gt;&lt;br /&gt;
Fine tuned and robustized the Show Panel&amp;lt;br/&amp;gt;&lt;br /&gt;
Optimized and organized code, more precisely the contrasharpening part&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a few ternary checks for when Globals=3&amp;lt;br/&amp;gt;&lt;br /&gt;
Others&lt;br /&gt;
|-&lt;br /&gt;
|1.8d&lt;br /&gt;
|2012-01-18&lt;br /&gt;
|&lt;br /&gt;
Added automatic dark protection for prefilter=3 (dfttest performs badly in darks) v1.71d and extended its dark protection v1.8&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed chroma variable when chroma=false, from 2 (copy chroma) to 1 (discard chroma) v1.71d&amp;lt;br/&amp;gt;&lt;br /&gt;
Explanation and cosmetics v1.71d&amp;lt;br/&amp;gt;&lt;br /&gt;
Added acknowledgments and updated explanation&amp;lt;br/&amp;gt;&lt;br /&gt;
Added brackets to all functions (it has been reported to cause threading problems under certain circumstances) (https://forum.doom9.org/showthread.php?p=1515886#post1515886)&amp;lt;br/&amp;gt;&lt;br /&gt;
Reworked and fixed the parameters panel. Now you have a color guide to have an idea on what to tweak depending on selected mode in Show. For strings: &amp;quot;Speed&amp;quot;, &amp;quot;Memory&amp;quot; and &amp;quot;Quality&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Optimized lsb_in for HD resolutions which was causing memory hogs&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed contrasharpening for YUY2 sources when lsb=true&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed some inconsistencies for YUY2 sources when prefilter=3&lt;br /&gt;
|-&lt;br /&gt;
|1.7d&lt;br /&gt;
|2012-01-11&lt;br /&gt;
|&lt;br /&gt;
Fixed and extended introduction explanation v.1.61d&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed some issues for Globals=1 (Read) in relation to lsb_in and luma expansion auto-prefilter v.1.61d&amp;lt;br/&amp;gt;&lt;br /&gt;
Added mild gauss blur prefilter option as prefilter=1. Consequent modes are displaced v.1.61d&amp;lt;br/&amp;gt;&lt;br /&gt;
Changed prefilter 1 and 2 to Minblur (Gauss/Median combination) v.1.63d&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated MinBlur function v.1.62d and v.1.66&amp;lt;br/&amp;gt;&lt;br /&gt;
Code tidied up v.1.62d&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated luma expansion, now you can enhance darks (with 'Str' and 'Amp') in the same step as the TV-&amp;gt;PC conversion stage, thus +optimized, +quality. v.1.63d by cretindesalpes (https://forum.doom9.org/showthread.php?p=1548318#post1548318)&amp;lt;br/&amp;gt;&lt;br /&gt;
Removed pre_custom. Now use prefilter to load a prefiltered clip, as well as modes 0~3&amp;lt;br/&amp;gt;&lt;br /&gt;
Added Show parameter. Now you can see the used and default parameters along the prefilter clip as well&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed one note related to prefilter clip input for interlaced content&lt;br /&gt;
|-&lt;br /&gt;
|1.6d&lt;br /&gt;
|2011-12-24 (first open release)&lt;br /&gt;
|&lt;br /&gt;
Fixed and extended introduction explanation&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed Ditherpost for interlaced sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a broken reference for reading MRecalculate globals when tr&amp;gt;3&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a Globals=1 MSuper automatization&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a plane processing bypass when chroma=false&amp;lt;br/&amp;gt;&lt;br /&gt;
Added LSFmod as optional contrasharpening (slower, but biased contrasharpening and probably better depending on source)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added default luma expansion auto-prefilter for motion search (16% more values)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added YUY2 support&amp;lt;br/&amp;gt;&lt;br /&gt;
Added the 'mode' parameter of Ditherpost()&amp;lt;br/&amp;gt;&lt;br /&gt;
Added support for interlaced temporal radius up to 6&lt;br /&gt;
|-&lt;br /&gt;
|1.5d&lt;br /&gt;
|2011-10-14&lt;br /&gt;
|&lt;br /&gt;
Changed &amp;quot;srchSuper&amp;quot; Global variable to &amp;quot;QTGMC_srchSuper&amp;quot;, compatible with QTGMC. Anyhow you may probably want to create a new super clip. Test it out! v.1.41d&amp;lt;br/&amp;gt;&lt;br /&gt;
Introduction spelling and presentation v.1.42d&amp;lt;br/&amp;gt;&lt;br /&gt;
Added lsb and lsb_in for prefilter=2 (dfttest) v.1.43d &amp;amp; v.1.44d&amp;lt;br/&amp;gt;&lt;br /&gt;
Some better definitions for the settings help v.1.45d&amp;lt;br/&amp;gt;&lt;br /&gt;
pelclip is now subpixel = 3 ('sharp' parameter before) v.1.45d&amp;lt;br/&amp;gt;&lt;br /&gt;
Other minor tweaks v.1.45d&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed an important issue when using prefilter with subpixel=3 ('pelclip' parameter before)&amp;lt;br/&amp;gt;&lt;br /&gt;
Optimizations in Ditherpost for chroma&amp;lt;br/&amp;gt;&lt;br /&gt;
Changed rfilter (hierarchical levels smoothing/scaling) from default 2 to 4. Better results in my judge&amp;lt;br/&amp;gt;&lt;br /&gt;
Some more little tweaks in code and introduction&lt;br /&gt;
|-&lt;br /&gt;
|1.4d&lt;br /&gt;
|2011-09-16&lt;br /&gt;
|&lt;br /&gt;
Added pelclip option for top quality subpixel interpolation when pel &amp;gt; 1&amp;lt;br/&amp;gt;&lt;br /&gt;
Changed QTGMCV parameter to Globals, and added a bunch of new features like vectors output from SMDegrain()&amp;lt;br/&amp;gt;&lt;br /&gt;
Big introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|1.3d&lt;br /&gt;
|2011-09-14&lt;br /&gt;
|Fixed an important issue on the Interlaced parameter and improved overall handling (v.1.21d &amp;amp; v.1.3d)&lt;br /&gt;
|-&lt;br /&gt;
|1.2d&lt;br /&gt;
|2011-09-13&lt;br /&gt;
|&lt;br /&gt;
Added Interlaced parameter, for processing interlaced sources&amp;lt;br/&amp;gt;&lt;br /&gt;
Some introduction and code optimization tweaks (v.1.12d &amp;amp; v.1.2d)&lt;br /&gt;
|-&lt;br /&gt;
|1.1d&lt;br /&gt;
|2011-09-12&lt;br /&gt;
|&lt;br /&gt;
Implemented MDegrainN for tr &amp;gt; 3, from the MVTools2 mod of Dither&amp;lt;br/&amp;gt;&lt;br /&gt;
Minor introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|1.0d&lt;br /&gt;
|2011-09-09&lt;br /&gt;
|&lt;br /&gt;
Added CClip parameter. Reference an earlier stage of your processing chain as your sharp version for the contrasharpening&lt;br /&gt;
|-&lt;br /&gt;
|0.9d&lt;br /&gt;
|2011-09-09&lt;br /&gt;
|&lt;br /&gt;
Added QTGMCV parameter, for reusing vectors from QTGMC bob deinterlacer&lt;br /&gt;
|-&lt;br /&gt;
|0.8d&lt;br /&gt;
|2011-09-05&lt;br /&gt;
|&lt;br /&gt;
Fixed a few things related to the lsb_in option&amp;lt;br/&amp;gt;&lt;br /&gt;
Minor introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|0.7d&lt;br /&gt;
|2011-09-05&lt;br /&gt;
|&lt;br /&gt;
Implemented &amp;quot;fake&amp;quot; lsb_in option. Output will have slightly more quality (if any), and will compress better. (Experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed a not passed argument in the hpad, vpad parameters&lt;br /&gt;
|-&lt;br /&gt;
|0.6d&lt;br /&gt;
|2011-09-04&lt;br /&gt;
|&lt;br /&gt;
Minor introduction and code optimization tweaks&lt;br /&gt;
|-&lt;br /&gt;
|0.5d&lt;br /&gt;
|2011-07-19&lt;br /&gt;
|&lt;br /&gt;
Added dfttest option for preblur (now prefilter) option. Slower but better due to its internal deblock+denoise operation, plus sharper results&amp;lt;br/&amp;gt;&lt;br /&gt;
Added pre_custom option for the prefilter process, define here a denoised clip as your prefiltered version&amp;lt;br/&amp;gt;&lt;br /&gt;
Updated the introduction help&lt;br /&gt;
|-&lt;br /&gt;
|0.4d&lt;br /&gt;
|2011-06-03&lt;br /&gt;
|&lt;br /&gt;
Added preblur option for slight vector blurring where motionmatch is bad (https://forum.doom9.org/showthread.php?t=161594)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added RefineMotion parameter for better motion vectors. Based off Killer() (https://forum.doom9.org/showthread.php?p=1266572#post1266572)&amp;lt;br/&amp;gt;&lt;br /&gt;
Added parameters &amp;quot;lsb&amp;quot; and &amp;quot;lsb_out&amp;quot;, for the MVTools2 mod version of cretindesalpes' Dither (https://forum.doom9.org/showthread.php?p=1386559#post1386559)&amp;lt;br/&amp;gt;&lt;br /&gt;
Other minor aesthetics and performance adjustments&lt;br /&gt;
|-&lt;br /&gt;
|0.3d&lt;br /&gt;
|2011-03-04&lt;br /&gt;
|&lt;br /&gt;
First Mod version&amp;lt;br/&amp;gt;&lt;br /&gt;
Fixed plane (for MDegrain) and added chroma (for MAnalyse) parameters&lt;br /&gt;
|-&lt;br /&gt;
|0.2&lt;br /&gt;
|2010-01-24&lt;br /&gt;
|&lt;br /&gt;
Added introductory section&amp;lt;br/&amp;gt;&lt;br /&gt;
Added more parameters&lt;br /&gt;
|-&lt;br /&gt;
|0.1&lt;br /&gt;
|&lt;br /&gt;
Basic working version&amp;lt;br/&amp;gt;&lt;br /&gt;
Not released&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/AviSynth%2B_x64_plugins</id>
		<title>AviSynth+ x64 plugins</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/AviSynth%2B_x64_plugins"/>
				<updated>2018-07-03T02:02:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:82em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
{{AvsPlusHeader}}&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
All listed plugins are the latest version unless stated otherwise.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;height:100px; width:100%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=12%| Category&lt;br /&gt;
!width=12%| Filter&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot; width=8%| Version&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot; width=15%| Download&lt;br /&gt;
!Comments&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[AdaptiveMedian]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus]&lt;br /&gt;
| &amp;quot;Median&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[[AddGrainC]]'''&lt;br /&gt;
|1.7.1&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z AddGrainC-1.7.1.7z]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012. AddGrain v1.7.0 compiled with Intel C++ Compiler XE 14: [https://www.dropbox.com/s/y5ymzmgfzddw0pn/AddGrainC_1.7.0_x64.zip?dl=1 AddGrainC_1.7.0_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=167573 AutoAdjust]'''&lt;br /&gt;
|2.6&lt;br /&gt;
|[http://latoninf.free.fr/d9/AA/AutoAdjust-v2.60.7z AutoAdjust-v2.60.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Crop&lt;br /&gt;
|'''[[AutoCrop]]'''&lt;br /&gt;
|1.2&lt;br /&gt;
|[https://www.mediafire.com/download/mzddfmjjdyx/autocrop_3-14-2010.rar autocrop_3-14-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|[[AutoOverlay]]&lt;br /&gt;
|0.2.1&lt;br /&gt;
|[https://github.com/introspected/AutoOverlay/releases Releases]&lt;br /&gt;
| [https://github.com/introspected introspected]&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[http://rationalqm.us/autoyuy2/autoyuy2.html AutoYUY2]'''&lt;br /&gt;
|3.2.12&lt;br /&gt;
|[https://github.com/jpsdr/AutoYUY2/releases Releases]&lt;br /&gt;
|Compiled by jpsdr.&lt;br /&gt;
|-&lt;br /&gt;
|Averaging&lt;br /&gt;
|'''[[Average]]'''&lt;br /&gt;
|0.94&lt;br /&gt;
|[https://github.com/pinterf/Average/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=172698 AviSynthShader]'''&lt;br /&gt;
|1.6.5&lt;br /&gt;
|[https://github.com/mysteryx93/AviSynthShader/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/Format Conversion&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=173986 avsresize]'''&lt;br /&gt;
|r1d&lt;br /&gt;
|[https://www.dropbox.com/s/3ocrd217pprrvmn/avsresize-r1d.7z?dl=0 avsresize-r1d.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=164407 AVSTP]'''&lt;br /&gt;
|1.0.3&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/avstp-1.0.3.zip avstp-1.0.3.zip]&lt;br /&gt;
|v1.0.1: [http://www.dropbox.com/s/59urdlk19pz6l2p/avstp-1.0.1_x64.zip?dl=1 avstp-1.0.1_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[[aWarpSharp2]]'''&lt;br /&gt;
|2.0.1&lt;br /&gt;
|[https://github.com/jpsdr/aWarpSharpMT/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=135855 BassAudio]'''&lt;br /&gt;
|2.4.10&lt;br /&gt;
|[https://www.sendspace.com/file/vwodyl BassAudio2410.7z] - [https://www.mediafire.com/download/0ydinsk5br3imgr/BassAudioSource24_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu - [https://www.un4seen.com/download.php?bass24 BASS audio library for Win64]&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Bifrost]]'''&lt;br /&gt;
|2.2&lt;br /&gt;
|[https://github.com/dubhater/vapoursynth-bifrost/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1721946#post1721946 l33tmeatwad].&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Checkmate]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/checkmate/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[https://github.com/tp7/CLExpr CLExpr]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[https://github.com/tp7/CLExpr/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Denoisers&lt;br /&gt;
|'''[[Cnr2]]&lt;br /&gt;
|2.6.1_avs26 &lt;br /&gt;
|[https://www.dropbox.com/s/9fiab3s5exi43h2/cnr2_v261-avs26.zip?dl=1 cnr2_v261-avs26.zip]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1771784#post1771784 Chikuzen].&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/realfinder/CombMask/releases CombMask]'''&lt;br /&gt;
|1.1.1s&lt;br /&gt;
|[https://github.com/realfinder/CombMask/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/sekrit-twc/EdgeFixer ContinuityFixer]'''&lt;br /&gt;
|r1&lt;br /&gt;
|[https://github.com/sekrit-twc/EdgeFixer/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1721946#post1721946 l33tmeatwad].&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|[https://github.com/DJATOM/CullResize CullResize]&lt;br /&gt;
|0.1&lt;br /&gt;
|[https://github.com/DJATOM/CullResize/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[DeBarrel]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Barrel&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[[DctFilter|DCTFilter]]'''&lt;br /&gt;
|0.5.0&lt;br /&gt;
|[https://github.com/chikuzen/DCTFilter/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[DeBlock]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/Deblock/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Decomb]]'''&lt;br /&gt;
|5.2.4&lt;br /&gt;
|[https://www.dropbox.com/s/wdnkly9xun1skj4/decomb_5.2.4_x64.zip?dl=1 decomb_5.2.4_x64.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14&lt;br /&gt;
|-&lt;br /&gt;
|Degrainer&lt;br /&gt;
|'''[[DeGrainMedian]]'''&lt;br /&gt;
|0.8.2&lt;br /&gt;
|[http://members.optusnet.com.au/squid_80/DeGrainMedian64.zip DeGrainMedian64.zip] - [http://members.optusnet.com.au/squid_80/sources/degrainmediansrc.zip source]&lt;br /&gt;
|Compiled by squid_80&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/DeJitter/DeJitter.htm DeJitter]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/DeJitter/DeJitter64.7z DeJitter64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Logo removal&lt;br /&gt;
|'''[https://github.com/makiuchi-d/delogo-avisynth Delogo]'''&lt;br /&gt;
|0.05a&lt;br /&gt;
|[https://github.com/makiuchi-d/delogo-avisynth/releases Releases]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeNoise]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;minvar&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeSaltPepper]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;SaltPepper&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/modPlus/Veed.html DeVeed]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;Veed&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[dfttest]]'''&lt;br /&gt;
|1.9.4.2&lt;br /&gt;
|[https://github.com/DJATOM/dfttest/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=170237 DGDecIM] '''&lt;br /&gt;
|b50&lt;br /&gt;
|[http://rationalqm.us/dgdecim/dgdecim_b50.zip dgdecim_b50.zip]&lt;br /&gt;
|Requires license from DGDecNV&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://rationalqm.us/dgdecnv/dgdecnv.html DGDecNV]'''&lt;br /&gt;
|205x&lt;br /&gt;
|&lt;br /&gt;
|Requires license.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://rationalqm.us/dgmpgdec/dgmpgdec.html DGMPGDec]'''&lt;br /&gt;
|1.5.8&lt;br /&gt;
|[https://www.mediafire.com/download/c0wmemj5jam/DGDecode_3-19-2010.rar DGDecode_3-19-2010.rar]&lt;br /&gt;
|Compiled by Joshy D, some IDCT modes are missing.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[Dither]]'''&lt;br /&gt;
|1.27.2&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/dither-1.27.2.zip dither-1.27.2.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]'''&lt;br /&gt;
|2.0.0.13&lt;br /&gt;
|[https://web.archive.org/web/20160224130625/https://filetea.me/t1siAfoCvW5Sy2d2BbRx2WBjg/dl avss_x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[EEDI2]]'''&lt;br /&gt;
|0.9.2&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 EEDI2_092_64.7z] [https://web.archive.org/web/20160908025751/http://www.iol.ie/~schubert/avs/EEDI2_092_64.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Compiled by Joshy D: [https://www.mediafire.com/download/znmyzdo2ize/EEDI2_4-10-2010.rar EEDI2_4-10-2010.rar]&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[eedi3|EEDI3]]'''&lt;br /&gt;
|0.9.2.3&lt;br /&gt;
|[https://github.com/pinterf/EEDI3/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. See [https://forum.doom9.org/showthread.php?t=172414 discussion].&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/EffectsPlus/EffectsPlus_index.html EffectsPlus]'''&lt;br /&gt;
|25 June 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/EffectsPlus/EffectsPlus.7z EffectsPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://forum.doom9.net/showthread.php?p=1820756#post1820756 ExactDedup]'''&lt;br /&gt;
|0.05&lt;br /&gt;
|[https://www.mediafire.com/file/8184da6dp4hsdcq/ExactDeDup-0.05_20171005.zip ExactDeDup-0.05_20171005.zi]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=161411 f3kdb]'''&lt;br /&gt;
|1.5.1&lt;br /&gt;
|[http://www.nmm-hd.org/upload/get~arIyHEnxIS8/flash3kyuu_deband_1.5.1_x64.7z flash3kyuu_deband_1.5.1_x64.7z]&lt;br /&gt;
|v2.0 prerelease (b98d6bc x86/x64): [https://web.archive.org/web/20150503191218/https://www.nmm-hd.org/upload/get~NfiLlgo1pX8/f3kdb-b98d6bc.rar f3kdb-b98d6bc.rar] - compiled with Intel C++ Compiler 2013. [https://web.archive.org/web/20160414135351/http://www.nmm-hd.org/upload/get~jW8DJGBDJro/f3kdb-rev410.7z f3kdb-rev410.7z] - compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[https://github.com/chikuzen/FCBI FCBI]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[https://github.com/chikuzen/FCBI/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[FFmpegSource]]'''&lt;br /&gt;
|2.23.1&lt;br /&gt;
|[https://github.com/FFMS/ffms2/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]'''&lt;br /&gt;
|2.5&lt;br /&gt;
|[https://github.com/pinterf/fft3dfilter/releases Releases]&lt;br /&gt;
|10-16bits/float support. Compiled with VS2015 Update 3. Needs the [http://www.fftw.org/install/windows.html 64-bit &amp;lt;tt&amp;gt;libfftw3f-3.dll&amp;lt;/tt&amp;gt;] to be in your System32 directory.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=89941 FFT3DGPU]'''&lt;br /&gt;
|0.8.2&lt;br /&gt;
|[https://www.mediafire.com/download/2chnt1jkwwm/FFT3DGPU_3-15-2010.rar FFT3DGPU_3-15-2010.rar]&lt;br /&gt;
|The HLSL (shader program) file is edited from the original to adhere to pixel shader 3.0 syntax rules. Please make sure to place the correct file in the same directory as the 64bit plugin. Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[FFTQuiver]]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
| &amp;quot;F1Quiver&amp;quot; &amp;amp; &amp;quot;F2Quiver&amp;quot; functions in FQPlus&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[FieldHint]]'''&lt;br /&gt;
|0.11 &lt;br /&gt;
|[https://www.mediafire.com/download/ynkidzz4joz/fieldhint.rar fieldhint.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[FluxSmooth]]'''&lt;br /&gt;
|2nd December 2010&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=11813&amp;amp;d=1291250198 FluxSmooth SSE DLLs.7z]&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?t=158245 Discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/FQPlus/F2QSharp.html F2QSharp]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174161 FQPlus]'''&lt;br /&gt;
|19 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQPlus/FQPlus.7z FQPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[https://github.com/mysteryx93/FrameRateConverter FrameRateConverter]'''&lt;br /&gt;
|1.2.1&lt;br /&gt;
|[https://github.com/mysteryx93/FrameRateConverter/releases Releases]&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?t=174793 Discussion thread].&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174520 FredAverage]'''&lt;br /&gt;
|0.01&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 FredAverage64_0.01.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=169651 FRIMSource]'''&lt;br /&gt;
|1.27&lt;br /&gt;
|[https://drive.google.com/file/d/0BymRNDHq74DEbUVsQ0NwSGJqdUU FRIM_x64_version_1.27.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[[Fusion]]'''&lt;br /&gt;
|5th March 2013&lt;br /&gt;
|[http://horman.net/fusionx64.zip fusionx64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=173695 GamMac]'''&lt;br /&gt;
|1.10&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?p=1774281#post1774281 GamMac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[GBlur]]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;GBlur&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[[GradFun2db]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[https://www.mediafire.com/download/w0trndmni3j/gradfun2db_3-29-2010.rar gradfun2db_3-29-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Debugging&lt;br /&gt;
|'''[[Grid]]'''&lt;br /&gt;
|21 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/Grid/Grid64.7z Grid64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[[GRunT]]'''&lt;br /&gt;
|1.0.1a&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=15400&amp;amp;d=1463511496 grunt-x64.rar]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1767990#post1767990 yesmanitsbearman]&lt;br /&gt;
|-&lt;br /&gt;
|Uncategorized &lt;br /&gt;
|'''[https://github.com/ladipro/avisynth_filters/wiki/HealDeadPixels HealDeadPixels]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://github.com/ladipro/avisynth_filters/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/modPlus/MBlur.html HBlur]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRCore]'''&lt;br /&gt;
|1.1.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRCore.7z HDRCore.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRMatrix]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRMatrix.7z HDRMatrix.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Effect&lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRNoise]'''&lt;br /&gt;
|1.2.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRNoise.7z HDRNoise.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener &lt;br /&gt;
|'''[https://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRSharp]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://web.archive.org/web/20160604220510/http://media.snovidenie.com/plugins/HDRSharp.7z HDRSharp.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[http://avisynth.nl/index.php/HistogramAdjust HistogramAdjust]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
| &amp;quot;TweakHist&amp;quot; function in modPlus&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?p=1781204#post1781204 hqdn3dY]'''&lt;br /&gt;
|2016-02-13&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=15589&amp;amp;d=1474456943 Hqdn3dY.7z]&lt;br /&gt;
|Modified by Rean.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[IT|IT_YV12]]'''&lt;br /&gt;
|0103_width8K&lt;br /&gt;
|[https://www.dropbox.com/s/002p6yed7dzi8f3/IT_YV12_0103_width8K.zip?dl=1 IT_YV12_0103_width8K.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[https://web.archive.org/web/20090220115721/http://members.at.infoseek.co.jp/kiraru2002/alpha_version.html Its]'''&lt;br /&gt;
|0.8.6&lt;br /&gt;
|&lt;br /&gt;
|Compiled by putin999&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[[JincResize]]'''&lt;br /&gt;
|r44&lt;br /&gt;
|[https://www.dropbox.com/s/pj37t6ackhbs42k/jincresize_r44.zip?dl=1 jincresize_r44.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[https://github.com/ladipro/avisynth_filters/wiki/KelvinColorShift KelvinColorShift]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[https://github.com/ladipro/avisynth_filters/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=171379 KNLMeansCL]'''&lt;br /&gt;
|1.1.1&lt;br /&gt;
|[https://github.com/Khanattila/KNLMeansCL/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[LSMASHSource]]'''&lt;br /&gt;
|r9xx&lt;br /&gt;
|{{Plugin/LSMASHSource}}&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''MaskCrop'''&lt;br /&gt;
|0.1.2&lt;br /&gt;
|[https://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=1 MaskCrop0.1.2.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[MaskTools2]]'''&lt;br /&gt;
|2.2.16&lt;br /&gt;
|[https://github.com/pinterf/masktools/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2017.&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[MedianBlur2]]'''&lt;br /&gt;
|0.94&lt;br /&gt;
|[https://github.com/tp7/MedianBlur2/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/docs/english/externalfilters/mipsmooth.htm MipSmooth]'''&lt;br /&gt;
|1.1.2&lt;br /&gt;
|[http://members.optusnet.com.au/squid_80/MipSmooth64.zip MipSmooth64.zip] - [http://members.optusnet.com.au/squid_80/sources/mipsmooth64src.zip source]&lt;br /&gt;
|Compiled by squid_80 - [https://forum.doom9.org/showthread.php?t=64940 discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174162 modPlus]'''&lt;br /&gt;
|17 Oct 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[MosquitoNR]]'''&lt;br /&gt;
|0.10 &lt;br /&gt;
|[https://www.dropbox.com/s/0dgrruxne80izus/MosquitoNR_0.10_x64.zip?dl=1 MosquitoNR_0.10_x64.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174163 movePlus]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[https://github.com/chikuzen/MPEG2DecPlus MPEG2DecPlus]'''&lt;br /&gt;
|0.1.1&lt;br /&gt;
|[http://kuroko.fushizen.eu/bin/mpeg2decplus-0.1.1.zip mpeg2decplus-0.1.1.zip] [https://web.archive.org/web/20161102003551/https://kuroko.fushizen.eu/bin/mpeg2decplus-0.1.1.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Sharpener&lt;br /&gt;
|'''[[MSharpen]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/msharpen/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[[MVTools]]'''&lt;br /&gt;
|2.7.31&lt;br /&gt;
|[https://github.com/pinterf/mvtools/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[[NicAudio]]'''&lt;br /&gt;
|2.0.6&lt;br /&gt;
|[https://www.dropbox.com/s/lroqakipuoqnzby/NicAudio2.0.5_x64.zip?dl=1 NicAudio2.0.5_x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/NirMalam/NirMalam.html NirMalam]'''&lt;br /&gt;
|17 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/NirMalam/NirMalam64.7z NirMalam64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/AA&lt;br /&gt;
|'''[[nnedi3]]'''&lt;br /&gt;
|0.9.4.51&lt;br /&gt;
|[https://github.com/jpsdr/NNEDI3/releases Releases]&lt;br /&gt;
|Compiled by jpsdr, [https://forum.doom9.org/showthread.php?t=170083 discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://github.com/chikuzen/PlanarTools PlanarTools]'''&lt;br /&gt;
|0.3.0&lt;br /&gt;
|[https://github.com/chikuzen/PlanarTools/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[[PointSize]]'''&lt;br /&gt;
|0.2&lt;br /&gt;
|[https://github.com/Orum/PointSize/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[RawSource26]]'''&lt;br /&gt;
|20160814&lt;br /&gt;
|[https://github.com/chikuzen/RawSource_2.6x/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[https://github.com/chikuzen/ReduceFlicker/tree/master/avisynth ReduceFlicker]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[https://github.com/chikuzen/ReduceFlicker/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[Reformer]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Reform&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Range Processing&lt;br /&gt;
|'''[[RemapFrames]]'''&lt;br /&gt;
|0.4.1-avs26&lt;br /&gt;
|[https://www.dropbox.com/s/6830ri3btc5crfp/RemapFrames-0.4.1-avs26.zip?dl=1 RemapFrames-0.4.1-avs26.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|'''[http://svn.int64.org/viewvc/int64/resamplehq/doc/index.html ResampleHQ]'''&lt;br /&gt;
|r349&lt;br /&gt;
|[https://www.mediafire.com/download/4m31za3np4o5d24/ResampleHQ_r349_110905.7z ResampleHQ_r349_110905.7z]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. Compiled by [https://forum.doom9.org/showthread.php?p=1722300#post1722300 l33tmeatwad] [https://forum.doom9.org/showthread.php?p=1722117#post1722117]. Older version: [https://sourceforge.net/projects/int64/files/ResampleHQ/ResampleHQ-v6.zip/download ResampleHQ-v6.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Degrainer&lt;br /&gt;
|'''[[RgTools]]'''&lt;br /&gt;
|0.97&lt;br /&gt;
|[https://github.com/pinterf/RgTools/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Borders and Cropping&lt;br /&gt;
|'''[[RoboCrop]]'''&lt;br /&gt;
|1.10&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 RoboCrop64_1.10.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Antialiasing&lt;br /&gt;
|'''[[SangNom2]]'''&lt;br /&gt;
|0.35&lt;br /&gt;
|[https://github.com/tp7/SangNom2/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[[SCXvidMask]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[https://github.com/tp7/SCXvidMask/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=154971 SmoothAdjust]'''&lt;br /&gt;
|3.2&lt;br /&gt;
|[http://latoninf.free.fr/d9/SA/SmoothAdjust-v3.20.7z SmoothAdjust-v3.20.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deblocking&lt;br /&gt;
|'''[[SmoothD2]]'''&lt;br /&gt;
|1.0.a3&lt;br /&gt;
|[https://www.dropbox.com/s/ui8chlbzopuqs5a/SmoothD2-a3_x64.zip?dl=1 SmoothD2-a3_x64.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[Spinner]]'''&lt;br /&gt;
|9 Apr 2018&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
| &amp;quot;Turn&amp;quot; function in movePlus&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[https://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]'''&lt;br /&gt;
|4.2.0.142&lt;br /&gt;
|[http://www.svp-team.com/files/gpl/svpflow-4.2.0.142.zip svpflow-4.2.0.142.zip]&lt;br /&gt;
|More information [https://forum.doom9.org/showpost.php?p=1722352&amp;amp;postcount=266 here].&lt;br /&gt;
|-&lt;br /&gt;
|Edges&lt;br /&gt;
|'''[[TCannyMod]]'''&lt;br /&gt;
|1.3.0 &lt;br /&gt;
|[https://github.com/chikuzen/TCannyMod/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/tp7/tcolormask TColorMask]'''&lt;br /&gt;
|1.2&lt;br /&gt;
|[https://github.com/tp7/tcolormask/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[TComb]]'''&lt;br /&gt;
|2.0&lt;br /&gt;
|[https://github.com/Elegant996/TComb/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''TCPDeliver'''&lt;br /&gt;
|0.2&lt;br /&gt;
|[https://github.com/DJATOM/TCPDeliver/releases Releases] &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[TDeint]]'''&lt;br /&gt;
|1.1 &lt;br /&gt;
|[https://www.mediafire.com/download/kmcztm1xzjm/TDeinterlace_3-14-2010.rar TDeinterlace_3-14-2010.rar]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Edges&lt;br /&gt;
|'''[[TEMmod]]'''&lt;br /&gt;
|0.2.1 &lt;br /&gt;
|[https://github.com/chikuzen/TEMmod/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[TIVTC]]'''&lt;br /&gt;
|v1.0.11&lt;br /&gt;
|[https://github.com/pinterf/TIVTC/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Deflicker&lt;br /&gt;
|'''[http://www.zhitenev.com/avisynth/TimeLapseDF/ TimeLapseDF]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[http://www.zhitenev.com/avisynth/TimeLapseDF/x64/TimeLapseDF64.dll TimeLapseDF64.dll]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/tp7/tmaskcleaner TMaskCleaner]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[https://github.com/tp7/tmaskcleaner/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[https://github.com/chikuzen/TMM2 TMM2]'''&lt;br /&gt;
|0.1.1&lt;br /&gt;
|[https://github.com/chikuzen/TMM2/releases TMM2-0.1.1.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[TNLMeans]]'''&lt;br /&gt;
|1.0.3 &lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 TNLMeans103_ICL.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Slower version compiled by Joshy D: [https://www.mediafire.com/download/y4e3zd2zodd/TNLMeans_3-20-2010.rar TNLMeans_3-20-2010.rar]&lt;br /&gt;
|-&lt;br /&gt;
|Effects&lt;br /&gt;
|'''[[TransAll]]'''&lt;br /&gt;
|13 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/TxPlus/TxPlus.7z TxPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[TTempSmooth]]'''&lt;br /&gt;
|0.9.4&lt;br /&gt;
|[https://www.mediafire.com/download/zv0jm3mtmzf/TTempSmooth_3-20-2010.rar TTempSmooth_3-20-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Effects&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=174399 TxPlus]'''&lt;br /&gt;
|8 Mar 2017&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/TxPlus/TxPlus.7z TxPlus.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[VapourSource]]'''&lt;br /&gt;
|0.1.0&lt;br /&gt;
|[https://github.com/chikuzen/VapourSource/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/vague/vaguedenoiser.html VagueDenoiser]'''&lt;br /&gt;
|0.35.1&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 VagueDenoiser0351_64.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?p=1777949#post1777949 Groucho2004].&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[VariableBlur]]'''&lt;br /&gt;
|0.7&lt;br /&gt;
|[http://web.archive.org/web/20140420184040/http://bengal.missouri.edu/~kes25c/variableblur.zip variableblur.zip]&lt;br /&gt;
|Compiled by yo4kazu&lt;br /&gt;
|-&lt;br /&gt;
|Debugging&lt;br /&gt;
|'''[[ViewAudio]]'''&lt;br /&gt;
|0.3.01 &lt;br /&gt;
|[https://www.mediafire.com/download/iyeo4xjlm87hjwq/ViewAudio_x64.7z ViewAudio_x64.7z] - [https://www.mediafire.com/download/81kg55yaiqp1nxc/ViewAudio0301_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[Vinverse]]'''&lt;br /&gt;
|0.9&lt;br /&gt;
|[https://github.com/tp7/vinverse/releases Releases]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Subtitles&lt;br /&gt;
|'''[https://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ VSFilterMod]'''&lt;br /&gt;
|r90&lt;br /&gt;
|[http://yadi.sk/d/Mz3AmI4PYwjPu VSFilterMod64.dll]&lt;br /&gt;
|'''Note:''' this version outdated, r111 is the latest version.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.html WaterShed]'''&lt;br /&gt;
|23 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed64.7z Watershed64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[[Waveform]]'''&lt;br /&gt;
|0.3&lt;br /&gt;
|[https://www.dropbox.com/s/ufkw5w0nn79qzd5/waveform.zip?dl=1 waveform.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015. Compiled by [https://forum.doom9.org/showthread.php?p=1751960#post1751960 `Orum].&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=172966 xNLMeans]'''&lt;br /&gt;
|0.03&lt;br /&gt;
|[https://www.mediafire.com/download/4stpv24pvpfclzm/xNLMeans_0.03_20160324.zip xNLMeans_0.03_20160324.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Subtitles&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?p=1839217#post1839217 xy-VSFilter]'''&lt;br /&gt;
|v3.1.0.800&lt;br /&gt;
|[https://github.com/pinterf/xy-VSFilter/releases Releases]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[https://github.com/chikuzen/yadifmod2 yadifmod2]'''&lt;br /&gt;
|0.0.4-1&lt;br /&gt;
|[https://github.com/chikuzen/yadifmod2/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[https://github.com/chikuzen/YV12To422 YV12to422]'''&lt;br /&gt;
|1.0.2&lt;br /&gt;
|[https://github.com/chikuzen/YV12To422/releases Releases]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. &lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[https://forum.doom9.org/showthread.php?t=49429 Zoom]'''&lt;br /&gt;
|20140216&lt;br /&gt;
|[https://forum.doom9.org/attachment.php?attachmentid=14054&amp;amp;d=1392574410 Zoom.7z]&lt;br /&gt;
|Compiled by [https://forum.doom9.org/showthread.php?p=1668648#post1668648 Paser]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
More 64-bit filters can be found in the following sites but be aware that some of the plugins listed are outdated.&lt;br /&gt;
*[https://code.google.com/p/avisynth64/wiki/PluginLinks 64-Bit plugin collection by JoshyD]  &lt;br /&gt;
*[http://members.optusnet.com.au/squid_80/ squid_80's 64-bit repository] &lt;br /&gt;
*[https://web.archive.org/web/20130922222259/http://yo4kazu.110mb.com/ 64-bit filters by yo4kazu]&lt;br /&gt;
*[https://sites.google.com/site/avisynth64bitplugin/download 64bit plugins download list by poodle]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Avisynthplus]]&lt;br /&gt;
[[Category:External_filters]]&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/MfRainbow</id>
		<title>MfRainbow</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/MfRainbow"/>
				<updated>2018-06-24T23:08:19Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Rainbow &amp;amp; Dot Crawl Removal}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
| v0.32&lt;br /&gt;
| [http://avisynth.nl/images/MfRainbow-v0.32.avsi mfRainbow-v0.32.avsi]&lt;br /&gt;
| Rainbow &amp;amp; Dot Crawl Removal&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Derainbows in areas of high Y, U and V frequencies, which fluctuate heavily.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[YV12]]&lt;br /&gt;
&lt;br /&gt;
=== Required Plugins ===&lt;br /&gt;
Latest versions of the following filters are recommended unless stated otherwise.&amp;lt;br&amp;gt;&lt;br /&gt;
*[[MaskTools2]]&lt;br /&gt;
*[[WarpSharp]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|mfRainbow (''clip'' input, ''int'' &amp;quot;scd&amp;quot;, ''bool'' &amp;quot;interlaced&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|input|clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|scd|int|10}}&lt;br /&gt;
:::Scene change detection for [[Soften|TemporalSoften]]; good values are between 5 and 30.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|interlaced|bool|false}}&lt;br /&gt;
:::False means the input clip is [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|progressive]]; with true it's [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|interlaced]]. Interlaced content is processed by using [[SeparateFields]] in the beginning and [[Weave]] at the end.&lt;br /&gt;
:::&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Note:'''&amp;lt;/span&amp;gt; this parameter was added as an after-thought, it's not technically correct so use with caution and only as a last resort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
mfRainbow with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 mfRainbow(scd=10, interlaced=false)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version       Date            Changes&amp;lt;br&amp;gt;&lt;br /&gt;
 v0.32         2014/02/23      - Changed syntax to use MaskTools2.&lt;br /&gt;
                               - Removed leftover parameters from earlier versions; they were disabled anyway.&lt;br /&gt;
                               - Add &amp;quot;interlaced&amp;quot; parameter.&amp;lt;br&amp;gt;&lt;br /&gt;
 [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfRainbow-v0.31.avs v0.31:]      2004/04/15      - Tweakable scenechange detection for tough sources.&amp;lt;br&amp;gt;&lt;br /&gt;
 [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfRainbow-v0.3.avs v0.3:]       2004/03/18      - Temporal fluctuation mask building!&amp;lt;br&amp;gt;&lt;br /&gt;
 [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfRainbow-v0.2.avs v.02:]       2003/12/27      - Added U and V mask-building, overhauled Deen settings, changed to YV12.&amp;lt;br&amp;gt;&lt;br /&gt;
 [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfRainbow-0.1.avs v0.1:]       2003/05/31      - Initial release&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?p=321319#post321319 Doom9 Forum] - mfRainbow v0.1 discussion.&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=67578 Doom9 Forum] - mfRainbow v0.2 - v0.31 discussion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Rainbow_.26_Dot_Crawl_Removal|External Filters]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/MaskTools2/Mt_motion</id>
		<title>MaskTools2/Mt motion</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/MaskTools2/Mt_motion"/>
				<updated>2018-06-24T23:06:34Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugin_functions|Other_filters|Support_filters}}&lt;br /&gt;
Creates motion masks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|mt_motion (clip, int &amp;quot;thY1&amp;quot;, int &amp;quot;thY2&amp;quot;, int &amp;quot;thC1&amp;quot;, int &amp;quot;thC2&amp;quot;, int &amp;quot;thT&amp;quot;, int &amp;quot;sc_value&amp;quot;, int &amp;quot;Y&amp;quot;, int &amp;quot;U&amp;quot;, int&amp;quot;V&amp;quot;, string &amp;quot;chroma&amp;quot;, int &amp;quot;offX&amp;quot;, int &amp;quot;offY&amp;quot;, int &amp;quot;w&amp;quot; int &amp;quot;h&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|thY1|int|10}}&lt;br /&gt;
::{{Par2|thY2|int|10}}&lt;br /&gt;
:::Luma thresholds; {{Template:FuncDef3|thY1}} is the low threshold and thY2 the high threshold. Under {{Template:FuncDef3|thY1}}, the pixel is set to zero, over {{Template:FuncDef3|thY2}}, to 255, and in between, left untouched.&lt;br /&gt;
:::Range: 0 to 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|thC1|int|10}}&lt;br /&gt;
::{{Par2|thC2|int|10}}&lt;br /&gt;
&lt;br /&gt;
:::Chroma thresholds; {{Template:FuncDef3|thC1}} is the low threshold and {{Template:FuncDef3|thC2}} the high threshold. Under {{Template:FuncDef3|thC1}}, the pixel is set to zero, over {{Template:FuncDef3|thC2}}, to 255, and in between, left untouched.&lt;br /&gt;
:::Range: 0 to 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|thT|int|10}}&lt;br /&gt;
:::{{Template:FuncDef3|thT}} decides whether the frame is a scene change or not. The mask is made blank if a scene change is detected, else, the mask is computed.&lt;br /&gt;
:::Range: 0 to 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|sc_value|int|0}}&lt;br /&gt;
:::&lt;br /&gt;
:::Range: 0 to 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Y|int|3}}&lt;br /&gt;
::{{Par2|U|int|1}}&lt;br /&gt;
::{{Par2|V|int|1}}&lt;br /&gt;
:::These three values describe the actual processing mode that is to be used on each plane / channel. Here is how the modes are coded :&lt;br /&gt;
::::*x = -255...0 : all the pixels of the plane will be set to -x.&lt;br /&gt;
::::*x = 1 : the plane will not be processed. That means the content of the plane after the filter is pure garbage.&lt;br /&gt;
::::*x = 2 : the plane of the first input clip will be copied.&lt;br /&gt;
::::*x = 3 : the plane will be processed with the processing the filter is designed to do.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|chroma|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
:::When defined, the value contained in this string will overwrite the {{Template:FuncDef3|U}} and {{Template:FuncDef3|V}} processing modes.&lt;br /&gt;
:::This is a nice addition proposed by mg262 that makes the filter more user friendly. Allowed values for chroma are:&lt;br /&gt;
::::*&amp;quot;process&amp;quot; : set u = v = 3.&lt;br /&gt;
::::*&amp;quot;copy&amp;quot; or &amp;quot;copy first&amp;quot; : set u = v = 2.&lt;br /&gt;
::::*&amp;quot;xxx&amp;quot;, where xxx is a number : set u = v = -xxx.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|offX|int|0}}&lt;br /&gt;
::{{Par2|offY|int|0}}&lt;br /&gt;
:::{{Template:FuncDef3|offX}} and {{Template:FuncDef3|offY}} are the top left coordinates of the box where the actual processing shall occur. Everything outside that box will be garbage.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|w|int|-1}}&lt;br /&gt;
::{{Par2|h|int|-1}}&lt;br /&gt;
:::{{Template:FuncDef3|w}} and {{Template:FuncDef3|h}} are the width and height of the processed box. -1 means that the box extends to the lower right corner of the video. That also means that default settings are meant to process the whole picture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
mt_motion with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;blah.avi&amp;quot;)&lt;br /&gt;
 mt_motion(thY1=10, thY2=10, thC1=10, thC2=10, thT=10, sc_value=0, Y=3, U=1, V=1, chroma=&amp;quot;&amp;quot;, offX=0, offY=0, w=-1, h=-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[MaskTools2#Filters|MaskTools2]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/RemoveGrain_v1.0b/RSharpen/MotionSharpen</id>
		<title>RemoveGrain v1.0b/RSharpen/MotionSharpen</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/RemoveGrain_v1.0b/RSharpen/MotionSharpen"/>
				<updated>2018-06-24T23:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugin_functions|Adjustment_filters|Sharpeners}}&lt;br /&gt;
'''Back to [[RemoveGrain_v1.0b/RSharpen|RSharpen]] &amp;amp;larr;'''&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
A temporal sharpening function derived from [[RemoveGrain v1.0b/RemoveGrain/Clense|Clense]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only &lt;br /&gt;
* Supported color formats: [[YUY2]], [[YV12]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|MotionSharpen (''clip'', ''bool'' &amp;quot;grey&amp;quot;, ''bool'' &amp;quot;reduceflicker&amp;quot;, ''bool'' &amp;quot;planar&amp;quot;, ''int'' &amp;quot;cache&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|grey|bool|false}}&lt;br /&gt;
:::If true, chroma will not be processed nor copied.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|reduceflicker|bool|true}}&lt;br /&gt;
:::If false, the old Clense blending behavior will be used.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|planar|bool|false}}&lt;br /&gt;
:::See SSETools Interleaved2Planar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cache|int|2}}&lt;br /&gt;
:::Cache&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
MotionSharpen with default values:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 MotionSharpen(grey=false, reduceflicker=true, planar=false, cache=2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==External Links ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[RemoveGrain_v1.0b/RSharpen|RSharpen]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/DeCross</id>
		<title>DeCross</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DeCross"/>
				<updated>2018-06-24T23:03:45Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Restoration_filters|Rainbow &amp;amp; Dot Crawl Removal}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/minamina}} &lt;br /&gt;
| v0.0.02&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeCross0002.zip DeCross0002.zip]&lt;br /&gt;
| Rainbow &amp;amp; Dot Crawl Removal&lt;br /&gt;
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=107316 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
DeCross is a cross color reduction plugin, useful for reducing rainbows. DeCross is based on CrossColor, an AviUtl plugin by [http://web.archive.org/web/20090212234323/http://latch-up.hp.infoseek.co.jp/aviutl.html Shou.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[YUY2]], [[YV12]]&lt;br /&gt;
* [[MMX]] compatible CPU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|DeCross (''clip'', ''int'' &amp;quot;ThresholdY&amp;quot;, ''int'' &amp;quot;Noise&amp;quot;, ''int'' &amp;quot;Margin&amp;quot;, ''bool'' &amp;quot;Debug&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ThresholdY|int|30}}&lt;br /&gt;
:::Edge detection threshold; lower values increase edge detection.&lt;br /&gt;
:::Range: 0 - 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Noise|int|60}}&lt;br /&gt;
:::Anything equal to or greater than this value is considered as noise.&lt;br /&gt;
:::Range: 0 - 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Margin|int|1}}&lt;br /&gt;
:::Expands the edge mask left and right.&lt;br /&gt;
:::Range: 0 - 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Debug|bool|false}}&lt;br /&gt;
:::Shows the area where the filter is being applied; useful for seeing the effects of ThresholdY and Margin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
DeCross with all default values:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 DeCross(ThresholdY=30, Noise=60, Margin=1, Debug=false)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
   2004/02/01 [http://nullinfo.s21.xrea.com/data/DeCross0002.zip v0.0.02] &lt;br /&gt;
      - Fixed a problem were DeCross could not be loaded using AviSynth 2.0.x and LoadPluginEx.&amp;lt;br&amp;gt;&lt;br /&gt;
   2003/12/26 [http://nullinfo.s21.xrea.com/data/DeCross0001.zip v0.0.01]&lt;br /&gt;
      - Initial Release.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=107316 Doom9 Forum] - DeCross discussion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Rainbow_.26_Dot_Crawl_Removal|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/TNLMeans</id>
		<title>TNLMeans</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/TNLMeans"/>
				<updated>2018-06-24T22:49:27Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Plugins|Denoisers|Spatial-Temporal Denoisers}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|1.0.3&lt;br /&gt;
|&lt;br /&gt;
3=[http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TNLMeansv103.zip TNLMeansv103.zip]&lt;br /&gt;
[http://web.archive.org/web/20160224092631/https://filetea.me/t1sw6hYQVQbSbG4DGPuojmb9g/dl TNLMeans_ICL.7z] &amp;lt;!--[http://www.sendspace.com/file/6k226c]--&amp;gt;&lt;br /&gt;
|4=Spatial-Temporal Denoisers&lt;br /&gt;
|5=[http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=111344 Doom9 Thread]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
[[TNLMeans]] is an implementation of the [http://en.wikipedia.org/wiki/Non-local_means NL-means denoising algorithm]. Aside from the original method, [[TNLMeans]] also supports extension into 3D, a faster, block based approach, and a multiscale version.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TNLMeans_ICL.7z&amp;lt;/tt&amp;gt; is an optimized build compiled with Intel C++ Compiler 10, see [http://forum.doom9.org/showthread.php?t=168090 discussion] for more details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only &lt;br /&gt;
* Supported color formats: [[YUY2]], [[YV12]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Theory Of Operation:==&lt;br /&gt;
&lt;br /&gt;
The NL-means algorithm works in the following manner.  For each pixel in the image define a search window in which to look for similar pixels.  The search window is defined by the parameters Ax and Ay, which set the x-axis radius and y-axis radius.  For each pixel in the window determine a weight based on the similarity of that pixel's gray level neighborhood to the center pixel's gray level neighborhood.  The neighborhood is defined by the Sx and Sy parameters, which set the x-axis radius and y-axis radius.  The similarity between two neighborhoods is measured using gaussian weighted (as a function of distance, the standard deviation is set by the &amp;quot;a&amp;quot; parameter) sum of squared differences. The final weight for a pixel is computed as:&lt;br /&gt;
&lt;br /&gt;
 exp(-(total_sse_difference/sum_of_gaussian_weights)/(h*h));&lt;br /&gt;
&lt;br /&gt;
If the parameter 'sse' is set to false, then sum of absolute differences is used instead of sum of squared differences.  In that case, the final weight for a pixel is computed as:&lt;br /&gt;
&lt;br /&gt;
 exp(-(total_sad_difference/sum_of_gaussian_weights)/h);&lt;br /&gt;
&lt;br /&gt;
Once a weight for each pixel in the window is acquired, the final pixel value is simply the weighted average of all the pixels.  In order for the center pixel to not be too heavily weighted, it is assigned a weight equal to the largest weight given to another pixel in the search window.&lt;br /&gt;
&lt;br /&gt;
The block based modification changes the base step (or base window) from 1 pixel to blocks with size Bx and By where Bx and By set the x-axis radius and y-axis radius. The support and search windows still work the same way, but now whole blocks are computed/averaged at once instead of individual pixels.  This modification cuts the computation time down by Bx*2+1)*(By*2+1) times.&lt;br /&gt;
&lt;br /&gt;
The 3D extension allows extending the search window into neighbor frames.  The parameter Az sets the temporal (z-axis) radius.  With Az=1 frames n-1 and n+1 would be included.&lt;br /&gt;
&lt;br /&gt;
The multiscale version works by running the normal algorithm with Ax/Ay = 2 on the original image, and then running the algorithm again on a downsampled (width/2,height/2) version of the original image with Ax/Ay/Bx/By/Sx/Sy all divided by 2.  The weights from the two scales are then combined to form the final image.  This process can greatly speed up processing for large search windows but sacrifices quality (especially around edges/lines/fine details). The type of downsampling that is used is set by the 'rm' parameter.&lt;br /&gt;
&lt;br /&gt;
For more information see the following papers:&lt;br /&gt;
&lt;br /&gt;
*[http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/nl1.pdf A Review of Image Denoising Algorithms, with a New One]&lt;br /&gt;
*[http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/nl2.pdf A non-local algorithm for image denoising]&lt;br /&gt;
*[http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/nl3.pdf Denosing image sequences does not require motion estimation]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|TNLMeans (clip, int &amp;quot;Ax&amp;quot;, int &amp;quot;Ay&amp;quot;, int &amp;quot;Az&amp;quot;, int &amp;quot;Sx&amp;quot;, int &amp;quot;Sy&amp;quot;, int &amp;quot;Bx&amp;quot;, int &amp;quot;By&amp;quot;, bool &amp;quot;ms&amp;quot;, int &amp;quot;rm&amp;quot;, float &amp;quot;a&amp;quot;, float &amp;quot;h&amp;quot;, bool &amp;quot;sse&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Ax|int|4}}&lt;br /&gt;
::{{Par2|Ay|int|4}}&lt;br /&gt;
::{{Par2|Az|int|0}}&lt;br /&gt;
:::These set the x-axis, y-axis, and z-axis radii of the search window.  These must be greater than or equal to 0.  The full window size will be:&lt;br /&gt;
::::&amp;lt;code&amp;gt;(Ax*2+1) x (Ay*2+1) x (Az*2+1)&amp;lt;/code&amp;gt;&lt;br /&gt;
:::Generally, the larger the search window the better the result of the denoising. Of course, the larger the search window the longer the denoising takes.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Sx|int|2}}&lt;br /&gt;
::{{Par2|Sy|int|2}}&lt;br /&gt;
:::These set the x-axis and y-axis radii of the support (similarity neighborhood) window. These must be greater than or equal to 0. A larger similarity window will retain more detail/texture but will also cause less noise removal. Typical values for Sx/Sy are 2 or 3. The full window size will be: &amp;lt;code&amp;gt;(Sx*2+1) x (Sy*2+1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Bx|int|1}}&lt;br /&gt;
::{{Par2|By|int|1}}&lt;br /&gt;
:::These set the x-axis and y-axis radii of the base window. In the original NL-means algorithm the base was a single pixel (Bx=0 and By=0). Using blocks larger than a single pixel will sacrifice some quality for speed. Note that Sx must be greater than or equal to Bx and Sy must be greater than or equal to By. It is recommended that Sx/Sy be larger than Bx/By.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ms|bool|false}}&lt;br /&gt;
:::Controls whether or not the multiscale version is used. The multiscale version is faster but lower quality. The larger ax/ay are the greater the speed increase from using the multiscale version will be. If Ax/Ay are less than or equal to 2 then the multiscale version will not give any speed up and will make things slower. The multiscale version requires [[modulo|mod 8]] input (width divisible by 8).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rm|int|4}}&lt;br /&gt;
:::If ms = true, then rm sets the type of resizing used for downsampling. Possible options:&lt;br /&gt;
:::*0 - Point&lt;br /&gt;
:::*1 - Bilinear&lt;br /&gt;
:::*2 - Bicubic&lt;br /&gt;
:::*3 - Lanczos3&lt;br /&gt;
:::*4 - Spline16&lt;br /&gt;
:::*5 - Spline36&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|a|float|1.0}}&lt;br /&gt;
:::Sets the standard deviation of the Gaussian used for weighting the difference calculation used for computing neighborhood similarity. Smaller values will result in less noise removal but will retain more detail/texture.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|h|float|1.8}}&lt;br /&gt;
:::Controls the strength of the filtering (blurring).  Larger values will remove more noise but will also destroy more detail. 'h' should typically be set equal to the standard deviation of the noise in the image when using sse=true and assuming the noise fits the zero mean, Gaussian model.&lt;br /&gt;
&lt;br /&gt;
:::*h defaults to 0.5 when sse=false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|sse|bool|true}}&lt;br /&gt;
:::Controls whether sum of squared differences or sum of absolute differences is used when computing neighborhood similarity. sse is slightly slower but retains fine detail/texture better. sad typically works better for cartoons/anime. The 'h' parameter usually needs to be set about 4 times lower when using sad than when using sse.&lt;br /&gt;
:::*true - use sse&lt;br /&gt;
:::*false - use sad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
TNLMeans with all default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 TNLMeans(Ax=4, Ay=4, Az=0, Sx=2, Sy=2, Bx=1, By=1, ms=false, rm=4, a=1.0, h=1.8, sse=true)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version          Date(D/M/Y)      Changes&amp;lt;br&amp;gt;&lt;br /&gt;
 v1.0.3           08/28/2007       - Removed fast exp() approximation that was used for sse=false. Turns out it was &lt;br /&gt;
                                     quite inaccurate and had overflow problems resulting in artifacts.&amp;lt;br&amp;gt;&lt;br /&gt;
 v1.0.2           07/30/2006       - Fixed a problem with small weights causing artifacts&amp;lt;br&amp;gt;&lt;br /&gt;
 v1.0.1           06/19/2006       - Fixed a bug that caused a crash when ms=true was used with yuy2 input&amp;lt;br&amp;gt;&lt;br /&gt;
 v1.0 Final       05/31/2006       - Fixed always creating the downsampled clip unless ms=false was explicitly&lt;br /&gt;
                                     specified&amp;lt;br&amp;gt;&lt;br /&gt;
 v1.0 Beta 2      05/25/2006       + Added multiscale version (parameters ms/rm)&lt;br /&gt;
                                   + Added sse parameter&lt;br /&gt;
                                   + Optimized non-block based routines by buffering (100% speed increase)&lt;br /&gt;
                                   - Removed b parameter&lt;br /&gt;
                                   - Fixed a bug in the block based routines that caused some blocks&lt;br /&gt;
                                     in the search window not to be tested&lt;br /&gt;
                                   - Changed defaults for ax/ay/sx/sy/h&amp;lt;br&amp;gt;&lt;br /&gt;
 v1.0 Beta 1      05/17/2006       - Initial Release&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Archived Downloads ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;100px&amp;quot;| Version&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Download&lt;br /&gt;
!!width=&amp;quot;150px&amp;quot;| Mirror&lt;br /&gt;
|-&lt;br /&gt;
!v1.0.3&lt;br /&gt;
|&amp;lt;strike&amp;gt;[http://bengal.missouri.edu/~kes25c/TNLMeansv103.zip TNLMeansv103.zip]&amp;lt;/strike&amp;gt;&lt;br /&gt;
|[http://web.archive.org/web/20140420182218/http://bengal.missouri.edu/~kes25c/TNLMeansv103.zip TNLMeansv103.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=168090 Doom9 Forum] - TNLMeans 1.0.3 built with ICL10.&lt;br /&gt;
*[http://github.com/VFR-maniac/VapourSynth-TNLMeans GitHub] - VapourSynth port of TNLMeans.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Spatio-Temporal_Denoisers| External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/RemoveGrain_v0.9/RemoveGrain/MCClense</id>
		<title>RemoveGrain v0.9/RemoveGrain/MCClense</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/RemoveGrain_v0.9/RemoveGrain/MCClense"/>
				<updated>2018-06-24T22:47:24Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Plugin_functions|Temporal_denoisers}}&lt;br /&gt;
&lt;br /&gt;
'''Back to [[RemoveGrain_v0.9/RemoveGrain|RemoveGrain]] &amp;amp;larr;'''&lt;br /&gt;
== Description ==&lt;br /&gt;
Motion Compensated Clense. MCClense applies minmax clipping with respect to two frames (with the same frame number) from two neighbor clips. One clip is the forward motion compensated and the other the backward motion compensated clip. MCClense of course uses the same low level routine as Clense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only &lt;br /&gt;
* Supported color formats: [[YUY2]], [[YV12]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|MCClense (''clip'', ''clip'', ''clip'', ''bool'' &amp;quot;grey&amp;quot;, ''bool'' &amp;quot;planar&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip assume to be the forward motion compensated clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip assume to be the backward motion compensated clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|grey|bool|false}}&lt;br /&gt;
:::If true, chroma will not be processed nor copied.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|planar|bool|false}}&lt;br /&gt;
:::See SSETools Interleaved2Planar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
MCClense with default values:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 MCClense(grey=false, planar=false)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==External Links ==&lt;br /&gt;
*[http://videoprocessing.fr.yuku.com/sreply/287/RemoveGrain-10-prerelease VideoProcessing Forum] - MCClense explanation by Kassandro.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[RemoveGrain_v0.9/RemoveGrain|RemoveGrain]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/LUTDeCrawl</id>
		<title>LUTDeCrawl</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/LUTDeCrawl"/>
				<updated>2018-06-24T22:46:36Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Rainbow &amp;amp; Dot Crawl Removal}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/Scintilla}} &lt;br /&gt;
| 10/3/08&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeCrawl-20081003.avsi LUTDeCrawl-20081003.avsi]&lt;br /&gt;
| Rainbow &amp;amp; Dot Crawl Removal&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
LUTDeCrawl, a dot crawl removal script by Scintilla.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[YV12]]&lt;br /&gt;
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only &lt;br /&gt;
&lt;br /&gt;
=== Required Plugins ===&lt;br /&gt;
*[[MaskTools2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|LUTDeCrawl(clip input, int &amp;quot;ythresh&amp;quot;, int &amp;quot;cthresh&amp;quot;, int &amp;quot;maxdiff&amp;quot;, int &amp;quot;scnchg&amp;quot;, bool &amp;quot;usemaxdiff&amp;quot;, bool &amp;quot;mask&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|input|clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ythresh|int|10}}&lt;br /&gt;
:::This determines how close the luma values of the pixel in the previous and next frames have to be for the pixel to be hit.&lt;br /&gt;
:::Higher values (within reason) should catch more dot crawl, but may introduce unwanted artifacts. Probably shouldn't be set above 20 or so.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cthresh|int|10}}&lt;br /&gt;
:::This determines how close the chroma values of the pixel in the previous and next frames have to be for the pixel to be hit. Just as with ythresh.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|maxdiff|int|50}}&lt;br /&gt;
:::This is the maximum difference allowed between the luma values of the pixel in the CURRENT frame and in each of its neighbour frames (so, the upper limit to what fluctuations are considered dot crawl).&lt;br /&gt;
:::Lower values will reduce artifacts but may cause the filter to miss some dot crawl.  Obviously, this should never be lower than ythresh.  Meaningless if usemaxdiff = false.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|scnchg|int|25}}&lt;br /&gt;
:::Scene change detection threshold. Any frame with total luma difference between it and the previous/next frame greater than this value will not be processed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|usemaxdiff|bool|true}}&lt;br /&gt;
:::Whether or not to reject luma fluctuations higher than maxdiff.&lt;br /&gt;
:::Setting this to false is not recommended, as it may introduce artifacts; but on the other hand, it produces a 30% speed boost.  Test on your particular source.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|mask|bool|false}}&lt;br /&gt;
:::When set true, the function will return the mask instead of the image.&lt;br /&gt;
:::Use to find the best values of cthresh, ythresh, and maxdiff. (The scene change threshold, scnchg, is not reflected in the mask.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
LUTDeCrawl with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 LUTDeCrawl(ythresh=10, cthresh=10, maxdiff=50, scnchg=25, usemaxdiff=true, mask=false)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
   10/3/08:&lt;br /&gt;
      - Is this thing on?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Rainbow_.26_Dot_Crawl_Removal|External Filters]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/MCBob</id>
		<title>MCBob</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/MCBob"/>
				<updated>2018-06-24T22:45:52Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Deinterlacers}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|[http://home.arcor.de/dhanselmann/_stuff/ Didée]&lt;br /&gt;
|v0.3u6&lt;br /&gt;
|3=MCBobUv6.avsi&lt;br /&gt;
|4=Deinterlacers&lt;br /&gt;
|5=&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=117025 original] / [http://forum.doom9.org/showthread.php?t=124676 continued]}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Another approach to motion compensated bobbing, build by Didée.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://forum.doom9.org/showthread.php?t=168764 greater]&lt;br /&gt;
* Supported color formats: [[YV12]]&lt;br /&gt;
&lt;br /&gt;
===Required Plugins===&lt;br /&gt;
Latest version of the following plugins are recommended unless stated otherwise.&amp;lt;br&amp;gt;&lt;br /&gt;
* [[MaskTools2]]&lt;br /&gt;
* [[MedianBlur]]&lt;br /&gt;
* [[MVTools]]&lt;br /&gt;
*[[nnedi3|NNEDI3]]&lt;br /&gt;
* RemoveGrain + Repair - part of the [[RemoveGrain v1.0b]] package.&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
*[[EEDI2]] | [[NNEDI]] | [[nnedi2|NNEDI2]]&amp;lt;br&amp;gt;Only required when it's specifically set by the &amp;lt;tt&amp;gt;{{Template:FuncDef|EdiMode}}&amp;lt;/tt&amp;gt; parameter.&lt;br /&gt;
* [[ReduceFlicker]]&amp;lt;br&amp;gt; Only required when &amp;lt;tt&amp;gt;{{Template:FuncDef|MEtempNR}}&amp;lt;/tt&amp;gt; is greater than 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
{{FuncDef|MCBobu (clip clp, float &amp;quot;EdiPre&amp;quot;, int &amp;quot;EdiPost&amp;quot;, int &amp;quot;blocksize&amp;quot;, int &amp;quot;search&amp;quot;, int &amp;quot;MEdepth&amp;quot;, string &amp;quot;EdiMode&amp;quot;, int &amp;quot;nsize&amp;quot;, int &amp;quot;nns&amp;quot;, int &amp;quot;qual&amp;quot;, int &amp;quot;maxd&amp;quot;, float &amp;quot;sharpness&amp;quot;, int &amp;quot;mtnmode&amp;quot;, float &amp;quot;mtnth1&amp;quot;, float &amp;quot;mtnth2&amp;quot;, float &amp;quot;errth1&amp;quot;, float &amp;quot;errth2&amp;quot;, float &amp;quot;MEspatNR&amp;quot;, float &amp;quot;MEtempNR&amp;quot;)}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EdiPre    = default( EdiPre,       1.0 )  #  What bob to start with: 0.0 = dumbbob, 1.0 = EdiBob, inbetween = mix of both&lt;br /&gt;
EdiPost   = default( EdiPost,        2 )  #  0 = no EDI PP / 1 = Framesized Edi PP / Average two Fieldbased Edi PP's&lt;br /&gt;
bs        = default( blocksize,     16 )  #  Blocksize for motion search&lt;br /&gt;
search    = default( search,         2 )  #  Motion Search Algorithm. Default is &amp;quot;Diamond&amp;quot;&lt;br /&gt;
me        = default( MEdepth,        2 )  #  Search effort of motion search&lt;br /&gt;
EdiMode   = default( EdiMode, &amp;quot;nnedi3&amp;quot; )  #  Interpolator. Select between EEDI2, nnedi, nnedi2, &amp;amp; nnedi3&lt;br /&gt;
nsize     = default( nsize,          2 )  #  nnedi2/nnedi3 only: Sets the size of the local neighborhood around each pixel that is used by the predictor neural network. &lt;br /&gt;
                                          #  For deinterlacing, larger x_diameter settings will allow connecting lines of smaller slope. 0-2 for nnedi2; 0-4 for nnedi3. &lt;br /&gt;
                                          #  Possible settings (x_diameter x y_diameter): 0 (8x6), 1 (16x6), 2 (32x6), 3 (48x6), 4 (8x4)&lt;br /&gt;
nns       = default( nns,            1 )  #  nnedi3 only: &amp;quot;Speed&amp;quot; vs. &amp;quot;Quality&amp;quot; option. Sets the number of neurons in the predictor neural network.&lt;br /&gt;
                                          #  Settings ranges from 0 to 3 (3 being the best/slowest). 0 (32), 1 (64), 2 (128), or 3 (256)&lt;br /&gt;
qual      = default( qual,           1 )  #  nnedi2/nnedi3 only: Controls the number of different neural network predictions that are blended together to compute the final output value. &lt;br /&gt;
                                          #  Each neural network was trained on a different set of training data. Blending the results of these different networks improves generalization to unseen data.&lt;br /&gt;
                                          #  Possible values are 1-3 for nnedi2, and 1 or 2 for nnedi3. Essentially this is a quality vs speed option. &lt;br /&gt;
                                          #  Larger values will result in more processing time, but should give better results.&lt;br /&gt;
maxd      = default( maxd,          24 )  #  Adjustable parameter for EEDI2 only. Refer to EEDI2's doc for details&lt;br /&gt;
&lt;br /&gt;
sharpness = (EdiPost==2)&lt;br /&gt;
 \        ? default( sharpness,    0.7 )  &lt;br /&gt;
 \        : default( sharpness,    1.0 )  #  use slight sharpening before STT routine&lt;br /&gt;
    &lt;br /&gt;
mtnmode   = default( mtnmode,        1 )  #  0 = use only same-parity motion check, 1|2 use an additional &lt;br /&gt;
                                          #  inter-parity check: 1 = on vertical edges / 2 = not on horizontal edges&lt;br /&gt;
mtnth1    = default( mtnth1,      0.20 )  #  below this percentage of local min/max is static&lt;br /&gt;
mtnth2    = default( mtnth2,      0.40 )  #  above this percentage of local min/max is motion&lt;br /&gt;
errth1    = default( errth1,      0.40 )  #  similar for error detection&lt;br /&gt;
errth2    = default( errth2,      0.60 )  #  of motion interpolation errors&lt;br /&gt;
MEspatNR  = default( MEspatNR,    0.00 )  #  amount of spatial NR (for motion search only)&lt;br /&gt;
MEtempNR  = default( MEtempNR,    0.00 )  #  amount of temporal NR (for motion search only)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
===Official===&lt;br /&gt;
*23 Oct 2006 - [http://forum.doom9.org/showpost.php?p=891383&amp;amp;postcount=23 MCBob_v03a]&lt;br /&gt;
*26 Oct 2006 - [http://forum.doom9.org/showpost.php?p=892518&amp;amp;postcount=31 MCBob_v03b]&lt;br /&gt;
*15 Dec 2006 - [http://forum.doom9.org/showpost.php?p=916967&amp;amp;postcount=13 MCBob_v03c]&lt;br /&gt;
===Modifications===&lt;br /&gt;
*14 Nov 2008 - [http://forum.doom9.org/showpost.php?p=1213195&amp;amp;postcount=109 MCBobmod]&lt;br /&gt;
*15 Feb 2009 - [http://forum.doom9.org/showpost.php?p=1249932&amp;amp;postcount=114 MCBob v0.3u2_MVT2]&lt;br /&gt;
*23 Feb 2009 - [http://forum.doom9.org/showpost.php?p=1253486&amp;amp;postcount=116 MCBob v0.3u3_MVT2]&lt;br /&gt;
*22 Nov 2009 - [http://forum.doom9.org/showpost.php?p=1346265&amp;amp;postcount=152 MCBob v0.3u4_MVT2]&lt;br /&gt;
*28 Apr 2010 - [http://forum.doom9.org/showpost.php?p=1395428&amp;amp;postcount=173 MCBob v0.3u4]&lt;br /&gt;
*03 May 2010 - [http://forum.doom9.org/showpost.php?p=1396802&amp;amp;postcount=174 MCBob v0.3u5]&lt;br /&gt;
*16 May 2010 - [http://forum.doom9.org/showpost.php?p=1400371&amp;amp;postcount=438 MCBob v0.3u6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*Doom9 Forum - [http://forum.doom9.org/showthread.php?t=117025 original discussion] | [http://forum.doom9.org/showthread.php?t=124676 continued discussion]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Deinterlacing|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/MCBob</id>
		<title>MCBob</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/MCBob"/>
				<updated>2018-06-24T22:45:09Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Deinterlacers}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|[http://home.arcor.de/dhanselmann/_stuff/ Didée]&lt;br /&gt;
|v0.3u6&lt;br /&gt;
|3=MCBobUv6.avsi&lt;br /&gt;
|4=Deinterlacers&lt;br /&gt;
|5=&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=117025 original] / [http://forum.doom9.org/showthread.php?t=124676 continued]}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Another approach to motion compensated bobbing, build by Didée.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://forum.doom9.org/showthread.php?t=168764 greater]&lt;br /&gt;
* Supported color formats: [[YV12]]&lt;br /&gt;
&lt;br /&gt;
===Required Plugins===&lt;br /&gt;
Latest version of the following plugins are recommended unless stated otherwise.&amp;lt;br&amp;gt;&lt;br /&gt;
* [[MaskTools2]]&lt;br /&gt;
* [[MedianBlur]]&lt;br /&gt;
* [[MVTools]]&lt;br /&gt;
*[[nnedi3|NNEDI3]]&lt;br /&gt;
* RemoveGrain + Repair - part of the [[RemoveGrain v1.0b]] package.&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
*[[EEDI2]] | [[NNEDI]] | [[nnedi2|NNEDI2]]&amp;lt;br&amp;gt;Only required when it's specifically set by the &amp;lt;tt&amp;gt;{{Template:FuncDef|EdiMode}}&amp;lt;/tt&amp;gt; parameter.&lt;br /&gt;
* [[ReduceFlicker]]&amp;lt;br&amp;gt; Only required when &amp;lt;tt&amp;gt;{{Template:FuncDef|MEtempNR}}&amp;lt;/tt&amp;gt; is greater than 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
{{FuncDef|MCBobu (clip clp, float &amp;quot;EdiPre&amp;quot;, int &amp;quot;EdiPost&amp;quot;, int &amp;quot;blocksize&amp;quot;, int &amp;quot;search&amp;quot;, int &amp;quot;MEdepth&amp;quot;, string &amp;quot;EdiMode&amp;quot;, int &amp;quot;nsize&amp;quot;, int &amp;quot;nns&amp;quot;, int &amp;quot;qual&amp;quot;, int &amp;quot;maxd&amp;quot;, float &amp;quot;sharpness&amp;quot;, int &amp;quot;mtnmode&amp;quot;, float &amp;quot;mtnth1&amp;quot;, float &amp;quot;mtnth2&amp;quot;, float &amp;quot;errth1&amp;quot;, float &amp;quot;errth2&amp;quot;, float &amp;quot;MEspatNR&amp;quot;, float &amp;quot;MEtempNR&amp;quot;)}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EdiPre    = default( EdiPre,       1.0 )  #  What bob to start with: 0.0 = dumbbob, 1.0 = EdiBob, inbetween = mix of both&lt;br /&gt;
EdiPost   = default( EdiPost,        2 )  #  0 = no EDI PP / 1 = Framesized Edi PP / Average two Fieldbased Edi PP's&lt;br /&gt;
bs        = default( blocksize,     16 )  #  Blocksize for motion search&lt;br /&gt;
search    = default( search,         2 )  #  Motion Search Algorithm. Default is &amp;quot;Diamond&amp;quot;&lt;br /&gt;
me        = default( MEdepth,        2 )  #  Search effort of motion search&lt;br /&gt;
EdiMode   = default( EdiMode, &amp;quot;nnedi3&amp;quot; )  #  Interpolator. Select between EEDI2, nnedi, nnedi2, &amp;amp; nnedi3&lt;br /&gt;
nsize     = default( nsize,          2 )  #  nnedi2/nnedi3 only: Sets the size of the local neighborhood around each pixel that is used by the predictor neural network. &lt;br /&gt;
                                          #  For deinterlacing, larger x_diameter settings will allow connecting lines of smaller slope. 0-2 for nnedi2; 0-4 for nnedi3. &lt;br /&gt;
                                          #  Possible settings (x_diameter x y_diameter): 0 (8x6), 1 (16x6), 2 (32x6), 3 (48x6), 4 (8x4)&lt;br /&gt;
nns       = default( nns,            1 )  #  nnedi3 only: &amp;quot;Speed&amp;quot; vs. &amp;quot;Quality&amp;quot; option. Sets the number of neurons in the predictor neural network.&lt;br /&gt;
                                          #  Settings ranges from 0 to 3 (3 being the best/slowest). 0 (32), 1 (64), 2 (128), or 3 (256)&lt;br /&gt;
qual      = default( qual,           1 )  #  nnedi2/nnedi3 only: Controls the number of different neural network predictions that are blended together to compute the final output value. &lt;br /&gt;
                                          #  Each neural network was trained on a different set of training data. Blending the results of these different networks improves generalization to unseen data.&lt;br /&gt;
                                          #  Possible values are 1-3 for nnedi2, and 1 or 2 for nnedi3. Essentially this is a quality vs speed option. &lt;br /&gt;
                                          #  Larger values will result in more processing time, but should give better results.&lt;br /&gt;
maxd      = default( maxd,          24 )  #  Adjustable parameter for EEDI2 only. Refer to EEDI2's doc for details&lt;br /&gt;
&lt;br /&gt;
sharpness = (EdiPost==2)&lt;br /&gt;
 \        ? default( sharpness,    0.7 )  &lt;br /&gt;
 \        : default( sharpness,    1.0 )  #  use slight sharpening before STT routine&lt;br /&gt;
    &lt;br /&gt;
mtnmode   = default( mtnmode,        1 )  #  0 = use only same-parity motion check, 1|2 use an additional &lt;br /&gt;
                                          #  inter-parity check: 1 = on vertical edges / 2 = not on horizontal edges&lt;br /&gt;
mtnth1    = default( mtnth1,      0.20 )  #  below this percentage of local min/max is static&lt;br /&gt;
mtnth2    = default( mtnth2,      0.40 )  #  above this percentage of local min/max is motion&lt;br /&gt;
errth1    = default( errth1,      0.40 )  #  similar for error detection&lt;br /&gt;
errth2    = default( errth2,      0.60 )  #  of motion interpolation errors&lt;br /&gt;
MEspatNR  = default( MEspatNR,    0.00 )  #  amount of spatial NR (for motion search only)&lt;br /&gt;
MEtempNR  = default( MEtempNR,    0.00 )  #  amount of temporal NR (for motion search only)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
===Official===&lt;br /&gt;
*23 Oct 2006 - [http://forum.doom9.org/showpost.php?p=891383&amp;amp;postcount=23 MCBob_v03a]&lt;br /&gt;
*26 Oct 2006 - [http://forum.doom9.org/showpost.php?p=892518&amp;amp;postcount=31 MCBob_v03b]&lt;br /&gt;
*15 Dec 2006 - [http://forum.doom9.org/showpost.php?p=916967&amp;amp;postcount=13 MCBob_v03c]&lt;br /&gt;
===Modifications===&lt;br /&gt;
*14 Nov 2008 - [http://forum.doom9.org/showpost.php?p=1213195&amp;amp;postcount=109 MCBobmod]&lt;br /&gt;
*15 Feb 2009 - [http://forum.doom9.org/showpost.php?p=1249932&amp;amp;postcount=114 MCBob v0.3u2_MVT2]&lt;br /&gt;
*23 Feb 2009 - [http://forum.doom9.org/showpost.php?p=1253486&amp;amp;postcount=116 MCBob v0.3u3_MVT2]&lt;br /&gt;
*22 Nov 2009 - [http://forum.doom9.org/showpost.php?p=1346265&amp;amp;postcount=152 MCBob v0.3u4_MVT2]&lt;br /&gt;
*28 Apr 2010 - [http://forum.doom9.org/showpost.php?p=1395428&amp;amp;postcount=173 MCBob v0.3u4]&lt;br /&gt;
*03 May 2010 - [http://forum.doom9.org/showpost.php?p=1396802&amp;amp;postcount=174 MCBob v0.3u5]&lt;br /&gt;
*16 May 2010 - [http://forum.doom9.org/showpost.php?p=1400371&amp;amp;postcount=438 MCBob v0.3u6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*Doom9 Forum - [http://forum.doom9.org/showthread.php?t=117025 original discussion] | [http://forum.doom9.org/showthread.php?t=124676 continued discussion]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Deinterlacing|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/RemoveGrain</id>
		<title>RemoveGrain</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/RemoveGrain"/>
				<updated>2018-06-24T22:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Plugins|Denoisers}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
RemoveGrain is a plugin package that includes various plugins to denoise, repair, sharpen, and other miscellaneous filters.&amp;lt;br&amp;gt;&lt;br /&gt;
Some of the plugins included: RemoveGrain, Repair, RSharpen, SSETools and their SSE2 and SSE3 versions.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Warning:'''&amp;lt;br&amp;gt;&lt;br /&gt;
The [[SSE3]] versions of the '''complete''' RemoveGrain v0.9/v1.0b package are considered unstable due to compiler limitations at the time. RemoveGrain v1.0pre introduced a fix for all SSE3 versions.&amp;lt;br&amp;gt;&lt;br /&gt;
Unfortunately RemoveGrain v1.0pre split the spatial and temporal filters into 2 different packages. For that reason the [[SSE2]] versions of the [[RemoveGrain v1.0b]] are highly recommended since they are considered to be the most compatible and stable versions.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[RemoveGrain v0.9]] ==&lt;br /&gt;
:Official release | '''Deprecated'''&lt;br /&gt;
::*[http://web.archive.org/web/20120817121654/http://home.pages.at/kassandro/RemoveGrain/ Home Page &amp;amp; Documentation] [http://archive.is/gbM0L mirror]&lt;br /&gt;
::*[http://videoprocessing.fr.yuku.com/sreply/256/Basic-question-about-SSETools SSETools Documentation by Kassandro]&lt;br /&gt;
::*[http://www.aquilinestudios.org/avsfilters/spatial.html#removegrain Overview of RemoveGrain modes 0-18]&lt;br /&gt;
::*[http://videoprocessing.fr.yuku.com/topic/47/Little-RG-denoising-modes-statistic RemoveGrain Modes Statistics] &lt;br /&gt;
::*[http://forum.doom9.org/showthread.php?t=79751 Doom9 Forum: RemoveGrain v0.4 - v0.9 Development thread] &lt;br /&gt;
&lt;br /&gt;
:* '''Download''': [2005-05-01]&lt;br /&gt;
:::*[http://web.archive.org/web/20120817121654/http://home.pages.at/kassandro/RemoveGrain/RemoveGrain.zip v0.9 Plugin]&lt;br /&gt;
:::*[http://web.archive.org/web/20120817121654/http://home.pages.at/kassandro/RemoveGrain/RemoveGrain-src.zip v0.9 Source Code]&lt;br /&gt;
:::*Mirror: [http://www.64k.it/andres/data/avisynth/removegrain_25_dll_20050501.zip] | [http://web.archive.org/web/20130803185015/http://www.64k.it/andres/data/avisynth/removegrain_25_dll_20050501.zip] | [http://chaosking.de/wp-content/uploads/avsfilters/Denoisers/Spatial_Denoisers/RemoveGrain___(0.9_-_2005-05-01).7z] | [http://web.archive.org/web/20140412062911/http://chaosking.de/wp-content/uploads/avsfilters/Denoisers/Spatial_Denoisers/RemoveGrain___(0.9_-_2005-05-01).7z]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[RemoveGrain v1.0b]] ==&lt;br /&gt;
:&amp;quot;Beta&amp;quot; release | &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Recommended'''&amp;lt;/span&amp;gt;&lt;br /&gt;
::* New RemoveGrain modes: 18-27&lt;br /&gt;
::* [http://videoprocessing.fr.yuku.com/topic/9/RemoveGrain-10-prerelease Updated documentation] [http://web.archive.org/web/20140119223023/http://videoprocessing.fr.yuku.com/topic/9/RemoveGrain-10-prerelease mirror], be sure to read ahead for corrections:&lt;br /&gt;
:::*Documentation for RemoveGrain modes [http://videoprocessing.fr.yuku.com/sreply/14/RSharpen 23] and [http://videoprocessing.fr.yuku.com/sreply/15/RSharpen 24]&lt;br /&gt;
:::*[http://videoprocessing.fr.yuku.com/sreply/143/RemoveGrain-10-prerelease Description of RemoveGrain Mode 26 and 27]&lt;br /&gt;
:::*[http://videoprocessing.fr.yuku.com/sreply/40/RemoveGrain-10-prerelease Description of new modes for RSharpen and DenoiseSharpen]&lt;br /&gt;
::*[http://videoprocessing.fr.yuku.com/sreply/423/RemoveGrain-suggestions Overview of RemoveGrain]&lt;br /&gt;
::* [http://web.archive.org/web/20130615165406/http://doom10.org/index.php?topic=2185.0 Overview of Modes 0-25.]&lt;br /&gt;
&lt;br /&gt;
:*'''Download''': [2005-07-31]&lt;br /&gt;
:::*[http://home.arcor.de/kassandro/RemoveGrain/RemoveGrain.rar v1.0b Plugin (source code included)] | [http://web.archive.org/web/20131010093852/http://home.arcor.de/kassandro/RemoveGrain/RemoveGrain.rar mirror]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoveGrain v1.0pre ==&lt;br /&gt;
:Pre-release | '''Spatial'''&lt;br /&gt;
::*There are now 30 RemoveGrain and 24 Repair modes.&lt;br /&gt;
::* [http://videoprocessing.fr.yuku.com/sreply/593/Problem-with-Repair Orginal post by Kassandro.]&lt;br /&gt;
:::* [http://videoprocessing.fr.yuku.com/sreply/691/whats-removegrainT Explanation why RemoveGrain was split in two parts.]&lt;br /&gt;
::* [http://videoprocessing.fr.yuku.com/sreply/692/what-DLL-is-required-to-run-the-SSE3-version-of-removegrain Latest version with SSE3 fix.]&lt;br /&gt;
::* [http://videoprocessing.fr.yuku.com/topic/124/A-64-bit-RemoveGrain 64-bit RemoveGrain]&lt;br /&gt;
:::*64-bit version does not work with [http://forum.doom9.org/showthread.php?t=152800 Avisynth x64 2.5.8.5-MT]. Read post [http://videoprocessing.fr.yuku.com/reply/721/RemoveDirt-x64#reply-721 7 through 14]&lt;br /&gt;
&lt;br /&gt;
:* '''Download''': [2007-05-16]&lt;br /&gt;
:::*[http://home.arcor.de/kassandro/prerelease/RemoveGrain-1.0.rar v1.0pre Plugin] | [http://web.archive.org/web/20120820102851/http://home.arcor.de/kassandro/prerelease/RemoveGrain-1.0.rar mirror]&lt;br /&gt;
:::*[http://home.arcor.de/kassandro/prerelease/RemoveGrain-src-1.0.rar v1.0pre Source Code] | [http://web.archive.org/web/20120820102915/http://home.arcor.de/kassandro/prerelease/RemoveGrain-src-1.0.rar mirror]&lt;br /&gt;
&lt;br /&gt;
:* '''Download''': [2009-11-30]&lt;br /&gt;
:::*[http://home.arcor.de/kassandro/prerelease/RemoveGrain64.zip Statically Linked 32-bit and 64-bit Plugins. (Source code included)] | [http://web.archive.org/web/20131124174044/http://home.arcor.de/kassandro/prerelease/RemoveGrain64.zip mirror]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoveGrainT v1.0pre==&lt;br /&gt;
:Pre-release | '''Temporal'''&lt;br /&gt;
::* Temporal version of RemoveGrain v1.0pre&lt;br /&gt;
:::* This version requires [http://home.arcor.de/kassandro/AvsRecursion/AvsRecursion.htm AvsRecursion]&lt;br /&gt;
::* [http://videoprocessing.fr.yuku.com/sreply/593/Problem-with-Repair Orginal post by Kassandro.]&lt;br /&gt;
:::* [http://videoprocessing.fr.yuku.com/sreply/691/whats-removegrainT Explanation why RemoveGrain was split in two parts.]&lt;br /&gt;
::* Note: If you are looking for [http://videoprocessing.fr.yuku.com/sreply/691/whats-removegrainT RemoveGrainT], or get an error like [http://videoprocessing.fr.yuku.com/sreply/623/Error-There-is-no-function-named-quotclensequot &amp;quot;there in no function named clense&amp;quot;], then you need RemoveGrainT v1.0pre.&lt;br /&gt;
::*[http://videoprocessing.fr.yuku.com/reply/638/Can-use-quantile-like-vertical-median-filter#reply-638 Some information on Clense and the new parameters.]&lt;br /&gt;
:* '''Download''': [2007-05-16]&lt;br /&gt;
:::*[http://home.arcor.de/kassandro/prerelease/RemoveGrainT-1.0.rar v1.0pre Plugin] | [http://web.archive.org/web/20120820102907/http://home.arcor.de/kassandro/prerelease/RemoveGrainT-1.0.rar mirror]&lt;br /&gt;
:::*[http://home.arcor.de/kassandro/prerelease/RemoveGrain-src-1.0.rar v1.0pre Source Code] | [http://web.archive.org/web/20120820102915/http://home.arcor.de/kassandro/prerelease/RemoveGrain-src-1.0.rar mirror]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Spatial_Denoisers|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Soothe</id>
		<title>Soothe</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Soothe"/>
				<updated>2018-06-24T22:42:22Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Scripts|Temporal_denoisers}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|Didée&lt;br /&gt;
|1.0&lt;br /&gt;
|&lt;br /&gt;
|Unclassified filters&lt;br /&gt;
|&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=99679 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
[[Soothe]] lessens the temporal instability and aliasing caused by sharpening, by comparing the original and sharpened clip, leaving a smoother and slightly softer output. [[Soothe]] is a small postprocessor function for sharpening filters. The goal is temporal stabilization of clips that have been sharpened before. It is reasonably fast (contains 1 &amp;lt;tt&amp;gt;mt_lutxy&amp;lt;/tt&amp;gt; and 2 &amp;lt;tt&amp;gt;mt_makediff&amp;lt;/tt&amp;gt; operations and one [[TemporalSoften]] - that's about the cheapest possibility for what is done), and seems to work pretty well.&lt;br /&gt;
&lt;br /&gt;
The introduction of jitter on the temporal axis is a general problem of sharpening operations, since sharpening (usually) considers spatial aspects only. Therefore, Soothe() does a very simple job: get the difference between [source] and [sharpened source], apply a TemporalSoften on this difference BUT allow only changes towards 128 (&amp;quot;neutral&amp;quot;), and then apply this temporally calmed difference back to the original clip.&lt;br /&gt;
Effectively, this will reduce the overall effect of sharpening - less in static areas, and more in moving areas.&lt;br /&gt;
&lt;br /&gt;
'''Advantages:'''&lt;br /&gt;
* More steady appearance (less &amp;quot;nervous&amp;quot;)&lt;br /&gt;
* Less bitrate required&lt;br /&gt;
* Somewhat positive effect on detail that is, due to the sharpening, prone to aliasing&lt;br /&gt;
* Smoother motion compared to plain-sharpening, since motion-blurred edges will be less sharpened&lt;br /&gt;
* Less artifacts in moving areas&lt;br /&gt;
* LimitedSharpenFaster can run faster, since one can get away with less [[supersampling]]&lt;br /&gt;
&lt;br /&gt;
'''Disadvantages:'''&lt;br /&gt;
* Overall sharpening effect is reduced, but this can be compensated by a little more initial sharpening.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[YV12]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Required Plugins ====&lt;br /&gt;
Latest version of the following plugins are recommended unless stated otherwise.&amp;lt;br&amp;gt;&lt;br /&gt;
*[[MaskTools2]]&lt;br /&gt;
Additional [[planar]] colorspaces are supported when using AviSynth 2.6 and appropriate MaskTools2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
::{{Template:FuncDef|Soothe(clip sharp, clip orig, int &amp;quot;keep&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Sharpened clip.&lt;br /&gt;
&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Original clip.&lt;br /&gt;
&lt;br /&gt;
::{{Par2|keep|int|24}}&lt;br /&gt;
:::Minimum percent of the original sharpening to keep; range: 0-100.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
We use [[LimitedSharpen|LimitedSharpenFaster]]() as sharpener, and we'll keep at least 20% of its result:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AviSource(&amp;quot;blah.avi&amp;quot;)&lt;br /&gt;
dull   = last&lt;br /&gt;
sharp  = dull.LimitedSharpenFaster(ss_x=1.25, ss_y=1.25, strength=150, overshoot=1)&lt;br /&gt;
&lt;br /&gt;
Soothe(sharp, dull, keep=20)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Soothe.avsi ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function Soothe(clip sharp, clip orig, int &amp;quot;keep&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
Assert(sharp.width == orig.width &amp;amp;&amp;amp; sharp.height == orig.height,&lt;br /&gt;
 \  &amp;quot;Soothe: clip dimensions must match!&amp;quot;)&lt;br /&gt;
keep  = default(keep, 24)&lt;br /&gt;
keep  = (keep&amp;gt;100) ? 100 : (keep&amp;lt;0) ? 0 : keep&lt;br /&gt;
KP    = string(keep)&lt;br /&gt;
diff  = mt_makediff(orig,sharp)&lt;br /&gt;
diff2 = diff.temporalsoften(1,255,0,32,2)&lt;br /&gt;
diff3 = mt_lutxy(diff,diff2,  &amp;quot;x 128 - y 128 - * 0 &amp;lt; x 128 - 100 / &amp;quot;  + KP &lt;br /&gt;
 \                           + &amp;quot; * 128 + x 128 - abs y 128 - abs &amp;gt; x &amp;quot; + KP &lt;br /&gt;
 \                           + &amp;quot; * y 100 &amp;quot; + KP + &amp;quot; - * + 100 / x ? ?&amp;quot;)&lt;br /&gt;
return( mt_makediff(orig,diff3,chroma=&amp;quot;copy first&amp;quot;) )&lt;br /&gt;
}&lt;br /&gt;
# 14th July 2007, http://forum.doom9.org/showthread.php?p=1024318&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=99679 Doom9 Forum] - Soothe discussion.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/FixChromaticAberration</id>
		<title>FixChromaticAberration</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/FixChromaticAberration"/>
				<updated>2018-06-24T22:39:50Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Chroma correction}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|martin53 at doom9&lt;br /&gt;
|04/09/2007&lt;br /&gt;
|3=[[Media:FixChromaticAberration.avsi|FixChromaticAberration.avsi]]&lt;br /&gt;
|4=Chroma Correction&lt;br /&gt;
|5=&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=162286 Doom9 Thread]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
A script to reduce [http://en.wikipedia.org/wiki/Chromatic_aberration chromatic aberration]. This function stretches the red, green and/or blue channel according to a given factor symmetrically around the center of the frame and crops it afterwards. Note that chromatic aberration also smears the image a bit, which is not compensated by this function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/ greater]&lt;br /&gt;
* Supported color formats: [[RGB32]], [[RGB24]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|FixChromaticAberration (clip clip, val &amp;quot;red&amp;quot;, val &amp;quot;green&amp;quot;, val &amp;quot;blue&amp;quot;, val &amp;quot;x&amp;quot;, val &amp;quot;y&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|red|val|1}}&lt;br /&gt;
::{{Par2|green|val|1}}&lt;br /&gt;
::{{Par2|blue|val|1}}&lt;br /&gt;
:::{{Template:FuncDef3|red}}, {{Template:FuncDef3|green}} and {{Template:FuncDef3|blue}} are stretching (resizing) factors against the original clip size. Factors of e.g. &amp;lt;code&amp;gt;{{Template:FuncDef3|red}}=1.015&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{{Template:FuncDef3|green}}=1.01&amp;lt;/code&amp;gt; allow to compensate the colored edges near the corners of the image which appear from lenses with 'chromatic aberration'.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|x|val| }}&lt;br /&gt;
::{{Par2|y|val| }}&lt;br /&gt;
:::{{Template:FuncDef3|x}} and {{Template:FuncDef3|y}} allow to set the center of the aberration circle. It defaults to the center of the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
FixChromaticAberration with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 FixChromaticAberration(red=1, green=1, blue=1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version      Date(D/M/Y)      Changes&amp;lt;br&amp;gt;&lt;br /&gt;
              04/09/2007       - Initial release&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Chroma_correction|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/VirtualDub</id>
		<title>VirtualDub</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/VirtualDub"/>
				<updated>2018-06-24T22:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: Updated to current times&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The original open source video capturing and processing tool written by Avery Lee without which AviSynth would probably not exist.&lt;br /&gt;
&lt;br /&gt;
http://www.virtualdub.org&lt;br /&gt;
&lt;br /&gt;
You should also try the community modification called [https://sourceforge.net/projects/vdfiltermod/ VirtualDub2]. It contains many useful new features, and also a built in script editor for AviSynth.&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/SPresso</id>
		<title>SPresso</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/SPresso"/>
				<updated>2018-06-24T22:35:41Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: Organization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Denoisers|Spatial_denoisers}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
| 2006/09/04&lt;br /&gt;
|3=[http://forum.doom9.org/showpost.php?p=867316&amp;amp;postcount=23  SPresso script]&lt;br /&gt;
|4=Spatial-Temporal Denoisers&lt;br /&gt;
|5=&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?p=867316#post867316 Doom9 Thread]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
SPresso (&amp;lt;u&amp;gt;'''S'''&amp;lt;/u&amp;gt;patial &amp;lt;u&amp;gt;'''Press'''&amp;lt;/u&amp;gt;d&amp;lt;u&amp;gt;'''o'''&amp;lt;/u&amp;gt;wn) is a purely spatial script designed to achieve better compressibility without doing too much harm to the original detail.&amp;lt;br&amp;gt;&lt;br /&gt;
SPresso was not designed for 1080p processing/encoding; due to its 3x3 kernel it works better on standard definition (SD) content like DVDs and possibly on 720p.&amp;lt;br&amp;gt;&lt;br /&gt;
On noisy DVD/SD sources, compression gain usually  is from 2% to 3% (light settings -&amp;gt; changes almost invisible) up to 10 to 12% (stronger settings -&amp;gt; slight, gentle softening, not very obvious).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or later&lt;br /&gt;
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only &lt;br /&gt;
* Supported color formats: [[YV12]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Required Plugins ====&lt;br /&gt;
Latest versions of the following filters are recommended unless stated otherwise.&amp;lt;br&amp;gt;&lt;br /&gt;
*[[MaskTools2]]&lt;br /&gt;
*[[RgTools]] - Replacement of [[RemoveGrain v1.0b]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| SPresso (clip clp, int &amp;quot;limit&amp;quot;, int &amp;quot;bias&amp;quot;, int &amp;quot;RGmode&amp;quot;, int &amp;quot;limitC&amp;quot;, int &amp;quot;biasC&amp;quot;, int &amp;quot;RGmodeC&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|clp|clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|limit|int|2}}&lt;br /&gt;
:::Limit the maximum change for any given pixel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|bias|int|25}}&lt;br /&gt;
:::Something like &amp;quot;aggessivity&amp;quot;: '20' is a very light setting, '33' is already quite strong.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|RGmode|int|4}}&lt;br /&gt;
:::[[RemoveGrain_v1.0b/RemoveGrain/RemoveGrain|RemoveGrain]] mode for the luma (Y) channel. The default of &amp;quot;4&amp;quot; is the best in ''most'' cases.&lt;br /&gt;
:::Mode 19 and 20 might work better in other cases; if set to 0, luma will be copied from the input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|limitC|int|4}}&lt;br /&gt;
:::Same as {{Template:FuncDef|limit}} but for chroma.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|biasC|int|50}}&lt;br /&gt;
:::Same as {{Template:FuncDef|bias}} but for chroma.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|RGmodeC|int|0}}&lt;br /&gt;
:::[[RemoveGrain_v1.0b/RemoveGrain/RemoveGrain|RemoveGrain]] mode for the chroma channels (UV) channels; by default the chroma is simply copied from the input clip.&lt;br /&gt;
:::To process chroma, set {{Template:FuncDef|RGmodeC}}=4 (or 19, 20, or any other compatible mode).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
SPresso with all default values:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 SPresso(limit=2, bias=25, RGmode=4, limitC=4, tlimiC=50, RGmodeC=0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version         Date            Changes&amp;lt;br&amp;gt;&lt;br /&gt;
 2006/09/04      2006/09/04      - Corrected a BIG bug&amp;lt;br&amp;gt;&lt;br /&gt;
 2006/08/24      2006/08/24      - Added chroma processing&lt;br /&gt;
                                 - Now uses MaskTools2 by default.&amp;lt;br&amp;gt;&lt;br /&gt;
 2005/11/28      2005/11/28      - [http://forum.doom9.org/showpost.php?p=743559 Initial release]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?p=867316#post867316 Doom9 Forum] - SPresso discussion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Spatio-Temporal_Denoisers| External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Spinner</id>
		<title>Spinner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Spinner"/>
				<updated>2018-06-18T21:05:43Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=140019&amp;amp;highlight=Spinner Spinner plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Turn function rotates a frame or selected part of it about the specified fulcrum. [http://www.avisynth.nl/users/vcmohan/movePlus/Turn.html Full description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Turn (clip, clip &amp;quot;bg&amp;quot;, int &amp;quot;r&amp;quot;, float &amp;quot;angle&amp;quot;, float &amp;quot;x&amp;quot;, float &amp;quot;y&amp;quot;, int &amp;quot;q&amp;quot;, int &amp;quot;er&amp;quot;, float &amp;quot;eangle&amp;quot;, float &amp;quot;ex&amp;quot;, float &amp;quot;ey&amp;quot;, int &amp;quot;lx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ty&amp;quot;, int &amp;quot;by&amp;quot;, int &amp;quot;elx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ety&amp;quot;, int&amp;quot;eby&amp;quot;, int &amp;quot;p&amp;quot;, int &amp;quot;p&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|r|int|half of diagonal of frame}}&lt;br /&gt;
::: (Initial) radius of rotating disc&lt;br /&gt;
:::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|angle|float|45}}&lt;br /&gt;
::: (Initial) angle of rotation in degrees&lt;br /&gt;
:::* No limit. +ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|x|float|width/2}}&lt;br /&gt;
::: (Initial) x coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|y|float|height/2}}&lt;br /&gt;
::: (Initial) y coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|q|int|3 (Bicubic)}}&lt;br /&gt;
::: Interpolation type&lt;br /&gt;
:::* 1 = Nearest neighbor&lt;br /&gt;
:::* 2 = Bilinear&lt;br /&gt;
:::* 3 = Bicubic &lt;br /&gt;
:::* 4 = Lanczos 6x6 point&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|er|int|r}}&lt;br /&gt;
::: End radius of rotating disc&lt;br /&gt;
:::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eangle|float|angle}}&lt;br /&gt;
::: End angle of rotation in degrees&lt;br /&gt;
:::* No limit. -ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ex|float|x}}&lt;br /&gt;
::: End x coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ey|float|y}}&lt;br /&gt;
::: End y coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lx|int|0}}&lt;br /&gt;
::: (Initial) left x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|width - 1}}&lt;br /&gt;
::: (Initial) right x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ty|int|0}}&lt;br /&gt;
::: (Initial) top y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|by|int|height - 1}}&lt;br /&gt;
::: (Initial) bottom y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|elx|int|lx}}&lt;br /&gt;
::: End left x coordinate of rctangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|rx}}&lt;br /&gt;
::: End right x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ety|int|ty}}&lt;br /&gt;
::: End top y coordinate of rctangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eby|int|by}}&lt;br /&gt;
::: End bottom y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|50}}&lt;br /&gt;
::: Location percentile accuracy&lt;br /&gt;
:::* Should be 5 to 100&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|4}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
:::* 2 to 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
:::* true or false&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 im1 = imagereader(...).ConvertToRGB24()&lt;br /&gt;
 r1 = Turn(im1, q = 0, angle = 240, eangle = 4800, lx = 100, rx = 400, ty = 200, by = 250)&lt;br /&gt;
 r2 = Turn(im1, q = 2, angle = 240, x = 210.4, y = 188.6, r = 140)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Spinner</id>
		<title>Spinner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Spinner"/>
				<updated>2018-06-18T21:05:04Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=140019&amp;amp;highlight=Spinner Spinner plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Turn function rotates a frame or selected part of it about the specified fulcrum. [http://www.avisynth.nl/users/vcmohan/movePlus/Turn.html Full description]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Turn (clip, clip &amp;quot;bg&amp;quot;, int &amp;quot;r&amp;quot;, float &amp;quot;angle&amp;quot;, float &amp;quot;x&amp;quot;, float &amp;quot;y&amp;quot;, int &amp;quot;q&amp;quot;, int &amp;quot;er&amp;quot;, float &amp;quot;eangle&amp;quot;, float &amp;quot;ex&amp;quot;, float &amp;quot;ey&amp;quot;, int &amp;quot;lx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ty&amp;quot;, int &amp;quot;by&amp;quot;, int &amp;quot;elx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ety&amp;quot;, int&amp;quot;eby&amp;quot;, int &amp;quot;p&amp;quot;, int &amp;quot;p&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|r|int|half of diagonal of frame}}&lt;br /&gt;
::: (Initial) radius of rotating disc&lt;br /&gt;
:::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|angle|float|45}}&lt;br /&gt;
::: (Initial) angle of rotation in degrees&lt;br /&gt;
:::* No limit. +ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|x|float|width/2}}&lt;br /&gt;
::: (Initial) x coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|y|float|height/2}}&lt;br /&gt;
::: (Initial) y coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|q|int|3 (Bicubic)}}&lt;br /&gt;
::: Interpolation type&lt;br /&gt;
:::* 1 = Nearest neighbor&lt;br /&gt;
:::* 2 = Bilinear&lt;br /&gt;
:::* 3 = Bicubic &lt;br /&gt;
:::* 4 = Lanczos 6x6 point&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|er|int|r}}&lt;br /&gt;
::: End radius of rotating disc&lt;br /&gt;
:::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eangle|float|angle}}&lt;br /&gt;
::: End angle of rotation in degrees&lt;br /&gt;
:::* No limit. -ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ex|float|x}}&lt;br /&gt;
::: End x coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ey|float|y}}&lt;br /&gt;
::: End y coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lx|int|0}}&lt;br /&gt;
::: (Initial) left x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|width - 1}}&lt;br /&gt;
::: (Initial) right x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ty|int|0}}&lt;br /&gt;
::: (Initial) top y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|by|int|height - 1}}&lt;br /&gt;
::: (Initial) bottom y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|elx|int|lx}}&lt;br /&gt;
::: End left x coordinate of rctangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|rx}}&lt;br /&gt;
::: End right x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ety|int|ty}}&lt;br /&gt;
::: End top y coordinate of rctangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eby|int|by}}&lt;br /&gt;
::: End bottom y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|50}}&lt;br /&gt;
::: Location percentile accuracy&lt;br /&gt;
:::* Should be 5 to 100&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|4}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
:::* 2 to 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
:::* true or false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 im1 = imagereader(...).ConvertToRGB24()&lt;br /&gt;
 r1 = Turn(im1, q = 0, angle = 240, eangle = 4800, lx = 100, rx = 400, ty = 200, by = 250)&lt;br /&gt;
 r2 = Turn(im1, q = 2, angle = 240, x = 210.4, y = 188.6, r = 140)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Spinner</id>
		<title>Spinner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Spinner"/>
				<updated>2018-06-18T21:02:23Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=140019&amp;amp;highlight=Spinner Spinner plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Turn function rotates a frame or selected part of it about the specified fulcrum. [http://www.avisynth.nl/users/vcmohan/movePlus/Turn.html Full description]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Turn (clip, clip &amp;quot;bg&amp;quot;, int &amp;quot;r&amp;quot;, float &amp;quot;angle&amp;quot;, float &amp;quot;x&amp;quot;, float &amp;quot;y&amp;quot;, int &amp;quot;q&amp;quot;, int &amp;quot;er&amp;quot;, float &amp;quot;eangle&amp;quot;, float &amp;quot;ex&amp;quot;, float &amp;quot;ey&amp;quot;, int &amp;quot;lx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ty&amp;quot;, int &amp;quot;by&amp;quot;, int &amp;quot;elx&amp;quot;, int &amp;quot;rx&amp;quot;, int &amp;quot;ety&amp;quot;, int&amp;quot;eby&amp;quot;, int &amp;quot;p&amp;quot;, int &amp;quot;p&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|r|int|half of diagonal of frame}}&lt;br /&gt;
::: (Initial) radius of rotating disc&lt;br /&gt;
:::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|angle|float|45}}&lt;br /&gt;
::: (Initial) angle of rotation in degrees&lt;br /&gt;
:::* No limit. +ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|x|float|width/2}}&lt;br /&gt;
::: (Initial) x coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|y|float|height/2}}&lt;br /&gt;
::: (Initial) y coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|q|int|3 (Bicubic)}}&lt;br /&gt;
::: Interpolation type&lt;br /&gt;
:::* 1 = Nearest neighbor&lt;br /&gt;
:::* 2 = Bilinear&lt;br /&gt;
:::* 3 = Bicubic &lt;br /&gt;
:::* 4 = Lanczos 6x6 point&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|er|int|r}}&lt;br /&gt;
::: End radius of rotating disc&lt;br /&gt;
:::* More than 0 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eangle|float|angle}}&lt;br /&gt;
::: End angle of rotation in degrees&lt;br /&gt;
:::* No limit. -ve clockwise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ex|float|x}}&lt;br /&gt;
::: End x coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ey|float|y}}&lt;br /&gt;
::: End y coordinate of rotation axis&lt;br /&gt;
:::* At least part of disc should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lx|int|0}}&lt;br /&gt;
::: (Initial) left x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|width - 1}}&lt;br /&gt;
::: (Initial) right x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ty|int|0}}&lt;br /&gt;
::: (Initial) top y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|by|int|height - 1}}&lt;br /&gt;
::: (Initial) bottom y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|elx|int|lx}}&lt;br /&gt;
::: End left x coordinate of rctangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rx|int|rx}}&lt;br /&gt;
::: End right x coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ety|int|ty}}&lt;br /&gt;
::: End top y coordinate of rctangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|eby|int|by}}&lt;br /&gt;
::: End bottom y coordinate of rectangle to display&lt;br /&gt;
:::* Should be in frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|50}}&lt;br /&gt;
::: Location percentile accuracy&lt;br /&gt;
:::* Should be 5 to 100&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|p|int|4}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
:::* 2 to 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Location precision to be maintained&lt;br /&gt;
:::* true or false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 ## This is some example code to use spinner in a transition.&lt;br /&gt;
 imagereader(&amp;quot;C:\..........jpg&amp;quot;, end = 10)&lt;br /&gt;
 a = avisource(&amp;quot;C;\..........avi&amp;quot;).converttoYV16()&lt;br /&gt;
 converttoyv16()&lt;br /&gt;
 Spinner( angle = -30, eangle = 130, q=5, tclip = a)&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Spinner</id>
		<title>Spinner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Spinner"/>
				<updated>2018-06-18T20:21:37Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=140019&amp;amp;highlight=Spinner Spinner plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Turn function rotates a frame or selected part of it about the specified fulcrum. [http://www.avisynth.nl/users/vcmohan/movePlus/Turn.html Full description]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|&amp;lt;!-- function name --&amp;gt;Spinner(''clip'', ''&amp;lt;!-- par 1 type --&amp;gt;int'' &amp;quot;r&amp;quot;,''float'' &amp;quot;angle&amp;quot;, ''float'' &amp;quot;x&amp;quot;, ''float'' &amp;quot;y &amp;quot;,''float''&amp;quot;color&amp;quot;,''int'' &amp;quot;q&amp;quot;,''bool'' &amp;quot;bg&amp;quot;,''clip'' &amp;quot;tclip&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|r|half of diagnal of frame}}&lt;br /&gt;
:::radius of circle for rotation.      &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|angle|90}}&lt;br /&gt;
:::angle of rotation .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|x|frame width / 2}}&lt;br /&gt;
:::x coord of axis of rotation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|y|frame height/2}}&lt;br /&gt;
:::y coordinate of axis of rotation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|color|0}}&lt;br /&gt;
:::color to be used to fill voids.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|q|5}}&lt;br /&gt;
:::Type of interpolation to be used. 0 to 5 .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|bool|bg|true}}&lt;br /&gt;
:::Whether un rotated input clip to be used as background(true) or color (false) .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|clip|tclip|none}}&lt;br /&gt;
:::If a separate clip is specified it will be used as bg as in a transition.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 ## This is some example code to use spinner in a transition.&lt;br /&gt;
 imagereader(&amp;quot;C:\..........jpg&amp;quot;, end = 10)&lt;br /&gt;
 a = avisource(&amp;quot;C;\..........avi&amp;quot;).converttoYV16()&lt;br /&gt;
 converttoyv16()&lt;br /&gt;
 Spinner( angle = -30, eangle = 130, q=5, tclip = a)&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Spinner</id>
		<title>Spinner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Spinner"/>
				<updated>2018-06-18T20:21:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=140019&amp;amp;highlight=Spinner Spinner plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Turn function rotates a frame or selected part of it about the specified fulcrum. [http://www.avisynth.nl/users/vcmohan/movePlus/Turn.html Full description]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* &amp;lt;!-- Avisynth version --&amp;gt;AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/files/AviSynth_Alpha_Releases/ 2.6.0 Alpha 5 or greater]&lt;br /&gt;
* &amp;lt;!-- source video: progressive &lt;br /&gt;
* &amp;lt;!-- color formats --&amp;gt;Supported color formats: [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[YV16]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[YV24]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[YV411]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[Y8]]&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt; Not available in AviSynth 2.5.8.&lt;br /&gt;
* &amp;lt;!-- CPU/GPU --&amp;gt;&lt;br /&gt;
* &amp;lt;!-- binaries --&amp;gt;&lt;br /&gt;
* &amp;lt;!-- dependent plugins --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
 &amp;quot;c[r]i[angle]f[x]f[y]f[color]i[q]i[bg]b[er]i[eangle]f[ex]f[ey]f[lx]i[rx]i[ty]i[by]i[elx]i[erx]i[ety]i[eby]i[p]i[check]b[tclip]c&amp;quot;&lt;br /&gt;
								&lt;br /&gt;
								&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|&amp;lt;!-- function name --&amp;gt;Spinner(''clip'', ''&amp;lt;!-- par 1 type --&amp;gt;int'' &amp;quot;r&amp;quot;,''float'' &amp;quot;angle&amp;quot;, ''float'' &amp;quot;x&amp;quot;, ''float'' &amp;quot;y &amp;quot;,''float''&amp;quot;color&amp;quot;,''int'' &amp;quot;q&amp;quot;,''bool'' &amp;quot;bg&amp;quot;,''clip'' &amp;quot;tclip&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|r|half of diagnal of frame}}&lt;br /&gt;
:::radius of circle for rotation.      &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|angle|90}}&lt;br /&gt;
:::angle of rotation .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|x|frame width / 2}}&lt;br /&gt;
:::x coord of axis of rotation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|y|frame height/2}}&lt;br /&gt;
:::y coordinate of axis of rotation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|color|0}}&lt;br /&gt;
:::color to be used to fill voids.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|q|5}}&lt;br /&gt;
:::Type of interpolation to be used. 0 to 5 .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|bool|bg|true}}&lt;br /&gt;
:::Whether un rotated input clip to be used as background(true) or color (false) .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|clip|tclip|none}}&lt;br /&gt;
:::If a separate clip is specified it will be used as bg as in a transition.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 ## This is some example code to use spinner in a transition.&lt;br /&gt;
 imagereader(&amp;quot;C:\..........jpg&amp;quot;, end = 10)&lt;br /&gt;
 a = avisource(&amp;quot;C;\..........avi&amp;quot;).converttoYV16()&lt;br /&gt;
 converttoyv16()&lt;br /&gt;
 Spinner( angle = -30, eangle = 130, q=5, tclip = a)&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Spinner</id>
		<title>Spinner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Spinner"/>
				<updated>2018-06-18T20:20:11Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?t=140019&amp;amp;highlight=Spinner Spinner plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Image is rotated by  given angle  and a full description is at  [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.html click me].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* &amp;lt;!-- Avisynth version --&amp;gt;AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/files/AviSynth_Alpha_Releases/ 2.6.0 Alpha 5 or greater]&lt;br /&gt;
* &amp;lt;!-- source video: progressive &lt;br /&gt;
* &amp;lt;!-- color formats --&amp;gt;Supported color formats: [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[YV16]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[YV24]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[YV411]], &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;[[Y8]]&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt; Not available in AviSynth 2.5.8.&lt;br /&gt;
* &amp;lt;!-- CPU/GPU --&amp;gt;&lt;br /&gt;
* &amp;lt;!-- binaries --&amp;gt;&lt;br /&gt;
* &amp;lt;!-- dependent plugins --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
 &amp;quot;c[r]i[angle]f[x]f[y]f[color]i[q]i[bg]b[er]i[eangle]f[ex]f[ey]f[lx]i[rx]i[ty]i[by]i[elx]i[erx]i[ety]i[eby]i[p]i[check]b[tclip]c&amp;quot;&lt;br /&gt;
								&lt;br /&gt;
								&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|&amp;lt;!-- function name --&amp;gt;Spinner(''clip'', ''&amp;lt;!-- par 1 type --&amp;gt;int'' &amp;quot;r&amp;quot;,''float'' &amp;quot;angle&amp;quot;, ''float'' &amp;quot;x&amp;quot;, ''float'' &amp;quot;y &amp;quot;,''float''&amp;quot;color&amp;quot;,''int'' &amp;quot;q&amp;quot;,''bool'' &amp;quot;bg&amp;quot;,''clip'' &amp;quot;tclip&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|r|half of diagnal of frame}}&lt;br /&gt;
:::radius of circle for rotation.      &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|angle|90}}&lt;br /&gt;
:::angle of rotation .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|x|frame width / 2}}&lt;br /&gt;
:::x coord of axis of rotation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|float|y|frame height/2}}&lt;br /&gt;
:::y coordinate of axis of rotation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|color|0}}&lt;br /&gt;
:::color to be used to fill voids.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|int|q|5}}&lt;br /&gt;
:::Type of interpolation to be used. 0 to 5 .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|bool|bg|true}}&lt;br /&gt;
:::Whether un rotated input clip to be used as background(true) or color (false) .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|clip|tclip|none}}&lt;br /&gt;
:::If a separate clip is specified it will be used as bg as in a transition.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 ## This is some example code to use spinner in a transition.&lt;br /&gt;
 imagereader(&amp;quot;C:\..........jpg&amp;quot;, end = 10)&lt;br /&gt;
 a = avisource(&amp;quot;C;\..........avi&amp;quot;).converttoYV16()&lt;br /&gt;
 converttoyv16()&lt;br /&gt;
 Spinner( angle = -30, eangle = 130, q=5, tclip = a)&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/DeSaltPepper</id>
		<title>DeSaltPepper</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DeSaltPepper"/>
				<updated>2018-06-18T20:12:59Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 17 Oct 2017&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/modPlus/modPlus.7z modPlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt; [https://forum.doom9.org/showthread.php?p=895926#post895926 Announced DeSaltPepper plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The function SaltPepper uses morphology technique to identify such noise and replace those pixels by average or minimum or maximum whichever is appropriate of the surrounding pixels. [http://www.avisynth.nl/users/vcmohan/modPlus/SaltPepper.html Full Description].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| SaltPepper(clip, string &amp;quot;opt&amp;quot;, bool &amp;quot;uv&amp;quot;, bool &amp;quot;avg&amp;quot;, int &amp;quot;feedback&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Input clip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|opt|string|&amp;quot;both&amp;quot;}}&lt;br /&gt;
::: Process option&lt;br /&gt;
:::* &amp;quot;salt&amp;quot;&lt;br /&gt;
:::* &amp;quot;pepper&amp;quot;&lt;br /&gt;
:::* &amp;quot;both&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|uv|bool|true}}&lt;br /&gt;
::: UV processing required?&lt;br /&gt;
:::* true for u, v process&lt;br /&gt;
:::* false for not processing u, v&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|avg|bool|true}}&lt;br /&gt;
::: Is average is replacement value?&lt;br /&gt;
:::* true for average&lt;br /&gt;
:::* false for max value of neighborhood for salt and minimum value for pepper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|feedback|int|0}}&lt;br /&gt;
::: Number of feed back loops in processing to be used. applicable only if avg is true.&lt;br /&gt;
:::* 0 to 10&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 SaltPepper(img, opt = &amp;quot;both&amp;quot;,UV = true, tol = 0, avg = true, feedback = 3 ) &lt;br /&gt;
&lt;br /&gt;
 ds = SaltPepper(img, opt = &amp;quot;both&amp;quot;,UV = true)&lt;br /&gt;
 ds1 = SaltPepper(img, opt = &amp;quot;salt&amp;quot;,UV = false, avg = false)&lt;br /&gt;
 ds2 = SaltPepper(ds1, opt = &amp;quot;pepper&amp;quot;,UV = true)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Reformer</id>
		<title>Reformer</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Reformer"/>
				<updated>2018-06-18T20:10:09Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?t=166716&amp;amp;highlight=Reformer Reformer plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Reform uses matrix algebra for transformations. Reform has two modes viz: rectangle to quadrilateral and quadrilateral to rectangle. Lanczos or cubic or linear or nearest point interpolation methods can be opted. [http://www.avisynth.nl/users/vcmohan/movePlus/Reform.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Reform (clip, clip, string &amp;quot;resize&amp;quot;, float &amp;quot;ltopx&amp;quot;, float &amp;quot;ltopy&amp;quot;, float &amp;quot;lbotx&amp;quot;, float &amp;quot;lboty&amp;quot;, float &amp;quot;rtopx&amp;quot;, float &amp;quot;rtopy&amp;quot;, float &amp;quot;rbotx&amp;quot;, float &amp;quot;rboty&amp;quot;, float &amp;quot;leftx&amp;quot;, float &amp;quot;rightx&amp;quot;, float &amp;quot;ytop&amp;quot;, float &amp;quot;ybot&amp;quot;, bool &amp;quot;qr&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be skewed into quadrilateral or deskewed into rectangle&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|resize|string|&amp;quot;cubic&amp;quot;}}&lt;br /&gt;
::: Radius of grid to use&lt;br /&gt;
:::* &amp;quot;lanczos&amp;quot;&lt;br /&gt;
:::* &amp;quot;cubic&amp;quot;&lt;br /&gt;
:::* &amp;quot;line&amp;quot;&lt;br /&gt;
:::* &amp;quot;point&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopx|float|0}}&lt;br /&gt;
::: Q left top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopy|float|0}}&lt;br /&gt;
::: Q left top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lbotx|float|0}}&lt;br /&gt;
::: Q left bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lboty|float|frame height - 1}}&lt;br /&gt;
::: Q left bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopx|float|frame width - 1}}&lt;br /&gt;
::: Q right top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopy|float|0}}&lt;br /&gt;
::: Q right top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rbotx|float|frame width - 1}}&lt;br /&gt;
::: Q right bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rboty|float|frame height - 1}}&lt;br /&gt;
::: Q right bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|leftx|float|0}}&lt;br /&gt;
::: R left x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rightx|float|frame width - 1}}&lt;br /&gt;
::: R right x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ytop|float|0}}&lt;br /&gt;
::: R top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ybot|float|frame height - 1}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|qr|bool|true}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
:::* true = q to r&lt;br /&gt;
:::* false = r to q&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Whether normalised coordinates are specified?&lt;br /&gt;
:::* true = normalized&lt;br /&gt;
:::* false = real&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
Script example:&lt;br /&gt;
 ColorBars().ConvertToRGB32()&lt;br /&gt;
 bg = blankclip(last)&lt;br /&gt;
 Reform(bg, resize= &amp;quot;lanczos&amp;quot;,leftx = 100,rightx = 400, ytop = 200, ybot = 480,ltopx=200,ltopy=150, rbotx = 500, rboty = 400)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Reformer</id>
		<title>Reformer</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Reformer"/>
				<updated>2018-06-18T20:09:42Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?t=166716&amp;amp;highlight=Reformer Reformer plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Reform uses matrix algebra for transformations. Reform has two modes viz: rectangle to quadrilateral and quadrilateral to rectangle. Lanczos or cubic or linear or nearest point interpolation methods can be opted. [http://www.avisynth.nl/users/vcmohan/movePlus/Reform.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Reform (clip, clip, string &amp;quot;resize&amp;quot;, float &amp;quot;ltopx&amp;quot;, float &amp;quot;ltopy&amp;quot;, float &amp;quot;lbotx&amp;quot;, float &amp;quot;lboty&amp;quot;, float &amp;quot;rtopx&amp;quot;, float &amp;quot;rtopy&amp;quot;, float &amp;quot;rbotx&amp;quot;, float &amp;quot;rboty&amp;quot;, float &amp;quot;leftx&amp;quot;, float &amp;quot;rightx&amp;quot;, float &amp;quot;ytop&amp;quot;, float &amp;quot;ybot&amp;quot;, bool &amp;quot;qr&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be skewed into quadrilateral or deskewed into rectangle&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|resize|string|&amp;quot;cubic&amp;quot;}}&lt;br /&gt;
::: Radius of grid to use&lt;br /&gt;
:::* &amp;quot;lanczos&amp;quot;&lt;br /&gt;
:::* &amp;quot;cubic&amp;quot;&lt;br /&gt;
:::* &amp;quot;line&amp;quot;&lt;br /&gt;
:::* &amp;quot;point&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopx|float|0}}&lt;br /&gt;
::: Q left top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopy|float|0}}&lt;br /&gt;
::: Q left top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lbotx|float|0}}&lt;br /&gt;
::: Q left bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lboty|float|frame height - 1}}&lt;br /&gt;
::: Q left bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopx|float|frame width - 1}}&lt;br /&gt;
::: Q right top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopy|float|0}}&lt;br /&gt;
::: Q right top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rbotx|float|frame width - 1}}&lt;br /&gt;
::: Q right bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rboty|float|frame height - 1}}&lt;br /&gt;
::: Q right bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|leftx|float|0}}&lt;br /&gt;
::: R left x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rightx|float|frame width - 1}}&lt;br /&gt;
::: R right x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ytop|float|0}}&lt;br /&gt;
::: R top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ybot|float|frame height - 1}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|qr|bool|true}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
:::* true = q to r&lt;br /&gt;
:::* false = r to q&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Whether normalised coordinates are specified?&lt;br /&gt;
:::* true = normalized&lt;br /&gt;
:::* false = real&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
Script example:&lt;br /&gt;
 ColorBars().ConvertToRGB32()&lt;br /&gt;
 bg = blankclip(last)&lt;br /&gt;
 Reform(bg, resize= &amp;quot;lanczos&amp;quot;,leftx = 100,rightx = 400, ytop = 200, ybot = 480,ltopx=200,ltopy=150, rbotx = 500, rboty = 400)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Reformer</id>
		<title>Reformer</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Reformer"/>
				<updated>2018-06-18T20:07:10Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Syntax and Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?t=166716&amp;amp;highlight=Reformer Reformer plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Reform uses matrix algebra for transformations. Reform has two modes viz: rectangle to quadrilateral and quadrilateral to rectangle. Lanczos or cubic or linear or nearest point interpolation methods can be opted. [http://www.avisynth.nl/users/vcmohan/movePlus/Reform.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef| Reform (clip, clip, string &amp;quot;resize&amp;quot;, float &amp;quot;ltopx&amp;quot;, float &amp;quot;ltopy&amp;quot;, float &amp;quot;lbotx&amp;quot;, float &amp;quot;lboty&amp;quot;, float &amp;quot;rtopx&amp;quot;, float &amp;quot;rtopy&amp;quot;, float &amp;quot;rbotx&amp;quot;, float &amp;quot;rboty&amp;quot;, float &amp;quot;leftx&amp;quot;, float &amp;quot;rightx&amp;quot;, float &amp;quot;ytop&amp;quot;, float &amp;quot;ybot&amp;quot;, bool &amp;quot;qr&amp;quot;, bool &amp;quot;norm&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be skewed into quadrilateral or deskewed into rectangle&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
::: Clip to be used as background&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|resize|string|&amp;quot;cubic&amp;quot;}}&lt;br /&gt;
::: Radius of grid to use&lt;br /&gt;
:::* &amp;quot;lanczos&amp;quot;&lt;br /&gt;
:::* &amp;quot;cubic&amp;quot;&lt;br /&gt;
:::* &amp;quot;line&amp;quot;&lt;br /&gt;
:::* &amp;quot;point&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopx|float|0}}&lt;br /&gt;
::: Q left top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ltopy|float|0}}&lt;br /&gt;
::: Q left top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lbotx|float|0}}&lt;br /&gt;
::: Q left bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|lboty|float|frame height - 1}}&lt;br /&gt;
::: Q left bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopx|float|frame width - 1}}&lt;br /&gt;
::: Q right top x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rtopy|float|0}}&lt;br /&gt;
::: Q right top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rbotx|float|frame width - 1}}&lt;br /&gt;
::: Q right bottom x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rboty|float|frame height - 1}}&lt;br /&gt;
::: Q right bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|leftx|float|0}}&lt;br /&gt;
::: R left x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rightx|float|frame width - 1}}&lt;br /&gt;
::: R right x coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ytop|float|0}}&lt;br /&gt;
::: R top y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|ybot|float|frame height - 1}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|qr|bool|true}}&lt;br /&gt;
::: R bottom y coordinate&lt;br /&gt;
:::* true = q to r&lt;br /&gt;
:::* false = r to q&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|norm|bool|false}}&lt;br /&gt;
::: Whether normalised coordinates are specified?&lt;br /&gt;
:::* true = normalized&lt;br /&gt;
:::* false = real&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 ## This is some example code to blur  an image.&lt;br /&gt;
 imagereader(&amp;quot;C:\..........jpg&amp;quot;, end = 10)&lt;br /&gt;
 a = avisource(&amp;quot;C;\..........avi&amp;quot;).converttoYUY2()&lt;br /&gt;
 converttoyv16()&lt;br /&gt;
 # Rectangle to quadrilateral&lt;br /&gt;
 r2q(last,last,leftx = 100,rightx = 400, ytop = 200, ybot = 480,ltopx=200,ltopy=150, rbotx = 500, rboty = 400, resize= &amp;quot;lanczos&amp;quot;)&lt;br /&gt;
 # quad to rectangle excercise&lt;br /&gt;
 c= last&lt;br /&gt;
&lt;br /&gt;
#	bg = blankclip(last,color = 0)&lt;br /&gt;
 ScriptClip(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	h = height(bg)-1&lt;br /&gt;
	w = width(bg)-1	&lt;br /&gt;
    t = 0.061 *(current_frame)&lt;br /&gt;
    t2 = 0.127 *( current_frame)&lt;br /&gt;
    a = 0.501 + 0.5 * sin(t/pi)&lt;br /&gt;
    t1x = (-0.2*cos(t2)) * w&lt;br /&gt;
    t1y = (0.5-0.5*cos(t2)) * h&lt;br /&gt;
    t2x = (1.0+0.2*cos(t2)) * w&lt;br /&gt;
    t2y = (0.5-0.5*cos(t2)) * h&lt;br /&gt;
    t3x = (1.0+0.2*cos(t2)) * w&lt;br /&gt;
    t3y = (0.5+0.5*cos(t2)) * h&lt;br /&gt;
    t4x = (-0.2*cos(t2)) * w&lt;br /&gt;
    t4y = (0.5+0.5*cos(t2)) * h&lt;br /&gt;
    c1x = (0.5+a*cos(t)) * w&lt;br /&gt;
    c1y = (0.5+a*sin(t)) * h&lt;br /&gt;
    c2x = (0.5-a*sin(t)) * w&lt;br /&gt;
    c2y = (0.5+a*cos(t)) * h&lt;br /&gt;
    c3x = (0.5-a*cos(t)) * w&lt;br /&gt;
    c3y = (0.5-a*sin(t)) * h&lt;br /&gt;
    c4x = (0.5+a*sin(t)) * w&lt;br /&gt;
    c4y = (0.5-a*cos(t)) * h&lt;br /&gt;
	&lt;br /&gt;
#	r2q(c, c,leftx=t1x,rightx=t2x,ytop=t1y,ybot=t3y,ltopx=c1x,ltopy=c1y, rtopx=c2x,rtopy=c2y,  rbotx=c3x,rboty=c3y,lbotx=c4x,lboty=c4y, resize = &amp;quot;line&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	q2r( bg,leftx=t1x,rightx=t2x,ytop=t1y,ybot=t3y,ltopx=c1x,ltopy=c1y, rtopx=c2x,rtopy=c2y,  rbotx=c3x,rboty=c3y,lbotx=c4x,lboty=c4y, resize = &amp;quot;point&amp;quot; )&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Reformer</id>
		<title>Reformer</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Reformer"/>
				<updated>2018-06-18T19:54:52Z</updated>
		
		<summary type="html">&lt;p&gt;Yakub2.X: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FilterCat4|External_filters|Plugins|&amp;lt;!-- category --&amp;gt;TODO|&amp;lt;!-- category --&amp;gt;TODO}}&lt;br /&gt;
&lt;br /&gt;
{{Filter3&lt;br /&gt;
|1=&amp;lt;!-- author --&amp;gt; [http://www.avisynth.nl/users/vcmohan/ V.C.Mohan]&lt;br /&gt;
|2=&amp;lt;!-- version --&amp;gt; 9 Apr 2018&lt;br /&gt;
|3=&amp;lt;!-- URL --&amp;gt; [http://www.avisynth.nl/users/vcmohan/movePlus/movePlus.7z movePlus.7z]&lt;br /&gt;
|4=&amp;lt;!-- category --&amp;gt; External filters&lt;br /&gt;
|5=&amp;lt;!-- license --&amp;gt; [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=&amp;lt;!-- discussion URL --&amp;gt;[https://forum.doom9.org/showthread.php?t=166716&amp;amp;highlight=Reformer Reformer plugin]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&amp;lt;!-- a one-sentence description --&amp;gt;&lt;br /&gt;
Reform uses matrix algebra for transformations. Reform has two modes viz: rectangle to quadrilateral and quadrilateral to rectangle. Lanczos or cubic or linear or nearest point interpolation methods can be opted. [http://www.avisynth.nl/users/vcmohan/movePlus/Reform.html Full Description]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ r2347 or later&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|&amp;lt;!-- function name --&amp;gt;q2r or r2q(''clip'', ''&amp;lt;!-- par 1 type --&amp;gt;clip'' &amp;quot;&amp;lt;!-- par 1 name --&amp;gt;&amp;quot;, ''&amp;lt;!-- par 2 type --&amp;gt;string'' &amp;quot;&amp;lt;!-- par 2 name --&amp;gt;resize&amp;quot;, ''&amp;lt;!-- par 3 type --&amp;gt;float'' &amp;quot;&amp;lt;!-- par 3 name --&amp;gt;ltopx &amp;quot;,''&amp;lt;!-- par 4 type --&amp;gt;float'' &amp;lt;!-- par 4 name --&amp;gt;ltopy&amp;quot;,''&amp;lt;!-- par 5 type --&amp;gt;float'' &amp;lt;!-- par 5 name --&amp;gt;lbotx&amp;quot;,''&amp;lt;!-- par 6 type --&amp;gt;float'' &amp;lt;!-- par 6 name --&amp;gt;lboty&amp;quot;,''&amp;lt;!-- par 7 type --&amp;gt;float'' &amp;lt;!-- par 7 name --&amp;gt;rtopx&amp;quot;,''&amp;lt;!-- par 8 type --&amp;gt;float'' &amp;lt;!-- par 8 name --&amp;gt;rtopy&amp;quot;,''&amp;lt;!-- par 9 type --&amp;gt;float'' &amp;lt;!-- par 9 name --&amp;gt;rbotx&amp;quot;''&amp;lt;!-- par 10 type --&amp;gt;float'' &amp;lt;!-- par 10 name --&amp;gt;rboty&amp;quot;,''&amp;lt;!-- par 11 type --&amp;gt;float'' &amp;lt;!-- par 11 name --&amp;gt;leftx&amp;quot;,''&amp;lt;!-- par 12 type --&amp;gt;float'' &amp;lt;!-- par 12 name --&amp;gt;rightx&amp;quot;,''&amp;lt;!-- par 13 type --&amp;gt;float'' &amp;lt;!-- par 13 name --&amp;gt;ytop&amp;quot;,''&amp;lt;!-- par 14 type --&amp;gt;float'' &amp;lt;!-- par 14 name --&amp;gt;ybot&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::background clip.      &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 2 type --&amp;gt;string|&amp;lt;!-- par 2 name --&amp;gt;resize|&amp;lt;!-- par 1 default value --&amp;gt;&amp;quot;lanczos&amp;quot;}}&lt;br /&gt;
:::&amp;lt;!-- par 1 description --&amp;gt;type of interpolation to be used for resizing. lanczos, bicubic, bilinear, nearest point .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 3 type --&amp;gt;float|&amp;lt;!-- par 3 name --&amp;gt;ltopx|&amp;lt;!-- par 3 default value --&amp;gt;0}}&lt;br /&gt;
:::&amp;lt;!-- par 3 description --&amp;gt;quadrilateral left top x.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 4 type --&amp;gt;float|&amp;lt;!-- par 4 name --&amp;gt;ltopy|&amp;lt;!-- par 4 default value --&amp;gt;0}}&lt;br /&gt;
:::&amp;lt;!-- par 4 description --&amp;gt;quadrilateral left top y .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 5 type --&amp;gt;float|&amp;lt;!-- par 5 name --&amp;gt;lbotx|&amp;lt;!-- par 5 default value --&amp;gt;0}}&lt;br /&gt;
:::&amp;lt;!-- par 5 description --&amp;gt;quadrilateral left bottom x  .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 6 type --&amp;gt;float|&amp;lt;!-- par 6 name --&amp;gt;lboty|&amp;lt;!-- par 6 default value --&amp;gt;height - 1}}&lt;br /&gt;
:::&amp;lt;!-- par 6 description --&amp;gt;quadrilateral left bottom y  .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 7 type --&amp;gt;float|&amp;lt;!-- par 7 name --&amp;gt;rtopx|&amp;lt;!-- par 7 default value --&amp;gt;frame width -1}}&lt;br /&gt;
:::&amp;lt;!-- par 7 description --&amp;gt;quadrilateral right top x .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 8 type --&amp;gt;float|&amp;lt;!-- par 8 name --&amp;gt;rtopy|&amp;lt;!-- par 8 default value --&amp;gt;0}}&lt;br /&gt;
:::&amp;lt;!-- par 8 description --&amp;gt;quadrilateral right top y .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 9 type --&amp;gt;float|&amp;lt;!-- par 9 name --&amp;gt;rbotx|&amp;lt;!-- par 9 default value --&amp;gt;width- 1}}&lt;br /&gt;
:::&amp;lt;!-- par 9 description --&amp;gt;quadrilateral right bottom x .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 10 type --&amp;gt;float|&amp;lt;!-- par 10 name --&amp;gt;rboty|&amp;lt;!-- par 10 default value --&amp;gt;height- 1}}&lt;br /&gt;
:::&amp;lt;!-- par 10 description --&amp;gt;quadrilateral right bottom y .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 11 type --&amp;gt;float|&amp;lt;!-- par 11 name --&amp;gt;leftx|&amp;lt;!-- par 11 default value --&amp;gt;0}}&lt;br /&gt;
:::&amp;lt;!-- par 11 description --&amp;gt;Rectangle left x&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 12 type --&amp;gt;float|&amp;lt;!-- par 12 name --&amp;gt;rightx|&amp;lt;!-- par 12 default value --&amp;gt;width - 1}}&lt;br /&gt;
:::&amp;lt;!-- par 12 description --&amp;gt;Rectangle right x&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 13 type --&amp;gt;float|&amp;lt;!-- par 13 name --&amp;gt;ytop|&amp;lt;!-- par 13 default value --&amp;gt;0}}&lt;br /&gt;
:::&amp;lt;!-- par 13 description --&amp;gt;Rectangle top y&lt;br /&gt;
::{{Par2|&amp;lt;!-- par 14 type --&amp;gt;float|&amp;lt;!-- par 14 name --&amp;gt;rbotx|&amp;lt;!-- par 14 default value --&amp;gt;width- 1}}&lt;br /&gt;
:::&amp;lt;!-- par 14 description --&amp;gt;Rectangle bottom y .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;!-- example code block: 1st char in each line = space --&amp;gt;&lt;br /&gt;
 ## This is some example code to blur  an image.&lt;br /&gt;
 imagereader(&amp;quot;C:\..........jpg&amp;quot;, end = 10)&lt;br /&gt;
 a = avisource(&amp;quot;C;\..........avi&amp;quot;).converttoYUY2()&lt;br /&gt;
 converttoyv16()&lt;br /&gt;
 # Rectangle to quadrilateral&lt;br /&gt;
 r2q(last,last,leftx = 100,rightx = 400, ytop = 200, ybot = 480,ltopx=200,ltopy=150, rbotx = 500, rboty = 400, resize= &amp;quot;lanczos&amp;quot;)&lt;br /&gt;
 # quad to rectangle excercise&lt;br /&gt;
 c= last&lt;br /&gt;
&lt;br /&gt;
#	bg = blankclip(last,color = 0)&lt;br /&gt;
 ScriptClip(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	h = height(bg)-1&lt;br /&gt;
	w = width(bg)-1	&lt;br /&gt;
    t = 0.061 *(current_frame)&lt;br /&gt;
    t2 = 0.127 *( current_frame)&lt;br /&gt;
    a = 0.501 + 0.5 * sin(t/pi)&lt;br /&gt;
    t1x = (-0.2*cos(t2)) * w&lt;br /&gt;
    t1y = (0.5-0.5*cos(t2)) * h&lt;br /&gt;
    t2x = (1.0+0.2*cos(t2)) * w&lt;br /&gt;
    t2y = (0.5-0.5*cos(t2)) * h&lt;br /&gt;
    t3x = (1.0+0.2*cos(t2)) * w&lt;br /&gt;
    t3y = (0.5+0.5*cos(t2)) * h&lt;br /&gt;
    t4x = (-0.2*cos(t2)) * w&lt;br /&gt;
    t4y = (0.5+0.5*cos(t2)) * h&lt;br /&gt;
    c1x = (0.5+a*cos(t)) * w&lt;br /&gt;
    c1y = (0.5+a*sin(t)) * h&lt;br /&gt;
    c2x = (0.5-a*sin(t)) * w&lt;br /&gt;
    c2y = (0.5+a*cos(t)) * h&lt;br /&gt;
    c3x = (0.5-a*cos(t)) * w&lt;br /&gt;
    c3y = (0.5-a*sin(t)) * h&lt;br /&gt;
    c4x = (0.5+a*sin(t)) * w&lt;br /&gt;
    c4y = (0.5-a*cos(t)) * h&lt;br /&gt;
	&lt;br /&gt;
#	r2q(c, c,leftx=t1x,rightx=t2x,ytop=t1y,ybot=t3y,ltopx=c1x,ltopy=c1y, rtopx=c2x,rtopy=c2y,  rbotx=c3x,rboty=c3y,lbotx=c4x,lboty=c4y, resize = &amp;quot;line&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	q2r( bg,leftx=t1x,rightx=t2x,ytop=t1y,ybot=t3y,ltopx=c1x,ltopy=c1y, rtopx=c2x,rtopy=c2y,  rbotx=c3x,rboty=c3y,lbotx=c4x,lboty=c4y, resize = &amp;quot;point&amp;quot; )&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Yakub2.X</name></author>	</entry>

	</feed>