<?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=Raffriff42</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=Raffriff42"/>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Special:Contributions/Raffriff42"/>
		<updated>2026-04-07T17:46:38Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.24</generator>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_filters</id>
		<title>Internal filters</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_filters"/>
				<updated>2025-03-20T02:00:55Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: /* Color conversion and adjustment filters */ fix double-spaced ConvertToYUVA444 etc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:76em; min-width:48em&amp;quot;&amp;gt;&lt;br /&gt;
The available (internal) filters are listed here and divided into categories. A short description is added, including the supported [[Color_spaces|color formats]] (and sample types for the audio filters). There are some functions which combine two or more clips in different ways. How the video content is calculated is described for each function, but [[filters_with_multiple_input_clips|here is a summary which explains which properties that the resulting clip will have]].&lt;br /&gt;
&lt;br /&gt;
An alphabetical listing of the internal filters can be found [[:Category:Internal_filters|here]].&lt;br /&gt;
&lt;br /&gt;
=== Source filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can read media files and return an AviSynth clip. See [[#Debug_filters|debug filters]] for non-file source filters.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|- &lt;br /&gt;
| [[AviSource]] / [[AviFileSource]] / [[OpenDMLSource]]&lt;br /&gt;
| Opens an AVI file.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DirectShowSource]]&lt;br /&gt;
| Opens a filename using [[DirectShow]].&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ImageReader]] / [[ImageSource]] / [[ImageSourceAnim]]&lt;br /&gt;
| Reads in still or animated images. See [[#Export_filters|ImageWriter]].&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Import]]&lt;br /&gt;
| Imports an AviSynth script into the current script.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SegmentedAviSource]] / [[SegmentedDirectShowSource]]&lt;br /&gt;
| Loads up to 100 avi files per argument.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[WavSource]]&lt;br /&gt;
| Opens a WAV file or the audio of an AVI file.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Color conversion and adjustment filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can be used to change the color format or adjust the colors of a clip.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|- &lt;br /&gt;
| [[ColorYUV]]&lt;br /&gt;
| Adjusts colors and luma independently.&lt;br /&gt;
| [[#Color_formats|YUV &amp;lt;small&amp;gt;{{Sup2|[''8-16bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ConvertBackToYUY2]]&lt;br /&gt;
| Converts a RGB clip back to YUY2.&lt;br /&gt;
| [[#Color_formats|RGB]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ConvertToRGB]]&lt;br /&gt;
| Converts to RGB32 unless clip is RGB24.&lt;br /&gt;
| [[#Color_formats|All &amp;lt;small&amp;gt;{{Sup2|[''8bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ConvertToRGB24]] / [[ConvertToRGB32]] &lt;br /&gt;
| Converts to 8-bit [[Interleaved]] RGB24 / RGB32.&lt;br /&gt;
| [[#Color_formats|All &amp;lt;small&amp;gt;{{Sup2|[''8bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Convert|ConvertToRGB48]] / [[Convert|ConvertToRGB64]] &lt;br /&gt;
| {{AvsPluscon}} Converts to [[Deep_Color|16-bit]], [[Interleaved]] RGB48 / RGB64 &lt;br /&gt;
| [[#Color_formats|All &amp;lt;small&amp;gt;{{Sup2|[''16bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Convert|ConvertToPlanarRGB]] /&amp;lt;br&amp;gt;[[Convert|ConvertToPlanarRGBA]]&lt;br /&gt;
| {{AvsPluscon}} Converts to [[Planar]] RGB(A) at [[Deep_Color|all bit depths]]&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ConvertToYUY2]]&lt;br /&gt;
| Converts to 8-bit [[Interleaved]] [[YUY2]].&lt;br /&gt;
| [[#Color_formats|RGB24/32, YUV &amp;lt;small&amp;gt;{{Sup2|[''8bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ConvertToYV24]] / [[ConvertToYV16]] / &amp;lt;br&amp;gt;&lt;br /&gt;
[[ConvertToYV12]] / [[ConvertToY8]] &lt;br /&gt;
| Converts to 8-bit [[Planar]] YV24, YV16, YV12, Y-only.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Convert|ConvertToYUV444]] / [[Convert|ConvertToYUV422]] /&amp;lt;br&amp;gt;[[Convert|ConvertToYUV420]] /&amp;lt;br&amp;gt;[[Convert|ConvertToYUVA444]]&amp;amp;nbsp;/&amp;amp;nbsp;[[Convert|ConvertToYUVA422]]&amp;amp;nbsp;/&amp;lt;br&amp;gt;[[Convert|ConvertToYUVA420]]&lt;br /&gt;
| {{AvsPluscon}} Converts to [[Planar]] YUV(A) at [[Deep_Color|all bit depths]]&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Convert|ConvertToYUV411]]&lt;br /&gt;
| {{AvsPluscon}} Converts to 8-bit [[Planar]] [[YV411]]&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[FixLuminance]]&lt;br /&gt;
| Correct shifting vertical luma offset.&lt;br /&gt;
| YUY2&lt;br /&gt;
|-&lt;br /&gt;
| [[Greyscale]]/[[Grayscale]]&lt;br /&gt;
| Converts a video to greyscale (no color)&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Invert]]&lt;br /&gt;
| Inverts selected color channels of a video.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Levels]]&lt;br /&gt;
| Scales and clamps the black and white levels, and adjusts the gamma.&lt;br /&gt;
| [[#Color_formats|All &amp;lt;small&amp;gt;{{Sup2|[''8-16bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Limiter]]&lt;br /&gt;
| Clips levels to within CCIR-601 range, and optionally highlights pixels outside that range.&lt;br /&gt;
| [[#Color_formats|YUV &amp;lt;small&amp;gt;{{Sup2|[''8-16bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[MergeRGB]] / [[MergeARGB]]&lt;br /&gt;
| Select and combine a color channel from each of the input video clips.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[MergeLuma]] / [[MergeChroma]]&lt;br /&gt;
| Merge (blend) chroma or luma from one video clip into another. There is an optional weighting, so a percentage between the two clips can be specified.&lt;br /&gt;
| [[#Color_formats|YUV]]&lt;br /&gt;
|-&lt;br /&gt;
| [[RGBAdjust]]&lt;br /&gt;
| Adjusts each color channel separately.&lt;br /&gt;
| [[#Color_formats|RGB &amp;lt;small&amp;gt;{{Sup2|[''8-32bit'']}}&amp;lt;/small&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowRed]] / [[ShowGreen]] / [[ShowBlue]] / [[ShowAlpha]]&lt;br /&gt;
| Shows the selected channel of an (A)RGB clip.&lt;br /&gt;
| [[#Color_formats|RGB]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SwapUV]]&lt;br /&gt;
| Swaps chroma channels.&lt;br /&gt;
| [[#Color_formats|YUV]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Tweak]]&lt;br /&gt;
| Adjusts the hue, saturation, brightness, and contrast.&lt;br /&gt;
| [[#Color_formats|YUV]]&lt;br /&gt;
|-&lt;br /&gt;
| [[UToY]] / [[UToY8]] / [[VToY]] / [[VToY8]]&lt;br /&gt;
| Copies U or V chroma plane to the Y luma plane.&lt;br /&gt;
| [[#Color_formats|YUV]], except [[Y8]]&lt;br /&gt;
|-&lt;br /&gt;
| [[YToUV]]&lt;br /&gt;
| Puts the luma channels of two clips as U and V channels. Luma is now 50% grey.&lt;br /&gt;
| [[#Color_formats|YUV]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Overlay and Mask filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can be used to layer clips with or without using masks and to create masks.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|-&lt;br /&gt;
| [[ColorKeyMask]]&lt;br /&gt;
| Sets the alpha-channel (similar as Mask does) but generates it by comparing the color.&lt;br /&gt;
| [[#Color_formats|RGB32; RGB64 {{AvsPluscon2}}]],&amp;lt;br&amp;gt;[[#Color_formats|All Planar RGB {{AvsPluscon2}}]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Layer]]&lt;br /&gt;
| Puts one clip on top of another using different layer (blend) modes and variable opacity. Supports alpha-channel transparency.&lt;br /&gt;
| [[#Color_formats|YUY2, RGB32]];&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Color_formats|All]] except YV411 {{AvsPluscon2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Mask]]&lt;br /&gt;
| Applies an alpha-mask to a clip.&lt;br /&gt;
| [[#Color_formats|RGB32; RGB64 {{AvsPluscon2}}]],&amp;lt;br&amp;gt;[[#Color_formats|All Planar RGB {{AvsPluscon2}}]]&lt;br /&gt;
|-&lt;br /&gt;
| [[MaskHS]]&lt;br /&gt;
| This filter returns a mask (as Y8) of clip using a given hue and saturation range.&lt;br /&gt;
| [[#Color_formats|YUV]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Merge]]&lt;br /&gt;
| Merge (blend) one video clip into another. There is an optional weighting, so a percentage between the two clips can be specified.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Overlay]]&lt;br /&gt;
| Puts one clip on top of another with optional XY displacement of the overlaying image, using different overlay (blend) modes and variable opacity. Uses a separate ''mask'' clip for transparency information.&lt;br /&gt;
| [[#Color_formats|All]] except YV411&lt;br /&gt;
|-&lt;br /&gt;
| [[ResetMask]]&lt;br /&gt;
| Applies an &amp;quot;all-opaque&amp;quot; alpha-mask to clip.&lt;br /&gt;
| [[#Color_formats|RGB32; RGB64 {{AvsPluscon2}}]],&lt;br /&gt;
[[#Color_formats|All Planar RGB {{AvsPluscon2}}]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Subtract]]&lt;br /&gt;
| Shows the difference between the corresponding pixels of two clips.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Geometric deformation filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can be used to change image size, process borders or make other deformations of a clip.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|- &lt;br /&gt;
| [[AddBorders]]&lt;br /&gt;
| Adds black or colored borders around the image.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Crop]]&lt;br /&gt;
| Crops excess pixels from each frame.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CropBottom]]&lt;br /&gt;
| Crops excess pixels from the bottom of each frame.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[FlipHorizontal]] / [[FlipVertical]]&lt;br /&gt;
| Flips the video from left to right/upside-down.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Letterbox]]&lt;br /&gt;
| Blackens out (or colors out) the top and bottom (and optionally left and right) of each frame. &lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[HorizontalReduceBy2]] / [[VerticalReduceBy2]] / [[ReduceBy2]]&lt;br /&gt;
| Reduces the size of each frame by half horizontally, vertically or in both directions.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[BicubicResize]] / [[BilinearResize]] / [[BlackmanResize]] / [[GaussResize]] / [[LanczosResize]] / [[Lanczos4Resize]] / [[PointResize]] / [[SincResize]] / [[Spline16Resize]] / [[Spline36Resize]] / [[Spline64Resize]]&lt;br /&gt;
| Rescale the input video frames to an arbitrary new resolution, using different sampling algorithms.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SkewRows]]&lt;br /&gt;
| Skews (or deskews) the rows of a clip.&lt;br /&gt;
| RGB24, RGB32,&amp;lt;br&amp;gt;YUY2, Y8&lt;br /&gt;
|-&lt;br /&gt;
| [[TurnLeft]] / [[TurnRight]] / [[Turn180]]&lt;br /&gt;
| Rotates the clip 90 degrees counter-clockwise / 90 degrees clockwise.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pixel restoration filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can be used for image detail (pixel) restoration (like denoising, sharpening) of a clip.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|- &lt;br /&gt;
| [[Blur]] / [[Sharpen]]&lt;br /&gt;
| Simple 3x3-kernel blurring/sharpening filter.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[GeneralConvolution]]&lt;br /&gt;
| General 3x3 or 5x5 convolution matrix.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SpatialSoften]]&lt;br /&gt;
| Removes noise from a video clip by selectively blending pixels spatially.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
|-&lt;br /&gt;
| [[TemporalSoften]]&lt;br /&gt;
| Removes noise from a video clip by selectively blending pixels temporally.&lt;br /&gt;
| All except [[RGB24]]&amp;lt;br&amp;gt;and [[Avisynthplus_color_formats|RGB48]] {{AvsPluscon2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FixBrokenChromaUpsampling]]&lt;br /&gt;
| The free Canopus DV Codec v1.00 upsamples the chroma channels incorrectly (although newer non-free versions appear to work fine). This filter compensates for it.&lt;br /&gt;
| YUY2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Timeline editing filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can be used to arrange frames in time (clip cutting, splicing and other editing).&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|-&lt;br /&gt;
| [[AlignedSplice]] / [[UnalignedSplice]]&lt;br /&gt;
| Joins two or more video clips end to end.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[AssumeFPS]] / [[AssumeScaledFPS]] / [[ChangeFPS]] / [[ConvertFPS]]&lt;br /&gt;
| Changes framerate and/or video speed in different ways.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DeleteFrame]]&lt;br /&gt;
| Deletes a single frame, given as an argument.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Dissolve]]&lt;br /&gt;
| Like [[AlignedSplice]], except that the clips are combined with some overlap.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DuplicateFrame]]&lt;br /&gt;
| Duplicates a single frame given as an argument.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[FadeIn0]] / [[FadeIn]] / [[FadeIn2]] / [[FadeOut0]] / [[FadeOut]] / [[FadeOut2]] / [[FadeIO0]] / [[FadeIO]] / [[FadeIO2]]&lt;br /&gt;
| Causes the video stream to fade linearly to black at the start or end.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[FreezeFrame]]&lt;br /&gt;
| Replaces all the frames between ''first-frame'' and ''last-frame'' with a selected frame.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Interleave]]&lt;br /&gt;
| Interleaves frames from several clips on a frame-by-frame basis.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Loop]]&lt;br /&gt;
| Loops the segment from ''start_frame'' to ''end_frame'' a given number of times.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Reverse]]&lt;br /&gt;
| Makes a clip play in reverse.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SelectEven]] / [[SelectOdd]]&lt;br /&gt;
| Makes an output video stream using only the even- or odd-numbered frames.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SelectEvery]]&lt;br /&gt;
| Selects frames with a fixed period; a generalization of [[SelectEven]] and [[SelectOdd]].&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SelectRangeEvery]]&lt;br /&gt;
| Selects a range of frames with a fixed period.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Trim]]&lt;br /&gt;
| Trims a video clip so that it includes only the frames ''first_frame'' through ''last_frame''.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interlace filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can be used for creating and processing field-based material (which is frame-based material separated into fields). AviSynth is capable of dealing with both progressive and interlaced material. The main problem is, that it often doesn't know what it receives from source filters. This is the reason that the field-based flag exists and can be used when dealing with interlaced material. More information about field-based video can be found [[Interlaced_fieldbased|here]].&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|-&lt;br /&gt;
| [[AssumeFrameBased]] / [[AssumeFieldBased]]&lt;br /&gt;
| Forces frame-based or field-based material.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[AssumeBFF]] / [[AssumeTFF]]&lt;br /&gt;
| Forces field order.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Bob]]&lt;br /&gt;
| Takes a clip and [[Wikipedia:Deinterlacing#Field_extension_deinterlacing|bob-deinterlaces]] it.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ComplementParity]]&lt;br /&gt;
| Changes top fields to bottom fields and vice-versa.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DoubleWeave]]&lt;br /&gt;
| Operates like [[Weave]], except that it produces double the number of frames by combining both the odd and even pairs of fields.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[PeculiarBlend]]&lt;br /&gt;
| Blends each frame with the following frame in a peculiar way.&lt;br /&gt;
| YUY2&lt;br /&gt;
|-&lt;br /&gt;
| [[Pulldown]]&lt;br /&gt;
| Selects two out of every five frames of the source video.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SeparateColumns]] / [[SeparateRows]]&lt;br /&gt;
| Separates the columns or rows of each frame into new frames.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SeparateFields]]&lt;br /&gt;
| Splits each frame into its component top and bottom fields.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SwapFields]]&lt;br /&gt;
| Swaps the two fields in an interlaced frame.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Weave]]&lt;br /&gt;
| Combines fields together to produce interlaced frames.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[WeaveColumns]] / [[WeaveRows]]&lt;br /&gt;
| Takes a clip and weaves sets of columns or rows together to produce composite frames.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Audio processing filters ===&lt;br /&gt;
&lt;br /&gt;
These filters process audio. Audio samples will be automatically converted if any filters requires a special type of sample. This means that if a filter doesn't support the type of sample it is given, it will automatically convert the samples to something it supports. The internal formats supported in each filter is listed in the sample type column. A specific sample type can be forced by using the [[ConvertAudio]] functions.&lt;br /&gt;
&lt;br /&gt;
{{AvsPluscon}} automatic conversion is ''not'' performed. The new behavior is to raise an error when a sample type is not compatible. It is your responsibility to use [[ConvertAudio]] where needed.&lt;br /&gt;
&lt;br /&gt;
[[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true. In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Sample type&lt;br /&gt;
|-&lt;br /&gt;
| [[Amplify]] / [[AmplifydB]]&lt;br /&gt;
| Amplify multiply audio samples by amount.&lt;br /&gt;
| 16 bit, Float&lt;br /&gt;
|-&lt;br /&gt;
| [[AssumeSampleRate]]&lt;br /&gt;
| Adjusts the playback speed of the audio.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[AudioDub]] / [[AudioDubEx]]&lt;br /&gt;
| ''AudioDub'' takes the video stream from the first argument and the audio stream from the second argument and combines them. ''AudioDubEx'' is similar, but it doesn't throw an exception if both clips don't have a video or audio stream.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[AudioTrim]]&lt;br /&gt;
| Trims an audio clip so that it includes only the ''start_time'' through ''end_time''.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[ConvertAudioTo8bit]] / [[ConvertAudioTo16bit]] / [[ConvertAudioTo24bit]] / [[ConvertAudioTo32bit]] / [[ConvertAudioToFloat]]&lt;br /&gt;
| Converts audio samples to 8/16/24/32/Float bits.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[ConvertToMono]]&lt;br /&gt;
| Merges all audio channels.&lt;br /&gt;
| 16 bit, Float&lt;br /&gt;
|-&lt;br /&gt;
| [[DelayAudio]]&lt;br /&gt;
| Delays the audio track by second seconds.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[EnsureVBRMP3Sync]]&lt;br /&gt;
| Corrects out-of-sync MP3-AVI's, when seeking or trimming.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[GetChannel]] / [[GetLeftChannel]] / [[GetRightChannel]]&lt;br /&gt;
| Returns an audio channel from a clip.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[KillAudio]] / [[KillVideo]]&lt;br /&gt;
| Removes the audio or video from a clip completely.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[MergeChannels]]&lt;br /&gt;
| Merges channels of two audio clips.&lt;br /&gt;
| All&lt;br /&gt;
|-&lt;br /&gt;
| [[MixAudio]]&lt;br /&gt;
| Mixes audio from two clips.&lt;br /&gt;
| 16 bit, Float&lt;br /&gt;
|-&lt;br /&gt;
| [[MonoToStereo]]&lt;br /&gt;
| Converts two mono signals to one stereo signal.&lt;br /&gt;
| 16 bit, Float&lt;br /&gt;
|-&lt;br /&gt;
| [[Normalize]]&lt;br /&gt;
| Amplifies the entire waveform as much as possible, without clipping.&lt;br /&gt;
| 16 bit, Float&lt;br /&gt;
|-&lt;br /&gt;
| [[ResampleAudio]]&lt;br /&gt;
| Performs a high-quality change of audio sample rate.&lt;br /&gt;
| 16 bit, Float&lt;br /&gt;
|-&lt;br /&gt;
| [[SuperEQ]]&lt;br /&gt;
| High quality 18 band sound equalizer.&lt;br /&gt;
| Float&lt;br /&gt;
|-&lt;br /&gt;
| [[SSRC]]&lt;br /&gt;
| Very high quality sample rate conversion.&lt;br /&gt;
| Float&lt;br /&gt;
|-&lt;br /&gt;
| [[TimeStretch]]&lt;br /&gt;
| Change speed of a sound without changing the pitch, and change pitch without changing duration.&lt;br /&gt;
| Float&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Conditional and other meta filters  ===&lt;br /&gt;
&lt;br /&gt;
''Meta'' filters can be used to control other filters' execution. The basic characteristic of conditional filters is that their scripts are evaluated (executed) at every frame instead of when the clip is loaded. This allows for complex video processing that would be difficult or impossible to be performed by a normal AviSynth script. &lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|-&lt;br /&gt;
| [[ConditionalFilter]] / [[FrameEvaluate]] / [[ScriptClip]] / [[ConditionalSelect]]&lt;br /&gt;
| ''ConditionalFilter'' returns source1 if some condition is met, otherwise it returns source2. ''ScriptClip/FrameEvaluate'' returns the clip which is returned by the function evaluated on every frame. ''ConditionalSelect'' returns one frame from several sources based on an integer evaluator.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ConditionalReader]]&lt;br /&gt;
| Import information from a text file, with different values for each frame - or a range of frames.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[WriteFile]] / [[WriteFileIf]] / [[WriteFileStart]] / [[WriteFileEnd]]&lt;br /&gt;
| These filters evaluate expressions and output the results to a text-file.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Animate]] / [[ApplyRange]]&lt;br /&gt;
| ''Animate'' is a meta-filter which evaluates another filter with continuously varying arguments.&lt;br /&gt;
''ApplyRange'' 'is a special case of ''Animate'' where ''start_args'' = ''end_args''.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[TCPServer]] / [[TCPSource]]&lt;br /&gt;
| Send clips over your network. You can connect several clients to the same machine.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Export filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can write directly to media files. &lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|-&lt;br /&gt;
| [[ImageWriter]]&lt;br /&gt;
| Writes frames as images to your hard disk. See [[#Source_filters|ImageReader]].&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Debug filters ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; width:95%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=25%| Filter&lt;br /&gt;
!width=50%| Description&lt;br /&gt;
!width=15%| Color format&lt;br /&gt;
|-&lt;br /&gt;
| [[BlankClip]] / [[Blackness]]&lt;br /&gt;
| Produces a solid color, silent video clip of the specified length (in frames).&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ColorBars]] / [[ColorBarsHD]]&lt;br /&gt;
| Produce a video clip containing SMPTE colorbars scaled to any image size.&lt;br /&gt;
| RGB32, YUY2,&amp;lt;br&amp;gt;YV12, YV24&lt;br /&gt;
|-&lt;br /&gt;
| [[Compare]]&lt;br /&gt;
| Compares two clips and prints out information about the differences.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[DumpFilterGraph]] / [[SetGraphAnalysis]]&lt;br /&gt;
| {{AvsPluscon}} This functions are for outputting the flow of filtering as a graph.&lt;br /&gt;
| [[#Color_formats|n/a]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Echo]]&lt;br /&gt;
| Forces internal &amp;lt;tt&amp;gt;GetFrame&amp;lt;/tt&amp;gt; calls to all input clips. Returns only first clip result.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Histogram]]&lt;br /&gt;
| A multipurpose audio/video analysis tool.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Info]]&lt;br /&gt;
| Prints out image and sound information.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[MessageClip]]&lt;br /&gt;
| Produces a clip containing a text message.&lt;br /&gt;
| RGB32&lt;br /&gt;
|-&lt;br /&gt;
| [[Preroll]]&lt;br /&gt;
| Preroll the audio or video on non-linear access.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowFiveVersions]]&lt;br /&gt;
| Takes five video clips and combines them in a staggered arrangement from left to right.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowFrameNumber]] / [[ShowSMPTE]] / [[ShowTime]]&lt;br /&gt;
| Draws text on every frame indicating what number AviSynth thinks it is.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[StackHorizontal]] / [[StackVertical]]&lt;br /&gt;
| Takes two or more video clips and displays them together in left-to-right/up-to-down order.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Subtitle]]&lt;br /&gt;
| Adds anti-aliased text to a range of frames.&lt;br /&gt;
| [[#Color_formats|All]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Tone]]&lt;br /&gt;
| Generates a sound.&lt;br /&gt;
| Float&lt;br /&gt;
|-&lt;br /&gt;
| [[Version]]&lt;br /&gt;
| Generates a video clip with a short AviSynth version and copyright statement.&lt;br /&gt;
| RGB24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{HiddenAnchor|Color_formats}}&lt;br /&gt;
&lt;br /&gt;
=== Footnotes ===&lt;br /&gt;
&lt;br /&gt;
The above filters work with the following named '''[[Avisynthplus_color_formats|color formats]]'''.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100px; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
!Formats&lt;br /&gt;
|-&lt;br /&gt;
| All&lt;br /&gt;
| RGB, YUV (detailed below)&lt;br /&gt;
|-&lt;br /&gt;
| [[RGB]] [[Interleaved]]&amp;amp;nbsp;&lt;br /&gt;
| [[RGB24]], [[RGB32]] &amp;lt;small&amp;gt;{{Sup2|[''8bit'']}}&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;[[Avisynthplus_color_formats|RGB48, RGB64]] &amp;lt;small&amp;gt;{{Sup2|[''16bit'']}}&amp;lt;/small&amp;gt; {{AvsPluscon2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RGB]] [[Planar]]&lt;br /&gt;
| [[Avisynthplus_color_formats|RGBP8, RGB'''A'''P8, RGBP'''10''', RGB'''A'''P10 etc]]&amp;amp;nbsp;{{AvsPluscon2}}&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[YUV]]&lt;br /&gt;
| [[YUY2]] [[Interleaved]], YUV [[Planar]],&amp;lt;br&amp;gt;[[Avisynthplus_color_formats|YUVA Planar]]&amp;amp;nbsp;{{AvsPluscon2}}  &lt;br /&gt;
|-&lt;br /&gt;
| YUV [[Planar]]&amp;amp;nbsp;&lt;br /&gt;
| [[YV12]], [[YV24]]&amp;amp;Dagger;, [[YV16]]&amp;amp;Dagger;, [[YV411]]&amp;amp;Dagger;, [[Y8]]&amp;amp;Dagger;&amp;amp;nbsp;&amp;lt;br&amp;gt;[[Avisynthplus_color_formats|YUV444P8, YUV444P'''10''', YUV444P'''12''' etc]] {{AvsPluscon2}}&lt;br /&gt;
|-&lt;br /&gt;
| YUVA [[Planar]]&amp;amp;nbsp;&lt;br /&gt;
| [[Avisynthplus_color_formats|YUV'''A'''444P8, YUV'''A'''444P'''10''', YUV'''A'''444P12 etc]]&amp;amp;nbsp;{{AvsPluscon2}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;|''Notes and exceptions.''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;padding-right:0.5em;width:4.0em&amp;quot; |&amp;amp;Dagger;&lt;br /&gt;
| Not supported in AviSynth version 2.58 or below&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;padding-right:0.5em&amp;quot; |{{AvsPluscon2}}&lt;br /&gt;
| [[AviSynth%2B|AviSynth+]] color space only (Deep Color, Planar RGB, YUVA).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;padding-right:0.5em&amp;quot; | &amp;lt;small&amp;gt;{{Sup2|[''8bit'']}}&amp;lt;/small&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;8-bit only {{AvsPluscon2}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;padding-right:0.5em&amp;quot; | &amp;lt;small&amp;gt;{{Sup2|[''16bit'']}}&amp;lt;/small&amp;gt; &lt;br /&gt;
| 16-bit only {{AvsPluscon2}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;padding-right:0.5em&amp;quot; | &amp;lt;small&amp;gt;{{Sup2|[''8-16bit'']}}&amp;lt;/small&amp;gt;&lt;br /&gt;
| 8, 10, 12, 14, 16 bit (excludes 32-bit floating-point) {{AvsPluscon2}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;padding-right:0.5em&amp;quot; |{{AvsPluscon}}&lt;br /&gt;
| [[AviSynth%2B|AviSynth+]] filter only.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AviSynth_Usage]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2021-01-01T21:10:09Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: Bugfixes; many minor changes; added functions ReadFormatTime, TimeToSeconds, CheapColorTemp, CutToSync, DissolveMode, QGaussBlur, SplitScreen, SplitScreenVert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Float</id>
		<title>Float</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Float"/>
				<updated>2019-10-28T20:25:58Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: Float audio range notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This page is about the ''Float ''audio format.'' &amp;lt;br&amp;gt;&lt;br /&gt;
:''For the variable type, see [[Script_variables]].'' &amp;lt;br&amp;gt;&lt;br /&gt;
:''For the'' &amp;lt;code&amp;gt;Float()&amp;lt;/code&amp;gt; ''function, go to [[Internal_functions#Float]].'' &amp;lt;br&amp;gt;&lt;br /&gt;
:''For the {{Deep_color}} format, go to [[Float_(color_format)]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Float''' (or fully IEEE floating point with single precision) is one of the [[ConvertAudio|AviSynth audio sample formats]]. &lt;br /&gt;
&lt;br /&gt;
The samples of this type have normal values between -1.0 (= 0xBF800000) and +1.0 (= 0x3F800000). Values outside this range are usable as long as the audio remains in Float format, but will create audio clipping if [[ConvertAudio|converted]] to an integer format: 8, 16, 24 or 32 integer bits. For safety, you can call [[Normalize]] before converting from Float to Integer.&lt;br /&gt;
&lt;br /&gt;
 ColorBarsHD ## audio format = Float; range -1.0 - +1.0&lt;br /&gt;
 Amplify(1000.0) ## range -1000.0 - +1000.0&lt;br /&gt;
 Amplify(0.001) ## range -1.0 - +1.0&lt;br /&gt;
 ## output: unchanged&lt;br /&gt;
&lt;br /&gt;
 ColorBarsHD ## audio format = Float; range -1.0 - +1.0&lt;br /&gt;
 Amplify(1000.0) ## range -1000.0 - +1000.0&lt;br /&gt;
 ConvertAudioTo16bit ## convert to Integer; severe clipping&lt;br /&gt;
 Amplify(0.001) ## still clipping&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The value of such a IEEE-754 number is computed as: sign * 2^exponent * 1.mantissa, using the following scheme:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[ 1 Sign Bit | 8 Bit Exponent  | 23 Bit Mantissa ]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The sign bit is 1 (negative) or 0 (positive).&lt;br /&gt;
* The exponent runs from -127 (00000000) to 0 (0111111) to 128 (11111111). &lt;br /&gt;
* The mantissa m1m2m3 ... means m1/2 + m2/4 + m3/8 + ... in decimal. Sometimes people denote &amp;quot;1.m1m2m3...&amp;quot; as the mantissa (like is done in the converter below).&lt;br /&gt;
&lt;br /&gt;
For an on-line converter between decimal numbers and IEEE 754 floating point, see [http://www.h-schmidt.net/FloatConverter/IEEE754.html here].&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 0x3F800000 = 00111111100000000000000000000000 (binary, see [http://easycalculation.com/hex-converter.php])&lt;br /&gt;
 &lt;br /&gt;
 Sign Bit      Exp       1.Mantissa&lt;br /&gt;
 0          01111111  00000000000000000000000&lt;br /&gt;
 &lt;br /&gt;
 127 - 127 = 0     1.0 bitshift 0 places&lt;br /&gt;
 &lt;br /&gt;
 Sign bit is positive, exponent = 0, 1.mantissa = 1, so the number is +1.0&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 0xBF800000 = 10111111100000000000000000000000&lt;br /&gt;
 &lt;br /&gt;
 Sign Bit      Exp       1.Mantissa&lt;br /&gt;
 1          01111111  00000000000000000000000&lt;br /&gt;
 &lt;br /&gt;
 127 - 127 = 0     1.0 bitshift 0 places&lt;br /&gt;
 &lt;br /&gt;
 Sign bit is negative, exponent = 0, 1.mantissa = 1, so the number is -1.0&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 0x800000 = 01001011000000000000000000000000&lt;br /&gt;
 &lt;br /&gt;
 Sign Bit      Exp       1.Mantissa&lt;br /&gt;
 0          10010110  00000000000000000000000&lt;br /&gt;
 &lt;br /&gt;
 150 - 127 = 23     1.0 bitshift 23 places&lt;br /&gt;
 &lt;br /&gt;
 Sign bit is positive, exponent = 23, 1.mantissa = 1, so the number is 8388608&lt;br /&gt;
&lt;br /&gt;
source: [https://web.archive.org/web/20120728135435/http://www.opferman.net/Text/ieee.txt opferman.net]&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_functions</id>
		<title>Internal functions</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_functions"/>
				<updated>2019-01-08T02:20:08Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: /* TrimLeft, TrimRight, TrimAll */ clarify&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;
&amp;lt;div style=&amp;quot;max-width:64em&amp;quot; &amp;gt;&lt;br /&gt;
In addition to [[Internal_filters|internal filters]] AviSynth has a fairly large number of other (non-clip) internal functions. &lt;br /&gt;
&lt;br /&gt;
The input or/and output of these functions are not clips, but some other variables which can be used in a script. &lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Short Contents:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
# [[#Boolean_functions|Boolean functions]]&lt;br /&gt;
# [[#Control_functions|Control functions]]&lt;br /&gt;
# [[#Global_options|Global options]]&lt;br /&gt;
# [[#Conversion_functions|Conversion functions]]&lt;br /&gt;
# [[#Numeric_functions|Numeric functions]]&lt;br /&gt;
# [[#Trigonometry_functions|Trigonometry functions]]&lt;br /&gt;
# [[#Bit_functions|Bit functions]]&lt;br /&gt;
# [[#Runtime_functions|Runtime functions]]&lt;br /&gt;
# [[#Script_functions|Script functions]]&lt;br /&gt;
# [[#String_functions|String functions]]&lt;br /&gt;
# [[#Version_functions|Version functions]]&lt;br /&gt;
# [[#Other_helper_functions|Other helper functions]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:4em;&amp;quot; |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolean functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These return true or false, if the condition that they test holds or not, respectively.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsBool||IsBool(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the bool type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b = false&lt;br /&gt;
 IsBool(b) = true&lt;br /&gt;
 IsBool(1 &amp;lt; 2 &amp;amp;&amp;amp; 0 == 1) = true&lt;br /&gt;
 IsBool(123) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsClip||IsClip(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the clip type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 c = [[AviSource]](...)&lt;br /&gt;
 IsClip(c) = true&lt;br /&gt;
 IsClip(&amp;quot;c&amp;quot;) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsFloat||IsFloat(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the float type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 f = [[Internal_functions/Numeric_functions|Sqrt]](2)&lt;br /&gt;
 IsFloat(f) = true&lt;br /&gt;
 IsFloat(true) = false&lt;br /&gt;
 IsFloat(&amp;quot;42.&amp;quot;) = false&lt;br /&gt;
 IsFloat(2) = true   # ''ints are considered to be floats by this function''&lt;br /&gt;
 IsReallyFloat(2) = false # see below&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: As a workaround for the issue noted above, you may use the following [[User_functions|user function]]:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|3}} &amp;gt;&lt;br /&gt;
 ## return true for floats only&lt;br /&gt;
 function IsReallyFloat(val v)&lt;br /&gt;
 {&lt;br /&gt;
     return (IsInt(v)==false) &amp;amp;&amp;amp; IsFloat(v)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsInt||IsInt(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the int type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsInt(2) = true&lt;br /&gt;
 IsInt(2.1) = false&lt;br /&gt;
 IsInt(true) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsString||IsString(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the string type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsString(&amp;quot;test&amp;quot;) = true&lt;br /&gt;
 IsString(2.3) = false&lt;br /&gt;
 IsString([[Internal_functions/Conversion_functions|String]](2.3)) = true&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exist||Exist(filename)}}&lt;br /&gt;
: Tests if the file specified by {{FuncArg|filename}} exists.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 filename = ...&lt;br /&gt;
 clp = Exist(filename) &lt;br /&gt;
 \ ? [[AviSource]](filename) &lt;br /&gt;
 \ : [[Internal_functions/Control_functions|Assert]](false, &amp;quot;file: &amp;quot; + filename + &amp;quot; does not exist&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Defined||Defined(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is defined. Can be used inside [[Script_functions]] to test if an optional argument has been given an explicit value.&lt;br /&gt;
: More formally, the function returns false if its argument (normally a function argument or variable) has the void ('undefined') type, otherwise it returns true.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b_arg_supplied = Defined(arg)&lt;br /&gt;
 myvar = b_arg_supplied ? ... : ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FunctionExists|{{AvsPluscon}}|FunctionExists(name)}}&lt;br /&gt;
: Tests if the function or filter name is defined in the script.&lt;br /&gt;
: {{FuncArg|name}} can be any string &amp;amp;ndash; it does not need to be a [[Script_variables#Variable_Names|legal name]].&lt;br /&gt;
: ''Example'' &amp;amp;ndash; see [[#Apply|Apply]] below&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|InternalFunctionExists|{{AvsPluscon}}|InternalFunctionExists(name)}}&lt;br /&gt;
: Tests if the function, filter or [[Clip_properties|property]] name is defined natively within [[AviSynth+]].&lt;br /&gt;
:* Unlike [[#FunctionExists|FunctionExists]], returns ''false'' for [[Plugins|external plugins]] and [[User_functions|user-defined functions]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VarExist|{{AvsPluscon}}|VarExist(name)}}&lt;br /&gt;
: Tests if the variable exists or not. Note: if variable exists, it returns true regardless of the &amp;quot;defined&amp;quot; state of the variable&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Control functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These facilitate flow of control (loading of scripts, arguments checks, global settings adjustment, etc.).&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Apply||Apply(string ''func_string'' [, arg1 [, arg2 [, ... [, arg''n'']]]] )}}&lt;br /&gt;
: Calls the function or filter {{FuncArg|func_string}} with arguments {{FuncArg|arg1}}, {{FuncArg|arg2}}, ..., {{FuncArg|arg''n''}} (as many as supplied). &lt;br /&gt;
:* This provides a way to call a function or filter '''by name''', with arguments.&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;f(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[[#Eval|Eval]](&amp;quot;f(&amp;quot; + String(x) + &amp;quot;)&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* Note that the clip argument must be supplied explicitly - the [[Last|special variable ''Last'']] is not used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically  &lt;br /&gt;
 new_width = 352&lt;br /&gt;
 new_height = 288&lt;br /&gt;
 &lt;br /&gt;
 Apply(&amp;quot;[[BicubicResize]]&amp;quot;, Last, new_width, new_height)&lt;br /&gt;
 # Note that the clip argument must be supplied - 'Last' is not implicitly assumed&lt;br /&gt;
 &lt;br /&gt;
 ## the same action, using [[#Eval|Eval]]&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + String(new_width) + &amp;quot;,&amp;quot; + String(new_height) + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists (AviSynth 2.6)&lt;br /&gt;
 function MyFilter(clip C, string s) { &lt;br /&gt;
     return C.[[Subtitle]](&amp;quot;MyFilter: &amp;quot;+s, align=5)&lt;br /&gt;
 }&lt;br /&gt;
 ColorBars &lt;br /&gt;
 [[Control_structures|try]] {&lt;br /&gt;
     Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;)&lt;br /&gt;
 } catch (err_msg) {&lt;br /&gt;
     # (ignore)&lt;br /&gt;
 }&lt;br /&gt;
 return Last&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists ([[AviSynth+|AVS+]] only)&lt;br /&gt;
 ColorBars  &lt;br /&gt;
 return [[#FunctionExists|FunctionExists]](&amp;quot;MyFilter&amp;quot;) &lt;br /&gt;
 \ ? Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;) &lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Eval||Eval(expression [, string ''name''])}}&lt;br /&gt;
: Evaluates an arbitrary {{FuncArg|expression}} and returns the result of that evaluation. '''It works exactly like [[#Import|Import]] below''', except&lt;br /&gt;
:* The expression to be evaluated comes from a string instead of a file; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are not changed;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is not changed.&lt;br /&gt;
: Argument {{FuncArg|name}} will be shown in the error message beside the script name. Both will be followed with the line number in {{FuncArg|expression}} where the error occurred.&lt;br /&gt;
&lt;br /&gt;
: Variables in your calling script are available within {{FuncArg|expression}}; [[Global|global variables]] are not required.&lt;br /&gt;
: Note '''Eval''' can return the result of ''any'' valid expression; usually a clip, but also a string, boolean etc.&lt;br /&gt;
: You can use '''Eval''' to construct and evaluate expressions dynamically inside your scripts, based on variable input data.&lt;br /&gt;
: '''Eval''' is useful as a [[Control_structures|control structure]] for creating multi-line ''block statements'' without requiring [[AviSynth%2B|AviSynth+]].&lt;br /&gt;
: '''Eval''' can be used to put aside the need to install external plugins if they are not actually used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically &lt;br /&gt;
 ## calls [[BicubicResize]](last, 352, 288)&lt;br /&gt;
 settings = &amp;quot;352, 288&amp;quot;&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + settings + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## if...else [[Control_structures|control structure]]&lt;br /&gt;
 option = true&lt;br /&gt;
 option  &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[Levels]](0, 1.2, 255, 20, 235)&lt;br /&gt;
     [[Spline36Resize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;) &lt;br /&gt;
 \ : '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[BicubicResize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.3)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it is needed; &lt;br /&gt;
 ## in this example, [[SMDegrain]] only needs to be installed if the option is ''true''.&lt;br /&gt;
 option = false&lt;br /&gt;
 option &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     SMDegrain(tr=2, thSAD=250, contrasharp=true, refinemotion=true, lsb=true)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## accessing script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=[[Subtitle]](&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;A&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## setting script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;B = A.Invert&amp;quot;)&lt;br /&gt;
 return B ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Increment a global variable, based on a local variable&lt;br /&gt;
 Eval(&amp;quot;global my_counter = my_counter + &amp;quot; + [[#String|String]](increment)) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## multi-line example with comment and line continuation&lt;br /&gt;
 '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[BicubicResize]](352, 288)&lt;br /&gt;
 #FlipVertical&lt;br /&gt;
 Subtitle(&lt;br /&gt;
 \   &amp;quot;Width  = &amp;quot;  + [[#String|String]]([[Clip_properties|Width]]) + &amp;quot;\n&amp;quot;&lt;br /&gt;
 \ + &amp;quot;Height = &amp;quot; + String(Height)&lt;br /&gt;
 \ , align=7, lsp=0)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Empty expression &lt;br /&gt;
 ## results in error: 'Defined(u) == false'&lt;br /&gt;
 u = Eval(&amp;quot;#&amp;quot;)   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Error reporting&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, size=Height, align=2)&lt;br /&gt;
 Eval(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;, '''&amp;quot;eval_test_1&amp;quot;''') ## name for error reporting purposes&lt;br /&gt;
 return Last&lt;br /&gt;
 &lt;br /&gt;
 ''results in the error message:''&lt;br /&gt;
 Script error: there is no function named &amp;quot;foo&amp;quot;&lt;br /&gt;
 '''(eval_test_1, line 3)'''&lt;br /&gt;
 (E:\_test.avs, line 6)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Import||Import(filename)}}&lt;br /&gt;
{{ScriptFunctionCode|Import||Import(filename [, ...] [, bool utf8])}} {{AvsPluscon}}&lt;br /&gt;
: Evaluates the contents of another script and returns the result of that evaluation. '''It works exactly like [[#Eval|Eval]] above''', except&lt;br /&gt;
:* The expression to be evaluated comes from a file instead of a string; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are set to the current (imported) script;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is [[Internal_functions#SetWorkingDir|set]] to the current (imported) script.&lt;br /&gt;
:* {{FuncArg|utf8}} {{AvsPluscon}} if true, assumes filename(s) are [[wikipedia:UTF-8|UTF8]], else (default), assume ANSI.&lt;br /&gt;
&lt;br /&gt;
:[[Script_functions|Functions]], [[Script_variables|variables]] and loaded plugins declared inside the imported script are made available to the parent script. &amp;lt;b&amp;gt;Import&amp;lt;/b&amp;gt;'s return value  can be assigned to a variable of the parent script; this is most useful when the imported script ends with a clip.&lt;br /&gt;
&lt;br /&gt;
: Typically '''Import''' is used to make library functions available to the parent script, and the return value is not used. However this is simply a convention; it is not enforced by the [[AviSynth Syntax]]. Some indicative uses of '''Import''' include:&lt;br /&gt;
:* Storing multiple script-functions, variables and global variables for reuse by scripts (creation of script libraries).&lt;br /&gt;
:* Retrieving pre-built streams.&lt;br /&gt;
:* Retrieving dynamically configured pre-built streams (the core idea is that the importing script declares some global variables which the imported script uses to configure the stream that will return).&lt;br /&gt;
:'''Note 1''': Since the contents of the imported script are evaluated at the point of invocation, it is possible by enclosing the '''Import''' call in a nested scope (for example inside a function) to make available to the importing script the functions and globals of the imported script ''without'' its script-level variables.&lt;br /&gt;
:'''Note 2''': Any script with the [[AVSI]] extension in the AviSynth Plugins folder is automatically imported. This is useful for making script functions available to any new script you create without having to copy and paste.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # ''B.avsi''&lt;br /&gt;
 A.Invert&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5) ## create clip 'A'&lt;br /&gt;
 Import(&amp;quot;B.avsi&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## here we do not care about the return value (''mylib.avsi'' contains only functions)&lt;br /&gt;
 Import(&amp;quot;mylib.avsi&amp;quot;)  &lt;br /&gt;
 ...&lt;br /&gt;
 ## ''mysources.avsi'' loads predetermined file names from a folder into globals&lt;br /&gt;
 okflag = Import(&amp;quot;mysources.avsi&amp;quot;)  &lt;br /&gt;
 source = okflag ? global1 + global2 + global3 : [[BlankClip]]()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Select||Select(index, item0 [, item1 [, ...[, itemn]]])}}&lt;br /&gt;
: Returns the item selected by the {{FuncArg|index}} argument, which must be of int type (0 returns {{FuncArg|item0}}, 1 returns {{FuncArg|item1}}, ..., etc). Items can be any script [[Script_variables|variable]] or expression of any type and can even be mixed.&lt;br /&gt;
&lt;br /&gt;
:If {{FuncArg|index}} is out of range, an error is raised.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # select a clip-brush from a set of presets&lt;br /&gt;
 idx = 2&lt;br /&gt;
 brush = Select(idx, [[AviSource]](&amp;quot;round.avi&amp;quot;), &lt;br /&gt;
 \        rectangle, diagonal, diagonal.[[FlipHorizontal]])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - all branches are evaluated:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 Select(index, &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &lt;br /&gt;
 \        Assert(false, &amp;quot;Select evaluates all branches&amp;quot;)) &lt;br /&gt;
 ## NOTE this code does not run - it throws [[#Assert|Assert]] error&lt;br /&gt;
 ## because Select evaluates all branches&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is not desired, use the [[Ternary_operator|conditional execution]] operator: &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 x = (index==0) ? &amp;quot;zero&amp;quot;&lt;br /&gt;
 \ : (index==1) ? &amp;quot;one&amp;quot;&lt;br /&gt;
 \ : (index==2) ? &amp;quot;two&amp;quot;&lt;br /&gt;
 \ : Assert(false, &amp;quot;index out of range&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Default||Default(x, d)}}&lt;br /&gt;
: Returns {{FuncArg|x}} if '''Defined'''(x) is true, {{FuncArg|d}} otherwise. {{FuncArg|x}} must either be a function's argument or an already declared script variable (ie a variable which has been assigned a value) else an error will occur.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Assert||Assert(condition [, err_msg])}}&lt;br /&gt;
: Does nothing if {{FuncArg|condition}} is true; throws an error, immediately terminating script execution, if {{FuncArg|condition}} is false. In the later case {{FuncArg|err_msg}}, if supplied, is presented to the user through a dialog box; else the standard message &amp;quot;Assert: assertion failed&amp;quot; shows up.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     Assert(strength &amp;gt; 0, &amp;quot;'strength' must be positive&amp;quot;)&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|NOP||NOP()}}&lt;br /&gt;
: This is a no-operation function provided mainly for conditional execution with non-return value items such as [[Import]], when no &amp;quot;else&amp;quot; condition is desired. That is, use it whenever the [[AviSynth Syntax]] requires an operation (such as with the ?: [[Operators#For_Booleans|operator]]) but your script does not need one.&lt;br /&gt;
: Return value: 0 (int type).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 preset = want_presets ? [[AviSource]](&amp;quot;c:\presets\any.avi&amp;quot;) : NOP&lt;br /&gt;
 ... &lt;br /&gt;
 loadlib ? [[Import]](&amp;quot;my_useful_functions.avs&amp;quot;) : NOP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Undefined|v2.60|Undefined()}}&lt;br /&gt;
: Returns the undefined state.&lt;br /&gt;
: It's the state for which '''Defined'''() returns false.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 x = Undefined()&lt;br /&gt;
 Defined(x) # == false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Options ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{ScriptFunctionH5|SetMemoryMax||SetMemoryMax(amount)}}&lt;br /&gt;
: Sets the maximum memory that AviSynth uses (in MB) to the value of {{FuncArg|amount}}. Setting to zero just returns the current Memory Max value. In the 2.5 series the default Memory Max value is 25% of the free physical memory, with a minimum of 16MB.&lt;br /&gt;
: The default Memory Max is also limited to 512MB.&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; &amp;lt;!-- width=50% --&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | Free memory&lt;br /&gt;
 | &amp;lt;64&lt;br /&gt;
 | 128&lt;br /&gt;
 | 256&lt;br /&gt;
 | 512&lt;br /&gt;
 | 1024&lt;br /&gt;
 | 2048&lt;br /&gt;
 | 3072&lt;br /&gt;
 |-&lt;br /&gt;
 | Default Max&lt;br /&gt;
 | 16&lt;br /&gt;
 | 32&lt;br /&gt;
 | 64&lt;br /&gt;
 | 192&lt;br /&gt;
 | 448&lt;br /&gt;
 | 512&lt;br /&gt;
 | 512&lt;br /&gt;
 |}&lt;br /&gt;
: In some versions there is a default setting of 5MB, which is quite low. If you encounter problems (e.g. low speed) try to set this values to at least 32MB. Too high values can result in crashes because of 2GB address space limit.&lt;br /&gt;
: Return value: Actual MemoryMax value set.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetMemoryMax(128)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetWorkingDir||SetWorkingDir(path)}}&lt;br /&gt;
: Sets the default directory for AviSynth to the {{FuncArg|path}} argument.&lt;br /&gt;
: This is primarily for easy loading of source clips, [[Import|importing]] scripts, etc. It does not affect plugins' autoloading. &lt;br /&gt;
: Return value is 0 if successful, -1 otherwise.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetWorkingDir(&amp;quot;c:\my_presets&amp;quot;)&lt;br /&gt;
 [[AviSource]](&amp;quot;border_mask.avi&amp;quot;)  # this loads c:\my_presets\border_mask.avi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetPlanarLegacyAlignment||SetPlanarLegacyAlignment(mode)}}&lt;br /&gt;
: Set alignment mode for [[planar]] frames. {{FuncArg|mode}} can either be true or false.&lt;br /&gt;
: Some older [[External_plugins|plugins]] illegally assume the layout of video frames in memory. This special filter forces the memory layout of planar frames to be compatible with prior versions of AviSynth. The filter works on the [[The_script_execution_model/Evaluation_of_runtime_scripts|GetFrame]]() call stack, so it effects filters '''before''' it in the script.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Example : Using an older version of Mpeg2Source() (1.10 or older):&lt;br /&gt;
 &lt;br /&gt;
 LoadPlugin(&amp;quot;...\Mpeg2Decode.dll&amp;quot;)&lt;br /&gt;
 Mpeg2Source(&amp;quot;test.d2v&amp;quot;)         # A plugin that illegally assumes the layout of memory&lt;br /&gt;
 SetPlanarLegacyAlignment(true)  # Set legacy memory alignment for prior statements&lt;br /&gt;
 [[Convert|ConvertToYUY2]]()     # Statements through to the end of the script have&lt;br /&gt;
 ...                             # advanced memory alignment.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AllowFloatAudio||global OPT_AllowFloatAudio &amp;amp;#61; true ## default false}}&lt;br /&gt;
: [[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true (this option enables WAVE_FORMAT_IEEE_FLOAT audio output&amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?t=109608]&amp;lt;/sup&amp;gt;). In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
:The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_UseWaveExtensible||global OPT_UseWaveExtensible &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables WAVE_FORMAT_EXTENSIBLE audio output. The default is WAVE_FORMAT_EX.&lt;br /&gt;
: '''Note:''' The default DirectShow component for .AVS files, &amp;quot;AVI/WAV File Source&amp;quot;, does not correctly implement WAVE_FORMAT_EXTENSIBLE processing, so many application may not be able to detect the audio track. There are third party DirectShow readers that do work correctly. Intermediate work files written using the AVIFile interface for later DirectShow processing will work correctly if they use the DirectShow &amp;quot;File Source (async)&amp;quot; component or equivalent. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_dwChannelMask|v2.60|global OPT_dwChannelMask(int v)}}&lt;br /&gt;
: This option enables you to set ChannelMask. It overrides WAVEFORMATEXTENSIBLE.dwChannelMask&amp;lt;sup&amp;gt;[[http://wiki.multimedia.cx/index.php?title=WAVEFORMATEXTENSIBLE]&amp;lt;/sup&amp;gt; which is set according to this table&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 0x00004, // 1   -- -- Cf&lt;br /&gt;
 0x00003, // 2   Lf Rf&lt;br /&gt;
 0x00007, // 3   Lf Rf Cf&lt;br /&gt;
 0x00033, // 4   Lf Rf -- -- Lr Rr&lt;br /&gt;
 0x00037, // 5   Lf Rf Cf -- Lr Rr&lt;br /&gt;
 0x0003F, // 5.1 Lf Rf Cf Sw Lr Rr&lt;br /&gt;
 0x0013F, // 6.1 Lf Rf Cf Sw Lr Rr -- -- Cr&lt;br /&gt;
 0x0063F, // 7.1 Lf Rf Cf Sw Lr Rr -- -- -- Ls Rs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AVIPadScanlines|v2.60|global OPT_AVIPadScanlines &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables DWORD aligned planar padding. Default is packed aligned planar padding. See [[AVIFile output emulation|memory alignment used in the AVIFile output emulation]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_VDubPlanarHack|v2.60|global OPT_VDubPlanarHack &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables flipped YV24 and YV16 chroma planes. This is an hack for early versions of Virtualdub with YV24/YV16 support. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_V210|{{AvsPluscon}}|global OPT_Enable_V210 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, [[Frameserver|Frameserve]] interleaved V210 instead of planar P210. (VfW)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
{{BoldColor|black|100|§}} ''VfW'' here means [[wikipedia:Video_for_Windows|Video For Windows]] clients such as VirtualDub are affected, but not other clients such as ffmpeg.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_10|{{AvsPluscon}}|global OPT_Enable_Y3_10_10 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, set the [[FourCC]] to Y3[10][10] ('Y', '3', 10, 10) instead of P210  ('P', '2', '1', '0'). (VfW) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_16|{{AvsPluscon}}|global OPT_Enable_Y3_10_16 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 16bit YUV422, use Y3[10][16] instead of P216 (VfW)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_b64a|{{AvsPluscon}}|global OPT_Enable_b64a &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Use b64a instead of BRA[64] (VfW)&lt;br /&gt;
: works for avs+ version above r2636&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_PlanarToPackedRGB|{{AvsPluscon}}|global OPT_Enable_PlanarToPackedRGB &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Convert Planar RGB to packed RGB (VfW)&lt;br /&gt;
: Planar RGB 10, 12, 14 and 16 bits are reported as G3[0][10], G3[0][12], G3[0][14] and G3[0][16]&lt;br /&gt;
: Planar RGBA 10, 12, 14 and 16 bits are reported as G4[0][10], G4[0][12], G4[0][14] and G4[0][16]&lt;br /&gt;
: When these [[FourCC]] codes are not handled through VfW, use OPT_Enable_PlanarToPackedRGB=true.&lt;br /&gt;
: Avisynth+ will convert the clip from planar to RGB64 (packed 16bit RGB) and will negotiate this format instead&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conversion functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These convert between different types.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Value||Value(string)}}&lt;br /&gt;
: Converts a decimal string to its associated numeric value.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Value (&amp;quot;-2.7&amp;quot;) = -2.7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|HexValue||HexValue(string)}}&lt;br /&gt;
{{ScriptFunctionCode|HexValue||HexValue(string [, int pos])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a hexadecimal string to its associated numeric value. &lt;br /&gt;
:* {{FuncArg|pos}} sets the starting point of the numeric parser. All characters to the left of {{FuncArg|pos}} are ignored. Default is 1 (start of string).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 HexValue (&amp;quot;FF00&amp;quot;) = 65280&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Hex|v2.60|Hex(int)}}&lt;br /&gt;
{{ScriptFunctionCode|Hex||Hex(int [, int width])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a numerical value to its hexadecimal value. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
:* {{FuncArg|width}} sets the minimum width of the returned string. &lt;br /&gt;
::Resulting string will be left-padded with zeroes as needed. Allowed range is 0..8; default is 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Hex (10824234) = &amp;quot;A52A2A&amp;quot;&lt;br /&gt;
 Hex (15 width=2) = &amp;quot;0F&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|String||String(var [, string format_string])}}&lt;br /&gt;
: Converts a variable to a string. ''String'' arguments are passed along unchanged; ''bools'' are converted to &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;; numbers are formatted as described below; other [[Script_variables#Variable_Types|variable types]] (''clip'', ''val'') are converted to the empty string. &lt;br /&gt;
:The syntax of {{FuncArg|format_string}} is as follows:&lt;br /&gt;
::&amp;lt;code&amp;gt;'''%'''[flags][width][.precision]'''f'''&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;i&amp;gt;the leading &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; and trailing &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; are required.&amp;lt;/i&amp;gt;&lt;br /&gt;
:The parts of {{FuncArg|format_string}} are:&lt;br /&gt;
:; ''flags'' &lt;br /&gt;
::{| class=wikitable&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;&lt;br /&gt;
|left align (right align by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the +/- sign (show only '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;' by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|pad (see ''width'') with leading zeroes (pad with spaces by default)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;amp;nbsp;'&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;'&amp;amp;nbsp;&lt;br /&gt;
|print a blank instead of a '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;'&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the decimal point (dropped by default if there are no decimal digits)&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
:; ''width''&lt;br /&gt;
:: the minimum width (the string is never truncated if it is wider than ''width'')&lt;br /&gt;
:; ''precision''&lt;br /&gt;
:: the number of decimal digits&lt;br /&gt;
: You can also put arbitrary text around {{FuncArg|format_string}}, similar to the C-language [http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm sprintf] function.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|62|2}} &amp;gt;&lt;br /&gt;
 Subtitle( String(1.23) )                    # '1.230000' (six decimals by default for floats)&lt;br /&gt;
 Subtitle( String(123) )                     # '123'      (no decimals by default for ints)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.2f&amp;quot; ))           # '1.23'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.1f&amp;quot; ))           # '1.2'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%5.1f&amp;quot;) )           # '  1.2'    (padded to 5 characters wide)&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%1.3f&amp;quot;) )           # '1.230'    (3 decimals; add trailing zeroes)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.0f&amp;quot;) )            # '123'      (no decimals for precision=0)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%''#''0.0f&amp;quot;) )           # '123.'     ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.2f&amp;quot;) )            # '123.00'   (2 decimals: add trailing zeroes)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%5.0f&amp;quot;) )            # '  123'    (padded to 5 characters wide using ' ')&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%05.0f&amp;quot;) )           # '00123'    (padded to 5 characters wide using '0')&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.0f&amp;quot;) )          # 'PI=3'     (text around format_string)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%''#''0.0f&amp;quot;) )         # 'PI=3.'    ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%2.0f&amp;quot;) )          # 'PI= 3'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%3.2f&amp;quot;) )          # 'PI=3.14'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.5f&amp;quot;) )          # 'PI=3.14159'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%6.3f&amp;quot;) )          # 'PI= 3.142'&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(32, &amp;quot;%0.0f&amp;quot;) )             # '32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%3.0f&amp;quot;) )             # ' 32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%8.0f&amp;quot;) )             # '      32'&lt;br /&gt;
 &lt;br /&gt;
 ## arbitrary text around format_string:&lt;br /&gt;
 Subtitle( String(Last.Height, &amp;quot;Clip height is %0.0f&amp;quot;) ) # 'Clip height is 480'&lt;br /&gt;
 ## same output as above but using string concatenation:&lt;br /&gt;
 Subtitle( &amp;quot;Clip height is &amp;quot; + String(Last.Height) )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numeric functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common mathematical operations on numeric variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Max||Max(float, float [, ...])}}&lt;br /&gt;
: Returns the maximum value of a set of numbers.&lt;br /&gt;
: If all the values are of type Int, the result is an Int. If any of the values are of type Float, the result is a Float.&lt;br /&gt;
: This may cause an unexpected result when an Int value greater than 16777216 is mixed with Float values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Max (1, 2) = 2&lt;br /&gt;
 Max (5, 3.0, 2) = 5.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Min||Min(float, float [, ...])}}&lt;br /&gt;
: Returns the minimum value of a set of numbers.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Min (1, 2) = 1&lt;br /&gt;
 Min (5, 3.0, 2) = 2.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MulDiv||MulDiv(int, int, int)}}&lt;br /&gt;
: Multiplies two ints (m, n) and divides the product by a third (d) in a single operation, with 64 bit intermediate result. The actual equation used is &amp;lt;tt&amp;gt; (m * n + d / 2) / d &amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MulDiv (1, 1, 2) = 1&lt;br /&gt;
 MulDiv (2, 3, 2) = 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Floor||Floor(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round down on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Floor(1.2) = 1&lt;br /&gt;
 Floor(1.6) = 1&lt;br /&gt;
 Floor(-1.2) = -2&lt;br /&gt;
 Floor(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ceil||Ceil(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round up on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ceil(1.2) = 2&lt;br /&gt;
 Ceil(1.6) = 2&lt;br /&gt;
 Ceil(-1.2) = -1&lt;br /&gt;
 Ceil(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Round||Round(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round off to nearest integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Round(1.2) = 1&lt;br /&gt;
 Round(1.6) = 2&lt;br /&gt;
 Round(-1.2) = -1&lt;br /&gt;
 Round(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Int||Int(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round towards zero).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Int(1.2) = 1&lt;br /&gt;
 Int(1.6) = 1&lt;br /&gt;
 Int(-1.2) = -1&lt;br /&gt;
 Int(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Float||Float(int)}}&lt;br /&gt;
: Converts int to single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value. Integer values that require more than 24-bits to be represented will have their lower 8-bits truncated yielding unexpected values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Float(4) = 4.0&lt;br /&gt;
 Float(4) / 3 = 1.333 (while 4 / 3 = 1 , due to integer division)&lt;br /&gt;
 Float(123456789) = 123456792.0 (error = -3, 0.000002%)&lt;br /&gt;
 Float(1234567890) = 1234567936.0 (error = -46, 0.000004%)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Fmod|v2.60|Fmod(float, float)}}&lt;br /&gt;
: Returns the modulo of the argument. Output is float.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Fmod(3.5, 0.5) = 0 (since 3.5 - 7*0.5 = 0)&lt;br /&gt;
 Fmod(3.5, 1.0) = 0.5 (since 3.5 - 3*1.0 = 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pi||Pi()}}&lt;br /&gt;
: Returns the value of the {{BoldColor|black|110|π}} constant (the ratio of a circle's circumference to its diameter).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 d = Pi()    # d == 3.141592653&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exp||Exp(float)}}&lt;br /&gt;
: Returns the natural (base-e) exponent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Exp(1) = 2.7182818&lt;br /&gt;
 Exp(0) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log||Log(float)}}&lt;br /&gt;
: Returns the natural (base-e) logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log(1) = 0.0&lt;br /&gt;
 Log(10) = 2.30259&lt;br /&gt;
 Log(Exp(1)) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log10|v2.60|Log10(float)}}&lt;br /&gt;
: Returns the common logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log10(1.0) = 0&lt;br /&gt;
 Log10(10.0) = 1.0&lt;br /&gt;
 Log10(2.0) = 0.3010299957&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pow||Pow(float base, float power)}}&lt;br /&gt;
: Returns {{FuncArg|base}} raised to a {{FuncArg|power}}.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Pow(2, 3) = 8&lt;br /&gt;
 Pow(3, 2) = 9&lt;br /&gt;
 Pow(3.45, 1.75) = 8.7334&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sqrt||Sqrt(float)}}&lt;br /&gt;
: Returns the square root of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sqrt(1) = 1.0&lt;br /&gt;
 Sqrt(2) = 1.4142&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Abs||Abs(float or int)}}&lt;br /&gt;
: Returns the absolute value of its argument (returns float for float, integer for integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Abs(-3.8) = 3.8&lt;br /&gt;
 Abs(-4) = 4&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sign||Sign(float)}}&lt;br /&gt;
: Returns the sign of the value passed as argument (1, 0 or -1).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sign(-3.5) = -1&lt;br /&gt;
 Sign(3.5) = 1&lt;br /&gt;
 Sign(0) = 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Frac||Frac(float)}}&lt;br /&gt;
: Returns the fractional portion of the value provided.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Frac(3.7) = 0.7&lt;br /&gt;
 Frac(-1.8) = -0.8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Rand||Rand([int max] [, bool scale] [, bool seed])}}&lt;br /&gt;
: Returns a random integer value. All parameters are optional. &lt;br /&gt;
:;max&lt;br /&gt;
::sets the maximum value+1 (default 32768) and can be set negative for negative results. It operates either in scaled or modulus mode (default {{FuncArg|scale}}=true only if [[#Abs|Abs]]({{FuncArg|max}}) &amp;gt; 32768, false otherwise). &lt;br /&gt;
:;scale&lt;br /&gt;
::When true, ''scales'' the internal random number generator value to the maximum value, while ''modulus mode'' ({{FuncArg|scale}}=false) uses the remainder from an integer divide of the random generator value by the maximum. Modulus mode is recommended for smaller maximums. &lt;br /&gt;
:;seed&lt;br /&gt;
::When true, seeds the random number generator with the current time. {{FuncArg|seed}} defaults to false and probably isn't necessary, although it's there just in case. &lt;br /&gt;
: Typically, this function would be used with the [[#Select|'''Select''']] function for random clips. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Select(Rand(5), clip1, clip2, clip3, clip4, clip5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Spline||Spline(float X, x1, y1, x2, y2, .... [, bool cubic])}}&lt;br /&gt;
: Interpolates the Y value at point X using the control points {{FuncArg|x1}}/{{FuncArg|y1}}, ... There have to be at least 2 x/y-pairs. The interpolation can be {{FuncArg|cubic}} (the result is a spline) or linear (the result is a polygon). Default is cubic.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Continued Numerator, Denominator =====&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(int, int, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(int, int, int limit)}}&lt;br /&gt;
: The rational pair ('''ContinuedNumerator''', '''ContinuedDenominator''') returned has the smallest possible denominator such that the absolute error is less than 1/{{FuncArg|limit}}. More information can be found on [http://en.wikipedia.org/wiki/Continued_fraction wikipedia].&lt;br /&gt;
: If {{FuncArg|limit}} is not specified in the Float case the rational pair returned is to the limit of the single precision floating point value. Thus (float)((double)Num/(double)Den) == V.&lt;br /&gt;
: In the Int case if {{FuncArg|limit}} is not specified then the normalized original values will be returned, i.e. reduced by the ''GCD'' (greatest common divisor).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ContinuedNumerator(PI(), limit=5000]) = 355&lt;br /&gt;
 ContinuedDenominator(PI(), limit=5000) = 113&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(PI(), limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(PI(), limit=50) = 7&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(355, 113, limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(355, 113, limit=50) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigonometry functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: relationships involving lengths and angles of triangles. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sin||Sin(float)}}&lt;br /&gt;
: Returns the sine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sin(Pi()/4) = 0.707&lt;br /&gt;
 Sin(Pi()/2) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cos||Cos(float)}}&lt;br /&gt;
: Returns the cosine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cos(Pi()/4) = 0.707&lt;br /&gt;
 Cos(Pi()/2) = 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tan|v2.60|Tan(float)}}&lt;br /&gt;
: Returns the tangent of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tan(Pi/4) = 1.0&lt;br /&gt;
 Tan(Pi/2) = not defined&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: 32 bit IEEE floats do not have sufficient resolution to exactly represent&lt;br /&gt;
: pi/2 so AviSynth returns a large positive number for the value slightly less&lt;br /&gt;
: than pi/2 and a large negative value for the next possible value which is&lt;br /&gt;
: slightly greater than pi/2.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Asin|v2.60|Asin(float)}}&lt;br /&gt;
: Returns the inverse of the sine of the argument (output is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Asin(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Asin(1.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Acos|v2.60|Acos(float)}}&lt;br /&gt;
: Returns the inverse of the cosine of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Acos(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Acos(0.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan|v2.60|Atan(float)}}&lt;br /&gt;
: Returns the inverse of the tangent of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan(0.707) = 0.6154085176&lt;br /&gt;
 Atan(1.0) = 0.7853981634 (~ Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan2|v2.60|Atan2(float, float)}}&lt;br /&gt;
: Returns the angle between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. Output is in radians. See [http://en.wikipedia.org/wiki/Atan2 wikipedia] for more information.&lt;br /&gt;
: y is the first argument and x is the second argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan2(1.0, 0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
 Atan2(1.0, 1.0) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Atan2(-1.0, -1.0) = -2.356194490 (~ -3Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sinh|v2.60|Sinh(float)}}&lt;br /&gt;
: Returns the hyperbolic sine of the argument. See [http://en.wikipedia.org/wiki/Hyperbolic_function wikipedia] for more information.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sinh(2.0) = 3.626860408&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cosh|v2.60|Cosh(float)}}&lt;br /&gt;
: Returns the hyperbolic cosine of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cosh(2.0) = 3.762195691&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tanh|v2.60|Tanh(float)}}&lt;br /&gt;
: Returns the hyperbolic tangent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tanh(2.0) = 0.9640275801&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bit functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: The functions are ''bitwise operators''. They manipulate individual bits within integer variables. This means that their arguments (being integers) are converted to binary numbers, the operation is performed on their bits, and the resulting binary number is converted back again.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitAnd|v2.60|BitAnd(int, int)}}&lt;br /&gt;
: Returns the bitwise AND (sets bit to 1 if both bits are 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitAnd(5, 6) = 4 # since 5 = 101, 6 = 110, and 101&amp;amp;110 = 100&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitNot|v2.60|BitNot(int)}}&lt;br /&gt;
: Returns the bit-inversion (sets bit to 1 if bit is 0 and vice-versa).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitNOT(5) = -6 &lt;br /&gt;
 # since  5 = 101,  &lt;br /&gt;
 # and ~101 = 1111 1111 1111 1111 1111 1111 1111 1010 = -6&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: 1111 1111 1111 1111 1111 1111 1111 1010 &lt;br /&gt;
::= (2^32-1)-2^0-2^2 = 2^32-(1+2^0+2^2) &lt;br /&gt;
::= (signed) -(1+2^0+2^2) = -6&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitOr|v2.60|BitOr(int, int)}}&lt;br /&gt;
: Returns the bitwise inclusive OR (sets bit to 1 if one of the bits (or both) is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitOr(5, 6) = 7 # since 5 = 101, 6 = 110, and 101|110 = 111&lt;br /&gt;
 BitOr(4, 2) = 6 # since 4 = 100, 2 = 010, and 100|010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitXor|v2.60|BitXor(int, int)}}&lt;br /&gt;
: Returns the bitwise exclusive OR (sets bit to 1 if exactly one of the bits is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitXor(5, 6) = 3 # since 5 = 101, 6 = 110, and 101^110 = 011&lt;br /&gt;
 BitXor(4, 2) = 6 # since 4 = 100, 2 = 010, and 100^010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLShift|v2.60|BitLShift(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShl|v2.60|BitShl(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSal|v2.60|BitSal(int, int)}}&lt;br /&gt;
: Shift the bits of a number to the left.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number 5 two bits to the left:&lt;br /&gt;
 BitLShift(5, 2) = 20 (since 101 &amp;lt;&amp;lt; 2 = 10100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftA|v2.60|BitRShiftA(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftS|v2.60|BitRShiftS(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSar|v2.60|BitSar(int, int)}}&lt;br /&gt;
: Shift the bits of an integer to the right. (Arithmetic, Sign bit fill, Right Shift)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as signed:&lt;br /&gt;
 BitRShiftA(-42, 1) = -21 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1  &lt;br /&gt;
 #      = 1111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right, unsigned =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftL|v2.60|BitRShiftL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftU|v2.60|BitRShiftU(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShr|v2.60|BitShr(int, int)}}&lt;br /&gt;
: Shift the bits of an unsigned integer to the right. (Logical, zero fill, Right Shift)&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as unsigned:&lt;br /&gt;
 BitRShiftL(-42, 1) = 2147483627 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1 &lt;br /&gt;
 #      = 0111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: -42 = -(1+2^0+2^3+2^5) = (unsigned) (2^32-1)-(2^0+2^3+2^5) = &lt;br /&gt;
::1111 1111 1111 1111 1111 1111 1101 0110&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLRotate|v2.60|BitLRotate(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRol|v2.60|BitRol(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the left by the number of bits specified in the second operand. For each rotation specified, the high order bit that exits from the left of the operand returns at the right to become the new low order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number -2147483642 one bit to the left:&lt;br /&gt;
 BitLRotate(-2147483642, 1) = 13 &lt;br /&gt;
 # (since 10000000000000000000000000000110 ROL 1&lt;br /&gt;
 #      = 00000000000000000000000000001101)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRRotate|v2.60|BitRRotateL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRor|v2.60|BitRor(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the right by the number of bits specified in the second operand. For each rotation specified, the low order bit that exits from the right of the operand returns at the left to become the new high order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number 13 one bit to the right:&lt;br /&gt;
 BitRRotate(13, 1) = -2147483642 &lt;br /&gt;
 # (since 00000000000000000000000000001101 ROR 1 &lt;br /&gt;
 #      = 10000000000000000000000000000110)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit test =====&lt;br /&gt;
{{ScriptFunctionCode|BitTest|v2.60|BitTest(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitTst|v2.60|BitTst(int, int)}}&lt;br /&gt;
: Tests a single bit (that is, it returns true if its state is one, else it returns false). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Check the state of the fourth bit:&lt;br /&gt;
 BitTest(3, 4) = False&lt;br /&gt;
 BitTest(19, 4) = True&lt;br /&gt;
 &lt;br /&gt;
 Check the state of the sign bit:&lt;br /&gt;
 BitTest(-1, 31) = True&lt;br /&gt;
 BitTest(2147483647, 31) = False&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSet|v2.60|BitSet(int, int)}}&lt;br /&gt;
: Sets a single bit to one (so it sets its state to one). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Set the state of the fourth bit to one:&lt;br /&gt;
 BitSet(3, 4) = 19&lt;br /&gt;
 BitSet(19, 4) = 19&lt;br /&gt;
 &lt;br /&gt;
 Set the state of the sign bit to one:&lt;br /&gt;
 BitSet(-1, 31) = -1&lt;br /&gt;
 BitSet(2147483647, 31) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSetCount||BitSetCount(int [, int...])}} {{AvsPluscon}}&lt;br /&gt;
: Returns the total number of set bits in all supplied integer arguments.&lt;br /&gt;
&lt;br /&gt;
===== Bit clear =====&lt;br /&gt;
{{ScriptFunctionCode|BitClear|v2.60|BitClear(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitClr|v2.60|BitClr(int, int)}}&lt;br /&gt;
: Sets a single bit to zero (so it sets its state to zero). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Clear the bits of the number 5&lt;br /&gt;
 BitClear(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitClear(5, 1) = 5 (second bit is already zero)&lt;br /&gt;
 BitClear(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitClear(5, 3) = 5 (fourth bit is already zero)&lt;br /&gt;
 &lt;br /&gt;
 Clear the state of the sign bit:&lt;br /&gt;
 BitClear(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit change =====&lt;br /&gt;
{{ScriptFunctionCode|BitChange|v2.60|BitChange(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitChg|v2.60|BitChg(int, int)}}&lt;br /&gt;
: Sets a single bit to its complement (so it changes the state of a single bit; 1 becomes 0 and vice versa). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero). The sign bit is bit 31.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Change the state of the a bit of the number 5:&lt;br /&gt;
 BitChange(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitChange(5, 1) = 7 (second bit is set to one)&lt;br /&gt;
 BitChange(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitChange(5, 3) = 13 (fourth bit is set to one)&lt;br /&gt;
 &lt;br /&gt;
 Change the state of the sign bit:&lt;br /&gt;
 BitChange(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Runtime functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These are internal functions which are evaluated at every frame. They can be used inside the scripts passed to runtime filters ([[ConditionalFilter]], [[ScriptClip]], [[FrameEvaluate]]) to return information for a frame.&lt;br /&gt;
&lt;br /&gt;
===== Average ===== &lt;br /&gt;
{{ScriptFunctionCode|AverageLuma||AverageLuma(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaU||AverageChromaU(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaV||AverageChromaV(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageB||AverageB(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageG||AverageG(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageR||AverageR(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value with the average pixel value of a plane (Luma, U-chroma and V-chroma, respectively). They require an [[ISSE]] capable cpu. In v2.61 an {{FuncArg|offset}} argument is added which enables you to access other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ScriptClip(Last, &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     threshold = 55&lt;br /&gt;
     luma = AverageLuma ## gives the average luma of the current frame&lt;br /&gt;
     #luma = AverageLuma(1) ## gives the average luma of the next frame&lt;br /&gt;
     luma &amp;lt; threshold &lt;br /&gt;
     \ ? Levels(0, 1.0+0.5*(threshold-luma)/threshold, 255, 0, 255) &lt;br /&gt;
     \ : last&lt;br /&gt;
     Subtitle(&amp;quot;luma=&amp;quot; + String(luma), align=2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference =====&lt;br /&gt;
{{ScriptFunctionCode|LumaDifference||LumaDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaUDifference||ChromaUDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaVDifference||ChromaVDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifference||RGBDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifference||BDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifference||GDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifference||RDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value between 0 and 255 of the absolute difference between two planes from two different clips &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. They require an [[ISSE]] capable cpu.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ovl = [[Overlay]](last, mov_star, x=some_xvalue, y=some_yvalue, mask=mov_mask)&lt;br /&gt;
 ldif = LumaDifference(ovl) # implicit last for clip1&lt;br /&gt;
 udif = ChromaUDifference([[Tweak]](hue=24), ovl)&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference from previous =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceFromPrevious||YDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceFromPrevious||UDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceFromPrevious||VDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceFromPrevious||RGBDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceFromPrevious||BDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceFromPrevious||GDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceFromPrevious||RDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and previous frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious) &amp;gt; threshold)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference to next =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceToNext||YDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceToNext||UDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceToNext||VDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceToNext||RGBDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceToNext||BDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceToNext||GDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceToNext||RDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and next frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the difference between the RGB, luma or chroma plane of the current frame and of ''any'' other frame. Note that for example clip.'''RGBDifferenceToNext'''(-1) = clip.'''RGBDifferenceToPrevious''', and clip.'''RGBDifferenceToNext'''(0) = 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # both th1, th2 are positive thresholds; th1 is larger enough than th2&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious &amp;gt; th1) &amp;amp;&amp;amp; (YDifferenceToNext &amp;lt; th2)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Color plane median, min, max, range =====&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMedian||YPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMedian||UPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMedian||VPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMedian||BPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMedian||GPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMedian||RPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMin||YPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMin||UPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMin||VPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMin||BPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMin||GPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMin||RPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMax||YPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMax||UPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMax||VPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMax||BPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMax||GPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMax||RPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMinMaxDifference||YPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMinMaxDifference||UPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMinMaxDifference||VPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMinMaxDifference||BPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMinMaxDifference||GPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMinMaxDifference||RPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
: This group of functions return statistics about the distribution of pixel values on a plane (Luma, U-chroma and V-chroma, respectively). The statistics are, in order of presentation: maximum, minimum, median and range (maximum - minimum difference). &lt;br /&gt;
: {{FuncArg|threshold}} is a percentage, stating how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the statistics of other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # median and average are close only on even distributions; &lt;br /&gt;
 # this can be a useful diagnostic&lt;br /&gt;
 have_intense_brights = YPlaneMedian() - AverageLuma() &amp;lt; threshold&lt;br /&gt;
 ...&lt;br /&gt;
 # a simple per-frame normalizer to [16..235], CCIR, range&lt;br /&gt;
 [[Levels]](YPlaneMin(), 1.0, YPlaneMax(), 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth script information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptName|v2.60|ScriptName()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 name = ScriptName() # name = &amp;quot;F:\ProjectXYZ\video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptNameUtf8|{{AvsPluscon}}|ScriptNameUtf8()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFile|v2.60|ScriptFile()}}&lt;br /&gt;
: Returns the filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 file = ScriptFile() # file = &amp;quot;video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFileUtf8|{{AvsPluscon}}|ScriptFileUtf8()}}&lt;br /&gt;
: Returns the filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDir|v2.60|ScriptDir()}}&lt;br /&gt;
: Returns the path of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 folder = ScriptDir() # folder = &amp;quot;F:\ProjectXYZ&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDirUtf8|{{AvsPluscon}}|ScriptDirUtf8()}}&lt;br /&gt;
: Returns the path of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetLogParams|{{AvsPluscon}}|SetLogParams([string ''target'', int ''level''])}}&lt;br /&gt;
: Sets a file path for a log file, used by [[#LogMsg|LogMsg]] and internal error reporting.&lt;br /&gt;
:* {{FuncArg|target}} names a file which will be created when the script loads. If attempting to create or write to {{FuncArg|target}} fails, the script will raise an error immediately. If the file exists, new log entries will be appended to the end. If omitted, {{FuncArg|target}} defaults to [[wikipedia:Stderr|stderr]].&lt;br /&gt;
:* {{FuncArg|level}} sets the log ''verbosity''; it can be one of the following:&lt;br /&gt;
::{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_ERROR&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(1)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the fewest log entries&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_WARNING&amp;lt;/tt&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(2)&amp;lt;/small&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the most log entries&lt;br /&gt;
|}&lt;br /&gt;
::If omitted, {{FuncArg|level}} defaults to &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
:''Examples'' see [[#LogMsg|LogMsg]] below.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LogMsg|{{AvsPluscon}}|LogMsg(string, int)}}&lt;br /&gt;
: Creates a new log entry.&lt;br /&gt;
:* {{FuncArg|string}} (required) specifies the log message.&lt;br /&gt;
:* {{FuncArg|int}} (required) specifies the log entry level: see [[#SetLogParams|SetLogParams]] above.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## creating file and set path for future log entries:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test1.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents:''&lt;br /&gt;
 (empty)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging an INFO message:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test2.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 LogMsg(&amp;quot;this is a test&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ''log contents:''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: this is a test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging a script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test3.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents (redundant entries are common):''&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 35)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging INFO context for script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test4.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 function MyFunction(clip C)&lt;br /&gt;
 {&lt;br /&gt;
     C&lt;br /&gt;
     [[Control_structures|try]] {&lt;br /&gt;
         foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
     } catch (err_msg) {&lt;br /&gt;
         msg2 = &amp;quot;Error in MyFunction: &amp;quot;&lt;br /&gt;
         LogMsg([[#Time|Time]](&amp;quot;%Y-%m-%d %I:%M:%S %p, %z&amp;quot;) + &amp;quot;: &amp;quot; + msg2, LOG_INFO)&lt;br /&gt;
         #[[#Assert|Assert]](false, msg2 + err_msg) ## optional: stop script, else continue&lt;br /&gt;
     }&lt;br /&gt;
     return Last&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ''log contents (redundant entries omitted):''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: 2017-11-12 11:03:41 AM, -0500: Error in MyFunction:&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|GetProcessInfo|{{AvsPluscon}}|GetProcessInfo(int)}}&lt;br /&gt;
: Returns information about the [[wikipedia:Process_(computing)|process]] the script is running in.&lt;br /&gt;
: The ''int'' argument has two legal values:&lt;br /&gt;
:* if ''0'' (default), returns ''64'' for a 64-bit process or ''32'' for a 32-bit process.&lt;br /&gt;
:* else if ''1'',&lt;br /&gt;
:** returns 0 for 32-bit process on 32-bit OS;&lt;br /&gt;
:** returns 1 for 32-bit process on 64-bit OS;&lt;br /&gt;
:** returns 2 for 64-bit process on 64-bit OS;&lt;br /&gt;
:** else returns -1 (unknown)&lt;br /&gt;
:: /// [[TODO]] this is preliminary info&lt;br /&gt;
&lt;br /&gt;
== String functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common operations on string variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LCase||LCase(string)}}&lt;br /&gt;
: Returns lower case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;avisynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|UCase||UCase(string)}}&lt;br /&gt;
: Returns upper case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 UCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;AVISYNTH&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrToUtf8||StrToUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from ANSI to [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrFromUtf8||StrFromUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from [[wikipedia:UTF-8|UTF8]] to ANSI.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrLen||StrLen(string)}}&lt;br /&gt;
: Returns length of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrLen(&amp;quot;AviSynth&amp;quot;) = 8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RevStr||RevStr(string)}}&lt;br /&gt;
: Returns {{FuncArg|string}} backwards.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RevStr(&amp;quot;AviSynth&amp;quot;) = &amp;quot;htnySivA&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LeftStr||LeftStr(string, int)}}&lt;br /&gt;
: Returns first {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LeftStr(&amp;quot;AviSynth&amp;quot;, 3) = &amp;quot;Avi&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RightStr||RightStr(string, int)}}&lt;br /&gt;
: Returns last {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RightStr(&amp;quot;AviSynth&amp;quot;, 5) = &amp;quot;Synth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MidStr||MidStr(string, int pos [, int length])}}&lt;br /&gt;
: Returns substring starting at {{FuncArg|pos}} for optional {{FuncArg|length}} or to end. {{FuncArg|pos}}=1 specifies start.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MidStr(&amp;quot;AviSynth&amp;quot;, 3, 2) = &amp;quot;iS&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FindStr||FindStr(string, substring)}}&lt;br /&gt;
: Returns (1-based) position of {{FuncArg|substring}} within {{FuncArg|string}} &lt;br /&gt;
:* Note this function is case-sensitive. &lt;br /&gt;
:* Returns 0 if {{FuncArg|substring}} is not found.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;Syn&amp;quot;) ## returns 4&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;SYN&amp;quot;) ## returns 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ReplaceStr|{{AvsPluscon}}|ReplaceStr(string, substring, replacement_string [, bool sig])}}&lt;br /&gt;
: Replaces occurrences of {{FuncArg|substring}} with {{FuncArg|replacement_string}} and returns the result. &lt;br /&gt;
:* {{FuncArg|sig}} if false (the default), search is case-sensitive; if true, search is not case-sensitive.&lt;br /&gt;
:* Avisynth 2.6.x users have other options, such as the [[User_defined_script_functions|user]] function below, adapted from ''StrReplace'', found [[HDColorBars|here]].&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 function ReplaceStr(string base, string sought, string repstr) {&lt;br /&gt;
     pos = FindStr(base, sought)&lt;br /&gt;
     return (sought==&amp;quot;&amp;quot; || pos==0) ? base : ReplaceStr(&lt;br /&gt;
     \       LeftStr(base, pos-1) + repstr +&lt;br /&gt;
     \       MidStr(base, pos+StrLen(sought)),&lt;br /&gt;
     \       sought, repstr)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ReplaceStr(&amp;quot;FlipHorizontal&amp;quot;, &amp;quot;Horizontal&amp;quot;, &amp;quot;Vertical&amp;quot;)&lt;br /&gt;
 ReplaceStr(&amp;quot;''$a'' x *&amp;quot;, &amp;quot;''$a''&amp;quot;, String(1.5)) ## (a [[MaskTools2|MaskTools]] expression with argument)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FillStr|v2.60|FillStr(int [, string])}}&lt;br /&gt;
: Fills a string. When {{FuncArg|int}}&amp;gt;1 it concatenates the {{FuncArg|string}} {{FuncArg|int}} times. {{FuncArg|string}} is &amp;quot;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;quot; (space) by default.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 FillStr(1, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynth&amp;quot;&lt;br /&gt;
 FillStr(2, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynthAviSynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmp|v2.60|StrCmp(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) != 0 # strings are not equal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmpi|v2.60|StrCmpi(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is not case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;abcz&amp;quot;, &amp;quot;abcdefg&amp;quot;) != 0 &lt;br /&gt;
 # returns the difference betweeen &amp;quot;z&amp;quot; and &amp;quot;d&amp;quot; (which is positive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TrimLeft, TrimRight, TrimAll =====&lt;br /&gt;
{{ScriptFunctionCode|TrimLeft||TrimLeft(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimRight||TrimRight(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimAll||TrimAll(string)}}&lt;br /&gt;
: {{AvsPluscon}} Removes whitespace characters (space, tab, [[wikipedia:Non-breaking_space|nonbreaking space]]) from the ''left, right,'' or ''both'' ends of a string.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Chr||Chr(int)}}&lt;br /&gt;
: Returns the ASCII character. &lt;br /&gt;
: Note that characters above the ASCII character set (ie above 127) are code page dependent and may render different (visual) results in different systems. This has an importance only for user-supplied localised text messages.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Chr(34) returns the quote character&lt;br /&gt;
 Chr(9)  returns the tab   character&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ord|v2.60|Ord(string)}}&lt;br /&gt;
: Gives the ordinal number (character code) of the first character of {{FuncArg|string}} (works like php [http://php.net/manual/en/function.ord.php ord] or Basic [http://msdn.microsoft.com/en-us/library/xfw01fx4%28v=vs.84%29.aspx Asc])&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ord(&amp;quot;a&amp;quot;) = 97&lt;br /&gt;
 Ord(&amp;quot;AviSynth&amp;quot;) = Ord(&amp;quot;A&amp;quot;) = 65&lt;br /&gt;
 Ord(&amp;quot;§&amp;quot;) = 167&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Time||Time(string)}}&lt;br /&gt;
: Returns a string with the current system time formatted as defined by {{FuncArg|string}}.&lt;br /&gt;
&lt;br /&gt;
: The string may contain any of the codes for output formatting presented below:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; | Code&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; | Description&lt;br /&gt;
 |-&lt;br /&gt;
 |%a&lt;br /&gt;
%A  &lt;br /&gt;
 | Abbreviated weekday name&lt;br /&gt;
Full weekday name&lt;br /&gt;
 |-&lt;br /&gt;
 |%b&lt;br /&gt;
%B  &lt;br /&gt;
 | Abbreviated month name&lt;br /&gt;
Full month name&lt;br /&gt;
 |-&lt;br /&gt;
 |%c  &lt;br /&gt;
 | Date and time representation appropriate for locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%d  &lt;br /&gt;
 | Day of month as decimal number (01 - 31)&lt;br /&gt;
 |-&lt;br /&gt;
 |%H&lt;br /&gt;
%I  &lt;br /&gt;
 | Hour in 24-hour format (00 - 23)&lt;br /&gt;
Hour in 12-hour format (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%j  &lt;br /&gt;
 | Day of year as decimal number (001 - 366)&lt;br /&gt;
 |-&lt;br /&gt;
 |%m  &lt;br /&gt;
 | Month as decimal number (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%M  &lt;br /&gt;
 | Minute as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%p  &lt;br /&gt;
 | Current locale's A.M./P.M. indicator for 12-hour clock&lt;br /&gt;
 |-&lt;br /&gt;
 |%S  &lt;br /&gt;
 | Second as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%U  &lt;br /&gt;
 | Week of year as decimal number, with Sunday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%w  &lt;br /&gt;
 | Weekday as decimal number (0 - 6; Sunday is 0)&lt;br /&gt;
 |-&lt;br /&gt;
 |%W  &lt;br /&gt;
 | Week of year as decimal number, with Monday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%x  &lt;br /&gt;
 | Date representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%X  &lt;br /&gt;
 | Time representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%y&lt;br /&gt;
%Y  &lt;br /&gt;
 | Year without century, as decimal number (00 - 99)&lt;br /&gt;
Year ''with'' century, as decimal number&lt;br /&gt;
 |-&lt;br /&gt;
 |%z, %Z  &lt;br /&gt;
 | Time-zone name or abbreviation; no characters if time zone is unknown&lt;br /&gt;
 |-&lt;br /&gt;
 |%%  &lt;br /&gt;
 | Percent sign &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
: The '#' flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; |Code with '#' flag&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; |Change in meaning&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''a''', %#'''A''', %#'''b''', &lt;br /&gt;
%#'''B''', %#'''p''', %#'''X''', &lt;br /&gt;
%#'''z''', %#'''Z''', %#'''%'''&lt;br /&gt;
 | No change; flag is ignored. &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''c''' &lt;br /&gt;
 | Long date and time representation, appropriate for current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995, 12:41:29&amp;quot;'' &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''x''' &lt;br /&gt;
 | Long date representation, appropriate to current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995&amp;quot;''&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''d''', %#'''H''', %#'''I''', &lt;br /&gt;
%#'''j''', %#'''m''', %#'''M''', &lt;br /&gt;
%#'''S''', %#'''U''', %#'''w''', &lt;br /&gt;
%#'''W''', %#'''y''', %#'''Y''' &lt;br /&gt;
 | Remove leading zeroes (if any).&lt;br /&gt;
 |}&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 v = Time(&amp;quot;%Y-%m-%d&amp;quot;)        # &amp;quot;2010-03-01&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%d-%b-%Y&amp;quot;)        # &amp;quot;01-Mar-2010&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%#d/%#m/%y&amp;quot;)      # &amp;quot;1/3/10&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%I:%M:%S %p, %z&amp;quot;) # &amp;quot;08:04:42 PM, GMT Standard Time&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%H:%M:%S %z&amp;quot;)     # &amp;quot;20:04:42 GMT Standard Time&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth version information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionNumber||VersionNumber()}}&lt;br /&gt;
: Returns AviSynth version number as a float.&lt;br /&gt;
:* Note: use [[#VersionString|VersionString]] below to determine if running in [[AviSynth+]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionNumber ## returns 2.60 (release version as of 11/2017)&lt;br /&gt;
 VersionNumber ## returns 2.61 (beta)&lt;br /&gt;
 VersionNumber ## returns 2.60 (AVS+ release 2508)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionString||VersionString()}}&lt;br /&gt;
: Returns AviSynth version info as a string (first line used in [[Version]]() command).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.60, build:Mar 31 2015 [16:38:54]&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.61, build:May 17 2016 [16:06:18] VC2008Exp&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth+ 0.1, (r2508, MT, x86_64)&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function IsAvsPlus()&lt;br /&gt;
 {&lt;br /&gt;
     sVer = [[#LCase|LCase]](VersionString) &lt;br /&gt;
     return ([[#FindStr|FindStr]](sVer, &amp;quot;avisynth+&amp;quot;)    &amp;gt; 0)&lt;br /&gt;
     \   || (FindStr(sVer, &amp;quot;avisynthplus&amp;quot;) &amp;gt; 0)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other helper functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: Non-categorized functions&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BuildPixelType||string BuildPixelType(string family, int bits, int chroma, bool compat, bool oldnames, clip sample_clip)}} {{AvsPluscon}}&lt;br /&gt;
: Creates a video format (pixel_type) string by giving a colorspace family, bit depth, optional chroma subsampling and/or a &lt;br /&gt;
: template clip, from which the undefined format elements are inherited.&lt;br /&gt;
: &lt;br /&gt;
:* string {{FuncArg|family}}&lt;br /&gt;
:: defines color family: &amp;quot;Y&amp;quot;, &amp;quot;YUV&amp;quot;, &amp;quot;YUVA&amp;quot;, &amp;quot;RGB&amp;quot;, &amp;quot;RGBA&amp;quot;&lt;br /&gt;
:: use &amp;quot;RGB&amp;quot; for both planar RGB and classic packed RGB24 and RGB48 - {{FuncArg|compat}} switches to classic formats &lt;br /&gt;
:* int {{FuncArg|bits}}&lt;br /&gt;
:: intended bit depth: 8, 10, 12, 14, 16, 32. In Avisynth+ 8-16 bits are integer formats, 32 bit is float&lt;br /&gt;
:* int {{FuncArg|chroma}}&lt;br /&gt;
:: chroma subsampling: 411, 420, 422, 444. Applies for YUV(A) formats. Ignored for RGB(A) and Y&lt;br /&gt;
:* bool {{FuncArg|compat}} default false&lt;br /&gt;
:: When set to true, function returns packed RGB(A) formats instead of planar RGB(A) (e.g. &amp;quot;RGB48&amp;quot; instead of &amp;quot;RGBP16&amp;quot;), when applicable&lt;br /&gt;
:* bool {{FuncArg|oldnames}} default false&lt;br /&gt;
:: when true, function returns &amp;quot;YV12&amp;quot;, &amp;quot;YV16&amp;quot;, &amp;quot;YV24&amp;quot; instead of &amp;quot;YUV420P8&amp;quot;, &amp;quot;YUV422P8&amp;quot; and &amp;quot;YUV444P8&amp;quot; respectively&lt;br /&gt;
:* clip {{FuncArg|sample_clip}} when given, the clip serves as the base format, all optional parameters (bits, subsampling) will modify only its respective properties&lt;br /&gt;
&lt;br /&gt;
:* see also: use [[#Other_helper_functions|ColorSpaceNameToPixelType]] to convert a colorspace string to an integer pixel_type&lt;br /&gt;
''Examples:'' &lt;br /&gt;
&lt;br /&gt;
:: define &amp;quot;YUV444P10&amp;quot;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 family = &amp;quot;YUV&amp;quot;&lt;br /&gt;
 bits = 10&lt;br /&gt;
 chroma = 444&lt;br /&gt;
 compat = false&lt;br /&gt;
 oldformat = false&lt;br /&gt;
 s = BuildPixelType(family, bits, chroma, compat, oldformat)&lt;br /&gt;
 BlankClip(width=320,height=200,length=len,pixel_type=s,color=$008080).Info()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: Change only bit depth to 16, sample format is of an existing clip&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 newbits = 16&lt;br /&gt;
 c = last&lt;br /&gt;
 s = BuildPixelType(bits=newbits, sample_clip=c)&lt;br /&gt;
 BlankClip(width=320,height=200,length=len,pixel_type=s,color=$008080).Info()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ColorSpaceNameToPixelType||int ColorSpaceNameToPixelType(string)}} {{AvsPluscon}}&lt;br /&gt;
: Creates a video format (pixel_type) by providing a colorspace name&lt;br /&gt;
: &lt;br /&gt;
:* some formats have multiple valid names: &amp;quot;YV12&amp;quot; is identical to &amp;quot;YUV420P8&amp;quot;, &amp;quot;YV16&amp;quot; = &amp;quot;YUV422P8&amp;quot;, &amp;quot;YV24&amp;quot; = &amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[AviSynth Syntax]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_functions]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;br /&gt;
[[Category:Scripting_Basics]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_functions</id>
		<title>Internal functions</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_functions"/>
				<updated>2019-01-06T23:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: /* VarExist */ was 'VarExists'&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;
&amp;lt;div style=&amp;quot;max-width:64em&amp;quot; &amp;gt;&lt;br /&gt;
In addition to [[Internal_filters|internal filters]] AviSynth has a fairly large number of other (non-clip) internal functions. &lt;br /&gt;
&lt;br /&gt;
The input or/and output of these functions are not clips, but some other variables which can be used in a script. &lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Short Contents:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
# [[#Boolean_functions|Boolean functions]]&lt;br /&gt;
# [[#Control_functions|Control functions]]&lt;br /&gt;
# [[#Global_options|Global options]]&lt;br /&gt;
# [[#Conversion_functions|Conversion functions]]&lt;br /&gt;
# [[#Numeric_functions|Numeric functions]]&lt;br /&gt;
# [[#Trigonometry_functions|Trigonometry functions]]&lt;br /&gt;
# [[#Bit_functions|Bit functions]]&lt;br /&gt;
# [[#Runtime_functions|Runtime functions]]&lt;br /&gt;
# [[#Script_functions|Script functions]]&lt;br /&gt;
# [[#String_functions|String functions]]&lt;br /&gt;
# [[#Version_functions|Version functions]]&lt;br /&gt;
# [[#Other_helper_functions|Other helper functions]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:4em;&amp;quot; |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolean functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These return true or false, if the condition that they test holds or not, respectively.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsBool||IsBool(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the bool type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b = false&lt;br /&gt;
 IsBool(b) = true&lt;br /&gt;
 IsBool(1 &amp;lt; 2 &amp;amp;&amp;amp; 0 == 1) = true&lt;br /&gt;
 IsBool(123) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsClip||IsClip(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the clip type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 c = [[AviSource]](...)&lt;br /&gt;
 IsClip(c) = true&lt;br /&gt;
 IsClip(&amp;quot;c&amp;quot;) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsFloat||IsFloat(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the float type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 f = [[Internal_functions/Numeric_functions|Sqrt]](2)&lt;br /&gt;
 IsFloat(f) = true&lt;br /&gt;
 IsFloat(true) = false&lt;br /&gt;
 IsFloat(&amp;quot;42.&amp;quot;) = false&lt;br /&gt;
 IsFloat(2) = true   # ''ints are considered to be floats by this function''&lt;br /&gt;
 IsReallyFloat(2) = false # see below&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: As a workaround for the issue noted above, you may use the following [[User_functions|user function]]:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|3}} &amp;gt;&lt;br /&gt;
 ## return true for floats only&lt;br /&gt;
 function IsReallyFloat(val v)&lt;br /&gt;
 {&lt;br /&gt;
     return (IsInt(v)==false) &amp;amp;&amp;amp; IsFloat(v)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsInt||IsInt(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the int type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsInt(2) = true&lt;br /&gt;
 IsInt(2.1) = false&lt;br /&gt;
 IsInt(true) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsString||IsString(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the string type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsString(&amp;quot;test&amp;quot;) = true&lt;br /&gt;
 IsString(2.3) = false&lt;br /&gt;
 IsString([[Internal_functions/Conversion_functions|String]](2.3)) = true&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exist||Exist(filename)}}&lt;br /&gt;
: Tests if the file specified by {{FuncArg|filename}} exists.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 filename = ...&lt;br /&gt;
 clp = Exist(filename) &lt;br /&gt;
 \ ? [[AviSource]](filename) &lt;br /&gt;
 \ : [[Internal_functions/Control_functions|Assert]](false, &amp;quot;file: &amp;quot; + filename + &amp;quot; does not exist&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Defined||Defined(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is defined. Can be used inside [[Script_functions]] to test if an optional argument has been given an explicit value.&lt;br /&gt;
: More formally, the function returns false if its argument (normally a function argument or variable) has the void ('undefined') type, otherwise it returns true.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b_arg_supplied = Defined(arg)&lt;br /&gt;
 myvar = b_arg_supplied ? ... : ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FunctionExists|{{AvsPluscon}}|FunctionExists(name)}}&lt;br /&gt;
: Tests if the function or filter name is defined in the script.&lt;br /&gt;
: {{FuncArg|name}} can be any string &amp;amp;ndash; it does not need to be a [[Script_variables#Variable_Names|legal name]].&lt;br /&gt;
: ''Example'' &amp;amp;ndash; see [[#Apply|Apply]] below&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|InternalFunctionExists|{{AvsPluscon}}|InternalFunctionExists(name)}}&lt;br /&gt;
: Tests if the function, filter or [[Clip_properties|property]] name is defined natively within [[AviSynth+]].&lt;br /&gt;
:* Unlike [[#FunctionExists|FunctionExists]], returns ''false'' for [[Plugins|external plugins]] and [[User_functions|user-defined functions]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VarExist|{{AvsPluscon}}|VarExist(name)}}&lt;br /&gt;
: Tests if the variable exists or not. Note: if variable exists, it returns true regardless of the &amp;quot;defined&amp;quot; state of the variable&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Control functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These facilitate flow of control (loading of scripts, arguments checks, global settings adjustment, etc.).&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Apply||Apply(string ''func_string'' [, arg1 [, arg2 [, ... [, arg''n'']]]] )}}&lt;br /&gt;
: Calls the function or filter {{FuncArg|func_string}} with arguments {{FuncArg|arg1}}, {{FuncArg|arg2}}, ..., {{FuncArg|arg''n''}} (as many as supplied). &lt;br /&gt;
:* This provides a way to call a function or filter '''by name''', with arguments.&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;f(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[[#Eval|Eval]](&amp;quot;f(&amp;quot; + String(x) + &amp;quot;)&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* Note that the clip argument must be supplied explicitly - the [[Last|special variable ''Last'']] is not used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically  &lt;br /&gt;
 new_width = 352&lt;br /&gt;
 new_height = 288&lt;br /&gt;
 &lt;br /&gt;
 Apply(&amp;quot;[[BicubicResize]]&amp;quot;, Last, new_width, new_height)&lt;br /&gt;
 # Note that the clip argument must be supplied - 'Last' is not implicitly assumed&lt;br /&gt;
 &lt;br /&gt;
 ## the same action, using [[#Eval|Eval]]&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + String(new_width) + &amp;quot;,&amp;quot; + String(new_height) + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists (AviSynth 2.6)&lt;br /&gt;
 function MyFilter(clip C, string s) { &lt;br /&gt;
     return C.[[Subtitle]](&amp;quot;MyFilter: &amp;quot;+s, align=5)&lt;br /&gt;
 }&lt;br /&gt;
 ColorBars &lt;br /&gt;
 [[Control_structures|try]] {&lt;br /&gt;
     Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;)&lt;br /&gt;
 } catch (err_msg) {&lt;br /&gt;
     # (ignore)&lt;br /&gt;
 }&lt;br /&gt;
 return Last&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists ([[AviSynth+|AVS+]] only)&lt;br /&gt;
 ColorBars  &lt;br /&gt;
 return [[#FunctionExists|FunctionExists]](&amp;quot;MyFilter&amp;quot;) &lt;br /&gt;
 \ ? Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;) &lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Eval||Eval(expression [, string ''name''])}}&lt;br /&gt;
: Evaluates an arbitrary {{FuncArg|expression}} and returns the result of that evaluation. '''It works exactly like [[#Import|Import]] below''', except&lt;br /&gt;
:* The expression to be evaluated comes from a string instead of a file; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are not changed;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is not changed.&lt;br /&gt;
: Argument {{FuncArg|name}} will be shown in the error message beside the script name. Both will be followed with the line number in {{FuncArg|expression}} where the error occurred.&lt;br /&gt;
&lt;br /&gt;
: Variables in your calling script are available within {{FuncArg|expression}}; [[Global|global variables]] are not required.&lt;br /&gt;
: Note '''Eval''' can return the result of ''any'' valid expression; usually a clip, but also a string, boolean etc.&lt;br /&gt;
: You can use '''Eval''' to construct and evaluate expressions dynamically inside your scripts, based on variable input data.&lt;br /&gt;
: '''Eval''' is useful as a [[Control_structures|control structure]] for creating multi-line ''block statements'' without requiring [[AviSynth%2B|AviSynth+]].&lt;br /&gt;
: '''Eval''' can be used to put aside the need to install external plugins if they are not actually used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically &lt;br /&gt;
 ## calls [[BicubicResize]](last, 352, 288)&lt;br /&gt;
 settings = &amp;quot;352, 288&amp;quot;&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + settings + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## if...else [[Control_structures|control structure]]&lt;br /&gt;
 option = true&lt;br /&gt;
 option  &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[Levels]](0, 1.2, 255, 20, 235)&lt;br /&gt;
     [[Spline36Resize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;) &lt;br /&gt;
 \ : '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[BicubicResize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.3)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it is needed; &lt;br /&gt;
 ## in this example, [[SMDegrain]] only needs to be installed if the option is ''true''.&lt;br /&gt;
 option = false&lt;br /&gt;
 option &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     SMDegrain(tr=2, thSAD=250, contrasharp=true, refinemotion=true, lsb=true)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## accessing script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=[[Subtitle]](&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;A&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## setting script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;B = A.Invert&amp;quot;)&lt;br /&gt;
 return B ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Increment a global variable, based on a local variable&lt;br /&gt;
 Eval(&amp;quot;global my_counter = my_counter + &amp;quot; + [[#String|String]](increment)) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## multi-line example with comment and line continuation&lt;br /&gt;
 '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[BicubicResize]](352, 288)&lt;br /&gt;
 #FlipVertical&lt;br /&gt;
 Subtitle(&lt;br /&gt;
 \   &amp;quot;Width  = &amp;quot;  + [[#String|String]]([[Clip_properties|Width]]) + &amp;quot;\n&amp;quot;&lt;br /&gt;
 \ + &amp;quot;Height = &amp;quot; + String(Height)&lt;br /&gt;
 \ , align=7, lsp=0)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Empty expression &lt;br /&gt;
 ## results in error: 'Defined(u) == false'&lt;br /&gt;
 u = Eval(&amp;quot;#&amp;quot;)   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Error reporting&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, size=Height, align=2)&lt;br /&gt;
 Eval(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;, '''&amp;quot;eval_test_1&amp;quot;''') ## name for error reporting purposes&lt;br /&gt;
 return Last&lt;br /&gt;
 &lt;br /&gt;
 ''results in the error message:''&lt;br /&gt;
 Script error: there is no function named &amp;quot;foo&amp;quot;&lt;br /&gt;
 '''(eval_test_1, line 3)'''&lt;br /&gt;
 (E:\_test.avs, line 6)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Import||Import(filename)}}&lt;br /&gt;
{{ScriptFunctionCode|Import||Import(filename [, ...] [, bool utf8])}} {{AvsPluscon}}&lt;br /&gt;
: Evaluates the contents of another script and returns the result of that evaluation. '''It works exactly like [[#Eval|Eval]] above''', except&lt;br /&gt;
:* The expression to be evaluated comes from a file instead of a string; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are set to the current (imported) script;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is [[Internal_functions#SetWorkingDir|set]] to the current (imported) script.&lt;br /&gt;
:* {{FuncArg|utf8}} {{AvsPluscon}} if true, assumes filename(s) are [[wikipedia:UTF-8|UTF8]], else (default), assume ANSI.&lt;br /&gt;
&lt;br /&gt;
:[[Script_functions|Functions]], [[Script_variables|variables]] and loaded plugins declared inside the imported script are made available to the parent script. &amp;lt;b&amp;gt;Import&amp;lt;/b&amp;gt;'s return value  can be assigned to a variable of the parent script; this is most useful when the imported script ends with a clip.&lt;br /&gt;
&lt;br /&gt;
: Typically '''Import''' is used to make library functions available to the parent script, and the return value is not used. However this is simply a convention; it is not enforced by the [[AviSynth Syntax]]. Some indicative uses of '''Import''' include:&lt;br /&gt;
:* Storing multiple script-functions, variables and global variables for reuse by scripts (creation of script libraries).&lt;br /&gt;
:* Retrieving pre-built streams.&lt;br /&gt;
:* Retrieving dynamically configured pre-built streams (the core idea is that the importing script declares some global variables which the imported script uses to configure the stream that will return).&lt;br /&gt;
:'''Note 1''': Since the contents of the imported script are evaluated at the point of invocation, it is possible by enclosing the '''Import''' call in a nested scope (for example inside a function) to make available to the importing script the functions and globals of the imported script ''without'' its script-level variables.&lt;br /&gt;
:'''Note 2''': Any script with the [[AVSI]] extension in the AviSynth Plugins folder is automatically imported. This is useful for making script functions available to any new script you create without having to copy and paste.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # ''B.avsi''&lt;br /&gt;
 A.Invert&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5) ## create clip 'A'&lt;br /&gt;
 Import(&amp;quot;B.avsi&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## here we do not care about the return value (''mylib.avsi'' contains only functions)&lt;br /&gt;
 Import(&amp;quot;mylib.avsi&amp;quot;)  &lt;br /&gt;
 ...&lt;br /&gt;
 ## ''mysources.avsi'' loads predetermined file names from a folder into globals&lt;br /&gt;
 okflag = Import(&amp;quot;mysources.avsi&amp;quot;)  &lt;br /&gt;
 source = okflag ? global1 + global2 + global3 : [[BlankClip]]()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Select||Select(index, item0 [, item1 [, ...[, itemn]]])}}&lt;br /&gt;
: Returns the item selected by the {{FuncArg|index}} argument, which must be of int type (0 returns {{FuncArg|item0}}, 1 returns {{FuncArg|item1}}, ..., etc). Items can be any script [[Script_variables|variable]] or expression of any type and can even be mixed.&lt;br /&gt;
&lt;br /&gt;
:If {{FuncArg|index}} is out of range, an error is raised.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # select a clip-brush from a set of presets&lt;br /&gt;
 idx = 2&lt;br /&gt;
 brush = Select(idx, [[AviSource]](&amp;quot;round.avi&amp;quot;), &lt;br /&gt;
 \        rectangle, diagonal, diagonal.[[FlipHorizontal]])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - all branches are evaluated:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 Select(index, &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &lt;br /&gt;
 \        Assert(false, &amp;quot;Select evaluates all branches&amp;quot;)) &lt;br /&gt;
 ## NOTE this code does not run - it throws [[#Assert|Assert]] error&lt;br /&gt;
 ## because Select evaluates all branches&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is not desired, use the [[Ternary_operator|conditional execution]] operator: &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 x = (index==0) ? &amp;quot;zero&amp;quot;&lt;br /&gt;
 \ : (index==1) ? &amp;quot;one&amp;quot;&lt;br /&gt;
 \ : (index==2) ? &amp;quot;two&amp;quot;&lt;br /&gt;
 \ : Assert(false, &amp;quot;index out of range&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Default||Default(x, d)}}&lt;br /&gt;
: Returns {{FuncArg|x}} if '''Defined'''(x) is true, {{FuncArg|d}} otherwise. {{FuncArg|x}} must either be a function's argument or an already declared script variable (ie a variable which has been assigned a value) else an error will occur.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Assert||Assert(condition [, err_msg])}}&lt;br /&gt;
: Does nothing if {{FuncArg|condition}} is true; throws an error, immediately terminating script execution, if {{FuncArg|condition}} is false. In the later case {{FuncArg|err_msg}}, if supplied, is presented to the user through a dialog box; else the standard message &amp;quot;Assert: assertion failed&amp;quot; shows up.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     Assert(strength &amp;gt; 0, &amp;quot;'strength' must be positive&amp;quot;)&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|NOP||NOP()}}&lt;br /&gt;
: This is a no-operation function provided mainly for conditional execution with non-return value items such as [[Import]], when no &amp;quot;else&amp;quot; condition is desired. That is, use it whenever the [[AviSynth Syntax]] requires an operation (such as with the ?: [[Operators#For_Booleans|operator]]) but your script does not need one.&lt;br /&gt;
: Return value: 0 (int type).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 preset = want_presets ? [[AviSource]](&amp;quot;c:\presets\any.avi&amp;quot;) : NOP&lt;br /&gt;
 ... &lt;br /&gt;
 loadlib ? [[Import]](&amp;quot;my_useful_functions.avs&amp;quot;) : NOP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Undefined|v2.60|Undefined()}}&lt;br /&gt;
: Returns the undefined state.&lt;br /&gt;
: It's the state for which '''Defined'''() returns false.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 x = Undefined()&lt;br /&gt;
 Defined(x) # == false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Options ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{ScriptFunctionH5|SetMemoryMax||SetMemoryMax(amount)}}&lt;br /&gt;
: Sets the maximum memory that AviSynth uses (in MB) to the value of {{FuncArg|amount}}. Setting to zero just returns the current Memory Max value. In the 2.5 series the default Memory Max value is 25% of the free physical memory, with a minimum of 16MB.&lt;br /&gt;
: The default Memory Max is also limited to 512MB.&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; &amp;lt;!-- width=50% --&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | Free memory&lt;br /&gt;
 | &amp;lt;64&lt;br /&gt;
 | 128&lt;br /&gt;
 | 256&lt;br /&gt;
 | 512&lt;br /&gt;
 | 1024&lt;br /&gt;
 | 2048&lt;br /&gt;
 | 3072&lt;br /&gt;
 |-&lt;br /&gt;
 | Default Max&lt;br /&gt;
 | 16&lt;br /&gt;
 | 32&lt;br /&gt;
 | 64&lt;br /&gt;
 | 192&lt;br /&gt;
 | 448&lt;br /&gt;
 | 512&lt;br /&gt;
 | 512&lt;br /&gt;
 |}&lt;br /&gt;
: In some versions there is a default setting of 5MB, which is quite low. If you encounter problems (e.g. low speed) try to set this values to at least 32MB. Too high values can result in crashes because of 2GB address space limit.&lt;br /&gt;
: Return value: Actual MemoryMax value set.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetMemoryMax(128)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetWorkingDir||SetWorkingDir(path)}}&lt;br /&gt;
: Sets the default directory for AviSynth to the {{FuncArg|path}} argument.&lt;br /&gt;
: This is primarily for easy loading of source clips, [[Import|importing]] scripts, etc. It does not affect plugins' autoloading. &lt;br /&gt;
: Return value is 0 if successful, -1 otherwise.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetWorkingDir(&amp;quot;c:\my_presets&amp;quot;)&lt;br /&gt;
 [[AviSource]](&amp;quot;border_mask.avi&amp;quot;)  # this loads c:\my_presets\border_mask.avi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetPlanarLegacyAlignment||SetPlanarLegacyAlignment(mode)}}&lt;br /&gt;
: Set alignment mode for [[planar]] frames. {{FuncArg|mode}} can either be true or false.&lt;br /&gt;
: Some older [[External_plugins|plugins]] illegally assume the layout of video frames in memory. This special filter forces the memory layout of planar frames to be compatible with prior versions of AviSynth. The filter works on the [[The_script_execution_model/Evaluation_of_runtime_scripts|GetFrame]]() call stack, so it effects filters '''before''' it in the script.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Example : Using an older version of Mpeg2Source() (1.10 or older):&lt;br /&gt;
 &lt;br /&gt;
 LoadPlugin(&amp;quot;...\Mpeg2Decode.dll&amp;quot;)&lt;br /&gt;
 Mpeg2Source(&amp;quot;test.d2v&amp;quot;)         # A plugin that illegally assumes the layout of memory&lt;br /&gt;
 SetPlanarLegacyAlignment(true)  # Set legacy memory alignment for prior statements&lt;br /&gt;
 [[Convert|ConvertToYUY2]]()     # Statements through to the end of the script have&lt;br /&gt;
 ...                             # advanced memory alignment.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AllowFloatAudio||global OPT_AllowFloatAudio &amp;amp;#61; true ## default false}}&lt;br /&gt;
: [[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true (this option enables WAVE_FORMAT_IEEE_FLOAT audio output&amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?t=109608]&amp;lt;/sup&amp;gt;). In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
:The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_UseWaveExtensible||global OPT_UseWaveExtensible &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables WAVE_FORMAT_EXTENSIBLE audio output. The default is WAVE_FORMAT_EX.&lt;br /&gt;
: '''Note:''' The default DirectShow component for .AVS files, &amp;quot;AVI/WAV File Source&amp;quot;, does not correctly implement WAVE_FORMAT_EXTENSIBLE processing, so many application may not be able to detect the audio track. There are third party DirectShow readers that do work correctly. Intermediate work files written using the AVIFile interface for later DirectShow processing will work correctly if they use the DirectShow &amp;quot;File Source (async)&amp;quot; component or equivalent. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_dwChannelMask|v2.60|global OPT_dwChannelMask(int v)}}&lt;br /&gt;
: This option enables you to set ChannelMask. It overrides WAVEFORMATEXTENSIBLE.dwChannelMask&amp;lt;sup&amp;gt;[[http://wiki.multimedia.cx/index.php?title=WAVEFORMATEXTENSIBLE]&amp;lt;/sup&amp;gt; which is set according to this table&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 0x00004, // 1   -- -- Cf&lt;br /&gt;
 0x00003, // 2   Lf Rf&lt;br /&gt;
 0x00007, // 3   Lf Rf Cf&lt;br /&gt;
 0x00033, // 4   Lf Rf -- -- Lr Rr&lt;br /&gt;
 0x00037, // 5   Lf Rf Cf -- Lr Rr&lt;br /&gt;
 0x0003F, // 5.1 Lf Rf Cf Sw Lr Rr&lt;br /&gt;
 0x0013F, // 6.1 Lf Rf Cf Sw Lr Rr -- -- Cr&lt;br /&gt;
 0x0063F, // 7.1 Lf Rf Cf Sw Lr Rr -- -- -- Ls Rs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AVIPadScanlines|v2.60|global OPT_AVIPadScanlines &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables DWORD aligned planar padding. Default is packed aligned planar padding. See [[AVIFile output emulation|memory alignment used in the AVIFile output emulation]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_VDubPlanarHack|v2.60|global OPT_VDubPlanarHack &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables flipped YV24 and YV16 chroma planes. This is an hack for early versions of Virtualdub with YV24/YV16 support. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_V210|{{AvsPluscon}}|global OPT_Enable_V210 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, [[Frameserver|Frameserve]] interleaved V210 instead of planar P210. (VfW)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
{{BoldColor|black|100|§}} ''VfW'' here means [[wikipedia:Video_for_Windows|Video For Windows]] clients such as VirtualDub are affected, but not other clients such as ffmpeg.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_10|{{AvsPluscon}}|global OPT_Enable_Y3_10_10 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, set the [[FourCC]] to Y3[10][10] ('Y', '3', 10, 10) instead of P210  ('P', '2', '1', '0'). (VfW) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_16|{{AvsPluscon}}|global OPT_Enable_Y3_10_16 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 16bit YUV422, use Y3[10][16] instead of P216 (VfW)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_b64a|{{AvsPluscon}}|global OPT_Enable_b64a &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Use b64a instead of BRA[64] (VfW)&lt;br /&gt;
: works for avs+ version above r2636&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_PlanarToPackedRGB|{{AvsPluscon}}|global OPT_Enable_PlanarToPackedRGB &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Convert Planar RGB to packed RGB (VfW)&lt;br /&gt;
: Planar RGB 10, 12, 14 and 16 bits are reported as G3[0][10], G3[0][12], G3[0][14] and G3[0][16]&lt;br /&gt;
: Planar RGBA 10, 12, 14 and 16 bits are reported as G4[0][10], G4[0][12], G4[0][14] and G4[0][16]&lt;br /&gt;
: When these [[FourCC]] codes are not handled through VfW, use OPT_Enable_PlanarToPackedRGB=true.&lt;br /&gt;
: Avisynth+ will convert the clip from planar to RGB64 (packed 16bit RGB) and will negotiate this format instead&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conversion functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These convert between different types.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Value||Value(string)}}&lt;br /&gt;
: Converts a decimal string to its associated numeric value.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Value (&amp;quot;-2.7&amp;quot;) = -2.7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|HexValue||HexValue(string)}}&lt;br /&gt;
{{ScriptFunctionCode|HexValue||HexValue(string [, int pos])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a hexadecimal string to its associated numeric value. &lt;br /&gt;
:* {{FuncArg|pos}} sets the starting point of the numeric parser. All characters to the left of {{FuncArg|pos}} are ignored. Default is 1 (start of string).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 HexValue (&amp;quot;FF00&amp;quot;) = 65280&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Hex|v2.60|Hex(int)}}&lt;br /&gt;
{{ScriptFunctionCode|Hex||Hex(int [, int width])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a numerical value to its hexadecimal value. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
:* {{FuncArg|width}} sets the minimum width of the returned string. &lt;br /&gt;
::Resulting string will be left-padded with zeroes as needed. Allowed range is 0..8; default is 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Hex (10824234) = &amp;quot;A52A2A&amp;quot;&lt;br /&gt;
 Hex (15 width=2) = &amp;quot;0F&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|String||String(var [, string format_string])}}&lt;br /&gt;
: Converts a variable to a string. ''String'' arguments are passed along unchanged; ''bools'' are converted to &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;; numbers are formatted as described below; other [[Script_variables#Variable_Types|variable types]] (''clip'', ''val'') are converted to the empty string. &lt;br /&gt;
:The syntax of {{FuncArg|format_string}} is as follows:&lt;br /&gt;
::&amp;lt;code&amp;gt;'''%'''[flags][width][.precision]'''f'''&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;i&amp;gt;the leading &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; and trailing &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; are required.&amp;lt;/i&amp;gt;&lt;br /&gt;
:The parts of {{FuncArg|format_string}} are:&lt;br /&gt;
:; ''flags'' &lt;br /&gt;
::{| class=wikitable&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;&lt;br /&gt;
|left align (right align by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the +/- sign (show only '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;' by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|pad (see ''width'') with leading zeroes (pad with spaces by default)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;amp;nbsp;'&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;'&amp;amp;nbsp;&lt;br /&gt;
|print a blank instead of a '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;'&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the decimal point (dropped by default if there are no decimal digits)&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
:; ''width''&lt;br /&gt;
:: the minimum width (the string is never truncated if it is wider than ''width'')&lt;br /&gt;
:; ''precision''&lt;br /&gt;
:: the number of decimal digits&lt;br /&gt;
: You can also put arbitrary text around {{FuncArg|format_string}}, similar to the C-language [http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm sprintf] function.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|62|2}} &amp;gt;&lt;br /&gt;
 Subtitle( String(1.23) )                    # '1.230000' (six decimals by default for floats)&lt;br /&gt;
 Subtitle( String(123) )                     # '123'      (no decimals by default for ints)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.2f&amp;quot; ))           # '1.23'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.1f&amp;quot; ))           # '1.2'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%5.1f&amp;quot;) )           # '  1.2'    (padded to 5 characters wide)&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%1.3f&amp;quot;) )           # '1.230'    (3 decimals; add trailing zeroes)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.0f&amp;quot;) )            # '123'      (no decimals for precision=0)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%''#''0.0f&amp;quot;) )           # '123.'     ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.2f&amp;quot;) )            # '123.00'   (2 decimals: add trailing zeroes)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%5.0f&amp;quot;) )            # '  123'    (padded to 5 characters wide using ' ')&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%05.0f&amp;quot;) )           # '00123'    (padded to 5 characters wide using '0')&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.0f&amp;quot;) )          # 'PI=3'     (text around format_string)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%''#''0.0f&amp;quot;) )         # 'PI=3.'    ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%2.0f&amp;quot;) )          # 'PI= 3'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%3.2f&amp;quot;) )          # 'PI=3.14'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.5f&amp;quot;) )          # 'PI=3.14159'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%6.3f&amp;quot;) )          # 'PI= 3.142'&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(32, &amp;quot;%0.0f&amp;quot;) )             # '32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%3.0f&amp;quot;) )             # ' 32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%8.0f&amp;quot;) )             # '      32'&lt;br /&gt;
 &lt;br /&gt;
 ## arbitrary text around format_string:&lt;br /&gt;
 Subtitle( String(Last.Height, &amp;quot;Clip height is %0.0f&amp;quot;) ) # 'Clip height is 480'&lt;br /&gt;
 ## same output as above but using string concatenation:&lt;br /&gt;
 Subtitle( &amp;quot;Clip height is &amp;quot; + String(Last.Height) )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numeric functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common mathematical operations on numeric variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Max||Max(float, float [, ...])}}&lt;br /&gt;
: Returns the maximum value of a set of numbers.&lt;br /&gt;
: If all the values are of type Int, the result is an Int. If any of the values are of type Float, the result is a Float.&lt;br /&gt;
: This may cause an unexpected result when an Int value greater than 16777216 is mixed with Float values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Max (1, 2) = 2&lt;br /&gt;
 Max (5, 3.0, 2) = 5.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Min||Min(float, float [, ...])}}&lt;br /&gt;
: Returns the minimum value of a set of numbers.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Min (1, 2) = 1&lt;br /&gt;
 Min (5, 3.0, 2) = 2.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MulDiv||MulDiv(int, int, int)}}&lt;br /&gt;
: Multiplies two ints (m, n) and divides the product by a third (d) in a single operation, with 64 bit intermediate result. The actual equation used is &amp;lt;tt&amp;gt; (m * n + d / 2) / d &amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MulDiv (1, 1, 2) = 1&lt;br /&gt;
 MulDiv (2, 3, 2) = 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Floor||Floor(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round down on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Floor(1.2) = 1&lt;br /&gt;
 Floor(1.6) = 1&lt;br /&gt;
 Floor(-1.2) = -2&lt;br /&gt;
 Floor(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ceil||Ceil(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round up on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ceil(1.2) = 2&lt;br /&gt;
 Ceil(1.6) = 2&lt;br /&gt;
 Ceil(-1.2) = -1&lt;br /&gt;
 Ceil(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Round||Round(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round off to nearest integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Round(1.2) = 1&lt;br /&gt;
 Round(1.6) = 2&lt;br /&gt;
 Round(-1.2) = -1&lt;br /&gt;
 Round(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Int||Int(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round towards zero).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Int(1.2) = 1&lt;br /&gt;
 Int(1.6) = 1&lt;br /&gt;
 Int(-1.2) = -1&lt;br /&gt;
 Int(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Float||Float(int)}}&lt;br /&gt;
: Converts int to single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value. Integer values that require more than 24-bits to be represented will have their lower 8-bits truncated yielding unexpected values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Float(4) = 4.0&lt;br /&gt;
 Float(4) / 3 = 1.333 (while 4 / 3 = 1 , due to integer division)&lt;br /&gt;
 Float(123456789) = 123456792.0 (error = -3, 0.000002%)&lt;br /&gt;
 Float(1234567890) = 1234567936.0 (error = -46, 0.000004%)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Fmod|v2.60|Fmod(float, float)}}&lt;br /&gt;
: Returns the modulo of the argument. Output is float.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Fmod(3.5, 0.5) = 0 (since 3.5 - 7*0.5 = 0)&lt;br /&gt;
 Fmod(3.5, 1.0) = 0.5 (since 3.5 - 3*1.0 = 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pi||Pi()}}&lt;br /&gt;
: Returns the value of the {{BoldColor|black|110|π}} constant (the ratio of a circle's circumference to its diameter).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 d = Pi()    # d == 3.141592653&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exp||Exp(float)}}&lt;br /&gt;
: Returns the natural (base-e) exponent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Exp(1) = 2.7182818&lt;br /&gt;
 Exp(0) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log||Log(float)}}&lt;br /&gt;
: Returns the natural (base-e) logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log(1) = 0.0&lt;br /&gt;
 Log(10) = 2.30259&lt;br /&gt;
 Log(Exp(1)) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log10|v2.60|Log10(float)}}&lt;br /&gt;
: Returns the common logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log10(1.0) = 0&lt;br /&gt;
 Log10(10.0) = 1.0&lt;br /&gt;
 Log10(2.0) = 0.3010299957&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pow||Pow(float base, float power)}}&lt;br /&gt;
: Returns {{FuncArg|base}} raised to a {{FuncArg|power}}.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Pow(2, 3) = 8&lt;br /&gt;
 Pow(3, 2) = 9&lt;br /&gt;
 Pow(3.45, 1.75) = 8.7334&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sqrt||Sqrt(float)}}&lt;br /&gt;
: Returns the square root of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sqrt(1) = 1.0&lt;br /&gt;
 Sqrt(2) = 1.4142&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Abs||Abs(float or int)}}&lt;br /&gt;
: Returns the absolute value of its argument (returns float for float, integer for integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Abs(-3.8) = 3.8&lt;br /&gt;
 Abs(-4) = 4&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sign||Sign(float)}}&lt;br /&gt;
: Returns the sign of the value passed as argument (1, 0 or -1).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sign(-3.5) = -1&lt;br /&gt;
 Sign(3.5) = 1&lt;br /&gt;
 Sign(0) = 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Frac||Frac(float)}}&lt;br /&gt;
: Returns the fractional portion of the value provided.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Frac(3.7) = 0.7&lt;br /&gt;
 Frac(-1.8) = -0.8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Rand||Rand([int max] [, bool scale] [, bool seed])}}&lt;br /&gt;
: Returns a random integer value. All parameters are optional. &lt;br /&gt;
:;max&lt;br /&gt;
::sets the maximum value+1 (default 32768) and can be set negative for negative results. It operates either in scaled or modulus mode (default {{FuncArg|scale}}=true only if [[#Abs|Abs]]({{FuncArg|max}}) &amp;gt; 32768, false otherwise). &lt;br /&gt;
:;scale&lt;br /&gt;
::When true, ''scales'' the internal random number generator value to the maximum value, while ''modulus mode'' ({{FuncArg|scale}}=false) uses the remainder from an integer divide of the random generator value by the maximum. Modulus mode is recommended for smaller maximums. &lt;br /&gt;
:;seed&lt;br /&gt;
::When true, seeds the random number generator with the current time. {{FuncArg|seed}} defaults to false and probably isn't necessary, although it's there just in case. &lt;br /&gt;
: Typically, this function would be used with the [[#Select|'''Select''']] function for random clips. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Select(Rand(5), clip1, clip2, clip3, clip4, clip5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Spline||Spline(float X, x1, y1, x2, y2, .... [, bool cubic])}}&lt;br /&gt;
: Interpolates the Y value at point X using the control points {{FuncArg|x1}}/{{FuncArg|y1}}, ... There have to be at least 2 x/y-pairs. The interpolation can be {{FuncArg|cubic}} (the result is a spline) or linear (the result is a polygon). Default is cubic.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Continued Numerator, Denominator =====&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(int, int, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(int, int, int limit)}}&lt;br /&gt;
: The rational pair ('''ContinuedNumerator''', '''ContinuedDenominator''') returned has the smallest possible denominator such that the absolute error is less than 1/{{FuncArg|limit}}. More information can be found on [http://en.wikipedia.org/wiki/Continued_fraction wikipedia].&lt;br /&gt;
: If {{FuncArg|limit}} is not specified in the Float case the rational pair returned is to the limit of the single precision floating point value. Thus (float)((double)Num/(double)Den) == V.&lt;br /&gt;
: In the Int case if {{FuncArg|limit}} is not specified then the normalized original values will be returned, i.e. reduced by the ''GCD'' (greatest common divisor).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ContinuedNumerator(PI(), limit=5000]) = 355&lt;br /&gt;
 ContinuedDenominator(PI(), limit=5000) = 113&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(PI(), limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(PI(), limit=50) = 7&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(355, 113, limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(355, 113, limit=50) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigonometry functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: relationships involving lengths and angles of triangles. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sin||Sin(float)}}&lt;br /&gt;
: Returns the sine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sin(Pi()/4) = 0.707&lt;br /&gt;
 Sin(Pi()/2) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cos||Cos(float)}}&lt;br /&gt;
: Returns the cosine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cos(Pi()/4) = 0.707&lt;br /&gt;
 Cos(Pi()/2) = 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tan|v2.60|Tan(float)}}&lt;br /&gt;
: Returns the tangent of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tan(Pi/4) = 1.0&lt;br /&gt;
 Tan(Pi/2) = not defined&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: 32 bit IEEE floats do not have sufficient resolution to exactly represent&lt;br /&gt;
: pi/2 so AviSynth returns a large positive number for the value slightly less&lt;br /&gt;
: than pi/2 and a large negative value for the next possible value which is&lt;br /&gt;
: slightly greater than pi/2.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Asin|v2.60|Asin(float)}}&lt;br /&gt;
: Returns the inverse of the sine of the argument (output is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Asin(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Asin(1.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Acos|v2.60|Acos(float)}}&lt;br /&gt;
: Returns the inverse of the cosine of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Acos(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Acos(0.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan|v2.60|Atan(float)}}&lt;br /&gt;
: Returns the inverse of the tangent of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan(0.707) = 0.6154085176&lt;br /&gt;
 Atan(1.0) = 0.7853981634 (~ Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan2|v2.60|Atan2(float, float)}}&lt;br /&gt;
: Returns the angle between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. Output is in radians. See [http://en.wikipedia.org/wiki/Atan2 wikipedia] for more information.&lt;br /&gt;
: y is the first argument and x is the second argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan2(1.0, 0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
 Atan2(1.0, 1.0) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Atan2(-1.0, -1.0) = -2.356194490 (~ -3Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sinh|v2.60|Sinh(float)}}&lt;br /&gt;
: Returns the hyperbolic sine of the argument. See [http://en.wikipedia.org/wiki/Hyperbolic_function wikipedia] for more information.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sinh(2.0) = 3.626860408&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cosh|v2.60|Cosh(float)}}&lt;br /&gt;
: Returns the hyperbolic cosine of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cosh(2.0) = 3.762195691&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tanh|v2.60|Tanh(float)}}&lt;br /&gt;
: Returns the hyperbolic tangent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tanh(2.0) = 0.9640275801&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bit functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: The functions are ''bitwise operators''. They manipulate individual bits within integer variables. This means that their arguments (being integers) are converted to binary numbers, the operation is performed on their bits, and the resulting binary number is converted back again.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitAnd|v2.60|BitAnd(int, int)}}&lt;br /&gt;
: Returns the bitwise AND (sets bit to 1 if both bits are 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitAnd(5, 6) = 4 # since 5 = 101, 6 = 110, and 101&amp;amp;110 = 100&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitNot|v2.60|BitNot(int)}}&lt;br /&gt;
: Returns the bit-inversion (sets bit to 1 if bit is 0 and vice-versa).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitNOT(5) = -6 &lt;br /&gt;
 # since  5 = 101,  &lt;br /&gt;
 # and ~101 = 1111 1111 1111 1111 1111 1111 1111 1010 = -6&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: 1111 1111 1111 1111 1111 1111 1111 1010 &lt;br /&gt;
::= (2^32-1)-2^0-2^2 = 2^32-(1+2^0+2^2) &lt;br /&gt;
::= (signed) -(1+2^0+2^2) = -6&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitOr|v2.60|BitOr(int, int)}}&lt;br /&gt;
: Returns the bitwise inclusive OR (sets bit to 1 if one of the bits (or both) is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitOr(5, 6) = 7 # since 5 = 101, 6 = 110, and 101|110 = 111&lt;br /&gt;
 BitOr(4, 2) = 6 # since 4 = 100, 2 = 010, and 100|010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitXor|v2.60|BitXor(int, int)}}&lt;br /&gt;
: Returns the bitwise exclusive OR (sets bit to 1 if exactly one of the bits is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitXor(5, 6) = 3 # since 5 = 101, 6 = 110, and 101^110 = 011&lt;br /&gt;
 BitXor(4, 2) = 6 # since 4 = 100, 2 = 010, and 100^010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLShift|v2.60|BitLShift(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShl|v2.60|BitShl(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSal|v2.60|BitSal(int, int)}}&lt;br /&gt;
: Shift the bits of a number to the left.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number 5 two bits to the left:&lt;br /&gt;
 BitLShift(5, 2) = 20 (since 101 &amp;lt;&amp;lt; 2 = 10100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftA|v2.60|BitRShiftA(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftS|v2.60|BitRShiftS(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSar|v2.60|BitSar(int, int)}}&lt;br /&gt;
: Shift the bits of an integer to the right. (Arithmetic, Sign bit fill, Right Shift)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as signed:&lt;br /&gt;
 BitRShiftA(-42, 1) = -21 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1  &lt;br /&gt;
 #      = 1111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right, unsigned =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftL|v2.60|BitRShiftL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftU|v2.60|BitRShiftU(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShr|v2.60|BitShr(int, int)}}&lt;br /&gt;
: Shift the bits of an unsigned integer to the right. (Logical, zero fill, Right Shift)&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as unsigned:&lt;br /&gt;
 BitRShiftL(-42, 1) = 2147483627 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1 &lt;br /&gt;
 #      = 0111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: -42 = -(1+2^0+2^3+2^5) = (unsigned) (2^32-1)-(2^0+2^3+2^5) = &lt;br /&gt;
::1111 1111 1111 1111 1111 1111 1101 0110&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLRotate|v2.60|BitLRotate(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRol|v2.60|BitRol(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the left by the number of bits specified in the second operand. For each rotation specified, the high order bit that exits from the left of the operand returns at the right to become the new low order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number -2147483642 one bit to the left:&lt;br /&gt;
 BitLRotate(-2147483642, 1) = 13 &lt;br /&gt;
 # (since 10000000000000000000000000000110 ROL 1&lt;br /&gt;
 #      = 00000000000000000000000000001101)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRRotate|v2.60|BitRRotateL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRor|v2.60|BitRor(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the right by the number of bits specified in the second operand. For each rotation specified, the low order bit that exits from the right of the operand returns at the left to become the new high order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number 13 one bit to the right:&lt;br /&gt;
 BitRRotate(13, 1) = -2147483642 &lt;br /&gt;
 # (since 00000000000000000000000000001101 ROR 1 &lt;br /&gt;
 #      = 10000000000000000000000000000110)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit test =====&lt;br /&gt;
{{ScriptFunctionCode|BitTest|v2.60|BitTest(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitTst|v2.60|BitTst(int, int)}}&lt;br /&gt;
: Tests a single bit (that is, it returns true if its state is one, else it returns false). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Check the state of the fourth bit:&lt;br /&gt;
 BitTest(3, 4) = False&lt;br /&gt;
 BitTest(19, 4) = True&lt;br /&gt;
 &lt;br /&gt;
 Check the state of the sign bit:&lt;br /&gt;
 BitTest(-1, 31) = True&lt;br /&gt;
 BitTest(2147483647, 31) = False&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSet|v2.60|BitSet(int, int)}}&lt;br /&gt;
: Sets a single bit to one (so it sets its state to one). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Set the state of the fourth bit to one:&lt;br /&gt;
 BitSet(3, 4) = 19&lt;br /&gt;
 BitSet(19, 4) = 19&lt;br /&gt;
 &lt;br /&gt;
 Set the state of the sign bit to one:&lt;br /&gt;
 BitSet(-1, 31) = -1&lt;br /&gt;
 BitSet(2147483647, 31) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSetCount||BitSetCount(int [, int...])}} {{AvsPluscon}}&lt;br /&gt;
: Returns the total number of set bits in all supplied integer arguments.&lt;br /&gt;
&lt;br /&gt;
===== Bit clear =====&lt;br /&gt;
{{ScriptFunctionCode|BitClear|v2.60|BitClear(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitClr|v2.60|BitClr(int, int)}}&lt;br /&gt;
: Sets a single bit to zero (so it sets its state to zero). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Clear the bits of the number 5&lt;br /&gt;
 BitClear(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitClear(5, 1) = 5 (second bit is already zero)&lt;br /&gt;
 BitClear(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitClear(5, 3) = 5 (fourth bit is already zero)&lt;br /&gt;
 &lt;br /&gt;
 Clear the state of the sign bit:&lt;br /&gt;
 BitClear(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit change =====&lt;br /&gt;
{{ScriptFunctionCode|BitChange|v2.60|BitChange(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitChg|v2.60|BitChg(int, int)}}&lt;br /&gt;
: Sets a single bit to its complement (so it changes the state of a single bit; 1 becomes 0 and vice versa). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero). The sign bit is bit 31.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Change the state of the a bit of the number 5:&lt;br /&gt;
 BitChange(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitChange(5, 1) = 7 (second bit is set to one)&lt;br /&gt;
 BitChange(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitChange(5, 3) = 13 (fourth bit is set to one)&lt;br /&gt;
 &lt;br /&gt;
 Change the state of the sign bit:&lt;br /&gt;
 BitChange(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Runtime functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These are internal functions which are evaluated at every frame. They can be used inside the scripts passed to runtime filters ([[ConditionalFilter]], [[ScriptClip]], [[FrameEvaluate]]) to return information for a frame.&lt;br /&gt;
&lt;br /&gt;
===== Average ===== &lt;br /&gt;
{{ScriptFunctionCode|AverageLuma||AverageLuma(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaU||AverageChromaU(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaV||AverageChromaV(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageB||AverageB(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageG||AverageG(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageR||AverageR(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value with the average pixel value of a plane (Luma, U-chroma and V-chroma, respectively). They require an [[ISSE]] capable cpu. In v2.61 an {{FuncArg|offset}} argument is added which enables you to access other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ScriptClip(Last, &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     threshold = 55&lt;br /&gt;
     luma = AverageLuma ## gives the average luma of the current frame&lt;br /&gt;
     #luma = AverageLuma(1) ## gives the average luma of the next frame&lt;br /&gt;
     luma &amp;lt; threshold &lt;br /&gt;
     \ ? Levels(0, 1.0+0.5*(threshold-luma)/threshold, 255, 0, 255) &lt;br /&gt;
     \ : last&lt;br /&gt;
     Subtitle(&amp;quot;luma=&amp;quot; + String(luma), align=2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference =====&lt;br /&gt;
{{ScriptFunctionCode|LumaDifference||LumaDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaUDifference||ChromaUDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaVDifference||ChromaVDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifference||RGBDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifference||BDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifference||GDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifference||RDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value between 0 and 255 of the absolute difference between two planes from two different clips &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. They require an [[ISSE]] capable cpu.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ovl = [[Overlay]](last, mov_star, x=some_xvalue, y=some_yvalue, mask=mov_mask)&lt;br /&gt;
 ldif = LumaDifference(ovl) # implicit last for clip1&lt;br /&gt;
 udif = ChromaUDifference([[Tweak]](hue=24), ovl)&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference from previous =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceFromPrevious||YDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceFromPrevious||UDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceFromPrevious||VDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceFromPrevious||RGBDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceFromPrevious||BDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceFromPrevious||GDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceFromPrevious||RDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and previous frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious) &amp;gt; threshold)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference to next =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceToNext||YDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceToNext||UDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceToNext||VDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceToNext||RGBDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceToNext||BDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceToNext||GDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceToNext||RDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and next frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the difference between the RGB, luma or chroma plane of the current frame and of ''any'' other frame. Note that for example clip.'''RGBDifferenceToNext'''(-1) = clip.'''RGBDifferenceToPrevious''', and clip.'''RGBDifferenceToNext'''(0) = 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # both th1, th2 are positive thresholds; th1 is larger enough than th2&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious &amp;gt; th1) &amp;amp;&amp;amp; (YDifferenceToNext &amp;lt; th2)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Color plane median, min, max, range =====&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMedian||YPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMedian||UPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMedian||VPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMedian||BPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMedian||GPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMedian||RPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMin||YPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMin||UPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMin||VPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMin||BPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMin||GPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMin||RPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMax||YPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMax||UPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMax||VPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMax||BPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMax||GPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMax||RPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMinMaxDifference||YPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMinMaxDifference||UPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMinMaxDifference||VPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMinMaxDifference||BPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMinMaxDifference||GPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMinMaxDifference||RPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
: This group of functions return statistics about the distribution of pixel values on a plane (Luma, U-chroma and V-chroma, respectively). The statistics are, in order of presentation: maximum, minimum, median and range (maximum - minimum difference). &lt;br /&gt;
: {{FuncArg|threshold}} is a percentage, stating how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the statistics of other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # median and average are close only on even distributions; &lt;br /&gt;
 # this can be a useful diagnostic&lt;br /&gt;
 have_intense_brights = YPlaneMedian() - AverageLuma() &amp;lt; threshold&lt;br /&gt;
 ...&lt;br /&gt;
 # a simple per-frame normalizer to [16..235], CCIR, range&lt;br /&gt;
 [[Levels]](YPlaneMin(), 1.0, YPlaneMax(), 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth script information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptName|v2.60|ScriptName()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 name = ScriptName() # name = &amp;quot;F:\ProjectXYZ\video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptNameUtf8|{{AvsPluscon}}|ScriptNameUtf8()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFile|v2.60|ScriptFile()}}&lt;br /&gt;
: Returns the filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 file = ScriptFile() # file = &amp;quot;video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFileUtf8|{{AvsPluscon}}|ScriptFileUtf8()}}&lt;br /&gt;
: Returns the filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDir|v2.60|ScriptDir()}}&lt;br /&gt;
: Returns the path of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 folder = ScriptDir() # folder = &amp;quot;F:\ProjectXYZ&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDirUtf8|{{AvsPluscon}}|ScriptDirUtf8()}}&lt;br /&gt;
: Returns the path of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetLogParams|{{AvsPluscon}}|SetLogParams([string ''target'', int ''level''])}}&lt;br /&gt;
: Sets a file path for a log file, used by [[#LogMsg|LogMsg]] and internal error reporting.&lt;br /&gt;
:* {{FuncArg|target}} names a file which will be created when the script loads. If attempting to create or write to {{FuncArg|target}} fails, the script will raise an error immediately. If the file exists, new log entries will be appended to the end. If omitted, {{FuncArg|target}} defaults to [[wikipedia:Stderr|stderr]].&lt;br /&gt;
:* {{FuncArg|level}} sets the log ''verbosity''; it can be one of the following:&lt;br /&gt;
::{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_ERROR&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(1)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the fewest log entries&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_WARNING&amp;lt;/tt&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(2)&amp;lt;/small&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the most log entries&lt;br /&gt;
|}&lt;br /&gt;
::If omitted, {{FuncArg|level}} defaults to &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
:''Examples'' see [[#LogMsg|LogMsg]] below.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LogMsg|{{AvsPluscon}}|LogMsg(string, int)}}&lt;br /&gt;
: Creates a new log entry.&lt;br /&gt;
:* {{FuncArg|string}} (required) specifies the log message.&lt;br /&gt;
:* {{FuncArg|int}} (required) specifies the log entry level: see [[#SetLogParams|SetLogParams]] above.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## creating file and set path for future log entries:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test1.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents:''&lt;br /&gt;
 (empty)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging an INFO message:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test2.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 LogMsg(&amp;quot;this is a test&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ''log contents:''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: this is a test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging a script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test3.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents (redundant entries are common):''&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 35)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging INFO context for script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test4.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 function MyFunction(clip C)&lt;br /&gt;
 {&lt;br /&gt;
     C&lt;br /&gt;
     [[Control_structures|try]] {&lt;br /&gt;
         foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
     } catch (err_msg) {&lt;br /&gt;
         msg2 = &amp;quot;Error in MyFunction: &amp;quot;&lt;br /&gt;
         LogMsg([[#Time|Time]](&amp;quot;%Y-%m-%d %I:%M:%S %p, %z&amp;quot;) + &amp;quot;: &amp;quot; + msg2, LOG_INFO)&lt;br /&gt;
         #[[#Assert|Assert]](false, msg2 + err_msg) ## optional: stop script, else continue&lt;br /&gt;
     }&lt;br /&gt;
     return Last&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ''log contents (redundant entries omitted):''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: 2017-11-12 11:03:41 AM, -0500: Error in MyFunction:&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|GetProcessInfo|{{AvsPluscon}}|GetProcessInfo(int)}}&lt;br /&gt;
: Returns information about the [[wikipedia:Process_(computing)|process]] the script is running in.&lt;br /&gt;
: The ''int'' argument has two legal values:&lt;br /&gt;
:* if ''0'' (default), returns ''64'' for a 64-bit process or ''32'' for a 32-bit process.&lt;br /&gt;
:* else if ''1'',&lt;br /&gt;
:** returns 0 for 32-bit process on 32-bit OS;&lt;br /&gt;
:** returns 1 for 32-bit process on 64-bit OS;&lt;br /&gt;
:** returns 2 for 64-bit process on 64-bit OS;&lt;br /&gt;
:** else returns -1 (unknown)&lt;br /&gt;
:: /// [[TODO]] this is preliminary info&lt;br /&gt;
&lt;br /&gt;
== String functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common operations on string variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LCase||LCase(string)}}&lt;br /&gt;
: Returns lower case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;avisynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|UCase||UCase(string)}}&lt;br /&gt;
: Returns upper case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 UCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;AVISYNTH&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrToUtf8||StrToUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from ANSI to [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrFromUtf8||StrFromUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from [[wikipedia:UTF-8|UTF8]] to ANSI.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrLen||StrLen(string)}}&lt;br /&gt;
: Returns length of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrLen(&amp;quot;AviSynth&amp;quot;) = 8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RevStr||RevStr(string)}}&lt;br /&gt;
: Returns {{FuncArg|string}} backwards.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RevStr(&amp;quot;AviSynth&amp;quot;) = &amp;quot;htnySivA&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LeftStr||LeftStr(string, int)}}&lt;br /&gt;
: Returns first {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LeftStr(&amp;quot;AviSynth&amp;quot;, 3) = &amp;quot;Avi&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RightStr||RightStr(string, int)}}&lt;br /&gt;
: Returns last {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RightStr(&amp;quot;AviSynth&amp;quot;, 5) = &amp;quot;Synth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MidStr||MidStr(string, int pos [, int length])}}&lt;br /&gt;
: Returns substring starting at {{FuncArg|pos}} for optional {{FuncArg|length}} or to end. {{FuncArg|pos}}=1 specifies start.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MidStr(&amp;quot;AviSynth&amp;quot;, 3, 2) = &amp;quot;iS&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FindStr||FindStr(string, substring)}}&lt;br /&gt;
: Returns (1-based) position of {{FuncArg|substring}} within {{FuncArg|string}} &lt;br /&gt;
:* Note this function is case-sensitive. &lt;br /&gt;
:* Returns 0 if {{FuncArg|substring}} is not found.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;Syn&amp;quot;) ## returns 4&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;SYN&amp;quot;) ## returns 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ReplaceStr|{{AvsPluscon}}|ReplaceStr(string, substring, replacement_string [, bool sig])}}&lt;br /&gt;
: Replaces occurrences of {{FuncArg|substring}} with {{FuncArg|replacement_string}} and returns the result. &lt;br /&gt;
:* {{FuncArg|sig}} if false (the default), search is case-sensitive; if true, search is not case-sensitive.&lt;br /&gt;
:* Avisynth 2.6.x users have other options, such as the [[User_defined_script_functions|user]] function below, adapted from ''StrReplace'', found [[HDColorBars|here]].&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 function ReplaceStr(string base, string sought, string repstr) {&lt;br /&gt;
     pos = FindStr(base, sought)&lt;br /&gt;
     return (sought==&amp;quot;&amp;quot; || pos==0) ? base : ReplaceStr(&lt;br /&gt;
     \       LeftStr(base, pos-1) + repstr +&lt;br /&gt;
     \       MidStr(base, pos+StrLen(sought)),&lt;br /&gt;
     \       sought, repstr)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ReplaceStr(&amp;quot;FlipHorizontal&amp;quot;, &amp;quot;Horizontal&amp;quot;, &amp;quot;Vertical&amp;quot;)&lt;br /&gt;
 ReplaceStr(&amp;quot;''$a'' x *&amp;quot;, &amp;quot;''$a''&amp;quot;, String(1.5)) ## (a [[MaskTools2|MaskTools]] expression with argument)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FillStr|v2.60|FillStr(int [, string])}}&lt;br /&gt;
: Fills a string. When {{FuncArg|int}}&amp;gt;1 it concatenates the {{FuncArg|string}} {{FuncArg|int}} times. {{FuncArg|string}} is &amp;quot;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;quot; (space) by default.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 FillStr(1, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynth&amp;quot;&lt;br /&gt;
 FillStr(2, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynthAviSynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmp|v2.60|StrCmp(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) != 0 # strings are not equal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmpi|v2.60|StrCmpi(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is not case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;abcz&amp;quot;, &amp;quot;abcdefg&amp;quot;) != 0 &lt;br /&gt;
 # returns the difference betweeen &amp;quot;z&amp;quot; and &amp;quot;d&amp;quot; (which is positive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TrimLeft, TrimRight, TrimAll =====&lt;br /&gt;
{{ScriptFunctionCode|TrimLeft||TrimLeft(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimRight||TrimRight(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimAll||TrimAll(string)}}&lt;br /&gt;
: {{AvsPluscon}} Removes whitespace characters (space, tab, [[wikipedia:Non-breaking_space|nonbreaking space]]) from a string.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Chr||Chr(int)}}&lt;br /&gt;
: Returns the ASCII character. &lt;br /&gt;
: Note that characters above the ASCII character set (ie above 127) are code page dependent and may render different (visual) results in different systems. This has an importance only for user-supplied localised text messages.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Chr(34) returns the quote character&lt;br /&gt;
 Chr(9)  returns the tab   character&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ord|v2.60|Ord(string)}}&lt;br /&gt;
: Gives the ordinal number (character code) of the first character of {{FuncArg|string}} (works like php [http://php.net/manual/en/function.ord.php ord] or Basic [http://msdn.microsoft.com/en-us/library/xfw01fx4%28v=vs.84%29.aspx Asc])&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ord(&amp;quot;a&amp;quot;) = 97&lt;br /&gt;
 Ord(&amp;quot;AviSynth&amp;quot;) = Ord(&amp;quot;A&amp;quot;) = 65&lt;br /&gt;
 Ord(&amp;quot;§&amp;quot;) = 167&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Time||Time(string)}}&lt;br /&gt;
: Returns a string with the current system time formatted as defined by {{FuncArg|string}}.&lt;br /&gt;
&lt;br /&gt;
: The string may contain any of the codes for output formatting presented below:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; | Code&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; | Description&lt;br /&gt;
 |-&lt;br /&gt;
 |%a&lt;br /&gt;
%A  &lt;br /&gt;
 | Abbreviated weekday name&lt;br /&gt;
Full weekday name&lt;br /&gt;
 |-&lt;br /&gt;
 |%b&lt;br /&gt;
%B  &lt;br /&gt;
 | Abbreviated month name&lt;br /&gt;
Full month name&lt;br /&gt;
 |-&lt;br /&gt;
 |%c  &lt;br /&gt;
 | Date and time representation appropriate for locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%d  &lt;br /&gt;
 | Day of month as decimal number (01 - 31)&lt;br /&gt;
 |-&lt;br /&gt;
 |%H&lt;br /&gt;
%I  &lt;br /&gt;
 | Hour in 24-hour format (00 - 23)&lt;br /&gt;
Hour in 12-hour format (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%j  &lt;br /&gt;
 | Day of year as decimal number (001 - 366)&lt;br /&gt;
 |-&lt;br /&gt;
 |%m  &lt;br /&gt;
 | Month as decimal number (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%M  &lt;br /&gt;
 | Minute as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%p  &lt;br /&gt;
 | Current locale's A.M./P.M. indicator for 12-hour clock&lt;br /&gt;
 |-&lt;br /&gt;
 |%S  &lt;br /&gt;
 | Second as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%U  &lt;br /&gt;
 | Week of year as decimal number, with Sunday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%w  &lt;br /&gt;
 | Weekday as decimal number (0 - 6; Sunday is 0)&lt;br /&gt;
 |-&lt;br /&gt;
 |%W  &lt;br /&gt;
 | Week of year as decimal number, with Monday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%x  &lt;br /&gt;
 | Date representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%X  &lt;br /&gt;
 | Time representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%y&lt;br /&gt;
%Y  &lt;br /&gt;
 | Year without century, as decimal number (00 - 99)&lt;br /&gt;
Year ''with'' century, as decimal number&lt;br /&gt;
 |-&lt;br /&gt;
 |%z, %Z  &lt;br /&gt;
 | Time-zone name or abbreviation; no characters if time zone is unknown&lt;br /&gt;
 |-&lt;br /&gt;
 |%%  &lt;br /&gt;
 | Percent sign &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
: The '#' flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; |Code with '#' flag&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; |Change in meaning&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''a''', %#'''A''', %#'''b''', &lt;br /&gt;
%#'''B''', %#'''p''', %#'''X''', &lt;br /&gt;
%#'''z''', %#'''Z''', %#'''%'''&lt;br /&gt;
 | No change; flag is ignored. &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''c''' &lt;br /&gt;
 | Long date and time representation, appropriate for current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995, 12:41:29&amp;quot;'' &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''x''' &lt;br /&gt;
 | Long date representation, appropriate to current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995&amp;quot;''&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''d''', %#'''H''', %#'''I''', &lt;br /&gt;
%#'''j''', %#'''m''', %#'''M''', &lt;br /&gt;
%#'''S''', %#'''U''', %#'''w''', &lt;br /&gt;
%#'''W''', %#'''y''', %#'''Y''' &lt;br /&gt;
 | Remove leading zeroes (if any).&lt;br /&gt;
 |}&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 v = Time(&amp;quot;%Y-%m-%d&amp;quot;)        # &amp;quot;2010-03-01&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%d-%b-%Y&amp;quot;)        # &amp;quot;01-Mar-2010&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%#d/%#m/%y&amp;quot;)      # &amp;quot;1/3/10&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%I:%M:%S %p, %z&amp;quot;) # &amp;quot;08:04:42 PM, GMT Standard Time&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%H:%M:%S %z&amp;quot;)     # &amp;quot;20:04:42 GMT Standard Time&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth version information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionNumber||VersionNumber()}}&lt;br /&gt;
: Returns AviSynth version number as a float.&lt;br /&gt;
:* Note: use [[#VersionString|VersionString]] below to determine if running in [[AviSynth+]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionNumber ## returns 2.60 (release version as of 11/2017)&lt;br /&gt;
 VersionNumber ## returns 2.61 (beta)&lt;br /&gt;
 VersionNumber ## returns 2.60 (AVS+ release 2508)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionString||VersionString()}}&lt;br /&gt;
: Returns AviSynth version info as a string (first line used in [[Version]]() command).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.60, build:Mar 31 2015 [16:38:54]&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.61, build:May 17 2016 [16:06:18] VC2008Exp&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth+ 0.1, (r2508, MT, x86_64)&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function IsAvsPlus()&lt;br /&gt;
 {&lt;br /&gt;
     sVer = [[#LCase|LCase]](VersionString) &lt;br /&gt;
     return ([[#FindStr|FindStr]](sVer, &amp;quot;avisynth+&amp;quot;)    &amp;gt; 0)&lt;br /&gt;
     \   || (FindStr(sVer, &amp;quot;avisynthplus&amp;quot;) &amp;gt; 0)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other helper functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: Non-categorized functions&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BuildPixelType||string BuildPixelType(string family, int bits, int chroma, bool compat, bool oldnames, clip sample_clip)}} {{AvsPluscon}}&lt;br /&gt;
: Creates a video format (pixel_type) string by giving a colorspace family, bit depth, optional chroma subsampling and/or a &lt;br /&gt;
: template clip, from which the undefined format elements are inherited.&lt;br /&gt;
: &lt;br /&gt;
:* string {{FuncArg|family}}&lt;br /&gt;
:: defines color family: &amp;quot;Y&amp;quot;, &amp;quot;YUV&amp;quot;, &amp;quot;YUVA&amp;quot;, &amp;quot;RGB&amp;quot;, &amp;quot;RGBA&amp;quot;&lt;br /&gt;
:: use &amp;quot;RGB&amp;quot; for both planar RGB and classic packed RGB24 and RGB48 - {{FuncArg|compat}} switches to classic formats &lt;br /&gt;
:* int {{FuncArg|bits}}&lt;br /&gt;
:: intended bit depth: 8, 10, 12, 14, 16, 32. In Avisynth+ 8-16 bits are integer formats, 32 bit is float&lt;br /&gt;
:* int {{FuncArg|chroma}}&lt;br /&gt;
:: chroma subsampling: 411, 420, 422, 444. Applies for YUV(A) formats. Ignored for RGB(A) and Y&lt;br /&gt;
:* bool {{FuncArg|compat}} default false&lt;br /&gt;
:: When set to true, function returns packed RGB(A) formats instead of planar RGB(A) (e.g. &amp;quot;RGB48&amp;quot; instead of &amp;quot;RGBP16&amp;quot;), when applicable&lt;br /&gt;
:* bool {{FuncArg|oldnames}} default false&lt;br /&gt;
:: when true, function returns &amp;quot;YV12&amp;quot;, &amp;quot;YV16&amp;quot;, &amp;quot;YV24&amp;quot; instead of &amp;quot;YUV420P8&amp;quot;, &amp;quot;YUV422P8&amp;quot; and &amp;quot;YUV444P8&amp;quot; respectively&lt;br /&gt;
:* clip {{FuncArg|sample_clip}} when given, the clip serves as the base format, all optional parameters (bits, subsampling) will modify only its respective properties&lt;br /&gt;
&lt;br /&gt;
:* see also: use [[#Other_helper_functions|ColorSpaceNameToPixelType]] to convert a colorspace string to an integer pixel_type&lt;br /&gt;
''Examples:'' &lt;br /&gt;
&lt;br /&gt;
:: define &amp;quot;YUV444P10&amp;quot;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 family = &amp;quot;YUV&amp;quot;&lt;br /&gt;
 bits = 10&lt;br /&gt;
 chroma = 444&lt;br /&gt;
 compat = false&lt;br /&gt;
 oldformat = false&lt;br /&gt;
 s = BuildPixelType(family, bits, chroma, compat, oldformat)&lt;br /&gt;
 BlankClip(width=320,height=200,length=len,pixel_type=s,color=$008080).Info()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: Change only bit depth to 16, sample format is of an existing clip&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 newbits = 16&lt;br /&gt;
 c = last&lt;br /&gt;
 s = BuildPixelType(bits=newbits, sample_clip=c)&lt;br /&gt;
 BlankClip(width=320,height=200,length=len,pixel_type=s,color=$008080).Info()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ColorSpaceNameToPixelType||int ColorSpaceNameToPixelType(string)}} {{AvsPluscon}}&lt;br /&gt;
: Creates a video format (pixel_type) by providing a colorspace name&lt;br /&gt;
: &lt;br /&gt;
:* some formats have multiple valid names: &amp;quot;YV12&amp;quot; is identical to &amp;quot;YUV420P8&amp;quot;, &amp;quot;YV16&amp;quot; = &amp;quot;YUV422P8&amp;quot;, &amp;quot;YV24&amp;quot; = &amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[AviSynth Syntax]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_functions]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;br /&gt;
[[Category:Scripting_Basics]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_functions</id>
		<title>Internal functions</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_functions"/>
				<updated>2019-01-06T23:34:59Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: /* TrimLeft, TrimRight, TrimAll */ add AVS+ icon&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;
&amp;lt;div style=&amp;quot;max-width:64em&amp;quot; &amp;gt;&lt;br /&gt;
In addition to [[Internal_filters|internal filters]] AviSynth has a fairly large number of other (non-clip) internal functions. &lt;br /&gt;
&lt;br /&gt;
The input or/and output of these functions are not clips, but some other variables which can be used in a script. &lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Short Contents:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
# [[#Boolean_functions|Boolean functions]]&lt;br /&gt;
# [[#Control_functions|Control functions]]&lt;br /&gt;
# [[#Global_options|Global options]]&lt;br /&gt;
# [[#Conversion_functions|Conversion functions]]&lt;br /&gt;
# [[#Numeric_functions|Numeric functions]]&lt;br /&gt;
# [[#Trigonometry_functions|Trigonometry functions]]&lt;br /&gt;
# [[#Bit_functions|Bit functions]]&lt;br /&gt;
# [[#Runtime_functions|Runtime functions]]&lt;br /&gt;
# [[#Script_functions|Script functions]]&lt;br /&gt;
# [[#String_functions|String functions]]&lt;br /&gt;
# [[#Version_functions|Version functions]]&lt;br /&gt;
# [[#Other_helper_functions|Other helper functions]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:4em;&amp;quot; |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolean functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These return true or false, if the condition that they test holds or not, respectively.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsBool||IsBool(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the bool type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b = false&lt;br /&gt;
 IsBool(b) = true&lt;br /&gt;
 IsBool(1 &amp;lt; 2 &amp;amp;&amp;amp; 0 == 1) = true&lt;br /&gt;
 IsBool(123) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsClip||IsClip(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the clip type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 c = [[AviSource]](...)&lt;br /&gt;
 IsClip(c) = true&lt;br /&gt;
 IsClip(&amp;quot;c&amp;quot;) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsFloat||IsFloat(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the float type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 f = [[Internal_functions/Numeric_functions|Sqrt]](2)&lt;br /&gt;
 IsFloat(f) = true&lt;br /&gt;
 IsFloat(true) = false&lt;br /&gt;
 IsFloat(&amp;quot;42.&amp;quot;) = false&lt;br /&gt;
 IsFloat(2) = true   # ''ints are considered to be floats by this function''&lt;br /&gt;
 IsReallyFloat(2) = false # see below&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: As a workaround for the issue noted above, you may use the following [[User_functions|user function]]:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|3}} &amp;gt;&lt;br /&gt;
 ## return true for floats only&lt;br /&gt;
 function IsReallyFloat(val v)&lt;br /&gt;
 {&lt;br /&gt;
     return (IsInt(v)==false) &amp;amp;&amp;amp; IsFloat(v)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsInt||IsInt(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the int type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsInt(2) = true&lt;br /&gt;
 IsInt(2.1) = false&lt;br /&gt;
 IsInt(true) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsString||IsString(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the string type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsString(&amp;quot;test&amp;quot;) = true&lt;br /&gt;
 IsString(2.3) = false&lt;br /&gt;
 IsString([[Internal_functions/Conversion_functions|String]](2.3)) = true&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exist||Exist(filename)}}&lt;br /&gt;
: Tests if the file specified by {{FuncArg|filename}} exists.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 filename = ...&lt;br /&gt;
 clp = Exist(filename) &lt;br /&gt;
 \ ? [[AviSource]](filename) &lt;br /&gt;
 \ : [[Internal_functions/Control_functions|Assert]](false, &amp;quot;file: &amp;quot; + filename + &amp;quot; does not exist&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Defined||Defined(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is defined. Can be used inside [[Script_functions]] to test if an optional argument has been given an explicit value.&lt;br /&gt;
: More formally, the function returns false if its argument (normally a function argument or variable) has the void ('undefined') type, otherwise it returns true.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b_arg_supplied = Defined(arg)&lt;br /&gt;
 myvar = b_arg_supplied ? ... : ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FunctionExists|{{AvsPluscon}}|FunctionExists(name)}}&lt;br /&gt;
: Tests if the function or filter name is defined in the script.&lt;br /&gt;
: {{FuncArg|name}} can be any string &amp;amp;ndash; it does not need to be a [[Script_variables#Variable_Names|legal name]].&lt;br /&gt;
: ''Example'' &amp;amp;ndash; see [[#Apply|Apply]] below&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|InternalFunctionExists|{{AvsPluscon}}|InternalFunctionExists(name)}}&lt;br /&gt;
: Tests if the function, filter or [[Clip_properties|property]] name is defined natively within [[AviSynth+]].&lt;br /&gt;
:* Unlike [[#FunctionExists|FunctionExists]], returns ''false'' for [[Plugins|external plugins]] and [[User_functions|user-defined functions]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VarExists|{{AvsPluscon}}|VarExists(name)}}&lt;br /&gt;
: Tests if the variable exists or not. Note: if variable exists, it returns true regardless of the &amp;quot;defined&amp;quot; state of the variable&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Control functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These facilitate flow of control (loading of scripts, arguments checks, global settings adjustment, etc.).&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Apply||Apply(string ''func_string'' [, arg1 [, arg2 [, ... [, arg''n'']]]] )}}&lt;br /&gt;
: Calls the function or filter {{FuncArg|func_string}} with arguments {{FuncArg|arg1}}, {{FuncArg|arg2}}, ..., {{FuncArg|arg''n''}} (as many as supplied). &lt;br /&gt;
:* This provides a way to call a function or filter '''by name''', with arguments.&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;f(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[[#Eval|Eval]](&amp;quot;f(&amp;quot; + String(x) + &amp;quot;)&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* Note that the clip argument must be supplied explicitly - the [[Last|special variable ''Last'']] is not used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically  &lt;br /&gt;
 new_width = 352&lt;br /&gt;
 new_height = 288&lt;br /&gt;
 &lt;br /&gt;
 Apply(&amp;quot;[[BicubicResize]]&amp;quot;, Last, new_width, new_height)&lt;br /&gt;
 # Note that the clip argument must be supplied - 'Last' is not implicitly assumed&lt;br /&gt;
 &lt;br /&gt;
 ## the same action, using [[#Eval|Eval]]&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + String(new_width) + &amp;quot;,&amp;quot; + String(new_height) + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists (AviSynth 2.6)&lt;br /&gt;
 function MyFilter(clip C, string s) { &lt;br /&gt;
     return C.[[Subtitle]](&amp;quot;MyFilter: &amp;quot;+s, align=5)&lt;br /&gt;
 }&lt;br /&gt;
 ColorBars &lt;br /&gt;
 [[Control_structures|try]] {&lt;br /&gt;
     Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;)&lt;br /&gt;
 } catch (err_msg) {&lt;br /&gt;
     # (ignore)&lt;br /&gt;
 }&lt;br /&gt;
 return Last&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists ([[AviSynth+|AVS+]] only)&lt;br /&gt;
 ColorBars  &lt;br /&gt;
 return [[#FunctionExists|FunctionExists]](&amp;quot;MyFilter&amp;quot;) &lt;br /&gt;
 \ ? Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;) &lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Eval||Eval(expression [, string ''name''])}}&lt;br /&gt;
: Evaluates an arbitrary {{FuncArg|expression}} and returns the result of that evaluation. '''It works exactly like [[#Import|Import]] below''', except&lt;br /&gt;
:* The expression to be evaluated comes from a string instead of a file; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are not changed;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is not changed.&lt;br /&gt;
: Argument {{FuncArg|name}} will be shown in the error message beside the script name. Both will be followed with the line number in {{FuncArg|expression}} where the error occurred.&lt;br /&gt;
&lt;br /&gt;
: Variables in your calling script are available within {{FuncArg|expression}}; [[Global|global variables]] are not required.&lt;br /&gt;
: Note '''Eval''' can return the result of ''any'' valid expression; usually a clip, but also a string, boolean etc.&lt;br /&gt;
: You can use '''Eval''' to construct and evaluate expressions dynamically inside your scripts, based on variable input data.&lt;br /&gt;
: '''Eval''' is useful as a [[Control_structures|control structure]] for creating multi-line ''block statements'' without requiring [[AviSynth%2B|AviSynth+]].&lt;br /&gt;
: '''Eval''' can be used to put aside the need to install external plugins if they are not actually used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically &lt;br /&gt;
 ## calls [[BicubicResize]](last, 352, 288)&lt;br /&gt;
 settings = &amp;quot;352, 288&amp;quot;&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + settings + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## if...else [[Control_structures|control structure]]&lt;br /&gt;
 option = true&lt;br /&gt;
 option  &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[Levels]](0, 1.2, 255, 20, 235)&lt;br /&gt;
     [[Spline36Resize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;) &lt;br /&gt;
 \ : '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[BicubicResize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.3)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it is needed; &lt;br /&gt;
 ## in this example, [[SMDegrain]] only needs to be installed if the option is ''true''.&lt;br /&gt;
 option = false&lt;br /&gt;
 option &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     SMDegrain(tr=2, thSAD=250, contrasharp=true, refinemotion=true, lsb=true)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## accessing script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=[[Subtitle]](&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;A&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## setting script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;B = A.Invert&amp;quot;)&lt;br /&gt;
 return B ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Increment a global variable, based on a local variable&lt;br /&gt;
 Eval(&amp;quot;global my_counter = my_counter + &amp;quot; + [[#String|String]](increment)) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## multi-line example with comment and line continuation&lt;br /&gt;
 '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[BicubicResize]](352, 288)&lt;br /&gt;
 #FlipVertical&lt;br /&gt;
 Subtitle(&lt;br /&gt;
 \   &amp;quot;Width  = &amp;quot;  + [[#String|String]]([[Clip_properties|Width]]) + &amp;quot;\n&amp;quot;&lt;br /&gt;
 \ + &amp;quot;Height = &amp;quot; + String(Height)&lt;br /&gt;
 \ , align=7, lsp=0)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Empty expression &lt;br /&gt;
 ## results in error: 'Defined(u) == false'&lt;br /&gt;
 u = Eval(&amp;quot;#&amp;quot;)   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Error reporting&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, size=Height, align=2)&lt;br /&gt;
 Eval(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;, '''&amp;quot;eval_test_1&amp;quot;''') ## name for error reporting purposes&lt;br /&gt;
 return Last&lt;br /&gt;
 &lt;br /&gt;
 ''results in the error message:''&lt;br /&gt;
 Script error: there is no function named &amp;quot;foo&amp;quot;&lt;br /&gt;
 '''(eval_test_1, line 3)'''&lt;br /&gt;
 (E:\_test.avs, line 6)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Import||Import(filename)}}&lt;br /&gt;
{{ScriptFunctionCode|Import||Import(filename [, ...] [, bool utf8])}} {{AvsPluscon}}&lt;br /&gt;
: Evaluates the contents of another script and returns the result of that evaluation. '''It works exactly like [[#Eval|Eval]] above''', except&lt;br /&gt;
:* The expression to be evaluated comes from a file instead of a string; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are set to the current (imported) script;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is [[Internal_functions#SetWorkingDir|set]] to the current (imported) script.&lt;br /&gt;
:* {{FuncArg|utf8}} {{AvsPluscon}} if true, assumes filename(s) are [[wikipedia:UTF-8|UTF8]], else (default), assume ANSI.&lt;br /&gt;
&lt;br /&gt;
:[[Script_functions|Functions]], [[Script_variables|variables]] and loaded plugins declared inside the imported script are made available to the parent script. &amp;lt;b&amp;gt;Import&amp;lt;/b&amp;gt;'s return value  can be assigned to a variable of the parent script; this is most useful when the imported script ends with a clip.&lt;br /&gt;
&lt;br /&gt;
: Typically '''Import''' is used to make library functions available to the parent script, and the return value is not used. However this is simply a convention; it is not enforced by the [[AviSynth Syntax]]. Some indicative uses of '''Import''' include:&lt;br /&gt;
:* Storing multiple script-functions, variables and global variables for reuse by scripts (creation of script libraries).&lt;br /&gt;
:* Retrieving pre-built streams.&lt;br /&gt;
:* Retrieving dynamically configured pre-built streams (the core idea is that the importing script declares some global variables which the imported script uses to configure the stream that will return).&lt;br /&gt;
:'''Note 1''': Since the contents of the imported script are evaluated at the point of invocation, it is possible by enclosing the '''Import''' call in a nested scope (for example inside a function) to make available to the importing script the functions and globals of the imported script ''without'' its script-level variables.&lt;br /&gt;
:'''Note 2''': Any script with the [[AVSI]] extension in the AviSynth Plugins folder is automatically imported. This is useful for making script functions available to any new script you create without having to copy and paste.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # ''B.avsi''&lt;br /&gt;
 A.Invert&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5) ## create clip 'A'&lt;br /&gt;
 Import(&amp;quot;B.avsi&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## here we do not care about the return value (''mylib.avsi'' contains only functions)&lt;br /&gt;
 Import(&amp;quot;mylib.avsi&amp;quot;)  &lt;br /&gt;
 ...&lt;br /&gt;
 ## ''mysources.avsi'' loads predetermined file names from a folder into globals&lt;br /&gt;
 okflag = Import(&amp;quot;mysources.avsi&amp;quot;)  &lt;br /&gt;
 source = okflag ? global1 + global2 + global3 : [[BlankClip]]()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Select||Select(index, item0 [, item1 [, ...[, itemn]]])}}&lt;br /&gt;
: Returns the item selected by the {{FuncArg|index}} argument, which must be of int type (0 returns {{FuncArg|item0}}, 1 returns {{FuncArg|item1}}, ..., etc). Items can be any script [[Script_variables|variable]] or expression of any type and can even be mixed.&lt;br /&gt;
&lt;br /&gt;
:If {{FuncArg|index}} is out of range, an error is raised.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # select a clip-brush from a set of presets&lt;br /&gt;
 idx = 2&lt;br /&gt;
 brush = Select(idx, [[AviSource]](&amp;quot;round.avi&amp;quot;), &lt;br /&gt;
 \        rectangle, diagonal, diagonal.[[FlipHorizontal]])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - all branches are evaluated:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 Select(index, &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &lt;br /&gt;
 \        Assert(false, &amp;quot;Select evaluates all branches&amp;quot;)) &lt;br /&gt;
 ## NOTE this code does not run - it throws [[#Assert|Assert]] error&lt;br /&gt;
 ## because Select evaluates all branches&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is not desired, use the [[Ternary_operator|conditional execution]] operator: &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 x = (index==0) ? &amp;quot;zero&amp;quot;&lt;br /&gt;
 \ : (index==1) ? &amp;quot;one&amp;quot;&lt;br /&gt;
 \ : (index==2) ? &amp;quot;two&amp;quot;&lt;br /&gt;
 \ : Assert(false, &amp;quot;index out of range&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Default||Default(x, d)}}&lt;br /&gt;
: Returns {{FuncArg|x}} if '''Defined'''(x) is true, {{FuncArg|d}} otherwise. {{FuncArg|x}} must either be a function's argument or an already declared script variable (ie a variable which has been assigned a value) else an error will occur.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Assert||Assert(condition [, err_msg])}}&lt;br /&gt;
: Does nothing if {{FuncArg|condition}} is true; throws an error, immediately terminating script execution, if {{FuncArg|condition}} is false. In the later case {{FuncArg|err_msg}}, if supplied, is presented to the user through a dialog box; else the standard message &amp;quot;Assert: assertion failed&amp;quot; shows up.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     Assert(strength &amp;gt; 0, &amp;quot;'strength' must be positive&amp;quot;)&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|NOP||NOP()}}&lt;br /&gt;
: This is a no-operation function provided mainly for conditional execution with non-return value items such as [[Import]], when no &amp;quot;else&amp;quot; condition is desired. That is, use it whenever the [[AviSynth Syntax]] requires an operation (such as with the ?: [[Operators#For_Booleans|operator]]) but your script does not need one.&lt;br /&gt;
: Return value: 0 (int type).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 preset = want_presets ? [[AviSource]](&amp;quot;c:\presets\any.avi&amp;quot;) : NOP&lt;br /&gt;
 ... &lt;br /&gt;
 loadlib ? [[Import]](&amp;quot;my_useful_functions.avs&amp;quot;) : NOP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Undefined|v2.60|Undefined()}}&lt;br /&gt;
: Returns the undefined state.&lt;br /&gt;
: It's the state for which '''Defined'''() returns false.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 x = Undefined()&lt;br /&gt;
 Defined(x) # == false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Options ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{ScriptFunctionH5|SetMemoryMax||SetMemoryMax(amount)}}&lt;br /&gt;
: Sets the maximum memory that AviSynth uses (in MB) to the value of {{FuncArg|amount}}. Setting to zero just returns the current Memory Max value. In the 2.5 series the default Memory Max value is 25% of the free physical memory, with a minimum of 16MB.&lt;br /&gt;
: The default Memory Max is also limited to 512MB.&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; &amp;lt;!-- width=50% --&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | Free memory&lt;br /&gt;
 | &amp;lt;64&lt;br /&gt;
 | 128&lt;br /&gt;
 | 256&lt;br /&gt;
 | 512&lt;br /&gt;
 | 1024&lt;br /&gt;
 | 2048&lt;br /&gt;
 | 3072&lt;br /&gt;
 |-&lt;br /&gt;
 | Default Max&lt;br /&gt;
 | 16&lt;br /&gt;
 | 32&lt;br /&gt;
 | 64&lt;br /&gt;
 | 192&lt;br /&gt;
 | 448&lt;br /&gt;
 | 512&lt;br /&gt;
 | 512&lt;br /&gt;
 |}&lt;br /&gt;
: In some versions there is a default setting of 5MB, which is quite low. If you encounter problems (e.g. low speed) try to set this values to at least 32MB. Too high values can result in crashes because of 2GB address space limit.&lt;br /&gt;
: Return value: Actual MemoryMax value set.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetMemoryMax(128)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetWorkingDir||SetWorkingDir(path)}}&lt;br /&gt;
: Sets the default directory for AviSynth to the {{FuncArg|path}} argument.&lt;br /&gt;
: This is primarily for easy loading of source clips, [[Import|importing]] scripts, etc. It does not affect plugins' autoloading. &lt;br /&gt;
: Return value is 0 if successful, -1 otherwise.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetWorkingDir(&amp;quot;c:\my_presets&amp;quot;)&lt;br /&gt;
 [[AviSource]](&amp;quot;border_mask.avi&amp;quot;)  # this loads c:\my_presets\border_mask.avi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetPlanarLegacyAlignment||SetPlanarLegacyAlignment(mode)}}&lt;br /&gt;
: Set alignment mode for [[planar]] frames. {{FuncArg|mode}} can either be true or false.&lt;br /&gt;
: Some older [[External_plugins|plugins]] illegally assume the layout of video frames in memory. This special filter forces the memory layout of planar frames to be compatible with prior versions of AviSynth. The filter works on the [[The_script_execution_model/Evaluation_of_runtime_scripts|GetFrame]]() call stack, so it effects filters '''before''' it in the script.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Example : Using an older version of Mpeg2Source() (1.10 or older):&lt;br /&gt;
 &lt;br /&gt;
 LoadPlugin(&amp;quot;...\Mpeg2Decode.dll&amp;quot;)&lt;br /&gt;
 Mpeg2Source(&amp;quot;test.d2v&amp;quot;)         # A plugin that illegally assumes the layout of memory&lt;br /&gt;
 SetPlanarLegacyAlignment(true)  # Set legacy memory alignment for prior statements&lt;br /&gt;
 [[Convert|ConvertToYUY2]]()     # Statements through to the end of the script have&lt;br /&gt;
 ...                             # advanced memory alignment.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AllowFloatAudio||global OPT_AllowFloatAudio &amp;amp;#61; true ## default false}}&lt;br /&gt;
: [[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true (this option enables WAVE_FORMAT_IEEE_FLOAT audio output&amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?t=109608]&amp;lt;/sup&amp;gt;). In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
:The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_UseWaveExtensible||global OPT_UseWaveExtensible &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables WAVE_FORMAT_EXTENSIBLE audio output. The default is WAVE_FORMAT_EX.&lt;br /&gt;
: '''Note:''' The default DirectShow component for .AVS files, &amp;quot;AVI/WAV File Source&amp;quot;, does not correctly implement WAVE_FORMAT_EXTENSIBLE processing, so many application may not be able to detect the audio track. There are third party DirectShow readers that do work correctly. Intermediate work files written using the AVIFile interface for later DirectShow processing will work correctly if they use the DirectShow &amp;quot;File Source (async)&amp;quot; component or equivalent. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_dwChannelMask|v2.60|global OPT_dwChannelMask(int v)}}&lt;br /&gt;
: This option enables you to set ChannelMask. It overrides WAVEFORMATEXTENSIBLE.dwChannelMask&amp;lt;sup&amp;gt;[[http://wiki.multimedia.cx/index.php?title=WAVEFORMATEXTENSIBLE]&amp;lt;/sup&amp;gt; which is set according to this table&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 0x00004, // 1   -- -- Cf&lt;br /&gt;
 0x00003, // 2   Lf Rf&lt;br /&gt;
 0x00007, // 3   Lf Rf Cf&lt;br /&gt;
 0x00033, // 4   Lf Rf -- -- Lr Rr&lt;br /&gt;
 0x00037, // 5   Lf Rf Cf -- Lr Rr&lt;br /&gt;
 0x0003F, // 5.1 Lf Rf Cf Sw Lr Rr&lt;br /&gt;
 0x0013F, // 6.1 Lf Rf Cf Sw Lr Rr -- -- Cr&lt;br /&gt;
 0x0063F, // 7.1 Lf Rf Cf Sw Lr Rr -- -- -- Ls Rs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AVIPadScanlines|v2.60|global OPT_AVIPadScanlines &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables DWORD aligned planar padding. Default is packed aligned planar padding. See [[AVIFile output emulation|memory alignment used in the AVIFile output emulation]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_VDubPlanarHack|v2.60|global OPT_VDubPlanarHack &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables flipped YV24 and YV16 chroma planes. This is an hack for early versions of Virtualdub with YV24/YV16 support. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_V210|{{AvsPluscon}}|global OPT_Enable_V210 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, [[Frameserver|Frameserve]] interleaved V210 instead of planar P210. (VfW)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
{{BoldColor|black|100|§}} ''VfW'' here means [[wikipedia:Video_for_Windows|Video For Windows]] clients such as VirtualDub are affected, but not other clients such as ffmpeg.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_10|{{AvsPluscon}}|global OPT_Enable_Y3_10_10 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, set the [[FourCC]] to Y3[10][10] ('Y', '3', 10, 10) instead of P210  ('P', '2', '1', '0'). (VfW) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_16|{{AvsPluscon}}|global OPT_Enable_Y3_10_16 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 16bit YUV422, use Y3[10][16] instead of P216 (VfW)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_b64a|{{AvsPluscon}}|global OPT_Enable_b64a &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Use b64a instead of BRA[64] (VfW)&lt;br /&gt;
: works for avs+ version above r2636&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_PlanarToPackedRGB|{{AvsPluscon}}|global OPT_Enable_PlanarToPackedRGB &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Convert Planar RGB to packed RGB (VfW)&lt;br /&gt;
: Planar RGB 10, 12, 14 and 16 bits are reported as G3[0][10], G3[0][12], G3[0][14] and G3[0][16]&lt;br /&gt;
: Planar RGBA 10, 12, 14 and 16 bits are reported as G4[0][10], G4[0][12], G4[0][14] and G4[0][16]&lt;br /&gt;
: When these [[FourCC]] codes are not handled through VfW, use OPT_Enable_PlanarToPackedRGB=true.&lt;br /&gt;
: Avisynth+ will convert the clip from planar to RGB64 (packed 16bit RGB) and will negotiate this format instead&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conversion functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These convert between different types.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Value||Value(string)}}&lt;br /&gt;
: Converts a decimal string to its associated numeric value.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Value (&amp;quot;-2.7&amp;quot;) = -2.7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|HexValue||HexValue(string)}}&lt;br /&gt;
{{ScriptFunctionCode|HexValue||HexValue(string [, int pos])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a hexadecimal string to its associated numeric value. &lt;br /&gt;
:* {{FuncArg|pos}} sets the starting point of the numeric parser. All characters to the left of {{FuncArg|pos}} are ignored. Default is 1 (start of string).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 HexValue (&amp;quot;FF00&amp;quot;) = 65280&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Hex|v2.60|Hex(int)}}&lt;br /&gt;
{{ScriptFunctionCode|Hex||Hex(int [, int width])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a numerical value to its hexadecimal value. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
:* {{FuncArg|width}} sets the minimum width of the returned string. &lt;br /&gt;
::Resulting string will be left-padded with zeroes as needed. Allowed range is 0..8; default is 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Hex (10824234) = &amp;quot;A52A2A&amp;quot;&lt;br /&gt;
 Hex (15 width=2) = &amp;quot;0F&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|String||String(var [, string format_string])}}&lt;br /&gt;
: Converts a variable to a string. ''String'' arguments are passed along unchanged; ''bools'' are converted to &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;; numbers are formatted as described below; other [[Script_variables#Variable_Types|variable types]] (''clip'', ''val'') are converted to the empty string. &lt;br /&gt;
:The syntax of {{FuncArg|format_string}} is as follows:&lt;br /&gt;
::&amp;lt;code&amp;gt;'''%'''[flags][width][.precision]'''f'''&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;i&amp;gt;the leading &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; and trailing &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; are required.&amp;lt;/i&amp;gt;&lt;br /&gt;
:The parts of {{FuncArg|format_string}} are:&lt;br /&gt;
:; ''flags'' &lt;br /&gt;
::{| class=wikitable&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;&lt;br /&gt;
|left align (right align by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the +/- sign (show only '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;' by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|pad (see ''width'') with leading zeroes (pad with spaces by default)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;amp;nbsp;'&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;'&amp;amp;nbsp;&lt;br /&gt;
|print a blank instead of a '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;'&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the decimal point (dropped by default if there are no decimal digits)&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
:; ''width''&lt;br /&gt;
:: the minimum width (the string is never truncated if it is wider than ''width'')&lt;br /&gt;
:; ''precision''&lt;br /&gt;
:: the number of decimal digits&lt;br /&gt;
: You can also put arbitrary text around {{FuncArg|format_string}}, similar to the C-language [http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm sprintf] function.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|62|2}} &amp;gt;&lt;br /&gt;
 Subtitle( String(1.23) )                    # '1.230000' (six decimals by default for floats)&lt;br /&gt;
 Subtitle( String(123) )                     # '123'      (no decimals by default for ints)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.2f&amp;quot; ))           # '1.23'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.1f&amp;quot; ))           # '1.2'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%5.1f&amp;quot;) )           # '  1.2'    (padded to 5 characters wide)&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%1.3f&amp;quot;) )           # '1.230'    (3 decimals; add trailing zeroes)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.0f&amp;quot;) )            # '123'      (no decimals for precision=0)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%''#''0.0f&amp;quot;) )           # '123.'     ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.2f&amp;quot;) )            # '123.00'   (2 decimals: add trailing zeroes)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%5.0f&amp;quot;) )            # '  123'    (padded to 5 characters wide using ' ')&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%05.0f&amp;quot;) )           # '00123'    (padded to 5 characters wide using '0')&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.0f&amp;quot;) )          # 'PI=3'     (text around format_string)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%''#''0.0f&amp;quot;) )         # 'PI=3.'    ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%2.0f&amp;quot;) )          # 'PI= 3'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%3.2f&amp;quot;) )          # 'PI=3.14'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.5f&amp;quot;) )          # 'PI=3.14159'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%6.3f&amp;quot;) )          # 'PI= 3.142'&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(32, &amp;quot;%0.0f&amp;quot;) )             # '32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%3.0f&amp;quot;) )             # ' 32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%8.0f&amp;quot;) )             # '      32'&lt;br /&gt;
 &lt;br /&gt;
 ## arbitrary text around format_string:&lt;br /&gt;
 Subtitle( String(Last.Height, &amp;quot;Clip height is %0.0f&amp;quot;) ) # 'Clip height is 480'&lt;br /&gt;
 ## same output as above but using string concatenation:&lt;br /&gt;
 Subtitle( &amp;quot;Clip height is &amp;quot; + String(Last.Height) )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numeric functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common mathematical operations on numeric variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Max||Max(float, float [, ...])}}&lt;br /&gt;
: Returns the maximum value of a set of numbers.&lt;br /&gt;
: If all the values are of type Int, the result is an Int. If any of the values are of type Float, the result is a Float.&lt;br /&gt;
: This may cause an unexpected result when an Int value greater than 16777216 is mixed with Float values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Max (1, 2) = 2&lt;br /&gt;
 Max (5, 3.0, 2) = 5.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Min||Min(float, float [, ...])}}&lt;br /&gt;
: Returns the minimum value of a set of numbers.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Min (1, 2) = 1&lt;br /&gt;
 Min (5, 3.0, 2) = 2.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MulDiv||MulDiv(int, int, int)}}&lt;br /&gt;
: Multiplies two ints (m, n) and divides the product by a third (d) in a single operation, with 64 bit intermediate result. The actual equation used is &amp;lt;tt&amp;gt; (m * n + d / 2) / d &amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MulDiv (1, 1, 2) = 1&lt;br /&gt;
 MulDiv (2, 3, 2) = 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Floor||Floor(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round down on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Floor(1.2) = 1&lt;br /&gt;
 Floor(1.6) = 1&lt;br /&gt;
 Floor(-1.2) = -2&lt;br /&gt;
 Floor(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ceil||Ceil(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round up on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ceil(1.2) = 2&lt;br /&gt;
 Ceil(1.6) = 2&lt;br /&gt;
 Ceil(-1.2) = -1&lt;br /&gt;
 Ceil(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Round||Round(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round off to nearest integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Round(1.2) = 1&lt;br /&gt;
 Round(1.6) = 2&lt;br /&gt;
 Round(-1.2) = -1&lt;br /&gt;
 Round(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Int||Int(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round towards zero).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Int(1.2) = 1&lt;br /&gt;
 Int(1.6) = 1&lt;br /&gt;
 Int(-1.2) = -1&lt;br /&gt;
 Int(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Float||Float(int)}}&lt;br /&gt;
: Converts int to single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value. Integer values that require more than 24-bits to be represented will have their lower 8-bits truncated yielding unexpected values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Float(4) = 4.0&lt;br /&gt;
 Float(4) / 3 = 1.333 (while 4 / 3 = 1 , due to integer division)&lt;br /&gt;
 Float(123456789) = 123456792.0 (error = -3, 0.000002%)&lt;br /&gt;
 Float(1234567890) = 1234567936.0 (error = -46, 0.000004%)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Fmod|v2.60|Fmod(float, float)}}&lt;br /&gt;
: Returns the modulo of the argument. Output is float.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Fmod(3.5, 0.5) = 0 (since 3.5 - 7*0.5 = 0)&lt;br /&gt;
 Fmod(3.5, 1.0) = 0.5 (since 3.5 - 3*1.0 = 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pi||Pi()}}&lt;br /&gt;
: Returns the value of the {{BoldColor|black|110|π}} constant (the ratio of a circle's circumference to its diameter).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 d = Pi()    # d == 3.141592653&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exp||Exp(float)}}&lt;br /&gt;
: Returns the natural (base-e) exponent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Exp(1) = 2.7182818&lt;br /&gt;
 Exp(0) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log||Log(float)}}&lt;br /&gt;
: Returns the natural (base-e) logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log(1) = 0.0&lt;br /&gt;
 Log(10) = 2.30259&lt;br /&gt;
 Log(Exp(1)) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log10|v2.60|Log10(float)}}&lt;br /&gt;
: Returns the common logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log10(1.0) = 0&lt;br /&gt;
 Log10(10.0) = 1.0&lt;br /&gt;
 Log10(2.0) = 0.3010299957&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pow||Pow(float base, float power)}}&lt;br /&gt;
: Returns {{FuncArg|base}} raised to a {{FuncArg|power}}.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Pow(2, 3) = 8&lt;br /&gt;
 Pow(3, 2) = 9&lt;br /&gt;
 Pow(3.45, 1.75) = 8.7334&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sqrt||Sqrt(float)}}&lt;br /&gt;
: Returns the square root of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sqrt(1) = 1.0&lt;br /&gt;
 Sqrt(2) = 1.4142&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Abs||Abs(float or int)}}&lt;br /&gt;
: Returns the absolute value of its argument (returns float for float, integer for integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Abs(-3.8) = 3.8&lt;br /&gt;
 Abs(-4) = 4&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sign||Sign(float)}}&lt;br /&gt;
: Returns the sign of the value passed as argument (1, 0 or -1).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sign(-3.5) = -1&lt;br /&gt;
 Sign(3.5) = 1&lt;br /&gt;
 Sign(0) = 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Frac||Frac(float)}}&lt;br /&gt;
: Returns the fractional portion of the value provided.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Frac(3.7) = 0.7&lt;br /&gt;
 Frac(-1.8) = -0.8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Rand||Rand([int max] [, bool scale] [, bool seed])}}&lt;br /&gt;
: Returns a random integer value. All parameters are optional. &lt;br /&gt;
:;max&lt;br /&gt;
::sets the maximum value+1 (default 32768) and can be set negative for negative results. It operates either in scaled or modulus mode (default {{FuncArg|scale}}=true only if [[#Abs|Abs]]({{FuncArg|max}}) &amp;gt; 32768, false otherwise). &lt;br /&gt;
:;scale&lt;br /&gt;
::When true, ''scales'' the internal random number generator value to the maximum value, while ''modulus mode'' ({{FuncArg|scale}}=false) uses the remainder from an integer divide of the random generator value by the maximum. Modulus mode is recommended for smaller maximums. &lt;br /&gt;
:;seed&lt;br /&gt;
::When true, seeds the random number generator with the current time. {{FuncArg|seed}} defaults to false and probably isn't necessary, although it's there just in case. &lt;br /&gt;
: Typically, this function would be used with the [[#Select|'''Select''']] function for random clips. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Select(Rand(5), clip1, clip2, clip3, clip4, clip5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Spline||Spline(float X, x1, y1, x2, y2, .... [, bool cubic])}}&lt;br /&gt;
: Interpolates the Y value at point X using the control points {{FuncArg|x1}}/{{FuncArg|y1}}, ... There have to be at least 2 x/y-pairs. The interpolation can be {{FuncArg|cubic}} (the result is a spline) or linear (the result is a polygon). Default is cubic.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Continued Numerator, Denominator =====&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(int, int, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(int, int, int limit)}}&lt;br /&gt;
: The rational pair ('''ContinuedNumerator''', '''ContinuedDenominator''') returned has the smallest possible denominator such that the absolute error is less than 1/{{FuncArg|limit}}. More information can be found on [http://en.wikipedia.org/wiki/Continued_fraction wikipedia].&lt;br /&gt;
: If {{FuncArg|limit}} is not specified in the Float case the rational pair returned is to the limit of the single precision floating point value. Thus (float)((double)Num/(double)Den) == V.&lt;br /&gt;
: In the Int case if {{FuncArg|limit}} is not specified then the normalized original values will be returned, i.e. reduced by the ''GCD'' (greatest common divisor).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ContinuedNumerator(PI(), limit=5000]) = 355&lt;br /&gt;
 ContinuedDenominator(PI(), limit=5000) = 113&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(PI(), limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(PI(), limit=50) = 7&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(355, 113, limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(355, 113, limit=50) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigonometry functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: relationships involving lengths and angles of triangles. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sin||Sin(float)}}&lt;br /&gt;
: Returns the sine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sin(Pi()/4) = 0.707&lt;br /&gt;
 Sin(Pi()/2) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cos||Cos(float)}}&lt;br /&gt;
: Returns the cosine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cos(Pi()/4) = 0.707&lt;br /&gt;
 Cos(Pi()/2) = 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tan|v2.60|Tan(float)}}&lt;br /&gt;
: Returns the tangent of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tan(Pi/4) = 1.0&lt;br /&gt;
 Tan(Pi/2) = not defined&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: 32 bit IEEE floats do not have sufficient resolution to exactly represent&lt;br /&gt;
: pi/2 so AviSynth returns a large positive number for the value slightly less&lt;br /&gt;
: than pi/2 and a large negative value for the next possible value which is&lt;br /&gt;
: slightly greater than pi/2.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Asin|v2.60|Asin(float)}}&lt;br /&gt;
: Returns the inverse of the sine of the argument (output is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Asin(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Asin(1.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Acos|v2.60|Acos(float)}}&lt;br /&gt;
: Returns the inverse of the cosine of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Acos(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Acos(0.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan|v2.60|Atan(float)}}&lt;br /&gt;
: Returns the inverse of the tangent of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan(0.707) = 0.6154085176&lt;br /&gt;
 Atan(1.0) = 0.7853981634 (~ Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan2|v2.60|Atan2(float, float)}}&lt;br /&gt;
: Returns the angle between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. Output is in radians. See [http://en.wikipedia.org/wiki/Atan2 wikipedia] for more information.&lt;br /&gt;
: y is the first argument and x is the second argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan2(1.0, 0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
 Atan2(1.0, 1.0) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Atan2(-1.0, -1.0) = -2.356194490 (~ -3Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sinh|v2.60|Sinh(float)}}&lt;br /&gt;
: Returns the hyperbolic sine of the argument. See [http://en.wikipedia.org/wiki/Hyperbolic_function wikipedia] for more information.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sinh(2.0) = 3.626860408&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cosh|v2.60|Cosh(float)}}&lt;br /&gt;
: Returns the hyperbolic cosine of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cosh(2.0) = 3.762195691&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tanh|v2.60|Tanh(float)}}&lt;br /&gt;
: Returns the hyperbolic tangent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tanh(2.0) = 0.9640275801&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bit functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: The functions are ''bitwise operators''. They manipulate individual bits within integer variables. This means that their arguments (being integers) are converted to binary numbers, the operation is performed on their bits, and the resulting binary number is converted back again.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitAnd|v2.60|BitAnd(int, int)}}&lt;br /&gt;
: Returns the bitwise AND (sets bit to 1 if both bits are 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitAnd(5, 6) = 4 # since 5 = 101, 6 = 110, and 101&amp;amp;110 = 100&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitNot|v2.60|BitNot(int)}}&lt;br /&gt;
: Returns the bit-inversion (sets bit to 1 if bit is 0 and vice-versa).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitNOT(5) = -6 &lt;br /&gt;
 # since  5 = 101,  &lt;br /&gt;
 # and ~101 = 1111 1111 1111 1111 1111 1111 1111 1010 = -6&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: 1111 1111 1111 1111 1111 1111 1111 1010 &lt;br /&gt;
::= (2^32-1)-2^0-2^2 = 2^32-(1+2^0+2^2) &lt;br /&gt;
::= (signed) -(1+2^0+2^2) = -6&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitOr|v2.60|BitOr(int, int)}}&lt;br /&gt;
: Returns the bitwise inclusive OR (sets bit to 1 if one of the bits (or both) is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitOr(5, 6) = 7 # since 5 = 101, 6 = 110, and 101|110 = 111&lt;br /&gt;
 BitOr(4, 2) = 6 # since 4 = 100, 2 = 010, and 100|010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitXor|v2.60|BitXor(int, int)}}&lt;br /&gt;
: Returns the bitwise exclusive OR (sets bit to 1 if exactly one of the bits is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitXor(5, 6) = 3 # since 5 = 101, 6 = 110, and 101^110 = 011&lt;br /&gt;
 BitXor(4, 2) = 6 # since 4 = 100, 2 = 010, and 100^010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLShift|v2.60|BitLShift(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShl|v2.60|BitShl(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSal|v2.60|BitSal(int, int)}}&lt;br /&gt;
: Shift the bits of a number to the left.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number 5 two bits to the left:&lt;br /&gt;
 BitLShift(5, 2) = 20 (since 101 &amp;lt;&amp;lt; 2 = 10100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftA|v2.60|BitRShiftA(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftS|v2.60|BitRShiftS(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSar|v2.60|BitSar(int, int)}}&lt;br /&gt;
: Shift the bits of an integer to the right. (Arithmetic, Sign bit fill, Right Shift)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as signed:&lt;br /&gt;
 BitRShiftA(-42, 1) = -21 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1  &lt;br /&gt;
 #      = 1111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right, unsigned =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftL|v2.60|BitRShiftL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftU|v2.60|BitRShiftU(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShr|v2.60|BitShr(int, int)}}&lt;br /&gt;
: Shift the bits of an unsigned integer to the right. (Logical, zero fill, Right Shift)&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as unsigned:&lt;br /&gt;
 BitRShiftL(-42, 1) = 2147483627 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1 &lt;br /&gt;
 #      = 0111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: -42 = -(1+2^0+2^3+2^5) = (unsigned) (2^32-1)-(2^0+2^3+2^5) = &lt;br /&gt;
::1111 1111 1111 1111 1111 1111 1101 0110&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLRotate|v2.60|BitLRotate(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRol|v2.60|BitRol(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the left by the number of bits specified in the second operand. For each rotation specified, the high order bit that exits from the left of the operand returns at the right to become the new low order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number -2147483642 one bit to the left:&lt;br /&gt;
 BitLRotate(-2147483642, 1) = 13 &lt;br /&gt;
 # (since 10000000000000000000000000000110 ROL 1&lt;br /&gt;
 #      = 00000000000000000000000000001101)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRRotate|v2.60|BitRRotateL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRor|v2.60|BitRor(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the right by the number of bits specified in the second operand. For each rotation specified, the low order bit that exits from the right of the operand returns at the left to become the new high order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number 13 one bit to the right:&lt;br /&gt;
 BitRRotate(13, 1) = -2147483642 &lt;br /&gt;
 # (since 00000000000000000000000000001101 ROR 1 &lt;br /&gt;
 #      = 10000000000000000000000000000110)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit test =====&lt;br /&gt;
{{ScriptFunctionCode|BitTest|v2.60|BitTest(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitTst|v2.60|BitTst(int, int)}}&lt;br /&gt;
: Tests a single bit (that is, it returns true if its state is one, else it returns false). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Check the state of the fourth bit:&lt;br /&gt;
 BitTest(3, 4) = False&lt;br /&gt;
 BitTest(19, 4) = True&lt;br /&gt;
 &lt;br /&gt;
 Check the state of the sign bit:&lt;br /&gt;
 BitTest(-1, 31) = True&lt;br /&gt;
 BitTest(2147483647, 31) = False&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSet|v2.60|BitSet(int, int)}}&lt;br /&gt;
: Sets a single bit to one (so it sets its state to one). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Set the state of the fourth bit to one:&lt;br /&gt;
 BitSet(3, 4) = 19&lt;br /&gt;
 BitSet(19, 4) = 19&lt;br /&gt;
 &lt;br /&gt;
 Set the state of the sign bit to one:&lt;br /&gt;
 BitSet(-1, 31) = -1&lt;br /&gt;
 BitSet(2147483647, 31) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSetCount||BitSetCount(int [, int...])}} {{AvsPluscon}}&lt;br /&gt;
: Returns the total number of set bits in all supplied integer arguments.&lt;br /&gt;
&lt;br /&gt;
===== Bit clear =====&lt;br /&gt;
{{ScriptFunctionCode|BitClear|v2.60|BitClear(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitClr|v2.60|BitClr(int, int)}}&lt;br /&gt;
: Sets a single bit to zero (so it sets its state to zero). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Clear the bits of the number 5&lt;br /&gt;
 BitClear(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitClear(5, 1) = 5 (second bit is already zero)&lt;br /&gt;
 BitClear(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitClear(5, 3) = 5 (fourth bit is already zero)&lt;br /&gt;
 &lt;br /&gt;
 Clear the state of the sign bit:&lt;br /&gt;
 BitClear(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit change =====&lt;br /&gt;
{{ScriptFunctionCode|BitChange|v2.60|BitChange(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitChg|v2.60|BitChg(int, int)}}&lt;br /&gt;
: Sets a single bit to its complement (so it changes the state of a single bit; 1 becomes 0 and vice versa). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero). The sign bit is bit 31.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Change the state of the a bit of the number 5:&lt;br /&gt;
 BitChange(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitChange(5, 1) = 7 (second bit is set to one)&lt;br /&gt;
 BitChange(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitChange(5, 3) = 13 (fourth bit is set to one)&lt;br /&gt;
 &lt;br /&gt;
 Change the state of the sign bit:&lt;br /&gt;
 BitChange(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Runtime functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These are internal functions which are evaluated at every frame. They can be used inside the scripts passed to runtime filters ([[ConditionalFilter]], [[ScriptClip]], [[FrameEvaluate]]) to return information for a frame.&lt;br /&gt;
&lt;br /&gt;
===== Average ===== &lt;br /&gt;
{{ScriptFunctionCode|AverageLuma||AverageLuma(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaU||AverageChromaU(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaV||AverageChromaV(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageB||AverageB(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageG||AverageG(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageR||AverageR(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value with the average pixel value of a plane (Luma, U-chroma and V-chroma, respectively). They require an [[ISSE]] capable cpu. In v2.61 an {{FuncArg|offset}} argument is added which enables you to access other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ScriptClip(Last, &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     threshold = 55&lt;br /&gt;
     luma = AverageLuma ## gives the average luma of the current frame&lt;br /&gt;
     #luma = AverageLuma(1) ## gives the average luma of the next frame&lt;br /&gt;
     luma &amp;lt; threshold &lt;br /&gt;
     \ ? Levels(0, 1.0+0.5*(threshold-luma)/threshold, 255, 0, 255) &lt;br /&gt;
     \ : last&lt;br /&gt;
     Subtitle(&amp;quot;luma=&amp;quot; + String(luma), align=2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference =====&lt;br /&gt;
{{ScriptFunctionCode|LumaDifference||LumaDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaUDifference||ChromaUDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaVDifference||ChromaVDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifference||RGBDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifference||BDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifference||GDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifference||RDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value between 0 and 255 of the absolute difference between two planes from two different clips &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. They require an [[ISSE]] capable cpu.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ovl = [[Overlay]](last, mov_star, x=some_xvalue, y=some_yvalue, mask=mov_mask)&lt;br /&gt;
 ldif = LumaDifference(ovl) # implicit last for clip1&lt;br /&gt;
 udif = ChromaUDifference([[Tweak]](hue=24), ovl)&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference from previous =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceFromPrevious||YDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceFromPrevious||UDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceFromPrevious||VDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceFromPrevious||RGBDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceFromPrevious||BDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceFromPrevious||GDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceFromPrevious||RDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and previous frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious) &amp;gt; threshold)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference to next =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceToNext||YDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceToNext||UDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceToNext||VDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceToNext||RGBDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceToNext||BDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceToNext||GDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceToNext||RDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and next frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the difference between the RGB, luma or chroma plane of the current frame and of ''any'' other frame. Note that for example clip.'''RGBDifferenceToNext'''(-1) = clip.'''RGBDifferenceToPrevious''', and clip.'''RGBDifferenceToNext'''(0) = 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # both th1, th2 are positive thresholds; th1 is larger enough than th2&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious &amp;gt; th1) &amp;amp;&amp;amp; (YDifferenceToNext &amp;lt; th2)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Color plane median, min, max, range =====&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMedian||YPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMedian||UPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMedian||VPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMedian||BPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMedian||GPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMedian||RPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMin||YPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMin||UPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMin||VPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMin||BPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMin||GPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMin||RPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMax||YPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMax||UPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMax||VPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMax||BPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMax||GPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMax||RPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMinMaxDifference||YPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMinMaxDifference||UPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMinMaxDifference||VPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMinMaxDifference||BPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMinMaxDifference||GPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMinMaxDifference||RPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
: This group of functions return statistics about the distribution of pixel values on a plane (Luma, U-chroma and V-chroma, respectively). The statistics are, in order of presentation: maximum, minimum, median and range (maximum - minimum difference). &lt;br /&gt;
: {{FuncArg|threshold}} is a percentage, stating how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the statistics of other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # median and average are close only on even distributions; &lt;br /&gt;
 # this can be a useful diagnostic&lt;br /&gt;
 have_intense_brights = YPlaneMedian() - AverageLuma() &amp;lt; threshold&lt;br /&gt;
 ...&lt;br /&gt;
 # a simple per-frame normalizer to [16..235], CCIR, range&lt;br /&gt;
 [[Levels]](YPlaneMin(), 1.0, YPlaneMax(), 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth script information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptName|v2.60|ScriptName()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 name = ScriptName() # name = &amp;quot;F:\ProjectXYZ\video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptNameUtf8|{{AvsPluscon}}|ScriptNameUtf8()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFile|v2.60|ScriptFile()}}&lt;br /&gt;
: Returns the filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 file = ScriptFile() # file = &amp;quot;video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFileUtf8|{{AvsPluscon}}|ScriptFileUtf8()}}&lt;br /&gt;
: Returns the filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDir|v2.60|ScriptDir()}}&lt;br /&gt;
: Returns the path of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 folder = ScriptDir() # folder = &amp;quot;F:\ProjectXYZ&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDirUtf8|{{AvsPluscon}}|ScriptDirUtf8()}}&lt;br /&gt;
: Returns the path of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetLogParams|{{AvsPluscon}}|SetLogParams([string ''target'', int ''level''])}}&lt;br /&gt;
: Sets a file path for a log file, used by [[#LogMsg|LogMsg]] and internal error reporting.&lt;br /&gt;
:* {{FuncArg|target}} names a file which will be created when the script loads. If attempting to create or write to {{FuncArg|target}} fails, the script will raise an error immediately. If the file exists, new log entries will be appended to the end. If omitted, {{FuncArg|target}} defaults to [[wikipedia:Stderr|stderr]].&lt;br /&gt;
:* {{FuncArg|level}} sets the log ''verbosity''; it can be one of the following:&lt;br /&gt;
::{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_ERROR&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(1)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the fewest log entries&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_WARNING&amp;lt;/tt&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(2)&amp;lt;/small&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the most log entries&lt;br /&gt;
|}&lt;br /&gt;
::If omitted, {{FuncArg|level}} defaults to &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
:''Examples'' see [[#LogMsg|LogMsg]] below.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LogMsg|{{AvsPluscon}}|LogMsg(string, int)}}&lt;br /&gt;
: Creates a new log entry.&lt;br /&gt;
:* {{FuncArg|string}} (required) specifies the log message.&lt;br /&gt;
:* {{FuncArg|int}} (required) specifies the log entry level: see [[#SetLogParams|SetLogParams]] above.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## creating file and set path for future log entries:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test1.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents:''&lt;br /&gt;
 (empty)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging an INFO message:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test2.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 LogMsg(&amp;quot;this is a test&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ''log contents:''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: this is a test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging a script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test3.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents (redundant entries are common):''&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 35)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging INFO context for script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test4.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 function MyFunction(clip C)&lt;br /&gt;
 {&lt;br /&gt;
     C&lt;br /&gt;
     [[Control_structures|try]] {&lt;br /&gt;
         foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
     } catch (err_msg) {&lt;br /&gt;
         msg2 = &amp;quot;Error in MyFunction: &amp;quot;&lt;br /&gt;
         LogMsg([[#Time|Time]](&amp;quot;%Y-%m-%d %I:%M:%S %p, %z&amp;quot;) + &amp;quot;: &amp;quot; + msg2, LOG_INFO)&lt;br /&gt;
         #[[#Assert|Assert]](false, msg2 + err_msg) ## optional: stop script, else continue&lt;br /&gt;
     }&lt;br /&gt;
     return Last&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ''log contents (redundant entries omitted):''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: 2017-11-12 11:03:41 AM, -0500: Error in MyFunction:&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|GetProcessInfo|{{AvsPluscon}}|GetProcessInfo(int)}}&lt;br /&gt;
: Returns information about the [[wikipedia:Process_(computing)|process]] the script is running in.&lt;br /&gt;
: The ''int'' argument has two legal values:&lt;br /&gt;
:* if ''0'' (default), returns ''64'' for a 64-bit process or ''32'' for a 32-bit process.&lt;br /&gt;
:* else if ''1'',&lt;br /&gt;
:** returns 0 for 32-bit process on 32-bit OS;&lt;br /&gt;
:** returns 1 for 32-bit process on 64-bit OS;&lt;br /&gt;
:** returns 2 for 64-bit process on 64-bit OS;&lt;br /&gt;
:** else returns -1 (unknown)&lt;br /&gt;
:: /// [[TODO]] this is preliminary info&lt;br /&gt;
&lt;br /&gt;
== String functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common operations on string variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LCase||LCase(string)}}&lt;br /&gt;
: Returns lower case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;avisynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|UCase||UCase(string)}}&lt;br /&gt;
: Returns upper case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 UCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;AVISYNTH&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrToUtf8||StrToUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from ANSI to [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrFromUtf8||StrFromUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from [[wikipedia:UTF-8|UTF8]] to ANSI.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrLen||StrLen(string)}}&lt;br /&gt;
: Returns length of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrLen(&amp;quot;AviSynth&amp;quot;) = 8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RevStr||RevStr(string)}}&lt;br /&gt;
: Returns {{FuncArg|string}} backwards.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RevStr(&amp;quot;AviSynth&amp;quot;) = &amp;quot;htnySivA&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LeftStr||LeftStr(string, int)}}&lt;br /&gt;
: Returns first {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LeftStr(&amp;quot;AviSynth&amp;quot;, 3) = &amp;quot;Avi&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RightStr||RightStr(string, int)}}&lt;br /&gt;
: Returns last {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RightStr(&amp;quot;AviSynth&amp;quot;, 5) = &amp;quot;Synth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MidStr||MidStr(string, int pos [, int length])}}&lt;br /&gt;
: Returns substring starting at {{FuncArg|pos}} for optional {{FuncArg|length}} or to end. {{FuncArg|pos}}=1 specifies start.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MidStr(&amp;quot;AviSynth&amp;quot;, 3, 2) = &amp;quot;iS&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FindStr||FindStr(string, substring)}}&lt;br /&gt;
: Returns (1-based) position of {{FuncArg|substring}} within {{FuncArg|string}} &lt;br /&gt;
:* Note this function is case-sensitive. &lt;br /&gt;
:* Returns 0 if {{FuncArg|substring}} is not found.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;Syn&amp;quot;) ## returns 4&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;SYN&amp;quot;) ## returns 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ReplaceStr|{{AvsPluscon}}|ReplaceStr(string, substring, replacement_string [, bool sig])}}&lt;br /&gt;
: Replaces occurrences of {{FuncArg|substring}} with {{FuncArg|replacement_string}} and returns the result. &lt;br /&gt;
:* {{FuncArg|sig}} if false (the default), search is case-sensitive; if true, search is not case-sensitive.&lt;br /&gt;
:* Avisynth 2.6.x users have other options, such as the [[User_defined_script_functions|user]] function below, adapted from ''StrReplace'', found [[HDColorBars|here]].&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 function ReplaceStr(string base, string sought, string repstr) {&lt;br /&gt;
     pos = FindStr(base, sought)&lt;br /&gt;
     return (sought==&amp;quot;&amp;quot; || pos==0) ? base : ReplaceStr(&lt;br /&gt;
     \       LeftStr(base, pos-1) + repstr +&lt;br /&gt;
     \       MidStr(base, pos+StrLen(sought)),&lt;br /&gt;
     \       sought, repstr)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ReplaceStr(&amp;quot;FlipHorizontal&amp;quot;, &amp;quot;Horizontal&amp;quot;, &amp;quot;Vertical&amp;quot;)&lt;br /&gt;
 ReplaceStr(&amp;quot;''$a'' x *&amp;quot;, &amp;quot;''$a''&amp;quot;, String(1.5)) ## (a [[MaskTools2|MaskTools]] expression with argument)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FillStr|v2.60|FillStr(int [, string])}}&lt;br /&gt;
: Fills a string. When {{FuncArg|int}}&amp;gt;1 it concatenates the {{FuncArg|string}} {{FuncArg|int}} times. {{FuncArg|string}} is &amp;quot;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;quot; (space) by default.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 FillStr(1, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynth&amp;quot;&lt;br /&gt;
 FillStr(2, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynthAviSynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmp|v2.60|StrCmp(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) != 0 # strings are not equal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmpi|v2.60|StrCmpi(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is not case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;abcz&amp;quot;, &amp;quot;abcdefg&amp;quot;) != 0 &lt;br /&gt;
 # returns the difference betweeen &amp;quot;z&amp;quot; and &amp;quot;d&amp;quot; (which is positive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TrimLeft, TrimRight, TrimAll =====&lt;br /&gt;
{{ScriptFunctionCode|TrimLeft||TrimLeft(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimRight||TrimRight(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimAll||TrimAll(string)}}&lt;br /&gt;
: {{AvsPluscon}} Removes whitespace characters (space, tab, [[wikipedia:Non-breaking_space|nonbreaking space]]) from a string.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Chr||Chr(int)}}&lt;br /&gt;
: Returns the ASCII character. &lt;br /&gt;
: Note that characters above the ASCII character set (ie above 127) are code page dependent and may render different (visual) results in different systems. This has an importance only for user-supplied localised text messages.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Chr(34) returns the quote character&lt;br /&gt;
 Chr(9)  returns the tab   character&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ord|v2.60|Ord(string)}}&lt;br /&gt;
: Gives the ordinal number (character code) of the first character of {{FuncArg|string}} (works like php [http://php.net/manual/en/function.ord.php ord] or Basic [http://msdn.microsoft.com/en-us/library/xfw01fx4%28v=vs.84%29.aspx Asc])&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ord(&amp;quot;a&amp;quot;) = 97&lt;br /&gt;
 Ord(&amp;quot;AviSynth&amp;quot;) = Ord(&amp;quot;A&amp;quot;) = 65&lt;br /&gt;
 Ord(&amp;quot;§&amp;quot;) = 167&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Time||Time(string)}}&lt;br /&gt;
: Returns a string with the current system time formatted as defined by {{FuncArg|string}}.&lt;br /&gt;
&lt;br /&gt;
: The string may contain any of the codes for output formatting presented below:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; | Code&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; | Description&lt;br /&gt;
 |-&lt;br /&gt;
 |%a&lt;br /&gt;
%A  &lt;br /&gt;
 | Abbreviated weekday name&lt;br /&gt;
Full weekday name&lt;br /&gt;
 |-&lt;br /&gt;
 |%b&lt;br /&gt;
%B  &lt;br /&gt;
 | Abbreviated month name&lt;br /&gt;
Full month name&lt;br /&gt;
 |-&lt;br /&gt;
 |%c  &lt;br /&gt;
 | Date and time representation appropriate for locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%d  &lt;br /&gt;
 | Day of month as decimal number (01 - 31)&lt;br /&gt;
 |-&lt;br /&gt;
 |%H&lt;br /&gt;
%I  &lt;br /&gt;
 | Hour in 24-hour format (00 - 23)&lt;br /&gt;
Hour in 12-hour format (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%j  &lt;br /&gt;
 | Day of year as decimal number (001 - 366)&lt;br /&gt;
 |-&lt;br /&gt;
 |%m  &lt;br /&gt;
 | Month as decimal number (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%M  &lt;br /&gt;
 | Minute as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%p  &lt;br /&gt;
 | Current locale's A.M./P.M. indicator for 12-hour clock&lt;br /&gt;
 |-&lt;br /&gt;
 |%S  &lt;br /&gt;
 | Second as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%U  &lt;br /&gt;
 | Week of year as decimal number, with Sunday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%w  &lt;br /&gt;
 | Weekday as decimal number (0 - 6; Sunday is 0)&lt;br /&gt;
 |-&lt;br /&gt;
 |%W  &lt;br /&gt;
 | Week of year as decimal number, with Monday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%x  &lt;br /&gt;
 | Date representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%X  &lt;br /&gt;
 | Time representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%y&lt;br /&gt;
%Y  &lt;br /&gt;
 | Year without century, as decimal number (00 - 99)&lt;br /&gt;
Year ''with'' century, as decimal number&lt;br /&gt;
 |-&lt;br /&gt;
 |%z, %Z  &lt;br /&gt;
 | Time-zone name or abbreviation; no characters if time zone is unknown&lt;br /&gt;
 |-&lt;br /&gt;
 |%%  &lt;br /&gt;
 | Percent sign &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
: The '#' flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; |Code with '#' flag&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; |Change in meaning&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''a''', %#'''A''', %#'''b''', &lt;br /&gt;
%#'''B''', %#'''p''', %#'''X''', &lt;br /&gt;
%#'''z''', %#'''Z''', %#'''%'''&lt;br /&gt;
 | No change; flag is ignored. &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''c''' &lt;br /&gt;
 | Long date and time representation, appropriate for current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995, 12:41:29&amp;quot;'' &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''x''' &lt;br /&gt;
 | Long date representation, appropriate to current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995&amp;quot;''&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''d''', %#'''H''', %#'''I''', &lt;br /&gt;
%#'''j''', %#'''m''', %#'''M''', &lt;br /&gt;
%#'''S''', %#'''U''', %#'''w''', &lt;br /&gt;
%#'''W''', %#'''y''', %#'''Y''' &lt;br /&gt;
 | Remove leading zeroes (if any).&lt;br /&gt;
 |}&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 v = Time(&amp;quot;%Y-%m-%d&amp;quot;)        # &amp;quot;2010-03-01&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%d-%b-%Y&amp;quot;)        # &amp;quot;01-Mar-2010&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%#d/%#m/%y&amp;quot;)      # &amp;quot;1/3/10&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%I:%M:%S %p, %z&amp;quot;) # &amp;quot;08:04:42 PM, GMT Standard Time&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%H:%M:%S %z&amp;quot;)     # &amp;quot;20:04:42 GMT Standard Time&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth version information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionNumber||VersionNumber()}}&lt;br /&gt;
: Returns AviSynth version number as a float.&lt;br /&gt;
:* Note: use [[#VersionString|VersionString]] below to determine if running in [[AviSynth+]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionNumber ## returns 2.60 (release version as of 11/2017)&lt;br /&gt;
 VersionNumber ## returns 2.61 (beta)&lt;br /&gt;
 VersionNumber ## returns 2.60 (AVS+ release 2508)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionString||VersionString()}}&lt;br /&gt;
: Returns AviSynth version info as a string (first line used in [[Version]]() command).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.60, build:Mar 31 2015 [16:38:54]&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.61, build:May 17 2016 [16:06:18] VC2008Exp&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth+ 0.1, (r2508, MT, x86_64)&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function IsAvsPlus()&lt;br /&gt;
 {&lt;br /&gt;
     sVer = [[#LCase|LCase]](VersionString) &lt;br /&gt;
     return ([[#FindStr|FindStr]](sVer, &amp;quot;avisynth+&amp;quot;)    &amp;gt; 0)&lt;br /&gt;
     \   || (FindStr(sVer, &amp;quot;avisynthplus&amp;quot;) &amp;gt; 0)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other helper functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: Non-categorized functions&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BuildPixelType||string BuildPixelType(string family, int bits, int chroma, bool compat, bool oldnames, clip sample_clip)}} {{AvsPluscon}}&lt;br /&gt;
: Creates a video format (pixel_type) string by giving a colorspace family, bit depth, optional chroma subsampling and/or a &lt;br /&gt;
: template clip, from which the undefined format elements are inherited.&lt;br /&gt;
: &lt;br /&gt;
:* string {{FuncArg|family}}&lt;br /&gt;
:: defines color family: &amp;quot;Y&amp;quot;, &amp;quot;YUV&amp;quot;, &amp;quot;YUVA&amp;quot;, &amp;quot;RGB&amp;quot;, &amp;quot;RGBA&amp;quot;&lt;br /&gt;
:: use &amp;quot;RGB&amp;quot; for both planar RGB and classic packed RGB24 and RGB48 - {{FuncArg|compat}} switches to classic formats &lt;br /&gt;
:* int {{FuncArg|bits}}&lt;br /&gt;
:: intended bit depth: 8, 10, 12, 14, 16, 32. In Avisynth+ 8-16 bits are integer formats, 32 bit is float&lt;br /&gt;
:* int {{FuncArg|chroma}}&lt;br /&gt;
:: chroma subsampling: 411, 420, 422, 444. Applies for YUV(A) formats. Ignored for RGB(A) and Y&lt;br /&gt;
:* bool {{FuncArg|compat}} default false&lt;br /&gt;
:: When set to true, function returns packed RGB(A) formats instead of planar RGB(A) (e.g. &amp;quot;RGB48&amp;quot; instead of &amp;quot;RGBP16&amp;quot;), when applicable&lt;br /&gt;
:* bool {{FuncArg|oldnames}} default false&lt;br /&gt;
:: when true, function returns &amp;quot;YV12&amp;quot;, &amp;quot;YV16&amp;quot;, &amp;quot;YV24&amp;quot; instead of &amp;quot;YUV420P8&amp;quot;, &amp;quot;YUV422P8&amp;quot; and &amp;quot;YUV444P8&amp;quot; respectively&lt;br /&gt;
:* clip {{FuncArg|sample_clip}} when given, the clip serves as the base format, all optional parameters (bits, subsampling) will modify only its respective properties&lt;br /&gt;
&lt;br /&gt;
:* see also: use [[#Other_helper_functions|ColorSpaceNameToPixelType]] to convert a colorspace string to an integer pixel_type&lt;br /&gt;
''Examples:'' &lt;br /&gt;
&lt;br /&gt;
:: define &amp;quot;YUV444P10&amp;quot;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 family = &amp;quot;YUV&amp;quot;&lt;br /&gt;
 bits = 10&lt;br /&gt;
 chroma = 444&lt;br /&gt;
 compat = false&lt;br /&gt;
 oldformat = false&lt;br /&gt;
 s = BuildPixelType(family, bits, chroma, compat, oldformat)&lt;br /&gt;
 BlankClip(width=320,height=200,length=len,pixel_type=s,color=$008080).Info()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: Change only bit depth to 16, sample format is of an existing clip&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 newbits = 16&lt;br /&gt;
 c = last&lt;br /&gt;
 s = BuildPixelType(bits=newbits, sample_clip=c)&lt;br /&gt;
 BlankClip(width=320,height=200,length=len,pixel_type=s,color=$008080).Info()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ColorSpaceNameToPixelType||int ColorSpaceNameToPixelType(string)}} {{AvsPluscon}}&lt;br /&gt;
: Creates a video format (pixel_type) by providing a colorspace name&lt;br /&gt;
: &lt;br /&gt;
:* some formats have multiple valid names: &amp;quot;YV12&amp;quot; is identical to &amp;quot;YUV420P8&amp;quot;, &amp;quot;YV16&amp;quot; = &amp;quot;YUV422P8&amp;quot;, &amp;quot;YV24&amp;quot; = &amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[AviSynth Syntax]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_functions]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;br /&gt;
[[Category:Scripting_Basics]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Levels</id>
		<title>Levels</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Levels"/>
				<updated>2018-09-14T03:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
Adjusts brightness, contrast, and gamma. This is done using the following ''transfer function'':&lt;br /&gt;
:''output'' = ( (''input'' - {{FuncArg|input_low}}) / ({{FuncArg|input_high}} - {{FuncArg|input_low}}) )&amp;lt;sup&amp;gt;(1 / {{FuncArg|gamma}})&amp;lt;/sup&amp;gt; * ({{FuncArg|output_high}} - {{FuncArg|output_low}}) + {{FuncArg|output_low}}&lt;br /&gt;
&lt;br /&gt;
*{{FuncArg|input_low}} and {{FuncArg|input_high}} determine what ''input'' pixel values are treated as pure black and pure white. &lt;br /&gt;
*{{FuncArg|output_low}} and {{FuncArg|output_high}} determine what ''output'' values are treated as pure black and pure white.&lt;br /&gt;
*{{FuncArg|gamma}} controls the degree of non-linearity in the conversion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is one of those filters for which it would really be nice to have a GUI. Since we can't offer a GUI (though [http://forum.doom9.org/showthread.php?t=153248 AvsP] does), we at least make this filter '''compatible''' with [[VirtualDub|VirtualDub's]] when the clip is [[RGB]]. In that case you should be able to take the numbers from VirtualDub's ''Levels'' dialog and pass them as parameters to the '''Levels''' filter and get the same results. Unlike VirtualDub's filter however, the input and output parameters can be larger than 255{{D}}. &lt;br /&gt;
&lt;br /&gt;
When processing data in [[YUV]] mode, '''Levels''' only gamma-corrects the luma information, not the chroma. Gamma correction is really an RGB concept, and is only approximated here in YUV. If ''{{FuncArg|gamma}}=1.0'' (unity), the filter should have the same effect in both RGB and YUV modes. For adjusting brightness or contrast in YUV mode, it ''may'' be better (depending on the effect you are looking for) to use [[Tweak]] or [[ColorYUV]], because '''Levels''' changes the chroma of the clip.&lt;br /&gt;
&lt;br /&gt;
Note in {{AvsPluscon}}, the parameters {{FuncArg|input_low}}, {{FuncArg|input_high}}, {{FuncArg|output_low}} and {{FuncArg|output_high}}&lt;br /&gt;
* are &amp;lt;tt&amp;gt;float&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* are not [[Autoscale_parameter|autoscaling]] &amp;amp;ndash; they are relative to the current bit depth:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot; |bit depth equivalent color values&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;text-align:right&amp;quot;|8&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|16&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|128&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|235&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|255&lt;br /&gt;
|-&lt;br /&gt;
!10&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|64&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|512&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|940&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|1020&lt;br /&gt;
|-&lt;br /&gt;
!12&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|256&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|2048&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|3760&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|4080&lt;br /&gt;
|-&lt;br /&gt;
!14&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|1024&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|8192&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|15040&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|16320&lt;br /&gt;
|-&lt;br /&gt;
!16&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|4096&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|32768&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|60160&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|65280&lt;br /&gt;
|-&lt;br /&gt;
!32&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0.0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;235&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;255&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax and Parameters ====&lt;br /&gt;
{{FuncDef|Levels(clip ''input'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int ''input_low'', float ''gamma'', int ''input_high'', int ''output_low'', int ''output_high''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; [, bool ''coring'' , bool ''dither'' ] )}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef|Levels(clip ''input'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; float ''input_low'', float ''gamma'', float ''input_high'', float ''output_low'', float ''output_high''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; [, bool ''coring'' , bool ''dither'' ] )}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|(required)}}&lt;br /&gt;
::Source video.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|input_low|int/float*|(required)}}&lt;br /&gt;
::Input values at {{FuncArg|input_low}} or lower are treated as ''black'', and lighter colors are darkened proportionally.&lt;br /&gt;
::Therefore raising {{FuncArg|input_low}} darkens the output.&lt;br /&gt;
:: &amp;lt;big&amp;gt;*&amp;lt;/big&amp;gt; = &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt; in AviSynth, &amp;lt;tt&amp;gt;float&amp;lt;/tt&amp;gt; in AviSynth+&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gamma|float|(required)}}&lt;br /&gt;
::[[Wikipedia:Gamma_correction|Gamma]] adjustment. See [[#Examples|examples]].&lt;br /&gt;
::Higher {{FuncArg|gamma}} brightens the output; lower {{FuncArg|gamma}} darkens the output. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|input_high|int/float|(required)}}&lt;br /&gt;
::Input values at {{FuncArg|input_high}} or higher are treated as ''white'', and darker colors are brightened proportionally.&lt;br /&gt;
::Therefore lowering {{FuncArg|input_high}} brightens the output.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|output_low|int/float|(required)}}&lt;br /&gt;
::Dark values brighten to gray as {{FuncArg|output_low}} becomes larger.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|output_high|int/float|(required)}}&lt;br /&gt;
::Light values darken to gray as {{FuncArg|output_high}} becomes smaller.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|coring|bool|true}}&lt;br /&gt;
::When ''true'' (the default), &lt;br /&gt;
::#input luma is ''clamped'' to the range 16{{D}}-235{{D}} and the chroma to 16{{D}}-240{{D}}; &lt;br /&gt;
::#this clamped input is ''scaled'' from 16{{D}}-235{{D}} to 0{{D}}-255{{D}}, &lt;br /&gt;
::#the conversion takes place according to the transfer function above, and then &lt;br /&gt;
::#output is scaled back to 16{{D}}-235{{D}}. &lt;br /&gt;
::When ''false'', the conversion takes place according to the transfer function, without any scaling. &lt;br /&gt;
&lt;br /&gt;
::{{FuncArg|coring}} was created for VirtualDub compatibility, and it remains true by default for compatibility with older scripts. &lt;br /&gt;
::In the opinion of some, you should [http://forum.doom9.org/showthread.php?p=1722885#post1722885 always use ''coring=false''] if you are working directly with luma values (whether or not your input is 16{{D}}-235{{D}}).&lt;br /&gt;
&lt;br /&gt;
::'''Note''' TV-range video ''can'' be correctly processed with {{FuncArg|coring}}=false; for example, &lt;br /&gt;
:::&amp;lt;code&amp;gt;Levels({{BoldColor|blue|104|0}}, 1.6, {{BoldColor|blue|104|255}}, {{BoldColor|blue|104|0}}, {{BoldColor|blue|104|255}}, coring=true)&amp;lt;/code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp; &lt;br /&gt;
::produces the same result as&lt;br /&gt;
:::&amp;lt;code&amp;gt;Levels({{BoldColor|blue|104|16}}, 1.6, {{BoldColor|blue|104|235}}, {{BoldColor|blue|104|16}}, {{BoldColor|blue|104|235}}, coring=false)&amp;lt;/code&amp;gt;&lt;br /&gt;
::except that the output is not clipped to TV-range. Black and white levels are preserved while adjusting {{FuncArg|gamma}}, unlike&lt;br /&gt;
:::&amp;lt;code&amp;gt;Levels(0, 1.6, 255, 0, 255, coring=false)&amp;lt;/code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
:{{Par2|dither|bool|false}}&lt;br /&gt;
::When ''true'', [[ordered dithering]] is applied to combat [http://en.wikipedia.org/wiki/Colour_banding banding]. Default is ''false''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # does nothing (unity transfer function):&lt;br /&gt;
 Levels(0, 1, 255, 0, 255)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # the input is scaled from [16,235] to [0,255], &lt;br /&gt;
 # the conversion [0,255]-&amp;gt;[16,235] takes place (according to the formula),  &lt;br /&gt;
 # and the output is scaled back from [0,255] to [16,235]&lt;br /&gt;
 # (for example: the luma values in [0,16] are all converted to 30)&lt;br /&gt;
 Levels(0, 1, 255, 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # gamma-correct image for display in a brighter environment:&lt;br /&gt;
 # example: luma of 16 stays 16, 59 is converted to 79, etc.&lt;br /&gt;
 Levels(0, 1.3, 255, 0, 255)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # invert the image (make a photo-negative):&lt;br /&gt;
 # example: luma of 16 is converted to 235&lt;br /&gt;
 Levels(0, 1, 255, 255, 0)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # scales a [0,255] clip to [16,235]&lt;br /&gt;
 Levels(0, 1, 255, 16, 235, coring=false)  &lt;br /&gt;
 # note both luma and chroma components are scaled by the same amount,&lt;br /&gt;
 # so it's not exactly the same as [[ColorYUV]](levels=&amp;quot;PC-&amp;gt;TV&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # scales a [16,235] clip to [0,255]:&lt;br /&gt;
 Levels(16, 1, 235, 0, 255, coring=false)  &lt;br /&gt;
 # note both luma and chroma components are scaled by the same amount,&lt;br /&gt;
 # so it's not exactly the same as [[ColorYUV]](levels=&amp;quot;TV-&amp;gt;PC&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # makes a clip 100% black&lt;br /&gt;
 Levels(0, 1.0, 255, 0, 0)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # apply fading on gamma corrected source (same holds for resizing and smoothing)&lt;br /&gt;
 clip = ... &lt;br /&gt;
 gamma = 2.2&lt;br /&gt;
 clip.Levels(0, gamma, 255, 0, 255) # undo gamma (also called gamma correction)&lt;br /&gt;
 [[FadeOut]](n)&lt;br /&gt;
 Levels(0, 1.0/gamma, 255, 0, 255) # redo gamma&lt;br /&gt;
 ## use AVS+ and bit depth &amp;gt;= 10 to avoid banding in dark areas&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| AVS+ r2580 &lt;br /&gt;
| arguments are float &lt;br /&gt;
|-&lt;br /&gt;
| v2.60&lt;br /&gt;
| added ''dither'' &lt;br /&gt;
|-&lt;br /&gt;
| v2.53&lt;br /&gt;
| added ''coring'' (true by default, which reflects the behaviour in older versions)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Levels and Chroma filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-04-15T21:29:06Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-04-12 CropToAspect, ExpandToAspect 
v2018-04-14 (moved from -r42) CropPanTilt, CropShift, MergeLH, GammaCurves, SoftWipe, Shift, ShiftUV, ShiftRedBlue, ChangeSpeed, ChangeAudioSpeed
v201&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/External_filters</id>
		<title>External filters</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/External_filters"/>
				<updated>2018-04-09T01:43:11Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: /* Audio Filters */ add VUmeter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rough classification of third-party filters for AviSynth - a perpetual work in progress.&lt;br /&gt;
&lt;br /&gt;
This page lists both scripts (see [[Import]]) and plugins (see [[Plugins]]).&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
==== Download sites ====&lt;br /&gt;
A large list of filters can be downloaded from the following sites but be aware that some plugins listed '''may be outdated''', only recommended as a backup.&lt;br /&gt;
&lt;br /&gt;
*[https://web.archive.org/web/20130803185015/http://www.64k.it:80/andres/dettaglio.php?sez=avisynth Andres' Filter Collection] &lt;br /&gt;
*[https://chaosking.de/repo/avsfilters/ AviSynth Filter DB by ChaosKing] | [https://web.archive.org/web/20140412062911/http://chaosking.de/avisynth-filter-db mirror]&lt;br /&gt;
*[http://www.avisynth.info/?plugin=attach&amp;amp;pcmd=list&amp;amp;refer=%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96 AviSynth.info Filter Archive]&lt;br /&gt;
*[http://xhmikosr.1f0.de/_old/avisynth/plugins/ XhmikosR's Builds] &lt;br /&gt;
*[http://www.avisynth.nl/users/warpenterprises/ Warp Enterprises' AviSynth Filter Collection]&lt;br /&gt;
&lt;br /&gt;
====64-bit filters====&lt;br /&gt;
'''[[AviSynth%2B_x64_plugins|Comprehensive list of AviSynth+ 64-bit filters]] &amp;amp;rarr;'''&lt;br /&gt;
&lt;br /&gt;
====Outdated AviSynth plugins====&lt;br /&gt;
[[External plugins old|External plugins (old)]] - these older plugins are not recommended, page is there mainly for historical purposes.&lt;br /&gt;
&lt;br /&gt;
==== Using filters ====&lt;br /&gt;
Most scripts will apply filters in the following order:&lt;br /&gt;
&lt;br /&gt;
# Create an AviSynth clip from a video file using a source filter.&lt;br /&gt;
# Correct or remove any unwanted features in the video (e.g. dot crawl, field blending or telecine).&lt;br /&gt;
# Denoise the video (optional).&lt;br /&gt;
# Manipulate the video into the desired format (by e.g. changing the size and frame rate).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--AviSynth filters have been classified under these four basic tasks, with a fifth category for filters that fall outside this scheme, and a sixth category for filters that process audio only.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [https://forum.doom9.org/showthread.php?t=135855 BassAudio]&lt;br /&gt;
| [https://www.un4seen.com/ Bass Audio] decoder. Supports wav, aiff, mp3, mp2, mp1, ogg. Support for aac, ac3, alac, ape, cd, flac, midi, mpc, ofr, spx, tta, wma, wv with additional included dll's. The filter is included in the Behappy package.&lt;br /&gt;
| N/A&lt;br /&gt;
| [https://forum.doom9.org/showthread.php?t=135855 Plugin]&lt;br /&gt;
| dimzon&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/cmvsource.htm CMVSource]&lt;br /&gt;
| Load [http://www.bay12games.com/dwarves/ Dwarf Fortress] CMV and CCMV movies.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=162850 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=122598 DGAVCDecode] &lt;br /&gt;
| AVC/H.264 decoder plug-in. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.videohelp.com/tools/DGAVCDec Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DGDecode]] &lt;br /&gt;
| Decode MPEG1/MPEG2 streams from: DVD VOBs, captured transport streams, *.mpg/*.m2v/*.pva files, etc. Use this instead of MPEGDecoder/MPEG2Dec3.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]], [[I420]] &lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170107 DGMVCSource]&lt;br /&gt;
|MVC source filter for AviSynth.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://rationalqm.us/dgmvcsource/dgmvcsource100b22.zip Plugin]&lt;br /&gt;
|{{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| DVInfo&lt;br /&gt;
| Grabs the timestamp and recording date info from a DV-AVI. See [http://forum.doom9.org/showthread.php?t=61688 discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dvinfo_20100602.zip Plugin] [http://forum.doom9.org/showthread.php?p=1740824#post1740824 Update]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023927/http://mvideo.ddpp.net/eng/dvtimestampex.htm DVTimeStampEx]&lt;br /&gt;
| Shows DV timestamp information over a DV clip.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5.zip Plugin] - [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5_src.zip source code]&lt;br /&gt;
| [http://web.archive.org/web/20071025023932/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134275 DSS2]&lt;br /&gt;
| DirectShowSource2 that uses the installed Haali Media Splitter along with its ''avss.dll'' AviSynth plugin. It can convert VFR files to CFR in order to support frame-accurate seeking. Not recommended due to the fact that Haali Media Splitter is considered outdated, use DDS2mod.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130923230211/http://haali.su/mkv/ Plugin]&lt;br /&gt;
| Haali&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]&lt;br /&gt;
| DirectShowSource2 mod, this version does not require Haali Media Splitter. &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160224130743/https://filetea.me/t1sFlzxrp9xSdaqTlf3qZ6nCQ/dl Plugin]&lt;br /&gt;
| forclip&lt;br /&gt;
|-&lt;br /&gt;
| [[FFmpegSource]]&lt;br /&gt;
| Decodes all ffmpeg ([http://en.wikipedia.org/wiki/Libavcodec libavcodec]) supported A/V formats with frame accurate seeking in AVI, MKV and MP4. See [http://forum.doom9.org/showthread.php?t=127037 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]], [[I420]]&lt;br /&gt;
| [http://github.com/FFMS/ffms2/releases Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, TheFluff, Plorkyeran, others&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 FRIMSource]&lt;br /&gt;
|FRIMSource is an AviSynth plugin for sequential reading of elementary or transport streams (MPEG2, H.264 AVC/MVC-3D, VC1).&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 Plugin]&lt;br /&gt;
|videofan3d&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110021 HDVInfo] &lt;br /&gt;
| Grabs the timestamp and recording date info out of a M2T-D2V file&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20120419204535/http://strony.aster.pl/paviko/hdvinfo0.93.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ImageSequence]]&lt;br /&gt;
| Load png, jpg, bmp, pcx, tga and gif image sequences using the [http://corona.sourceforge.net/ Corona Image I/O Library]. CoronaSequence/RawSequence.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/imagesequence_20101115.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaRead uses the ImageMagick libraries to read images. Many formats are supported including animations, multipage files, image sequences and images with different sizes.&lt;br /&gt;
|&lt;br /&gt;
| [http://www.wilbertdijkhof.com/ Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| IUF&lt;br /&gt;
| Import Uncompressed File. Must be uncompressed! Supported uncompressed Formats: avi, omf(avid), pxr(pixar), mov(24/32bit quicktime), cineon. Can export as well. See [http://forum.doom9.org/showthread.php?t=51227 discussion].&lt;br /&gt;
| [[RGB]]&lt;br /&gt;
| [http://web.archive.org/web/20091016215740/http://geocities.com/hanfrunz/iuf_v1.5.zip Plugin] &lt;br /&gt;
| hanfrunz&lt;br /&gt;
|-&lt;br /&gt;
| [[JpegSource]]&lt;br /&gt;
| An advanced JPEG decoder for Avisynth 2.6. See [http://forum.doom9.org/showthread.php?t=170028 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/rjnt0y3ead2c6ef/JpegSource_20140419.7z Plugin] &lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[LSMASHSource]]&lt;br /&gt;
| A source plugin for audio and video, it uses Libav ([http://en.wikipedia.org/wiki/Libav#Contained_codecs libavcodec]) to decode all supported A/V formats. See [http://forum.doom9.org/showthread.php?t=167435 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[LSMASHSource|Plugin]]&lt;br /&gt;
| {{Author/VFR-maniac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NicAudio]]&lt;br /&gt;
| Audio Plugins for Audio: MPEGAudio/AC3/DTS/LPCM and other uncompressed formats. Formerly known As EvilMPASource. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=89629 discussion], [http://forum.doom9.org/showthread.php?t=135876 continued discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://nicaudio.codeplex.com/ Plugin]&lt;br /&gt;
| {{Author/Nic}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=103931 OmfSource] &lt;br /&gt;
| Opens the AVID OMF file format (video only, and only works with captured files). See [http://forum.doom9.org/showthread.php?t=103931 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [[QTSource]]&lt;br /&gt;
| Quicktime Import/Export Filter using an existing installation of Quicktime 6/7. See [http://forum.doom9.org/showthread.php?t=104293 discussion].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ R3DSource]&lt;br /&gt;
| Redcode RAW source plugin to load R3D clips. See [http://reduser.net/forum/showthread.php?25398 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ Plugin]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RawSource26]]&lt;br /&gt;
| Loads raw video data directly from files. Further modifications (most raw formats, YUV4MPEG2 compatible with latest spec) [http://forum.doom9.org/showthread.php?t=39798 discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [https://github.com/chikuzen/RawSource_2.6x/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawReader&amp;quot;)&lt;br /&gt;
| Loads raw video data directly from files, similarly to RawSource, but also allows for skipping headers, and extra formats (long list to help anyone doing a search):  GREY, Y8, interleaved RGB, BGR (which is RGB24), BGRA (which is RGB32), ARBG, ABGR, RGBA, interleaved YUV (which is YCbCr), YUY2, UYVY, AYUV, planar YUV formats YUV444, YUV422, YUV420 (as YV12), YUV420 (as IMC2), and some raw ImageMagick formats.  Some supports for different bit-depths.  Includes YUVInterleaved.avsi, InterleavedConversions.avsi, and PlanarConversions.avsi.  [http://forum.doom9.org/showthread.php?p=1403600 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[VapourSource]]&lt;br /&gt;
| VapourSynth script reader for AviSynth2.6x.  [http://forum.doom9.org/showthread.php?t=168339 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/VapourSource/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170311 VideoInputSource]&lt;br /&gt;
| Capture video frames from video capture card or webcam in real-time.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://github.com/fieliapm/himawari_avs_plugin/raw/master/VideoInputSource/VideoInputSource.dll Plugin]&lt;br /&gt;
|[http://github.com/fieliapm fieliapm]&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource ssifSource]&lt;br /&gt;
| Open m2ts, ssif and mpls files located in decrypted Blu-ray and Blu-ray 3D discs. Supports horizontal of vertical stack of views as output, views selection and swap autodetection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restoration Filters ==&lt;br /&gt;
&lt;br /&gt;
These remove effects or artifacts introduced (deliberately or accidentally) into the source video. Denoisers are classified separately.&lt;br /&gt;
&lt;br /&gt;
=== Anti-[[aliasing]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DAA]]&lt;br /&gt;
| Anti-aliasing with contra-sharpening.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| mcDAA3&lt;br /&gt;
| Motion-Compensated Anti-aliasing with contra-sharpening, can deal with ifade too, created because when applied daa3 to fixed scenes, it could damage some details and other issues. See [http://forum.doom9.org/showthread.php?p=1639679#post1639679 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/?wqkob7zx1p119e0 Script]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[MAA2]]&lt;br /&gt;
| Updated version of the MAA antialising script.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20140624125132/https://raw.githubusercontent.com/AviSynth/avs-scripts/master/maa2.avsi Script]&lt;br /&gt;
| line0&lt;br /&gt;
|-&lt;br /&gt;
| [[santiag]]&lt;br /&gt;
| Simple anti-aliasing with independent horizontal and vertical anti-aliasing strength.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1393006 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpAAMCmod&lt;br /&gt;
| High quality MoComped AntiAliasing script, also a line darkener since it uses edge masking to apply tweakable warp-sharpening, &amp;quot;normal&amp;quot; sharpening and line darkening with optional temporal stabilization of these edges. Part of [[AnimeIVTC]]. See [http://forum.doom9.org/showthread.php?t=138305] and [http://forum.doom9.org/showthread.php?t=140031]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| [[TIsophote]]&lt;br /&gt;
| A level-set (isophote) smoothing filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162751/http://bengal.missouri.edu/~kes25c/TIsophotev091.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[xaa]]&lt;br /&gt;
|Versatile anti-aliasing script.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
|[http://www.mediafire.com/download/sygi04y47eknvc2/xaa_v1.1.1.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chroma correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Archived}}/trbarry/Readme_BT709ToBT601.txt BT709ToBT601]&lt;br /&gt;
| Convert from BT.709 (HDTV) to BT.601 (SDTV) colorimetry.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/BT709ToBT601.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
|[[caf]]&lt;br /&gt;
|Chromatic Aberration Fixer.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| Torchlight&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShift]]&lt;br /&gt;
| This filter will shift the chrominance information by an even number of pixels, in either horizontal direction. It can also apply an overall vertical shift of the total chrominance information, up or down. It is primarily intended to correct improper colour registration. See [http://forum.doom9.org/showthread.php?t=33302 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091026153334/http://www.geocities.com/siwalters_uk/chromashift27.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShiftSP]]&lt;br /&gt;
| This script can shift chroma in all directions with subpixel accuracy.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| IanB, McCauley &lt;br /&gt;
|-&lt;br /&gt;
| ColorMatrix&lt;br /&gt;
| ColorMatrix corrects the colors of MPEG-2 streams. More correctly, many MPEG-2 streams use slightly different coefficients (called Rec.709) for storing the color information than AviSynth's color conversion routines or the XviD/DivX decoders (called Rec.601) do, with the result that DivX/XviD clips or MPEG-2 clips encoded by TMPGEnc/QuEnc are displayed with slighty off colors. This can be checked by opening the MPEG-2 stream directly in VDubMod. See [http://forum.doom9.org/showthread.php?t=82217 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420180927/http://bengal.missouri.edu/~kes25c/ColorMatrixv25.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/tritical}} (v2.0+)&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleeding]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091026141730/http://www.geocities.com/alex_j_jordan/chroma.txt Script]&lt;br /&gt;
| {{Author/Alex Jordan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleedingMod]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074#post1673932 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV411]]&lt;br /&gt;
| [[FixChromaBleedingMod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaticAberration]]&lt;br /&gt;
| FixChromaticAberration resizes (and crops) the red/green/blue channels of the image separately. This helps to minimize the colored edges next to the image corners that result from lenses with chromatic aberration. See [http://forum.doom9.org/showthread.php?p=1520786#post1520786 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/index.php/FixChromaticAberration Script]&lt;br /&gt;
| Martin Wagener&lt;br /&gt;
|-&lt;br /&gt;
| [[MoveChroma]]&lt;br /&gt;
| Chroma shifting filter; can be used to independently shift the U/V channels left or right.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/MoveChroma.20090823.zip Plugin]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/ apechironnup]&lt;br /&gt;
|-&lt;br /&gt;
| [[ReInterpolate411]]&lt;br /&gt;
| This is a fast and simple filter to correct the improper 4:1:1 =&amp;gt; 4:2:2 conversion that seems to occur with some DV/4:1:1 codecs.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/ReInterpolate411.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420.html ReInterpolate420]&lt;br /&gt;
| Usually, DV decoders upsample [[PAL]] DV (which is YV12) to YUY2 using point sampling. This plugin re-interpolates the original chroma samples.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420_v3.zip Plugin]&lt;br /&gt;
|  {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/Fizick}} (v3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Debanding ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AdaptDBMC&lt;br /&gt;
| Luma / Fade / Blue adaptive debanding script. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=512 Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2db]]&lt;br /&gt;
| A simple and fast debanding filter. See Wikipedia: [http://en.wikipedia.org/wiki/Color_banding Color Banding]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140705233110/http://manao4.free.fr/gradfun2db-v1.0.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2DBmod]]&lt;br /&gt;
| An advanced debanding script based on GradFun2DB.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144537 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| GradFun3&lt;br /&gt;
| This debanding script, part of the [[External_filters#Deepcolor_Filters|Dither]] package, has several gradient smoothing algorithms, including a bilateral filter. It uses an ordered dithering, which has a good resilience to lossy compression.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://f3kdb.readthedocs.org/en/latest/ flash3kyuu_deband]&lt;br /&gt;
| Fast debanding plugin ported from AviUtl.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161411 Plugin]&lt;br /&gt;
| [http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| LumaDB&lt;br /&gt;
| Fast 8-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114932/http://www.nmm-hd.org/upload/get~3YK_B5TfcyI/LumaDB-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| LumaDBL&lt;br /&gt;
| Fast 16-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. Works in 16-bit internally and can also input/output 16-bit. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114947/http://www.nmm-hd.org/upload/get~mQYIS9H6Qas/LumaDBL-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deblocking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| BlockKiller&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=1410479#post1410479 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1410479&amp;amp;postcount=19 Script]&lt;br /&gt;
| Jawed&lt;br /&gt;
|-&lt;br /&gt;
| BlockTerminator&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=831936#post831936 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=831936&amp;amp;postcount=24 Script]&lt;br /&gt;
| foxyshadis&lt;br /&gt;
|-&lt;br /&gt;
| [[DeBlock]]&lt;br /&gt;
| Deblocking filter,  see [http://forum.doom9.org/showthread.php?t=110352 discussion,] and [http://github.com/tp7/Deblock updated version] for AviSynth 2.6. DGDecode uses [{{N2Moved}}/dgmpgdec/DGDecodeManual.html#DeBlock DeBlock.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeBlock Plugin]&lt;br /&gt;
| {{Author/Fizick}} / {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblock_QED]]&lt;br /&gt;
| &amp;quot;A postprocessed Deblock(): Uses full frequencies of Deblock's changes on block borders, but DCT-lowpassed changes on block interiours.&amp;quot; [http://forum.doom9.org/showpost.php?p=913365&amp;amp;postcount=4 Didée]. See [http://forum.doom9.org/showthread.php?p=944459 discussion.] For updated Deblock QED see this [http://forum.doom9.org/showthread.php?t=154777 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Deblock_QED_MT2Mod.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeblockPP7]]&lt;br /&gt;
| A port of the MPlayer PP7 deblocking filter. See [http://forum.doom9.org/showthread.php?t=172498 discussion].&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=14970&amp;amp;d=1440108276 Plugin]&lt;br /&gt;
|John Doe&lt;br /&gt;
|-&lt;br /&gt;
| [[FunkyDeBlock]]&lt;br /&gt;
| Deblocking script based on BlindPP and high/low pass separation. See [http://forum.doom9.org/showthread.php?t=72431 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MDeblock]]&lt;br /&gt;
| Plugin for removing block artifacts, see [http://home.arcor.de/kassandro/MDeblock/MDeblock.htm homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/MDeblock/MDeblock.zip Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD]]&lt;br /&gt;
| Filter to deblock frames while keeping high frequency detail. See [http://forum.doom9.org/showthread.php?t=84355 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.funknmary.de/bergdichter/projekte/video/SmoothD Plugin]&lt;br /&gt;
| Tobias Bergmann&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD2]]&lt;br /&gt;
| Deblocking filter.  Rewrite of SmoothD. Faster, better detail preservation, optional chroma deblocking. See [http://forum.doom9.org/showthread.php?t=164800 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/jconklin754smoothd2/download Plugin]&lt;br /&gt;
| Jim Conklin&lt;br /&gt;
|-&lt;br /&gt;
| SmoothDeblock&lt;br /&gt;
| Slow and complex, but produces very good results - especially on severely blocky sources - in a similar manner to TempGaussMC and QTGMC. See [http://forum.doom9.org/showthread.php?t=111526 discussion] and an [http://forum.doom9.org/showthread.php?p=945261#post945261 overall comment].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1553458#post1553458 Script]&amp;lt;br&amp;gt;[[SmoothDeblock_source|(alt source)]]&lt;br /&gt;
| redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock.html Unblock]&lt;br /&gt;
|UnBlock is a filter that removes the &amp;quot;blockiness&amp;quot; of heavily or moderately compressed images with statistical approach. See [http://forum.doom9.org/showthread.php?t=133059 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock11.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dehaloing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[abcxyz]]&lt;br /&gt;
| Filter to remove halos. See [http://forum.doom9.org/showthread.php?t=144982 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Media:abcxyz_MT2.avsi|Script]]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BlindDeHalo3]]&lt;br /&gt;
| Filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=622289#post622289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5599&amp;amp;d=1143030001 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeHalo_alpha]]&lt;br /&gt;
| Very powerful filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=777956#post777956 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Dehalo_alpha_mt.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeHaloHmod]]&lt;br /&gt;
| Another halo reducer, it includes lots of options to tweak for best performance. See [http://forum.doom9.org/showthread.php?p=1675762#post1675762 discussion]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [[DeHaloHmod|Script]]&lt;br /&gt;
|AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
|[[FineDehalo]]&lt;br /&gt;
|Halo removal script that uses DeHalo_alpha with a few masks and optional contra-sharpening to try remove halos without removing important details (like line edges).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/images/FineDehalo.avsi Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| Mask_DHA&lt;br /&gt;
| A combination of the best of DeHalo_alpha and BlindDeHalo3, plus a few minor tweaks to the masking. See [http://forum.doom9.org/showthread.php?t=148498 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| 'Orum&lt;br /&gt;
|-&lt;br /&gt;
| [[VHSHaloremover]]&lt;br /&gt;
| Quick &amp;amp; dirty halo removal. Will introduce some blurriness, but the halos are so huge you can’t avoid it. See [http://forum.doom9.org/showthread.php?p=1758184#post1758184]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://pastebin.com/s24mSgJ5 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YAHR]]&lt;br /&gt;
| Basic filter with no variables to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=1205653#post1205653]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/YAHR.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| YAHRmod&lt;br /&gt;
| Basic filter used to reduce halos in modern DVD and other cases.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YAHRmod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deringing &amp;amp; Mosquito Noise ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpSharpDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by heavily aWarpSharp-ing the image and then applying it only to the areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/AWarpSharpDering.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak]&lt;br /&gt;
|-&lt;br /&gt;
| [http://rationalqm.us/dgmpgdec/DGDecodeManual.html#BlindPP BlindPP]&lt;br /&gt;
| Deblocking &amp;amp; deringing filter; part of [[DGDecode]]. &amp;lt;br&amp;gt;Mosquito noise removal: &amp;lt;code&amp;gt;BlindPP(quant=16, cpu2=&amp;quot;ooooxx&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=636297#post636297 BlindDeRing]&lt;br /&gt;
| Deringing filter.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Restoration_Filters/Deringing/BlindDeRing___(2005).7z Plugin]&lt;br /&gt;
| krieger2005&lt;br /&gt;
|-&lt;br /&gt;
| [[EdgeCleaner]]&lt;br /&gt;
| A simple edge cleaning and weak dehaloing function. See [http://forum.doom9.org/showthread.php?t=164592 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1568521&amp;amp;postcount=13 Script]&lt;br /&gt;
| [http://forum.doom9.org/member.php?u=80518 canuckerfan]&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only. See [http://forum.doom9.org/showthread.php?p=1043583#post1043583 here] and [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=67532 here] for details.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=793930#post793930 Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering mod]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140711173345/http://www.nmm-hd.org/upload/get~08CusazVphU/HQDeringmod_v1.8.avsi Script]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/memberlist.php?mode=viewprofile&amp;amp;u=479&amp;amp;sid=ff62d0f6c22fcfdbe97b53c8351429bc mawen1250]&lt;br /&gt;
|-&lt;br /&gt;
| [[LazyDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by applying [[aWarpSharp2]] only to areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131103155455/http://anime-addict.ani-x.com/files/avisynth/scripts/LazyDering_v0.1.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak], RazorbladeByte&lt;br /&gt;
|-&lt;br /&gt;
| [[MosquitoNR]]&lt;br /&gt;
| A noise reduction filter designed for mosquito noise, which is often caused by lossy compression.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20131028144351/http://www.geocities.jp/w_bean17/files/mosquito_nr_avisynth.zip Plugin]&lt;br /&gt;
| {{Author/b_inary}}&lt;br /&gt;
|-&lt;br /&gt;
|ungibbs&lt;br /&gt;
|ungibbs, a gibbs artifact remover.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=134502 Script]&lt;br /&gt;
|*.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing&lt;br /&gt;
|Uses aWarpSharp2's flattening to clean out ringing/smaller halos, then runs some masks to preserve the edges and avoid the thinning.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing_faster&lt;br /&gt;
|Same as WarpDeRing but may be a bit faster.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_faster_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deinterlacing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| Area&lt;br /&gt;
| A port of Gunnar Thalin's VirtualDub filter &amp;quot;Deinterlace - area based&amp;quot; to AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/area_5F25_dll_20030217.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}} // {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| BlendBob&lt;br /&gt;
| Filter designed for use after a smart bob; blends every other frame with the closest matching neighbouring frame. See [http://forum.doom9.org/showthread.php?threadid=80289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/BlendBob/ Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| DGBob&lt;br /&gt;
| This filter splits each field of the source into its own frame and then adaptively creates the missing lines either by interpolating the current field or by using the previous field's data. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=55598 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/dgbob/dgbob.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The FieldDeinterlace filter provides functionality similar to the postprocessing function of Telecide. You can use it for pure interlaced streams (that is, those not containing telecined progressive frames). The name refers to the fact that field mode differencing is used.&lt;br /&gt;
| [[YUY2]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EEDI2]]&lt;br /&gt;
| EEDI2 resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and interpolating the missing field.  It is intended for edge-directed interpolation for deinterlacing (i.e. not really made for resizing a normal image, but can do that as well).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/EEDI2 Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[eedi3|EEDI3]]&lt;br /&gt;
| Another edge directed interpolation filter. Works by minimizing a cost functional involving every pixel in a scan line. eedi3 is good for deinterlacing and enlarging images by the powers of 2.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/Elegant996/EEDI3/releases/download/0.9.2.1/EEDI3_v0_9_2_1.7z Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FieldHint]]&lt;br /&gt;
|FieldHint combines arbitrary fields from the input clip, and optionally adds Telecide-compatible postprocessing hints.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20120223025813/http://ivtc.org/yatta%20support/fieldhint-0.12.rar Plugin]&lt;br /&gt;
|{{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| IBob&lt;br /&gt;
| Interpolating Bob works identically to the Avisynth built-in [[Bob]] filter except that it uses linear interpolation instead of bicubic resizing. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=62142 discussion]. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://kevin.atkinson.dhs.org/ibob/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| KernelDeint&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Superceded by [[LeakKernelDeint]], see the description below in this table. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/kerneldeint/kerneldeint.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LeakKernelDeint]]&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Compared to KernelDeint, it is low-level optimized (for speed) and provides some useful new functionality. As the original author of KernelDeint() states, LeakKernelDeint() is the preferred version to use.&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/LeakKernelDeint/LeakKernelDeint_1.5.4.zip Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3]]&lt;br /&gt;
| nnedi3 is an intra-field only deinterlacer. It takes in a frame, throws away one field, and then interpolates the missing pixels using only information from the kept field. It also has same rate and double rate modes.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/jpsdr/NNEDI3/releases Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3ocl]]&lt;br /&gt;
| OpenCL rewrite of [[nnedi3]]. See [http://forum.doom9.org/showthread.php?t=169766 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bmemjsu7jqnlk65/nnedi3ocl_20131208.7z Plugin]&lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[QTGMC]]&lt;br /&gt;
| by -Vit- [http://forum.doom9.org/showthread.php?t=156028] A new deinterlacer based on TempGaussMC_beta2. It's faster and has a presets system for speed/quality selection. There are also several new features including progressive support and noise/grain processing. The script also contains extensive comments to better describe the settings and the workings of the TGMC algorithm.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/QTGMC Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
| [[SangNom2]]&lt;br /&gt;
| Reimplementation of the old [[SangNom]] plugin. See [http://forum.doom9.org/showthread.php?t=168315 discussion].&lt;br /&gt;
| [[Y8]],[[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SangNom2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/ SmoothDeinterlace]&lt;br /&gt;
| This contains an adaptive deinterlacer plugin for (AVISynth). It is based on Gunnar Thalin's [http://www.guthspot.se/video/index.htm#deinterlacesmooth Smooth Deinterlace plugin] for VirtualDub.&amp;lt;br&amp;gt;&lt;br /&gt;
See also [[SmoothDeinterlaceFunctions]]&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/AVSSmoothDeinterlacer.zip Plugin]&lt;br /&gt;
| {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TDeint]]&lt;br /&gt;
| TDeint is a bi-directionally, motion adaptive (sharp) deinterlacer. It can also adaptively choose between using per-field and per-pixel motion adaptivity. It can use cubic interpolation, kernel interpolation (with temporal direction switching), or one of two forms of modified ELA interpolation which help to reduce &amp;quot;jaggy&amp;quot; edges in moving areas where interpolation must be used. TDeint also supports user overrides through an input file, and can act as a smart bobber or same frame rate deinterlacer, as well as an IVTC post-processor. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=82264 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420182314/http://bengal.missouri.edu/~kes25c/TDeintv11.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TelecideHints]]&lt;br /&gt;
| The filter process the stats file to get the usual progressive matches and identify VFR sections.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://mod16.org/fansub/Telecidehints11.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TempGaussMC]]&lt;br /&gt;
| Motion-compensated bob deinterlacer, based on temporal gaussian blurring. reduces noise/grain of the source and does NOT leave the original fields unchanged. Output is rich with details and very stable. Is SLOW&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TempGaussMC Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Yadif]]&lt;br /&gt;
| Port of YADIF (Yet Another DeInterlacing Filter) from MPlayer by Michael Niedermayer (http://www.mplayerhq.hu). It check pixels of previous, current and next frames to re-create the missed field by some local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/yadif/yadif.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod]]&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 also is not an Avisynth_C plugin (just a normal one).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183914/http://bengal.missouri.edu/~kes25c/yadifmod_v1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod2]]&lt;br /&gt;
| Yadif + yadifmod for avisynth2.6/avisynth+. See [http://forum.doom9.org/showthread.php?p=1761361 discussion].&lt;br /&gt;
| [[YV24]], [[YV16]], [[YV12]], [[YV411]], [[Y8]]&lt;br /&gt;
| [http://github.com/chikuzen/yadifmod2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Duplicate Frame Detectors ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApparentFPS]]&lt;br /&gt;
| Shows underlying framerate where a clip has had many duplicates inserted, easier than counting unique frames.&lt;br /&gt;
| (see [[ApparentFPS|docs]])&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171339 Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| Dup &lt;br /&gt;
| A robust duplicate frame detector; a frame that is determined to be close enough to its predecessor to be considered a duplicate will be replaced by a copy of the predecessor. This can significantly reduce the size of encoded clips with virtually no visual effect. Provides the capability to replace frames with a blend of all the duplicates, providing a valuable noise reduction. See [http://forum.doom9.org/showthread.php?t=41850 original] and [http://forum.doom9.org/showthread.php?t=153037 continued] discussion. &amp;lt;!--[http://forum.doom9.org/showthread.php?t=44500 another old link]--&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dup/dupnew.html Plugin] &lt;br /&gt;
[http://forum.doom9.org/showpost.php?p=1747207&amp;amp;postcount=17 Update (v2.32a)]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134930 Dupped]&lt;br /&gt;
| Another frame duplication function, similar to Dup, but hopefully more accurate. See [http://forum.doom9.org/showthread.php?t=134930 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181919/http://www.randomdestination.com/members/corran/misc/dupped/dupped.avsi Script]&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/dedup.txt DeDup] &lt;br /&gt;
| Remove (drop) duplicate frames in the interest of compression quality and speed. Resulting clip will have a variable frame rate.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
|[[ExactDedup]]&lt;br /&gt;
| ExactDedup is a filter intended to remove frames that are exact duplicates of each other, leaving only the first and (optionally) last frames of a run intact, and generates a Matroska v2 timecodes file with timing information for the ensuing stream. See [http://tasvideos.org/forum/viewtopic.php?t=12065 discussion].&lt;br /&gt;
| [[RGB24]] [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/9x2ax1rb5un02d5/ExactDedup+Version+0.03.zip Plugin]&lt;br /&gt;
|Steve Melenchuk, Arick Chan&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/getdups/getdups.html GetDups] &lt;br /&gt;
| Selecting unique duplicate frames from clip, it return frames which have copies only, by one from the series (group). Made for 8mm films.&lt;br /&gt;
| [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/getdups/getdups096.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 MorphDups]&lt;br /&gt;
| Replace duplicate frames by interpolations.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 Script]&lt;br /&gt;
| sven_x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fieldblending and Frameblending removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[c_deblend]] &lt;br /&gt;
| c_deblend is a simple blend replacing function like unblend or removeblend. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Cdeint]]&lt;br /&gt;
| Restores 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video (alternative for Restore24).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblend]]&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=760375#post760375 discussion].&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=157337 ExBlend]&lt;br /&gt;
| ExBlend is a plugin to repair damage caused by blend deinterlacing of telecined clips, which results in a double blend, every five frames, GGGBBGGGBBGGGBB etc where 'G' is good and 'B' is blend. See [http://forum.doom9.org/showthread.php?t=157337 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.mediafire.com/download/0rxe3675sfr4w9l/ExBlend_25_dll_20100226.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[FixBlendIVTC]]&lt;br /&gt;
| A blend replacing/frame restoring function for doubleblends caused by blend-deinterlacing of telecined sources. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mrestore]]&lt;br /&gt;
| Uses conditional frame evaluation to undo standard conversions with blends. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveBlend]]&lt;br /&gt;
| This filter is used to remove blended fields/frames. See [http://forum.doom9.org/showthread.php?t=75772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [//web.archive.org/web/20061113201230/http://bossanovaguitar.com/video/removeblend-0.3.zip Plugin]&lt;br /&gt;
| {{Author/violao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Restore24]]&lt;br /&gt;
| Restore24 is an AviSynth filter that is able to do the nearly impossible: Restore 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=75432 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [[RestoreFPS]]&lt;br /&gt;
| RestoreFPS reverses the kind of blending generated by [[ConvertFPS]], restoring original framerate. It will work perfectly well on any regular blend pattern.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Restorefps_v10.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Srestore]]&lt;br /&gt;
| Replacement function for mrestore, c_deblend, FixBlendIVTC and DupHq.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Srestore|script]]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| Specials&lt;br /&gt;
| Helps restore video with blended fields/frames using a reference source. See [http://forum.doom9.org/showthread.php?t=165030 discussion] and much more information [http://horman.net/doctorwho/specials.php here] and [http://forum.doom9.org/showthread.php?t=168832 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://horman.net/specials.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| Unblend&lt;br /&gt;
| Unblend is based on warpenterprise's deblend algorithm and neuron2's decimate code, with YV12 support only. The aim is the same of deblend. See [http://forum.doom9.org/showthread.php?t=55019 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/unblend_5F25_dll_2003.zip Plugin]&lt;br /&gt;
| Bach&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Film Damage correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/descratch/descratch.html DeScratch]&lt;br /&gt;
| DeScratch removes vertical scratches from films. Also it can be used for removing of horizontal noise lines such as drop-outs from analog VHS captures (after image rotation). &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/descratch/descratch110.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/despot/despot.html DeSpot]&lt;br /&gt;
| This filter is designed to remove temporal noise in the form of dots (spots) and streaks found in some videos. The filter is also useful for restoration (cleaning) of old telecined 8mm (and other) films from spots (from dust) and some stripes (scratches).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/despot/despot3610.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[deVCR]]&lt;br /&gt;
| deVCR eliminates (to a certain degree) the annoying horizontal lines that keep crawling around your VHS or Beta recorded video. See discussion [http://forum.videohelp.com/threads/323093-How-to-use-DeVCR-for-Avisynth here] and [http://www.digitalfaq.com/forum/video-restore/2607-tracking-lines-video.html here.]&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| Ricardo Garcia&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 VideoFred's Film Restoring]&lt;br /&gt;
| A suite of scripts for film restoring.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 Script]&lt;br /&gt;
| videoFred&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveDirt]]&lt;br /&gt;
| RemoveDirt is a temporal cleaner for AviSynth 2.5x. It has now become an AVS script function, which involves RestoreMotionBlocks and various filters from the [[RemoveGrain]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveDirt Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frequency Interference removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq.html DeFreq]&lt;br /&gt;
| Defreq uses Fast Fourier Transform method for frequency selecting an removing. See [http://forum.doom9.org/showthread.php?t=82978 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq07.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/FanFilter/FanFilter.html FanFilter] &lt;br /&gt;
| Regular vertical frequency interference is filtered in spatial domain.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/FanFilter/FanFilter.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IVTC &amp;amp; Decimation ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AnimeIVTC]]&lt;br /&gt;
| What it does:&lt;br /&gt;
* High quality adaptative field matching for hard telecine&lt;br /&gt;
* Bob, remove the blends and decimate back to the desired framerate for DHT/field-blended&lt;br /&gt;
* Creating a VFR clip for hybrid sources&lt;br /&gt;
* Bob the interlaced credits, blend-deinterlacing the background while doing minimal damage on the progressive credits, convert their framerate to match the episode's and splice them with it OR leave them @ 30p to create a VFR clip&lt;br /&gt;
* Very good combing removal and anti-aliasing functions&lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=138305] and See [http://forum.doom9.org/showthread.php?p=1673928] for mod version.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| BruteIVTC&lt;br /&gt;
| Some information [http://web.archive.org/web/20141221181254/http://privatepaste.com/download/77d973422b here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091214015625/http://mf.creations.nl/avs/filters/BruteIVTC.dll Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 DOCI]&lt;br /&gt;
| Destruction of Chroma Interlacing fixes a problem where you captured pulleddown video in YV12.  In the combed frames, the chroma from two frames has been blended, leading to a ghosting effect when IVTC'd.  This filter reconstructs the chroma exactly and fixes the problem.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| FDecimate&lt;br /&gt;
| The FDecimate() filter provides extended decimation capabilities not available from Decimate(). It can remove frames from a clip to achieve the desired frame rate, while retaining audio/video synchronization. It preferentially removes duplicate frames where possible. (&amp;quot;FDecimate&amp;quot; stands for &amp;quot;Free Decimate&amp;quot;, which implies that the output frame rate may be freely chosen, and is not limited to 1-in-N decimation).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/fdecimate/fdecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| GreedyHMA&lt;br /&gt;
| GreedyHMA is an Avisynth filter that executes DScaler's Greedy/HM algorithm code to perform pulldown matching, filtering, and video deinterlace. It has pretty much been superseded by Donald Graft's [[DeComb]] package. However there may be occasions where it sometimes gives preferable results, especially with some bad [[PAL]] clips.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/GreedyHMA.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[IT]]&lt;br /&gt;
| Inverse Telecine plugin.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/002p6yed7dzi8f3/IT_YV12_0103_width8K.zip?dl=1 Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| ivtc_txt60mc&lt;br /&gt;
| Deinterlaces telecined footage with that has been overlayed scrolling text at 60i. More information [http://web.archive.org/web/20140420184542/http://doom10.org/index.php?topic=292.msg5499 here] (last post).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1466105&amp;amp;postcount=4 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} aka Firesledge&lt;br /&gt;
|-&lt;br /&gt;
|JIVTC&lt;br /&gt;
|JIVTC applies inverse telecine in a way to minimize artifacts often seen on Japanese TV broadcasts followed by recalculating the fields that might still contain some.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://raw.githubusercontent.com/lovesyk/avisynth-scripts/master/JIVTC.avsi Script]&lt;br /&gt;
|[http://github.com/lovesyk lovesyk]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168397 MDec2]&lt;br /&gt;
|MDec2 is a 2 pass decimating filter, acting much like the MultiDecimate filter.&lt;br /&gt;
|[[RGB32]], [[RGB24]], ][[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/3ajn640ujxr8jnx/MDec2_25%2626_dll_v1.01_20150330.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| MultiDecimate&lt;br /&gt;
| Removes N out of every M frames, taking the frames most similar to their predecessors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=51901&amp;amp;perpage=20&amp;amp;pagenumber=2 discussion].&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/multidecimate/multidecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| PFR&lt;br /&gt;
| PFR (Progressive Frame Restorer) is an Avisynth filter that attempts to produce progressive frames from a mixed progressive/interlaced/IVTCed source.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ReMatch]]&lt;br /&gt;
| ReMatch is a field matching plugin, specifically for anime.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/rematch_5F25_dll_20050306.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| RePal&lt;br /&gt;
|  [http://forum.doom9.org/showthread.php?t=48401 Discussion] / [http://forum.doom9.org/showthread.php?p=1092552#post1092552 repal_29.97Hz_mod]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/repal_5F25_dll_20030523.zip Plugin] - [http://forum.doom9.org/attachment.php?attachmentid=8028&amp;amp;d=1201414683 Mod]&lt;br /&gt;
| Bach&lt;br /&gt;
|-&lt;br /&gt;
| SmartDecimate&lt;br /&gt;
| Smart Decimate removes telecine by combining telecine fields and decimating at the same time, which is different from the traditional approach of matching telecine frames and then removing duplicates. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=60031 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/tel/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The Telecide and Decimate filters can be combined to implement IVTC.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TIVTC]]&lt;br /&gt;
| A package containing these 7 filters: TFM, TDecimate, MergeHints, FrameDiff, FieldDiff, ShowCombedTIVTC, and RequestLinear. Also contains these 3 conditional functions: IsCombedTIVTC, CFieldDiff, and CFrameDiff. Designed primarily for IVTC operations. [http://forum.doom9.org/showthread.php?t=82264 Discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181748/http://bengal.missouri.edu/~kes25c/TIVTCv105.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| TPRIVTC&lt;br /&gt;
| TPRIVTC stands for TMPEG InVerse Telecine, i.e. the process where an 29.97fps interlaced NTSC clip is converted to 23.976fps while removing interlaced frames. [http://web.archive.org/web/20030808191810/http://kurosu.inforezo.org/avs/TPRIVTC/index.html Readme]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/tprivtc_5F25_dll_20040930.zip Plugin]&lt;br /&gt;
| daxab, {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
| UnComb&lt;br /&gt;
| Filter for matching up even and odd fields of properly telecined [[NTSC]] or [[PAL]] film source video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=52333 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/UnComb.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167875 WeaveMan]&lt;br /&gt;
| Remove arbitrary pulldown patterns manually; meant for perfectionists to undo non-standard 24-&amp;gt;25 fps, 25-&amp;gt;29.97 fps, etc. telecine conversions, along with other weird telecine anomalies created by broadcasters speeding up film-sourced content. See sample case [http://forum.doom9.org/showthread.php?p=1630931&amp;amp;highlight=weaveman#post1630931 here].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131208232913/http://chidragon.thedessie.com/Doom9/WeaveMan-v0.2.zip Plugin]&lt;br /&gt;
| ChiDragon&lt;br /&gt;
|-&lt;br /&gt;
| [[IvtcBlend]]&lt;br /&gt;
| Waka demonstrated an IvtcBlend function that uses the information in the &amp;quot;extra&amp;quot; fields of a telecined source to help combat temporal noise.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ghost Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FixVHSOversharp&lt;br /&gt;
| FixVHSOversharp attempts to repair the light and dark halos that follow high contrast edges found in VHS sources. See [http://web.archive.org/web/20131014010552/http://www.videohelp.eu/forum/avisynth/2851-avisynth-fixvhsoversharp-beta.html discussion.] &lt;br /&gt;
| | [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091026142456/http://www.geocities.com/mrtibsvideo/fixvhsoversharp.html Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20091027001215/http://geocities.com/mrtibsvideo/ MrTibs]&lt;br /&gt;
|-&lt;br /&gt;
| GhostBuster&lt;br /&gt;
| Ghostbuster is an AviSynth filter for removing &amp;quot;ghosts&amp;quot; from a clip. A ghost in this context is a faint copy of the picture offset horizontally. It works by either subtracting or adding the image from itself at the specified offset. With some tweaking the result, while not perfect, can be very pleasing. See discussion [http://forum.doom9.org/showthread.php?t=35339 here] and [http://web.archive.org/web/20121215130729/http://www.videohelp.eu/forum/avisynth/14691-ghostbuster-filter-avisynth.html here.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12721&amp;amp;d=1330678606 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20140420183804/http://www.videohelp.eu/forum/avisynth/14679-sansgrips-avisynth-filters.html SansGrip]&lt;br /&gt;
|-&lt;br /&gt;
| LGhost&lt;br /&gt;
| Plugin intended for ghost removal but can also reduce edge (ringing) artifacts. See [http://forum.doom9.org/showthread.php?p=1176552#post1176552 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/LGhost0301.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Logo Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeKafka]]&lt;br /&gt;
| This fairly simple filter washes away those annoying bugs from broadcast clips.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| poptone&lt;br /&gt;
|-&lt;br /&gt;
| DeLogo&lt;br /&gt;
| DeLogo Filter for VirtualDub. Removes static elements, e.g. logos or watermarks, from the video stream. It can remove either opaque elements or alpha blended, the latter even without destroying the picture beneath. &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/delogo132/delogo.html Plugin] &amp;amp; [http://forum.doom9.org/showthread.php?t=119447 Script]&lt;br /&gt;
| Karel Suhajda&lt;br /&gt;
|-&lt;br /&gt;
| [[InpaintFunc]]&lt;br /&gt;
| Script for logo removal using inpainting. Can remove alpha blended or opaque logos with a basic postprocessing to hide artifacts.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/InpaintFunc.avs Script]&lt;br /&gt;
| Reuf Toc&lt;br /&gt;
|-&lt;br /&gt;
| [[rm_logo]]&lt;br /&gt;
| Combination of deblending and inpainting to remove logos with adjustable postprocessing to further hide artifacts. See [http://forum.doom9.org/showthread.php?t=134919]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rm_logo.avs Script]&lt;br /&gt;
| Spuds &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154559 s_ExLogo]&lt;br /&gt;
|De-logo function with clipping (Dekafka mod).&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://www.mediafire.com/download/40cpnnctd0uutpv/s_ExLogo_1.1.zip Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| X-Logo&lt;br /&gt;
| X-Logo AviSynth plugin and VirtualDub filter. Removes opaque logos. See [http://forum.doom9.org/showthread.php?t=56660 discussion] and [http://forum.videohelp.com/threads/273109-Remove-an-opaque-logo-using-Xlogo-in-Avisynth tutorial].&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.marzocchi.net/Olafsen/Software/X-Logo?setview=en Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20041204210505/http://members.verizon.net/~vze3kkvm/filters.html Leuf]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Luma Equalization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Antiflicker]]&lt;br /&gt;
| &amp;quot;A quick-and-dirty port of my VirtualDub filter (which sucks, by the way; it was one of my first filters).&amp;quot; &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?p=224573#post224573 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/antiflicker_5F25_dll_20030304.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker.html DeFlicker]&lt;br /&gt;
| Can remove old film intensity flicker by temporal mean luma smoothing. Can also correct blinding of automatic gain control after flashes.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker04.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Dumb Deflicker]&lt;br /&gt;
| Gathers average luma of frames, smoothens that with TemporalSoften, and applies the obtained difference to the original input.  It is pretty simple, read &amp;quot;dumb&amp;quot;. See [http://forum.doom9.org/showthread.php?p=1326599#post1326599 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines.html EquLines]&lt;br /&gt;
| Equalizes total luminosity in pairs of even and odd lines. Useful for removing inter-line differences from telecined films.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines03.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/lmflicker.txt LMFlicker]&lt;br /&gt;
| LMFlicker is intended to reduce flickering in some film/VHS transfers. FieldFade is a similar concept, but applied on a per-field basis, to reduce combing in a video where fades were applied after telecine.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Local Deflicker]&lt;br /&gt;
| Deflickers only part of a frame. See [http://forum.doom9.org/showthread.php?t=159493 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Script]&lt;br /&gt;
| prokhozhijj&lt;br /&gt;
|-&lt;br /&gt;
| [[ReduceFlicker]]&lt;br /&gt;
| Reduces temporal oscillations in clips; should be applied before deinterlacing. Contains ReduceFlicker, ReduceFluctuations, and LockClense. See [http://videoprocessing.fr.yuku.com/topic/24/ReduceFlicker-05 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/ReduceFlicker Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/ TimeLapseDF]&lt;br /&gt;
| Designed to remove luminosity flicker in time lapse photography. Unlike most other flicker removal filters, utilizes cumulative distribution function in addition to average frame luminosity. See [http://timescapes.org/phpBB3/viewtopic.php?f=8&amp;amp;t=2410 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/TimeLapseDF.dll 32-Bit Plugin]&lt;br /&gt;
| {{Author/Denis Zhitenev}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Vinverse]]&lt;br /&gt;
| A simple but effective plugin to remove residual combing.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/vinverse/releases Plugin]&lt;br /&gt;
| {{Author/Didée}}, {{Author/tritical}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=106898 wdeflicker]&lt;br /&gt;
| Modifies luma of a source clip by refering to a temporally super-smoothed clip. Heights of source and reference clips must match. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5417&amp;amp;d=1139174468 Plugin]&lt;br /&gt;
| Osmiridium&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Rainbow &amp;amp; Dot Crawl Removal|Rainbow &amp;amp; Dot Crawl Removal]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Bifrost]]&lt;br /&gt;
| Bifrost uses temporal blending to remove or at least reduce the effect of rainbows.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/dubhater/vapoursynth-bifrost/releases/download/v2.0-avs/avisynth-bifrost-v2.0.7z Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, dubhater&lt;br /&gt;
|-&lt;br /&gt;
| [[CC]]&lt;br /&gt;
| Dot crawl and rainbow removal.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.chiyoclone.net/dl/cc_20040522.lzh Plugin]&lt;br /&gt;
| {{Author/chiyo-clone}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Checkmate]]&lt;br /&gt;
| Spatial-temporal dot crawl removal. See [http://github.com/tp7/checkmate Checkmate for AviSynth 2.6].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Checkmate Plugin]&lt;br /&gt;
| {{Author/mf}} / prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain2]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script based on [[ChubbyRain]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain2.avsi Script]&lt;br /&gt;
| Lothar&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCrawl]]&lt;br /&gt;
| Spatial and temporal dot crawl removal, particularly for animated material.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/decrawl_20060924.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCross]]&lt;br /&gt;
| Cross Color Reduction. Also known as rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeCross0002.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeDot]]&lt;br /&gt;
| Removes dot crawl and may also be useful for rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeDot_YV12_0002.zip Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeRainbow]]&lt;br /&gt;
| A simple script to reduce rainbows. See [http://forum.doom9.org/showthread.php?p=398106#post398106 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/images/DeRainbow.avsi Script]&lt;br /&gt;
| sh0dan&lt;br /&gt;
|-&lt;br /&gt;
| [[DFMDeRainbow]]&lt;br /&gt;
| Creates mask to process only edges; rainbows are removed by hitting chroma planes with two passes of FluxSmooth (hence &amp;quot;Double-Flux-Mask&amp;quot;).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/DFMDeRainbow-20140223.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/guavacomb.htm GuavaComb]&lt;br /&gt;
| Removes dot crawl, rainbows, and some kinds of shimmering. See [http://forum.doom9.org/showthread.php?t=37456 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/guavacomb_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeCrawl]]&lt;br /&gt;
| Purely spatial; only targets pixels for dot crawl removal if luma is fluctuating and (optionally) chroma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeCrawl-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeRainbow]]&lt;br /&gt;
| Purely spatial; only targets pixels for derainbowing if chroma is fluctuating and (optionally) luma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeRainbow-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[mfRainbow]]&lt;br /&gt;
| Derainbows in areas of high Y, U and V frequencies, which fluctuate heavily.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/MfRainbow-v0.32.avsi Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Rainbow_Smooth]]&lt;br /&gt;
| A small spatial derainbow function. It uses [[SmoothUV]] to smooth out chroma and edge masking to prevent color bleeding.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rainbow_smooth.avsi Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[SmartSSIQ]]&lt;br /&gt;
| SSIQ can alter the color on the entire picture. So this script first applies SSIQ to the entire picture. Then it locates the edges. Finally, it layers ONLY the de-rainbowed edges onto the original video.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SmartSSIQ.avsi Script]&lt;br /&gt;
| LB&lt;br /&gt;
|-&lt;br /&gt;
| [[SSIQ]]&lt;br /&gt;
| Rainbow remover. A port of the VirtualDub plugin [http://www.doki.ca/filters/ Smart Smoother IQ.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/ssiq_20070304.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TComb]]&lt;br /&gt;
| A temporal comb filter (it reduces cross-luminance (rainbowing) and cross-chrominance (dot crawl) artifacts in static areas of the picture). See [http://github.com/Elegant996/TComb TComb for AviSynth 2.6.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TComb Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YARK]]&lt;br /&gt;
| Yet Another Rainbow Killer. Based on mfRainbow v0.31, chubbyrain2, and various other scripts shown [http://forum.doom9.org/showthread.php?t=141165 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YARK|Script]]&lt;br /&gt;
| jase99&lt;br /&gt;
|-&lt;br /&gt;
| [[ASTDR]]&lt;br /&gt;
| ASTDR uses mt_motion for motion and edge to deal with moving Rainbow and apply mask once more in the opposite way to keep around the lines as they are. It uses DeCross and other filters to remove Rainbow. ASTDRmc avoids chroma bleeding in moving scenes. See [http://forum.doom9.org/showpost.php?p=1665492&amp;amp;postcount=27 post on doom9.org].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[ASTDR|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stabilization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[CelStabilize]]&lt;br /&gt;
| Script which holds a fixed background steady.  Doesn't work well with pans or fades.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/CelStabilize Script]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| [[DePan]]&lt;br /&gt;
| Tools for estimation and compensation of global motion (pan) .See [http://avisynth.org.ru/depan/depan.html]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/depan/depan.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|DepanSafe&lt;br /&gt;
|Another DePan stabilization script. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[DepanSafe_source|Script]]&lt;br /&gt;
|[http://pastebin.com/u/tophf tophf]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Deshaker3D]&lt;br /&gt;
| Experimental 3D image stabiliser (VDub [http://www.guthspot.se/video/deshaker.htm Deshaker] required).&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 SpatialAlign]&lt;br /&gt;
|Fix spatial alignment between two clips containing similar scenes.&lt;br /&gt;
|Any?&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 Script]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[Stab]]&lt;br /&gt;
| Simple but powerful script to remove small high frequency jitter that appears often on old/bad transfers. See [http://forum.doom9.org/showthread.php?p=1222830#post1222830]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Stab.avsi Script]&lt;br /&gt;
| g-force&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Stabilization Tools Pack]&lt;br /&gt;
| A set of tools to work with common stabilization issues, mainly from telecine process.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/TBC TBC]&lt;br /&gt;
| Stabilizes horizontal jitter in video from analog VCRs, similar to the function of a Time Base Corrector.(note: will cause SEt's Avisynth 2.6 MT to stop working)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Denoisers ==&lt;br /&gt;
Strength/Quality of Denoisers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(need subclassification)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AdaptiveMedian]]&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.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/AdaptiveMedian Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Atc&lt;br /&gt;
| Alternate Temporal Cleaner; a fast temporal cleaner with some cool stuff.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/atc%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| ColourizeSmooth&lt;br /&gt;
| ColourizeSmooth uses a general colourizing algorithm to smooth a given clip. ColourizeSmooth is based on this [http://www.cs.huji.ac.il/~yweiss/Colorization algorithm.] See [http://forum.doom9.org/showthread.php?t=91344 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourizesmooth_5F25_dll_20050429.zip Plugin]&lt;br /&gt;
| insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kevina.org/temporal_median/ ConditionalTemporalMedian]&lt;br /&gt;
|This filter is designed to remove temporal noise in the form of small dots and streaks found in some videos. A common cause of this is dirty VHS heads but I have also seen small black or white streaks in broadcast material. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/temporal_median/CondTemporalMedian-0.93.zip Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159148 Deathray]&lt;br /&gt;
|OpenCL GPU accelerated spatial/temporal non-local means de-noising. See [http://raw.githubusercontent.com/JawedAshraf/Deathray/master/Deathray%20readme.txt readme] and GitHub source code [http://github.com/JawedAshraf/Deathray/ repository].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/JawedAshraf/Deathray/raw/master/Deathray.dll Plugin]&lt;br /&gt;
|[http://github.com/JawedAshraf Jawed]&lt;br /&gt;
|-&lt;br /&gt;
| [[DeNoise]]&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. The global variance value can be specified or it can be computed from a window. The global variance can have one value for the entire clip or can vary frame to frame linearly or computed from a window with its coordinates linearly moving with frame numbers.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeNoise Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#dnr2 DNR2]&lt;br /&gt;
| Dynamic Noise Reduction 2 is based on the VirtualDub [http://www.shdon.com/vid/dnr DNR] filter by Steve Don and Avery Lee. &lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dnr2_5F25_dll_20021225.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeSaltPepper]]&lt;br /&gt;
| Remove white and black noise.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/DeSaltPepper Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| ExtendedBilateral&lt;br /&gt;
| ExtendedBilateral extends the regular bilateral filtering process by adding an &amp;quot;initial estimation preprocess.&amp;quot; It is similar in operation to [[TBilateral]] and offers many of the same options (though not all) while adding the preprocess. See [http://forum.doom9.org/showthread.php?t=96015 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/extendedbilateral_5F25_dll_20050622.zip Plugin]&lt;br /&gt;
|insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [[FFTQuiver]]&lt;br /&gt;
| Remove periodic noise. Useful for analog interference.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/FFTQuiver Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| SmootherHiQ&lt;br /&gt;
| VirtualDub's ''Smart Smoother High Quality'' for AviSynth, see archived [http://web.archive.org/web/20040611013235/http://cultact-server.novi.dk/kpo/avisynth/smooth_hiq_as.html documentation].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/smoothhiq_5F25_dll_20030208.zip Plugin]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TNLMeans]]&lt;br /&gt;
| TNLMeans is an implementation of the NL-means denoising algorithm. - [http://forum.doom9.org/showthread.php?t=111344 discussion] - [http://forum.doom9.org/showthread.php?t=168090 TNLMeans built with ICL10]&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=171817 TfNLMeans] - an AviSynth 2.6 fork of TNLMeans 1.0.3&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TNLMeansv103.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| KNLMeansCL&lt;br /&gt;
| KNLMeans is an optimized OpenCL implementation of the Non-local means denoising algorithm. See [http://forum.doom9.org/showthread.php?t=171379 discussion.]. View on [http://github.com/Khanattila/KNLMeansCL/wiki/Filter-description GitHub].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/Khanattila/KNLMeansCL/releases Plugin]&lt;br /&gt;
| [http://github.com/Khanattila Khanattila]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172966 xNLMeans]&lt;br /&gt;
|xNLMeans is an AviSynth plugin implementation of the Non Local Means denoising proposition. This implementation provides several optimizations and extensions over the original proposition and other implementations.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/4stpv24pvpfclzm/xNLMeans_0.03_20160324.zip Plugin] &amp;lt;!--[http://www.mediafire.com/download/bmldoqgmmboij8n/xNLMeans_0.01_151212.zip older version]--&amp;gt;&lt;br /&gt;
|martin53&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatial Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[_2DCleanYUY2]]&lt;br /&gt;
| Averages pixels in a configurable radius around a source pixel that are within a configurable threshold of the central pixel. A port of the VirtualDub plugin [{{N2Moved}}/2dcleaner.html 2D Cleaner.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/vh7a5xmdpyj3d8u/_2DCleanYUY2_v0_10_mod_for_smp_YV12.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}, {{Author/xeon533}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DctFilter]]&lt;br /&gt;
| An experimental filter that operates on DCT coefficients. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DctFilter Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DCTFun]]&lt;br /&gt;
| A fast spatial denoiser that does a hard thresholding of a complete 4x4 ICT transform.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DCTFun Plugin]&lt;br /&gt;
| Prunedtree &lt;br /&gt;
|-&lt;br /&gt;
| eDeen&lt;br /&gt;
| eDeen is a ultra powerfull spatial denoiser for very experienced encoders only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/eDeen%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3b]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/frfun3b_rev3.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3d]]&lt;br /&gt;
| Fractal denoising; frfun3d is a quality optimized frfun3b. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/xqxfy59pcv3ea1q/frfun3d_r1.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun7]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Frfun7 Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20101201051903/http://gpubilateral.sourceforge.net/ GPUBilateral]&lt;br /&gt;
| In short, bilateral filter is a edge-preserving smooth filter. See [http://forum.doom9.org/showthread.php?t=136370 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/gpubilateral/files/ Plugin]&lt;br /&gt;
| Sompon Virojanadara    &lt;br /&gt;
|-&lt;br /&gt;
|Kuwahara&lt;br /&gt;
|This filter is an edge preserving spatial noise reduction filter. It applies spatial smoothing while preserving the edges. See [http://forum.doom9.org/showthread.php?p=1689773 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Kuwahara_v11.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth.html Msmooth]&lt;br /&gt;
| Masked smoother, designed specifically for anime.&lt;br /&gt;
| [[YV12]], [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth202.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothUV]]&lt;br /&gt;
| A spatial denoising plugin based on [{{N2Moved}}/smooth.html Smart Smoother] and [{{N2Moved}}/hiq/smoothhiq.html Smart Smooth HiQ].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/smoothuv_5F25_dll_20030902.zip Plugin]&lt;br /&gt;
| {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SPresso]]&lt;br /&gt;
|A fast script to make SD content compress better while keeping the &amp;quot;original look&amp;quot;.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=867316&amp;amp;postcount=23 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TBilateral]] &lt;br /&gt;
| TBilateral is a spatial smoothing filter that uses the bilateral filtering algorithm.  It does a nice job of smoothing while retaining picture structure.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TBilateralv0911.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnDot]]&lt;br /&gt;
| UnDot is a simple median filter for removing dots, that is stray orphan pixels and mosquito noise. It clips each pixel value to stay within min and max of its eight surrounding neighbors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;postid=205442#post205442 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/UnDot.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/vague/vaguedenoiser.html VagueDenoiser]&lt;br /&gt;
| This is a Wavelet based Denoiser. Basically, it transforms each frame from the video input into the wavelet domain, using various wavelet filters. Then it applies some filtering to the obtained coefficients. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=56871 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/vaguedenoiser_5F25_dll_20050926.zip Plugin]&lt;br /&gt;
| {{Author/Lefungus}}, {{Author/Kurosu}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VerticalCleaner]]&lt;br /&gt;
| Fast vertical cleaner. Parameter information [http://videoprocessing.fr.yuku.com/sreply/651/Can-use-quantile-like-vertical-median-filter here.] Explanation of mode 2 [http://videoprocessing.fr.yuku.com/sreply/649/Can-use-quantile-like-vertical-median-filter here.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Cnr2]]&lt;br /&gt;
| A fast chroma denoiser. Very effective against stationary rainbows and huge analogic chroma activity. Useful to filter VHS/TV caps. See [http://forum.doom9.org/showthread.php?t=78905 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181313/http://bengal.missouri.edu/~kes25c/cnr2_v261.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FluxSmooth]]&lt;br /&gt;
| Examines each pixel and compares it to the corresponding pixel in the previous and last frame.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20070225212908/http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip Plugin]&lt;br /&gt;
| {{Author/SansGrip}}, {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/grapesmoother.htm GrapeSmoother]&lt;br /&gt;
| This filter averages out visual noise between frames.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/grapesmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| MVDegrain&lt;br /&gt;
| Strong and effective temporal denoiser. Part of the [[MVTools]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MVTools Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/fizick/docs/english/externalfilters/temporalcleaner.htm TemporalCleaner]&lt;br /&gt;
| TemporalCleaner is an AviSynth port of the original port of the VirtualDub filter TemporalCleaner made by [http://home.earthlink.net/~casaburi/download/#temporalcleaner Jim Casaburi.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/temporalcleaner_5F25_dll.zip Plugin]&lt;br /&gt;
| vlad59&lt;br /&gt;
|-&lt;br /&gt;
| [[TTempSmooth]] &lt;br /&gt;
| TTempSmooth is a motion adaptive (it only works on stationary parts of the picture), temporal smoothing filter.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TTempSmoothv094.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Temporal Degrain]]&lt;br /&gt;
| SLOW but very effective at removing most grain from video sources.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/TemporalDegrain.avs Script]&lt;br /&gt;
| Didée, Sagekilla &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatio-Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/index.html Convolution3D]&lt;br /&gt;
| Convolution3D is a spatio-temporal smoother, it applies a 3D convolution filter to all pixels of consecutive frames. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38281 discussion], [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=49806 continued].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/con3d-yv12-beta5.zip Plugin]&lt;br /&gt;
| {{Author/Vlad59}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deen]]&lt;br /&gt;
| Deen is a set of assembly-optimised denoisers, like various 3d and 2d convolutions.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Deen Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| DenoiseMF&lt;br /&gt;
| A fast and accurate denoiser for a Full HD video from a H.264 camera. See [http://forum.doom9.org/showthread.php?t=162603 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web-beta.archive.org/web/20160315085026/http://forum.doom9.org/showthread.php?t=162603 Script]&lt;br /&gt;
| rean&lt;br /&gt;
|-&lt;br /&gt;
| [[dfttest]]&lt;br /&gt;
| A 2D/3D frequency domain denoiser. See [http://forum.doom9.org/showthread.php?t=132194 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/dfttest-1.9.4.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| dfttestMC&lt;br /&gt;
| A script that motion compensates dfttest. See [http://forum.doom9.org/showthread.php?t=147676 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147676 Script]&lt;br /&gt;
| thewebchat&lt;br /&gt;
|-&lt;br /&gt;
| [[DeGrainMedian]]&lt;br /&gt;
| Two stage Spatio-Temporal Limited Median filter for grain removal. [http://forum.doom9.org/showthread.php?t=80834 See]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/degrain/degrainmedian082.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]&lt;br /&gt;
| A 3D Frequency Domain filter - gives strong denoising and moderate sharpening. See [http://forum.doom9.org/showthread.php?t=85790 original] discussion and updated version [http://forum.doom9.org/showthread.php?t=174347 here].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], [[YUY2]]&lt;br /&gt;
| [http://github.com/pinterf/fft3dfilter/releases Plugin]&lt;br /&gt;
| {{Author/Fizick}}, martin53, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
| FFT3DGPU &lt;br /&gt;
| Similar algorithm to FFT3DFilter, but uses graphics hardware for increased speed. See [http://forum.doom9.org/showthread.php?t=89941 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/tsp/fft3dgpu0.8.2.7z Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [[hqdn3d]] &lt;br /&gt;
| High Quality DeNoise 3D is an Avisynth 2.5 port of the MPlayer filter of the same name. It performs a 3-way low-pass filter, which can completely remove high-frequency noise while minimizing blending artifacts. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/hqdn3d/hqdn3d-0.11.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MC_Spuds]]&lt;br /&gt;
| Motion compensated noise removal with sharpening. Extremely slow, but extremely effective.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Spuds, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MCTemporalDenoise]]&lt;br /&gt;
| Another high quality motion compensated noise removal script with an accompanying post-processing component (with loads of excess feature such as MC-Post-sharpening, MC-antialiasing, deblock, edgeclean and much more)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139766 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/mipsmooth.htm MipSmooth]&lt;br /&gt;
| MipSmooth is a reinvention of [[SmoothHiQ]] and [[Convolution3D]]. MipSmooth was made to enable smoothing of larger pixel areas than 3x3(x3), to remove blocks and smoothing out low-frequency noise. See [http://forum.doom9.org/showthread.php?t=64940 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mipsmooth_5F25_dll_20051223.zip Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/nomosmooth.htm NoMoSmooth]&lt;br /&gt;
| NoMoSmooth temporally denoises relatively static areas and a spatially denoises moving parts. In addition to this motion-based approach, NoMoSmooth employs another technique to try to retain as much existing detail as possible: only pixels that are &amp;quot;fluctuating&amp;quot; are smoothed. See [http://forum.doom9.org/showthread.php?t=37471 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/nomosmooth_5F25_dll_200309015.zip Plugin]&lt;br /&gt;
| SansGrip&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/peachsmoother.htm PeachSmoother]&lt;br /&gt;
| PeachSmoother was designed to cope with the oddities of analog broadcast TV.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/peachsmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| RemoveDirtMC&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=1485300#post1485300 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://pastebin.com/PgkQc9X4 Script]&lt;br /&gt;
| Nephilis/A.SONY&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrain]]&lt;br /&gt;
| RemoveGrain is a plugin package containing various plugins for spatial and temporal denoising, repairing, sharpening, deinterlacing, and other utility functions.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveGrain Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrainHD]]&lt;br /&gt;
| RemoveGrainHD is like RemoveGrain but intended for high definition content. It includes various spatial and temporal functions. See [http://web.archive.org/web/20130412014246/http://www.removegrainhd.de.tf/ documentation.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Denoisers/Spatial_Denoisers/RemoveGrainHD___(0.5_-_2011-08-11).7z Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| RemoveNoiseMC&lt;br /&gt;
| Motion compensated filter for removing noise, larger spots and other dirt. Written as an alternative to the old Dust. Last update Nov 2006. It uses mvtools v1. Jenyok collected together all RemoveNoise and various filters functions and adapted to MVTools v2.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110078 Script]&lt;br /&gt;
| Heini011&lt;br /&gt;
|-&lt;br /&gt;
| [[RgTools]]&lt;br /&gt;
| Modern rewrite of &amp;lt;tt&amp;gt;[[RgTools/RemoveGrain|RemoveGrain]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Repair|Repair]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/BackwardClense|BackwardClense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Clense|Clense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/ForwardClense|ForwardClense]]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[[RgTools/VerticalCleaner| VerticalCleaner]]&amp;lt;/tt&amp;gt; all in a single plugin. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/pinterf/RgTools/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SMDegrain]]&lt;br /&gt;
|SMDegrain is a convenience function for using MDegrain, including 16bit and interlaced support, with extra capabilities for light sharpening and spatial filtering.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-0d-A-Quality-Denoising-Solution Script]&lt;br /&gt;
|{{Author/Dogway}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STMedianFilter]]&lt;br /&gt;
|STMedianFilter is a (slightly motion compensated) spatial/temporal median filter. It fairly very fine grained, using only adjacent pixels in space and time, so it looks at the adjacent 26 locations to filter each location. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/STMedianFilter.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STPresso]]&lt;br /&gt;
|A fast script to make SD/720p content compress better without losing detail and original grain structure. See [http://forum.doom9.org/showthread.php?p=1551871#post1551871 discussion.]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1551871&amp;amp;postcount=2 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| zzz_denoise&lt;br /&gt;
| Simple wrapper around a combination of dfttest and MDegrain3. Requires the [[External_filters#Deepcolor_Filters|Dither]] package.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1390594#post1390594 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adjustment Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Averaging/Layering/Masking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Average]]&lt;br /&gt;
| A simple plugin that calculates weighted frame-by-frame average from multiple clips. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Average Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ AviSynthGimpLayer]&lt;br /&gt;
|AviSynth Gimp-style Layer merge plugin.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ Plugin]&lt;br /&gt;
| [http://sourceforge.net/u/panzerboy66/profile/ panzerboy66]&lt;br /&gt;
|-&lt;br /&gt;
| BlockAverage&lt;br /&gt;
| A simple filter that just averages the Y values of each 2x2 pixel block in a YV12 image – U and V values are left alone as they already common to each 2x2 block in a progressive YV12 image. Just made to see if it satifies the requirements in [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=91580&amp;amp;perpage=10&amp;amp;pagenumber=1 this thread].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/blockaverage01.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|CheckMask&lt;br /&gt;
|A YV12 spatial dot finding filter for AviSynth.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/checkmask_5F25_dll_20050310.zip Plugin]&lt;br /&gt;
|[http://web.archive.org/web/20090618112048/http://kawaii-shoujo.net/AntiAliased/index.html Dan Donovan]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159274 ColorScreenMask]&lt;br /&gt;
|ColorScreenMask is a special effects plugin for processing chroma key (i.e., a green screen or blue screen) backgrounds. It uses color thresholds rather than absolute values as the criteria for setting the alpha channel transparency. &lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=15699&amp;amp;d=1483786544 Plugin]&lt;br /&gt;
|Grandpa Oddball&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=99890 ColourMask]&lt;br /&gt;
|Creates colour masks.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/colourmask_20050911.zip Plugin]&lt;br /&gt;
|{{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/tree/master/avisynth CombMask]&lt;br /&gt;
|A filter to create and process comb masks. These filters were written from scratch, but most of logic comes from tritical's [[TIVTC]] plugin.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Fusion]]&lt;br /&gt;
|Pyramidal image processing for video, it uses image pyramids to blend clips together (more commonly used in the creation of HDR images and image stitching).&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/fusion.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GraMaMa]]&lt;br /&gt;
| Gradient Mask Maker: Creates a mask (either a gradient or black/white) given a prescribed shape (such as circle, ellipse, line, square or rectangle).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/GraMaMa_v02.zip Plugin]&lt;br /&gt;
| {{author/E-Male}}, &lt;br /&gt;
{{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/imck-2.3.0-readme.html ImasMultiColorKeying]&lt;br /&gt;
|Chroma keying filter (Japanese)&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/ Plugin]&lt;br /&gt;
|Umezawa Takeshi&lt;br /&gt;
|-&lt;br /&gt;
|MaskCrop&lt;br /&gt;
|Non-clip plugin and function to speed up filtering with a mask.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=1 Plugin] &amp;lt;!--[http://www.dropbox.com/s/98bcjuiy2ojkz75/MaskCrop0.1.1.7z?dl=1 Old v0.1.1 plugin] [http://www.dropbox.com/s/xcrlno31jqavqob/MaskCrop.7z?dl=1 Old v0.1.0 plugin]--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/369143-ResizersPack-MasksPack-PlaygroundPack-SmoothContrast-Logo-mod-functions?s=7811fcf9c429ffb99f2e0a4b8043832d&amp;amp;p=2364052&amp;amp;viewfull=1#post2364052 MasksPack]&lt;br /&gt;
|This is a set of functions related to masks, so localized filtering will be able, giving you finer control on how and where to filter or protect certain zones.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/mch99c0z5957u9z/MasksPack2.3.zip Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
|[[Median]]&lt;br /&gt;
|A filter plugin for AviSynth which generates a pixel-by-pixel median of several clips. This is particularly useful for filtering out noise and glitches from multiple VHS/SVHS/8mm/Hi8 tape captures, but can be used for other purposes also. [http://forum.videohelp.com/threads/362361-Median%28%29-plugin-for-AviSynth VideoHelp discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://ajk.kapsi.fi/projects/avisynth/median-plugin/Median-0.6.zip Plugin]&lt;br /&gt;
|{{Author/ajk}}&lt;br /&gt;
|-&lt;br /&gt;
| ParameterisedBlend&lt;br /&gt;
| ParameterisedBlend allows you to blend any number of frames within a clip, or blend any number of different clips together.  You can use it as an extended, gamma-aware replacement for Merge().&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft#TOC-ParameterisedBlend Plugin]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172388 Polygon]&lt;br /&gt;
|The very raw beginning of a plugin for drawing high quality polygons (mainly to be used as masks) in AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172388 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163018 RedAverage]&lt;br /&gt;
|Frame-by-frame merging of multiple clips. Includes a masked average, weighted average, and a merge filter. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://chaosking.de/repo/avsfilters/Unclassified/RedAverage___%281.4.3_-_2011-12-02%29.7z Plugin]&lt;br /&gt;
|redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jojje/shapemask ShapeMask]&lt;br /&gt;
|A filter plugin for AviSynth that identifies bright areas such as projector screens at conferences and creates a mask out of them. The use case for which it was created is to deal with overly bright lectures, such as screen casts or talks where the speaker or producer hasn't followed presentation 101; Use light text on a dark background! See [http://forum.doom9.org/showthread.php?t=172308 discussion.]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150702103042/http://snarl.zapto.org/files/ShapeMask-1.0.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tcolormask TColorMask]&lt;br /&gt;
|A simple color masking plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tcolormask/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=76595 TCombMask]&lt;br /&gt;
|TCombMask is a simple filter that creates a comb map that can (could) be used by other filters.  It currently supports optional motion adaption, optional spatial adaption, optional luma &amp;lt;-&amp;gt; chroma linking, different thresholds for chroma and luma, and much more.&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070222162504/http://bengal.missouri.edu/~kes25c/TCombMaskv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner TMaskCleaner]&lt;br /&gt;
|A really simple mask cleaning plugin for AviSynth based on mt_hysteresis. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TMM]]&lt;br /&gt;
| TMM builds a motion-mask for TDeint, which TDeint uses via its 'emask' parameter. See [http://forum.doom9.org/showthread.php?p=980353#post980353 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183526/http://bengal.missouri.edu/~kes25c/TMMv1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/chikuzen/TMM2 TMM2]&lt;br /&gt;
| A rewrite of TMM&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/TMM2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Unpremultiply]] &lt;br /&gt;
| This plugin convert the input RGBA clip from premultiplied alpha to straight matted alpha. See [http://forum.doom9.org/showthread.php?t=166730 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13207&amp;amp;d=1356994426 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20160610124858/http://code.google.com/p/avisynth-unpremultiply/ Josh Sutinen]&lt;br /&gt;
|-&lt;br /&gt;
| [[uu_mt_blend]]&lt;br /&gt;
| ''Blend'' (''[[Overlay]], [[Layer]]'') two clips using [[MaskTools2|MaskTools]]. Wide selection of blend modes.&lt;br /&gt;
| [[YV12]],[[RGB24]],[[RGB32]]&lt;br /&gt;
| [[Media:UU_mt_blend.avs|Script]]&lt;br /&gt;
| rafriff42&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blurring ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[BucketMedian]]&lt;br /&gt;
| BucketMedian is an implementation of spatial median filter adapting bucket (counting) sort algorithm.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bczippngoqy6xbw/BucketMedian-0.3.1.7z Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GBlur]]&lt;br /&gt;
| Gaussian blur.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/GBlur/GBlur.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur]]&lt;br /&gt;
| A plugin with 5 different types of median blur filters. See [http://forum.doom9.org/showthread.php?t=84636 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/medianblur084.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur2]]&lt;br /&gt;
| Implementation of [http://nomis80.org/ctmf.html constant time median filter] for AviSynth 2.6, similar to MedianBlur.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/MedianBlur2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableBlur]]&lt;br /&gt;
| VariableBlur is a Gaussian, binomial or average blur filter with a variable radius (variance).&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]],&lt;br /&gt;
| [http://web.archive.org/web/20140420184040/http://bengal.missouri.edu/~kes25c/variableblur.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableMedian]]&lt;br /&gt;
| A simple median filter. See [http://forum.doom9.org/showthread.php?t=83985 discussion]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091027134543/http://www.geocities.com/siwalters_uk/variablemedian.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Borders and Cropping ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[[BorderControl]]&lt;br /&gt;
| It's designed to allow you to manipulate the regions at the top, bottom and sides of a frame. Set a black border, set a border region to be faded out and you can &amp;quot;smear&amp;quot; the border to save having to crop and resize the whole frame for the sake of a few pixels. Each border (top,bottom.left and right) can be manipulated independently. See [http://forum.doom9.org/showthread.php?t=33479 discussion] and [http://avisynth.org.ru/docs/english/externalfilters/bordercontrol.htm documentation].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20140709005736/http://www.geocities.com/siwalters_uk/bordercontrol14.zip Plugin]&lt;br /&gt;
|{{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FillMargins]]&lt;br /&gt;
|FillMargins is a simple AviSynth filter that fills the four margins of a video clip with the outer pixels of the unfilled portion. It takes integer 4 parameters specifying the size of the left, top, right, and bottom margins. These may be any value and do not have to be any particular multiple. See discussion [http://forum.doom9.org/showthread.php?t=50132 here] and [http://forum.doom9.org/showthread.php?t=55881 here], additional [http://avisynth.org.ru/docs/english/externalfilters/fillmargins.htm documentation]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/FillMargins.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| Padding&lt;br /&gt;
| Duplicate edge pixels to the outside with [[PointResize]]. See [http://forum.doom9.org/showthread.php?t=165946 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1596804&amp;amp;postcount=5 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoCrop]]&lt;br /&gt;
|Automatically crops black borders ([http://en.wikipedia.org/wiki/Letterbox wikipedia:Letterbox], [http://en.wikipedia.org/wiki/Pillar_box_%28film%29 wikipedia:Pillar box], [http://en.wikipedia.org/wiki/Windowbox_%28film%29 wikipedia:Windowbox]) from a clip. Operates in preview mode (overlays the recommended cropping information) or cropping mode. Can also ensure width and height are multiples of specified numbers. See original [http://forum.doom9.org/showthread.php?t=37204 discussion] and updated AutoCrop [http://forum.doom9.org/showthread.php?t=87602 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://len0x.leffe.dnsalias.com/autocrop12.zip Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20050404182221/http://www.videofringe.com/autocrop/ Glenn Bussell], len0x&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource CropDetect]&lt;br /&gt;
| Plugin to detect black bounding box in video and crop it easily. See [http://forum.doom9.org/showthread.php?p=1761842#post1761842 discussion]. Note, CropDetect small plugin merged within ssifSource project. Look for &amp;quot;CropDetect&amp;quot; function in Sub3D.dll&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|-&lt;br /&gt;
|[[RoboCrop]]&lt;br /&gt;
| RoboCrop is an automatic cropping solution to crop black borders from video clips, loosely based on (but using no code from) AutoCrop by Glenn Bussell. See [http://forum.doom9.org/showthread.php?t=168053 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.mediafire.com/file/krdo0aye4dlvpit/RoboCrop_25%2626_dll_v1-10_20160825.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Colourspace Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Moved}}/autoyuy2/autoyuy2.html AutoYUY2]&lt;br /&gt;
| This filter is correctly converts YV12 to YUY2 without color bias.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171786 Cnv2]&lt;br /&gt;
| Universal [[Convert|ConvertTo...()]] wrapper with some additional features. Requires [http://forum.doom9.org/showthread.php?t=147846 GScript]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171786 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| ConvertToYCgCo&lt;br /&gt;
| Converts to the YCgCo colorspace. See [http://forum.doom9.org/showthread.php?t=161736 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12748&amp;amp;d=1331769022 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
| InterleavedConversions&lt;br /&gt;
| Tools for interleaving and de-interleaving 2, 3, and 4-channel data.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| PitifulInsect&lt;br /&gt;
|-&lt;br /&gt;
| ManualColorMatrix&lt;br /&gt;
| Can perform any matrix-based color conversion. See [http://forum.doom9.org/showthread.php?t=161777 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV24]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12346&amp;amp;d=1309522614 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality 16-bit image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools PlanarTools]&lt;br /&gt;
|This plugin is a set of filters that offers converting packed(interleaved) formats to planar formats and vice versa.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV16]]&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2inRGB&lt;br /&gt;
| A quick filter that stuffs YUY2 into RGB24. See [http://forum.doom9.org/showthread.php?p=639948#post639948 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/YUY2inRGB.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2toRGB219&lt;br /&gt;
| Converts YUY2 to studioRGB. With this kind of conversion, luma will not change, meaning no quantization error on luma. See [http://forum.doom9.org/showthread.php?p=639432#post639432 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/colorCorrection/YUY2toRGB219.zip Plugin] &lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422 YV12To422]&lt;br /&gt;
|YV12 to YV16/YUY2 converter for AviSynth 2.6.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddGrainC]]&lt;br /&gt;
| Generates film like grain or other effects (like rain) by adding random noise to clip. Noise can be horizontally or vertically correlated causing streaking. Contains AddGrain &amp;amp; AddGrainC &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]],&lt;br /&gt;
[[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Foxyshadis}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Author/LaTo}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| AddStaticGrainM&lt;br /&gt;
| This function adds static grain in dark areas based on a mask.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[AddStaticGrainM_source|Script]]&lt;br /&gt;
| [http://canihaziframe.wordpress.com/2011/02/23/addstaticgrainm/ Daiz]&lt;br /&gt;
|-&lt;br /&gt;
| [http://kvcd.net/sansgrip/avisynth/Blockbuster-readme.html AddNoise/Blockbuster]&lt;br /&gt;
| Makes encoder allocate more bits to darker areas, thus eliminating DCT blocks by decreasing the clips compressibility.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/blockbuster_5F25_src_20021229.zip Plugin]&lt;br /&gt;
| Ross Thomas&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=87295 AviShader]&lt;br /&gt;
| generic plugin that uses your 3D card's hardware to assist with rendering&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avishader_5F25_dll_20041228.zip Plugin]&lt;br /&gt;
| Antitorgo&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97706 ColorLooks]&lt;br /&gt;
| This plugin is based on Trev's VDub filter Colorlooks and Donald Graft's Colorize (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ColorLooks_v13.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 crt_display]&lt;br /&gt;
| CRT emulation with scanline and phosphor effects. crt_display emulates a CRT display using aperture grille (Trinitron) or Cromaclear technologies. See [http://forum.doom9.org/showthread.php?t=170732 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EffectsMany]]&lt;br /&gt;
| Creates 34 types of special &amp;quot;animated&amp;quot; effects. Effects act on the input clip in the range of the frame numbers specified. The Audio is not affected.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/EffectsMany/EffectsMany.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[f3kgrain]]&lt;br /&gt;
| Another 8/16-bit luma adaptive grain generator.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114900/http://www.nmm-hd.org/upload/get~ElhZlazJbsQ/f3kgrain_v0.4.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GNoise]]&lt;br /&gt;
| Adds random noise to a clip. See [http://forum.doom9.org/showthread.php?p=841700#post841700 duscussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/gnoise_r5.zip Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3]]&lt;br /&gt;
| Noise generator that tries to simulate the behavior of silver grain on film. See [http://forum.doom9.org/showthread.php?t=141303 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1191292#post1191292 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3mod]]&lt;br /&gt;
| Luma adaptive grain generating filter in 8-bit precision. Based on Didée's [[GrainFactory3]] script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722190952/http://www.nmm-hd.org/upload/get~kvNvGpuyxfc/GrainFactory3mod_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactoryLite]]&lt;br /&gt;
| Luma adaptive grain generating filter with stacked 16-bit input/output support. Based on Didée's [[GrainFactory3]] script, processing in 16-bit precision, and some commonly unused parameters removed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722185917/http://www.nmm-hd.org/upload/get~FaqsQaMom9s/GrainFactoryLite_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html HollywoodSQ]&lt;br /&gt;
| Creates popup album, akin to Hollywood squares TV show&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| KenBurnsEffect&lt;br /&gt;
| Given clip, zooms, pans &amp;amp; rotates clip. See [http://en.wikipedia.org/wiki/Ken_Burns_Effect wikipedia:Ken Burns Effect]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135776 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| [[MPlayerNoise]]&lt;br /&gt;
| Noise Generator ported from MPlayer. See [http://forum.doom9.org/showthread.php?t=84181 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/bergfiltercollection_5F25_dll_20041019.zip Plugin]&lt;br /&gt;
| {{Author/bergi}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NoiseGenerator]]&lt;br /&gt;
| Newer function based off of Blockbuster. Adds random noise to clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/noisegenerator_5F25_dll_20050616.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
| [[Scanlines]]&lt;br /&gt;
| Add Scanlines (black horizontal bars) to a video. see [http://en.wikipedia.org/wiki/Scan_line wikipedia:Scan Line]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/scanlines_5F25_dll_20031103.zip Plugin]&lt;br /&gt;
| turulo&lt;br /&gt;
|-&lt;br /&gt;
| [[StaticNoiseC]]&lt;br /&gt;
| Generates static grain using the Mersenne Twister random number generator. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=8&amp;amp;t=118&amp;amp;start=20#p772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131228160225/http://www.nmm-hd.org/upload/get~YnWFecZw0Uo/StaticNoiseC20110108b.zip Plugin]&lt;br /&gt;
| histamine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/turnstile.htm TurnsTile]&lt;br /&gt;
| Applies mosaic and/or palette effects to a clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158695 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Order ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| PFR&lt;br /&gt;
| Tries to restore the original progressive field order of a movie (or any predominantly filmed material transferred to video) where the field order changes at scene changes in a seemingly random fashion! See [http://forum.doom9.org/showthread.php?t=49815 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| ReverseFieldDominance&lt;br /&gt;
| This filter is intended to reverse the field dominance of [[PAL]] DV video. See [http://forum.doom9.org/showthread.php?t=46765 discussion.]&lt;br /&gt;
| [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/reversefielddominance.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Rate Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AlterFPS]]&lt;br /&gt;
| AlterFPS can be used to speed up or slow down a video by adding or removing fields. It works like the 3:2 pulldown of NTSC film material, except you can choose your new speed. It can also blend frames for progressive frame results, and blend fields like ConvertFPS.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [[convert60ito24p]]&lt;br /&gt;
| convert60ito24p converts a 60fps interlaced NTSC Video into a 24fps progressive Video using different blending techniques.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md FPSDown]&lt;br /&gt;
| This filter reduces the framerate of a video by 1/2, by blending odd and even frames together. However, it does this in a smart way such that in case of duplicate frames, it will do the smart thing to remove unnecessary blurring in the output video.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md Plugin]&lt;br /&gt;
| [http://github.com/arkeet/ arkeet]&lt;br /&gt;
|-&lt;br /&gt;
| [[FrameDbl]]&lt;br /&gt;
| FrameDbl will generate extra frames to double the frame rate. It does this using a motion compensated approach to interpolating between frames. See [http://forum.doom9.org/showthread.php?t=56036 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/FrameDbl.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| FrameRateConverter&lt;br /&gt;
| FrameRateConverter uses motion interpolation with fine artifact removal. Requires [[MVTools|MVTools 2.7.x]], [[MaskTools|MaskTools 2.2.x]]. See [https://forum.doom9.org/showthread.php?t=174793 discussion].&lt;br /&gt;
| [[YV24]], [[YUY2]], [[YV12]], [[Y8]]&lt;br /&gt;
| [https://github.com/mysteryx93/FrameRateConverter Plugin]&lt;br /&gt;
| [https://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.spirton.com/uploads/InterFrame/InterFrame2.html InterFrame]&lt;br /&gt;
| Frame rate conversion script. Interframe works very well at converting 24FPS to 60FPS; converts videos to higher frame rates like newer TVs do. Common names are frame doubling, smooth motion, among others. See [http://forum.doom9.org/showthread.php?t=160226 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1486831&amp;amp;postcount=1 Script]&lt;br /&gt;
|{{Author/SubJunk}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/index_en_msu.html MSU_FRC]&lt;br /&gt;
|The filter is intended for video frame rate up-conversion. It increases the frame rate integer times. It allows, for example, to convert a video with 15 fps into a video with 30 fps.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/src/msu_frc.zip Plugin]&lt;br /&gt;
|Dmitriy Vatolin, et al.&lt;br /&gt;
|-&lt;br /&gt;
| Motion&lt;br /&gt;
| Fast true-motion motion-compensation functions for AviSynth. [http://forum.doom9.org/showthread.php?t=101859 Discussion], [http://web.archive.org/web/20060103143553/http://people.pwf.cam.ac.uk/mg262/posts/Motion/motion.html Documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Motion_v10.zip plugin]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| NTSC tools&lt;br /&gt;
| Automatic [[NTSC]] to [[PAL]] conversion with 24p, 30p, 60i detection. See [http://forum.doom9.org/showthread.php?t=114054 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/NTSC_tools.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[SalFPS3]]&lt;br /&gt;
| A modded version of MotionProtectedFPS for extra protection.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SalFPS3.avs Script]&lt;br /&gt;
| Mug Funky, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SickJumps&lt;br /&gt;
| Speed ramping, aka time-remapping (smooth speed changes). Processes both video and audio. See [http://forum.doom9.org/showthread.php?t=175017 discussion].&lt;br /&gt;
| [[RGB]], [[YUV]]&lt;br /&gt;
| [https://forum.doom9.org/showthread.php?t=175017 plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]&lt;br /&gt;
| SVPflow provides fast and high quality GPU accelerated frame rate interpolation. See [http://forum.doom9.org/showthread.php?t=164554 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.svp-team.com/files/gpl/svpflow-4.0.0.128.zip Plugin]&lt;br /&gt;
| [http://www.svp-team.com/wiki/Credits SVP Team]&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr tc2cfr]&lt;br /&gt;
| This plugin that can read a timecode file and convert a given video clip in to one with a constant framerate by adding duplicate frames.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr/releases Plugin]&lt;br /&gt;
| [http://github.com/gnaggnoyil gnaggnoyil]&lt;br /&gt;
|-&lt;br /&gt;
| [http://tasvideos.org/forum/viewtopic.php?t=12763 TimecodeFPS]&lt;br /&gt;
| Converts clip from VFR to CFR.  Timing information from clip is discarded, and matroska v2 timecodes from the timecodes file are used instead.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.mediafire.com/?a51pifo438i7hdb Plugin]&lt;br /&gt;
| natt&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165045 VFRtoCFR]&lt;br /&gt;
| Converts a variable frame rate (VFR) video to a constant frame rate (CFR) video with the help of Matroska Version 2 Timecodes.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/q6zfgpo5dhh50si/VFRtoCFR20120730.zip Plugin]&lt;br /&gt;
| Aktan&lt;br /&gt;
|-&lt;br /&gt;
| [http://griffeltavla.wordpress.com/2013/01/18/convert-vfr-to-cfr-using-avisynth/ VfrToCfr]&lt;br /&gt;
| This plugin converts variable frame rate clips to constant frame rate by introducing null frames. [http://github.com/jojje/VfrToCfr-the-other-one GitHub repository]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130430033132/http://snarl.zapto.org/files/vfrtocfr-1.0.zip Plugin]&lt;br /&gt;
| joyje&lt;br /&gt;
|-&lt;br /&gt;
|[[YFRC]]&lt;br /&gt;
| Yushko Frame Rate Converter - doubles the frame rate with strong artifact detection and scene change detection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.nl/images/YFRC-01dd-10mm-2015yyyy.avsi Script]&lt;br /&gt;
| Oleg Yushko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Replacement/Range Processing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=461878#post461878 ApplyEvery]&lt;br /&gt;
|A collection of AviSynth functions that operate at regular intervals in a clip. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/stickboy/ApplyEvery.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes.html BadFrames]&lt;br /&gt;
|Replaces given bad frames by neighbors or blend (interpolation). Useful for frames with very large defects. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes20.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162266 ClipClop]&lt;br /&gt;
|Clipclop is a simple plugin to replace ranges in a source clip with the same range, from a replacement clip. Supports up to 255 replacement clips, with unlimited number of replacements into output clip.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168047 FrameRepeat]&lt;br /&gt;
|FrameRepeat() is a simple plugin to select frames to repeat. Requires AviSynth 2.6.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167971 FrameSel/FrameRep]&lt;br /&gt;
|FrameSel() is a simple plugin to select individual frames from a clip. Can select frames numbers by direct arguments to filter, or in a string, or in a command file.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164766 MatchFrames/LocateFrames]&lt;br /&gt;
|MatchFrames, intended for matched frames extraction,LocateFrames, intended to be usable by other scripts to identify matches.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1644971&amp;amp;postcount=28 RemapFrames]&lt;br /&gt;
|A collection of functions to rearrange frames between clips. Remaps the frame indices in a clip or from a second clip as specified by an input text file or by an input string. Efficient alternatives to long chains of &amp;lt;tt&amp;gt;FreezeFrame, DeleteFrame, or ApplyRange&amp;lt;/tt&amp;gt;. &lt;br /&gt;
|&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/RemapFrames-0.4.1.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162446 Prune]&lt;br /&gt;
|Prune is a simple plugin to trim() multiple source clips and splice the results into a new clip. Supports up to 256 source clips, with unlimited number of trims/splices into output clip. Prune can fade Audio (to reduce clicks between splices) for supported audio formats. The plugin will do [[AlignedSplice]] only.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Levels and Chroma ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 AutoAdjust]&lt;br /&gt;
| A high quality automatic adjustement filter. It calculates statistics of clip, averages them temporally to stabilize data and uses them to adjust luminance gain &amp;amp; color balance. AutoAdjust has a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and can also input/output 16-bits. AutoAdjust is internally multithreaded and SSE2 optimized.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 AutoContrast]&lt;br /&gt;
|Auto contrast adjustment.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels.html Autolevels]&lt;br /&gt;
| Improvement of the [[ColorYUV]] filter's autogain feature. It stretches the luma histogram to use the entire specified range, averaging the amount of &amp;quot;gain&amp;quot; over consecutive frames to better handle flashes and to avoid flickering. [http://forum.doom9.org/showthread.php?t=128585 Discuss]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels_0.6_20110109.zip Plugin]&lt;br /&gt;
| {{Author/frustum}} &amp;amp; Theodor Anschütz&lt;br /&gt;
|-&lt;br /&gt;
| AWB&lt;br /&gt;
| Automatic white balance for real world footage, similar to the known function in digital cameras. See [http://forum.doom9.org/showthread.php?t=168062 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=168062 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| [[ChanMix]]&lt;br /&gt;
| Creates a grayscale image from an RGB24 source, it has 3 parameters to specify how much of each color-channel is used.&lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [{{N2Moved}}/misc/chanmix.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
| [[ChannelMixer]]&lt;br /&gt;
| Very similar to the ChannelMixer function found in Photoshop. 9 Adjustments are possible, 3 for each color channel.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.videohelp.com/images/guides/p1767998/channelmixer_v1_0.zip Plugin]&lt;br /&gt;
| Gustaf Ullberg&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaJig]]&lt;br /&gt;
| Automatic Colorization.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1775733#post1775733]&lt;br /&gt;
| MWilson&lt;br /&gt;
|-&lt;br /&gt;
| [[ColorBalance]]&lt;br /&gt;
| Same tool that is found in Gimp &amp;amp; Cinepaint. See [http://forum.doom9.org/showthread.php?p=1180090#post1180090 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://dl.dropbox.com/s/ve66ayxfnfet9u0/ColorBalance_0.26.zip Plugin]&lt;br /&gt;
| Gavino &amp;amp; mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
|ColorLooks&lt;br /&gt;
| This plugin is based on Trev's VDub filter [http://www.trevlac.us/FilterDocs/ Colorlooks] and Donald Graft's [http://rationalqm.us/colorize.html Colorize] (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize. See [http://forum.doom9.org/showthread.php?t=97706 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/ColorLooks_v13.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ColorYUV2]&lt;br /&gt;
|YUV color adjustment plugin with a graffer. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/875czvfnigu72ds/ColorYUV2_25_dll_20120529.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=96308 ColourLike]&lt;br /&gt;
| Makes a clip look like a 'reference' clip by adjusting each colour mask. Updated [http://forum.doom9.org/showpost.php?p=1582935&amp;amp;postcount=38 documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourlike_5F25_dll_20050825.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://expsat.sourceforge.net/ ExpLabo]&lt;br /&gt;
| ExpSat apply a non-linear transformation of saturation, Colorize change the image color dominance in a flexible manner, HLSnoise adds a noise to the image separately to the HLS dimensions. See [http://forum.doom9.org/showthread.php?t=97052 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/expsat/ Plugin]&lt;br /&gt;
| brabbudu&lt;br /&gt;
|-&lt;br /&gt;
|[http://mpierce.pie2k.com/pages/211.php Exposure]&lt;br /&gt;
|Exposure function for AviSynth.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://mpierce.pie2k.com/downloads/exposure.zip Plugin]&lt;br /&gt;
|Matt Pierce&lt;br /&gt;
|-&lt;br /&gt;
| [[FlimsYlevels]]&lt;br /&gt;
| Luma adjustment function to give a more &amp;quot;film-ish&amp;quot; look. (Based on {{Author/Didée}}'s [[Ylevels]]).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| FlimsyFeet &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173695 GamMac]&lt;br /&gt;
|Useful to correct color cast on old 8mm films.&lt;br /&gt;
|[[RGB32]], [[RGB24]]&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=605890#post605890 GiCocu]&lt;br /&gt;
| Use GIMP/Photoshop curve files, see [http://avisynth.org.ru/docs/english/externalfilters/gicocu.htm documentation.] &lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/gicocu_5F25_dll_20050620.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Gray_Balance]&lt;br /&gt;
|A gray balance script, which is based on Black/White/Gray balance picker.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20130812061301/http://strony.aster.pl/paviko/hdragc.htm HDRAGC]&lt;br /&gt;
| High Dynamic Range Automatic Gain Control - Increase dynamic range of video clips (enhance shadows). It's &amp;quot;simply&amp;quot; gaining (brightening) dark areas of image without causing blow of highlights. Amount of gain is calculated automatically, but can be influenced by parameters. See [http://forum.doom9.org/showthread.php?t=93571 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20120419193005/http://strony.aster.pl/paviko/Hdragc-1.8.7.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161986 HighlightLimiter]&lt;br /&gt;
| &amp;quot;Darkening highlight&amp;quot;. Works well on over exposed clips. It can also be combined with ContrastMask to create HDR effect&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1522100#post1522100 Script]&lt;br /&gt;
| javlak&lt;br /&gt;
|-&lt;br /&gt;
| [[HistogramAdjust]]&lt;br /&gt;
| 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.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HistogramAdjust/HistogramAdjust.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Histograms in RGB &amp;amp; CMY]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;levels&amp;quot;) but for RGB and CMY instead of YUV. It also includes a RGB parade color scope.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/Histograms_in_RGB_%26_CMY.avsi Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
|HSVAdjust&lt;br /&gt;
|HSVAdjust/HSLAdjust/HSIAdjust let's you rotate hues, control the strength of color (saturation), or modify the brightness of a clip. The type of brightness depends on the filter. It's value for HSVAdjust, lightness for HSLAdjust or intensity for HSIAdjust. See [http://forum.doom9.org/showthread.php?t=162022 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/HSVAdjust_v01.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Hue&lt;br /&gt;
|This plugin is a port of Donald Graft's VirtualDub [http://rationalqm.us/hue.html Hue] filter. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=87439&amp;amp;pagenumber=2 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Hue_v10.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|MatchHistogram&lt;br /&gt;
| Tries to modify the histogram of the input clip to match that of a reference clip. Should be used for analysis only, not for production. See [http://forum.doom9.org/showthread.php?t=153196 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://latoninf.free.fr/d9/MatchHistogram.7z Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[OutRange]]&lt;br /&gt;
| A simple function to scan the whole video and output a log file, in which out-of-tv-range frames are logged.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/OutRange.avsi Script]&lt;br /&gt;
| 06_taro&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170642 RGBAdapt]&lt;br /&gt;
|Another RGB color correction plugin, it also also includes a graffer.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/bo4afg77u4dfu8k/RGBAdapt_dll_v0.3-20150617.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier]&lt;br /&gt;
|An AviSynth forensic plugin to amplify color shifts.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/432rxa9ed1lr2in/RgbAmplifier_25_dll_v1.03_20140607.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SGradation]]&lt;br /&gt;
| SGradation is much like a gamma function, but '2nd order'.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| Script&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ShowChannels]&lt;br /&gt;
|Simple plugin whose only function is to display the average Y,U and V values for a YUV frame or R,G, and B for an RGB frame. Also shows accumulated average for all frames visited so far.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/2dgk1y1cohql64r/ShowChannels_25%2626_v0-8_dll_20150330.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowOverRange]]&lt;br /&gt;
| Shows illegal &amp;quot;TV range&amp;quot; by painting pixels blue for anything less than 16 and red for anything greater than 235.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/download/file.php?id=164 Plugin]&lt;br /&gt;
| {{Author/SAPikachu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 SmoothAdjust]&lt;br /&gt;
| SmoothAdjust is a set of 5 plugins to make YUV adjustements. These 5 plugins have a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and artifacts. SmoothAdjust is multithreaded (up to 16 threads) and SSE2 optimized. SmoothAdjust is [[SmoothLevels|SmoothLevels']] successor. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Tint]]&lt;br /&gt;
| Tints the image toward a specified colour.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133 &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=74334 TweakColor]&lt;br /&gt;
| Target specific hue and saturation ranges for hue and saturation adjustments.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/tweakcolor_5F25_dll_20040412.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VideoScope]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;classic&amp;quot;) but with additional features, it shows waveform monitors and a vectorscope. &lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/VScope12.zip Plugin]&lt;br /&gt;
| {{Author/Randy French}}&lt;br /&gt;
|-&lt;br /&gt;
| [[WhiteBalance]]&lt;br /&gt;
| Correct the white balance of a clip with a large degree of control and accuracy over other methods of correcting white balance. See [http://forum.doom9.org/showthread.php?t=106196 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.64k.it/andres/data/avisynth/WhiteBalance100.zip Plugin]&lt;br /&gt;
| SomeJoe&lt;br /&gt;
|-&lt;br /&gt;
| [[Ylevels]]&lt;br /&gt;
| A simple replacement for Avisynth's internal [[Levels]] command, with a few neat differences.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Line Darkening ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FastLineDarkenMOD&lt;br /&gt;
| Line darkening script. See original [http://forum.doom9.org/showthread.php?t=82125 discussion.] Updated [http://forum.doom9.org/showthread.php?p=1060081#post1060081 script.] Additional [http://forum.doom9.org/showthread.php?p=1023638#post1023638 information.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1060081#post1060081 Script]&lt;br /&gt;
| Vectrangle / {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Hysteria]]&lt;br /&gt;
|Hysteria, a line darkening script by Scintilla.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/fvDdiV6m Script]&lt;br /&gt;
|Scintilla&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 LineDarkenToon]&lt;br /&gt;
| LineDarkenToon use the idea of mf_toon (0.5) for linedarken. I wanted a really small fast code like FastLineDarken but with similar output like mf_toon and this is the result.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mfToon]]&lt;br /&gt;
| mfToon darkens cartoon edges. In default operation, it performs line darkening, Xsharpening, and warp sharpening. &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=53364 discussion.] Additional information [http://forum.doom9.org/showthread.php?t=125128 here] and [http://forum.doom9.org/showthread.php?t=52066 here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfToon-v0.52.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[proToon]]&lt;br /&gt;
|Line darkening script, used to be known as vmToon and before that mfToon.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/Aw9En26L Script]&lt;br /&gt;
|TheProfileth&lt;br /&gt;
|-&lt;br /&gt;
| [[SuperToon]]&lt;br /&gt;
| An attempt to optimize/speed up the previous versions of mfToon, vmToon, etc. See [http://forum.doom9.org/showthread.php?t=163987 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=163987 Script]&lt;br /&gt;
| Hadien&lt;br /&gt;
|-&lt;br /&gt;
| [[Toon]]&lt;br /&gt;
| Simple and fast line darkener. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/guk5plphkthdy2f/Toon-v1.1.7z Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ToonLite]]&lt;br /&gt;
| It's the same as [[Toon]], just without the warpsharp processing..&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090218093135/http://mf.creations.nl/avs/filters/Toon-v1.0-lite.dll Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[vmToon]]&lt;br /&gt;
| The successor to mfToon. Darkens lines, thins lines, and does supersampled sharpening all in one, but slow. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Vmtoon-v0.74.avsi Script]&lt;br /&gt;
| Vectrangle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resizers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AreaResize]]&lt;br /&gt;
| An area-average resizer plugin; only use to downscale.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [https://github.com/Aktanusa/AreaResize/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}, Aktanusa&lt;br /&gt;
|-&lt;br /&gt;
| [[Debicubic]]&lt;br /&gt;
| This filter is designed to reverse the effects of bicubic upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140622040033/http://rgb.chromashift.org/debicubic%20r2.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[Debilinear]]&lt;br /&gt;
| This filter is designed to reverse the effects of bilinear upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140214021604/http://rgb.chromashift.org/debilinear%20r6.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1738351#post1738351 edi_rpow2]&lt;br /&gt;
|An improved rpow2 function for nnedi3, nnedi3ocl, eedi3, and eedi2. Requires [http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi ResizeX]&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/view/pcmkxaauku375xd/edi_rpow2_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/FCBI FCBI]&lt;br /&gt;
|Fast Curvature Based Interpolation. More info [http://blog.awm.jp/tags/fcbi/ here] (Japanese).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/chikuzen/FCBI/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[JincResize]]&lt;br /&gt;
| Jinc (EWA Lanczos) Resampler Plugin for Avisynth/Avisynth+. See [http://forum.doom9.org/showthread.php?t=169813 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/AviSynth/jinc-resize/releases Plugin]&lt;br /&gt;
| innocenat&lt;br /&gt;
|-&lt;br /&gt;
| Lanczosplusv3&lt;br /&gt;
| Very slow, but high quality resizer. See [http://forum.doom9.org/showthread.php?t=136690]&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3/nnedi3_rpow2|nnedi3_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3_rpow2 is a function included in [[nnedi3]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3 Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3ocl/nnedi3x_rpow2|nnedi3x_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3x_rpow2 is a script function included in [[nnedi3ocl]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://avisynth.nl/index.php/nnedi3ocl Script and Plugin]&lt;br /&gt;
|SeT&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
| [[PointSize]]&lt;br /&gt;
| A set of [http://en.wikipedia.org/wiki/Image_scaling pixel art resizers]; Includes Scale2x/3x, LQ2x/3x/4x, HQ2x/3x/4x, xBRZ (2x to 6x). See [http://forum.doom9.org/showthread.php?t=154674 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.dropbox.com/s/2uvflijgrngvi7x/PointSize_0.2.zip?dl=1 Plugin]&lt;br /&gt;
| `Orum&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.int64.org/viewvc/int64/resamplehq/doc/index.html ResampleHQ] &lt;br /&gt;
| ResampleHQ provides gamma-aware resizing and colorspace conversion.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/int64/files/ResampleHQ/ResampleHQ-v1.zip/download Plugin]&lt;br /&gt;
| Cory Nelson&lt;br /&gt;
|-&lt;br /&gt;
|[[Resize8]]&lt;br /&gt;
|&amp;lt;tt&amp;gt;Resize8()&amp;lt;/tt&amp;gt; works just like AviSynth's internal resizers but with some extra features. It had correct chroma placement, optional adaptive anti-ringing algorithm and few other features.  &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://web.archive.org/web/20150911013350/http://www.nmm-hd.org/upload/get~8y1IjaaqvoI/Resize8_v1.2.avsi Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
|ResizeX&lt;br /&gt;
|ResizeX is a wrapper function for AviSynth's internal resizers and Dither_resize16 that corrects for the chroma shift caused by the internal resizers when they're used on horizontally subsampled chroma with MPEG2 placement.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135735 Seamer]&lt;br /&gt;
| Seam Carving/Liquid Rescale for Content-Aware Image Resizing. See [http://en.wikipedia.org/wiki/Seam_carving wikipedia:Seam Carving]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/Seamer/Seamer.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|SincResize&lt;br /&gt;
|SincResize is an experimental plugin that uses DCT to perform resizing. See [http://forum.doom9.org/showthread.php?p=953002#post953002 discussion], read on for more information.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://cafxx.strayorange.com/files/SincResize4.7z Plugin]&lt;br /&gt;
|[http://cafxx.strayorange.com/ CAFxX]&lt;br /&gt;
|-&lt;br /&gt;
| [[SimpleResize]]&lt;br /&gt;
| Resizing plugin with 4 filters: SimpleResize, WarpResize, InterlacedResize and InterlacedWarpedResize.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/SimpleResize.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147117 SplineResize]&lt;br /&gt;
| SplineResize contains two kinds of spline based resizers: The first ones are the (cubic) spline based resizers from Panorama tools: Spline100Resize (using 10 sample points) and Spline144Resize (using 12 sample points) are examples. Other ones are available in AviSynth itself. The second ones are natural cubic splines that use the kernel itself as a spline.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/SplineResize_v02.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth waifu2x]&lt;br /&gt;
|Single-Image Super-Resolution for anime/fan-art using Deep Convolutional Neural Networks.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth/releases Plugin]&lt;br /&gt;
|[http://github.com/sunnyone sunnyone]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1111789#post1111789 ZoomBox]&lt;br /&gt;
| Replacement for ResizeKAR. Resizes clip Keeping the Aspect Ratio. Can set Source/Target PAR/DAR, option to zoom in/out in order to hide/show black borders.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sharpeners ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aSharp]] &lt;br /&gt;
| Simple unsharp mask filter with optional adaptive sharpening. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38436 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/asharp_5F25_dll_20030118.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=122443 AVSShock]&lt;br /&gt;
|This Shock Filter sharpens edges of images by applying erosions or dilations depending on the sign of the Laplacian (or the so called Haralick-Canny edge detector). &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.gleitz.info/showthread.php?33105-Neues-Plugin-zum-Video-sch%E4rfen-Patent-Problem!&amp;amp;p=321585#post321585 Plugin]&lt;br /&gt;
|AMSS0815&lt;br /&gt;
|-&lt;br /&gt;
| [[aWarpSharp2]]&lt;br /&gt;
| A modern rewrite of aWarpSharp with several bugfixes and optimizations. See [http://forum.doom9.org/showthread.php?t=147285 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/pinterf/aWarpSharp/releases Plugin]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
| [[blah]]&lt;br /&gt;
| Sharpening. See [http://forum.doom9.org/showthread.php?t=155030 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1406843 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[FineSharp]]&lt;br /&gt;
| Small and relatively fast realtime-sharpening function, designed for 1080p, or after scaling 720p -&amp;gt; 1080p during playback (to make 720p look more being like 1080p). See [http://forum.doom9.org/showthread.php?p=1569035#post1569035 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1569035#post1569035 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LimitedSharpen]]&lt;br /&gt;
| LimitedSharpen can be used like a traditional sharpener, but producing much less artifacts. It can be used as a replacement for the common &amp;quot;resize(x4)-XSharpen-resize(x1)&amp;quot; combo, with very similar results (perhaps even better) - but at least 2 times faster, since it requires much less oversampling.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/LimitedSharpenFaster.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LSFmod]]&lt;br /&gt;
| A LimitedSharpenFaster mod with a lot of new features and optimizations. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=142706 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 MCLS_16]&lt;br /&gt;
|Motion Compensate Limited Sharpen 16bit&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 Script]&lt;br /&gt;
|Motenai Yoda&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 MedSharp]&lt;br /&gt;
|Soft thresholded median sharpening function. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[MSharpen]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt; is a very simple masked sharpening plugin for AviSynth. This version is a reimplementation of neuron2's [http://rationalqm.us/msharpen/msharpen.html old &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt;] plugin. See [http://forum.doom9.org/showthread.php?t=169832 discussion].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MSharpen Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NonlinUSM]]&lt;br /&gt;
| Non-linear Unsharp Masking.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1555234&amp;amp;postcount=46 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[pSharpen]]&lt;br /&gt;
| Performs two-point sharpening to avoid overshoot. See [http://forum.doom9.org/showthread.php?t=172422 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172422#post1732663 Script]&lt;br /&gt;
| ilpippo80, colours&lt;br /&gt;
|-&lt;br /&gt;
|[[ReCon]]&lt;br /&gt;
|'''ReCon'''volution - makes things sharp by mixing pixels together. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1409582#post1409582 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[SeeSaw]]&lt;br /&gt;
| SeeSaw uses a balance of denoising and sharpening to enhance a clip. The aim is to enhance weak detail without over-sharpening or creating jaggies on strong detail, and produce a result that is temporally stable without detail shimmering.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SeeSaw.avs Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpenComplex2&lt;br /&gt;
| Port of MPC-HC's Sharpen Complex 2 to AviSynth. Despite the name, this script is very simple, see [http://forum.doom9.org/showthread.php?t=158385 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[SharpenComplex2_source|Script]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SSXSharpen&lt;br /&gt;
| Included in SharpTools. Sharpens the picture using [[supersampling]] techniques.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20100120201434/http://mf.creations.nl/avs/functions/SharpTools-v0.3.avs Script]&lt;br /&gt;
| {{Author/mf}}, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SSSharp]]&lt;br /&gt;
| Also known as Super Slow Sharpen - a very slow, but high quality sharpener. See [http://forum.doom9.org/showthread.php?t=132330 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1071731 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[TUnsharp]]&lt;br /&gt;
| TUnsharp is a basic sharpening filter that uses a couple different variations of unsharp masking and allows for controlled sharpening based on edge magnitude and min/max neighborhood value clipping. See [http://forum.doom9.org/showthread.php?t=84344 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162107/http://bengal.missouri.edu/~kes25c/TUnsharpv093.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnFilter]]&lt;br /&gt;
| This filter softens/sharpens a clip. It implements horizontal and vertical filters designed to (slightly) reverse previous efforts at softening or edge enhancement that are common (but ugly) in DVD mastering. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=28197&amp;amp;pagenumber=3 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/unfilter_5F25_dll_20030116.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnsharpHQ]]&lt;br /&gt;
| A strong and fast unsharp mask with some new features. See [http://forum.doom9.org/showthread.php?t=159637 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160302123821/https://filetea.me/t1sl65PsDLsT0mXMZL0s14xEg/dl Plugin]&lt;br /&gt;
| list&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[WarpSharp]]&lt;br /&gt;
| WarpSharp contains these sharpeners: &amp;lt;tt&amp;gt;UnsharpMask, WarpSharp, Xsharpen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/g6z1tohioqnw5b9/warpsharp_20080325.zip?dl=1 Plugin]&lt;br /&gt;
|???, {{Author/seraphy}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation/Shear/Skew/Perspective ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeBarrel]]&lt;br /&gt;
| Remove barrel and pincushion distortion, where straight lines appear curved.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/DeBarrel/DeBarrel.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=152860 Defish]&lt;br /&gt;
|Barrel and pincushion distortion correction filter. [http://forum.doom9.org/showthread.php?t=127432 Old discussion]&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/defish.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Defish Different Projections]&lt;br /&gt;
|Defish with different map projections, like Lambert Cylindrical Equal Area, Mercator and Miller projections.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [[FTurn]]&lt;br /&gt;
| Fast implementation of [[TurnLeft]](), [[TurnRight]]() and [[Turn180]]() AviSynth functions. See [http://forum.doom9.org/showthread.php?t=168315 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]],[[YV24]]&lt;br /&gt;
| [http://github.com/tp7/fturn/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=165978 Quad]&lt;br /&gt;
|An Avisynth plugin to perform quadrilateral transformations.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/quad.zip Plugin] -- [http://forum.doom9.org/showpost.php?p=1602709&amp;amp;postcount=22 no SSE]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.html Reform]&lt;br /&gt;
| Skewed images are corrected or vice versa, useful if video is recorded with slightly incorrectly located camera. Sometimes refered to as perspective correction.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Reformer]]&lt;br /&gt;
| Perspective correction and warping.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reformer/Reformer.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate.html Rotate]&lt;br /&gt;
| Rotate or shear on any given angle. See [http://forum.doom9.org/showthread.php?t=131307 discussion.]&lt;br /&gt;
| [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate134.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.html Spinner]&lt;br /&gt;
| Spinner plugin rotates a frame or selected part of it about the given axis coordinates in floating point precision.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166087 xyremap]&lt;br /&gt;
|xyremap is a filter for remapping pixels using formulae written in [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation].&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/avisynth/download/xyremap0.3.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=49429 Zoom]&lt;br /&gt;
| Zoom, Pan &amp;amp; Rotate Clip. Adds alpha layer to clip.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/zoom_5F25_dll_20050122.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Subtitling ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AssRender&lt;br /&gt;
| Libass-based subtitle renderer. See [http://forum.doom9.org/showthread.php?t=148926 discussion]. [http://github.com/pingplug/assrender Updated version]; only source code available. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV24]], [[YV12]], [[Y8]]&lt;br /&gt;
| [http://srsfckn.biz/assrender/ C Plugin] &amp;lt;!--[http://encodan.srsfckn.biz/assrender/ C Plugin] - dead link ---&amp;gt;&lt;br /&gt;
| lachs0r, TheFluff&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource sub3d]&lt;br /&gt;
|Plugin for rendering subtitles on 3D video with correct depth.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/tree/master/Sub3D Sources] [https://github.com/slavanap/ssifSource/releases Binaries][http://forum.doom9.org/showthread.php?t=173143 Discussion] &lt;br /&gt;
|slavanap&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023938/http://mvideo.ddpp.net/eng/subtitleex_plugin.htm SubtitleEx]&lt;br /&gt;
| Similar to the original [[Subtitle]] function but can do more: apply text to range; effects - bold, underline, italic, center, fading, motion, blur, emboss, etc...; alpha channel. [http://hosiken.jp/dev/win/subtitleex.html Plugin update (Japanese)]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/subtitleex_5F25_dll_20040819.zip Plugin] / [http://avisynth.nl/users/warpenterprises/files/dvutilities_20050717.zip .chm (help)]&lt;br /&gt;
|[http://web.archive.org/web/20070821222318/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119390 SUPtext]&lt;br /&gt;
|Overlays SUP-subtitles on a video clip.&lt;br /&gt;
|[[RGB32]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7846&amp;amp;d=1196858433 Plugin]&lt;br /&gt;
|emmel&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin SupTitle]&lt;br /&gt;
| Blu-ray PGS .SUP Subtitle Renderer Plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=148167 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin Plugin]&lt;br /&gt;
| {{Author/ZachSaw}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/vsfilter.htm VSFilter]&lt;br /&gt;
| Supported Subtitle Formats: VOBsub (.sub/.idx), SubStation Alpha/Advanced SubStation Alpha (.ssa/.ass), SubRip (.srt), MicroDVD (.sub), SAMI (.smi), PowerDivX (.psb), Universal Subtitle Format (.usf), Structured Subtitle Format (.ssf). See [http://en.wikipedia.org/wiki/VSFilter]&lt;br /&gt;
| &lt;br /&gt;
| [http://sourceforge.net/project/showfiles.php?group_id=205650&amp;amp;package_id=246121&amp;amp;release_id=541232 Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ VSFilterMod]&lt;br /&gt;
| VSFilterMod is modification of original VSFilter subtitle renderer by Gabest. This mod brings up new features and some minor bugfixes. See [http://forum.doom9.org/showthread.php?t=152855 discussion] and [http://code.google.com/archive/p/vsfiltermod/ Google Code Archive].&lt;br /&gt;
|&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 xy-VSFilter]&lt;br /&gt;
|High performance VSFilter compatible subtitle filters. [http://web.archive.org/web/20151213235432/http://code.google.com/p/xy-vsfilter/ Google Code repository]&lt;br /&gt;
|&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 Plugin]&lt;br /&gt;
|cyberbeing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transitions ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| DissolveAGG&lt;br /&gt;
| Wipe Transition with a soft edge. See [http://forum.doom9.org/showthread.php?t=118016 discussion]. &lt;br /&gt;
'''Note:''' There exist multiple variants of the script as the result of the interaction between authors in that discussion.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=900674#post900674 Script (v1)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152440#post1152440 Script (v2)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152632#post1152632 Script (v3)] &lt;br /&gt;
| {{Author/zemog}}, {{Author/mikeytown2}}, {{Author/Gavino}} and others&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=62277 JDL_MaskTransition]&lt;br /&gt;
| Combines two clips using the specified mask clip.  The audio tracks are blended during the transition. About any transition can be made with this function.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/stickboy/jdl-effects.avsi Script]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TransAll]]&lt;br /&gt;
| Around 150 distinct transitions can be created with this plugin. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/TransAll/TransAll.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (Albert Gasset)&lt;br /&gt;
| Various Wipe and Random Block modes. Has 19 built in patterns or it can use an external file.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/Albert Gasset}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (shubin)&lt;br /&gt;
| Contains 2 modes: circle and line. In circle mode the area has radius R and center xCenter,yCenter. In line mode the line passes through xCenter,yCenter with slope R.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/shubin}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Debugging/Diagnostic Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AVInfo&lt;br /&gt;
| AVIInfo gives information about the streams in the clip without loading any frames. filename can be a WAV file or an AVI file with several audio streams (it won't open AVI files with embedded subtitles though). It will return the info as a string. &lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avinfo_5F25_dll_20050417.zip Plugin]&lt;br /&gt;
| trevlac, wilbert &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=174797 AVSMeter]&lt;br /&gt;
| AVSMeter is a CLI (command line interface) tool which measures the speed/efficiency of Avisynth scripts and checks if Avisynth and its plugin sub-system are set up and working correctly. Documentation for usage and features is included in the distribution package.&lt;br /&gt;
|&lt;br /&gt;
| Command line executable&lt;br /&gt;
| Groucho2004&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=116949 ColorDiff]&lt;br /&gt;
|ColorDiff makes a greyscale (Y8) frame according to the input frame's pixels' &amp;quot;distance&amp;quot; from a specified color. The diff is calculated by simply getting the diff of the individual color components from the desired color's components and summing them up. Also, weights can be set for the individual diffs. Documentation is at the beginning of the source file. This is a [http://avisynth.nl/index.php/Plugins#LoadCPlugin C Plugin!]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]] &lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7811&amp;amp;d=1196110203 C Plugin]&lt;br /&gt;
|Ignus2&lt;br /&gt;
|-&lt;br /&gt;
| [[DumpPixelValues]]&lt;br /&gt;
| Samples the colors from selected pixels for every frame in a video source and outputs the data to a text or binary file. See [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.zip Plugin]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/index.html McPoodle]&lt;br /&gt;
|-&lt;br /&gt;
|[[GrainEvaluate]]&lt;br /&gt;
| A script to analyze and log the strength of grain for each frame. See [http://forum.doom9.org/showthread.php?t=167455 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://www.nmm-hd.org/upload/get~-eJfUjEXJY4/GrainEvaluate.avsi Script]&lt;br /&gt;
|{{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1462931&amp;amp;postcount=81 Glitch Analyzer]&lt;br /&gt;
| Glitch Analyzer generates a diagnostic video, then analyzes the recorded version of it, to detect swapped, dropped, or repeated fields.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1467907#post1467907 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid]]&lt;br /&gt;
| Overlays a grid, useful for pixel counting.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Grid/Grid.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20160610124531/http://code.google.com/p/avisynthrestoration/wiki/Measure Measure]&lt;br /&gt;
| Measures luminence of greyscale bars and prints results on-screen.  Can be used to set brightness/contrast in capture settings accurately.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/lcferrum/segment-display-ocr SegmentDisplayOCR]&lt;br /&gt;
|SegmentDisplayOCR is a seven-segment display recognition filter for AviSynth. It has built in logging functionality (it will log frame recognition results) and also can be used in AviSynth conditional filters. The main purpose of this filter is to process readings of various digital instruments (e.g. digital multimeters) captured on video. So if your favourite instrument lacks interface for connecting it to PC you can capture it's readings on cam and convert them to computer readable format with SegmentDisplayOCR filter.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://sourceforge.net/projects/segmentdisplayocr/files/SegmentDisplayOCR/ Plugin]&lt;br /&gt;
|[http://github.com/lcferrum lcferrum]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=61128 SSIM]&lt;br /&gt;
|A filter that compute an objective video quality metric between two videos. Based on SSIM work from [http://web.archive.org/web/20060515090025/http://www.cns.nyu.edu/~zwang/files/research/ssim/index.html Zhou Wang]. It has been created with the help of Mfa.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070129114000/http://perso.orange.fr/reservoir/dl/SSIM-0.24.rar Plugin] / [http://web.archive.org/web/20070129115059/http://perso.orange.fr/reservoir/dl/SSIMSrc-0.24.rar source]&lt;br /&gt;
|[http://web.archive.org/web/20060507012947/http://perso.wanadoo.fr/reservoir/ Lefungus]&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowPixelValues]]&lt;br /&gt;
| This filter displays the actual Y U and V (or R G and B) values from pixels within a frame. See [http://forum.doom9.org/showthread.php?t=64192 discussion] and [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/showpixelvalues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028122947/http://geocities.com/siwalters_uk/showpixelvalues1.4c.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/Testpatterns Testpatterns]&lt;br /&gt;
| This filter creates a sinewave frequency sweep directly in YV12, useful to measuring video response.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/tmonitor.htm TMonitor]&lt;br /&gt;
| TMonitor is a filter very similar to AVSMon. It enables monitoring of an Avisynth clip via previewing the video, viewing clip information (such as video width, height, colorspace, number of frames, audio samples, sample rate, number of audio channels, and more), and adjusting the audio delay. It also supports multiple instances per script, allowing viewing of differences between different parts of a processing chain.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TMonitorv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=53238 ViewFields/UnViewFields]&lt;br /&gt;
| [http://web.archive.org/web/20140709004333/http://www.geocities.com/siwalters_uk/unviewfields.html UnViewFields], [http://web.archive.org/web/20140708181324/http://www.geocities.com/siwalters_uk/viewfields.html ViewFields]&lt;br /&gt;
| &lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Comptest]]&lt;br /&gt;
| The script Compressibility test can be used for a compressibility test on a clip.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[SeeTheDifference]]&lt;br /&gt;
| SeeTheDifference just makes the difference visible between an encoded and an original videoclip. So you can see what you really &amp;quot;lose&amp;quot; when encoding a video.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Edge Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpsharp2/aSobel|aSobel]]&lt;br /&gt;
| Sobel edge dectecion filter included in [[aWarpSharp2]]. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [[aWarpSharp2| Plugin]]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MaskTools2/Mt edge| mt_edge]]&lt;br /&gt;
| Edge detection filter included in [[MaskTools2]].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[MaskTools2|Plugin]]&lt;br /&gt;
| {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[tcanny]]&lt;br /&gt;
| Contains a canny edge detection filter and distance transform filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140804144614/http://bengal.missouri.edu/~kes25c/tcanny.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TCannyMod]]&lt;br /&gt;
| Canny edge detection filter for Avisynth 2.6. Reimplementation of tcanny. See [http://forum.doom9.org/showthread.php?t=168449  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TCannyMod/releases/ Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEdgeMask]]&lt;br /&gt;
| TEdgeMask creates an edge mask based off gradient vector magnitude.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TEdgeMaskv09.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEMmod]]&lt;br /&gt;
| TEdgeMask modified for Avisynth 2.6. It creates an edge mask using gradient vector magnitude. See [http://forum.doom9.org/showthread.php?t=168390  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TEMmod/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Export Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can write directly to media files. &lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaWrite uses the ImageMagick libraries to write images. Many formats are supported including animations and multipage files.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172837 TWriteAVI]&lt;br /&gt;
| Serve AVI file to program requesting it as well as write an avi file. Useful for speeding up 2 pass encodes at the cost of hard drive space. [http://forum.doom9.org/showthread.php?t=172761 Update for AviSynth 2.6]. [http://forum.doom9.org/showthread.php?p=1750415#post1750415 Usage]. [http://forum.doom9.org/showthread.php?p=1073371#post1073371 Old mod by squid_80].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/84csi0174ettu5l/TWriteAVI_dll_v2.03-20160603.zip Plugin]&amp;lt;!--[http://www.mediafire.com/download/c5iboqi43ijprap/TWriteAVI_dll_v2.02-20160106.zip older version]--&amp;gt;&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawWriter&amp;quot;)&lt;br /&gt;
| Sashimi writes (and reads) almost any regular raw uncompressed data format you can define.  You'll find a fuller description under [[#Source_Filters|Source Filters]].&lt;br /&gt;
| [[RGB]], [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[SoundOut]]&lt;br /&gt;
| SoundOut is a GUI driven sound file output module for AviSynth (it exports audio to several compressors).&lt;br /&gt;
| All audio.&lt;br /&gt;
| [[SoundOut|Plugin]]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Import Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are used to import filters written for other audio and video packages.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?threadid=92174 FreeFrame]&lt;br /&gt;
| Allows [http://freeframe.sourceforge.net/ freeframe] filters (mostly effects) to be used directly in AviSynth.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/freeframe_5F25_dll_20050426.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meta-Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to be used with other filters, to restrict or augment their effect.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 AVSTP]&lt;br /&gt;
|A library for multithreaded plug-in development&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 Plugin]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 MP_Pipeline]&lt;br /&gt;
|Run parts of an AviSynth script in external processes.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 Plugin]&lt;br /&gt;
|[http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| [[MT]]&lt;br /&gt;
| MT is a filter that enables other filters to run multithreaded. This should hopefully speed up processing on hyperthreaded/multicore processors or multiprocessor systems. See [http://forum.doom9.org/showthread.php?t=94996]&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mt_20070301.zip Plugin]&lt;br /&gt;
| tsp&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]] &lt;br /&gt;
| MVTools provides filters 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. See [http://forum.doom9.org/showthread.php?t=131033]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 SoraThread]&lt;br /&gt;
|Sora's avs multi-process/multi-thread plugin package&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 Plugin]&lt;br /&gt;
|leiming2006&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154886 ThreadRequest]&lt;br /&gt;
|Yet another plugin for multithread processing. [http://web.archive.org/web/20130124045626/http://lantis.homeunix.org/avisynth.shtml Archive homepage (Japanese)]&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.mediafire.com/download/4xux7d7l1u3toy8/ThreadRequest+102a.rar Plugin]&lt;br /&gt;
|lantis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipurpose Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174433 amDCT]&lt;br /&gt;
|amDCT() is an adaptive video filter providing deblocking, sharpening, local range expansion, smoothing, and bright noise removal in a single filter that can be used on video of any level of quality. These four operations work synergistically to drastically reduce block artifacts while maintaining detail and increasing local contrast.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://sites.google.com/site/amdctfilter/ Plugin]&lt;br /&gt;
|jconklin&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=166061 HybridFuPP]&lt;br /&gt;
| An adaptive processor, allowing picture cleaning and compressibility gain. Original [http://forum.doom9.org/showthread.php?t=146632 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/6g09aazs4z7m11a/HybridFuPP_0.992b.zip Script]&lt;br /&gt;
| Fupp&lt;br /&gt;
|-&lt;br /&gt;
| [[MaskTools2]]&lt;br /&gt;
| This plugin provides tools for the creation, enhancement and manipulation of masks for each [[YUV]] component.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MaskTools2#Download Plugin]&lt;br /&gt;
| {{Author/Manao}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]]&lt;br /&gt;
| This plugin provides a collection of functions for motion estimation and compensation.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/mvtools/mvtools2.html Plugin]&lt;br /&gt;
| Various&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scene Change Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 DBSC]&lt;br /&gt;
|A scene change detection tool set/kit/box (work-in-progress).&lt;br /&gt;
|All&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 EDLmaker]&lt;br /&gt;
| Simple scenechange detector that writes to EDL file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools2/MSCDetection|MSCDetection]]&lt;br /&gt;
| Part of MVTools2; MSCDetection creates a scene detection mask clip from motion vectors data. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| SCDetect&lt;br /&gt;
| Detect scene change and output scene change frames to a file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140614152525/http://www.nmm-hd.org/upload/get~TfPm2QO4jbk/SCDetect_v0.3.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/sclavc/readme.txt SceneChangeLavc]&lt;br /&gt;
| SClavc is an AviSynth plugin intended to allow access to libavcodec's scene-change metrics. See [http://akuvian.org/src/avisynth/sclavc/ homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/scenechangelavc_5F25_dll_20041201.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvid]]&lt;br /&gt;
| SCXvid produces first pass Xvid logs from AviSynth at the equivalent of the default VFW preset. These logs are primarily intended to get scene change information from but may have other uses.&lt;br /&gt;
|  [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/402hlckyn669p9n/SCXvid-1.1.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvidMask]]&lt;br /&gt;
| A tiny AviSynth plugin that reads an SCXvid log and creates a binary mask based on it.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SCXvidMask/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Support filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to augment the creation of custom script-based filters.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApplyInterlacedFilter]]&lt;br /&gt;
| ApplyInterlacedFilter safely processes interlaced video with spatial and temporal filters.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162874 ArcFuns]&lt;br /&gt;
|This plugin expands the available numerical functions with missing inverse trig functions.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=12494&amp;amp;d=1319627190 Plugin]&lt;br /&gt;
|{{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/AvsMotion#avsmotion AvsMotion]&lt;br /&gt;
|AviSynth plugin for animating clips with AAE motion tracking data.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/AvsMotion/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=46506 Call]&lt;br /&gt;
| Call an external program from the script.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/call_5F25_dll_20030310.zip Plugin]&lt;br /&gt;
| Nic, DDogg&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166063 CallCmd]&lt;br /&gt;
|Plugin to execute command on selectable frames or at startup or closedown. Based on [http://forum.doom9.org/showthread.php?t=46506 Call by Nic].&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/i6m7wffyi3dftxx/CallCmd_25_dll_v1.02_20130101.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173538 ClipBoard]&lt;br /&gt;
|Get text from Clipboard.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/qct5uj786ub28to/ClipBoard_25_dll_v0.01_20160530.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| FrameCache&lt;br /&gt;
| Frame cache plugin. It helps greatly increase performance, especially in combination with another plugins, like SmoothDeinterlace. Usage FrameCache( [number of frames to remember], (path to log file) ). &lt;br /&gt;
| any&lt;br /&gt;
| johny5 dot coder via gmail&lt;br /&gt;
| {{Author/Evgeny}} &lt;br /&gt;
|-&lt;br /&gt;
| GetSystemEnv&lt;br /&gt;
| An AviSynth plug-in to retrieve information from the system. &lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/stickboy/GetSystemEnv.zip Plugin]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GRunT]]&lt;br /&gt;
| Extends AviSynth's [[Runtime_environment|Runtime Environment]], making it easier to use, especially inside script functions.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139337 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GScript]]&lt;br /&gt;
| Extends the Avisynth scripting language to provide additional control-flow constructs: multi-line conditionals (if-then-else blocks), 'while' loops and 'for' loops.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147846 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119200 LoadDLL]&lt;br /&gt;
| Used to manually load dll files in AviSynth. Useful if a filter relies on an external dll that is not in the system PATH.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/LoadDll.zip Plugin]&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97748 PlaneMinMax]&lt;br /&gt;
| Frame-based YV12 plane Min/Max/Avg functions without [[ConditionalFilter]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/planeminmax_5F25_dll_20050727.zip Plugin]&lt;br /&gt;
| Bart Silverstein&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=83451 pop]&lt;br /&gt;
|A filter to get values from variables that may not yet be initialized.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.tsp.person.dk/pop.zip Plugin] &amp;lt;!--[http://web.archive.org/web/20160224093903/http://www.tsp.person.dk/pop.zip archived]--&amp;gt;&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165479 Rt_Stats]&lt;br /&gt;
| Compile-time/Runtime Functions.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin] [http://www.sendspace.com/folder/2mwrco mirror]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deepcolor Filters ===&lt;br /&gt;
(also check the [[High_bit-depth_Support_with_Avisynth#Processing_High_Bit-depth_Video_with_AviSynth|High Bit-Depth]] page and the [[:Category:Deep_color_tools|Deep Color Tools]] category)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Dither_tools|Dither]]&lt;br /&gt;
| Generates video with up to 16 bits per component after denoising and dithers back to 8 bits for storage. Primarily written to smooth fine gradients to remove color banding during/after denoising. Can also recover high bitdepth data potentially contained in a noisy clip; dither a high bitdepth picture into a standard YV12; and perform basic operations (masking, curves...) on high bitdepth pictures, as they cannot be manipulated safely with conventional AviSynth filters.&lt;br /&gt;
| [[Planar]] colorspaces&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Plugin + scripts]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20110809073332/http://arenafilm.hu/alsog/anaglyph/ Analglyph]&lt;br /&gt;
| This filter produces analglyph video from a stereo pair.  Analglyph is a 3d viewing method which uses colored glasses.  The plugin supports the advanced [http://web.archive.org/web/20130706165544/www.site.uottawa.ca/~edubois/anaglyph/ Dubois] algorithm, which is able to reduce the ghosting effect that is possible in the conversion.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z Plugin] / [http://web.archive.org/web/20140412062911/http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z mirror]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| Anaglypher &lt;br /&gt;
| A plugin for combining stereopairs into single anaglyph image.&lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://shura.luberetsky.ru/anaglypher/Anaglypher.zip Plugin]&lt;br /&gt;
| [http://shura.luberetsky.ru/ Shura Luberetsky]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616 Displace / McM_2D_to_3D]&lt;br /&gt;
|Plugin and script that enables you to convert 2d to 3d stereo with bidirectional pulfrich effect + add depth to stationary objects.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616#post1539121 Plugin/Script]&lt;br /&gt;
|Mcmount&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=143855 fauxD]&lt;br /&gt;
|2D to stereo-3D conversion in real-time.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=9278&amp;amp;d=1232092731 Plugin]&lt;br /&gt;
|eslave&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/ Pantarheon 3D AviSynth Toolbox]&lt;br /&gt;
| The Toolbox contains a number of basic functions which allow you to multiplex the left and right views found in two separate videos into one video, using several of the common methods currently in use.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/zip/ Script]&lt;br /&gt;
| [http://www.pantarheon.org/ G. Adam Stanislav]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://avslib.sourceforge.net/ AVSLib]&lt;br /&gt;
|General purpose toolkit/extension library enhancing AviSynths ability to perform complex linear and non-linear video editing tasks. Includes support for Array containers &amp;amp; operators, debugging tools, math &amp;amp; string functions, filters and many more.&lt;br /&gt;
|&lt;br /&gt;
|[http://sourceforge.net/projects/avslib/ AVSLib]&lt;br /&gt;
|[http://gzarkadas.users.sourceforge.net/ gzarkadas]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Audio Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddAudio]]&lt;br /&gt;
| A function that adds silent audio to a clip. Needed for CCE 2.50 users.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[AudioGraph]]&lt;br /&gt;
| Displays the audio waveform superimposed on the video. Intended to help with editing rather than for final output. Useful for finding specific dialog or sound, and for checking A/V sync. [http://forum.doom9.org/showthread.php?t=59412 Doom9 discussion]. Ihor Bobalo added a few additional features to AudioGraph, only the source code is provided: [http://sourceforge.net/projects/audiograph/ SourceForge repository].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20060517015407/http://beta.zenaria.com/kpo/avisynth/AudGraph_25.zip Plugin]&lt;br /&gt;
| Richard Ling, {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=108470 AudioLimiter]&lt;br /&gt;
| To increase volume for silent sounds a lot, to increase volume for middle-volume sounds a little and to keep hi-volume sounds untoched.&lt;br /&gt;
| N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=6586&amp;amp;d=1167241138 Plugin]&lt;br /&gt;
|dimzon&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 AudioTimeline]&lt;br /&gt;
|Displays a audio timeline track under the frame. It is especially suited for thumbsheets, where it allows to estimate the audio track of the thumbnailed clip.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 Plugin]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
| BeFa &lt;br /&gt;
| Band Eliminate Filter for Audio. See [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#Befa English documentation] (translated from the original [http://web.archive.org/web/20081122113014/http://kiraru2002.at.infoseek.co.jp/#befa Japanese documentation]).&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/befa_5F25_dll_20030924.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FindAudioSyncScript]]&lt;br /&gt;
| FindAudioSyncScript helps you to find the appropriate audio delays, if you have desync'ed audio.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
| IanB&lt;br /&gt;
|-&lt;br /&gt;
| MinMaxAudio&lt;br /&gt;
| Computes the root mean square, maximal or minimal value over all samples in all channels,or just over all samples in channel, and outputs the value (in decibels) as a float[http://forum.doom9.org/showpost.php?p=1197592&amp;amp;postcount=19]. It's a conditional audio filter, so the computation is done framewise. See [http://forum.doom9.org/showthread.php?t=127530 discussion]&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.wilbertdijkhof.com/MinMaxAudio_v02.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Normalize2&lt;br /&gt;
|Audio normalizing plugin. The main difference between this plugin and the built-in normalizing plugin [[Normalize]]() is that this plugin can store the peak level value in an external file and uses a lookup table to do the actual normalizing (for speed).&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://sourceforge.net/projects/jorydownloader/files/Normalize2%20for%20AviSynth/Normalize%20v0.1%20for%20AviSynth%202.5/ Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/jcsston/profile/ jcsston]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=104792 Sox Audio Effect Filter]&lt;br /&gt;
| Use [http://sox.sourceforge.net/ SOX] effects within AviSynth. Most effects are supported, and multiple effects can be stacked after each other.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=761154#post761154 Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Spectrogram]]&lt;br /&gt;
|Linear [http://en.wikipedia.org/wiki/Spectrogram spectrogram] for AviSynth 2.6.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.dropbox.com/s/9p2t1mv5t5yjpgd/Spectrogram_r5.7z?dl=1 Plugin]&lt;br /&gt;
|[http://github.com/innocenat innocenat]&lt;br /&gt;
|-&lt;br /&gt;
|SwitchByAudio&lt;br /&gt;
|Plugin to switch video source based on audio. See [http://forum.doom9.org/showthread.php?t=167011 discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/SwitchByAudio/SwitchByAudio.zip Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1722472&amp;amp;postcount=20 TimeStretchPlugin]&lt;br /&gt;
|[[TimeStretch]] with multichannel support and updated SoundTouch library. &lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.wilbertdijkhof.com/TimeStretch_v258.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ViewAudio]]&lt;br /&gt;
| Includes two filters: ViewAudio and CacheAudio. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/ViewAudio0301.zip Plugin] &amp;lt;!--[http://www.avisynth.nl/users/warpenterprises/files/viewaudio_5F25_dll_20031103.zip Plugin]--&amp;gt;&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| VUmeter&lt;br /&gt;
| Classic analog-style VU meter; see [https://forum.doom9.org/showthread.php?t=175370 discussion]. Uses MinMaxAudio.&lt;br /&gt;
| Any&lt;br /&gt;
| [https://github.com/raffriff42/AvisynthPlusUtilities script]&lt;br /&gt;
| raffriff42&lt;br /&gt;
|-&lt;br /&gt;
| [[Waveform]]&lt;br /&gt;
| Displays audio waveforms superimposed on the video, similar to AudioGraph below but with multi-channel support and consistent support for all colourspaces. See [http://forum.doom9.org/showthread.php?t=165703 discussion]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
| [http://horman.net/avisynth/download/waveform0.3.zip Plugin]&amp;lt;!--[https://web.archive.org/web/20130413095328/http://horman.net/waveform0.2.zip archived]--&amp;gt;&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== As Yet Unclassified ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=397426#post397426 Adjust]&lt;br /&gt;
| Generic Y-Channel mapping. Can define a function for the Y Channel. See [http://forum.doom9.org/showthread.php?p=397426 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/adjust_5F25_dll_20031110.zip Plugin]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/ WarpEnterprises]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166588 Adaptive Lens Blur Repair]&lt;br /&gt;
|This function adaptively repairs video damaged by lens blur, using a frame-adaptive repair mask, a selection of sharpeners and multi-stage motion-compensated artifact removal.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13154&amp;amp;stc=1&amp;amp;d=1354907363 Script]&lt;br /&gt;
| fvisagie&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1703332&amp;amp;postcount=172 amp]&lt;br /&gt;
|Inspired by [http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier], it performs temporal smoothing, then (optionally) enhances the difference between the windowed average and the current frame.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://horman.net/avisynth/amp.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoOverlay]]&lt;br /&gt;
|Auto-aligned optimal overlay of one video clip onto another with color adjustment.&lt;br /&gt;
| [[RGB32]], [[YV24]], [[YV12]]&lt;br /&gt;
| [https://github.com/introspected/AutoOverlay/releases Plugin]&lt;br /&gt;
| [https://github.com/introspected introspected]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace AutoTraceFilter]&lt;br /&gt;
|An intentionally useless plugin that uses [http://autotrace.sourceforge.net/ AutoTrace] to trace and then resize a source video, rendering the result using GDI+.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|-&lt;br /&gt;
|[http://nutbread.github.io/ave/ ave]&lt;br /&gt;
| A set of experimental audio/video filters.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://nutbread.github.io/ave/ Plugin]&lt;br /&gt;
| [http://github.com/nutbread nutbread]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172698 AviSynth Shader]&lt;br /&gt;
|This plugin allows running HLSL pixel shaders within AviSynth. This gives access to various HLSL filters that haven't been programmed in AviSynth.&lt;br /&gt;
|[[RGB32]], [[YV24]], [[YV12]]&lt;br /&gt;
|[http://github.com/mysteryx93/AviSynthShader Plugin]&lt;br /&gt;
|[http://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=675275#post675275 BeforeAfter]&lt;br /&gt;
| See the difference before and after; similar discussion [http://forum.doom9.org/showthread.php?t=98876 here]. (missing [http://www.animemusicvideos.org/forum/viewtopic.php?f=11&amp;amp;t=45223 BeforeAfterDiff] and BeforeAfterLine scripts.)&lt;br /&gt;
| any&lt;br /&gt;
| Script&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=158696 ccc]&lt;br /&gt;
|A plugin specifically designed for Cross-Conversion Correction.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150403181720/http://japland.org/ccc/ccc_v0.4a_avs.zip Plugin]&lt;br /&gt;
|Daemon404&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/CLExpr CLExpr]&lt;br /&gt;
|AviSynth Expr filter implemented in OpenCL for runtime calculation of expressions on 8 and 16-bit depths clips. Makes mt_lutxy and mt_lutxyz possible on 16-bit. More information [http://forum.doom9.org/showpost.php?p=1672638 here].&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/CLExpr/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/ColorIt.html Colorit]&lt;br /&gt;
| Color a black and white image or recolor a color image. See [http://forum.doom9.org/showthread.php?t=93990 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/Colorit.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| CutFrames&lt;br /&gt;
| Cut a range of frames from a single a/v clip. Opposite of Trim with extras.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135423 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| DCT&lt;br /&gt;
| Plugin with the following functions: IDCT, IDCT2, FDCT, FDCT2. See [http://forum.doom9.org/showthread.php?p=667382#post667382 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://alainmuchembled.free.fr/DCT.zip Plugin]&lt;br /&gt;
| lcld&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1444027#post1444027 DDigit]&lt;br /&gt;
| DDigit Plugin Text Rendering Pack for Plugin writers. See [http://forum.doom9.org/showthread.php?t=156888 discussion.]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.mediafire.com/download/bfhj5crwaxbupeh/DDigitTest_25%2626_v1-06_dll_20150330-RECOMPILE.zip Plugin]&lt;br /&gt;
| {{Author/StainlessS}}&lt;br /&gt;
|- &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=80419 DeBlot]&lt;br /&gt;
| Color Blot Reduction. &lt;br /&gt;
| [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/deblot_5F25_dll_20030628.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=95193 DeJump]&lt;br /&gt;
| This is a specific filter which might be used to stabilize some &amp;quot;jumpy&amp;quot; video sources captured from VHS. &lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=3988&amp;amp;d=1117479069 Plugin]&lt;br /&gt;
| dinstun&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint.html ExInpaint]&lt;br /&gt;
| Exemplar-Based Image Inpainting - removing large objects from images. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint0200.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FFAvisynth]]&lt;br /&gt;
| A plugin which lets you directly use [http://en.wikipedia.org/wiki/Ffdshow ffdshow] video and audio filters from AviSynth scripts.  &lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/ffdshow-tryout/ Plugin]&lt;br /&gt;
| Milan Cutka &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/FLuaG FLuaG]&lt;br /&gt;
| FLuaG (Floating Lua Graphics) is an AviSynth plugin for video/audio data editing via Lua scripting. See [http://forum.doom9.org/showthread.php?t=161852 discussion] &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/Youka/FLuaG/archive/master.zip Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
| Use Avisynth to process still images.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 FSubstitute]&lt;br /&gt;
|Tries to automate the task of replacing bad frames using adjacent or close-by frames.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 Script]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=130611 GrainOptimizer]&lt;br /&gt;
|The only temporal-only grain reducer! See discussion for more information. Related topics: [http://forum.doom9.org/showthread.php?t=137117 x264: Film Grain Optimization], [http://web.archive.org/web/20090916181521/http://x264dev.blogspot.com/2008/05/film-grain-optimization.html]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20081228144846/http://mirror05.x264.nl/Dark/force.php?file=./GrainOptimizer_2.02.zip Plugin]&lt;br /&gt;
|Dark Shikari&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL KPassFilterCL]&lt;br /&gt;
|KPassFilterCL is a set of tools in the frequency domain.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL/releases Plugin]&lt;br /&gt;
|[http://github.com/Khanattila Khanattila ]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/LVS LVS]&lt;br /&gt;
| LVS (Lua Video Sync) is a video frameserver plugin to edit video frames with the capability of scripting language Lua + 2D image processing functionality. See [http://forum.doom9.org/showthread.php?t=167716 discussion] &lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/lua-video-sync/files/ Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.html NeuralNet]&lt;br /&gt;
| Neural networks through back propagation learn and filter some types of noise. Classification and linear type networks are included.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| PseudoColor &lt;br /&gt;
| This filter first converts clip to b/w, then colors it to pseudorandom colors according to brightness. See [http://forum.doom9.org/showthread.php?t=61570 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/pseudocolor_5F25_dll_20030919.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource QRCodeSource]&lt;br /&gt;
|AviSynth plugin to provide a means to embed QR codes in video.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource/releases Plugin]&lt;br /&gt;
|[http://github.com/jeremypoulter jeremypoulter]&lt;br /&gt;
|-&lt;br /&gt;
|RemoveDeadPixels&lt;br /&gt;
|See [http://forum.doom9.org/showthread.php?p=699915#post699915 here] and [http://videoprocessing.fr.yuku.com/topic/27/Removedeadpixels here].&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://web.archive.org/web/20160610103945/http://home.arcor.de/kassandro/RemoveDeadPixels.rar Plugin]&lt;br /&gt;
|{{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172601 rgba_rpn]&lt;br /&gt;
|A filter for manipulating the pixels of [[RGB]] (and also [[YUV]]) clips using [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation.] &lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://horman.net/avisynth/downloads/rgba_rpn0.1.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SegmentedAmp]] &lt;br /&gt;
| Image is segmented with watershed algorithm for smoothing and/or sharpening.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/SegmentedAmp Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172377 SmoothSkip]&lt;br /&gt;
|In tribute to tritical's awesome filter, this one tackles the inverse problem of [[TIVTC/TDecimate|TDecimate]]; allowing for addressing frames that have non-smooth, skippy motion. For source code see [http://github.com/jojje/SmoothSkip GitHub repository]. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://github.com/jojje/SmoothSkip/releases/download/v1.0.2/SmoothSkip-1.0.2.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
| [[Soothe]]&lt;br /&gt;
| Lessens the temporal instability and aliasing caused by sharpening, by comparing the original and sharpened clip, leaving a smoother and slightly softer output. See [http://forum.doom9.org/showthread.php?t=99679 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=99679 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/ Tracking]&lt;br /&gt;
| Use computer vision to track objects in the video, and produce ConditionalReader input. Demo at [http://www.youtube.com/watch?v=SQ-JtJs7US0 Youtube]. &lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/files/1.1/AvisynthTrackin.1.1.binary.zip/download Plugin]&lt;br /&gt;
| [http://avisynthtrackin.sourceforge.net/ Shlomo Matichin]&lt;br /&gt;
|-&lt;br /&gt;
| UnSmooth&lt;br /&gt;
| What does it do. It amplifies noise, small detail, and artifacts. Doesn't sound very attractive, but there can still be some detail left in over smoothed encodes. See [http://forum.doom9.org/showthread.php?t=63361 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090821183550/http://mf.creations.nl/avs/functions/UnSmooth-v0.1.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163870 Watermark]&lt;br /&gt;
|Creates a transparent deformation in the video akin to a watermark. The watermark is defined by a black and white image which may be a dynamic image. The intensity of the effect is controlled by several parameters.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1554560#post1554560 Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/phillvanleersum/profile/ DrPhill]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.html WaterShed] &lt;br /&gt;
| Assuming image grey values to be elevations, it is segmented into basins and watershed lines. Useful in certain medical image analysis and recoloring work.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| AviSynth 2.5.8: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.zip Plugin]&lt;br /&gt;
AviSynth 2.6.0: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed_2_6.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins xvplugins]&lt;br /&gt;
|This is simply a bunch of AviSynth stuff that isn't (really) possible using plain AviSynth and instead required a plugin.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:AviSynth_Usage]]&lt;br /&gt;
[[Category:External_filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ConvertBits</id>
		<title>ConvertBits</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ConvertBits"/>
				<updated>2018-04-01T18:32:04Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: add link&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;
{{AvsPlusFilter}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;!-- ==== Syntax and Parameters ==== --&amp;gt;&lt;br /&gt;
==== ConvertBits ====&lt;br /&gt;
Changes bit depth while keeping [[Avisynthplus_color_formats|color format]] the same, if possible. &amp;lt;br&amp;gt;&lt;br /&gt;
If the conversion is not possible &amp;amp;ndash; for example, converting [[RGB32]] to 14bit &amp;amp;ndash; an error is raised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertBits(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(older bit-depth conversion filters &amp;amp;ndash; deprecated)''&lt;br /&gt;
&lt;br /&gt;
{{Func3Def&lt;br /&gt;
|ConvertToFloat(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo16bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo8bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{{Par2||clip|(required)}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2||bits|(required)}}&lt;br /&gt;
::Bit depth of output clip. Valid values: ''8'', ''10'', ''12'', ''14'', ''16'' (integer) or ''32'' (floating point). &lt;br /&gt;
&lt;br /&gt;
:{{Par2|truerange|bool|true}}&lt;br /&gt;
::When converting from true 10-16 bit formats, {{FuncArg|truerange}}=false indicates bitdepth of 16 bits regardless of the 10-12-14 bit format. Not applicable for non planar formats.&lt;br /&gt;
&lt;br /&gt;
{{HiddenAnchor|dither}}&lt;br /&gt;
:{{Par2|dither|int|-1}}&lt;br /&gt;
::*If ''-1'' (default), do not add dither;&lt;br /&gt;
::*If ''0'', add [[Ordered_dithering|ordered]] dither;&lt;br /&gt;
::*If ''1'', add [[wikipedia:Floyd–Steinberg_dithering|error diffusion (Floyd-Steinberg)]] dither &amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?p=1838145#post1838145 doom9]&amp;lt;/sup&amp;gt;&lt;br /&gt;
::Dithering is allowed only for scaling down (bit depth reduction), not up.&lt;br /&gt;
::Dithering is allowed only for 10-16bit (not 32bit float) sources.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|dither_bits|int|{{Template:FuncArg|bits}}}}&lt;br /&gt;
::Exaggerated dither effect: dither to a lower color depth than required by {{FuncArg|bits}} argument.&lt;br /&gt;
::Has no effect if {{FuncArg|dither}}=''-1'' (off).&lt;br /&gt;
::* Must be an even number from ''2'' to {{FuncArg|bits}}, inclusive.&lt;br /&gt;
::* In addition, must be &amp;gt;= ({{FuncArg|clip}}.[[Clip_properties#Color_Format|BitsPerComponent]]-8).&lt;br /&gt;
:::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left&amp;quot;|''Examples''&lt;br /&gt;
!Conversion&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
!Allowed Values&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 12bit&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 10bit&lt;br /&gt;
|8, 10&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; 10bit&lt;br /&gt;
|6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|6, 8&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; 10bit&lt;br /&gt;
|4, 6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|4, 6, 8&lt;br /&gt;
|-&lt;br /&gt;
|10 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|2, 4, 6, 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulls|bool|(auto)}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::If ''true'' (RGB default), scale by multiplication: 0-255 &amp;amp;rarr; 0-65535;&lt;br /&gt;
::if ''false'' (YUV default), scale by [[wikipedia:Arithmetic_shift|bit-shifting]].&lt;br /&gt;
::Use case: override greyscale conversion to fullscale instead of bit-shifts.&lt;br /&gt;
::Conversion from and to float is always full-scale.&lt;br /&gt;
::Alpha plane is always treated as full scale.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulld|bool|{{Template:FuncArg|fulls}}}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::At the moment, ''must'' match {{FuncArg|fulls}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #combine greyscale clips into YUVA clip&lt;br /&gt;
 U8 = source.UToY8()&lt;br /&gt;
 V8 = source.VToY8()&lt;br /&gt;
 Y8 = source.ConvertToY()&lt;br /&gt;
 A8 = source.AddAlphaPlane(128).AToY8()&lt;br /&gt;
 CombinePlanes(Y8, U8, V8, A8, planes=&amp;quot;YUVA&amp;quot;, source_planes=&amp;quot;YYYY&amp;quot;, &lt;br /&gt;
 \               sample_clip=source) #pixel_type=&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 # Copy planes between planar RGB(A) and YUV(A) without any conversion&lt;br /&gt;
 # yuv 4:4:4 &amp;lt;-&amp;gt; planar rgb&lt;br /&gt;
 source = last.ConvertBits(32) # 4:4:4&lt;br /&gt;
 cast_to_planarrgb = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBPS&amp;quot;)&lt;br /&gt;
 # get back a clip identical with &amp;quot;source&amp;quot;&lt;br /&gt;
 cast_to_yuv = CombinePlanes(cast_to_planarrgb, planes=&amp;quot;YUV&amp;quot;, source_planes=&amp;quot;RGB&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;YUV444PS&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #create a black and white planar RGB clip using Y channel&lt;br /&gt;
 #source is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YYY&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBP8&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #copy luma from one clip, U and V from another&lt;br /&gt;
 #source is the template&lt;br /&gt;
 #sourceY is a Y or YUV clip&lt;br /&gt;
 #sourceUV is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(sourceY, sourceUV, planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               source_planes=&amp;quot;YUV&amp;quot;, sample_clip = source)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| 20170310 r2440&lt;br /&gt;
| parameter ''dither_bits''&lt;br /&gt;
|-&lt;br /&gt;
| 20170202 r2420&lt;br /&gt;
| parameters ''fulls'', ''fulld''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_filters]]&lt;br /&gt;
[[Category:Colourspace_Conversion]]&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;br /&gt;
[[Category:Avisynthplus]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ConvertBits</id>
		<title>ConvertBits</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ConvertBits"/>
				<updated>2018-04-01T18:02:30Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: dither update&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;
{{AvsPlusFilter}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;!-- ==== Syntax and Parameters ==== --&amp;gt;&lt;br /&gt;
==== ConvertBits ====&lt;br /&gt;
Changes bit depth while keeping [[Avisynthplus_color_formats|color format]] the same, if possible. &amp;lt;br&amp;gt;&lt;br /&gt;
If the conversion is not possible &amp;amp;ndash; for example, converting [[RGB32]] to 14bit &amp;amp;ndash; an error is raised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertBits(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(older bit-depth conversion filters &amp;amp;ndash; deprecated)''&lt;br /&gt;
&lt;br /&gt;
{{Func3Def&lt;br /&gt;
|ConvertToFloat(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo16bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo8bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{{Par2||clip|(required)}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2||bits|(required)}}&lt;br /&gt;
::Bit depth of output clip. Valid values: ''8'', ''10'', ''12'', ''14'', ''16'' (integer) or ''32'' (floating point). &lt;br /&gt;
&lt;br /&gt;
:{{Par2|truerange|bool|true}}&lt;br /&gt;
::When converting from true 10-16 bit formats, {{FuncArg|truerange}}=false indicates bitdepth of 16 bits regardless of the 10-12-14 bit format. Not applicable for non planar formats.&lt;br /&gt;
&lt;br /&gt;
{{HiddenAnchor|dither}}&lt;br /&gt;
:{{Par2|dither|int|-1}}&lt;br /&gt;
::*If ''-1'' (default), do not add dither;&lt;br /&gt;
::*If ''0'', add [[Ordered_dithering|ordered dither]];&lt;br /&gt;
::*If ''1'', add [[wikipedia:Floyd–Steinberg_dithering|error diffusion (Floyd-Steinberg) dither]]&lt;br /&gt;
::Dithering is allowed only for scaling down (bit depth reduction), not up.&lt;br /&gt;
::Dithering is allowed only for 10-16bit (not 32bit float) sources.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|dither_bits|int|{{Template:FuncArg|bits}}}}&lt;br /&gt;
::Exaggerated dither effect: dither to a lower color depth than required by {{FuncArg|bits}} argument.&lt;br /&gt;
::Has no effect if {{FuncArg|dither}}=''-1'' (off).&lt;br /&gt;
::* Must be an even number from ''2'' to {{FuncArg|bits}}, inclusive.&lt;br /&gt;
::* In addition, must be &amp;gt;= ({{FuncArg|clip}}.[[Clip_properties#Color_Format|BitsPerComponent]]-8).&lt;br /&gt;
:::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left&amp;quot;|''Examples''&lt;br /&gt;
!Conversion&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
!Allowed Values&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 12bit&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 10bit&lt;br /&gt;
|8, 10&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; 10bit&lt;br /&gt;
|6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|6, 8&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; 10bit&lt;br /&gt;
|4, 6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|4, 6, 8&lt;br /&gt;
|-&lt;br /&gt;
|10 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|2, 4, 6, 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulls|bool|(auto)}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::If ''true'' (RGB default), scale by multiplication: 0-255 &amp;amp;rarr; 0-65535;&lt;br /&gt;
::if ''false'' (YUV default), scale by [[wikipedia:Arithmetic_shift|bit-shifting]].&lt;br /&gt;
::Use case: override greyscale conversion to fullscale instead of bit-shifts.&lt;br /&gt;
::Conversion from and to float is always full-scale.&lt;br /&gt;
::Alpha plane is always treated as full scale.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulld|bool|{{Template:FuncArg|fulls}}}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::At the moment, ''must'' match {{FuncArg|fulls}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #combine greyscale clips into YUVA clip&lt;br /&gt;
 U8 = source.UToY8()&lt;br /&gt;
 V8 = source.VToY8()&lt;br /&gt;
 Y8 = source.ConvertToY()&lt;br /&gt;
 A8 = source.AddAlphaPlane(128).AToY8()&lt;br /&gt;
 CombinePlanes(Y8, U8, V8, A8, planes=&amp;quot;YUVA&amp;quot;, source_planes=&amp;quot;YYYY&amp;quot;, &lt;br /&gt;
 \               sample_clip=source) #pixel_type=&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 # Copy planes between planar RGB(A) and YUV(A) without any conversion&lt;br /&gt;
 # yuv 4:4:4 &amp;lt;-&amp;gt; planar rgb&lt;br /&gt;
 source = last.ConvertBits(32) # 4:4:4&lt;br /&gt;
 cast_to_planarrgb = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBPS&amp;quot;)&lt;br /&gt;
 # get back a clip identical with &amp;quot;source&amp;quot;&lt;br /&gt;
 cast_to_yuv = CombinePlanes(cast_to_planarrgb, planes=&amp;quot;YUV&amp;quot;, source_planes=&amp;quot;RGB&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;YUV444PS&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #create a black and white planar RGB clip using Y channel&lt;br /&gt;
 #source is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YYY&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBP8&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #copy luma from one clip, U and V from another&lt;br /&gt;
 #source is the template&lt;br /&gt;
 #sourceY is a Y or YUV clip&lt;br /&gt;
 #sourceUV is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(sourceY, sourceUV, planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               source_planes=&amp;quot;YUV&amp;quot;, sample_clip = source)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| 20170310 r2440&lt;br /&gt;
| parameter ''dither_bits''&lt;br /&gt;
|-&lt;br /&gt;
| 20170202 r2420&lt;br /&gt;
| parameters ''fulls'', ''fulld''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_filters]]&lt;br /&gt;
[[Category:Colourspace_Conversion]]&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;br /&gt;
[[Category:Avisynthplus]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-03-29T23:07:46Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-03-29 SoftLimiter2, improved Vector2, vector_marks:style&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-03-13T23:38:24Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-03-13&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Convert</id>
		<title>Convert</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Convert"/>
				<updated>2018-03-08T14:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: rearrange elements, try to separate AVS, AVS+&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
Convert between any of the color formats that AviSynth supports:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Color format&amp;amp;nbsp;&lt;br /&gt;
! Image format&amp;amp;nbsp;&lt;br /&gt;
! Bit depth&amp;amp;nbsp;&lt;br /&gt;
! Sample ratio&amp;amp;nbsp;&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;| &amp;amp;nbsp;Description&lt;br /&gt;
|- &lt;br /&gt;
| '''[[RGB24]]'''&lt;br /&gt;
| [[Interleaved|interleaved]]&lt;br /&gt;
| 8&lt;br /&gt;
| 4:4:4&lt;br /&gt;
| (full chroma)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[RGB32]]'''&lt;br /&gt;
| interleaved&lt;br /&gt;
| 8&lt;br /&gt;
| 4:4:4:4&lt;br /&gt;
| (full chroma + alpha)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[YV24]]''' &amp;amp;diams;&lt;br /&gt;
| planar&lt;br /&gt;
| 8&lt;br /&gt;
| 4:4:4&lt;br /&gt;
| (full chroma)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[YV16]]''' &amp;amp;diams;&lt;br /&gt;
| planar&lt;br /&gt;
| 8&lt;br /&gt;
| 4:2:2&lt;br /&gt;
| (chroma shared between 2 pixels)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[YUY2]]'''&lt;br /&gt;
| interleaved&lt;br /&gt;
| 8&lt;br /&gt;
| 4:2:2&lt;br /&gt;
| (chroma shared between 2 pixels)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[YV12]]'''&lt;br /&gt;
| planar&lt;br /&gt;
| 8&lt;br /&gt;
| 4:2:0&lt;br /&gt;
| (chroma shared between 2x2 pixels)&amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| '''[[YV411]]''' &amp;amp;diams;&lt;br /&gt;
| planar&lt;br /&gt;
| 8&lt;br /&gt;
| 4:1:1&lt;br /&gt;
| (chroma shared between 4 pixels)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Y8]]''' &amp;amp;diams;&lt;br /&gt;
| (both)&lt;br /&gt;
| 8&lt;br /&gt;
| 4:0:0&lt;br /&gt;
| (no chroma)&lt;br /&gt;
|- &lt;br /&gt;
!colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:left; font-weight:normal;&amp;quot;|&amp;amp;nbsp; (&amp;amp;diams; = not supported in AviSynth version 2.58 or below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{AvsPluscon}} supports all of the above, plus:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Color format&amp;amp;nbsp;&lt;br /&gt;
! Image format&amp;amp;nbsp;&lt;br /&gt;
! Bit depth&amp;amp;nbsp;&lt;br /&gt;
! Sample ratio&amp;amp;nbsp;&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;| &amp;amp;nbsp;Description&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|RGB48]]'''&lt;br /&gt;
| interleaved&lt;br /&gt;
| 16&lt;br /&gt;
| 4:4:4&lt;br /&gt;
| (full chroma)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|RGB64]]'''&lt;br /&gt;
| interleaved&lt;br /&gt;
| 16&lt;br /&gt;
| 4:4:4:4&lt;br /&gt;
| (full chroma + alpha)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|RGBPxx]]'''&lt;br /&gt;
| [[Planar|planar]]&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:4:4&lt;br /&gt;
| (full chroma)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|RGBAPxx]]'''&lt;br /&gt;
| [[Planar|planar]]&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:4:4:4&lt;br /&gt;
| (full chroma + alpha)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|YUV444Pxx]]'''&lt;br /&gt;
| planar&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:4:4&lt;br /&gt;
| (full chroma)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|YUVA444Pxx]]'''&lt;br /&gt;
| planar&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:4:4:4 &lt;br /&gt;
| (full chroma + alpha)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|YUV422Pxx]]'''&lt;br /&gt;
| planar&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:2:2&lt;br /&gt;
| (chroma shared between 2 pixels)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|YUVA422Pxx]]'''&lt;br /&gt;
| planar&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:2:2:4&lt;br /&gt;
| (chroma shared between 2 pixels + alpha)&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|YUV420Pxx]]'''&lt;br /&gt;
| planar&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:2:0&lt;br /&gt;
| (chroma shared between 2x2 pixels)&amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|YUVA420Pxx]]'''&lt;br /&gt;
| planar&lt;br /&gt;
| 8-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:2:0:4&lt;br /&gt;
| (chroma shared between 2x2 pixels + alpha)&amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| '''[[Avisynthplus_color_formats|Y10..Y32]]''' &lt;br /&gt;
| (both)&lt;br /&gt;
| 10-16, 32 *&amp;amp;nbsp;&lt;br /&gt;
| 4:0:0&lt;br /&gt;
| (no chroma)&lt;br /&gt;
|- &lt;br /&gt;
!colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:left; font-weight:normal;&amp;quot;|&amp;amp;nbsp; '''*''' 8-16 = ''8,10,12,14,16 bit integer;''&amp;amp;nbsp; 32 = ''32 bit float''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the target format is the same as the source format, the original clip will be returned unchanged, except for the case of '''ConvertToYV12''' where the {{FuncArg|ChromaInPlacement}} and {{FuncArg|ChromaOutPlacement}} parameters are different.&lt;br /&gt;
&lt;br /&gt;
{{BlueBox}}&lt;br /&gt;
There is no unique way of [[Color_conversions|converting]] YUV to RGB or vice-versa. There are different ''conversion matrices'' in use; the two most common ones are available in AviSynth, namely ''Rec.601'' and ''Rec.709'', plus some others. The following should be correct in ''most'' cases (see [[Colorimetry#How_can_I_see_if_the_correct_standard_is_used_upon_playback.3F|'''here''']] for more)&lt;br /&gt;
*Rec.601 should be used when your source is standard definition (usually defined as smaller than [[Wikipedia:720p|720p]]):&lt;br /&gt;
:&amp;lt;code&amp;gt;ConvertToRGB(clip)&amp;lt;/code&amp;gt; (using default &amp;quot;Rec601&amp;quot;)&lt;br /&gt;
*Rec.709 should be used when your source is DVD or HDTV:&lt;br /&gt;
:&amp;lt;code&amp;gt;ConvertToRGB(clip, matrix=&amp;quot;Rec709&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
*The special-purpose matrices ''PC.601'' and ''PC.709'' keep the ''range'' unchanged, &lt;br /&gt;
:instead of converting between 0{{D}}-255{{D}}&amp;amp;nbsp;RGB and 16{{D}}-235{{D}}&amp;amp;nbsp;YUV, as is the normal practice.&lt;br /&gt;
*The special-purpose matrix ''AVERAGE'' is used for (rarely found) sources with ''unweighted'' luma, &lt;br /&gt;
:where ''Y'' = (R + G + B) / 3.&lt;br /&gt;
{{End_BlueBox}}&lt;br /&gt;
&lt;br /&gt;
Note '''ConvertToRGB''' always converts to [[RGB32]] – unless your source is RGB24, in which case no conversion is done. If you need 24-bit RGB for some reason, use '''ConvertToRGB24''' explicitly.&lt;br /&gt;
&lt;br /&gt;
Use '''ConvertBackToYUY2''' to convert ''back'' to YUY2 with minimal color-blurring when you have previously applied a YUY2&amp;amp;rarr;RGB conversion.&lt;br /&gt;
&lt;br /&gt;
{{AvsPluscon}} See also [[ConvertBits]] to convert between bit depths.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==== Syntax and Parameters ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
===== ''RGB interleaved'' ===== __NOEDITSECTION__&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToRGB(clip [, string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample''] ) &lt;br /&gt;
}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToRGB24(clip [, string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample''] )&lt;br /&gt;
}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToRGB32(clip [, string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample''] )&lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToRGB48(clip, [ string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'', &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; string ''chromaresample'' ] ) {{AvsPluscon}} &lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToRGB64(clip, [ string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample'' ] ) {{AvsPluscon}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ''RGB planar'' ===== __NOEDITSECTION__&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToPlanarRGB(clip, [ string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample'' ] ) {{AvsPluscon}} &lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToPlanarRGBA(clip, [ string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample'' ] ) {{AvsPluscon}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ''YUV444'' ===== __NOEDITSECTION__&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYV24(clip [, bool ''interlaced'', string ''matrix'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample''] )&lt;br /&gt;
}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYUV444(clip, [ string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample'' ] ) {{AvsPluscon}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ''YUV422'' ===== __NOEDITSECTION__&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYV16(clip [, bool ''interlaced'', string ''matrix'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample''] )&lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYUY2(clip [, bool ''interlaced'', string ''matrix'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample''] )&lt;br /&gt;
}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYUV422(clip, [ string ''matrix'', bool ''interlaced'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample'' ] ) {{AvsPluscon}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertBackToYUY2(clip [, string ''matrix'' ] )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ''YUV420'' ===== __NOEDITSECTION__&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYV12(clip [, bool ''interlaced'', string ''matrix'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaOutPlacement''] )&lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYUV420(clip, [ string ''matrix'', bool ''interlaced'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaOutPlacement'' ] ) {{AvsPluscon}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ''YUV411'' ===== __NOEDITSECTION__&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToYV411(clip [, bool ''interlaced'', string ''matrix'',   &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''ChromaInPlacement'',  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''chromaresample''] )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ''Y-only'' ===== __NOEDITSECTION__&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToY8(clip [, string ''matrix''] )&lt;br /&gt;
}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertToY(clip, [ string ''matrix'' ] ) {{AvsPluscon}} &lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==== Parameter Details ====&lt;br /&gt;
{{HiddenH5|Matrix}}&lt;br /&gt;
{{Par2|matrix|string|&amp;quot;Rec601&amp;quot;}}&lt;br /&gt;
:Controls the colour coefficients and scaling factors used in RGB&amp;amp;harr;YUV conversions.&lt;br /&gt;
:*&amp;quot;Rec601&amp;quot;&amp;amp;nbsp; : Uses Rec.601 coefficients; scale full range [0{{D}}..255{{D}}] RGB &amp;amp;harr; TV range [16{{D}}..235{{D}}] YUV.&lt;br /&gt;
:*&amp;quot;Rec709&amp;quot;&amp;amp;nbsp; : Uses Rec.709 (HD) coefficients; scale full range RGB &amp;amp;harr; TV range YUV.&lt;br /&gt;
:*&amp;quot;Rec2020&amp;quot; : Uses Rec.2020 (UHD) coefficients; scale full range RGB &amp;amp;harr; TV range YUV. {{AvsPluscon}}&lt;br /&gt;
:*&amp;quot;PC.601&amp;quot;&amp;amp;nbsp; : Uses Rec.601 coefficients; keep range unchanged.&lt;br /&gt;
:*&amp;quot;PC.709&amp;quot;&amp;amp;nbsp; : Uses Rec.709 (HD) coefficients; keep range unchanged.&lt;br /&gt;
:*&amp;quot;Average&amp;quot;&amp;amp;nbsp; : Uses averaged coefficients (the luma becomes the average of the RGB channels); keep range unchanged.&lt;br /&gt;
&lt;br /&gt;
{{HiddenH5|Interlaced}}&lt;br /&gt;
{{Par2|interlaced|bool|false}}&lt;br /&gt;
:If true, it is assumed that {{FuncArg|clip}} is interlaced; by default, it is assumed to be progressive. &lt;br /&gt;
:This option is needed because for example, the following (assuming clip is interlaced YV12): &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|28|2}} &amp;gt;&lt;br /&gt;
 [[SeparateFields]](clip)&lt;br /&gt;
 ConvertToYUY2&lt;br /&gt;
 [[Weave]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
:...is upsampled incorrectly. Instead it is better to use:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|28|2}} &amp;gt;&lt;br /&gt;
 ConvertToYUY2(clip, interlaced=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
:Note, {{FuncArg|interlaced}}=true has an effect only on YV12&amp;amp;harr;YUY2 or YV12&amp;amp;harr;RGB conversions. More about that can be found [[Interlaced fieldbased|'''here''']].&lt;br /&gt;
&lt;br /&gt;
{{HiddenH5|Chroma placement}}&lt;br /&gt;
{{Par2|ChromaInPlacement|string|&amp;quot;MPEG2&amp;quot;}}&lt;br /&gt;
{{Par2|ChromaOutPlacement|string|&amp;quot;MPEG2&amp;quot;}}&lt;br /&gt;
:{{FuncArg|ChromaInPlacement}} determines the chroma placement in the clip when converting ''from'' YV12.&lt;br /&gt;
:{{FuncArg|ChromaOutPlacement}} determines the chroma placement in the clip when converting ''to'' YV12.&lt;br /&gt;
:The placement can be one of these strings:&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;MPEG2&amp;quot;&amp;amp;nbsp;&lt;br /&gt;
|Subsampling used in MPEG-2 4:2:''x'' and most other formats. Chroma samples are located on the left pixel column of the group&amp;amp;nbsp;(default). &lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;MPEG1&amp;quot;&lt;br /&gt;
|Subsampling used in MPEG-1 4:2:0. Chroma samples are located on the center of each group of 4 pixels.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;DV&amp;quot;&lt;br /&gt;
| Like MPEG-2, but U and V channels are “co-sited” vertically: V on the top row, and U on the bottom row. For 4:1:1, chroma is located on the leftmost column.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{HiddenH5|Chroma resample}}&lt;br /&gt;
{{Par2|chromaresample|string|&amp;quot;bicubic&amp;quot;}}&lt;br /&gt;
:Determines which chroma resampler is used in the conversion. Only used when the chroma resolutions of the source and target are different. All AviSynth [[Resize|resizers]] are allowed (&amp;quot;point&amp;quot;, &amp;quot;bilinear&amp;quot;, &amp;quot;bicubic&amp;quot;, &amp;quot;lanczos&amp;quot;, &amp;quot;lanczos4&amp;quot;, &amp;quot;blackman&amp;quot;, &amp;quot;spline16&amp;quot;, &amp;quot;spline36&amp;quot;, &amp;quot;spline64&amp;quot;, &amp;quot;gauss&amp;quot; and &amp;quot;sinc&amp;quot;). Default is &amp;quot;bicubic&amp;quot;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
===== Conversion paths =====&lt;br /&gt;
&lt;br /&gt;
:In v2.60 the following conversion paths occur:&lt;br /&gt;
:* YUV planar &amp;amp;rarr; RGB via YV24&lt;br /&gt;
:* YUV planar &amp;amp;rarr; YUY2 via YV16 &lt;br /&gt;
::(except for YV12 and chroma options listed above not explicitly set; in that case there is a direct conversion from YV12 to YUY2)&lt;br /&gt;
:* RGB &amp;amp;rarr; YUV planar via YV24&lt;br /&gt;
:* YUY2 &amp;amp;rarr; YUV planar via YV16 &lt;br /&gt;
::(except for YV12 and chroma options listed above not explicitly set; in that case there is a direct conversion from YUY2 to YV12)&lt;br /&gt;
&lt;br /&gt;
: The chroma options {{FuncArg|chromaresample}}, {{FuncArg|ChromaInPlacement}} and {{FuncArg|ChromaOutPlacement}} are only used in the 'planar conversion' part of the conversion path.&lt;br /&gt;
&lt;br /&gt;
:Suppose you have a YUY2 clip for example and you convert it to YV24. The YUY2 will be converted to YV16 first without applying the chroma options. Then YV16 will be converted to YV24 while applying {{FuncArg|chromaresample}}. Since YV12 is not involved, {{FuncArg|ChromaInPlacement}} and {{FuncArg|ChromaOutPlacement}} won't be used.&lt;br /&gt;
&lt;br /&gt;
===== Sampling =====&lt;br /&gt;
&lt;br /&gt;
:[[Sampling|'''[This page]''']] covers the sampling methods and color formats in more detail.&lt;br /&gt;
&lt;br /&gt;
===== Color conversions =====&lt;br /&gt;
&lt;br /&gt;
:[[Color_conversions|'''[This page]''']] covers the color conversions in more detail.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Changelog ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| Added ConvertToY8, ConvertToYV411, ConvertToYV16, ConvertToYV24, ChromaInPlacement, ChromaOutPlacement, chromaresample, matrix=&amp;quot;AVERAGE&amp;quot;.&lt;br /&gt;
|- &lt;br /&gt;
| v2.50&lt;br /&gt;
| Added ConvertToYV12.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Colourspace_Conversion]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ColorYUV</id>
		<title>ColorYUV</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ColorYUV"/>
				<updated>2018-03-05T23:26:21Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
'''ColorYUV''' has many different methods of changing the color and luminance of your images. Gain, offset, gamma and contrast can be set independently on each channel. Also included are two 'auto' modes, an analysis function and a color gamut generator.&lt;br /&gt;
&lt;br /&gt;
All settings for this filter are optional. All values are defaulting to &amp;quot;0&amp;quot; or false. &lt;br /&gt;
&lt;br /&gt;
[[RGBAdjust]] works in a similar manner for [[RGB]] clips.&lt;br /&gt;
&lt;br /&gt;
* In AviSynth 2.6, all [[YUV]] color formats are supported ([[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]] and [[YUY2]])&lt;br /&gt;
* {{AvsPluscon}} all [[YUV]] and [[YUVA]] color formats are supported, including [[Float_(color_format)|Float]].&lt;br /&gt;
* {{AvsPluscon}} all relevant parameters are [[Autoscale_parameter|autoscaling]] &amp;amp;ndash; they work without changes at all bit depths.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax and Parameters ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ColorYUV(clip [, &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_y'', float ''off_y'', float ''gamma_y'', float ''cont_y'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_u'', float ''off_u'', float ''gamma_u'', float ''cont_u'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_v'', float ''off_v'', float ''gamma_v'', float ''cont_v'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''levels'', string ''opt'', bool ''showyuv'', bool ''analyze'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''autowhite'', bool ''autogain'', bool ''conditional'' ] )}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ColorYUV(clip [, &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_y'', float ''off_y'', float ''gamma_y'', float ''cont_y'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_u'', float ''off_u'', float ''gamma_u'', float ''cont_u'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_v'', float ''off_v'', float ''gamma_v'', float ''cont_v'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''levels'', string ''opt'', bool ''showyuv'', bool ''analyze'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''autowhite'', bool ''autogain'', bool ''conditional'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''bits'', bool ''showyuv_fullrange'', bool ''f2c'' ] )}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gain_y|float|0}}&lt;br /&gt;
:{{Par2|gain_u|float|0}}&lt;br /&gt;
:{{Par2|gain_v|float|0}}&lt;br /&gt;
::A multiplier for the ''Y'', ''U'' or ''V'' value. &lt;br /&gt;
::If {{FuncArg|gain_y}} = {{Serif|''k''}}, then ''Y'' becomes ''Y'' '''·''' ({{Serif|''k''}} / 256 + 1) – for example:&lt;br /&gt;
::('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|gain_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| multiplier&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.0 (no output)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (darker)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (brighter)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|}&lt;br /&gt;
::*{{FuncArg|gain_}}''x'' is valid down to -256, where a gain of 0.0 is applied. &lt;br /&gt;
::*Although it is possible, it doesn't make sense to apply this setting to the chroma of the signal.&lt;br /&gt;
::*In order to confuse you, in the filter [[Tweak]] this setting is called ''contrast''. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|off_y|float|0}}&lt;br /&gt;
:{{Par2|off_u|float|0}}&lt;br /&gt;
:{{Par2|off_v|float|0}}&lt;br /&gt;
::Adds an ''offset'' to the luma or chroma values. &lt;br /&gt;
::*An {{FuncArg|off_}}''x'' of 16 will add 16{{D}} to all pixel values.  &lt;br /&gt;
::*An {{FuncArg|off_}}''x'' of -32 will subtract 32{{D}} from all pixel values.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gamma_y|float|0}}&lt;br /&gt;
:{{Par2|gamma_u|float|0}}&lt;br /&gt;
:{{Par2|gamma_v|float|0}}&lt;br /&gt;
::Adjusts [[Wikipedia:Gamma_correction|gamma]] of the specified channel, &lt;br /&gt;
:: as ''X''{{Sup2|(1/{{Template:Serif|g}})}} where {{Serif|''g''}}=({{FuncArg|gamma_}}''x'' + 256) / 256 &amp;amp;ndash; for example: &lt;br /&gt;
:: ('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|gamma_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| gamma&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.01&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (darker)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (lighter)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|}&lt;br /&gt;
::*{{FuncArg|gamma_}}''x'' is valid down to -256, where a minimal gamma of 0.01 is applied (gamma cannot be zero)&lt;br /&gt;
::*'''Note:''' gamma for chroma is not implemented (''gamma_u'' and ''gamma_v'' are dummy parameters).&lt;br /&gt;
::*{{AvsPluscon}} will operate on TV range instead of the default PC range when the input clip is known to be in TV range: &lt;br /&gt;
:::*{{FuncArg|levels}}=&amp;quot;TV-&amp;gt;PC&amp;quot;, or {{FuncArg|levels}}=&amp;quot;TV&amp;quot;,  &lt;br /&gt;
:::*or {{FuncArg|opt}}=&amp;quot;coring&amp;quot; and {{FuncArg|levels}} is ''not'' &amp;quot;PC-&amp;gt;TV&amp;quot; or &amp;quot;PC-&amp;gt;TV.Y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{{Par2|cont_y|float|0}}&lt;br /&gt;
:{{Par2|cont_u|float|0}}&lt;br /&gt;
:{{Par2|cont_v|float|0}}&lt;br /&gt;
::Like {{FuncArg|gain_}}''X'', a multiplier for the value, but stretches or shrinks the signal from the center (128{{D}}). &lt;br /&gt;
::This is most useful for the chroma components, where it translates to saturation. &lt;br /&gt;
::If {{FuncArg|cont_y}} = {{Serif|''k''}}, then ''Y'' becomes (''Y''-128) '''·''' {{Serif|''k''}} / 256 + 128 &amp;amp;ndash; for example:&lt;br /&gt;
:: ('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|cont_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| contrast&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.0 (zero contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (less contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (more contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|} &lt;br /&gt;
::*{{FuncArg|cont_}}''x'' is valid down to -256, where the signal is set to 128{{D}}. &lt;br /&gt;
::*Although it is possible, it doesn't make sense to apply this setting to the luma of the signal.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|levels|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Can be &amp;quot;&amp;lt;tt&amp;gt;TV-&amp;gt;PC&amp;lt;/tt&amp;gt;&amp;quot;, &amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot;, &amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV.Y&amp;lt;/tt&amp;gt;&amp;quot; or nothing (default)&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;TV-&amp;gt;PC&amp;lt;/tt&amp;gt;&amp;quot;, a 16{{D}}-235{{D}} &amp;amp;rarr; 0{{D}}-255{{D}} (contrast increasing) conversion is made&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot;, a 0{{D}}-255{{D}} &amp;amp;rarr; 16{{D}}-235{{D}} (contrast decreasing) conversion is made&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV.Y&amp;lt;/tt&amp;gt;&amp;quot;, a 0{{D}}-255{{D}} &amp;amp;rarr; 16{{D}}-235{{D}} (contrast decreasing) conversion is made, on luma channel only&lt;br /&gt;
::*By default, no conversion is made&lt;br /&gt;
::{{AvsPluscon}} adds &amp;quot;&amp;lt;tt&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot;, which does no conversion; it only tells the filter that {{FuncArg|gamma}}''_x'' will operate on a TV range clip.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|opt|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Can be either &amp;quot;coring&amp;quot; or &amp;quot;&amp;quot; (nothing, default setting). &lt;br /&gt;
::Specifying &amp;quot;coring&amp;quot; will clip your YUV values to the &amp;quot;TV&amp;quot; range (luma 16{{D}}-235{{D}}, chroma 16{{D}}-240{{D}}). Otherwise values outside that range will be accepted.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|showyuv|bool|false}}&lt;br /&gt;
::If ''true, ''this option will overwrite your image with a new 448x448 image showing all chroma values along the two axes. This can be useful if you need to adjust the color of your image, but need to know how the colors are arranged.  At the top left of the image, the chroma values are 16{{D}}. At the right side of the image, U is at maximum.  At the bottom of the screen V is at its maximum.  In the middle both chroma is 128{{D}} (or grey). See example image [[#Examples:|below]].&lt;br /&gt;
::{{AvsPluscon}} Size changes depending on options selected &amp;amp;ndash; see {{FuncArg|showyuv_fullrange}} below&lt;br /&gt;
::If {{FuncArg|bits}}=8, output colorspace is [[YV12]], else colorspace is [[Avisynthplus_color_formats|YUV422P16]].&lt;br /&gt;
&lt;br /&gt;
:{{Par2|analyze|bool|false}}&lt;br /&gt;
::If true, '''ColorYUV''' will print color channel statistics on the screen (see [[#analyze|example below]])&lt;br /&gt;
::*There is an '''Average''' for all channels. &lt;br /&gt;
::*There are '''Minimum''' and '''Maximum''' values for all channels. &lt;br /&gt;
::*There is '''Loose Minimum''' and '''Loose Maximum''' which ignore the brightest and darkest 0.4% (1/256) pixels.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|autowhite|bool|false}}&lt;br /&gt;
::If ''true, ''this option will use the information from the analyzer, and attempt to center the color offsets. If you have recorded some material, where the colors are shifted toward one color, this filter may help. But be careful - it isn't very intelligent - if your material is a clear blue sky, {{FuncArg|autowhite}} will make it completely grey! This option overrides {{FuncArg|off_u|}} and {{FuncArg|off_v}}.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|autogain|bool|false}}&lt;br /&gt;
::If ''true, ''this option will use the information from the analyzer, and attempt to create as good contrast as possible. That means, it will scale up the ''Y ''(luma) values to match the minimum and maximum values. This will make it act like an &amp;quot;autogain&amp;quot; setting on cameras, amplifying dark scenes very much, while leaving scenes with good contrast alone. Some places this is also referred to as &amp;quot;autolevels&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|conditional|bool|false}}&lt;br /&gt;
::See the [[#Conditional_Variables|Conditional Variables]] section for an overview of the conditional variables and their use with '''ColorYUV'''. If ''false'' (the default), '''ColorYUV''' will ignore any conditional variables.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|bits|int|8}}&lt;br /&gt;
::{{AvsPluscon}} Sets the bit depth of {{FuncArg|showyuv}} output. Must be 8, 10, 12, 14 or 16.&lt;br /&gt;
::Size changes depending on options selected &amp;amp;ndash; see next item. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|showyuv_fullrange|bool|false}}&lt;br /&gt;
::{{AvsPluscon}} If ''true,'' {{FuncArg|showyuv}} output is full range instead of TV range.&lt;br /&gt;
::At {{FuncArg|bits}}=8, size of the generated clip grows from 450x450 to 512x512. &lt;br /&gt;
::At {{FuncArg|bits}}&amp;gt;8, size of the generated clip grows from 1800x1800 to 2048x2048. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|f2c|bool|false}}&lt;br /&gt;
::{{AvsPluscon}} If ''true,'' perform [[#Parameter Rescaling|''parameter rescaling'']] as described below on all '''cont_'''''x'', '''gain_'''''x'' and '''gamma_'''''x''  arguments.&lt;br /&gt;
::For example, with {{FuncArg|f2c}}=''true'', {{FuncArg|cont_u}}=1.2 results in a 20% increase in ''U'' channel &amp;quot;saturation&amp;quot;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameter Rescaling==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
The quantities ''saturation'', ''contrast'' and ''brightness'' (as in [[Tweak]] for example) are connected with quantities in this filter by the following equations:&lt;br /&gt;
* {{FuncArg|cont_u}} = {{FuncArg|cont_v}} &amp;amp;#0061; ({{BoldColor|darkblue|100|sat}}-1) * 256&lt;br /&gt;
* {{FuncArg|gain_y}} = ({{BoldColor|darkblue|100|cont}}-1) * 256&lt;br /&gt;
* {{FuncArg|off_y}} = {{BoldColor|darkblue|100|bright}}&lt;br /&gt;
A saturation of 0.8 gives for example: cont_u = cont_v = -0.2 * 256 = -51.2. &lt;br /&gt;
&lt;br /&gt;
Note that in [[Tweak]] your YUV values will always be clipped to valid TV-ranges, but here you have to specify {{FuncArg|opt}}=&amp;quot;coring&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can add a simple [[User_defined_script_functions|user function]] to rescale or translate from familiar &amp;quot;Tweak-like&amp;quot; units to ColorYUV units:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|60|2}} &amp;gt;&lt;br /&gt;
 function f2c(float f) {&lt;br /&gt;
     return (f - 1.0) * 256.0&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 ## usage example: &lt;br /&gt;
 ColorYUV(gain_y=f2c({{BoldColor|blue|100|2.0}}), cont_u=f2c({{BoldColor|blue|100|1.2}}), cont_v=f2c({{BoldColor|blue|100|0.8}})) &lt;br /&gt;
 &lt;br /&gt;
 ## that is, gain is 200%, and contrast (saturation) &lt;br /&gt;
 ## is +20% in the U channel, -20% in the V channel.  &lt;br /&gt;
 &lt;br /&gt;
 ## ...which specified normally, would look like this: &lt;br /&gt;
 ColorYUV(gain_y={{BoldColor|blue|100|256}}, cont_u={{BoldColor|blue|100|51.2}}, cont_v={{BoldColor|blue|100|-51.2}})&lt;br /&gt;
&lt;br /&gt;
 ## AVS+ users can rescale these arguments with the '''f2c''' option.  &lt;br /&gt;
 ColorYUV(gain_y={{BoldColor|blue|100|2.0}}, cont_u={{BoldColor|blue|100|1.2}}, cont_v={{BoldColor|blue|100|0.8}}, {{FuncArg|f2c}}=true) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Variables ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
The global variables &amp;quot;coloryuv_xxx&amp;quot; with xxx = gain_y, gain_u, gain_v, bright_y, bright_u, bright_v, gamma_y, contrast_y, contrast_u or contrast_v are read each frame, and applied. It is possible to modify these variables using [[FrameEvaluate]] or [[ConditionalReader]]. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
coloryuvoffset.txt:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Type float&lt;br /&gt;
 Default 0.0&lt;br /&gt;
 &lt;br /&gt;
 I 25 50 0.0 255.0&lt;br /&gt;
 R 75 225 128.0&lt;br /&gt;
 I 250 275 255.0 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the script:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Colorbars(512,256).ConvertToYV12.Trim(0,299)&lt;br /&gt;
 ColorYUV(cont_y=10, conditional=true)&lt;br /&gt;
 ConditionalReader(&amp;quot;coloryuvoffset.txt&amp;quot;, &amp;quot;coloryuv_gain_y&amp;quot;, false)&lt;br /&gt;
 ShowFrameNumber()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So up to frame 25 gain_y is equal to the default (which is 0.0), for frame 25 up to 50 the gain_y is increased from 0.0 to 255.0, etc ...&lt;br /&gt;
&lt;br /&gt;
There are more examples of conditional modification at the [[ConditionalReader]] page.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* Adjust ''Y ''(luma) gamma and offset (brightness), while increasing chroma ''U ''(yellow-blue) offset (away from yellow and toward blue)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(gamma_y=128, off_y=-16, off_u=5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{FuncArg|autogain}} and {{FuncArg|autowhite}}: recovers visibility on &amp;quot;very bad&amp;quot; recordings:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(autogain=true, autowhite=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{FuncArg|showyuv}}: show all colors in the [[YUV]] space. Requires a YUV clip as input. &lt;br /&gt;
:Returns a [[YV12]], 448x448 clip with source frame rate, duration and audio.&lt;br /&gt;
:'''Note''', not all colors are convertible to RGB - see [http://forum.doom9.org/showthread.php?t=154731 this discussion on doom9].&lt;br /&gt;
:''U ''values run 16{{D}}-239{{D}}, left to right, and ''V'' values run from 16{{D}}-239{{D}}, top to bottom. &lt;br /&gt;
:Frame 0 luma is 16{{D}}, frame 1 luma is 17{{D}} and so on.&lt;br /&gt;
:{{AvsPluscon}} Size changes depending on options selected: &lt;br /&gt;
:*By default size is 450x450. &lt;br /&gt;
:*With {{FuncArg|showyuv_fullrange}}=true, size is 512x512. &lt;br /&gt;
:*With {{FuncArg|bits}}=10, width and height are both multiplied by 4. &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(showyuv=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
::[[File:ColorYUV(showyuv%3Dtrue)_fr175.png|224px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Adjusting {{FuncArg|off_u}} and {{FuncArg|off_v}} to remove color cast (reduce yellow and magenta tints):&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 [[ImageSource]](&amp;quot;[[:File:Lenna.png|Lenna.png]]&amp;quot;)&lt;br /&gt;
 [[BicubicResize]](Width/2, Height/2)&lt;br /&gt;
 ColorYUV(off_u=+6, off_v=-23)&lt;br /&gt;
 [[Histogram#Levels_mode|Histogram]](&amp;quot;levels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
::[[File:Lenna-256x256-HistogramLevels-original.png]]&lt;br /&gt;
::''(before)''&lt;br /&gt;
::[[File:Lenna-256x256-HistogramLevels-ColorYUV-1.png]]&lt;br /&gt;
::''(after; note the ''U '' and ''V'' range is moved towards the center)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Demonstrating {{FuncArg|analyze}} output:&lt;br /&gt;
&amp;lt;div id=&amp;quot;analyze&amp;quot; style=&amp;quot;display:inline;font-size:50%;height:0;line-height:0;overflow:hidden;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|2}} &amp;gt;&lt;br /&gt;
 [[FFmpegSource|FFmpegSource2]](&amp;quot;[http://www.sintel.org/ sintel].mp4&amp;quot;)&lt;br /&gt;
 [[BicubicResize]](546, 272)&lt;br /&gt;
 ColorYUV(analyze=true)&lt;br /&gt;
[[File:ColorYUV_analyze_Ex1.jpg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.6&lt;br /&gt;
| Added conditional option&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Levels and Chroma filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ColorYUV</id>
		<title>ColorYUV</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ColorYUV"/>
				<updated>2018-03-05T22:54:36Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: touch up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
'''ColorYUV''' has many different methods of changing the color and luminance of your images. Gain, offset, gamma and contrast can be set independently on each channel. Also included are two 'auto' modes, an analysis function and a color gamut generator.&lt;br /&gt;
&lt;br /&gt;
All settings for this filter are optional. All values are defaulting to &amp;quot;0&amp;quot; or false. &lt;br /&gt;
&lt;br /&gt;
[[RGBAdjust]] works in a similar manner for [[RGB]] clips.&lt;br /&gt;
&lt;br /&gt;
* In AviSynth 2.6, all [[YUV]] color formats are supported ([[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]] and [[YUY2]])&lt;br /&gt;
* {{AvsPluscon}} all [[YUV]] and [[YUVA]] color formats are supported, including [[Float_(color_format)|Float]].&lt;br /&gt;
* {{AvsPluscon}} all relevant parameters are [[Autoscale_parameter|autoscaling]] &amp;amp;ndash; they work without changes at all bit depths.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax and Parameters ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ColorYUV(clip [, &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_y'', float ''off_y'', float ''gamma_y'', float ''cont_y'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_u'', float ''off_u'', float ''gamma_u'', float ''cont_u'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_v'', float ''off_v'', float ''gamma_v'', float ''cont_v'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''levels'', string ''opt'', bool ''showyuv'', bool ''analyze'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''autowhite'', bool ''autogain'', bool ''conditional'' ] )}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ColorYUV(clip [, &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_y'', float ''off_y'', float ''gamma_y'', float ''cont_y'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_u'', float ''off_u'', float ''gamma_u'', float ''cont_u'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_v'', float ''off_v'', float ''gamma_v'', float ''cont_v'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''levels'', string ''opt'', bool ''showyuv'', bool ''analyze'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''autowhite'', bool ''autogain'', bool ''conditional'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''bits'', bool ''showyuv_fullrange'', bool ''f2c'' ] )}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gain_y|float|0}}&lt;br /&gt;
:{{Par2|gain_u|float|0}}&lt;br /&gt;
:{{Par2|gain_v|float|0}}&lt;br /&gt;
::A multiplier for the ''Y'', ''U'' or ''V'' value. &lt;br /&gt;
::If {{FuncArg|gain_y}} = {{Serif|''k''}}, then ''Y'' becomes ''Y'' '''·''' ({{Serif|''k''}} / 256 + 1) – for example:&lt;br /&gt;
::('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|gain_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| multiplier&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.0 (no output)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (darker)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (brighter)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|}&lt;br /&gt;
::*{{FuncArg|gain_}}''x'' is valid down to -256, where a gain of 0.0 is applied. &lt;br /&gt;
::*Although it is possible, it doesn't make sense to apply this setting to the chroma of the signal.&lt;br /&gt;
::*In order to confuse you, in the filter [[Tweak]] this setting is called ''contrast''. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|off_y|float|0}}&lt;br /&gt;
:{{Par2|off_u|float|0}}&lt;br /&gt;
:{{Par2|off_v|float|0}}&lt;br /&gt;
::Adds an ''offset'' to the luma or chroma values. &lt;br /&gt;
::*An {{FuncArg|off_}}''x'' of 16 will add 16{{D}} to all pixel values.  &lt;br /&gt;
::*An {{FuncArg|off_}}''x'' of -32 will subtract 32{{D}} from all pixel values.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gamma_y|float|0}}&lt;br /&gt;
:{{Par2|gamma_u|float|0}}&lt;br /&gt;
:{{Par2|gamma_v|float|0}}&lt;br /&gt;
::Adjusts [[Wikipedia:Gamma_correction|gamma]] of the specified channel, &lt;br /&gt;
:: as ''X''{{Sup2|(1/{{Template:Serif|g}})}} where {{Serif|''g''}}=({{FuncArg|gamma_}}''x'' + 256) / 256 &amp;amp;ndash; for example: &lt;br /&gt;
:: ('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|gamma_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| gamma&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.01&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (darker)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (lighter)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|}&lt;br /&gt;
::*{{FuncArg|gamma_}}''x'' is valid down to -256, where a minimal gamma of 0.01 is applied (gamma cannot be zero)&lt;br /&gt;
::*'''Note:''' gamma for chroma is not implemented (''gamma_u'' and ''gamma_v'' are dummy parameters).&lt;br /&gt;
::*{{AvsPluscon}} will operate on TV range instead of the default PC range when the input clip is known to be in TV range: &lt;br /&gt;
:::*{{FuncArg|levels}}=&amp;quot;TV-&amp;gt;PC&amp;quot;, or {{FuncArg|levels}}=&amp;quot;TV&amp;quot;,  &lt;br /&gt;
:::*or {{FuncArg|opt}}=&amp;quot;coring&amp;quot; and {{FuncArg|levels}} is ''not'' &amp;quot;PC-&amp;gt;TV&amp;quot; or &amp;quot;PC-&amp;gt;TV.Y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:{{Par2|cont_y|float|0}}&lt;br /&gt;
:{{Par2|cont_u|float|0}}&lt;br /&gt;
:{{Par2|cont_v|float|0}}&lt;br /&gt;
::Like {{FuncArg|gain_}}''X'', a multiplier for the value, but stretches or shrinks the signal from the center (128{{D}}). &lt;br /&gt;
::This is most useful for the chroma components, where it translates to saturation. &lt;br /&gt;
::If {{FuncArg|cont_y}} = {{Serif|''k''}}, then ''Y'' becomes (''Y''-128) '''·''' {{Serif|''k''}} / 256 + 128 &amp;amp;ndash; for example:&lt;br /&gt;
:: ('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|cont_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| contrast&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.0 (zero contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (less contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (more contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|} &lt;br /&gt;
::*{{FuncArg|cont_}}''x'' is valid down to -256, where the signal is set to 128{{D}}. &lt;br /&gt;
::*Although it is possible, it doesn't make sense to apply this setting to the luma of the signal.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|levels|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Can be &amp;quot;&amp;lt;tt&amp;gt;TV-&amp;gt;PC&amp;lt;/tt&amp;gt;&amp;quot;, &amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot;, &amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV.Y&amp;lt;/tt&amp;gt;&amp;quot; or nothing (default)&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;TV-&amp;gt;PC&amp;lt;/tt&amp;gt;&amp;quot;, a 16{{D}}-235{{D}} &amp;amp;rarr; 0{{D}}-255{{D}} (contrast increasing) conversion is made&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot;, a 0{{D}}-255{{D}} &amp;amp;rarr; 16{{D}}-235{{D}} (contrast decreasing) conversion is made&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV.Y&amp;lt;/tt&amp;gt;&amp;quot;, a 0{{D}}-255{{D}} &amp;amp;rarr; 16{{D}}-235{{D}} (contrast decreasing) conversion is made, on luma channel only&lt;br /&gt;
::*By default, no conversion is made&lt;br /&gt;
::{{AvsPluscon}} adds &amp;quot;&amp;lt;tt&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot;, which does no conversion; it only tells the filter that {{FuncArg|gamma}}''_x'' will operate on a TV range clip.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|opt|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Can be either &amp;quot;coring&amp;quot; or &amp;quot;&amp;quot; (nothing, default setting). &lt;br /&gt;
::Specifying &amp;quot;coring&amp;quot; will clip your YUV values to the &amp;quot;TV&amp;quot; range (luma 16{{D}}-235{{D}}, chroma 16{{D}}-240{{D}}). Otherwise values outside that range will be accepted.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|showyuv|bool|false}}&lt;br /&gt;
::If ''true, ''this option will overwrite your image with a new 448x448 image showing all chroma values along the two axes. This can be useful if you need to adjust the color of your image, but need to know how the colors are arranged.  At the top left of the image, the chroma values are 16{{D}}. At the right side of the image, U is at maximum.  At the bottom of the screen V is at its maximum.  In the middle both chroma is 128{{D}} (or grey). See example image [[#Examples:|below]].&lt;br /&gt;
::{{AvsPluscon}} Size changes depending on options selected &amp;amp;ndash; see {{FuncArg|showyuv_fullrange}} below&lt;br /&gt;
::If {{FuncArg|bits}}=8, output colorspace is [[YV12]], else colorspace is [[Avisynthplus_color_formats|YUV422P16]].&lt;br /&gt;
&lt;br /&gt;
:{{Par2|analyze|bool|false}}&lt;br /&gt;
::If true, '''ColorYUV''' will print color channel statistics on the screen (see [[#analyze|example below]])&lt;br /&gt;
::*There is an '''Average''' for all channels. &lt;br /&gt;
::*There are '''Minimum''' and '''Maximum''' values for all channels. &lt;br /&gt;
::*There is '''Loose Minimum''' and '''Loose Maximum''' which ignore the brightest and darkest 0.4% (1/256) pixels.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|autowhite|bool|false}}&lt;br /&gt;
::If ''true, ''this option will use the information from the analyzer, and attempt to center the color offsets. If you have recorded some material, where the colors are shifted toward one color, this filter may help. But be careful - it isn't very intelligent - if your material is a clear blue sky, {{FuncArg|autowhite}} will make it completely grey! This option overrides {{FuncArg|off_u|}} and {{FuncArg|off_v}}.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|autogain|bool|false}}&lt;br /&gt;
::If ''true, ''this option will use the information from the analyzer, and attempt to create as good contrast as possible. That means, it will scale up the ''Y ''(luma) values to match the minimum and maximum values. This will make it act like an &amp;quot;autogain&amp;quot; setting on cameras, amplifying dark scenes very much, while leaving scenes with good contrast alone. Some places this is also referred to as &amp;quot;autolevels&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|conditional|bool|false}}&lt;br /&gt;
::See the [[#Conditional_Variables|Conditional Variables]] section for an overview of the conditional variables and their use with '''ColorYUV'''. If ''false'' (the default), '''ColorYUV''' will ignore any conditional variables.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|bits|int|8}}&lt;br /&gt;
::{{AvsPluscon}} Sets the bit depth of {{FuncArg|showyuv}} output. Must be 8, 10, 12, 14 or 16.&lt;br /&gt;
::Size changes depending on options selected &amp;amp;ndash; see next item. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|showyuv_fullrange|bool|false}}&lt;br /&gt;
::{{AvsPluscon}} If ''true,'' {{FuncArg|showyuv}} output is full range instead of TV range.&lt;br /&gt;
::At {{FuncArg|bits}}=8, size of the generated clip grows from 450x450 to 512x512. &lt;br /&gt;
::At {{FuncArg|bits}}&amp;gt;8, size of the generated clip grows from 1800x1800 to 2048x2048. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|f2c|bool|false}}&lt;br /&gt;
::{{AvsPluscon}} If ''true,'' perform [[#Parameter Rescaling|''parameter rescaling'']] as described below on all '''cont_'''''x'', '''gain_'''''x'' and '''gamma_'''''x''  arguments.&lt;br /&gt;
::For example, with {{FuncArg|f2c}}=''true'', {{FuncArg|cont_u}}=1.2 results in a 20% increase in ''U'' channel &amp;quot;saturation&amp;quot;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameter Rescaling==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
The quantities ''saturation'', ''contrast'' and ''brightness'' (as in [[Tweak]] for example) are connected with quantities in this filter by the following equations:&lt;br /&gt;
* {{FuncArg|cont_u}} = {{FuncArg|cont_v}} &amp;amp;#0061; ({{BoldColor|darkblue|100|sat}}-1) * 256&lt;br /&gt;
* {{FuncArg|gain_y}} = ({{BoldColor|darkblue|100|cont}}-1) * 256&lt;br /&gt;
* {{FuncArg|off_y}} = {{BoldColor|darkblue|100|bright}}&lt;br /&gt;
A saturation of 0.8 gives for example: cont_u = cont_v = -0.2 * 256 = -51.2. &lt;br /&gt;
&lt;br /&gt;
Note that in [[Tweak]] your YUV values will always be clipped to valid TV-ranges, but here you have to specify {{FuncArg|opt}}=&amp;quot;coring&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can add a simple [[User_defined_script_functions|user function]] to rescale or translate from familiar &amp;quot;Tweak-like&amp;quot; units to ColorYUV units:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|60|2}} &amp;gt;&lt;br /&gt;
 function f2c(float f) {&lt;br /&gt;
     return (f - 1.0) * 256.0&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 ## usage example: &lt;br /&gt;
 ColorYUV(gain_y=f2c({{BoldColor|blue|100|2.0}}), cont_u=f2c({{BoldColor|blue|100|1.2}}), cont_v=f2c({{BoldColor|blue|100|0.8}}) &lt;br /&gt;
 &lt;br /&gt;
 ## that is, gain is 200%, and contrast (saturation) &lt;br /&gt;
 ## is +20% in the U channel, -20% in the V channel.  &lt;br /&gt;
 &lt;br /&gt;
 ## ...which specified normally, would look like this: &lt;br /&gt;
 ColorYUV(gain_y={{BoldColor|blue|100|256}}, cont_u={{BoldColor|blue|100|51.2}}, cont_v={{BoldColor|blue|100|-51.2}})_&lt;br /&gt;
&lt;br /&gt;
 ## AVS+ users can rescale these arguments with the '''f2c''' option.  &lt;br /&gt;
 ColorYUV(gain_y={{BoldColor|blue|100|2.0}}, cont_u={{BoldColor|blue|100|1.2}}, cont_v={{BoldColor|blue|100|0.8}}, {{FuncArg|f2c}}=true) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Variables ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
The global variables &amp;quot;coloryuv_xxx&amp;quot; with xxx = gain_y, gain_u, gain_v, bright_y, bright_u, bright_v, gamma_y, contrast_y, contrast_u or contrast_v are read each frame, and applied. It is possible to modify these variables using [[FrameEvaluate]] or [[ConditionalReader]]. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
coloryuvoffset.txt:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Type float&lt;br /&gt;
 Default 0.0&lt;br /&gt;
 &lt;br /&gt;
 I 25 50 0.0 255.0&lt;br /&gt;
 R 75 225 128.0&lt;br /&gt;
 I 250 275 255.0 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the script:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Colorbars(512,256).ConvertToYV12.Trim(0,299)&lt;br /&gt;
 ColorYUV(cont_y=10, conditional=true)&lt;br /&gt;
 ConditionalReader(&amp;quot;coloryuvoffset.txt&amp;quot;, &amp;quot;coloryuv_gain_y&amp;quot;, false)&lt;br /&gt;
 ShowFrameNumber()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So up to frame 25 gain_y is equal to the default (which is 0.0), for frame 25 up to 50 the gain_y is increased from 0.0 to 255.0, etc ...&lt;br /&gt;
&lt;br /&gt;
There are more examples of conditional modification at the [[ConditionalReader]] page.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* Adjust ''Y ''(luma) gamma and offset (brightness), while increasing chroma ''U ''(yellow-blue) offset (away from yellow and toward blue)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(gamma_y=128, off_y=-16, off_u=5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{FuncArg|autogain}} and {{FuncArg|autowhite}}: recovers visibility on &amp;quot;very bad&amp;quot; recordings:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(autogain=true, autowhite=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{FuncArg|showyuv}}: show all colors in the [[YUV]] space. Requires a YUV clip as input. &lt;br /&gt;
:Returns a [[YV12]], 448x448 clip with source frame rate, duration and audio.&lt;br /&gt;
:'''Note''', not all colors are convertible to RGB - see [http://forum.doom9.org/showthread.php?t=154731 this discussion on doom9].&lt;br /&gt;
:''U ''values run 16{{D}}-239{{D}}, left to right, and ''V'' values run from 16{{D}}-239{{D}}, top to bottom. &lt;br /&gt;
:Frame 0 luma is 16{{D}}, frame 1 luma is 17{{D}} and so on.&lt;br /&gt;
:{{AvsPluscon}} Size changes depending on options selected: &lt;br /&gt;
:*By default size is 450x450. &lt;br /&gt;
:*With {{FuncArg|showyuv_fullrange}}=true, size is 512x512. &lt;br /&gt;
:*With {{FuncArg|bits}}=10, width and height are both multiplied by 4. &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(showyuv=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
::[[File:ColorYUV(showyuv%3Dtrue)_fr175.png|224px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Adjusting {{FuncArg|off_u}} and {{FuncArg|off_v}} to remove color cast (reduce yellow and magenta tints):&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 [[ImageSource]](&amp;quot;[[:File:Lenna.png|Lenna.png]]&amp;quot;)&lt;br /&gt;
 [[BicubicResize]](Width/2, Height/2)&lt;br /&gt;
 ColorYUV(off_u=+6, off_v=-23)&lt;br /&gt;
 [[Histogram#Levels_mode|Histogram]](&amp;quot;levels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
::[[File:Lenna-256x256-HistogramLevels-original.png]]&lt;br /&gt;
::''(before)''&lt;br /&gt;
::[[File:Lenna-256x256-HistogramLevels-ColorYUV-1.png]]&lt;br /&gt;
::''(after; note the ''U '' and ''V'' range is moved towards the center)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Demonstrating {{FuncArg|analyze}} output:&lt;br /&gt;
&amp;lt;div id=&amp;quot;analyze&amp;quot; style=&amp;quot;display:inline;font-size:50%;height:0;line-height:0;overflow:hidden;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|2}} &amp;gt;&lt;br /&gt;
 [[FFmpegSource|FFmpegSource2]](&amp;quot;[http://www.sintel.org/ sintel].mp4&amp;quot;)&lt;br /&gt;
 [[BicubicResize]](546, 272)&lt;br /&gt;
 ColorYUV(analyze=true)&lt;br /&gt;
[[File:ColorYUV_analyze_Ex1.jpg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.6&lt;br /&gt;
| Added conditional option&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Levels and Chroma filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ConvertBits</id>
		<title>ConvertBits</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ConvertBits"/>
				<updated>2018-03-05T01:34:45Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: update for AVS+ r2632 cont'd TODO: fulls, fulld&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;
{{AvsPlusFilter}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;!-- ==== Syntax and Parameters ==== --&amp;gt;&lt;br /&gt;
==== ConvertBits ====&lt;br /&gt;
Changes bit depth while keeping [[Avisynthplus_color_formats|color format]] the same, if possible. &amp;lt;br&amp;gt;&lt;br /&gt;
If the conversion is not possible &amp;amp;ndash; for example, converting [[RGB32]] to 16bit &amp;amp;ndash; an error is raised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertBits(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(older bit-depth conversion filters &amp;amp;ndash; deprecated)''&lt;br /&gt;
&lt;br /&gt;
{{Func3Def&lt;br /&gt;
|ConvertToFloat(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo16bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo8bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{{Par2||clip|(required)}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2||bits|(required)}}&lt;br /&gt;
::Bit depth of output clip. Valid values: ''8'', ''10'', ''12'', ''14'', ''16'' (integer) or ''32'' (floating point). &lt;br /&gt;
&lt;br /&gt;
:{{Par2|truerange|bool|true}}&lt;br /&gt;
::When converting from true 10-16 bit formats, {{FuncArg|truerange}}=false indicates bitdepth of 16 bits regardless of the 10-12-14 bit format. Not applicable for non planar formats.&lt;br /&gt;
&lt;br /&gt;
{{HiddenAnchor|dither}}&lt;br /&gt;
:{{Par2|dither|int|-1}}&lt;br /&gt;
::If ''0'', add [[Ordered_dithering|ordered dither]]; if ''-1'' (default), do not add dither.&lt;br /&gt;
::Dithering is allowed only for scaling down (bit depth reduction), not up.&lt;br /&gt;
::Dithering is allowed only for 10-16bit (not 32bit float) sources.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|dither_bits|int|{{Template:FuncArg|bits}}}}&lt;br /&gt;
::Exaggerated dither effect: dither to a lower color depth than required by {{FuncArg|bits}} argument.&lt;br /&gt;
::Has no effect if {{FuncArg|dither}}=''-1'' (off).&lt;br /&gt;
::* Must be an even number from ''2'' to {{FuncArg|bits}}, inclusive.&lt;br /&gt;
::* In addition, must be &amp;gt;= ({{FuncArg|clip}}.[[Clip_properties#Color_Format|BitsPerComponent]]-8).&lt;br /&gt;
:::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left&amp;quot;|''Examples''&lt;br /&gt;
!Conversion&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
!Allowed Values&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 12bit&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 10bit&lt;br /&gt;
|8, 10&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; 10bit&lt;br /&gt;
|6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|6, 8&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; 10bit&lt;br /&gt;
|4, 6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|4, 6, 8&lt;br /&gt;
|-&lt;br /&gt;
|10 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|2, 4, 6, 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulls|bool|(auto)}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::If ''true'' (RGB default), scale by multiplication: 0-255 &amp;amp;rarr; 0-65535;&lt;br /&gt;
::if ''false'' (YUV default), scale by [[wikipedia:Arithmetic_shift|bit-shifting]].&lt;br /&gt;
::Use case: override greyscale conversion to fullscale instead of bit-shifts.&lt;br /&gt;
::Conversion from and to float is always full-scale.&lt;br /&gt;
::Alpha plane is always treated as full scale.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulld|bool|{{Template:FuncArg|fulls}}}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::At the moment, ''must'' match {{FuncArg|fulls}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #combine greyscale clips into YUVA clip&lt;br /&gt;
 U8 = source.UToY8()&lt;br /&gt;
 V8 = source.VToY8()&lt;br /&gt;
 Y8 = source.ConvertToY()&lt;br /&gt;
 A8 = source.AddAlphaPlane(128).AToY8()&lt;br /&gt;
 CombinePlanes(Y8, U8, V8, A8, planes=&amp;quot;YUVA&amp;quot;, source_planes=&amp;quot;YYYY&amp;quot;, &lt;br /&gt;
 \               sample_clip=source) #pixel_type=&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 # Copy planes between planar RGB(A) and YUV(A) without any conversion&lt;br /&gt;
 # yuv 4:4:4 &amp;lt;-&amp;gt; planar rgb&lt;br /&gt;
 source = last.ConvertBits(32) # 4:4:4&lt;br /&gt;
 cast_to_planarrgb = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBPS&amp;quot;)&lt;br /&gt;
 # get back a clip identical with &amp;quot;source&amp;quot;&lt;br /&gt;
 cast_to_yuv = CombinePlanes(cast_to_planarrgb, planes=&amp;quot;YUV&amp;quot;, source_planes=&amp;quot;RGB&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;YUV444PS&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #create a black and white planar RGB clip using Y channel&lt;br /&gt;
 #source is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YYY&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBP8&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #copy luma from one clip, U and V from another&lt;br /&gt;
 #source is the template&lt;br /&gt;
 #sourceY is a Y or YUV clip&lt;br /&gt;
 #sourceUV is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(sourceY, sourceUV, planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               source_planes=&amp;quot;YUV&amp;quot;, sample_clip = source)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| 20170310 r2440&lt;br /&gt;
| parameter ''dither_bits''&lt;br /&gt;
|-&lt;br /&gt;
| 20170202 r2420&lt;br /&gt;
| parameters ''fulls'', ''fulld''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_filters]]&lt;br /&gt;
[[Category:Colourspace_Conversion]]&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;br /&gt;
[[Category:Avisynthplus]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ConvertBits</id>
		<title>ConvertBits</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ConvertBits"/>
				<updated>2018-03-05T01:30:23Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: update for AVS+ r2632&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;
{{AvsPlusFilter}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;!-- ==== Syntax and Parameters ==== --&amp;gt;&lt;br /&gt;
==== ConvertBits ====&lt;br /&gt;
Changes bit depth while keeping [[Avisynthplus_color_formats|color format]] the same, if possible. &amp;lt;br&amp;gt;&lt;br /&gt;
If the conversion is not possible &amp;amp;ndash; for example, converting [[RGB32]] to 16bit &amp;amp;ndash; an error is raised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertBits(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(older bit-depth conversion filters &amp;amp;ndash; deprecated)''&lt;br /&gt;
&lt;br /&gt;
{{Func3Def&lt;br /&gt;
|ConvertToFloat(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo16bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo8bit(clip, int bits [, bool ''truerange'', int ''dither'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{{Par2||clip|(required)}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2||bits|(required)}}&lt;br /&gt;
::Bit depth of output clip. Valid values: ''8'', ''10'', ''12'', ''14'', ''16'' (integer) or ''32'' (floating point). &lt;br /&gt;
&lt;br /&gt;
:{{Par2|truerange|bool|true}}&lt;br /&gt;
::''Deprecated &amp;amp;ndash; use the default value.''&lt;br /&gt;
&lt;br /&gt;
{{HiddenAnchor|dither}}&lt;br /&gt;
:{{Par2|dither|int|-1}}&lt;br /&gt;
::If ''0'', add [[Ordered_dithering|ordered dither]]; if ''-1'' (default), do not add dither.&lt;br /&gt;
::Dithering is allowed only for scaling down (bit depth reduction), not up.&lt;br /&gt;
::Dithering is allowed only for 10-16bit (not 32bit float) sources.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|dither_bits|int|{{Template:FuncArg|bits}}}}&lt;br /&gt;
::Exaggerated dither effect: dither to a lower color depth than required by {{FuncArg|bits}} argument.&lt;br /&gt;
::Has no effect if {{FuncArg|dither}}=''-1'' (off).&lt;br /&gt;
::* Must be an even number from ''2'' to {{FuncArg|bits}}, inclusive.&lt;br /&gt;
::* In addition, must be &amp;gt;= ({{FuncArg|clip}}.[[Clip_properties#Color_Format|BitsPerComponent]]-8).&lt;br /&gt;
:::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left&amp;quot;|''Examples''&lt;br /&gt;
!Conversion&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
!Allowed Values&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 12bit&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 10bit&lt;br /&gt;
|8, 10&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; 10bit&lt;br /&gt;
|6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|6, 8&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; 10bit&lt;br /&gt;
|4, 6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|4, 6, 8&lt;br /&gt;
|-&lt;br /&gt;
|10 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|2, 4, 6, 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulls|bool|(auto)}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::If ''true'' (RGB default), scale by multiplication: 0-255 &amp;amp;rarr; 0-65535;&lt;br /&gt;
::if ''false'' (YUV default), scale by [[wikipedia:Arithmetic_shift|bit-shifting]].&lt;br /&gt;
::Use case: override greyscale conversion to fullscale instead of bit-shifts.&lt;br /&gt;
::Conversion from and to float is always full-scale.&lt;br /&gt;
::Alpha plane is always treated as full scale.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulld|bool|{{Template:FuncArg|fulls}}}}&lt;br /&gt;
::''Use the default value unless you know what you are doing.''&lt;br /&gt;
::At the moment, ''must'' match {{FuncArg|fulls}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #combine greyscale clips into YUVA clip&lt;br /&gt;
 U8 = source.UToY8()&lt;br /&gt;
 V8 = source.VToY8()&lt;br /&gt;
 Y8 = source.ConvertToY()&lt;br /&gt;
 A8 = source.AddAlphaPlane(128).AToY8()&lt;br /&gt;
 CombinePlanes(Y8, U8, V8, A8, planes=&amp;quot;YUVA&amp;quot;, source_planes=&amp;quot;YYYY&amp;quot;, &lt;br /&gt;
 \               sample_clip=source) #pixel_type=&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 # Copy planes between planar RGB(A) and YUV(A) without any conversion&lt;br /&gt;
 # yuv 4:4:4 &amp;lt;-&amp;gt; planar rgb&lt;br /&gt;
 source = last.ConvertBits(32) # 4:4:4&lt;br /&gt;
 cast_to_planarrgb = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBPS&amp;quot;)&lt;br /&gt;
 # get back a clip identical with &amp;quot;source&amp;quot;&lt;br /&gt;
 cast_to_yuv = CombinePlanes(cast_to_planarrgb, planes=&amp;quot;YUV&amp;quot;, source_planes=&amp;quot;RGB&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;YUV444PS&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #create a black and white planar RGB clip using Y channel&lt;br /&gt;
 #source is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YYY&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBP8&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #copy luma from one clip, U and V from another&lt;br /&gt;
 #source is the template&lt;br /&gt;
 #sourceY is a Y or YUV clip&lt;br /&gt;
 #sourceUV is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(sourceY, sourceUV, planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               source_planes=&amp;quot;YUV&amp;quot;, sample_clip = source)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| 20170310 r2440&lt;br /&gt;
| parameter ''dither_bits''&lt;br /&gt;
|-&lt;br /&gt;
| 20170202 r2420&lt;br /&gt;
| parameters ''fulls'', ''fulld''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_filters]]&lt;br /&gt;
[[Category:Colourspace_Conversion]]&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;br /&gt;
[[Category:Avisynthplus]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_functions</id>
		<title>Internal functions</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_functions"/>
				<updated>2018-03-05T01:26:13Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: update for AVS+ r2632 cont'd&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;
&amp;lt;div style=&amp;quot;max-width:64em&amp;quot; &amp;gt;&lt;br /&gt;
In addition to [[Internal_filters|internal filters]] AviSynth has a fairly large number of other (non-clip) internal functions. &lt;br /&gt;
&lt;br /&gt;
The input or/and output of these functions are not clips, but some other variables which can be used in a script. &lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Short Contents:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
# [[#Boolean_functions|Boolean functions]]&lt;br /&gt;
# [[#Control_functions|Control functions]]&lt;br /&gt;
# [[#Global_options|Global options]]&lt;br /&gt;
# [[#Conversion_functions|Conversion functions]]&lt;br /&gt;
# [[#Numeric_functions|Numeric functions]]&lt;br /&gt;
# [[#Trigonometry_functions|Trigonometry functions]]&lt;br /&gt;
# [[#Bit_functions|Bit functions]]&lt;br /&gt;
# [[#Runtime_functions|Runtime functions]]&lt;br /&gt;
# [[#Script_functions|Script functions]]&lt;br /&gt;
# [[#String_functions|String functions]]&lt;br /&gt;
# [[#Version_functions|Version functions]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:4em;&amp;quot; |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolean functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These return true or false, if the condition that they test holds or not, respectively.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsBool||IsBool(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the bool type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b = false&lt;br /&gt;
 IsBool(b) = true&lt;br /&gt;
 IsBool(1 &amp;lt; 2 &amp;amp;&amp;amp; 0 == 1) = true&lt;br /&gt;
 IsBool(123) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsClip||IsClip(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the clip type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 c = [[AviSource]](...)&lt;br /&gt;
 IsClip(c) = true&lt;br /&gt;
 IsClip(&amp;quot;c&amp;quot;) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsFloat||IsFloat(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the float type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 f = [[Internal_functions/Numeric_functions|Sqrt]](2)&lt;br /&gt;
 IsFloat(f) = true&lt;br /&gt;
 IsFloat(true) = false&lt;br /&gt;
 IsFloat(&amp;quot;42.&amp;quot;) = false&lt;br /&gt;
 IsFloat(2) = true   # ''ints are considered to be floats by this function''&lt;br /&gt;
 IsReallyFloat(2) = false # see below&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: As a workaround for the issue noted above, you may use the following [[User_functions|user function]]:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|3}} &amp;gt;&lt;br /&gt;
 ## return true for floats only&lt;br /&gt;
 function IsReallyFloat(val v)&lt;br /&gt;
 {&lt;br /&gt;
     return (IsInt(v)==false) &amp;amp;&amp;amp; IsFloat(v)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsInt||IsInt(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the int type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsInt(2) = true&lt;br /&gt;
 IsInt(2.1) = false&lt;br /&gt;
 IsInt(true) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsString||IsString(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the string type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsString(&amp;quot;test&amp;quot;) = true&lt;br /&gt;
 IsString(2.3) = false&lt;br /&gt;
 IsString([[Internal_functions/Conversion_functions|String]](2.3)) = true&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exist||Exist(filename)}}&lt;br /&gt;
: Tests if the file specified by {{FuncArg|filename}} exists.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 filename = ...&lt;br /&gt;
 clp = Exist(filename) &lt;br /&gt;
 \ ? [[AviSource]](filename) &lt;br /&gt;
 \ : [[Internal_functions/Control_functions|Assert]](false, &amp;quot;file: &amp;quot; + filename + &amp;quot; does not exist&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Defined||Defined(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is defined. Can be used inside [[Script_functions]] to test if an optional argument has been given an explicit value.&lt;br /&gt;
: More formally, the function returns false if its argument (normally a function argument or variable) has the void ('undefined') type, otherwise it returns true.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b_arg_supplied = Defined(arg)&lt;br /&gt;
 myvar = b_arg_supplied ? ... : ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FunctionExists|{{AvsPluscon}}|FunctionExists(name)}}&lt;br /&gt;
: Tests if the function or filter name is defined in the script.&lt;br /&gt;
: {{FuncArg|name}} can be any string &amp;amp;ndash; it does not need to be a [[Script_variables#Variable_Names|legal name]].&lt;br /&gt;
: ''Example'' &amp;amp;ndash; see [[#Apply|Apply]] below&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|InternalFunctionExists|{{AvsPluscon}}|InternalFunctionExists(name)}}&lt;br /&gt;
: Tests if the function, filter or [[Clip_properties|property]] name is defined natively within [[AviSynth+]].&lt;br /&gt;
:* Unlike [[#FunctionExists|FunctionExists]], returns ''false'' for [[Plugins|external plugins]] and [[User_functions|user-defined functions]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Control functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These facilitate flow of control (loading of scripts, arguments checks, global settings adjustment, etc.).&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Apply||Apply(string ''func_string'' [, arg1 [, arg2 [, ... [, arg''n'']]]] )}}&lt;br /&gt;
: Calls the function or filter {{FuncArg|func_string}} with arguments {{FuncArg|arg1}}, {{FuncArg|arg2}}, ..., {{FuncArg|arg''n''}} (as many as supplied). &lt;br /&gt;
:* This provides a way to call a function or filter '''by name''', with arguments.&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;f(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[[#Eval|Eval]](&amp;quot;f(&amp;quot; + String(x) + &amp;quot;)&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* Note that the clip argument must be supplied explicitly - the [[Last|special variable ''Last'']] is not used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically  &lt;br /&gt;
 new_width = 352&lt;br /&gt;
 new_height = 288&lt;br /&gt;
 &lt;br /&gt;
 Apply(&amp;quot;[[BicubicResize]]&amp;quot;, Last, new_width, new_height)&lt;br /&gt;
 # Note that the clip argument must be supplied - 'Last' is not implicitly assumed&lt;br /&gt;
 &lt;br /&gt;
 ## the same action, using [[#Eval|Eval]]&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + String(new_width) + &amp;quot;,&amp;quot; + String(new_height) + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists (AviSynth 2.6)&lt;br /&gt;
 function MyFilter(clip C, string s) { &lt;br /&gt;
     return C.[[Subtitle]](&amp;quot;MyFilter: &amp;quot;+s, align=5)&lt;br /&gt;
 }&lt;br /&gt;
 ColorBars &lt;br /&gt;
 [[Control_structures|try]] {&lt;br /&gt;
     Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;)&lt;br /&gt;
 } catch (err_msg) {&lt;br /&gt;
     # (ignore)&lt;br /&gt;
 }&lt;br /&gt;
 return Last&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists ([[AviSynth+|AVS+]] only)&lt;br /&gt;
 ColorBars  &lt;br /&gt;
 return [[#FunctionExists|FunctionExists]](&amp;quot;MyFilter&amp;quot;) &lt;br /&gt;
 \ ? Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;) &lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Eval||Eval(expression [, string ''name''])}}&lt;br /&gt;
: Evaluates an arbitrary {{FuncArg|expression}} and returns the result of that evaluation. '''It works exactly like [[#Import|Import]] below''', except&lt;br /&gt;
:* The expression to be evaluated comes from a string instead of a file; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are not changed;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is not changed.&lt;br /&gt;
: Argument {{FuncArg|name}} will be shown in the error message beside the script name. Both will be followed with the line number in {{FuncArg|expression}} where the error occurred.&lt;br /&gt;
&lt;br /&gt;
: Variables in your calling script are available within {{FuncArg|expression}}; [[Global|global variables]] are not required.&lt;br /&gt;
: Note '''Eval''' can return the result of ''any'' valid expression; usually a clip, but also a string, boolean etc.&lt;br /&gt;
: You can use '''Eval''' to construct and evaluate expressions dynamically inside your scripts, based on variable input data.&lt;br /&gt;
: '''Eval''' is useful as a [[Control_structures|control structure]] for creating multi-line ''block statements'' without requiring [[AviSynth%2B|AviSynth+]].&lt;br /&gt;
: '''Eval''' can be used to put aside the need to install external plugins if they are not actually used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically &lt;br /&gt;
 ## calls [[BicubicResize]](last, 352, 288)&lt;br /&gt;
 settings = &amp;quot;352, 288&amp;quot;&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + settings + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## if...else [[Control_structures|control structure]]&lt;br /&gt;
 option = true&lt;br /&gt;
 option  &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[Levels]](0, 1.2, 255, 20, 235)&lt;br /&gt;
     [[Spline36Resize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;) &lt;br /&gt;
 \ : '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[BicubicResize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.3)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it is needed; &lt;br /&gt;
 ## in this example, [[SMDegrain]] only needs to be installed if the option is ''true''.&lt;br /&gt;
 option = false&lt;br /&gt;
 option &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     SMDegrain(tr=2, thSAD=250, contrasharp=true, refinemotion=true, lsb=true)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## accessing script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=[[Subtitle]](&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;A&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## setting script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;B = A.Invert&amp;quot;)&lt;br /&gt;
 return B ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Increment a global variable, based on a local variable&lt;br /&gt;
 Eval(&amp;quot;global my_counter = my_counter + &amp;quot; + [[#String|String]](increment)) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## multi-line example with comment and line continuation&lt;br /&gt;
 '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[BicubicResize]](352, 288)&lt;br /&gt;
 #FlipVertical&lt;br /&gt;
 Subtitle(&lt;br /&gt;
 \   &amp;quot;Width  = &amp;quot;  + [[#String|String]]([[Clip_properties|Width]]) + &amp;quot;\n&amp;quot;&lt;br /&gt;
 \ + &amp;quot;Height = &amp;quot; + String(Height)&lt;br /&gt;
 \ , align=7, lsp=0)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Empty expression &lt;br /&gt;
 ## results in error: 'Defined(u) == false'&lt;br /&gt;
 u = Eval(&amp;quot;#&amp;quot;)   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Error reporting&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, size=Height, align=2)&lt;br /&gt;
 Eval(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;, '''&amp;quot;eval_test_1&amp;quot;''') ## name for error reporting purposes&lt;br /&gt;
 return Last&lt;br /&gt;
 &lt;br /&gt;
 ''results in the error message:''&lt;br /&gt;
 Script error: there is no function named &amp;quot;foo&amp;quot;&lt;br /&gt;
 '''(eval_test_1, line 3)'''&lt;br /&gt;
 (E:\_test.avs, line 6)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Import||Import(filename)}}&lt;br /&gt;
{{ScriptFunctionCode|Import||Import(filename [, ...] [, bool utf8])}} {{AvsPluscon}}&lt;br /&gt;
: Evaluates the contents of another script and returns the result of that evaluation. '''It works exactly like [[#Eval|Eval]] above''', except&lt;br /&gt;
:* The expression to be evaluated comes from a file instead of a string; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are set to the current (imported) script;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is [[Internal_functions#SetWorkingDir|set]] to the current (imported) script.&lt;br /&gt;
:* {{FuncArg|utf8}} {{AvsPluscon}} if true, assumes filename(s) are [[wikipedia:UTF-8|UTF8]], else (default), assume ANSI.&lt;br /&gt;
&lt;br /&gt;
:[[Script_functions|Functions]], [[Script_variables|variables]] and loaded plugins declared inside the imported script are made available to the parent script. &amp;lt;b&amp;gt;Import&amp;lt;/b&amp;gt;'s return value  can be assigned to a variable of the parent script; this is most useful when the imported script ends with a clip.&lt;br /&gt;
&lt;br /&gt;
: Typically '''Import''' is used to make library functions available to the parent script, and the return value is not used. However this is simply a convention; it is not enforced by the [[AviSynth Syntax]]. Some indicative uses of '''Import''' include:&lt;br /&gt;
:* Storing multiple script-functions, variables and global variables for reuse by scripts (creation of script libraries).&lt;br /&gt;
:* Retrieving pre-built streams.&lt;br /&gt;
:* Retrieving dynamically configured pre-built streams (the core idea is that the importing script declares some global variables which the imported script uses to configure the stream that will return).&lt;br /&gt;
:'''Note 1''': Since the contents of the imported script are evaluated at the point of invocation, it is possible by enclosing the '''Import''' call in a nested scope (for example inside a function) to make available to the importing script the functions and globals of the imported script ''without'' its script-level variables.&lt;br /&gt;
:'''Note 2''': Any script with the [[AVSI]] extension in the AviSynth Plugins folder is automatically imported. This is useful for making script functions available to any new script you create without having to copy and paste.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # ''B.avsi''&lt;br /&gt;
 A.Invert&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5) ## create clip 'A'&lt;br /&gt;
 Import(&amp;quot;B.avsi&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## here we do not care about the return value (''mylib.avsi'' contains only functions)&lt;br /&gt;
 Import(&amp;quot;mylib.avsi&amp;quot;)  &lt;br /&gt;
 ...&lt;br /&gt;
 ## ''mysources.avsi'' loads predetermined file names from a folder into globals&lt;br /&gt;
 okflag = Import(&amp;quot;mysources.avsi&amp;quot;)  &lt;br /&gt;
 source = okflag ? global1 + global2 + global3 : [[BlankClip]]()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Select||Select(index, item0 [, item1 [, ...[, itemn]]])}}&lt;br /&gt;
: Returns the item selected by the {{FuncArg|index}} argument, which must be of int type (0 returns {{FuncArg|item0}}, 1 returns {{FuncArg|item1}}, ..., etc). Items can be any script [[Script_variables|variable]] or expression of any type and can even be mixed.&lt;br /&gt;
&lt;br /&gt;
:If {{FuncArg|index}} is out of range, an error is raised.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # select a clip-brush from a set of presets&lt;br /&gt;
 idx = 2&lt;br /&gt;
 brush = Select(idx, [[AviSource]](&amp;quot;round.avi&amp;quot;), &lt;br /&gt;
 \        rectangle, diagonal, diagonal.[[FlipHorizontal]])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - all branches are evaluated:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 Select(index, &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &lt;br /&gt;
 \        Assert(false, &amp;quot;Select evaluates all branches&amp;quot;)) &lt;br /&gt;
 ## NOTE this code does not run - it throws [[#Assert|Assert]] error&lt;br /&gt;
 ## because Select evaluates all branches&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is not desired, use the [[Ternary_operator|conditional execution]] operator: &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 x = (index==0) ? &amp;quot;zero&amp;quot;&lt;br /&gt;
 \ : (index==1) ? &amp;quot;one&amp;quot;&lt;br /&gt;
 \ : (index==2) ? &amp;quot;two&amp;quot;&lt;br /&gt;
 \ : Assert(false, &amp;quot;index out of range&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Default||Default(x, d)}}&lt;br /&gt;
: Returns {{FuncArg|x}} if '''Defined'''(x) is true, {{FuncArg|d}} otherwise. {{FuncArg|x}} must either be a function's argument or an already declared script variable (ie a variable which has been assigned a value) else an error will occur.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Assert||Assert(condition [, err_msg])}}&lt;br /&gt;
: Does nothing if {{FuncArg|condition}} is true; throws an error, immediately terminating script execution, if {{FuncArg|condition}} is false. In the later case {{FuncArg|err_msg}}, if supplied, is presented to the user through a dialog box; else the standard message &amp;quot;Assert: assertion failed&amp;quot; shows up.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     Assert(strength &amp;gt; 0, &amp;quot;'strength' must be positive&amp;quot;)&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|NOP||NOP()}}&lt;br /&gt;
: This is a no-operation function provided mainly for conditional execution with non-return value items such as [[Import]], when no &amp;quot;else&amp;quot; condition is desired. That is, use it whenever the [[AviSynth Syntax]] requires an operation (such as with the ?: [[Operators#For_Booleans|operator]]) but your script does not need one.&lt;br /&gt;
: Return value: 0 (int type).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 preset = want_presets ? [[AviSource]](&amp;quot;c:\presets\any.avi&amp;quot;) : NOP&lt;br /&gt;
 ... &lt;br /&gt;
 loadlib ? [[Import]](&amp;quot;my_useful_functions.avs&amp;quot;) : NOP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Undefined|v2.60|Undefined()}}&lt;br /&gt;
: Returns the undefined state.&lt;br /&gt;
: It's the state for which '''Defined'''() returns false.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 x = Undefined()&lt;br /&gt;
 Defined(x) # == false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Options ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{ScriptFunctionH5|SetMemoryMax||SetMemoryMax(amount)}}&lt;br /&gt;
: Sets the maximum memory that AviSynth uses (in MB) to the value of {{FuncArg|amount}}. Setting to zero just returns the current Memory Max value. In the 2.5 series the default Memory Max value is 25% of the free physical memory, with a minimum of 16MB.&lt;br /&gt;
: The default Memory Max is also limited to 512MB.&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; &amp;lt;!-- width=50% --&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | Free memory&lt;br /&gt;
 | &amp;lt;64&lt;br /&gt;
 | 128&lt;br /&gt;
 | 256&lt;br /&gt;
 | 512&lt;br /&gt;
 | 1024&lt;br /&gt;
 | 2048&lt;br /&gt;
 | 3072&lt;br /&gt;
 |-&lt;br /&gt;
 | Default Max&lt;br /&gt;
 | 16&lt;br /&gt;
 | 32&lt;br /&gt;
 | 64&lt;br /&gt;
 | 192&lt;br /&gt;
 | 448&lt;br /&gt;
 | 512&lt;br /&gt;
 | 512&lt;br /&gt;
 |}&lt;br /&gt;
: In some versions there is a default setting of 5MB, which is quite low. If you encounter problems (e.g. low speed) try to set this values to at least 32MB. Too high values can result in crashes because of 2GB address space limit.&lt;br /&gt;
: Return value: Actual MemoryMax value set.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetMemoryMax(128)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetWorkingDir||SetWorkingDir(path)}}&lt;br /&gt;
: Sets the default directory for AviSynth to the {{FuncArg|path}} argument.&lt;br /&gt;
: This is primarily for easy loading of source clips, [[Import|importing]] scripts, etc. It does not affect plugins' autoloading. &lt;br /&gt;
: Return value is 0 if successful, -1 otherwise.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetWorkingDir(&amp;quot;c:\my_presets&amp;quot;)&lt;br /&gt;
 [[AviSource]](&amp;quot;border_mask.avi&amp;quot;)  # this loads c:\my_presets\border_mask.avi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetPlanarLegacyAlignment||SetPlanarLegacyAlignment(mode)}}&lt;br /&gt;
: Set alignment mode for [[planar]] frames. {{FuncArg|mode}} can either be true or false.&lt;br /&gt;
: Some older [[External_plugins|plugins]] illegally assume the layout of video frames in memory. This special filter forces the memory layout of planar frames to be compatible with prior versions of AviSynth. The filter works on the [[The_script_execution_model/Evaluation_of_runtime_scripts|GetFrame]]() call stack, so it effects filters '''before''' it in the script.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Example : Using an older version of Mpeg2Source() (1.10 or older):&lt;br /&gt;
 &lt;br /&gt;
 LoadPlugin(&amp;quot;...\Mpeg2Decode.dll&amp;quot;)&lt;br /&gt;
 Mpeg2Source(&amp;quot;test.d2v&amp;quot;)         # A plugin that illegally assumes the layout of memory&lt;br /&gt;
 SetPlanarLegacyAlignment(true)  # Set legacy memory alignment for prior statements&lt;br /&gt;
 [[Convert|ConvertToYUY2]]()     # Statements through to the end of the script have&lt;br /&gt;
 ...                             # advanced memory alignment.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AllowFloatAudio||global OPT_AllowFloatAudio &amp;amp;#61; true ## default false}}&lt;br /&gt;
: [[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true (this option enables WAVE_FORMAT_IEEE_FLOAT audio output&amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?t=109608]&amp;lt;/sup&amp;gt;). In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
:The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_UseWaveExtensible||global OPT_UseWaveExtensible &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables WAVE_FORMAT_EXTENSIBLE audio output. The default is WAVE_FORMAT_EX.&lt;br /&gt;
: '''Note:''' The default DirectShow component for .AVS files, &amp;quot;AVI/WAV File Source&amp;quot;, does not correctly implement WAVE_FORMAT_EXTENSIBLE processing, so many application may not be able to detect the audio track. There are third party DirectShow readers that do work correctly. Intermediate work files written using the AVIFile interface for later DirectShow processing will work correctly if they use the DirectShow &amp;quot;File Source (async)&amp;quot; component or equivalent. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_dwChannelMask|v2.60|global OPT_dwChannelMask(int v)}}&lt;br /&gt;
: This option enables you to set ChannelMask. It overrides WAVEFORMATEXTENSIBLE.dwChannelMask&amp;lt;sup&amp;gt;[[http://wiki.multimedia.cx/index.php?title=WAVEFORMATEXTENSIBLE]&amp;lt;/sup&amp;gt; which is set according to this table&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 0x00004, // 1   -- -- Cf&lt;br /&gt;
 0x00003, // 2   Lf Rf&lt;br /&gt;
 0x00007, // 3   Lf Rf Cf&lt;br /&gt;
 0x00033, // 4   Lf Rf -- -- Lr Rr&lt;br /&gt;
 0x00037, // 5   Lf Rf Cf -- Lr Rr&lt;br /&gt;
 0x0003F, // 5.1 Lf Rf Cf Sw Lr Rr&lt;br /&gt;
 0x0013F, // 6.1 Lf Rf Cf Sw Lr Rr -- -- Cr&lt;br /&gt;
 0x0063F, // 7.1 Lf Rf Cf Sw Lr Rr -- -- -- Ls Rs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AVIPadScanlines|v2.60|global OPT_AVIPadScanlines &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables DWORD aligned planar padding. Default is packed aligned planar padding. See [[AVIFile output emulation|memory alignment used in the AVIFile output emulation]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_VDubPlanarHack|v2.60|global OPT_VDubPlanarHack &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables flipped YV24 and YV16 chroma planes. This is an hack for early versions of Virtualdub with YV24/YV16 support. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_V210|{{AvsPluscon}}|global OPT_Enable_V210 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, [[Frameserver|Frameserve]] interleaved V210 instead of planar P210. (VfW)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
{{BoldColor|black|100|§}} ''VfW'' here means [[wikipedia:Video_for_Windows|Video For Windows]] clients such as VirtualDub are affected, but not other clients such as ffmpeg.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_10|{{AvsPluscon}}|global OPT_Enable_Y3_10_10 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, set the [[FourCC]] to Y3[10][10] ('Y', '3', 10, 10) instead of P210  ('P', '2', '1', '0'). (VfW) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_16|{{AvsPluscon}}|global OPT_Enable_Y3_10_16 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 16bit YUV422, use Y3[10][16] instead of P216 (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_b64a|{{AvsPluscon}}|global OPT_Enable_b64a &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Use b64a instead of BRA[64] (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_PlanarToPackedRGB|{{AvsPluscon}}|global OPT_Enable_PlanarToPackedRGB &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Convert Planar RGB to packed RGB (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conversion functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These convert between different types.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Value||Value(string)}}&lt;br /&gt;
: Converts a decimal string to its associated numeric value.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Value (&amp;quot;-2.7&amp;quot;) = -2.7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|HexValue||HexValue(string)}}&lt;br /&gt;
{{ScriptFunctionCode|HexValue||HexValue(string [, int pos])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a hexadecimal string to its associated numeric value. &lt;br /&gt;
:* {{FuncArg|pos}} sets the starting point of the numeric parser. All characters to the left of {{FuncArg|pos}} are ignored. Default is 1 (start of string).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 HexValue (&amp;quot;FF00&amp;quot;) = 65280&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Hex|v2.60|Hex(int)}}&lt;br /&gt;
{{ScriptFunctionCode|Hex||Hex(int [, int width])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a numerical value to its hexadecimal value. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
:* {{FuncArg|width}} sets the minimum width of the returned string. &lt;br /&gt;
::Resulting string will be left-padded with zeroes as needed. Allowed range is 0..8; default is 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Hex (10824234) = &amp;quot;A52A2A&amp;quot;&lt;br /&gt;
 Hex (15 width=2) = &amp;quot;0F&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|String||String(var [, string format_string])}}&lt;br /&gt;
: Converts a variable to a string. ''String'' arguments are passed along unchanged; ''bools'' are converted to &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;; numbers are formatted as described below; other [[Script_variables#Variable_Types|variable types]] (''clip'', ''val'') are converted to the empty string. &lt;br /&gt;
:The syntax of {{FuncArg|format_string}} is as follows:&lt;br /&gt;
::&amp;lt;code&amp;gt;'''%'''[flags][width][.precision]'''f'''&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;i&amp;gt;the leading &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; and trailing &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; are required.&amp;lt;/i&amp;gt;&lt;br /&gt;
:The parts of {{FuncArg|format_string}} are:&lt;br /&gt;
:; ''flags'' &lt;br /&gt;
::{| class=wikitable&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;&lt;br /&gt;
|left align (right align by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the +/- sign (show only '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;' by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|pad (see ''width'') with leading zeroes (pad with spaces by default)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;amp;nbsp;'&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;'&amp;amp;nbsp;&lt;br /&gt;
|print a blank instead of a '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;'&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the decimal point (dropped by default if there are no decimal digits)&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
:; ''width''&lt;br /&gt;
:: the minimum width (the string is never truncated if it is wider than ''width'')&lt;br /&gt;
:; ''precision''&lt;br /&gt;
:: the number of decimal digits&lt;br /&gt;
: You can also put arbitrary text around {{FuncArg|format_string}}, similar to the C-language [http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm sprintf] function.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|62|2}} &amp;gt;&lt;br /&gt;
 Subtitle( String(1.23) )                    # '1.230000' (six decimals by default for floats)&lt;br /&gt;
 Subtitle( String(123) )                     # '123'      (no decimals by default for ints)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.2f&amp;quot; ))           # '1.23'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.1f&amp;quot; ))           # '1.2'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%5.1f&amp;quot;) )           # '  1.2'    (padded to 5 characters wide)&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%1.3f&amp;quot;) )           # '1.230'    (3 decimals; add trailing zeroes)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.0f&amp;quot;) )            # '123'      (no decimals for precision=0)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%''#''0.0f&amp;quot;) )           # '123.'     ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.2f&amp;quot;) )            # '123.00'   (2 decimals: add trailing zeroes)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%5.0f&amp;quot;) )            # '  123'    (padded to 5 characters wide using ' ')&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%05.0f&amp;quot;) )           # '00123'    (padded to 5 characters wide using '0')&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.0f&amp;quot;) )          # 'PI=3'     (text around format_string)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%''#''0.0f&amp;quot;) )         # 'PI=3.'    ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%2.0f&amp;quot;) )          # 'PI= 3'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%3.2f&amp;quot;) )          # 'PI=3.14'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.5f&amp;quot;) )          # 'PI=3.14159'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%6.3f&amp;quot;) )          # 'PI= 3.142'&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(32, &amp;quot;%0.0f&amp;quot;) )             # '32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%3.0f&amp;quot;) )             # ' 32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%8.0f&amp;quot;) )             # '      32'&lt;br /&gt;
 &lt;br /&gt;
 ## arbitrary text around format_string:&lt;br /&gt;
 Subtitle( String(Last.Height, &amp;quot;Clip height is %0.0f&amp;quot;) ) # 'Clip height is 480'&lt;br /&gt;
 ## same output as above but using string concatenation:&lt;br /&gt;
 Subtitle( &amp;quot;Clip height is &amp;quot; + String(Last.Height) )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numeric functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common mathematical operations on numeric variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Max||Max(float, float [, ...])}}&lt;br /&gt;
: Returns the maximum value of a set of numbers.&lt;br /&gt;
: If all the values are of type Int, the result is an Int. If any of the values are of type Float, the result is a Float.&lt;br /&gt;
: This may cause an unexpected result when an Int value greater than 16777216 is mixed with Float values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Max (1, 2) = 2&lt;br /&gt;
 Max (5, 3.0, 2) = 5.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Min||Min(float, float [, ...])}}&lt;br /&gt;
: Returns the minimum value of a set of numbers.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Min (1, 2) = 1&lt;br /&gt;
 Min (5, 3.0, 2) = 2.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MulDiv||MulDiv(int, int, int)}}&lt;br /&gt;
: Multiplies two ints (m, n) and divides the product by a third (d) in a single operation, with 64 bit intermediate result. The actual equation used is &amp;lt;tt&amp;gt; (m * n + d / 2) / d &amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MulDiv (1, 1, 2) = 1&lt;br /&gt;
 MulDiv (2, 3, 2) = 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Floor||Floor(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round down on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Floor(1.2) = 1&lt;br /&gt;
 Floor(1.6) = 1&lt;br /&gt;
 Floor(-1.2) = -2&lt;br /&gt;
 Floor(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ceil||Ceil(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round up on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ceil(1.2) = 2&lt;br /&gt;
 Ceil(1.6) = 2&lt;br /&gt;
 Ceil(-1.2) = -1&lt;br /&gt;
 Ceil(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Round||Round(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round off to nearest integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Round(1.2) = 1&lt;br /&gt;
 Round(1.6) = 2&lt;br /&gt;
 Round(-1.2) = -1&lt;br /&gt;
 Round(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Int||Int(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round towards zero).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Int(1.2) = 1&lt;br /&gt;
 Int(1.6) = 1&lt;br /&gt;
 Int(-1.2) = -1&lt;br /&gt;
 Int(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Float||Float(int)}}&lt;br /&gt;
: Converts int to single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value. Integer values that require more than 24-bits to be represented will have their lower 8-bits truncated yielding unexpected values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Float(4) = 4.0&lt;br /&gt;
 Float(4) / 3 = 1.333 (while 4 / 3 = 1 , due to integer division)&lt;br /&gt;
 Float(123456789) = 123456792.0 (error = -3, 0.000002%)&lt;br /&gt;
 Float(1234567890) = 1234567936.0 (error = -46, 0.000004%)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Fmod|v2.60|Fmod(float, float)}}&lt;br /&gt;
: Returns the modulo of the argument. Output is float.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Fmod(3.5, 0.5) = 0 (since 3.5 - 7*0.5 = 0)&lt;br /&gt;
 Fmod(3.5, 1.0) = 0.5 (since 3.5 - 3*1.0 = 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pi||Pi()}}&lt;br /&gt;
: Returns the value of the {{BoldColor|black|110|π}} constant (the ratio of a circle's circumference to its diameter).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 d = Pi()    # d == 3.141592653&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exp||Exp(float)}}&lt;br /&gt;
: Returns the natural (base-e) exponent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Exp(1) = 2.7182818&lt;br /&gt;
 Exp(0) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log||Log(float)}}&lt;br /&gt;
: Returns the natural (base-e) logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log(1) = 0.0&lt;br /&gt;
 Log(10) = 2.30259&lt;br /&gt;
 Log(Exp(1)) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log10|v2.60|Log10(float)}}&lt;br /&gt;
: Returns the common logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log10(1.0) = 0&lt;br /&gt;
 Log10(10.0) = 1.0&lt;br /&gt;
 Log10(2.0) = 0.3010299957&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pow||Pow(float base, float power)}}&lt;br /&gt;
: Returns {{FuncArg|base}} raised to a {{FuncArg|power}}.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Pow(2, 3) = 8&lt;br /&gt;
 Pow(3, 2) = 9&lt;br /&gt;
 Pow(3.45, 1.75) = 8.7334&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sqrt||Sqrt(float)}}&lt;br /&gt;
: Returns the square root of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sqrt(1) = 1.0&lt;br /&gt;
 Sqrt(2) = 1.4142&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Abs||Abs(float or int)}}&lt;br /&gt;
: Returns the absolute value of its argument (returns float for float, integer for integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Abs(-3.8) = 3.8&lt;br /&gt;
 Abs(-4) = 4&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sign||Sign(float)}}&lt;br /&gt;
: Returns the sign of the value passed as argument (1, 0 or -1).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sign(-3.5) = -1&lt;br /&gt;
 Sign(3.5) = 1&lt;br /&gt;
 Sign(0) = 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Frac||Frac(float)}}&lt;br /&gt;
: Returns the fractional portion of the value provided.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Frac(3.7) = 0.7&lt;br /&gt;
 Frac(-1.8) = -0.8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Rand||Rand([int max] [, bool scale] [, bool seed])}}&lt;br /&gt;
: Returns a random integer value. All parameters are optional. &lt;br /&gt;
:;max&lt;br /&gt;
::sets the maximum value+1 (default 32768) and can be set negative for negative results. It operates either in scaled or modulus mode (default {{FuncArg|scale}}=true only if [[#Abs|Abs]]({{FuncArg|max}}) &amp;gt; 32768, false otherwise). &lt;br /&gt;
:;scale&lt;br /&gt;
::When true, ''scales'' the internal random number generator value to the maximum value, while ''modulus mode'' ({{FuncArg|scale}}=false) uses the remainder from an integer divide of the random generator value by the maximum. Modulus mode is recommended for smaller maximums. &lt;br /&gt;
:;seed&lt;br /&gt;
::When true, seeds the random number generator with the current time. {{FuncArg|seed}} defaults to false and probably isn't necessary, although it's there just in case. &lt;br /&gt;
: Typically, this function would be used with the [[#Select|'''Select''']] function for random clips. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Select(Rand(5), clip1, clip2, clip3, clip4, clip5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Spline||Spline(float X, x1, y1, x2, y2, .... [, bool cubic])}}&lt;br /&gt;
: Interpolates the Y value at point X using the control points {{FuncArg|x1}}/{{FuncArg|y1}}, ... There have to be at least 2 x/y-pairs. The interpolation can be {{FuncArg|cubic}} (the result is a spline) or linear (the result is a polygon). Default is cubic.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Continued Numerator, Denominator =====&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(int, int, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(int, int, int limit)}}&lt;br /&gt;
: The rational pair ('''ContinuedNumerator''', '''ContinuedDenominator''') returned has the smallest possible denominator such that the absolute error is less than 1/{{FuncArg|limit}}. More information can be found on [http://en.wikipedia.org/wiki/Continued_fraction wikipedia].&lt;br /&gt;
: If {{FuncArg|limit}} is not specified in the Float case the rational pair returned is to the limit of the single precision floating point value. Thus (float)((double)Num/(double)Den) == V.&lt;br /&gt;
: In the Int case if {{FuncArg|limit}} is not specified then the normalized original values will be returned, i.e. reduced by the ''GCD'' (greatest common divisor).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ContinuedNumerator(PI(), limit=5000]) = 355&lt;br /&gt;
 ContinuedDenominator(PI(), limit=5000) = 113&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(PI(), limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(PI(), limit=50) = 7&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(355, 113, limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(355, 113, limit=50) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigonometry functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: relationships involving lengths and angles of triangles. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sin||Sin(float)}}&lt;br /&gt;
: Returns the sine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sin(Pi()/4) = 0.707&lt;br /&gt;
 Sin(Pi()/2) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cos||Cos(float)}}&lt;br /&gt;
: Returns the cosine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cos(Pi()/4) = 0.707&lt;br /&gt;
 Cos(Pi()/2) = 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tan|v2.60|Tan(float)}}&lt;br /&gt;
: Returns the tangent of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tan(Pi/4) = 1.0&lt;br /&gt;
 Tan(Pi/2) = not defined&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: 32 bit IEEE floats do not have sufficient resolution to exactly represent&lt;br /&gt;
: pi/2 so AviSynth returns a large positive number for the value slightly less&lt;br /&gt;
: than pi/2 and a large negative value for the next possible value which is&lt;br /&gt;
: slightly greater than pi/2.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Asin|v2.60|Asin(float)}}&lt;br /&gt;
: Returns the inverse of the sine of the argument (output is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Asin(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Asin(1.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Acos|v2.60|Acos(float)}}&lt;br /&gt;
: Returns the inverse of the cosine of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Acos(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Acos(0.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan|v2.60|Atan(float)}}&lt;br /&gt;
: Returns the inverse of the tangent of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan(0.707) = 0.6154085176&lt;br /&gt;
 Atan(1.0) = 0.7853981634 (~ Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan2|v2.60|Atan2(float, float)}}&lt;br /&gt;
: Returns the angle between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. Output is in radians. See [http://en.wikipedia.org/wiki/Atan2 wikipedia] for more information.&lt;br /&gt;
: y is the first argument and x is the second argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan2(1.0, 0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
 Atan2(1.0, 1.0) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Atan2(-1.0, -1.0) = -2.356194490 (~ -3Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sinh|v2.60|Sinh(float)}}&lt;br /&gt;
: Returns the hyperbolic sine of the argument. See [http://en.wikipedia.org/wiki/Hyperbolic_function wikipedia] for more information.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sinh(2.0) = 3.626860408&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cosh|v2.60|Cosh(float)}}&lt;br /&gt;
: Returns the hyperbolic cosine of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cosh(2.0) = 3.762195691&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tanh|v2.60|Tanh(float)}}&lt;br /&gt;
: Returns the hyperbolic tangent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tanh(2.0) = 0.9640275801&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bit functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: The functions are ''bitwise operators''. They manipulate individual bits within integer variables. This means that their arguments (being integers) are converted to binary numbers, the operation is performed on their bits, and the resulting binary number is converted back again.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitAnd|v2.60|BitAnd(int, int)}}&lt;br /&gt;
: Returns the bitwise AND (sets bit to 1 if both bits are 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitAnd(5, 6) = 4 # since 5 = 101, 6 = 110, and 101&amp;amp;110 = 100&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitNot|v2.60|BitNot(int)}}&lt;br /&gt;
: Returns the bit-inversion (sets bit to 1 if bit is 0 and vice-versa).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitNOT(5) = -6 &lt;br /&gt;
 # since  5 = 101,  &lt;br /&gt;
 # and ~101 = 1111 1111 1111 1111 1111 1111 1111 1010 = -6&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: 1111 1111 1111 1111 1111 1111 1111 1010 &lt;br /&gt;
::= (2^32-1)-2^0-2^2 = 2^32-(1+2^0+2^2) &lt;br /&gt;
::= (signed) -(1+2^0+2^2) = -6&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitOr|v2.60|BitOr(int, int)}}&lt;br /&gt;
: Returns the bitwise inclusive OR (sets bit to 1 if one of the bits (or both) is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitOr(5, 6) = 7 # since 5 = 101, 6 = 110, and 101|110 = 111&lt;br /&gt;
 BitOr(4, 2) = 6 # since 4 = 100, 2 = 010, and 100|010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitXor|v2.60|BitXor(int, int)}}&lt;br /&gt;
: Returns the bitwise exclusive OR (sets bit to 1 if exactly one of the bits is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitXor(5, 6) = 3 # since 5 = 101, 6 = 110, and 101^110 = 011&lt;br /&gt;
 BitXor(4, 2) = 6 # since 4 = 100, 2 = 010, and 100^010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLShift|v2.60|BitLShift(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShl|v2.60|BitShl(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSal|v2.60|BitSal(int, int)}}&lt;br /&gt;
: Shift the bits of a number to the left.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number 5 two bits to the left:&lt;br /&gt;
 BitLShift(5, 2) = 20 (since 101 &amp;lt;&amp;lt; 2 = 10100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftA|v2.60|BitRShiftA(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftS|v2.60|BitRShiftS(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSar|v2.60|BitSar(int, int)}}&lt;br /&gt;
: Shift the bits of an integer to the right. (Arithmetic, Sign bit fill, Right Shift)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as signed:&lt;br /&gt;
 BitRShiftA(-42, 1) = -21 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1  &lt;br /&gt;
 #      = 1111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right, unsigned =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftL|v2.60|BitRShiftL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftU|v2.60|BitRShiftU(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShr|v2.60|BitShr(int, int)}}&lt;br /&gt;
: Shift the bits of an unsigned integer to the right. (Logical, zero fill, Right Shift)&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as unsigned:&lt;br /&gt;
 BitRShiftL(-42, 1) = 2147483627 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1 &lt;br /&gt;
 #      = 0111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: -42 = -(1+2^0+2^3+2^5) = (unsigned) (2^32-1)-(2^0+2^3+2^5) = &lt;br /&gt;
::1111 1111 1111 1111 1111 1111 1101 0110&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLRotate|v2.60|BitLRotate(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRol|v2.60|BitRol(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the left by the number of bits specified in the second operand. For each rotation specified, the high order bit that exits from the left of the operand returns at the right to become the new low order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number -2147483642 one bit to the left:&lt;br /&gt;
 BitLRotate(-2147483642, 1) = 13 &lt;br /&gt;
 # (since 10000000000000000000000000000110 ROL 1&lt;br /&gt;
 #      = 00000000000000000000000000001101)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRRotate|v2.60|BitRRotateL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRor|v2.60|BitRor(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the right by the number of bits specified in the second operand. For each rotation specified, the low order bit that exits from the right of the operand returns at the left to become the new high order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number 13 one bit to the right:&lt;br /&gt;
 BitRRotate(13, 1) = -2147483642 &lt;br /&gt;
 # (since 00000000000000000000000000001101 ROR 1 &lt;br /&gt;
 #      = 10000000000000000000000000000110)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit test =====&lt;br /&gt;
{{ScriptFunctionCode|BitTest|v2.60|BitTest(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitTst|v2.60|BitTst(int, int)}}&lt;br /&gt;
: Tests a single bit (that is, it returns true if its state is one, else it returns false). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Check the state of the fourth bit:&lt;br /&gt;
 BitTest(3, 4) = False&lt;br /&gt;
 BitTest(19, 4) = True&lt;br /&gt;
 &lt;br /&gt;
 Check the state of the sign bit:&lt;br /&gt;
 BitTest(-1, 31) = True&lt;br /&gt;
 BitTest(2147483647, 31) = False&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSet|v2.60|BitSet(int, int)}}&lt;br /&gt;
: Sets a single bit to one (so it sets its state to one). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Set the state of the fourth bit to one:&lt;br /&gt;
 BitSet(3, 4) = 19&lt;br /&gt;
 BitSet(19, 4) = 19&lt;br /&gt;
 &lt;br /&gt;
 Set the state of the sign bit to one:&lt;br /&gt;
 BitSet(-1, 31) = -1&lt;br /&gt;
 BitSet(2147483647, 31) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSetCount||BitSetCount(int [, int...])}} {{AvsPluscon}}&lt;br /&gt;
: Returns the total number of set bits in all supplied integer arguments.&lt;br /&gt;
&lt;br /&gt;
===== Bit clear =====&lt;br /&gt;
{{ScriptFunctionCode|BitClear|v2.60|BitClear(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitClr|v2.60|BitClr(int, int)}}&lt;br /&gt;
: Sets a single bit to zero (so it sets its state to zero). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Clear the bits of the number 5&lt;br /&gt;
 BitClear(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitClear(5, 1) = 5 (second bit is already zero)&lt;br /&gt;
 BitClear(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitClear(5, 3) = 5 (fourth bit is already zero)&lt;br /&gt;
 &lt;br /&gt;
 Clear the state of the sign bit:&lt;br /&gt;
 BitClear(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit change =====&lt;br /&gt;
{{ScriptFunctionCode|BitChange|v2.60|BitChange(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitChg|v2.60|BitChg(int, int)}}&lt;br /&gt;
: Sets a single bit to its complement (so it changes the state of a single bit; 1 becomes 0 and vice versa). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero). The sign bit is bit 31.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Change the state of the a bit of the number 5:&lt;br /&gt;
 BitChange(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitChange(5, 1) = 7 (second bit is set to one)&lt;br /&gt;
 BitChange(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitChange(5, 3) = 13 (fourth bit is set to one)&lt;br /&gt;
 &lt;br /&gt;
 Change the state of the sign bit:&lt;br /&gt;
 BitChange(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Runtime functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These are internal functions which are evaluated at every frame. They can be used inside the scripts passed to runtime filters ([[ConditionalFilter]], [[ScriptClip]], [[FrameEvaluate]]) to return information for a frame.&lt;br /&gt;
&lt;br /&gt;
===== Average ===== &lt;br /&gt;
{{ScriptFunctionCode|AverageLuma||AverageLuma(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaU||AverageChromaU(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaV||AverageChromaV(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageB||AverageB(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageG||AverageG(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageR||AverageR(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value with the average pixel value of a plane (Luma, U-chroma and V-chroma, respectively). They require an [[ISSE]] capable cpu. In v2.61 an {{FuncArg|offset}} argument is added which enables you to access other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ScriptClip(Last, &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     threshold = 55&lt;br /&gt;
     luma = AverageLuma ## gives the average luma of the current frame&lt;br /&gt;
     #luma = AverageLuma(1) ## gives the average luma of the next frame&lt;br /&gt;
     luma &amp;lt; threshold &lt;br /&gt;
     \ ? Levels(0, 1.0+0.5*(threshold-luma)/threshold, 255, 0, 255) &lt;br /&gt;
     \ : last&lt;br /&gt;
     Subtitle(&amp;quot;luma=&amp;quot; + String(luma), align=2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference =====&lt;br /&gt;
{{ScriptFunctionCode|LumaDifference||LumaDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaUDifference||ChromaUDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaVDifference||ChromaVDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifference||RGBDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifference||BDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifference||GDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifference||RDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value between 0 and 255 of the absolute difference between two planes from two different clips &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. They require an [[ISSE]] capable cpu.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ovl = [[Overlay]](last, mov_star, x=some_xvalue, y=some_yvalue, mask=mov_mask)&lt;br /&gt;
 ldif = LumaDifference(ovl) # implicit last for clip1&lt;br /&gt;
 udif = ChromaUDifference([[Tweak]](hue=24), ovl)&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference from previous =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceFromPrevious||YDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceFromPrevious||UDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceFromPrevious||VDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceFromPrevious||RGBDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceFromPrevious||BDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceFromPrevious||GDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceFromPrevious||RDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and previous frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious) &amp;gt; threshold)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference to next =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceToNext||YDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceToNext||UDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceToNext||VDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceToNext||RGBDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceToNext||BDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceToNext||GDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceToNext||RDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and next frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the difference between the RGB, luma or chroma plane of the current frame and of ''any'' other frame. Note that for example clip.'''RGBDifferenceToNext'''(-1) = clip.'''RGBDifferenceToPrevious''', and clip.'''RGBDifferenceToNext'''(0) = 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # both th1, th2 are positive thresholds; th1 is larger enough than th2&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious &amp;gt; th1) &amp;amp;&amp;amp; (YDifferenceToNext &amp;lt; th2)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Color plane median, min, max, range =====&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMedian||YPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMedian||UPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMedian||VPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMedian||BPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMedian||GPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMedian||RPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMin||YPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMin||UPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMin||VPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMin||BPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMin||GPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMin||RPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMax||YPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMax||UPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMax||VPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMax||BPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMax||GPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMax||RPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMinMaxDifference||YPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMinMaxDifference||UPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMinMaxDifference||VPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMinMaxDifference||BPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMinMaxDifference||GPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMinMaxDifference||RPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
: This group of functions return statistics about the distribution of pixel values on a plane (Luma, U-chroma and V-chroma, respectively). The statistics are, in order of presentation: maximum, minimum, median and range (maximum - minimum difference). &lt;br /&gt;
: {{FuncArg|threshold}} is a percentage, stating how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the statistics of other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # median and average are close only on even distributions; &lt;br /&gt;
 # this can be a useful diagnostic&lt;br /&gt;
 have_intense_brights = YPlaneMedian() - AverageLuma() &amp;lt; threshold&lt;br /&gt;
 ...&lt;br /&gt;
 # a simple per-frame normalizer to [16..235], CCIR, range&lt;br /&gt;
 [[Levels]](YPlaneMin(), 1.0, YPlaneMax(), 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth script information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptName|v2.60|ScriptName()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 name = ScriptName() # name = &amp;quot;F:\ProjectXYZ\video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptNameUtf8|{{AvsPluscon}}|ScriptNameUtf8()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFile|v2.60|ScriptFile()}}&lt;br /&gt;
: Returns the filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 file = ScriptFile() # file = &amp;quot;video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFileUtf8|{{AvsPluscon}}|ScriptFileUtf8()}}&lt;br /&gt;
: Returns the filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDir|v2.60|ScriptDir()}}&lt;br /&gt;
: Returns the path of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 folder = ScriptDir() # folder = &amp;quot;F:\ProjectXYZ&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDirUtf8|{{AvsPluscon}}|ScriptDirUtf8()}}&lt;br /&gt;
: Returns the path of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetLogParams|{{AvsPluscon}}|SetLogParams([string ''target'', int ''level''])}}&lt;br /&gt;
: Sets a file path for a log file, used by [[#LogMsg|LogMsg]] and internal error reporting.&lt;br /&gt;
:* {{FuncArg|target}} names a file which will be created when the script loads. If attempting to create or write to {{FuncArg|target}} fails, the script will raise an error immediately. If the file exists, new log entries will be appended to the end. If omitted, {{FuncArg|target}} defaults to [[wikipedia:Stderr|stderr]].&lt;br /&gt;
:* {{FuncArg|level}} sets the log ''verbosity''; it can be one of the following:&lt;br /&gt;
::{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_ERROR&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(1)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the fewest log entries&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_WARNING&amp;lt;/tt&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(2)&amp;lt;/small&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the most log entries&lt;br /&gt;
|}&lt;br /&gt;
::If omitted, {{FuncArg|level}} defaults to &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
:''Examples'' see [[#LogMsg|LogMsg]] below.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LogMsg|{{AvsPluscon}}|LogMsg(string, int)}}&lt;br /&gt;
: Creates a new log entry.&lt;br /&gt;
:* {{FuncArg|string}} (required) specifies the log message.&lt;br /&gt;
:* {{FuncArg|int}} (required) specifies the log entry level: see [[#SetLogParams|SetLogParams]] above.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## creating file and set path for future log entries:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test1.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents:''&lt;br /&gt;
 (empty)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging an INFO message:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test2.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 LogMsg(&amp;quot;this is a test&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ''log contents:''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: this is a test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging a script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test3.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents (redundant entries are common):''&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 35)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging INFO context for script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test4.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 function MyFunction(clip C)&lt;br /&gt;
 {&lt;br /&gt;
     C&lt;br /&gt;
     [[Control_structures|try]] {&lt;br /&gt;
         foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
     } catch (err_msg) {&lt;br /&gt;
         msg2 = &amp;quot;Error in MyFunction: &amp;quot;&lt;br /&gt;
         LogMsg([[#Time|Time]](&amp;quot;%Y-%m-%d %I:%M:%S %p, %z&amp;quot;) + &amp;quot;: &amp;quot; + msg2, LOG_INFO)&lt;br /&gt;
         #[[#Assert|Assert]](false, msg2 + err_msg) ## optional: stop script, else continue&lt;br /&gt;
     }&lt;br /&gt;
     return Last&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ''log contents (redundant entries omitted):''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: 2017-11-12 11:03:41 AM, -0500: Error in MyFunction:&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|GetProcessInfo|{{AvsPluscon}}|GetProcessInfo(int)}}&lt;br /&gt;
: Returns information about the [[wikipedia:Process_(computing)|process]] the script is running in.&lt;br /&gt;
: The ''int'' argument has two legal values:&lt;br /&gt;
:* if ''0'' (default), returns ''64'' for a 64-bit process or ''32'' for a 32-bit process.&lt;br /&gt;
:* else if ''1'',&lt;br /&gt;
:** returns 0 for 32-bit process on 32-bit OS;&lt;br /&gt;
:** returns 1 for 32-bit process on 64-bit OS;&lt;br /&gt;
:** returns 2 for 64-bit process on 64-bit OS;&lt;br /&gt;
:** else returns -1 (unknown)&lt;br /&gt;
:: /// [[TODO]] this is preliminary info&lt;br /&gt;
&lt;br /&gt;
== String functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common operations on string variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LCase||LCase(string)}}&lt;br /&gt;
: Returns lower case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;avisynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|UCase||UCase(string)}}&lt;br /&gt;
: Returns upper case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 UCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;AVISYNTH&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrToUtf8||StrToUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from ANSI to [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrFromUtf8||StrFromUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from [[wikipedia:UTF-8|UTF8]] to ANSI.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrLen||StrLen(string)}}&lt;br /&gt;
: Returns length of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrLen(&amp;quot;AviSynth&amp;quot;) = 8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RevStr||RevStr(string)}}&lt;br /&gt;
: Returns {{FuncArg|string}} backwards.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RevStr(&amp;quot;AviSynth&amp;quot;) = &amp;quot;htnySivA&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LeftStr||LeftStr(string, int)}}&lt;br /&gt;
: Returns first {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LeftStr(&amp;quot;AviSynth&amp;quot;, 3) = &amp;quot;Avi&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RightStr||RightStr(string, int)}}&lt;br /&gt;
: Returns last {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RightStr(&amp;quot;AviSynth&amp;quot;, 5) = &amp;quot;Synth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MidStr||MidStr(string, int pos [, int length])}}&lt;br /&gt;
: Returns substring starting at {{FuncArg|pos}} for optional {{FuncArg|length}} or to end. {{FuncArg|pos}}=1 specifies start.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MidStr(&amp;quot;AviSynth&amp;quot;, 3, 2) = &amp;quot;iS&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FindStr||FindStr(string, substring)}}&lt;br /&gt;
: Returns (1-based) position of {{FuncArg|substring}} within {{FuncArg|string}} &lt;br /&gt;
:* Note this function is case-sensitive. &lt;br /&gt;
:* Returns 0 if {{FuncArg|substring}} is not found.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;Syn&amp;quot;) ## returns 4&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;SYN&amp;quot;) ## returns 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ReplaceStr|{{AvsPluscon}}|ReplaceStr(string, substring, replacement_string [, bool sig])}}&lt;br /&gt;
: Replaces occurrences of {{FuncArg|substring}} with {{FuncArg|replacement_string}} and returns the result. &lt;br /&gt;
:* {{FuncArg|sig}} if false (the default), search is case-sensitive; if true, search is not case-sensitive.&lt;br /&gt;
:* Avisynth 2.6.x users have other options, such as the [[User_defined_script_functions|user]] function below, adapted from ''StrReplace'', found [[HDColorBars|here]].&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 function ReplaceStr(string base, string sought, string repstr) {&lt;br /&gt;
     pos = FindStr(base, sought)&lt;br /&gt;
     return (sought==&amp;quot;&amp;quot; || pos==0) ? base : ReplaceStr(&lt;br /&gt;
     \       LeftStr(base, pos-1) + repstr +&lt;br /&gt;
     \       MidStr(base, pos+StrLen(sought)),&lt;br /&gt;
     \       sought, repstr)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ReplaceStr(&amp;quot;FlipHorizontal&amp;quot;, &amp;quot;Horizontal&amp;quot;, &amp;quot;Vertical&amp;quot;)&lt;br /&gt;
 ReplaceStr(&amp;quot;''$a'' x *&amp;quot;, &amp;quot;''$a''&amp;quot;, String(1.5)) ## (a [[MaskTools2|MaskTools]] expression with argument)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FillStr|v2.60|FillStr(int [, string])}}&lt;br /&gt;
: Fills a string. When {{FuncArg|int}}&amp;gt;1 it concatenates the {{FuncArg|string}} {{FuncArg|int}} times. {{FuncArg|string}} is &amp;quot;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;quot; (space) by default.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 FillStr(1, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynth&amp;quot;&lt;br /&gt;
 FillStr(2, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynthAviSynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmp|v2.60|StrCmp(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) != 0 # strings are not equal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmpi|v2.60|StrCmpi(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is not case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;abcz&amp;quot;, &amp;quot;abcdefg&amp;quot;) != 0 &lt;br /&gt;
 # returns the difference betweeen &amp;quot;z&amp;quot; and &amp;quot;d&amp;quot; (which is positive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TrimLeft, TrimRight, TrimAll =====&lt;br /&gt;
{{ScriptFunctionCode|TrimLeft||TrimLeft(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimRight||TrimRight(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimAll||TrimAll(string)}}&lt;br /&gt;
: Removes whitespace characters (space, tab, [[wikipedia:Non-breaking_space|nonbreaking space]]) from a string.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Chr||Chr(int)}}&lt;br /&gt;
: Returns the ASCII character. &lt;br /&gt;
: Note that characters above the ASCII character set (ie above 127) are code page dependent and may render different (visual) results in different systems. This has an importance only for user-supplied localised text messages.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Chr(34) returns the quote character&lt;br /&gt;
 Chr(9)  returns the tab   character&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ord|v2.60|Ord(string)}}&lt;br /&gt;
: Gives the ordinal number (character code) of the first character of {{FuncArg|string}} (works like php [http://php.net/manual/en/function.ord.php ord] or Basic [http://msdn.microsoft.com/en-us/library/xfw01fx4%28v=vs.84%29.aspx Asc])&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ord(&amp;quot;a&amp;quot;) = 97&lt;br /&gt;
 Ord(&amp;quot;AviSynth&amp;quot;) = Ord(&amp;quot;A&amp;quot;) = 65&lt;br /&gt;
 Ord(&amp;quot;§&amp;quot;) = 167&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Time||Time(string)}}&lt;br /&gt;
: Returns a string with the current system time formatted as defined by {{FuncArg|string}}.&lt;br /&gt;
&lt;br /&gt;
: The string may contain any of the codes for output formatting presented below:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; | Code&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; | Description&lt;br /&gt;
 |-&lt;br /&gt;
 |%a&lt;br /&gt;
%A  &lt;br /&gt;
 | Abbreviated weekday name&lt;br /&gt;
Full weekday name&lt;br /&gt;
 |-&lt;br /&gt;
 |%b&lt;br /&gt;
%B  &lt;br /&gt;
 | Abbreviated month name&lt;br /&gt;
Full month name&lt;br /&gt;
 |-&lt;br /&gt;
 |%c  &lt;br /&gt;
 | Date and time representation appropriate for locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%d  &lt;br /&gt;
 | Day of month as decimal number (01 - 31)&lt;br /&gt;
 |-&lt;br /&gt;
 |%H&lt;br /&gt;
%I  &lt;br /&gt;
 | Hour in 24-hour format (00 - 23)&lt;br /&gt;
Hour in 12-hour format (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%j  &lt;br /&gt;
 | Day of year as decimal number (001 - 366)&lt;br /&gt;
 |-&lt;br /&gt;
 |%m  &lt;br /&gt;
 | Month as decimal number (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%M  &lt;br /&gt;
 | Minute as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%p  &lt;br /&gt;
 | Current locale's A.M./P.M. indicator for 12-hour clock&lt;br /&gt;
 |-&lt;br /&gt;
 |%S  &lt;br /&gt;
 | Second as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%U  &lt;br /&gt;
 | Week of year as decimal number, with Sunday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%w  &lt;br /&gt;
 | Weekday as decimal number (0 - 6; Sunday is 0)&lt;br /&gt;
 |-&lt;br /&gt;
 |%W  &lt;br /&gt;
 | Week of year as decimal number, with Monday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%x  &lt;br /&gt;
 | Date representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%X  &lt;br /&gt;
 | Time representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%y&lt;br /&gt;
%Y  &lt;br /&gt;
 | Year without century, as decimal number (00 - 99)&lt;br /&gt;
Year ''with'' century, as decimal number&lt;br /&gt;
 |-&lt;br /&gt;
 |%z, %Z  &lt;br /&gt;
 | Time-zone name or abbreviation; no characters if time zone is unknown&lt;br /&gt;
 |-&lt;br /&gt;
 |%%  &lt;br /&gt;
 | Percent sign &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
: The '#' flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; |Code with '#' flag&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; |Change in meaning&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''a''', %#'''A''', %#'''b''', &lt;br /&gt;
%#'''B''', %#'''p''', %#'''X''', &lt;br /&gt;
%#'''z''', %#'''Z''', %#'''%'''&lt;br /&gt;
 | No change; flag is ignored. &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''c''' &lt;br /&gt;
 | Long date and time representation, appropriate for current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995, 12:41:29&amp;quot;'' &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''x''' &lt;br /&gt;
 | Long date representation, appropriate to current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995&amp;quot;''&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''d''', %#'''H''', %#'''I''', &lt;br /&gt;
%#'''j''', %#'''m''', %#'''M''', &lt;br /&gt;
%#'''S''', %#'''U''', %#'''w''', &lt;br /&gt;
%#'''W''', %#'''y''', %#'''Y''' &lt;br /&gt;
 | Remove leading zeroes (if any).&lt;br /&gt;
 |}&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 v = Time(&amp;quot;%Y-%m-%d&amp;quot;)        # &amp;quot;2010-03-01&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%d-%b-%Y&amp;quot;)        # &amp;quot;01-Mar-2010&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%#d/%#m/%y&amp;quot;)      # &amp;quot;1/3/10&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%I:%M:%S %p, %z&amp;quot;) # &amp;quot;08:04:42 PM, GMT Standard Time&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%H:%M:%S %z&amp;quot;)     # &amp;quot;20:04:42 GMT Standard Time&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth version information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionNumber||VersionNumber()}}&lt;br /&gt;
: Returns AviSynth version number as a float.&lt;br /&gt;
:* Note: use [[#VersionString|VersionString]] below to determine if running in [[AviSynth+]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionNumber ## returns 2.60 (release version as of 11/2017)&lt;br /&gt;
 VersionNumber ## returns 2.61 (beta)&lt;br /&gt;
 VersionNumber ## returns 2.60 (AVS+ release 2508)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionString||VersionString()}}&lt;br /&gt;
: Returns AviSynth version info as a string (first line used in [[Version]]() command).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.60, build:Mar 31 2015 [16:38:54]&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.61, build:May 17 2016 [16:06:18] VC2008Exp&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth+ 0.1, (r2508, MT, x86_64)&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function IsAvsPlus()&lt;br /&gt;
 {&lt;br /&gt;
     sVer = [[#LCase|LCase]](VersionString) &lt;br /&gt;
     return ([[#FindStr|FindStr]](sVer, &amp;quot;avisynth+&amp;quot;)    &amp;gt; 0)&lt;br /&gt;
     \   || (FindStr(sVer, &amp;quot;avisynthplus&amp;quot;) &amp;gt; 0)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[AviSynth Syntax]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_functions]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;br /&gt;
[[Category:Scripting_Basics]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_functions</id>
		<title>Internal functions</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_functions"/>
				<updated>2018-03-05T01:20:33Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: update for AVS+ r2632&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;
&amp;lt;div style=&amp;quot;max-width:64em&amp;quot; &amp;gt;&lt;br /&gt;
In addition to [[Internal_filters|internal filters]] AviSynth has a fairly large number of other (non-clip) internal functions. &lt;br /&gt;
&lt;br /&gt;
The input or/and output of these functions are not clips, but some other variables which can be used in a script. &lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Short Contents:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
# [[#Boolean_functions|Boolean functions]]&lt;br /&gt;
# [[#Control_functions|Control functions]]&lt;br /&gt;
# [[#Global_options|Global options]]&lt;br /&gt;
# [[#Conversion_functions|Conversion functions]]&lt;br /&gt;
# [[#Numeric_functions|Numeric functions]]&lt;br /&gt;
# [[#Trigonometry_functions|Trigonometry functions]]&lt;br /&gt;
# [[#Bit_functions|Bit functions]]&lt;br /&gt;
# [[#Runtime_functions|Runtime functions]]&lt;br /&gt;
# [[#Script_functions|Script functions]]&lt;br /&gt;
# [[#String_functions|String functions]]&lt;br /&gt;
# [[#Version_functions|Version functions]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:4em;&amp;quot; |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolean functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These return true or false, if the condition that they test holds or not, respectively.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsBool||IsBool(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the bool type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b = false&lt;br /&gt;
 IsBool(b) = true&lt;br /&gt;
 IsBool(1 &amp;lt; 2 &amp;amp;&amp;amp; 0 == 1) = true&lt;br /&gt;
 IsBool(123) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsClip||IsClip(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the clip type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 c = [[AviSource]](...)&lt;br /&gt;
 IsClip(c) = true&lt;br /&gt;
 IsClip(&amp;quot;c&amp;quot;) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsFloat||IsFloat(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the float type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 f = [[Internal_functions/Numeric_functions|Sqrt]](2)&lt;br /&gt;
 IsFloat(f) = true&lt;br /&gt;
 IsFloat(true) = false&lt;br /&gt;
 IsFloat(&amp;quot;42.&amp;quot;) = false&lt;br /&gt;
 IsFloat(2) = true   # ''ints are considered to be floats by this function''&lt;br /&gt;
 IsReallyFloat(2) = false # see below&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: As a workaround for the issue noted above, you may use the following [[User_functions|user function]]:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|3}} &amp;gt;&lt;br /&gt;
 ## return true for floats only&lt;br /&gt;
 function IsReallyFloat(val v)&lt;br /&gt;
 {&lt;br /&gt;
     return (IsInt(v)==false) &amp;amp;&amp;amp; IsFloat(v)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsInt||IsInt(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the int type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsInt(2) = true&lt;br /&gt;
 IsInt(2.1) = false&lt;br /&gt;
 IsInt(true) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsString||IsString(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the string type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsString(&amp;quot;test&amp;quot;) = true&lt;br /&gt;
 IsString(2.3) = false&lt;br /&gt;
 IsString([[Internal_functions/Conversion_functions|String]](2.3)) = true&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exist||Exist(filename)}}&lt;br /&gt;
: Tests if the file specified by {{FuncArg|filename}} exists.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 filename = ...&lt;br /&gt;
 clp = Exist(filename) &lt;br /&gt;
 \ ? [[AviSource]](filename) &lt;br /&gt;
 \ : [[Internal_functions/Control_functions|Assert]](false, &amp;quot;file: &amp;quot; + filename + &amp;quot; does not exist&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Defined||Defined(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is defined. Can be used inside [[Script_functions]] to test if an optional argument has been given an explicit value.&lt;br /&gt;
: More formally, the function returns false if its argument (normally a function argument or variable) has the void ('undefined') type, otherwise it returns true.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b_arg_supplied = Defined(arg)&lt;br /&gt;
 myvar = b_arg_supplied ? ... : ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FunctionExists|{{AvsPluscon}}|FunctionExists(name)}}&lt;br /&gt;
: Tests if the function or filter name is defined in the script.&lt;br /&gt;
: {{FuncArg|name}} can be any string &amp;amp;ndash; it does not need to be a [[Script_variables#Variable_Names|legal name]].&lt;br /&gt;
: ''Example'' &amp;amp;ndash; see [[#Apply|Apply]] below&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|InternalFunctionExists|{{AvsPluscon}}|InternalFunctionExists(name)}}&lt;br /&gt;
: Tests if the function, filter or [[Clip_properties|property]] name is defined natively within [[AviSynth+]].&lt;br /&gt;
:* Unlike [[#FunctionExists|FunctionExists]], returns ''false'' for [[Plugins|external plugins]] and [[User_functions|user-defined functions]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Control functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These facilitate flow of control (loading of scripts, arguments checks, global settings adjustment, etc.).&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Apply||Apply(string ''func_string'' [, arg1 [, arg2 [, ... [, arg''n'']]]] )}}&lt;br /&gt;
: Calls the function or filter {{FuncArg|func_string}} with arguments {{FuncArg|arg1}}, {{FuncArg|arg2}}, ..., {{FuncArg|arg''n''}} (as many as supplied). &lt;br /&gt;
:* This provides a way to call a function or filter '''by name''', with arguments.&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;f(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[[#Eval|Eval]](&amp;quot;f(&amp;quot; + String(x) + &amp;quot;)&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* Note that the clip argument must be supplied explicitly - the [[Last|special variable ''Last'']] is not used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically  &lt;br /&gt;
 new_width = 352&lt;br /&gt;
 new_height = 288&lt;br /&gt;
 &lt;br /&gt;
 Apply(&amp;quot;[[BicubicResize]]&amp;quot;, Last, new_width, new_height)&lt;br /&gt;
 # Note that the clip argument must be supplied - 'Last' is not implicitly assumed&lt;br /&gt;
 &lt;br /&gt;
 ## the same action, using [[#Eval|Eval]]&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + String(new_width) + &amp;quot;,&amp;quot; + String(new_height) + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists (AviSynth 2.6)&lt;br /&gt;
 function MyFilter(clip C, string s) { &lt;br /&gt;
     return C.[[Subtitle]](&amp;quot;MyFilter: &amp;quot;+s, align=5)&lt;br /&gt;
 }&lt;br /&gt;
 ColorBars &lt;br /&gt;
 [[Control_structures|try]] {&lt;br /&gt;
     Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;)&lt;br /&gt;
 } catch (err_msg) {&lt;br /&gt;
     # (ignore)&lt;br /&gt;
 }&lt;br /&gt;
 return Last&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists ([[AviSynth+|AVS+]] only)&lt;br /&gt;
 ColorBars  &lt;br /&gt;
 return [[#FunctionExists|FunctionExists]](&amp;quot;MyFilter&amp;quot;) &lt;br /&gt;
 \ ? Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;) &lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Eval||Eval(expression [, string ''name''])}}&lt;br /&gt;
: Evaluates an arbitrary {{FuncArg|expression}} and returns the result of that evaluation. '''It works exactly like [[#Import|Import]] below''', except&lt;br /&gt;
:* The expression to be evaluated comes from a string instead of a file; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are not changed;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is not changed.&lt;br /&gt;
: Argument {{FuncArg|name}} will be shown in the error message beside the script name. Both will be followed with the line number in {{FuncArg|expression}} where the error occurred.&lt;br /&gt;
&lt;br /&gt;
: Variables in your calling script are available within {{FuncArg|expression}}; [[Global|global variables]] are not required.&lt;br /&gt;
: Note '''Eval''' can return the result of ''any'' valid expression; usually a clip, but also a string, boolean etc.&lt;br /&gt;
: You can use '''Eval''' to construct and evaluate expressions dynamically inside your scripts, based on variable input data.&lt;br /&gt;
: '''Eval''' is useful as a [[Control_structures|control structure]] for creating multi-line ''block statements'' without requiring [[AviSynth%2B|AviSynth+]].&lt;br /&gt;
: '''Eval''' can be used to put aside the need to install external plugins if they are not actually used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically &lt;br /&gt;
 ## calls [[BicubicResize]](last, 352, 288)&lt;br /&gt;
 settings = &amp;quot;352, 288&amp;quot;&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + settings + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## if...else [[Control_structures|control structure]]&lt;br /&gt;
 option = true&lt;br /&gt;
 option  &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[Levels]](0, 1.2, 255, 20, 235)&lt;br /&gt;
     [[Spline36Resize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;) &lt;br /&gt;
 \ : '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[BicubicResize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.3)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it is needed; &lt;br /&gt;
 ## in this example, [[SMDegrain]] only needs to be installed if the option is ''true''.&lt;br /&gt;
 option = false&lt;br /&gt;
 option &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     SMDegrain(tr=2, thSAD=250, contrasharp=true, refinemotion=true, lsb=true)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## accessing script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=[[Subtitle]](&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;A&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## setting script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;B = A.Invert&amp;quot;)&lt;br /&gt;
 return B ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Increment a global variable, based on a local variable&lt;br /&gt;
 Eval(&amp;quot;global my_counter = my_counter + &amp;quot; + [[#String|String]](increment)) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## multi-line example with comment and line continuation&lt;br /&gt;
 '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[BicubicResize]](352, 288)&lt;br /&gt;
 #FlipVertical&lt;br /&gt;
 Subtitle(&lt;br /&gt;
 \   &amp;quot;Width  = &amp;quot;  + [[#String|String]]([[Clip_properties|Width]]) + &amp;quot;\n&amp;quot;&lt;br /&gt;
 \ + &amp;quot;Height = &amp;quot; + String(Height)&lt;br /&gt;
 \ , align=7, lsp=0)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Empty expression &lt;br /&gt;
 ## results in error: 'Defined(u) == false'&lt;br /&gt;
 u = Eval(&amp;quot;#&amp;quot;)   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Error reporting&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, size=Height, align=2)&lt;br /&gt;
 Eval(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;, '''&amp;quot;eval_test_1&amp;quot;''') ## name for error reporting purposes&lt;br /&gt;
 return Last&lt;br /&gt;
 &lt;br /&gt;
 ''results in the error message:''&lt;br /&gt;
 Script error: there is no function named &amp;quot;foo&amp;quot;&lt;br /&gt;
 '''(eval_test_1, line 3)'''&lt;br /&gt;
 (E:\_test.avs, line 6)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Import||Import(filename)}}&lt;br /&gt;
{{ScriptFunctionCode|Import||Import(filename [, ...] [, bool utf8])}} {{AvsPluscon}}&lt;br /&gt;
: Evaluates the contents of another script and returns the result of that evaluation. '''It works exactly like [[#Eval|Eval]] above''', except&lt;br /&gt;
:* The expression to be evaluated comes from a file instead of a string; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are set to the current (imported) script;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is [[Internal_functions#SetWorkingDir|set]] to the current (imported) script.&lt;br /&gt;
:* {{FuncArg|utf8}} {{AvsPluscon}} if true, assumes filename(s) are [[wikipedia:UTF-8|UTF8]], else (default), assume ANSI.&lt;br /&gt;
&lt;br /&gt;
:[[Script_functions|Functions]], [[Script_variables|variables]] and loaded plugins declared inside the imported script are made available to the parent script. &amp;lt;b&amp;gt;Import&amp;lt;/b&amp;gt;'s return value  can be assigned to a variable of the parent script; this is most useful when the imported script ends with a clip.&lt;br /&gt;
&lt;br /&gt;
: Typically '''Import''' is used to make library functions available to the parent script, and the return value is not used. However this is simply a convention; it is not enforced by the [[AviSynth Syntax]]. Some indicative uses of '''Import''' include:&lt;br /&gt;
:* Storing multiple script-functions, variables and global variables for reuse by scripts (creation of script libraries).&lt;br /&gt;
:* Retrieving pre-built streams.&lt;br /&gt;
:* Retrieving dynamically configured pre-built streams (the core idea is that the importing script declares some global variables which the imported script uses to configure the stream that will return).&lt;br /&gt;
:'''Note 1''': Since the contents of the imported script are evaluated at the point of invocation, it is possible by enclosing the '''Import''' call in a nested scope (for example inside a function) to make available to the importing script the functions and globals of the imported script ''without'' its script-level variables.&lt;br /&gt;
:'''Note 2''': Any script with the [[AVSI]] extension in the AviSynth Plugins folder is automatically imported. This is useful for making script functions available to any new script you create without having to copy and paste.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # ''B.avsi''&lt;br /&gt;
 A.Invert&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5) ## create clip 'A'&lt;br /&gt;
 Import(&amp;quot;B.avsi&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## here we do not care about the return value (''mylib.avsi'' contains only functions)&lt;br /&gt;
 Import(&amp;quot;mylib.avsi&amp;quot;)  &lt;br /&gt;
 ...&lt;br /&gt;
 ## ''mysources.avsi'' loads predetermined file names from a folder into globals&lt;br /&gt;
 okflag = Import(&amp;quot;mysources.avsi&amp;quot;)  &lt;br /&gt;
 source = okflag ? global1 + global2 + global3 : [[BlankClip]]()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Select||Select(index, item0 [, item1 [, ...[, itemn]]])}}&lt;br /&gt;
: Returns the item selected by the {{FuncArg|index}} argument, which must be of int type (0 returns {{FuncArg|item0}}, 1 returns {{FuncArg|item1}}, ..., etc). Items can be any script [[Script_variables|variable]] or expression of any type and can even be mixed.&lt;br /&gt;
&lt;br /&gt;
:If {{FuncArg|index}} is out of range, an error is raised.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # select a clip-brush from a set of presets&lt;br /&gt;
 idx = 2&lt;br /&gt;
 brush = Select(idx, [[AviSource]](&amp;quot;round.avi&amp;quot;), &lt;br /&gt;
 \        rectangle, diagonal, diagonal.[[FlipHorizontal]])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - all branches are evaluated:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 Select(index, &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &lt;br /&gt;
 \        Assert(false, &amp;quot;Select evaluates all branches&amp;quot;)) &lt;br /&gt;
 ## NOTE this code does not run - it throws [[#Assert|Assert]] error&lt;br /&gt;
 ## because Select evaluates all branches&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is not desired, use the [[Ternary_operator|conditional execution]] operator: &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 x = (index==0) ? &amp;quot;zero&amp;quot;&lt;br /&gt;
 \ : (index==1) ? &amp;quot;one&amp;quot;&lt;br /&gt;
 \ : (index==2) ? &amp;quot;two&amp;quot;&lt;br /&gt;
 \ : Assert(false, &amp;quot;index out of range&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Default||Default(x, d)}}&lt;br /&gt;
: Returns {{FuncArg|x}} if '''Defined'''(x) is true, {{FuncArg|d}} otherwise. {{FuncArg|x}} must either be a function's argument or an already declared script variable (ie a variable which has been assigned a value) else an error will occur.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Assert||Assert(condition [, err_msg])}}&lt;br /&gt;
: Does nothing if {{FuncArg|condition}} is true; throws an error, immediately terminating script execution, if {{FuncArg|condition}} is false. In the later case {{FuncArg|err_msg}}, if supplied, is presented to the user through a dialog box; else the standard message &amp;quot;Assert: assertion failed&amp;quot; shows up.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     Assert(strength &amp;gt; 0, &amp;quot;'strength' must be positive&amp;quot;)&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|NOP||NOP()}}&lt;br /&gt;
: This is a no-operation function provided mainly for conditional execution with non-return value items such as [[Import]], when no &amp;quot;else&amp;quot; condition is desired. That is, use it whenever the [[AviSynth Syntax]] requires an operation (such as with the ?: [[Operators#For_Booleans|operator]]) but your script does not need one.&lt;br /&gt;
: Return value: 0 (int type).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 preset = want_presets ? [[AviSource]](&amp;quot;c:\presets\any.avi&amp;quot;) : NOP&lt;br /&gt;
 ... &lt;br /&gt;
 loadlib ? [[Import]](&amp;quot;my_useful_functions.avs&amp;quot;) : NOP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Undefined|v2.60|Undefined()}}&lt;br /&gt;
: Returns the undefined state.&lt;br /&gt;
: It's the state for which '''Defined'''() returns false.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 x = Undefined()&lt;br /&gt;
 Defined(x) # == false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Options ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{ScriptFunctionH5|SetMemoryMax||SetMemoryMax(amount)}}&lt;br /&gt;
: Sets the maximum memory that AviSynth uses (in MB) to the value of {{FuncArg|amount}}. Setting to zero just returns the current Memory Max value. In the 2.5 series the default Memory Max value is 25% of the free physical memory, with a minimum of 16MB.&lt;br /&gt;
: The default Memory Max is also limited to 512MB.&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; &amp;lt;!-- width=50% --&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | Free memory&lt;br /&gt;
 | &amp;lt;64&lt;br /&gt;
 | 128&lt;br /&gt;
 | 256&lt;br /&gt;
 | 512&lt;br /&gt;
 | 1024&lt;br /&gt;
 | 2048&lt;br /&gt;
 | 3072&lt;br /&gt;
 |-&lt;br /&gt;
 | Default Max&lt;br /&gt;
 | 16&lt;br /&gt;
 | 32&lt;br /&gt;
 | 64&lt;br /&gt;
 | 192&lt;br /&gt;
 | 448&lt;br /&gt;
 | 512&lt;br /&gt;
 | 512&lt;br /&gt;
 |}&lt;br /&gt;
: In some versions there is a default setting of 5MB, which is quite low. If you encounter problems (e.g. low speed) try to set this values to at least 32MB. Too high values can result in crashes because of 2GB address space limit.&lt;br /&gt;
: Return value: Actual MemoryMax value set.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetMemoryMax(128)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetWorkingDir||SetWorkingDir(path)}}&lt;br /&gt;
: Sets the default directory for AviSynth to the {{FuncArg|path}} argument.&lt;br /&gt;
: This is primarily for easy loading of source clips, [[Import|importing]] scripts, etc. It does not affect plugins' autoloading. &lt;br /&gt;
: Return value is 0 if successful, -1 otherwise.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetWorkingDir(&amp;quot;c:\my_presets&amp;quot;)&lt;br /&gt;
 [[AviSource]](&amp;quot;border_mask.avi&amp;quot;)  # this loads c:\my_presets\border_mask.avi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetPlanarLegacyAlignment||SetPlanarLegacyAlignment(mode)}}&lt;br /&gt;
: Set alignment mode for [[planar]] frames. {{FuncArg|mode}} can either be true or false.&lt;br /&gt;
: Some older [[External_plugins|plugins]] illegally assume the layout of video frames in memory. This special filter forces the memory layout of planar frames to be compatible with prior versions of AviSynth. The filter works on the [[The_script_execution_model/Evaluation_of_runtime_scripts|GetFrame]]() call stack, so it effects filters '''before''' it in the script.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Example : Using an older version of Mpeg2Source() (1.10 or older):&lt;br /&gt;
 &lt;br /&gt;
 LoadPlugin(&amp;quot;...\Mpeg2Decode.dll&amp;quot;)&lt;br /&gt;
 Mpeg2Source(&amp;quot;test.d2v&amp;quot;)         # A plugin that illegally assumes the layout of memory&lt;br /&gt;
 SetPlanarLegacyAlignment(true)  # Set legacy memory alignment for prior statements&lt;br /&gt;
 [[Convert|ConvertToYUY2]]()     # Statements through to the end of the script have&lt;br /&gt;
 ...                             # advanced memory alignment.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AllowFloatAudio||global OPT_AllowFloatAudio &amp;amp;#61; true ## default false}}&lt;br /&gt;
: [[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true (this option enables WAVE_FORMAT_IEEE_FLOAT audio output&amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?t=109608]&amp;lt;/sup&amp;gt;). In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
:The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_UseWaveExtensible||global OPT_UseWaveExtensible &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables WAVE_FORMAT_EXTENSIBLE audio output. The default is WAVE_FORMAT_EX.&lt;br /&gt;
: '''Note:''' The default DirectShow component for .AVS files, &amp;quot;AVI/WAV File Source&amp;quot;, does not correctly implement WAVE_FORMAT_EXTENSIBLE processing, so many application may not be able to detect the audio track. There are third party DirectShow readers that do work correctly. Intermediate work files written using the AVIFile interface for later DirectShow processing will work correctly if they use the DirectShow &amp;quot;File Source (async)&amp;quot; component or equivalent. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_dwChannelMask|v2.60|global OPT_dwChannelMask(int v)}}&lt;br /&gt;
: This option enables you to set ChannelMask. It overrides WAVEFORMATEXTENSIBLE.dwChannelMask&amp;lt;sup&amp;gt;[[http://wiki.multimedia.cx/index.php?title=WAVEFORMATEXTENSIBLE]&amp;lt;/sup&amp;gt; which is set according to this table&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 0x00004, // 1   -- -- Cf&lt;br /&gt;
 0x00003, // 2   Lf Rf&lt;br /&gt;
 0x00007, // 3   Lf Rf Cf&lt;br /&gt;
 0x00033, // 4   Lf Rf -- -- Lr Rr&lt;br /&gt;
 0x00037, // 5   Lf Rf Cf -- Lr Rr&lt;br /&gt;
 0x0003F, // 5.1 Lf Rf Cf Sw Lr Rr&lt;br /&gt;
 0x0013F, // 6.1 Lf Rf Cf Sw Lr Rr -- -- Cr&lt;br /&gt;
 0x0063F, // 7.1 Lf Rf Cf Sw Lr Rr -- -- -- Ls Rs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AVIPadScanlines|v2.60|global OPT_AVIPadScanlines &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables DWORD aligned planar padding. Default is packed aligned planar padding. See [[AVIFile output emulation|memory alignment used in the AVIFile output emulation]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_VDubPlanarHack|v2.60|global OPT_VDubPlanarHack &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables flipped YV24 and YV16 chroma planes. This is an hack for early versions of Virtualdub with YV24/YV16 support. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_V210|{{AvsPluscon}}|global OPT_Enable_V210 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, [[Frameserver|Frameserve]] interleaved V210 instead of planar P210. (VfW)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
{{BoldColor|black|100|§}} ''VfW'' here means [[wikipedia:Video_for_Windows|Video For Windows]] clients such as VirtualDub are affected, but not other clients such as ffmpeg.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_10|{{AvsPluscon}}|global OPT_Enable_Y3_10_10 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, set the [[FourCC]] to Y3[10][10] ('Y', '3', 10, 10) instead of P210  ('P', '2', '1', '0'). (VfW) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_16|{{AvsPluscon}}|global OPT_Enable_Y3_10_16 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 16bit YUV422, use Y3[10][16] instead of P216 (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_b64a|{{AvsPluscon}}|global OPT_Enable_b64a &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Use b64a instead of BRA[64] (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_PlanarToPackedRGB|{{AvsPluscon}}|global OPT_Enable_PlanarToPackedRGB &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Convert Planar RGB to packed RGB (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conversion functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These convert between different types.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Value||Value(string)}}&lt;br /&gt;
: Converts a decimal string to its associated numeric value.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Value (&amp;quot;-2.7&amp;quot;) = -2.7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|HexValue||HexValue(string)}}&lt;br /&gt;
{{ScriptFunctionCode|HexValue||HexValue(string [, int pos])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a hexadecimal string to its associated numeric value. &lt;br /&gt;
:* {{FuncArg|pos}} sets the starting point of the numeric parser. All characters to the left of {{FuncArg|pos}} are ignored. Default is 1 (start of string).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 HexValue (&amp;quot;FF00&amp;quot;) = 65280&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Hex|v2.60|Hex(int)}}&lt;br /&gt;
{{ScriptFunctionCode|Hex||Hex(int [, int width])}} {{AvsPluscon}}&lt;br /&gt;
: Converts a numerical value to its hexadecimal value. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
:* {{FuncArg|width}} sets the minimum width of the returned string. &lt;br /&gt;
::Resulting string will be left-padded with zeroes as needed. Allowed range is 0..8; default is 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Hex (10824234) = &amp;quot;A52A2A&amp;quot;&lt;br /&gt;
 Hex (15 width=2) = &amp;quot;0F&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|String||String(var [, string format_string])}}&lt;br /&gt;
: Converts a variable to a string. ''String'' arguments are passed along unchanged; ''bools'' are converted to &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;; numbers are formatted as described below; other [[Script_variables#Variable_Types|variable types]] (''clip'', ''val'') are converted to the empty string. &lt;br /&gt;
:The syntax of {{FuncArg|format_string}} is as follows:&lt;br /&gt;
::&amp;lt;code&amp;gt;'''%'''[flags][width][.precision]'''f'''&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;i&amp;gt;the leading &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; and trailing &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; are required.&amp;lt;/i&amp;gt;&lt;br /&gt;
:The parts of {{FuncArg|format_string}} are:&lt;br /&gt;
:; ''flags'' &lt;br /&gt;
::{| class=wikitable&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;&lt;br /&gt;
|left align (right align by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the +/- sign (show only '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;' by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|pad (see ''width'') with leading zeroes (pad with spaces by default)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;amp;nbsp;'&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;'&amp;amp;nbsp;&lt;br /&gt;
|print a blank instead of a '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;'&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the decimal point (dropped by default if there are no decimal digits)&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
:; ''width''&lt;br /&gt;
:: the minimum width (the string is never truncated if it is wider than ''width'')&lt;br /&gt;
:; ''precision''&lt;br /&gt;
:: the number of decimal digits&lt;br /&gt;
: You can also put arbitrary text around {{FuncArg|format_string}}, similar to the C-language [http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm sprintf] function.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|62|2}} &amp;gt;&lt;br /&gt;
 Subtitle( String(1.23) )                    # '1.230000' (six decimals by default for floats)&lt;br /&gt;
 Subtitle( String(123) )                     # '123'      (no decimals by default for ints)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.2f&amp;quot; ))           # '1.23'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.1f&amp;quot; ))           # '1.2'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%5.1f&amp;quot;) )           # '  1.2'    (padded to 5 characters wide)&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%1.3f&amp;quot;) )           # '1.230'    (3 decimals; add trailing zeroes)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.0f&amp;quot;) )            # '123'      (no decimals for precision=0)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%''#''0.0f&amp;quot;) )           # '123.'     ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.2f&amp;quot;) )            # '123.00'   (2 decimals: add trailing zeroes)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%5.0f&amp;quot;) )            # '  123'    (padded to 5 characters wide using ' ')&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%05.0f&amp;quot;) )           # '00123'    (padded to 5 characters wide using '0')&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.0f&amp;quot;) )          # 'PI=3'     (text around format_string)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%''#''0.0f&amp;quot;) )         # 'PI=3.'    ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%2.0f&amp;quot;) )          # 'PI= 3'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%3.2f&amp;quot;) )          # 'PI=3.14'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.5f&amp;quot;) )          # 'PI=3.14159'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%6.3f&amp;quot;) )          # 'PI= 3.142'&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(32, &amp;quot;%0.0f&amp;quot;) )             # '32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%3.0f&amp;quot;) )             # ' 32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%8.0f&amp;quot;) )             # '      32'&lt;br /&gt;
 &lt;br /&gt;
 ## arbitrary text around format_string:&lt;br /&gt;
 Subtitle( String(Last.Height, &amp;quot;Clip height is %0.0f&amp;quot;) ) # 'Clip height is 480'&lt;br /&gt;
 ## same output as above but using string concatenation:&lt;br /&gt;
 Subtitle( &amp;quot;Clip height is &amp;quot; + String(Last.Height) )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numeric functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common mathematical operations on numeric variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Max||Max(float, float [, ...])}}&lt;br /&gt;
: Returns the maximum value of a set of numbers.&lt;br /&gt;
: If all the values are of type Int, the result is an Int. If any of the values are of type Float, the result is a Float.&lt;br /&gt;
: This may cause an unexpected result when an Int value greater than 16777216 is mixed with Float values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Max (1, 2) = 2&lt;br /&gt;
 Max (5, 3.0, 2) = 5.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Min||Min(float, float [, ...])}}&lt;br /&gt;
: Returns the minimum value of a set of numbers.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Min (1, 2) = 1&lt;br /&gt;
 Min (5, 3.0, 2) = 2.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MulDiv||MulDiv(int, int, int)}}&lt;br /&gt;
: Multiplies two ints (m, n) and divides the product by a third (d) in a single operation, with 64 bit intermediate result. The actual equation used is &amp;lt;tt&amp;gt; (m * n + d / 2) / d &amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MulDiv (1, 1, 2) = 1&lt;br /&gt;
 MulDiv (2, 3, 2) = 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Floor||Floor(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round down on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Floor(1.2) = 1&lt;br /&gt;
 Floor(1.6) = 1&lt;br /&gt;
 Floor(-1.2) = -2&lt;br /&gt;
 Floor(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ceil||Ceil(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round up on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ceil(1.2) = 2&lt;br /&gt;
 Ceil(1.6) = 2&lt;br /&gt;
 Ceil(-1.2) = -1&lt;br /&gt;
 Ceil(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Round||Round(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round off to nearest integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Round(1.2) = 1&lt;br /&gt;
 Round(1.6) = 2&lt;br /&gt;
 Round(-1.2) = -1&lt;br /&gt;
 Round(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Int||Int(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round towards zero).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Int(1.2) = 1&lt;br /&gt;
 Int(1.6) = 1&lt;br /&gt;
 Int(-1.2) = -1&lt;br /&gt;
 Int(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Float||Float(int)}}&lt;br /&gt;
: Converts int to single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value. Integer values that require more than 24-bits to be represented will have their lower 8-bits truncated yielding unexpected values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Float(4) = 4.0&lt;br /&gt;
 Float(4) / 3 = 1.333 (while 4 / 3 = 1 , due to integer division)&lt;br /&gt;
 Float(123456789) = 123456792.0 (error = -3, 0.000002%)&lt;br /&gt;
 Float(1234567890) = 1234567936.0 (error = -46, 0.000004%)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Fmod|v2.60|Fmod(float, float)}}&lt;br /&gt;
: Returns the modulo of the argument. Output is float.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Fmod(3.5, 0.5) = 0 (since 3.5 - 7*0.5 = 0)&lt;br /&gt;
 Fmod(3.5, 1.0) = 0.5 (since 3.5 - 3*1.0 = 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pi||Pi()}}&lt;br /&gt;
: Returns the value of the {{BoldColor|black|110|π}} constant (the ratio of a circle's circumference to its diameter).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 d = Pi()    # d == 3.141592653&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exp||Exp(float)}}&lt;br /&gt;
: Returns the natural (base-e) exponent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Exp(1) = 2.7182818&lt;br /&gt;
 Exp(0) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log||Log(float)}}&lt;br /&gt;
: Returns the natural (base-e) logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log(1) = 0.0&lt;br /&gt;
 Log(10) = 2.30259&lt;br /&gt;
 Log(Exp(1)) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log10|v2.60|Log10(float)}}&lt;br /&gt;
: Returns the common logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log10(1.0) = 0&lt;br /&gt;
 Log10(10.0) = 1.0&lt;br /&gt;
 Log10(2.0) = 0.3010299957&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pow||Pow(float base, float power)}}&lt;br /&gt;
: Returns {{FuncArg|base}} raised to a {{FuncArg|power}}.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Pow(2, 3) = 8&lt;br /&gt;
 Pow(3, 2) = 9&lt;br /&gt;
 Pow(3.45, 1.75) = 8.7334&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sqrt||Sqrt(float)}}&lt;br /&gt;
: Returns the square root of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sqrt(1) = 1.0&lt;br /&gt;
 Sqrt(2) = 1.4142&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Abs||Abs(float or int)}}&lt;br /&gt;
: Returns the absolute value of its argument (returns float for float, integer for integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Abs(-3.8) = 3.8&lt;br /&gt;
 Abs(-4) = 4&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sign||Sign(float)}}&lt;br /&gt;
: Returns the sign of the value passed as argument (1, 0 or -1).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sign(-3.5) = -1&lt;br /&gt;
 Sign(3.5) = 1&lt;br /&gt;
 Sign(0) = 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Frac||Frac(float)}}&lt;br /&gt;
: Returns the fractional portion of the value provided.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Frac(3.7) = 0.7&lt;br /&gt;
 Frac(-1.8) = -0.8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Rand||Rand([int max] [, bool scale] [, bool seed])}}&lt;br /&gt;
: Returns a random integer value. All parameters are optional. &lt;br /&gt;
:;max&lt;br /&gt;
::sets the maximum value+1 (default 32768) and can be set negative for negative results. It operates either in scaled or modulus mode (default {{FuncArg|scale}}=true only if [[#Abs|Abs]]({{FuncArg|max}}) &amp;gt; 32768, false otherwise). &lt;br /&gt;
:;scale&lt;br /&gt;
::When true, ''scales'' the internal random number generator value to the maximum value, while ''modulus mode'' ({{FuncArg|scale}}=false) uses the remainder from an integer divide of the random generator value by the maximum. Modulus mode is recommended for smaller maximums. &lt;br /&gt;
:;seed&lt;br /&gt;
::When true, seeds the random number generator with the current time. {{FuncArg|seed}} defaults to false and probably isn't necessary, although it's there just in case. &lt;br /&gt;
: Typically, this function would be used with the [[#Select|'''Select''']] function for random clips. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Select(Rand(5), clip1, clip2, clip3, clip4, clip5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Spline||Spline(float X, x1, y1, x2, y2, .... [, bool cubic])}}&lt;br /&gt;
: Interpolates the Y value at point X using the control points {{FuncArg|x1}}/{{FuncArg|y1}}, ... There have to be at least 2 x/y-pairs. The interpolation can be {{FuncArg|cubic}} (the result is a spline) or linear (the result is a polygon). Default is cubic.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Continued Numerator, Denominator =====&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(int, int, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(int, int, int limit)}}&lt;br /&gt;
: The rational pair ('''ContinuedNumerator''', '''ContinuedDenominator''') returned has the smallest possible denominator such that the absolute error is less than 1/{{FuncArg|limit}}. More information can be found on [http://en.wikipedia.org/wiki/Continued_fraction wikipedia].&lt;br /&gt;
: If {{FuncArg|limit}} is not specified in the Float case the rational pair returned is to the limit of the single precision floating point value. Thus (float)((double)Num/(double)Den) == V.&lt;br /&gt;
: In the Int case if {{FuncArg|limit}} is not specified then the normalized original values will be returned, i.e. reduced by the ''GCD'' (greatest common divisor).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ContinuedNumerator(PI(), limit=5000]) = 355&lt;br /&gt;
 ContinuedDenominator(PI(), limit=5000) = 113&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(PI(), limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(PI(), limit=50) = 7&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(355, 113, limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(355, 113, limit=50) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigonometry functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: relationships involving lengths and angles of triangles. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sin||Sin(float)}}&lt;br /&gt;
: Returns the sine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sin(Pi()/4) = 0.707&lt;br /&gt;
 Sin(Pi()/2) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cos||Cos(float)}}&lt;br /&gt;
: Returns the cosine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cos(Pi()/4) = 0.707&lt;br /&gt;
 Cos(Pi()/2) = 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tan|v2.60|Tan(float)}}&lt;br /&gt;
: Returns the tangent of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tan(Pi/4) = 1.0&lt;br /&gt;
 Tan(Pi/2) = not defined&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: 32 bit IEEE floats do not have sufficient resolution to exactly represent&lt;br /&gt;
: pi/2 so AviSynth returns a large positive number for the value slightly less&lt;br /&gt;
: than pi/2 and a large negative value for the next possible value which is&lt;br /&gt;
: slightly greater than pi/2.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Asin|v2.60|Asin(float)}}&lt;br /&gt;
: Returns the inverse of the sine of the argument (output is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Asin(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Asin(1.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Acos|v2.60|Acos(float)}}&lt;br /&gt;
: Returns the inverse of the cosine of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Acos(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Acos(0.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan|v2.60|Atan(float)}}&lt;br /&gt;
: Returns the inverse of the tangent of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan(0.707) = 0.6154085176&lt;br /&gt;
 Atan(1.0) = 0.7853981634 (~ Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan2|v2.60|Atan2(float, float)}}&lt;br /&gt;
: Returns the angle between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. Output is in radians. See [http://en.wikipedia.org/wiki/Atan2 wikipedia] for more information.&lt;br /&gt;
: y is the first argument and x is the second argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan2(1.0, 0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
 Atan2(1.0, 1.0) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Atan2(-1.0, -1.0) = -2.356194490 (~ -3Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sinh|v2.60|Sinh(float)}}&lt;br /&gt;
: Returns the hyperbolic sine of the argument. See [http://en.wikipedia.org/wiki/Hyperbolic_function wikipedia] for more information.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sinh(2.0) = 3.626860408&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cosh|v2.60|Cosh(float)}}&lt;br /&gt;
: Returns the hyperbolic cosine of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cosh(2.0) = 3.762195691&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tanh|v2.60|Tanh(float)}}&lt;br /&gt;
: Returns the hyperbolic tangent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tanh(2.0) = 0.9640275801&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bit functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: The functions are ''bitwise operators''. They manipulate individual bits within integer variables. This means that their arguments (being integers) are converted to binary numbers, the operation is performed on their bits, and the resulting binary number is converted back again.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitAnd|v2.60|BitAnd(int, int)}}&lt;br /&gt;
: Returns the bitwise AND (sets bit to 1 if both bits are 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitAnd(5, 6) = 4 # since 5 = 101, 6 = 110, and 101&amp;amp;110 = 100&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitNot|v2.60|BitNot(int)}}&lt;br /&gt;
: Returns the bit-inversion (sets bit to 1 if bit is 0 and vice-versa).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitNOT(5) = -6 &lt;br /&gt;
 # since  5 = 101,  &lt;br /&gt;
 # and ~101 = 1111 1111 1111 1111 1111 1111 1111 1010 = -6&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: 1111 1111 1111 1111 1111 1111 1111 1010 &lt;br /&gt;
::= (2^32-1)-2^0-2^2 = 2^32-(1+2^0+2^2) &lt;br /&gt;
::= (signed) -(1+2^0+2^2) = -6&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitOr|v2.60|BitOr(int, int)}}&lt;br /&gt;
: Returns the bitwise inclusive OR (sets bit to 1 if one of the bits (or both) is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitOr(5, 6) = 7 # since 5 = 101, 6 = 110, and 101|110 = 111&lt;br /&gt;
 BitOr(4, 2) = 6 # since 4 = 100, 2 = 010, and 100|010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitXor|v2.60|BitXor(int, int)}}&lt;br /&gt;
: Returns the bitwise exclusive OR (sets bit to 1 if exactly one of the bits is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitXor(5, 6) = 3 # since 5 = 101, 6 = 110, and 101^110 = 011&lt;br /&gt;
 BitXor(4, 2) = 6 # since 4 = 100, 2 = 010, and 100^010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLShift|v2.60|BitLShift(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShl|v2.60|BitShl(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSal|v2.60|BitSal(int, int)}}&lt;br /&gt;
: Shift the bits of a number to the left.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number 5 two bits to the left:&lt;br /&gt;
 BitLShift(5, 2) = 20 (since 101 &amp;lt;&amp;lt; 2 = 10100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftA|v2.60|BitRShiftA(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftS|v2.60|BitRShiftS(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSar|v2.60|BitSar(int, int)}}&lt;br /&gt;
: Shift the bits of an integer to the right. (Arithmetic, Sign bit fill, Right Shift)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as signed:&lt;br /&gt;
 BitRShiftA(-42, 1) = -21 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1  &lt;br /&gt;
 #      = 1111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right, unsigned =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftL|v2.60|BitRShiftL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftU|v2.60|BitRShiftU(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShr|v2.60|BitShr(int, int)}}&lt;br /&gt;
: Shift the bits of an unsigned integer to the right. (Logical, zero fill, Right Shift)&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as unsigned:&lt;br /&gt;
 BitRShiftL(-42, 1) = 2147483627 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1 &lt;br /&gt;
 #      = 0111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: -42 = -(1+2^0+2^3+2^5) = (unsigned) (2^32-1)-(2^0+2^3+2^5) = &lt;br /&gt;
::1111 1111 1111 1111 1111 1111 1101 0110&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLRotate|v2.60|BitLRotate(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRol|v2.60|BitRol(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the left by the number of bits specified in the second operand. For each rotation specified, the high order bit that exits from the left of the operand returns at the right to become the new low order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number -2147483642 one bit to the left:&lt;br /&gt;
 BitLRotate(-2147483642, 1) = 13 &lt;br /&gt;
 # (since 10000000000000000000000000000110 ROL 1&lt;br /&gt;
 #      = 00000000000000000000000000001101)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRRotate|v2.60|BitRRotateL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRor|v2.60|BitRor(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the right by the number of bits specified in the second operand. For each rotation specified, the low order bit that exits from the right of the operand returns at the left to become the new high order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number 13 one bit to the right:&lt;br /&gt;
 BitRRotate(13, 1) = -2147483642 &lt;br /&gt;
 # (since 00000000000000000000000000001101 ROR 1 &lt;br /&gt;
 #      = 10000000000000000000000000000110)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit test =====&lt;br /&gt;
{{ScriptFunctionCode|BitTest|v2.60|BitTest(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitTst|v2.60|BitTst(int, int)}}&lt;br /&gt;
: Tests a single bit (that is, it returns true if its state is one, else it returns false). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Check the state of the fourth bit:&lt;br /&gt;
 BitTest(3, 4) = False&lt;br /&gt;
 BitTest(19, 4) = True&lt;br /&gt;
 &lt;br /&gt;
 Check the state of the sign bit:&lt;br /&gt;
 BitTest(-1, 31) = True&lt;br /&gt;
 BitTest(2147483647, 31) = False&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSet|v2.60|BitSet(int, int)}}&lt;br /&gt;
: Sets a single bit to one (so it sets its state to one). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Set the state of the fourth bit to one:&lt;br /&gt;
 BitSet(3, 4) = 19&lt;br /&gt;
 BitSet(19, 4) = 19&lt;br /&gt;
 &lt;br /&gt;
 Set the state of the sign bit to one:&lt;br /&gt;
 BitSet(-1, 31) = -1&lt;br /&gt;
 BitSet(2147483647, 31) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit clear =====&lt;br /&gt;
{{ScriptFunctionCode|BitClear|v2.60|BitClear(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitClr|v2.60|BitClr(int, int)}}&lt;br /&gt;
: Sets a single bit to zero (so it sets its state to zero). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Clear the bits of the number 5&lt;br /&gt;
 BitClear(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitClear(5, 1) = 5 (second bit is already zero)&lt;br /&gt;
 BitClear(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitClear(5, 3) = 5 (fourth bit is already zero)&lt;br /&gt;
 &lt;br /&gt;
 Clear the state of the sign bit:&lt;br /&gt;
 BitClear(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit change =====&lt;br /&gt;
{{ScriptFunctionCode|BitChange|v2.60|BitChange(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitChg|v2.60|BitChg(int, int)}}&lt;br /&gt;
: Sets a single bit to its complement (so it changes the state of a single bit; 1 becomes 0 and vice versa). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero). The sign bit is bit 31.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Change the state of the a bit of the number 5:&lt;br /&gt;
 BitChange(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitChange(5, 1) = 7 (second bit is set to one)&lt;br /&gt;
 BitChange(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitChange(5, 3) = 13 (fourth bit is set to one)&lt;br /&gt;
 &lt;br /&gt;
 Change the state of the sign bit:&lt;br /&gt;
 BitChange(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Runtime functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These are internal functions which are evaluated at every frame. They can be used inside the scripts passed to runtime filters ([[ConditionalFilter]], [[ScriptClip]], [[FrameEvaluate]]) to return information for a frame.&lt;br /&gt;
&lt;br /&gt;
===== Average ===== &lt;br /&gt;
{{ScriptFunctionCode|AverageLuma||AverageLuma(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaU||AverageChromaU(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaV||AverageChromaV(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageB||AverageB(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageG||AverageG(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageR||AverageR(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value with the average pixel value of a plane (Luma, U-chroma and V-chroma, respectively). They require an [[ISSE]] capable cpu. In v2.61 an {{FuncArg|offset}} argument is added which enables you to access other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ScriptClip(Last, &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     threshold = 55&lt;br /&gt;
     luma = AverageLuma ## gives the average luma of the current frame&lt;br /&gt;
     #luma = AverageLuma(1) ## gives the average luma of the next frame&lt;br /&gt;
     luma &amp;lt; threshold &lt;br /&gt;
     \ ? Levels(0, 1.0+0.5*(threshold-luma)/threshold, 255, 0, 255) &lt;br /&gt;
     \ : last&lt;br /&gt;
     Subtitle(&amp;quot;luma=&amp;quot; + String(luma), align=2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference =====&lt;br /&gt;
{{ScriptFunctionCode|LumaDifference||LumaDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaUDifference||ChromaUDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaVDifference||ChromaVDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifference||RGBDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifference||BDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifference||GDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifference||RDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value between 0 and 255 of the absolute difference between two planes from two different clips &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. They require an [[ISSE]] capable cpu.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ovl = [[Overlay]](last, mov_star, x=some_xvalue, y=some_yvalue, mask=mov_mask)&lt;br /&gt;
 ldif = LumaDifference(ovl) # implicit last for clip1&lt;br /&gt;
 udif = ChromaUDifference([[Tweak]](hue=24), ovl)&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference from previous =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceFromPrevious||YDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceFromPrevious||UDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceFromPrevious||VDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceFromPrevious||RGBDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceFromPrevious||BDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceFromPrevious||GDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceFromPrevious||RDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and previous frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious) &amp;gt; threshold)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference to next =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceToNext||YDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceToNext||UDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceToNext||VDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceToNext||RGBDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceToNext||BDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceToNext||GDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceToNext||RDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and next frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the difference between the RGB, luma or chroma plane of the current frame and of ''any'' other frame. Note that for example clip.'''RGBDifferenceToNext'''(-1) = clip.'''RGBDifferenceToPrevious''', and clip.'''RGBDifferenceToNext'''(0) = 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # both th1, th2 are positive thresholds; th1 is larger enough than th2&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious &amp;gt; th1) &amp;amp;&amp;amp; (YDifferenceToNext &amp;lt; th2)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Color plane median, min, max, range =====&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMedian||YPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMedian||UPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMedian||VPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMedian||BPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMedian||GPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMedian||RPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMin||YPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMin||UPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMin||VPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMin||BPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMin||GPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMin||RPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMax||YPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMax||UPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMax||VPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMax||BPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMax||GPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMax||RPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMinMaxDifference||YPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMinMaxDifference||UPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMinMaxDifference||VPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMinMaxDifference||BPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMinMaxDifference||GPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMinMaxDifference||RPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
: This group of functions return statistics about the distribution of pixel values on a plane (Luma, U-chroma and V-chroma, respectively). The statistics are, in order of presentation: maximum, minimum, median and range (maximum - minimum difference). &lt;br /&gt;
: {{FuncArg|threshold}} is a percentage, stating how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the statistics of other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # median and average are close only on even distributions; &lt;br /&gt;
 # this can be a useful diagnostic&lt;br /&gt;
 have_intense_brights = YPlaneMedian() - AverageLuma() &amp;lt; threshold&lt;br /&gt;
 ...&lt;br /&gt;
 # a simple per-frame normalizer to [16..235], CCIR, range&lt;br /&gt;
 [[Levels]](YPlaneMin(), 1.0, YPlaneMax(), 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth script information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptName|v2.60|ScriptName()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 name = ScriptName() # name = &amp;quot;F:\ProjectXYZ\video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptNameUtf8|{{AvsPluscon}}|ScriptNameUtf8()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFile|v2.60|ScriptFile()}}&lt;br /&gt;
: Returns the filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 file = ScriptFile() # file = &amp;quot;video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFileUtf8|{{AvsPluscon}}|ScriptFileUtf8()}}&lt;br /&gt;
: Returns the filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDir|v2.60|ScriptDir()}}&lt;br /&gt;
: Returns the path of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 folder = ScriptDir() # folder = &amp;quot;F:\ProjectXYZ&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDirUtf8|{{AvsPluscon}}|ScriptDirUtf8()}}&lt;br /&gt;
: Returns the path of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetLogParams|{{AvsPluscon}}|SetLogParams([string ''target'', int ''level''])}}&lt;br /&gt;
: Sets a file path for a log file, used by [[#LogMsg|LogMsg]] and internal error reporting.&lt;br /&gt;
:* {{FuncArg|target}} names a file which will be created when the script loads. If attempting to create or write to {{FuncArg|target}} fails, the script will raise an error immediately. If the file exists, new log entries will be appended to the end. If omitted, {{FuncArg|target}} defaults to [[wikipedia:Stderr|stderr]].&lt;br /&gt;
:* {{FuncArg|level}} sets the log ''verbosity''; it can be one of the following:&lt;br /&gt;
::{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_ERROR&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(1)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the fewest log entries&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_WARNING&amp;lt;/tt&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(2)&amp;lt;/small&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the most log entries&lt;br /&gt;
|}&lt;br /&gt;
::If omitted, {{FuncArg|level}} defaults to &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
:''Examples'' see [[#LogMsg|LogMsg]] below.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LogMsg|{{AvsPluscon}}|LogMsg(string, int)}}&lt;br /&gt;
: Creates a new log entry.&lt;br /&gt;
:* {{FuncArg|string}} (required) specifies the log message.&lt;br /&gt;
:* {{FuncArg|int}} (required) specifies the log entry level: see [[#SetLogParams|SetLogParams]] above.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## creating file and set path for future log entries:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test1.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents:''&lt;br /&gt;
 (empty)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging an INFO message:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test2.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 LogMsg(&amp;quot;this is a test&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ''log contents:''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: this is a test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging a script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test3.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents (redundant entries are common):''&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 35)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging INFO context for script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test4.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 function MyFunction(clip C)&lt;br /&gt;
 {&lt;br /&gt;
     C&lt;br /&gt;
     [[Control_structures|try]] {&lt;br /&gt;
         foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
     } catch (err_msg) {&lt;br /&gt;
         msg2 = &amp;quot;Error in MyFunction: &amp;quot;&lt;br /&gt;
         LogMsg([[#Time|Time]](&amp;quot;%Y-%m-%d %I:%M:%S %p, %z&amp;quot;) + &amp;quot;: &amp;quot; + msg2, LOG_INFO)&lt;br /&gt;
         #[[#Assert|Assert]](false, msg2 + err_msg) ## optional: stop script, else continue&lt;br /&gt;
     }&lt;br /&gt;
     return Last&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ''log contents (redundant entries omitted):''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: 2017-11-12 11:03:41 AM, -0500: Error in MyFunction:&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|GetProcessInfo|{{AvsPluscon}}|GetProcessInfo(int)}}&lt;br /&gt;
: Returns information about the [[wikipedia:Process_(computing)|process]] the script is running in.&lt;br /&gt;
: The ''int'' argument has two legal values:&lt;br /&gt;
:* if ''0'' (default), returns ''64'' for a 64-bit process or ''32'' for a 32-bit process.&lt;br /&gt;
:* else if ''1'',&lt;br /&gt;
:** returns 0 for 32-bit process on 32-bit OS;&lt;br /&gt;
:** returns 1 for 32-bit process on 64-bit OS;&lt;br /&gt;
:** returns 2 for 64-bit process on 64-bit OS;&lt;br /&gt;
:** else returns -1 (unknown)&lt;br /&gt;
:: /// [[TODO]] this is preliminary info&lt;br /&gt;
&lt;br /&gt;
== String functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common operations on string variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LCase||LCase(string)}}&lt;br /&gt;
: Returns lower case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;avisynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|UCase||UCase(string)}}&lt;br /&gt;
: Returns upper case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 UCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;AVISYNTH&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrToUtf8||StrToUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from ANSI to [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrFromUtf8||StrFromUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from [[wikipedia:UTF-8|UTF8]] to ANSI.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrLen||StrLen(string)}}&lt;br /&gt;
: Returns length of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrLen(&amp;quot;AviSynth&amp;quot;) = 8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RevStr||RevStr(string)}}&lt;br /&gt;
: Returns {{FuncArg|string}} backwards.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RevStr(&amp;quot;AviSynth&amp;quot;) = &amp;quot;htnySivA&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LeftStr||LeftStr(string, int)}}&lt;br /&gt;
: Returns first {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LeftStr(&amp;quot;AviSynth&amp;quot;, 3) = &amp;quot;Avi&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RightStr||RightStr(string, int)}}&lt;br /&gt;
: Returns last {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RightStr(&amp;quot;AviSynth&amp;quot;, 5) = &amp;quot;Synth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MidStr||MidStr(string, int pos [, int length])}}&lt;br /&gt;
: Returns substring starting at {{FuncArg|pos}} for optional {{FuncArg|length}} or to end. {{FuncArg|pos}}=1 specifies start.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MidStr(&amp;quot;AviSynth&amp;quot;, 3, 2) = &amp;quot;iS&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FindStr||FindStr(string, substring)}}&lt;br /&gt;
: Returns (1-based) position of {{FuncArg|substring}} within {{FuncArg|string}} &lt;br /&gt;
:* Note this function is case-sensitive. &lt;br /&gt;
:* Returns 0 if {{FuncArg|substring}} is not found.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;Syn&amp;quot;) ## returns 4&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;SYN&amp;quot;) ## returns 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ReplaceStr|{{AvsPluscon}}|ReplaceStr(string, substring, replacement_string [, bool sig])}}&lt;br /&gt;
: Replaces occurrences of {{FuncArg|substring}} with {{FuncArg|replacement_string}} and returns the result. &lt;br /&gt;
:* {{FuncArg|sig}} if false (the default), search is case-sensitive; if true, search is not case-sensitive.&lt;br /&gt;
:* Avisynth 2.6.x users have other options, such as the [[User_defined_script_functions|user]] function below, adapted from ''StrReplace'', found [[HDColorBars|here]].&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 function ReplaceStr(string base, string sought, string repstr) {&lt;br /&gt;
     pos = FindStr(base, sought)&lt;br /&gt;
     return (sought==&amp;quot;&amp;quot; || pos==0) ? base : ReplaceStr(&lt;br /&gt;
     \       LeftStr(base, pos-1) + repstr +&lt;br /&gt;
     \       MidStr(base, pos+StrLen(sought)),&lt;br /&gt;
     \       sought, repstr)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ReplaceStr(&amp;quot;FlipHorizontal&amp;quot;, &amp;quot;Horizontal&amp;quot;, &amp;quot;Vertical&amp;quot;)&lt;br /&gt;
 ReplaceStr(&amp;quot;''$a'' x *&amp;quot;, &amp;quot;''$a''&amp;quot;, String(1.5)) ## (a [[MaskTools2|MaskTools]] expression with argument)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FillStr|v2.60|FillStr(int [, string])}}&lt;br /&gt;
: Fills a string. When {{FuncArg|int}}&amp;gt;1 it concatenates the {{FuncArg|string}} {{FuncArg|int}} times. {{FuncArg|string}} is &amp;quot;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;quot; (space) by default.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 FillStr(1, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynth&amp;quot;&lt;br /&gt;
 FillStr(2, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynthAviSynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmp|v2.60|StrCmp(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) != 0 # strings are not equal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmpi|v2.60|StrCmpi(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is not case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;abcz&amp;quot;, &amp;quot;abcdefg&amp;quot;) != 0 &lt;br /&gt;
 # returns the difference betweeen &amp;quot;z&amp;quot; and &amp;quot;d&amp;quot; (which is positive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TrimLeft, TrimRight, TrimAll =====&lt;br /&gt;
{{ScriptFunctionCode|TrimLeft||TrimLeft(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimRight||TrimRight(string)}}&lt;br /&gt;
{{ScriptFunctionCode|TrimAll||TrimAll(string)}}&lt;br /&gt;
: Removes whitespace characters (space, tab, [[wikipedia:Non-breaking_space|nonbreaking space]]) from a string.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Chr||Chr(int)}}&lt;br /&gt;
: Returns the ASCII character. &lt;br /&gt;
: Note that characters above the ASCII character set (ie above 127) are code page dependent and may render different (visual) results in different systems. This has an importance only for user-supplied localised text messages.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Chr(34) returns the quote character&lt;br /&gt;
 Chr(9)  returns the tab   character&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ord|v2.60|Ord(string)}}&lt;br /&gt;
: Gives the ordinal number (character code) of the first character of {{FuncArg|string}} (works like php [http://php.net/manual/en/function.ord.php ord] or Basic [http://msdn.microsoft.com/en-us/library/xfw01fx4%28v=vs.84%29.aspx Asc])&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ord(&amp;quot;a&amp;quot;) = 97&lt;br /&gt;
 Ord(&amp;quot;AviSynth&amp;quot;) = Ord(&amp;quot;A&amp;quot;) = 65&lt;br /&gt;
 Ord(&amp;quot;§&amp;quot;) = 167&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Time||Time(string)}}&lt;br /&gt;
: Returns a string with the current system time formatted as defined by {{FuncArg|string}}.&lt;br /&gt;
&lt;br /&gt;
: The string may contain any of the codes for output formatting presented below:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; | Code&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; | Description&lt;br /&gt;
 |-&lt;br /&gt;
 |%a&lt;br /&gt;
%A  &lt;br /&gt;
 | Abbreviated weekday name&lt;br /&gt;
Full weekday name&lt;br /&gt;
 |-&lt;br /&gt;
 |%b&lt;br /&gt;
%B  &lt;br /&gt;
 | Abbreviated month name&lt;br /&gt;
Full month name&lt;br /&gt;
 |-&lt;br /&gt;
 |%c  &lt;br /&gt;
 | Date and time representation appropriate for locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%d  &lt;br /&gt;
 | Day of month as decimal number (01 - 31)&lt;br /&gt;
 |-&lt;br /&gt;
 |%H&lt;br /&gt;
%I  &lt;br /&gt;
 | Hour in 24-hour format (00 - 23)&lt;br /&gt;
Hour in 12-hour format (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%j  &lt;br /&gt;
 | Day of year as decimal number (001 - 366)&lt;br /&gt;
 |-&lt;br /&gt;
 |%m  &lt;br /&gt;
 | Month as decimal number (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%M  &lt;br /&gt;
 | Minute as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%p  &lt;br /&gt;
 | Current locale's A.M./P.M. indicator for 12-hour clock&lt;br /&gt;
 |-&lt;br /&gt;
 |%S  &lt;br /&gt;
 | Second as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%U  &lt;br /&gt;
 | Week of year as decimal number, with Sunday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%w  &lt;br /&gt;
 | Weekday as decimal number (0 - 6; Sunday is 0)&lt;br /&gt;
 |-&lt;br /&gt;
 |%W  &lt;br /&gt;
 | Week of year as decimal number, with Monday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%x  &lt;br /&gt;
 | Date representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%X  &lt;br /&gt;
 | Time representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%y&lt;br /&gt;
%Y  &lt;br /&gt;
 | Year without century, as decimal number (00 - 99)&lt;br /&gt;
Year ''with'' century, as decimal number&lt;br /&gt;
 |-&lt;br /&gt;
 |%z, %Z  &lt;br /&gt;
 | Time-zone name or abbreviation; no characters if time zone is unknown&lt;br /&gt;
 |-&lt;br /&gt;
 |%%  &lt;br /&gt;
 | Percent sign &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
: The '#' flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; |Code with '#' flag&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; |Change in meaning&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''a''', %#'''A''', %#'''b''', &lt;br /&gt;
%#'''B''', %#'''p''', %#'''X''', &lt;br /&gt;
%#'''z''', %#'''Z''', %#'''%'''&lt;br /&gt;
 | No change; flag is ignored. &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''c''' &lt;br /&gt;
 | Long date and time representation, appropriate for current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995, 12:41:29&amp;quot;'' &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''x''' &lt;br /&gt;
 | Long date representation, appropriate to current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995&amp;quot;''&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''d''', %#'''H''', %#'''I''', &lt;br /&gt;
%#'''j''', %#'''m''', %#'''M''', &lt;br /&gt;
%#'''S''', %#'''U''', %#'''w''', &lt;br /&gt;
%#'''W''', %#'''y''', %#'''Y''' &lt;br /&gt;
 | Remove leading zeroes (if any).&lt;br /&gt;
 |}&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 v = Time(&amp;quot;%Y-%m-%d&amp;quot;)        # &amp;quot;2010-03-01&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%d-%b-%Y&amp;quot;)        # &amp;quot;01-Mar-2010&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%#d/%#m/%y&amp;quot;)      # &amp;quot;1/3/10&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%I:%M:%S %p, %z&amp;quot;) # &amp;quot;08:04:42 PM, GMT Standard Time&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%H:%M:%S %z&amp;quot;)     # &amp;quot;20:04:42 GMT Standard Time&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth version information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionNumber||VersionNumber()}}&lt;br /&gt;
: Returns AviSynth version number as a float.&lt;br /&gt;
:* Note: use [[#VersionString|VersionString]] below to determine if running in [[AviSynth+]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionNumber ## returns 2.60 (release version as of 11/2017)&lt;br /&gt;
 VersionNumber ## returns 2.61 (beta)&lt;br /&gt;
 VersionNumber ## returns 2.60 (AVS+ release 2508)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionString||VersionString()}}&lt;br /&gt;
: Returns AviSynth version info as a string (first line used in [[Version]]() command).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.60, build:Mar 31 2015 [16:38:54]&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.61, build:May 17 2016 [16:06:18] VC2008Exp&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth+ 0.1, (r2508, MT, x86_64)&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function IsAvsPlus()&lt;br /&gt;
 {&lt;br /&gt;
     sVer = [[#LCase|LCase]](VersionString) &lt;br /&gt;
     return ([[#FindStr|FindStr]](sVer, &amp;quot;avisynth+&amp;quot;)    &amp;gt; 0)&lt;br /&gt;
     \   || (FindStr(sVer, &amp;quot;avisynthplus&amp;quot;) &amp;gt; 0)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[AviSynth Syntax]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_functions]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;br /&gt;
[[Category:Scripting_Basics]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ColorYUV</id>
		<title>ColorYUV</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ColorYUV"/>
				<updated>2018-03-05T00:42:03Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: update for AVS+ r2632&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
'''ColorYUV''' has many different methods of changing the color and luminance of your images. Gain, offset, gamma and contrast can be set independently on each channel. Also included are two 'auto' modes, an analysis function and a color gamut generator.&lt;br /&gt;
&lt;br /&gt;
All settings for this filter are optional. All values are defaulting to &amp;quot;0&amp;quot; or false. &lt;br /&gt;
&lt;br /&gt;
[[RGBAdjust]] works in a similar manner for [[RGB]] clips.&lt;br /&gt;
&lt;br /&gt;
* In AviSynth 2.6, all [[YUV]] color formats are supported ([[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]] and [[YUY2]])&lt;br /&gt;
* {{AvsPluscon}} all non-[[Float_(color_format)|Float]] [[YUV]] and [[YUVA]] color formats are supported.&lt;br /&gt;
* {{AvsPluscon}} all parameters are [[Autoscale_parameter|autoscaling]] &amp;amp;ndash; they work without changes at all bit depths.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax and Parameters ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ColorYUV(clip [, &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_y'', float ''off_y'', float ''gamma_y'', float ''cont_y'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_u'', float ''off_u'', float ''gamma_u'', float ''cont_u'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_v'', float ''off_v'', float ''gamma_v'', float ''cont_v'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''levels'', string ''opt'', bool ''showyuv'', bool ''analyze'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''autowhite'', bool ''autogain'', bool ''conditional'' ] )}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ColorYUV(clip [, &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_y'', float ''off_y'', float ''gamma_y'', float ''cont_y'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_u'', float ''off_u'', float ''gamma_u'', float ''cont_u'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;float ''gain_v'', float ''off_v'', float ''gamma_v'', float ''cont_v'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;string ''levels'', string ''opt'', bool ''showyuv'', bool ''analyze'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;bool ''autowhite'', bool ''autogain'', bool ''conditional'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;int ''bits'', bool ''showyuv_fullrange'', bool ''f2c'' ] )}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gain_y|float|0}}&lt;br /&gt;
:{{Par2|gain_u|float|0}}&lt;br /&gt;
:{{Par2|gain_v|float|0}}&lt;br /&gt;
::A multiplier for the ''Y'', ''U'' or ''V'' value. &lt;br /&gt;
::If {{FuncArg|gain_y}} = {{Serif|''k''}}, then ''Y'' becomes ''Y'' '''·''' ({{Serif|''k''}} / 256 + 1) – for example:&lt;br /&gt;
::('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|gain_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| multiplier&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.0 (no output)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (darker)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (brighter)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|}&lt;br /&gt;
::*{{FuncArg|gain_}}''x'' is valid down to -256, where a gain of 0.0 is applied. &lt;br /&gt;
::*Although it is possible, it doesn't make sense to apply this setting to the chroma of the signal.&lt;br /&gt;
::*In order to confuse you, in the filter [[Tweak]] this setting is called ''contrast''. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|off_y|float|0}}&lt;br /&gt;
:{{Par2|off_u|float|0}}&lt;br /&gt;
:{{Par2|off_v|float|0}}&lt;br /&gt;
::Adds an ''offset'' to the luma or chroma values. &lt;br /&gt;
::*An {{FuncArg|off_}}''x'' of 16 will add 16{{D}} to all pixel values.  &lt;br /&gt;
::*An {{FuncArg|off_}}''x'' of -32 will subtract 32{{D}} from all pixel values.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gamma_y|float|0}}&lt;br /&gt;
:{{Par2|gamma_u|float|0}}&lt;br /&gt;
:{{Par2|gamma_v|float|0}}&lt;br /&gt;
::Adjusts [[Wikipedia:Gamma_correction|gamma]] of the specified channel, &lt;br /&gt;
:: as ''X''{{Sup2|(1/{{Template:Serif|g}})}} where {{Serif|''g''}}=({{FuncArg|gamma_}}''x'' + 256) / 256 &amp;amp;ndash; for example: &lt;br /&gt;
:: ('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|gamma_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| gamma&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.01&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (darker)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (lighter)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|}&lt;br /&gt;
::*{{FuncArg|gamma_}}''x'' is valid down to -256, where a minimal gamma of 0.01 is applied (gamma cannot be zero)&lt;br /&gt;
::*'''Note:''' gamma for chroma is not implemented (''gamma_u'' and ''gamma_v'' are dummy parameters).&lt;br /&gt;
&lt;br /&gt;
:{{Par2|cont_y|float|0}}&lt;br /&gt;
:{{Par2|cont_u|float|0}}&lt;br /&gt;
:{{Par2|cont_v|float|0}}&lt;br /&gt;
::Like {{FuncArg|gain_}}''X'', a multiplier for the value, but stretches or shrinks the signal from the center (128{{D}}). &lt;br /&gt;
::This is most useful for the chroma components, where it translates to saturation. &lt;br /&gt;
::If {{FuncArg|cont_y}} = {{Serif|''k''}}, then ''Y'' becomes (''Y''-128) '''·''' {{Serif|''k''}} / 256 + 128 &amp;amp;ndash; for example:&lt;br /&gt;
:: ('''TL;DR''' ''see [[#Parameter_Rescaling|Parameter Rescaling]] below'')&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:4em;text-align:left;&amp;quot;| {{FuncArg|cont_}}''x''&lt;br /&gt;
!style=&amp;quot;padding:0.3em;width:8em;text-align:center;&amp;quot;| &amp;amp;rarr;&lt;br /&gt;
!style=&amp;quot;padding:0.3em;&amp;quot;| contrast&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| &amp;amp;nbsp;&amp;amp;nbsp;-256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.0 (zero contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| -128&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (-128 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 0.5 (less contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 0&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (0 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 1.0 (no change)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 256&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (256 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 2.0 (more contrast)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| 512&lt;br /&gt;
|style=&amp;quot;text-align:right;padding:0.3em;&amp;quot;| (512 / 256) + 1&lt;br /&gt;
|style=&amp;quot;text-align:left;padding:0.3em;&amp;quot;| 3.0&lt;br /&gt;
|} &lt;br /&gt;
::*{{FuncArg|cont_}}''x'' is valid down to -256, where the signal is set to 128{{D}}. &lt;br /&gt;
::*Although it is possible, it doesn't make sense to apply this setting to the luma of the signal.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|levels|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Can be &amp;quot;&amp;lt;tt&amp;gt;TV-&amp;gt;PC&amp;lt;/tt&amp;gt;&amp;quot;, &amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot; or nothing (default)&lt;br /&gt;
::This option can convert between &amp;quot;TV&amp;quot; range (black=16{{D}}, white=235{{D}}) and &amp;quot;Full&amp;quot; or &amp;quot;PC&amp;quot; range (black=0{{D}}, white=255{{D}}).&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;TV-&amp;gt;PC&amp;lt;/tt&amp;gt;&amp;quot;, a 16{{D}}-235{{D}} &amp;amp;rarr; 0{{D}}-255{{D}} (contrast increasing) conversion is made&lt;br /&gt;
::*If {{FuncArg|levels}}=&amp;quot;&amp;lt;tt&amp;gt;PC-&amp;gt;TV&amp;lt;/tt&amp;gt;&amp;quot;, a 0{{D}}-255{{D}} &amp;amp;rarr; 16{{D}}-235{{D}} (contrast decreasing) conversion is made&lt;br /&gt;
::*By default, no conversion is made&lt;br /&gt;
&lt;br /&gt;
:{{Par2|opt|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
::Can be either &amp;quot;coring&amp;quot; or &amp;quot;&amp;quot; (nothing, default setting). &lt;br /&gt;
::Specifying &amp;quot;coring&amp;quot; will clip your YUV values to the &amp;quot;TV&amp;quot; range (16{{D}}-235{{D}}). Otherwise values outside that range will be accepted.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|showyuv|bool|false}}&lt;br /&gt;
::If ''true, ''this option will overwrite your image with a new 448x448 image showing all chroma values along the two axes. This can be useful if you need to adjust the color of your image, but need to know how the colors are arranged.  At the top left of the image, the chroma values are 16{{D}}. At the right side of the image, U is at maximum.  At the bottom of the screen V is at its maximum.  In the middle both chroma is 128{{D}} (or grey). See example image [[#Examples:|below]].&lt;br /&gt;
::{{AvsPluscon}} Size changes depending on options selected &amp;amp;ndash; see {{FuncArg|showyuv_fullrange}} below&lt;br /&gt;
::If {{FuncArg|bits}}=8, output colorspace is YV12, else colorspace is YUV422P16&lt;br /&gt;
&lt;br /&gt;
:{{Par2|analyze|bool|false}}&lt;br /&gt;
::If true, '''ColorYUV''' will print color channel statistics on the screen (see [[#analyze|example below]])&lt;br /&gt;
::*There is an '''Average''' for all channels. &lt;br /&gt;
::*There are '''Minimum''' and '''Maximum''' values for all channels. &lt;br /&gt;
::*There is '''Loose Minimum''' and '''Loose Maximum''' which ignore the brightest and darkest 0.4% (1/256) pixels.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|autowhite|bool|false}}&lt;br /&gt;
::If ''true, ''this option will use the information from the analyzer, and attempt to center the color offsets. If you have recorded some material, where the colors are shifted toward one color, this filter may help. But be careful - it isn't very intelligent - if your material is a clear blue sky, {{FuncArg|autowhite}} will make it completely grey! This option overrides {{FuncArg|off_u|}} and {{FuncArg|off_v}}.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|autogain|bool|false}}&lt;br /&gt;
::If ''true, ''this option will use the information from the analyzer, and attempt to create as good contrast as possible. That means, it will scale up the ''Y ''(luma) values to match the minimum and maximum values. This will make it act like an &amp;quot;autogain&amp;quot; setting on cameras, amplifying dark scenes very much, while leaving scenes with good contrast alone. Some places this is also referred to as &amp;quot;autolevels&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|conditional|bool|false}}&lt;br /&gt;
::See the [[#Conditional_Variables|Conditional Variables]] section for an overview of the conditional variables and their use with '''ColorYUV'''. If ''false'' (the default), '''ColorYUV''' will ignore any conditional variables.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|bits|int|8}}&lt;br /&gt;
::{{AvsPluscon}} Sets the bit depth of {{FuncArg|showyuv}} output. Must be 8, 10, 12, 14 or 16.&lt;br /&gt;
::Size changes depending on options selected &amp;amp;ndash; see next item. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|showyuv_fullrange|bool|false}}&lt;br /&gt;
::{{AvsPluscon}} If ''true,'' {{FuncArg|showyuv}} output is full range instead of TV range.&lt;br /&gt;
::At {{FuncArg|bits}}=8, size of the generated clip grows from 450x450 to 512x512. &lt;br /&gt;
::At {{FuncArg|bits}}&amp;gt;8, size of the generated clip grows from 1800x1800 to 2048x2048. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|f2c|bool|false}}&lt;br /&gt;
::{{AvsPluscon}} If ''true,'' perform [[#Parameter Rescaling|''parameter rescaling'']] as decribed below on all '''cont_'''''x'', '''gain_'''''x'' and '''gamma_'''''x''  arguments.&lt;br /&gt;
::For example, with {{FuncArg|f2c}}=''true'', {{FuncArg|cont_u}}=1.2 results in a 20% increase in ''U'' channel &amp;quot;saturation&amp;quot;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parameter Rescaling==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
The quantities ''saturation'', ''contrast'' and ''brightness'' (as in [[Tweak]] for example) are connected with quantities in this filter by the following equations:&lt;br /&gt;
* {{FuncArg|cont_u}} = {{FuncArg|cont_v}} &amp;amp;#0061; ({{BoldColor|darkblue|100|sat}}-1) * 256&lt;br /&gt;
* {{FuncArg|gain_y}} = ({{BoldColor|darkblue|100|cont}}-1) * 256&lt;br /&gt;
* {{FuncArg|off_y}} = {{BoldColor|darkblue|100|bright}}&lt;br /&gt;
A saturation of 0.8 gives for example: cont_u = cont_v = -0.2 * 256 = -51.2. &lt;br /&gt;
&lt;br /&gt;
Note that in [[Tweak]] your YUV values will always be clipped to valid TV-ranges, but here you have to specify {{FuncArg|opt}}=&amp;quot;coring&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can add a simple [[User_defined_script_functions|user function]] to rescale or translate from familiar &amp;quot;Tweak-like&amp;quot; units to ColorYUV units:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function f2c(float f) {&lt;br /&gt;
     return (f - 1.0) * 256.0&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 ## usage example: &lt;br /&gt;
 ColorYUV(gain_y=f2c({{BoldColor|blue|100|2.0}}), cont_u=f2c({{BoldColor|blue|100|1.2}}), cont_v=f2c({{BoldColor|blue|100|0.8}}) &lt;br /&gt;
 &lt;br /&gt;
 ## that is, gain is 200%, and contrast (saturation) &lt;br /&gt;
 ## is +20% in the U channel, -20% in the V channel.  &lt;br /&gt;
 &lt;br /&gt;
 ## ...which specified normally, would look like this: &lt;br /&gt;
 ColorYUV(gain_y={{BoldColor|blue|100|256}}, cont_u={{BoldColor|blue|100|51.2}}, cont_v={{BoldColor|blue|100|-51.2}})&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Variables ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
The global variables &amp;quot;coloryuv_xxx&amp;quot; with xxx = gain_y, gain_u, gain_v, bright_y, bright_u, bright_v, gamma_y, contrast_y, contrast_u or contrast_v are read each frame, and applied. It is possible to modify these variables using [[FrameEvaluate]] or [[ConditionalReader]]. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
coloryuvoffset.txt:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Type float&lt;br /&gt;
 Default 0.0&lt;br /&gt;
 &lt;br /&gt;
 I 25 50 0.0 255.0&lt;br /&gt;
 R 75 225 128.0&lt;br /&gt;
 I 250 275 255.0 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the script:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Colorbars(512,256).ConvertToYV12.Trim(0,299)&lt;br /&gt;
 ColorYUV(cont_y=10, conditional=true)&lt;br /&gt;
 ConditionalReader(&amp;quot;coloryuvoffset.txt&amp;quot;, &amp;quot;coloryuv_gain_y&amp;quot;, false)&lt;br /&gt;
 ShowFrameNumber()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So up to frame 25 gain_y is equal to the default (which is 0.0), for frame 25 up to 50 the gain_y is increased from 0.0 to 255.0, etc ...&lt;br /&gt;
&lt;br /&gt;
There are more examples of conditional modification at the [[ConditionalReader]] page.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* Adjust ''Y ''(luma) gamma and offset (brightness), while increasing chroma ''U ''(yellow-blue) offset (away from yellow and toward blue)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(gamma_y=128, off_y=-16, off_u=5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{FuncArg|autogain}} and {{FuncArg|autowhite}}: recovers visibility on &amp;quot;very bad&amp;quot; recordings:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(autogain=true, autowhite=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{FuncArg|showyuv}}: show all colors in the [[YUV]] space. Requires a YUV clip as input. &lt;br /&gt;
:Returns a [[YV12]], 448x448 clip with source frame rate, duration and audio.&lt;br /&gt;
:'''Note''', not all colors are convertible to RGB - see [http://forum.doom9.org/showthread.php?t=154731 this discussion on doom9].&lt;br /&gt;
:''U ''values run 16{{D}}-239{{D}}, left to right, and ''V'' values run from 16{{D}}-239{{D}}, top to bottom. &lt;br /&gt;
:Frame 0 luma is 16{{D}}, frame 1 luma is 17{{D}} and so on.&lt;br /&gt;
:{{AvsPluscon}} Size changes depending on options selected: &lt;br /&gt;
:*By default size is 450x450. &lt;br /&gt;
:*With {{FuncArg|showyuv_fullrange}}=true, size is 512x512. &lt;br /&gt;
:*With {{FuncArg|bits}}=10, width and height are both multiplied by 4. &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorYUV(showyuv=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
::[[File:ColorYUV(showyuv%3Dtrue)_fr175.png|224px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Adjusting {{FuncArg|off_u}} and {{FuncArg|off_v}} to remove color cast (reduce yellow and magenta tints):&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 [[ImageSource]](&amp;quot;[[:File:Lenna.png|Lenna.png]]&amp;quot;)&lt;br /&gt;
 [[BicubicResize]](Width/2, Height/2)&lt;br /&gt;
 ColorYUV(off_u=+6, off_v=-23)&lt;br /&gt;
 [[Histogram#Levels_mode|Histogram]](&amp;quot;levels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
::[[File:Lenna-256x256-HistogramLevels-original.png]]&lt;br /&gt;
::''(before)''&lt;br /&gt;
::[[File:Lenna-256x256-HistogramLevels-ColorYUV-1.png]]&lt;br /&gt;
::''(after; note the ''U '' and ''V'' range is moved towards the center)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Demonstrating {{FuncArg|analyze}} output:&lt;br /&gt;
&amp;lt;div id=&amp;quot;analyze&amp;quot; style=&amp;quot;display:inline;font-size:50%;height:0;line-height:0;overflow:hidden;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|2}} &amp;gt;&lt;br /&gt;
 [[FFmpegSource|FFmpegSource2]](&amp;quot;[http://www.sintel.org/ sintel].mp4&amp;quot;)&lt;br /&gt;
 [[BicubicResize]](546, 272)&lt;br /&gt;
 ColorYUV(analyze=true)&lt;br /&gt;
[[File:ColorYUV_analyze_Ex1.jpg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.6&lt;br /&gt;
| Added conditional option&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Levels and Chroma filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Histogram</id>
		<title>Histogram</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Histogram"/>
				<updated>2018-03-05T00:12:01Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: one more touch-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multipurpose audio/video analysis tool. &amp;lt;!--, which supports the following '''''modes''''':&lt;br /&gt;
* [[#Classic_mode|Classic]] (waveform) mode, the default; &lt;br /&gt;
* [[#Levels_mode|Levels]] ''YUV'' histogram mode; &lt;br /&gt;
* [[#Color_mode|Color]] and [[#Color2_mode|Color2]] vectorscope modes;&lt;br /&gt;
* [[#Luma_mode|Luma]] special viewing mode;&lt;br /&gt;
* [[#Audiolevels_mode|Audiolevels]] audio level meter; and &lt;br /&gt;
* [[#Stereo.2C_StereoY8_and_StereoOverlay_mode|Stereo, StereoOverlay, and StereoY8]] audio graphs.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
=== Syntax and Parameters ===&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Histogram(clip ''clip'' [, string ''mode'', float ''factor''])&lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Histogram(clip ''clip'' [, string ''mode'', float ''factor'', int ''bits'', bool ''keepsource'', bool ''markers'']) {{AvsPluscon}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
::{{AvsPluscon}} {{Deep_color}} (bit depth greater than 8) supported in [[#Classic_mode|Classic]], [[#Levels_mode|Levels]] and [[#Color|Color]] modes only. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|mode|string|&amp;quot;classic&amp;quot;}}&lt;br /&gt;
::* [[#Classic_mode|Classic]] (waveform) mode, the default; &lt;br /&gt;
::* [[#Levels_mode|Levels]] ''YUV'' histogram mode; &lt;br /&gt;
::* [[#Color_mode|Color]] and [[#Color2_mode|Color2]] vectorscope modes;&lt;br /&gt;
::* [[#Luma_mode|Luma]] special viewing mode;&lt;br /&gt;
::* [[#Audiolevels_mode|Audiolevels]] audio level meter; and &lt;br /&gt;
::* [[#Stereo.2C_StereoY8_and_StereoOverlay_mode|Stereo, StereoOverlay, and StereoY8]] audio graphs.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|factor|float|100.0}}&lt;br /&gt;
::Vertical scale is multiplied by 100.0 / {{FuncArg|factor}}. Applies only to [[#Levels_mode|Levels]] mode.&lt;br /&gt;
::'''NOTE''', {{FuncArg|factor}} is an ''unnamed ''optional argument; &amp;lt;br style=&amp;quot;line-height:60%&amp;quot; /&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;Histogram(mode=&amp;quot;levels&amp;quot;, '''factor='''0.5)&amp;lt;/code&amp;gt; will not work, but &lt;br /&gt;
::&amp;lt;code&amp;gt;Histogram(&amp;quot;levels&amp;quot;, 0.5)&amp;lt;/code&amp;gt; works fine.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|bits|int|8}}&lt;br /&gt;
::{{AvsPluscon}} Accepts 8, 10 or 12 as input. Applies only to [[#Classic_mode|Classic]], [[#Levels_mode|Levels]] and [[#Color|Color]] modes.&lt;br /&gt;
::* Classic, Levels: increases the width of the histogram by 2{{Sup2|({{Template:FuncArg|bits}}-8)}} &lt;br /&gt;
::* Color: increases width and height of the histogram by 2{{Sup2|({{Template:FuncArg|bits}}-8)}} &lt;br /&gt;
::For example, &amp;lt;code&amp;gt;Histogram('''bits='''10)&amp;lt;/code&amp;gt; returns a 1024 pixel wide histogram (width is 256 by default)&lt;br /&gt;
&lt;br /&gt;
:{{Par2|keepsource|bool|true}}&lt;br /&gt;
::{{AvsPluscon}} if true (the default), add histogram to right side of existing clip; else return the histogram portion only.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|markers|bool|true}}&lt;br /&gt;
::{{AvsPluscon}} if true (the default), show calibration marks (see screenshots); else hide them.&lt;br /&gt;
&lt;br /&gt;
The modes are summarized as follows:&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:48em&amp;quot;&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Mode&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Width&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Height&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Formats&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|factor}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|bits}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|keepsource}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|markers}}&lt;br /&gt;
|-&lt;br /&gt;
|[[#Classic_mode|'''Classic''']]&lt;br /&gt;
|256*&lt;br /&gt;
|(Source)&lt;br /&gt;
|style=&amp;quot;width:10em&amp;quot;|YUV(A), Y&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;width:6em&amp;quot;|8,&amp;amp;nbsp;10,&amp;amp;nbsp;12&lt;br /&gt;
|Y&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|[[#Levels_mode|'''Levels''']]&lt;br /&gt;
|256*&lt;br /&gt;
|256&lt;br /&gt;
|YUV(A), RGB(A)&lt;br /&gt;
|Y&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|Y&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|[[#Color_mode|'''Color''']]&lt;br /&gt;
|256*&lt;br /&gt;
|256*&lt;br /&gt;
|YUV(A)&lt;br /&gt;
|&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|Y&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Color2_mode|'''Color2''']]&lt;br /&gt;
|256&lt;br /&gt;
|256&lt;br /&gt;
|YUV(A)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Y&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Luma_mode|'''Luma''']]&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Audiolevels_mode|'''AudioLevels''']]&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Stereo.2C_StereoY8_and_StereoOverlay_mode|'''Stereo''']]&lt;br /&gt;
|512&lt;br /&gt;
|512&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''StereoY8'''&lt;br /&gt;
|512&lt;br /&gt;
|512&lt;br /&gt;
|8bit YUV, Y&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''StereoOverlay'''&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot;|*size = 256 ({{FuncArg|bits}}=8, default), 1024 ({{FuncArg|bits}}=10), 4096 ({{FuncArg|bits}}=12) &lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Classic mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:histogram_classic.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in [[YUV]] color formats only. For [[RGB]] sources, try [[Histograms_in_RGB_%26_CMY#HistogramRGBParade|'''HistogramRGBParade''']]. &lt;br /&gt;
&lt;br /&gt;
This will add a per-line luminance graph (usually called a [[wikipedia:Waveform_monitor|Waveform Monitor]]) on the right side of the video, increasing clip.[[Clip_properties|Width]] by 256. The left side of the graph represents luma=0 and the right side represents luma=255. Values outside the [[Limiter|valid CCIR-601 range]] are shown with a brown/yellowish color background; a greenish line represents Y=128. &lt;br /&gt;
&lt;br /&gt;
If you prefer to see luma=0 on bottom and luma=255 on top, use this:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|4}} &amp;gt;&lt;br /&gt;
 [[TurnRight]].Histogram.[[TurnLeft]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram_classic-v2-turned.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Levels mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;levels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-levels.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. For [[RGB]] sources, try [[Histograms_in_RGB_%26_CMY#HistogramRGBLevels_.2F_HistogramCMYLevels|'''HistogramRGBLevels''']].&lt;br /&gt;
&lt;br /&gt;
This mode will display three histograms on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. This will show the distribution of the ''Y'', ''U'' and ''V'' components in the current frame.&lt;br /&gt;
&lt;br /&gt;
The top graph displays the ''Y'' (luma) distribution of the frame, where the left side represents Y=0 and the right side represents Y=255. Values outside the [[Limiter|valid CCIR601 range]] have been indicated with faded colors; Y=128 has been marked with a dotted line. The vertical axis shows the number of pixels for a given luma (Y) value. &lt;br /&gt;
&lt;br /&gt;
The middle graph is similar, and displays the ''U'' component; the bottom graph displays the ''V'' component.&lt;br /&gt;
&lt;br /&gt;
The {{FuncArg|factor}} option (100.0 by default) specifies how the histograms are displayed, exaggerating the vertical scale. It is specified as percentage of the total population (that is number of luma or chroma pixels in a frame). For example:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;levels&amp;quot;, 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-levels-v3-levels0,5.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''NOTE''', {{FuncArg|factor}} is an ''unnamed ''optional argument; &amp;lt;br style=&amp;quot;line-height:60%&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Histogram(mode=&amp;quot;levels&amp;quot;, '''factor='''0.5)&amp;lt;/code&amp;gt; will not work, but &amp;lt;code&amp;gt;Histogram(&amp;quot;levels&amp;quot;, 0.5)&amp;lt;/code&amp;gt; works fine.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Color mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;color&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-color.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. &lt;br /&gt;
&lt;br /&gt;
This mode will display the chroma values (U/V color placement) in a two dimensional graph (called a [[wikipedia:Vectorscope|vectorscope]]) on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. It can be used to read of the [[wikipedia:Hue|hue]] and [[wikipedia:Colorfulness#Saturation|saturation]] of a clip. At the same time it is a histogram: the whiter a pixel in the vectorscope, the more pixels of the input clip correspond to that chroma value. The lighter background denotes the [[Limiter|valid CCIR-601 range]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;colorvector&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
[[File:Labeled-vector6b.png|left|Histogram(&amp;quot;color&amp;quot;) output with added labels]] &lt;br /&gt;
|style=&amp;quot;vertical-align:top; margin-right:10%&amp;quot;| &lt;br /&gt;
Labels have been added to this vectorscope image for explication purposes, showing the ''U'' and ''V'' axes and degrees of hue. Spots have also been added, showing 75% saturated [[ColorBars]] (clockwise from 0°: blue, magenta, red, yellow, green and cyan). &lt;br /&gt;
&lt;br /&gt;
The ''U'' component is displayed on the horizontal (X) axis, with U=0 on the left and U=255 on the right. The ''V'' component is displayed on the vertical (Y) axis, with V=0 on the top and V=255 on the bottom. &lt;br /&gt;
&lt;br /&gt;
The position of a spot on the scope corresponds to a chroma value from the input clip. The graph can be used to read ''hue'' and ''saturation''. As the hue of a color changes, the spot moves around the center. As the saturation changes, it moves in or out from the center. The center is where ''U'' and ''V'' equal 128, the saturation is zero and the corresponding pixel has no color. As you increase the saturation, the spot moves towards the edge. &lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
At U=255, V=128 the hue is zero (blue) and the saturation is at maximum, that is, &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::saturation = sqrt( (U-128)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + (V-128)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ) or 127 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When turning hue clockwise 90 degrees, the chroma is given by U=128, V=255 (red, approximately). Keeping the hue constant and decreasing the saturation, means that we move from the circle to the center of the vectorscope. Thus the color flavor remains the same, only it fades slowly to [[GreyScale|greyscale]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Color2 mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;color2&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-color2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. &lt;br /&gt;
&lt;br /&gt;
This mode will display the pixels in a two dimensional graph (called a [[wikipedia:Vectorscope|vectorscope]]) on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. It can be used to read of the [[wikipedia:Hue|hue]] and [[wikipedia:Colorfulness#Saturation|saturation]] of a clip.&lt;br /&gt;
&lt;br /&gt;
The ''U'' component is displayed on the horizontal (X) axis, with the leftmost side being U=0 and the rightmost side being U=255. The ''V'' component is displayed on the vertical (Y) axis, with the top representing V=0 and the bottom representing V=255. The white square denotes the [[Limiter|valid CCIR-601 range]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;colorvector&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
[[File:Labeled-vector-color2.png|left|Histogram(&amp;quot;color2&amp;quot;) output with added labels]] &lt;br /&gt;
|style=&amp;quot;vertical-align:top; margin-right:10%&amp;quot;| As [[#colorvector|above]], labels and [[ColorBars]] dots have been added to this vectorscope image for explication purposes. &lt;br /&gt;
&lt;br /&gt;
The position of a spot on the scope corresponds to a chroma value from the input clip, exactly as with &amp;lt;code&amp;gt;[[#Color mode|Histogram(&amp;quot;color&amp;quot;)]]&amp;lt;/code&amp;gt;, but the spot is brighter and in color.  &lt;br /&gt;
&lt;br /&gt;
'''Color2 mode''' is also different from '''Color mode''' in that the background is black instead of shaded, and a ''color wheel'' around the circumference of the scope has been added, divided into six hues (clockwise from 0°: blue, magenta, red, yellow, green and cyan), with white tick marks at 15 degree intervals. &lt;br /&gt;
|}&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Luma mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;luma&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_modeluma.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in [[YUV]] [[Planar|planar]] and [[YUY2]] color formats. &lt;br /&gt;
&lt;br /&gt;
This mode will amplify luminance, and display very small luminance variations. This is good for detecting blocking and noise, and can be helpful at adjusting filter parameters. In this mode a 1 pixel luminance difference will show as a 16 pixel luminance pixel, thus seriously enhancing small flaws. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Audiolevels mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;audiolevels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_audiolevels.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[YUV]] [[Planar|planar]] video is required. Audio is [[ConvertAudio|converted]] to 16 bit.  &lt;br /&gt;
&lt;br /&gt;
Shows the audio levels in [[wikipedia:Decibel|decibels]] for each channel present. For example, if the source has six channels of audio, six vertical bars will be shown. &lt;br /&gt;
&lt;br /&gt;
* The green bars show the {{Serif|''RMS''}} ([[wikipedia:Root_mean_square|Root Mean Square]]) level of the audio in each video frame (let's say {{Serif|''n''}} samples) using the following formula:&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-1.png|x46px|&amp;lt;math&amp;gt; RMS = 20 \cdot log_{10}( 1/32768 \cdot \sqrt{ 1/n \cdot \sum_{j=1}^{n} sample(j)^{2}} ) &amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
* The blue bars show the {{Serif|''max''}} (peak) level of the audio in each video frame using the following formula:&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-2.png|x16px|&amp;lt;math&amp;gt; max = 20 \cdot log_{10}(max_{j} (sample(j)) / 32768) &amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
The maximum possible level without [[wikipedia:Clipping_%28audio%29|clipping]] is 0 dB by definition. The minimum level for 16 bit audio is therefore&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-4.png|x16px|&amp;lt;math&amp;gt; 20 \cdot log_{10}(1/32768) = - 90.31 \ dB &amp;lt;/math&amp;gt;]] &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(since 2&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt; / 2 = 32768)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Stereo, StereoY8 and StereoOverlay mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;stereo&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_modestereo.gif|256px|]]&lt;br /&gt;
 &lt;br /&gt;
Requires a source clip with stereo audio; '''StereoOverlay''' also requires a source clip with a [[YUV]] [[Planar|planar]] color format. &lt;br /&gt;
&lt;br /&gt;
These modes show a classic stereo graph (or [[wikipedia:Lissajous_curve|Lissajous]] pattern) from the clip audio, often seen in recording studios. They are used to view the left-right phase distribution of the input signal. In-phase stereo appears predominantly vertical (as shown), but incorrectly phased stereo appears predominantly horizontal. Two-channel Mono appears as a vertical line. &lt;br /&gt;
&lt;br /&gt;
'''StereoOverlay''' will overlay the graph on top of the original. Each frame will contain only information from the current frame to the beginning of the next frame. The signal is linearly upsampled 8x, to provide clearer visuals. '''Stereo''' and '''StereoY8''' won't overlay the graph on the video, but will just return the graph alone as a 512×512 video clip (in [[YV12]] or [[Y8]] format respectively).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| v2.60&lt;br /&gt;
| Added StereoY8 mode. Added factor option.&lt;br /&gt;
|-&lt;br /&gt;
| v2.58&lt;br /&gt;
| Added planar support. Color2 and Audiolevels modes added.&lt;br /&gt;
|-&lt;br /&gt;
| v2.56&lt;br /&gt;
| Added invalid colors in YUY2 mode.&lt;br /&gt;
|-&lt;br /&gt;
| v2.56&lt;br /&gt;
| Added dots to mode = &amp;quot;stereo&amp;quot; to show bias/offsets.&lt;br /&gt;
|-&lt;br /&gt;
| v2.53&lt;br /&gt;
| Added different modes.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Audio_filters]]&lt;br /&gt;
[[Category:Levels_and_Chroma_filters]]&lt;br /&gt;
[[Category:Debugging/Diagnostic filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Histogram</id>
		<title>Histogram</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Histogram"/>
				<updated>2018-03-05T00:08:51Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multipurpose audio/video analysis tool. &amp;lt;!--, which supports the following '''''modes''''':&lt;br /&gt;
* [[#Classic_mode|Classic]] (waveform) mode, the default; &lt;br /&gt;
* [[#Levels_mode|Levels]] ''YUV'' histogram mode; &lt;br /&gt;
* [[#Color_mode|Color]] and [[#Color2_mode|Color2]] vectorscope modes;&lt;br /&gt;
* [[#Luma_mode|Luma]] special viewing mode;&lt;br /&gt;
* [[#Audiolevels_mode|Audiolevels]] audio level meter; and &lt;br /&gt;
* [[#Stereo.2C_StereoY8_and_StereoOverlay_mode|Stereo, StereoOverlay, and StereoY8]] audio graphs.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
=== Syntax and Parameters ===&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Histogram(clip ''clip'' [, string ''mode'', float ''factor''])&lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Histogram(clip ''clip'' [, string ''mode'', float ''factor'', int ''bits'', bool ''keepsource'', bool ''markers'']) {{AvsPluscon}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
::{{AvsPluscon}} {{Deep_color}} (bit depth greater than 8) supported in [[#Classic_mode|Classic]], [[#Levels_mode|Levels]] and [[#Color|Color]] modes only. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|mode|string|&amp;quot;classic&amp;quot;}}&lt;br /&gt;
::* [[#Classic_mode|Classic]] (waveform) mode, the default; &lt;br /&gt;
::* [[#Levels_mode|Levels]] ''YUV'' histogram mode; &lt;br /&gt;
::* [[#Color_mode|Color]] and [[#Color2_mode|Color2]] vectorscope modes;&lt;br /&gt;
::* [[#Luma_mode|Luma]] special viewing mode;&lt;br /&gt;
::* [[#Audiolevels_mode|Audiolevels]] audio level meter; and &lt;br /&gt;
::* [[#Stereo.2C_StereoY8_and_StereoOverlay_mode|Stereo, StereoOverlay, and StereoY8]] audio graphs.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|factor|float|100.0}}&lt;br /&gt;
::Vertical scale is multiplied by 100.0 / {{FuncArg|factor}}. Applies only to [[#Levels_mode|Levels]] mode.&lt;br /&gt;
::'''NOTE''', {{FuncArg|factor}} is an ''unnamed ''optional argument; &amp;lt;br style=&amp;quot;line-height:60%&amp;quot; /&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;Histogram(mode=&amp;quot;levels&amp;quot;, '''factor='''0.5)&amp;lt;/code&amp;gt; will not work, but &lt;br /&gt;
::&amp;lt;code&amp;gt;Histogram(&amp;quot;levels&amp;quot;, 0.5)&amp;lt;/code&amp;gt; works fine.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|bits|int|8}}&lt;br /&gt;
::{{AvsPluscon}} Accepts 8, 10 or 12 as input. Applies only to [[#Classic_mode|Classic]], [[#Levels_mode|Levels]] and [[#Color|Color]] modes.&lt;br /&gt;
::* Classic, Levels: increases the width of the histogram by 2{{Sup2|({{Template:FuncArg|bits}}-8)}} &lt;br /&gt;
::* Color: increases width and height of the histogram by 2{{Sup2|({{Template:FuncArg|bits}}-8)}} &lt;br /&gt;
::For example, &amp;lt;code&amp;gt;Histogram('''bits='''10)&amp;lt;/code&amp;gt; returns a 1024 pixel wide histogram (width is 256 by default)&lt;br /&gt;
&lt;br /&gt;
:{{Par2|keepsource|bool|true}}&lt;br /&gt;
::{{AvsPluscon}} if true (the default), add histogram to right side of existing clip; else return the histogram portion only.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|markers|bool|true}}&lt;br /&gt;
::{{AvsPluscon}} if true (the default), show calibration marks (see screenshots); else hide them.&lt;br /&gt;
&lt;br /&gt;
The modes are summarized as follows:&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:48em&amp;quot;&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Mode&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Width&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Height&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Formats&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|factor}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|bits}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|keepsource}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|markers}}&lt;br /&gt;
|-&lt;br /&gt;
|[[#Classic_mode|'''Classic''']]&lt;br /&gt;
|256*&lt;br /&gt;
|(Source)&lt;br /&gt;
|style=&amp;quot;width:10em&amp;quot;|YUV(A), Y&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;width:10em&amp;quot;|8,&amp;amp;nbsp;10,&amp;amp;nbsp;12&lt;br /&gt;
|Y&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|[[#Levels_mode|'''Levels''']]&lt;br /&gt;
|256*&lt;br /&gt;
|256&lt;br /&gt;
|YUV(A), RGB(A)&lt;br /&gt;
|Y&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|Y&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|[[#Color_mode|'''Color''']]&lt;br /&gt;
|256*&lt;br /&gt;
|256*&lt;br /&gt;
|YUV(A)&lt;br /&gt;
|&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|Y&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Color2_mode|'''Color2''']]&lt;br /&gt;
|256&lt;br /&gt;
|256&lt;br /&gt;
|YUV(A)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Y&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Luma_mode|'''Luma''']]&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Audiolevels_mode|'''AudioLevels''']]&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Stereo.2C_StereoY8_and_StereoOverlay_mode|'''Stereo''']]&lt;br /&gt;
|512&lt;br /&gt;
|512&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''StereoY8'''&lt;br /&gt;
|512&lt;br /&gt;
|512&lt;br /&gt;
|8bit YUV, Y&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''StereoOverlay'''&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot;|*size = 256 ({{FuncArg|bits}}=8, default), 1024 ({{FuncArg|bits}}=10), 4096 ({{FuncArg|bits}}=12) &lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Classic mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:histogram_classic.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in [[YUV]] color formats only. For [[RGB]] sources, try [[Histograms_in_RGB_%26_CMY#HistogramRGBParade|'''HistogramRGBParade''']]. &lt;br /&gt;
&lt;br /&gt;
This will add a per-line luminance graph (usually called a [[wikipedia:Waveform_monitor|Waveform Monitor]]) on the right side of the video, increasing clip.[[Clip_properties|Width]] by 256. The left side of the graph represents luma=0 and the right side represents luma=255. Values outside the [[Limiter|valid CCIR-601 range]] are shown with a brown/yellowish color background; a greenish line represents Y=128. &lt;br /&gt;
&lt;br /&gt;
If you prefer to see luma=0 on bottom and luma=255 on top, use this:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|4}} &amp;gt;&lt;br /&gt;
 [[TurnRight]].Histogram.[[TurnLeft]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram_classic-v2-turned.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Levels mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;levels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-levels.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. For [[RGB]] sources, try [[Histograms_in_RGB_%26_CMY#HistogramRGBLevels_.2F_HistogramCMYLevels|'''HistogramRGBLevels''']].&lt;br /&gt;
&lt;br /&gt;
This mode will display three histograms on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. This will show the distribution of the ''Y'', ''U'' and ''V'' components in the current frame.&lt;br /&gt;
&lt;br /&gt;
The top graph displays the ''Y'' (luma) distribution of the frame, where the left side represents Y=0 and the right side represents Y=255. Values outside the [[Limiter|valid CCIR601 range]] have been indicated with faded colors; Y=128 has been marked with a dotted line. The vertical axis shows the number of pixels for a given luma (Y) value. &lt;br /&gt;
&lt;br /&gt;
The middle graph is similar, and displays the ''U'' component; the bottom graph displays the ''V'' component.&lt;br /&gt;
&lt;br /&gt;
The {{FuncArg|factor}} option (100.0 by default) specifies how the histograms are displayed, exaggerating the vertical scale. It is specified as percentage of the total population (that is number of luma or chroma pixels in a frame). For example:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;levels&amp;quot;, 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-levels-v3-levels0,5.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''NOTE''', {{FuncArg|factor}} is an ''unnamed ''optional argument; &amp;lt;br style=&amp;quot;line-height:60%&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Histogram(mode=&amp;quot;levels&amp;quot;, '''factor='''0.5)&amp;lt;/code&amp;gt; will not work, but &amp;lt;code&amp;gt;Histogram(&amp;quot;levels&amp;quot;, 0.5)&amp;lt;/code&amp;gt; works fine.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Color mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;color&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-color.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. &lt;br /&gt;
&lt;br /&gt;
This mode will display the chroma values (U/V color placement) in a two dimensional graph (called a [[wikipedia:Vectorscope|vectorscope]]) on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. It can be used to read of the [[wikipedia:Hue|hue]] and [[wikipedia:Colorfulness#Saturation|saturation]] of a clip. At the same time it is a histogram: the whiter a pixel in the vectorscope, the more pixels of the input clip correspond to that chroma value. The lighter background denotes the [[Limiter|valid CCIR-601 range]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;colorvector&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
[[File:Labeled-vector6b.png|left|Histogram(&amp;quot;color&amp;quot;) output with added labels]] &lt;br /&gt;
|style=&amp;quot;vertical-align:top; margin-right:10%&amp;quot;| &lt;br /&gt;
Labels have been added to this vectorscope image for explication purposes, showing the ''U'' and ''V'' axes and degrees of hue. Spots have also been added, showing 75% saturated [[ColorBars]] (clockwise from 0°: blue, magenta, red, yellow, green and cyan). &lt;br /&gt;
&lt;br /&gt;
The ''U'' component is displayed on the horizontal (X) axis, with U=0 on the left and U=255 on the right. The ''V'' component is displayed on the vertical (Y) axis, with V=0 on the top and V=255 on the bottom. &lt;br /&gt;
&lt;br /&gt;
The position of a spot on the scope corresponds to a chroma value from the input clip. The graph can be used to read ''hue'' and ''saturation''. As the hue of a color changes, the spot moves around the center. As the saturation changes, it moves in or out from the center. The center is where ''U'' and ''V'' equal 128, the saturation is zero and the corresponding pixel has no color. As you increase the saturation, the spot moves towards the edge. &lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
At U=255, V=128 the hue is zero (blue) and the saturation is at maximum, that is, &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::saturation = sqrt( (U-128)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + (V-128)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ) or 127 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When turning hue clockwise 90 degrees, the chroma is given by U=128, V=255 (red, approximately). Keeping the hue constant and decreasing the saturation, means that we move from the circle to the center of the vectorscope. Thus the color flavor remains the same, only it fades slowly to [[GreyScale|greyscale]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Color2 mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;color2&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-color2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. &lt;br /&gt;
&lt;br /&gt;
This mode will display the pixels in a two dimensional graph (called a [[wikipedia:Vectorscope|vectorscope]]) on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. It can be used to read of the [[wikipedia:Hue|hue]] and [[wikipedia:Colorfulness#Saturation|saturation]] of a clip.&lt;br /&gt;
&lt;br /&gt;
The ''U'' component is displayed on the horizontal (X) axis, with the leftmost side being U=0 and the rightmost side being U=255. The ''V'' component is displayed on the vertical (Y) axis, with the top representing V=0 and the bottom representing V=255. The white square denotes the [[Limiter|valid CCIR-601 range]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;colorvector&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
[[File:Labeled-vector-color2.png|left|Histogram(&amp;quot;color2&amp;quot;) output with added labels]] &lt;br /&gt;
|style=&amp;quot;vertical-align:top; margin-right:10%&amp;quot;| As [[#colorvector|above]], labels and [[ColorBars]] dots have been added to this vectorscope image for explication purposes. &lt;br /&gt;
&lt;br /&gt;
The position of a spot on the scope corresponds to a chroma value from the input clip, exactly as with &amp;lt;code&amp;gt;[[#Color mode|Histogram(&amp;quot;color&amp;quot;)]]&amp;lt;/code&amp;gt;, but the spot is brighter and in color.  &lt;br /&gt;
&lt;br /&gt;
'''Color2 mode''' is also different from '''Color mode''' in that the background is black instead of shaded, and a ''color wheel'' around the circumference of the scope has been added, divided into six hues (clockwise from 0°: blue, magenta, red, yellow, green and cyan), with white tick marks at 15 degree intervals. &lt;br /&gt;
|}&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Luma mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;luma&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_modeluma.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in [[YUV]] [[Planar|planar]] and [[YUY2]] color formats. &lt;br /&gt;
&lt;br /&gt;
This mode will amplify luminance, and display very small luminance variations. This is good for detecting blocking and noise, and can be helpful at adjusting filter parameters. In this mode a 1 pixel luminance difference will show as a 16 pixel luminance pixel, thus seriously enhancing small flaws. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Audiolevels mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;audiolevels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_audiolevels.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[YUV]] [[Planar|planar]] video is required. Audio is [[ConvertAudio|converted]] to 16 bit.  &lt;br /&gt;
&lt;br /&gt;
Shows the audio levels in [[wikipedia:Decibel|decibels]] for each channel present. For example, if the source has six channels of audio, six vertical bars will be shown. &lt;br /&gt;
&lt;br /&gt;
* The green bars show the {{Serif|''RMS''}} ([[wikipedia:Root_mean_square|Root Mean Square]]) level of the audio in each video frame (let's say {{Serif|''n''}} samples) using the following formula:&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-1.png|x46px|&amp;lt;math&amp;gt; RMS = 20 \cdot log_{10}( 1/32768 \cdot \sqrt{ 1/n \cdot \sum_{j=1}^{n} sample(j)^{2}} ) &amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
* The blue bars show the {{Serif|''max''}} (peak) level of the audio in each video frame using the following formula:&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-2.png|x16px|&amp;lt;math&amp;gt; max = 20 \cdot log_{10}(max_{j} (sample(j)) / 32768) &amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
The maximum possible level without [[wikipedia:Clipping_%28audio%29|clipping]] is 0 dB by definition. The minimum level for 16 bit audio is therefore&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-4.png|x16px|&amp;lt;math&amp;gt; 20 \cdot log_{10}(1/32768) = - 90.31 \ dB &amp;lt;/math&amp;gt;]] &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(since 2&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt; / 2 = 32768)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Stereo, StereoY8 and StereoOverlay mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;stereo&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_modestereo.gif|256px|]]&lt;br /&gt;
 &lt;br /&gt;
Requires a source clip with stereo audio; '''StereoOverlay''' also requires a source clip with a [[YUV]] [[Planar|planar]] color format. &lt;br /&gt;
&lt;br /&gt;
These modes show a classic stereo graph (or [[wikipedia:Lissajous_curve|Lissajous]] pattern) from the clip audio, often seen in recording studios. They are used to view the left-right phase distribution of the input signal. In-phase stereo appears predominantly vertical (as shown), but incorrectly phased stereo appears predominantly horizontal. Two-channel Mono appears as a vertical line. &lt;br /&gt;
&lt;br /&gt;
'''StereoOverlay''' will overlay the graph on top of the original. Each frame will contain only information from the current frame to the beginning of the next frame. The signal is linearly upsampled 8x, to provide clearer visuals. '''Stereo''' and '''StereoY8''' won't overlay the graph on the video, but will just return the graph alone as a 512×512 video clip (in [[YV12]] or [[Y8]] format respectively).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| v2.60&lt;br /&gt;
| Added StereoY8 mode. Added factor option.&lt;br /&gt;
|-&lt;br /&gt;
| v2.58&lt;br /&gt;
| Added planar support. Color2 and Audiolevels modes added.&lt;br /&gt;
|-&lt;br /&gt;
| v2.56&lt;br /&gt;
| Added invalid colors in YUY2 mode.&lt;br /&gt;
|-&lt;br /&gt;
| v2.56&lt;br /&gt;
| Added dots to mode = &amp;quot;stereo&amp;quot; to show bias/offsets.&lt;br /&gt;
|-&lt;br /&gt;
| v2.53&lt;br /&gt;
| Added different modes.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Audio_filters]]&lt;br /&gt;
[[Category:Levels_and_Chroma_filters]]&lt;br /&gt;
[[Category:Debugging/Diagnostic filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Histogram</id>
		<title>Histogram</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Histogram"/>
				<updated>2018-03-05T00:05:14Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: update for AVS+ r2632&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multipurpose audio/video analysis tool. &amp;lt;!--, which supports the following '''''modes''''':&lt;br /&gt;
* [[#Classic_mode|Classic]] (waveform) mode, the default; &lt;br /&gt;
* [[#Levels_mode|Levels]] ''YUV'' histogram mode; &lt;br /&gt;
* [[#Color_mode|Color]] and [[#Color2_mode|Color2]] vectorscope modes;&lt;br /&gt;
* [[#Luma_mode|Luma]] special viewing mode;&lt;br /&gt;
* [[#Audiolevels_mode|Audiolevels]] audio level meter; and &lt;br /&gt;
* [[#Stereo.2C_StereoY8_and_StereoOverlay_mode|Stereo, StereoOverlay, and StereoY8]] audio graphs.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
=== Syntax and Parameters ===&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Histogram(clip ''clip'' [, string ''mode'', float ''factor''])&lt;br /&gt;
}} &amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Histogram(clip ''clip'' [, string ''mode'', float ''factor'', int ''bits'', bool ''keepsource'', bool ''markers'']) {{AvsPluscon}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
::{{AvsPluscon}} {{Deep_color}} (bit depth greater than 8) supported in [[#Classic_mode|Classic]], [[#Levels_mode|Levels]] and [[#Color|Color]] modes only. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|mode|string|&amp;quot;classic&amp;quot;}}&lt;br /&gt;
::* [[#Classic_mode|Classic]] (waveform) mode, the default; &lt;br /&gt;
::* [[#Levels_mode|Levels]] ''YUV'' histogram mode; &lt;br /&gt;
::* [[#Color_mode|Color]] and [[#Color2_mode|Color2]] vectorscope modes;&lt;br /&gt;
::* [[#Luma_mode|Luma]] special viewing mode;&lt;br /&gt;
::* [[#Audiolevels_mode|Audiolevels]] audio level meter; and &lt;br /&gt;
::* [[#Stereo.2C_StereoY8_and_StereoOverlay_mode|Stereo, StereoOverlay, and StereoY8]] audio graphs.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|factor|float|100.0}}&lt;br /&gt;
::Vertical scale is multiplied by 100.0 / {{FuncArg|factor}}. Applies only to [[#Levels_mode|Levels]] mode.&lt;br /&gt;
::'''NOTE''', {{FuncArg|factor}} is an ''unnamed ''optional argument; &amp;lt;br style=&amp;quot;line-height:60%&amp;quot; /&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;Histogram(mode=&amp;quot;levels&amp;quot;, '''factor='''0.5)&amp;lt;/code&amp;gt; will not work, but &lt;br /&gt;
::&amp;lt;code&amp;gt;Histogram(&amp;quot;levels&amp;quot;, 0.5)&amp;lt;/code&amp;gt; works fine.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|bits|int|8}}&lt;br /&gt;
::{{AvsPluscon}} Accepts 8, 10 or 12 as input. Applies only to [[#Classic_mode|Classic]], [[#Levels_mode|Levels]] and [[#Color|Color]] modes.&lt;br /&gt;
::* Classic, Levels: increases the width of the histogram by 2{{Sup2|({{Template:FuncArg|bits}}-8)}} &lt;br /&gt;
::* Color: increases width and height of the histogram by 2{{Sup2|({{Template:FuncArg|bits}}-8)}} &lt;br /&gt;
::For example, &amp;lt;code&amp;gt;Histogram('''bits='''10)&amp;lt;/code&amp;gt; returns a 1024 pixel wide histogram (width is 256 by default)&lt;br /&gt;
&lt;br /&gt;
:{{Par2|keepsource|bool|true}}&lt;br /&gt;
::{{AvsPluscon}} if true (the default), add histogram to right side of existing clip; else return the histogram portion only.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|markers|bool|true}}&lt;br /&gt;
::{{AvsPluscon}} if true (the default), show calibration marks (see screenshots); else hide them.&lt;br /&gt;
&lt;br /&gt;
The modes are summarized as follows:&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:48em&amp;quot;&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Mode&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Width&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Height&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Formats&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|factor}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|bits}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|keepsource}}&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|{{FuncArg|markers}}&lt;br /&gt;
|-&lt;br /&gt;
|[[#Classic_mode|'''Classic''']]&lt;br /&gt;
|256*&lt;br /&gt;
|(Source)&lt;br /&gt;
|style=&amp;quot;width:10em&amp;quot;|YUV(A), Y&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;width:10em&amp;quot;|8,&amp;amp;nbsp;10,&amp;amp;nbsp;12&lt;br /&gt;
|Y&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|[[#Levels_mode|'''Levels''']]&lt;br /&gt;
|256*&lt;br /&gt;
|256&lt;br /&gt;
|YUV(A), RGB(A)&lt;br /&gt;
|Y&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|Y&lt;br /&gt;
|Y&lt;br /&gt;
|-&lt;br /&gt;
|[[#Color_mode|'''Color''']]&lt;br /&gt;
|256*&lt;br /&gt;
|256*&lt;br /&gt;
|YUV(A)&lt;br /&gt;
|&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|Y&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Color2_mode|'''Color2''']]&lt;br /&gt;
|256&lt;br /&gt;
|256&lt;br /&gt;
|YUV(A)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Y&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Luma_mode|'''Luma''']]&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Audiolevels_mode|'''AudioLevels''']]&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[#Stereo.2C_StereoY8_and_StereoOverlay_mode|'''Stereo''']]&lt;br /&gt;
|512&lt;br /&gt;
|512&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''StereoY8'''&lt;br /&gt;
|512&lt;br /&gt;
|512&lt;br /&gt;
|8bit YUV, Y&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''StereoOverlay'''&lt;br /&gt;
|(Source)&lt;br /&gt;
|(Source)&lt;br /&gt;
|8bit YUV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot;|*''if keepsource=true, added to right side of existing video''&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Classic mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:histogram_classic.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in [[YUV]] color formats only. For [[RGB]] sources, try [[Histograms_in_RGB_%26_CMY#HistogramRGBParade|'''HistogramRGBParade''']]. &lt;br /&gt;
&lt;br /&gt;
This will add a per-line luminance graph (usually called a [[wikipedia:Waveform_monitor|Waveform Monitor]]) on the right side of the video, increasing clip.[[Clip_properties|Width]] by 256. The left side of the graph represents luma=0 and the right side represents luma=255. Values outside the [[Limiter|valid CCIR-601 range]] are shown with a brown/yellowish color background; a greenish line represents Y=128. &lt;br /&gt;
&lt;br /&gt;
If you prefer to see luma=0 on bottom and luma=255 on top, use this:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|4}} &amp;gt;&lt;br /&gt;
 [[TurnRight]].Histogram.[[TurnLeft]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram_classic-v2-turned.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Levels mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;levels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-levels.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. For [[RGB]] sources, try [[Histograms_in_RGB_%26_CMY#HistogramRGBLevels_.2F_HistogramCMYLevels|'''HistogramRGBLevels''']].&lt;br /&gt;
&lt;br /&gt;
This mode will display three histograms on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. This will show the distribution of the ''Y'', ''U'' and ''V'' components in the current frame.&lt;br /&gt;
&lt;br /&gt;
The top graph displays the ''Y'' (luma) distribution of the frame, where the left side represents Y=0 and the right side represents Y=255. Values outside the [[Limiter|valid CCIR601 range]] have been indicated with faded colors; Y=128 has been marked with a dotted line. The vertical axis shows the number of pixels for a given luma (Y) value. &lt;br /&gt;
&lt;br /&gt;
The middle graph is similar, and displays the ''U'' component; the bottom graph displays the ''V'' component.&lt;br /&gt;
&lt;br /&gt;
The {{FuncArg|factor}} option (100.0 by default) specifies how the histograms are displayed, exaggerating the vertical scale. It is specified as percentage of the total population (that is number of luma or chroma pixels in a frame). For example:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;levels&amp;quot;, 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-levels-v3-levels0,5.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''NOTE''', {{FuncArg|factor}} is an ''unnamed ''optional argument; &amp;lt;br style=&amp;quot;line-height:60%&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Histogram(mode=&amp;quot;levels&amp;quot;, '''factor='''0.5)&amp;lt;/code&amp;gt; will not work, but &amp;lt;code&amp;gt;Histogram(&amp;quot;levels&amp;quot;, 0.5)&amp;lt;/code&amp;gt; works fine.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Color mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;color&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-color.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. &lt;br /&gt;
&lt;br /&gt;
This mode will display the chroma values (U/V color placement) in a two dimensional graph (called a [[wikipedia:Vectorscope|vectorscope]]) on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. It can be used to read of the [[wikipedia:Hue|hue]] and [[wikipedia:Colorfulness#Saturation|saturation]] of a clip. At the same time it is a histogram: the whiter a pixel in the vectorscope, the more pixels of the input clip correspond to that chroma value. The lighter background denotes the [[Limiter|valid CCIR-601 range]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;colorvector&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
[[File:Labeled-vector6b.png|left|Histogram(&amp;quot;color&amp;quot;) output with added labels]] &lt;br /&gt;
|style=&amp;quot;vertical-align:top; margin-right:10%&amp;quot;| &lt;br /&gt;
Labels have been added to this vectorscope image for explication purposes, showing the ''U'' and ''V'' axes and degrees of hue. Spots have also been added, showing 75% saturated [[ColorBars]] (clockwise from 0°: blue, magenta, red, yellow, green and cyan). &lt;br /&gt;
&lt;br /&gt;
The ''U'' component is displayed on the horizontal (X) axis, with U=0 on the left and U=255 on the right. The ''V'' component is displayed on the vertical (Y) axis, with V=0 on the top and V=255 on the bottom. &lt;br /&gt;
&lt;br /&gt;
The position of a spot on the scope corresponds to a chroma value from the input clip. The graph can be used to read ''hue'' and ''saturation''. As the hue of a color changes, the spot moves around the center. As the saturation changes, it moves in or out from the center. The center is where ''U'' and ''V'' equal 128, the saturation is zero and the corresponding pixel has no color. As you increase the saturation, the spot moves towards the edge. &lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
At U=255, V=128 the hue is zero (blue) and the saturation is at maximum, that is, &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::saturation = sqrt( (U-128)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + (V-128)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ) or 127 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When turning hue clockwise 90 degrees, the chroma is given by U=128, V=255 (red, approximately). Keeping the hue constant and decreasing the saturation, means that we move from the circle to the center of the vectorscope. Thus the color flavor remains the same, only it fades slowly to [[GreyScale|greyscale]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Color2 mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;color2&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Histogram-vortex-color2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in all [[YUV]] [[Planar|planar]] color formats, except [[Y8]]. &lt;br /&gt;
&lt;br /&gt;
This mode will display the pixels in a two dimensional graph (called a [[wikipedia:Vectorscope|vectorscope]]) on the right side of the video frame, increasing clip.[[Clip_properties|Width]] by 256. It can be used to read of the [[wikipedia:Hue|hue]] and [[wikipedia:Colorfulness#Saturation|saturation]] of a clip.&lt;br /&gt;
&lt;br /&gt;
The ''U'' component is displayed on the horizontal (X) axis, with the leftmost side being U=0 and the rightmost side being U=255. The ''V'' component is displayed on the vertical (Y) axis, with the top representing V=0 and the bottom representing V=255. The white square denotes the [[Limiter|valid CCIR-601 range]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;colorvector&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
[[File:Labeled-vector-color2.png|left|Histogram(&amp;quot;color2&amp;quot;) output with added labels]] &lt;br /&gt;
|style=&amp;quot;vertical-align:top; margin-right:10%&amp;quot;| As [[#colorvector|above]], labels and [[ColorBars]] dots have been added to this vectorscope image for explication purposes. &lt;br /&gt;
&lt;br /&gt;
The position of a spot on the scope corresponds to a chroma value from the input clip, exactly as with &amp;lt;code&amp;gt;[[#Color mode|Histogram(&amp;quot;color&amp;quot;)]]&amp;lt;/code&amp;gt;, but the spot is brighter and in color.  &lt;br /&gt;
&lt;br /&gt;
'''Color2 mode''' is also different from '''Color mode''' in that the background is black instead of shaded, and a ''color wheel'' around the circumference of the scope has been added, divided into six hues (clockwise from 0°: blue, magenta, red, yellow, green and cyan), with white tick marks at 15 degree intervals. &lt;br /&gt;
|}&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Luma mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;luma&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_modeluma.jpg]]&lt;br /&gt;
&lt;br /&gt;
Available in [[YUV]] [[Planar|planar]] and [[YUY2]] color formats. &lt;br /&gt;
&lt;br /&gt;
This mode will amplify luminance, and display very small luminance variations. This is good for detecting blocking and noise, and can be helpful at adjusting filter parameters. In this mode a 1 pixel luminance difference will show as a 16 pixel luminance pixel, thus seriously enhancing small flaws. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Audiolevels mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;audiolevels&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_audiolevels.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[YUV]] [[Planar|planar]] video is required. Audio is [[ConvertAudio|converted]] to 16 bit.  &lt;br /&gt;
&lt;br /&gt;
Shows the audio levels in [[wikipedia:Decibel|decibels]] for each channel present. For example, if the source has six channels of audio, six vertical bars will be shown. &lt;br /&gt;
&lt;br /&gt;
* The green bars show the {{Serif|''RMS''}} ([[wikipedia:Root_mean_square|Root Mean Square]]) level of the audio in each video frame (let's say {{Serif|''n''}} samples) using the following formula:&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-1.png|x46px|&amp;lt;math&amp;gt; RMS = 20 \cdot log_{10}( 1/32768 \cdot \sqrt{ 1/n \cdot \sum_{j=1}^{n} sample(j)^{2}} ) &amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
* The blue bars show the {{Serif|''max''}} (peak) level of the audio in each video frame using the following formula:&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-2.png|x16px|&amp;lt;math&amp;gt; max = 20 \cdot log_{10}(max_{j} (sample(j)) / 32768) &amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
The maximum possible level without [[wikipedia:Clipping_%28audio%29|clipping]] is 0 dB by definition. The minimum level for 16 bit audio is therefore&lt;br /&gt;
&lt;br /&gt;
::[[File:Histogram-eq-4.png|x16px|&amp;lt;math&amp;gt; 20 \cdot log_{10}(1/32768) = - 90.31 \ dB &amp;lt;/math&amp;gt;]] &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(since 2&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt; / 2 = 32768)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Stereo, StereoY8 and StereoOverlay mode ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|24|0}} &amp;gt;&lt;br /&gt;
 Histogram(&amp;quot;stereo&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:histogram_modestereo.gif|256px|]]&lt;br /&gt;
 &lt;br /&gt;
Requires a source clip with stereo audio; '''StereoOverlay''' also requires a source clip with a [[YUV]] [[Planar|planar]] color format. &lt;br /&gt;
&lt;br /&gt;
These modes show a classic stereo graph (or [[wikipedia:Lissajous_curve|Lissajous]] pattern) from the clip audio, often seen in recording studios. They are used to view the left-right phase distribution of the input signal. In-phase stereo appears predominantly vertical (as shown), but incorrectly phased stereo appears predominantly horizontal. Two-channel Mono appears as a vertical line. &lt;br /&gt;
&lt;br /&gt;
'''StereoOverlay''' will overlay the graph on top of the original. Each frame will contain only information from the current frame to the beginning of the next frame. The signal is linearly upsampled 8x, to provide clearer visuals. '''Stereo''' and '''StereoY8''' won't overlay the graph on the video, but will just return the graph alone as a 512×512 video clip (in [[YV12]] or [[Y8]] format respectively).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| v2.60&lt;br /&gt;
| Added StereoY8 mode. Added factor option.&lt;br /&gt;
|-&lt;br /&gt;
| v2.58&lt;br /&gt;
| Added planar support. Color2 and Audiolevels modes added.&lt;br /&gt;
|-&lt;br /&gt;
| v2.56&lt;br /&gt;
| Added invalid colors in YUY2 mode.&lt;br /&gt;
|-&lt;br /&gt;
| v2.56&lt;br /&gt;
| Added dots to mode = &amp;quot;stereo&amp;quot; to show bias/offsets.&lt;br /&gt;
|-&lt;br /&gt;
| v2.53&lt;br /&gt;
| Added different modes.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Audio_filters]]&lt;br /&gt;
[[Category:Levels_and_Chroma_filters]]&lt;br /&gt;
[[Category:Debugging/Diagnostic filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ImageSource</id>
		<title>ImageSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ImageSource"/>
				<updated>2018-03-03T17:50:19Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: DevIL pixel formats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ImageReader and ImageSource ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{Func2Def&lt;br /&gt;
|ImageReader(string ''file'', int ''start'', int ''end'', float ''fps'', bool ''use_DevIL'', bool ''info'', string ''pixel_type'')&lt;br /&gt;
|ImageSource(string ''file'', int ''start'', int ''end'', float ''fps'', bool ''use_DevIL'', bool ''info'', string ''pixel_type'')}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|file|string|&amp;quot;c:\%06d.ebmp&amp;quot;}}&lt;br /&gt;
::Template for the image file(s), where frame number substitution can be specified using [http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/ sprintf syntax]. For example, the files written by [[ImageWriter|ImageWriter's]] default parameters can be referenced with &amp;quot;c:\%06d.ebmp&amp;quot;. If {{FuncArg|file}} points to a single file (no sprintf pattern), then that file is read once and the image subsequently returned for all requested frames.&lt;br /&gt;
&lt;br /&gt;
::If you see the error message '''''ImageReader: error 'could not open file' in DevIL library''''' it may mean that a {{FuncArg|file}} was not found or does not exist; see [[#Notes|Notes]] below.&lt;br /&gt;
 &lt;br /&gt;
:{{Par2|start|int|0}}&lt;br /&gt;
:{{Par2|end|int|1000}}&lt;br /&gt;
::Specifies the starting and ending numbers used for filename generation. The file corresponding to {{FuncArg|start}} is always frame 0 in the clip, the file corresponding to {{FuncArg|end}} is frame (end-start). The resulting clip has ({{FuncArg|end}} - {{FuncArg|start}} + 1) frames. '{{FuncArg|end}}=0' does NOT mean 'no upper bound' as with [[ImageWriter]]. The first file in the sequence, i.e., corresponding to {{FuncArg|start}}, MUST exist in order for clip parameters to be computed. Any missing files in the sequence are replaced with a blank frame.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps|float|24.0}}&lt;br /&gt;
::Frames Per Second of returned clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|use_DevIL|bool|false}}&lt;br /&gt;
::When false (the default), give the ''Developer's Image Library'' ([http://openil.sourceforge.net/ DevIL]) lower priority, using the internal BMP/[[ImageWriter#The_EBMP_Format|EBMP]] parser whenever possible; when true, always use DevIL, bypassing the internal parser.&lt;br /&gt;
&amp;lt;div {{NotaBeneWidthIndent|58|4}} &amp;gt;&lt;br /&gt;
When {{FuncArg|use_DevIL}}=false, an attempt is made to parse files with the internal BMP/EBMP parser; upon failure &amp;amp;ndash; that is, for all image files which are not (E)BMP &amp;amp;ndash; [http://openil.sourceforge.net/ DevIL] is utilized. When {{FuncArg|use_DevIL}}=true, execution skips the internal parser and goes directly to DevIL. You should only need to use {{FuncArg|use_DevIL}}=true if you have (E)BMP files you don't want read by '''ImageReader''''s internal parser. See [[#Notes|Notes]] below for DevIL library details.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:{{Par2|info|bool|false}}&lt;br /&gt;
::When true, the source filename and [http://openil.sourceforge.net/ DevIL] version is written to each video frame.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|pixel_type|string|&amp;quot;RGB24&amp;quot;}}&lt;br /&gt;
::Specifies the output pixel format: &lt;br /&gt;
::*If {{FuncArg|use_DevIL}}=true, [[Y8]] (8-bit greyscale), [[RGB24]] and [[RGB32]] are supported. &lt;br /&gt;
:::{{AvsPluscon}} also supports their 16-bit counterparts: [[Avisynthplus_color_formats|Y16]], [[Avisynthplus_color_formats|RGB48]] and [[Avisynthplus_color_formats|RGB64]].&lt;br /&gt;
:::The alpha channel is loaded only for RGB32/64 and only if DevIL supports it for the loaded image format.&lt;br /&gt;
::*If {{FuncArg|use_DevIL}}=false, must be empty ''except'' when decoding a 12 bit, 3 plane EBMP; &lt;br /&gt;
:::in that case, {{FuncArg|pixel_type}} must be either [[YV12]] (the default) or [[YV411]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ImageReader''' is present from v2.52, replacing [http://www.avisynth.nl/users/warpenterprises/ WarpEnterprises'] ''ImageSequence'' plugin. &lt;br /&gt;
&lt;br /&gt;
'''ImageSource''' is equivalent, with some minor functionality changes. ImageSource is faster than ImageReader when importing a single picture.&lt;br /&gt;
&lt;br /&gt;
===== ''Output Formats'' =====&lt;br /&gt;
:For BMP or EBMP images opened with the internal parser, the video output is set when the sequence was created (see [[ImageWriter#The_EBMP_Format|ImageWriter: The EBMP Format]]); for images opened with the [http://openil.sourceforge.net/ DevIL] library, the video output is as decribed under {{FuncArg|pixel_type}} above.&lt;br /&gt;
&lt;br /&gt;
===== ''Input Formats'' =====&lt;br /&gt;
:All AviSynth [[Color_spaces|color spaces]] are supported. &lt;br /&gt;
&lt;br /&gt;
:[[Wikipedia:BMP_file_format|BMP]] and EBMP are supported natively (see [[#Notes|Notes]] below); with DevIL 1.7.8, supported image formats are:&lt;br /&gt;
: [[Wikipedia:DirectDraw_Surface|dds]],&amp;amp;nbsp; [[Wikipedia:JPEG|jpg/jpe/jpeg]],&amp;amp;nbsp; [[Wikipedia:PCX|pcx]],&amp;amp;nbsp; [[Wikipedia:Portable_Network_Graphics|png]],&amp;amp;nbsp; [[Wikipedia:Netpbm_format|pbm/pgm/ppm]],&amp;amp;nbsp;  [[Wikipedia:TGA|tga]],&amp;amp;nbsp; [[Wikipedia:TIFF|tif/tiff]],&lt;br /&gt;
: [[Wikipedia:GIF|gif]],&amp;amp;nbsp; [[Wikipedia:OpenEXR|exr]],&amp;amp;nbsp; [[Wikipedia:JPEG_2000|jp2]],&amp;amp;nbsp; [[Wikipedia:Adobe_Photoshop#File_format|psd]],&amp;amp;nbsp; [[Wikipedia:Hierarchical_Data_Format|hdr]],&amp;amp;nbsp; [[Wikipedia:Raw_image_format|raw]],&amp;amp;nbsp; [[Wikipedia:Silicon_Graphics_Image|sgi/bw/rgb/rgba]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ImageSourceAnim ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ImageSourceAnim(string ''file'', float ''fps'', bool ''info'', string ''pixel_type'')}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|file|string|}}&lt;br /&gt;
::animation file to be loaded.&lt;br /&gt;
&lt;br /&gt;
::If you see the error message '''''ImageSourceAnim: error 'could not open file' in DevIL library''''' it may mean that the {{FuncArg|file}} was not found or does not exist; see [[#Notes|Notes]] below.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps|float|24.0}}&lt;br /&gt;
::Frames Per Second of returned clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|info|bool|false}}&lt;br /&gt;
::When true, the source filename and DevIL version is written to each video frame.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|pixel_type|string|&amp;quot;RGB32&amp;quot;}}&lt;br /&gt;
::Specifies the output pixel format: [[Y8]] (8-bit greyscale), [[RGB24]] and [[RGB32]] are supported. &lt;br /&gt;
:::{{AvsPluscon}} also supports their 16-bit counterparts: [[Avisynthplus_color_formats|Y16]], [[Avisynthplus_color_formats|RGB48]] and [[Avisynthplus_color_formats|RGB64]].&lt;br /&gt;
:::The alpha channel is loaded only for RGB32/64 and only if DevIL supports it for the loaded image format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ImageSourceAnim''' lets you import animations ([[Wikipedia:GIF|gif]], [[Wikipedia:Netpbm_format|ppm]], [[Wikipedia:TIFF|tif/tiff]] or [[Wikipedia:Adobe_Photoshop#File_format|psd]]). If there is a delay between the first and second image in the animation, the framerate is set accordingly. If this delay is zero, the framerate is set to 24 fps by default (and can be adjusted by setting the {{FuncArg|fps}} parameter). If the images in the animation have unequal dimensions, then the dimension of the first image is taken and the remaining images are padded with black pixels below and or to the right. Note that unlike '''ImageReader''' and '''ImageSource''', {{FuncArg|pixel_type}} is set to RGB32 by default.&lt;br /&gt;
&lt;br /&gt;
ImageSourceAnim requires DevIL 1.7.8, included in the Avisynth installation (see [[#Notes|Notes]] below).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Default parameters: read a 1000-frame native AviSynth EBMP sequence (at 24 fps)&lt;br /&gt;
 ImageSource()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read files &amp;quot;100.jpeg&amp;quot; through &amp;quot;199.jpeg&amp;quot; into an NTSC clip&lt;br /&gt;
 ImageSource(&amp;quot;%d.jpeg&amp;quot;, 100, 199, 29.97)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read files &amp;quot;00.bmp&amp;quot; through &amp;quot;50.bmp&amp;quot; bypassing AviSynth's internal BMP reader&lt;br /&gt;
 ImageSource(&amp;quot;%02d.bmp&amp;quot;, end = 50, use_DevIL = true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a single image, repeat 300 times&lt;br /&gt;
 ImageSource(&amp;quot;static.png&amp;quot;, end = 300, use_DevIL=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a greyscale (8-bit) jpg:&lt;br /&gt;
 ImageSource(&amp;quot;GoldPetals-8bit.jpg&amp;quot;, use_DevIL=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a greyscale (8-bit) BMP (using AviSynth's internal BMP reader):&lt;br /&gt;
 ImageSource(&amp;quot;GoldPetals-8bit.bmp&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a YV24 BMP (created with ImageWriter):&lt;br /&gt;
 ImageSource(&amp;quot;GoldPetals-24bit.ebmp&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Use a still-frame image with audio:&lt;br /&gt;
 audio = DirectShowSource(&amp;quot;Gina La Piana - Start Over.flv&amp;quot;)&lt;br /&gt;
 video = ImageSource(&amp;quot;Gina La Piana.jpg&amp;quot;, fps=25, &lt;br /&gt;
 \           start=1, end=ceil(25*AudioLengthF(audio)/AudioRate(audio)))&lt;br /&gt;
 return AudioDub(video, audio)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read an animation:&lt;br /&gt;
 ImageSourceAnim(&amp;quot;F:\TestPics\8bit_animated.gif&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* &amp;quot;EBMP&amp;quot; is an AviSynth extension of the standard Microsoft RIFF image format that allows you to save raw image data (all color formats are supported).  See [[ImageWriter#The_EBMP_Format|ImageWriter]] for more details.&lt;br /&gt;
* Since v2.61 DevIL.dll is delay loaded, so Avisynth.dll can be used without it, in which case ImageReader/Writer would support only ebmp mode.&lt;br /&gt;
* Greyscale BMPs are not read and written correctly by DevIL. They should be opened using '''use_DevIL=false'''.&lt;br /&gt;
* [http://openil.sourceforge.net/ DevIL] 1.7.8 is included in the Avisynth installation since v2.61. If you need to download it, it is available [https://sourceforge.net/projects/openil/files/DevIL%20Win32/1.7.8/DevIL-EndUser-x86-1.7.8.zip here]. Just put the DevIL.dll in your system folder (it will overwrite any older version). Be sure to use the non-unicode version, because the other one will result in crashes when loading pictures.&lt;br /&gt;
*DevIL.dll 1.7.8 requires the 2005 VC [https://support.microsoft.com/en-us/kb/2977003 runtime libraries] to be correctly installed: [http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&amp;amp;displaylang=en Visual C++ 2005 SP1 Redistributable Package (x86)].&lt;br /&gt;
* Loading DIB/BMP type files that use a palette (such as 8 bit RGB, Monochrome, RLE8 and RLE4) requires DevIL 1.7.8. (Because the failure was usually catastrophic, internal BMP processing does not automatically fail over to DevIL processing. Forcing DevIL processing when using DevIL 1.6.6 for these file types is not recommended.)&lt;br /&gt;
* Error message for &amp;quot;file not found&amp;quot; condition discussed [https://forum.doom9.org/showthread.php?t=174769 here]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changes ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| Added ImageSourceAnim.&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| &lt;br /&gt;
* Support user upgrade to 1.7.8 DevIL.dll (need to manage CRT dependancies). &amp;lt;br&amp;gt;&lt;br /&gt;
* Palette and compressed bmp images load correctly now (issue 894702) [requires 1.7.8 DevIL.dll] &amp;lt;br&amp;gt;&lt;br /&gt;
* Support for other formats like: gif, exr, jp2, psd, hdr [requires 1.7.8 DevIL.dll]&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| Opening greyscale images (as Y8) added; EBMP supports all color formats.&lt;br /&gt;
|-&lt;br /&gt;
| v2.61&lt;br /&gt;
| Updated DevIL library to v1.7.8.&lt;br /&gt;
|-&lt;br /&gt;
| v2.61&lt;br /&gt;
| DevIL.dll is now delay loaded, so Avisynth.dll can be used without it, in which case ImageReader/Writer would support only ebmp mode.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{FilterCat|Internal filters|Media file filters|Source_filters}}&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ImageSource</id>
		<title>ImageSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ImageSource"/>
				<updated>2018-03-03T17:18:07Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: AVS+ pixel formats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ImageReader and ImageSource ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{Func2Def&lt;br /&gt;
|ImageReader(string ''file'', int ''start'', int ''end'', float ''fps'', bool ''use_DevIL'', bool ''info'', string ''pixel_type'')&lt;br /&gt;
|ImageSource(string ''file'', int ''start'', int ''end'', float ''fps'', bool ''use_DevIL'', bool ''info'', string ''pixel_type'')}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|file|string|&amp;quot;c:\%06d.ebmp&amp;quot;}}&lt;br /&gt;
::Template for the image file(s), where frame number substitution can be specified using [http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/ sprintf syntax]. For example, the files written by [[ImageWriter|ImageWriter's]] default parameters can be referenced with &amp;quot;c:\%06d.ebmp&amp;quot;. If {{FuncArg|file}} points to a single file (no sprintf pattern), then that file is read once and the image subsequently returned for all requested frames.&lt;br /&gt;
&lt;br /&gt;
::If you see the error message '''''ImageReader: error 'could not open file' in DevIL library''''' it may mean that a {{FuncArg|file}} was not found or does not exist; see [[#Notes|Notes]] below.&lt;br /&gt;
 &lt;br /&gt;
:{{Par2|start|int|0}}&lt;br /&gt;
:{{Par2|end|int|1000}}&lt;br /&gt;
::Specifies the starting and ending numbers used for filename generation. The file corresponding to {{FuncArg|start}} is always frame 0 in the clip, the file corresponding to {{FuncArg|end}} is frame (end-start). The resulting clip has ({{FuncArg|end}} - {{FuncArg|start}} + 1) frames. '{{FuncArg|end}}=0' does NOT mean 'no upper bound' as with [[ImageWriter]]. The first file in the sequence, i.e., corresponding to {{FuncArg|start}}, MUST exist in order for clip parameters to be computed. Any missing files in the sequence are replaced with a blank frame.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps|float|24.0}}&lt;br /&gt;
::Frames Per Second of returned clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|use_DevIL|bool|false}}&lt;br /&gt;
::When false (the default), give the ''Developer's Image Library'' ([http://openil.sourceforge.net/ DevIL]) lower priority, using the internal BMP/[[ImageWriter#The_EBMP_Format|EBMP]] parser whenever possible; when true, always use DevIL, bypassing the internal parser.&lt;br /&gt;
&amp;lt;div {{NotaBeneWidthIndent|58|4}} &amp;gt;&lt;br /&gt;
When {{FuncArg|use_DevIL}}=false, an attempt is made to parse files with the internal BMP/EBMP parser; upon failure &amp;amp;ndash; that is, for all image files which are not (E)BMP &amp;amp;ndash; [http://openil.sourceforge.net/ DevIL] is utilized. When {{FuncArg|use_DevIL}}=true, execution skips the internal parser and goes directly to DevIL. You should only need to use {{FuncArg|use_DevIL}}=true if you have (E)BMP files you don't want read by '''ImageReader''''s internal parser. See [[#Notes|Notes]] below for DevIL library details.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:{{Par2|info|bool|false}}&lt;br /&gt;
::When true, the source filename and [http://openil.sourceforge.net/ DevIL] version is written to each video frame.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|pixel_type|string|&amp;quot;RGB24&amp;quot;}}&lt;br /&gt;
::Specifies the output pixel format: [[Y8]] (8-bit greyscale), [[RGB24]] and [[RGB32]] are supported. The alpha channel is loaded only for RGB32 and only if DevIL supports it for the loaded image format.&lt;br /&gt;
::{{AvsPluscon}} also supports [[Avisynthplus_color_formats|Y16]], [[Avisynthplus_color_formats|RGB48]] and [[Avisynthplus_color_formats|RGB64]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ImageReader''' is present from v2.52, replacing [http://www.avisynth.nl/users/warpenterprises/ WarpEnterprises'] ''ImageSequence'' plugin. &lt;br /&gt;
&lt;br /&gt;
'''ImageSource''' is equivalent, with some minor functionality changes. ImageSource is faster than ImageReader when importing a single picture.&lt;br /&gt;
&lt;br /&gt;
===== ''Output Formats'' =====&lt;br /&gt;
:For BMP or EBMP images opened with the internal parser, the video output is set when the sequence was created (see [[ImageWriter#The_EBMP_Format|ImageWriter: The EBMP Format]]); for images opened with the [http://openil.sourceforge.net/ DevIL] library, the video output is RGB24, RGB32 or Y8. &lt;br /&gt;
&lt;br /&gt;
===== ''Input Formats'' =====&lt;br /&gt;
:All AviSynth [[Color_spaces|color spaces]] are supported. &lt;br /&gt;
&lt;br /&gt;
:[[Wikipedia:BMP_file_format|BMP]] and EBMP are supported natively (see [[#Notes|Notes]] below); with DevIL 1.7.8, supported image formats are:&lt;br /&gt;
: [[Wikipedia:DirectDraw_Surface|dds]],&amp;amp;nbsp; [[Wikipedia:JPEG|jpg/jpe/jpeg]],&amp;amp;nbsp; [[Wikipedia:PCX|pcx]],&amp;amp;nbsp; [[Wikipedia:Portable_Network_Graphics|png]],&amp;amp;nbsp; [[Wikipedia:Netpbm_format|pbm/pgm/ppm]],&amp;amp;nbsp;  [[Wikipedia:TGA|tga]],&amp;amp;nbsp; [[Wikipedia:TIFF|tif/tiff]],&lt;br /&gt;
: [[Wikipedia:GIF|gif]],&amp;amp;nbsp; [[Wikipedia:OpenEXR|exr]],&amp;amp;nbsp; [[Wikipedia:JPEG_2000|jp2]],&amp;amp;nbsp; [[Wikipedia:Adobe_Photoshop#File_format|psd]],&amp;amp;nbsp; [[Wikipedia:Hierarchical_Data_Format|hdr]],&amp;amp;nbsp; [[Wikipedia:Raw_image_format|raw]],&amp;amp;nbsp; [[Wikipedia:Silicon_Graphics_Image|sgi/bw/rgb/rgba]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ImageSourceAnim ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ImageSourceAnim(string ''file'', float ''fps'', bool ''info'', string ''pixel_type'')}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|file|string|}}&lt;br /&gt;
::animation file to be loaded.&lt;br /&gt;
&lt;br /&gt;
::If you see the error message '''''ImageSourceAnim: error 'could not open file' in DevIL library''''' it may mean that the {{FuncArg|file}} was not found or does not exist; see [[#Notes|Notes]] below.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps|float|24.0}}&lt;br /&gt;
::Frames Per Second of returned clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|info|bool|false}}&lt;br /&gt;
::When true, the source filename and DevIL version is written to each video frame.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|pixel_type|string|&amp;quot;RGB32&amp;quot;}}&lt;br /&gt;
::Specifies the output pixel format: [[Y8]] (8-bit greyscale), [[RGB24]] and [[RGB32]] are supported. The alpha channel is loaded only for RGB32 and only if DevIL supports it for the loaded image format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ImageSourceAnim''' lets you import animations ([[Wikipedia:GIF|gif]], [[Wikipedia:Netpbm_format|ppm]], [[Wikipedia:TIFF|tif/tiff]] or [[Wikipedia:Adobe_Photoshop#File_format|psd]]). If there is a delay between the first and second image in the animation, the framerate is set accordingly. If this delay is zero, the framerate is set to 24 fps by default (and can be adjusted by setting the {{FuncArg|fps}} parameter). If the images in the animation have unequal dimensions, then the dimension of the first image is taken and the remaining images are padded with black pixels below and or to the right. Note that unlike '''ImageReader''' and '''ImageSource''', {{FuncArg|pixel_type}} is set to RGB32 by default.&lt;br /&gt;
&lt;br /&gt;
ImageSourceAnim requires DevIL 1.7.8, included in the Avisynth installation (see [[#Notes|Notes]] below).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Default parameters: read a 1000-frame native AviSynth EBMP sequence (at 24 fps)&lt;br /&gt;
 ImageSource()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read files &amp;quot;100.jpeg&amp;quot; through &amp;quot;199.jpeg&amp;quot; into an NTSC clip&lt;br /&gt;
 ImageSource(&amp;quot;%d.jpeg&amp;quot;, 100, 199, 29.97)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read files &amp;quot;00.bmp&amp;quot; through &amp;quot;50.bmp&amp;quot; bypassing AviSynth's internal BMP reader&lt;br /&gt;
 ImageSource(&amp;quot;%02d.bmp&amp;quot;, end = 50, use_DevIL = true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a single image, repeat 300 times&lt;br /&gt;
 ImageSource(&amp;quot;static.png&amp;quot;, end = 300, use_DevIL=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a greyscale (8-bit) jpg:&lt;br /&gt;
 ImageSource(&amp;quot;GoldPetals-8bit.jpg&amp;quot;, use_DevIL=true)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a greyscale (8-bit) BMP (using AviSynth's internal BMP reader):&lt;br /&gt;
 ImageSource(&amp;quot;GoldPetals-8bit.bmp&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read a YV24 BMP (created with ImageWriter):&lt;br /&gt;
 ImageSource(&amp;quot;GoldPetals-24bit.ebmp&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Use a still-frame image with audio:&lt;br /&gt;
 audio = DirectShowSource(&amp;quot;Gina La Piana - Start Over.flv&amp;quot;)&lt;br /&gt;
 video = ImageSource(&amp;quot;Gina La Piana.jpg&amp;quot;, fps=25, &lt;br /&gt;
 \           start=1, end=ceil(25*AudioLengthF(audio)/AudioRate(audio)))&lt;br /&gt;
 return AudioDub(video, audio)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|0}} &amp;gt;&lt;br /&gt;
 # Read an animation:&lt;br /&gt;
 ImageSourceAnim(&amp;quot;F:\TestPics\8bit_animated.gif&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* &amp;quot;EBMP&amp;quot; is an AviSynth extension of the standard Microsoft RIFF image format that allows you to save raw image data (all color formats are supported).  See [[ImageWriter#The_EBMP_Format|ImageWriter]] for more details.&lt;br /&gt;
* Since v2.61 DevIL.dll is delay loaded, so Avisynth.dll can be used without it, in which case ImageReader/Writer would support only ebmp mode.&lt;br /&gt;
* Greyscale BMPs are not read and written correctly by DevIL. They should be opened using '''use_DevIL=false'''.&lt;br /&gt;
* [http://openil.sourceforge.net/ DevIL] 1.7.8 is included in the Avisynth installation since v2.61. If you need to download it, it is available [https://sourceforge.net/projects/openil/files/DevIL%20Win32/1.7.8/DevIL-EndUser-x86-1.7.8.zip here]. Just put the DevIL.dll in your system folder (it will overwrite any older version). Be sure to use the non-unicode version, because the other one will result in crashes when loading pictures.&lt;br /&gt;
*DevIL.dll 1.7.8 requires the 2005 VC [https://support.microsoft.com/en-us/kb/2977003 runtime libraries] to be correctly installed: [http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&amp;amp;displaylang=en Visual C++ 2005 SP1 Redistributable Package (x86)].&lt;br /&gt;
* Loading DIB/BMP type files that use a palette (such as 8 bit RGB, Monochrome, RLE8 and RLE4) requires DevIL 1.7.8. (Because the failure was usually catastrophic, internal BMP processing does not automatically fail over to DevIL processing. Forcing DevIL processing when using DevIL 1.6.6 for these file types is not recommended.)&lt;br /&gt;
* Error message for &amp;quot;file not found&amp;quot; condition discussed [https://forum.doom9.org/showthread.php?t=174769 here]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changes ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| Added ImageSourceAnim.&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| &lt;br /&gt;
* Support user upgrade to 1.7.8 DevIL.dll (need to manage CRT dependancies). &amp;lt;br&amp;gt;&lt;br /&gt;
* Palette and compressed bmp images load correctly now (issue 894702) [requires 1.7.8 DevIL.dll] &amp;lt;br&amp;gt;&lt;br /&gt;
* Support for other formats like: gif, exr, jp2, psd, hdr [requires 1.7.8 DevIL.dll]&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| Opening greyscale images (as Y8) added; EBMP supports all color formats.&lt;br /&gt;
|-&lt;br /&gt;
| v2.61&lt;br /&gt;
| Updated DevIL library to v1.7.8.&lt;br /&gt;
|-&lt;br /&gt;
| v2.61&lt;br /&gt;
| DevIL.dll is now delay loaded, so Avisynth.dll can be used without it, in which case ImageReader/Writer would support only ebmp mode.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{FilterCat|Internal filters|Media file filters|Source_filters}}&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-02-28T14:35:35Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-02-27 ShowSnippet and misc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_functions</id>
		<title>Internal functions</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_functions"/>
				<updated>2018-02-27T22:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: more AVS+ Utf8 functions&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;
&amp;lt;div style=&amp;quot;max-width:64em&amp;quot; &amp;gt;&lt;br /&gt;
In addition to [[Internal_filters|internal filters]] AviSynth has a fairly large number of other (non-clip) internal functions. &lt;br /&gt;
&lt;br /&gt;
The input or/and output of these functions are not clips, but some other variables which can be used in a script. &lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Short Contents:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
# [[#Boolean_functions|Boolean functions]]&lt;br /&gt;
# [[#Control_functions|Control functions]]&lt;br /&gt;
# [[#Global_options|Global options]]&lt;br /&gt;
# [[#Conversion_functions|Conversion functions]]&lt;br /&gt;
# [[#Numeric_functions|Numeric functions]]&lt;br /&gt;
# [[#Trigonometry_functions|Trigonometry functions]]&lt;br /&gt;
# [[#Bit_functions|Bit functions]]&lt;br /&gt;
# [[#Runtime_functions|Runtime functions]]&lt;br /&gt;
# [[#Script_functions|Script functions]]&lt;br /&gt;
# [[#String_functions|String functions]]&lt;br /&gt;
# [[#Version_functions|Version functions]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:4em;&amp;quot; |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolean functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These return true or false, if the condition that they test holds or not, respectively.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsBool||IsBool(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the bool type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b = false&lt;br /&gt;
 IsBool(b) = true&lt;br /&gt;
 IsBool(1 &amp;lt; 2 &amp;amp;&amp;amp; 0 == 1) = true&lt;br /&gt;
 IsBool(123) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsClip||IsClip(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the clip type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 c = [[AviSource]](...)&lt;br /&gt;
 IsClip(c) = true&lt;br /&gt;
 IsClip(&amp;quot;c&amp;quot;) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsFloat||IsFloat(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the float type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 f = [[Internal_functions/Numeric_functions|Sqrt]](2)&lt;br /&gt;
 IsFloat(f) = true&lt;br /&gt;
 IsFloat(true) = false&lt;br /&gt;
 IsFloat(&amp;quot;42.&amp;quot;) = false&lt;br /&gt;
 IsFloat(2) = true   # ''ints are considered to be floats by this function''&lt;br /&gt;
 IsReallyFloat(2) = false # see below&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: As a workaround for the issue noted above, you may use the following [[User_functions|user function]]:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|3}} &amp;gt;&lt;br /&gt;
 ## return true for floats only&lt;br /&gt;
 function IsReallyFloat(val v)&lt;br /&gt;
 {&lt;br /&gt;
     return (IsInt(v)==false) &amp;amp;&amp;amp; IsFloat(v)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsInt||IsInt(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the int type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsInt(2) = true&lt;br /&gt;
 IsInt(2.1) = false&lt;br /&gt;
 IsInt(true) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsString||IsString(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the string type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsString(&amp;quot;test&amp;quot;) = true&lt;br /&gt;
 IsString(2.3) = false&lt;br /&gt;
 IsString([[Internal_functions/Conversion_functions|String]](2.3)) = true&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exist||Exist(filename)}}&lt;br /&gt;
: Tests if the file specified by {{FuncArg|filename}} exists.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 filename = ...&lt;br /&gt;
 clp = Exist(filename) &lt;br /&gt;
 \ ? [[AviSource]](filename) &lt;br /&gt;
 \ : [[Internal_functions/Control_functions|Assert]](false, &amp;quot;file: &amp;quot; + filename + &amp;quot; does not exist&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Defined||Defined(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is defined. Can be used inside [[Script_functions]] to test if an optional argument has been given an explicit value.&lt;br /&gt;
: More formally, the function returns false if its argument (normally a function argument or variable) has the void ('undefined') type, otherwise it returns true.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b_arg_supplied = Defined(arg)&lt;br /&gt;
 myvar = b_arg_supplied ? ... : ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FunctionExists|{{AvsPluscon}}|FunctionExists(name)}}&lt;br /&gt;
: Tests if the function or filter name is defined in the script.&lt;br /&gt;
: {{FuncArg|name}} can be any string &amp;amp;ndash; it does not need to be a [[Script_variables#Variable_Names|legal name]].&lt;br /&gt;
: ''Example'' &amp;amp;ndash; see [[#Apply|Apply]] below&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|InternalFunctionExists|{{AvsPluscon}}|InternalFunctionExists(name)}}&lt;br /&gt;
: Tests if the function, filter or [[Clip_properties|property]] name is defined natively within [[AviSynth+]].&lt;br /&gt;
:* Unlike [[#FunctionExists|FunctionExists]], returns ''false'' for [[Plugins|external plugins]] and [[User_functions|user-defined functions]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Control functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These facilitate flow of control (loading of scripts, arguments checks, global settings adjustment, etc.).&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Apply||Apply(string ''func_string'' [, arg1 [, arg2 [, ... [, arg''n'']]]] )}}&lt;br /&gt;
: Calls the function or filter {{FuncArg|func_string}} with arguments {{FuncArg|arg1}}, {{FuncArg|arg2}}, ..., {{FuncArg|arg''n''}} (as many as supplied). &lt;br /&gt;
:* This provides a way to call a function or filter '''by name''', with arguments.&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;f(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[[#Eval|Eval]](&amp;quot;f(&amp;quot; + String(x) + &amp;quot;)&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* Note that the clip argument must be supplied explicitly - the [[Last|special variable ''Last'']] is not used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically  &lt;br /&gt;
 new_width = 352&lt;br /&gt;
 new_height = 288&lt;br /&gt;
 &lt;br /&gt;
 Apply(&amp;quot;[[BicubicResize]]&amp;quot;, Last, new_width, new_height)&lt;br /&gt;
 # Note that the clip argument must be supplied - 'Last' is not implicitly assumed&lt;br /&gt;
 &lt;br /&gt;
 ## the same action, using [[#Eval|Eval]]&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + String(new_width) + &amp;quot;,&amp;quot; + String(new_height) + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists (AviSynth 2.6)&lt;br /&gt;
 function MyFilter(clip C, string s) { &lt;br /&gt;
     return C.[[Subtitle]](&amp;quot;MyFilter: &amp;quot;+s, align=5)&lt;br /&gt;
 }&lt;br /&gt;
 ColorBars &lt;br /&gt;
 [[Control_structures|try]] {&lt;br /&gt;
     Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;)&lt;br /&gt;
 } catch (err_msg) {&lt;br /&gt;
     # (ignore)&lt;br /&gt;
 }&lt;br /&gt;
 return Last&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists ([[AviSynth+|AVS+]] only)&lt;br /&gt;
 ColorBars  &lt;br /&gt;
 return [[#FunctionExists|FunctionExists]](&amp;quot;MyFilter&amp;quot;) &lt;br /&gt;
 \ ? Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;) &lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Eval||Eval(expression [, string ''name''])}}&lt;br /&gt;
: Evaluates an arbitrary {{FuncArg|expression}} and returns the result of that evaluation. '''It works exactly like [[#Import|Import]] below''', except&lt;br /&gt;
:* The expression to be evaluated comes from a string instead of a file; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are not changed;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is not changed.&lt;br /&gt;
: Argument {{FuncArg|name}} will be shown in the error message beside the script name. Both will be followed with the line number in {{FuncArg|expression}} where the error occurred.&lt;br /&gt;
&lt;br /&gt;
: Variables in your calling script are available within {{FuncArg|expression}}; [[Global|global variables]] are not required.&lt;br /&gt;
: Note '''Eval''' can return the result of ''any'' valid expression; usually a clip, but also a string, boolean etc.&lt;br /&gt;
: You can use '''Eval''' to construct and evaluate expressions dynamically inside your scripts, based on variable input data.&lt;br /&gt;
: '''Eval''' is useful as a [[Control_structures|control structure]] for creating multi-line ''block statements'' without requiring [[AviSynth%2B|AviSynth+]].&lt;br /&gt;
: '''Eval''' can be used to put aside the need to install external plugins if they are not actually used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically &lt;br /&gt;
 ## calls [[BicubicResize]](last, 352, 288)&lt;br /&gt;
 settings = &amp;quot;352, 288&amp;quot;&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + settings + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## if...else [[Control_structures|control structure]]&lt;br /&gt;
 option = true&lt;br /&gt;
 option  &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[Levels]](0, 1.2, 255, 20, 235)&lt;br /&gt;
     [[Spline36Resize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;) &lt;br /&gt;
 \ : '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[BicubicResize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.3)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it is needed; &lt;br /&gt;
 ## in this example, [[SMDegrain]] only needs to be installed if the option is ''true''.&lt;br /&gt;
 option = false&lt;br /&gt;
 option &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     SMDegrain(tr=2, thSAD=250, contrasharp=true, refinemotion=true, lsb=true)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## accessing script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=[[Subtitle]](&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;A&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## setting script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;B = A.Invert&amp;quot;)&lt;br /&gt;
 return B ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Increment a global variable, based on a local variable&lt;br /&gt;
 Eval(&amp;quot;global my_counter = my_counter + &amp;quot; + [[#String|String]](increment)) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## multi-line example with comment and line continuation&lt;br /&gt;
 '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[BicubicResize]](352, 288)&lt;br /&gt;
 #FlipVertical&lt;br /&gt;
 Subtitle(&lt;br /&gt;
 \   &amp;quot;Width  = &amp;quot;  + [[#String|String]]([[Clip_properties|Width]]) + &amp;quot;\n&amp;quot;&lt;br /&gt;
 \ + &amp;quot;Height = &amp;quot; + String(Height)&lt;br /&gt;
 \ , align=7, lsp=0)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Empty expression &lt;br /&gt;
 ## results in error: 'Defined(u) == false'&lt;br /&gt;
 u = Eval(&amp;quot;#&amp;quot;)   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Error reporting&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, size=Height, align=2)&lt;br /&gt;
 Eval(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;, '''&amp;quot;eval_test_1&amp;quot;''') ## name for error reporting purposes&lt;br /&gt;
 return Last&lt;br /&gt;
 &lt;br /&gt;
 ''results in the error message:''&lt;br /&gt;
 Script error: there is no function named &amp;quot;foo&amp;quot;&lt;br /&gt;
 '''(eval_test_1, line 3)'''&lt;br /&gt;
 (E:\_test.avs, line 6)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Import||Import(filename)}}&lt;br /&gt;
{{ScriptFunctionCode|Import||Import(filename [, ...] [, bool utf8])}} {{AvsPluscon}}&lt;br /&gt;
: Evaluates the contents of another script and returns the result of that evaluation. '''It works exactly like [[#Eval|Eval]] above''', except&lt;br /&gt;
:* The expression to be evaluated comes from a file instead of a string; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are set to the current (imported) script;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is [[Internal_functions#SetWorkingDir|set]] to the current (imported) script.&lt;br /&gt;
:* {{FuncArg|utf8}} {{AvsPluscon}} if true, assumes filename(s) are [[wikipedia:UTF-8|UTF8]], else (default), assume ANSI.&lt;br /&gt;
&lt;br /&gt;
:[[Script_functions|Functions]], [[Script_variables|variables]] and loaded plugins declared inside the imported script are made available to the parent script. &amp;lt;b&amp;gt;Import&amp;lt;/b&amp;gt;'s return value  can be assigned to a variable of the parent script; this is most useful when the imported script ends with a clip.&lt;br /&gt;
&lt;br /&gt;
: Typically '''Import''' is used to make library functions available to the parent script, and the return value is not used. However this is simply a convention; it is not enforced by the [[AviSynth Syntax]]. Some indicative uses of '''Import''' include:&lt;br /&gt;
:* Storing multiple script-functions, variables and global variables for reuse by scripts (creation of script libraries).&lt;br /&gt;
:* Retrieving pre-built streams.&lt;br /&gt;
:* Retrieving dynamically configured pre-built streams (the core idea is that the importing script declares some global variables which the imported script uses to configure the stream that will return).&lt;br /&gt;
:'''Note 1''': Since the contents of the imported script are evaluated at the point of invocation, it is possible by enclosing the '''Import''' call in a nested scope (for example inside a function) to make available to the importing script the functions and globals of the imported script ''without'' its script-level variables.&lt;br /&gt;
:'''Note 2''': Any script with the [[AVSI]] extension in the AviSynth Plugins folder is automatically imported. This is useful for making script functions available to any new script you create without having to copy and paste.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # ''B.avsi''&lt;br /&gt;
 A.Invert&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5) ## create clip 'A'&lt;br /&gt;
 Import(&amp;quot;B.avsi&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## here we do not care about the return value (''mylib.avsi'' contains only functions)&lt;br /&gt;
 Import(&amp;quot;mylib.avsi&amp;quot;)  &lt;br /&gt;
 ...&lt;br /&gt;
 ## ''mysources.avsi'' loads predetermined file names from a folder into globals&lt;br /&gt;
 okflag = Import(&amp;quot;mysources.avsi&amp;quot;)  &lt;br /&gt;
 source = okflag ? global1 + global2 + global3 : [[BlankClip]]()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Select||Select(index, item0 [, item1 [, ...[, itemn]]])}}&lt;br /&gt;
: Returns the item selected by the {{FuncArg|index}} argument, which must be of int type (0 returns {{FuncArg|item0}}, 1 returns {{FuncArg|item1}}, ..., etc). Items can be any script [[Script_variables|variable]] or expression of any type and can even be mixed.&lt;br /&gt;
&lt;br /&gt;
:If {{FuncArg|index}} is out of range, an error is raised.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # select a clip-brush from a set of presets&lt;br /&gt;
 idx = 2&lt;br /&gt;
 brush = Select(idx, [[AviSource]](&amp;quot;round.avi&amp;quot;), &lt;br /&gt;
 \        rectangle, diagonal, diagonal.[[FlipHorizontal]])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - all branches are evaluated:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 Select(index, &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &lt;br /&gt;
 \        Assert(false, &amp;quot;Select evaluates all branches&amp;quot;)) &lt;br /&gt;
 ## NOTE this code does not run - it throws [[#Assert|Assert]] error&lt;br /&gt;
 ## because Select evaluates all branches&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is not desired, use the [[Ternary_operator|conditional execution]] operator: &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 x = (index==0) ? &amp;quot;zero&amp;quot;&lt;br /&gt;
 \ : (index==1) ? &amp;quot;one&amp;quot;&lt;br /&gt;
 \ : (index==2) ? &amp;quot;two&amp;quot;&lt;br /&gt;
 \ : Assert(false, &amp;quot;index out of range&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Default||Default(x, d)}}&lt;br /&gt;
: Returns {{FuncArg|x}} if '''Defined'''(x) is true, {{FuncArg|d}} otherwise. {{FuncArg|x}} must either be a function's argument or an already declared script variable (ie a variable which has been assigned a value) else an error will occur.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Assert||Assert(condition [, err_msg])}}&lt;br /&gt;
: Does nothing if {{FuncArg|condition}} is true; throws an error, immediately terminating script execution, if {{FuncArg|condition}} is false. In the later case {{FuncArg|err_msg}}, if supplied, is presented to the user through a dialog box; else the standard message &amp;quot;Assert: assertion failed&amp;quot; shows up.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     Assert(strength &amp;gt; 0, &amp;quot;'strength' must be positive&amp;quot;)&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|NOP||NOP()}}&lt;br /&gt;
: This is a no-operation function provided mainly for conditional execution with non-return value items such as [[Import]], when no &amp;quot;else&amp;quot; condition is desired. That is, use it whenever the [[AviSynth Syntax]] requires an operation (such as with the ?: [[Operators#For_Booleans|operator]]) but your script does not need one.&lt;br /&gt;
: Return value: 0 (int type).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 preset = want_presets ? [[AviSource]](&amp;quot;c:\presets\any.avi&amp;quot;) : NOP&lt;br /&gt;
 ... &lt;br /&gt;
 loadlib ? [[Import]](&amp;quot;my_useful_functions.avs&amp;quot;) : NOP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Undefined|v2.60|Undefined()}}&lt;br /&gt;
: Returns the undefined state.&lt;br /&gt;
: It's the state for which '''Defined'''() returns false.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 x = Undefined()&lt;br /&gt;
 Defined(x) # == false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Options ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{ScriptFunctionH5|SetMemoryMax||SetMemoryMax(amount)}}&lt;br /&gt;
: Sets the maximum memory that AviSynth uses (in MB) to the value of {{FuncArg|amount}}. Setting to zero just returns the current Memory Max value. In the 2.5 series the default Memory Max value is 25% of the free physical memory, with a minimum of 16MB.&lt;br /&gt;
: The default Memory Max is also limited to 512MB.&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; &amp;lt;!-- width=50% --&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | Free memory&lt;br /&gt;
 | &amp;lt;64&lt;br /&gt;
 | 128&lt;br /&gt;
 | 256&lt;br /&gt;
 | 512&lt;br /&gt;
 | 1024&lt;br /&gt;
 | 2048&lt;br /&gt;
 | 3072&lt;br /&gt;
 |-&lt;br /&gt;
 | Default Max&lt;br /&gt;
 | 16&lt;br /&gt;
 | 32&lt;br /&gt;
 | 64&lt;br /&gt;
 | 192&lt;br /&gt;
 | 448&lt;br /&gt;
 | 512&lt;br /&gt;
 | 512&lt;br /&gt;
 |}&lt;br /&gt;
: In some versions there is a default setting of 5MB, which is quite low. If you encounter problems (e.g. low speed) try to set this values to at least 32MB. Too high values can result in crashes because of 2GB address space limit.&lt;br /&gt;
: Return value: Actual MemoryMax value set.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetMemoryMax(128)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetWorkingDir||SetWorkingDir(path)}}&lt;br /&gt;
: Sets the default directory for AviSynth to the {{FuncArg|path}} argument.&lt;br /&gt;
: This is primarily for easy loading of source clips, [[Import|importing]] scripts, etc. It does not affect plugins' autoloading. &lt;br /&gt;
: Return value is 0 if successful, -1 otherwise.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetWorkingDir(&amp;quot;c:\my_presets&amp;quot;)&lt;br /&gt;
 [[AviSource]](&amp;quot;border_mask.avi&amp;quot;)  # this loads c:\my_presets\border_mask.avi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetPlanarLegacyAlignment||SetPlanarLegacyAlignment(mode)}}&lt;br /&gt;
: Set alignment mode for [[planar]] frames. {{FuncArg|mode}} can either be true or false.&lt;br /&gt;
: Some older [[External_plugins|plugins]] illegally assume the layout of video frames in memory. This special filter forces the memory layout of planar frames to be compatible with prior versions of AviSynth. The filter works on the [[The_script_execution_model/Evaluation_of_runtime_scripts|GetFrame]]() call stack, so it effects filters '''before''' it in the script.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Example : Using an older version of Mpeg2Source() (1.10 or older):&lt;br /&gt;
 &lt;br /&gt;
 LoadPlugin(&amp;quot;...\Mpeg2Decode.dll&amp;quot;)&lt;br /&gt;
 Mpeg2Source(&amp;quot;test.d2v&amp;quot;)         # A plugin that illegally assumes the layout of memory&lt;br /&gt;
 SetPlanarLegacyAlignment(true)  # Set legacy memory alignment for prior statements&lt;br /&gt;
 [[Convert|ConvertToYUY2]]()     # Statements through to the end of the script have&lt;br /&gt;
 ...                             # advanced memory alignment.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AllowFloatAudio||global OPT_AllowFloatAudio &amp;amp;#61; true ## default false}}&lt;br /&gt;
: [[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true (this option enables WAVE_FORMAT_IEEE_FLOAT audio output&amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?t=109608]&amp;lt;/sup&amp;gt;). In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
:The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_UseWaveExtensible||global OPT_UseWaveExtensible &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables WAVE_FORMAT_EXTENSIBLE audio output. The default is WAVE_FORMAT_EX.&lt;br /&gt;
: '''Note:''' The default DirectShow component for .AVS files, &amp;quot;AVI/WAV File Source&amp;quot;, does not correctly implement WAVE_FORMAT_EXTENSIBLE processing, so many application may not be able to detect the audio track. There are third party DirectShow readers that do work correctly. Intermediate work files written using the AVIFile interface for later DirectShow processing will work correctly if they use the DirectShow &amp;quot;File Source (async)&amp;quot; component or equivalent. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_dwChannelMask|v2.60|global OPT_dwChannelMask(int v)}}&lt;br /&gt;
: This option enables you to set ChannelMask. It overrides WAVEFORMATEXTENSIBLE.dwChannelMask&amp;lt;sup&amp;gt;[[http://wiki.multimedia.cx/index.php?title=WAVEFORMATEXTENSIBLE]&amp;lt;/sup&amp;gt; which is set according to this table&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 0x00004, // 1   -- -- Cf&lt;br /&gt;
 0x00003, // 2   Lf Rf&lt;br /&gt;
 0x00007, // 3   Lf Rf Cf&lt;br /&gt;
 0x00033, // 4   Lf Rf -- -- Lr Rr&lt;br /&gt;
 0x00037, // 5   Lf Rf Cf -- Lr Rr&lt;br /&gt;
 0x0003F, // 5.1 Lf Rf Cf Sw Lr Rr&lt;br /&gt;
 0x0013F, // 6.1 Lf Rf Cf Sw Lr Rr -- -- Cr&lt;br /&gt;
 0x0063F, // 7.1 Lf Rf Cf Sw Lr Rr -- -- -- Ls Rs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AVIPadScanlines|v2.60|global OPT_AVIPadScanlines &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables DWORD aligned planar padding. Default is packed aligned planar padding. See [[AVIFile output emulation|memory alignment used in the AVIFile output emulation]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_VDubPlanarHack|v2.60|global OPT_VDubPlanarHack &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables flipped YV24 and YV16 chroma planes. This is an hack for early versions of Virtualdub with YV24/YV16 support. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_V210|{{AvsPluscon}}|global OPT_Enable_V210 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, [[Frameserver|Frameserve]] interleaved V210 instead of planar P210. (VfW)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
{{BoldColor|black|100|§}} ''VfW'' here means [[wikipedia:Video_for_Windows|Video For Windows]] clients such as VirtualDub are affected, but not other clients such as ffmpeg.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_10|{{AvsPluscon}}|global OPT_Enable_Y3_10_10 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, set the [[FourCC]] to Y3[10][10] ('Y', '3', 10, 10) instead of P210  ('P', '2', '1', '0'). (VfW) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_16|{{AvsPluscon}}|global OPT_Enable_Y3_10_16 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 16bit YUV422, use Y3[10][16] instead of P216 (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_b64a|{{AvsPluscon}}|global OPT_Enable_b64a &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Use b64a instead of BRA[64] (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_PlanarToPackedRGB|{{AvsPluscon}}|global OPT_Enable_PlanarToPackedRGB &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Convert Planar RGB to packed RGB (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conversion functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These convert between different types.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Value||Value(string)}}&lt;br /&gt;
: Converts a decimal string to its associated numeric value.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Value (&amp;quot;-2.7&amp;quot;) = -2.7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|HexValue||HexValue(string)}}&lt;br /&gt;
: Converts a hexadecimal string to its associated numeric value. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 HexValue (&amp;quot;FF00&amp;quot;) = 65280&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Hex|v2.60|Hex(int)}}&lt;br /&gt;
: Converts a numerical value to its hexadecimal value. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Hex (10824234) = &amp;quot;A52A2A&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|String||String(var [, string format_string])}}&lt;br /&gt;
: Converts a variable to a string. ''String'' arguments are passed along unchanged; ''bools'' are converted to &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;; numbers are formatted as described below; other [[Script_variables#Variable_Types|variable types]] (''clip'', ''val'') are converted to the empty string. &lt;br /&gt;
:The syntax of {{FuncArg|format_string}} is as follows:&lt;br /&gt;
::&amp;lt;code&amp;gt;'''%'''[flags][width][.precision]'''f'''&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;i&amp;gt;the leading &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; and trailing &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; are required.&amp;lt;/i&amp;gt;&lt;br /&gt;
:The parts of {{FuncArg|format_string}} are:&lt;br /&gt;
:; ''flags'' &lt;br /&gt;
::{| class=wikitable&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;&lt;br /&gt;
|left align (right align by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the +/- sign (show only '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;' by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|pad (see ''width'') with leading zeroes (pad with spaces by default)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;amp;nbsp;'&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;'&amp;amp;nbsp;&lt;br /&gt;
|print a blank instead of a '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;'&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the decimal point (dropped by default if there are no decimal digits)&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
:; ''width''&lt;br /&gt;
:: the minimum width (the string is never truncated if it is wider than ''width'')&lt;br /&gt;
:; ''precision''&lt;br /&gt;
:: the number of decimal digits&lt;br /&gt;
: You can also put arbitrary text around {{FuncArg|format_string}}, similar to the C-language [http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm sprintf] function.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|62|2}} &amp;gt;&lt;br /&gt;
 Subtitle( String(1.23) )                    # '1.230000' (six decimals by default for floats)&lt;br /&gt;
 Subtitle( String(123) )                     # '123'      (no decimals by default for ints)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.2f&amp;quot; ))           # '1.23'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.1f&amp;quot; ))           # '1.2'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%5.1f&amp;quot;) )           # '  1.2'    (padded to 5 characters wide)&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%1.3f&amp;quot;) )           # '1.230'    (3 decimals; add trailing zeroes)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.0f&amp;quot;) )            # '123'      (no decimals for precision=0)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%''#''0.0f&amp;quot;) )           # '123.'     ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.2f&amp;quot;) )            # '123.00'   (2 decimals: add trailing zeroes)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%5.0f&amp;quot;) )            # '  123'    (padded to 5 characters wide using ' ')&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%05.0f&amp;quot;) )           # '00123'    (padded to 5 characters wide using '0')&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.0f&amp;quot;) )          # 'PI=3'     (text around format_string)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%''#''0.0f&amp;quot;) )         # 'PI=3.'    ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%2.0f&amp;quot;) )          # 'PI= 3'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%3.2f&amp;quot;) )          # 'PI=3.14'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.5f&amp;quot;) )          # 'PI=3.14159'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%6.3f&amp;quot;) )          # 'PI= 3.142'&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(32, &amp;quot;%0.0f&amp;quot;) )             # '32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%3.0f&amp;quot;) )             # ' 32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%8.0f&amp;quot;) )             # '      32'&lt;br /&gt;
 &lt;br /&gt;
 ## arbitrary text around format_string:&lt;br /&gt;
 Subtitle( String(Last.Height, &amp;quot;Clip height is %0.0f&amp;quot;) ) # 'Clip height is 480'&lt;br /&gt;
 ## same output as above but using string concatenation:&lt;br /&gt;
 Subtitle( &amp;quot;Clip height is &amp;quot; + String(Last.Height) )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numeric functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common mathematical operations on numeric variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Max||Max(float, float [, ...])}}&lt;br /&gt;
: Returns the maximum value of a set of numbers.&lt;br /&gt;
: If all the values are of type Int, the result is an Int. If any of the values are of type Float, the result is a Float.&lt;br /&gt;
: This may cause an unexpected result when an Int value greater than 16777216 is mixed with Float values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Max (1, 2) = 2&lt;br /&gt;
 Max (5, 3.0, 2) = 5.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Min||Min(float, float [, ...])}}&lt;br /&gt;
: Returns the minimum value of a set of numbers.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Min (1, 2) = 1&lt;br /&gt;
 Min (5, 3.0, 2) = 2.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MulDiv||MulDiv(int, int, int)}}&lt;br /&gt;
: Multiplies two ints (m, n) and divides the product by a third (d) in a single operation, with 64 bit intermediate result. The actual equation used is &amp;lt;tt&amp;gt; (m * n + d / 2) / d &amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MulDiv (1, 1, 2) = 1&lt;br /&gt;
 MulDiv (2, 3, 2) = 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Floor||Floor(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round down on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Floor(1.2) = 1&lt;br /&gt;
 Floor(1.6) = 1&lt;br /&gt;
 Floor(-1.2) = -2&lt;br /&gt;
 Floor(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ceil||Ceil(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round up on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ceil(1.2) = 2&lt;br /&gt;
 Ceil(1.6) = 2&lt;br /&gt;
 Ceil(-1.2) = -1&lt;br /&gt;
 Ceil(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Round||Round(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round off to nearest integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Round(1.2) = 1&lt;br /&gt;
 Round(1.6) = 2&lt;br /&gt;
 Round(-1.2) = -1&lt;br /&gt;
 Round(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Int||Int(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round towards zero).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Int(1.2) = 1&lt;br /&gt;
 Int(1.6) = 1&lt;br /&gt;
 Int(-1.2) = -1&lt;br /&gt;
 Int(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Float||Float(int)}}&lt;br /&gt;
: Converts int to single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value. Integer values that require more than 24-bits to be represented will have their lower 8-bits truncated yielding unexpected values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Float(4) = 4.0&lt;br /&gt;
 Float(4) / 3 = 1.333 (while 4 / 3 = 1 , due to integer division)&lt;br /&gt;
 Float(123456789) = 123456792.0 (error = -3, 0.000002%)&lt;br /&gt;
 Float(1234567890) = 1234567936.0 (error = -46, 0.000004%)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Fmod|v2.60|Fmod(float, float)}}&lt;br /&gt;
: Returns the modulo of the argument. Output is float.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Fmod(3.5, 0.5) = 0 (since 3.5 - 7*0.5 = 0)&lt;br /&gt;
 Fmod(3.5, 1.0) = 0.5 (since 3.5 - 3*1.0 = 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pi||Pi()}}&lt;br /&gt;
: Returns the value of the {{BoldColor|black|110|π}} constant (the ratio of a circle's circumference to its diameter).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 d = Pi()    # d == 3.141592653&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exp||Exp(float)}}&lt;br /&gt;
: Returns the natural (base-e) exponent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Exp(1) = 2.7182818&lt;br /&gt;
 Exp(0) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log||Log(float)}}&lt;br /&gt;
: Returns the natural (base-e) logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log(1) = 0.0&lt;br /&gt;
 Log(10) = 2.30259&lt;br /&gt;
 Log(Exp(1)) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log10|v2.60|Log10(float)}}&lt;br /&gt;
: Returns the common logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log10(1.0) = 0&lt;br /&gt;
 Log10(10.0) = 1.0&lt;br /&gt;
 Log10(2.0) = 0.3010299957&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pow||Pow(float base, float power)}}&lt;br /&gt;
: Returns {{FuncArg|base}} raised to a {{FuncArg|power}}.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Pow(2, 3) = 8&lt;br /&gt;
 Pow(3, 2) = 9&lt;br /&gt;
 Pow(3.45, 1.75) = 8.7334&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sqrt||Sqrt(float)}}&lt;br /&gt;
: Returns the square root of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sqrt(1) = 1.0&lt;br /&gt;
 Sqrt(2) = 1.4142&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Abs||Abs(float or int)}}&lt;br /&gt;
: Returns the absolute value of its argument (returns float for float, integer for integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Abs(-3.8) = 3.8&lt;br /&gt;
 Abs(-4) = 4&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sign||Sign(float)}}&lt;br /&gt;
: Returns the sign of the value passed as argument (1, 0 or -1).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sign(-3.5) = -1&lt;br /&gt;
 Sign(3.5) = 1&lt;br /&gt;
 Sign(0) = 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Frac||Frac(float)}}&lt;br /&gt;
: Returns the fractional portion of the value provided.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Frac(3.7) = 0.7&lt;br /&gt;
 Frac(-1.8) = -0.8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Rand||Rand([int max] [, bool scale] [, bool seed])}}&lt;br /&gt;
: Returns a random integer value. All parameters are optional. &lt;br /&gt;
:;max&lt;br /&gt;
::sets the maximum value+1 (default 32768) and can be set negative for negative results. It operates either in scaled or modulus mode (default {{FuncArg|scale}}=true only if [[#Abs|Abs]]({{FuncArg|max}}) &amp;gt; 32768, false otherwise). &lt;br /&gt;
:;scale&lt;br /&gt;
::When true, ''scales'' the internal random number generator value to the maximum value, while ''modulus mode'' ({{FuncArg|scale}}=false) uses the remainder from an integer divide of the random generator value by the maximum. Modulus mode is recommended for smaller maximums. &lt;br /&gt;
:;seed&lt;br /&gt;
::When true, seeds the random number generator with the current time. {{FuncArg|seed}} defaults to false and probably isn't necessary, although it's there just in case. &lt;br /&gt;
: Typically, this function would be used with the [[#Select|'''Select''']] function for random clips. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Select(Rand(5), clip1, clip2, clip3, clip4, clip5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Spline||Spline(float X, x1, y1, x2, y2, .... [, bool cubic])}}&lt;br /&gt;
: Interpolates the Y value at point X using the control points {{FuncArg|x1}}/{{FuncArg|y1}}, ... There have to be at least 2 x/y-pairs. The interpolation can be {{FuncArg|cubic}} (the result is a spline) or linear (the result is a polygon). Default is cubic.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Continued Numerator, Denominator =====&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(int, int, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(int, int, int limit)}}&lt;br /&gt;
: The rational pair ('''ContinuedNumerator''', '''ContinuedDenominator''') returned has the smallest possible denominator such that the absolute error is less than 1/{{FuncArg|limit}}. More information can be found on [http://en.wikipedia.org/wiki/Continued_fraction wikipedia].&lt;br /&gt;
: If {{FuncArg|limit}} is not specified in the Float case the rational pair returned is to the limit of the single precision floating point value. Thus (float)((double)Num/(double)Den) == V.&lt;br /&gt;
: In the Int case if {{FuncArg|limit}} is not specified then the normalized original values will be returned, i.e. reduced by the ''GCD'' (greatest common divisor).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ContinuedNumerator(PI(), limit=5000]) = 355&lt;br /&gt;
 ContinuedDenominator(PI(), limit=5000) = 113&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(PI(), limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(PI(), limit=50) = 7&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(355, 113, limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(355, 113, limit=50) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigonometry functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: relationships involving lengths and angles of triangles. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sin||Sin(float)}}&lt;br /&gt;
: Returns the sine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sin(Pi()/4) = 0.707&lt;br /&gt;
 Sin(Pi()/2) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cos||Cos(float)}}&lt;br /&gt;
: Returns the cosine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cos(Pi()/4) = 0.707&lt;br /&gt;
 Cos(Pi()/2) = 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tan|v2.60|Tan(float)}}&lt;br /&gt;
: Returns the tangent of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tan(Pi/4) = 1.0&lt;br /&gt;
 Tan(Pi/2) = not defined&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: 32 bit IEEE floats do not have sufficient resolution to exactly represent&lt;br /&gt;
: pi/2 so AviSynth returns a large positive number for the value slightly less&lt;br /&gt;
: than pi/2 and a large negative value for the next possible value which is&lt;br /&gt;
: slightly greater than pi/2.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Asin|v2.60|Asin(float)}}&lt;br /&gt;
: Returns the inverse of the sine of the argument (output is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Asin(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Asin(1.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Acos|v2.60|Acos(float)}}&lt;br /&gt;
: Returns the inverse of the cosine of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Acos(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Acos(0.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan|v2.60|Atan(float)}}&lt;br /&gt;
: Returns the inverse of the tangent of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan(0.707) = 0.6154085176&lt;br /&gt;
 Atan(1.0) = 0.7853981634 (~ Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan2|v2.60|Atan2(float, float)}}&lt;br /&gt;
: Returns the angle between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. Output is in radians. See [http://en.wikipedia.org/wiki/Atan2 wikipedia] for more information.&lt;br /&gt;
: y is the first argument and x is the second argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan2(1.0, 0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
 Atan2(1.0, 1.0) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Atan2(-1.0, -1.0) = -2.356194490 (~ -3Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sinh|v2.60|Sinh(float)}}&lt;br /&gt;
: Returns the hyperbolic sine of the argument. See [http://en.wikipedia.org/wiki/Hyperbolic_function wikipedia] for more information.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sinh(2.0) = 3.626860408&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cosh|v2.60|Cosh(float)}}&lt;br /&gt;
: Returns the hyperbolic cosine of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cosh(2.0) = 3.762195691&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tanh|v2.60|Tanh(float)}}&lt;br /&gt;
: Returns the hyperbolic tangent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tanh(2.0) = 0.9640275801&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bit functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: The functions are ''bitwise operators''. They manipulate individual bits within integer variables. This means that their arguments (being integers) are converted to binary numbers, the operation is performed on their bits, and the resulting binary number is converted back again.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitAnd|v2.60|BitAnd(int, int)}}&lt;br /&gt;
: Returns the bitwise AND (sets bit to 1 if both bits are 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitAnd(5, 6) = 4 # since 5 = 101, 6 = 110, and 101&amp;amp;110 = 100&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitNot|v2.60|BitNot(int)}}&lt;br /&gt;
: Returns the bit-inversion (sets bit to 1 if bit is 0 and vice-versa).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitNOT(5) = -6 &lt;br /&gt;
 # since  5 = 101,  &lt;br /&gt;
 # and ~101 = 1111 1111 1111 1111 1111 1111 1111 1010 = -6&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: 1111 1111 1111 1111 1111 1111 1111 1010 &lt;br /&gt;
::= (2^32-1)-2^0-2^2 = 2^32-(1+2^0+2^2) &lt;br /&gt;
::= (signed) -(1+2^0+2^2) = -6&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitOr|v2.60|BitOr(int, int)}}&lt;br /&gt;
: Returns the bitwise inclusive OR (sets bit to 1 if one of the bits (or both) is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitOr(5, 6) = 7 # since 5 = 101, 6 = 110, and 101|110 = 111&lt;br /&gt;
 BitOr(4, 2) = 6 # since 4 = 100, 2 = 010, and 100|010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitXor|v2.60|BitXor(int, int)}}&lt;br /&gt;
: Returns the bitwise exclusive OR (sets bit to 1 if exactly one of the bits is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitXor(5, 6) = 3 # since 5 = 101, 6 = 110, and 101^110 = 011&lt;br /&gt;
 BitXor(4, 2) = 6 # since 4 = 100, 2 = 010, and 100^010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLShift|v2.60|BitLShift(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShl|v2.60|BitShl(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSal|v2.60|BitSal(int, int)}}&lt;br /&gt;
: Shift the bits of a number to the left.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number 5 two bits to the left:&lt;br /&gt;
 BitLShift(5, 2) = 20 (since 101 &amp;lt;&amp;lt; 2 = 10100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftA|v2.60|BitRShiftA(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftS|v2.60|BitRShiftS(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSar|v2.60|BitSar(int, int)}}&lt;br /&gt;
: Shift the bits of an integer to the right. (Arithmetic, Sign bit fill, Right Shift)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as signed:&lt;br /&gt;
 BitRShiftA(-42, 1) = -21 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1  &lt;br /&gt;
 #      = 1111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right, unsigned =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftL|v2.60|BitRShiftL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftU|v2.60|BitRShiftU(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShr|v2.60|BitShr(int, int)}}&lt;br /&gt;
: Shift the bits of an unsigned integer to the right. (Logical, zero fill, Right Shift)&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as unsigned:&lt;br /&gt;
 BitRShiftL(-42, 1) = 2147483627 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1 &lt;br /&gt;
 #      = 0111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: -42 = -(1+2^0+2^3+2^5) = (unsigned) (2^32-1)-(2^0+2^3+2^5) = &lt;br /&gt;
::1111 1111 1111 1111 1111 1111 1101 0110&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLRotate|v2.60|BitLRotate(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRol|v2.60|BitRol(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the left by the number of bits specified in the second operand. For each rotation specified, the high order bit that exits from the left of the operand returns at the right to become the new low order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number -2147483642 one bit to the left:&lt;br /&gt;
 BitLRotate(-2147483642, 1) = 13 &lt;br /&gt;
 # (since 10000000000000000000000000000110 ROL 1&lt;br /&gt;
 #      = 00000000000000000000000000001101)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRRotate|v2.60|BitRRotateL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRor|v2.60|BitRor(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the right by the number of bits specified in the second operand. For each rotation specified, the low order bit that exits from the right of the operand returns at the left to become the new high order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number 13 one bit to the right:&lt;br /&gt;
 BitRRotate(13, 1) = -2147483642 &lt;br /&gt;
 # (since 00000000000000000000000000001101 ROR 1 &lt;br /&gt;
 #      = 10000000000000000000000000000110)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit test =====&lt;br /&gt;
{{ScriptFunctionCode|BitTest|v2.60|BitTest(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitTst|v2.60|BitTst(int, int)}}&lt;br /&gt;
: Tests a single bit (that is, it returns true if its state is one, else it returns false). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Check the state of the fourth bit:&lt;br /&gt;
 BitTest(3, 4) = False&lt;br /&gt;
 BitTest(19, 4) = True&lt;br /&gt;
 &lt;br /&gt;
 Check the state of the sign bit:&lt;br /&gt;
 BitTest(-1, 31) = True&lt;br /&gt;
 BitTest(2147483647, 31) = False&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSet|v2.60|BitSet(int, int)}}&lt;br /&gt;
: Sets a single bit to one (so it sets its state to one). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Set the state of the fourth bit to one:&lt;br /&gt;
 BitSet(3, 4) = 19&lt;br /&gt;
 BitSet(19, 4) = 19&lt;br /&gt;
 &lt;br /&gt;
 Set the state of the sign bit to one:&lt;br /&gt;
 BitSet(-1, 31) = -1&lt;br /&gt;
 BitSet(2147483647, 31) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit clear =====&lt;br /&gt;
{{ScriptFunctionCode|BitClear|v2.60|BitClear(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitClr|v2.60|BitClr(int, int)}}&lt;br /&gt;
: Sets a single bit to zero (so it sets its state to zero). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Clear the bits of the number 5&lt;br /&gt;
 BitClear(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitClear(5, 1) = 5 (second bit is already zero)&lt;br /&gt;
 BitClear(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitClear(5, 3) = 5 (fourth bit is already zero)&lt;br /&gt;
 &lt;br /&gt;
 Clear the state of the sign bit:&lt;br /&gt;
 BitClear(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit change =====&lt;br /&gt;
{{ScriptFunctionCode|BitChange|v2.60|BitChange(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitChg|v2.60|BitChg(int, int)}}&lt;br /&gt;
: Sets a single bit to its complement (so it changes the state of a single bit; 1 becomes 0 and vice versa). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero). The sign bit is bit 31.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Change the state of the a bit of the number 5:&lt;br /&gt;
 BitChange(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitChange(5, 1) = 7 (second bit is set to one)&lt;br /&gt;
 BitChange(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitChange(5, 3) = 13 (fourth bit is set to one)&lt;br /&gt;
 &lt;br /&gt;
 Change the state of the sign bit:&lt;br /&gt;
 BitChange(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Runtime functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These are internal functions which are evaluated at every frame. They can be used inside the scripts passed to runtime filters ([[ConditionalFilter]], [[ScriptClip]], [[FrameEvaluate]]) to return information for a frame.&lt;br /&gt;
&lt;br /&gt;
===== Average ===== &lt;br /&gt;
{{ScriptFunctionCode|AverageLuma||AverageLuma(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaU||AverageChromaU(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaV||AverageChromaV(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageB||AverageB(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageG||AverageG(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageR||AverageR(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value with the average pixel value of a plane (Luma, U-chroma and V-chroma, respectively). They require an [[ISSE]] capable cpu. In v2.61 an {{FuncArg|offset}} argument is added which enables you to access other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ScriptClip(Last, &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     threshold = 55&lt;br /&gt;
     luma = AverageLuma ## gives the average luma of the current frame&lt;br /&gt;
     #luma = AverageLuma(1) ## gives the average luma of the next frame&lt;br /&gt;
     luma &amp;lt; threshold &lt;br /&gt;
     \ ? Levels(0, 1.0+0.5*(threshold-luma)/threshold, 255, 0, 255) &lt;br /&gt;
     \ : last&lt;br /&gt;
     Subtitle(&amp;quot;luma=&amp;quot; + String(luma), align=2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference =====&lt;br /&gt;
{{ScriptFunctionCode|LumaDifference||LumaDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaUDifference||ChromaUDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaVDifference||ChromaVDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifference||RGBDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifference||BDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifference||GDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifference||RDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value between 0 and 255 of the absolute difference between two planes from two different clips &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. They require an [[ISSE]] capable cpu.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ovl = [[Overlay]](last, mov_star, x=some_xvalue, y=some_yvalue, mask=mov_mask)&lt;br /&gt;
 ldif = LumaDifference(ovl) # implicit last for clip1&lt;br /&gt;
 udif = ChromaUDifference([[Tweak]](hue=24), ovl)&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference from previous =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceFromPrevious||YDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceFromPrevious||UDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceFromPrevious||VDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceFromPrevious||RGBDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceFromPrevious||BDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceFromPrevious||GDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceFromPrevious||RDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and previous frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious) &amp;gt; threshold)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference to next =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceToNext||YDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceToNext||UDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceToNext||VDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceToNext||RGBDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceToNext||BDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceToNext||GDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceToNext||RDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and next frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the difference between the RGB, luma or chroma plane of the current frame and of ''any'' other frame. Note that for example clip.'''RGBDifferenceToNext'''(-1) = clip.'''RGBDifferenceToPrevious''', and clip.'''RGBDifferenceToNext'''(0) = 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # both th1, th2 are positive thresholds; th1 is larger enough than th2&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious &amp;gt; th1) &amp;amp;&amp;amp; (YDifferenceToNext &amp;lt; th2)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Color plane median, min, max, range =====&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMedian||YPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMedian||UPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMedian||VPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMedian||BPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMedian||GPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMedian||RPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMin||YPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMin||UPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMin||VPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMin||BPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMin||GPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMin||RPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMax||YPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMax||UPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMax||VPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMax||BPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMax||GPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMax||RPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMinMaxDifference||YPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMinMaxDifference||UPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMinMaxDifference||VPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMinMaxDifference||BPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMinMaxDifference||GPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMinMaxDifference||RPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
: This group of functions return statistics about the distribution of pixel values on a plane (Luma, U-chroma and V-chroma, respectively). The statistics are, in order of presentation: maximum, minimum, median and range (maximum - minimum difference). &lt;br /&gt;
: {{FuncArg|threshold}} is a percentage, stating how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the statistics of other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # median and average are close only on even distributions; &lt;br /&gt;
 # this can be a useful diagnostic&lt;br /&gt;
 have_intense_brights = YPlaneMedian() - AverageLuma() &amp;lt; threshold&lt;br /&gt;
 ...&lt;br /&gt;
 # a simple per-frame normalizer to [16..235], CCIR, range&lt;br /&gt;
 [[Levels]](YPlaneMin(), 1.0, YPlaneMax(), 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth script information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptName|v2.60|ScriptName()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 name = ScriptName() # name = &amp;quot;F:\ProjectXYZ\video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptNameUtf8|{{AvsPluscon}}|ScriptNameUtf8()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFile|v2.60|ScriptFile()}}&lt;br /&gt;
: Returns the filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 file = ScriptFile() # file = &amp;quot;video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFileUtf8|{{AvsPluscon}}|ScriptFileUtf8()}}&lt;br /&gt;
: Returns the filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDir|v2.60|ScriptDir()}}&lt;br /&gt;
: Returns the path of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 folder = ScriptDir() # folder = &amp;quot;F:\ProjectXYZ&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDirUtf8|{{AvsPluscon}}|ScriptDirUtf8()}}&lt;br /&gt;
: Returns the path of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetLogParams|{{AvsPluscon}}|SetLogParams([string ''target'', int ''level''])}}&lt;br /&gt;
: Sets a file path for a log file, used by [[#LogMsg|LogMsg]] and internal error reporting.&lt;br /&gt;
:* {{FuncArg|target}} names a file which will be created when the script loads. If attempting to create or write to {{FuncArg|target}} fails, the script will raise an error immediately. If the file exists, new log entries will be appended to the end. If omitted, {{FuncArg|target}} defaults to [[wikipedia:Stderr|stderr]].&lt;br /&gt;
:* {{FuncArg|level}} sets the log ''verbosity''; it can be one of the following:&lt;br /&gt;
::{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_ERROR&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(1)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the fewest log entries&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_WARNING&amp;lt;/tt&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(2)&amp;lt;/small&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the most log entries&lt;br /&gt;
|}&lt;br /&gt;
::If omitted, {{FuncArg|level}} defaults to &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
:''Examples'' see [[#LogMsg|LogMsg]] below.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LogMsg|{{AvsPluscon}}|LogMsg(string, int)}}&lt;br /&gt;
: Creates a new log entry.&lt;br /&gt;
:* {{FuncArg|string}} (required) specifies the log message.&lt;br /&gt;
:* {{FuncArg|int}} (required) specifies the log entry level: see [[#SetLogParams|SetLogParams]] above.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## creating file and set path for future log entries:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test1.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents:''&lt;br /&gt;
 (empty)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging an INFO message:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test2.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 LogMsg(&amp;quot;this is a test&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ''log contents:''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: this is a test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging a script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test3.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents (redundant entries are common):''&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 35)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging INFO context for script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test4.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 function MyFunction(clip C)&lt;br /&gt;
 {&lt;br /&gt;
     C&lt;br /&gt;
     [[Control_structures|try]] {&lt;br /&gt;
         foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
     } catch (err_msg) {&lt;br /&gt;
         msg2 = &amp;quot;Error in MyFunction: &amp;quot;&lt;br /&gt;
         LogMsg([[#Time|Time]](&amp;quot;%Y-%m-%d %I:%M:%S %p, %z&amp;quot;) + &amp;quot;: &amp;quot; + msg2, LOG_INFO)&lt;br /&gt;
         #[[#Assert|Assert]](false, msg2 + err_msg) ## optional: stop script, else continue&lt;br /&gt;
     }&lt;br /&gt;
     return Last&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ''log contents (redundant entries omitted):''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: 2017-11-12 11:03:41 AM, -0500: Error in MyFunction:&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|GetProcessInfo|{{AvsPluscon}}|GetProcessInfo(int)}}&lt;br /&gt;
: Returns information about the [[wikipedia:Process_(computing)|process]] the script is running in.&lt;br /&gt;
: The ''int'' argument has two legal values:&lt;br /&gt;
:* if ''0'' (default), returns ''64'' for a 64-bit process or ''32'' for a 32-bit process.&lt;br /&gt;
:* else if ''1'',&lt;br /&gt;
:** returns 0 for 32-bit process on 32-bit OS;&lt;br /&gt;
:** returns 1 for 32-bit process on 64-bit OS;&lt;br /&gt;
:** returns 2 for 64-bit process on 64-bit OS;&lt;br /&gt;
:** else returns -1 (unknown)&lt;br /&gt;
:: /// [[TODO]] this is preliminary info&lt;br /&gt;
&lt;br /&gt;
== String functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common operations on string variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LCase||LCase(string)}}&lt;br /&gt;
: Returns lower case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;avisynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|UCase||UCase(string)}}&lt;br /&gt;
: Returns upper case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 UCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;AVISYNTH&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrToUtf8||StrToUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from ANSI to [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrFromUtf8||StrFromUtf8(string)}} {{AvsPluscon}}&lt;br /&gt;
: Converts {{FuncArg|string}} from [[wikipedia:UTF-8|UTF8]] to ANSI.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrLen||StrLen(string)}}&lt;br /&gt;
: Returns length of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrLen(&amp;quot;AviSynth&amp;quot;) = 8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RevStr||RevStr(string)}}&lt;br /&gt;
: Returns {{FuncArg|string}} backwards.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RevStr(&amp;quot;AviSynth&amp;quot;) = &amp;quot;htnySivA&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LeftStr||LeftStr(string, int)}}&lt;br /&gt;
: Returns first {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LeftStr(&amp;quot;AviSynth&amp;quot;, 3) = &amp;quot;Avi&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RightStr||RightStr(string, int)}}&lt;br /&gt;
: Returns last {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RightStr(&amp;quot;AviSynth&amp;quot;, 5) = &amp;quot;Synth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MidStr||MidStr(string, int pos [, int length])}}&lt;br /&gt;
: Returns substring starting at {{FuncArg|pos}} for optional {{FuncArg|length}} or to end. {{FuncArg|pos}}=1 specifies start.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MidStr(&amp;quot;AviSynth&amp;quot;, 3, 2) = &amp;quot;iS&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FindStr||FindStr(string, substring)}}&lt;br /&gt;
: Returns (1-based) position of {{FuncArg|substring}} within {{FuncArg|string}} &lt;br /&gt;
:* Note this function is case-sensitive. &lt;br /&gt;
:* Returns 0 if {{FuncArg|substring}} is not found.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;Syn&amp;quot;) ## returns 4&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;SYN&amp;quot;) ## returns 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ReplaceStr|{{AvsPluscon}}|ReplaceStr(string, substring, replacement_string)}}&lt;br /&gt;
: Replaces occurrences of {{FuncArg|substring}} with {{FuncArg|replacement_string}} and returns the result. &lt;br /&gt;
:* Note this function is case-sensitive.&lt;br /&gt;
:* Avisynth 2.6.x users have other options, such as the [[User_defined_script_functions|user]] function below, adapted from ''StrReplace'', found [[HDColorBars|here]].&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 function ReplaceStr(string base, string sought, string repstr) {&lt;br /&gt;
     pos = FindStr(base, sought)&lt;br /&gt;
     return (sought==&amp;quot;&amp;quot; || pos==0) ? base : ReplaceStr(&lt;br /&gt;
     \       LeftStr(base, pos-1) + repstr +&lt;br /&gt;
     \       MidStr(base, pos+StrLen(sought)),&lt;br /&gt;
     \       sought, repstr)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ReplaceStr(&amp;quot;FlipHorizontal&amp;quot;, &amp;quot;Horizontal&amp;quot;, &amp;quot;Vertical&amp;quot;)&lt;br /&gt;
 ReplaceStr(&amp;quot;''$a'' x *&amp;quot;, &amp;quot;''$a''&amp;quot;, String(1.5)) ## (a [[MaskTools2|MaskTools]] expression with argument)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FillStr|v2.60|FillStr(int [, string])}}&lt;br /&gt;
: Fills a string. When {{FuncArg|int}}&amp;gt;1 it concatenates the {{FuncArg|string}} {{FuncArg|int}} times. {{FuncArg|string}} is &amp;quot;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;quot; (space) by default.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 FillStr(1, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynth&amp;quot;&lt;br /&gt;
 FillStr(2, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynthAviSynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmp|v2.60|StrCmp(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) != 0 # strings are not equal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmpi|v2.60|StrCmpi(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is not case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;abcz&amp;quot;, &amp;quot;abcdefg&amp;quot;) != 0 &lt;br /&gt;
 # returns the difference betweeen &amp;quot;z&amp;quot; and &amp;quot;d&amp;quot; (which is positive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Chr||Chr(int)}}&lt;br /&gt;
: Returns the ASCII character. &lt;br /&gt;
: Note that characters above the ASCII character set (ie above 127) are code page dependent and may render different (visual) results in different systems. This has an importance only for user-supplied localised text messages.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Chr(34) returns the quote character&lt;br /&gt;
 Chr(9)  returns the tab   character&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ord|v2.60|Ord(string)}}&lt;br /&gt;
: Gives the ordinal number (character code) of the first character of {{FuncArg|string}} (works like php [http://php.net/manual/en/function.ord.php ord] or Basic [http://msdn.microsoft.com/en-us/library/xfw01fx4%28v=vs.84%29.aspx Asc])&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ord(&amp;quot;a&amp;quot;) = 97&lt;br /&gt;
 Ord(&amp;quot;AviSynth&amp;quot;) = Ord(&amp;quot;A&amp;quot;) = 65&lt;br /&gt;
 Ord(&amp;quot;§&amp;quot;) = 167&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Time||Time(string)}}&lt;br /&gt;
: Returns a string with the current system time formatted as defined by {{FuncArg|string}}.&lt;br /&gt;
&lt;br /&gt;
: The string may contain any of the codes for output formatting presented below:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; | Code&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; | Description&lt;br /&gt;
 |-&lt;br /&gt;
 |%a&lt;br /&gt;
%A  &lt;br /&gt;
 | Abbreviated weekday name&lt;br /&gt;
Full weekday name&lt;br /&gt;
 |-&lt;br /&gt;
 |%b&lt;br /&gt;
%B  &lt;br /&gt;
 | Abbreviated month name&lt;br /&gt;
Full month name&lt;br /&gt;
 |-&lt;br /&gt;
 |%c  &lt;br /&gt;
 | Date and time representation appropriate for locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%d  &lt;br /&gt;
 | Day of month as decimal number (01 - 31)&lt;br /&gt;
 |-&lt;br /&gt;
 |%H&lt;br /&gt;
%I  &lt;br /&gt;
 | Hour in 24-hour format (00 - 23)&lt;br /&gt;
Hour in 12-hour format (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%j  &lt;br /&gt;
 | Day of year as decimal number (001 - 366)&lt;br /&gt;
 |-&lt;br /&gt;
 |%m  &lt;br /&gt;
 | Month as decimal number (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%M  &lt;br /&gt;
 | Minute as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%p  &lt;br /&gt;
 | Current locale's A.M./P.M. indicator for 12-hour clock&lt;br /&gt;
 |-&lt;br /&gt;
 |%S  &lt;br /&gt;
 | Second as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%U  &lt;br /&gt;
 | Week of year as decimal number, with Sunday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%w  &lt;br /&gt;
 | Weekday as decimal number (0 - 6; Sunday is 0)&lt;br /&gt;
 |-&lt;br /&gt;
 |%W  &lt;br /&gt;
 | Week of year as decimal number, with Monday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%x  &lt;br /&gt;
 | Date representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%X  &lt;br /&gt;
 | Time representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%y&lt;br /&gt;
%Y  &lt;br /&gt;
 | Year without century, as decimal number (00 - 99)&lt;br /&gt;
Year ''with'' century, as decimal number&lt;br /&gt;
 |-&lt;br /&gt;
 |%z, %Z  &lt;br /&gt;
 | Time-zone name or abbreviation; no characters if time zone is unknown&lt;br /&gt;
 |-&lt;br /&gt;
 |%%  &lt;br /&gt;
 | Percent sign &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
: The '#' flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; |Code with '#' flag&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; |Change in meaning&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''a''', %#'''A''', %#'''b''', &lt;br /&gt;
%#'''B''', %#'''p''', %#'''X''', &lt;br /&gt;
%#'''z''', %#'''Z''', %#'''%'''&lt;br /&gt;
 | No change; flag is ignored. &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''c''' &lt;br /&gt;
 | Long date and time representation, appropriate for current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995, 12:41:29&amp;quot;'' &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''x''' &lt;br /&gt;
 | Long date representation, appropriate to current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995&amp;quot;''&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''d''', %#'''H''', %#'''I''', &lt;br /&gt;
%#'''j''', %#'''m''', %#'''M''', &lt;br /&gt;
%#'''S''', %#'''U''', %#'''w''', &lt;br /&gt;
%#'''W''', %#'''y''', %#'''Y''' &lt;br /&gt;
 | Remove leading zeroes (if any).&lt;br /&gt;
 |}&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 v = Time(&amp;quot;%Y-%m-%d&amp;quot;)        # &amp;quot;2010-03-01&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%d-%b-%Y&amp;quot;)        # &amp;quot;01-Mar-2010&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%#d/%#m/%y&amp;quot;)      # &amp;quot;1/3/10&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%I:%M:%S %p, %z&amp;quot;) # &amp;quot;08:04:42 PM, GMT Standard Time&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%H:%M:%S %z&amp;quot;)     # &amp;quot;20:04:42 GMT Standard Time&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth version information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionNumber||VersionNumber()}}&lt;br /&gt;
: Returns AviSynth version number as a float.&lt;br /&gt;
:* Note: use [[#VersionString|VersionString]] below to determine if running in [[AviSynth+]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionNumber ## returns 2.60 (release version as of 11/2017)&lt;br /&gt;
 VersionNumber ## returns 2.61 (beta)&lt;br /&gt;
 VersionNumber ## returns 2.60 (AVS+ release 2508)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionString||VersionString()}}&lt;br /&gt;
: Returns AviSynth version info as a string (first line used in [[Version]]() command).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.60, build:Mar 31 2015 [16:38:54]&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.61, build:May 17 2016 [16:06:18] VC2008Exp&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth+ 0.1, (r2508, MT, x86_64)&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function IsAvsPlus()&lt;br /&gt;
 {&lt;br /&gt;
     sVer = [[#LCase|LCase]](VersionString) &lt;br /&gt;
     return ([[#FindStr|FindStr]](sVer, &amp;quot;avisynth+&amp;quot;)    &amp;gt; 0)&lt;br /&gt;
     \   || (FindStr(sVer, &amp;quot;avisynthplus&amp;quot;) &amp;gt; 0)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[AviSynth Syntax]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_functions]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;br /&gt;
[[Category:Scripting_Basics]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-02-27T13:01:20Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-02-26 use Expr to replace MaskTools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-02-24T22:53:35Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-02-24 enhance CropLRTB, CropLTWH, AnalyzeFmt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-02-23T07:16:46Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: (typo)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-02-23T06:07:57Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-02-23 (float32 needs more testing)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-02-22T23:56:34Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: v2018-02-22 enhancements; bugfixes; remove AddGrain&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</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-02-11T13:59:04Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: add AutoOverlay&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;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/AdaptiveMedian/AdaptiveMedian64.7z AdaptiveMedian64.7z]&lt;br /&gt;
|&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: [http://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;
|'''[http://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;
|[http://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.1.8&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;
|20150905&lt;br /&gt;
|[http://github.com/jpsdr/AutoYUY2/releases AutoYUY2_20150905.7z]&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;
|[http://github.com/pinterf/Average/releases Average-v0.94.7z]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=172698 AviSynthShader]'''&lt;br /&gt;
|1.3.7&lt;br /&gt;
|[http://github.com/mysteryx93/AviSynthShader/releases AviSynthShader-1.3.7.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Resizer/Format Conversion&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=173986 avsresize]'''&lt;br /&gt;
|r1a&lt;br /&gt;
|[http://www.dropbox.com/s/y0gx5n7fabj405i/avsresize-r1a.zip?dl=1 avsresize-r1a.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[http://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;
|20160624&lt;br /&gt;
|[http://github.com/pinterf/aWarpSharp/releases aWarpSharp2-20160624.7z]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015. Older version compiled with Intel Parallel Studio XE 2015 Composer Edition for C++: [http://www.dropbox.com/s/5s6xht0xu80otbz/aWarpSharp_20120328_x64.zip?dl=1 aWarpSharp_20120328_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=135855 BassAudio]'''&lt;br /&gt;
|2.4&lt;br /&gt;
|[http://www.mediafire.com/download/gyqkvniqutr9r28/BassAudio_x64.7z BassAudio_x64.7z] - [http://www.mediafire.com/download/0ydinsk5br3imgr/BassAudioSource24_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu - [http://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.0&lt;br /&gt;
|[http://www.mediafire.com/download/2nbolu9ebbrem20 bifrost-v2.0.7z]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [http://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;
|[http://github.com/tp7/checkmate/releases/download/0.9/checkmate-x64.zip checkmate-x64.zip]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[http://github.com/tp7/CLExpr CLExpr]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[http://github.com/tp7/CLExpr/releases/download/0.91/CLExpr-x64.zip CLExpr-x64.zip]&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;
|[http://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 [http://forum.doom9.org/showthread.php?p=1771784#post1771784 Chikuzen].&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[http://github.com/chikuzen/CombMask/tree/master/avisynth CombMask]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/releases CombMask-1.0.0.zip]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[http://github.com/sekrit-twc/EdgeFixer ContinuityFixer]'''&lt;br /&gt;
|4fd4817&lt;br /&gt;
|[http://www.mediafire.com/download/0bmyjfvh2n872hm ContinuityFixer.7z]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2013. Compiled by [http://forum.doom9.org/showthread.php?p=1721946#post1721946 l33tmeatwad].&lt;br /&gt;
|-&lt;br /&gt;
|Resizer&lt;br /&gt;
|[http://github.com/DJATOM/CullResize CullResize]&lt;br /&gt;
|0.1&lt;br /&gt;
|[http://github.com/DJATOM/CullResize/releases CullResize-0.1.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[DeBarrel]]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/DeBarrel/DeBarrel64.7z DeBarrel64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[[DctFilter|DCTFilter]]'''&lt;br /&gt;
|0.5.0&lt;br /&gt;
|[http://github.com/chikuzen/DCTFilter/releases DCTFilter-0.5.0.zip]&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;
|[http://github.com/tp7/Deblock/releases/download/0.9/Deblock-x64.zip Deblock-x64.zip]&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;
|[http://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;
|'''[http://github.com/makiuchi-d/delogo-avisynth Delogo]'''&lt;br /&gt;
|0.05a&lt;br /&gt;
|[http://www.dropbox.com/s/5t3p2gh4znsjxpc/delogo_avs%2B.zip?dl=1 delogo_avs+.zip]&lt;br /&gt;
|Compiled with Intel C++ Compiler XE 14.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeNoise]]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/DeNoise/DeNoise64.7z DeNoise64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[DeSaltPepper]]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/DeSaltPepper/DeSaltPepper64.7z DeSaltPepper64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/DeVeed/DeVeed.html DeVeed]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/DeVeed/DeVeed64.7z DeVeed64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[dfttest]]'''&lt;br /&gt;
|1.9.4.1&lt;br /&gt;
|[http://github.com/DJATOM/dfttest/releases dfttest-1.9.4.1.7z]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++: [http://www.dropbox.com/s/b0rl1xz5hxlo6og/dfttest-1.9.4_x64.zip?dl=1 dfttest-1.9.4_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://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;
|[http://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;
|'''[http://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]'''&lt;br /&gt;
|2.0.0.13&lt;br /&gt;
|[http://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] [http://web.archive.org/web/20160908025751/http://www.iol.ie/~schubert/avs/EEDI2_092_64.7z]&lt;br /&gt;
|Compiled by [http://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Compiled by Joshy D: [http://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.1&lt;br /&gt;
|[http://github.com/Elegant996/EEDI3/releases EEDI3_v0_9_2_1.7z]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. See [http://forum.doom9.org/showthread.php?t=172414 discussion]. Older version (v0.9.1) compiled by [http://forum.doom9.org/showpost.php?p=1446772&amp;amp;postcount=320 tritical] (&amp;lt;strike&amp;gt;[http://web.archive.org/web/20131111121128/http://bengal.missouri.edu/~kes25c/eedi3_64.dll eedi3_64.dll]&amp;lt;/strike&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[EffectsMany]]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/EffectsMany/EffectsMany64.7z EffectsMany64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[[ExactDedup]]'''&lt;br /&gt;
|0.03&lt;br /&gt;
|[http://www.mediafire.com/download/9x2ax1rb5un02d5/ExactDedup+Version+0.03.zip ExactDedup+Version+0.03.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[http://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): [http://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. [http://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;
|'''[http://github.com/chikuzen/FCBI FCBI]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[http://github.com/chikuzen/FCBI/releases fcbi-0.0.0.zip]&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;
|[http://github.com/FFMS/ffms2/releases FFMS2]&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.1.1&lt;br /&gt;
|[http://www.dropbox.com/sh/6kb3723po5oqd4b/AACfNFsXH_WWXiE_7lkmK2KSa/fft3dfilter_64.7z?dl=1 fft3dfilter_64.7z] [http://web.archive.org/web/20160613122847/http://www.iol.ie/~schubert/avs/fft3dfilter_64.7z]&lt;br /&gt;
|Compiled by [http://forum.doom9.org/showthread.php?t=173229 Groucho2004]. 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. Compiled by Joshy D: [http://www.mediafire.com/download/2ymcyfuzzzw/FFT3DFilter_3-12-2010.rar FFT3DFilter_3-12-2010.rar]&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]'''&lt;br /&gt;
|2.4&lt;br /&gt;
|[https://github.com/pinterf/fft3dfilter/releases FFT3DFilter-v2.4.7z]&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;
|'''[http://forum.doom9.org/showthread.php?t=89941 FFT3DGPU]'''&lt;br /&gt;
|0.8.2&lt;br /&gt;
|[http://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;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FFTQuiver/FFTQuiver64.7z FFTQuiver64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[FieldHint]]'''&lt;br /&gt;
|0.11 &lt;br /&gt;
|[http://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;
|[http://forum.doom9.org/attachment.php?attachmentid=11813&amp;amp;d=1291250198 FluxSmooth SSE DLLs.7z]&lt;br /&gt;
|[http://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/FQSharp/FQSharp.html FQSharp]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/FQSharp/FQSharp64.7z FQSharp64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=174161 FQPlus]'''&lt;br /&gt;
|30 Dec 2016&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&lt;br /&gt;
|[https://github.com/mysteryx93/FrameRateConverter/releases FrameRateConverter-v1.2.zip]&lt;br /&gt;
|[https://forum.doom9.org/showthread.php?t=174793 Discussion thread].&lt;br /&gt;
|-&lt;br /&gt;
|Color correction&lt;br /&gt;
|'''[http://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 [http://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=169651 FRIMSource]'''&lt;br /&gt;
|1.25&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1720561&amp;amp;postcount=717 FRIMSource64.dll]&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;
|'''[http://forum.doom9.org/showthread.php?t=173695 GamMac]'''&lt;br /&gt;
|1.07&lt;br /&gt;
|[https://www.dropbox.com/sh/oxx5cm9hkbpj5oz/AAD0QBnTlczv7xW3jEdSjenHa?dl=0 GamMac64_1.07.7z]&lt;br /&gt;
|Compiled by [http://forum.doom9.org/showthread.php?t=173259 Groucho2004]&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[GBlur]]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/GBlur/GBlur64.7z GBlur64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Debanding&lt;br /&gt;
|'''[[GradFun2db]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[http://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;
|14 Oct 2015&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;
|[http://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 [http://forum.doom9.org/showthread.php?p=1767990#post1767990 yesmanitsbearman]&lt;br /&gt;
|-&lt;br /&gt;
|Uncategorized &lt;br /&gt;
|'''[http://github.com/ladipro/avisynth_filters/wiki/HealDeadPixels HealDeadPixels]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[http://github.com/ladipro/avisynth_filters/releases HealDeadPixels-1.0.0-x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[http://www.avisynth.nl/users/vcmohan/HBlur/HBlur.html HBlur]'''&lt;br /&gt;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/HBlur/HBlur64.7z HBlur64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Support&lt;br /&gt;
|'''[http://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRCore]'''&lt;br /&gt;
|1.1.0&lt;br /&gt;
|[http://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;
|'''[http://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRMatrix]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[http://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;
|'''[http://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRNoise]'''&lt;br /&gt;
|1.2.0&lt;br /&gt;
|[http://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;
|'''[http://web.archive.org/web/20160604220510/http://www.snovidenie.com/plugins/hdr/ HDRSharp]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[http://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;
|'''[[HistogramAdjust]]'''&lt;br /&gt;
|18 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/HistogramAdjust/HistogramAdjust64.7z HistogramAdjust64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[hqdn3d]]'''&lt;br /&gt;
|0.11&lt;br /&gt;
|[http://www.mediafire.com/download/gyvmmzx0v4z/hqdn3d_4-08-2010.rar hqdn3d_4-08-2010.rar]&lt;br /&gt;
|Compiled by Joshy D.&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''hqdn3dY'''&lt;br /&gt;
|2016-02-13&lt;br /&gt;
|[http://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;
|[http://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;
|'''[http://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;
|[http://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;
|'''[http://github.com/ladipro/avisynth_filters/wiki/KelvinColorShift KelvinColorShift]'''&lt;br /&gt;
|1.0.0&lt;br /&gt;
|[http://github.com/ladipro/avisynth_filters/releases KelvinColorShift-1.0.0-x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=171379 KNLMeansCL]'''&lt;br /&gt;
|1.0.2&lt;br /&gt;
|[http://github.com/Khanattila/KNLMeansCL/releases KNLMeansCL-v1.0.2.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[LSMASHSource]]'''&lt;br /&gt;
|r8xx&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;
|1.1.2&lt;br /&gt;
|[http://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;
|b2&lt;br /&gt;
|[http://github.com/tp7/masktools/releases/download/b1/masktools2-x64.zip masktools2-x64.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Multipurpose&lt;br /&gt;
|'''[[MaskTools2]]'''&lt;br /&gt;
|2.2.12&lt;br /&gt;
|[https://github.com/pinterf/masktools/releases masktools2-v2.2.12.7z (20180108)]&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;
|[http://github.com/tp7/MedianBlur2/releases/download/0.94/MedianBlur2-x64.zip MedianBlur2-x64.zip]&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 - [http://forum.doom9.org/showthread.php?t=64940 discussion thread]&lt;br /&gt;
|-&lt;br /&gt;
|Unclassified&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=174162 modPlus]'''&lt;br /&gt;
|30 Dec 2016&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;
|[http://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;
|'''[http://forum.doom9.org/showthread.php?t=174163 movePlus]'''&lt;br /&gt;
|30 Dec 2016&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;
|'''[http://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] [http://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;
|[http://github.com/tp7/msharpen/releases/download/0.9/msharpen-x64.zip msharpen-x64.zip]&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.24&lt;br /&gt;
|[http://github.com/pinterf/mvtools/releases mvtools-2.7.24-with-depans.7z]&lt;br /&gt;
|Older MVTools 2.6.0.5 compiled with Intel Parallel Studio XE 2015 Composer Edition for C++: [http://www.dropbox.com/s/swk97z4q834vugk/mvtools_2.6.0.5_x64.zip?dl=1 mvtools_2.6.0.5_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Audio&lt;br /&gt;
|'''[[NicAudio]]'''&lt;br /&gt;
|2.0.5&lt;br /&gt;
|[http://www.dropbox.com/s/lroqakipuoqnzby/NicAudio2.0.5_x64.zip?dl=1 NicAudio2.0.5_x64.zip]&lt;br /&gt;
|Latest version is 2.0.6&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.21&lt;br /&gt;
|[http://github.com/jpsdr/NNEDI3/releases NNEDI3_v0_9_4_21_x64.7z]&lt;br /&gt;
|Compiled by jpsdr, [http://forum.doom9.org/showthread.php?t=170083 discussion thread]. Original nnedi3 v0.9.4 compiled with Intel C++ Compiler XE 14: [http://www.dropbox.com/s/fovpn5z9jy4goft/nnedi3_0.9.4_x64.zip?dl=1 nnedi3_0.9.4_x64.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[http://github.com/chikuzen/PlanarTools PlanarTools]'''&lt;br /&gt;
|0.2.0&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools/releases PlanarTools-0.2.0.zip]&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;
|[http://www.dropbox.com/s/2uvflijgrngvi7x/PointSize_0.2.zip?dl=1 PointSize_0.2.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Source&lt;br /&gt;
|'''[[RawSource26]]'''&lt;br /&gt;
|20160528&lt;br /&gt;
|[http://github.com/chikuzen/RawSource_2.6x/releases RawSource26-20160528.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Restoration&lt;br /&gt;
|'''[http://github.com/chikuzen/ReduceFlicker/tree/master/avisynth ReduceFlicker]'''&lt;br /&gt;
|0.0.0&lt;br /&gt;
|[http://github.com/chikuzen/ReduceFlicker/releases ReduceFlicker_26-0.0.0.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[[Reformer]]'''&lt;br /&gt;
|14 Apr 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/Reformer/Reformer64.7z Reformer64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Range Processing&lt;br /&gt;
|'''[[RemapFrames]]'''&lt;br /&gt;
|0.4.1-avs26&lt;br /&gt;
|[http://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;
| Degrainer&lt;br /&gt;
|'''[[RemoveGrainHD]]'''&lt;br /&gt;
|0.5&lt;br /&gt;
|[http://www.dropbox.com/s/bb1mnshuuscs3jm/RemoveGrainHD_0.5_x64_bin.zip?dl=1 RemoveGrainHD_0.5_x64_bin.zip]&lt;br /&gt;
|&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;
|[http://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 [http://forum.doom9.org/showthread.php?p=1722300#post1722300 l33tmeatwad] [http://forum.doom9.org/showthread.php?p=1722117#post1722117]. Older version: [http://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.96&lt;br /&gt;
|[https://github.com/pinterf/RgTools/releases RgTools-0.96.7z]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Borders and Croppping&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 [http://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;
|[http://github.com/tp7/SangNom2/releases/download/0.35/SangNom2-x64.zip SangNom2-x64.zip]&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;
|[http://github.com/tp7/SCXvidMask/releases/download/1.0/SCXvidMask-x64.zip SCXvidMask-x64.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Adjust&lt;br /&gt;
|'''[http://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;
|'''[[SmoothD]]'''&lt;br /&gt;
|0.0.9pre2&lt;br /&gt;
|[http://www.dropbox.com/s/va45bi7k09t71pk/SmoothD_x64.zip?dl=1 SmoothD_x64.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deblocking&lt;br /&gt;
|'''[[SmoothD2]]'''&lt;br /&gt;
|1.0.a3&lt;br /&gt;
|[http://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;
|14 Apr 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/Spinner/Spinner64.7z Spinner64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Interpolation&lt;br /&gt;
|'''[http://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]'''&lt;br /&gt;
|4.0.0.128&lt;br /&gt;
|[http://www.svp-team.com/files/gpl/svpflow-4.0.0.128.zip svpflow-4.0.0.128.zip]&lt;br /&gt;
|More information [http://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.2.0 &lt;br /&gt;
|[http://github.com/chikuzen/TCannyMod/releases TCannyMod-1.2.0.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[http://github.com/tp7/tcolormask TColorMask]'''&lt;br /&gt;
|1.2&lt;br /&gt;
|[http://github.com/tp7/tcolormask/releases/download/1.2/tcolormask-x64.zip tcolormask-x64.zip]&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;
|[http://github.com/Elegant996/TComb/releases TComb_v2_0.7z]&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;
|[http://github.com/DJATOM/TCPDeliver/releases TCPDeliver-x64.7z] &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[TDeint]]'''&lt;br /&gt;
|1.1 &lt;br /&gt;
|[http://www.mediafire.com/download/kmcztm1xzjm/TDeinterlace_3-14-2010.rar TDeinterlace_3-14-2010.rar]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[TelecideHints]]'''&lt;br /&gt;
|v1.1 &lt;br /&gt;
|[http://www.mediafire.com/download/wnemmzntgnh/Telecidehints11.rar Telecidehints11.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 TEMmod-0.2.1.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|IVTC&lt;br /&gt;
|'''[[TIVTC]]'''&lt;br /&gt;
|1.0.9&lt;br /&gt;
|[https://github.com/pinterf/TIVTC/releases TIVTC-v1.0.9.7z (20170608)] [http://www.mediafire.com/download/i2qtli1mxik/TIVTC_3-13-2010.rar TIVTC_3-13-2010.rar 1.0.5 by JoshyD]&lt;br /&gt;
|1.0.6: 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;
|'''[http://github.com/tp7/tmaskcleaner TMaskCleaner]'''&lt;br /&gt;
|0.91&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner/releases/download/0.91/tmaskcleaner-x64.zip tmaskcleaner-x64.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[[TMM]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[http://www.mediafire.com/download/dt2zmrjmamm/TMM_x64_20100603.7z TMM_x64_20100603.7z] - [http://www.mediafire.com/download/jrwumzfmzrd/TMM_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu.&lt;br /&gt;
|-&lt;br /&gt;
|Masking&lt;br /&gt;
|'''[http://github.com/chikuzen/TMM2 TMM2]'''&lt;br /&gt;
|0.0&lt;br /&gt;
|[http://github.com/chikuzen/TMM2/releases TMM2-0.0.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 [http://forum.doom9.org/showthread.php?t=173259 Groucho2004]. Slower version compiled by Joshy D: [http://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;
|14 Oct 2015&lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/TransAll/TransAll64.7z TransAll64.7z]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[[TTempSmooth]]'''&lt;br /&gt;
|0.9.4&lt;br /&gt;
|[http://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;
|'''[http://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.0.4&lt;br /&gt;
|[http://github.com/chikuzen/VapourSource/releases VapourSource-0.0.4.zip]&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 [http://forum.doom9.org/showthread.php?p=1777949#post1777949 Groucho2004].&lt;br /&gt;
|-&lt;br /&gt;
|Blurring&lt;br /&gt;
|'''[[VariableBlur]]'''&lt;br /&gt;
|0.5&lt;br /&gt;
|[http://www.mediafire.com/download/0z0hl43za6bwlb4/VariableBlur05_x64.7z VariableBlur05_x64.7z] - [http://www.mediafire.com/download/hzwtctzyu5vw9vc/variableblur05_x64src.7z source]&lt;br /&gt;
|Compiled by yo4kazu - '''Note:''' this version outdated, v0.7 is the latest version.&lt;br /&gt;
|-&lt;br /&gt;
|Debugging&lt;br /&gt;
|'''[[ViewAudio]]'''&lt;br /&gt;
|0.3.01 &lt;br /&gt;
|[http://www.mediafire.com/download/iyeo4xjlm87hjwq/ViewAudio_x64.7z ViewAudio_x64.7z] - [http://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;
|[http://github.com/tp7/vinverse/releases/download/0.9/vinverse-x64.zip vinverse-x64.zip]&lt;br /&gt;
|Compiled with  Microsoft Visual Studio C++ 2012.&lt;br /&gt;
|-&lt;br /&gt;
|Subtitles&lt;br /&gt;
|'''[http://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;
|Sharpener&lt;br /&gt;
|'''[[WarpSharp]]'''&lt;br /&gt;
|2008&lt;br /&gt;
|[http://www.dropbox.com/s/xf49js31m1bw2o1/warpsharp64.zip?dl=1 warpsharp64.zip]&lt;br /&gt;
|&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;
|[http://www.dropbox.com/s/ufkw5w0nn79qzd5/waveform.zip?dl=1 waveform.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015. Compiled by [http://forum.doom9.org/showthread.php?p=1751960#post1751960 `Orum].&lt;br /&gt;
|-&lt;br /&gt;
|Denoiser&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=172966 xNLMeans]'''&lt;br /&gt;
|0.03&lt;br /&gt;
|[http://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;
|'''[http://forum.doom9.org/showthread.php?t=168282 xy-VSFilter]'''&lt;br /&gt;
|3.1.0.746&lt;br /&gt;
|[http://github.com/Cyberbeing/xy-VSFilter/releases XySubFilter_3.1.0.746_x64_BETA3.zip]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[yadif]]'''&lt;br /&gt;
|1.7&lt;br /&gt;
|[http://www.dropbox.com/s/eal13otcg712rhg/yadif_1.7_x64_asm.zip?dl=1 yadif_1.7_x64_asm.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++.&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[[yadifmod]]'''&lt;br /&gt;
|1.0&lt;br /&gt;
|[http://www.dropbox.com/s/ki4djibs994vdzb/yadifmod_x64.zip?dl=1 yadifmod_x64.zip]&lt;br /&gt;
|Compiled with Intel Parallel Studio XE 2015 Composer Edition for C++.&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlacing&lt;br /&gt;
|'''[//github.com/chikuzen/yadifmod2 yadifmod2]'''&lt;br /&gt;
|0.0.3&lt;br /&gt;
|[//github.com/chikuzen/yadifmod2/releases yadifmod2-0.0.3.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2015.&lt;br /&gt;
|-&lt;br /&gt;
|Conversion&lt;br /&gt;
|'''[http://github.com/chikuzen/YV12To422 YV12to422]'''&lt;br /&gt;
|1.0.2&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422/releases YV12To422-1.0.2.zip]&lt;br /&gt;
|Compiled with Microsoft Visual Studio C++ 2013. &lt;br /&gt;
|-&lt;br /&gt;
|Transform&lt;br /&gt;
|'''[http://forum.doom9.org/showthread.php?t=49429 Zoom]'''&lt;br /&gt;
|20140216&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=14054&amp;amp;d=1392574410 Zoom.7z]&lt;br /&gt;
|Compiled by [http://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;
*[http://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;
*[http://web.archive.org/web/20130922222259/http://yo4kazu.110mb.com/ 64-bit filters by yo4kazu]&lt;br /&gt;
*[http://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>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/External_filters</id>
		<title>External filters</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/External_filters"/>
				<updated>2018-02-11T13:57:33Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: AutoOverlay - fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rough classification of third-party filters for AviSynth - a perpetual work in progress.&lt;br /&gt;
&lt;br /&gt;
This page lists both scripts (see [[Import]]) and plugins (see [[Plugins]]).&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
==== Download sites ====&lt;br /&gt;
A large list of filters can be downloaded from the following sites but be aware that some plugins listed '''may be outdated''', only recommended as a backup.&lt;br /&gt;
&lt;br /&gt;
*[http://web.archive.org/web/20130803185015/http://www.64k.it/andres/dettaglio.php?sez=avisynth Andres' Filter Collection] &lt;br /&gt;
*[http://chaosking.de/repo/avsfilters/ AviSynth Filter DB by ChaosKing] | [http://web.archive.org/web/20140412062911/http://chaosking.de/avisynth-filter-db mirror]&lt;br /&gt;
*[http://www.avisynth.info/?plugin=attach&amp;amp;pcmd=list&amp;amp;refer=%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96 AviSynth.info Filter Archive]&lt;br /&gt;
*[http://xhmikosr.1f0.de/_old/avisynth/plugins/ XhmikosR's Builds] &lt;br /&gt;
*[http://www.avisynth.nl/users/warpenterprises/ Warp Enterprises' AviSynth Filter Collection]&lt;br /&gt;
&lt;br /&gt;
====64-bit filters====&lt;br /&gt;
'''[[AviSynth%2B_x64_plugins|Comprehensive list of AviSynth+ 64-bit filters]] &amp;amp;rarr;'''&lt;br /&gt;
&lt;br /&gt;
====Outdated AviSynth plugins====&lt;br /&gt;
[[External plugins old|External plugins (old)]] - these older plugins are not recommended, page is there mainly for historical purposes.&lt;br /&gt;
&lt;br /&gt;
==== Using filters ====&lt;br /&gt;
Most scripts will apply filters in the following order:&lt;br /&gt;
&lt;br /&gt;
# Create an AviSynth clip from a video file using a source filter.&lt;br /&gt;
# Correct or remove any unwanted features in the video (e.g. dot crawl, field blending or telecine).&lt;br /&gt;
# Denoise the video (optional).&lt;br /&gt;
# Manipulate the video into the desired format (by e.g. changing the size and frame rate).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--AviSynth filters have been classified under these four basic tasks, with a fifth category for filters that fall outside this scheme, and a sixth category for filters that process audio only.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135855 BassAudio]&lt;br /&gt;
| [http://un4seen.com/bass.html Bass Audio] decoder. Supports wav, aiff, mp3, mp2, mp1, ogg. Support for aac, ac3, alac, ape, cd, flac, midi, mpc, ofr, spx, tta, wma, wv with additional included dll's. The filter is included in the Behappy package.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135855 Plugin]&lt;br /&gt;
| dimzon&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/cmvsource.htm CMVSource]&lt;br /&gt;
| Load [http://www.bay12games.com/dwarves/ Dwarf Fortress] CMV and CCMV movies.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=162850 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=122598 DGAVCDecode] &lt;br /&gt;
| AVC/H.264 decoder plug-in. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.videohelp.com/tools/DGAVCDec Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DGDecode]] &lt;br /&gt;
| Decode MPEG1/MPEG2 streams from: DVD VOBs, captured transport streams, *.mpg/*.m2v/*.pva files, etc. Use this instead of MPEGDecoder/MPEG2Dec3.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]], [[I420]] &lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170107 DGMVCSource]&lt;br /&gt;
|MVC source filter for AviSynth.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://rationalqm.us/dgmvcsource/dgmvcsource100b22.zip Plugin]&lt;br /&gt;
|{{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| DVInfo&lt;br /&gt;
| Grabs the timestamp and recording date info from a DV-AVI. See [http://forum.doom9.org/showthread.php?t=61688 discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dvinfo_20100602.zip Plugin] [http://forum.doom9.org/showthread.php?p=1740824#post1740824 Update]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023927/http://mvideo.ddpp.net/eng/dvtimestampex.htm DVTimeStampEx]&lt;br /&gt;
| Shows DV timestamp information over a DV clip.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5.zip Plugin] - [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5_src.zip source code]&lt;br /&gt;
| [http://web.archive.org/web/20071025023932/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134275 DSS2]&lt;br /&gt;
| DirectShowSource2 that uses the installed Haali Media Splitter along with its ''avss.dll'' AviSynth plugin. It can convert VFR files to CFR in order to support frame-accurate seeking. Not recommended due to the fact that Haali Media Splitter is considered outdated, use DDS2mod.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130923230211/http://haali.su/mkv/ Plugin]&lt;br /&gt;
| Haali&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]&lt;br /&gt;
| DirectShowSource2 mod, this version does not require Haali Media Splitter. &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160224130743/https://filetea.me/t1sFlzxrp9xSdaqTlf3qZ6nCQ/dl Plugin]&lt;br /&gt;
| forclip&lt;br /&gt;
|-&lt;br /&gt;
| [[FFmpegSource]]&lt;br /&gt;
| Decodes all ffmpeg ([http://en.wikipedia.org/wiki/Libavcodec libavcodec]) supported A/V formats with frame accurate seeking in AVI, MKV and MP4. See [http://forum.doom9.org/showthread.php?t=127037 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]], [[I420]]&lt;br /&gt;
| [http://github.com/FFMS/ffms2/releases Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, TheFluff, Plorkyeran, others&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 FRIMSource]&lt;br /&gt;
|FRIMSource is an AviSynth plugin for sequential reading of elementary or transport streams (MPEG2, H.264 AVC/MVC-3D, VC1).&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 Plugin]&lt;br /&gt;
|videofan3d&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110021 HDVInfo] &lt;br /&gt;
| Grabs the timestamp and recording date info out of a M2T-D2V file&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20120419204535/http://strony.aster.pl/paviko/hdvinfo0.93.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ImageSequence]]&lt;br /&gt;
| Load png, jpg, bmp, pcx, tga and gif image sequences using the [http://corona.sourceforge.net/ Corona Image I/O Library]. CoronaSequence/RawSequence.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/imagesequence_20101115.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaRead uses the ImageMagick libraries to read images. Many formats are supported including animations, multipage files, image sequences and images with different sizes.&lt;br /&gt;
|&lt;br /&gt;
| [http://www.wilbertdijkhof.com/ Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| IUF&lt;br /&gt;
| Import Uncompressed File. Must be uncompressed! Supported uncompressed Formats: avi, omf(avid), pxr(pixar), mov(24/32bit quicktime), cineon. Can export as well. See [http://forum.doom9.org/showthread.php?t=51227 discussion].&lt;br /&gt;
| [[RGB]]&lt;br /&gt;
| [http://web.archive.org/web/20091016215740/http://geocities.com/hanfrunz/iuf_v1.5.zip Plugin] &lt;br /&gt;
| hanfrunz&lt;br /&gt;
|-&lt;br /&gt;
| [[JpegSource]]&lt;br /&gt;
| An advanced JPEG decoder for Avisynth 2.6. See [http://forum.doom9.org/showthread.php?t=170028 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/rjnt0y3ead2c6ef/JpegSource_20140419.7z Plugin] &lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[LSMASHSource]]&lt;br /&gt;
| A source plugin for audio and video, it uses Libav ([http://en.wikipedia.org/wiki/Libav#Contained_codecs libavcodec]) to decode all supported A/V formats. See [http://forum.doom9.org/showthread.php?t=167435 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[LSMASHSource|Plugin]]&lt;br /&gt;
| {{Author/VFR-maniac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NicAudio]]&lt;br /&gt;
| Audio Plugins for Audio: MPEGAudio/AC3/DTS/LPCM and other uncompressed formats. Formerly known As EvilMPASource. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=89629 discussion], [http://forum.doom9.org/showthread.php?t=135876 continued discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://nicaudio.codeplex.com/ Plugin]&lt;br /&gt;
| {{Author/Nic}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=103931 OmfSource] &lt;br /&gt;
| Opens the AVID OMF file format (video only, and only works with captured files). See [http://forum.doom9.org/showthread.php?t=103931 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [[QTSource]]&lt;br /&gt;
| Quicktime Import/Export Filter using an existing installation of Quicktime 6/7. See [http://forum.doom9.org/showthread.php?t=104293 discussion].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ R3DSource]&lt;br /&gt;
| Redcode RAW source plugin to load R3D clips. See [http://reduser.net/forum/showthread.php?25398 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ Plugin]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RawSource26]]&lt;br /&gt;
| Loads raw video data directly from files. Further modifications (most raw formats, YUV4MPEG2 compatible with latest spec) [http://forum.doom9.org/showthread.php?t=39798 discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [https://github.com/chikuzen/RawSource_2.6x/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawReader&amp;quot;)&lt;br /&gt;
| Loads raw video data directly from files, similarly to RawSource, but also allows for skipping headers, and extra formats (long list to help anyone doing a search):  GREY, Y8, interleaved RGB, BGR (which is RGB24), BGRA (which is RGB32), ARBG, ABGR, RGBA, interleaved YUV (which is YCbCr), YUY2, UYVY, AYUV, planar YUV formats YUV444, YUV422, YUV420 (as YV12), YUV420 (as IMC2), and some raw ImageMagick formats.  Some supports for different bit-depths.  Includes YUVInterleaved.avsi, InterleavedConversions.avsi, and PlanarConversions.avsi.  [http://forum.doom9.org/showthread.php?p=1403600 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[VapourSource]]&lt;br /&gt;
| VapourSynth script reader for AviSynth2.6x.  [http://forum.doom9.org/showthread.php?t=168339 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/VapourSource/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170311 VideoInputSource]&lt;br /&gt;
| Capture video frames from video capture card or webcam in real-time.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://github.com/fieliapm/himawari_avs_plugin/raw/master/VideoInputSource/VideoInputSource.dll Plugin]&lt;br /&gt;
|[http://github.com/fieliapm fieliapm]&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource ssifSource]&lt;br /&gt;
| Open m2ts, ssif and mpls files located in decrypted Blu-ray and Blu-ray 3D discs. Supports horizontal of vertical stack of views as output, views selection and swap autodetection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restoration Filters ==&lt;br /&gt;
&lt;br /&gt;
These remove effects or artifacts introduced (deliberately or accidentally) into the source video. Denoisers are classified separately.&lt;br /&gt;
&lt;br /&gt;
=== Anti-[[aliasing]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DAA]]&lt;br /&gt;
| Anti-aliasing with contra-sharpening.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| mcDAA3&lt;br /&gt;
| Motion-Compensated Anti-aliasing with contra-sharpening, can deal with ifade too, created because when applied daa3 to fixed scenes, it could damage some details and other issues. See [http://forum.doom9.org/showthread.php?p=1639679#post1639679 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/?wqkob7zx1p119e0 Script]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[MAA2]]&lt;br /&gt;
| Updated version of the MAA antialising script.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20140624125132/https://raw.githubusercontent.com/AviSynth/avs-scripts/master/maa2.avsi Script]&lt;br /&gt;
| line0&lt;br /&gt;
|-&lt;br /&gt;
| [[santiag]]&lt;br /&gt;
| Simple anti-aliasing with independent horizontal and vertical anti-aliasing strength.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1393006 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpAAMCmod&lt;br /&gt;
| High quality MoComped AntiAliasing script, also a line darkener since it uses edge masking to apply tweakable warp-sharpening, &amp;quot;normal&amp;quot; sharpening and line darkening with optional temporal stabilization of these edges. Part of [[AnimeIVTC]]. See [http://forum.doom9.org/showthread.php?t=138305] and [http://forum.doom9.org/showthread.php?t=140031]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| [[TIsophote]]&lt;br /&gt;
| A level-set (isophote) smoothing filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162751/http://bengal.missouri.edu/~kes25c/TIsophotev091.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[xaa]]&lt;br /&gt;
|Versatile anti-aliasing script.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
|[http://www.mediafire.com/download/sygi04y47eknvc2/xaa_v1.1.1.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chroma correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Archived}}/trbarry/Readme_BT709ToBT601.txt BT709ToBT601]&lt;br /&gt;
| Convert from BT.709 (HDTV) to BT.601 (SDTV) colorimetry.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/BT709ToBT601.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
|[[caf]]&lt;br /&gt;
|Chromatic Aberration Fixer.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| Torchlight&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShift]]&lt;br /&gt;
| This filter will shift the chrominance information by an even number of pixels, in either horizontal direction. It can also apply an overall vertical shift of the total chrominance information, up or down. It is primarily intended to correct improper colour registration. See [http://forum.doom9.org/showthread.php?t=33302 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091026153334/http://www.geocities.com/siwalters_uk/chromashift27.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShiftSP]]&lt;br /&gt;
| This script can shift chroma in all directions with subpixel accuracy.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| IanB, McCauley &lt;br /&gt;
|-&lt;br /&gt;
| ColorMatrix&lt;br /&gt;
| ColorMatrix corrects the colors of MPEG-2 streams. More correctly, many MPEG-2 streams use slightly different coefficients (called Rec.709) for storing the color information than AviSynth's color conversion routines or the XviD/DivX decoders (called Rec.601) do, with the result that DivX/XviD clips or MPEG-2 clips encoded by TMPGEnc/QuEnc are displayed with slighty off colors. This can be checked by opening the MPEG-2 stream directly in VDubMod. See [http://forum.doom9.org/showthread.php?t=82217 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420180927/http://bengal.missouri.edu/~kes25c/ColorMatrixv25.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/tritical}} (v2.0+)&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleeding]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091026141730/http://www.geocities.com/alex_j_jordan/chroma.txt Script]&lt;br /&gt;
| {{Author/Alex Jordan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleedingMod]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074#post1673932 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV411]]&lt;br /&gt;
| [[FixChromaBleedingMod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaticAberration]]&lt;br /&gt;
| FixChromaticAberration resizes (and crops) the red/green/blue channels of the image separately. This helps to minimize the colored edges next to the image corners that result from lenses with chromatic aberration. See [http://forum.doom9.org/showthread.php?p=1520786#post1520786 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/index.php/FixChromaticAberration Script]&lt;br /&gt;
| Martin Wagener&lt;br /&gt;
|-&lt;br /&gt;
| [[MoveChroma]]&lt;br /&gt;
| Chroma shifting filter; can be used to independently shift the U/V channels left or right.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/MoveChroma.20090823.zip Plugin]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/ apechironnup]&lt;br /&gt;
|-&lt;br /&gt;
| [[ReInterpolate411]]&lt;br /&gt;
| This is a fast and simple filter to correct the improper 4:1:1 =&amp;gt; 4:2:2 conversion that seems to occur with some DV/4:1:1 codecs.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/ReInterpolate411.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420.html ReInterpolate420]&lt;br /&gt;
| Usually, DV decoders upsample [[PAL]] DV (which is YV12) to YUY2 using point sampling. This plugin re-interpolates the original chroma samples.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420_v3.zip Plugin]&lt;br /&gt;
|  {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/Fizick}} (v3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Debanding ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AdaptDBMC&lt;br /&gt;
| Luma / Fade / Blue adaptive debanding script. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=512 Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2db]]&lt;br /&gt;
| A simple and fast debanding filter. See Wikipedia: [http://en.wikipedia.org/wiki/Color_banding Color Banding]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140705233110/http://manao4.free.fr/gradfun2db-v1.0.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2DBmod]]&lt;br /&gt;
| An advanced debanding script based on GradFun2DB.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144537 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| GradFun3&lt;br /&gt;
| This debanding script, part of the [[External_filters#Deepcolor_Filters|Dither]] package, has several gradient smoothing algorithms, including a bilateral filter. It uses an ordered dithering, which has a good resilience to lossy compression.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://f3kdb.readthedocs.org/en/latest/ flash3kyuu_deband]&lt;br /&gt;
| Fast debanding plugin ported from AviUtl.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161411 Plugin]&lt;br /&gt;
| [http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| LumaDB&lt;br /&gt;
| Fast 8-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114932/http://www.nmm-hd.org/upload/get~3YK_B5TfcyI/LumaDB-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| LumaDBL&lt;br /&gt;
| Fast 16-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. Works in 16-bit internally and can also input/output 16-bit. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114947/http://www.nmm-hd.org/upload/get~mQYIS9H6Qas/LumaDBL-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deblocking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| BlockKiller&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=1410479#post1410479 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1410479&amp;amp;postcount=19 Script]&lt;br /&gt;
| Jawed&lt;br /&gt;
|-&lt;br /&gt;
| BlockTerminator&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=831936#post831936 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=831936&amp;amp;postcount=24 Script]&lt;br /&gt;
| foxyshadis&lt;br /&gt;
|-&lt;br /&gt;
| [[DeBlock]]&lt;br /&gt;
| Deblocking filter,  see [http://forum.doom9.org/showthread.php?t=110352 discussion,] and [http://github.com/tp7/Deblock updated version] for AviSynth 2.6. DGDecode uses [{{N2Moved}}/dgmpgdec/DGDecodeManual.html#DeBlock DeBlock.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeBlock Plugin]&lt;br /&gt;
| {{Author/Fizick}} / {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblock_QED]]&lt;br /&gt;
| &amp;quot;A postprocessed Deblock(): Uses full frequencies of Deblock's changes on block borders, but DCT-lowpassed changes on block interiours.&amp;quot; [http://forum.doom9.org/showpost.php?p=913365&amp;amp;postcount=4 Didée]. See [http://forum.doom9.org/showthread.php?p=944459 discussion.] For updated Deblock QED see this [http://forum.doom9.org/showthread.php?t=154777 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Deblock_QED_MT2Mod.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeblockPP7]]&lt;br /&gt;
| A port of the MPlayer PP7 deblocking filter. See [http://forum.doom9.org/showthread.php?t=172498 discussion].&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=14970&amp;amp;d=1440108276 Plugin]&lt;br /&gt;
|John Doe&lt;br /&gt;
|-&lt;br /&gt;
| [[FunkyDeBlock]]&lt;br /&gt;
| Deblocking script based on BlindPP and high/low pass separation. See [http://forum.doom9.org/showthread.php?t=72431 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MDeblock]]&lt;br /&gt;
| Plugin for removing block artifacts, see [http://home.arcor.de/kassandro/MDeblock/MDeblock.htm homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/MDeblock/MDeblock.zip Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD]]&lt;br /&gt;
| Filter to deblock frames while keeping high frequency detail. See [http://forum.doom9.org/showthread.php?t=84355 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.funknmary.de/bergdichter/projekte/video/SmoothD Plugin]&lt;br /&gt;
| Tobias Bergmann&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD2]]&lt;br /&gt;
| Deblocking filter.  Rewrite of SmoothD. Faster, better detail preservation, optional chroma deblocking. See [http://forum.doom9.org/showthread.php?t=164800 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/jconklin754smoothd2/download Plugin]&lt;br /&gt;
| Jim Conklin&lt;br /&gt;
|-&lt;br /&gt;
| SmoothDeblock&lt;br /&gt;
| Slow and complex, but produces very good results - especially on severely blocky sources - in a similar manner to TempGaussMC and QTGMC. See [http://forum.doom9.org/showthread.php?t=111526 discussion] and an [http://forum.doom9.org/showthread.php?p=945261#post945261 overall comment].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1553458#post1553458 Script]&amp;lt;br&amp;gt;[[SmoothDeblock_source|(alt source)]]&lt;br /&gt;
| redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock.html Unblock]&lt;br /&gt;
|UnBlock is a filter that removes the &amp;quot;blockiness&amp;quot; of heavily or moderately compressed images with statistical approach. See [http://forum.doom9.org/showthread.php?t=133059 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock11.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dehaloing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[abcxyz]]&lt;br /&gt;
| Filter to remove halos. See [http://forum.doom9.org/showthread.php?t=144982 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Media:abcxyz_MT2.avsi|Script]]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BlindDeHalo3]]&lt;br /&gt;
| Filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=622289#post622289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5599&amp;amp;d=1143030001 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeHalo_alpha]]&lt;br /&gt;
| Very powerful filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=777956#post777956 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Dehalo_alpha_mt.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeHaloHmod]]&lt;br /&gt;
| Another halo reducer, it includes lots of options to tweak for best performance. See [http://forum.doom9.org/showthread.php?p=1675762#post1675762 discussion]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [[DeHaloHmod|Script]]&lt;br /&gt;
|AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
|[[FineDehalo]]&lt;br /&gt;
|Halo removal script that uses DeHalo_alpha with a few masks and optional contra-sharpening to try remove halos without removing important details (like line edges).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/images/FineDehalo.avsi Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| Mask_DHA&lt;br /&gt;
| A combination of the best of DeHalo_alpha and BlindDeHalo3, plus a few minor tweaks to the masking. See [http://forum.doom9.org/showthread.php?t=148498 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| 'Orum&lt;br /&gt;
|-&lt;br /&gt;
| [[VHSHaloremover]]&lt;br /&gt;
| Quick &amp;amp; dirty halo removal. Will introduce some blurriness, but the halos are so huge you can’t avoid it. See [http://forum.doom9.org/showthread.php?p=1758184#post1758184]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://pastebin.com/s24mSgJ5 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YAHR]]&lt;br /&gt;
| Basic filter with no variables to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=1205653#post1205653]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/YAHR.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| YAHRmod&lt;br /&gt;
| Basic filter used to reduce halos in modern DVD and other cases.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YAHRmod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deringing &amp;amp; Mosquito Noise ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpSharpDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by heavily aWarpSharp-ing the image and then applying it only to the areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/AWarpSharpDering.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak]&lt;br /&gt;
|-&lt;br /&gt;
| [http://rationalqm.us/dgmpgdec/DGDecodeManual.html#BlindPP BlindPP]&lt;br /&gt;
| Deblocking &amp;amp; deringing filter; part of [[DGDecode]]. &amp;lt;br&amp;gt;Mosquito noise removal: &amp;lt;code&amp;gt;BlindPP(quant=16, cpu2=&amp;quot;ooooxx&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=636297#post636297 BlindDeRing]&lt;br /&gt;
| Deringing filter.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Restoration_Filters/Deringing/BlindDeRing___(2005).7z Plugin]&lt;br /&gt;
| krieger2005&lt;br /&gt;
|-&lt;br /&gt;
| [[EdgeCleaner]]&lt;br /&gt;
| A simple edge cleaning and weak dehaloing function. See [http://forum.doom9.org/showthread.php?t=164592 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1568521&amp;amp;postcount=13 Script]&lt;br /&gt;
| [http://forum.doom9.org/member.php?u=80518 canuckerfan]&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only. See [http://forum.doom9.org/showthread.php?p=1043583#post1043583 here] and [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=67532 here] for details.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=793930#post793930 Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering mod]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140711173345/http://www.nmm-hd.org/upload/get~08CusazVphU/HQDeringmod_v1.8.avsi Script]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/memberlist.php?mode=viewprofile&amp;amp;u=479&amp;amp;sid=ff62d0f6c22fcfdbe97b53c8351429bc mawen1250]&lt;br /&gt;
|-&lt;br /&gt;
| [[LazyDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by applying [[aWarpSharp2]] only to areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131103155455/http://anime-addict.ani-x.com/files/avisynth/scripts/LazyDering_v0.1.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak], RazorbladeByte&lt;br /&gt;
|-&lt;br /&gt;
| [[MosquitoNR]]&lt;br /&gt;
| A noise reduction filter designed for mosquito noise, which is often caused by lossy compression.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20131028144351/http://www.geocities.jp/w_bean17/files/mosquito_nr_avisynth.zip Plugin]&lt;br /&gt;
| {{Author/b_inary}}&lt;br /&gt;
|-&lt;br /&gt;
|ungibbs&lt;br /&gt;
|ungibbs, a gibbs artifact remover.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=134502 Script]&lt;br /&gt;
|*.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing&lt;br /&gt;
|Uses aWarpSharp2's flattening to clean out ringing/smaller halos, then runs some masks to preserve the edges and avoid the thinning.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing_faster&lt;br /&gt;
|Same as WarpDeRing but may be a bit faster.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_faster_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deinterlacing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| Area&lt;br /&gt;
| A port of Gunnar Thalin's VirtualDub filter &amp;quot;Deinterlace - area based&amp;quot; to AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/area_5F25_dll_20030217.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}} // {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| BlendBob&lt;br /&gt;
| Filter designed for use after a smart bob; blends every other frame with the closest matching neighbouring frame. See [http://forum.doom9.org/showthread.php?threadid=80289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/BlendBob/ Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| DGBob&lt;br /&gt;
| This filter splits each field of the source into its own frame and then adaptively creates the missing lines either by interpolating the current field or by using the previous field's data. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=55598 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/dgbob/dgbob.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The FieldDeinterlace filter provides functionality similar to the postprocessing function of Telecide. You can use it for pure interlaced streams (that is, those not containing telecined progressive frames). The name refers to the fact that field mode differencing is used.&lt;br /&gt;
| [[YUY2]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EEDI2]]&lt;br /&gt;
| EEDI2 resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and interpolating the missing field.  It is intended for edge-directed interpolation for deinterlacing (i.e. not really made for resizing a normal image, but can do that as well).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/EEDI2 Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[eedi3|EEDI3]]&lt;br /&gt;
| Another edge directed interpolation filter. Works by minimizing a cost functional involving every pixel in a scan line. eedi3 is good for deinterlacing and enlarging images by the powers of 2.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/Elegant996/EEDI3/releases/download/0.9.2.1/EEDI3_v0_9_2_1.7z Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FieldHint]]&lt;br /&gt;
|FieldHint combines arbitrary fields from the input clip, and optionally adds Telecide-compatible postprocessing hints.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20120223025813/http://ivtc.org/yatta%20support/fieldhint-0.12.rar Plugin]&lt;br /&gt;
|{{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| IBob&lt;br /&gt;
| Interpolating Bob works identically to the Avisynth built-in [[Bob]] filter except that it uses linear interpolation instead of bicubic resizing. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=62142 discussion]. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://kevin.atkinson.dhs.org/ibob/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| KernelDeint&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Superceded by [[LeakKernelDeint]], see the description below in this table. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/kerneldeint/kerneldeint.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LeakKernelDeint]]&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Compared to KernelDeint, it is low-level optimized (for speed) and provides some useful new functionality. As the original author of KernelDeint() states, LeakKernelDeint() is the preferred version to use.&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/LeakKernelDeint/LeakKernelDeint_1.5.4.zip Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3]]&lt;br /&gt;
| nnedi3 is an intra-field only deinterlacer. It takes in a frame, throws away one field, and then interpolates the missing pixels using only information from the kept field. It also has same rate and double rate modes.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/jpsdr/NNEDI3/releases Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3ocl]]&lt;br /&gt;
| OpenCL rewrite of [[nnedi3]]. See [http://forum.doom9.org/showthread.php?t=169766 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bmemjsu7jqnlk65/nnedi3ocl_20131208.7z Plugin]&lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[QTGMC]]&lt;br /&gt;
| by -Vit- [http://forum.doom9.org/showthread.php?t=156028] A new deinterlacer based on TempGaussMC_beta2. It's faster and has a presets system for speed/quality selection. There are also several new features including progressive support and noise/grain processing. The script also contains extensive comments to better describe the settings and the workings of the TGMC algorithm.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/QTGMC Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
| [[SangNom2]]&lt;br /&gt;
| Reimplementation of the old [[SangNom]] plugin. See [http://forum.doom9.org/showthread.php?t=168315 discussion].&lt;br /&gt;
| [[Y8]],[[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SangNom2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/ SmoothDeinterlace]&lt;br /&gt;
| This contains an adaptive deinterlacer plugin for (AVISynth). It is based on Gunnar Thalin's [http://www.guthspot.se/video/index.htm#deinterlacesmooth Smooth Deinterlace plugin] for VirtualDub.&amp;lt;br&amp;gt;&lt;br /&gt;
See also [[SmoothDeinterlaceFunctions]]&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/AVSSmoothDeinterlacer.zip Plugin]&lt;br /&gt;
| {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TDeint]]&lt;br /&gt;
| TDeint is a bi-directionally, motion adaptive (sharp) deinterlacer. It can also adaptively choose between using per-field and per-pixel motion adaptivity. It can use cubic interpolation, kernel interpolation (with temporal direction switching), or one of two forms of modified ELA interpolation which help to reduce &amp;quot;jaggy&amp;quot; edges in moving areas where interpolation must be used. TDeint also supports user overrides through an input file, and can act as a smart bobber or same frame rate deinterlacer, as well as an IVTC post-processor. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=82264 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420182314/http://bengal.missouri.edu/~kes25c/TDeintv11.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TelecideHints]]&lt;br /&gt;
| The filter process the stats file to get the usual progressive matches and identify VFR sections.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://mod16.org/fansub/Telecidehints11.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TempGaussMC]]&lt;br /&gt;
| Motion-compensated bob deinterlacer, based on temporal gaussian blurring. reduces noise/grain of the source and does NOT leave the original fields unchanged. Output is rich with details and very stable. Is SLOW&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TempGaussMC Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Yadif]]&lt;br /&gt;
| Port of YADIF (Yet Another DeInterlacing Filter) from MPlayer by Michael Niedermayer (http://www.mplayerhq.hu). It check pixels of previous, current and next frames to re-create the missed field by some local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/yadif/yadif.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod]]&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 also is not an Avisynth_C plugin (just a normal one).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183914/http://bengal.missouri.edu/~kes25c/yadifmod_v1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod2]]&lt;br /&gt;
| Yadif + yadifmod for avisynth2.6/avisynth+. See [http://forum.doom9.org/showthread.php?p=1761361 discussion].&lt;br /&gt;
| [[YV24]], [[YV16]], [[YV12]], [[YV411]], [[Y8]]&lt;br /&gt;
| [http://github.com/chikuzen/yadifmod2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Duplicate Frame Detectors ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApparentFPS]]&lt;br /&gt;
| Shows underlying framerate where a clip has had many duplicates inserted, easier than counting unique frames.&lt;br /&gt;
| (see [[ApparentFPS|docs]])&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171339 Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| Dup &lt;br /&gt;
| A robust duplicate frame detector; a frame that is determined to be close enough to its predecessor to be considered a duplicate will be replaced by a copy of the predecessor. This can significantly reduce the size of encoded clips with virtually no visual effect. Provides the capability to replace frames with a blend of all the duplicates, providing a valuable noise reduction. See [http://forum.doom9.org/showthread.php?t=41850 original] and [http://forum.doom9.org/showthread.php?t=153037 continued] discussion. &amp;lt;!--[http://forum.doom9.org/showthread.php?t=44500 another old link]--&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dup/dupnew.html Plugin] &lt;br /&gt;
[http://forum.doom9.org/showpost.php?p=1747207&amp;amp;postcount=17 Update (v2.32a)]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134930 Dupped]&lt;br /&gt;
| Another frame duplication function, similar to Dup, but hopefully more accurate. See [http://forum.doom9.org/showthread.php?t=134930 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181919/http://www.randomdestination.com/members/corran/misc/dupped/dupped.avsi Script]&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/dedup.txt DeDup] &lt;br /&gt;
| Remove (drop) duplicate frames in the interest of compression quality and speed. Resulting clip will have a variable frame rate.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
|[[ExactDedup]]&lt;br /&gt;
| ExactDedup is a filter intended to remove frames that are exact duplicates of each other, leaving only the first and (optionally) last frames of a run intact, and generates a Matroska v2 timecodes file with timing information for the ensuing stream. See [http://tasvideos.org/forum/viewtopic.php?t=12065 discussion].&lt;br /&gt;
| [[RGB24]] [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/9x2ax1rb5un02d5/ExactDedup+Version+0.03.zip Plugin]&lt;br /&gt;
|Steve Melenchuk, Arick Chan&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/getdups/getdups.html GetDups] &lt;br /&gt;
| Selecting unique duplicate frames from clip, it return frames which have copies only, by one from the series (group). Made for 8mm films.&lt;br /&gt;
| [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/getdups/getdups096.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 MorphDups]&lt;br /&gt;
| Replace duplicate frames by interpolations.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 Script]&lt;br /&gt;
| sven_x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fieldblending and Frameblending removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[c_deblend]] &lt;br /&gt;
| c_deblend is a simple blend replacing function like unblend or removeblend. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Cdeint]]&lt;br /&gt;
| Restores 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video (alternative for Restore24).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblend]]&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=760375#post760375 discussion].&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=157337 ExBlend]&lt;br /&gt;
| ExBlend is a plugin to repair damage caused by blend deinterlacing of telecined clips, which results in a double blend, every five frames, GGGBBGGGBBGGGBB etc where 'G' is good and 'B' is blend. See [http://forum.doom9.org/showthread.php?t=157337 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.mediafire.com/download/0rxe3675sfr4w9l/ExBlend_25_dll_20100226.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[FixBlendIVTC]]&lt;br /&gt;
| A blend replacing/frame restoring function for doubleblends caused by blend-deinterlacing of telecined sources. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mrestore]]&lt;br /&gt;
| Uses conditional frame evaluation to undo standard conversions with blends. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveBlend]]&lt;br /&gt;
| This filter is used to remove blended fields/frames. See [http://forum.doom9.org/showthread.php?t=75772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [//web.archive.org/web/20061113201230/http://bossanovaguitar.com/video/removeblend-0.3.zip Plugin]&lt;br /&gt;
| {{Author/violao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Restore24]]&lt;br /&gt;
| Restore24 is an AviSynth filter that is able to do the nearly impossible: Restore 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=75432 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [[RestoreFPS]]&lt;br /&gt;
| RestoreFPS reverses the kind of blending generated by [[ConvertFPS]], restoring original framerate. It will work perfectly well on any regular blend pattern.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Restorefps_v10.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Srestore]]&lt;br /&gt;
| Replacement function for mrestore, c_deblend, FixBlendIVTC and DupHq.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Srestore|script]]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| Specials&lt;br /&gt;
| Helps restore video with blended fields/frames using a reference source. See [http://forum.doom9.org/showthread.php?t=165030 discussion] and much more information [http://horman.net/doctorwho/specials.php here] and [http://forum.doom9.org/showthread.php?t=168832 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://horman.net/specials.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| Unblend&lt;br /&gt;
| Unblend is based on warpenterprise's deblend algorithm and neuron2's decimate code, with YV12 support only. The aim is the same of deblend. See [http://forum.doom9.org/showthread.php?t=55019 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/unblend_5F25_dll_2003.zip Plugin]&lt;br /&gt;
| Bach&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Film Damage correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/descratch/descratch.html DeScratch]&lt;br /&gt;
| DeScratch removes vertical scratches from films. Also it can be used for removing of horizontal noise lines such as drop-outs from analog VHS captures (after image rotation). &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/descratch/descratch110.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/despot/despot.html DeSpot]&lt;br /&gt;
| This filter is designed to remove temporal noise in the form of dots (spots) and streaks found in some videos. The filter is also useful for restoration (cleaning) of old telecined 8mm (and other) films from spots (from dust) and some stripes (scratches).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/despot/despot3610.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[deVCR]]&lt;br /&gt;
| deVCR eliminates (to a certain degree) the annoying horizontal lines that keep crawling around your VHS or Beta recorded video. See discussion [http://forum.videohelp.com/threads/323093-How-to-use-DeVCR-for-Avisynth here] and [http://www.digitalfaq.com/forum/video-restore/2607-tracking-lines-video.html here.]&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| Ricardo Garcia&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 VideoFred's Film Restoring]&lt;br /&gt;
| A suite of scripts for film restoring.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 Script]&lt;br /&gt;
| videoFred&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveDirt]]&lt;br /&gt;
| RemoveDirt is a temporal cleaner for AviSynth 2.5x. It has now become an AVS script function, which involves RestoreMotionBlocks and various filters from the [[RemoveGrain]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveDirt Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frequency Interference removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq.html DeFreq]&lt;br /&gt;
| Defreq uses Fast Fourier Transform method for frequency selecting an removing. See [http://forum.doom9.org/showthread.php?t=82978 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq07.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/FanFilter/FanFilter.html FanFilter] &lt;br /&gt;
| Regular vertical frequency interference is filtered in spatial domain.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/FanFilter/FanFilter.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IVTC &amp;amp; Decimation ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AnimeIVTC]]&lt;br /&gt;
| What it does:&lt;br /&gt;
* High quality adaptative field matching for hard telecine&lt;br /&gt;
* Bob, remove the blends and decimate back to the desired framerate for DHT/field-blended&lt;br /&gt;
* Creating a VFR clip for hybrid sources&lt;br /&gt;
* Bob the interlaced credits, blend-deinterlacing the background while doing minimal damage on the progressive credits, convert their framerate to match the episode's and splice them with it OR leave them @ 30p to create a VFR clip&lt;br /&gt;
* Very good combing removal and anti-aliasing functions&lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=138305] and See [http://forum.doom9.org/showthread.php?p=1673928] for mod version.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| BruteIVTC&lt;br /&gt;
| Some information [http://web.archive.org/web/20141221181254/http://privatepaste.com/download/77d973422b here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091214015625/http://mf.creations.nl/avs/filters/BruteIVTC.dll Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 DOCI]&lt;br /&gt;
| Destruction of Chroma Interlacing fixes a problem where you captured pulleddown video in YV12.  In the combed frames, the chroma from two frames has been blended, leading to a ghosting effect when IVTC'd.  This filter reconstructs the chroma exactly and fixes the problem.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| FDecimate&lt;br /&gt;
| The FDecimate() filter provides extended decimation capabilities not available from Decimate(). It can remove frames from a clip to achieve the desired frame rate, while retaining audio/video synchronization. It preferentially removes duplicate frames where possible. (&amp;quot;FDecimate&amp;quot; stands for &amp;quot;Free Decimate&amp;quot;, which implies that the output frame rate may be freely chosen, and is not limited to 1-in-N decimation).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/fdecimate/fdecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| GreedyHMA&lt;br /&gt;
| GreedyHMA is an Avisynth filter that executes DScaler's Greedy/HM algorithm code to perform pulldown matching, filtering, and video deinterlace. It has pretty much been superseded by Donald Graft's [[DeComb]] package. However there may be occasions where it sometimes gives preferable results, especially with some bad [[PAL]] clips.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/GreedyHMA.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[IT]]&lt;br /&gt;
| Inverse Telecine plugin.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/002p6yed7dzi8f3/IT_YV12_0103_width8K.zip?dl=1 Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| ivtc_txt60mc&lt;br /&gt;
| Deinterlaces telecined footage with that has been overlayed scrolling text at 60i. More information [http://web.archive.org/web/20140420184542/http://doom10.org/index.php?topic=292.msg5499 here] (last post).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1466105&amp;amp;postcount=4 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} aka Firesledge&lt;br /&gt;
|-&lt;br /&gt;
|JIVTC&lt;br /&gt;
|JIVTC applies inverse telecine in a way to minimize artifacts often seen on Japanese TV broadcasts followed by recalculating the fields that might still contain some.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://raw.githubusercontent.com/lovesyk/avisynth-scripts/master/JIVTC.avsi Script]&lt;br /&gt;
|[http://github.com/lovesyk lovesyk]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168397 MDec2]&lt;br /&gt;
|MDec2 is a 2 pass decimating filter, acting much like the MultiDecimate filter.&lt;br /&gt;
|[[RGB32]], [[RGB24]], ][[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/3ajn640ujxr8jnx/MDec2_25%2626_dll_v1.01_20150330.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| MultiDecimate&lt;br /&gt;
| Removes N out of every M frames, taking the frames most similar to their predecessors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=51901&amp;amp;perpage=20&amp;amp;pagenumber=2 discussion].&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/multidecimate/multidecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| PFR&lt;br /&gt;
| PFR (Progressive Frame Restorer) is an Avisynth filter that attempts to produce progressive frames from a mixed progressive/interlaced/IVTCed source.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ReMatch]]&lt;br /&gt;
| ReMatch is a field matching plugin, specifically for anime.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/rematch_5F25_dll_20050306.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| RePal&lt;br /&gt;
|  [http://forum.doom9.org/showthread.php?t=48401 Discussion] / [http://forum.doom9.org/showthread.php?p=1092552#post1092552 repal_29.97Hz_mod]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/repal_5F25_dll_20030523.zip Plugin] - [http://forum.doom9.org/attachment.php?attachmentid=8028&amp;amp;d=1201414683 Mod]&lt;br /&gt;
| Bach&lt;br /&gt;
|-&lt;br /&gt;
| SmartDecimate&lt;br /&gt;
| Smart Decimate removes telecine by combining telecine fields and decimating at the same time, which is different from the traditional approach of matching telecine frames and then removing duplicates. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=60031 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/tel/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The Telecide and Decimate filters can be combined to implement IVTC.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TIVTC]]&lt;br /&gt;
| A package containing these 7 filters: TFM, TDecimate, MergeHints, FrameDiff, FieldDiff, ShowCombedTIVTC, and RequestLinear. Also contains these 3 conditional functions: IsCombedTIVTC, CFieldDiff, and CFrameDiff. Designed primarily for IVTC operations. [http://forum.doom9.org/showthread.php?t=82264 Discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181748/http://bengal.missouri.edu/~kes25c/TIVTCv105.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| TPRIVTC&lt;br /&gt;
| TPRIVTC stands for TMPEG InVerse Telecine, i.e. the process where an 29.97fps interlaced NTSC clip is converted to 23.976fps while removing interlaced frames. [http://web.archive.org/web/20030808191810/http://kurosu.inforezo.org/avs/TPRIVTC/index.html Readme]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/tprivtc_5F25_dll_20040930.zip Plugin]&lt;br /&gt;
| daxab, {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
| UnComb&lt;br /&gt;
| Filter for matching up even and odd fields of properly telecined [[NTSC]] or [[PAL]] film source video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=52333 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/UnComb.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167875 WeaveMan]&lt;br /&gt;
| Remove arbitrary pulldown patterns manually; meant for perfectionists to undo non-standard 24-&amp;gt;25 fps, 25-&amp;gt;29.97 fps, etc. telecine conversions, along with other weird telecine anomalies created by broadcasters speeding up film-sourced content. See sample case [http://forum.doom9.org/showthread.php?p=1630931&amp;amp;highlight=weaveman#post1630931 here].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131208232913/http://chidragon.thedessie.com/Doom9/WeaveMan-v0.2.zip Plugin]&lt;br /&gt;
| ChiDragon&lt;br /&gt;
|-&lt;br /&gt;
| [[IvtcBlend]]&lt;br /&gt;
| Waka demonstrated an IvtcBlend function that uses the information in the &amp;quot;extra&amp;quot; fields of a telecined source to help combat temporal noise.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ghost Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FixVHSOversharp&lt;br /&gt;
| FixVHSOversharp attempts to repair the light and dark halos that follow high contrast edges found in VHS sources. See [http://web.archive.org/web/20131014010552/http://www.videohelp.eu/forum/avisynth/2851-avisynth-fixvhsoversharp-beta.html discussion.] &lt;br /&gt;
| | [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091026142456/http://www.geocities.com/mrtibsvideo/fixvhsoversharp.html Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20091027001215/http://geocities.com/mrtibsvideo/ MrTibs]&lt;br /&gt;
|-&lt;br /&gt;
| GhostBuster&lt;br /&gt;
| Ghostbuster is an AviSynth filter for removing &amp;quot;ghosts&amp;quot; from a clip. A ghost in this context is a faint copy of the picture offset horizontally. It works by either subtracting or adding the image from itself at the specified offset. With some tweaking the result, while not perfect, can be very pleasing. See discussion [http://forum.doom9.org/showthread.php?t=35339 here] and [http://web.archive.org/web/20121215130729/http://www.videohelp.eu/forum/avisynth/14691-ghostbuster-filter-avisynth.html here.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12721&amp;amp;d=1330678606 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20140420183804/http://www.videohelp.eu/forum/avisynth/14679-sansgrips-avisynth-filters.html SansGrip]&lt;br /&gt;
|-&lt;br /&gt;
| LGhost&lt;br /&gt;
| Plugin intended for ghost removal but can also reduce edge (ringing) artifacts. See [http://forum.doom9.org/showthread.php?p=1176552#post1176552 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/LGhost0301.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Logo Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeKafka]]&lt;br /&gt;
| This fairly simple filter washes away those annoying bugs from broadcast clips.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| poptone&lt;br /&gt;
|-&lt;br /&gt;
| DeLogo&lt;br /&gt;
| DeLogo Filter for VirtualDub. Removes static elements, e.g. logos or watermarks, from the video stream. It can remove either opaque elements or alpha blended, the latter even without destroying the picture beneath. &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/delogo132/delogo.html Plugin] &amp;amp; [http://forum.doom9.org/showthread.php?t=119447 Script]&lt;br /&gt;
| Karel Suhajda&lt;br /&gt;
|-&lt;br /&gt;
| [[InpaintFunc]]&lt;br /&gt;
| Script for logo removal using inpainting. Can remove alpha blended or opaque logos with a basic postprocessing to hide artifacts.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/InpaintFunc.avs Script]&lt;br /&gt;
| Reuf Toc&lt;br /&gt;
|-&lt;br /&gt;
| [[rm_logo]]&lt;br /&gt;
| Combination of deblending and inpainting to remove logos with adjustable postprocessing to further hide artifacts. See [http://forum.doom9.org/showthread.php?t=134919]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rm_logo.avs Script]&lt;br /&gt;
| Spuds &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154559 s_ExLogo]&lt;br /&gt;
|De-logo function with clipping (Dekafka mod).&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://www.mediafire.com/download/40cpnnctd0uutpv/s_ExLogo_1.1.zip Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| X-Logo&lt;br /&gt;
| X-Logo AviSynth plugin and VirtualDub filter. Removes opaque logos. See [http://forum.doom9.org/showthread.php?t=56660 discussion] and [http://forum.videohelp.com/threads/273109-Remove-an-opaque-logo-using-Xlogo-in-Avisynth tutorial].&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.marzocchi.net/Olafsen/Software/X-Logo?setview=en Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20041204210505/http://members.verizon.net/~vze3kkvm/filters.html Leuf]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Luma Equalization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Antiflicker]]&lt;br /&gt;
| &amp;quot;A quick-and-dirty port of my VirtualDub filter (which sucks, by the way; it was one of my first filters).&amp;quot; &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?p=224573#post224573 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/antiflicker_5F25_dll_20030304.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker.html DeFlicker]&lt;br /&gt;
| Can remove old film intensity flicker by temporal mean luma smoothing. Can also correct blinding of automatic gain control after flashes.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker04.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Dumb Deflicker]&lt;br /&gt;
| Gathers average luma of frames, smoothens that with TemporalSoften, and applies the obtained difference to the original input.  It is pretty simple, read &amp;quot;dumb&amp;quot;. See [http://forum.doom9.org/showthread.php?p=1326599#post1326599 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines.html EquLines]&lt;br /&gt;
| Equalizes total luminosity in pairs of even and odd lines. Useful for removing inter-line differences from telecined films.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines03.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/lmflicker.txt LMFlicker]&lt;br /&gt;
| LMFlicker is intended to reduce flickering in some film/VHS transfers. FieldFade is a similar concept, but applied on a per-field basis, to reduce combing in a video where fades were applied after telecine.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Local Deflicker]&lt;br /&gt;
| Deflickers only part of a frame. See [http://forum.doom9.org/showthread.php?t=159493 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Script]&lt;br /&gt;
| prokhozhijj&lt;br /&gt;
|-&lt;br /&gt;
| [[ReduceFlicker]]&lt;br /&gt;
| Reduces temporal oscillations in clips; should be applied before deinterlacing. Contains ReduceFlicker, ReduceFluctuations, and LockClense. See [http://videoprocessing.fr.yuku.com/topic/24/ReduceFlicker-05 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/ReduceFlicker Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/ TimeLapseDF]&lt;br /&gt;
| Designed to remove luminosity flicker in time lapse photography. Unlike most other flicker removal filters, utilizes cumulative distribution function in addition to average frame luminosity. See [http://timescapes.org/phpBB3/viewtopic.php?f=8&amp;amp;t=2410 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/TimeLapseDF.dll 32-Bit Plugin]&lt;br /&gt;
| {{Author/Denis Zhitenev}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Vinverse]]&lt;br /&gt;
| A simple but effective plugin to remove residual combing.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/vinverse/releases Plugin]&lt;br /&gt;
| {{Author/Didée}}, {{Author/tritical}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=106898 wdeflicker]&lt;br /&gt;
| Modifies luma of a source clip by refering to a temporally super-smoothed clip. Heights of source and reference clips must match. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5417&amp;amp;d=1139174468 Plugin]&lt;br /&gt;
| Osmiridium&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Rainbow &amp;amp; Dot Crawl Removal|Rainbow &amp;amp; Dot Crawl Removal]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Bifrost]]&lt;br /&gt;
| Bifrost uses temporal blending to remove or at least reduce the effect of rainbows.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/dubhater/vapoursynth-bifrost/releases/download/v2.0-avs/avisynth-bifrost-v2.0.7z Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, dubhater&lt;br /&gt;
|-&lt;br /&gt;
| [[CC]]&lt;br /&gt;
| Dot crawl and rainbow removal.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.chiyoclone.net/dl/cc_20040522.lzh Plugin]&lt;br /&gt;
| {{Author/chiyo-clone}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Checkmate]]&lt;br /&gt;
| Spatial-temporal dot crawl removal. See [http://github.com/tp7/checkmate Checkmate for AviSynth 2.6].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Checkmate Plugin]&lt;br /&gt;
| {{Author/mf}} / prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain2]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script based on [[ChubbyRain]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain2.avsi Script]&lt;br /&gt;
| Lothar&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCrawl]]&lt;br /&gt;
| Spatial and temporal dot crawl removal, particularly for animated material.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/decrawl_20060924.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCross]]&lt;br /&gt;
| Cross Color Reduction. Also known as rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeCross0002.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeDot]]&lt;br /&gt;
| Removes dot crawl and may also be useful for rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeDot_YV12_0002.zip Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeRainbow]]&lt;br /&gt;
| A simple script to reduce rainbows. See [http://forum.doom9.org/showthread.php?p=398106#post398106 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/images/DeRainbow.avsi Script]&lt;br /&gt;
| sh0dan&lt;br /&gt;
|-&lt;br /&gt;
| [[DFMDeRainbow]]&lt;br /&gt;
| Creates mask to process only edges; rainbows are removed by hitting chroma planes with two passes of FluxSmooth (hence &amp;quot;Double-Flux-Mask&amp;quot;).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/DFMDeRainbow-20140223.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/guavacomb.htm GuavaComb]&lt;br /&gt;
| Removes dot crawl, rainbows, and some kinds of shimmering. See [http://forum.doom9.org/showthread.php?t=37456 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/guavacomb_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeCrawl]]&lt;br /&gt;
| Purely spatial; only targets pixels for dot crawl removal if luma is fluctuating and (optionally) chroma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeCrawl-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeRainbow]]&lt;br /&gt;
| Purely spatial; only targets pixels for derainbowing if chroma is fluctuating and (optionally) luma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeRainbow-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[mfRainbow]]&lt;br /&gt;
| Derainbows in areas of high Y, U and V frequencies, which fluctuate heavily.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/MfRainbow-v0.32.avsi Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Rainbow_Smooth]]&lt;br /&gt;
| A small spatial derainbow function. It uses [[SmoothUV]] to smooth out chroma and edge masking to prevent color bleeding.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rainbow_smooth.avsi Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[SmartSSIQ]]&lt;br /&gt;
| SSIQ can alter the color on the entire picture. So this script first applies SSIQ to the entire picture. Then it locates the edges. Finally, it layers ONLY the de-rainbowed edges onto the original video.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SmartSSIQ.avsi Script]&lt;br /&gt;
| LB&lt;br /&gt;
|-&lt;br /&gt;
| [[SSIQ]]&lt;br /&gt;
| Rainbow remover. A port of the VirtualDub plugin [http://www.doki.ca/filters/ Smart Smoother IQ.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/ssiq_20070304.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TComb]]&lt;br /&gt;
| A temporal comb filter (it reduces cross-luminance (rainbowing) and cross-chrominance (dot crawl) artifacts in static areas of the picture). See [http://github.com/Elegant996/TComb TComb for AviSynth 2.6.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TComb Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YARK]]&lt;br /&gt;
| Yet Another Rainbow Killer. Based on mfRainbow v0.31, chubbyrain2, and various other scripts shown [http://forum.doom9.org/showthread.php?t=141165 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YARK|Script]]&lt;br /&gt;
| jase99&lt;br /&gt;
|-&lt;br /&gt;
| [[ASTDR]]&lt;br /&gt;
| ASTDR uses mt_motion for motion and edge to deal with moving Rainbow and apply mask once more in the opposite way to keep around the lines as they are. It uses DeCross and other filters to remove Rainbow. ASTDRmc avoids chroma bleeding in moving scenes. See [http://forum.doom9.org/showpost.php?p=1665492&amp;amp;postcount=27 post on doom9.org].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[ASTDR|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stabilization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[CelStabilize]]&lt;br /&gt;
| Script which holds a fixed background steady.  Doesn't work well with pans or fades.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/CelStabilize Script]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| [[DePan]]&lt;br /&gt;
| Tools for estimation and compensation of global motion (pan) .See [http://avisynth.org.ru/depan/depan.html]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/depan/depan.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|DepanSafe&lt;br /&gt;
|Another DePan stabilization script. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[DepanSafe_source|Script]]&lt;br /&gt;
|[http://pastebin.com/u/tophf tophf]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Deshaker3D]&lt;br /&gt;
| Experimental 3D image stabiliser (VDub [http://www.guthspot.se/video/deshaker.htm Deshaker] required).&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 SpatialAlign]&lt;br /&gt;
|Fix spatial alignment between two clips containing similar scenes.&lt;br /&gt;
|Any?&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 Script]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[Stab]]&lt;br /&gt;
| Simple but powerful script to remove small high frequency jitter that appears often on old/bad transfers. See [http://forum.doom9.org/showthread.php?p=1222830#post1222830]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Stab.avsi Script]&lt;br /&gt;
| g-force&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Stabilization Tools Pack]&lt;br /&gt;
| A set of tools to work with common stabilization issues, mainly from telecine process.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/TBC TBC]&lt;br /&gt;
| Stabilizes horizontal jitter in video from analog VCRs, similar to the function of a Time Base Corrector.(note: will cause SEt's Avisynth 2.6 MT to stop working)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Denoisers ==&lt;br /&gt;
Strength/Quality of Denoisers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(need subclassification)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AdaptiveMedian]]&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.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/AdaptiveMedian Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Atc&lt;br /&gt;
| Alternate Temporal Cleaner; a fast temporal cleaner with some cool stuff.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/atc%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| ColourizeSmooth&lt;br /&gt;
| ColourizeSmooth uses a general colourizing algorithm to smooth a given clip. ColourizeSmooth is based on this [http://www.cs.huji.ac.il/~yweiss/Colorization algorithm.] See [http://forum.doom9.org/showthread.php?t=91344 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourizesmooth_5F25_dll_20050429.zip Plugin]&lt;br /&gt;
| insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kevina.org/temporal_median/ ConditionalTemporalMedian]&lt;br /&gt;
|This filter is designed to remove temporal noise in the form of small dots and streaks found in some videos. A common cause of this is dirty VHS heads but I have also seen small black or white streaks in broadcast material. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/temporal_median/CondTemporalMedian-0.93.zip Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159148 Deathray]&lt;br /&gt;
|OpenCL GPU accelerated spatial/temporal non-local means de-noising. See [http://raw.githubusercontent.com/JawedAshraf/Deathray/master/Deathray%20readme.txt readme] and GitHub source code [http://github.com/JawedAshraf/Deathray/ repository].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/JawedAshraf/Deathray/raw/master/Deathray.dll Plugin]&lt;br /&gt;
|[http://github.com/JawedAshraf Jawed]&lt;br /&gt;
|-&lt;br /&gt;
| [[DeNoise]]&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. The global variance value can be specified or it can be computed from a window. The global variance can have one value for the entire clip or can vary frame to frame linearly or computed from a window with its coordinates linearly moving with frame numbers.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeNoise Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#dnr2 DNR2]&lt;br /&gt;
| Dynamic Noise Reduction 2 is based on the VirtualDub [http://www.shdon.com/vid/dnr DNR] filter by Steve Don and Avery Lee. &lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dnr2_5F25_dll_20021225.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeSaltPepper]]&lt;br /&gt;
| Remove white and black noise.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/DeSaltPepper Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| ExtendedBilateral&lt;br /&gt;
| ExtendedBilateral extends the regular bilateral filtering process by adding an &amp;quot;initial estimation preprocess.&amp;quot; It is similar in operation to [[TBilateral]] and offers many of the same options (though not all) while adding the preprocess. See [http://forum.doom9.org/showthread.php?t=96015 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/extendedbilateral_5F25_dll_20050622.zip Plugin]&lt;br /&gt;
|insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [[FFTQuiver]]&lt;br /&gt;
| Remove periodic noise. Useful for analog interference.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/FFTQuiver Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| SmootherHiQ&lt;br /&gt;
| VirtualDub's ''Smart Smoother High Quality'' for AviSynth, see archived [http://web.archive.org/web/20040611013235/http://cultact-server.novi.dk/kpo/avisynth/smooth_hiq_as.html documentation].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/smoothhiq_5F25_dll_20030208.zip Plugin]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TNLMeans]]&lt;br /&gt;
| TNLMeans is an implementation of the NL-means denoising algorithm. - [http://forum.doom9.org/showthread.php?t=111344 discussion] - [http://forum.doom9.org/showthread.php?t=168090 TNLMeans built with ICL10]&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=171817 TfNLMeans] - an AviSynth 2.6 fork of TNLMeans 1.0.3&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TNLMeansv103.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| KNLMeansCL&lt;br /&gt;
| KNLMeans is an optimized OpenCL implementation of the Non-local means denoising algorithm. See [http://forum.doom9.org/showthread.php?t=171379 discussion.]. View on [http://github.com/Khanattila/KNLMeansCL/wiki/Filter-description GitHub].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/Khanattila/KNLMeansCL/releases Plugin]&lt;br /&gt;
| [http://github.com/Khanattila Khanattila]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172966 xNLMeans]&lt;br /&gt;
|xNLMeans is an AviSynth plugin implementation of the Non Local Means denoising proposition. This implementation provides several optimizations and extensions over the original proposition and other implementations.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/4stpv24pvpfclzm/xNLMeans_0.03_20160324.zip Plugin] &amp;lt;!--[http://www.mediafire.com/download/bmldoqgmmboij8n/xNLMeans_0.01_151212.zip older version]--&amp;gt;&lt;br /&gt;
|martin53&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatial Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[_2DCleanYUY2]]&lt;br /&gt;
| Averages pixels in a configurable radius around a source pixel that are within a configurable threshold of the central pixel. A port of the VirtualDub plugin [{{N2Moved}}/2dcleaner.html 2D Cleaner.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/vh7a5xmdpyj3d8u/_2DCleanYUY2_v0_10_mod_for_smp_YV12.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}, {{Author/xeon533}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DctFilter]]&lt;br /&gt;
| An experimental filter that operates on DCT coefficients. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DctFilter Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DCTFun]]&lt;br /&gt;
| A fast spatial denoiser that does a hard thresholding of a complete 4x4 ICT transform.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DCTFun Plugin]&lt;br /&gt;
| Prunedtree &lt;br /&gt;
|-&lt;br /&gt;
| eDeen&lt;br /&gt;
| eDeen is a ultra powerfull spatial denoiser for very experienced encoders only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/eDeen%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3b]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/frfun3b_rev3.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3d]]&lt;br /&gt;
| Fractal denoising; frfun3d is a quality optimized frfun3b. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/xqxfy59pcv3ea1q/frfun3d_r1.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun7]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Frfun7 Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20101201051903/http://gpubilateral.sourceforge.net/ GPUBilateral]&lt;br /&gt;
| In short, bilateral filter is a edge-preserving smooth filter. See [http://forum.doom9.org/showthread.php?t=136370 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/gpubilateral/files/ Plugin]&lt;br /&gt;
| Sompon Virojanadara    &lt;br /&gt;
|-&lt;br /&gt;
|Kuwahara&lt;br /&gt;
|This filter is an edge preserving spatial noise reduction filter. It applies spatial smoothing while preserving the edges. See [http://forum.doom9.org/showthread.php?p=1689773 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Kuwahara_v11.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth.html Msmooth]&lt;br /&gt;
| Masked smoother, designed specifically for anime.&lt;br /&gt;
| [[YV12]], [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth202.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothUV]]&lt;br /&gt;
| A spatial denoising plugin based on [{{N2Moved}}/smooth.html Smart Smoother] and [{{N2Moved}}/hiq/smoothhiq.html Smart Smooth HiQ].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/smoothuv_5F25_dll_20030902.zip Plugin]&lt;br /&gt;
| {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SPresso]]&lt;br /&gt;
|A fast script to make SD content compress better while keeping the &amp;quot;original look&amp;quot;.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=867316&amp;amp;postcount=23 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TBilateral]] &lt;br /&gt;
| TBilateral is a spatial smoothing filter that uses the bilateral filtering algorithm.  It does a nice job of smoothing while retaining picture structure.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TBilateralv0911.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnDot]]&lt;br /&gt;
| UnDot is a simple median filter for removing dots, that is stray orphan pixels and mosquito noise. It clips each pixel value to stay within min and max of its eight surrounding neighbors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;postid=205442#post205442 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/UnDot.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/vague/vaguedenoiser.html VagueDenoiser]&lt;br /&gt;
| This is a Wavelet based Denoiser. Basically, it transforms each frame from the video input into the wavelet domain, using various wavelet filters. Then it applies some filtering to the obtained coefficients. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=56871 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/vaguedenoiser_5F25_dll_20050926.zip Plugin]&lt;br /&gt;
| {{Author/Lefungus}}, {{Author/Kurosu}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VerticalCleaner]]&lt;br /&gt;
| Fast vertical cleaner. Parameter information [http://videoprocessing.fr.yuku.com/sreply/651/Can-use-quantile-like-vertical-median-filter here.] Explanation of mode 2 [http://videoprocessing.fr.yuku.com/sreply/649/Can-use-quantile-like-vertical-median-filter here.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Cnr2]]&lt;br /&gt;
| A fast chroma denoiser. Very effective against stationary rainbows and huge analogic chroma activity. Useful to filter VHS/TV caps. See [http://forum.doom9.org/showthread.php?t=78905 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181313/http://bengal.missouri.edu/~kes25c/cnr2_v261.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FluxSmooth]]&lt;br /&gt;
| Examines each pixel and compares it to the corresponding pixel in the previous and last frame.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20070225212908/http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip Plugin]&lt;br /&gt;
| {{Author/SansGrip}}, {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/grapesmoother.htm GrapeSmoother]&lt;br /&gt;
| This filter averages out visual noise between frames.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/grapesmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| MVDegrain&lt;br /&gt;
| Strong and effective temporal denoiser. Part of the [[MVTools]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MVTools Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/fizick/docs/english/externalfilters/temporalcleaner.htm TemporalCleaner]&lt;br /&gt;
| TemporalCleaner is an AviSynth port of the original port of the VirtualDub filter TemporalCleaner made by [http://home.earthlink.net/~casaburi/download/#temporalcleaner Jim Casaburi.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/temporalcleaner_5F25_dll.zip Plugin]&lt;br /&gt;
| vlad59&lt;br /&gt;
|-&lt;br /&gt;
| [[TTempSmooth]] &lt;br /&gt;
| TTempSmooth is a motion adaptive (it only works on stationary parts of the picture), temporal smoothing filter.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TTempSmoothv094.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Temporal Degrain]]&lt;br /&gt;
| SLOW but very effective at removing most grain from video sources.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/TemporalDegrain.avs Script]&lt;br /&gt;
| Didée, Sagekilla &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatio-Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/index.html Convolution3D]&lt;br /&gt;
| Convolution3D is a spatio-temporal smoother, it applies a 3D convolution filter to all pixels of consecutive frames. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38281 discussion], [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=49806 continued].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/con3d-yv12-beta5.zip Plugin]&lt;br /&gt;
| {{Author/Vlad59}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deen]]&lt;br /&gt;
| Deen is a set of assembly-optimised denoisers, like various 3d and 2d convolutions.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Deen Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| DenoiseMF&lt;br /&gt;
| A fast and accurate denoiser for a Full HD video from a H.264 camera. See [http://forum.doom9.org/showthread.php?t=162603 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web-beta.archive.org/web/20160315085026/http://forum.doom9.org/showthread.php?t=162603 Script]&lt;br /&gt;
| rean&lt;br /&gt;
|-&lt;br /&gt;
| [[dfttest]]&lt;br /&gt;
| A 2D/3D frequency domain denoiser. See [http://forum.doom9.org/showthread.php?t=132194 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/dfttest-1.9.4.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| dfttestMC&lt;br /&gt;
| A script that motion compensates dfttest. See [http://forum.doom9.org/showthread.php?t=147676 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147676 Script]&lt;br /&gt;
| thewebchat&lt;br /&gt;
|-&lt;br /&gt;
| [[DeGrainMedian]]&lt;br /&gt;
| Two stage Spatio-Temporal Limited Median filter for grain removal. [http://forum.doom9.org/showthread.php?t=80834 See]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/degrain/degrainmedian082.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]&lt;br /&gt;
| A 3D Frequency Domain filter - gives strong denoising and moderate sharpening. See [http://forum.doom9.org/showthread.php?t=85790 original] discussion and updated version [http://forum.doom9.org/showthread.php?t=174347 here].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], [[YUY2]]&lt;br /&gt;
| [http://github.com/pinterf/fft3dfilter/releases Plugin]&lt;br /&gt;
| {{Author/Fizick}}, martin53, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
| FFT3DGPU &lt;br /&gt;
| Similar algorithm to FFT3DFilter, but uses graphics hardware for increased speed. See [http://forum.doom9.org/showthread.php?t=89941 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/tsp/fft3dgpu0.8.2.7z Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [[hqdn3d]] &lt;br /&gt;
| High Quality DeNoise 3D is an Avisynth 2.5 port of the MPlayer filter of the same name. It performs a 3-way low-pass filter, which can completely remove high-frequency noise while minimizing blending artifacts. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/hqdn3d/hqdn3d-0.11.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MC_Spuds]]&lt;br /&gt;
| Motion compensated noise removal with sharpening. Extremely slow, but extremely effective.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Spuds, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MCTemporalDenoise]]&lt;br /&gt;
| Another high quality motion compensated noise removal script with an accompanying post-processing component (with loads of excess feature such as MC-Post-sharpening, MC-antialiasing, deblock, edgeclean and much more)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139766 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/mipsmooth.htm MipSmooth]&lt;br /&gt;
| MipSmooth is a reinvention of [[SmoothHiQ]] and [[Convolution3D]]. MipSmooth was made to enable smoothing of larger pixel areas than 3x3(x3), to remove blocks and smoothing out low-frequency noise. See [http://forum.doom9.org/showthread.php?t=64940 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mipsmooth_5F25_dll_20051223.zip Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/nomosmooth.htm NoMoSmooth]&lt;br /&gt;
| NoMoSmooth temporally denoises relatively static areas and a spatially denoises moving parts. In addition to this motion-based approach, NoMoSmooth employs another technique to try to retain as much existing detail as possible: only pixels that are &amp;quot;fluctuating&amp;quot; are smoothed. See [http://forum.doom9.org/showthread.php?t=37471 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/nomosmooth_5F25_dll_200309015.zip Plugin]&lt;br /&gt;
| SansGrip&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/peachsmoother.htm PeachSmoother]&lt;br /&gt;
| PeachSmoother was designed to cope with the oddities of analog broadcast TV.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/peachsmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| RemoveDirtMC&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=1485300#post1485300 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://pastebin.com/PgkQc9X4 Script]&lt;br /&gt;
| Nephilis/A.SONY&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrain]]&lt;br /&gt;
| RemoveGrain is a plugin package containing various plugins for spatial and temporal denoising, repairing, sharpening, deinterlacing, and other utility functions.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveGrain Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrainHD]]&lt;br /&gt;
| RemoveGrainHD is like RemoveGrain but intended for high definition content. It includes various spatial and temporal functions. See [http://web.archive.org/web/20130412014246/http://www.removegrainhd.de.tf/ documentation.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Denoisers/Spatial_Denoisers/RemoveGrainHD___(0.5_-_2011-08-11).7z Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| RemoveNoiseMC&lt;br /&gt;
| Motion compensated filter for removing noise, larger spots and other dirt. Written as an alternative to the old Dust. Last update Nov 2006. It uses mvtools v1. Jenyok collected together all RemoveNoise and various filters functions and adapted to MVTools v2.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110078 Script]&lt;br /&gt;
| Heini011&lt;br /&gt;
|-&lt;br /&gt;
| [[RgTools]]&lt;br /&gt;
| Modern rewrite of &amp;lt;tt&amp;gt;[[RgTools/RemoveGrain|RemoveGrain]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Repair|Repair]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/BackwardClense|BackwardClense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Clense|Clense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/ForwardClense|ForwardClense]]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[[RgTools/VerticalCleaner| VerticalCleaner]]&amp;lt;/tt&amp;gt; all in a single plugin. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/pinterf/RgTools/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SMDegrain]]&lt;br /&gt;
|SMDegrain is a convenience function for using MDegrain, including 16bit and interlaced support, with extra capabilities for light sharpening and spatial filtering.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-0d-A-Quality-Denoising-Solution Script]&lt;br /&gt;
|{{Author/Dogway}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STMedianFilter]]&lt;br /&gt;
|STMedianFilter is a (slightly motion compensated) spatial/temporal median filter. It fairly very fine grained, using only adjacent pixels in space and time, so it looks at the adjacent 26 locations to filter each location. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/STMedianFilter.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STPresso]]&lt;br /&gt;
|A fast script to make SD/720p content compress better without losing detail and original grain structure. See [http://forum.doom9.org/showthread.php?p=1551871#post1551871 discussion.]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1551871&amp;amp;postcount=2 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| zzz_denoise&lt;br /&gt;
| Simple wrapper around a combination of dfttest and MDegrain3. Requires the [[External_filters#Deepcolor_Filters|Dither]] package.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1390594#post1390594 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adjustment Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Averaging/Layering/Masking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Average]]&lt;br /&gt;
| A simple plugin that calculates weighted frame-by-frame average from multiple clips. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Average Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ AviSynthGimpLayer]&lt;br /&gt;
|AviSynth Gimp-style Layer merge plugin.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ Plugin]&lt;br /&gt;
| [http://sourceforge.net/u/panzerboy66/profile/ panzerboy66]&lt;br /&gt;
|-&lt;br /&gt;
| BlockAverage&lt;br /&gt;
| A simple filter that just averages the Y values of each 2x2 pixel block in a YV12 image – U and V values are left alone as they already common to each 2x2 block in a progressive YV12 image. Just made to see if it satifies the requirements in [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=91580&amp;amp;perpage=10&amp;amp;pagenumber=1 this thread].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/blockaverage01.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|CheckMask&lt;br /&gt;
|A YV12 spatial dot finding filter for AviSynth.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/checkmask_5F25_dll_20050310.zip Plugin]&lt;br /&gt;
|[http://web.archive.org/web/20090618112048/http://kawaii-shoujo.net/AntiAliased/index.html Dan Donovan]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159274 ColorScreenMask]&lt;br /&gt;
|ColorScreenMask is a special effects plugin for processing chroma key (i.e., a green screen or blue screen) backgrounds. It uses color thresholds rather than absolute values as the criteria for setting the alpha channel transparency. &lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=15699&amp;amp;d=1483786544 Plugin]&lt;br /&gt;
|Grandpa Oddball&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=99890 ColourMask]&lt;br /&gt;
|Creates colour masks.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/colourmask_20050911.zip Plugin]&lt;br /&gt;
|{{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/tree/master/avisynth CombMask]&lt;br /&gt;
|A filter to create and process comb masks. These filters were written from scratch, but most of logic comes from tritical's [[TIVTC]] plugin.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Fusion]]&lt;br /&gt;
|Pyramidal image processing for video, it uses image pyramids to blend clips together (more commonly used in the creation of HDR images and image stitching).&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/fusion.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GraMaMa]]&lt;br /&gt;
| Gradient Mask Maker: Creates a mask (either a gradient or black/white) given a prescribed shape (such as circle, ellipse, line, square or rectangle).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/GraMaMa_v02.zip Plugin]&lt;br /&gt;
| {{author/E-Male}}, &lt;br /&gt;
{{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/imck-2.3.0-readme.html ImasMultiColorKeying]&lt;br /&gt;
|Chroma keying filter (Japanese)&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/ Plugin]&lt;br /&gt;
|Umezawa Takeshi&lt;br /&gt;
|-&lt;br /&gt;
|MaskCrop&lt;br /&gt;
|Non-clip plugin and function to speed up filtering with a mask.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=1 Plugin] &amp;lt;!--[http://www.dropbox.com/s/98bcjuiy2ojkz75/MaskCrop0.1.1.7z?dl=1 Old v0.1.1 plugin] [http://www.dropbox.com/s/xcrlno31jqavqob/MaskCrop.7z?dl=1 Old v0.1.0 plugin]--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/369143-ResizersPack-MasksPack-PlaygroundPack-SmoothContrast-Logo-mod-functions?s=7811fcf9c429ffb99f2e0a4b8043832d&amp;amp;p=2364052&amp;amp;viewfull=1#post2364052 MasksPack]&lt;br /&gt;
|This is a set of functions related to masks, so localized filtering will be able, giving you finer control on how and where to filter or protect certain zones.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/mch99c0z5957u9z/MasksPack2.3.zip Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
|[[Median]]&lt;br /&gt;
|A filter plugin for AviSynth which generates a pixel-by-pixel median of several clips. This is particularly useful for filtering out noise and glitches from multiple VHS/SVHS/8mm/Hi8 tape captures, but can be used for other purposes also. [http://forum.videohelp.com/threads/362361-Median%28%29-plugin-for-AviSynth VideoHelp discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://ajk.kapsi.fi/projects/avisynth/median-plugin/Median-0.6.zip Plugin]&lt;br /&gt;
|{{Author/ajk}}&lt;br /&gt;
|-&lt;br /&gt;
| ParameterisedBlend&lt;br /&gt;
| ParameterisedBlend allows you to blend any number of frames within a clip, or blend any number of different clips together.  You can use it as an extended, gamma-aware replacement for Merge().&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft#TOC-ParameterisedBlend Plugin]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172388 Polygon]&lt;br /&gt;
|The very raw beginning of a plugin for drawing high quality polygons (mainly to be used as masks) in AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172388 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163018 RedAverage]&lt;br /&gt;
|Frame-by-frame merging of multiple clips. Includes a masked average, weighted average, and a merge filter. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://chaosking.de/repo/avsfilters/Unclassified/RedAverage___%281.4.3_-_2011-12-02%29.7z Plugin]&lt;br /&gt;
|redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jojje/shapemask ShapeMask]&lt;br /&gt;
|A filter plugin for AviSynth that identifies bright areas such as projector screens at conferences and creates a mask out of them. The use case for which it was created is to deal with overly bright lectures, such as screen casts or talks where the speaker or producer hasn't followed presentation 101; Use light text on a dark background! See [http://forum.doom9.org/showthread.php?t=172308 discussion.]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150702103042/http://snarl.zapto.org/files/ShapeMask-1.0.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tcolormask TColorMask]&lt;br /&gt;
|A simple color masking plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tcolormask/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=76595 TCombMask]&lt;br /&gt;
|TCombMask is a simple filter that creates a comb map that can (could) be used by other filters.  It currently supports optional motion adaption, optional spatial adaption, optional luma &amp;lt;-&amp;gt; chroma linking, different thresholds for chroma and luma, and much more.&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070222162504/http://bengal.missouri.edu/~kes25c/TCombMaskv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner TMaskCleaner]&lt;br /&gt;
|A really simple mask cleaning plugin for AviSynth based on mt_hysteresis. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TMM]]&lt;br /&gt;
| TMM builds a motion-mask for TDeint, which TDeint uses via its 'emask' parameter. See [http://forum.doom9.org/showthread.php?p=980353#post980353 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183526/http://bengal.missouri.edu/~kes25c/TMMv1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/chikuzen/TMM2 TMM2]&lt;br /&gt;
| A rewrite of TMM&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/TMM2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Unpremultiply]] &lt;br /&gt;
| This plugin convert the input RGBA clip from premultiplied alpha to straight matted alpha. See [http://forum.doom9.org/showthread.php?t=166730 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13207&amp;amp;d=1356994426 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20160610124858/http://code.google.com/p/avisynth-unpremultiply/ Josh Sutinen]&lt;br /&gt;
|-&lt;br /&gt;
| [[uu_mt_blend]]&lt;br /&gt;
| ''Blend'' (''[[Overlay]], [[Layer]]'') two clips using [[MaskTools2|MaskTools]]. Wide selection of blend modes.&lt;br /&gt;
| [[YV12]],[[RGB24]],[[RGB32]]&lt;br /&gt;
| [[Media:UU_mt_blend.avs|Script]]&lt;br /&gt;
| rafriff42&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blurring ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[BucketMedian]]&lt;br /&gt;
| BucketMedian is an implementation of spatial median filter adapting bucket (counting) sort algorithm.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bczippngoqy6xbw/BucketMedian-0.3.1.7z Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GBlur]]&lt;br /&gt;
| Gaussian blur.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/GBlur/GBlur.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur]]&lt;br /&gt;
| A plugin with 5 different types of median blur filters. See [http://forum.doom9.org/showthread.php?t=84636 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/medianblur084.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur2]]&lt;br /&gt;
| Implementation of [http://nomis80.org/ctmf.html constant time median filter] for AviSynth 2.6, similar to MedianBlur.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/MedianBlur2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableBlur]]&lt;br /&gt;
| VariableBlur is a Gaussian, binomial or average blur filter with a variable radius (variance).&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]],&lt;br /&gt;
| [http://web.archive.org/web/20140420184040/http://bengal.missouri.edu/~kes25c/variableblur.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableMedian]]&lt;br /&gt;
| A simple median filter. See [http://forum.doom9.org/showthread.php?t=83985 discussion]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091027134543/http://www.geocities.com/siwalters_uk/variablemedian.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Borders and Cropping ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[[BorderControl]]&lt;br /&gt;
| It's designed to allow you to manipulate the regions at the top, bottom and sides of a frame. Set a black border, set a border region to be faded out and you can &amp;quot;smear&amp;quot; the border to save having to crop and resize the whole frame for the sake of a few pixels. Each border (top,bottom.left and right) can be manipulated independently. See [http://forum.doom9.org/showthread.php?t=33479 discussion] and [http://avisynth.org.ru/docs/english/externalfilters/bordercontrol.htm documentation].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20140709005736/http://www.geocities.com/siwalters_uk/bordercontrol14.zip Plugin]&lt;br /&gt;
|{{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FillMargins]]&lt;br /&gt;
|FillMargins is a simple AviSynth filter that fills the four margins of a video clip with the outer pixels of the unfilled portion. It takes integer 4 parameters specifying the size of the left, top, right, and bottom margins. These may be any value and do not have to be any particular multiple. See discussion [http://forum.doom9.org/showthread.php?t=50132 here] and [http://forum.doom9.org/showthread.php?t=55881 here], additional [http://avisynth.org.ru/docs/english/externalfilters/fillmargins.htm documentation]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/FillMargins.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| Padding&lt;br /&gt;
| Duplicate edge pixels to the outside with [[PointResize]]. See [http://forum.doom9.org/showthread.php?t=165946 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1596804&amp;amp;postcount=5 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoCrop]]&lt;br /&gt;
|Automatically crops black borders ([http://en.wikipedia.org/wiki/Letterbox wikipedia:Letterbox], [http://en.wikipedia.org/wiki/Pillar_box_%28film%29 wikipedia:Pillar box], [http://en.wikipedia.org/wiki/Windowbox_%28film%29 wikipedia:Windowbox]) from a clip. Operates in preview mode (overlays the recommended cropping information) or cropping mode. Can also ensure width and height are multiples of specified numbers. See original [http://forum.doom9.org/showthread.php?t=37204 discussion] and updated AutoCrop [http://forum.doom9.org/showthread.php?t=87602 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://len0x.leffe.dnsalias.com/autocrop12.zip Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20050404182221/http://www.videofringe.com/autocrop/ Glenn Bussell], len0x&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource CropDetect]&lt;br /&gt;
| Plugin to detect black bounding box in video and crop it easily. See [http://forum.doom9.org/showthread.php?p=1761842#post1761842 discussion]. Note, CropDetect small plugin merged within ssifSource project. Look for &amp;quot;CropDetect&amp;quot; function in Sub3D.dll&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|-&lt;br /&gt;
|[[RoboCrop]]&lt;br /&gt;
| RoboCrop is an automatic cropping solution to crop black borders from video clips, loosely based on (but using no code from) AutoCrop by Glenn Bussell. See [http://forum.doom9.org/showthread.php?t=168053 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.mediafire.com/file/krdo0aye4dlvpit/RoboCrop_25%2626_dll_v1-10_20160825.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Colourspace Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Moved}}/autoyuy2/autoyuy2.html AutoYUY2]&lt;br /&gt;
| This filter is correctly converts YV12 to YUY2 without color bias.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171786 Cnv2]&lt;br /&gt;
| Universal [[Convert|ConvertTo...()]] wrapper with some additional features. Requires [http://forum.doom9.org/showthread.php?t=147846 GScript]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171786 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| ConvertToYCgCo&lt;br /&gt;
| Converts to the YCgCo colorspace. See [http://forum.doom9.org/showthread.php?t=161736 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12748&amp;amp;d=1331769022 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
| InterleavedConversions&lt;br /&gt;
| Tools for interleaving and de-interleaving 2, 3, and 4-channel data.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| PitifulInsect&lt;br /&gt;
|-&lt;br /&gt;
| ManualColorMatrix&lt;br /&gt;
| Can perform any matrix-based color conversion. See [http://forum.doom9.org/showthread.php?t=161777 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV24]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12346&amp;amp;d=1309522614 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality 16-bit image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools PlanarTools]&lt;br /&gt;
|This plugin is a set of filters that offers converting packed(interleaved) formats to planar formats and vice versa.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV16]]&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2inRGB&lt;br /&gt;
| A quick filter that stuffs YUY2 into RGB24. See [http://forum.doom9.org/showthread.php?p=639948#post639948 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/YUY2inRGB.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2toRGB219&lt;br /&gt;
| Converts YUY2 to studioRGB. With this kind of conversion, luma will not change, meaning no quantization error on luma. See [http://forum.doom9.org/showthread.php?p=639432#post639432 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/colorCorrection/YUY2toRGB219.zip Plugin] &lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422 YV12To422]&lt;br /&gt;
|YV12 to YV16/YUY2 converter for AviSynth 2.6.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddGrainC]]&lt;br /&gt;
| Generates film like grain or other effects (like rain) by adding random noise to clip. Noise can be horizontally or vertically correlated causing streaking. Contains AddGrain &amp;amp; AddGrainC &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]],&lt;br /&gt;
[[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Foxyshadis}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Author/LaTo}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| AddStaticGrainM&lt;br /&gt;
| This function adds static grain in dark areas based on a mask.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[AddStaticGrainM_source|Script]]&lt;br /&gt;
| [http://canihaziframe.wordpress.com/2011/02/23/addstaticgrainm/ Daiz]&lt;br /&gt;
|-&lt;br /&gt;
| [http://kvcd.net/sansgrip/avisynth/Blockbuster-readme.html AddNoise/Blockbuster]&lt;br /&gt;
| Makes encoder allocate more bits to darker areas, thus eliminating DCT blocks by decreasing the clips compressibility.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/blockbuster_5F25_src_20021229.zip Plugin]&lt;br /&gt;
| Ross Thomas&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=87295 AviShader]&lt;br /&gt;
| generic plugin that uses your 3D card's hardware to assist with rendering&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avishader_5F25_dll_20041228.zip Plugin]&lt;br /&gt;
| Antitorgo&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97706 ColorLooks]&lt;br /&gt;
| This plugin is based on Trev's VDub filter Colorlooks and Donald Graft's Colorize (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ColorLooks_v13.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 crt_display]&lt;br /&gt;
| CRT emulation with scanline and phosphor effects. crt_display emulates a CRT display using aperture grille (Trinitron) or Cromaclear technologies. See [http://forum.doom9.org/showthread.php?t=170732 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EffectsMany]]&lt;br /&gt;
| Creates 34 types of special &amp;quot;animated&amp;quot; effects. Effects act on the input clip in the range of the frame numbers specified. The Audio is not affected.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/EffectsMany/EffectsMany.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[f3kgrain]]&lt;br /&gt;
| Another 8/16-bit luma adaptive grain generator.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114900/http://www.nmm-hd.org/upload/get~ElhZlazJbsQ/f3kgrain_v0.4.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GNoise]]&lt;br /&gt;
| Adds random noise to a clip. See [http://forum.doom9.org/showthread.php?p=841700#post841700 duscussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/gnoise_r5.zip Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3]]&lt;br /&gt;
| Noise generator that tries to simulate the behavior of silver grain on film. See [http://forum.doom9.org/showthread.php?t=141303 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1191292#post1191292 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3mod]]&lt;br /&gt;
| Luma adaptive grain generating filter in 8-bit precision. Based on Didée's [[GrainFactory3]] script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722190952/http://www.nmm-hd.org/upload/get~kvNvGpuyxfc/GrainFactory3mod_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactoryLite]]&lt;br /&gt;
| Luma adaptive grain generating filter with stacked 16-bit input/output support. Based on Didée's [[GrainFactory3]] script, processing in 16-bit precision, and some commonly unused parameters removed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722185917/http://www.nmm-hd.org/upload/get~FaqsQaMom9s/GrainFactoryLite_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html HollywoodSQ]&lt;br /&gt;
| Creates popup album, akin to Hollywood squares TV show&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| KenBurnsEffect&lt;br /&gt;
| Given clip, zooms, pans &amp;amp; rotates clip. See [http://en.wikipedia.org/wiki/Ken_Burns_Effect wikipedia:Ken Burns Effect]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135776 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| [[MPlayerNoise]]&lt;br /&gt;
| Noise Generator ported from MPlayer. See [http://forum.doom9.org/showthread.php?t=84181 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/bergfiltercollection_5F25_dll_20041019.zip Plugin]&lt;br /&gt;
| {{Author/bergi}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NoiseGenerator]]&lt;br /&gt;
| Newer function based off of Blockbuster. Adds random noise to clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/noisegenerator_5F25_dll_20050616.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
| [[Scanlines]]&lt;br /&gt;
| Add Scanlines (black horizontal bars) to a video. see [http://en.wikipedia.org/wiki/Scan_line wikipedia:Scan Line]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/scanlines_5F25_dll_20031103.zip Plugin]&lt;br /&gt;
| turulo&lt;br /&gt;
|-&lt;br /&gt;
| [[StaticNoiseC]]&lt;br /&gt;
| Generates static grain using the Mersenne Twister random number generator. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=8&amp;amp;t=118&amp;amp;start=20#p772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131228160225/http://www.nmm-hd.org/upload/get~YnWFecZw0Uo/StaticNoiseC20110108b.zip Plugin]&lt;br /&gt;
| histamine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/turnstile.htm TurnsTile]&lt;br /&gt;
| Applies mosaic and/or palette effects to a clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158695 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Order ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| PFR&lt;br /&gt;
| Tries to restore the original progressive field order of a movie (or any predominantly filmed material transferred to video) where the field order changes at scene changes in a seemingly random fashion! See [http://forum.doom9.org/showthread.php?t=49815 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| ReverseFieldDominance&lt;br /&gt;
| This filter is intended to reverse the field dominance of [[PAL]] DV video. See [http://forum.doom9.org/showthread.php?t=46765 discussion.]&lt;br /&gt;
| [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/reversefielddominance.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Rate Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AlterFPS]]&lt;br /&gt;
| AlterFPS can be used to speed up or slow down a video by adding or removing fields. It works like the 3:2 pulldown of NTSC film material, except you can choose your new speed. It can also blend frames for progressive frame results, and blend fields like ConvertFPS.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [[convert60ito24p]]&lt;br /&gt;
| convert60ito24p converts a 60fps interlaced NTSC Video into a 24fps progressive Video using different blending techniques.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md FPSDown]&lt;br /&gt;
| This filter reduces the framerate of a video by 1/2, by blending odd and even frames together. However, it does this in a smart way such that in case of duplicate frames, it will do the smart thing to remove unnecessary blurring in the output video.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md Plugin]&lt;br /&gt;
| [http://github.com/arkeet/ arkeet]&lt;br /&gt;
|-&lt;br /&gt;
| [[FrameDbl]]&lt;br /&gt;
| FrameDbl will generate extra frames to double the frame rate. It does this using a motion compensated approach to interpolating between frames. See [http://forum.doom9.org/showthread.php?t=56036 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/FrameDbl.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| FrameRateConverter&lt;br /&gt;
| FrameRateConverter uses motion interpolation with fine artifact removal. Requires [[MVTools|MVTools 2.7.x]], [[MaskTools|MaskTools 2.2.x]]. See [https://forum.doom9.org/showthread.php?t=174793 discussion].&lt;br /&gt;
| [[YV24]], [[YUY2]], [[YV12]], [[Y8]]&lt;br /&gt;
| [https://github.com/mysteryx93/FrameRateConverter Plugin]&lt;br /&gt;
| [https://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.spirton.com/uploads/InterFrame/InterFrame2.html InterFrame]&lt;br /&gt;
| Frame rate conversion script. Interframe works very well at converting 24FPS to 60FPS; converts videos to higher frame rates like newer TVs do. Common names are frame doubling, smooth motion, among others. See [http://forum.doom9.org/showthread.php?t=160226 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1486831&amp;amp;postcount=1 Script]&lt;br /&gt;
|{{Author/SubJunk}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/index_en_msu.html MSU_FRC]&lt;br /&gt;
|The filter is intended for video frame rate up-conversion. It increases the frame rate integer times. It allows, for example, to convert a video with 15 fps into a video with 30 fps.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/src/msu_frc.zip Plugin]&lt;br /&gt;
|Dmitriy Vatolin, et al.&lt;br /&gt;
|-&lt;br /&gt;
| Motion&lt;br /&gt;
| Fast true-motion motion-compensation functions for AviSynth. [http://forum.doom9.org/showthread.php?t=101859 Discussion], [http://web.archive.org/web/20060103143553/http://people.pwf.cam.ac.uk/mg262/posts/Motion/motion.html Documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Motion_v10.zip plugin]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| NTSC tools&lt;br /&gt;
| Automatic [[NTSC]] to [[PAL]] conversion with 24p, 30p, 60i detection. See [http://forum.doom9.org/showthread.php?t=114054 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/NTSC_tools.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[SalFPS3]]&lt;br /&gt;
| A modded version of MotionProtectedFPS for extra protection.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SalFPS3.avs Script]&lt;br /&gt;
| Mug Funky, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SickJumps&lt;br /&gt;
| Speed ramping, aka time-remapping (smooth speed changes). Processes both video and audio. See [http://forum.doom9.org/showthread.php?t=175017 discussion].&lt;br /&gt;
| [[RGB]], [[YUV]]&lt;br /&gt;
| [https://forum.doom9.org/showthread.php?t=175017 plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]&lt;br /&gt;
| SVPflow provides fast and high quality GPU accelerated frame rate interpolation. See [http://forum.doom9.org/showthread.php?t=164554 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.svp-team.com/files/gpl/svpflow-4.0.0.128.zip Plugin]&lt;br /&gt;
| [http://www.svp-team.com/wiki/Credits SVP Team]&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr tc2cfr]&lt;br /&gt;
| This plugin that can read a timecode file and convert a given video clip in to one with a constant framerate by adding duplicate frames.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr/releases Plugin]&lt;br /&gt;
| [http://github.com/gnaggnoyil gnaggnoyil]&lt;br /&gt;
|-&lt;br /&gt;
| [http://tasvideos.org/forum/viewtopic.php?t=12763 TimecodeFPS]&lt;br /&gt;
| Converts clip from VFR to CFR.  Timing information from clip is discarded, and matroska v2 timecodes from the timecodes file are used instead.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.mediafire.com/?a51pifo438i7hdb Plugin]&lt;br /&gt;
| natt&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165045 VFRtoCFR]&lt;br /&gt;
| Converts a variable frame rate (VFR) video to a constant frame rate (CFR) video with the help of Matroska Version 2 Timecodes.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/q6zfgpo5dhh50si/VFRtoCFR20120730.zip Plugin]&lt;br /&gt;
| Aktan&lt;br /&gt;
|-&lt;br /&gt;
| [http://griffeltavla.wordpress.com/2013/01/18/convert-vfr-to-cfr-using-avisynth/ VfrToCfr]&lt;br /&gt;
| This plugin converts variable frame rate clips to constant frame rate by introducing null frames. [http://github.com/jojje/VfrToCfr-the-other-one GitHub repository]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130430033132/http://snarl.zapto.org/files/vfrtocfr-1.0.zip Plugin]&lt;br /&gt;
| joyje&lt;br /&gt;
|-&lt;br /&gt;
|[[YFRC]]&lt;br /&gt;
| Yushko Frame Rate Converter - doubles the frame rate with strong artifact detection and scene change detection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.nl/images/YFRC-01dd-10mm-2015yyyy.avsi Script]&lt;br /&gt;
| Oleg Yushko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Replacement/Range Processing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=461878#post461878 ApplyEvery]&lt;br /&gt;
|A collection of AviSynth functions that operate at regular intervals in a clip. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/stickboy/ApplyEvery.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes.html BadFrames]&lt;br /&gt;
|Replaces given bad frames by neighbors or blend (interpolation). Useful for frames with very large defects. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes20.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162266 ClipClop]&lt;br /&gt;
|Clipclop is a simple plugin to replace ranges in a source clip with the same range, from a replacement clip. Supports up to 255 replacement clips, with unlimited number of replacements into output clip.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168047 FrameRepeat]&lt;br /&gt;
|FrameRepeat() is a simple plugin to select frames to repeat. Requires AviSynth 2.6.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167971 FrameSel/FrameRep]&lt;br /&gt;
|FrameSel() is a simple plugin to select individual frames from a clip. Can select frames numbers by direct arguments to filter, or in a string, or in a command file.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164766 MatchFrames/LocateFrames]&lt;br /&gt;
|MatchFrames, intended for matched frames extraction,LocateFrames, intended to be usable by other scripts to identify matches.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1644971&amp;amp;postcount=28 RemapFrames]&lt;br /&gt;
|A collection of functions to rearrange frames between clips. Remaps the frame indices in a clip or from a second clip as specified by an input text file or by an input string. Efficient alternatives to long chains of &amp;lt;tt&amp;gt;FreezeFrame, DeleteFrame, or ApplyRange&amp;lt;/tt&amp;gt;. &lt;br /&gt;
|&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/RemapFrames-0.4.1.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162446 Prune]&lt;br /&gt;
|Prune is a simple plugin to trim() multiple source clips and splice the results into a new clip. Supports up to 256 source clips, with unlimited number of trims/splices into output clip. Prune can fade Audio (to reduce clicks between splices) for supported audio formats. The plugin will do [[AlignedSplice]] only.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Levels and Chroma ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 AutoAdjust]&lt;br /&gt;
| A high quality automatic adjustement filter. It calculates statistics of clip, averages them temporally to stabilize data and uses them to adjust luminance gain &amp;amp; color balance. AutoAdjust has a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and can also input/output 16-bits. AutoAdjust is internally multithreaded and SSE2 optimized.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 AutoContrast]&lt;br /&gt;
|Auto contrast adjustment.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels.html Autolevels]&lt;br /&gt;
| Improvement of the [[ColorYUV]] filter's autogain feature. It stretches the luma histogram to use the entire specified range, averaging the amount of &amp;quot;gain&amp;quot; over consecutive frames to better handle flashes and to avoid flickering. [http://forum.doom9.org/showthread.php?t=128585 Discuss]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels_0.6_20110109.zip Plugin]&lt;br /&gt;
| {{Author/frustum}} &amp;amp; Theodor Anschütz&lt;br /&gt;
|-&lt;br /&gt;
| AWB&lt;br /&gt;
| Automatic white balance for real world footage, similar to the known function in digital cameras. See [http://forum.doom9.org/showthread.php?t=168062 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=168062 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| [[ChanMix]]&lt;br /&gt;
| Creates a grayscale image from an RGB24 source, it has 3 parameters to specify how much of each color-channel is used.&lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [{{N2Moved}}/misc/chanmix.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
| [[ChannelMixer]]&lt;br /&gt;
| Very similar to the ChannelMixer function found in Photoshop. 9 Adjustments are possible, 3 for each color channel.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.videohelp.com/images/guides/p1767998/channelmixer_v1_0.zip Plugin]&lt;br /&gt;
| Gustaf Ullberg&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaJig]]&lt;br /&gt;
| Automatic Colorization.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1775733#post1775733]&lt;br /&gt;
| MWilson&lt;br /&gt;
|-&lt;br /&gt;
| [[ColorBalance]]&lt;br /&gt;
| Same tool that is found in Gimp &amp;amp; Cinepaint. See [http://forum.doom9.org/showthread.php?p=1180090#post1180090 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://dl.dropbox.com/s/ve66ayxfnfet9u0/ColorBalance_0.26.zip Plugin]&lt;br /&gt;
| Gavino &amp;amp; mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
|ColorLooks&lt;br /&gt;
| This plugin is based on Trev's VDub filter [http://www.trevlac.us/FilterDocs/ Colorlooks] and Donald Graft's [http://rationalqm.us/colorize.html Colorize] (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize. See [http://forum.doom9.org/showthread.php?t=97706 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/ColorLooks_v13.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ColorYUV2]&lt;br /&gt;
|YUV color adjustment plugin with a graffer. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/875czvfnigu72ds/ColorYUV2_25_dll_20120529.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=96308 ColourLike]&lt;br /&gt;
| Makes a clip look like a 'reference' clip by adjusting each colour mask. Updated [http://forum.doom9.org/showpost.php?p=1582935&amp;amp;postcount=38 documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourlike_5F25_dll_20050825.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://expsat.sourceforge.net/ ExpLabo]&lt;br /&gt;
| ExpSat apply a non-linear transformation of saturation, Colorize change the image color dominance in a flexible manner, HLSnoise adds a noise to the image separately to the HLS dimensions. See [http://forum.doom9.org/showthread.php?t=97052 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/expsat/ Plugin]&lt;br /&gt;
| brabbudu&lt;br /&gt;
|-&lt;br /&gt;
|[http://mpierce.pie2k.com/pages/211.php Exposure]&lt;br /&gt;
|Exposure function for AviSynth.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://mpierce.pie2k.com/downloads/exposure.zip Plugin]&lt;br /&gt;
|Matt Pierce&lt;br /&gt;
|-&lt;br /&gt;
| [[FlimsYlevels]]&lt;br /&gt;
| Luma adjustment function to give a more &amp;quot;film-ish&amp;quot; look. (Based on {{Author/Didée}}'s [[Ylevels]]).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| FlimsyFeet &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173695 GamMac]&lt;br /&gt;
|Useful to correct color cast on old 8mm films.&lt;br /&gt;
|[[RGB32]], [[RGB24]]&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=605890#post605890 GiCocu]&lt;br /&gt;
| Use GIMP/Photoshop curve files, see [http://avisynth.org.ru/docs/english/externalfilters/gicocu.htm documentation.] &lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/gicocu_5F25_dll_20050620.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Gray_Balance]&lt;br /&gt;
|A gray balance script, which is based on Black/White/Gray balance picker.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20130812061301/http://strony.aster.pl/paviko/hdragc.htm HDRAGC]&lt;br /&gt;
| High Dynamic Range Automatic Gain Control - Increase dynamic range of video clips (enhance shadows). It's &amp;quot;simply&amp;quot; gaining (brightening) dark areas of image without causing blow of highlights. Amount of gain is calculated automatically, but can be influenced by parameters. See [http://forum.doom9.org/showthread.php?t=93571 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20120419193005/http://strony.aster.pl/paviko/Hdragc-1.8.7.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161986 HighlightLimiter]&lt;br /&gt;
| &amp;quot;Darkening highlight&amp;quot;. Works well on over exposed clips. It can also be combined with ContrastMask to create HDR effect&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1522100#post1522100 Script]&lt;br /&gt;
| javlak&lt;br /&gt;
|-&lt;br /&gt;
| [[HistogramAdjust]]&lt;br /&gt;
| 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.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HistogramAdjust/HistogramAdjust.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Histograms in RGB &amp;amp; CMY]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;levels&amp;quot;) but for RGB and CMY instead of YUV. It also includes a RGB parade color scope.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/Histograms_in_RGB_%26_CMY.avsi Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
|HSVAdjust&lt;br /&gt;
|HSVAdjust/HSLAdjust/HSIAdjust let's you rotate hues, control the strength of color (saturation), or modify the brightness of a clip. The type of brightness depends on the filter. It's value for HSVAdjust, lightness for HSLAdjust or intensity for HSIAdjust. See [http://forum.doom9.org/showthread.php?t=162022 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/HSVAdjust_v01.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Hue&lt;br /&gt;
|This plugin is a port of Donald Graft's VirtualDub [http://rationalqm.us/hue.html Hue] filter. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=87439&amp;amp;pagenumber=2 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Hue_v10.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|MatchHistogram&lt;br /&gt;
| Tries to modify the histogram of the input clip to match that of a reference clip. Should be used for analysis only, not for production. See [http://forum.doom9.org/showthread.php?t=153196 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://latoninf.free.fr/d9/MatchHistogram.7z Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[OutRange]]&lt;br /&gt;
| A simple function to scan the whole video and output a log file, in which out-of-tv-range frames are logged.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/OutRange.avsi Script]&lt;br /&gt;
| 06_taro&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170642 RGBAdapt]&lt;br /&gt;
|Another RGB color correction plugin, it also also includes a graffer.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/bo4afg77u4dfu8k/RGBAdapt_dll_v0.3-20150617.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier]&lt;br /&gt;
|An AviSynth forensic plugin to amplify color shifts.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/432rxa9ed1lr2in/RgbAmplifier_25_dll_v1.03_20140607.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SGradation]]&lt;br /&gt;
| SGradation is much like a gamma function, but '2nd order'.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| Script&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ShowChannels]&lt;br /&gt;
|Simple plugin whose only function is to display the average Y,U and V values for a YUV frame or R,G, and B for an RGB frame. Also shows accumulated average for all frames visited so far.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/2dgk1y1cohql64r/ShowChannels_25%2626_v0-8_dll_20150330.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowOverRange]]&lt;br /&gt;
| Shows illegal &amp;quot;TV range&amp;quot; by painting pixels blue for anything less than 16 and red for anything greater than 235.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/download/file.php?id=164 Plugin]&lt;br /&gt;
| {{Author/SAPikachu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 SmoothAdjust]&lt;br /&gt;
| SmoothAdjust is a set of 5 plugins to make YUV adjustements. These 5 plugins have a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and artifacts. SmoothAdjust is multithreaded (up to 16 threads) and SSE2 optimized. SmoothAdjust is [[SmoothLevels|SmoothLevels']] successor. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Tint]]&lt;br /&gt;
| Tints the image toward a specified colour.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133 &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=74334 TweakColor]&lt;br /&gt;
| Target specific hue and saturation ranges for hue and saturation adjustments.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/tweakcolor_5F25_dll_20040412.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VideoScope]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;classic&amp;quot;) but with additional features, it shows waveform monitors and a vectorscope. &lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/VScope12.zip Plugin]&lt;br /&gt;
| {{Author/Randy French}}&lt;br /&gt;
|-&lt;br /&gt;
| [[WhiteBalance]]&lt;br /&gt;
| Correct the white balance of a clip with a large degree of control and accuracy over other methods of correcting white balance. See [http://forum.doom9.org/showthread.php?t=106196 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.64k.it/andres/data/avisynth/WhiteBalance100.zip Plugin]&lt;br /&gt;
| SomeJoe&lt;br /&gt;
|-&lt;br /&gt;
| [[Ylevels]]&lt;br /&gt;
| A simple replacement for Avisynth's internal [[Levels]] command, with a few neat differences.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Line Darkening ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FastLineDarkenMOD&lt;br /&gt;
| Line darkening script. See original [http://forum.doom9.org/showthread.php?t=82125 discussion.] Updated [http://forum.doom9.org/showthread.php?p=1060081#post1060081 script.] Additional [http://forum.doom9.org/showthread.php?p=1023638#post1023638 information.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1060081#post1060081 Script]&lt;br /&gt;
| Vectrangle / {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Hysteria]]&lt;br /&gt;
|Hysteria, a line darkening script by Scintilla.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/fvDdiV6m Script]&lt;br /&gt;
|Scintilla&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 LineDarkenToon]&lt;br /&gt;
| LineDarkenToon use the idea of mf_toon (0.5) for linedarken. I wanted a really small fast code like FastLineDarken but with similar output like mf_toon and this is the result.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mfToon]]&lt;br /&gt;
| mfToon darkens cartoon edges. In default operation, it performs line darkening, Xsharpening, and warp sharpening. &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=53364 discussion.] Additional information [http://forum.doom9.org/showthread.php?t=125128 here] and [http://forum.doom9.org/showthread.php?t=52066 here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfToon-v0.52.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[proToon]]&lt;br /&gt;
|Line darkening script, used to be known as vmToon and before that mfToon.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/Aw9En26L Script]&lt;br /&gt;
|TheProfileth&lt;br /&gt;
|-&lt;br /&gt;
| [[SuperToon]]&lt;br /&gt;
| An attempt to optimize/speed up the previous versions of mfToon, vmToon, etc. See [http://forum.doom9.org/showthread.php?t=163987 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=163987 Script]&lt;br /&gt;
| Hadien&lt;br /&gt;
|-&lt;br /&gt;
| [[Toon]]&lt;br /&gt;
| Simple and fast line darkener. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/guk5plphkthdy2f/Toon-v1.1.7z Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ToonLite]]&lt;br /&gt;
| It's the same as [[Toon]], just without the warpsharp processing..&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090218093135/http://mf.creations.nl/avs/filters/Toon-v1.0-lite.dll Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[vmToon]]&lt;br /&gt;
| The successor to mfToon. Darkens lines, thins lines, and does supersampled sharpening all in one, but slow. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Vmtoon-v0.74.avsi Script]&lt;br /&gt;
| Vectrangle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resizers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AreaResize]]&lt;br /&gt;
| An area-average resizer plugin; only use to downscale.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.mediafire.com/download.php?kn56wh7r81vk2rx Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Debicubic]]&lt;br /&gt;
| This filter is designed to reverse the effects of bicubic upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140622040033/http://rgb.chromashift.org/debicubic%20r2.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[Debilinear]]&lt;br /&gt;
| This filter is designed to reverse the effects of bilinear upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140214021604/http://rgb.chromashift.org/debilinear%20r6.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1738351#post1738351 edi_rpow2]&lt;br /&gt;
|An improved rpow2 function for nnedi3, nnedi3ocl, eedi3, and eedi2. Requires [http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi ResizeX]&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/view/pcmkxaauku375xd/edi_rpow2_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/FCBI FCBI]&lt;br /&gt;
|Fast Curvature Based Interpolation. More info [http://blog.awm.jp/tags/fcbi/ here] (Japanese).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/chikuzen/FCBI/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[JincResize]]&lt;br /&gt;
| Jinc (EWA Lanczos) Resampler Plugin for Avisynth/Avisynth+. See [http://forum.doom9.org/showthread.php?t=169813 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/AviSynth/jinc-resize/releases Plugin]&lt;br /&gt;
| innocenat&lt;br /&gt;
|-&lt;br /&gt;
| Lanczosplusv3&lt;br /&gt;
| Very slow, but high quality resizer. See [http://forum.doom9.org/showthread.php?t=136690]&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3/nnedi3_rpow2|nnedi3_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3_rpow2 is a function included in [[nnedi3]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3 Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3ocl/nnedi3x_rpow2|nnedi3x_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3x_rpow2 is a script function included in [[nnedi3ocl]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://avisynth.nl/index.php/nnedi3ocl Script and Plugin]&lt;br /&gt;
|SeT&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
| [[PointSize]]&lt;br /&gt;
| A set of [http://en.wikipedia.org/wiki/Image_scaling pixel art resizers]; Includes Scale2x/3x, LQ2x/3x/4x, HQ2x/3x/4x, xBRZ (2x to 6x). See [http://forum.doom9.org/showthread.php?t=154674 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.dropbox.com/s/2uvflijgrngvi7x/PointSize_0.2.zip?dl=1 Plugin]&lt;br /&gt;
| `Orum&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.int64.org/viewvc/int64/resamplehq/doc/index.html ResampleHQ] &lt;br /&gt;
| ResampleHQ provides gamma-aware resizing and colorspace conversion.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/int64/files/ResampleHQ/ResampleHQ-v1.zip/download Plugin]&lt;br /&gt;
| Cory Nelson&lt;br /&gt;
|-&lt;br /&gt;
|[[Resize8]]&lt;br /&gt;
|&amp;lt;tt&amp;gt;Resize8()&amp;lt;/tt&amp;gt; works just like AviSynth's internal resizers but with some extra features. It had correct chroma placement, optional adaptive anti-ringing algorithm and few other features.  &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://web.archive.org/web/20150911013350/http://www.nmm-hd.org/upload/get~8y1IjaaqvoI/Resize8_v1.2.avsi Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
|ResizeX&lt;br /&gt;
|ResizeX is a wrapper function for AviSynth's internal resizers and Dither_resize16 that corrects for the chroma shift caused by the internal resizers when they're used on horizontally subsampled chroma with MPEG2 placement.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135735 Seamer]&lt;br /&gt;
| Seam Carving/Liquid Rescale for Content-Aware Image Resizing. See [http://en.wikipedia.org/wiki/Seam_carving wikipedia:Seam Carving]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/Seamer/Seamer.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|SincResize&lt;br /&gt;
|SincResize is an experimental plugin that uses DCT to perform resizing. See [http://forum.doom9.org/showthread.php?p=953002#post953002 discussion], read on for more information.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://cafxx.strayorange.com/files/SincResize4.7z Plugin]&lt;br /&gt;
|[http://cafxx.strayorange.com/ CAFxX]&lt;br /&gt;
|-&lt;br /&gt;
| [[SimpleResize]]&lt;br /&gt;
| Resizing plugin with 4 filters: SimpleResize, WarpResize, InterlacedResize and InterlacedWarpedResize.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/SimpleResize.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147117 SplineResize]&lt;br /&gt;
| SplineResize contains two kinds of spline based resizers: The first ones are the (cubic) spline based resizers from Panorama tools: Spline100Resize (using 10 sample points) and Spline144Resize (using 12 sample points) are examples. Other ones are available in AviSynth itself. The second ones are natural cubic splines that use the kernel itself as a spline.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/SplineResize_v02.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth waifu2x]&lt;br /&gt;
|Single-Image Super-Resolution for anime/fan-art using Deep Convolutional Neural Networks.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth/releases Plugin]&lt;br /&gt;
|[http://github.com/sunnyone sunnyone]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1111789#post1111789 ZoomBox]&lt;br /&gt;
| Replacement for ResizeKAR. Resizes clip Keeping the Aspect Ratio. Can set Source/Target PAR/DAR, option to zoom in/out in order to hide/show black borders.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sharpeners ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aSharp]] &lt;br /&gt;
| Simple unsharp mask filter with optional adaptive sharpening. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38436 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/asharp_5F25_dll_20030118.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=122443 AVSShock]&lt;br /&gt;
|This Shock Filter sharpens edges of images by applying erosions or dilations depending on the sign of the Laplacian (or the so called Haralick-Canny edge detector). &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.gleitz.info/showthread.php?33105-Neues-Plugin-zum-Video-sch%E4rfen-Patent-Problem!&amp;amp;p=321585#post321585 Plugin]&lt;br /&gt;
|AMSS0815&lt;br /&gt;
|-&lt;br /&gt;
| [[aWarpSharp2]]&lt;br /&gt;
| A modern rewrite of aWarpSharp with several bugfixes and optimizations. See [http://forum.doom9.org/showthread.php?t=147285 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/pinterf/aWarpSharp/releases Plugin]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
| [[blah]]&lt;br /&gt;
| Sharpening. See [http://forum.doom9.org/showthread.php?t=155030 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1406843 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[FineSharp]]&lt;br /&gt;
| Small and relatively fast realtime-sharpening function, designed for 1080p, or after scaling 720p -&amp;gt; 1080p during playback (to make 720p look more being like 1080p). See [http://forum.doom9.org/showthread.php?p=1569035#post1569035 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1569035#post1569035 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LimitedSharpen]]&lt;br /&gt;
| LimitedSharpen can be used like a traditional sharpener, but producing much less artifacts. It can be used as a replacement for the common &amp;quot;resize(x4)-XSharpen-resize(x1)&amp;quot; combo, with very similar results (perhaps even better) - but at least 2 times faster, since it requires much less oversampling.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/LimitedSharpenFaster.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LSFmod]]&lt;br /&gt;
| A LimitedSharpenFaster mod with a lot of new features and optimizations. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=142706 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 MCLS_16]&lt;br /&gt;
|Motion Compensate Limited Sharpen 16bit&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 Script]&lt;br /&gt;
|Motenai Yoda&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 MedSharp]&lt;br /&gt;
|Soft thresholded median sharpening function. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[MSharpen]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt; is a very simple masked sharpening plugin for AviSynth. This version is a reimplementation of neuron2's [http://rationalqm.us/msharpen/msharpen.html old &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt;] plugin. See [http://forum.doom9.org/showthread.php?t=169832 discussion].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MSharpen Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NonlinUSM]]&lt;br /&gt;
| Non-linear Unsharp Masking.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1555234&amp;amp;postcount=46 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[pSharpen]]&lt;br /&gt;
| Performs two-point sharpening to avoid overshoot. See [http://forum.doom9.org/showthread.php?t=172422 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172422#post1732663 Script]&lt;br /&gt;
| ilpippo80, colours&lt;br /&gt;
|-&lt;br /&gt;
|[[ReCon]]&lt;br /&gt;
|'''ReCon'''volution - makes things sharp by mixing pixels together. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1409582#post1409582 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[SeeSaw]]&lt;br /&gt;
| SeeSaw uses a balance of denoising and sharpening to enhance a clip. The aim is to enhance weak detail without over-sharpening or creating jaggies on strong detail, and produce a result that is temporally stable without detail shimmering.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SeeSaw.avs Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpenComplex2&lt;br /&gt;
| Port of MPC-HC's Sharpen Complex 2 to AviSynth. Despite the name, this script is very simple, see [http://forum.doom9.org/showthread.php?t=158385 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[SharpenComplex2_source|Script]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SSXSharpen&lt;br /&gt;
| Included in SharpTools. Sharpens the picture using [[supersampling]] techniques.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20100120201434/http://mf.creations.nl/avs/functions/SharpTools-v0.3.avs Script]&lt;br /&gt;
| {{Author/mf}}, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SSSharp]]&lt;br /&gt;
| Also known as Super Slow Sharpen - a very slow, but high quality sharpener. See [http://forum.doom9.org/showthread.php?t=132330 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1071731 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[TUnsharp]]&lt;br /&gt;
| TUnsharp is a basic sharpening filter that uses a couple different variations of unsharp masking and allows for controlled sharpening based on edge magnitude and min/max neighborhood value clipping. See [http://forum.doom9.org/showthread.php?t=84344 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162107/http://bengal.missouri.edu/~kes25c/TUnsharpv093.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnFilter]]&lt;br /&gt;
| This filter softens/sharpens a clip. It implements horizontal and vertical filters designed to (slightly) reverse previous efforts at softening or edge enhancement that are common (but ugly) in DVD mastering. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=28197&amp;amp;pagenumber=3 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/unfilter_5F25_dll_20030116.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnsharpHQ]]&lt;br /&gt;
| A strong and fast unsharp mask with some new features. See [http://forum.doom9.org/showthread.php?t=159637 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160302123821/https://filetea.me/t1sl65PsDLsT0mXMZL0s14xEg/dl Plugin]&lt;br /&gt;
| list&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[WarpSharp]]&lt;br /&gt;
| WarpSharp contains these sharpeners: &amp;lt;tt&amp;gt;UnsharpMask, WarpSharp, Xsharpen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/g6z1tohioqnw5b9/warpsharp_20080325.zip?dl=1 Plugin]&lt;br /&gt;
|???, {{Author/seraphy}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation/Shear/Skew/Perspective ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeBarrel]]&lt;br /&gt;
| Remove barrel and pincushion distortion, where straight lines appear curved.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/DeBarrel/DeBarrel.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=152860 Defish]&lt;br /&gt;
|Barrel and pincushion distortion correction filter. [http://forum.doom9.org/showthread.php?t=127432 Old discussion]&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/defish.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Defish Different Projections]&lt;br /&gt;
|Defish with different map projections, like Lambert Cylindrical Equal Area, Mercator and Miller projections.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [[FTurn]]&lt;br /&gt;
| Fast implementation of [[TurnLeft]](), [[TurnRight]]() and [[Turn180]]() AviSynth functions. See [http://forum.doom9.org/showthread.php?t=168315 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]],[[YV24]]&lt;br /&gt;
| [http://github.com/tp7/fturn/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=165978 Quad]&lt;br /&gt;
|An Avisynth plugin to perform quadrilateral transformations.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/quad.zip Plugin] -- [http://forum.doom9.org/showpost.php?p=1602709&amp;amp;postcount=22 no SSE]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.html Reform]&lt;br /&gt;
| Skewed images are corrected or vice versa, useful if video is recorded with slightly incorrectly located camera. Sometimes refered to as perspective correction.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Reformer]]&lt;br /&gt;
| Perspective correction and warping.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reformer/Reformer.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate.html Rotate]&lt;br /&gt;
| Rotate or shear on any given angle. See [http://forum.doom9.org/showthread.php?t=131307 discussion.]&lt;br /&gt;
| [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate134.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.html Spinner]&lt;br /&gt;
| Spinner plugin rotates a frame or selected part of it about the given axis coordinates in floating point precision.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166087 xyremap]&lt;br /&gt;
|xyremap is a filter for remapping pixels using formulae written in [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation].&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/avisynth/download/xyremap0.3.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=49429 Zoom]&lt;br /&gt;
| Zoom, Pan &amp;amp; Rotate Clip. Adds alpha layer to clip.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/zoom_5F25_dll_20050122.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Subtitling ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AssRender&lt;br /&gt;
| Libass-based subtitle renderer. See [http://forum.doom9.org/showthread.php?t=148926 discussion]. [http://github.com/pingplug/assrender Updated version]; only source code available. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV24]], [[YV12]], [[Y8]]&lt;br /&gt;
| [http://srsfckn.biz/assrender/ C Plugin] &amp;lt;!--[http://encodan.srsfckn.biz/assrender/ C Plugin] - dead link ---&amp;gt;&lt;br /&gt;
| lachs0r, TheFluff&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource sub3d]&lt;br /&gt;
|Plugin for rendering subtitles on 3D video with correct depth.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/tree/master/Sub3D Sources] [https://github.com/slavanap/ssifSource/releases Binaries][http://forum.doom9.org/showthread.php?t=173143 Discussion] &lt;br /&gt;
|slavanap&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023938/http://mvideo.ddpp.net/eng/subtitleex_plugin.htm SubtitleEx]&lt;br /&gt;
| Similar to the original [[Subtitle]] function but can do more: apply text to range; effects - bold, underline, italic, center, fading, motion, blur, emboss, etc...; alpha channel. [http://hosiken.jp/dev/win/subtitleex.html Plugin update (Japanese)]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/subtitleex_5F25_dll_20040819.zip Plugin] / [http://avisynth.nl/users/warpenterprises/files/dvutilities_20050717.zip .chm (help)]&lt;br /&gt;
|[http://web.archive.org/web/20070821222318/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119390 SUPtext]&lt;br /&gt;
|Overlays SUP-subtitles on a video clip.&lt;br /&gt;
|[[RGB32]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7846&amp;amp;d=1196858433 Plugin]&lt;br /&gt;
|emmel&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin SupTitle]&lt;br /&gt;
| Blu-ray PGS .SUP Subtitle Renderer Plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=148167 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin Plugin]&lt;br /&gt;
| {{Author/ZachSaw}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/vsfilter.htm VSFilter]&lt;br /&gt;
| Supported Subtitle Formats: VOBsub (.sub/.idx), SubStation Alpha/Advanced SubStation Alpha (.ssa/.ass), SubRip (.srt), MicroDVD (.sub), SAMI (.smi), PowerDivX (.psb), Universal Subtitle Format (.usf), Structured Subtitle Format (.ssf). See [http://en.wikipedia.org/wiki/VSFilter]&lt;br /&gt;
| &lt;br /&gt;
| [http://sourceforge.net/project/showfiles.php?group_id=205650&amp;amp;package_id=246121&amp;amp;release_id=541232 Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ VSFilterMod]&lt;br /&gt;
| VSFilterMod is modification of original VSFilter subtitle renderer by Gabest. This mod brings up new features and some minor bugfixes. See [http://forum.doom9.org/showthread.php?t=152855 discussion] and [http://code.google.com/archive/p/vsfiltermod/ Google Code Archive].&lt;br /&gt;
|&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 xy-VSFilter]&lt;br /&gt;
|High performance VSFilter compatible subtitle filters. [http://web.archive.org/web/20151213235432/http://code.google.com/p/xy-vsfilter/ Google Code repository]&lt;br /&gt;
|&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 Plugin]&lt;br /&gt;
|cyberbeing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transitions ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| DissolveAGG&lt;br /&gt;
| Wipe Transition with a soft edge. See [http://forum.doom9.org/showthread.php?t=118016 discussion]. &lt;br /&gt;
'''Note:''' There exist multiple variants of the script as the result of the interaction between authors in that discussion.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=900674#post900674 Script (v1)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152440#post1152440 Script (v2)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152632#post1152632 Script (v3)] &lt;br /&gt;
| {{Author/zemog}}, {{Author/mikeytown2}}, {{Author/Gavino}} and others&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=62277 JDL_MaskTransition]&lt;br /&gt;
| Combines two clips using the specified mask clip.  The audio tracks are blended during the transition. About any transition can be made with this function.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/stickboy/jdl-effects.avsi Script]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TransAll]]&lt;br /&gt;
| Around 150 distinct transitions can be created with this plugin. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/TransAll/TransAll.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (Albert Gasset)&lt;br /&gt;
| Various Wipe and Random Block modes. Has 19 built in patterns or it can use an external file.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/Albert Gasset}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (shubin)&lt;br /&gt;
| Contains 2 modes: circle and line. In circle mode the area has radius R and center xCenter,yCenter. In line mode the line passes through xCenter,yCenter with slope R.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/shubin}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Debugging/Diagnostic Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AVInfo&lt;br /&gt;
| AVIInfo gives information about the streams in the clip without loading any frames. filename can be a WAV file or an AVI file with several audio streams (it won't open AVI files with embedded subtitles though). It will return the info as a string. &lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avinfo_5F25_dll_20050417.zip Plugin]&lt;br /&gt;
| trevlac, wilbert &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=174797 AVSMeter]&lt;br /&gt;
| AVSMeter is a CLI (command line interface) tool which measures the speed/efficiency of Avisynth scripts and checks if Avisynth and its plugin sub-system are set up and working correctly. Documentation for usage and features is included in the distribution package.&lt;br /&gt;
|&lt;br /&gt;
| Command line executable&lt;br /&gt;
| Groucho2004&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=116949 ColorDiff]&lt;br /&gt;
|ColorDiff makes a greyscale (Y8) frame according to the input frame's pixels' &amp;quot;distance&amp;quot; from a specified color. The diff is calculated by simply getting the diff of the individual color components from the desired color's components and summing them up. Also, weights can be set for the individual diffs. Documentation is at the beginning of the source file. This is a [http://avisynth.nl/index.php/Plugins#LoadCPlugin C Plugin!]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]] &lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7811&amp;amp;d=1196110203 C Plugin]&lt;br /&gt;
|Ignus2&lt;br /&gt;
|-&lt;br /&gt;
| [[DumpPixelValues]]&lt;br /&gt;
| Samples the colors from selected pixels for every frame in a video source and outputs the data to a text or binary file. See [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.zip Plugin]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/index.html McPoodle]&lt;br /&gt;
|-&lt;br /&gt;
|[[GrainEvaluate]]&lt;br /&gt;
| A script to analyze and log the strength of grain for each frame. See [http://forum.doom9.org/showthread.php?t=167455 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://www.nmm-hd.org/upload/get~-eJfUjEXJY4/GrainEvaluate.avsi Script]&lt;br /&gt;
|{{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1462931&amp;amp;postcount=81 Glitch Analyzer]&lt;br /&gt;
| Glitch Analyzer generates a diagnostic video, then analyzes the recorded version of it, to detect swapped, dropped, or repeated fields.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1467907#post1467907 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid]]&lt;br /&gt;
| Overlays a grid, useful for pixel counting.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Grid/Grid.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20160610124531/http://code.google.com/p/avisynthrestoration/wiki/Measure Measure]&lt;br /&gt;
| Measures luminence of greyscale bars and prints results on-screen.  Can be used to set brightness/contrast in capture settings accurately.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/lcferrum/segment-display-ocr SegmentDisplayOCR]&lt;br /&gt;
|SegmentDisplayOCR is a seven-segment display recognition filter for AviSynth. It has built in logging functionality (it will log frame recognition results) and also can be used in AviSynth conditional filters. The main purpose of this filter is to process readings of various digital instruments (e.g. digital multimeters) captured on video. So if your favourite instrument lacks interface for connecting it to PC you can capture it's readings on cam and convert them to computer readable format with SegmentDisplayOCR filter.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://sourceforge.net/projects/segmentdisplayocr/files/SegmentDisplayOCR/ Plugin]&lt;br /&gt;
|[http://github.com/lcferrum lcferrum]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=61128 SSIM]&lt;br /&gt;
|A filter that compute an objective video quality metric between two videos. Based on SSIM work from [http://web.archive.org/web/20060515090025/http://www.cns.nyu.edu/~zwang/files/research/ssim/index.html Zhou Wang]. It has been created with the help of Mfa.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070129114000/http://perso.orange.fr/reservoir/dl/SSIM-0.24.rar Plugin] / [http://web.archive.org/web/20070129115059/http://perso.orange.fr/reservoir/dl/SSIMSrc-0.24.rar source]&lt;br /&gt;
|[http://web.archive.org/web/20060507012947/http://perso.wanadoo.fr/reservoir/ Lefungus]&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowPixelValues]]&lt;br /&gt;
| This filter displays the actual Y U and V (or R G and B) values from pixels within a frame. See [http://forum.doom9.org/showthread.php?t=64192 discussion] and [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/showpixelvalues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028122947/http://geocities.com/siwalters_uk/showpixelvalues1.4c.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/Testpatterns Testpatterns]&lt;br /&gt;
| This filter creates a sinewave frequency sweep directly in YV12, useful to measuring video response.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/tmonitor.htm TMonitor]&lt;br /&gt;
| TMonitor is a filter very similar to AVSMon. It enables monitoring of an Avisynth clip via previewing the video, viewing clip information (such as video width, height, colorspace, number of frames, audio samples, sample rate, number of audio channels, and more), and adjusting the audio delay. It also supports multiple instances per script, allowing viewing of differences between different parts of a processing chain.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TMonitorv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=53238 ViewFields/UnViewFields]&lt;br /&gt;
| [http://web.archive.org/web/20140709004333/http://www.geocities.com/siwalters_uk/unviewfields.html UnViewFields], [http://web.archive.org/web/20140708181324/http://www.geocities.com/siwalters_uk/viewfields.html ViewFields]&lt;br /&gt;
| &lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Comptest]]&lt;br /&gt;
| The script Compressibility test can be used for a compressibility test on a clip.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[SeeTheDifference]]&lt;br /&gt;
| SeeTheDifference just makes the difference visible between an encoded and an original videoclip. So you can see what you really &amp;quot;lose&amp;quot; when encoding a video.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Edge Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpsharp2/aSobel|aSobel]]&lt;br /&gt;
| Sobel edge dectecion filter included in [[aWarpSharp2]]. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [[aWarpSharp2| Plugin]]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MaskTools2/Mt edge| mt_edge]]&lt;br /&gt;
| Edge detection filter included in [[MaskTools2]].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[MaskTools2|Plugin]]&lt;br /&gt;
| {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[tcanny]]&lt;br /&gt;
| Contains a canny edge detection filter and distance transform filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140804144614/http://bengal.missouri.edu/~kes25c/tcanny.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TCannyMod]]&lt;br /&gt;
| Canny edge detection filter for Avisynth 2.6. Reimplementation of tcanny. See [http://forum.doom9.org/showthread.php?t=168449  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TCannyMod/releases/ Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEdgeMask]]&lt;br /&gt;
| TEdgeMask creates an edge mask based off gradient vector magnitude.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TEdgeMaskv09.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEMmod]]&lt;br /&gt;
| TEdgeMask modified for Avisynth 2.6. It creates an edge mask using gradient vector magnitude. See [http://forum.doom9.org/showthread.php?t=168390  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TEMmod/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Export Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can write directly to media files. &lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaWrite uses the ImageMagick libraries to write images. Many formats are supported including animations and multipage files.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172837 TWriteAVI]&lt;br /&gt;
| Serve AVI file to program requesting it as well as write an avi file. Useful for speeding up 2 pass encodes at the cost of hard drive space. [http://forum.doom9.org/showthread.php?t=172761 Update for AviSynth 2.6]. [http://forum.doom9.org/showthread.php?p=1750415#post1750415 Usage]. [http://forum.doom9.org/showthread.php?p=1073371#post1073371 Old mod by squid_80].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/84csi0174ettu5l/TWriteAVI_dll_v2.03-20160603.zip Plugin]&amp;lt;!--[http://www.mediafire.com/download/c5iboqi43ijprap/TWriteAVI_dll_v2.02-20160106.zip older version]--&amp;gt;&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawWriter&amp;quot;)&lt;br /&gt;
| Sashimi writes (and reads) almost any regular raw uncompressed data format you can define.  You'll find a fuller description under [[#Source_Filters|Source Filters]].&lt;br /&gt;
| [[RGB]], [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[SoundOut]]&lt;br /&gt;
| SoundOut is a GUI driven sound file output module for AviSynth (it exports audio to several compressors).&lt;br /&gt;
| All audio.&lt;br /&gt;
| [[SoundOut|Plugin]]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Import Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are used to import filters written for other audio and video packages.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?threadid=92174 FreeFrame]&lt;br /&gt;
| Allows [http://freeframe.sourceforge.net/ freeframe] filters (mostly effects) to be used directly in AviSynth.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/freeframe_5F25_dll_20050426.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meta-Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to be used with other filters, to restrict or augment their effect.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 AVSTP]&lt;br /&gt;
|A library for multithreaded plug-in development&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 Plugin]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 MP_Pipeline]&lt;br /&gt;
|Run parts of an AviSynth script in external processes.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 Plugin]&lt;br /&gt;
|[http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| [[MT]]&lt;br /&gt;
| MT is a filter that enables other filters to run multithreaded. This should hopefully speed up processing on hyperthreaded/multicore processors or multiprocessor systems. See [http://forum.doom9.org/showthread.php?t=94996]&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mt_20070301.zip Plugin]&lt;br /&gt;
| tsp&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]] &lt;br /&gt;
| MVTools provides filters 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. See [http://forum.doom9.org/showthread.php?t=131033]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 SoraThread]&lt;br /&gt;
|Sora's avs multi-process/multi-thread plugin package&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 Plugin]&lt;br /&gt;
|leiming2006&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154886 ThreadRequest]&lt;br /&gt;
|Yet another plugin for multithread processing. [http://web.archive.org/web/20130124045626/http://lantis.homeunix.org/avisynth.shtml Archive homepage (Japanese)]&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.mediafire.com/download/4xux7d7l1u3toy8/ThreadRequest+102a.rar Plugin]&lt;br /&gt;
|lantis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipurpose Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174433 amDCT]&lt;br /&gt;
|amDCT() is an adaptive video filter providing deblocking, sharpening, local range expansion, smoothing, and bright noise removal in a single filter that can be used on video of any level of quality. These four operations work synergistically to drastically reduce block artifacts while maintaining detail and increasing local contrast.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://sites.google.com/site/amdctfilter/ Plugin]&lt;br /&gt;
|jconklin&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=166061 HybridFuPP]&lt;br /&gt;
| An adaptive processor, allowing picture cleaning and compressibility gain. Original [http://forum.doom9.org/showthread.php?t=146632 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/6g09aazs4z7m11a/HybridFuPP_0.992b.zip Script]&lt;br /&gt;
| Fupp&lt;br /&gt;
|-&lt;br /&gt;
| [[MaskTools2]]&lt;br /&gt;
| This plugin provides tools for the creation, enhancement and manipulation of masks for each [[YUV]] component.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MaskTools2#Download Plugin]&lt;br /&gt;
| {{Author/Manao}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]]&lt;br /&gt;
| This plugin provides a collection of functions for motion estimation and compensation.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/mvtools/mvtools2.html Plugin]&lt;br /&gt;
| Various&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scene Change Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 DBSC]&lt;br /&gt;
|A scene change detection tool set/kit/box (work-in-progress).&lt;br /&gt;
|All&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 EDLmaker]&lt;br /&gt;
| Simple scenechange detector that writes to EDL file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools2/MSCDetection|MSCDetection]]&lt;br /&gt;
| Part of MVTools2; MSCDetection creates a scene detection mask clip from motion vectors data. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| SCDetect&lt;br /&gt;
| Detect scene change and output scene change frames to a file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140614152525/http://www.nmm-hd.org/upload/get~TfPm2QO4jbk/SCDetect_v0.3.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/sclavc/readme.txt SceneChangeLavc]&lt;br /&gt;
| SClavc is an AviSynth plugin intended to allow access to libavcodec's scene-change metrics. See [http://akuvian.org/src/avisynth/sclavc/ homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/scenechangelavc_5F25_dll_20041201.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvid]]&lt;br /&gt;
| SCXvid produces first pass Xvid logs from AviSynth at the equivalent of the default VFW preset. These logs are primarily intended to get scene change information from but may have other uses.&lt;br /&gt;
|  [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/402hlckyn669p9n/SCXvid-1.1.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvidMask]]&lt;br /&gt;
| A tiny AviSynth plugin that reads an SCXvid log and creates a binary mask based on it.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SCXvidMask/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Support filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to augment the creation of custom script-based filters.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApplyInterlacedFilter]]&lt;br /&gt;
| ApplyInterlacedFilter safely processes interlaced video with spatial and temporal filters.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162874 ArcFuns]&lt;br /&gt;
|This plugin expands the available numerical functions with missing inverse trig functions.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=12494&amp;amp;d=1319627190 Plugin]&lt;br /&gt;
|{{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/AvsMotion#avsmotion AvsMotion]&lt;br /&gt;
|AviSynth plugin for animating clips with AAE motion tracking data.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/AvsMotion/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=46506 Call]&lt;br /&gt;
| Call an external program from the script.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/call_5F25_dll_20030310.zip Plugin]&lt;br /&gt;
| Nic, DDogg&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166063 CallCmd]&lt;br /&gt;
|Plugin to execute command on selectable frames or at startup or closedown. Based on [http://forum.doom9.org/showthread.php?t=46506 Call by Nic].&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/i6m7wffyi3dftxx/CallCmd_25_dll_v1.02_20130101.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173538 ClipBoard]&lt;br /&gt;
|Get text from Clipboard.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/qct5uj786ub28to/ClipBoard_25_dll_v0.01_20160530.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| FrameCache&lt;br /&gt;
| Frame cache plugin. It helps greatly increase performance, especially in combination with another plugins, like SmoothDeinterlace. Usage FrameCache( [number of frames to remember], (path to log file) ). &lt;br /&gt;
| any&lt;br /&gt;
| johny5 dot coder via gmail&lt;br /&gt;
| {{Author/Evgeny}} &lt;br /&gt;
|-&lt;br /&gt;
| GetSystemEnv&lt;br /&gt;
| An AviSynth plug-in to retrieve information from the system. &lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/stickboy/GetSystemEnv.zip Plugin]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GRunT]]&lt;br /&gt;
| Extends AviSynth's [[Runtime_environment|Runtime Environment]], making it easier to use, especially inside script functions.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139337 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GScript]]&lt;br /&gt;
| Extends the Avisynth scripting language to provide additional control-flow constructs: multi-line conditionals (if-then-else blocks), 'while' loops and 'for' loops.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147846 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119200 LoadDLL]&lt;br /&gt;
| Used to manually load dll files in AviSynth. Useful if a filter relies on an external dll that is not in the system PATH.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/LoadDll.zip Plugin]&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97748 PlaneMinMax]&lt;br /&gt;
| Frame-based YV12 plane Min/Max/Avg functions without [[ConditionalFilter]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/planeminmax_5F25_dll_20050727.zip Plugin]&lt;br /&gt;
| Bart Silverstein&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=83451 pop]&lt;br /&gt;
|A filter to get values from variables that may not yet be initialized.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.tsp.person.dk/pop.zip Plugin] &amp;lt;!--[http://web.archive.org/web/20160224093903/http://www.tsp.person.dk/pop.zip archived]--&amp;gt;&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165479 Rt_Stats]&lt;br /&gt;
| Compile-time/Runtime Functions.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin] [http://www.sendspace.com/folder/2mwrco mirror]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deepcolor Filters ===&lt;br /&gt;
(also check the [[High_bit-depth_Support_with_Avisynth#Processing_High_Bit-depth_Video_with_AviSynth|High Bit-Depth]] page and the [[:Category:Deep_color_tools|Deep Color Tools]] category)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Dither_tools|Dither]]&lt;br /&gt;
| Generates video with up to 16 bits per component after denoising and dithers back to 8 bits for storage. Primarily written to smooth fine gradients to remove color banding during/after denoising. Can also recover high bitdepth data potentially contained in a noisy clip; dither a high bitdepth picture into a standard YV12; and perform basic operations (masking, curves...) on high bitdepth pictures, as they cannot be manipulated safely with conventional AviSynth filters.&lt;br /&gt;
| [[Planar]] colorspaces&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Plugin + scripts]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20110809073332/http://arenafilm.hu/alsog/anaglyph/ Analglyph]&lt;br /&gt;
| This filter produces analglyph video from a stereo pair.  Analglyph is a 3d viewing method which uses colored glasses.  The plugin supports the advanced [http://web.archive.org/web/20130706165544/www.site.uottawa.ca/~edubois/anaglyph/ Dubois] algorithm, which is able to reduce the ghosting effect that is possible in the conversion.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z Plugin] / [http://web.archive.org/web/20140412062911/http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z mirror]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| Anaglypher &lt;br /&gt;
| A plugin for combining stereopairs into single anaglyph image.&lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://shura.luberetsky.ru/anaglypher/Anaglypher.zip Plugin]&lt;br /&gt;
| [http://shura.luberetsky.ru/ Shura Luberetsky]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616 Displace / McM_2D_to_3D]&lt;br /&gt;
|Plugin and script that enables you to convert 2d to 3d stereo with bidirectional pulfrich effect + add depth to stationary objects.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616#post1539121 Plugin/Script]&lt;br /&gt;
|Mcmount&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=143855 fauxD]&lt;br /&gt;
|2D to stereo-3D conversion in real-time.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=9278&amp;amp;d=1232092731 Plugin]&lt;br /&gt;
|eslave&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/ Pantarheon 3D AviSynth Toolbox]&lt;br /&gt;
| The Toolbox contains a number of basic functions which allow you to multiplex the left and right views found in two separate videos into one video, using several of the common methods currently in use.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/zip/ Script]&lt;br /&gt;
| [http://www.pantarheon.org/ G. Adam Stanislav]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://avslib.sourceforge.net/ AVSLib]&lt;br /&gt;
|General purpose toolkit/extension library enhancing AviSynths ability to perform complex linear and non-linear video editing tasks. Includes support for Array containers &amp;amp; operators, debugging tools, math &amp;amp; string functions, filters and many more.&lt;br /&gt;
|&lt;br /&gt;
|[http://sourceforge.net/projects/avslib/ AVSLib]&lt;br /&gt;
|[http://gzarkadas.users.sourceforge.net/ gzarkadas]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Audio Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddAudio]]&lt;br /&gt;
| A function that adds silent audio to a clip. Needed for CCE 2.50 users.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[AudioGraph]]&lt;br /&gt;
| Displays the audio waveform superimposed on the video. Intended to help with editing rather than for final output. Useful for finding specific dialog or sound, and for checking A/V sync. [http://forum.doom9.org/showthread.php?t=59412 Doom9 discussion]. Ihor Bobalo added a few additional features to AudioGraph, only the source code is provided: [http://sourceforge.net/projects/audiograph/ SourceForge repository].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20060517015407/http://beta.zenaria.com/kpo/avisynth/AudGraph_25.zip Plugin]&lt;br /&gt;
| Richard Ling, {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=108470 AudioLimiter]&lt;br /&gt;
| To increase volume for silent sounds a lot, to increase volume for middle-volume sounds a little and to keep hi-volume sounds untoched.&lt;br /&gt;
| N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=6586&amp;amp;d=1167241138 Plugin]&lt;br /&gt;
|dimzon&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 AudioTimeline]&lt;br /&gt;
|Displays a audio timeline track under the frame. It is especially suited for thumbsheets, where it allows to estimate the audio track of the thumbnailed clip.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 Plugin]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
| BeFa &lt;br /&gt;
| Band Eliminate Filter for Audio. See [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#Befa English documentation] (translated from the original [http://web.archive.org/web/20081122113014/http://kiraru2002.at.infoseek.co.jp/#befa Japanese documentation]).&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/befa_5F25_dll_20030924.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FindAudioSyncScript]]&lt;br /&gt;
| FindAudioSyncScript helps you to find the appropriate audio delays, if you have desync'ed audio.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
| IanB&lt;br /&gt;
|-&lt;br /&gt;
| MinMaxAudio&lt;br /&gt;
| Computes the root mean square, maximal or minimal value over all samples in all channels,or just over all samples in channel, and outputs the value (in decibels) as a float[http://forum.doom9.org/showpost.php?p=1197592&amp;amp;postcount=19]. It's a conditional audio filter, so the computation is done framewise. See [http://forum.doom9.org/showthread.php?t=127530 discussion]&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.wilbertdijkhof.com/MinMaxAudio_v02.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Normalize2&lt;br /&gt;
|Audio normalizing plugin. The main difference between this plugin and the built-in normalizing plugin [[Normalize]]() is that this plugin can store the peak level value in an external file and uses a lookup table to do the actual normalizing (for speed).&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://sourceforge.net/projects/jorydownloader/files/Normalize2%20for%20AviSynth/Normalize%20v0.1%20for%20AviSynth%202.5/ Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/jcsston/profile/ jcsston]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=104792 Sox Audio Effect Filter]&lt;br /&gt;
| Use [http://sox.sourceforge.net/ SOX] effects within AviSynth. Most effects are supported, and multiple effects can be stacked after each other.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=761154#post761154 Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Spectrogram]]&lt;br /&gt;
|Linear [http://en.wikipedia.org/wiki/Spectrogram spectrogram] for AviSynth 2.6.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.dropbox.com/s/9p2t1mv5t5yjpgd/Spectrogram_r5.7z?dl=1 Plugin]&lt;br /&gt;
|[http://github.com/innocenat innocenat]&lt;br /&gt;
|-&lt;br /&gt;
|SwitchByAudio&lt;br /&gt;
|Plugin to switch video source based on audio. See [http://forum.doom9.org/showthread.php?t=167011 discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/SwitchByAudio/SwitchByAudio.zip Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1722472&amp;amp;postcount=20 TimeStretchPlugin]&lt;br /&gt;
|[[TimeStretch]] with multichannel support and updated SoundTouch library. &lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.wilbertdijkhof.com/TimeStretch_v258.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ViewAudio]]&lt;br /&gt;
| Includes two filters: ViewAudio and CacheAudio. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/ViewAudio0301.zip Plugin] &amp;lt;!--[http://www.avisynth.nl/users/warpenterprises/files/viewaudio_5F25_dll_20031103.zip Plugin]--&amp;gt;&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Waveform]]&lt;br /&gt;
| Displays audio waveforms superimposed on the video, similar to AudioGraph below but with multi-channel support and consistent support for all colourspaces. See [http://forum.doom9.org/showthread.php?t=165703 discussion]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
| [http://horman.net/avisynth/download/waveform0.3.zip Plugin]&amp;lt;!--[https://web.archive.org/web/20130413095328/http://horman.net/waveform0.2.zip archived]--&amp;gt;&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== As Yet Unclassified ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=397426#post397426 Adjust]&lt;br /&gt;
| Generic Y-Channel mapping. Can define a function for the Y Channel. See [http://forum.doom9.org/showthread.php?p=397426 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/adjust_5F25_dll_20031110.zip Plugin]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/ WarpEnterprises]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166588 Adaptive Lens Blur Repair]&lt;br /&gt;
|This function adaptively repairs video damaged by lens blur, using a frame-adaptive repair mask, a selection of sharpeners and multi-stage motion-compensated artifact removal.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13154&amp;amp;stc=1&amp;amp;d=1354907363 Script]&lt;br /&gt;
| fvisagie&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1703332&amp;amp;postcount=172 amp]&lt;br /&gt;
|Inspired by [http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier], it performs temporal smoothing, then (optionally) enhances the difference between the windowed average and the current frame.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://horman.net/avisynth/amp.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoOverlay]]&lt;br /&gt;
|Auto-aligned optimal overlay of one video clip onto another with color adjustment.&lt;br /&gt;
| [[RGB32]], [[YV24]], [[YV12]]&lt;br /&gt;
| [https://github.com/introspected/AutoOverlay/releases Plugin]&lt;br /&gt;
| [https://github.com/introspected introspected]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace AutoTraceFilter]&lt;br /&gt;
|An intentionally useless plugin that uses [http://autotrace.sourceforge.net/ AutoTrace] to trace and then resize a source video, rendering the result using GDI+.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|-&lt;br /&gt;
|[http://nutbread.github.io/ave/ ave]&lt;br /&gt;
| A set of experimental audio/video filters.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://nutbread.github.io/ave/ Plugin]&lt;br /&gt;
| [http://github.com/nutbread nutbread]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172698 AviSynth Shader]&lt;br /&gt;
|This plugin allows running HLSL pixel shaders within AviSynth. This gives access to various HLSL filters that haven't been programmed in AviSynth.&lt;br /&gt;
|[[RGB32]], [[YV24]], [[YV12]]&lt;br /&gt;
|[http://github.com/mysteryx93/AviSynthShader Plugin]&lt;br /&gt;
|[http://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=675275#post675275 BeforeAfter]&lt;br /&gt;
| See the difference before and after; similar discussion [http://forum.doom9.org/showthread.php?t=98876 here]. (missing [http://www.animemusicvideos.org/forum/viewtopic.php?f=11&amp;amp;t=45223 BeforeAfterDiff] and BeforeAfterLine scripts.)&lt;br /&gt;
| any&lt;br /&gt;
| Script&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=158696 ccc]&lt;br /&gt;
|A plugin specifically designed for Cross-Conversion Correction.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150403181720/http://japland.org/ccc/ccc_v0.4a_avs.zip Plugin]&lt;br /&gt;
|Daemon404&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/CLExpr CLExpr]&lt;br /&gt;
|AviSynth Expr filter implemented in OpenCL for runtime calculation of expressions on 8 and 16-bit depths clips. Makes mt_lutxy and mt_lutxyz possible on 16-bit. More information [http://forum.doom9.org/showpost.php?p=1672638 here].&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/CLExpr/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/ColorIt.html Colorit]&lt;br /&gt;
| Color a black and white image or recolor a color image. See [http://forum.doom9.org/showthread.php?t=93990 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/Colorit.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| CutFrames&lt;br /&gt;
| Cut a range of frames from a single a/v clip. Opposite of Trim with extras.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135423 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| DCT&lt;br /&gt;
| Plugin with the following functions: IDCT, IDCT2, FDCT, FDCT2. See [http://forum.doom9.org/showthread.php?p=667382#post667382 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://alainmuchembled.free.fr/DCT.zip Plugin]&lt;br /&gt;
| lcld&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1444027#post1444027 DDigit]&lt;br /&gt;
| DDigit Plugin Text Rendering Pack for Plugin writers. See [http://forum.doom9.org/showthread.php?t=156888 discussion.]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.mediafire.com/download/bfhj5crwaxbupeh/DDigitTest_25%2626_v1-06_dll_20150330-RECOMPILE.zip Plugin]&lt;br /&gt;
| {{Author/StainlessS}}&lt;br /&gt;
|- &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=80419 DeBlot]&lt;br /&gt;
| Color Blot Reduction. &lt;br /&gt;
| [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/deblot_5F25_dll_20030628.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=95193 DeJump]&lt;br /&gt;
| This is a specific filter which might be used to stabilize some &amp;quot;jumpy&amp;quot; video sources captured from VHS. &lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=3988&amp;amp;d=1117479069 Plugin]&lt;br /&gt;
| dinstun&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint.html ExInpaint]&lt;br /&gt;
| Exemplar-Based Image Inpainting - removing large objects from images. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint0200.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FFAvisynth]]&lt;br /&gt;
| A plugin which lets you directly use [http://en.wikipedia.org/wiki/Ffdshow ffdshow] video and audio filters from AviSynth scripts.  &lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/ffdshow-tryout/ Plugin]&lt;br /&gt;
| Milan Cutka &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/FLuaG FLuaG]&lt;br /&gt;
| FLuaG (Floating Lua Graphics) is an AviSynth plugin for video/audio data editing via Lua scripting. See [http://forum.doom9.org/showthread.php?t=161852 discussion] &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/Youka/FLuaG/archive/master.zip Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
| Use Avisynth to process still images.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 FSubstitute]&lt;br /&gt;
|Tries to automate the task of replacing bad frames using adjacent or close-by frames.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 Script]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=130611 GrainOptimizer]&lt;br /&gt;
|The only temporal-only grain reducer! See discussion for more information. Related topics: [http://forum.doom9.org/showthread.php?t=137117 x264: Film Grain Optimization], [http://web.archive.org/web/20090916181521/http://x264dev.blogspot.com/2008/05/film-grain-optimization.html]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20081228144846/http://mirror05.x264.nl/Dark/force.php?file=./GrainOptimizer_2.02.zip Plugin]&lt;br /&gt;
|Dark Shikari&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL KPassFilterCL]&lt;br /&gt;
|KPassFilterCL is a set of tools in the frequency domain.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL/releases Plugin]&lt;br /&gt;
|[http://github.com/Khanattila Khanattila ]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/LVS LVS]&lt;br /&gt;
| LVS (Lua Video Sync) is a video frameserver plugin to edit video frames with the capability of scripting language Lua + 2D image processing functionality. See [http://forum.doom9.org/showthread.php?t=167716 discussion] &lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/lua-video-sync/files/ Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.html NeuralNet]&lt;br /&gt;
| Neural networks through back propagation learn and filter some types of noise. Classification and linear type networks are included.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| PseudoColor &lt;br /&gt;
| This filter first converts clip to b/w, then colors it to pseudorandom colors according to brightness. See [http://forum.doom9.org/showthread.php?t=61570 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/pseudocolor_5F25_dll_20030919.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource QRCodeSource]&lt;br /&gt;
|AviSynth plugin to provide a means to embed QR codes in video.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource/releases Plugin]&lt;br /&gt;
|[http://github.com/jeremypoulter jeremypoulter]&lt;br /&gt;
|-&lt;br /&gt;
|RemoveDeadPixels&lt;br /&gt;
|See [http://forum.doom9.org/showthread.php?p=699915#post699915 here] and [http://videoprocessing.fr.yuku.com/topic/27/Removedeadpixels here].&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://web.archive.org/web/20160610103945/http://home.arcor.de/kassandro/RemoveDeadPixels.rar Plugin]&lt;br /&gt;
|{{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172601 rgba_rpn]&lt;br /&gt;
|A filter for manipulating the pixels of [[RGB]] (and also [[YUV]]) clips using [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation.] &lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://horman.net/avisynth/downloads/rgba_rpn0.1.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SegmentedAmp]] &lt;br /&gt;
| Image is segmented with watershed algorithm for smoothing and/or sharpening.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/SegmentedAmp Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172377 SmoothSkip]&lt;br /&gt;
|In tribute to tritical's awesome filter, this one tackles the inverse problem of [[TIVTC/TDecimate|TDecimate]]; allowing for addressing frames that have non-smooth, skippy motion. For source code see [http://github.com/jojje/SmoothSkip GitHub repository]. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://github.com/jojje/SmoothSkip/releases/download/v1.0.2/SmoothSkip-1.0.2.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
| [[Soothe]]&lt;br /&gt;
| Lessens the temporal instability and aliasing caused by sharpening, by comparing the original and sharpened clip, leaving a smoother and slightly softer output. See [http://forum.doom9.org/showthread.php?t=99679 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=99679 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/ Tracking]&lt;br /&gt;
| Use computer vision to track objects in the video, and produce ConditionalReader input. Demo at [http://www.youtube.com/watch?v=SQ-JtJs7US0 Youtube]. &lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/files/1.1/AvisynthTrackin.1.1.binary.zip/download Plugin]&lt;br /&gt;
| [http://avisynthtrackin.sourceforge.net/ Shlomo Matichin]&lt;br /&gt;
|-&lt;br /&gt;
| UnSmooth&lt;br /&gt;
| What does it do. It amplifies noise, small detail, and artifacts. Doesn't sound very attractive, but there can still be some detail left in over smoothed encodes. See [http://forum.doom9.org/showthread.php?t=63361 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090821183550/http://mf.creations.nl/avs/functions/UnSmooth-v0.1.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163870 Watermark]&lt;br /&gt;
|Creates a transparent deformation in the video akin to a watermark. The watermark is defined by a black and white image which may be a dynamic image. The intensity of the effect is controlled by several parameters.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1554560#post1554560 Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/phillvanleersum/profile/ DrPhill]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.html WaterShed] &lt;br /&gt;
| Assuming image grey values to be elevations, it is segmented into basins and watershed lines. Useful in certain medical image analysis and recoloring work.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| AviSynth 2.5.8: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.zip Plugin]&lt;br /&gt;
AviSynth 2.6.0: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed_2_6.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins xvplugins]&lt;br /&gt;
|This is simply a bunch of AviSynth stuff that isn't (really) possible using plain AviSynth and instead required a plugin.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:AviSynth_Usage]]&lt;br /&gt;
[[Category:External_filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/External_filters</id>
		<title>External filters</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/External_filters"/>
				<updated>2018-02-11T13:52:17Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: /* As Yet Unclassified */ add AutoOverlay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rough classification of third-party filters for AviSynth - a perpetual work in progress.&lt;br /&gt;
&lt;br /&gt;
This page lists both scripts (see [[Import]]) and plugins (see [[Plugins]]).&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
==== Download sites ====&lt;br /&gt;
A large list of filters can be downloaded from the following sites but be aware that some plugins listed '''may be outdated''', only recommended as a backup.&lt;br /&gt;
&lt;br /&gt;
*[http://web.archive.org/web/20130803185015/http://www.64k.it/andres/dettaglio.php?sez=avisynth Andres' Filter Collection] &lt;br /&gt;
*[http://chaosking.de/repo/avsfilters/ AviSynth Filter DB by ChaosKing] | [http://web.archive.org/web/20140412062911/http://chaosking.de/avisynth-filter-db mirror]&lt;br /&gt;
*[http://www.avisynth.info/?plugin=attach&amp;amp;pcmd=list&amp;amp;refer=%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96 AviSynth.info Filter Archive]&lt;br /&gt;
*[http://xhmikosr.1f0.de/_old/avisynth/plugins/ XhmikosR's Builds] &lt;br /&gt;
*[http://www.avisynth.nl/users/warpenterprises/ Warp Enterprises' AviSynth Filter Collection]&lt;br /&gt;
&lt;br /&gt;
====64-bit filters====&lt;br /&gt;
'''[[AviSynth%2B_x64_plugins|Comprehensive list of AviSynth+ 64-bit filters]] &amp;amp;rarr;'''&lt;br /&gt;
&lt;br /&gt;
====Outdated AviSynth plugins====&lt;br /&gt;
[[External plugins old|External plugins (old)]] - these older plugins are not recommended, page is there mainly for historical purposes.&lt;br /&gt;
&lt;br /&gt;
==== Using filters ====&lt;br /&gt;
Most scripts will apply filters in the following order:&lt;br /&gt;
&lt;br /&gt;
# Create an AviSynth clip from a video file using a source filter.&lt;br /&gt;
# Correct or remove any unwanted features in the video (e.g. dot crawl, field blending or telecine).&lt;br /&gt;
# Denoise the video (optional).&lt;br /&gt;
# Manipulate the video into the desired format (by e.g. changing the size and frame rate).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--AviSynth filters have been classified under these four basic tasks, with a fifth category for filters that fall outside this scheme, and a sixth category for filters that process audio only.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135855 BassAudio]&lt;br /&gt;
| [http://un4seen.com/bass.html Bass Audio] decoder. Supports wav, aiff, mp3, mp2, mp1, ogg. Support for aac, ac3, alac, ape, cd, flac, midi, mpc, ofr, spx, tta, wma, wv with additional included dll's. The filter is included in the Behappy package.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135855 Plugin]&lt;br /&gt;
| dimzon&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/cmvsource.htm CMVSource]&lt;br /&gt;
| Load [http://www.bay12games.com/dwarves/ Dwarf Fortress] CMV and CCMV movies.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=162850 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=122598 DGAVCDecode] &lt;br /&gt;
| AVC/H.264 decoder plug-in. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.videohelp.com/tools/DGAVCDec Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DGDecode]] &lt;br /&gt;
| Decode MPEG1/MPEG2 streams from: DVD VOBs, captured transport streams, *.mpg/*.m2v/*.pva files, etc. Use this instead of MPEGDecoder/MPEG2Dec3.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]], [[I420]] &lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170107 DGMVCSource]&lt;br /&gt;
|MVC source filter for AviSynth.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://rationalqm.us/dgmvcsource/dgmvcsource100b22.zip Plugin]&lt;br /&gt;
|{{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| DVInfo&lt;br /&gt;
| Grabs the timestamp and recording date info from a DV-AVI. See [http://forum.doom9.org/showthread.php?t=61688 discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dvinfo_20100602.zip Plugin] [http://forum.doom9.org/showthread.php?p=1740824#post1740824 Update]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023927/http://mvideo.ddpp.net/eng/dvtimestampex.htm DVTimeStampEx]&lt;br /&gt;
| Shows DV timestamp information over a DV clip.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5.zip Plugin] - [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5_src.zip source code]&lt;br /&gt;
| [http://web.archive.org/web/20071025023932/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134275 DSS2]&lt;br /&gt;
| DirectShowSource2 that uses the installed Haali Media Splitter along with its ''avss.dll'' AviSynth plugin. It can convert VFR files to CFR in order to support frame-accurate seeking. Not recommended due to the fact that Haali Media Splitter is considered outdated, use DDS2mod.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130923230211/http://haali.su/mkv/ Plugin]&lt;br /&gt;
| Haali&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]&lt;br /&gt;
| DirectShowSource2 mod, this version does not require Haali Media Splitter. &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160224130743/https://filetea.me/t1sFlzxrp9xSdaqTlf3qZ6nCQ/dl Plugin]&lt;br /&gt;
| forclip&lt;br /&gt;
|-&lt;br /&gt;
| [[FFmpegSource]]&lt;br /&gt;
| Decodes all ffmpeg ([http://en.wikipedia.org/wiki/Libavcodec libavcodec]) supported A/V formats with frame accurate seeking in AVI, MKV and MP4. See [http://forum.doom9.org/showthread.php?t=127037 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]], [[I420]]&lt;br /&gt;
| [http://github.com/FFMS/ffms2/releases Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, TheFluff, Plorkyeran, others&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 FRIMSource]&lt;br /&gt;
|FRIMSource is an AviSynth plugin for sequential reading of elementary or transport streams (MPEG2, H.264 AVC/MVC-3D, VC1).&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 Plugin]&lt;br /&gt;
|videofan3d&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110021 HDVInfo] &lt;br /&gt;
| Grabs the timestamp and recording date info out of a M2T-D2V file&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20120419204535/http://strony.aster.pl/paviko/hdvinfo0.93.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ImageSequence]]&lt;br /&gt;
| Load png, jpg, bmp, pcx, tga and gif image sequences using the [http://corona.sourceforge.net/ Corona Image I/O Library]. CoronaSequence/RawSequence.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/imagesequence_20101115.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaRead uses the ImageMagick libraries to read images. Many formats are supported including animations, multipage files, image sequences and images with different sizes.&lt;br /&gt;
|&lt;br /&gt;
| [http://www.wilbertdijkhof.com/ Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| IUF&lt;br /&gt;
| Import Uncompressed File. Must be uncompressed! Supported uncompressed Formats: avi, omf(avid), pxr(pixar), mov(24/32bit quicktime), cineon. Can export as well. See [http://forum.doom9.org/showthread.php?t=51227 discussion].&lt;br /&gt;
| [[RGB]]&lt;br /&gt;
| [http://web.archive.org/web/20091016215740/http://geocities.com/hanfrunz/iuf_v1.5.zip Plugin] &lt;br /&gt;
| hanfrunz&lt;br /&gt;
|-&lt;br /&gt;
| [[JpegSource]]&lt;br /&gt;
| An advanced JPEG decoder for Avisynth 2.6. See [http://forum.doom9.org/showthread.php?t=170028 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/rjnt0y3ead2c6ef/JpegSource_20140419.7z Plugin] &lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[LSMASHSource]]&lt;br /&gt;
| A source plugin for audio and video, it uses Libav ([http://en.wikipedia.org/wiki/Libav#Contained_codecs libavcodec]) to decode all supported A/V formats. See [http://forum.doom9.org/showthread.php?t=167435 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[LSMASHSource|Plugin]]&lt;br /&gt;
| {{Author/VFR-maniac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NicAudio]]&lt;br /&gt;
| Audio Plugins for Audio: MPEGAudio/AC3/DTS/LPCM and other uncompressed formats. Formerly known As EvilMPASource. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=89629 discussion], [http://forum.doom9.org/showthread.php?t=135876 continued discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://nicaudio.codeplex.com/ Plugin]&lt;br /&gt;
| {{Author/Nic}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=103931 OmfSource] &lt;br /&gt;
| Opens the AVID OMF file format (video only, and only works with captured files). See [http://forum.doom9.org/showthread.php?t=103931 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [[QTSource]]&lt;br /&gt;
| Quicktime Import/Export Filter using an existing installation of Quicktime 6/7. See [http://forum.doom9.org/showthread.php?t=104293 discussion].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ R3DSource]&lt;br /&gt;
| Redcode RAW source plugin to load R3D clips. See [http://reduser.net/forum/showthread.php?25398 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ Plugin]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RawSource26]]&lt;br /&gt;
| Loads raw video data directly from files. Further modifications (most raw formats, YUV4MPEG2 compatible with latest spec) [http://forum.doom9.org/showthread.php?t=39798 discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [https://github.com/chikuzen/RawSource_2.6x/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawReader&amp;quot;)&lt;br /&gt;
| Loads raw video data directly from files, similarly to RawSource, but also allows for skipping headers, and extra formats (long list to help anyone doing a search):  GREY, Y8, interleaved RGB, BGR (which is RGB24), BGRA (which is RGB32), ARBG, ABGR, RGBA, interleaved YUV (which is YCbCr), YUY2, UYVY, AYUV, planar YUV formats YUV444, YUV422, YUV420 (as YV12), YUV420 (as IMC2), and some raw ImageMagick formats.  Some supports for different bit-depths.  Includes YUVInterleaved.avsi, InterleavedConversions.avsi, and PlanarConversions.avsi.  [http://forum.doom9.org/showthread.php?p=1403600 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[VapourSource]]&lt;br /&gt;
| VapourSynth script reader for AviSynth2.6x.  [http://forum.doom9.org/showthread.php?t=168339 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/VapourSource/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170311 VideoInputSource]&lt;br /&gt;
| Capture video frames from video capture card or webcam in real-time.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://github.com/fieliapm/himawari_avs_plugin/raw/master/VideoInputSource/VideoInputSource.dll Plugin]&lt;br /&gt;
|[http://github.com/fieliapm fieliapm]&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource ssifSource]&lt;br /&gt;
| Open m2ts, ssif and mpls files located in decrypted Blu-ray and Blu-ray 3D discs. Supports horizontal of vertical stack of views as output, views selection and swap autodetection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restoration Filters ==&lt;br /&gt;
&lt;br /&gt;
These remove effects or artifacts introduced (deliberately or accidentally) into the source video. Denoisers are classified separately.&lt;br /&gt;
&lt;br /&gt;
=== Anti-[[aliasing]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DAA]]&lt;br /&gt;
| Anti-aliasing with contra-sharpening.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| mcDAA3&lt;br /&gt;
| Motion-Compensated Anti-aliasing with contra-sharpening, can deal with ifade too, created because when applied daa3 to fixed scenes, it could damage some details and other issues. See [http://forum.doom9.org/showthread.php?p=1639679#post1639679 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/?wqkob7zx1p119e0 Script]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[MAA2]]&lt;br /&gt;
| Updated version of the MAA antialising script.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20140624125132/https://raw.githubusercontent.com/AviSynth/avs-scripts/master/maa2.avsi Script]&lt;br /&gt;
| line0&lt;br /&gt;
|-&lt;br /&gt;
| [[santiag]]&lt;br /&gt;
| Simple anti-aliasing with independent horizontal and vertical anti-aliasing strength.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1393006 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpAAMCmod&lt;br /&gt;
| High quality MoComped AntiAliasing script, also a line darkener since it uses edge masking to apply tweakable warp-sharpening, &amp;quot;normal&amp;quot; sharpening and line darkening with optional temporal stabilization of these edges. Part of [[AnimeIVTC]]. See [http://forum.doom9.org/showthread.php?t=138305] and [http://forum.doom9.org/showthread.php?t=140031]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| [[TIsophote]]&lt;br /&gt;
| A level-set (isophote) smoothing filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162751/http://bengal.missouri.edu/~kes25c/TIsophotev091.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[xaa]]&lt;br /&gt;
|Versatile anti-aliasing script.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
|[http://www.mediafire.com/download/sygi04y47eknvc2/xaa_v1.1.1.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chroma correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Archived}}/trbarry/Readme_BT709ToBT601.txt BT709ToBT601]&lt;br /&gt;
| Convert from BT.709 (HDTV) to BT.601 (SDTV) colorimetry.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/BT709ToBT601.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
|[[caf]]&lt;br /&gt;
|Chromatic Aberration Fixer.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| Torchlight&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShift]]&lt;br /&gt;
| This filter will shift the chrominance information by an even number of pixels, in either horizontal direction. It can also apply an overall vertical shift of the total chrominance information, up or down. It is primarily intended to correct improper colour registration. See [http://forum.doom9.org/showthread.php?t=33302 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091026153334/http://www.geocities.com/siwalters_uk/chromashift27.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShiftSP]]&lt;br /&gt;
| This script can shift chroma in all directions with subpixel accuracy.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| IanB, McCauley &lt;br /&gt;
|-&lt;br /&gt;
| ColorMatrix&lt;br /&gt;
| ColorMatrix corrects the colors of MPEG-2 streams. More correctly, many MPEG-2 streams use slightly different coefficients (called Rec.709) for storing the color information than AviSynth's color conversion routines or the XviD/DivX decoders (called Rec.601) do, with the result that DivX/XviD clips or MPEG-2 clips encoded by TMPGEnc/QuEnc are displayed with slighty off colors. This can be checked by opening the MPEG-2 stream directly in VDubMod. See [http://forum.doom9.org/showthread.php?t=82217 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420180927/http://bengal.missouri.edu/~kes25c/ColorMatrixv25.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/tritical}} (v2.0+)&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleeding]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091026141730/http://www.geocities.com/alex_j_jordan/chroma.txt Script]&lt;br /&gt;
| {{Author/Alex Jordan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleedingMod]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074#post1673932 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV411]]&lt;br /&gt;
| [[FixChromaBleedingMod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaticAberration]]&lt;br /&gt;
| FixChromaticAberration resizes (and crops) the red/green/blue channels of the image separately. This helps to minimize the colored edges next to the image corners that result from lenses with chromatic aberration. See [http://forum.doom9.org/showthread.php?p=1520786#post1520786 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/index.php/FixChromaticAberration Script]&lt;br /&gt;
| Martin Wagener&lt;br /&gt;
|-&lt;br /&gt;
| [[MoveChroma]]&lt;br /&gt;
| Chroma shifting filter; can be used to independently shift the U/V channels left or right.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/MoveChroma.20090823.zip Plugin]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/ apechironnup]&lt;br /&gt;
|-&lt;br /&gt;
| [[ReInterpolate411]]&lt;br /&gt;
| This is a fast and simple filter to correct the improper 4:1:1 =&amp;gt; 4:2:2 conversion that seems to occur with some DV/4:1:1 codecs.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/ReInterpolate411.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420.html ReInterpolate420]&lt;br /&gt;
| Usually, DV decoders upsample [[PAL]] DV (which is YV12) to YUY2 using point sampling. This plugin re-interpolates the original chroma samples.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420_v3.zip Plugin]&lt;br /&gt;
|  {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/Fizick}} (v3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Debanding ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AdaptDBMC&lt;br /&gt;
| Luma / Fade / Blue adaptive debanding script. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=512 Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2db]]&lt;br /&gt;
| A simple and fast debanding filter. See Wikipedia: [http://en.wikipedia.org/wiki/Color_banding Color Banding]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140705233110/http://manao4.free.fr/gradfun2db-v1.0.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2DBmod]]&lt;br /&gt;
| An advanced debanding script based on GradFun2DB.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144537 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| GradFun3&lt;br /&gt;
| This debanding script, part of the [[External_filters#Deepcolor_Filters|Dither]] package, has several gradient smoothing algorithms, including a bilateral filter. It uses an ordered dithering, which has a good resilience to lossy compression.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://f3kdb.readthedocs.org/en/latest/ flash3kyuu_deband]&lt;br /&gt;
| Fast debanding plugin ported from AviUtl.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161411 Plugin]&lt;br /&gt;
| [http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| LumaDB&lt;br /&gt;
| Fast 8-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114932/http://www.nmm-hd.org/upload/get~3YK_B5TfcyI/LumaDB-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| LumaDBL&lt;br /&gt;
| Fast 16-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. Works in 16-bit internally and can also input/output 16-bit. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114947/http://www.nmm-hd.org/upload/get~mQYIS9H6Qas/LumaDBL-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deblocking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| BlockKiller&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=1410479#post1410479 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1410479&amp;amp;postcount=19 Script]&lt;br /&gt;
| Jawed&lt;br /&gt;
|-&lt;br /&gt;
| BlockTerminator&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=831936#post831936 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=831936&amp;amp;postcount=24 Script]&lt;br /&gt;
| foxyshadis&lt;br /&gt;
|-&lt;br /&gt;
| [[DeBlock]]&lt;br /&gt;
| Deblocking filter,  see [http://forum.doom9.org/showthread.php?t=110352 discussion,] and [http://github.com/tp7/Deblock updated version] for AviSynth 2.6. DGDecode uses [{{N2Moved}}/dgmpgdec/DGDecodeManual.html#DeBlock DeBlock.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeBlock Plugin]&lt;br /&gt;
| {{Author/Fizick}} / {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblock_QED]]&lt;br /&gt;
| &amp;quot;A postprocessed Deblock(): Uses full frequencies of Deblock's changes on block borders, but DCT-lowpassed changes on block interiours.&amp;quot; [http://forum.doom9.org/showpost.php?p=913365&amp;amp;postcount=4 Didée]. See [http://forum.doom9.org/showthread.php?p=944459 discussion.] For updated Deblock QED see this [http://forum.doom9.org/showthread.php?t=154777 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Deblock_QED_MT2Mod.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeblockPP7]]&lt;br /&gt;
| A port of the MPlayer PP7 deblocking filter. See [http://forum.doom9.org/showthread.php?t=172498 discussion].&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=14970&amp;amp;d=1440108276 Plugin]&lt;br /&gt;
|John Doe&lt;br /&gt;
|-&lt;br /&gt;
| [[FunkyDeBlock]]&lt;br /&gt;
| Deblocking script based on BlindPP and high/low pass separation. See [http://forum.doom9.org/showthread.php?t=72431 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MDeblock]]&lt;br /&gt;
| Plugin for removing block artifacts, see [http://home.arcor.de/kassandro/MDeblock/MDeblock.htm homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/MDeblock/MDeblock.zip Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD]]&lt;br /&gt;
| Filter to deblock frames while keeping high frequency detail. See [http://forum.doom9.org/showthread.php?t=84355 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.funknmary.de/bergdichter/projekte/video/SmoothD Plugin]&lt;br /&gt;
| Tobias Bergmann&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD2]]&lt;br /&gt;
| Deblocking filter.  Rewrite of SmoothD. Faster, better detail preservation, optional chroma deblocking. See [http://forum.doom9.org/showthread.php?t=164800 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/jconklin754smoothd2/download Plugin]&lt;br /&gt;
| Jim Conklin&lt;br /&gt;
|-&lt;br /&gt;
| SmoothDeblock&lt;br /&gt;
| Slow and complex, but produces very good results - especially on severely blocky sources - in a similar manner to TempGaussMC and QTGMC. See [http://forum.doom9.org/showthread.php?t=111526 discussion] and an [http://forum.doom9.org/showthread.php?p=945261#post945261 overall comment].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1553458#post1553458 Script]&amp;lt;br&amp;gt;[[SmoothDeblock_source|(alt source)]]&lt;br /&gt;
| redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock.html Unblock]&lt;br /&gt;
|UnBlock is a filter that removes the &amp;quot;blockiness&amp;quot; of heavily or moderately compressed images with statistical approach. See [http://forum.doom9.org/showthread.php?t=133059 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock11.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dehaloing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[abcxyz]]&lt;br /&gt;
| Filter to remove halos. See [http://forum.doom9.org/showthread.php?t=144982 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Media:abcxyz_MT2.avsi|Script]]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BlindDeHalo3]]&lt;br /&gt;
| Filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=622289#post622289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5599&amp;amp;d=1143030001 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeHalo_alpha]]&lt;br /&gt;
| Very powerful filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=777956#post777956 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Dehalo_alpha_mt.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeHaloHmod]]&lt;br /&gt;
| Another halo reducer, it includes lots of options to tweak for best performance. See [http://forum.doom9.org/showthread.php?p=1675762#post1675762 discussion]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [[DeHaloHmod|Script]]&lt;br /&gt;
|AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
|[[FineDehalo]]&lt;br /&gt;
|Halo removal script that uses DeHalo_alpha with a few masks and optional contra-sharpening to try remove halos without removing important details (like line edges).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/images/FineDehalo.avsi Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| Mask_DHA&lt;br /&gt;
| A combination of the best of DeHalo_alpha and BlindDeHalo3, plus a few minor tweaks to the masking. See [http://forum.doom9.org/showthread.php?t=148498 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| 'Orum&lt;br /&gt;
|-&lt;br /&gt;
| [[VHSHaloremover]]&lt;br /&gt;
| Quick &amp;amp; dirty halo removal. Will introduce some blurriness, but the halos are so huge you can’t avoid it. See [http://forum.doom9.org/showthread.php?p=1758184#post1758184]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://pastebin.com/s24mSgJ5 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YAHR]]&lt;br /&gt;
| Basic filter with no variables to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=1205653#post1205653]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/YAHR.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| YAHRmod&lt;br /&gt;
| Basic filter used to reduce halos in modern DVD and other cases.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YAHRmod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deringing &amp;amp; Mosquito Noise ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpSharpDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by heavily aWarpSharp-ing the image and then applying it only to the areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/AWarpSharpDering.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak]&lt;br /&gt;
|-&lt;br /&gt;
| [http://rationalqm.us/dgmpgdec/DGDecodeManual.html#BlindPP BlindPP]&lt;br /&gt;
| Deblocking &amp;amp; deringing filter; part of [[DGDecode]]. &amp;lt;br&amp;gt;Mosquito noise removal: &amp;lt;code&amp;gt;BlindPP(quant=16, cpu2=&amp;quot;ooooxx&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=636297#post636297 BlindDeRing]&lt;br /&gt;
| Deringing filter.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Restoration_Filters/Deringing/BlindDeRing___(2005).7z Plugin]&lt;br /&gt;
| krieger2005&lt;br /&gt;
|-&lt;br /&gt;
| [[EdgeCleaner]]&lt;br /&gt;
| A simple edge cleaning and weak dehaloing function. See [http://forum.doom9.org/showthread.php?t=164592 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1568521&amp;amp;postcount=13 Script]&lt;br /&gt;
| [http://forum.doom9.org/member.php?u=80518 canuckerfan]&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only. See [http://forum.doom9.org/showthread.php?p=1043583#post1043583 here] and [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=67532 here] for details.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=793930#post793930 Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering mod]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140711173345/http://www.nmm-hd.org/upload/get~08CusazVphU/HQDeringmod_v1.8.avsi Script]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/memberlist.php?mode=viewprofile&amp;amp;u=479&amp;amp;sid=ff62d0f6c22fcfdbe97b53c8351429bc mawen1250]&lt;br /&gt;
|-&lt;br /&gt;
| [[LazyDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by applying [[aWarpSharp2]] only to areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131103155455/http://anime-addict.ani-x.com/files/avisynth/scripts/LazyDering_v0.1.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak], RazorbladeByte&lt;br /&gt;
|-&lt;br /&gt;
| [[MosquitoNR]]&lt;br /&gt;
| A noise reduction filter designed for mosquito noise, which is often caused by lossy compression.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20131028144351/http://www.geocities.jp/w_bean17/files/mosquito_nr_avisynth.zip Plugin]&lt;br /&gt;
| {{Author/b_inary}}&lt;br /&gt;
|-&lt;br /&gt;
|ungibbs&lt;br /&gt;
|ungibbs, a gibbs artifact remover.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=134502 Script]&lt;br /&gt;
|*.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing&lt;br /&gt;
|Uses aWarpSharp2's flattening to clean out ringing/smaller halos, then runs some masks to preserve the edges and avoid the thinning.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing_faster&lt;br /&gt;
|Same as WarpDeRing but may be a bit faster.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_faster_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deinterlacing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| Area&lt;br /&gt;
| A port of Gunnar Thalin's VirtualDub filter &amp;quot;Deinterlace - area based&amp;quot; to AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/area_5F25_dll_20030217.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}} // {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| BlendBob&lt;br /&gt;
| Filter designed for use after a smart bob; blends every other frame with the closest matching neighbouring frame. See [http://forum.doom9.org/showthread.php?threadid=80289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/BlendBob/ Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| DGBob&lt;br /&gt;
| This filter splits each field of the source into its own frame and then adaptively creates the missing lines either by interpolating the current field or by using the previous field's data. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=55598 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/dgbob/dgbob.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The FieldDeinterlace filter provides functionality similar to the postprocessing function of Telecide. You can use it for pure interlaced streams (that is, those not containing telecined progressive frames). The name refers to the fact that field mode differencing is used.&lt;br /&gt;
| [[YUY2]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EEDI2]]&lt;br /&gt;
| EEDI2 resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and interpolating the missing field.  It is intended for edge-directed interpolation for deinterlacing (i.e. not really made for resizing a normal image, but can do that as well).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/EEDI2 Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[eedi3|EEDI3]]&lt;br /&gt;
| Another edge directed interpolation filter. Works by minimizing a cost functional involving every pixel in a scan line. eedi3 is good for deinterlacing and enlarging images by the powers of 2.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/Elegant996/EEDI3/releases/download/0.9.2.1/EEDI3_v0_9_2_1.7z Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FieldHint]]&lt;br /&gt;
|FieldHint combines arbitrary fields from the input clip, and optionally adds Telecide-compatible postprocessing hints.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20120223025813/http://ivtc.org/yatta%20support/fieldhint-0.12.rar Plugin]&lt;br /&gt;
|{{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| IBob&lt;br /&gt;
| Interpolating Bob works identically to the Avisynth built-in [[Bob]] filter except that it uses linear interpolation instead of bicubic resizing. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=62142 discussion]. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://kevin.atkinson.dhs.org/ibob/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| KernelDeint&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Superceded by [[LeakKernelDeint]], see the description below in this table. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/kerneldeint/kerneldeint.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LeakKernelDeint]]&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Compared to KernelDeint, it is low-level optimized (for speed) and provides some useful new functionality. As the original author of KernelDeint() states, LeakKernelDeint() is the preferred version to use.&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/LeakKernelDeint/LeakKernelDeint_1.5.4.zip Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3]]&lt;br /&gt;
| nnedi3 is an intra-field only deinterlacer. It takes in a frame, throws away one field, and then interpolates the missing pixels using only information from the kept field. It also has same rate and double rate modes.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/jpsdr/NNEDI3/releases Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3ocl]]&lt;br /&gt;
| OpenCL rewrite of [[nnedi3]]. See [http://forum.doom9.org/showthread.php?t=169766 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bmemjsu7jqnlk65/nnedi3ocl_20131208.7z Plugin]&lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[QTGMC]]&lt;br /&gt;
| by -Vit- [http://forum.doom9.org/showthread.php?t=156028] A new deinterlacer based on TempGaussMC_beta2. It's faster and has a presets system for speed/quality selection. There are also several new features including progressive support and noise/grain processing. The script also contains extensive comments to better describe the settings and the workings of the TGMC algorithm.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/QTGMC Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
| [[SangNom2]]&lt;br /&gt;
| Reimplementation of the old [[SangNom]] plugin. See [http://forum.doom9.org/showthread.php?t=168315 discussion].&lt;br /&gt;
| [[Y8]],[[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SangNom2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/ SmoothDeinterlace]&lt;br /&gt;
| This contains an adaptive deinterlacer plugin for (AVISynth). It is based on Gunnar Thalin's [http://www.guthspot.se/video/index.htm#deinterlacesmooth Smooth Deinterlace plugin] for VirtualDub.&amp;lt;br&amp;gt;&lt;br /&gt;
See also [[SmoothDeinterlaceFunctions]]&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/AVSSmoothDeinterlacer.zip Plugin]&lt;br /&gt;
| {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TDeint]]&lt;br /&gt;
| TDeint is a bi-directionally, motion adaptive (sharp) deinterlacer. It can also adaptively choose between using per-field and per-pixel motion adaptivity. It can use cubic interpolation, kernel interpolation (with temporal direction switching), or one of two forms of modified ELA interpolation which help to reduce &amp;quot;jaggy&amp;quot; edges in moving areas where interpolation must be used. TDeint also supports user overrides through an input file, and can act as a smart bobber or same frame rate deinterlacer, as well as an IVTC post-processor. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=82264 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420182314/http://bengal.missouri.edu/~kes25c/TDeintv11.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TelecideHints]]&lt;br /&gt;
| The filter process the stats file to get the usual progressive matches and identify VFR sections.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://mod16.org/fansub/Telecidehints11.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TempGaussMC]]&lt;br /&gt;
| Motion-compensated bob deinterlacer, based on temporal gaussian blurring. reduces noise/grain of the source and does NOT leave the original fields unchanged. Output is rich with details and very stable. Is SLOW&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TempGaussMC Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Yadif]]&lt;br /&gt;
| Port of YADIF (Yet Another DeInterlacing Filter) from MPlayer by Michael Niedermayer (http://www.mplayerhq.hu). It check pixels of previous, current and next frames to re-create the missed field by some local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/yadif/yadif.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod]]&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 also is not an Avisynth_C plugin (just a normal one).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183914/http://bengal.missouri.edu/~kes25c/yadifmod_v1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod2]]&lt;br /&gt;
| Yadif + yadifmod for avisynth2.6/avisynth+. See [http://forum.doom9.org/showthread.php?p=1761361 discussion].&lt;br /&gt;
| [[YV24]], [[YV16]], [[YV12]], [[YV411]], [[Y8]]&lt;br /&gt;
| [http://github.com/chikuzen/yadifmod2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Duplicate Frame Detectors ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApparentFPS]]&lt;br /&gt;
| Shows underlying framerate where a clip has had many duplicates inserted, easier than counting unique frames.&lt;br /&gt;
| (see [[ApparentFPS|docs]])&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171339 Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| Dup &lt;br /&gt;
| A robust duplicate frame detector; a frame that is determined to be close enough to its predecessor to be considered a duplicate will be replaced by a copy of the predecessor. This can significantly reduce the size of encoded clips with virtually no visual effect. Provides the capability to replace frames with a blend of all the duplicates, providing a valuable noise reduction. See [http://forum.doom9.org/showthread.php?t=41850 original] and [http://forum.doom9.org/showthread.php?t=153037 continued] discussion. &amp;lt;!--[http://forum.doom9.org/showthread.php?t=44500 another old link]--&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dup/dupnew.html Plugin] &lt;br /&gt;
[http://forum.doom9.org/showpost.php?p=1747207&amp;amp;postcount=17 Update (v2.32a)]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134930 Dupped]&lt;br /&gt;
| Another frame duplication function, similar to Dup, but hopefully more accurate. See [http://forum.doom9.org/showthread.php?t=134930 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181919/http://www.randomdestination.com/members/corran/misc/dupped/dupped.avsi Script]&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/dedup.txt DeDup] &lt;br /&gt;
| Remove (drop) duplicate frames in the interest of compression quality and speed. Resulting clip will have a variable frame rate.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
|[[ExactDedup]]&lt;br /&gt;
| ExactDedup is a filter intended to remove frames that are exact duplicates of each other, leaving only the first and (optionally) last frames of a run intact, and generates a Matroska v2 timecodes file with timing information for the ensuing stream. See [http://tasvideos.org/forum/viewtopic.php?t=12065 discussion].&lt;br /&gt;
| [[RGB24]] [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/9x2ax1rb5un02d5/ExactDedup+Version+0.03.zip Plugin]&lt;br /&gt;
|Steve Melenchuk, Arick Chan&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/getdups/getdups.html GetDups] &lt;br /&gt;
| Selecting unique duplicate frames from clip, it return frames which have copies only, by one from the series (group). Made for 8mm films.&lt;br /&gt;
| [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/getdups/getdups096.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 MorphDups]&lt;br /&gt;
| Replace duplicate frames by interpolations.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 Script]&lt;br /&gt;
| sven_x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fieldblending and Frameblending removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[c_deblend]] &lt;br /&gt;
| c_deblend is a simple blend replacing function like unblend or removeblend. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Cdeint]]&lt;br /&gt;
| Restores 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video (alternative for Restore24).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblend]]&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=760375#post760375 discussion].&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=157337 ExBlend]&lt;br /&gt;
| ExBlend is a plugin to repair damage caused by blend deinterlacing of telecined clips, which results in a double blend, every five frames, GGGBBGGGBBGGGBB etc where 'G' is good and 'B' is blend. See [http://forum.doom9.org/showthread.php?t=157337 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.mediafire.com/download/0rxe3675sfr4w9l/ExBlend_25_dll_20100226.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[FixBlendIVTC]]&lt;br /&gt;
| A blend replacing/frame restoring function for doubleblends caused by blend-deinterlacing of telecined sources. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mrestore]]&lt;br /&gt;
| Uses conditional frame evaluation to undo standard conversions with blends. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveBlend]]&lt;br /&gt;
| This filter is used to remove blended fields/frames. See [http://forum.doom9.org/showthread.php?t=75772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [//web.archive.org/web/20061113201230/http://bossanovaguitar.com/video/removeblend-0.3.zip Plugin]&lt;br /&gt;
| {{Author/violao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Restore24]]&lt;br /&gt;
| Restore24 is an AviSynth filter that is able to do the nearly impossible: Restore 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=75432 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [[RestoreFPS]]&lt;br /&gt;
| RestoreFPS reverses the kind of blending generated by [[ConvertFPS]], restoring original framerate. It will work perfectly well on any regular blend pattern.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Restorefps_v10.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Srestore]]&lt;br /&gt;
| Replacement function for mrestore, c_deblend, FixBlendIVTC and DupHq.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Srestore|script]]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| Specials&lt;br /&gt;
| Helps restore video with blended fields/frames using a reference source. See [http://forum.doom9.org/showthread.php?t=165030 discussion] and much more information [http://horman.net/doctorwho/specials.php here] and [http://forum.doom9.org/showthread.php?t=168832 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://horman.net/specials.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| Unblend&lt;br /&gt;
| Unblend is based on warpenterprise's deblend algorithm and neuron2's decimate code, with YV12 support only. The aim is the same of deblend. See [http://forum.doom9.org/showthread.php?t=55019 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/unblend_5F25_dll_2003.zip Plugin]&lt;br /&gt;
| Bach&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Film Damage correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/descratch/descratch.html DeScratch]&lt;br /&gt;
| DeScratch removes vertical scratches from films. Also it can be used for removing of horizontal noise lines such as drop-outs from analog VHS captures (after image rotation). &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/descratch/descratch110.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/despot/despot.html DeSpot]&lt;br /&gt;
| This filter is designed to remove temporal noise in the form of dots (spots) and streaks found in some videos. The filter is also useful for restoration (cleaning) of old telecined 8mm (and other) films from spots (from dust) and some stripes (scratches).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/despot/despot3610.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[deVCR]]&lt;br /&gt;
| deVCR eliminates (to a certain degree) the annoying horizontal lines that keep crawling around your VHS or Beta recorded video. See discussion [http://forum.videohelp.com/threads/323093-How-to-use-DeVCR-for-Avisynth here] and [http://www.digitalfaq.com/forum/video-restore/2607-tracking-lines-video.html here.]&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| Ricardo Garcia&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 VideoFred's Film Restoring]&lt;br /&gt;
| A suite of scripts for film restoring.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 Script]&lt;br /&gt;
| videoFred&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveDirt]]&lt;br /&gt;
| RemoveDirt is a temporal cleaner for AviSynth 2.5x. It has now become an AVS script function, which involves RestoreMotionBlocks and various filters from the [[RemoveGrain]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveDirt Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frequency Interference removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq.html DeFreq]&lt;br /&gt;
| Defreq uses Fast Fourier Transform method for frequency selecting an removing. See [http://forum.doom9.org/showthread.php?t=82978 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq07.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/FanFilter/FanFilter.html FanFilter] &lt;br /&gt;
| Regular vertical frequency interference is filtered in spatial domain.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/FanFilter/FanFilter.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IVTC &amp;amp; Decimation ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AnimeIVTC]]&lt;br /&gt;
| What it does:&lt;br /&gt;
* High quality adaptative field matching for hard telecine&lt;br /&gt;
* Bob, remove the blends and decimate back to the desired framerate for DHT/field-blended&lt;br /&gt;
* Creating a VFR clip for hybrid sources&lt;br /&gt;
* Bob the interlaced credits, blend-deinterlacing the background while doing minimal damage on the progressive credits, convert their framerate to match the episode's and splice them with it OR leave them @ 30p to create a VFR clip&lt;br /&gt;
* Very good combing removal and anti-aliasing functions&lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=138305] and See [http://forum.doom9.org/showthread.php?p=1673928] for mod version.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| BruteIVTC&lt;br /&gt;
| Some information [http://web.archive.org/web/20141221181254/http://privatepaste.com/download/77d973422b here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091214015625/http://mf.creations.nl/avs/filters/BruteIVTC.dll Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 DOCI]&lt;br /&gt;
| Destruction of Chroma Interlacing fixes a problem where you captured pulleddown video in YV12.  In the combed frames, the chroma from two frames has been blended, leading to a ghosting effect when IVTC'd.  This filter reconstructs the chroma exactly and fixes the problem.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| FDecimate&lt;br /&gt;
| The FDecimate() filter provides extended decimation capabilities not available from Decimate(). It can remove frames from a clip to achieve the desired frame rate, while retaining audio/video synchronization. It preferentially removes duplicate frames where possible. (&amp;quot;FDecimate&amp;quot; stands for &amp;quot;Free Decimate&amp;quot;, which implies that the output frame rate may be freely chosen, and is not limited to 1-in-N decimation).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/fdecimate/fdecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| GreedyHMA&lt;br /&gt;
| GreedyHMA is an Avisynth filter that executes DScaler's Greedy/HM algorithm code to perform pulldown matching, filtering, and video deinterlace. It has pretty much been superseded by Donald Graft's [[DeComb]] package. However there may be occasions where it sometimes gives preferable results, especially with some bad [[PAL]] clips.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/GreedyHMA.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[IT]]&lt;br /&gt;
| Inverse Telecine plugin.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/002p6yed7dzi8f3/IT_YV12_0103_width8K.zip?dl=1 Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| ivtc_txt60mc&lt;br /&gt;
| Deinterlaces telecined footage with that has been overlayed scrolling text at 60i. More information [http://web.archive.org/web/20140420184542/http://doom10.org/index.php?topic=292.msg5499 here] (last post).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1466105&amp;amp;postcount=4 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} aka Firesledge&lt;br /&gt;
|-&lt;br /&gt;
|JIVTC&lt;br /&gt;
|JIVTC applies inverse telecine in a way to minimize artifacts often seen on Japanese TV broadcasts followed by recalculating the fields that might still contain some.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://raw.githubusercontent.com/lovesyk/avisynth-scripts/master/JIVTC.avsi Script]&lt;br /&gt;
|[http://github.com/lovesyk lovesyk]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168397 MDec2]&lt;br /&gt;
|MDec2 is a 2 pass decimating filter, acting much like the MultiDecimate filter.&lt;br /&gt;
|[[RGB32]], [[RGB24]], ][[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/3ajn640ujxr8jnx/MDec2_25%2626_dll_v1.01_20150330.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| MultiDecimate&lt;br /&gt;
| Removes N out of every M frames, taking the frames most similar to their predecessors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=51901&amp;amp;perpage=20&amp;amp;pagenumber=2 discussion].&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/multidecimate/multidecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| PFR&lt;br /&gt;
| PFR (Progressive Frame Restorer) is an Avisynth filter that attempts to produce progressive frames from a mixed progressive/interlaced/IVTCed source.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ReMatch]]&lt;br /&gt;
| ReMatch is a field matching plugin, specifically for anime.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/rematch_5F25_dll_20050306.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| RePal&lt;br /&gt;
|  [http://forum.doom9.org/showthread.php?t=48401 Discussion] / [http://forum.doom9.org/showthread.php?p=1092552#post1092552 repal_29.97Hz_mod]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/repal_5F25_dll_20030523.zip Plugin] - [http://forum.doom9.org/attachment.php?attachmentid=8028&amp;amp;d=1201414683 Mod]&lt;br /&gt;
| Bach&lt;br /&gt;
|-&lt;br /&gt;
| SmartDecimate&lt;br /&gt;
| Smart Decimate removes telecine by combining telecine fields and decimating at the same time, which is different from the traditional approach of matching telecine frames and then removing duplicates. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=60031 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/tel/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The Telecide and Decimate filters can be combined to implement IVTC.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TIVTC]]&lt;br /&gt;
| A package containing these 7 filters: TFM, TDecimate, MergeHints, FrameDiff, FieldDiff, ShowCombedTIVTC, and RequestLinear. Also contains these 3 conditional functions: IsCombedTIVTC, CFieldDiff, and CFrameDiff. Designed primarily for IVTC operations. [http://forum.doom9.org/showthread.php?t=82264 Discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181748/http://bengal.missouri.edu/~kes25c/TIVTCv105.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| TPRIVTC&lt;br /&gt;
| TPRIVTC stands for TMPEG InVerse Telecine, i.e. the process where an 29.97fps interlaced NTSC clip is converted to 23.976fps while removing interlaced frames. [http://web.archive.org/web/20030808191810/http://kurosu.inforezo.org/avs/TPRIVTC/index.html Readme]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/tprivtc_5F25_dll_20040930.zip Plugin]&lt;br /&gt;
| daxab, {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
| UnComb&lt;br /&gt;
| Filter for matching up even and odd fields of properly telecined [[NTSC]] or [[PAL]] film source video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=52333 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/UnComb.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167875 WeaveMan]&lt;br /&gt;
| Remove arbitrary pulldown patterns manually; meant for perfectionists to undo non-standard 24-&amp;gt;25 fps, 25-&amp;gt;29.97 fps, etc. telecine conversions, along with other weird telecine anomalies created by broadcasters speeding up film-sourced content. See sample case [http://forum.doom9.org/showthread.php?p=1630931&amp;amp;highlight=weaveman#post1630931 here].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131208232913/http://chidragon.thedessie.com/Doom9/WeaveMan-v0.2.zip Plugin]&lt;br /&gt;
| ChiDragon&lt;br /&gt;
|-&lt;br /&gt;
| [[IvtcBlend]]&lt;br /&gt;
| Waka demonstrated an IvtcBlend function that uses the information in the &amp;quot;extra&amp;quot; fields of a telecined source to help combat temporal noise.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ghost Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FixVHSOversharp&lt;br /&gt;
| FixVHSOversharp attempts to repair the light and dark halos that follow high contrast edges found in VHS sources. See [http://web.archive.org/web/20131014010552/http://www.videohelp.eu/forum/avisynth/2851-avisynth-fixvhsoversharp-beta.html discussion.] &lt;br /&gt;
| | [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091026142456/http://www.geocities.com/mrtibsvideo/fixvhsoversharp.html Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20091027001215/http://geocities.com/mrtibsvideo/ MrTibs]&lt;br /&gt;
|-&lt;br /&gt;
| GhostBuster&lt;br /&gt;
| Ghostbuster is an AviSynth filter for removing &amp;quot;ghosts&amp;quot; from a clip. A ghost in this context is a faint copy of the picture offset horizontally. It works by either subtracting or adding the image from itself at the specified offset. With some tweaking the result, while not perfect, can be very pleasing. See discussion [http://forum.doom9.org/showthread.php?t=35339 here] and [http://web.archive.org/web/20121215130729/http://www.videohelp.eu/forum/avisynth/14691-ghostbuster-filter-avisynth.html here.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12721&amp;amp;d=1330678606 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20140420183804/http://www.videohelp.eu/forum/avisynth/14679-sansgrips-avisynth-filters.html SansGrip]&lt;br /&gt;
|-&lt;br /&gt;
| LGhost&lt;br /&gt;
| Plugin intended for ghost removal but can also reduce edge (ringing) artifacts. See [http://forum.doom9.org/showthread.php?p=1176552#post1176552 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/LGhost0301.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Logo Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeKafka]]&lt;br /&gt;
| This fairly simple filter washes away those annoying bugs from broadcast clips.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| poptone&lt;br /&gt;
|-&lt;br /&gt;
| DeLogo&lt;br /&gt;
| DeLogo Filter for VirtualDub. Removes static elements, e.g. logos or watermarks, from the video stream. It can remove either opaque elements or alpha blended, the latter even without destroying the picture beneath. &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/delogo132/delogo.html Plugin] &amp;amp; [http://forum.doom9.org/showthread.php?t=119447 Script]&lt;br /&gt;
| Karel Suhajda&lt;br /&gt;
|-&lt;br /&gt;
| [[InpaintFunc]]&lt;br /&gt;
| Script for logo removal using inpainting. Can remove alpha blended or opaque logos with a basic postprocessing to hide artifacts.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/InpaintFunc.avs Script]&lt;br /&gt;
| Reuf Toc&lt;br /&gt;
|-&lt;br /&gt;
| [[rm_logo]]&lt;br /&gt;
| Combination of deblending and inpainting to remove logos with adjustable postprocessing to further hide artifacts. See [http://forum.doom9.org/showthread.php?t=134919]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rm_logo.avs Script]&lt;br /&gt;
| Spuds &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154559 s_ExLogo]&lt;br /&gt;
|De-logo function with clipping (Dekafka mod).&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://www.mediafire.com/download/40cpnnctd0uutpv/s_ExLogo_1.1.zip Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| X-Logo&lt;br /&gt;
| X-Logo AviSynth plugin and VirtualDub filter. Removes opaque logos. See [http://forum.doom9.org/showthread.php?t=56660 discussion] and [http://forum.videohelp.com/threads/273109-Remove-an-opaque-logo-using-Xlogo-in-Avisynth tutorial].&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.marzocchi.net/Olafsen/Software/X-Logo?setview=en Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20041204210505/http://members.verizon.net/~vze3kkvm/filters.html Leuf]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Luma Equalization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Antiflicker]]&lt;br /&gt;
| &amp;quot;A quick-and-dirty port of my VirtualDub filter (which sucks, by the way; it was one of my first filters).&amp;quot; &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?p=224573#post224573 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/antiflicker_5F25_dll_20030304.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker.html DeFlicker]&lt;br /&gt;
| Can remove old film intensity flicker by temporal mean luma smoothing. Can also correct blinding of automatic gain control after flashes.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker04.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Dumb Deflicker]&lt;br /&gt;
| Gathers average luma of frames, smoothens that with TemporalSoften, and applies the obtained difference to the original input.  It is pretty simple, read &amp;quot;dumb&amp;quot;. See [http://forum.doom9.org/showthread.php?p=1326599#post1326599 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines.html EquLines]&lt;br /&gt;
| Equalizes total luminosity in pairs of even and odd lines. Useful for removing inter-line differences from telecined films.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines03.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/lmflicker.txt LMFlicker]&lt;br /&gt;
| LMFlicker is intended to reduce flickering in some film/VHS transfers. FieldFade is a similar concept, but applied on a per-field basis, to reduce combing in a video where fades were applied after telecine.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Local Deflicker]&lt;br /&gt;
| Deflickers only part of a frame. See [http://forum.doom9.org/showthread.php?t=159493 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Script]&lt;br /&gt;
| prokhozhijj&lt;br /&gt;
|-&lt;br /&gt;
| [[ReduceFlicker]]&lt;br /&gt;
| Reduces temporal oscillations in clips; should be applied before deinterlacing. Contains ReduceFlicker, ReduceFluctuations, and LockClense. See [http://videoprocessing.fr.yuku.com/topic/24/ReduceFlicker-05 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/ReduceFlicker Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/ TimeLapseDF]&lt;br /&gt;
| Designed to remove luminosity flicker in time lapse photography. Unlike most other flicker removal filters, utilizes cumulative distribution function in addition to average frame luminosity. See [http://timescapes.org/phpBB3/viewtopic.php?f=8&amp;amp;t=2410 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/TimeLapseDF.dll 32-Bit Plugin]&lt;br /&gt;
| {{Author/Denis Zhitenev}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Vinverse]]&lt;br /&gt;
| A simple but effective plugin to remove residual combing.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/vinverse/releases Plugin]&lt;br /&gt;
| {{Author/Didée}}, {{Author/tritical}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=106898 wdeflicker]&lt;br /&gt;
| Modifies luma of a source clip by refering to a temporally super-smoothed clip. Heights of source and reference clips must match. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5417&amp;amp;d=1139174468 Plugin]&lt;br /&gt;
| Osmiridium&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Rainbow &amp;amp; Dot Crawl Removal|Rainbow &amp;amp; Dot Crawl Removal]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Bifrost]]&lt;br /&gt;
| Bifrost uses temporal blending to remove or at least reduce the effect of rainbows.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/dubhater/vapoursynth-bifrost/releases/download/v2.0-avs/avisynth-bifrost-v2.0.7z Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, dubhater&lt;br /&gt;
|-&lt;br /&gt;
| [[CC]]&lt;br /&gt;
| Dot crawl and rainbow removal.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.chiyoclone.net/dl/cc_20040522.lzh Plugin]&lt;br /&gt;
| {{Author/chiyo-clone}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Checkmate]]&lt;br /&gt;
| Spatial-temporal dot crawl removal. See [http://github.com/tp7/checkmate Checkmate for AviSynth 2.6].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Checkmate Plugin]&lt;br /&gt;
| {{Author/mf}} / prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain2]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script based on [[ChubbyRain]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain2.avsi Script]&lt;br /&gt;
| Lothar&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCrawl]]&lt;br /&gt;
| Spatial and temporal dot crawl removal, particularly for animated material.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/decrawl_20060924.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCross]]&lt;br /&gt;
| Cross Color Reduction. Also known as rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeCross0002.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeDot]]&lt;br /&gt;
| Removes dot crawl and may also be useful for rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeDot_YV12_0002.zip Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeRainbow]]&lt;br /&gt;
| A simple script to reduce rainbows. See [http://forum.doom9.org/showthread.php?p=398106#post398106 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/images/DeRainbow.avsi Script]&lt;br /&gt;
| sh0dan&lt;br /&gt;
|-&lt;br /&gt;
| [[DFMDeRainbow]]&lt;br /&gt;
| Creates mask to process only edges; rainbows are removed by hitting chroma planes with two passes of FluxSmooth (hence &amp;quot;Double-Flux-Mask&amp;quot;).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/DFMDeRainbow-20140223.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/guavacomb.htm GuavaComb]&lt;br /&gt;
| Removes dot crawl, rainbows, and some kinds of shimmering. See [http://forum.doom9.org/showthread.php?t=37456 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/guavacomb_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeCrawl]]&lt;br /&gt;
| Purely spatial; only targets pixels for dot crawl removal if luma is fluctuating and (optionally) chroma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeCrawl-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeRainbow]]&lt;br /&gt;
| Purely spatial; only targets pixels for derainbowing if chroma is fluctuating and (optionally) luma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeRainbow-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[mfRainbow]]&lt;br /&gt;
| Derainbows in areas of high Y, U and V frequencies, which fluctuate heavily.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/MfRainbow-v0.32.avsi Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Rainbow_Smooth]]&lt;br /&gt;
| A small spatial derainbow function. It uses [[SmoothUV]] to smooth out chroma and edge masking to prevent color bleeding.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rainbow_smooth.avsi Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[SmartSSIQ]]&lt;br /&gt;
| SSIQ can alter the color on the entire picture. So this script first applies SSIQ to the entire picture. Then it locates the edges. Finally, it layers ONLY the de-rainbowed edges onto the original video.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SmartSSIQ.avsi Script]&lt;br /&gt;
| LB&lt;br /&gt;
|-&lt;br /&gt;
| [[SSIQ]]&lt;br /&gt;
| Rainbow remover. A port of the VirtualDub plugin [http://www.doki.ca/filters/ Smart Smoother IQ.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/ssiq_20070304.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TComb]]&lt;br /&gt;
| A temporal comb filter (it reduces cross-luminance (rainbowing) and cross-chrominance (dot crawl) artifacts in static areas of the picture). See [http://github.com/Elegant996/TComb TComb for AviSynth 2.6.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TComb Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YARK]]&lt;br /&gt;
| Yet Another Rainbow Killer. Based on mfRainbow v0.31, chubbyrain2, and various other scripts shown [http://forum.doom9.org/showthread.php?t=141165 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YARK|Script]]&lt;br /&gt;
| jase99&lt;br /&gt;
|-&lt;br /&gt;
| [[ASTDR]]&lt;br /&gt;
| ASTDR uses mt_motion for motion and edge to deal with moving Rainbow and apply mask once more in the opposite way to keep around the lines as they are. It uses DeCross and other filters to remove Rainbow. ASTDRmc avoids chroma bleeding in moving scenes. See [http://forum.doom9.org/showpost.php?p=1665492&amp;amp;postcount=27 post on doom9.org].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[ASTDR|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stabilization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[CelStabilize]]&lt;br /&gt;
| Script which holds a fixed background steady.  Doesn't work well with pans or fades.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/CelStabilize Script]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| [[DePan]]&lt;br /&gt;
| Tools for estimation and compensation of global motion (pan) .See [http://avisynth.org.ru/depan/depan.html]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/depan/depan.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|DepanSafe&lt;br /&gt;
|Another DePan stabilization script. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[DepanSafe_source|Script]]&lt;br /&gt;
|[http://pastebin.com/u/tophf tophf]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Deshaker3D]&lt;br /&gt;
| Experimental 3D image stabiliser (VDub [http://www.guthspot.se/video/deshaker.htm Deshaker] required).&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 SpatialAlign]&lt;br /&gt;
|Fix spatial alignment between two clips containing similar scenes.&lt;br /&gt;
|Any?&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 Script]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[Stab]]&lt;br /&gt;
| Simple but powerful script to remove small high frequency jitter that appears often on old/bad transfers. See [http://forum.doom9.org/showthread.php?p=1222830#post1222830]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Stab.avsi Script]&lt;br /&gt;
| g-force&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Stabilization Tools Pack]&lt;br /&gt;
| A set of tools to work with common stabilization issues, mainly from telecine process.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/TBC TBC]&lt;br /&gt;
| Stabilizes horizontal jitter in video from analog VCRs, similar to the function of a Time Base Corrector.(note: will cause SEt's Avisynth 2.6 MT to stop working)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Denoisers ==&lt;br /&gt;
Strength/Quality of Denoisers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(need subclassification)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AdaptiveMedian]]&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.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/AdaptiveMedian Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Atc&lt;br /&gt;
| Alternate Temporal Cleaner; a fast temporal cleaner with some cool stuff.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/atc%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| ColourizeSmooth&lt;br /&gt;
| ColourizeSmooth uses a general colourizing algorithm to smooth a given clip. ColourizeSmooth is based on this [http://www.cs.huji.ac.il/~yweiss/Colorization algorithm.] See [http://forum.doom9.org/showthread.php?t=91344 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourizesmooth_5F25_dll_20050429.zip Plugin]&lt;br /&gt;
| insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kevina.org/temporal_median/ ConditionalTemporalMedian]&lt;br /&gt;
|This filter is designed to remove temporal noise in the form of small dots and streaks found in some videos. A common cause of this is dirty VHS heads but I have also seen small black or white streaks in broadcast material. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/temporal_median/CondTemporalMedian-0.93.zip Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159148 Deathray]&lt;br /&gt;
|OpenCL GPU accelerated spatial/temporal non-local means de-noising. See [http://raw.githubusercontent.com/JawedAshraf/Deathray/master/Deathray%20readme.txt readme] and GitHub source code [http://github.com/JawedAshraf/Deathray/ repository].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/JawedAshraf/Deathray/raw/master/Deathray.dll Plugin]&lt;br /&gt;
|[http://github.com/JawedAshraf Jawed]&lt;br /&gt;
|-&lt;br /&gt;
| [[DeNoise]]&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. The global variance value can be specified or it can be computed from a window. The global variance can have one value for the entire clip or can vary frame to frame linearly or computed from a window with its coordinates linearly moving with frame numbers.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeNoise Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#dnr2 DNR2]&lt;br /&gt;
| Dynamic Noise Reduction 2 is based on the VirtualDub [http://www.shdon.com/vid/dnr DNR] filter by Steve Don and Avery Lee. &lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dnr2_5F25_dll_20021225.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeSaltPepper]]&lt;br /&gt;
| Remove white and black noise.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/DeSaltPepper Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| ExtendedBilateral&lt;br /&gt;
| ExtendedBilateral extends the regular bilateral filtering process by adding an &amp;quot;initial estimation preprocess.&amp;quot; It is similar in operation to [[TBilateral]] and offers many of the same options (though not all) while adding the preprocess. See [http://forum.doom9.org/showthread.php?t=96015 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/extendedbilateral_5F25_dll_20050622.zip Plugin]&lt;br /&gt;
|insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [[FFTQuiver]]&lt;br /&gt;
| Remove periodic noise. Useful for analog interference.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/FFTQuiver Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| SmootherHiQ&lt;br /&gt;
| VirtualDub's ''Smart Smoother High Quality'' for AviSynth, see archived [http://web.archive.org/web/20040611013235/http://cultact-server.novi.dk/kpo/avisynth/smooth_hiq_as.html documentation].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/smoothhiq_5F25_dll_20030208.zip Plugin]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TNLMeans]]&lt;br /&gt;
| TNLMeans is an implementation of the NL-means denoising algorithm. - [http://forum.doom9.org/showthread.php?t=111344 discussion] - [http://forum.doom9.org/showthread.php?t=168090 TNLMeans built with ICL10]&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=171817 TfNLMeans] - an AviSynth 2.6 fork of TNLMeans 1.0.3&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TNLMeansv103.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| KNLMeansCL&lt;br /&gt;
| KNLMeans is an optimized OpenCL implementation of the Non-local means denoising algorithm. See [http://forum.doom9.org/showthread.php?t=171379 discussion.]. View on [http://github.com/Khanattila/KNLMeansCL/wiki/Filter-description GitHub].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/Khanattila/KNLMeansCL/releases Plugin]&lt;br /&gt;
| [http://github.com/Khanattila Khanattila]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172966 xNLMeans]&lt;br /&gt;
|xNLMeans is an AviSynth plugin implementation of the Non Local Means denoising proposition. This implementation provides several optimizations and extensions over the original proposition and other implementations.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/4stpv24pvpfclzm/xNLMeans_0.03_20160324.zip Plugin] &amp;lt;!--[http://www.mediafire.com/download/bmldoqgmmboij8n/xNLMeans_0.01_151212.zip older version]--&amp;gt;&lt;br /&gt;
|martin53&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatial Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[_2DCleanYUY2]]&lt;br /&gt;
| Averages pixels in a configurable radius around a source pixel that are within a configurable threshold of the central pixel. A port of the VirtualDub plugin [{{N2Moved}}/2dcleaner.html 2D Cleaner.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/vh7a5xmdpyj3d8u/_2DCleanYUY2_v0_10_mod_for_smp_YV12.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}, {{Author/xeon533}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DctFilter]]&lt;br /&gt;
| An experimental filter that operates on DCT coefficients. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DctFilter Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DCTFun]]&lt;br /&gt;
| A fast spatial denoiser that does a hard thresholding of a complete 4x4 ICT transform.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DCTFun Plugin]&lt;br /&gt;
| Prunedtree &lt;br /&gt;
|-&lt;br /&gt;
| eDeen&lt;br /&gt;
| eDeen is a ultra powerfull spatial denoiser for very experienced encoders only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/eDeen%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3b]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/frfun3b_rev3.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3d]]&lt;br /&gt;
| Fractal denoising; frfun3d is a quality optimized frfun3b. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/xqxfy59pcv3ea1q/frfun3d_r1.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun7]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Frfun7 Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20101201051903/http://gpubilateral.sourceforge.net/ GPUBilateral]&lt;br /&gt;
| In short, bilateral filter is a edge-preserving smooth filter. See [http://forum.doom9.org/showthread.php?t=136370 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/gpubilateral/files/ Plugin]&lt;br /&gt;
| Sompon Virojanadara    &lt;br /&gt;
|-&lt;br /&gt;
|Kuwahara&lt;br /&gt;
|This filter is an edge preserving spatial noise reduction filter. It applies spatial smoothing while preserving the edges. See [http://forum.doom9.org/showthread.php?p=1689773 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Kuwahara_v11.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth.html Msmooth]&lt;br /&gt;
| Masked smoother, designed specifically for anime.&lt;br /&gt;
| [[YV12]], [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth202.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothUV]]&lt;br /&gt;
| A spatial denoising plugin based on [{{N2Moved}}/smooth.html Smart Smoother] and [{{N2Moved}}/hiq/smoothhiq.html Smart Smooth HiQ].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/smoothuv_5F25_dll_20030902.zip Plugin]&lt;br /&gt;
| {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SPresso]]&lt;br /&gt;
|A fast script to make SD content compress better while keeping the &amp;quot;original look&amp;quot;.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=867316&amp;amp;postcount=23 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TBilateral]] &lt;br /&gt;
| TBilateral is a spatial smoothing filter that uses the bilateral filtering algorithm.  It does a nice job of smoothing while retaining picture structure.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TBilateralv0911.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnDot]]&lt;br /&gt;
| UnDot is a simple median filter for removing dots, that is stray orphan pixels and mosquito noise. It clips each pixel value to stay within min and max of its eight surrounding neighbors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;postid=205442#post205442 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/UnDot.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/vague/vaguedenoiser.html VagueDenoiser]&lt;br /&gt;
| This is a Wavelet based Denoiser. Basically, it transforms each frame from the video input into the wavelet domain, using various wavelet filters. Then it applies some filtering to the obtained coefficients. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=56871 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/vaguedenoiser_5F25_dll_20050926.zip Plugin]&lt;br /&gt;
| {{Author/Lefungus}}, {{Author/Kurosu}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VerticalCleaner]]&lt;br /&gt;
| Fast vertical cleaner. Parameter information [http://videoprocessing.fr.yuku.com/sreply/651/Can-use-quantile-like-vertical-median-filter here.] Explanation of mode 2 [http://videoprocessing.fr.yuku.com/sreply/649/Can-use-quantile-like-vertical-median-filter here.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Cnr2]]&lt;br /&gt;
| A fast chroma denoiser. Very effective against stationary rainbows and huge analogic chroma activity. Useful to filter VHS/TV caps. See [http://forum.doom9.org/showthread.php?t=78905 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181313/http://bengal.missouri.edu/~kes25c/cnr2_v261.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FluxSmooth]]&lt;br /&gt;
| Examines each pixel and compares it to the corresponding pixel in the previous and last frame.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20070225212908/http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip Plugin]&lt;br /&gt;
| {{Author/SansGrip}}, {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/grapesmoother.htm GrapeSmoother]&lt;br /&gt;
| This filter averages out visual noise between frames.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/grapesmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| MVDegrain&lt;br /&gt;
| Strong and effective temporal denoiser. Part of the [[MVTools]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MVTools Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/fizick/docs/english/externalfilters/temporalcleaner.htm TemporalCleaner]&lt;br /&gt;
| TemporalCleaner is an AviSynth port of the original port of the VirtualDub filter TemporalCleaner made by [http://home.earthlink.net/~casaburi/download/#temporalcleaner Jim Casaburi.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/temporalcleaner_5F25_dll.zip Plugin]&lt;br /&gt;
| vlad59&lt;br /&gt;
|-&lt;br /&gt;
| [[TTempSmooth]] &lt;br /&gt;
| TTempSmooth is a motion adaptive (it only works on stationary parts of the picture), temporal smoothing filter.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TTempSmoothv094.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Temporal Degrain]]&lt;br /&gt;
| SLOW but very effective at removing most grain from video sources.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/TemporalDegrain.avs Script]&lt;br /&gt;
| Didée, Sagekilla &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatio-Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/index.html Convolution3D]&lt;br /&gt;
| Convolution3D is a spatio-temporal smoother, it applies a 3D convolution filter to all pixels of consecutive frames. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38281 discussion], [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=49806 continued].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/con3d-yv12-beta5.zip Plugin]&lt;br /&gt;
| {{Author/Vlad59}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deen]]&lt;br /&gt;
| Deen is a set of assembly-optimised denoisers, like various 3d and 2d convolutions.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Deen Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| DenoiseMF&lt;br /&gt;
| A fast and accurate denoiser for a Full HD video from a H.264 camera. See [http://forum.doom9.org/showthread.php?t=162603 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web-beta.archive.org/web/20160315085026/http://forum.doom9.org/showthread.php?t=162603 Script]&lt;br /&gt;
| rean&lt;br /&gt;
|-&lt;br /&gt;
| [[dfttest]]&lt;br /&gt;
| A 2D/3D frequency domain denoiser. See [http://forum.doom9.org/showthread.php?t=132194 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/dfttest-1.9.4.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| dfttestMC&lt;br /&gt;
| A script that motion compensates dfttest. See [http://forum.doom9.org/showthread.php?t=147676 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147676 Script]&lt;br /&gt;
| thewebchat&lt;br /&gt;
|-&lt;br /&gt;
| [[DeGrainMedian]]&lt;br /&gt;
| Two stage Spatio-Temporal Limited Median filter for grain removal. [http://forum.doom9.org/showthread.php?t=80834 See]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/degrain/degrainmedian082.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]&lt;br /&gt;
| A 3D Frequency Domain filter - gives strong denoising and moderate sharpening. See [http://forum.doom9.org/showthread.php?t=85790 original] discussion and updated version [http://forum.doom9.org/showthread.php?t=174347 here].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], [[YUY2]]&lt;br /&gt;
| [http://github.com/pinterf/fft3dfilter/releases Plugin]&lt;br /&gt;
| {{Author/Fizick}}, martin53, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
| FFT3DGPU &lt;br /&gt;
| Similar algorithm to FFT3DFilter, but uses graphics hardware for increased speed. See [http://forum.doom9.org/showthread.php?t=89941 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/tsp/fft3dgpu0.8.2.7z Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [[hqdn3d]] &lt;br /&gt;
| High Quality DeNoise 3D is an Avisynth 2.5 port of the MPlayer filter of the same name. It performs a 3-way low-pass filter, which can completely remove high-frequency noise while minimizing blending artifacts. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/hqdn3d/hqdn3d-0.11.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MC_Spuds]]&lt;br /&gt;
| Motion compensated noise removal with sharpening. Extremely slow, but extremely effective.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Spuds, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MCTemporalDenoise]]&lt;br /&gt;
| Another high quality motion compensated noise removal script with an accompanying post-processing component (with loads of excess feature such as MC-Post-sharpening, MC-antialiasing, deblock, edgeclean and much more)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139766 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/mipsmooth.htm MipSmooth]&lt;br /&gt;
| MipSmooth is a reinvention of [[SmoothHiQ]] and [[Convolution3D]]. MipSmooth was made to enable smoothing of larger pixel areas than 3x3(x3), to remove blocks and smoothing out low-frequency noise. See [http://forum.doom9.org/showthread.php?t=64940 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mipsmooth_5F25_dll_20051223.zip Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/nomosmooth.htm NoMoSmooth]&lt;br /&gt;
| NoMoSmooth temporally denoises relatively static areas and a spatially denoises moving parts. In addition to this motion-based approach, NoMoSmooth employs another technique to try to retain as much existing detail as possible: only pixels that are &amp;quot;fluctuating&amp;quot; are smoothed. See [http://forum.doom9.org/showthread.php?t=37471 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/nomosmooth_5F25_dll_200309015.zip Plugin]&lt;br /&gt;
| SansGrip&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/peachsmoother.htm PeachSmoother]&lt;br /&gt;
| PeachSmoother was designed to cope with the oddities of analog broadcast TV.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/peachsmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| RemoveDirtMC&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=1485300#post1485300 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://pastebin.com/PgkQc9X4 Script]&lt;br /&gt;
| Nephilis/A.SONY&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrain]]&lt;br /&gt;
| RemoveGrain is a plugin package containing various plugins for spatial and temporal denoising, repairing, sharpening, deinterlacing, and other utility functions.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveGrain Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrainHD]]&lt;br /&gt;
| RemoveGrainHD is like RemoveGrain but intended for high definition content. It includes various spatial and temporal functions. See [http://web.archive.org/web/20130412014246/http://www.removegrainhd.de.tf/ documentation.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Denoisers/Spatial_Denoisers/RemoveGrainHD___(0.5_-_2011-08-11).7z Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| RemoveNoiseMC&lt;br /&gt;
| Motion compensated filter for removing noise, larger spots and other dirt. Written as an alternative to the old Dust. Last update Nov 2006. It uses mvtools v1. Jenyok collected together all RemoveNoise and various filters functions and adapted to MVTools v2.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110078 Script]&lt;br /&gt;
| Heini011&lt;br /&gt;
|-&lt;br /&gt;
| [[RgTools]]&lt;br /&gt;
| Modern rewrite of &amp;lt;tt&amp;gt;[[RgTools/RemoveGrain|RemoveGrain]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Repair|Repair]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/BackwardClense|BackwardClense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Clense|Clense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/ForwardClense|ForwardClense]]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[[RgTools/VerticalCleaner| VerticalCleaner]]&amp;lt;/tt&amp;gt; all in a single plugin. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/pinterf/RgTools/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SMDegrain]]&lt;br /&gt;
|SMDegrain is a convenience function for using MDegrain, including 16bit and interlaced support, with extra capabilities for light sharpening and spatial filtering.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-0d-A-Quality-Denoising-Solution Script]&lt;br /&gt;
|{{Author/Dogway}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STMedianFilter]]&lt;br /&gt;
|STMedianFilter is a (slightly motion compensated) spatial/temporal median filter. It fairly very fine grained, using only adjacent pixels in space and time, so it looks at the adjacent 26 locations to filter each location. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/STMedianFilter.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STPresso]]&lt;br /&gt;
|A fast script to make SD/720p content compress better without losing detail and original grain structure. See [http://forum.doom9.org/showthread.php?p=1551871#post1551871 discussion.]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1551871&amp;amp;postcount=2 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| zzz_denoise&lt;br /&gt;
| Simple wrapper around a combination of dfttest and MDegrain3. Requires the [[External_filters#Deepcolor_Filters|Dither]] package.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1390594#post1390594 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adjustment Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Averaging/Layering/Masking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Average]]&lt;br /&gt;
| A simple plugin that calculates weighted frame-by-frame average from multiple clips. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Average Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ AviSynthGimpLayer]&lt;br /&gt;
|AviSynth Gimp-style Layer merge plugin.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ Plugin]&lt;br /&gt;
| [http://sourceforge.net/u/panzerboy66/profile/ panzerboy66]&lt;br /&gt;
|-&lt;br /&gt;
| BlockAverage&lt;br /&gt;
| A simple filter that just averages the Y values of each 2x2 pixel block in a YV12 image – U and V values are left alone as they already common to each 2x2 block in a progressive YV12 image. Just made to see if it satifies the requirements in [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=91580&amp;amp;perpage=10&amp;amp;pagenumber=1 this thread].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/blockaverage01.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|CheckMask&lt;br /&gt;
|A YV12 spatial dot finding filter for AviSynth.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/checkmask_5F25_dll_20050310.zip Plugin]&lt;br /&gt;
|[http://web.archive.org/web/20090618112048/http://kawaii-shoujo.net/AntiAliased/index.html Dan Donovan]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159274 ColorScreenMask]&lt;br /&gt;
|ColorScreenMask is a special effects plugin for processing chroma key (i.e., a green screen or blue screen) backgrounds. It uses color thresholds rather than absolute values as the criteria for setting the alpha channel transparency. &lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=15699&amp;amp;d=1483786544 Plugin]&lt;br /&gt;
|Grandpa Oddball&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=99890 ColourMask]&lt;br /&gt;
|Creates colour masks.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/colourmask_20050911.zip Plugin]&lt;br /&gt;
|{{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/tree/master/avisynth CombMask]&lt;br /&gt;
|A filter to create and process comb masks. These filters were written from scratch, but most of logic comes from tritical's [[TIVTC]] plugin.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Fusion]]&lt;br /&gt;
|Pyramidal image processing for video, it uses image pyramids to blend clips together (more commonly used in the creation of HDR images and image stitching).&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/fusion.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GraMaMa]]&lt;br /&gt;
| Gradient Mask Maker: Creates a mask (either a gradient or black/white) given a prescribed shape (such as circle, ellipse, line, square or rectangle).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/GraMaMa_v02.zip Plugin]&lt;br /&gt;
| {{author/E-Male}}, &lt;br /&gt;
{{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/imck-2.3.0-readme.html ImasMultiColorKeying]&lt;br /&gt;
|Chroma keying filter (Japanese)&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/ Plugin]&lt;br /&gt;
|Umezawa Takeshi&lt;br /&gt;
|-&lt;br /&gt;
|MaskCrop&lt;br /&gt;
|Non-clip plugin and function to speed up filtering with a mask.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=1 Plugin] &amp;lt;!--[http://www.dropbox.com/s/98bcjuiy2ojkz75/MaskCrop0.1.1.7z?dl=1 Old v0.1.1 plugin] [http://www.dropbox.com/s/xcrlno31jqavqob/MaskCrop.7z?dl=1 Old v0.1.0 plugin]--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/369143-ResizersPack-MasksPack-PlaygroundPack-SmoothContrast-Logo-mod-functions?s=7811fcf9c429ffb99f2e0a4b8043832d&amp;amp;p=2364052&amp;amp;viewfull=1#post2364052 MasksPack]&lt;br /&gt;
|This is a set of functions related to masks, so localized filtering will be able, giving you finer control on how and where to filter or protect certain zones.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/mch99c0z5957u9z/MasksPack2.3.zip Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
|[[Median]]&lt;br /&gt;
|A filter plugin for AviSynth which generates a pixel-by-pixel median of several clips. This is particularly useful for filtering out noise and glitches from multiple VHS/SVHS/8mm/Hi8 tape captures, but can be used for other purposes also. [http://forum.videohelp.com/threads/362361-Median%28%29-plugin-for-AviSynth VideoHelp discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://ajk.kapsi.fi/projects/avisynth/median-plugin/Median-0.6.zip Plugin]&lt;br /&gt;
|{{Author/ajk}}&lt;br /&gt;
|-&lt;br /&gt;
| ParameterisedBlend&lt;br /&gt;
| ParameterisedBlend allows you to blend any number of frames within a clip, or blend any number of different clips together.  You can use it as an extended, gamma-aware replacement for Merge().&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft#TOC-ParameterisedBlend Plugin]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172388 Polygon]&lt;br /&gt;
|The very raw beginning of a plugin for drawing high quality polygons (mainly to be used as masks) in AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172388 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163018 RedAverage]&lt;br /&gt;
|Frame-by-frame merging of multiple clips. Includes a masked average, weighted average, and a merge filter. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://chaosking.de/repo/avsfilters/Unclassified/RedAverage___%281.4.3_-_2011-12-02%29.7z Plugin]&lt;br /&gt;
|redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jojje/shapemask ShapeMask]&lt;br /&gt;
|A filter plugin for AviSynth that identifies bright areas such as projector screens at conferences and creates a mask out of them. The use case for which it was created is to deal with overly bright lectures, such as screen casts or talks where the speaker or producer hasn't followed presentation 101; Use light text on a dark background! See [http://forum.doom9.org/showthread.php?t=172308 discussion.]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150702103042/http://snarl.zapto.org/files/ShapeMask-1.0.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tcolormask TColorMask]&lt;br /&gt;
|A simple color masking plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tcolormask/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=76595 TCombMask]&lt;br /&gt;
|TCombMask is a simple filter that creates a comb map that can (could) be used by other filters.  It currently supports optional motion adaption, optional spatial adaption, optional luma &amp;lt;-&amp;gt; chroma linking, different thresholds for chroma and luma, and much more.&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070222162504/http://bengal.missouri.edu/~kes25c/TCombMaskv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner TMaskCleaner]&lt;br /&gt;
|A really simple mask cleaning plugin for AviSynth based on mt_hysteresis. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TMM]]&lt;br /&gt;
| TMM builds a motion-mask for TDeint, which TDeint uses via its 'emask' parameter. See [http://forum.doom9.org/showthread.php?p=980353#post980353 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183526/http://bengal.missouri.edu/~kes25c/TMMv1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/chikuzen/TMM2 TMM2]&lt;br /&gt;
| A rewrite of TMM&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/TMM2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Unpremultiply]] &lt;br /&gt;
| This plugin convert the input RGBA clip from premultiplied alpha to straight matted alpha. See [http://forum.doom9.org/showthread.php?t=166730 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13207&amp;amp;d=1356994426 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20160610124858/http://code.google.com/p/avisynth-unpremultiply/ Josh Sutinen]&lt;br /&gt;
|-&lt;br /&gt;
| [[uu_mt_blend]]&lt;br /&gt;
| ''Blend'' (''[[Overlay]], [[Layer]]'') two clips using [[MaskTools2|MaskTools]]. Wide selection of blend modes.&lt;br /&gt;
| [[YV12]],[[RGB24]],[[RGB32]]&lt;br /&gt;
| [[Media:UU_mt_blend.avs|Script]]&lt;br /&gt;
| rafriff42&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blurring ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[BucketMedian]]&lt;br /&gt;
| BucketMedian is an implementation of spatial median filter adapting bucket (counting) sort algorithm.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bczippngoqy6xbw/BucketMedian-0.3.1.7z Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GBlur]]&lt;br /&gt;
| Gaussian blur.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/GBlur/GBlur.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur]]&lt;br /&gt;
| A plugin with 5 different types of median blur filters. See [http://forum.doom9.org/showthread.php?t=84636 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/medianblur084.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur2]]&lt;br /&gt;
| Implementation of [http://nomis80.org/ctmf.html constant time median filter] for AviSynth 2.6, similar to MedianBlur.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/MedianBlur2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableBlur]]&lt;br /&gt;
| VariableBlur is a Gaussian, binomial or average blur filter with a variable radius (variance).&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]],&lt;br /&gt;
| [http://web.archive.org/web/20140420184040/http://bengal.missouri.edu/~kes25c/variableblur.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableMedian]]&lt;br /&gt;
| A simple median filter. See [http://forum.doom9.org/showthread.php?t=83985 discussion]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091027134543/http://www.geocities.com/siwalters_uk/variablemedian.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Borders and Cropping ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[[BorderControl]]&lt;br /&gt;
| It's designed to allow you to manipulate the regions at the top, bottom and sides of a frame. Set a black border, set a border region to be faded out and you can &amp;quot;smear&amp;quot; the border to save having to crop and resize the whole frame for the sake of a few pixels. Each border (top,bottom.left and right) can be manipulated independently. See [http://forum.doom9.org/showthread.php?t=33479 discussion] and [http://avisynth.org.ru/docs/english/externalfilters/bordercontrol.htm documentation].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20140709005736/http://www.geocities.com/siwalters_uk/bordercontrol14.zip Plugin]&lt;br /&gt;
|{{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FillMargins]]&lt;br /&gt;
|FillMargins is a simple AviSynth filter that fills the four margins of a video clip with the outer pixels of the unfilled portion. It takes integer 4 parameters specifying the size of the left, top, right, and bottom margins. These may be any value and do not have to be any particular multiple. See discussion [http://forum.doom9.org/showthread.php?t=50132 here] and [http://forum.doom9.org/showthread.php?t=55881 here], additional [http://avisynth.org.ru/docs/english/externalfilters/fillmargins.htm documentation]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/FillMargins.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| Padding&lt;br /&gt;
| Duplicate edge pixels to the outside with [[PointResize]]. See [http://forum.doom9.org/showthread.php?t=165946 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1596804&amp;amp;postcount=5 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoCrop]]&lt;br /&gt;
|Automatically crops black borders ([http://en.wikipedia.org/wiki/Letterbox wikipedia:Letterbox], [http://en.wikipedia.org/wiki/Pillar_box_%28film%29 wikipedia:Pillar box], [http://en.wikipedia.org/wiki/Windowbox_%28film%29 wikipedia:Windowbox]) from a clip. Operates in preview mode (overlays the recommended cropping information) or cropping mode. Can also ensure width and height are multiples of specified numbers. See original [http://forum.doom9.org/showthread.php?t=37204 discussion] and updated AutoCrop [http://forum.doom9.org/showthread.php?t=87602 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://len0x.leffe.dnsalias.com/autocrop12.zip Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20050404182221/http://www.videofringe.com/autocrop/ Glenn Bussell], len0x&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource CropDetect]&lt;br /&gt;
| Plugin to detect black bounding box in video and crop it easily. See [http://forum.doom9.org/showthread.php?p=1761842#post1761842 discussion]. Note, CropDetect small plugin merged within ssifSource project. Look for &amp;quot;CropDetect&amp;quot; function in Sub3D.dll&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|-&lt;br /&gt;
|[[RoboCrop]]&lt;br /&gt;
| RoboCrop is an automatic cropping solution to crop black borders from video clips, loosely based on (but using no code from) AutoCrop by Glenn Bussell. See [http://forum.doom9.org/showthread.php?t=168053 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.mediafire.com/file/krdo0aye4dlvpit/RoboCrop_25%2626_dll_v1-10_20160825.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Colourspace Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Moved}}/autoyuy2/autoyuy2.html AutoYUY2]&lt;br /&gt;
| This filter is correctly converts YV12 to YUY2 without color bias.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171786 Cnv2]&lt;br /&gt;
| Universal [[Convert|ConvertTo...()]] wrapper with some additional features. Requires [http://forum.doom9.org/showthread.php?t=147846 GScript]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171786 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| ConvertToYCgCo&lt;br /&gt;
| Converts to the YCgCo colorspace. See [http://forum.doom9.org/showthread.php?t=161736 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12748&amp;amp;d=1331769022 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
| InterleavedConversions&lt;br /&gt;
| Tools for interleaving and de-interleaving 2, 3, and 4-channel data.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| PitifulInsect&lt;br /&gt;
|-&lt;br /&gt;
| ManualColorMatrix&lt;br /&gt;
| Can perform any matrix-based color conversion. See [http://forum.doom9.org/showthread.php?t=161777 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV24]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12346&amp;amp;d=1309522614 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality 16-bit image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools PlanarTools]&lt;br /&gt;
|This plugin is a set of filters that offers converting packed(interleaved) formats to planar formats and vice versa.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV16]]&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2inRGB&lt;br /&gt;
| A quick filter that stuffs YUY2 into RGB24. See [http://forum.doom9.org/showthread.php?p=639948#post639948 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/YUY2inRGB.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2toRGB219&lt;br /&gt;
| Converts YUY2 to studioRGB. With this kind of conversion, luma will not change, meaning no quantization error on luma. See [http://forum.doom9.org/showthread.php?p=639432#post639432 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/colorCorrection/YUY2toRGB219.zip Plugin] &lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422 YV12To422]&lt;br /&gt;
|YV12 to YV16/YUY2 converter for AviSynth 2.6.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddGrainC]]&lt;br /&gt;
| Generates film like grain or other effects (like rain) by adding random noise to clip. Noise can be horizontally or vertically correlated causing streaking. Contains AddGrain &amp;amp; AddGrainC &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]],&lt;br /&gt;
[[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Foxyshadis}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Author/LaTo}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| AddStaticGrainM&lt;br /&gt;
| This function adds static grain in dark areas based on a mask.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[AddStaticGrainM_source|Script]]&lt;br /&gt;
| [http://canihaziframe.wordpress.com/2011/02/23/addstaticgrainm/ Daiz]&lt;br /&gt;
|-&lt;br /&gt;
| [http://kvcd.net/sansgrip/avisynth/Blockbuster-readme.html AddNoise/Blockbuster]&lt;br /&gt;
| Makes encoder allocate more bits to darker areas, thus eliminating DCT blocks by decreasing the clips compressibility.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/blockbuster_5F25_src_20021229.zip Plugin]&lt;br /&gt;
| Ross Thomas&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=87295 AviShader]&lt;br /&gt;
| generic plugin that uses your 3D card's hardware to assist with rendering&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avishader_5F25_dll_20041228.zip Plugin]&lt;br /&gt;
| Antitorgo&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97706 ColorLooks]&lt;br /&gt;
| This plugin is based on Trev's VDub filter Colorlooks and Donald Graft's Colorize (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ColorLooks_v13.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 crt_display]&lt;br /&gt;
| CRT emulation with scanline and phosphor effects. crt_display emulates a CRT display using aperture grille (Trinitron) or Cromaclear technologies. See [http://forum.doom9.org/showthread.php?t=170732 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EffectsMany]]&lt;br /&gt;
| Creates 34 types of special &amp;quot;animated&amp;quot; effects. Effects act on the input clip in the range of the frame numbers specified. The Audio is not affected.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/EffectsMany/EffectsMany.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[f3kgrain]]&lt;br /&gt;
| Another 8/16-bit luma adaptive grain generator.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114900/http://www.nmm-hd.org/upload/get~ElhZlazJbsQ/f3kgrain_v0.4.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GNoise]]&lt;br /&gt;
| Adds random noise to a clip. See [http://forum.doom9.org/showthread.php?p=841700#post841700 duscussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/gnoise_r5.zip Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3]]&lt;br /&gt;
| Noise generator that tries to simulate the behavior of silver grain on film. See [http://forum.doom9.org/showthread.php?t=141303 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1191292#post1191292 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3mod]]&lt;br /&gt;
| Luma adaptive grain generating filter in 8-bit precision. Based on Didée's [[GrainFactory3]] script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722190952/http://www.nmm-hd.org/upload/get~kvNvGpuyxfc/GrainFactory3mod_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactoryLite]]&lt;br /&gt;
| Luma adaptive grain generating filter with stacked 16-bit input/output support. Based on Didée's [[GrainFactory3]] script, processing in 16-bit precision, and some commonly unused parameters removed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722185917/http://www.nmm-hd.org/upload/get~FaqsQaMom9s/GrainFactoryLite_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html HollywoodSQ]&lt;br /&gt;
| Creates popup album, akin to Hollywood squares TV show&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| KenBurnsEffect&lt;br /&gt;
| Given clip, zooms, pans &amp;amp; rotates clip. See [http://en.wikipedia.org/wiki/Ken_Burns_Effect wikipedia:Ken Burns Effect]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135776 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| [[MPlayerNoise]]&lt;br /&gt;
| Noise Generator ported from MPlayer. See [http://forum.doom9.org/showthread.php?t=84181 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/bergfiltercollection_5F25_dll_20041019.zip Plugin]&lt;br /&gt;
| {{Author/bergi}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NoiseGenerator]]&lt;br /&gt;
| Newer function based off of Blockbuster. Adds random noise to clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/noisegenerator_5F25_dll_20050616.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
| [[Scanlines]]&lt;br /&gt;
| Add Scanlines (black horizontal bars) to a video. see [http://en.wikipedia.org/wiki/Scan_line wikipedia:Scan Line]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/scanlines_5F25_dll_20031103.zip Plugin]&lt;br /&gt;
| turulo&lt;br /&gt;
|-&lt;br /&gt;
| [[StaticNoiseC]]&lt;br /&gt;
| Generates static grain using the Mersenne Twister random number generator. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=8&amp;amp;t=118&amp;amp;start=20#p772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131228160225/http://www.nmm-hd.org/upload/get~YnWFecZw0Uo/StaticNoiseC20110108b.zip Plugin]&lt;br /&gt;
| histamine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/turnstile.htm TurnsTile]&lt;br /&gt;
| Applies mosaic and/or palette effects to a clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158695 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Order ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| PFR&lt;br /&gt;
| Tries to restore the original progressive field order of a movie (or any predominantly filmed material transferred to video) where the field order changes at scene changes in a seemingly random fashion! See [http://forum.doom9.org/showthread.php?t=49815 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| ReverseFieldDominance&lt;br /&gt;
| This filter is intended to reverse the field dominance of [[PAL]] DV video. See [http://forum.doom9.org/showthread.php?t=46765 discussion.]&lt;br /&gt;
| [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/reversefielddominance.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Rate Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AlterFPS]]&lt;br /&gt;
| AlterFPS can be used to speed up or slow down a video by adding or removing fields. It works like the 3:2 pulldown of NTSC film material, except you can choose your new speed. It can also blend frames for progressive frame results, and blend fields like ConvertFPS.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [[convert60ito24p]]&lt;br /&gt;
| convert60ito24p converts a 60fps interlaced NTSC Video into a 24fps progressive Video using different blending techniques.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md FPSDown]&lt;br /&gt;
| This filter reduces the framerate of a video by 1/2, by blending odd and even frames together. However, it does this in a smart way such that in case of duplicate frames, it will do the smart thing to remove unnecessary blurring in the output video.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md Plugin]&lt;br /&gt;
| [http://github.com/arkeet/ arkeet]&lt;br /&gt;
|-&lt;br /&gt;
| [[FrameDbl]]&lt;br /&gt;
| FrameDbl will generate extra frames to double the frame rate. It does this using a motion compensated approach to interpolating between frames. See [http://forum.doom9.org/showthread.php?t=56036 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/FrameDbl.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| FrameRateConverter&lt;br /&gt;
| FrameRateConverter uses motion interpolation with fine artifact removal. Requires [[MVTools|MVTools 2.7.x]], [[MaskTools|MaskTools 2.2.x]]. See [https://forum.doom9.org/showthread.php?t=174793 discussion].&lt;br /&gt;
| [[YV24]], [[YUY2]], [[YV12]], [[Y8]]&lt;br /&gt;
| [https://github.com/mysteryx93/FrameRateConverter Plugin]&lt;br /&gt;
| [https://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.spirton.com/uploads/InterFrame/InterFrame2.html InterFrame]&lt;br /&gt;
| Frame rate conversion script. Interframe works very well at converting 24FPS to 60FPS; converts videos to higher frame rates like newer TVs do. Common names are frame doubling, smooth motion, among others. See [http://forum.doom9.org/showthread.php?t=160226 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1486831&amp;amp;postcount=1 Script]&lt;br /&gt;
|{{Author/SubJunk}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/index_en_msu.html MSU_FRC]&lt;br /&gt;
|The filter is intended for video frame rate up-conversion. It increases the frame rate integer times. It allows, for example, to convert a video with 15 fps into a video with 30 fps.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/src/msu_frc.zip Plugin]&lt;br /&gt;
|Dmitriy Vatolin, et al.&lt;br /&gt;
|-&lt;br /&gt;
| Motion&lt;br /&gt;
| Fast true-motion motion-compensation functions for AviSynth. [http://forum.doom9.org/showthread.php?t=101859 Discussion], [http://web.archive.org/web/20060103143553/http://people.pwf.cam.ac.uk/mg262/posts/Motion/motion.html Documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Motion_v10.zip plugin]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| NTSC tools&lt;br /&gt;
| Automatic [[NTSC]] to [[PAL]] conversion with 24p, 30p, 60i detection. See [http://forum.doom9.org/showthread.php?t=114054 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/NTSC_tools.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[SalFPS3]]&lt;br /&gt;
| A modded version of MotionProtectedFPS for extra protection.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SalFPS3.avs Script]&lt;br /&gt;
| Mug Funky, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SickJumps&lt;br /&gt;
| Speed ramping, aka time-remapping (smooth speed changes). Processes both video and audio. See [http://forum.doom9.org/showthread.php?t=175017 discussion].&lt;br /&gt;
| [[RGB]], [[YUV]]&lt;br /&gt;
| [https://forum.doom9.org/showthread.php?t=175017 plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]&lt;br /&gt;
| SVPflow provides fast and high quality GPU accelerated frame rate interpolation. See [http://forum.doom9.org/showthread.php?t=164554 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.svp-team.com/files/gpl/svpflow-4.0.0.128.zip Plugin]&lt;br /&gt;
| [http://www.svp-team.com/wiki/Credits SVP Team]&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr tc2cfr]&lt;br /&gt;
| This plugin that can read a timecode file and convert a given video clip in to one with a constant framerate by adding duplicate frames.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr/releases Plugin]&lt;br /&gt;
| [http://github.com/gnaggnoyil gnaggnoyil]&lt;br /&gt;
|-&lt;br /&gt;
| [http://tasvideos.org/forum/viewtopic.php?t=12763 TimecodeFPS]&lt;br /&gt;
| Converts clip from VFR to CFR.  Timing information from clip is discarded, and matroska v2 timecodes from the timecodes file are used instead.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.mediafire.com/?a51pifo438i7hdb Plugin]&lt;br /&gt;
| natt&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165045 VFRtoCFR]&lt;br /&gt;
| Converts a variable frame rate (VFR) video to a constant frame rate (CFR) video with the help of Matroska Version 2 Timecodes.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/q6zfgpo5dhh50si/VFRtoCFR20120730.zip Plugin]&lt;br /&gt;
| Aktan&lt;br /&gt;
|-&lt;br /&gt;
| [http://griffeltavla.wordpress.com/2013/01/18/convert-vfr-to-cfr-using-avisynth/ VfrToCfr]&lt;br /&gt;
| This plugin converts variable frame rate clips to constant frame rate by introducing null frames. [http://github.com/jojje/VfrToCfr-the-other-one GitHub repository]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130430033132/http://snarl.zapto.org/files/vfrtocfr-1.0.zip Plugin]&lt;br /&gt;
| joyje&lt;br /&gt;
|-&lt;br /&gt;
|[[YFRC]]&lt;br /&gt;
| Yushko Frame Rate Converter - doubles the frame rate with strong artifact detection and scene change detection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.nl/images/YFRC-01dd-10mm-2015yyyy.avsi Script]&lt;br /&gt;
| Oleg Yushko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Replacement/Range Processing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=461878#post461878 ApplyEvery]&lt;br /&gt;
|A collection of AviSynth functions that operate at regular intervals in a clip. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/stickboy/ApplyEvery.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes.html BadFrames]&lt;br /&gt;
|Replaces given bad frames by neighbors or blend (interpolation). Useful for frames with very large defects. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes20.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162266 ClipClop]&lt;br /&gt;
|Clipclop is a simple plugin to replace ranges in a source clip with the same range, from a replacement clip. Supports up to 255 replacement clips, with unlimited number of replacements into output clip.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168047 FrameRepeat]&lt;br /&gt;
|FrameRepeat() is a simple plugin to select frames to repeat. Requires AviSynth 2.6.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167971 FrameSel/FrameRep]&lt;br /&gt;
|FrameSel() is a simple plugin to select individual frames from a clip. Can select frames numbers by direct arguments to filter, or in a string, or in a command file.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164766 MatchFrames/LocateFrames]&lt;br /&gt;
|MatchFrames, intended for matched frames extraction,LocateFrames, intended to be usable by other scripts to identify matches.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1644971&amp;amp;postcount=28 RemapFrames]&lt;br /&gt;
|A collection of functions to rearrange frames between clips. Remaps the frame indices in a clip or from a second clip as specified by an input text file or by an input string. Efficient alternatives to long chains of &amp;lt;tt&amp;gt;FreezeFrame, DeleteFrame, or ApplyRange&amp;lt;/tt&amp;gt;. &lt;br /&gt;
|&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/RemapFrames-0.4.1.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162446 Prune]&lt;br /&gt;
|Prune is a simple plugin to trim() multiple source clips and splice the results into a new clip. Supports up to 256 source clips, with unlimited number of trims/splices into output clip. Prune can fade Audio (to reduce clicks between splices) for supported audio formats. The plugin will do [[AlignedSplice]] only.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Levels and Chroma ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 AutoAdjust]&lt;br /&gt;
| A high quality automatic adjustement filter. It calculates statistics of clip, averages them temporally to stabilize data and uses them to adjust luminance gain &amp;amp; color balance. AutoAdjust has a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and can also input/output 16-bits. AutoAdjust is internally multithreaded and SSE2 optimized.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 AutoContrast]&lt;br /&gt;
|Auto contrast adjustment.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels.html Autolevels]&lt;br /&gt;
| Improvement of the [[ColorYUV]] filter's autogain feature. It stretches the luma histogram to use the entire specified range, averaging the amount of &amp;quot;gain&amp;quot; over consecutive frames to better handle flashes and to avoid flickering. [http://forum.doom9.org/showthread.php?t=128585 Discuss]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels_0.6_20110109.zip Plugin]&lt;br /&gt;
| {{Author/frustum}} &amp;amp; Theodor Anschütz&lt;br /&gt;
|-&lt;br /&gt;
| AWB&lt;br /&gt;
| Automatic white balance for real world footage, similar to the known function in digital cameras. See [http://forum.doom9.org/showthread.php?t=168062 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=168062 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| [[ChanMix]]&lt;br /&gt;
| Creates a grayscale image from an RGB24 source, it has 3 parameters to specify how much of each color-channel is used.&lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [{{N2Moved}}/misc/chanmix.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
| [[ChannelMixer]]&lt;br /&gt;
| Very similar to the ChannelMixer function found in Photoshop. 9 Adjustments are possible, 3 for each color channel.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.videohelp.com/images/guides/p1767998/channelmixer_v1_0.zip Plugin]&lt;br /&gt;
| Gustaf Ullberg&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaJig]]&lt;br /&gt;
| Automatic Colorization.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1775733#post1775733]&lt;br /&gt;
| MWilson&lt;br /&gt;
|-&lt;br /&gt;
| [[ColorBalance]]&lt;br /&gt;
| Same tool that is found in Gimp &amp;amp; Cinepaint. See [http://forum.doom9.org/showthread.php?p=1180090#post1180090 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://dl.dropbox.com/s/ve66ayxfnfet9u0/ColorBalance_0.26.zip Plugin]&lt;br /&gt;
| Gavino &amp;amp; mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
|ColorLooks&lt;br /&gt;
| This plugin is based on Trev's VDub filter [http://www.trevlac.us/FilterDocs/ Colorlooks] and Donald Graft's [http://rationalqm.us/colorize.html Colorize] (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize. See [http://forum.doom9.org/showthread.php?t=97706 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/ColorLooks_v13.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ColorYUV2]&lt;br /&gt;
|YUV color adjustment plugin with a graffer. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/875czvfnigu72ds/ColorYUV2_25_dll_20120529.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=96308 ColourLike]&lt;br /&gt;
| Makes a clip look like a 'reference' clip by adjusting each colour mask. Updated [http://forum.doom9.org/showpost.php?p=1582935&amp;amp;postcount=38 documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourlike_5F25_dll_20050825.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://expsat.sourceforge.net/ ExpLabo]&lt;br /&gt;
| ExpSat apply a non-linear transformation of saturation, Colorize change the image color dominance in a flexible manner, HLSnoise adds a noise to the image separately to the HLS dimensions. See [http://forum.doom9.org/showthread.php?t=97052 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/expsat/ Plugin]&lt;br /&gt;
| brabbudu&lt;br /&gt;
|-&lt;br /&gt;
|[http://mpierce.pie2k.com/pages/211.php Exposure]&lt;br /&gt;
|Exposure function for AviSynth.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://mpierce.pie2k.com/downloads/exposure.zip Plugin]&lt;br /&gt;
|Matt Pierce&lt;br /&gt;
|-&lt;br /&gt;
| [[FlimsYlevels]]&lt;br /&gt;
| Luma adjustment function to give a more &amp;quot;film-ish&amp;quot; look. (Based on {{Author/Didée}}'s [[Ylevels]]).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| FlimsyFeet &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173695 GamMac]&lt;br /&gt;
|Useful to correct color cast on old 8mm films.&lt;br /&gt;
|[[RGB32]], [[RGB24]]&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=605890#post605890 GiCocu]&lt;br /&gt;
| Use GIMP/Photoshop curve files, see [http://avisynth.org.ru/docs/english/externalfilters/gicocu.htm documentation.] &lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/gicocu_5F25_dll_20050620.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Gray_Balance]&lt;br /&gt;
|A gray balance script, which is based on Black/White/Gray balance picker.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20130812061301/http://strony.aster.pl/paviko/hdragc.htm HDRAGC]&lt;br /&gt;
| High Dynamic Range Automatic Gain Control - Increase dynamic range of video clips (enhance shadows). It's &amp;quot;simply&amp;quot; gaining (brightening) dark areas of image without causing blow of highlights. Amount of gain is calculated automatically, but can be influenced by parameters. See [http://forum.doom9.org/showthread.php?t=93571 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20120419193005/http://strony.aster.pl/paviko/Hdragc-1.8.7.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161986 HighlightLimiter]&lt;br /&gt;
| &amp;quot;Darkening highlight&amp;quot;. Works well on over exposed clips. It can also be combined with ContrastMask to create HDR effect&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1522100#post1522100 Script]&lt;br /&gt;
| javlak&lt;br /&gt;
|-&lt;br /&gt;
| [[HistogramAdjust]]&lt;br /&gt;
| 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.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HistogramAdjust/HistogramAdjust.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Histograms in RGB &amp;amp; CMY]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;levels&amp;quot;) but for RGB and CMY instead of YUV. It also includes a RGB parade color scope.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/Histograms_in_RGB_%26_CMY.avsi Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
|HSVAdjust&lt;br /&gt;
|HSVAdjust/HSLAdjust/HSIAdjust let's you rotate hues, control the strength of color (saturation), or modify the brightness of a clip. The type of brightness depends on the filter. It's value for HSVAdjust, lightness for HSLAdjust or intensity for HSIAdjust. See [http://forum.doom9.org/showthread.php?t=162022 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/HSVAdjust_v01.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Hue&lt;br /&gt;
|This plugin is a port of Donald Graft's VirtualDub [http://rationalqm.us/hue.html Hue] filter. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=87439&amp;amp;pagenumber=2 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Hue_v10.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|MatchHistogram&lt;br /&gt;
| Tries to modify the histogram of the input clip to match that of a reference clip. Should be used for analysis only, not for production. See [http://forum.doom9.org/showthread.php?t=153196 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://latoninf.free.fr/d9/MatchHistogram.7z Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[OutRange]]&lt;br /&gt;
| A simple function to scan the whole video and output a log file, in which out-of-tv-range frames are logged.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/OutRange.avsi Script]&lt;br /&gt;
| 06_taro&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170642 RGBAdapt]&lt;br /&gt;
|Another RGB color correction plugin, it also also includes a graffer.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/bo4afg77u4dfu8k/RGBAdapt_dll_v0.3-20150617.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier]&lt;br /&gt;
|An AviSynth forensic plugin to amplify color shifts.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/432rxa9ed1lr2in/RgbAmplifier_25_dll_v1.03_20140607.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SGradation]]&lt;br /&gt;
| SGradation is much like a gamma function, but '2nd order'.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| Script&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ShowChannels]&lt;br /&gt;
|Simple plugin whose only function is to display the average Y,U and V values for a YUV frame or R,G, and B for an RGB frame. Also shows accumulated average for all frames visited so far.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/2dgk1y1cohql64r/ShowChannels_25%2626_v0-8_dll_20150330.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowOverRange]]&lt;br /&gt;
| Shows illegal &amp;quot;TV range&amp;quot; by painting pixels blue for anything less than 16 and red for anything greater than 235.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/download/file.php?id=164 Plugin]&lt;br /&gt;
| {{Author/SAPikachu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 SmoothAdjust]&lt;br /&gt;
| SmoothAdjust is a set of 5 plugins to make YUV adjustements. These 5 plugins have a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and artifacts. SmoothAdjust is multithreaded (up to 16 threads) and SSE2 optimized. SmoothAdjust is [[SmoothLevels|SmoothLevels']] successor. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Tint]]&lt;br /&gt;
| Tints the image toward a specified colour.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133 &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=74334 TweakColor]&lt;br /&gt;
| Target specific hue and saturation ranges for hue and saturation adjustments.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/tweakcolor_5F25_dll_20040412.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VideoScope]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;classic&amp;quot;) but with additional features, it shows waveform monitors and a vectorscope. &lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/VScope12.zip Plugin]&lt;br /&gt;
| {{Author/Randy French}}&lt;br /&gt;
|-&lt;br /&gt;
| [[WhiteBalance]]&lt;br /&gt;
| Correct the white balance of a clip with a large degree of control and accuracy over other methods of correcting white balance. See [http://forum.doom9.org/showthread.php?t=106196 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.64k.it/andres/data/avisynth/WhiteBalance100.zip Plugin]&lt;br /&gt;
| SomeJoe&lt;br /&gt;
|-&lt;br /&gt;
| [[Ylevels]]&lt;br /&gt;
| A simple replacement for Avisynth's internal [[Levels]] command, with a few neat differences.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Line Darkening ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FastLineDarkenMOD&lt;br /&gt;
| Line darkening script. See original [http://forum.doom9.org/showthread.php?t=82125 discussion.] Updated [http://forum.doom9.org/showthread.php?p=1060081#post1060081 script.] Additional [http://forum.doom9.org/showthread.php?p=1023638#post1023638 information.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1060081#post1060081 Script]&lt;br /&gt;
| Vectrangle / {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Hysteria]]&lt;br /&gt;
|Hysteria, a line darkening script by Scintilla.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/fvDdiV6m Script]&lt;br /&gt;
|Scintilla&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 LineDarkenToon]&lt;br /&gt;
| LineDarkenToon use the idea of mf_toon (0.5) for linedarken. I wanted a really small fast code like FastLineDarken but with similar output like mf_toon and this is the result.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mfToon]]&lt;br /&gt;
| mfToon darkens cartoon edges. In default operation, it performs line darkening, Xsharpening, and warp sharpening. &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=53364 discussion.] Additional information [http://forum.doom9.org/showthread.php?t=125128 here] and [http://forum.doom9.org/showthread.php?t=52066 here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfToon-v0.52.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[proToon]]&lt;br /&gt;
|Line darkening script, used to be known as vmToon and before that mfToon.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/Aw9En26L Script]&lt;br /&gt;
|TheProfileth&lt;br /&gt;
|-&lt;br /&gt;
| [[SuperToon]]&lt;br /&gt;
| An attempt to optimize/speed up the previous versions of mfToon, vmToon, etc. See [http://forum.doom9.org/showthread.php?t=163987 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=163987 Script]&lt;br /&gt;
| Hadien&lt;br /&gt;
|-&lt;br /&gt;
| [[Toon]]&lt;br /&gt;
| Simple and fast line darkener. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/guk5plphkthdy2f/Toon-v1.1.7z Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ToonLite]]&lt;br /&gt;
| It's the same as [[Toon]], just without the warpsharp processing..&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090218093135/http://mf.creations.nl/avs/filters/Toon-v1.0-lite.dll Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[vmToon]]&lt;br /&gt;
| The successor to mfToon. Darkens lines, thins lines, and does supersampled sharpening all in one, but slow. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Vmtoon-v0.74.avsi Script]&lt;br /&gt;
| Vectrangle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resizers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AreaResize]]&lt;br /&gt;
| An area-average resizer plugin; only use to downscale.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.mediafire.com/download.php?kn56wh7r81vk2rx Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Debicubic]]&lt;br /&gt;
| This filter is designed to reverse the effects of bicubic upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140622040033/http://rgb.chromashift.org/debicubic%20r2.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[Debilinear]]&lt;br /&gt;
| This filter is designed to reverse the effects of bilinear upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140214021604/http://rgb.chromashift.org/debilinear%20r6.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1738351#post1738351 edi_rpow2]&lt;br /&gt;
|An improved rpow2 function for nnedi3, nnedi3ocl, eedi3, and eedi2. Requires [http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi ResizeX]&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/view/pcmkxaauku375xd/edi_rpow2_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/FCBI FCBI]&lt;br /&gt;
|Fast Curvature Based Interpolation. More info [http://blog.awm.jp/tags/fcbi/ here] (Japanese).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/chikuzen/FCBI/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[JincResize]]&lt;br /&gt;
| Jinc (EWA Lanczos) Resampler Plugin for Avisynth/Avisynth+. See [http://forum.doom9.org/showthread.php?t=169813 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/AviSynth/jinc-resize/releases Plugin]&lt;br /&gt;
| innocenat&lt;br /&gt;
|-&lt;br /&gt;
| Lanczosplusv3&lt;br /&gt;
| Very slow, but high quality resizer. See [http://forum.doom9.org/showthread.php?t=136690]&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3/nnedi3_rpow2|nnedi3_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3_rpow2 is a function included in [[nnedi3]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3 Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3ocl/nnedi3x_rpow2|nnedi3x_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3x_rpow2 is a script function included in [[nnedi3ocl]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://avisynth.nl/index.php/nnedi3ocl Script and Plugin]&lt;br /&gt;
|SeT&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
| [[PointSize]]&lt;br /&gt;
| A set of [http://en.wikipedia.org/wiki/Image_scaling pixel art resizers]; Includes Scale2x/3x, LQ2x/3x/4x, HQ2x/3x/4x, xBRZ (2x to 6x). See [http://forum.doom9.org/showthread.php?t=154674 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.dropbox.com/s/2uvflijgrngvi7x/PointSize_0.2.zip?dl=1 Plugin]&lt;br /&gt;
| `Orum&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.int64.org/viewvc/int64/resamplehq/doc/index.html ResampleHQ] &lt;br /&gt;
| ResampleHQ provides gamma-aware resizing and colorspace conversion.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/int64/files/ResampleHQ/ResampleHQ-v1.zip/download Plugin]&lt;br /&gt;
| Cory Nelson&lt;br /&gt;
|-&lt;br /&gt;
|[[Resize8]]&lt;br /&gt;
|&amp;lt;tt&amp;gt;Resize8()&amp;lt;/tt&amp;gt; works just like AviSynth's internal resizers but with some extra features. It had correct chroma placement, optional adaptive anti-ringing algorithm and few other features.  &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://web.archive.org/web/20150911013350/http://www.nmm-hd.org/upload/get~8y1IjaaqvoI/Resize8_v1.2.avsi Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
|ResizeX&lt;br /&gt;
|ResizeX is a wrapper function for AviSynth's internal resizers and Dither_resize16 that corrects for the chroma shift caused by the internal resizers when they're used on horizontally subsampled chroma with MPEG2 placement.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135735 Seamer]&lt;br /&gt;
| Seam Carving/Liquid Rescale for Content-Aware Image Resizing. See [http://en.wikipedia.org/wiki/Seam_carving wikipedia:Seam Carving]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/Seamer/Seamer.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|SincResize&lt;br /&gt;
|SincResize is an experimental plugin that uses DCT to perform resizing. See [http://forum.doom9.org/showthread.php?p=953002#post953002 discussion], read on for more information.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://cafxx.strayorange.com/files/SincResize4.7z Plugin]&lt;br /&gt;
|[http://cafxx.strayorange.com/ CAFxX]&lt;br /&gt;
|-&lt;br /&gt;
| [[SimpleResize]]&lt;br /&gt;
| Resizing plugin with 4 filters: SimpleResize, WarpResize, InterlacedResize and InterlacedWarpedResize.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/SimpleResize.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147117 SplineResize]&lt;br /&gt;
| SplineResize contains two kinds of spline based resizers: The first ones are the (cubic) spline based resizers from Panorama tools: Spline100Resize (using 10 sample points) and Spline144Resize (using 12 sample points) are examples. Other ones are available in AviSynth itself. The second ones are natural cubic splines that use the kernel itself as a spline.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/SplineResize_v02.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth waifu2x]&lt;br /&gt;
|Single-Image Super-Resolution for anime/fan-art using Deep Convolutional Neural Networks.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth/releases Plugin]&lt;br /&gt;
|[http://github.com/sunnyone sunnyone]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1111789#post1111789 ZoomBox]&lt;br /&gt;
| Replacement for ResizeKAR. Resizes clip Keeping the Aspect Ratio. Can set Source/Target PAR/DAR, option to zoom in/out in order to hide/show black borders.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sharpeners ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aSharp]] &lt;br /&gt;
| Simple unsharp mask filter with optional adaptive sharpening. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38436 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/asharp_5F25_dll_20030118.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=122443 AVSShock]&lt;br /&gt;
|This Shock Filter sharpens edges of images by applying erosions or dilations depending on the sign of the Laplacian (or the so called Haralick-Canny edge detector). &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.gleitz.info/showthread.php?33105-Neues-Plugin-zum-Video-sch%E4rfen-Patent-Problem!&amp;amp;p=321585#post321585 Plugin]&lt;br /&gt;
|AMSS0815&lt;br /&gt;
|-&lt;br /&gt;
| [[aWarpSharp2]]&lt;br /&gt;
| A modern rewrite of aWarpSharp with several bugfixes and optimizations. See [http://forum.doom9.org/showthread.php?t=147285 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/pinterf/aWarpSharp/releases Plugin]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
| [[blah]]&lt;br /&gt;
| Sharpening. See [http://forum.doom9.org/showthread.php?t=155030 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1406843 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[FineSharp]]&lt;br /&gt;
| Small and relatively fast realtime-sharpening function, designed for 1080p, or after scaling 720p -&amp;gt; 1080p during playback (to make 720p look more being like 1080p). See [http://forum.doom9.org/showthread.php?p=1569035#post1569035 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1569035#post1569035 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LimitedSharpen]]&lt;br /&gt;
| LimitedSharpen can be used like a traditional sharpener, but producing much less artifacts. It can be used as a replacement for the common &amp;quot;resize(x4)-XSharpen-resize(x1)&amp;quot; combo, with very similar results (perhaps even better) - but at least 2 times faster, since it requires much less oversampling.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/LimitedSharpenFaster.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LSFmod]]&lt;br /&gt;
| A LimitedSharpenFaster mod with a lot of new features and optimizations. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=142706 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 MCLS_16]&lt;br /&gt;
|Motion Compensate Limited Sharpen 16bit&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 Script]&lt;br /&gt;
|Motenai Yoda&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 MedSharp]&lt;br /&gt;
|Soft thresholded median sharpening function. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[MSharpen]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt; is a very simple masked sharpening plugin for AviSynth. This version is a reimplementation of neuron2's [http://rationalqm.us/msharpen/msharpen.html old &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt;] plugin. See [http://forum.doom9.org/showthread.php?t=169832 discussion].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MSharpen Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NonlinUSM]]&lt;br /&gt;
| Non-linear Unsharp Masking.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1555234&amp;amp;postcount=46 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[pSharpen]]&lt;br /&gt;
| Performs two-point sharpening to avoid overshoot. See [http://forum.doom9.org/showthread.php?t=172422 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172422#post1732663 Script]&lt;br /&gt;
| ilpippo80, colours&lt;br /&gt;
|-&lt;br /&gt;
|[[ReCon]]&lt;br /&gt;
|'''ReCon'''volution - makes things sharp by mixing pixels together. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1409582#post1409582 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[SeeSaw]]&lt;br /&gt;
| SeeSaw uses a balance of denoising and sharpening to enhance a clip. The aim is to enhance weak detail without over-sharpening or creating jaggies on strong detail, and produce a result that is temporally stable without detail shimmering.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SeeSaw.avs Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpenComplex2&lt;br /&gt;
| Port of MPC-HC's Sharpen Complex 2 to AviSynth. Despite the name, this script is very simple, see [http://forum.doom9.org/showthread.php?t=158385 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[SharpenComplex2_source|Script]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SSXSharpen&lt;br /&gt;
| Included in SharpTools. Sharpens the picture using [[supersampling]] techniques.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20100120201434/http://mf.creations.nl/avs/functions/SharpTools-v0.3.avs Script]&lt;br /&gt;
| {{Author/mf}}, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SSSharp]]&lt;br /&gt;
| Also known as Super Slow Sharpen - a very slow, but high quality sharpener. See [http://forum.doom9.org/showthread.php?t=132330 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1071731 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[TUnsharp]]&lt;br /&gt;
| TUnsharp is a basic sharpening filter that uses a couple different variations of unsharp masking and allows for controlled sharpening based on edge magnitude and min/max neighborhood value clipping. See [http://forum.doom9.org/showthread.php?t=84344 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162107/http://bengal.missouri.edu/~kes25c/TUnsharpv093.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnFilter]]&lt;br /&gt;
| This filter softens/sharpens a clip. It implements horizontal and vertical filters designed to (slightly) reverse previous efforts at softening or edge enhancement that are common (but ugly) in DVD mastering. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=28197&amp;amp;pagenumber=3 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/unfilter_5F25_dll_20030116.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnsharpHQ]]&lt;br /&gt;
| A strong and fast unsharp mask with some new features. See [http://forum.doom9.org/showthread.php?t=159637 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160302123821/https://filetea.me/t1sl65PsDLsT0mXMZL0s14xEg/dl Plugin]&lt;br /&gt;
| list&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[WarpSharp]]&lt;br /&gt;
| WarpSharp contains these sharpeners: &amp;lt;tt&amp;gt;UnsharpMask, WarpSharp, Xsharpen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/g6z1tohioqnw5b9/warpsharp_20080325.zip?dl=1 Plugin]&lt;br /&gt;
|???, {{Author/seraphy}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation/Shear/Skew/Perspective ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeBarrel]]&lt;br /&gt;
| Remove barrel and pincushion distortion, where straight lines appear curved.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/DeBarrel/DeBarrel.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=152860 Defish]&lt;br /&gt;
|Barrel and pincushion distortion correction filter. [http://forum.doom9.org/showthread.php?t=127432 Old discussion]&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/defish.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Defish Different Projections]&lt;br /&gt;
|Defish with different map projections, like Lambert Cylindrical Equal Area, Mercator and Miller projections.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [[FTurn]]&lt;br /&gt;
| Fast implementation of [[TurnLeft]](), [[TurnRight]]() and [[Turn180]]() AviSynth functions. See [http://forum.doom9.org/showthread.php?t=168315 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]],[[YV24]]&lt;br /&gt;
| [http://github.com/tp7/fturn/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=165978 Quad]&lt;br /&gt;
|An Avisynth plugin to perform quadrilateral transformations.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/quad.zip Plugin] -- [http://forum.doom9.org/showpost.php?p=1602709&amp;amp;postcount=22 no SSE]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.html Reform]&lt;br /&gt;
| Skewed images are corrected or vice versa, useful if video is recorded with slightly incorrectly located camera. Sometimes refered to as perspective correction.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Reformer]]&lt;br /&gt;
| Perspective correction and warping.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reformer/Reformer.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate.html Rotate]&lt;br /&gt;
| Rotate or shear on any given angle. See [http://forum.doom9.org/showthread.php?t=131307 discussion.]&lt;br /&gt;
| [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate134.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.html Spinner]&lt;br /&gt;
| Spinner plugin rotates a frame or selected part of it about the given axis coordinates in floating point precision.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166087 xyremap]&lt;br /&gt;
|xyremap is a filter for remapping pixels using formulae written in [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation].&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/avisynth/download/xyremap0.3.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=49429 Zoom]&lt;br /&gt;
| Zoom, Pan &amp;amp; Rotate Clip. Adds alpha layer to clip.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/zoom_5F25_dll_20050122.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Subtitling ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AssRender&lt;br /&gt;
| Libass-based subtitle renderer. See [http://forum.doom9.org/showthread.php?t=148926 discussion]. [http://github.com/pingplug/assrender Updated version]; only source code available. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV24]], [[YV12]], [[Y8]]&lt;br /&gt;
| [http://srsfckn.biz/assrender/ C Plugin] &amp;lt;!--[http://encodan.srsfckn.biz/assrender/ C Plugin] - dead link ---&amp;gt;&lt;br /&gt;
| lachs0r, TheFluff&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource sub3d]&lt;br /&gt;
|Plugin for rendering subtitles on 3D video with correct depth.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/tree/master/Sub3D Sources] [https://github.com/slavanap/ssifSource/releases Binaries][http://forum.doom9.org/showthread.php?t=173143 Discussion] &lt;br /&gt;
|slavanap&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023938/http://mvideo.ddpp.net/eng/subtitleex_plugin.htm SubtitleEx]&lt;br /&gt;
| Similar to the original [[Subtitle]] function but can do more: apply text to range; effects - bold, underline, italic, center, fading, motion, blur, emboss, etc...; alpha channel. [http://hosiken.jp/dev/win/subtitleex.html Plugin update (Japanese)]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/subtitleex_5F25_dll_20040819.zip Plugin] / [http://avisynth.nl/users/warpenterprises/files/dvutilities_20050717.zip .chm (help)]&lt;br /&gt;
|[http://web.archive.org/web/20070821222318/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119390 SUPtext]&lt;br /&gt;
|Overlays SUP-subtitles on a video clip.&lt;br /&gt;
|[[RGB32]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7846&amp;amp;d=1196858433 Plugin]&lt;br /&gt;
|emmel&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin SupTitle]&lt;br /&gt;
| Blu-ray PGS .SUP Subtitle Renderer Plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=148167 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin Plugin]&lt;br /&gt;
| {{Author/ZachSaw}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/vsfilter.htm VSFilter]&lt;br /&gt;
| Supported Subtitle Formats: VOBsub (.sub/.idx), SubStation Alpha/Advanced SubStation Alpha (.ssa/.ass), SubRip (.srt), MicroDVD (.sub), SAMI (.smi), PowerDivX (.psb), Universal Subtitle Format (.usf), Structured Subtitle Format (.ssf). See [http://en.wikipedia.org/wiki/VSFilter]&lt;br /&gt;
| &lt;br /&gt;
| [http://sourceforge.net/project/showfiles.php?group_id=205650&amp;amp;package_id=246121&amp;amp;release_id=541232 Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ VSFilterMod]&lt;br /&gt;
| VSFilterMod is modification of original VSFilter subtitle renderer by Gabest. This mod brings up new features and some minor bugfixes. See [http://forum.doom9.org/showthread.php?t=152855 discussion] and [http://code.google.com/archive/p/vsfiltermod/ Google Code Archive].&lt;br /&gt;
|&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 xy-VSFilter]&lt;br /&gt;
|High performance VSFilter compatible subtitle filters. [http://web.archive.org/web/20151213235432/http://code.google.com/p/xy-vsfilter/ Google Code repository]&lt;br /&gt;
|&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 Plugin]&lt;br /&gt;
|cyberbeing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transitions ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| DissolveAGG&lt;br /&gt;
| Wipe Transition with a soft edge. See [http://forum.doom9.org/showthread.php?t=118016 discussion]. &lt;br /&gt;
'''Note:''' There exist multiple variants of the script as the result of the interaction between authors in that discussion.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=900674#post900674 Script (v1)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152440#post1152440 Script (v2)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152632#post1152632 Script (v3)] &lt;br /&gt;
| {{Author/zemog}}, {{Author/mikeytown2}}, {{Author/Gavino}} and others&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=62277 JDL_MaskTransition]&lt;br /&gt;
| Combines two clips using the specified mask clip.  The audio tracks are blended during the transition. About any transition can be made with this function.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/stickboy/jdl-effects.avsi Script]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TransAll]]&lt;br /&gt;
| Around 150 distinct transitions can be created with this plugin. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/TransAll/TransAll.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (Albert Gasset)&lt;br /&gt;
| Various Wipe and Random Block modes. Has 19 built in patterns or it can use an external file.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/Albert Gasset}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (shubin)&lt;br /&gt;
| Contains 2 modes: circle and line. In circle mode the area has radius R and center xCenter,yCenter. In line mode the line passes through xCenter,yCenter with slope R.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/shubin}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Debugging/Diagnostic Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AVInfo&lt;br /&gt;
| AVIInfo gives information about the streams in the clip without loading any frames. filename can be a WAV file or an AVI file with several audio streams (it won't open AVI files with embedded subtitles though). It will return the info as a string. &lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avinfo_5F25_dll_20050417.zip Plugin]&lt;br /&gt;
| trevlac, wilbert &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=174797 AVSMeter]&lt;br /&gt;
| AVSMeter is a CLI (command line interface) tool which measures the speed/efficiency of Avisynth scripts and checks if Avisynth and its plugin sub-system are set up and working correctly. Documentation for usage and features is included in the distribution package.&lt;br /&gt;
|&lt;br /&gt;
| Command line executable&lt;br /&gt;
| Groucho2004&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=116949 ColorDiff]&lt;br /&gt;
|ColorDiff makes a greyscale (Y8) frame according to the input frame's pixels' &amp;quot;distance&amp;quot; from a specified color. The diff is calculated by simply getting the diff of the individual color components from the desired color's components and summing them up. Also, weights can be set for the individual diffs. Documentation is at the beginning of the source file. This is a [http://avisynth.nl/index.php/Plugins#LoadCPlugin C Plugin!]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]] &lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7811&amp;amp;d=1196110203 C Plugin]&lt;br /&gt;
|Ignus2&lt;br /&gt;
|-&lt;br /&gt;
| [[DumpPixelValues]]&lt;br /&gt;
| Samples the colors from selected pixels for every frame in a video source and outputs the data to a text or binary file. See [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.zip Plugin]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/index.html McPoodle]&lt;br /&gt;
|-&lt;br /&gt;
|[[GrainEvaluate]]&lt;br /&gt;
| A script to analyze and log the strength of grain for each frame. See [http://forum.doom9.org/showthread.php?t=167455 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://www.nmm-hd.org/upload/get~-eJfUjEXJY4/GrainEvaluate.avsi Script]&lt;br /&gt;
|{{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1462931&amp;amp;postcount=81 Glitch Analyzer]&lt;br /&gt;
| Glitch Analyzer generates a diagnostic video, then analyzes the recorded version of it, to detect swapped, dropped, or repeated fields.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1467907#post1467907 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid]]&lt;br /&gt;
| Overlays a grid, useful for pixel counting.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Grid/Grid.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20160610124531/http://code.google.com/p/avisynthrestoration/wiki/Measure Measure]&lt;br /&gt;
| Measures luminence of greyscale bars and prints results on-screen.  Can be used to set brightness/contrast in capture settings accurately.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/lcferrum/segment-display-ocr SegmentDisplayOCR]&lt;br /&gt;
|SegmentDisplayOCR is a seven-segment display recognition filter for AviSynth. It has built in logging functionality (it will log frame recognition results) and also can be used in AviSynth conditional filters. The main purpose of this filter is to process readings of various digital instruments (e.g. digital multimeters) captured on video. So if your favourite instrument lacks interface for connecting it to PC you can capture it's readings on cam and convert them to computer readable format with SegmentDisplayOCR filter.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://sourceforge.net/projects/segmentdisplayocr/files/SegmentDisplayOCR/ Plugin]&lt;br /&gt;
|[http://github.com/lcferrum lcferrum]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=61128 SSIM]&lt;br /&gt;
|A filter that compute an objective video quality metric between two videos. Based on SSIM work from [http://web.archive.org/web/20060515090025/http://www.cns.nyu.edu/~zwang/files/research/ssim/index.html Zhou Wang]. It has been created with the help of Mfa.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070129114000/http://perso.orange.fr/reservoir/dl/SSIM-0.24.rar Plugin] / [http://web.archive.org/web/20070129115059/http://perso.orange.fr/reservoir/dl/SSIMSrc-0.24.rar source]&lt;br /&gt;
|[http://web.archive.org/web/20060507012947/http://perso.wanadoo.fr/reservoir/ Lefungus]&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowPixelValues]]&lt;br /&gt;
| This filter displays the actual Y U and V (or R G and B) values from pixels within a frame. See [http://forum.doom9.org/showthread.php?t=64192 discussion] and [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/showpixelvalues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028122947/http://geocities.com/siwalters_uk/showpixelvalues1.4c.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/Testpatterns Testpatterns]&lt;br /&gt;
| This filter creates a sinewave frequency sweep directly in YV12, useful to measuring video response.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/tmonitor.htm TMonitor]&lt;br /&gt;
| TMonitor is a filter very similar to AVSMon. It enables monitoring of an Avisynth clip via previewing the video, viewing clip information (such as video width, height, colorspace, number of frames, audio samples, sample rate, number of audio channels, and more), and adjusting the audio delay. It also supports multiple instances per script, allowing viewing of differences between different parts of a processing chain.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TMonitorv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=53238 ViewFields/UnViewFields]&lt;br /&gt;
| [http://web.archive.org/web/20140709004333/http://www.geocities.com/siwalters_uk/unviewfields.html UnViewFields], [http://web.archive.org/web/20140708181324/http://www.geocities.com/siwalters_uk/viewfields.html ViewFields]&lt;br /&gt;
| &lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Comptest]]&lt;br /&gt;
| The script Compressibility test can be used for a compressibility test on a clip.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[SeeTheDifference]]&lt;br /&gt;
| SeeTheDifference just makes the difference visible between an encoded and an original videoclip. So you can see what you really &amp;quot;lose&amp;quot; when encoding a video.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Edge Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpsharp2/aSobel|aSobel]]&lt;br /&gt;
| Sobel edge dectecion filter included in [[aWarpSharp2]]. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [[aWarpSharp2| Plugin]]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MaskTools2/Mt edge| mt_edge]]&lt;br /&gt;
| Edge detection filter included in [[MaskTools2]].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[MaskTools2|Plugin]]&lt;br /&gt;
| {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[tcanny]]&lt;br /&gt;
| Contains a canny edge detection filter and distance transform filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140804144614/http://bengal.missouri.edu/~kes25c/tcanny.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TCannyMod]]&lt;br /&gt;
| Canny edge detection filter for Avisynth 2.6. Reimplementation of tcanny. See [http://forum.doom9.org/showthread.php?t=168449  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TCannyMod/releases/ Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEdgeMask]]&lt;br /&gt;
| TEdgeMask creates an edge mask based off gradient vector magnitude.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TEdgeMaskv09.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEMmod]]&lt;br /&gt;
| TEdgeMask modified for Avisynth 2.6. It creates an edge mask using gradient vector magnitude. See [http://forum.doom9.org/showthread.php?t=168390  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TEMmod/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Export Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can write directly to media files. &lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaWrite uses the ImageMagick libraries to write images. Many formats are supported including animations and multipage files.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172837 TWriteAVI]&lt;br /&gt;
| Serve AVI file to program requesting it as well as write an avi file. Useful for speeding up 2 pass encodes at the cost of hard drive space. [http://forum.doom9.org/showthread.php?t=172761 Update for AviSynth 2.6]. [http://forum.doom9.org/showthread.php?p=1750415#post1750415 Usage]. [http://forum.doom9.org/showthread.php?p=1073371#post1073371 Old mod by squid_80].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/84csi0174ettu5l/TWriteAVI_dll_v2.03-20160603.zip Plugin]&amp;lt;!--[http://www.mediafire.com/download/c5iboqi43ijprap/TWriteAVI_dll_v2.02-20160106.zip older version]--&amp;gt;&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawWriter&amp;quot;)&lt;br /&gt;
| Sashimi writes (and reads) almost any regular raw uncompressed data format you can define.  You'll find a fuller description under [[#Source_Filters|Source Filters]].&lt;br /&gt;
| [[RGB]], [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[SoundOut]]&lt;br /&gt;
| SoundOut is a GUI driven sound file output module for AviSynth (it exports audio to several compressors).&lt;br /&gt;
| All audio.&lt;br /&gt;
| [[SoundOut|Plugin]]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Import Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are used to import filters written for other audio and video packages.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?threadid=92174 FreeFrame]&lt;br /&gt;
| Allows [http://freeframe.sourceforge.net/ freeframe] filters (mostly effects) to be used directly in AviSynth.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/freeframe_5F25_dll_20050426.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meta-Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to be used with other filters, to restrict or augment their effect.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 AVSTP]&lt;br /&gt;
|A library for multithreaded plug-in development&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 Plugin]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 MP_Pipeline]&lt;br /&gt;
|Run parts of an AviSynth script in external processes.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 Plugin]&lt;br /&gt;
|[http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| [[MT]]&lt;br /&gt;
| MT is a filter that enables other filters to run multithreaded. This should hopefully speed up processing on hyperthreaded/multicore processors or multiprocessor systems. See [http://forum.doom9.org/showthread.php?t=94996]&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mt_20070301.zip Plugin]&lt;br /&gt;
| tsp&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]] &lt;br /&gt;
| MVTools provides filters 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. See [http://forum.doom9.org/showthread.php?t=131033]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 SoraThread]&lt;br /&gt;
|Sora's avs multi-process/multi-thread plugin package&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 Plugin]&lt;br /&gt;
|leiming2006&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154886 ThreadRequest]&lt;br /&gt;
|Yet another plugin for multithread processing. [http://web.archive.org/web/20130124045626/http://lantis.homeunix.org/avisynth.shtml Archive homepage (Japanese)]&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.mediafire.com/download/4xux7d7l1u3toy8/ThreadRequest+102a.rar Plugin]&lt;br /&gt;
|lantis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipurpose Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174433 amDCT]&lt;br /&gt;
|amDCT() is an adaptive video filter providing deblocking, sharpening, local range expansion, smoothing, and bright noise removal in a single filter that can be used on video of any level of quality. These four operations work synergistically to drastically reduce block artifacts while maintaining detail and increasing local contrast.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://sites.google.com/site/amdctfilter/ Plugin]&lt;br /&gt;
|jconklin&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=166061 HybridFuPP]&lt;br /&gt;
| An adaptive processor, allowing picture cleaning and compressibility gain. Original [http://forum.doom9.org/showthread.php?t=146632 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/6g09aazs4z7m11a/HybridFuPP_0.992b.zip Script]&lt;br /&gt;
| Fupp&lt;br /&gt;
|-&lt;br /&gt;
| [[MaskTools2]]&lt;br /&gt;
| This plugin provides tools for the creation, enhancement and manipulation of masks for each [[YUV]] component.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MaskTools2#Download Plugin]&lt;br /&gt;
| {{Author/Manao}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]]&lt;br /&gt;
| This plugin provides a collection of functions for motion estimation and compensation.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/mvtools/mvtools2.html Plugin]&lt;br /&gt;
| Various&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scene Change Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 DBSC]&lt;br /&gt;
|A scene change detection tool set/kit/box (work-in-progress).&lt;br /&gt;
|All&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 EDLmaker]&lt;br /&gt;
| Simple scenechange detector that writes to EDL file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools2/MSCDetection|MSCDetection]]&lt;br /&gt;
| Part of MVTools2; MSCDetection creates a scene detection mask clip from motion vectors data. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| SCDetect&lt;br /&gt;
| Detect scene change and output scene change frames to a file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140614152525/http://www.nmm-hd.org/upload/get~TfPm2QO4jbk/SCDetect_v0.3.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/sclavc/readme.txt SceneChangeLavc]&lt;br /&gt;
| SClavc is an AviSynth plugin intended to allow access to libavcodec's scene-change metrics. See [http://akuvian.org/src/avisynth/sclavc/ homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/scenechangelavc_5F25_dll_20041201.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvid]]&lt;br /&gt;
| SCXvid produces first pass Xvid logs from AviSynth at the equivalent of the default VFW preset. These logs are primarily intended to get scene change information from but may have other uses.&lt;br /&gt;
|  [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/402hlckyn669p9n/SCXvid-1.1.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvidMask]]&lt;br /&gt;
| A tiny AviSynth plugin that reads an SCXvid log and creates a binary mask based on it.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SCXvidMask/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Support filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to augment the creation of custom script-based filters.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApplyInterlacedFilter]]&lt;br /&gt;
| ApplyInterlacedFilter safely processes interlaced video with spatial and temporal filters.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162874 ArcFuns]&lt;br /&gt;
|This plugin expands the available numerical functions with missing inverse trig functions.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=12494&amp;amp;d=1319627190 Plugin]&lt;br /&gt;
|{{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/AvsMotion#avsmotion AvsMotion]&lt;br /&gt;
|AviSynth plugin for animating clips with AAE motion tracking data.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/AvsMotion/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=46506 Call]&lt;br /&gt;
| Call an external program from the script.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/call_5F25_dll_20030310.zip Plugin]&lt;br /&gt;
| Nic, DDogg&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166063 CallCmd]&lt;br /&gt;
|Plugin to execute command on selectable frames or at startup or closedown. Based on [http://forum.doom9.org/showthread.php?t=46506 Call by Nic].&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/i6m7wffyi3dftxx/CallCmd_25_dll_v1.02_20130101.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173538 ClipBoard]&lt;br /&gt;
|Get text from Clipboard.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/qct5uj786ub28to/ClipBoard_25_dll_v0.01_20160530.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| FrameCache&lt;br /&gt;
| Frame cache plugin. It helps greatly increase performance, especially in combination with another plugins, like SmoothDeinterlace. Usage FrameCache( [number of frames to remember], (path to log file) ). &lt;br /&gt;
| any&lt;br /&gt;
| johny5 dot coder via gmail&lt;br /&gt;
| {{Author/Evgeny}} &lt;br /&gt;
|-&lt;br /&gt;
| GetSystemEnv&lt;br /&gt;
| An AviSynth plug-in to retrieve information from the system. &lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/stickboy/GetSystemEnv.zip Plugin]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GRunT]]&lt;br /&gt;
| Extends AviSynth's [[Runtime_environment|Runtime Environment]], making it easier to use, especially inside script functions.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139337 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GScript]]&lt;br /&gt;
| Extends the Avisynth scripting language to provide additional control-flow constructs: multi-line conditionals (if-then-else blocks), 'while' loops and 'for' loops.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147846 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119200 LoadDLL]&lt;br /&gt;
| Used to manually load dll files in AviSynth. Useful if a filter relies on an external dll that is not in the system PATH.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/LoadDll.zip Plugin]&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97748 PlaneMinMax]&lt;br /&gt;
| Frame-based YV12 plane Min/Max/Avg functions without [[ConditionalFilter]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/planeminmax_5F25_dll_20050727.zip Plugin]&lt;br /&gt;
| Bart Silverstein&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=83451 pop]&lt;br /&gt;
|A filter to get values from variables that may not yet be initialized.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.tsp.person.dk/pop.zip Plugin] &amp;lt;!--[http://web.archive.org/web/20160224093903/http://www.tsp.person.dk/pop.zip archived]--&amp;gt;&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165479 Rt_Stats]&lt;br /&gt;
| Compile-time/Runtime Functions.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin] [http://www.sendspace.com/folder/2mwrco mirror]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deepcolor Filters ===&lt;br /&gt;
(also check the [[High_bit-depth_Support_with_Avisynth#Processing_High_Bit-depth_Video_with_AviSynth|High Bit-Depth]] page and the [[:Category:Deep_color_tools|Deep Color Tools]] category)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Dither_tools|Dither]]&lt;br /&gt;
| Generates video with up to 16 bits per component after denoising and dithers back to 8 bits for storage. Primarily written to smooth fine gradients to remove color banding during/after denoising. Can also recover high bitdepth data potentially contained in a noisy clip; dither a high bitdepth picture into a standard YV12; and perform basic operations (masking, curves...) on high bitdepth pictures, as they cannot be manipulated safely with conventional AviSynth filters.&lt;br /&gt;
| [[Planar]] colorspaces&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Plugin + scripts]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20110809073332/http://arenafilm.hu/alsog/anaglyph/ Analglyph]&lt;br /&gt;
| This filter produces analglyph video from a stereo pair.  Analglyph is a 3d viewing method which uses colored glasses.  The plugin supports the advanced [http://web.archive.org/web/20130706165544/www.site.uottawa.ca/~edubois/anaglyph/ Dubois] algorithm, which is able to reduce the ghosting effect that is possible in the conversion.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z Plugin] / [http://web.archive.org/web/20140412062911/http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z mirror]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| Anaglypher &lt;br /&gt;
| A plugin for combining stereopairs into single anaglyph image.&lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://shura.luberetsky.ru/anaglypher/Anaglypher.zip Plugin]&lt;br /&gt;
| [http://shura.luberetsky.ru/ Shura Luberetsky]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616 Displace / McM_2D_to_3D]&lt;br /&gt;
|Plugin and script that enables you to convert 2d to 3d stereo with bidirectional pulfrich effect + add depth to stationary objects.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616#post1539121 Plugin/Script]&lt;br /&gt;
|Mcmount&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=143855 fauxD]&lt;br /&gt;
|2D to stereo-3D conversion in real-time.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=9278&amp;amp;d=1232092731 Plugin]&lt;br /&gt;
|eslave&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/ Pantarheon 3D AviSynth Toolbox]&lt;br /&gt;
| The Toolbox contains a number of basic functions which allow you to multiplex the left and right views found in two separate videos into one video, using several of the common methods currently in use.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/zip/ Script]&lt;br /&gt;
| [http://www.pantarheon.org/ G. Adam Stanislav]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://avslib.sourceforge.net/ AVSLib]&lt;br /&gt;
|General purpose toolkit/extension library enhancing AviSynths ability to perform complex linear and non-linear video editing tasks. Includes support for Array containers &amp;amp; operators, debugging tools, math &amp;amp; string functions, filters and many more.&lt;br /&gt;
|&lt;br /&gt;
|[http://sourceforge.net/projects/avslib/ AVSLib]&lt;br /&gt;
|[http://gzarkadas.users.sourceforge.net/ gzarkadas]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Audio Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddAudio]]&lt;br /&gt;
| A function that adds silent audio to a clip. Needed for CCE 2.50 users.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[AudioGraph]]&lt;br /&gt;
| Displays the audio waveform superimposed on the video. Intended to help with editing rather than for final output. Useful for finding specific dialog or sound, and for checking A/V sync. [http://forum.doom9.org/showthread.php?t=59412 Doom9 discussion]. Ihor Bobalo added a few additional features to AudioGraph, only the source code is provided: [http://sourceforge.net/projects/audiograph/ SourceForge repository].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20060517015407/http://beta.zenaria.com/kpo/avisynth/AudGraph_25.zip Plugin]&lt;br /&gt;
| Richard Ling, {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=108470 AudioLimiter]&lt;br /&gt;
| To increase volume for silent sounds a lot, to increase volume for middle-volume sounds a little and to keep hi-volume sounds untoched.&lt;br /&gt;
| N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=6586&amp;amp;d=1167241138 Plugin]&lt;br /&gt;
|dimzon&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 AudioTimeline]&lt;br /&gt;
|Displays a audio timeline track under the frame. It is especially suited for thumbsheets, where it allows to estimate the audio track of the thumbnailed clip.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 Plugin]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
| BeFa &lt;br /&gt;
| Band Eliminate Filter for Audio. See [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#Befa English documentation] (translated from the original [http://web.archive.org/web/20081122113014/http://kiraru2002.at.infoseek.co.jp/#befa Japanese documentation]).&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/befa_5F25_dll_20030924.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FindAudioSyncScript]]&lt;br /&gt;
| FindAudioSyncScript helps you to find the appropriate audio delays, if you have desync'ed audio.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
| IanB&lt;br /&gt;
|-&lt;br /&gt;
| MinMaxAudio&lt;br /&gt;
| Computes the root mean square, maximal or minimal value over all samples in all channels,or just over all samples in channel, and outputs the value (in decibels) as a float[http://forum.doom9.org/showpost.php?p=1197592&amp;amp;postcount=19]. It's a conditional audio filter, so the computation is done framewise. See [http://forum.doom9.org/showthread.php?t=127530 discussion]&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.wilbertdijkhof.com/MinMaxAudio_v02.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Normalize2&lt;br /&gt;
|Audio normalizing plugin. The main difference between this plugin and the built-in normalizing plugin [[Normalize]]() is that this plugin can store the peak level value in an external file and uses a lookup table to do the actual normalizing (for speed).&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://sourceforge.net/projects/jorydownloader/files/Normalize2%20for%20AviSynth/Normalize%20v0.1%20for%20AviSynth%202.5/ Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/jcsston/profile/ jcsston]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=104792 Sox Audio Effect Filter]&lt;br /&gt;
| Use [http://sox.sourceforge.net/ SOX] effects within AviSynth. Most effects are supported, and multiple effects can be stacked after each other.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=761154#post761154 Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Spectrogram]]&lt;br /&gt;
|Linear [http://en.wikipedia.org/wiki/Spectrogram spectrogram] for AviSynth 2.6.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.dropbox.com/s/9p2t1mv5t5yjpgd/Spectrogram_r5.7z?dl=1 Plugin]&lt;br /&gt;
|[http://github.com/innocenat innocenat]&lt;br /&gt;
|-&lt;br /&gt;
|SwitchByAudio&lt;br /&gt;
|Plugin to switch video source based on audio. See [http://forum.doom9.org/showthread.php?t=167011 discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/SwitchByAudio/SwitchByAudio.zip Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1722472&amp;amp;postcount=20 TimeStretchPlugin]&lt;br /&gt;
|[[TimeStretch]] with multichannel support and updated SoundTouch library. &lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.wilbertdijkhof.com/TimeStretch_v258.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ViewAudio]]&lt;br /&gt;
| Includes two filters: ViewAudio and CacheAudio. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/ViewAudio0301.zip Plugin] &amp;lt;!--[http://www.avisynth.nl/users/warpenterprises/files/viewaudio_5F25_dll_20031103.zip Plugin]--&amp;gt;&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Waveform]]&lt;br /&gt;
| Displays audio waveforms superimposed on the video, similar to AudioGraph below but with multi-channel support and consistent support for all colourspaces. See [http://forum.doom9.org/showthread.php?t=165703 discussion]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
| [http://horman.net/avisynth/download/waveform0.3.zip Plugin]&amp;lt;!--[https://web.archive.org/web/20130413095328/http://horman.net/waveform0.2.zip archived]--&amp;gt;&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== As Yet Unclassified ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=397426#post397426 Adjust]&lt;br /&gt;
| Generic Y-Channel mapping. Can define a function for the Y Channel. See [http://forum.doom9.org/showthread.php?p=397426 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/adjust_5F25_dll_20031110.zip Plugin]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/ WarpEnterprises]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166588 Adaptive Lens Blur Repair]&lt;br /&gt;
|This function adaptively repairs video damaged by lens blur, using a frame-adaptive repair mask, a selection of sharpeners and multi-stage motion-compensated artifact removal.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13154&amp;amp;stc=1&amp;amp;d=1354907363 Script]&lt;br /&gt;
| fvisagie&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1703332&amp;amp;postcount=172 amp]&lt;br /&gt;
|Inspired by [http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier], it performs temporal smoothing, then (optionally) enhances the difference between the windowed average and the current frame.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://horman.net/avisynth/amp.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoOverlay]]&lt;br /&gt;
|Auto-aligned optimal overlay of one video clip onto another with color adjustment.&lt;br /&gt;
| [[RGB32]], [[YV24]], [[YV12]]&lt;br /&gt;
| [http://horman.net/avisynth/amp.zip Plugin]&lt;br /&gt;
| [https://github.com/introspected introspected]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace AutoTraceFilter]&lt;br /&gt;
|An intentionally useless plugin that uses [http://autotrace.sourceforge.net/ AutoTrace] to trace and then resize a source video, rendering the result using GDI+.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|-&lt;br /&gt;
|[http://nutbread.github.io/ave/ ave]&lt;br /&gt;
| A set of experimental audio/video filters.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://nutbread.github.io/ave/ Plugin]&lt;br /&gt;
| [http://github.com/nutbread nutbread]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172698 AviSynth Shader]&lt;br /&gt;
|This plugin allows running HLSL pixel shaders within AviSynth. This gives access to various HLSL filters that haven't been programmed in AviSynth.&lt;br /&gt;
|[[RGB32]], [[YV24]], [[YV12]]&lt;br /&gt;
|[http://github.com/mysteryx93/AviSynthShader Plugin]&lt;br /&gt;
|[http://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=675275#post675275 BeforeAfter]&lt;br /&gt;
| See the difference before and after; similar discussion [http://forum.doom9.org/showthread.php?t=98876 here]. (missing [http://www.animemusicvideos.org/forum/viewtopic.php?f=11&amp;amp;t=45223 BeforeAfterDiff] and BeforeAfterLine scripts.)&lt;br /&gt;
| any&lt;br /&gt;
| Script&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=158696 ccc]&lt;br /&gt;
|A plugin specifically designed for Cross-Conversion Correction.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150403181720/http://japland.org/ccc/ccc_v0.4a_avs.zip Plugin]&lt;br /&gt;
|Daemon404&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/CLExpr CLExpr]&lt;br /&gt;
|AviSynth Expr filter implemented in OpenCL for runtime calculation of expressions on 8 and 16-bit depths clips. Makes mt_lutxy and mt_lutxyz possible on 16-bit. More information [http://forum.doom9.org/showpost.php?p=1672638 here].&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/CLExpr/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/ColorIt.html Colorit]&lt;br /&gt;
| Color a black and white image or recolor a color image. See [http://forum.doom9.org/showthread.php?t=93990 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/Colorit.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| CutFrames&lt;br /&gt;
| Cut a range of frames from a single a/v clip. Opposite of Trim with extras.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135423 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| DCT&lt;br /&gt;
| Plugin with the following functions: IDCT, IDCT2, FDCT, FDCT2. See [http://forum.doom9.org/showthread.php?p=667382#post667382 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://alainmuchembled.free.fr/DCT.zip Plugin]&lt;br /&gt;
| lcld&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1444027#post1444027 DDigit]&lt;br /&gt;
| DDigit Plugin Text Rendering Pack for Plugin writers. See [http://forum.doom9.org/showthread.php?t=156888 discussion.]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.mediafire.com/download/bfhj5crwaxbupeh/DDigitTest_25%2626_v1-06_dll_20150330-RECOMPILE.zip Plugin]&lt;br /&gt;
| {{Author/StainlessS}}&lt;br /&gt;
|- &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=80419 DeBlot]&lt;br /&gt;
| Color Blot Reduction. &lt;br /&gt;
| [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/deblot_5F25_dll_20030628.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=95193 DeJump]&lt;br /&gt;
| This is a specific filter which might be used to stabilize some &amp;quot;jumpy&amp;quot; video sources captured from VHS. &lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=3988&amp;amp;d=1117479069 Plugin]&lt;br /&gt;
| dinstun&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint.html ExInpaint]&lt;br /&gt;
| Exemplar-Based Image Inpainting - removing large objects from images. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint0200.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FFAvisynth]]&lt;br /&gt;
| A plugin which lets you directly use [http://en.wikipedia.org/wiki/Ffdshow ffdshow] video and audio filters from AviSynth scripts.  &lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/ffdshow-tryout/ Plugin]&lt;br /&gt;
| Milan Cutka &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/FLuaG FLuaG]&lt;br /&gt;
| FLuaG (Floating Lua Graphics) is an AviSynth plugin for video/audio data editing via Lua scripting. See [http://forum.doom9.org/showthread.php?t=161852 discussion] &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/Youka/FLuaG/archive/master.zip Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
| Use Avisynth to process still images.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 FSubstitute]&lt;br /&gt;
|Tries to automate the task of replacing bad frames using adjacent or close-by frames.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 Script]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=130611 GrainOptimizer]&lt;br /&gt;
|The only temporal-only grain reducer! See discussion for more information. Related topics: [http://forum.doom9.org/showthread.php?t=137117 x264: Film Grain Optimization], [http://web.archive.org/web/20090916181521/http://x264dev.blogspot.com/2008/05/film-grain-optimization.html]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20081228144846/http://mirror05.x264.nl/Dark/force.php?file=./GrainOptimizer_2.02.zip Plugin]&lt;br /&gt;
|Dark Shikari&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL KPassFilterCL]&lt;br /&gt;
|KPassFilterCL is a set of tools in the frequency domain.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL/releases Plugin]&lt;br /&gt;
|[http://github.com/Khanattila Khanattila ]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/LVS LVS]&lt;br /&gt;
| LVS (Lua Video Sync) is a video frameserver plugin to edit video frames with the capability of scripting language Lua + 2D image processing functionality. See [http://forum.doom9.org/showthread.php?t=167716 discussion] &lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/lua-video-sync/files/ Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.html NeuralNet]&lt;br /&gt;
| Neural networks through back propagation learn and filter some types of noise. Classification and linear type networks are included.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| PseudoColor &lt;br /&gt;
| This filter first converts clip to b/w, then colors it to pseudorandom colors according to brightness. See [http://forum.doom9.org/showthread.php?t=61570 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/pseudocolor_5F25_dll_20030919.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource QRCodeSource]&lt;br /&gt;
|AviSynth plugin to provide a means to embed QR codes in video.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource/releases Plugin]&lt;br /&gt;
|[http://github.com/jeremypoulter jeremypoulter]&lt;br /&gt;
|-&lt;br /&gt;
|RemoveDeadPixels&lt;br /&gt;
|See [http://forum.doom9.org/showthread.php?p=699915#post699915 here] and [http://videoprocessing.fr.yuku.com/topic/27/Removedeadpixels here].&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://web.archive.org/web/20160610103945/http://home.arcor.de/kassandro/RemoveDeadPixels.rar Plugin]&lt;br /&gt;
|{{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172601 rgba_rpn]&lt;br /&gt;
|A filter for manipulating the pixels of [[RGB]] (and also [[YUV]]) clips using [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation.] &lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://horman.net/avisynth/downloads/rgba_rpn0.1.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SegmentedAmp]] &lt;br /&gt;
| Image is segmented with watershed algorithm for smoothing and/or sharpening.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/SegmentedAmp Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172377 SmoothSkip]&lt;br /&gt;
|In tribute to tritical's awesome filter, this one tackles the inverse problem of [[TIVTC/TDecimate|TDecimate]]; allowing for addressing frames that have non-smooth, skippy motion. For source code see [http://github.com/jojje/SmoothSkip GitHub repository]. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://github.com/jojje/SmoothSkip/releases/download/v1.0.2/SmoothSkip-1.0.2.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
| [[Soothe]]&lt;br /&gt;
| Lessens the temporal instability and aliasing caused by sharpening, by comparing the original and sharpened clip, leaving a smoother and slightly softer output. See [http://forum.doom9.org/showthread.php?t=99679 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=99679 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/ Tracking]&lt;br /&gt;
| Use computer vision to track objects in the video, and produce ConditionalReader input. Demo at [http://www.youtube.com/watch?v=SQ-JtJs7US0 Youtube]. &lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/files/1.1/AvisynthTrackin.1.1.binary.zip/download Plugin]&lt;br /&gt;
| [http://avisynthtrackin.sourceforge.net/ Shlomo Matichin]&lt;br /&gt;
|-&lt;br /&gt;
| UnSmooth&lt;br /&gt;
| What does it do. It amplifies noise, small detail, and artifacts. Doesn't sound very attractive, but there can still be some detail left in over smoothed encodes. See [http://forum.doom9.org/showthread.php?t=63361 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090821183550/http://mf.creations.nl/avs/functions/UnSmooth-v0.1.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163870 Watermark]&lt;br /&gt;
|Creates a transparent deformation in the video akin to a watermark. The watermark is defined by a black and white image which may be a dynamic image. The intensity of the effect is controlled by several parameters.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1554560#post1554560 Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/phillvanleersum/profile/ DrPhill]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.html WaterShed] &lt;br /&gt;
| Assuming image grey values to be elevations, it is segmented into basins and watershed lines. Useful in certain medical image analysis and recoloring work.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| AviSynth 2.5.8: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.zip Plugin]&lt;br /&gt;
AviSynth 2.6.0: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed_2_6.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins xvplugins]&lt;br /&gt;
|This is simply a bunch of AviSynth stuff that isn't (really) possible using plain AviSynth and instead required a plugin.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:AviSynth_Usage]]&lt;br /&gt;
[[Category:External_filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/AutoOverlay</id>
		<title>AutoOverlay</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/AutoOverlay"/>
				<updated>2018-02-11T13:51:10Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: new page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat5|External_filters|Plugins|Layering|Overlay|Other_filters}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{Filter3&lt;br /&gt;
|[https://github.com/introspected introspected]&lt;br /&gt;
|0.1.8&lt;br /&gt;
|[https://github.com/introspected/AutoOverlay/releases releases]&lt;br /&gt;
|Layering, Overlay, Other&lt;br /&gt;
|[http://opensource.org/licenses/MIT MIT] but binaries are [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
|6=[https://forum.doom9.org/showthread.php?t=175247 Doom9 Thread]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
* AviSynth 2.6 or higher, AviSynth+. The latest x64 build is recommended (see ''releases'' above) &lt;br /&gt;
* AvsFilterNet plugin [https://github.com/mysteryx93/AvsFilterNet/ https://github.com/mysteryx93/AvsFilterNet/] (included, previous versions do not work correctly) &lt;br /&gt;
* .NET framework 4.0 or higher &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* Copy x86 and/or x64 versions of AvsFilterNet to the plugins folder. &lt;br /&gt;
* Copy AutoOverlay_netautoload.dll to the plugin folder, the same file used for both x86 and x64. &lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
The plugin is designed for auto-aligned optimal overlay of one video clip onto another. The auto-align within [[#OverlayEngine|OverlayEngine]] is performed by testing different coordinates (X and Y of the top left corner), resolutions, aspect ratio and rotation angles of the overlay frame in order to find the best combination of these parameters. The function of comparing the areas of two frames is the root-mean-square error (RMSE) on which PSNR is based - but is inversely proportional. The result of this function within the plugin is called simply DIFF since during development other functions were tested, too. The aim of auto-align is to minimize diff value. &lt;br /&gt;
&lt;br /&gt;
To increase performance, auto-align is divided into several stages of scaling and tests of different [[#OverlayConfig|OverlayConfig]]s which particularly include ranges of acceptable align values. For every OverlayConfig on the first stage, all possible combinations are tested in low resolution. On the next, a comparison based on the best align settings from the previous stage. Finally, if the required accuracy is achieved with current OverlayConfig, the remaining are not tested. After auto-align it is possible to overlay one frame onto another in different ways with configurable ''OverlayRender''.&lt;br /&gt;
&lt;br /&gt;
=== Load plugin in script ===&lt;br /&gt;
 LoadPlugin(&amp;quot;%plugin folder%\AvsFilterNet.dll&amp;quot;)&lt;br /&gt;
 LoadNetPlugin(&amp;quot;%plugin folder %\AutoOverlay_netautoload.dll&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[[AviSynth+]] supports plugin auto loading, if .NET plugin filename includes suffix _netautoload. So it includes by default. Check the proper filename in LoadNetPlugin clause.&lt;br /&gt;
&lt;br /&gt;
== Filters ==&lt;br /&gt;
&lt;br /&gt;
=== OverlayConfig ===&lt;br /&gt;
{{Template:FuncDef|OverlayConfig(float minOverlayArea, float minSourceArea, float aspectRatio1, float aspectRatio2,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; float angle1, float angle2, int minSampleArea, int requiredSampleArea, float maxSampleDifference,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int subpixel, float scaleBase, int branches, float acceptableDiff, int correction,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int minX, int maxX, int minY, int maxY, int minArea, int maxArea, bool fixedAspectRatio, bool debug)}}&lt;br /&gt;
&lt;br /&gt;
This filter describes configuration for [[#OverlayEngine|OverlayEngine]]: how to search optimal align settings. It defines the bounds of align values such as coordinates of the top left corner of overlaid image relative source image, width and height of scaled overlaid image and its rotation angle. Configuration contains OverlayEngine settings for auto-align process as well. The filter output is one frame clip that contains given arguments encoded to the image. It is the hack to inject these values to OverlayEngine as independent entity. It is possible to add some clips to config chain with regular splice operator: OverlayConfig(...) + OverlayConfig(...). OverlayEngine then will test each config in given order. As soon as acceptable diff value is reached, it will be returned as best align and other configs will not be processed.&lt;br /&gt;
&lt;br /&gt;
* '''minOverlayArea''' - minimum intersection part of overlay image in percent. By default: max value if overlay image will be completely contain source image (pan&amp;amp;scan). For example, if source clip is 1920x1080 and overlaid one is 1920x800 then value will be 800/1080 = 74%. &lt;br /&gt;
* '''minSourceArea''' - minimum intersection part of source image in percent. By default: max value if source image will be completely contain overlay image (pan&amp;amp;scan). For example, if source clip is 1440x1080 and overlaid one is 1920x1080 then value will be 1440/1920 = 75%. &lt;br /&gt;
* '''aspectRatio1''' and '''aspectRatio2''' - range of acceptable aspect ratio of overlaid image. By default – overlay clip aspect ratio. Can be specified in any order: &amp;lt;tt&amp;gt;aspectRatio1=2.35, aspectRatio2=2.45&amp;lt;/tt&amp;gt; is the same as &amp;lt;tt&amp;gt;aspectRatio1=2.45, aspectRatio2=2.35&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* '''angle1''' и '''angle2''' (default 0) - range of acceptable rotation angle if overlaid image. Can be specified in any order. Negative values – clockwise rotation, positive – counter. &lt;br /&gt;
* '''minSampleArea''' (default 1000) – minimum area in pixels of downsized source clip at first scale stage. The smaller, the faster, but also the greater risk of getting an incorrect result. Recommended range: 500-3000. &lt;br /&gt;
* '''requiredSampleArea''' (default 1000) - maximum area in pixels of downscaled source clip at first scale stage. The smaller, the faster, but also the greater risk of getting an incorrect result. Recommended range: 1000-5000. &lt;br /&gt;
* '''maxSampleDifference''' (default 5) – max allowed DIFF between downscaled source clip at previous and current scale iteration. If it is too high then previous iteration will not be processed. &lt;br /&gt;
* '''subpixel''' (default 0) – subpixel align accuracy. 0 – one pixel accuracy, 1 – half pixel, 2 – quarter and so on. Zero is recommended if one clip is much smaller then another. 1-3 if both clips have about the same resolution. &lt;br /&gt;
* '''scaleBase''' (default 1.5) – base to calculate downscale coefficient by formula &amp;lt;tt&amp;gt;coef=scaleBase^(1 - (maxStep - currentStep))&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* '''branches''' (default 1) - how many best align params from previous scale stage will be analyzed at the next one. 1-10 is recommended. The higher - the longer. &lt;br /&gt;
* '''acceptableDiff''' (default 5) – acceptable DIFF value. If it will be achieved with current OverlayConfig the remaining configs in the chain will not be processed. &lt;br /&gt;
* '''correction''' (default 1) – the value of correction the best align params between scale stages. The higher, then more different align params are tested. &lt;br /&gt;
* '''minX''', '''maxX''', '''minY''', '''maxY''' - ranges of top left corner coordinates, unlimited by default. &lt;br /&gt;
* '''minArea''', '''maxArea''' - area range of overlaid image in pixels, unlimited by default. &lt;br /&gt;
* '''fixedAspectRatio''' (default false) - maximum accurate aspect ratio. May be true only if aspectRatio1=aspectRatio2. &lt;br /&gt;
* '''debug''' (default false) – output given arguments, slower. &lt;br /&gt;
&lt;br /&gt;
=== OverlayEngine ===&lt;br /&gt;
{{Template:FuncDef|OverlayEngine(clip, clip, string statFile, int backwardFrames, int forwardFrames, clip sourceMask,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; clip overlayMask, float maxDiff, float maxDiffIncrease, float maxDeviation, bool stabilize,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; clip configs, string downsize, string upsize, string rotate, bool editor, string mode, bool debug)}}&lt;br /&gt;
&lt;br /&gt;
Filter takes two clips: source and overlay. It performs auto-align by resizing, rotation and shifting an overlay clip to find the best diff value. Best align settings are encoded into output frame so it could be read by another filter. The sequence of these align settings frame-by-frame (statistics) could be written to in-memory cache or file for reuse and manual editing via built-in visual editor.&lt;br /&gt;
&lt;br /&gt;
* '''source''' - first, base clip. &lt;br /&gt;
* '''overlay''' - second, overlaid clip. Both clips must be in the same color space without chroma subsampling. Y8, YV24 and RGB24 are supported. &lt;br /&gt;
* '''statFile''' (default empty) – path to the file with current align values. If empty then in-memory cache is used. Recommended use-case: to test different OverlayConfigs use in-memory cache. After that set statFile and run analysis pass. &lt;br /&gt;
* '''backwardFrames''' and '''forwardFrames''' (default 3) – count of previous and forward frames for searching align params of current frame. &lt;br /&gt;
* '''sourceMask''', '''overlayMask''' (default empty) – mask clips for source and overlaid clips. If mask was specified then pixels that correspond to zero values in mask will be excluded from comparison function. In RGB color space all channels are analyzed independent. In YUV only luma channel is analyzed. Masks and clips should be in the same type color space (YUV or RGB24). Note that in planar color space masks should be in full range (&amp;lt;tt&amp;gt;ColorYUV(levels=&amp;quot;TV-&amp;gt;PC&amp;quot;)&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* '''maxDiff''' (default 5) – diff value below which auto-align is marked as correct. &lt;br /&gt;
* '''maxDiffIncrease''' (default 1) – maximum allowed diff increasing in the frame sequence. &lt;br /&gt;
* '''maxDeviation''' (default 0.5) – max allowed rest area of clip in percent subtracting intersection to detect scene change. &lt;br /&gt;
* '''stabilize''' (default true) – attempt to stabilize align values at the beginning of scene when there is no enough backward frames including to current scene. &lt;br /&gt;
* '''configs''' (default OverlayConfig with default values) – configuration list in the form of clip. Example: &amp;lt;tt&amp;gt;configs=OverlayConfig(subpixel=1, acceptableDiff=10) + OverlayConfig(angle1=-1, angle2=1)&amp;lt;/tt&amp;gt;. If during analyses of first configuration it founds align values with diff below 10 then second one with high ranges and low performance will be skipped. &lt;br /&gt;
* '''downsize''' and '''upsize''' (default ''BilinearResize'') – functions that used for downsizing and upsizing of overlaid clip during auto-align. &lt;br /&gt;
* '''rotate''' (default ''BilinearRotate'') – rotation function. Currently built-in one is used which based on AForge.NET. &lt;br /&gt;
* '''editor''' (default false). If true then visual editor form will be open at the script loading. &lt;br /&gt;
* '''mode''' (default &amp;quot;default&amp;quot;) – engine mode: DEFAULT – default modeUPDATE – as default but with forced diff updateERASE – erase statisticsREADONLY – use only existing align statistics &lt;br /&gt;
* '''debug''' (default false) - output align values, slower. &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The engine works out optimal align values: coordinates of overlaid clip's top left corner (x=0,y=0 is the left top corner of source clip), rotation angle in degrees, overlaid width and height, floating-point crop values from 0 to 1 for subpixel accuracy (left, top, right, bottom) and DIFF value. ''[[#OverlayConfig|OverlayConfig]]'' chain provides ranges of acceptable align values. The engine runs each config one-by-one while align values with acceptable diff would not be found. Auto-align process for each configuration includes multiple scaling stages. At the first stage all possible combinations of align values are tested in the lowest resolution. The count of best align value sets passed to the next stage is given by &amp;lt;tt&amp;gt;OverlayConfig.branches&amp;lt;/tt&amp;gt; parameter. At the next stages best sets from previous are corrected. Note that, simplified, one pixel in low resolution includes four from high. ''OverlayConfig'' contains &amp;lt;tt&amp;gt;correction&amp;lt;/tt&amp;gt; parameter to set correction limit for all directions and sizes in pixels.Image resizing is performed by functions from ''downsize'' and ''upsize'' parameters. First one is commonly used at the intermediate scale stages, last one at the final. So it's recommended to use something better than BilinearResize at the end. The functions must have signature as follow: &amp;lt;tt&amp;gt;Resize(clip clip, int target_width, int target_height, float src_left, float src_top, float src_width, float src_height)&amp;lt;/tt&amp;gt;. Additional parameters are allowed, that is, the signature corresponds to standard resize functions. It is recommended to use the ResampleMT plugin, which provides the same functions but internally multithreaded.Besides auto-align of given frame the engine analyses sequence of neighboring frames is specified by ''backwardFrames'' and ''forwardFrames'' parameters according to ''maxDiff, maxDiffIncrease, maxDeviation, stabilize'' params as described below:&lt;br /&gt;
&lt;br /&gt;
* Request align values of current frame. &lt;br /&gt;
* Return data from statFile or in-memory cache if this frame was auto-aligned already. &lt;br /&gt;
* If previous frames in quantity of ''backwardFrames'' are already aligned with the same values and their DIFF don't exceed ''maxDiff'' value, then the same align values will be tested for the current frame. &lt;br /&gt;
* If maximum DIFF is increasing within sequence is lower than ''maxDiffIncrease'', then the engine analyzes next frames in quantity of ''forwardFrames'' otherwise current frame will be marked as independent from previous &amp;amp;ndash; that means scene change. &lt;br /&gt;
* If current frame was included to the sequence with previous frames then the same align values will be tested on forward frames if ''forwardFrames'' is greater than zero. If all next frames are good at the same align then current frame will be included to the sequence. &lt;br /&gt;
* If some of next frames exceed ''maxDiff'' value or difference between next frame diff and average diff is higher than ''maxDiffIncrease'' then the engine will work out optimal auto-align values for next frame. If new align values significantly differ from previous then we have scene change otherwise there is pan&amp;amp;scan episode and each frame should be processed independently. The parameter that used for this decision is ''maxDeviation''. &lt;br /&gt;
* If current frame is marked as independent after previous operations and ''OverlayEngine.stablize=true'' then engine tries to find equal align params for the next frames too to start new scene. &lt;br /&gt;
* If ''backwardFrames'' is equal to zero then each frame is independent. This scenario has very low performance and may cause image shaking. Use this only if you have two different original master copies from which the sources were made. &lt;br /&gt;
&lt;br /&gt;
==== Visual editor ====&lt;br /&gt;
Displayed when ''OverlayEngine.editor''&amp;lt;nowiki&amp;gt;=true. It is useful after analysis pass when statFile is specified to check all scenes and manually correct incorrect aligned frames.&amp;lt;/nowiki&amp;gt;Preview from the left side. Below there is trackbar by total frame count and current frame input field. Grid with equal aligned frame sequences on the right. It is possible to move between scenes by row selection. Below grid there is a control panel.''Overlay settings'' contains controls to change align values of current scene. ''Crop'' fields in pro mil px from 0 to 1000.Below there is ''AutoOverlay'' section.''Single frame'' button performs auto-align based on the current frame. The result is applied to the full scene. ''Separated frame'' button performs auto-align based on the current frame. If new align values is differ from the scene then current frame is separated. ''Scene'' button performs auto-align for each frame in the scene independently.On the right there are controls to process pan&amp;amp;scan scenes. Before using it join pan&amp;amp;scan frame sequence into one scene (one row in grid) and press ''Single frame'' for the first frame in the sequence. After that set maximum ''distance'' in pixels of shifting and resizing limit in pro mil for each next frame according to previous one. The click to ''Pan&amp;amp;scan'' button to process the whole scene. The progress will be displayed at the form caption. Below there is ''Display settings''. It includes the same settings as OverlayRender filter: output resolution, overlay mode, gradient and noise length, opacity in percent, ''preview'' and ''display info'' checkboxes. If preview is disabled then source clip is displayed.At the bottom of control panel there are button panel. The scenes that were changed by user are highlighted with yellow color in grid. ''Save'' button will apply changes to statFile. ''Reset'' will reload all data from file. ''Reload'' will reload data only for current frame and apply it to while scene. ''Separate'' will exclude the current frame from scene. ''Join prev'' will join previous scene to current and overwrite align values. ''Join next'' will join next scene to current and overwrite align values. ''Join to'' will join current scene to specified frame and overwrite align values.&lt;br /&gt;
&lt;br /&gt;
'''Hotkeys''':&lt;br /&gt;
&lt;br /&gt;
* Ctrl + S - save &lt;br /&gt;
* Ctrl + R - reload &lt;br /&gt;
* D - enable/disable difference &lt;br /&gt;
* P - enable/disable preview &lt;br /&gt;
* Ctrl + arrow keys - move overlay image &lt;br /&gt;
* Ctrl + add/subtract - scale overlay image &lt;br /&gt;
* A, Z - next/previous frame &lt;br /&gt;
&lt;br /&gt;
=== OverlayRender ===&lt;br /&gt;
{{Template:FuncDef|OverlayRender(clip, clip, clip, clip sourceMask, clip overlayMask, bool lumaOnly, int width, int height, &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int gradient, int noise, bool dynamicNoise, bool mode, float opacity, int colorAdjust,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; string matrix, string upsize, string downsize, string rotate, bool debug)}}&lt;br /&gt;
&lt;br /&gt;
This filter preforms rendering of the result clip using align values from the engine.&lt;br /&gt;
&lt;br /&gt;
* '''engine''' - ''OverlayEngine'' clip. &lt;br /&gt;
* '''source''' - first, base clip. &lt;br /&gt;
* '''overlay''' - second, overlaid clip. Both clips must be in the same color space without chroma subsampling. Y8, YV24 and RGB24 are supported. &lt;br /&gt;
* '''sourceMask''', '''overlayMask''' (default empty) - mask clips for source and overlaid clips. Unlike masks in overlay engine in this filter they work as avisynth built-in overlay filter masks. If both masks are specified then they are joined to one according align values. The purpose of the masks is maximum hiding of logos and other unwanted parts of the clips at transparent or gradient parts, which could be specified by ''gradient'' and ''noise'' parameters. &lt;br /&gt;
* '''lumaOnly''' (default false) – overlay only luma channel when ''mode''&amp;lt;nowiki&amp;gt;=1. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''width''' и '''height''' - output width and height. By default are taken from source clip. &lt;br /&gt;
* '''gradient''' (default 0) – length of gradient at the overlay mask to make borders between images smoother. Useful when clips are scientifically differ in colors or align is not very good. &lt;br /&gt;
* '''noise''' (default 0) - length of “noise gradient” at the overlay mask to make borders between images smoother. Useful when clips are in the same color and align is very good. &lt;br /&gt;
* '''dynamicNoise''' (default true) – use dynamic noise gradient if ''noise'' &amp;gt; 0. &lt;br /&gt;
* '''mode''' (default 1) – overlay and cropping mode:1 - crop around the edges of the source image.2 - combination of both images with cropping to the all four edges of the output clip with “ambilight” at the corners.3 - combination of both images without any cropping.4 - as 3 but with “ambilight” at the corners.5 - as 3 but with “ambilight” at all free space.6 – as 3 but with pure white clips. Useful to combine the result clip with another one.7 - as 1 but clips overlaid in difference mode. Useful to check align. &lt;br /&gt;
* '''opacity''' (default 1) – opacity of overlaid image from 0 to 1. &lt;br /&gt;
* '''colorAdjust''' (default 0) ''unstable'' - color adjustment mode:0 - disabled1 – overlaid clip will be adjusted to source2 - source clip will be adjusted to overlaidColor adjustment performs by histogram matching in the intersection area. For the YUV images adjusts only luma channel. For the RGB images adjusts all 3 channels independently. &lt;br /&gt;
* '''matrix''' (default empty). If specified YUV image converts to RGB with given matrix for color adjustment. &lt;br /&gt;
* '''downsize''' и '''upsize''' (default ''BilinearResize'') - downsize and upsize functions. It’s recommended to use functions with high quality interpolation. &lt;br /&gt;
* '''rotate''' (default ''BilinearRotate'') – rotation function. &lt;br /&gt;
* '''debug''' - output align settings to the top left corner. &lt;br /&gt;
&lt;br /&gt;
=== OverlayCompare ===&lt;br /&gt;
{{Template:FuncDef|OverlayCompare(clip, clip, clip, string sourceText, string overlayText, int sourceColor, int overlayColor,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int borderSize, float opacity, int width, int height, bool info)}}&lt;br /&gt;
&lt;br /&gt;
=== ColorRangeMask ===&lt;br /&gt;
{{Template:FuncDef|ColorRangeMask(clip, int low, int high)}}&lt;br /&gt;
&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
==== Simple script ====&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 OM=AviSource(&amp;quot;c:\test\OpenMatte.avs&amp;quot;) # YV12 clip&lt;br /&gt;
 WS=AviSource(&amp;quot;c:\test\Widescreen.avs&amp;quot;) # YV12 clip&lt;br /&gt;
 OverlayEngine(OM.ConvertToY8(), WS.ConvertToY8(), configs=OverlayConfig(subpixel=2)) &lt;br /&gt;
 OverlayRender(OM.ConvertToYV24(), WS.ConvertToYV24(), debug=true)&lt;br /&gt;
 ConvertToYV12()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Analysis pass without render. Aspect ratio range was specified. Set editor=true after analysis pass. ====&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 OM=AviSource(&amp;quot;c:\test\OpenMatte.avs&amp;quot;) # YV12 clip&lt;br /&gt;
 WS=AviSource(&amp;quot;c:\test\Widescreen.avs&amp;quot;) # YV12 clip&lt;br /&gt;
 config=OverlayConfig(aspectRatio1=2.3, aspectRatio2=2.5)&lt;br /&gt;
 OverlayEngine(OM.ConvertToY8(), WS.ConvertToY8(), configs=config, &lt;br /&gt;
 \        statFile=&amp;quot;c:\test\Overlay.stat&amp;quot;, editor=false)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
[[TODO]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/External_filters</id>
		<title>External filters</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/External_filters"/>
				<updated>2018-02-11T12:49:26Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: /* Borders and Cropping */ merge 2 tables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rough classification of third-party filters for AviSynth - a perpetual work in progress.&lt;br /&gt;
&lt;br /&gt;
This page lists both scripts (see [[Import]]) and plugins (see [[Plugins]]).&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
==== Download sites ====&lt;br /&gt;
A large list of filters can be downloaded from the following sites but be aware that some plugins listed '''may be outdated''', only recommended as a backup.&lt;br /&gt;
&lt;br /&gt;
*[http://web.archive.org/web/20130803185015/http://www.64k.it/andres/dettaglio.php?sez=avisynth Andres' Filter Collection] &lt;br /&gt;
*[http://chaosking.de/repo/avsfilters/ AviSynth Filter DB by ChaosKing] | [http://web.archive.org/web/20140412062911/http://chaosking.de/avisynth-filter-db mirror]&lt;br /&gt;
*[http://www.avisynth.info/?plugin=attach&amp;amp;pcmd=list&amp;amp;refer=%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96 AviSynth.info Filter Archive]&lt;br /&gt;
*[http://xhmikosr.1f0.de/_old/avisynth/plugins/ XhmikosR's Builds] &lt;br /&gt;
*[http://www.avisynth.nl/users/warpenterprises/ Warp Enterprises' AviSynth Filter Collection]&lt;br /&gt;
&lt;br /&gt;
====64-bit filters====&lt;br /&gt;
'''[[AviSynth%2B_x64_plugins|Comprehensive list of AviSynth+ 64-bit filters]] &amp;amp;rarr;'''&lt;br /&gt;
&lt;br /&gt;
====Outdated AviSynth plugins====&lt;br /&gt;
[[External plugins old|External plugins (old)]] - these older plugins are not recommended, page is there mainly for historical purposes.&lt;br /&gt;
&lt;br /&gt;
==== Using filters ====&lt;br /&gt;
Most scripts will apply filters in the following order:&lt;br /&gt;
&lt;br /&gt;
# Create an AviSynth clip from a video file using a source filter.&lt;br /&gt;
# Correct or remove any unwanted features in the video (e.g. dot crawl, field blending or telecine).&lt;br /&gt;
# Denoise the video (optional).&lt;br /&gt;
# Manipulate the video into the desired format (by e.g. changing the size and frame rate).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--AviSynth filters have been classified under these four basic tasks, with a fifth category for filters that fall outside this scheme, and a sixth category for filters that process audio only.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135855 BassAudio]&lt;br /&gt;
| [http://un4seen.com/bass.html Bass Audio] decoder. Supports wav, aiff, mp3, mp2, mp1, ogg. Support for aac, ac3, alac, ape, cd, flac, midi, mpc, ofr, spx, tta, wma, wv with additional included dll's. The filter is included in the Behappy package.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135855 Plugin]&lt;br /&gt;
| dimzon&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/cmvsource.htm CMVSource]&lt;br /&gt;
| Load [http://www.bay12games.com/dwarves/ Dwarf Fortress] CMV and CCMV movies.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=162850 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=122598 DGAVCDecode] &lt;br /&gt;
| AVC/H.264 decoder plug-in. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.videohelp.com/tools/DGAVCDec Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DGDecode]] &lt;br /&gt;
| Decode MPEG1/MPEG2 streams from: DVD VOBs, captured transport streams, *.mpg/*.m2v/*.pva files, etc. Use this instead of MPEGDecoder/MPEG2Dec3.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]], [[I420]] &lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170107 DGMVCSource]&lt;br /&gt;
|MVC source filter for AviSynth.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://rationalqm.us/dgmvcsource/dgmvcsource100b22.zip Plugin]&lt;br /&gt;
|{{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| DVInfo&lt;br /&gt;
| Grabs the timestamp and recording date info from a DV-AVI. See [http://forum.doom9.org/showthread.php?t=61688 discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dvinfo_20100602.zip Plugin] [http://forum.doom9.org/showthread.php?p=1740824#post1740824 Update]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023927/http://mvideo.ddpp.net/eng/dvtimestampex.htm DVTimeStampEx]&lt;br /&gt;
| Shows DV timestamp information over a DV clip.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5.zip Plugin] - [http://web.archive.org/web/20071024123608/http://mvideo.ddpp.net/downld/dvtimestampex_0_5_5_src.zip source code]&lt;br /&gt;
| [http://web.archive.org/web/20071025023932/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134275 DSS2]&lt;br /&gt;
| DirectShowSource2 that uses the installed Haali Media Splitter along with its ''avss.dll'' AviSynth plugin. It can convert VFR files to CFR in order to support frame-accurate seeking. Not recommended due to the fact that Haali Media Splitter is considered outdated, use DDS2mod.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130923230211/http://haali.su/mkv/ Plugin]&lt;br /&gt;
| Haali&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1699301&amp;amp;postcount=33 DSS2mod]&lt;br /&gt;
| DirectShowSource2 mod, this version does not require Haali Media Splitter. &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160224130743/https://filetea.me/t1sFlzxrp9xSdaqTlf3qZ6nCQ/dl Plugin]&lt;br /&gt;
| forclip&lt;br /&gt;
|-&lt;br /&gt;
| [[FFmpegSource]]&lt;br /&gt;
| Decodes all ffmpeg ([http://en.wikipedia.org/wiki/Libavcodec libavcodec]) supported A/V formats with frame accurate seeking in AVI, MKV and MP4. See [http://forum.doom9.org/showthread.php?t=127037 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]], [[I420]]&lt;br /&gt;
| [http://github.com/FFMS/ffms2/releases Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, TheFluff, Plorkyeran, others&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 FRIMSource]&lt;br /&gt;
|FRIMSource is an AviSynth plugin for sequential reading of elementary or transport streams (MPEG2, H.264 AVC/MVC-3D, VC1).&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=169651 Plugin]&lt;br /&gt;
|videofan3d&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110021 HDVInfo] &lt;br /&gt;
| Grabs the timestamp and recording date info out of a M2T-D2V file&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://web.archive.org/web/20120419204535/http://strony.aster.pl/paviko/hdvinfo0.93.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ImageSequence]]&lt;br /&gt;
| Load png, jpg, bmp, pcx, tga and gif image sequences using the [http://corona.sourceforge.net/ Corona Image I/O Library]. CoronaSequence/RawSequence.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/imagesequence_20101115.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaRead uses the ImageMagick libraries to read images. Many formats are supported including animations, multipage files, image sequences and images with different sizes.&lt;br /&gt;
|&lt;br /&gt;
| [http://www.wilbertdijkhof.com/ Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| IUF&lt;br /&gt;
| Import Uncompressed File. Must be uncompressed! Supported uncompressed Formats: avi, omf(avid), pxr(pixar), mov(24/32bit quicktime), cineon. Can export as well. See [http://forum.doom9.org/showthread.php?t=51227 discussion].&lt;br /&gt;
| [[RGB]]&lt;br /&gt;
| [http://web.archive.org/web/20091016215740/http://geocities.com/hanfrunz/iuf_v1.5.zip Plugin] &lt;br /&gt;
| hanfrunz&lt;br /&gt;
|-&lt;br /&gt;
| [[JpegSource]]&lt;br /&gt;
| An advanced JPEG decoder for Avisynth 2.6. See [http://forum.doom9.org/showthread.php?t=170028 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/rjnt0y3ead2c6ef/JpegSource_20140419.7z Plugin] &lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[LSMASHSource]]&lt;br /&gt;
| A source plugin for audio and video, it uses Libav ([http://en.wikipedia.org/wiki/Libav#Contained_codecs libavcodec]) to decode all supported A/V formats. See [http://forum.doom9.org/showthread.php?t=167435 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[LSMASHSource|Plugin]]&lt;br /&gt;
| {{Author/VFR-maniac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NicAudio]]&lt;br /&gt;
| Audio Plugins for Audio: MPEGAudio/AC3/DTS/LPCM and other uncompressed formats. Formerly known As EvilMPASource. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=89629 discussion], [http://forum.doom9.org/showthread.php?t=135876 continued discussion].&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://nicaudio.codeplex.com/ Plugin]&lt;br /&gt;
| {{Author/Nic}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=103931 OmfSource] &lt;br /&gt;
| Opens the AVID OMF file format (video only, and only works with captured files). See [http://forum.doom9.org/showthread.php?t=103931 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [[QTSource]]&lt;br /&gt;
| Quicktime Import/Export Filter using an existing installation of Quicktime 6/7. See [http://forum.doom9.org/showthread.php?t=104293 discussion].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://www.tateu.net/software/ Plugin]&lt;br /&gt;
| {{Author/tateu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ R3DSource]&lt;br /&gt;
| Redcode RAW source plugin to load R3D clips. See [http://reduser.net/forum/showthread.php?25398 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20120124010957/http://arenafilm.hu/alsog/avisynthr3d/ Plugin]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RawSource26]]&lt;br /&gt;
| Loads raw video data directly from files. Further modifications (most raw formats, YUV4MPEG2 compatible with latest spec) [http://forum.doom9.org/showthread.php?t=39798 discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [https://github.com/chikuzen/RawSource_2.6x/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawReader&amp;quot;)&lt;br /&gt;
| Loads raw video data directly from files, similarly to RawSource, but also allows for skipping headers, and extra formats (long list to help anyone doing a search):  GREY, Y8, interleaved RGB, BGR (which is RGB24), BGRA (which is RGB32), ARBG, ABGR, RGBA, interleaved YUV (which is YCbCr), YUY2, UYVY, AYUV, planar YUV formats YUV444, YUV422, YUV420 (as YV12), YUV420 (as IMC2), and some raw ImageMagick formats.  Some supports for different bit-depths.  Includes YUVInterleaved.avsi, InterleavedConversions.avsi, and PlanarConversions.avsi.  [http://forum.doom9.org/showthread.php?p=1403600 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[VapourSource]]&lt;br /&gt;
| VapourSynth script reader for AviSynth2.6x.  [http://forum.doom9.org/showthread.php?t=168339 Discussion].&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/VapourSource/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170311 VideoInputSource]&lt;br /&gt;
| Capture video frames from video capture card or webcam in real-time.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://github.com/fieliapm/himawari_avs_plugin/raw/master/VideoInputSource/VideoInputSource.dll Plugin]&lt;br /&gt;
|[http://github.com/fieliapm fieliapm]&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource ssifSource]&lt;br /&gt;
| Open m2ts, ssif and mpls files located in decrypted Blu-ray and Blu-ray 3D discs. Supports horizontal of vertical stack of views as output, views selection and swap autodetection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restoration Filters ==&lt;br /&gt;
&lt;br /&gt;
These remove effects or artifacts introduced (deliberately or accidentally) into the source video. Denoisers are classified separately.&lt;br /&gt;
&lt;br /&gt;
=== Anti-[[aliasing]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DAA]]&lt;br /&gt;
| Anti-aliasing with contra-sharpening.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| mcDAA3&lt;br /&gt;
| Motion-Compensated Anti-aliasing with contra-sharpening, can deal with ifade too, created because when applied daa3 to fixed scenes, it could damage some details and other issues. See [http://forum.doom9.org/showthread.php?p=1639679#post1639679 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/?wqkob7zx1p119e0 Script]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[MAA2]]&lt;br /&gt;
| Updated version of the MAA antialising script.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20140624125132/https://raw.githubusercontent.com/AviSynth/avs-scripts/master/maa2.avsi Script]&lt;br /&gt;
| line0&lt;br /&gt;
|-&lt;br /&gt;
| [[santiag]]&lt;br /&gt;
| Simple anti-aliasing with independent horizontal and vertical anti-aliasing strength.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1393006 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpAAMCmod&lt;br /&gt;
| High quality MoComped AntiAliasing script, also a line darkener since it uses edge masking to apply tweakable warp-sharpening, &amp;quot;normal&amp;quot; sharpening and line darkening with optional temporal stabilization of these edges. Part of [[AnimeIVTC]]. See [http://forum.doom9.org/showthread.php?t=138305] and [http://forum.doom9.org/showthread.php?t=140031]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| [[TIsophote]]&lt;br /&gt;
| A level-set (isophote) smoothing filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162751/http://bengal.missouri.edu/~kes25c/TIsophotev091.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[xaa]]&lt;br /&gt;
|Versatile anti-aliasing script.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV24]]&lt;br /&gt;
|[http://www.mediafire.com/download/sygi04y47eknvc2/xaa_v1.1.1.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chroma correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Archived}}/trbarry/Readme_BT709ToBT601.txt BT709ToBT601]&lt;br /&gt;
| Convert from BT.709 (HDTV) to BT.601 (SDTV) colorimetry.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/BT709ToBT601.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
|[[caf]]&lt;br /&gt;
|Chromatic Aberration Fixer.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| Torchlight&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShift]]&lt;br /&gt;
| This filter will shift the chrominance information by an even number of pixels, in either horizontal direction. It can also apply an overall vertical shift of the total chrominance information, up or down. It is primarily intended to correct improper colour registration. See [http://forum.doom9.org/showthread.php?t=33302 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091026153334/http://www.geocities.com/siwalters_uk/chromashift27.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaShiftSP]]&lt;br /&gt;
| This script can shift chroma in all directions with subpixel accuracy.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/ChromaShiftSP.avsi Script]&lt;br /&gt;
| IanB, McCauley &lt;br /&gt;
|-&lt;br /&gt;
| ColorMatrix&lt;br /&gt;
| ColorMatrix corrects the colors of MPEG-2 streams. More correctly, many MPEG-2 streams use slightly different coefficients (called Rec.709) for storing the color information than AviSynth's color conversion routines or the XviD/DivX decoders (called Rec.601) do, with the result that DivX/XviD clips or MPEG-2 clips encoded by TMPGEnc/QuEnc are displayed with slighty off colors. This can be checked by opening the MPEG-2 stream directly in VDubMod. See [http://forum.doom9.org/showthread.php?t=82217 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420180927/http://bengal.missouri.edu/~kes25c/ColorMatrixv25.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/tritical}} (v2.0+)&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleeding]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091026141730/http://www.geocities.com/alex_j_jordan/chroma.txt Script]&lt;br /&gt;
| {{Author/Alex Jordan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaBleedingMod]]&lt;br /&gt;
| Fixes area of chroma bleeding by shifting the chroma and lowering the saturation in the affected areas. See [http://forum.doom9.org/showthread.php?t=77074#post1673932 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV411]]&lt;br /&gt;
| [[FixChromaBleedingMod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
| [[FixChromaticAberration]]&lt;br /&gt;
| FixChromaticAberration resizes (and crops) the red/green/blue channels of the image separately. This helps to minimize the colored edges next to the image corners that result from lenses with chromatic aberration. See [http://forum.doom9.org/showthread.php?p=1520786#post1520786 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/index.php/FixChromaticAberration Script]&lt;br /&gt;
| Martin Wagener&lt;br /&gt;
|-&lt;br /&gt;
| [[MoveChroma]]&lt;br /&gt;
| Chroma shifting filter; can be used to independently shift the U/V channels left or right.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/MoveChroma.20090823.zip Plugin]&lt;br /&gt;
| [http://sky.geocities.jp/apechironnup/ apechironnup]&lt;br /&gt;
|-&lt;br /&gt;
| [[ReInterpolate411]]&lt;br /&gt;
| This is a fast and simple filter to correct the improper 4:1:1 =&amp;gt; 4:2:2 conversion that seems to occur with some DV/4:1:1 codecs.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/ReInterpolate411.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420.html ReInterpolate420]&lt;br /&gt;
| Usually, DV decoders upsample [[PAL]] DV (which is YV12) to YUY2 using point sampling. This plugin re-interpolates the original chroma samples.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/fizick/reinterpolate420/reinterpolate420_v3.zip Plugin]&lt;br /&gt;
|  {{Author/Wilbert Dijkhof}}&lt;br /&gt;
{{Author/Fizick}} (v3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Debanding ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AdaptDBMC&lt;br /&gt;
| Luma / Fade / Blue adaptive debanding script. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=512 Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2db]]&lt;br /&gt;
| A simple and fast debanding filter. See Wikipedia: [http://en.wikipedia.org/wiki/Color_banding Color Banding]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140705233110/http://manao4.free.fr/gradfun2db-v1.0.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[GradFun2DBmod]]&lt;br /&gt;
| An advanced debanding script based on GradFun2DB.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144537 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| GradFun3&lt;br /&gt;
| This debanding script, part of the [[External_filters#Deepcolor_Filters|Dither]] package, has several gradient smoothing algorithms, including a bilateral filter. It uses an ordered dithering, which has a good resilience to lossy compression.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://f3kdb.readthedocs.org/en/latest/ flash3kyuu_deband]&lt;br /&gt;
| Fast debanding plugin ported from AviUtl.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[YV16]], [[YV24]], [[Y8]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161411 Plugin]&lt;br /&gt;
| [http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| LumaDB&lt;br /&gt;
| Fast 8-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114932/http://www.nmm-hd.org/upload/get~3YK_B5TfcyI/LumaDB-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| LumaDBL&lt;br /&gt;
| Fast 16-bit debanding filter with luma-adaptive grain and mask. Used to process luma only. Works in 16-bit internally and can also input/output 16-bit. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&amp;amp;t=668 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114947/http://www.nmm-hd.org/upload/get~mQYIS9H6Qas/LumaDBL-0.7.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deblocking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| BlockKiller&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=1410479#post1410479 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1410479&amp;amp;postcount=19 Script]&lt;br /&gt;
| Jawed&lt;br /&gt;
|-&lt;br /&gt;
| BlockTerminator&lt;br /&gt;
| Deblocking filter, see [http://forum.doom9.org/showthread.php?p=831936#post831936 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=831936&amp;amp;postcount=24 Script]&lt;br /&gt;
| foxyshadis&lt;br /&gt;
|-&lt;br /&gt;
| [[DeBlock]]&lt;br /&gt;
| Deblocking filter,  see [http://forum.doom9.org/showthread.php?t=110352 discussion,] and [http://github.com/tp7/Deblock updated version] for AviSynth 2.6. DGDecode uses [{{N2Moved}}/dgmpgdec/DGDecodeManual.html#DeBlock DeBlock.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeBlock Plugin]&lt;br /&gt;
| {{Author/Fizick}} / {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblock_QED]]&lt;br /&gt;
| &amp;quot;A postprocessed Deblock(): Uses full frequencies of Deblock's changes on block borders, but DCT-lowpassed changes on block interiours.&amp;quot; [http://forum.doom9.org/showpost.php?p=913365&amp;amp;postcount=4 Didée]. See [http://forum.doom9.org/showthread.php?p=944459 discussion.] For updated Deblock QED see this [http://forum.doom9.org/showthread.php?t=154777 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Deblock_QED_MT2Mod.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeblockPP7]]&lt;br /&gt;
| A port of the MPlayer PP7 deblocking filter. See [http://forum.doom9.org/showthread.php?t=172498 discussion].&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=14970&amp;amp;d=1440108276 Plugin]&lt;br /&gt;
|John Doe&lt;br /&gt;
|-&lt;br /&gt;
| [[FunkyDeBlock]]&lt;br /&gt;
| Deblocking script based on BlindPP and high/low pass separation. See [http://forum.doom9.org/showthread.php?t=72431 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MDeblock]]&lt;br /&gt;
| Plugin for removing block artifacts, see [http://home.arcor.de/kassandro/MDeblock/MDeblock.htm homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/MDeblock/MDeblock.zip Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD]]&lt;br /&gt;
| Filter to deblock frames while keeping high frequency detail. See [http://forum.doom9.org/showthread.php?t=84355 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.funknmary.de/bergdichter/projekte/video/SmoothD Plugin]&lt;br /&gt;
| Tobias Bergmann&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothD2]]&lt;br /&gt;
| Deblocking filter.  Rewrite of SmoothD. Faster, better detail preservation, optional chroma deblocking. See [http://forum.doom9.org/showthread.php?t=164800 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/jconklin754smoothd2/download Plugin]&lt;br /&gt;
| Jim Conklin&lt;br /&gt;
|-&lt;br /&gt;
| SmoothDeblock&lt;br /&gt;
| Slow and complex, but produces very good results - especially on severely blocky sources - in a similar manner to TempGaussMC and QTGMC. See [http://forum.doom9.org/showthread.php?t=111526 discussion] and an [http://forum.doom9.org/showthread.php?p=945261#post945261 overall comment].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1553458#post1553458 Script]&amp;lt;br&amp;gt;[[SmoothDeblock_source|(alt source)]]&lt;br /&gt;
| redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock.html Unblock]&lt;br /&gt;
|UnBlock is a filter that removes the &amp;quot;blockiness&amp;quot; of heavily or moderately compressed images with statistical approach. See [http://forum.doom9.org/showthread.php?t=133059 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.org.ru/unblock/unblock11.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dehaloing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[abcxyz]]&lt;br /&gt;
| Filter to remove halos. See [http://forum.doom9.org/showthread.php?t=144982 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Media:abcxyz_MT2.avsi|Script]]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BlindDeHalo3]]&lt;br /&gt;
| Filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=622289#post622289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5599&amp;amp;d=1143030001 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeHalo_alpha]]&lt;br /&gt;
| Very powerful filter to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=777956#post777956 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Dehalo_alpha_mt.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[DeHaloHmod]]&lt;br /&gt;
| Another halo reducer, it includes lots of options to tweak for best performance. See [http://forum.doom9.org/showthread.php?p=1675762#post1675762 discussion]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [[DeHaloHmod|Script]]&lt;br /&gt;
|AmjadSONY&lt;br /&gt;
|-&lt;br /&gt;
|[[FineDehalo]]&lt;br /&gt;
|Halo removal script that uses DeHalo_alpha with a few masks and optional contra-sharpening to try remove halos without removing important details (like line edges).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/images/FineDehalo.avsi Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| Mask_DHA&lt;br /&gt;
| A combination of the best of DeHalo_alpha and BlindDeHalo3, plus a few minor tweaks to the masking. See [http://forum.doom9.org/showthread.php?t=148498 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| 'Orum&lt;br /&gt;
|-&lt;br /&gt;
| [[VHSHaloremover]]&lt;br /&gt;
| Quick &amp;amp; dirty halo removal. Will introduce some blurriness, but the halos are so huge you can’t avoid it. See [http://forum.doom9.org/showthread.php?p=1758184#post1758184]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://pastebin.com/s24mSgJ5 Script]&lt;br /&gt;
| {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YAHR]]&lt;br /&gt;
| Basic filter with no variables to remove edge enhancement artifacts. See [http://forum.doom9.org/showthread.php?p=1205653#post1205653]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/YAHR.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| YAHRmod&lt;br /&gt;
| Basic filter used to reduce halos in modern DVD and other cases.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YAHRmod_source|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deringing &amp;amp; Mosquito Noise ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpSharpDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by heavily aWarpSharp-ing the image and then applying it only to the areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/AWarpSharpDering.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak]&lt;br /&gt;
|-&lt;br /&gt;
| [http://rationalqm.us/dgmpgdec/DGDecodeManual.html#BlindPP BlindPP]&lt;br /&gt;
| Deblocking &amp;amp; deringing filter; part of [[DGDecode]]. &amp;lt;br&amp;gt;Mosquito noise removal: &amp;lt;code&amp;gt;BlindPP(quant=16, cpu2=&amp;quot;ooooxx&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dgmpgdec/dgmpgdec.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=636297#post636297 BlindDeRing]&lt;br /&gt;
| Deringing filter.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Restoration_Filters/Deringing/BlindDeRing___(2005).7z Plugin]&lt;br /&gt;
| krieger2005&lt;br /&gt;
|-&lt;br /&gt;
| [[EdgeCleaner]]&lt;br /&gt;
| A simple edge cleaning and weak dehaloing function. See [http://forum.doom9.org/showthread.php?t=164592 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1568521&amp;amp;postcount=13 Script]&lt;br /&gt;
| [http://forum.doom9.org/member.php?u=80518 canuckerfan]&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only. See [http://forum.doom9.org/showthread.php?p=1043583#post1043583 here] and [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=67532 here] for details.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=793930#post793930 Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[HQDering mod]]&lt;br /&gt;
| Applies deringing by using a smart smoother near edges (where ringing occurs) only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140711173345/http://www.nmm-hd.org/upload/get~08CusazVphU/HQDeringmod_v1.8.avsi Script]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/memberlist.php?mode=viewprofile&amp;amp;u=479&amp;amp;sid=ff62d0f6c22fcfdbe97b53c8351429bc mawen1250]&lt;br /&gt;
|-&lt;br /&gt;
| [[LazyDering]]&lt;br /&gt;
| Tries to clean up slight ringing around edges by applying [[aWarpSharp2]] only to areas where the difference is small enough so detail isn't destroyed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131103155455/http://anime-addict.ani-x.com/files/avisynth/scripts/LazyDering_v0.1.avsi Script]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/ Leak], RazorbladeByte&lt;br /&gt;
|-&lt;br /&gt;
| [[MosquitoNR]]&lt;br /&gt;
| A noise reduction filter designed for mosquito noise, which is often caused by lossy compression.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20131028144351/http://www.geocities.jp/w_bean17/files/mosquito_nr_avisynth.zip Plugin]&lt;br /&gt;
| {{Author/b_inary}}&lt;br /&gt;
|-&lt;br /&gt;
|ungibbs&lt;br /&gt;
|ungibbs, a gibbs artifact remover.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=134502 Script]&lt;br /&gt;
|*.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing&lt;br /&gt;
|Uses aWarpSharp2's flattening to clean out ringing/smaller halos, then runs some masks to preserve the edges and avoid the thinning.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|-&lt;br /&gt;
|WarpDeRing_faster&lt;br /&gt;
|Same as WarpDeRing but may be a bit faster.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[WarpDeRing_faster_source|Script]]&lt;br /&gt;
|mirkosp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deinterlacing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| Area&lt;br /&gt;
| A port of Gunnar Thalin's VirtualDub filter &amp;quot;Deinterlace - area based&amp;quot; to AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/area_5F25_dll_20030217.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}} // {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| BlendBob&lt;br /&gt;
| Filter designed for use after a smart bob; blends every other frame with the closest matching neighbouring frame. See [http://forum.doom9.org/showthread.php?threadid=80289 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/BlendBob/ Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| DGBob&lt;br /&gt;
| This filter splits each field of the source into its own frame and then adaptively creates the missing lines either by interpolating the current field or by using the previous field's data. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=55598 discussion].&lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/dgbob/dgbob.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The FieldDeinterlace filter provides functionality similar to the postprocessing function of Telecide. You can use it for pure interlaced streams (that is, those not containing telecined progressive frames). The name refers to the fact that field mode differencing is used.&lt;br /&gt;
| [[YUY2]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EEDI2]]&lt;br /&gt;
| EEDI2 resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and interpolating the missing field.  It is intended for edge-directed interpolation for deinterlacing (i.e. not really made for resizing a normal image, but can do that as well).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/EEDI2 Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[eedi3|EEDI3]]&lt;br /&gt;
| Another edge directed interpolation filter. Works by minimizing a cost functional involving every pixel in a scan line. eedi3 is good for deinterlacing and enlarging images by the powers of 2.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/Elegant996/EEDI3/releases/download/0.9.2.1/EEDI3_v0_9_2_1.7z Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FieldHint]]&lt;br /&gt;
|FieldHint combines arbitrary fields from the input clip, and optionally adds Telecide-compatible postprocessing hints.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20120223025813/http://ivtc.org/yatta%20support/fieldhint-0.12.rar Plugin]&lt;br /&gt;
|{{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| IBob&lt;br /&gt;
| Interpolating Bob works identically to the Avisynth built-in [[Bob]] filter except that it uses linear interpolation instead of bicubic resizing. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=62142 discussion]. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://kevin.atkinson.dhs.org/ibob/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| KernelDeint&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Superceded by [[LeakKernelDeint]], see the description below in this table. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/kerneldeint/kerneldeint.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LeakKernelDeint]]&lt;br /&gt;
| This filter deinterlaces using a kernel approach. It gives greatly improved vertical resolution in deinterlaced areas compared to simple field discarding. Compared to KernelDeint, it is low-level optimized (for speed) and provides some useful new functionality. As the original author of KernelDeint() states, LeakKernelDeint() is the preferred version to use.&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://leak.no-ip.org/AviSynth/LeakKernelDeint/LeakKernelDeint_1.5.4.zip Plugin]&lt;br /&gt;
| {{Author/Leak}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3]]&lt;br /&gt;
| nnedi3 is an intra-field only deinterlacer. It takes in a frame, throws away one field, and then interpolates the missing pixels using only information from the kept field. It also has same rate and double rate modes.&lt;br /&gt;
| [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://github.com/jpsdr/NNEDI3/releases Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[nnedi3ocl]]&lt;br /&gt;
| OpenCL rewrite of [[nnedi3]]. See [http://forum.doom9.org/showthread.php?t=169766 discussion].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bmemjsu7jqnlk65/nnedi3ocl_20131208.7z Plugin]&lt;br /&gt;
| SEt&lt;br /&gt;
|-&lt;br /&gt;
| [[QTGMC]]&lt;br /&gt;
| by -Vit- [http://forum.doom9.org/showthread.php?t=156028] A new deinterlacer based on TempGaussMC_beta2. It's faster and has a presets system for speed/quality selection. There are also several new features including progressive support and noise/grain processing. The script also contains extensive comments to better describe the settings and the workings of the TGMC algorithm.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/QTGMC Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
| [[SangNom2]]&lt;br /&gt;
| Reimplementation of the old [[SangNom]] plugin. See [http://forum.doom9.org/showthread.php?t=168315 discussion].&lt;br /&gt;
| [[Y8]],[[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SangNom2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/ SmoothDeinterlace]&lt;br /&gt;
| This contains an adaptive deinterlacer plugin for (AVISynth). It is based on Gunnar Thalin's [http://www.guthspot.se/video/index.htm#deinterlacesmooth Smooth Deinterlace plugin] for VirtualDub.&amp;lt;br&amp;gt;&lt;br /&gt;
See also [[SmoothDeinterlaceFunctions]]&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/AVSSmoothDeinterlacer.zip Plugin]&lt;br /&gt;
| {{Author/Gunnar Thalin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TDeint]]&lt;br /&gt;
| TDeint is a bi-directionally, motion adaptive (sharp) deinterlacer. It can also adaptively choose between using per-field and per-pixel motion adaptivity. It can use cubic interpolation, kernel interpolation (with temporal direction switching), or one of two forms of modified ELA interpolation which help to reduce &amp;quot;jaggy&amp;quot; edges in moving areas where interpolation must be used. TDeint also supports user overrides through an input file, and can act as a smart bobber or same frame rate deinterlacer, as well as an IVTC post-processor. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=82264 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420182314/http://bengal.missouri.edu/~kes25c/TDeintv11.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TelecideHints]]&lt;br /&gt;
| The filter process the stats file to get the usual progressive matches and identify VFR sections.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://mod16.org/fansub/Telecidehints11.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TempGaussMC]]&lt;br /&gt;
| Motion-compensated bob deinterlacer, based on temporal gaussian blurring. reduces noise/grain of the source and does NOT leave the original fields unchanged. Output is rich with details and very stable. Is SLOW&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TempGaussMC Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Yadif]]&lt;br /&gt;
| Port of YADIF (Yet Another DeInterlacing Filter) from MPlayer by Michael Niedermayer (http://www.mplayerhq.hu). It check pixels of previous, current and next frames to re-create the missed field by some local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/yadif/yadif.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod]]&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 also is not an Avisynth_C plugin (just a normal one).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183914/http://bengal.missouri.edu/~kes25c/yadifmod_v1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[yadifmod2]]&lt;br /&gt;
| Yadif + yadifmod for avisynth2.6/avisynth+. See [http://forum.doom9.org/showthread.php?p=1761361 discussion].&lt;br /&gt;
| [[YV24]], [[YV16]], [[YV12]], [[YV411]], [[Y8]]&lt;br /&gt;
| [http://github.com/chikuzen/yadifmod2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Duplicate Frame Detectors ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApparentFPS]]&lt;br /&gt;
| Shows underlying framerate where a clip has had many duplicates inserted, easier than counting unique frames.&lt;br /&gt;
| (see [[ApparentFPS|docs]])&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171339 Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| Dup &lt;br /&gt;
| A robust duplicate frame detector; a frame that is determined to be close enough to its predecessor to be considered a duplicate will be replaced by a copy of the predecessor. This can significantly reduce the size of encoded clips with virtually no visual effect. Provides the capability to replace frames with a blend of all the duplicates, providing a valuable noise reduction. See [http://forum.doom9.org/showthread.php?t=41850 original] and [http://forum.doom9.org/showthread.php?t=153037 continued] discussion. &amp;lt;!--[http://forum.doom9.org/showthread.php?t=44500 another old link]--&amp;gt;&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/dup/dupnew.html Plugin] &lt;br /&gt;
[http://forum.doom9.org/showpost.php?p=1747207&amp;amp;postcount=17 Update (v2.32a)]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=134930 Dupped]&lt;br /&gt;
| Another frame duplication function, similar to Dup, but hopefully more accurate. See [http://forum.doom9.org/showthread.php?t=134930 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181919/http://www.randomdestination.com/members/corran/misc/dupped/dupped.avsi Script]&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/dedup.txt DeDup] &lt;br /&gt;
| Remove (drop) duplicate frames in the interest of compression quality and speed. Resulting clip will have a variable frame rate.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/dedup/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
|[[ExactDedup]]&lt;br /&gt;
| ExactDedup is a filter intended to remove frames that are exact duplicates of each other, leaving only the first and (optionally) last frames of a run intact, and generates a Matroska v2 timecodes file with timing information for the ensuing stream. See [http://tasvideos.org/forum/viewtopic.php?t=12065 discussion].&lt;br /&gt;
| [[RGB24]] [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/9x2ax1rb5un02d5/ExactDedup+Version+0.03.zip Plugin]&lt;br /&gt;
|Steve Melenchuk, Arick Chan&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/getdups/getdups.html GetDups] &lt;br /&gt;
| Selecting unique duplicate frames from clip, it return frames which have copies only, by one from the series (group). Made for 8mm films.&lt;br /&gt;
| [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/getdups/getdups096.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 MorphDups]&lt;br /&gt;
| Replace duplicate frames by interpolations.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=164372 Script]&lt;br /&gt;
| sven_x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fieldblending and Frameblending removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[c_deblend]] &lt;br /&gt;
| c_deblend is a simple blend replacing function like unblend or removeblend. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Cdeint]]&lt;br /&gt;
| Restores 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video (alternative for Restore24).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[Deblend]]&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=760375#post760375 discussion].&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=157337 ExBlend]&lt;br /&gt;
| ExBlend is a plugin to repair damage caused by blend deinterlacing of telecined clips, which results in a double blend, every five frames, GGGBBGGGBBGGGBB etc where 'G' is good and 'B' is blend. See [http://forum.doom9.org/showthread.php?t=157337 discussion]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.mediafire.com/download/0rxe3675sfr4w9l/ExBlend_25_dll_20100226.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[FixBlendIVTC]]&lt;br /&gt;
| A blend replacing/frame restoring function for doubleblends caused by blend-deinterlacing of telecined sources. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mrestore]]&lt;br /&gt;
| Uses conditional frame evaluation to undo standard conversions with blends. Superseded by [[srestore]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveBlend]]&lt;br /&gt;
| This filter is used to remove blended fields/frames. See [http://forum.doom9.org/showthread.php?t=75772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [//web.archive.org/web/20061113201230/http://bossanovaguitar.com/video/removeblend-0.3.zip Plugin]&lt;br /&gt;
| {{Author/violao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Restore24]]&lt;br /&gt;
| Restore24 is an AviSynth filter that is able to do the nearly impossible: Restore 24fps FILM out of a fieldblended FILM -&amp;gt; Telecine -&amp;gt; [[NTSC]] -&amp;gt; Blendconversion -&amp;gt; [[PAL]] - Video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=75432 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [[RestoreFPS]]&lt;br /&gt;
| RestoreFPS reverses the kind of blending generated by [[ConvertFPS]], restoring original framerate. It will work perfectly well on any regular blend pattern.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Restorefps_v10.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Srestore]]&lt;br /&gt;
| Replacement function for mrestore, c_deblend, FixBlendIVTC and DupHq.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[Srestore|script]]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| Specials&lt;br /&gt;
| Helps restore video with blended fields/frames using a reference source. See [http://forum.doom9.org/showthread.php?t=165030 discussion] and much more information [http://horman.net/doctorwho/specials.php here] and [http://forum.doom9.org/showthread.php?t=168832 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://horman.net/specials.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| Unblend&lt;br /&gt;
| Unblend is based on warpenterprise's deblend algorithm and neuron2's decimate code, with YV12 support only. The aim is the same of deblend. See [http://forum.doom9.org/showthread.php?t=55019 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/unblend_5F25_dll_2003.zip Plugin]&lt;br /&gt;
| Bach&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Film Damage correction ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/descratch/descratch.html DeScratch]&lt;br /&gt;
| DeScratch removes vertical scratches from films. Also it can be used for removing of horizontal noise lines such as drop-outs from analog VHS captures (after image rotation). &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/descratch/descratch110.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/despot/despot.html DeSpot]&lt;br /&gt;
| This filter is designed to remove temporal noise in the form of dots (spots) and streaks found in some videos. The filter is also useful for restoration (cleaning) of old telecined 8mm (and other) films from spots (from dust) and some stripes (scratches).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/fizick/despot/despot3610.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[deVCR]]&lt;br /&gt;
| deVCR eliminates (to a certain degree) the annoying horizontal lines that keep crawling around your VHS or Beta recorded video. See discussion [http://forum.videohelp.com/threads/323093-How-to-use-DeVCR-for-Avisynth here] and [http://www.digitalfaq.com/forum/video-restore/2607-tracking-lines-video.html here.]&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
| Ricardo Garcia&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 VideoFred's Film Restoring]&lt;br /&gt;
| A suite of scripts for film restoring.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=144271 Script]&lt;br /&gt;
| videoFred&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveDirt]]&lt;br /&gt;
| RemoveDirt is a temporal cleaner for AviSynth 2.5x. It has now become an AVS script function, which involves RestoreMotionBlocks and various filters from the [[RemoveGrain]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveDirt Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frequency Interference removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq.html DeFreq]&lt;br /&gt;
| Defreq uses Fast Fourier Transform method for frequency selecting an removing. See [http://forum.doom9.org/showthread.php?t=82978 discussion].&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/defreq/defreq07.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/FanFilter/FanFilter.html FanFilter] &lt;br /&gt;
| Regular vertical frequency interference is filtered in spatial domain.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/FanFilter/FanFilter.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IVTC &amp;amp; Decimation ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AnimeIVTC]]&lt;br /&gt;
| What it does:&lt;br /&gt;
* High quality adaptative field matching for hard telecine&lt;br /&gt;
* Bob, remove the blends and decimate back to the desired framerate for DHT/field-blended&lt;br /&gt;
* Creating a VFR clip for hybrid sources&lt;br /&gt;
* Bob the interlaced credits, blend-deinterlacing the background while doing minimal damage on the progressive credits, convert their framerate to match the episode's and splice them with it OR leave them @ 30p to create a VFR clip&lt;br /&gt;
* Very good combing removal and anti-aliasing functions&lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=138305] and See [http://forum.doom9.org/showthread.php?p=1673928] for mod version.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| thetoof&lt;br /&gt;
|-&lt;br /&gt;
| BruteIVTC&lt;br /&gt;
| Some information [http://web.archive.org/web/20141221181254/http://privatepaste.com/download/77d973422b here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091214015625/http://mf.creations.nl/avs/filters/BruteIVTC.dll Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 DOCI]&lt;br /&gt;
| Destruction of Chroma Interlacing fixes a problem where you captured pulleddown video in YV12.  In the combed frames, the chroma from two frames has been blended, leading to a ghosting effect when IVTC'd.  This filter reconstructs the chroma exactly and fixes the problem.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158230 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| FDecimate&lt;br /&gt;
| The FDecimate() filter provides extended decimation capabilities not available from Decimate(). It can remove frames from a clip to achieve the desired frame rate, while retaining audio/video synchronization. It preferentially removes duplicate frames where possible. (&amp;quot;FDecimate&amp;quot; stands for &amp;quot;Free Decimate&amp;quot;, which implies that the output frame rate may be freely chosen, and is not limited to 1-in-N decimation).&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/fdecimate/fdecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| GreedyHMA&lt;br /&gt;
| GreedyHMA is an Avisynth filter that executes DScaler's Greedy/HM algorithm code to perform pulldown matching, filtering, and video deinterlace. It has pretty much been superseded by Donald Graft's [[DeComb]] package. However there may be occasions where it sometimes gives preferable results, especially with some bad [[PAL]] clips.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/GreedyHMA.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[IT]]&lt;br /&gt;
| Inverse Telecine plugin.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/002p6yed7dzi8f3/IT_YV12_0103_width8K.zip?dl=1 Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| ivtc_txt60mc&lt;br /&gt;
| Deinterlaces telecined footage with that has been overlayed scrolling text at 60i. More information [http://web.archive.org/web/20140420184542/http://doom10.org/index.php?topic=292.msg5499 here] (last post).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1466105&amp;amp;postcount=4 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} aka Firesledge&lt;br /&gt;
|-&lt;br /&gt;
|JIVTC&lt;br /&gt;
|JIVTC applies inverse telecine in a way to minimize artifacts often seen on Japanese TV broadcasts followed by recalculating the fields that might still contain some.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://raw.githubusercontent.com/lovesyk/avisynth-scripts/master/JIVTC.avsi Script]&lt;br /&gt;
|[http://github.com/lovesyk lovesyk]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168397 MDec2]&lt;br /&gt;
|MDec2 is a 2 pass decimating filter, acting much like the MultiDecimate filter.&lt;br /&gt;
|[[RGB32]], [[RGB24]], ][[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/3ajn640ujxr8jnx/MDec2_25%2626_dll_v1.01_20150330.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| MultiDecimate&lt;br /&gt;
| Removes N out of every M frames, taking the frames most similar to their predecessors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=51901&amp;amp;perpage=20&amp;amp;pagenumber=2 discussion].&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [{{N2Moved}}/multidecimate/multidecimate.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| PFR&lt;br /&gt;
| PFR (Progressive Frame Restorer) is an Avisynth filter that attempts to produce progressive frames from a mixed progressive/interlaced/IVTCed source.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ReMatch]]&lt;br /&gt;
| ReMatch is a field matching plugin, specifically for anime.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/rematch_5F25_dll_20050306.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| RePal&lt;br /&gt;
|  [http://forum.doom9.org/showthread.php?t=48401 Discussion] / [http://forum.doom9.org/showthread.php?p=1092552#post1092552 repal_29.97Hz_mod]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/repal_5F25_dll_20030523.zip Plugin] - [http://forum.doom9.org/attachment.php?attachmentid=8028&amp;amp;d=1201414683 Mod]&lt;br /&gt;
| Bach&lt;br /&gt;
|-&lt;br /&gt;
| SmartDecimate&lt;br /&gt;
| Smart Decimate removes telecine by combining telecine fields and decimating at the same time, which is different from the traditional approach of matching telecine frames and then removing duplicates. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=60031 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/tel/ Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Decomb]]&lt;br /&gt;
| The Telecide and Decimate filters can be combined to implement IVTC.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [{{N2Moved}}/decomb/decombnew.html Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TIVTC]]&lt;br /&gt;
| A package containing these 7 filters: TFM, TDecimate, MergeHints, FrameDiff, FieldDiff, ShowCombedTIVTC, and RequestLinear. Also contains these 3 conditional functions: IsCombedTIVTC, CFieldDiff, and CFrameDiff. Designed primarily for IVTC operations. [http://forum.doom9.org/showthread.php?t=82264 Discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181748/http://bengal.missouri.edu/~kes25c/TIVTCv105.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| TPRIVTC&lt;br /&gt;
| TPRIVTC stands for TMPEG InVerse Telecine, i.e. the process where an 29.97fps interlaced NTSC clip is converted to 23.976fps while removing interlaced frames. [http://web.archive.org/web/20030808191810/http://kurosu.inforezo.org/avs/TPRIVTC/index.html Readme]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/tprivtc_5F25_dll_20040930.zip Plugin]&lt;br /&gt;
| daxab, {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
| UnComb&lt;br /&gt;
| Filter for matching up even and odd fields of properly telecined [[NTSC]] or [[PAL]] film source video. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=52333 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/UnComb.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167875 WeaveMan]&lt;br /&gt;
| Remove arbitrary pulldown patterns manually; meant for perfectionists to undo non-standard 24-&amp;gt;25 fps, 25-&amp;gt;29.97 fps, etc. telecine conversions, along with other weird telecine anomalies created by broadcasters speeding up film-sourced content. See sample case [http://forum.doom9.org/showthread.php?p=1630931&amp;amp;highlight=weaveman#post1630931 here].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131208232913/http://chidragon.thedessie.com/Doom9/WeaveMan-v0.2.zip Plugin]&lt;br /&gt;
| ChiDragon&lt;br /&gt;
|-&lt;br /&gt;
| [[IvtcBlend]]&lt;br /&gt;
| Waka demonstrated an IvtcBlend function that uses the information in the &amp;quot;extra&amp;quot; fields of a telecined source to help combat temporal noise.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ghost Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FixVHSOversharp&lt;br /&gt;
| FixVHSOversharp attempts to repair the light and dark halos that follow high contrast edges found in VHS sources. See [http://web.archive.org/web/20131014010552/http://www.videohelp.eu/forum/avisynth/2851-avisynth-fixvhsoversharp-beta.html discussion.] &lt;br /&gt;
| | [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091026142456/http://www.geocities.com/mrtibsvideo/fixvhsoversharp.html Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20091027001215/http://geocities.com/mrtibsvideo/ MrTibs]&lt;br /&gt;
|-&lt;br /&gt;
| GhostBuster&lt;br /&gt;
| Ghostbuster is an AviSynth filter for removing &amp;quot;ghosts&amp;quot; from a clip. A ghost in this context is a faint copy of the picture offset horizontally. It works by either subtracting or adding the image from itself at the specified offset. With some tweaking the result, while not perfect, can be very pleasing. See discussion [http://forum.doom9.org/showthread.php?t=35339 here] and [http://web.archive.org/web/20121215130729/http://www.videohelp.eu/forum/avisynth/14691-ghostbuster-filter-avisynth.html here.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12721&amp;amp;d=1330678606 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20140420183804/http://www.videohelp.eu/forum/avisynth/14679-sansgrips-avisynth-filters.html SansGrip]&lt;br /&gt;
|-&lt;br /&gt;
| LGhost&lt;br /&gt;
| Plugin intended for ghost removal but can also reduce edge (ringing) artifacts. See [http://forum.doom9.org/showthread.php?p=1176552#post1176552 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/LGhost0301.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Logo Removal ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeKafka]]&lt;br /&gt;
| This fairly simple filter washes away those annoying bugs from broadcast clips.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| poptone&lt;br /&gt;
|-&lt;br /&gt;
| DeLogo&lt;br /&gt;
| DeLogo Filter for VirtualDub. Removes static elements, e.g. logos or watermarks, from the video stream. It can remove either opaque elements or alpha blended, the latter even without destroying the picture beneath. &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/delogo132/delogo.html Plugin] &amp;amp; [http://forum.doom9.org/showthread.php?t=119447 Script]&lt;br /&gt;
| Karel Suhajda&lt;br /&gt;
|-&lt;br /&gt;
| [[InpaintFunc]]&lt;br /&gt;
| Script for logo removal using inpainting. Can remove alpha blended or opaque logos with a basic postprocessing to hide artifacts.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/InpaintFunc.avs Script]&lt;br /&gt;
| Reuf Toc&lt;br /&gt;
|-&lt;br /&gt;
| [[rm_logo]]&lt;br /&gt;
| Combination of deblending and inpainting to remove logos with adjustable postprocessing to further hide artifacts. See [http://forum.doom9.org/showthread.php?t=134919]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rm_logo.avs Script]&lt;br /&gt;
| Spuds &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154559 s_ExLogo]&lt;br /&gt;
|De-logo function with clipping (Dekafka mod).&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://www.mediafire.com/download/40cpnnctd0uutpv/s_ExLogo_1.1.zip Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| X-Logo&lt;br /&gt;
| X-Logo AviSynth plugin and VirtualDub filter. Removes opaque logos. See [http://forum.doom9.org/showthread.php?t=56660 discussion] and [http://forum.videohelp.com/threads/273109-Remove-an-opaque-logo-using-Xlogo-in-Avisynth tutorial].&lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.marzocchi.net/Olafsen/Software/X-Logo?setview=en Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20041204210505/http://members.verizon.net/~vze3kkvm/filters.html Leuf]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Luma Equalization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Antiflicker]]&lt;br /&gt;
| &amp;quot;A quick-and-dirty port of my VirtualDub filter (which sucks, by the way; it was one of my first filters).&amp;quot; &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?p=224573#post224573 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/antiflicker_5F25_dll_20030304.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker.html DeFlicker]&lt;br /&gt;
| Can remove old film intensity flicker by temporal mean luma smoothing. Can also correct blinding of automatic gain control after flashes.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/deflicker/deflicker04.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Dumb Deflicker]&lt;br /&gt;
| Gathers average luma of frames, smoothens that with TemporalSoften, and applies the obtained difference to the original input.  It is pretty simple, read &amp;quot;dumb&amp;quot;. See [http://forum.doom9.org/showthread.php?p=1326599#post1326599 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1326599#post1326599 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines.html EquLines]&lt;br /&gt;
| Equalizes total luminosity in pairs of even and odd lines. Useful for removing inter-line differences from telecined films.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/equlines/equlines03.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/lmflicker.txt LMFlicker]&lt;br /&gt;
| LMFlicker is intended to reduce flickering in some film/VHS transfers. FieldFade is a similar concept, but applied on a per-field basis, to reduce combing in a video where fades were applied after telecine.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/flicker/ Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Local Deflicker]&lt;br /&gt;
| Deflickers only part of a frame. See [http://forum.doom9.org/showthread.php?t=159493 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=159493 Script]&lt;br /&gt;
| prokhozhijj&lt;br /&gt;
|-&lt;br /&gt;
| [[ReduceFlicker]]&lt;br /&gt;
| Reduces temporal oscillations in clips; should be applied before deinterlacing. Contains ReduceFlicker, ReduceFluctuations, and LockClense. See [http://videoprocessing.fr.yuku.com/topic/24/ReduceFlicker-05 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/ReduceFlicker Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/ TimeLapseDF]&lt;br /&gt;
| Designed to remove luminosity flicker in time lapse photography. Unlike most other flicker removal filters, utilizes cumulative distribution function in addition to average frame luminosity. See [http://timescapes.org/phpBB3/viewtopic.php?f=8&amp;amp;t=2410 discussion.] &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.zhitenev.com/avisynth/TimeLapseDF/TimeLapseDF.dll 32-Bit Plugin]&lt;br /&gt;
| {{Author/Denis Zhitenev}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Vinverse]]&lt;br /&gt;
| A simple but effective plugin to remove residual combing.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/vinverse/releases Plugin]&lt;br /&gt;
| {{Author/Didée}}, {{Author/tritical}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=106898 wdeflicker]&lt;br /&gt;
| Modifies luma of a source clip by refering to a temporally super-smoothed clip. Heights of source and reference clips must match. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=5417&amp;amp;d=1139174468 Plugin]&lt;br /&gt;
| Osmiridium&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[:Category:Rainbow &amp;amp; Dot Crawl Removal|Rainbow &amp;amp; Dot Crawl Removal]] ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Bifrost]]&lt;br /&gt;
| Bifrost uses temporal blending to remove or at least reduce the effect of rainbows.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/dubhater/vapoursynth-bifrost/releases/download/v2.0-avs/avisynth-bifrost-v2.0.7z Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}, dubhater&lt;br /&gt;
|-&lt;br /&gt;
| [[CC]]&lt;br /&gt;
| Dot crawl and rainbow removal.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://www.chiyoclone.net/dl/cc_20040522.lzh Plugin]&lt;br /&gt;
| {{Author/chiyo-clone}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Checkmate]]&lt;br /&gt;
| Spatial-temporal dot crawl removal. See [http://github.com/tp7/checkmate Checkmate for AviSynth 2.6].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Checkmate Plugin]&lt;br /&gt;
| {{Author/mf}} / prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[ChubbyRain2]]&lt;br /&gt;
| Spatial-temporal rainbow reducing script based on [[ChubbyRain]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/ChubbyRain2.avsi Script]&lt;br /&gt;
| Lothar&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCrawl]]&lt;br /&gt;
| Spatial and temporal dot crawl removal, particularly for animated material.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/decrawl_20060924.zip Plugin]&lt;br /&gt;
| Dan Donovan&lt;br /&gt;
|-&lt;br /&gt;
| [[DeCross]]&lt;br /&gt;
| Cross Color Reduction. Also known as rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeCross0002.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeDot]]&lt;br /&gt;
| Removes dot crawl and may also be useful for rainbows.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/DeDot_YV12_0002.zip Plugin]&lt;br /&gt;
| {{Author/thejam79}} / {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeRainbow]]&lt;br /&gt;
| A simple script to reduce rainbows. See [http://forum.doom9.org/showthread.php?p=398106#post398106 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/images/DeRainbow.avsi Script]&lt;br /&gt;
| sh0dan&lt;br /&gt;
|-&lt;br /&gt;
| [[DFMDeRainbow]]&lt;br /&gt;
| Creates mask to process only edges; rainbows are removed by hitting chroma planes with two passes of FluxSmooth (hence &amp;quot;Double-Flux-Mask&amp;quot;).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/DFMDeRainbow-20140223.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/guavacomb.htm GuavaComb]&lt;br /&gt;
| Removes dot crawl, rainbows, and some kinds of shimmering. See [http://forum.doom9.org/showthread.php?t=37456 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/guavacomb_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeCrawl]]&lt;br /&gt;
| Purely spatial; only targets pixels for dot crawl removal if luma is fluctuating and (optionally) chroma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeCrawl-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LUTDeRainbow]]&lt;br /&gt;
| Purely spatial; only targets pixels for derainbowing if chroma is fluctuating and (optionally) luma is not.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140421001939/http://www.aquilinestudios.org/scripts/LUTDeRainbow-20081003.avsi Script]&lt;br /&gt;
| {{Author/Scintilla}}&lt;br /&gt;
|-&lt;br /&gt;
| [[mfRainbow]]&lt;br /&gt;
| Derainbows in areas of high Y, U and V frequencies, which fluctuate heavily.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/MfRainbow-v0.32.avsi Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Rainbow_Smooth]]&lt;br /&gt;
| A small spatial derainbow function. It uses [[SmoothUV]] to smooth out chroma and edge masking to prevent color bleeding.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Rainbow_smooth.avsi Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[SmartSSIQ]]&lt;br /&gt;
| SSIQ can alter the color on the entire picture. So this script first applies SSIQ to the entire picture. Then it locates the edges. Finally, it layers ONLY the de-rainbowed edges onto the original video.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SmartSSIQ.avsi Script]&lt;br /&gt;
| LB&lt;br /&gt;
|-&lt;br /&gt;
| [[SSIQ]]&lt;br /&gt;
| Rainbow remover. A port of the VirtualDub plugin [http://www.doki.ca/filters/ Smart Smoother IQ.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/ssiq_20070304.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TComb]]&lt;br /&gt;
| A temporal comb filter (it reduces cross-luminance (rainbowing) and cross-chrominance (dot crawl) artifacts in static areas of the picture). See [http://github.com/Elegant996/TComb TComb for AviSynth 2.6.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/TComb Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[YARK]]&lt;br /&gt;
| Yet Another Rainbow Killer. Based on mfRainbow v0.31, chubbyrain2, and various other scripts shown [http://forum.doom9.org/showthread.php?t=141165 here].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[YARK|Script]]&lt;br /&gt;
| jase99&lt;br /&gt;
|-&lt;br /&gt;
| [[ASTDR]]&lt;br /&gt;
| ASTDR uses mt_motion for motion and edge to deal with moving Rainbow and apply mask once more in the opposite way to keep around the lines as they are. It uses DeCross and other filters to remove Rainbow. ASTDRmc avoids chroma bleeding in moving scenes. See [http://forum.doom9.org/showpost.php?p=1665492&amp;amp;postcount=27 post on doom9.org].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[ASTDR|Script]]&lt;br /&gt;
| AmjadSONY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stabilization ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[CelStabilize]]&lt;br /&gt;
| Script which holds a fixed background steady.  Doesn't work well with pans or fades.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/CelStabilize Script]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| [[DePan]]&lt;br /&gt;
| Tools for estimation and compensation of global motion (pan) .See [http://avisynth.org.ru/depan/depan.html]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/depan/depan.html Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|DepanSafe&lt;br /&gt;
|Another DePan stabilization script. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[[DepanSafe_source|Script]]&lt;br /&gt;
|[http://pastebin.com/u/tophf tophf]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Deshaker3D]&lt;br /&gt;
| Experimental 3D image stabiliser (VDub [http://www.guthspot.se/video/deshaker.htm Deshaker] required).&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171051 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 SpatialAlign]&lt;br /&gt;
|Fix spatial alignment between two clips containing similar scenes.&lt;br /&gt;
|Any?&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172136 Script]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| [[Stab]]&lt;br /&gt;
| Simple but powerful script to remove small high frequency jitter that appears often on old/bad transfers. See [http://forum.doom9.org/showthread.php?p=1222830#post1222830]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Stab.avsi Script]&lt;br /&gt;
| g-force&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Stabilization Tools Pack]&lt;br /&gt;
| A set of tools to work with common stabilization issues, mainly from telecine process.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/371336-Stabilization-Tools-Pack-v1-8 Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/TBC TBC]&lt;br /&gt;
| Stabilizes horizontal jitter in video from analog VCRs, similar to the function of a Time Base Corrector.(note: will cause SEt's Avisynth 2.6 MT to stop working)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Denoisers ==&lt;br /&gt;
Strength/Quality of Denoisers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(need subclassification)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AdaptiveMedian]]&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.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/AdaptiveMedian Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Atc&lt;br /&gt;
| Alternate Temporal Cleaner; a fast temporal cleaner with some cool stuff.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/atc%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| ColourizeSmooth&lt;br /&gt;
| ColourizeSmooth uses a general colourizing algorithm to smooth a given clip. ColourizeSmooth is based on this [http://www.cs.huji.ac.il/~yweiss/Colorization algorithm.] See [http://forum.doom9.org/showthread.php?t=91344 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourizesmooth_5F25_dll_20050429.zip Plugin]&lt;br /&gt;
| insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kevina.org/temporal_median/ ConditionalTemporalMedian]&lt;br /&gt;
|This filter is designed to remove temporal noise in the form of small dots and streaks found in some videos. A common cause of this is dirty VHS heads but I have also seen small black or white streaks in broadcast material. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.kevina.org/temporal_median/CondTemporalMedian-0.93.zip Plugin]&lt;br /&gt;
| {{Author/Kevin Atkinson}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159148 Deathray]&lt;br /&gt;
|OpenCL GPU accelerated spatial/temporal non-local means de-noising. See [http://raw.githubusercontent.com/JawedAshraf/Deathray/master/Deathray%20readme.txt readme] and GitHub source code [http://github.com/JawedAshraf/Deathray/ repository].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/JawedAshraf/Deathray/raw/master/Deathray.dll Plugin]&lt;br /&gt;
|[http://github.com/JawedAshraf Jawed]&lt;br /&gt;
|-&lt;br /&gt;
| [[DeNoise]]&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. The global variance value can be specified or it can be computed from a window. The global variance can have one value for the entire clip or can vary frame to frame linearly or computed from a window with its coordinates linearly moving with frame numbers.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DeNoise Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#dnr2 DNR2]&lt;br /&gt;
| Dynamic Noise Reduction 2 is based on the VirtualDub [http://www.shdon.com/vid/dnr DNR] filter by Steve Don and Avery Lee. &lt;br /&gt;
| [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/dnr2_5F25_dll_20021225.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DeSaltPepper]]&lt;br /&gt;
| Remove white and black noise.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/DeSaltPepper Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| ExtendedBilateral&lt;br /&gt;
| ExtendedBilateral extends the regular bilateral filtering process by adding an &amp;quot;initial estimation preprocess.&amp;quot; It is similar in operation to [[TBilateral]] and offers many of the same options (though not all) while adding the preprocess. See [http://forum.doom9.org/showthread.php?t=96015 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/extendedbilateral_5F25_dll_20050622.zip Plugin]&lt;br /&gt;
|insanedesio&lt;br /&gt;
|-&lt;br /&gt;
| [[FFTQuiver]]&lt;br /&gt;
| Remove periodic noise. Useful for analog interference.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://avisynth.nl/index.php/FFTQuiver Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| SmootherHiQ&lt;br /&gt;
| VirtualDub's ''Smart Smoother High Quality'' for AviSynth, see archived [http://web.archive.org/web/20040611013235/http://cultact-server.novi.dk/kpo/avisynth/smooth_hiq_as.html documentation].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/smoothhiq_5F25_dll_20030208.zip Plugin]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TNLMeans]]&lt;br /&gt;
| TNLMeans is an implementation of the NL-means denoising algorithm. - [http://forum.doom9.org/showthread.php?t=111344 discussion] - [http://forum.doom9.org/showthread.php?t=168090 TNLMeans built with ICL10]&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=171817 TfNLMeans] - an AviSynth 2.6 fork of TNLMeans 1.0.3&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TNLMeansv103.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| KNLMeansCL&lt;br /&gt;
| KNLMeans is an optimized OpenCL implementation of the Non-local means denoising algorithm. See [http://forum.doom9.org/showthread.php?t=171379 discussion.]. View on [http://github.com/Khanattila/KNLMeansCL/wiki/Filter-description GitHub].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/Khanattila/KNLMeansCL/releases Plugin]&lt;br /&gt;
| [http://github.com/Khanattila Khanattila]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172966 xNLMeans]&lt;br /&gt;
|xNLMeans is an AviSynth plugin implementation of the Non Local Means denoising proposition. This implementation provides several optimizations and extensions over the original proposition and other implementations.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/4stpv24pvpfclzm/xNLMeans_0.03_20160324.zip Plugin] &amp;lt;!--[http://www.mediafire.com/download/bmldoqgmmboij8n/xNLMeans_0.01_151212.zip older version]--&amp;gt;&lt;br /&gt;
|martin53&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatial Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[_2DCleanYUY2]]&lt;br /&gt;
| Averages pixels in a configurable radius around a source pixel that are within a configurable threshold of the central pixel. A port of the VirtualDub plugin [{{N2Moved}}/2dcleaner.html 2D Cleaner.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/vh7a5xmdpyj3d8u/_2DCleanYUY2_v0_10_mod_for_smp_YV12.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}, {{Author/xeon533}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DctFilter]]&lt;br /&gt;
| An experimental filter that operates on DCT coefficients. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DctFilter Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[DCTFun]]&lt;br /&gt;
| A fast spatial denoiser that does a hard thresholding of a complete 4x4 ICT transform.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/DCTFun Plugin]&lt;br /&gt;
| Prunedtree &lt;br /&gt;
|-&lt;br /&gt;
| eDeen&lt;br /&gt;
| eDeen is a ultra powerfull spatial denoiser for very experienced encoders only.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://ziquash.chez-alice.fr/eDeen%20beta%201.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3b]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/frfun3b_rev3.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun3d]]&lt;br /&gt;
| Fractal denoising; frfun3d is a quality optimized frfun3b. See [http://forum.doom9.org/showthread.php?t=110200 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/xqxfy59pcv3ea1q/frfun3d_r1.zip Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[frfun7]]&lt;br /&gt;
| Fractal denoising. See [http://forum.doom9.org/showthread.php?t=110200 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Frfun7 Plugin]&lt;br /&gt;
| prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20101201051903/http://gpubilateral.sourceforge.net/ GPUBilateral]&lt;br /&gt;
| In short, bilateral filter is a edge-preserving smooth filter. See [http://forum.doom9.org/showthread.php?t=136370 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/gpubilateral/files/ Plugin]&lt;br /&gt;
| Sompon Virojanadara    &lt;br /&gt;
|-&lt;br /&gt;
|Kuwahara&lt;br /&gt;
|This filter is an edge preserving spatial noise reduction filter. It applies spatial smoothing while preserving the edges. See [http://forum.doom9.org/showthread.php?p=1689773 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Kuwahara_v11.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth.html Msmooth]&lt;br /&gt;
| Masked smoother, designed specifically for anime.&lt;br /&gt;
| [[YV12]], [[RGB32]]&lt;br /&gt;
| [{{N2Moved}}/msmooth/msmooth202.zip Plugin]&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SmoothUV]]&lt;br /&gt;
| A spatial denoising plugin based on [{{N2Moved}}/smooth.html Smart Smoother] and [{{N2Moved}}/hiq/smoothhiq.html Smart Smooth HiQ].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/smoothuv_5F25_dll_20030902.zip Plugin]&lt;br /&gt;
| {{Author/Kurosu}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SPresso]]&lt;br /&gt;
|A fast script to make SD content compress better while keeping the &amp;quot;original look&amp;quot;.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=867316&amp;amp;postcount=23 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TBilateral]] &lt;br /&gt;
| TBilateral is a spatial smoothing filter that uses the bilateral filtering algorithm.  It does a nice job of smoothing while retaining picture structure.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TBilateralv0911.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnDot]]&lt;br /&gt;
| UnDot is a simple median filter for removing dots, that is stray orphan pixels and mosquito noise. It clips each pixel value to stay within min and max of its eight surrounding neighbors. See [http://forum.doom9.org/showthread.php?s=&amp;amp;postid=205442#post205442 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/UnDot.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/vague/vaguedenoiser.html VagueDenoiser]&lt;br /&gt;
| This is a Wavelet based Denoiser. Basically, it transforms each frame from the video input into the wavelet domain, using various wavelet filters. Then it applies some filtering to the obtained coefficients. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=56871 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/vaguedenoiser_5F25_dll_20050926.zip Plugin]&lt;br /&gt;
| {{Author/Lefungus}}, {{Author/Kurosu}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VerticalCleaner]]&lt;br /&gt;
| Fast vertical cleaner. Parameter information [http://videoprocessing.fr.yuku.com/sreply/651/Can-use-quantile-like-vertical-median-filter here.] Explanation of mode 2 [http://videoprocessing.fr.yuku.com/sreply/649/Can-use-quantile-like-vertical-median-filter here.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://home.arcor.de/kassandro/prerelease/VerticalCleaner.rar Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Cnr2]]&lt;br /&gt;
| A fast chroma denoiser. Very effective against stationary rainbows and huge analogic chroma activity. Useful to filter VHS/TV caps. See [http://forum.doom9.org/showthread.php?t=78905 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20140420181313/http://bengal.missouri.edu/~kes25c/cnr2_v261.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FluxSmooth]]&lt;br /&gt;
| Examines each pixel and compares it to the corresponding pixel in the previous and last frame.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20070225212908/http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip Plugin]&lt;br /&gt;
| {{Author/SansGrip}}, {{Author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/grapesmoother.htm GrapeSmoother]&lt;br /&gt;
| This filter averages out visual noise between frames.&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/grapesmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| MVDegrain&lt;br /&gt;
| Strong and effective temporal denoiser. Part of the [[MVTools]] package.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MVTools Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.nl/users/fizick/docs/english/externalfilters/temporalcleaner.htm TemporalCleaner]&lt;br /&gt;
| TemporalCleaner is an AviSynth port of the original port of the VirtualDub filter TemporalCleaner made by [http://home.earthlink.net/~casaburi/download/#temporalcleaner Jim Casaburi.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/temporalcleaner_5F25_dll.zip Plugin]&lt;br /&gt;
| vlad59&lt;br /&gt;
|-&lt;br /&gt;
| [[TTempSmooth]] &lt;br /&gt;
| TTempSmooth is a motion adaptive (it only works on stationary parts of the picture), temporal smoothing filter.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TTempSmoothv094.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Temporal Degrain]]&lt;br /&gt;
| SLOW but very effective at removing most grain from video sources.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/TemporalDegrain.avs Script]&lt;br /&gt;
| Didée, Sagekilla &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spatio-Temporal Denoisers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/index.html Convolution3D]&lt;br /&gt;
| Convolution3D is a spatio-temporal smoother, it applies a 3D convolution filter to all pixels of consecutive frames. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38281 discussion], [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=49806 continued].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/con3d-yv12-beta5.zip Plugin]&lt;br /&gt;
| {{Author/Vlad59}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Deen]]&lt;br /&gt;
| Deen is a set of assembly-optimised denoisers, like various 3d and 2d convolutions.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Deen Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
| DenoiseMF&lt;br /&gt;
| A fast and accurate denoiser for a Full HD video from a H.264 camera. See [http://forum.doom9.org/showthread.php?t=162603 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web-beta.archive.org/web/20160315085026/http://forum.doom9.org/showthread.php?t=162603 Script]&lt;br /&gt;
| rean&lt;br /&gt;
|-&lt;br /&gt;
| [[dfttest]]&lt;br /&gt;
| A 2D/3D frequency domain denoiser. See [http://forum.doom9.org/showthread.php?t=132194 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/dfttest-1.9.4.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| dfttestMC&lt;br /&gt;
| A script that motion compensates dfttest. See [http://forum.doom9.org/showthread.php?t=147676 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147676 Script]&lt;br /&gt;
| thewebchat&lt;br /&gt;
|-&lt;br /&gt;
| [[DeGrainMedian]]&lt;br /&gt;
| Two stage Spatio-Temporal Limited Median filter for grain removal. [http://forum.doom9.org/showthread.php?t=80834 See]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/degrain/degrainmedian082.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/fft3dfilter/fft3dfilter.html FFT3DFilter]&lt;br /&gt;
| A 3D Frequency Domain filter - gives strong denoising and moderate sharpening. See [http://forum.doom9.org/showthread.php?t=85790 original] discussion and updated version [http://forum.doom9.org/showthread.php?t=174347 here].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], [[YUY2]]&lt;br /&gt;
| [http://github.com/pinterf/fft3dfilter/releases Plugin]&lt;br /&gt;
| {{Author/Fizick}}, martin53, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
| FFT3DGPU &lt;br /&gt;
| Similar algorithm to FFT3DFilter, but uses graphics hardware for increased speed. See [http://forum.doom9.org/showthread.php?t=89941 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/tsp/fft3dgpu0.8.2.7z Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [[hqdn3d]] &lt;br /&gt;
| High Quality DeNoise 3D is an Avisynth 2.5 port of the MPlayer filter of the same name. It performs a 3-way low-pass filter, which can completely remove high-frequency noise while minimizing blending artifacts. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://akuvian.org/src/avisynth/hqdn3d/hqdn3d-0.11.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MC_Spuds]]&lt;br /&gt;
| Motion compensated noise removal with sharpening. Extremely slow, but extremely effective.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| Spuds, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MCTemporalDenoise]]&lt;br /&gt;
| Another high quality motion compensated noise removal script with an accompanying post-processing component (with loads of excess feature such as MC-Post-sharpening, MC-antialiasing, deblock, edgeclean and much more)&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139766 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/mipsmooth.htm MipSmooth]&lt;br /&gt;
| MipSmooth is a reinvention of [[SmoothHiQ]] and [[Convolution3D]]. MipSmooth was made to enable smoothing of larger pixel areas than 3x3(x3), to remove blocks and smoothing out low-frequency noise. See [http://forum.doom9.org/showthread.php?t=64940 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mipsmooth_5F25_dll_20051223.zip Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/nomosmooth.htm NoMoSmooth]&lt;br /&gt;
| NoMoSmooth temporally denoises relatively static areas and a spatially denoises moving parts. In addition to this motion-based approach, NoMoSmooth employs another technique to try to retain as much existing detail as possible: only pixels that are &amp;quot;fluctuating&amp;quot; are smoothed. See [http://forum.doom9.org/showthread.php?t=37471 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/nomosmooth_5F25_dll_200309015.zip Plugin]&lt;br /&gt;
| SansGrip&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/peachsmoother.htm PeachSmoother]&lt;br /&gt;
| PeachSmoother was designed to cope with the oddities of analog broadcast TV.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/peachsmoother_5F25_dll_20030801.zip Plugin]&lt;br /&gt;
| {{Author/Lindsey Dubb}}&lt;br /&gt;
|-&lt;br /&gt;
| RemoveDirtMC&lt;br /&gt;
| See [http://forum.doom9.org/showthread.php?p=1485300#post1485300 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://pastebin.com/PgkQc9X4 Script]&lt;br /&gt;
| Nephilis/A.SONY&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrain]]&lt;br /&gt;
| RemoveGrain is a plugin package containing various plugins for spatial and temporal denoising, repairing, sharpening, deinterlacing, and other utility functions.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/index.php/RemoveGrain Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[RemoveGrainHD]]&lt;br /&gt;
| RemoveGrainHD is like RemoveGrain but intended for high definition content. It includes various spatial and temporal functions. See [http://web.archive.org/web/20130412014246/http://www.removegrainhd.de.tf/ documentation.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Denoisers/Spatial_Denoisers/RemoveGrainHD___(0.5_-_2011-08-11).7z Plugin]&lt;br /&gt;
| {{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| RemoveNoiseMC&lt;br /&gt;
| Motion compensated filter for removing noise, larger spots and other dirt. Written as an alternative to the old Dust. Last update Nov 2006. It uses mvtools v1. Jenyok collected together all RemoveNoise and various filters functions and adapted to MVTools v2.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=110078 Script]&lt;br /&gt;
| Heini011&lt;br /&gt;
|-&lt;br /&gt;
| [[RgTools]]&lt;br /&gt;
| Modern rewrite of &amp;lt;tt&amp;gt;[[RgTools/RemoveGrain|RemoveGrain]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Repair|Repair]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/BackwardClense|BackwardClense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/Clense|Clense]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[RgTools/ForwardClense|ForwardClense]]&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;[[RgTools/VerticalCleaner| VerticalCleaner]]&amp;lt;/tt&amp;gt; all in a single plugin. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/pinterf/RgTools/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/pinterf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[SMDegrain]]&lt;br /&gt;
|SMDegrain is a convenience function for using MDegrain, including 16bit and interlaced support, with extra capabilities for light sharpening and spatial filtering.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-0d-A-Quality-Denoising-Solution Script]&lt;br /&gt;
|{{Author/Dogway}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STMedianFilter]]&lt;br /&gt;
|STMedianFilter is a (slightly motion compensated) spatial/temporal median filter. It fairly very fine grained, using only adjacent pixels in space and time, so it looks at the adjacent 26 locations to filter each location. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/STMedianFilter.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[STPresso]]&lt;br /&gt;
|A fast script to make SD/720p content compress better without losing detail and original grain structure. See [http://forum.doom9.org/showthread.php?p=1551871#post1551871 discussion.]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1551871&amp;amp;postcount=2 Script]&lt;br /&gt;
|{{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| zzz_denoise&lt;br /&gt;
| Simple wrapper around a combination of dfttest and MDegrain3. Requires the [[External_filters#Deepcolor_Filters|Dither]] package.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1390594#post1390594 Script]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Adjustment Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Averaging/Layering/Masking ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Average]]&lt;br /&gt;
| A simple plugin that calculates weighted frame-by-frame average from multiple clips. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/Average Plugin]&lt;br /&gt;
| {{Author/tp7}}, {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ AviSynthGimpLayer]&lt;br /&gt;
|AviSynth Gimp-style Layer merge plugin.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://sourceforge.net/projects/avisynthgmplyr/files/ Plugin]&lt;br /&gt;
| [http://sourceforge.net/u/panzerboy66/profile/ panzerboy66]&lt;br /&gt;
|-&lt;br /&gt;
| BlockAverage&lt;br /&gt;
| A simple filter that just averages the Y values of each 2x2 pixel block in a YV12 image – U and V values are left alone as they already common to each 2x2 block in a progressive YV12 image. Just made to see if it satifies the requirements in [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=91580&amp;amp;perpage=10&amp;amp;pagenumber=1 this thread].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/blockaverage01.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|CheckMask&lt;br /&gt;
|A YV12 spatial dot finding filter for AviSynth.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/checkmask_5F25_dll_20050310.zip Plugin]&lt;br /&gt;
|[http://web.archive.org/web/20090618112048/http://kawaii-shoujo.net/AntiAliased/index.html Dan Donovan]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=159274 ColorScreenMask]&lt;br /&gt;
|ColorScreenMask is a special effects plugin for processing chroma key (i.e., a green screen or blue screen) backgrounds. It uses color thresholds rather than absolute values as the criteria for setting the alpha channel transparency. &lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=15699&amp;amp;d=1483786544 Plugin]&lt;br /&gt;
|Grandpa Oddball&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=99890 ColourMask]&lt;br /&gt;
|Creates colour masks.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.avisynth.nl/users/warpenterprises/files/colourmask_20050911.zip Plugin]&lt;br /&gt;
|{{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/tree/master/avisynth CombMask]&lt;br /&gt;
|A filter to create and process comb masks. These filters were written from scratch, but most of logic comes from tritical's [[TIVTC]] plugin.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/chikuzen/CombMask/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Fusion]]&lt;br /&gt;
|Pyramidal image processing for video, it uses image pyramids to blend clips together (more commonly used in the creation of HDR images and image stitching).&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/fusion.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GraMaMa]]&lt;br /&gt;
| Gradient Mask Maker: Creates a mask (either a gradient or black/white) given a prescribed shape (such as circle, ellipse, line, square or rectangle).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/GraMaMa_v02.zip Plugin]&lt;br /&gt;
| {{author/E-Male}}, &lt;br /&gt;
{{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/imck-2.3.0-readme.html ImasMultiColorKeying]&lt;br /&gt;
|Chroma keying filter (Japanese)&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://umezawa.dyndns.info/archive/imck/ Plugin]&lt;br /&gt;
|Umezawa Takeshi&lt;br /&gt;
|-&lt;br /&gt;
|MaskCrop&lt;br /&gt;
|Non-clip plugin and function to speed up filtering with a mask.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.dropbox.com/s/8c4rxlwbs020ib1/MaskCrop0.1.2.7z?dl=1 Plugin] &amp;lt;!--[http://www.dropbox.com/s/98bcjuiy2ojkz75/MaskCrop0.1.1.7z?dl=1 Old v0.1.1 plugin] [http://www.dropbox.com/s/xcrlno31jqavqob/MaskCrop.7z?dl=1 Old v0.1.0 plugin]--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.videohelp.com/threads/369143-ResizersPack-MasksPack-PlaygroundPack-SmoothContrast-Logo-mod-functions?s=7811fcf9c429ffb99f2e0a4b8043832d&amp;amp;p=2364052&amp;amp;viewfull=1#post2364052 MasksPack]&lt;br /&gt;
|This is a set of functions related to masks, so localized filtering will be able, giving you finer control on how and where to filter or protect certain zones.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/mch99c0z5957u9z/MasksPack2.3.zip Script]&lt;br /&gt;
|Dogway&lt;br /&gt;
|-&lt;br /&gt;
|[[Median]]&lt;br /&gt;
|A filter plugin for AviSynth which generates a pixel-by-pixel median of several clips. This is particularly useful for filtering out noise and glitches from multiple VHS/SVHS/8mm/Hi8 tape captures, but can be used for other purposes also. [http://forum.videohelp.com/threads/362361-Median%28%29-plugin-for-AviSynth VideoHelp discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://ajk.kapsi.fi/projects/avisynth/median-plugin/Median-0.6.zip Plugin]&lt;br /&gt;
|{{Author/ajk}}&lt;br /&gt;
|-&lt;br /&gt;
| ParameterisedBlend&lt;br /&gt;
| ParameterisedBlend allows you to blend any number of frames within a clip, or blend any number of different clips together.  You can use it as an extended, gamma-aware replacement for Merge().&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft#TOC-ParameterisedBlend Plugin]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172388 Polygon]&lt;br /&gt;
|The very raw beginning of a plugin for drawing high quality polygons (mainly to be used as masks) in AviSynth.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172388 Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163018 RedAverage]&lt;br /&gt;
|Frame-by-frame merging of multiple clips. Includes a masked average, weighted average, and a merge filter. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://chaosking.de/repo/avsfilters/Unclassified/RedAverage___%281.4.3_-_2011-12-02%29.7z Plugin]&lt;br /&gt;
|redfordxx&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jojje/shapemask ShapeMask]&lt;br /&gt;
|A filter plugin for AviSynth that identifies bright areas such as projector screens at conferences and creates a mask out of them. The use case for which it was created is to deal with overly bright lectures, such as screen casts or talks where the speaker or producer hasn't followed presentation 101; Use light text on a dark background! See [http://forum.doom9.org/showthread.php?t=172308 discussion.]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150702103042/http://snarl.zapto.org/files/ShapeMask-1.0.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tcolormask TColorMask]&lt;br /&gt;
|A simple color masking plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tcolormask/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=76595 TCombMask]&lt;br /&gt;
|TCombMask is a simple filter that creates a comb map that can (could) be used by other filters.  It currently supports optional motion adaption, optional spatial adaption, optional luma &amp;lt;-&amp;gt; chroma linking, different thresholds for chroma and luma, and much more.&lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070222162504/http://bengal.missouri.edu/~kes25c/TCombMaskv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner TMaskCleaner]&lt;br /&gt;
|A really simple mask cleaning plugin for AviSynth based on mt_hysteresis. See [http://forum.doom9.org/showthread.php?t=169832 discussion]&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/tmaskcleaner/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TMM]]&lt;br /&gt;
| TMM builds a motion-mask for TDeint, which TDeint uses via its 'emask' parameter. See [http://forum.doom9.org/showthread.php?p=980353#post980353 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140420183526/http://bengal.missouri.edu/~kes25c/TMMv1.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/chikuzen/TMM2 TMM2]&lt;br /&gt;
| A rewrite of TMM&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/chikuzen/TMM2/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Unpremultiply]] &lt;br /&gt;
| This plugin convert the input RGBA clip from premultiplied alpha to straight matted alpha. See [http://forum.doom9.org/showthread.php?t=166730 discussion.]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13207&amp;amp;d=1356994426 Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20160610124858/http://code.google.com/p/avisynth-unpremultiply/ Josh Sutinen]&lt;br /&gt;
|-&lt;br /&gt;
| [[uu_mt_blend]]&lt;br /&gt;
| ''Blend'' (''[[Overlay]], [[Layer]]'') two clips using [[MaskTools2|MaskTools]]. Wide selection of blend modes.&lt;br /&gt;
| [[YV12]],[[RGB24]],[[RGB32]]&lt;br /&gt;
| [[Media:UU_mt_blend.avs|Script]]&lt;br /&gt;
| rafriff42&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blurring ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[BucketMedian]]&lt;br /&gt;
| BucketMedian is an implementation of spatial median filter adapting bucket (counting) sort algorithm.&lt;br /&gt;
| [[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://dl.dropboxusercontent.com/s/bczippngoqy6xbw/BucketMedian-0.3.1.7z Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GBlur]]&lt;br /&gt;
| Gaussian blur.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/GBlur/GBlur.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur]]&lt;br /&gt;
| A plugin with 5 different types of median blur filters. See [http://forum.doom9.org/showthread.php?t=84636 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/medianblur084.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MedianBlur2]]&lt;br /&gt;
| Implementation of [http://nomis80.org/ctmf.html constant time median filter] for AviSynth 2.6, similar to MedianBlur.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/MedianBlur2/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableBlur]]&lt;br /&gt;
| VariableBlur is a Gaussian, binomial or average blur filter with a variable radius (variance).&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]],&lt;br /&gt;
| [http://web.archive.org/web/20140420184040/http://bengal.missouri.edu/~kes25c/variableblur.zip Plugin]&lt;br /&gt;
| {{Author/tsp}}, {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VariableMedian]]&lt;br /&gt;
| A simple median filter. See [http://forum.doom9.org/showthread.php?t=83985 discussion]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091027134543/http://www.geocities.com/siwalters_uk/variablemedian.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Borders and Cropping ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[[BorderControl]]&lt;br /&gt;
| It's designed to allow you to manipulate the regions at the top, bottom and sides of a frame. Set a black border, set a border region to be faded out and you can &amp;quot;smear&amp;quot; the border to save having to crop and resize the whole frame for the sake of a few pixels. Each border (top,bottom.left and right) can be manipulated independently. See [http://forum.doom9.org/showthread.php?t=33479 discussion] and [http://avisynth.org.ru/docs/english/externalfilters/bordercontrol.htm documentation].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20140709005736/http://www.geocities.com/siwalters_uk/bordercontrol14.zip Plugin]&lt;br /&gt;
|{{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FillMargins]]&lt;br /&gt;
|FillMargins is a simple AviSynth filter that fills the four margins of a video clip with the outer pixels of the unfilled portion. It takes integer 4 parameters specifying the size of the left, top, right, and bottom margins. These may be any value and do not have to be any particular multiple. See discussion [http://forum.doom9.org/showthread.php?t=50132 here] and [http://forum.doom9.org/showthread.php?t=55881 here], additional [http://avisynth.org.ru/docs/english/externalfilters/fillmargins.htm documentation]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20130207143129/http://neuron2.net/trbarry/FillMargins.zip Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| Padding&lt;br /&gt;
| Duplicate edge pixels to the outside with [[PointResize]]. See [http://forum.doom9.org/showthread.php?t=165946 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1596804&amp;amp;postcount=5 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoCrop]]&lt;br /&gt;
|Automatically crops black borders ([http://en.wikipedia.org/wiki/Letterbox wikipedia:Letterbox], [http://en.wikipedia.org/wiki/Pillar_box_%28film%29 wikipedia:Pillar box], [http://en.wikipedia.org/wiki/Windowbox_%28film%29 wikipedia:Windowbox]) from a clip. Operates in preview mode (overlays the recommended cropping information) or cropping mode. Can also ensure width and height are multiples of specified numbers. See original [http://forum.doom9.org/showthread.php?t=37204 discussion] and updated AutoCrop [http://forum.doom9.org/showthread.php?t=87602 discussion]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://len0x.leffe.dnsalias.com/autocrop12.zip Plugin]&lt;br /&gt;
| [http://web.archive.org/web/20050404182221/http://www.videofringe.com/autocrop/ Glenn Bussell], len0x&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource CropDetect]&lt;br /&gt;
| Plugin to detect black bounding box in video and crop it easily. See [http://forum.doom9.org/showthread.php?p=1761842#post1761842 discussion]. Note, CropDetect small plugin merged within ssifSource project. Look for &amp;quot;CropDetect&amp;quot; function in Sub3D.dll&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/releases plugin]&lt;br /&gt;
|[http://github.com/slavanap slavanap]&lt;br /&gt;
|-&lt;br /&gt;
|[[RoboCrop]]&lt;br /&gt;
| RoboCrop is an automatic cropping solution to crop black borders from video clips, loosely based on (but using no code from) AutoCrop by Glenn Bussell. See [http://forum.doom9.org/showthread.php?t=168053 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.mediafire.com/file/krdo0aye4dlvpit/RoboCrop_25%2626_dll_v1-10_20160825.zip Plugin]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Colourspace Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [{{N2Moved}}/autoyuy2/autoyuy2.html AutoYUY2]&lt;br /&gt;
| This filter is correctly converts YV12 to YUY2 without color bias.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Donald Graft}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171786 Cnv2]&lt;br /&gt;
| Universal [[Convert|ConvertTo...()]] wrapper with some additional features. Requires [http://forum.doom9.org/showthread.php?t=147846 GScript]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=171786 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| ConvertToYCgCo&lt;br /&gt;
| Converts to the YCgCo colorspace. See [http://forum.doom9.org/showthread.php?t=161736 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12748&amp;amp;d=1331769022 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
| InterleavedConversions&lt;br /&gt;
| Tools for interleaving and de-interleaving 2, 3, and 4-channel data.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| PitifulInsect&lt;br /&gt;
|-&lt;br /&gt;
| ManualColorMatrix&lt;br /&gt;
| Can perform any matrix-based color conversion. See [http://forum.doom9.org/showthread.php?t=161777 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV24]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=12346&amp;amp;d=1309522614 Plugin]&lt;br /&gt;
| xv&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality 16-bit image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools PlanarTools]&lt;br /&gt;
|This plugin is a set of filters that offers converting packed(interleaved) formats to planar formats and vice versa.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV16]]&lt;br /&gt;
|[http://github.com/chikuzen/PlanarTools/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2inRGB&lt;br /&gt;
| A quick filter that stuffs YUY2 into RGB24. See [http://forum.doom9.org/showthread.php?p=639948#post639948 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/YUY2inRGB.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| YUY2toRGB219&lt;br /&gt;
| Converts YUY2 to studioRGB. With this kind of conversion, luma will not change, meaning no quantization error on luma. See [http://forum.doom9.org/showthread.php?p=639432#post639432 discussion.]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://trevlac.us/colorCorrection/YUY2toRGB219.zip Plugin] &lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422 YV12To422]&lt;br /&gt;
|YV12 to YV16/YUY2 converter for AviSynth 2.6.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://github.com/chikuzen/YV12To422/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddGrainC]]&lt;br /&gt;
| Generates film like grain or other effects (like rain) by adding random noise to clip. Noise can be horizontally or vertically correlated causing streaking. Contains AddGrain &amp;amp; AddGrainC &lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]],&lt;br /&gt;
[[Y8]], [[YV411]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://ldesoras.free.fr/src/avs/AddGrainC-1.7.1.7z Plugin]&lt;br /&gt;
|{{Author/Tom Barry}}, {{Author/Foxyshadis}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Author/LaTo}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| AddStaticGrainM&lt;br /&gt;
| This function adds static grain in dark areas based on a mask.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[AddStaticGrainM_source|Script]]&lt;br /&gt;
| [http://canihaziframe.wordpress.com/2011/02/23/addstaticgrainm/ Daiz]&lt;br /&gt;
|-&lt;br /&gt;
| [http://kvcd.net/sansgrip/avisynth/Blockbuster-readme.html AddNoise/Blockbuster]&lt;br /&gt;
| Makes encoder allocate more bits to darker areas, thus eliminating DCT blocks by decreasing the clips compressibility.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/blockbuster_5F25_src_20021229.zip Plugin]&lt;br /&gt;
| Ross Thomas&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=87295 AviShader]&lt;br /&gt;
| generic plugin that uses your 3D card's hardware to assist with rendering&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avishader_5F25_dll_20041228.zip Plugin]&lt;br /&gt;
| Antitorgo&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97706 ColorLooks]&lt;br /&gt;
| This plugin is based on Trev's VDub filter Colorlooks and Donald Graft's Colorize (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ColorLooks_v13.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 crt_display]&lt;br /&gt;
| CRT emulation with scanline and phosphor effects. crt_display emulates a CRT display using aperture grille (Trinitron) or Cromaclear technologies. See [http://forum.doom9.org/showthread.php?t=170732 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=170732 Script]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[EffectsMany]]&lt;br /&gt;
| Creates 34 types of special &amp;quot;animated&amp;quot; effects. Effects act on the input clip in the range of the frame numbers specified. The Audio is not affected.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/EffectsMany/EffectsMany.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[f3kgrain]]&lt;br /&gt;
| Another 8/16-bit luma adaptive grain generator.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://web.archive.org/web/20131111114900/http://www.nmm-hd.org/upload/get~ElhZlazJbsQ/f3kgrain_v0.4.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GNoise]]&lt;br /&gt;
| Adds random noise to a clip. See [http://forum.doom9.org/showthread.php?p=841700#post841700 duscussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/gnoise_r5.zip Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3]]&lt;br /&gt;
| Noise generator that tries to simulate the behavior of silver grain on film. See [http://forum.doom9.org/showthread.php?t=141303 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1191292#post1191292 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactory3mod]]&lt;br /&gt;
| Luma adaptive grain generating filter in 8-bit precision. Based on Didée's [[GrainFactory3]] script.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722190952/http://www.nmm-hd.org/upload/get~kvNvGpuyxfc/GrainFactory3mod_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GrainFactoryLite]]&lt;br /&gt;
| Luma adaptive grain generating filter with stacked 16-bit input/output support. Based on Didée's [[GrainFactory3]] script, processing in 16-bit precision, and some commonly unused parameters removed.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140722185917/http://www.nmm-hd.org/upload/get~FaqsQaMom9s/GrainFactoryLite_v1.2.avsi Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html HollywoodSQ]&lt;br /&gt;
| Creates popup album, akin to Hollywood squares TV show&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HollywoodSq/HollywoodSq.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| KenBurnsEffect&lt;br /&gt;
| Given clip, zooms, pans &amp;amp; rotates clip. See [http://en.wikipedia.org/wiki/Ken_Burns_Effect wikipedia:Ken Burns Effect]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135776 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| [[MPlayerNoise]]&lt;br /&gt;
| Noise Generator ported from MPlayer. See [http://forum.doom9.org/showthread.php?t=84181 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/bergfiltercollection_5F25_dll_20041019.zip Plugin]&lt;br /&gt;
| {{Author/bergi}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NoiseGenerator]]&lt;br /&gt;
| Newer function based off of Blockbuster. Adds random noise to clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/noisegenerator_5F25_dll_20050616.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
| [[Scanlines]]&lt;br /&gt;
| Add Scanlines (black horizontal bars) to a video. see [http://en.wikipedia.org/wiki/Scan_line wikipedia:Scan Line]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/scanlines_5F25_dll_20031103.zip Plugin]&lt;br /&gt;
| turulo&lt;br /&gt;
|-&lt;br /&gt;
| [[StaticNoiseC]]&lt;br /&gt;
| Generates static grain using the Mersenne Twister random number generator. See [http://www.nmm-hd.org/newbbs/viewtopic.php?f=8&amp;amp;t=118&amp;amp;start=20#p772 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20131228160225/http://www.nmm-hd.org/upload/get~YnWFecZw0Uo/StaticNoiseC20110108b.zip Plugin]&lt;br /&gt;
| histamine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gyroshot.com/turnstile.htm TurnsTile]&lt;br /&gt;
| Applies mosaic and/or palette effects to a clip.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=158695 Plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Field Order ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| PFR&lt;br /&gt;
| Tries to restore the original progressive field order of a movie (or any predominantly filmed material transferred to video) where the field order changes at scene changes in a seemingly random fashion! See [http://forum.doom9.org/showthread.php?t=49815 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/pfravs.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| ReverseFieldDominance&lt;br /&gt;
| This filter is intended to reverse the field dominance of [[PAL]] DV video. See [http://forum.doom9.org/showthread.php?t=46765 discussion.]&lt;br /&gt;
| [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/reversefielddominance.html Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Rate Conversion ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AlterFPS]]&lt;br /&gt;
| AlterFPS can be used to speed up or slow down a video by adding or removing fields. It works like the 3:2 pulldown of NTSC film material, except you can choose your new speed. It can also blend frames for progressive frame results, and blend fields like ConvertFPS.&lt;br /&gt;
| Any&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133&lt;br /&gt;
|-&lt;br /&gt;
| [[convert60ito24p]]&lt;br /&gt;
| convert60ito24p converts a 60fps interlaced NTSC Video into a 24fps progressive Video using different blending techniques.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| Script&lt;br /&gt;
| scharfis_brain&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md FPSDown]&lt;br /&gt;
| This filter reduces the framerate of a video by 1/2, by blending odd and even frames together. However, it does this in a smart way such that in case of duplicate frames, it will do the smart thing to remove unnecessary blurring in the output video.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/arkeet/fpsdown/blob/master/README.md Plugin]&lt;br /&gt;
| [http://github.com/arkeet/ arkeet]&lt;br /&gt;
|-&lt;br /&gt;
| [[FrameDbl]]&lt;br /&gt;
| FrameDbl will generate extra frames to double the frame rate. It does this using a motion compensated approach to interpolating between frames. See [http://forum.doom9.org/showthread.php?t=56036 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/FrameDbl.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| FrameRateConverter&lt;br /&gt;
| FrameRateConverter uses motion interpolation with fine artifact removal. Requires [[MVTools|MVTools 2.7.x]], [[MaskTools|MaskTools 2.2.x]]. See [https://forum.doom9.org/showthread.php?t=174793 discussion].&lt;br /&gt;
| [[YV24]], [[YUY2]], [[YV12]], [[Y8]]&lt;br /&gt;
| [https://github.com/mysteryx93/FrameRateConverter Plugin]&lt;br /&gt;
| [https://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.spirton.com/uploads/InterFrame/InterFrame2.html InterFrame]&lt;br /&gt;
| Frame rate conversion script. Interframe works very well at converting 24FPS to 60FPS; converts videos to higher frame rates like newer TVs do. Common names are frame doubling, smooth motion, among others. See [http://forum.doom9.org/showthread.php?t=160226 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1486831&amp;amp;postcount=1 Script]&lt;br /&gt;
|{{Author/SubJunk}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/index_en_msu.html MSU_FRC]&lt;br /&gt;
|The filter is intended for video frame rate up-conversion. It increases the frame rate integer times. It allows, for example, to convert a video with 15 fps into a video with 30 fps.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.compression.ru/video/frame_rate_conversion/src/msu_frc.zip Plugin]&lt;br /&gt;
|Dmitriy Vatolin, et al.&lt;br /&gt;
|-&lt;br /&gt;
| Motion&lt;br /&gt;
| Fast true-motion motion-compensation functions for AviSynth. [http://forum.doom9.org/showthread.php?t=101859 Discussion], [http://web.archive.org/web/20060103143553/http://people.pwf.cam.ac.uk/mg262/posts/Motion/motion.html Documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://wilbertdijkhof.com/mg262/Motion_v10.zip plugin]&lt;br /&gt;
| mg262&lt;br /&gt;
|-&lt;br /&gt;
| NTSC tools&lt;br /&gt;
| Automatic [[NTSC]] to [[PAL]] conversion with 24p, 30p, 60i detection. See [http://forum.doom9.org/showthread.php?t=114054 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/NTSC_tools.avsi Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[SalFPS3]]&lt;br /&gt;
| A modded version of MotionProtectedFPS for extra protection.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SalFPS3.avs Script]&lt;br /&gt;
| Mug Funky, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SickJumps&lt;br /&gt;
| Speed ramping, aka time-remapping (smooth speed changes). Processes both video and audio. See [http://forum.doom9.org/showthread.php?t=175017 discussion].&lt;br /&gt;
| [[RGB]], [[YUV]]&lt;br /&gt;
| [https://forum.doom9.org/showthread.php?t=175017 plugin]&lt;br /&gt;
| {{Author/Robert Martens}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.svp-team.com/wiki/Plugins:_SVPflow SVPflow]&lt;br /&gt;
| SVPflow provides fast and high quality GPU accelerated frame rate interpolation. See [http://forum.doom9.org/showthread.php?t=164554 discussion.] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.svp-team.com/files/gpl/svpflow-4.0.0.128.zip Plugin]&lt;br /&gt;
| [http://www.svp-team.com/wiki/Credits SVP Team]&lt;br /&gt;
|-&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr tc2cfr]&lt;br /&gt;
| This plugin that can read a timecode file and convert a given video clip in to one with a constant framerate by adding duplicate frames.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://github.com/gnaggnoyil/tc2cfr/releases Plugin]&lt;br /&gt;
| [http://github.com/gnaggnoyil gnaggnoyil]&lt;br /&gt;
|-&lt;br /&gt;
| [http://tasvideos.org/forum/viewtopic.php?t=12763 TimecodeFPS]&lt;br /&gt;
| Converts clip from VFR to CFR.  Timing information from clip is discarded, and matroska v2 timecodes from the timecodes file are used instead.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.mediafire.com/?a51pifo438i7hdb Plugin]&lt;br /&gt;
| natt&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165045 VFRtoCFR]&lt;br /&gt;
| Converts a variable frame rate (VFR) video to a constant frame rate (CFR) video with the help of Matroska Version 2 Timecodes.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/q6zfgpo5dhh50si/VFRtoCFR20120730.zip Plugin]&lt;br /&gt;
| Aktan&lt;br /&gt;
|-&lt;br /&gt;
| [http://griffeltavla.wordpress.com/2013/01/18/convert-vfr-to-cfr-using-avisynth/ VfrToCfr]&lt;br /&gt;
| This plugin converts variable frame rate clips to constant frame rate by introducing null frames. [http://github.com/jojje/VfrToCfr-the-other-one GitHub repository]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20130430033132/http://snarl.zapto.org/files/vfrtocfr-1.0.zip Plugin]&lt;br /&gt;
| joyje&lt;br /&gt;
|-&lt;br /&gt;
|[[YFRC]]&lt;br /&gt;
| Yushko Frame Rate Converter - doubles the frame rate with strong artifact detection and scene change detection.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://avisynth.nl/images/YFRC-01dd-10mm-2015yyyy.avsi Script]&lt;br /&gt;
| Oleg Yushko&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frame Replacement/Range Processing ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=461878#post461878 ApplyEvery]&lt;br /&gt;
|A collection of AviSynth functions that operate at regular intervals in a clip. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/stickboy/ApplyEvery.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes.html BadFrames]&lt;br /&gt;
|Replaces given bad frames by neighbors or blend (interpolation). Useful for frames with very large defects. &lt;br /&gt;
|&lt;br /&gt;
|[http://www.avisynth.nl/users/fizick/badframes/badframes20.zip Plugin]&lt;br /&gt;
|{{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162266 ClipClop]&lt;br /&gt;
|Clipclop is a simple plugin to replace ranges in a source clip with the same range, from a replacement clip. Supports up to 255 replacement clips, with unlimited number of replacements into output clip.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168047 FrameRepeat]&lt;br /&gt;
|FrameRepeat() is a simple plugin to select frames to repeat. Requires AviSynth 2.6.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167971 FrameSel/FrameRep]&lt;br /&gt;
|FrameSel() is a simple plugin to select individual frames from a clip. Can select frames numbers by direct arguments to filter, or in a string, or in a command file.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164766 MatchFrames/LocateFrames]&lt;br /&gt;
|MatchFrames, intended for matched frames extraction,LocateFrames, intended to be usable by other scripts to identify matches.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1644971&amp;amp;postcount=28 RemapFrames]&lt;br /&gt;
|A collection of functions to rearrange frames between clips. Remaps the frame indices in a clip or from a second clip as specified by an input text file or by an input string. Efficient alternatives to long chains of &amp;lt;tt&amp;gt;FreezeFrame, DeleteFrame, or ApplyRange&amp;lt;/tt&amp;gt;. &lt;br /&gt;
|&lt;br /&gt;
|[http://ldesoras.free.fr/src/avs/RemapFrames-0.4.1.zip Plugin]&lt;br /&gt;
|{{Author/stickboy}}, {{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162446 Prune]&lt;br /&gt;
|Prune is a simple plugin to trim() multiple source clips and splice the results into a new clip. Supports up to 256 source clips, with unlimited number of trims/splices into output clip. Prune can fade Audio (to reduce clicks between splices) for supported audio formats. The plugin will do [[AlignedSplice]] only.&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Levels and Chroma ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 AutoAdjust]&lt;br /&gt;
| A high quality automatic adjustement filter. It calculates statistics of clip, averages them temporally to stabilize data and uses them to adjust luminance gain &amp;amp; color balance. AutoAdjust has a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and can also input/output 16-bits. AutoAdjust is internally multithreaded and SSE2 optimized.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=167573 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 AutoContrast]&lt;br /&gt;
|Auto contrast adjustment.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173208#post1757661 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels.html Autolevels]&lt;br /&gt;
| Improvement of the [[ColorYUV]] filter's autogain feature. It stretches the luma histogram to use the entire specified range, averaging the amount of &amp;quot;gain&amp;quot; over consecutive frames to better handle flashes and to avoid flickering. [http://forum.doom9.org/showthread.php?t=128585 Discuss]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.thebattles.net/video/autolevels_0.6_20110109.zip Plugin]&lt;br /&gt;
| {{Author/frustum}} &amp;amp; Theodor Anschütz&lt;br /&gt;
|-&lt;br /&gt;
| AWB&lt;br /&gt;
| Automatic white balance for real world footage, similar to the known function in digital cameras. See [http://forum.doom9.org/showthread.php?t=168062 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=168062 Script]&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
| [[ChanMix]]&lt;br /&gt;
| Creates a grayscale image from an RGB24 source, it has 3 parameters to specify how much of each color-channel is used.&lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [{{N2Moved}}/misc/chanmix.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
| [[ChannelMixer]]&lt;br /&gt;
| Very similar to the ChannelMixer function found in Photoshop. 9 Adjustments are possible, 3 for each color channel.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://forum.videohelp.com/images/guides/p1767998/channelmixer_v1_0.zip Plugin]&lt;br /&gt;
| Gustaf Ullberg&lt;br /&gt;
|-&lt;br /&gt;
| [[ChromaJig]]&lt;br /&gt;
| Automatic Colorization.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1775733#post1775733]&lt;br /&gt;
| MWilson&lt;br /&gt;
|-&lt;br /&gt;
| [[ColorBalance]]&lt;br /&gt;
| Same tool that is found in Gimp &amp;amp; Cinepaint. See [http://forum.doom9.org/showthread.php?p=1180090#post1180090 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://dl.dropbox.com/s/ve66ayxfnfet9u0/ColorBalance_0.26.zip Plugin]&lt;br /&gt;
| Gavino &amp;amp; mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
|ColorLooks&lt;br /&gt;
| This plugin is based on Trev's VDub filter [http://www.trevlac.us/FilterDocs/ Colorlooks] and Donald Graft's [http://rationalqm.us/colorize.html Colorize] (well it works a bit similar). I also added some new stuff. The plugin contains the following filters: Technicolor, Colorize, Sepia and Posterize. See [http://forum.doom9.org/showthread.php?t=97706 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/ColorLooks_v13.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ColorYUV2]&lt;br /&gt;
|YUV color adjustment plugin with a graffer. &lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://www.mediafire.com/download/875czvfnigu72ds/ColorYUV2_25_dll_20120529.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=96308 ColourLike]&lt;br /&gt;
| Makes a clip look like a 'reference' clip by adjusting each colour mask. Updated [http://forum.doom9.org/showpost.php?p=1582935&amp;amp;postcount=38 documentation]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/colourlike_5F25_dll_20050825.zip Plugin]&lt;br /&gt;
| {{Author/mg262}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://expsat.sourceforge.net/ ExpLabo]&lt;br /&gt;
| ExpSat apply a non-linear transformation of saturation, Colorize change the image color dominance in a flexible manner, HLSnoise adds a noise to the image separately to the HLS dimensions. See [http://forum.doom9.org/showthread.php?t=97052 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/expsat/ Plugin]&lt;br /&gt;
| brabbudu&lt;br /&gt;
|-&lt;br /&gt;
|[http://mpierce.pie2k.com/pages/211.php Exposure]&lt;br /&gt;
|Exposure function for AviSynth.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
|[http://mpierce.pie2k.com/downloads/exposure.zip Plugin]&lt;br /&gt;
|Matt Pierce&lt;br /&gt;
|-&lt;br /&gt;
| [[FlimsYlevels]]&lt;br /&gt;
| Luma adjustment function to give a more &amp;quot;film-ish&amp;quot; look. (Based on {{Author/Didée}}'s [[Ylevels]]).&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| FlimsyFeet &lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173695 GamMac]&lt;br /&gt;
|Useful to correct color cast on old 8mm films.&lt;br /&gt;
|[[RGB32]], [[RGB24]]&lt;br /&gt;
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=605890#post605890 GiCocu]&lt;br /&gt;
| Use GIMP/Photoshop curve files, see [http://avisynth.org.ru/docs/english/externalfilters/gicocu.htm documentation.] &lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/gicocu_5F25_dll_20050620.zip Plugin]&lt;br /&gt;
| E-Male&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Gray_Balance]&lt;br /&gt;
|A gray balance script, which is based on Black/White/Gray balance picker.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=167027#post1629321 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20130812061301/http://strony.aster.pl/paviko/hdragc.htm HDRAGC]&lt;br /&gt;
| High Dynamic Range Automatic Gain Control - Increase dynamic range of video clips (enhance shadows). It's &amp;quot;simply&amp;quot; gaining (brightening) dark areas of image without causing blow of highlights. Amount of gain is calculated automatically, but can be influenced by parameters. See [http://forum.doom9.org/showthread.php?t=93571 discussion.]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20120419193005/http://strony.aster.pl/paviko/Hdragc-1.8.7.zip Plugin]&lt;br /&gt;
| {{Author/paviko}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=161986 HighlightLimiter]&lt;br /&gt;
| &amp;quot;Darkening highlight&amp;quot;. Works well on over exposed clips. It can also be combined with ContrastMask to create HDR effect&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1522100#post1522100 Script]&lt;br /&gt;
| javlak&lt;br /&gt;
|-&lt;br /&gt;
| [[HistogramAdjust]]&lt;br /&gt;
| 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.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/HistogramAdjust/HistogramAdjust.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Histograms in RGB &amp;amp; CMY]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;levels&amp;quot;) but for RGB and CMY instead of YUV. It also includes a RGB parade color scope.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/Histograms_in_RGB_%26_CMY.avsi Script]&lt;br /&gt;
| -Vit-&lt;br /&gt;
|-&lt;br /&gt;
|HSVAdjust&lt;br /&gt;
|HSVAdjust/HSLAdjust/HSIAdjust let's you rotate hues, control the strength of color (saturation), or modify the brightness of a clip. The type of brightness depends on the filter. It's value for HSVAdjust, lightness for HSLAdjust or intensity for HSIAdjust. See [http://forum.doom9.org/showthread.php?t=162022 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/HSVAdjust_v01.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Hue&lt;br /&gt;
|This plugin is a port of Donald Graft's VirtualDub [http://rationalqm.us/hue.html Hue] filter. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=87439&amp;amp;pagenumber=2 discussion]&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.wilbertdijkhof.com/Hue_v10.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|MatchHistogram&lt;br /&gt;
| Tries to modify the histogram of the input clip to match that of a reference clip. Should be used for analysis only, not for production. See [http://forum.doom9.org/showthread.php?t=153196 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://latoninf.free.fr/d9/MatchHistogram.7z Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[OutRange]]&lt;br /&gt;
| A simple function to scan the whole video and output a log file, in which out-of-tv-range frames are logged.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/images/OutRange.avsi Script]&lt;br /&gt;
| 06_taro&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=170642 RGBAdapt]&lt;br /&gt;
|Another RGB color correction plugin, it also also includes a graffer.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/bo4afg77u4dfu8k/RGBAdapt_dll_v0.3-20150617.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier]&lt;br /&gt;
|An AviSynth forensic plugin to amplify color shifts.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://www.mediafire.com/download/432rxa9ed1lr2in/RgbAmplifier_25_dll_v1.03_20140607.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SGradation]]&lt;br /&gt;
| SGradation is much like a gamma function, but '2nd order'.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| Script&lt;br /&gt;
| martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163829 ShowChannels]&lt;br /&gt;
|Simple plugin whose only function is to display the average Y,U and V values for a YUV frame or R,G, and B for an RGB frame. Also shows accumulated average for all frames visited so far.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/2dgk1y1cohql64r/ShowChannels_25%2626_v0-8_dll_20150330.zip Plugin]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowOverRange]]&lt;br /&gt;
| Shows illegal &amp;quot;TV range&amp;quot; by painting pixels blue for anything less than 16 and red for anything greater than 235.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.nmm-hd.org/newbbs/download/file.php?id=164 Plugin]&lt;br /&gt;
| {{Author/SAPikachu}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 SmoothAdjust]&lt;br /&gt;
| SmoothAdjust is a set of 5 plugins to make YUV adjustements. These 5 plugins have a smoothing &amp;amp; dithering algorithm to avoid banding issue. Calculations are made in 32bits float to avoid rounding errors and artifacts. SmoothAdjust is multithreaded (up to 16 threads) and SSE2 optimized. SmoothAdjust is [[SmoothLevels|SmoothLevels']] successor. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=154971 Plugin]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Tint]]&lt;br /&gt;
| Tints the image toward a specified colour.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| actionman133 &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=74334 TweakColor]&lt;br /&gt;
| Target specific hue and saturation ranges for hue and saturation adjustments.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/tweakcolor_5F25_dll_20040412.zip Plugin]&lt;br /&gt;
| {{Author/Trevlac}}&lt;br /&gt;
|-&lt;br /&gt;
| [[VideoScope]]&lt;br /&gt;
| Similar to Histogram(&amp;quot;classic&amp;quot;) but with additional features, it shows waveform monitors and a vectorscope. &lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/VScope12.zip Plugin]&lt;br /&gt;
| {{Author/Randy French}}&lt;br /&gt;
|-&lt;br /&gt;
| [[WhiteBalance]]&lt;br /&gt;
| Correct the white balance of a clip with a large degree of control and accuracy over other methods of correcting white balance. See [http://forum.doom9.org/showthread.php?t=106196 discussion.]&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.64k.it/andres/data/avisynth/WhiteBalance100.zip Plugin]&lt;br /&gt;
| SomeJoe&lt;br /&gt;
|-&lt;br /&gt;
| [[Ylevels]]&lt;br /&gt;
| A simple replacement for Avisynth's internal [[Levels]] command, with a few neat differences.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| Script&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Line Darkening ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| FastLineDarkenMOD&lt;br /&gt;
| Line darkening script. See original [http://forum.doom9.org/showthread.php?t=82125 discussion.] Updated [http://forum.doom9.org/showthread.php?p=1060081#post1060081 script.] Additional [http://forum.doom9.org/showthread.php?p=1023638#post1023638 information.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1060081#post1060081 Script]&lt;br /&gt;
| Vectrangle / {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Hysteria]]&lt;br /&gt;
|Hysteria, a line darkening script by Scintilla.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/fvDdiV6m Script]&lt;br /&gt;
|Scintilla&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 LineDarkenToon]&lt;br /&gt;
| LineDarkenToon use the idea of mf_toon (0.5) for linedarken. I wanted a really small fast code like FastLineDarken but with similar output like mf_toon and this is the result.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=993939&amp;amp;postcount=2 Script]&lt;br /&gt;
| MOmonster&lt;br /&gt;
|-&lt;br /&gt;
| [[mfToon]]&lt;br /&gt;
| mfToon darkens cartoon edges. In default operation, it performs line darkening, Xsharpening, and warp sharpening. &lt;br /&gt;
See [http://forum.doom9.org/showthread.php?t=53364 discussion.] Additional information [http://forum.doom9.org/showthread.php?t=125128 here] and [http://forum.doom9.org/showthread.php?t=52066 here]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090212071718/http://mf.creations.nl/avs/functions/mfToon-v0.52.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[[proToon]]&lt;br /&gt;
|Line darkening script, used to be known as vmToon and before that mfToon.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://pastebin.com/raw/Aw9En26L Script]&lt;br /&gt;
|TheProfileth&lt;br /&gt;
|-&lt;br /&gt;
| [[SuperToon]]&lt;br /&gt;
| An attempt to optimize/speed up the previous versions of mfToon, vmToon, etc. See [http://forum.doom9.org/showthread.php?t=163987 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=163987 Script]&lt;br /&gt;
| Hadien&lt;br /&gt;
|-&lt;br /&gt;
| [[Toon]]&lt;br /&gt;
| Simple and fast line darkener. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/guk5plphkthdy2f/Toon-v1.1.7z Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ToonLite]]&lt;br /&gt;
| It's the same as [[Toon]], just without the warpsharp processing..&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090218093135/http://mf.creations.nl/avs/filters/Toon-v1.0-lite.dll Plugin]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
| [[vmToon]]&lt;br /&gt;
| The successor to mfToon. Darkens lines, thins lines, and does supersampled sharpening all in one, but slow. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/Vmtoon-v0.74.avsi Script]&lt;br /&gt;
| Vectrangle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resizers ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AreaResize]]&lt;br /&gt;
| An area-average resizer plugin; only use to downscale.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://www.mediafire.com/download.php?kn56wh7r81vk2rx Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Debicubic]]&lt;br /&gt;
| This filter is designed to reverse the effects of bicubic upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140622040033/http://rgb.chromashift.org/debicubic%20r2.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
| [[Debilinear]]&lt;br /&gt;
| This filter is designed to reverse the effects of bilinear upsampling.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140214021604/http://rgb.chromashift.org/debilinear%20r6.zip Plugin]&lt;br /&gt;
| Prunedtree&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1738351#post1738351 edi_rpow2]&lt;br /&gt;
|An improved rpow2 function for nnedi3, nnedi3ocl, eedi3, and eedi2. Requires [http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi ResizeX]&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/view/pcmkxaauku375xd/edi_rpow2_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/chikuzen/FCBI FCBI]&lt;br /&gt;
|Fast Curvature Based Interpolation. More info [http://blog.awm.jp/tags/fcbi/ here] (Japanese).&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/chikuzen/FCBI/releases Plugin]&lt;br /&gt;
|{{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[JincResize]]&lt;br /&gt;
| Jinc (EWA Lanczos) Resampler Plugin for Avisynth/Avisynth+. See [http://forum.doom9.org/showthread.php?t=169813 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/AviSynth/jinc-resize/releases Plugin]&lt;br /&gt;
| innocenat&lt;br /&gt;
|-&lt;br /&gt;
| Lanczosplusv3&lt;br /&gt;
| Very slow, but high quality resizer. See [http://forum.doom9.org/showthread.php?t=136690]&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3/nnedi3_rpow2|nnedi3_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3_rpow2 is a function included in [[nnedi3]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3 Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3ocl/nnedi3x_rpow2|nnedi3x_rpow2]]&lt;br /&gt;
| Enlarge images by the powers of 2 using Neural Network New-Edge Directed Interpolation ; nnedi3x_rpow2 is a script function included in [[nnedi3ocl]].&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://avisynth.nl/index.php/nnedi3ocl Script and Plugin]&lt;br /&gt;
|SeT&lt;br /&gt;
|-&lt;br /&gt;
|[[nnedi3_resize16]]&lt;br /&gt;
|An advanced script for high quality image resizing and colorspace conversion. &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://avisynth.nl/index.php/Nnedi3_resize16 Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
| [[PointSize]]&lt;br /&gt;
| A set of [http://en.wikipedia.org/wiki/Image_scaling pixel art resizers]; Includes Scale2x/3x, LQ2x/3x/4x, HQ2x/3x/4x, xBRZ (2x to 6x). See [http://forum.doom9.org/showthread.php?t=154674 discussion].&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.dropbox.com/s/2uvflijgrngvi7x/PointSize_0.2.zip?dl=1 Plugin]&lt;br /&gt;
| `Orum&lt;br /&gt;
|-&lt;br /&gt;
| [http://svn.int64.org/viewvc/int64/resamplehq/doc/index.html ResampleHQ] &lt;br /&gt;
| ResampleHQ provides gamma-aware resizing and colorspace conversion.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/int64/files/ResampleHQ/ResampleHQ-v1.zip/download Plugin]&lt;br /&gt;
| Cory Nelson&lt;br /&gt;
|-&lt;br /&gt;
|[[Resize8]]&lt;br /&gt;
|&amp;lt;tt&amp;gt;Resize8()&amp;lt;/tt&amp;gt; works just like AviSynth's internal resizers but with some extra features. It had correct chroma placement, optional adaptive anti-ringing algorithm and few other features.  &lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://web.archive.org/web/20150911013350/http://www.nmm-hd.org/upload/get~8y1IjaaqvoI/Resize8_v1.2.avsi Script]&lt;br /&gt;
|mawen1250 &lt;br /&gt;
|-&lt;br /&gt;
|ResizeX&lt;br /&gt;
|ResizeX is a wrapper function for AviSynth's internal resizers and Dither_resize16 that corrects for the chroma shift caused by the internal resizers when they're used on horizontally subsampled chroma with MPEG2 placement.&lt;br /&gt;
|[[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://www.mediafire.com/download/lcbtb7uta4ta5pc/ResizeX_v1.0.avsi Script]&lt;br /&gt;
|Desbreko&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135735 Seamer]&lt;br /&gt;
| Seam Carving/Liquid Rescale for Content-Aware Image Resizing. See [http://en.wikipedia.org/wiki/Seam_carving wikipedia:Seam Carving]&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/Seamer/Seamer.html Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|SincResize&lt;br /&gt;
|SincResize is an experimental plugin that uses DCT to perform resizing. See [http://forum.doom9.org/showthread.php?p=953002#post953002 discussion], read on for more information.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://cafxx.strayorange.com/files/SincResize4.7z Plugin]&lt;br /&gt;
|[http://cafxx.strayorange.com/ CAFxX]&lt;br /&gt;
|-&lt;br /&gt;
| [[SimpleResize]]&lt;br /&gt;
| Resizing plugin with 4 filters: SimpleResize, WarpResize, InterlacedResize and InterlacedWarpedResize.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [{{N2Archived}}/trbarry/SimpleResize.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147117 SplineResize]&lt;br /&gt;
| SplineResize contains two kinds of spline based resizers: The first ones are the (cubic) spline based resizers from Panorama tools: Spline100Resize (using 10 sample points) and Spline144Resize (using 12 sample points) are examples. Other ones are available in AviSynth itself. The second ones are natural cubic splines that use the kernel itself as a spline.&lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.wilbertdijkhof.com/SplineResize_v02.zip Plugin]&lt;br /&gt;
| {{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth waifu2x]&lt;br /&gt;
|Single-Image Super-Resolution for anime/fan-art using Deep Convolutional Neural Networks.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
|[http://github.com/sunnyone/Waifu2xAvisynth/releases Plugin]&lt;br /&gt;
|[http://github.com/sunnyone sunnyone]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1111789#post1111789 ZoomBox]&lt;br /&gt;
| Replacement for ResizeKAR. Resizes clip Keeping the Aspect Ratio. Can set Source/Target PAR/DAR, option to zoom in/out in order to hide/show black borders.&lt;br /&gt;
| &lt;br /&gt;
| Script&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sharpeners ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aSharp]] &lt;br /&gt;
| Simple unsharp mask filter with optional adaptive sharpening. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=38436 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/asharp_5F25_dll_20030118.zip Plugin]&lt;br /&gt;
| {{Author/Marc FD}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=122443 AVSShock]&lt;br /&gt;
|This Shock Filter sharpens edges of images by applying erosions or dilations depending on the sign of the Laplacian (or the so called Haralick-Canny edge detector). &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://forum.gleitz.info/showthread.php?33105-Neues-Plugin-zum-Video-sch%E4rfen-Patent-Problem!&amp;amp;p=321585#post321585 Plugin]&lt;br /&gt;
|AMSS0815&lt;br /&gt;
|-&lt;br /&gt;
| [[aWarpSharp2]]&lt;br /&gt;
| A modern rewrite of aWarpSharp with several bugfixes and optimizations. See [http://forum.doom9.org/showthread.php?t=147285 discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://github.com/pinterf/aWarpSharp/releases Plugin]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
| [[blah]]&lt;br /&gt;
| Sharpening. See [http://forum.doom9.org/showthread.php?t=155030 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1406843 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[FineSharp]]&lt;br /&gt;
| Small and relatively fast realtime-sharpening function, designed for 1080p, or after scaling 720p -&amp;gt; 1080p during playback (to make 720p look more being like 1080p). See [http://forum.doom9.org/showthread.php?p=1569035#post1569035 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1569035#post1569035 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LimitedSharpen]]&lt;br /&gt;
| LimitedSharpen can be used like a traditional sharpener, but producing much less artifacts. It can be used as a replacement for the common &amp;quot;resize(x4)-XSharpen-resize(x1)&amp;quot; combo, with very similar results (perhaps even better) - but at least 2 times faster, since it requires much less oversampling.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/LimitedSharpenFaster.avsi Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[LSFmod]]&lt;br /&gt;
| A LimitedSharpenFaster mod with a lot of new features and optimizations. &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=142706 Script]&lt;br /&gt;
| {{Author/LaTo}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 MCLS_16]&lt;br /&gt;
|Motion Compensate Limited Sharpen 16bit&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173515 Script]&lt;br /&gt;
|Motenai Yoda&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 MedSharp]&lt;br /&gt;
|Soft thresholded median sharpening function. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=153201 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[MSharpen]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt; is a very simple masked sharpening plugin for AviSynth. This version is a reimplementation of neuron2's [http://rationalqm.us/msharpen/msharpen.html old &amp;lt;tt&amp;gt;MSharpen&amp;lt;/tt&amp;gt;] plugin. See [http://forum.doom9.org/showthread.php?t=169832 discussion].&lt;br /&gt;
| [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MSharpen Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[NonlinUSM]]&lt;br /&gt;
| Non-linear Unsharp Masking.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1555234&amp;amp;postcount=46 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[pSharpen]]&lt;br /&gt;
| Performs two-point sharpening to avoid overshoot. See [http://forum.doom9.org/showthread.php?t=172422 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172422#post1732663 Script]&lt;br /&gt;
| ilpippo80, colours&lt;br /&gt;
|-&lt;br /&gt;
|[[ReCon]]&lt;br /&gt;
|'''ReCon'''volution - makes things sharp by mixing pixels together. See [http://forum.doom9.org/showthread.php?t=153201 discussion].&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1409582#post1409582 Script]&lt;br /&gt;
|*.mp4 guy &lt;br /&gt;
|-&lt;br /&gt;
| [[SeeSaw]]&lt;br /&gt;
| SeeSaw uses a balance of denoising and sharpening to enhance a clip. The aim is to enhance weak detail without over-sharpening or creating jaggies on strong detail, and produce a result that is temporally stable without detail shimmering.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/images/SeeSaw.avs Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| SharpenComplex2&lt;br /&gt;
| Port of MPC-HC's Sharpen Complex 2 to AviSynth. Despite the name, this script is very simple, see [http://forum.doom9.org/showthread.php?t=158385 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [[SharpenComplex2_source|Script]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SSXSharpen&lt;br /&gt;
| Included in SharpTools. Sharpens the picture using [[supersampling]] techniques.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20100120201434/http://mf.creations.nl/avs/functions/SharpTools-v0.3.avs Script]&lt;br /&gt;
| {{Author/mf}}, {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SSSharp]]&lt;br /&gt;
| Also known as Super Slow Sharpen - a very slow, but high quality sharpener. See [http://forum.doom9.org/showthread.php?t=132330 discussion]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1071731 Script]&lt;br /&gt;
| *.mp4 guy&lt;br /&gt;
|-&lt;br /&gt;
| [[TUnsharp]]&lt;br /&gt;
| TUnsharp is a basic sharpening filter that uses a couple different variations of unsharp masking and allows for controlled sharpening based on edge magnitude and min/max neighborhood value clipping. See [http://forum.doom9.org/showthread.php?t=84344 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20070222162107/http://bengal.missouri.edu/~kes25c/TUnsharpv093.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnFilter]]&lt;br /&gt;
| This filter softens/sharpens a clip. It implements horizontal and vertical filters designed to (slightly) reverse previous efforts at softening or edge enhancement that are common (but ugly) in DVD mastering. See [http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=28197&amp;amp;pagenumber=3 discussion].&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/unfilter_5F25_dll_20030116.zip Plugin]&lt;br /&gt;
| {{Author/Tom Barry}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UnsharpHQ]]&lt;br /&gt;
| A strong and fast unsharp mask with some new features. See [http://forum.doom9.org/showthread.php?t=159637 discussion].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20160302123821/https://filetea.me/t1sl65PsDLsT0mXMZL0s14xEg/dl Plugin]&lt;br /&gt;
| list&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[WarpSharp]]&lt;br /&gt;
| WarpSharp contains these sharpeners: &amp;lt;tt&amp;gt;UnsharpMask, WarpSharp, Xsharpen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.dropbox.com/s/g6z1tohioqnw5b9/warpsharp_20080325.zip?dl=1 Plugin]&lt;br /&gt;
|???, {{Author/seraphy}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotation/Shear/Skew/Perspective ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[DeBarrel]]&lt;br /&gt;
| Remove barrel and pincushion distortion, where straight lines appear curved.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/DeBarrel/DeBarrel.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=152860 Defish]&lt;br /&gt;
|Barrel and pincushion distortion correction filter. [http://forum.doom9.org/showthread.php?t=127432 Old discussion]&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/defish.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Defish Different Projections]&lt;br /&gt;
|Defish with different map projections, like Lambert Cylindrical Equal Area, Mercator and Miller projections.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171922 Script]&lt;br /&gt;
|Kisa_AG&lt;br /&gt;
|-&lt;br /&gt;
| [[FTurn]]&lt;br /&gt;
| Fast implementation of [[TurnLeft]](), [[TurnRight]]() and [[Turn180]]() AviSynth functions. See [http://forum.doom9.org/showthread.php?t=168315 discussion.]&lt;br /&gt;
| [[Y8]], [[YV12]],[[YV24]]&lt;br /&gt;
| [http://github.com/tp7/fturn/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=165978 Quad]&lt;br /&gt;
|An Avisynth plugin to perform quadrilateral transformations.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/quad.zip Plugin] -- [http://forum.doom9.org/showpost.php?p=1602709&amp;amp;postcount=22 no SSE]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.html Reform]&lt;br /&gt;
| Skewed images are corrected or vice versa, useful if video is recorded with slightly incorrectly located camera. Sometimes refered to as perspective correction.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reform/Reform.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Reformer]]&lt;br /&gt;
| Perspective correction and warping.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Reformer/Reformer.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate.html Rotate]&lt;br /&gt;
| Rotate or shear on any given angle. See [http://forum.doom9.org/showthread.php?t=131307 discussion.]&lt;br /&gt;
| [[RGB32]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/rotate/rotate134.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.html Spinner]&lt;br /&gt;
| Spinner plugin rotates a frame or selected part of it about the given axis coordinates in floating point precision.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Spinner/Spinner.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166087 xyremap]&lt;br /&gt;
|xyremap is a filter for remapping pixels using formulae written in [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation].&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://horman.net/avisynth/download/xyremap0.3.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=49429 Zoom]&lt;br /&gt;
| Zoom, Pan &amp;amp; Rotate Clip. Adds alpha layer to clip.&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/zoom_5F25_dll_20050122.zip Plugin]&lt;br /&gt;
| {{Author/WarpEnterprises}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Subtitling ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AssRender&lt;br /&gt;
| Libass-based subtitle renderer. See [http://forum.doom9.org/showthread.php?t=148926 discussion]. [http://github.com/pingplug/assrender Updated version]; only source code available. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV24]], [[YV12]], [[Y8]]&lt;br /&gt;
| [http://srsfckn.biz/assrender/ C Plugin] &amp;lt;!--[http://encodan.srsfckn.biz/assrender/ C Plugin] - dead link ---&amp;gt;&lt;br /&gt;
| lachs0r, TheFluff&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/slavanap/ssifSource sub3d]&lt;br /&gt;
|Plugin for rendering subtitles on 3D video with correct depth.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[https://github.com/slavanap/ssifSource/tree/master/Sub3D Sources] [https://github.com/slavanap/ssifSource/releases Binaries][http://forum.doom9.org/showthread.php?t=173143 Discussion] &lt;br /&gt;
|slavanap&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20071025023938/http://mvideo.ddpp.net/eng/subtitleex_plugin.htm SubtitleEx]&lt;br /&gt;
| Similar to the original [[Subtitle]] function but can do more: apply text to range; effects - bold, underline, italic, center, fading, motion, blur, emboss, etc...; alpha channel. [http://hosiken.jp/dev/win/subtitleex.html Plugin update (Japanese)]&lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/subtitleex_5F25_dll_20040819.zip Plugin] / [http://avisynth.nl/users/warpenterprises/files/dvutilities_20050717.zip .chm (help)]&lt;br /&gt;
|[http://web.archive.org/web/20070821222318/http://mvideo.ddpp.net/eng/index.htm basilik]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119390 SUPtext]&lt;br /&gt;
|Overlays SUP-subtitles on a video clip.&lt;br /&gt;
|[[RGB32]], [[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7846&amp;amp;d=1196858433 Plugin]&lt;br /&gt;
|emmel&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin SupTitle]&lt;br /&gt;
| Blu-ray PGS .SUP Subtitle Renderer Plugin for AviSynth. See [http://forum.doom9.org/showthread.php?t=148167 discussion] &lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.zachsaw.com/?pg=suptitle_pgs_avisynth_plugin Plugin]&lt;br /&gt;
| {{Author/ZachSaw}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/vsfilter.htm VSFilter]&lt;br /&gt;
| Supported Subtitle Formats: VOBsub (.sub/.idx), SubStation Alpha/Advanced SubStation Alpha (.ssa/.ass), SubRip (.srt), MicroDVD (.sub), SAMI (.smi), PowerDivX (.psb), Universal Subtitle Format (.usf), Structured Subtitle Format (.ssf). See [http://en.wikipedia.org/wiki/VSFilter]&lt;br /&gt;
| &lt;br /&gt;
| [http://sourceforge.net/project/showfiles.php?group_id=205650&amp;amp;package_id=246121&amp;amp;release_id=541232 Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ VSFilterMod]&lt;br /&gt;
| VSFilterMod is modification of original VSFilter subtitle renderer by Gabest. This mod brings up new features and some minor bugfixes. See [http://forum.doom9.org/showthread.php?t=152855 discussion] and [http://code.google.com/archive/p/vsfiltermod/ Google Code Archive].&lt;br /&gt;
|&lt;br /&gt;
| [http://web.archive.org/web/20141227072702/https://code.google.com/p/vsfiltermod/ Plugin]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 xy-VSFilter]&lt;br /&gt;
|High performance VSFilter compatible subtitle filters. [http://web.archive.org/web/20151213235432/http://code.google.com/p/xy-vsfilter/ Google Code repository]&lt;br /&gt;
|&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=168282 Plugin]&lt;br /&gt;
|cyberbeing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transitions ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| DissolveAGG&lt;br /&gt;
| Wipe Transition with a soft edge. See [http://forum.doom9.org/showthread.php?t=118016 discussion]. &lt;br /&gt;
'''Note:''' There exist multiple variants of the script as the result of the interaction between authors in that discussion.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=900674#post900674 Script (v1)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152440#post1152440 Script (v2)] &lt;br /&gt;
[http://forum.doom9.org/showthread.php?p=1152632#post1152632 Script (v3)] &lt;br /&gt;
| {{Author/zemog}}, {{Author/mikeytown2}}, {{Author/Gavino}} and others&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=62277 JDL_MaskTransition]&lt;br /&gt;
| Combines two clips using the specified mask clip.  The audio tracks are blended during the transition. About any transition can be made with this function.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/stickboy/jdl-effects.avsi Script]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TransAll]]&lt;br /&gt;
| Around 150 distinct transitions can be created with this plugin. &lt;br /&gt;
| [[RGB]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.nl/users/vcmohan/TransAll/TransAll.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (Albert Gasset)&lt;br /&gt;
| Various Wipe and Random Block modes. Has 19 built in patterns or it can use an external file.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/Albert Gasset}}&lt;br /&gt;
|-&lt;br /&gt;
| Transition (shubin)&lt;br /&gt;
| Contains 2 modes: circle and line. In circle mode the area has radius R and center xCenter,yCenter. In line mode the line passes through xCenter,yCenter with slope R.&lt;br /&gt;
| &lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/#transition Plugin]&lt;br /&gt;
| {{Author/shubin}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Filters ==&lt;br /&gt;
&lt;br /&gt;
=== Debugging/Diagnostic Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| AVInfo&lt;br /&gt;
| AVIInfo gives information about the streams in the clip without loading any frames. filename can be a WAV file or an AVI file with several audio streams (it won't open AVI files with embedded subtitles though). It will return the info as a string. &lt;br /&gt;
| &lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/avinfo_5F25_dll_20050417.zip Plugin]&lt;br /&gt;
| trevlac, wilbert &lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=174797 AVSMeter]&lt;br /&gt;
| AVSMeter is a CLI (command line interface) tool which measures the speed/efficiency of Avisynth scripts and checks if Avisynth and its plugin sub-system are set up and working correctly. Documentation for usage and features is included in the distribution package.&lt;br /&gt;
|&lt;br /&gt;
| Command line executable&lt;br /&gt;
| Groucho2004&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=116949 ColorDiff]&lt;br /&gt;
|ColorDiff makes a greyscale (Y8) frame according to the input frame's pixels' &amp;quot;distance&amp;quot; from a specified color. The diff is calculated by simply getting the diff of the individual color components from the desired color's components and summing them up. Also, weights can be set for the individual diffs. Documentation is at the beginning of the source file. This is a [http://avisynth.nl/index.php/Plugins#LoadCPlugin C Plugin!]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]] &lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=7811&amp;amp;d=1196110203 C Plugin]&lt;br /&gt;
|Ignus2&lt;br /&gt;
|-&lt;br /&gt;
| [[DumpPixelValues]]&lt;br /&gt;
| Samples the colors from selected pixels for every frame in a video source and outputs the data to a text or binary file. See [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.zip Plugin]&lt;br /&gt;
| [http://www.theneitherworld.com/mcpoodle/Tools/index.html McPoodle]&lt;br /&gt;
|-&lt;br /&gt;
|[[GrainEvaluate]]&lt;br /&gt;
| A script to analyze and log the strength of grain for each frame. See [http://forum.doom9.org/showthread.php?t=167455 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
|[http://www.nmm-hd.org/upload/get~-eJfUjEXJY4/GrainEvaluate.avsi Script]&lt;br /&gt;
|{{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1462931&amp;amp;postcount=81 Glitch Analyzer]&lt;br /&gt;
| Glitch Analyzer generates a diagnostic video, then analyzes the recorded version of it, to detect swapped, dropped, or repeated fields.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1467907#post1467907 Script]&lt;br /&gt;
| jmac698&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid]]&lt;br /&gt;
| Overlays a grid, useful for pixel counting.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/Grid/Grid.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20160610124531/http://code.google.com/p/avisynthrestoration/wiki/Measure Measure]&lt;br /&gt;
| Measures luminence of greyscale bars and prints results on-screen.  Can be used to set brightness/contrast in capture settings accurately.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/lcferrum/segment-display-ocr SegmentDisplayOCR]&lt;br /&gt;
|SegmentDisplayOCR is a seven-segment display recognition filter for AviSynth. It has built in logging functionality (it will log frame recognition results) and also can be used in AviSynth conditional filters. The main purpose of this filter is to process readings of various digital instruments (e.g. digital multimeters) captured on video. So if your favourite instrument lacks interface for connecting it to PC you can capture it's readings on cam and convert them to computer readable format with SegmentDisplayOCR filter.&lt;br /&gt;
| [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://sourceforge.net/projects/segmentdisplayocr/files/SegmentDisplayOCR/ Plugin]&lt;br /&gt;
|[http://github.com/lcferrum lcferrum]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=61128 SSIM]&lt;br /&gt;
|A filter that compute an objective video quality metric between two videos. Based on SSIM work from [http://web.archive.org/web/20060515090025/http://www.cns.nyu.edu/~zwang/files/research/ssim/index.html Zhou Wang]. It has been created with the help of Mfa.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20070129114000/http://perso.orange.fr/reservoir/dl/SSIM-0.24.rar Plugin] / [http://web.archive.org/web/20070129115059/http://perso.orange.fr/reservoir/dl/SSIMSrc-0.24.rar source]&lt;br /&gt;
|[http://web.archive.org/web/20060507012947/http://perso.wanadoo.fr/reservoir/ Lefungus]&lt;br /&gt;
|-&lt;br /&gt;
| [[ShowPixelValues]]&lt;br /&gt;
| This filter displays the actual Y U and V (or R G and B) values from pixels within a frame. See [http://forum.doom9.org/showthread.php?t=64192 discussion] and [http://web.archive.org/web/20091028073306/http://geocities.com/siwalters_uk/showpixelvalues.html homepage.]&lt;br /&gt;
| [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20091028122947/http://geocities.com/siwalters_uk/showpixelvalues1.4c.zip Plugin]&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://web.archive.org/web/20151223052321/http://code.google.com/p/avisynthrestoration/wiki/Testpatterns Testpatterns]&lt;br /&gt;
| This filter creates a sinewave frequency sweep directly in YV12, useful to measuring video response.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151223052318/https://code.google.com/p/avisynthrestoration/downloads/list Script]&lt;br /&gt;
| halifaxgeorge&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/docs/english/externalfilters/tmonitor.htm TMonitor]&lt;br /&gt;
| TMonitor is a filter very similar to AVSMon. It enables monitoring of an Avisynth clip via previewing the video, viewing clip information (such as video width, height, colorspace, number of frames, audio samples, sample rate, number of audio channels, and more), and adjusting the audio delay. It also supports multiple instances per script, allowing viewing of differences between different parts of a processing chain.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TMonitorv094.zip Plugin]&lt;br /&gt;
|{{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=53238 ViewFields/UnViewFields]&lt;br /&gt;
| [http://web.archive.org/web/20140709004333/http://www.geocities.com/siwalters_uk/unviewfields.html UnViewFields], [http://web.archive.org/web/20140708181324/http://www.geocities.com/siwalters_uk/viewfields.html ViewFields]&lt;br /&gt;
| &lt;br /&gt;
| Plugin&lt;br /&gt;
| {{Author/Simon Walters}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Comptest]]&lt;br /&gt;
| The script Compressibility test can be used for a compressibility test on a clip.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[SeeTheDifference]]&lt;br /&gt;
| SeeTheDifference just makes the difference visible between an encoded and an original videoclip. So you can see what you really &amp;quot;lose&amp;quot; when encoding a video.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Edge Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[aWarpsharp2/aSobel|aSobel]]&lt;br /&gt;
| Sobel edge dectecion filter included in [[aWarpSharp2]]. &lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [[aWarpSharp2| Plugin]]&lt;br /&gt;
| {{Author/SEt}}&lt;br /&gt;
|-&lt;br /&gt;
|[[MaskTools2/Mt edge| mt_edge]]&lt;br /&gt;
| Edge detection filter included in [[MaskTools2]].&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [[MaskTools2|Plugin]]&lt;br /&gt;
| {{Author/Manao}}&lt;br /&gt;
|-&lt;br /&gt;
| [[tcanny]]&lt;br /&gt;
| Contains a canny edge detection filter and distance transform filter.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140804144614/http://bengal.missouri.edu/~kes25c/tcanny.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TCannyMod]]&lt;br /&gt;
| Canny edge detection filter for Avisynth 2.6. Reimplementation of tcanny. See [http://forum.doom9.org/showthread.php?t=168449  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TCannyMod/releases/ Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEdgeMask]]&lt;br /&gt;
| TEdgeMask creates an edge mask based off gradient vector magnitude.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20151125175557/http://bengal.missouri.edu/~kes25c/TEdgeMaskv09.zip Plugin]&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [[TEMmod]]&lt;br /&gt;
| TEdgeMask modified for Avisynth 2.6. It creates an edge mask using gradient vector magnitude. See [http://forum.doom9.org/showthread.php?t=168390  discussion]&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/chikuzen/TEMmod/releases Plugin]&lt;br /&gt;
| {{Author/Chikuzen}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Export Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters can write directly to media files. &lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135928 Immaavs]&lt;br /&gt;
| ImmaWrite uses the ImageMagick libraries to write images. Many formats are supported including animations and multipage files.&lt;br /&gt;
| &lt;br /&gt;
| [http://www.geocities.com/wilbertdijkhof/ Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=172837 TWriteAVI]&lt;br /&gt;
| Serve AVI file to program requesting it as well as write an avi file. Useful for speeding up 2 pass encodes at the cost of hard drive space. [http://forum.doom9.org/showthread.php?t=172761 Update for AviSynth 2.6]. [http://forum.doom9.org/showthread.php?p=1750415#post1750415 Usage]. [http://forum.doom9.org/showthread.php?p=1073371#post1073371 Old mod by squid_80].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/84csi0174ettu5l/TWriteAVI_dll_v2.03-20160603.zip Plugin]&amp;lt;!--[http://www.mediafire.com/download/c5iboqi43ijprap/TWriteAVI_dll_v2.02-20160106.zip older version]--&amp;gt;&lt;br /&gt;
| {{Author/tritical}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1403600 Sashimi]&lt;br /&gt;
(function &amp;quot;RawWriter&amp;quot;)&lt;br /&gt;
| Sashimi writes (and reads) almost any regular raw uncompressed data format you can define.  You'll find a fuller description under [[#Source_Filters|Source Filters]].&lt;br /&gt;
| [[RGB]], [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/soft Plugin with scripts]&lt;br /&gt;
| [http://sites.google.com/site/ourenthusiasmsasham/ PitifulInsect]&lt;br /&gt;
|-&lt;br /&gt;
| [[SoundOut]]&lt;br /&gt;
| SoundOut is a GUI driven sound file output module for AviSynth (it exports audio to several compressors).&lt;br /&gt;
| All audio.&lt;br /&gt;
| [[SoundOut|Plugin]]&lt;br /&gt;
| {{Author/Sh0dan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Import Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are used to import filters written for other audio and video packages.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?threadid=92174 FreeFrame]&lt;br /&gt;
| Allows [http://freeframe.sourceforge.net/ freeframe] filters (mostly effects) to be used directly in AviSynth.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/freeframe_5F25_dll_20050426.zip Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meta-Filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to be used with other filters, to restrict or augment their effect.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 AVSTP]&lt;br /&gt;
|A library for multithreaded plug-in development&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164407 Plugin]&lt;br /&gt;
|{{Author/cretindesalpes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 MP_Pipeline]&lt;br /&gt;
|Run parts of an AviSynth script in external processes.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163281 Plugin]&lt;br /&gt;
|[http://github.com/SAPikachu/ SAPikachu]&lt;br /&gt;
|-&lt;br /&gt;
| [[MT]]&lt;br /&gt;
| MT is a filter that enables other filters to run multithreaded. This should hopefully speed up processing on hyperthreaded/multicore processors or multiprocessor systems. See [http://forum.doom9.org/showthread.php?t=94996]&lt;br /&gt;
| Any&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/mt_20070301.zip Plugin]&lt;br /&gt;
| tsp&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]] &lt;br /&gt;
| MVTools provides filters 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. See [http://forum.doom9.org/showthread.php?t=131033]&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 SoraThread]&lt;br /&gt;
|Sora's avs multi-process/multi-thread plugin package&lt;br /&gt;
|Any&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=164073 Plugin]&lt;br /&gt;
|leiming2006&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=154886 ThreadRequest]&lt;br /&gt;
|Yet another plugin for multithread processing. [http://web.archive.org/web/20130124045626/http://lantis.homeunix.org/avisynth.shtml Archive homepage (Japanese)]&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.mediafire.com/download/4xux7d7l1u3toy8/ThreadRequest+102a.rar Plugin]&lt;br /&gt;
|lantis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipurpose Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=174433 amDCT]&lt;br /&gt;
|amDCT() is an adaptive video filter providing deblocking, sharpening, local range expansion, smoothing, and bright noise removal in a single filter that can be used on video of any level of quality. These four operations work synergistically to drastically reduce block artifacts while maintaining detail and increasing local contrast.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://sites.google.com/site/amdctfilter/ Plugin]&lt;br /&gt;
|jconklin&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=166061 HybridFuPP]&lt;br /&gt;
| An adaptive processor, allowing picture cleaning and compressibility gain. Original [http://forum.doom9.org/showthread.php?t=146632 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.mediafire.com/download/6g09aazs4z7m11a/HybridFuPP_0.992b.zip Script]&lt;br /&gt;
| Fupp&lt;br /&gt;
|-&lt;br /&gt;
| [[MaskTools2]]&lt;br /&gt;
| This plugin provides tools for the creation, enhancement and manipulation of masks for each [[YUV]] component.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]]&lt;br /&gt;
| [http://avisynth.nl/index.php/MaskTools2#Download Plugin]&lt;br /&gt;
| {{Author/Manao}}, {{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools]]&lt;br /&gt;
| This plugin provides a collection of functions for motion estimation and compensation.&lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.org.ru/mvtools/mvtools2.html Plugin]&lt;br /&gt;
| Various&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scene Change Detection ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 DBSC]&lt;br /&gt;
|A scene change detection tool set/kit/box (work-in-progress).&lt;br /&gt;
|All&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171624 Script]&lt;br /&gt;
|{{Author/StainlessS}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 EDLmaker]&lt;br /&gt;
| Simple scenechange detector that writes to EDL file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=145143 Script]&lt;br /&gt;
| Mug Funky&lt;br /&gt;
|-&lt;br /&gt;
| [[MVTools2/MSCDetection|MSCDetection]]&lt;br /&gt;
| Part of MVTools2; MSCDetection creates a scene detection mask clip from motion vectors data. &lt;br /&gt;
| [[YV12]], [[YUY2]]&lt;br /&gt;
| [[MVTools|Plugin]]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
| SCDetect&lt;br /&gt;
| Detect scene change and output scene change frames to a file.&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20140614152525/http://www.nmm-hd.org/upload/get~TfPm2QO4jbk/SCDetect_v0.3.rar Script]&lt;br /&gt;
| {{Author/06_taro}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://akuvian.org/src/avisynth/sclavc/readme.txt SceneChangeLavc]&lt;br /&gt;
| SClavc is an AviSynth plugin intended to allow access to libavcodec's scene-change metrics. See [http://akuvian.org/src/avisynth/sclavc/ homepage.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/scenechangelavc_5F25_dll_20041201.zip Plugin]&lt;br /&gt;
| {{Author/akupenguin}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvid]]&lt;br /&gt;
| SCXvid produces first pass Xvid logs from AviSynth at the equivalent of the default VFW preset. These logs are primarily intended to get scene change information from but may have other uses.&lt;br /&gt;
|  [[YV12]]&lt;br /&gt;
| [http://dl.dropbox.com/s/402hlckyn669p9n/SCXvid-1.1.rar Plugin]&lt;br /&gt;
| {{Author/Myrsloik}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SCXvidMask]]&lt;br /&gt;
| A tiny AviSynth plugin that reads an SCXvid log and creates a binary mask based on it.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://github.com/tp7/SCXvidMask/releases Plugin]&lt;br /&gt;
| {{Author/tp7}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Support filters ===&lt;br /&gt;
&lt;br /&gt;
These filters are primarily designed to augment the creation of custom script-based filters.&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[ApplyInterlacedFilter]]&lt;br /&gt;
| ApplyInterlacedFilter safely processes interlaced video with spatial and temporal filters.&lt;br /&gt;
|&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162874 ArcFuns]&lt;br /&gt;
|This plugin expands the available numerical functions with missing inverse trig functions.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=12494&amp;amp;d=1319627190 Plugin]&lt;br /&gt;
|{{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/AvsMotion#avsmotion AvsMotion]&lt;br /&gt;
|AviSynth plugin for animating clips with AAE motion tracking data.&lt;br /&gt;
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/AvsMotion/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=46506 Call]&lt;br /&gt;
| Call an external program from the script.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/call_5F25_dll_20030310.zip Plugin]&lt;br /&gt;
| Nic, DDogg&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166063 CallCmd]&lt;br /&gt;
|Plugin to execute command on selectable frames or at startup or closedown. Based on [http://forum.doom9.org/showthread.php?t=46506 Call by Nic].&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/i6m7wffyi3dftxx/CallCmd_25_dll_v1.02_20130101.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=173538 ClipBoard]&lt;br /&gt;
|Get text from Clipboard.&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.mediafire.com/download/qct5uj786ub28to/ClipBoard_25_dll_v0.01_20160530.zip Plugin]&lt;br /&gt;
|StainlessS&lt;br /&gt;
|-&lt;br /&gt;
| FrameCache&lt;br /&gt;
| Frame cache plugin. It helps greatly increase performance, especially in combination with another plugins, like SmoothDeinterlace. Usage FrameCache( [number of frames to remember], (path to log file) ). &lt;br /&gt;
| any&lt;br /&gt;
| johny5 dot coder via gmail&lt;br /&gt;
| {{Author/Evgeny}} &lt;br /&gt;
|-&lt;br /&gt;
| GetSystemEnv&lt;br /&gt;
| An AviSynth plug-in to retrieve information from the system. &lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/stickboy/GetSystemEnv.zip Plugin]&lt;br /&gt;
| {{Author/stickboy}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GRunT]]&lt;br /&gt;
| Extends AviSynth's [[Runtime_environment|Runtime Environment]], making it easier to use, especially inside script functions.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=139337 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GScript]]&lt;br /&gt;
| Extends the Avisynth scripting language to provide additional control-flow constructs: multi-line conditionals (if-then-else blocks), 'while' loops and 'for' loops.&lt;br /&gt;
| Any&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=147846 Plugin]&lt;br /&gt;
| {{Author/Gavino}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=119200 LoadDLL]&lt;br /&gt;
| Used to manually load dll files in AviSynth. Useful if a filter relies on an external dll that is not in the system PATH.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/tsp/LoadDll.zip Plugin]&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=97748 PlaneMinMax]&lt;br /&gt;
| Frame-based YV12 plane Min/Max/Avg functions without [[ConditionalFilter]].&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/planeminmax_5F25_dll_20050727.zip Plugin]&lt;br /&gt;
| Bart Silverstein&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=83451 pop]&lt;br /&gt;
|A filter to get values from variables that may not yet be initialized.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.tsp.person.dk/pop.zip Plugin] &amp;lt;!--[http://web.archive.org/web/20160224093903/http://www.tsp.person.dk/pop.zip archived]--&amp;gt;&lt;br /&gt;
|{{Author/tsp}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=165479 Rt_Stats]&lt;br /&gt;
| Compile-time/Runtime Functions.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS Plugin] [http://www.sendspace.com/folder/2mwrco mirror]&lt;br /&gt;
| StainlessS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deepcolor Filters ===&lt;br /&gt;
(also check the [[High_bit-depth_Support_with_Avisynth#Processing_High_Bit-depth_Video_with_AviSynth|High Bit-Depth]] page and the [[:Category:Deep_color_tools|Deep Color Tools]] category)&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[Dither_tools|Dither]]&lt;br /&gt;
| Generates video with up to 16 bits per component after denoising and dithers back to 8 bits for storage. Primarily written to smooth fine gradients to remove color banding during/after denoising. Can also recover high bitdepth data potentially contained in a noisy clip; dither a high bitdepth picture into a standard YV12; and perform basic operations (masking, curves...) on high bitdepth pictures, as they cannot be manipulated safely with conventional AviSynth filters.&lt;br /&gt;
| [[Planar]] colorspaces&lt;br /&gt;
| [http://forum.doom9.org/showpost.php?p=1386559&amp;amp;postcount=3 Plugin + scripts]&lt;br /&gt;
| {{Author/cretindesalpes}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Filters ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://web.archive.org/web/20110809073332/http://arenafilm.hu/alsog/anaglyph/ Analglyph]&lt;br /&gt;
| This filter produces analglyph video from a stereo pair.  Analglyph is a 3d viewing method which uses colored glasses.  The plugin supports the advanced [http://web.archive.org/web/20130706165544/www.site.uottawa.ca/~edubois/anaglyph/ Dubois] algorithm, which is able to reduce the ghosting effect that is possible in the conversion.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z Plugin] / [http://web.archive.org/web/20140412062911/http://chaosking.de/wp-content/uploads/avsfilters/Unclassified/Anaglyph___(0.85_-_2010-08-29).7z mirror]&lt;br /&gt;
| {{Author/Kertai Gábor}}&lt;br /&gt;
|-&lt;br /&gt;
| Anaglypher &lt;br /&gt;
| A plugin for combining stereopairs into single anaglyph image.&lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://shura.luberetsky.ru/anaglypher/Anaglypher.zip Plugin]&lt;br /&gt;
| [http://shura.luberetsky.ru/ Shura Luberetsky]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616 Displace / McM_2D_to_3D]&lt;br /&gt;
|Plugin and script that enables you to convert 2d to 3d stereo with bidirectional pulfrich effect + add depth to stationary objects.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=162616#post1539121 Plugin/Script]&lt;br /&gt;
|Mcmount&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=143855 fauxD]&lt;br /&gt;
|2D to stereo-3D conversion in real-time.&lt;br /&gt;
|[[RGB24]], [[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=9278&amp;amp;d=1232092731 Plugin]&lt;br /&gt;
|eslave&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/ Pantarheon 3D AviSynth Toolbox]&lt;br /&gt;
| The Toolbox contains a number of basic functions which allow you to multiplex the left and right views found in two separate videos into one video, using several of the common methods currently in use.&lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.pantarheon.org/AviSynth3DToolbox/zip/ Script]&lt;br /&gt;
| [http://www.pantarheon.org/ G. Adam Stanislav]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
|[http://avslib.sourceforge.net/ AVSLib]&lt;br /&gt;
|General purpose toolkit/extension library enhancing AviSynths ability to perform complex linear and non-linear video editing tasks. Includes support for Array containers &amp;amp; operators, debugging tools, math &amp;amp; string functions, filters and many more.&lt;br /&gt;
|&lt;br /&gt;
|[http://sourceforge.net/projects/avslib/ AVSLib]&lt;br /&gt;
|[http://gzarkadas.users.sourceforge.net/ gzarkadas]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Audio Filters ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [[AddAudio]]&lt;br /&gt;
| A function that adds silent audio to a clip. Needed for CCE 2.50 users.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[AudioGraph]]&lt;br /&gt;
| Displays the audio waveform superimposed on the video. Intended to help with editing rather than for final output. Useful for finding specific dialog or sound, and for checking A/V sync. [http://forum.doom9.org/showthread.php?t=59412 Doom9 discussion]. Ihor Bobalo added a few additional features to AudioGraph, only the source code is provided: [http://sourceforge.net/projects/audiograph/ SourceForge repository].&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]]&lt;br /&gt;
| [http://web.archive.org/web/20060517015407/http://beta.zenaria.com/kpo/avisynth/AudGraph_25.zip Plugin]&lt;br /&gt;
| Richard Ling, {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=108470 AudioLimiter]&lt;br /&gt;
| To increase volume for silent sounds a lot, to increase volume for middle-volume sounds a little and to keep hi-volume sounds untoched.&lt;br /&gt;
| N/A&lt;br /&gt;
|[http://forum.doom9.org/attachment.php?attachmentid=6586&amp;amp;d=1167241138 Plugin]&lt;br /&gt;
|dimzon&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 AudioTimeline]&lt;br /&gt;
|Displays a audio timeline track under the frame. It is especially suited for thumbsheets, where it allows to estimate the audio track of the thumbnailed clip.&lt;br /&gt;
|[[RGB24]], [[RGB32]], [[Y8]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=171813 Plugin]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
| BeFa &lt;br /&gt;
| Band Eliminate Filter for Audio. See [http://web.archive.org/web/20071105084352/http://www.geocities.com/fredthompson6/Kiraru2002/Kiraru2002sROOM.htm#Befa English documentation] (translated from the original [http://web.archive.org/web/20081122113014/http://kiraru2002.at.infoseek.co.jp/#befa Japanese documentation]).&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/befa_5F25_dll_20030924.zip Plugin]&lt;br /&gt;
| {{Author/kiraru2002}}&lt;br /&gt;
|-&lt;br /&gt;
| [[FindAudioSyncScript]]&lt;br /&gt;
| FindAudioSyncScript helps you to find the appropriate audio delays, if you have desync'ed audio.&lt;br /&gt;
| N/A&lt;br /&gt;
| Script&lt;br /&gt;
| IanB&lt;br /&gt;
|-&lt;br /&gt;
| MinMaxAudio&lt;br /&gt;
| Computes the root mean square, maximal or minimal value over all samples in all channels,or just over all samples in channel, and outputs the value (in decibels) as a float[http://forum.doom9.org/showpost.php?p=1197592&amp;amp;postcount=19]. It's a conditional audio filter, so the computation is done framewise. See [http://forum.doom9.org/showthread.php?t=127530 discussion]&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://www.wilbertdijkhof.com/MinMaxAudio_v02.zip Plugin]&lt;br /&gt;
| {{author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
|Normalize2&lt;br /&gt;
|Audio normalizing plugin. The main difference between this plugin and the built-in normalizing plugin [[Normalize]]() is that this plugin can store the peak level value in an external file and uses a lookup table to do the actual normalizing (for speed).&lt;br /&gt;
|N/A&lt;br /&gt;
|[http://sourceforge.net/projects/jorydownloader/files/Normalize2%20for%20AviSynth/Normalize%20v0.1%20for%20AviSynth%202.5/ Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/jcsston/profile/ jcsston]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=104792 Sox Audio Effect Filter]&lt;br /&gt;
| Use [http://sox.sourceforge.net/ SOX] effects within AviSynth. Most effects are supported, and multiple effects can be stacked after each other.&lt;br /&gt;
| N/A&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=761154#post761154 Plugin]&lt;br /&gt;
| {{author/Sh0dan}}&lt;br /&gt;
|-&lt;br /&gt;
|[[Spectrogram]]&lt;br /&gt;
|Linear [http://en.wikipedia.org/wiki/Spectrogram spectrogram] for AviSynth 2.6.&lt;br /&gt;
|Any&lt;br /&gt;
|[http://www.dropbox.com/s/9p2t1mv5t5yjpgd/Spectrogram_r5.7z?dl=1 Plugin]&lt;br /&gt;
|[http://github.com/innocenat innocenat]&lt;br /&gt;
|-&lt;br /&gt;
|SwitchByAudio&lt;br /&gt;
|Plugin to switch video source based on audio. See [http://forum.doom9.org/showthread.php?t=167011 discussion]&lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
|[http://www.avisynth.nl/users/vcmohan/SwitchByAudio/SwitchByAudio.zip Plugin]&lt;br /&gt;
|{{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1722472&amp;amp;postcount=20 TimeStretchPlugin]&lt;br /&gt;
|[[TimeStretch]] with multichannel support and updated SoundTouch library. &lt;br /&gt;
|N/A&lt;br /&gt;
|[http://www.wilbertdijkhof.com/TimeStretch_v258.zip Plugin]&lt;br /&gt;
|{{Author/Wilbert Dijkhof}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ViewAudio]]&lt;br /&gt;
| Includes two filters: ViewAudio and CacheAudio. &lt;br /&gt;
| [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://nullinfo.s21.xrea.com/data/ViewAudio0301.zip Plugin] &amp;lt;!--[http://www.avisynth.nl/users/warpenterprises/files/viewaudio_5F25_dll_20031103.zip Plugin]--&amp;gt;&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Waveform]]&lt;br /&gt;
| Displays audio waveforms superimposed on the video, similar to AudioGraph below but with multi-channel support and consistent support for all colourspaces. See [http://forum.doom9.org/showthread.php?t=165703 discussion]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]  &lt;br /&gt;
| [http://horman.net/avisynth/download/waveform0.3.zip Plugin]&amp;lt;!--[https://web.archive.org/web/20130413095328/http://horman.net/waveform0.2.zip archived]--&amp;gt;&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== As Yet Unclassified ==&lt;br /&gt;
&lt;br /&gt;
{{FilterTable}}&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=397426#post397426 Adjust]&lt;br /&gt;
| Generic Y-Channel mapping. Can define a function for the Y Channel. See [http://forum.doom9.org/showthread.php?p=397426 discussion.]&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/files/adjust_5F25_dll_20031110.zip Plugin]&lt;br /&gt;
| [http://avisynth.nl/users/warpenterprises/ WarpEnterprises]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=166588 Adaptive Lens Blur Repair]&lt;br /&gt;
|This function adaptively repairs video damaged by lens blur, using a frame-adaptive repair mask, a selection of sharpeners and multi-stage motion-compensated artifact removal.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=13154&amp;amp;stc=1&amp;amp;d=1354907363 Script]&lt;br /&gt;
| fvisagie&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showpost.php?p=1703332&amp;amp;postcount=172 amp]&lt;br /&gt;
|Inspired by [http://forum.doom9.org/showthread.php?t=168293 RgbAmplifier], it performs temporal smoothing, then (optionally) enhances the difference between the windowed average and the current frame.&lt;br /&gt;
| [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://horman.net/avisynth/amp.zip Plugin]&lt;br /&gt;
| {{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace AutoTraceFilter]&lt;br /&gt;
|An intentionally useless plugin that uses [http://autotrace.sourceforge.net/ AutoTrace] to trace and then resize a source video, rendering the result using GDI+.&lt;br /&gt;
|[[RGB24]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/AutoTrace Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|-&lt;br /&gt;
|[http://nutbread.github.io/ave/ ave]&lt;br /&gt;
| A set of experimental audio/video filters.&lt;br /&gt;
| [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://nutbread.github.io/ave/ Plugin]&lt;br /&gt;
| [http://github.com/nutbread nutbread]&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172698 AviSynth Shader]&lt;br /&gt;
|This plugin allows running HLSL pixel shaders within AviSynth. This gives access to various HLSL filters that haven't been programmed in AviSynth.&lt;br /&gt;
|[[RGB32]], [[YV24]], [[YV12]]&lt;br /&gt;
|[http://github.com/mysteryx93/AviSynthShader Plugin]&lt;br /&gt;
|[http://github.com/mysteryx93 MysteryX]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=675275#post675275 BeforeAfter]&lt;br /&gt;
| See the difference before and after; similar discussion [http://forum.doom9.org/showthread.php?t=98876 here]. (missing [http://www.animemusicvideos.org/forum/viewtopic.php?f=11&amp;amp;t=45223 BeforeAfterDiff] and BeforeAfterLine scripts.)&lt;br /&gt;
| any&lt;br /&gt;
| Script&lt;br /&gt;
| Corran&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=158696 ccc]&lt;br /&gt;
|A plugin specifically designed for Cross-Conversion Correction.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20150403181720/http://japland.org/ccc/ccc_v0.4a_avs.zip Plugin]&lt;br /&gt;
|Daemon404&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/tp7/CLExpr CLExpr]&lt;br /&gt;
|AviSynth Expr filter implemented in OpenCL for runtime calculation of expressions on 8 and 16-bit depths clips. Makes mt_lutxy and mt_lutxyz possible on 16-bit. More information [http://forum.doom9.org/showpost.php?p=1672638 here].&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/tp7/CLExpr/releases Plugin]&lt;br /&gt;
|{{Author/tp7}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/ColorIt.html Colorit]&lt;br /&gt;
| Color a black and white image or recolor a color image. See [http://forum.doom9.org/showthread.php?t=93990 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/ColorIt/Colorit.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| CutFrames&lt;br /&gt;
| Cut a range of frames from a single a/v clip. Opposite of Trim with extras.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=135423 Script]&lt;br /&gt;
| mikeytown2&lt;br /&gt;
|-&lt;br /&gt;
| DCT&lt;br /&gt;
| Plugin with the following functions: IDCT, IDCT2, FDCT, FDCT2. See [http://forum.doom9.org/showthread.php?p=667382#post667382 discussion]&lt;br /&gt;
| [[YUY2]]&lt;br /&gt;
| [http://alainmuchembled.free.fr/DCT.zip Plugin]&lt;br /&gt;
| lcld&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?p=1444027#post1444027 DDigit]&lt;br /&gt;
| DDigit Plugin Text Rendering Pack for Plugin writers. See [http://forum.doom9.org/showthread.php?t=156888 discussion.]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.mediafire.com/download/bfhj5crwaxbupeh/DDigitTest_25%2626_v1-06_dll_20150330-RECOMPILE.zip Plugin]&lt;br /&gt;
| {{Author/StainlessS}}&lt;br /&gt;
|- &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=80419 DeBlot]&lt;br /&gt;
| Color Blot Reduction. &lt;br /&gt;
| [[YUY2]],[[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/deblot_5F25_dll_20030628.zip Plugin]&lt;br /&gt;
| {{Author/minamina}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=95193 DeJump]&lt;br /&gt;
| This is a specific filter which might be used to stabilize some &amp;quot;jumpy&amp;quot; video sources captured from VHS. &lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
| [http://forum.doom9.org/attachment.php?attachmentid=3988&amp;amp;d=1117479069 Plugin]&lt;br /&gt;
| dinstun&lt;br /&gt;
|-&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint.html ExInpaint]&lt;br /&gt;
| Exemplar-Based Image Inpainting - removing large objects from images. &lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://avisynth.org.ru/exinpaint/exinpaint0200.zip Plugin]&lt;br /&gt;
| {{Author/Fizick}}&lt;br /&gt;
|-&lt;br /&gt;
|[[FFAvisynth]]&lt;br /&gt;
| A plugin which lets you directly use [http://en.wikipedia.org/wiki/Ffdshow ffdshow] video and audio filters from AviSynth scripts.  &lt;br /&gt;
| [[YV12]], [[YUY2]], [[RGB24]], [[RGB32]]&lt;br /&gt;
| [http://sourceforge.net/projects/ffdshow-tryout/ Plugin]&lt;br /&gt;
| Milan Cutka &lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/FLuaG FLuaG]&lt;br /&gt;
| FLuaG (Floating Lua Graphics) is an AviSynth plugin for video/audio data editing via Lua scripting. See [http://forum.doom9.org/showthread.php?t=161852 discussion] &lt;br /&gt;
| [[RGB32]]&lt;br /&gt;
| [http://github.com/Youka/FLuaG/archive/master.zip Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
| Use Avisynth to process still images.&lt;br /&gt;
| &lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=150291 FritzPhoto]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 FSubstitute]&lt;br /&gt;
|Tries to automate the task of replacing bad frames using adjacent or close-by frames.&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1600151#post1600151 Script]&lt;br /&gt;
|martin53&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=130611 GrainOptimizer]&lt;br /&gt;
|The only temporal-only grain reducer! See discussion for more information. Related topics: [http://forum.doom9.org/showthread.php?t=137117 x264: Film Grain Optimization], [http://web.archive.org/web/20090916181521/http://x264dev.blogspot.com/2008/05/film-grain-optimization.html]&lt;br /&gt;
|[[YV12]]&lt;br /&gt;
|[http://web.archive.org/web/20081228144846/http://mirror05.x264.nl/Dark/force.php?file=./GrainOptimizer_2.02.zip Plugin]&lt;br /&gt;
|Dark Shikari&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL KPassFilterCL]&lt;br /&gt;
|KPassFilterCL is a set of tools in the frequency domain.&lt;br /&gt;
|[[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
|[http://github.com/Khanattila/KPassFilterCL/releases Plugin]&lt;br /&gt;
|[http://github.com/Khanattila Khanattila ]&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Youka/LVS LVS]&lt;br /&gt;
| LVS (Lua Video Sync) is a video frameserver plugin to edit video frames with the capability of scripting language Lua + 2D image processing functionality. See [http://forum.doom9.org/showthread.php?t=167716 discussion] &lt;br /&gt;
| [[RGB32]], [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/lua-video-sync/files/ Plugin]&lt;br /&gt;
| [http://github.com/Youka Youka]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.html NeuralNet]&lt;br /&gt;
| Neural networks through back propagation learn and filter some types of noise. Classification and linear type networks are included.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/NeuralNet/NeuralNet.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
| PseudoColor &lt;br /&gt;
| This filter first converts clip to b/w, then colors it to pseudorandom colors according to brightness. See [http://forum.doom9.org/showthread.php?t=61570 discussion.]&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YV12]]&lt;br /&gt;
| [http://www.avisynth.nl/users/warpenterprises/files/pseudocolor_5F25_dll_20030919.zip Plugin]&lt;br /&gt;
| Shubin&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource QRCodeSource]&lt;br /&gt;
|AviSynth plugin to provide a means to embed QR codes in video.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://github.com/jeremypoulter/QRCodeSource/releases Plugin]&lt;br /&gt;
|[http://github.com/jeremypoulter jeremypoulter]&lt;br /&gt;
|-&lt;br /&gt;
|RemoveDeadPixels&lt;br /&gt;
|See [http://forum.doom9.org/showthread.php?p=699915#post699915 here] and [http://videoprocessing.fr.yuku.com/topic/27/Removedeadpixels here].&lt;br /&gt;
|[[YUY2]]&lt;br /&gt;
|[http://web.archive.org/web/20160610103945/http://home.arcor.de/kassandro/RemoveDeadPixels.rar Plugin]&lt;br /&gt;
|{{Author/kassandro}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172601 rgba_rpn]&lt;br /&gt;
|A filter for manipulating the pixels of [[RGB]] (and also [[YUV]]) clips using [http://en.wikipedia.org/wiki/Reverse_Polish_notation reverse Polish notation.] &lt;br /&gt;
|[[RGB32]], [[RGB24]], [[YUY2]], [[YV12]]&lt;br /&gt;
|[http://horman.net/avisynth/downloads/rgba_rpn0.1.zip Plugin]&lt;br /&gt;
|{{Author/David Horman}}&lt;br /&gt;
|-&lt;br /&gt;
| [[SegmentedAmp]] &lt;br /&gt;
| Image is segmented with watershed algorithm for smoothing and/or sharpening.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| [http://avisynth.nl/index.php/SegmentedAmp Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=172377 SmoothSkip]&lt;br /&gt;
|In tribute to tritical's awesome filter, this one tackles the inverse problem of [[TIVTC/TDecimate|TDecimate]]; allowing for addressing frames that have non-smooth, skippy motion. For source code see [http://github.com/jojje/SmoothSkip GitHub repository]. &lt;br /&gt;
|[[YUY2]], [[YV12]]&lt;br /&gt;
|[http://github.com/jojje/SmoothSkip/releases/download/v1.0.2/SmoothSkip-1.0.2.zip Plugin]&lt;br /&gt;
|[http://github.com/jojje jojje]&lt;br /&gt;
|-&lt;br /&gt;
| [[Soothe]]&lt;br /&gt;
| Lessens the temporal instability and aliasing caused by sharpening, by comparing the original and sharpened clip, leaving a smoother and slightly softer output. See [http://forum.doom9.org/showthread.php?t=99679 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://forum.doom9.org/showthread.php?t=99679 Script]&lt;br /&gt;
| {{Author/Didée}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/ Tracking]&lt;br /&gt;
| Use computer vision to track objects in the video, and produce ConditionalReader input. Demo at [http://www.youtube.com/watch?v=SQ-JtJs7US0 Youtube]. &lt;br /&gt;
| [[RGB24]]&lt;br /&gt;
| [http://sourceforge.net/projects/avisynthtrackin/files/1.1/AvisynthTrackin.1.1.binary.zip/download Plugin]&lt;br /&gt;
| [http://avisynthtrackin.sourceforge.net/ Shlomo Matichin]&lt;br /&gt;
|-&lt;br /&gt;
| UnSmooth&lt;br /&gt;
| What does it do. It amplifies noise, small detail, and artifacts. Doesn't sound very attractive, but there can still be some detail left in over smoothed encodes. See [http://forum.doom9.org/showthread.php?t=63361 discussion.]&lt;br /&gt;
| [[YV12]]&lt;br /&gt;
| [http://web.archive.org/web/20090821183550/http://mf.creations.nl/avs/functions/UnSmooth-v0.1.avs Script]&lt;br /&gt;
| {{Author/mf}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?t=163870 Watermark]&lt;br /&gt;
|Creates a transparent deformation in the video akin to a watermark. The watermark is defined by a black and white image which may be a dynamic image. The intensity of the effect is controlled by several parameters.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
|[http://forum.doom9.org/showthread.php?p=1554560#post1554560 Plugin]&lt;br /&gt;
|[http://sourceforge.net/u/phillvanleersum/profile/ DrPhill]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.html WaterShed] &lt;br /&gt;
| Assuming image grey values to be elevations, it is segmented into basins and watershed lines. Useful in certain medical image analysis and recoloring work.&lt;br /&gt;
| [[RGB32]], [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]&lt;br /&gt;
| AviSynth 2.5.8: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed.zip Plugin]&lt;br /&gt;
AviSynth 2.6.0: [http://www.avisynth.nl/users/vcmohan/WaterShed/Watershed_2_6.zip Plugin]&lt;br /&gt;
| {{Author/vcmohan}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins xvplugins]&lt;br /&gt;
|This is simply a bunch of AviSynth stuff that isn't (really) possible using plain AviSynth and instead required a plugin.&lt;br /&gt;
|[[RGB32]]&lt;br /&gt;
| [http://github.com/Xenoveritas/AviSynth-Stuff/tree/master/xvplugins Plugin]&lt;br /&gt;
| [http://github.com/Xenoveritas Xenoveritas]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:AviSynth_Usage]]&lt;br /&gt;
[[Category:External_filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/BlankClip</id>
		<title>BlankClip</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/BlankClip"/>
				<updated>2018-02-11T03:38:43Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: correction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
'''BlankClip''' produces a solid color video clip with silent audio. The ''clip'' passed as an argument is used as a ''template'' - for frame rate, image size, and so on, but the template is optional. You can specify as many clip properties explicitly as you wish. By default, '''BlankClip''' will produce a pitch-black 10 second clip; 24 fps, 640x480, RGB32, with 16 bit, 44100 Hz, mono, silent audio.&lt;br /&gt;
&lt;br /&gt;
When supplying a template, '''BlankClip''' returns a clip with [[Clip_properties|properties]] copied from that template. If the template is audio-only, you get a blank audio-only clip, and if it's video-only you get a blank video-only clip. If you start to add parameters that force a video track (i.e. {{FuncArg|width}}, {{FuncArg|height}} or {{FuncArg|pixel_type}}) or audio track (i.e. {{FuncArg|audio_rate}}, {{FuncArg|channels}} or {{FuncArg|sample_type}}), the remaining parameters for that track will be the defaults. (AviSynth v2.60)&lt;br /&gt;
&lt;br /&gt;
'''Blackness''' is an ''alias'' for '''BlankClip'''. The parameters are the same.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax and Parameters ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
'''BlankClip( [clip ''clip'', int ''length'', int ''width'', int ''height'', string ''pixel_type'','''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;''' float ''fps'', int ''fps_denominator'', int ''audio_rate'', bool ''stereo'', bool ''sixteen_bit'','''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; '''int ''color'', int ''color_yuv''] )''' ''(deprecated)''&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|BlankClip( [clip ''clip'', int ''length'', int ''width'', int ''height'', string ''pixel_type'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; float ''fps'', int ''fps_denominator'', int ''audio_rate'', int ''channels'', string ''sample_type'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int ''color'', int ''color_yuv''] )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Blackness( ...''same parameters as'' BlankClip )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|}}&lt;br /&gt;
::if supplied, the resulting clip will have the clip properties of the template, except for the properties you define explicitly. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|length|int|240}}&lt;br /&gt;
::Length of the resulting clip, in frames. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|width|int|640}}&lt;br /&gt;
:{{Par2|height|int|480}}&lt;br /&gt;
::Width and height of the resulting clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|pixel_type|string|&amp;quot;RGB32&amp;quot;}}&lt;br /&gt;
::Pixel type of the resulting clip; can be any of the following: &lt;br /&gt;
:::{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:48em&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[RGB24]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[RGB32]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YUY2]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV12]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV16]] '''*'''&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV24]] '''*'''&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV411]] '''*'''&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[Y8]] '''*'''&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;9&amp;quot; |&amp;amp;nbsp;'''*''' AviSynth v2.60&lt;br /&gt;
|}&lt;br /&gt;
::{{AvsPluscon}} these [[Avisynthplus_color_formats|color formats]] are allowed:&lt;br /&gt;
:::{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:48em&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4em&amp;quot; |''bits''&lt;br /&gt;
!RGB(A)&lt;br /&gt;
!YUV(A)444&lt;br /&gt;
!YUV(A)422&lt;br /&gt;
!YUV(A)420&lt;br /&gt;
!YUV411&lt;br /&gt;
!Y only&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |32&lt;br /&gt;
|RGBPS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |16&lt;br /&gt;
|&lt;br /&gt;
RGB48&amp;lt;br&amp;gt;&lt;br /&gt;
RGBP16&lt;br /&gt;
|YUV444P16&lt;br /&gt;
|YUV422P16&lt;br /&gt;
|YUV420P16&lt;br /&gt;
|&lt;br /&gt;
|Y16&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |14&lt;br /&gt;
|RGBP14&lt;br /&gt;
|YUV444P14&lt;br /&gt;
|YUV422P14&lt;br /&gt;
|YUV420P14&lt;br /&gt;
|&lt;br /&gt;
|Y14&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |12&lt;br /&gt;
|RGBP12&lt;br /&gt;
|YUV444P12&lt;br /&gt;
|YUV422P12&lt;br /&gt;
|YUV420P12&lt;br /&gt;
|&lt;br /&gt;
|Y12&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |10&lt;br /&gt;
|RGBP10&lt;br /&gt;
|YUV444P10&lt;br /&gt;
|YUV422P10&lt;br /&gt;
|YUV420P10&lt;br /&gt;
|&lt;br /&gt;
|Y10&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |8&lt;br /&gt;
|&lt;br /&gt;
RGB24&amp;lt;br&amp;gt;&lt;br /&gt;
RGBP&amp;lt;br&amp;gt; &lt;br /&gt;
RGBP8&lt;br /&gt;
|YV24&lt;br /&gt;
|&lt;br /&gt;
YUY2&amp;lt;br&amp;gt;&lt;br /&gt;
YV16&lt;br /&gt;
|&lt;br /&gt;
|YV411&lt;br /&gt;
|Y8&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:left; font-weight:normal&amp;quot; |''with alpha channel''&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |32&lt;br /&gt;
|RGBAPS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |16&lt;br /&gt;
|&lt;br /&gt;
RGB64&amp;lt;br&amp;gt;&lt;br /&gt;
RGBAP16&lt;br /&gt;
|YUVA444P16&lt;br /&gt;
|YUVA422P16&lt;br /&gt;
|YUVA420P16&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |14&lt;br /&gt;
|RGBAP14&lt;br /&gt;
|YUVA444P14&lt;br /&gt;
|YUVA422P14&lt;br /&gt;
|YUVA420P14&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |12&lt;br /&gt;
|RGBAP12&lt;br /&gt;
|YUVA444P12&lt;br /&gt;
|YUVA422P12&lt;br /&gt;
|YUVA420P12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |10&lt;br /&gt;
|RGBAP10&lt;br /&gt;
|YUVA444P10&lt;br /&gt;
|YUVA422P10&lt;br /&gt;
|YUVA420P10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |8&lt;br /&gt;
|style=&amp;quot;line-height:80%&amp;quot; |&lt;br /&gt;
RGB32&amp;lt;br&amp;gt;&lt;br /&gt;
RGBAP&amp;lt;br&amp;gt; &lt;br /&gt;
RGBAP8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps|float|24}}&lt;br /&gt;
::Frame rate of the resulting clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps_denominator|int|1}}&lt;br /&gt;
::Specify frame rate in ''rational'' form (numerator/denominator). For example, &amp;lt;tt&amp;gt;fps=30000,fps_denominator=1001&amp;lt;/tt&amp;gt; (approximately 29.97 fps) or &amp;lt;tt&amp;gt;fps=24000,fps_denominator=1001&amp;lt;/tt&amp;gt; (approximately 23.976 fps). &lt;br /&gt;
::''Note'' &amp;amp;ndash; if {{FuncArg|fps_denominator}} is given (even if it is &amp;quot;1&amp;quot;), {{FuncArg|fps}} is '''rounded to the nearest integer'''.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|audio_rate|int|44100}}&lt;br /&gt;
::Sample rate of the (silent) audio. &lt;br /&gt;
::''Note'' &amp;amp;ndash; &amp;lt;code&amp;gt;BlankClip(audio_rate=0)&amp;lt;/code&amp;gt; produces the same result as &amp;lt;code&amp;gt;BlankClip.[[KillAudio]]&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|channels|int|1}}&lt;br /&gt;
::Specifies the number of channels of (silent) audio.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|stereo|bool|false}}&lt;br /&gt;
::'''Deprecated:''' use {{FuncArg|channels}} instead.&lt;br /&gt;
::If true, the (silent) audio is in stereo: {{FuncArg|channels}}=2. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|sample_type|string|&amp;quot;16bit&amp;quot;}}&lt;br /&gt;
::Specifies the audio sample type. It can be ''8bit'', ''16bit'', ''24bit'', ''32bit'' or ''float''.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|sixteen_bit|bool|true}}&lt;br /&gt;
::'''Deprecated:''' use {{FuncArg|sample_type}} instead.&lt;br /&gt;
::true and false give both 16 bit, except when a template is used where a different bit is set.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|color|int|$000000}}&lt;br /&gt;
::Specifies the color of the clip, black (= $000000) by default. See [[Color_presets|color presets]] for preset color. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|color_yuv|int|}}&lt;br /&gt;
::Specifies the color of the clip using YUV values. It requires setting {{FuncArg|pixel_type}} to one of the YUV formats; otherwise it doesn't do anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 # produces a black clip (3000 frames, width 720, height 576, framerate 25),&lt;br /&gt;
 # with a silent audio track (16 bit 44.1 kHz stereo):&lt;br /&gt;
 BlankClip(length=3000, width=720, height=576, fps=25, color=$000000)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 # produces a black clip (3000 frames) with the remaining clip properties of the AVI:&lt;br /&gt;
 video = [[AviSource]](&amp;quot;E:\pdwork\DO-Heaven.AVI&amp;quot;)&lt;br /&gt;
 BlankClip(video, length=3000, color=$000000)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 # produces a black clip (3000 frames) with the remaining clip properties of the AVI:&lt;br /&gt;
 # produces a black clip (3000 frames) with the remaining clip properties of the AVI:&lt;br /&gt;
 video = AviSource(&amp;quot;E:\pdwork\DO-Heaven.AVI&amp;quot;)&lt;br /&gt;
 audio = BlankClip(video, audio_rate=48000)&lt;br /&gt;
 [[AudioDub]](video, audio)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.55&lt;br /&gt;
| Added color_yuv.&lt;br /&gt;
|- &lt;br /&gt;
| v2.58&lt;br /&gt;
| Added channels and sample_type.&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| Added pixel_type=&amp;quot;YV24&amp;quot;/&amp;quot;YV16&amp;quot;/&amp;quot;YV411&amp;quot;/&amp;quot;Y8&amp;quot;.&lt;br /&gt;
|- &lt;br /&gt;
| &lt;br /&gt;
| Supply useful defaults for new Audio/Video when using a Video/Audio only template clip.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Source filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/User:Raffriff42</id>
		<title>User:Raffriff42</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/User:Raffriff42"/>
				<updated>2018-02-11T03:37:43Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Talk]]&lt;br /&gt;
=== Subpages ===&lt;br /&gt;
:[[File:Utils-r41.avsi|'''Utils-r41.avsi''']] (a library of basic utility functions; most require AVS+)&lt;br /&gt;
:[[User:Raffriff42/Utils-r41_Quick_Reference|'''Utils-r41_Quick_Reference''']] (a quick reference page for the above)&lt;br /&gt;
&lt;br /&gt;
:[[User:Raffriff42/Wiki_notes|'''Wiki_notes''']] (useful wikicode snippets)&lt;br /&gt;
&lt;br /&gt;
:[[User:Raffriff42/sandbox]] (blank)&lt;br /&gt;
:[[User:Raffriff42/Main_Page_sandbox]] (blank)&lt;br /&gt;
&lt;br /&gt;
=== Talk ===&lt;br /&gt;
&lt;br /&gt;
==== Color Presets, Categories ====&lt;br /&gt;
I like what you did with the color presets :) - [[User:Reel.Deal|Reel.Deal]] , August 4th 2014&lt;br /&gt;
:Hi again. Please fix the categories when you have time: http://avisynth.nl/index.php/Special:WantedCategories (either create them or remove them if they are doubles). Thanks for your efforts! Btw, the complete list: http://avisynth.nl/index.php/Special:Categories [[User:Admin|Admin]] 00:35, 21 September 2014 (CEST)&lt;br /&gt;
:Please also look at http://avisynth.nl/index.php/Special:LonelyPages . These pages are not linked from anywhere. [[User:Admin|Admin]] 00:52, 21 September 2014 (CEST)&lt;br /&gt;
::Sure thing, I will look at them soon. &lt;br /&gt;
::[[User:Raffriff42|Raffriff42]] 04:54, 21 September 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Hi, can you please hold off on doing that for just a bit? A handful of those entries are mine and I would like to revise and edit a few things before it gets finalized. I already started but I need a little bit more time. [[User:Reel.Deal|Reel.Deal]] 12:12, 21 September 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
::::You are better qualified to do the Categories anyway, as it is related to the (amazing) work you've been doing lately with External Filters. I'm gonna be busy with the TODO pages for a while, and after that, or maybe before that, a little break time; I'm tired! [[User:Raffriff42|Raffriff42]] 16:12, 21 September 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Progress report: I have done some work on [[Special:Categories|Categories]], including as many [[Special:WantedCategories|Wanted Categories]] as I could fix - leaving the foreign language ones, and some others that look like Reel.Deal might be working on them. Ditto, [[Special:WantedPages|Wanted Pages]]. There remains one [[Special:WantedFiles|Wanted File]] that I cannot fix, namely [[Frebuild.avsi]]. That file seems to be lost. &lt;br /&gt;
::[[User:Raffriff42|Raffriff42]] 03:05, 15 November 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::Raffriff42, your recent changes to the templates broke some pages, take a look at [[ChromaShiftSP]], [[FTurn]], and probably more. Also the author's section in the abstract table looks off now (look at FTurn). [[User:Reel.Deal|Reel.Deal]] 05:41, 14 December 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
:::Putting the category without a line break fixes the problem, I'll try to go back and do it to all templates. [[User:Reel.Deal|Reel.Deal]] 05:53, 14 December 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
::::Ouch, so sorry about that! I should have checked! -- [[User:Raffriff42|Raffriff42]] 06:22, 14 December 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;clip.BlankClip does not work reliably here; use BlankClip(clip) instead&amp;quot;&lt;br /&gt;
Please explain. Why, when, under what circumstances? [[User:Admin|Admin]] 16:04, 10 February 2018 (CET)&lt;br /&gt;
: aaaah sorry, I can't recreate the problem now and can't find the script where I first experienced it. It was probably some error on my part. I'll remove that line right away. [[User:Raffriff42|Raffriff42]] 04:37, 11 February 2018 (CET)&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/BlankClip</id>
		<title>BlankClip</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/BlankClip"/>
				<updated>2018-02-06T00:31:36Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: notes - 'clip' arg; 'audio_rate'=0 kills audio&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
'''BlankClip''' produces a solid color video clip with silent audio. The ''clip'' passed as an argument is used as a ''template'' - for frame rate, image size, and so on, but the template is optional. You can specify as many clip properties explicitly as you wish. By default, '''BlankClip''' will produce a pitch-black 10 second clip; 24 fps, 640x480, RGB32, with 16 bit, 44100 Hz, mono, silent audio.&lt;br /&gt;
&lt;br /&gt;
When supplying a template, '''BlankClip''' returns a clip with [[Clip_properties|properties]] copied from that template. If the template is audio-only, you get a blank audio-only clip, and if it's video-only you get a blank video-only clip. If you start to add parameters that force a video track (i.e. {{FuncArg|width}}, {{FuncArg|height}} or {{FuncArg|pixel_type}}) or audio track (i.e. {{FuncArg|audio_rate}}, {{FuncArg|channels}} or {{FuncArg|sample_type}}), the remaining parameters for that track will be the defaults. (AviSynth v2.60)&lt;br /&gt;
&lt;br /&gt;
'''Blackness''' is an ''alias'' for '''BlankClip'''. The parameters are the same.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax and Parameters ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
'''BlankClip( [clip ''clip'', int ''length'', int ''width'', int ''height'', string ''pixel_type'','''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;''' float ''fps'', int ''fps_denominator'', int ''audio_rate'', bool ''stereo'', bool ''sixteen_bit'','''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; '''int ''color'', int ''color_yuv''] )''' ''(deprecated)''&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|BlankClip( [clip ''clip'', int ''length'', int ''width'', int ''height'', string ''pixel_type'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; float ''fps'', int ''fps_denominator'', int ''audio_rate'', int ''channels'', string ''sample_type'',&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int ''color'', int ''color_yuv''] )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|Blackness( ...''same parameters as'' BlankClip )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|}}&lt;br /&gt;
::if supplied, the resulting clip will have the clip properties of the template, except for the properties you define explicitly. &lt;br /&gt;
::''Note'' &amp;amp;ndash; &amp;lt;code&amp;gt;''clip''.BlankClip&amp;lt;/code&amp;gt; does not work reliably here; use &amp;lt;code&amp;gt;BlankClip(''clip'')&amp;lt;/code&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|length|int|240}}&lt;br /&gt;
::Length of the resulting clip, in frames. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|width|int|640}}&lt;br /&gt;
:{{Par2|height|int|480}}&lt;br /&gt;
::Width and height of the resulting clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|pixel_type|string|&amp;quot;RGB32&amp;quot;}}&lt;br /&gt;
::Pixel type of the resulting clip; can be any of the following: &lt;br /&gt;
:::{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:48em&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[RGB24]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[RGB32]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YUY2]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV12]]&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV16]] '''*'''&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV24]] '''*'''&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[YV411]] '''*'''&lt;br /&gt;
|style=&amp;quot;width:5em; text-align:center;&amp;quot;|[[Y8]] '''*'''&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;9&amp;quot; |&amp;amp;nbsp;'''*''' AviSynth v2.60&lt;br /&gt;
|}&lt;br /&gt;
::{{AvsPluscon}} these [[Avisynthplus_color_formats|color formats]] are allowed:&lt;br /&gt;
:::{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:48em&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4em&amp;quot; |''bits''&lt;br /&gt;
!RGB(A)&lt;br /&gt;
!YUV(A)444&lt;br /&gt;
!YUV(A)422&lt;br /&gt;
!YUV(A)420&lt;br /&gt;
!YUV411&lt;br /&gt;
!Y only&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |32&lt;br /&gt;
|RGBPS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |16&lt;br /&gt;
|&lt;br /&gt;
RGB48&amp;lt;br&amp;gt;&lt;br /&gt;
RGBP16&lt;br /&gt;
|YUV444P16&lt;br /&gt;
|YUV422P16&lt;br /&gt;
|YUV420P16&lt;br /&gt;
|&lt;br /&gt;
|Y16&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |14&lt;br /&gt;
|RGBP14&lt;br /&gt;
|YUV444P14&lt;br /&gt;
|YUV422P14&lt;br /&gt;
|YUV420P14&lt;br /&gt;
|&lt;br /&gt;
|Y14&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |12&lt;br /&gt;
|RGBP12&lt;br /&gt;
|YUV444P12&lt;br /&gt;
|YUV422P12&lt;br /&gt;
|YUV420P12&lt;br /&gt;
|&lt;br /&gt;
|Y12&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |10&lt;br /&gt;
|RGBP10&lt;br /&gt;
|YUV444P10&lt;br /&gt;
|YUV422P10&lt;br /&gt;
|YUV420P10&lt;br /&gt;
|&lt;br /&gt;
|Y10&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |8&lt;br /&gt;
|&lt;br /&gt;
RGB24&amp;lt;br&amp;gt;&lt;br /&gt;
RGBP&amp;lt;br&amp;gt; &lt;br /&gt;
RGBP8&lt;br /&gt;
|YV24&lt;br /&gt;
|&lt;br /&gt;
YUY2&amp;lt;br&amp;gt;&lt;br /&gt;
YV16&lt;br /&gt;
|&lt;br /&gt;
|YV411&lt;br /&gt;
|Y8&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:left; font-weight:normal&amp;quot; |''with alpha channel''&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |32&lt;br /&gt;
|RGBAPS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |16&lt;br /&gt;
|&lt;br /&gt;
RGB64&amp;lt;br&amp;gt;&lt;br /&gt;
RGBAP16&lt;br /&gt;
|YUVA444P16&lt;br /&gt;
|YUVA422P16&lt;br /&gt;
|YUVA420P16&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |14&lt;br /&gt;
|RGBAP14&lt;br /&gt;
|YUVA444P14&lt;br /&gt;
|YUVA422P14&lt;br /&gt;
|YUVA420P14&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |12&lt;br /&gt;
|RGBAP12&lt;br /&gt;
|YUVA444P12&lt;br /&gt;
|YUVA422P12&lt;br /&gt;
|YUVA420P12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |10&lt;br /&gt;
|RGBAP10&lt;br /&gt;
|YUVA444P10&lt;br /&gt;
|YUVA422P10&lt;br /&gt;
|YUVA420P10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |8&lt;br /&gt;
|style=&amp;quot;line-height:80%&amp;quot; |&lt;br /&gt;
RGB32&amp;lt;br&amp;gt;&lt;br /&gt;
RGBAP&amp;lt;br&amp;gt; &lt;br /&gt;
RGBAP8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps|float|24}}&lt;br /&gt;
::Frame rate of the resulting clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|fps_denominator|int|1}}&lt;br /&gt;
::Specify frame rate in ''rational'' form (numerator/denominator). For example, &amp;lt;tt&amp;gt;fps=30000,fps_denominator=1001&amp;lt;/tt&amp;gt; (approximately 29.97 fps) or &amp;lt;tt&amp;gt;fps=24000,fps_denominator=1001&amp;lt;/tt&amp;gt; (approximately 23.976 fps). &lt;br /&gt;
::''Note'' &amp;amp;ndash; if {{FuncArg|fps_denominator}} is given (even if it is &amp;quot;1&amp;quot;), {{FuncArg|fps}} is '''rounded to the nearest integer'''.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|audio_rate|int|44100}}&lt;br /&gt;
::Sample rate of the (silent) audio. &lt;br /&gt;
::''Note'' &amp;amp;ndash; &amp;lt;code&amp;gt;BlankClip(audio_rate=0)&amp;lt;/code&amp;gt; produces the same result as &amp;lt;code&amp;gt;BlankClip.[[KillAudio]]&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|channels|int|1}}&lt;br /&gt;
::Specifies the number of channels of (silent) audio.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|stereo|bool|false}}&lt;br /&gt;
::'''Deprecated:''' use {{FuncArg|channels}} instead.&lt;br /&gt;
::If true, the (silent) audio is in stereo: {{FuncArg|channels}}=2. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|sample_type|string|&amp;quot;16bit&amp;quot;}}&lt;br /&gt;
::Specifies the audio sample type. It can be ''8bit'', ''16bit'', ''24bit'', ''32bit'' or ''float''.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|sixteen_bit|bool|true}}&lt;br /&gt;
::'''Deprecated:''' use {{FuncArg|sample_type}} instead.&lt;br /&gt;
::true and false give both 16 bit, except when a template is used where a different bit is set.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|color|int|$000000}}&lt;br /&gt;
::Specifies the color of the clip, black (= $000000) by default. See [[Color_presets|color presets]] for preset color. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|color_yuv|int|}}&lt;br /&gt;
::Specifies the color of the clip using YUV values. It requires setting {{FuncArg|pixel_type}} to one of the YUV formats; otherwise it doesn't do anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 # produces a black clip (3000 frames, width 720, height 576, framerate 25),&lt;br /&gt;
 # with a silent audio track (16 bit 44.1 kHz stereo):&lt;br /&gt;
 BlankClip(length=3000, width=720, height=576, fps=25, color=$000000)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 # produces a black clip (3000 frames) with the remaining clip properties of the AVI:&lt;br /&gt;
 video = [[AviSource]](&amp;quot;E:\pdwork\DO-Heaven.AVI&amp;quot;)&lt;br /&gt;
 BlankClip(video, length=3000, color=$000000)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 # produces a black clip (3000 frames) with the remaining clip properties of the AVI:&lt;br /&gt;
 # produces a black clip (3000 frames) with the remaining clip properties of the AVI:&lt;br /&gt;
 video = AviSource(&amp;quot;E:\pdwork\DO-Heaven.AVI&amp;quot;)&lt;br /&gt;
 audio = BlankClip(video, audio_rate=48000)&lt;br /&gt;
 [[AudioDub]](video, audio)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| v2.55&lt;br /&gt;
| Added color_yuv.&lt;br /&gt;
|- &lt;br /&gt;
| v2.58&lt;br /&gt;
| Added channels and sample_type.&lt;br /&gt;
|- &lt;br /&gt;
| v2.60&lt;br /&gt;
| Added pixel_type=&amp;quot;YV24&amp;quot;/&amp;quot;YV16&amp;quot;/&amp;quot;YV411&amp;quot;/&amp;quot;Y8&amp;quot;.&lt;br /&gt;
|- &lt;br /&gt;
| &lt;br /&gt;
| Supply useful defaults for new Audio/Video when using a Video/Audio only template clip.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Source filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-01-28T14:15:43Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/File:Utils-r41.avsi</id>
		<title>File:Utils-r41.avsi</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/File:Utils-r41.avsi"/>
				<updated>2018-01-28T00:43:39Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: uploaded a new version of &amp;amp;quot;File:Utils-r41.avsi&amp;amp;quot;: bugfix; AnalyzeFmt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;library of basic utility functions; most require AVS+&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Internal_functions</id>
		<title>Internal functions</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Internal_functions"/>
				<updated>2018-01-27T00:56:40Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: better IsReallyFloat - thanx hello_hello&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;
&amp;lt;div style=&amp;quot;max-width:64em&amp;quot; &amp;gt;&lt;br /&gt;
In addition to [[Internal_filters|internal filters]] AviSynth has a fairly large number of other (non-clip) internal functions. &lt;br /&gt;
&lt;br /&gt;
The input or/and output of these functions are not clips, but some other variables which can be used in a script. &lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Short Contents:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
# [[#Boolean_functions|Boolean functions]]&lt;br /&gt;
# [[#Control_functions|Control functions]]&lt;br /&gt;
# [[#Global_options|Global options]]&lt;br /&gt;
# [[#Conversion_functions|Conversion functions]]&lt;br /&gt;
# [[#Numeric_functions|Numeric functions]]&lt;br /&gt;
# [[#Trigonometry_functions|Trigonometry functions]]&lt;br /&gt;
# [[#Bit_functions|Bit functions]]&lt;br /&gt;
# [[#Runtime_functions|Runtime functions]]&lt;br /&gt;
# [[#Script_functions|Script functions]]&lt;br /&gt;
# [[#String_functions|String functions]]&lt;br /&gt;
# [[#Version_functions|Version functions]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:4em;&amp;quot; |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolean functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These return true or false, if the condition that they test holds or not, respectively.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsBool||IsBool(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the bool type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b = false&lt;br /&gt;
 IsBool(b) = true&lt;br /&gt;
 IsBool(1 &amp;lt; 2 &amp;amp;&amp;amp; 0 == 1) = true&lt;br /&gt;
 IsBool(123) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsClip||IsClip(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the clip type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 c = [[AviSource]](...)&lt;br /&gt;
 IsClip(c) = true&lt;br /&gt;
 IsClip(&amp;quot;c&amp;quot;) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsFloat||IsFloat(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the float type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 f = [[Internal_functions/Numeric_functions|Sqrt]](2)&lt;br /&gt;
 IsFloat(f) = true&lt;br /&gt;
 IsFloat(true) = false&lt;br /&gt;
 IsFloat(&amp;quot;42.&amp;quot;) = false&lt;br /&gt;
 IsFloat(2) = true   # ''ints are considered to be floats by this function''&lt;br /&gt;
 IsReallyFloat(2) = false # see below&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: As a workaround for the issue noted above, you may use the following [[User_functions|user function]]:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|3}} &amp;gt;&lt;br /&gt;
 ## return true for floats only&lt;br /&gt;
 function IsReallyFloat(val v)&lt;br /&gt;
 {&lt;br /&gt;
     return (IsInt(v)==false) &amp;amp;&amp;amp; IsFloat(v)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsInt||IsInt(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the int type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsInt(2) = true&lt;br /&gt;
 IsInt(2.1) = false&lt;br /&gt;
 IsInt(true) = false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|IsString||IsString(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is of the string type. {{FuncArg|var}} can be any expression allowed by the [[AviSynth Syntax]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 IsString(&amp;quot;test&amp;quot;) = true&lt;br /&gt;
 IsString(2.3) = false&lt;br /&gt;
 IsString([[Internal_functions/Conversion_functions|String]](2.3)) = true&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exist||Exist(filename)}}&lt;br /&gt;
: Tests if the file specified by {{FuncArg|filename}} exists.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 filename = ...&lt;br /&gt;
 clp = Exist(filename) &lt;br /&gt;
 \ ? [[AviSource]](filename) &lt;br /&gt;
 \ : [[Internal_functions/Control_functions|Assert]](false, &amp;quot;file: &amp;quot; + filename + &amp;quot; does not exist&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Defined||Defined(var)}}&lt;br /&gt;
: Tests if {{FuncArg|var}} is defined. Can be used inside [[Script_functions]] to test if an optional argument has been given an explicit value.&lt;br /&gt;
: More formally, the function returns false if its argument (normally a function argument or variable) has the void ('undefined') type, otherwise it returns true.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 b_arg_supplied = Defined(arg)&lt;br /&gt;
 myvar = b_arg_supplied ? ... : ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FunctionExists|{{AvsPluscon}}|FunctionExists(name)}}&lt;br /&gt;
: Tests if the function or filter name is defined in the script.&lt;br /&gt;
: {{FuncArg|name}} can be any string &amp;amp;ndash; it does not need to be a [[Script_variables#Variable_Names|legal name]].&lt;br /&gt;
: ''Example'' &amp;amp;ndash; see [[#Apply|Apply]] below&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|InternalFunctionExists|{{AvsPluscon}}|InternalFunctionExists(name)}}&lt;br /&gt;
: Tests if the function, filter or [[Clip_properties|property]] name is defined natively within [[AviSynth+]].&lt;br /&gt;
:* Unlike [[#FunctionExists|FunctionExists]], returns ''false'' for [[Plugins|external plugins]] and [[User_functions|user-defined functions]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Control functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These facilitate flow of control (loading of scripts, arguments checks, global settings adjustment, etc.).&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Apply||Apply(string ''func_string'' [, arg1 [, arg2 [, ... [, arg''n'']]]] )}}&lt;br /&gt;
: Calls the function or filter {{FuncArg|func_string}} with arguments {{FuncArg|arg1}}, {{FuncArg|arg2}}, ..., {{FuncArg|arg''n''}} (as many as supplied). &lt;br /&gt;
:* This provides a way to call a function or filter '''by name''', with arguments.&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;f(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;code&amp;gt;Apply(&amp;quot;f&amp;quot;, x)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[[#Eval|Eval]](&amp;quot;f(&amp;quot; + String(x) + &amp;quot;)&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:* Note that the clip argument must be supplied explicitly - the [[Last|special variable ''Last'']] is not used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically  &lt;br /&gt;
 new_width = 352&lt;br /&gt;
 new_height = 288&lt;br /&gt;
 &lt;br /&gt;
 Apply(&amp;quot;[[BicubicResize]]&amp;quot;, Last, new_width, new_height)&lt;br /&gt;
 # Note that the clip argument must be supplied - 'Last' is not implicitly assumed&lt;br /&gt;
 &lt;br /&gt;
 ## the same action, using [[#Eval|Eval]]&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + String(new_width) + &amp;quot;,&amp;quot; + String(new_height) + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists (AviSynth 2.6)&lt;br /&gt;
 function MyFilter(clip C, string s) { &lt;br /&gt;
     return C.[[Subtitle]](&amp;quot;MyFilter: &amp;quot;+s, align=5)&lt;br /&gt;
 }&lt;br /&gt;
 ColorBars &lt;br /&gt;
 [[Control_structures|try]] {&lt;br /&gt;
     Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;)&lt;br /&gt;
 } catch (err_msg) {&lt;br /&gt;
     # (ignore)&lt;br /&gt;
 }&lt;br /&gt;
 return Last&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it exists ([[AviSynth+|AVS+]] only)&lt;br /&gt;
 ColorBars  &lt;br /&gt;
 return [[#FunctionExists|FunctionExists]](&amp;quot;MyFilter&amp;quot;) &lt;br /&gt;
 \ ? Apply(&amp;quot;MyFilter&amp;quot;, Last, &amp;quot;TEST&amp;quot;) &lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Eval||Eval(expression [, string ''name''])}}&lt;br /&gt;
: Evaluates an arbitrary {{FuncArg|expression}} and returns the result of that evaluation. '''It works exactly like [[#Import|Import]] below''', except&lt;br /&gt;
:* The expression to be evaluated comes from a string instead of a file; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are not changed;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is not changed.&lt;br /&gt;
: Argument {{FuncArg|name}} will be shown in the error message beside the script name. Both will be followed with the line number in {{FuncArg|expression}} where the error occurred.&lt;br /&gt;
&lt;br /&gt;
: Variables in your calling script are available within {{FuncArg|expression}}; [[Global|global variables]] are not required.&lt;br /&gt;
: Note '''Eval''' can return the result of ''any'' valid expression; usually a clip, but also a string, boolean etc.&lt;br /&gt;
: You can use '''Eval''' to construct and evaluate expressions dynamically inside your scripts, based on variable input data.&lt;br /&gt;
: '''Eval''' is useful as a [[Control_structures|control structure]] for creating multi-line ''block statements'' without requiring [[AviSynth%2B|AviSynth+]].&lt;br /&gt;
: '''Eval''' can be used to put aside the need to install external plugins if they are not actually used.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Building an expression dynamically &lt;br /&gt;
 ## calls [[BicubicResize]](last, 352, 288)&lt;br /&gt;
 settings = &amp;quot;352, 288&amp;quot;&lt;br /&gt;
 Eval( &amp;quot;BicubicResize(&amp;quot; + settings + &amp;quot;)&amp;quot; )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## if...else [[Control_structures|control structure]]&lt;br /&gt;
 option = true&lt;br /&gt;
 option  &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[Levels]](0, 1.2, 255, 20, 235)&lt;br /&gt;
     [[Spline36Resize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;) &lt;br /&gt;
 \ : '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     [[BicubicResize]](720, 400)&lt;br /&gt;
     [[Sharpen]](0.3)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## using a filter only if it is needed; &lt;br /&gt;
 ## in this example, [[SMDegrain]] only needs to be installed if the option is ''true''.&lt;br /&gt;
 option = false&lt;br /&gt;
 option &lt;br /&gt;
 \ ? '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     SMDegrain(tr=2, thSAD=250, contrasharp=true, refinemotion=true, lsb=true)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
 \ : Last &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## accessing script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=[[Subtitle]](&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;A&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## setting script variables&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5)&lt;br /&gt;
 '''Eval'''(&amp;quot;B = A.Invert&amp;quot;)&lt;br /&gt;
 return B ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Increment a global variable, based on a local variable&lt;br /&gt;
 Eval(&amp;quot;global my_counter = my_counter + &amp;quot; + [[#String|String]](increment)) &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## multi-line example with comment and line continuation&lt;br /&gt;
 '''Eval'''(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[BicubicResize]](352, 288)&lt;br /&gt;
 #FlipVertical&lt;br /&gt;
 Subtitle(&lt;br /&gt;
 \   &amp;quot;Width  = &amp;quot;  + [[#String|String]]([[Clip_properties|Width]]) + &amp;quot;\n&amp;quot;&lt;br /&gt;
 \ + &amp;quot;Height = &amp;quot; + String(Height)&lt;br /&gt;
 \ , align=7, lsp=0)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Empty expression &lt;br /&gt;
 ## results in error: 'Defined(u) == false'&lt;br /&gt;
 u = Eval(&amp;quot;#&amp;quot;)   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## Error reporting&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, size=Height, align=2)&lt;br /&gt;
 Eval(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;, '''&amp;quot;eval_test_1&amp;quot;''') ## name for error reporting purposes&lt;br /&gt;
 return Last&lt;br /&gt;
 &lt;br /&gt;
 ''results in the error message:''&lt;br /&gt;
 Script error: there is no function named &amp;quot;foo&amp;quot;&lt;br /&gt;
 '''(eval_test_1, line 3)'''&lt;br /&gt;
 (E:\_test.avs, line 6)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Import||Import(filename)}}&lt;br /&gt;
: Evaluates the contents of another script and returns the result of that evaluation. '''It works exactly like [[#Eval|Eval]] above''', except&lt;br /&gt;
:* The expression to be evaluated comes from a file instead of a string; &lt;br /&gt;
:* The [[#Script_functions|values of]] ''ScriptName'', ''ScriptFile'' and ''ScriptDir'' are set to the current (imported) script;&lt;br /&gt;
:* The current working directory ([[wikipedia:Working_directory|CWD]]) is [[Internal_functions#SetWorkingDir|set]] to the current (imported) script.&lt;br /&gt;
&lt;br /&gt;
:[[Script_functions|Functions]], [[Script_variables|variables]] and loaded plugins declared inside the imported script are made available to the parent script. &amp;lt;b&amp;gt;Import&amp;lt;/b&amp;gt;'s return value  can be assigned to a variable of the parent script; this is most useful when the imported script ends with a clip.&lt;br /&gt;
&lt;br /&gt;
: Typically '''Import''' is used to make library functions available to the parent script, and the return value is not used. However this is simply a convention; it is not enforced by the [[AviSynth Syntax]]. Some indicative uses of '''Import''' include:&lt;br /&gt;
:* Storing multiple script-functions, variables and global variables for reuse by scripts (creation of script libraries).&lt;br /&gt;
:* Retrieving pre-built streams.&lt;br /&gt;
:* Retrieving dynamically configured pre-built streams (the core idea is that the importing script declares some global variables which the imported script uses to configure the stream that will return).&lt;br /&gt;
:'''Note 1''': Since the contents of the imported script are evaluated at the point of invocation, it is possible by enclosing the '''Import''' call in a nested scope (for example inside a function) to make available to the importing script the functions and globals of the imported script ''without'' its script-level variables.&lt;br /&gt;
:'''Note 2''': Any script with the [[AVSI]] extension in the AviSynth Plugins folder is automatically imported. This is useful for making script functions available to any new script you create without having to copy and paste.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # ''B.avsi''&lt;br /&gt;
 A.Invert&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ColorBars&lt;br /&gt;
 A=Subtitle(&amp;quot;A&amp;quot;, align=5) ## create clip 'A'&lt;br /&gt;
 Import(&amp;quot;B.avsi&amp;quot;)&lt;br /&gt;
 return Last ## returns clip 'A' with colors inverted&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## here we do not care about the return value (''mylib.avsi'' contains only functions)&lt;br /&gt;
 Import(&amp;quot;mylib.avsi&amp;quot;)  &lt;br /&gt;
 ...&lt;br /&gt;
 ## ''mysources.avsi'' loads predetermined file names from a folder into globals&lt;br /&gt;
 okflag = Import(&amp;quot;mysources.avsi&amp;quot;)  &lt;br /&gt;
 source = okflag ? global1 + global2 + global3 : [[BlankClip]]()&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Select||Select(index, item0 [, item1 [, ...[, itemn]]])}}&lt;br /&gt;
: Returns the item selected by the {{FuncArg|index}} argument, which must be of int type (0 returns {{FuncArg|item0}}, 1 returns {{FuncArg|item1}}, ..., etc). Items can be any script [[Script_variables|variable]] or expression of any type and can even be mixed.&lt;br /&gt;
&lt;br /&gt;
:If {{FuncArg|index}} is out of range, an error is raised.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # select a clip-brush from a set of presets&lt;br /&gt;
 idx = 2&lt;br /&gt;
 brush = Select(idx, [[AviSource]](&amp;quot;round.avi&amp;quot;), &lt;br /&gt;
 \        rectangle, diagonal, diagonal.[[FlipHorizontal]])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - all branches are evaluated:&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 Select(index, &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &lt;br /&gt;
 \        Assert(false, &amp;quot;Select evaluates all branches&amp;quot;)) &lt;br /&gt;
 ## NOTE this code does not run - it throws [[#Assert|Assert]] error&lt;br /&gt;
 ## because Select evaluates all branches&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is not desired, use the [[Ternary_operator|conditional execution]] operator: &lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 index=1&lt;br /&gt;
 x = (index==0) ? &amp;quot;zero&amp;quot;&lt;br /&gt;
 \ : (index==1) ? &amp;quot;one&amp;quot;&lt;br /&gt;
 \ : (index==2) ? &amp;quot;two&amp;quot;&lt;br /&gt;
 \ : Assert(false, &amp;quot;index out of range&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Default||Default(x, d)}}&lt;br /&gt;
: Returns {{FuncArg|x}} if '''Defined'''(x) is true, {{FuncArg|d}} otherwise. {{FuncArg|x}} must either be a function's argument or an already declared script variable (ie a variable which has been assigned a value) else an error will occur.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Assert||Assert(condition [, err_msg])}}&lt;br /&gt;
: Does nothing if {{FuncArg|condition}} is true; throws an error, immediately terminating script execution, if {{FuncArg|condition}} is false. In the later case {{FuncArg|err_msg}}, if supplied, is presented to the user through a dialog box; else the standard message &amp;quot;Assert: assertion failed&amp;quot; shows up.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function myfunc(clip c, ..., int &amp;quot;strength&amp;quot;) {&lt;br /&gt;
     ...&lt;br /&gt;
     strength = Default(strength, 4) # if not supplied make it 4&lt;br /&gt;
     Assert(strength &amp;gt; 0, &amp;quot;'strength' must be positive&amp;quot;)&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|NOP||NOP()}}&lt;br /&gt;
: This is a no-operation function provided mainly for conditional execution with non-return value items such as [[Import]], when no &amp;quot;else&amp;quot; condition is desired. That is, use it whenever the [[AviSynth Syntax]] requires an operation (such as with the ?: [[Operators#For_Booleans|operator]]) but your script does not need one.&lt;br /&gt;
: Return value: 0 (int type).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 preset = want_presets ? [[AviSource]](&amp;quot;c:\presets\any.avi&amp;quot;) : NOP&lt;br /&gt;
 ... &lt;br /&gt;
 loadlib ? [[Import]](&amp;quot;my_useful_functions.avs&amp;quot;) : NOP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Undefined|v2.60|Undefined()}}&lt;br /&gt;
: Returns the undefined state.&lt;br /&gt;
: It's the state for which '''Defined'''() returns false.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 x = Undefined()&lt;br /&gt;
 Defined(x) # == false&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global Options ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{ScriptFunctionH5|SetMemoryMax||SetMemoryMax(amount)}}&lt;br /&gt;
: Sets the maximum memory that AviSynth uses (in MB) to the value of {{FuncArg|amount}}. Setting to zero just returns the current Memory Max value. In the 2.5 series the default Memory Max value is 25% of the free physical memory, with a minimum of 16MB.&lt;br /&gt;
: The default Memory Max is also limited to 512MB.&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; &amp;lt;!-- width=50% --&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | Free memory&lt;br /&gt;
 | &amp;lt;64&lt;br /&gt;
 | 128&lt;br /&gt;
 | 256&lt;br /&gt;
 | 512&lt;br /&gt;
 | 1024&lt;br /&gt;
 | 2048&lt;br /&gt;
 | 3072&lt;br /&gt;
 |-&lt;br /&gt;
 | Default Max&lt;br /&gt;
 | 16&lt;br /&gt;
 | 32&lt;br /&gt;
 | 64&lt;br /&gt;
 | 192&lt;br /&gt;
 | 448&lt;br /&gt;
 | 512&lt;br /&gt;
 | 512&lt;br /&gt;
 |}&lt;br /&gt;
: In some versions there is a default setting of 5MB, which is quite low. If you encounter problems (e.g. low speed) try to set this values to at least 32MB. Too high values can result in crashes because of 2GB address space limit.&lt;br /&gt;
: Return value: Actual MemoryMax value set.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetMemoryMax(128)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetWorkingDir||SetWorkingDir(path)}}&lt;br /&gt;
: Sets the default directory for AviSynth to the {{FuncArg|path}} argument.&lt;br /&gt;
: This is primarily for easy loading of source clips, [[Import|importing]] scripts, etc. It does not affect plugins' autoloading. &lt;br /&gt;
: Return value is 0 if successful, -1 otherwise.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 SetWorkingDir(&amp;quot;c:\my_presets&amp;quot;)&lt;br /&gt;
 [[AviSource]](&amp;quot;border_mask.avi&amp;quot;)  # this loads c:\my_presets\border_mask.avi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetPlanarLegacyAlignment||SetPlanarLegacyAlignment(mode)}}&lt;br /&gt;
: Set alignment mode for [[planar]] frames. {{FuncArg|mode}} can either be true or false.&lt;br /&gt;
: Some older [[External_plugins|plugins]] illegally assume the layout of video frames in memory. This special filter forces the memory layout of planar frames to be compatible with prior versions of AviSynth. The filter works on the [[The_script_execution_model/Evaluation_of_runtime_scripts|GetFrame]]() call stack, so it effects filters '''before''' it in the script.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Example : Using an older version of Mpeg2Source() (1.10 or older):&lt;br /&gt;
 &lt;br /&gt;
 LoadPlugin(&amp;quot;...\Mpeg2Decode.dll&amp;quot;)&lt;br /&gt;
 Mpeg2Source(&amp;quot;test.d2v&amp;quot;)         # A plugin that illegally assumes the layout of memory&lt;br /&gt;
 SetPlanarLegacyAlignment(true)  # Set legacy memory alignment for prior statements&lt;br /&gt;
 [[Convert|ConvertToYUY2]]()     # Statements through to the end of the script have&lt;br /&gt;
 ...                             # advanced memory alignment.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AllowFloatAudio||global OPT_AllowFloatAudio &amp;amp;#61; true ## default false}}&lt;br /&gt;
: [[Float]] audio is converted to 16 bit when [[Frameserver|frameserving]] through [[ACM]], unless [[Internal_functions#OPT_AllowFloatAudio|OPT_AllowFloatAudio]] is set to true (this option enables WAVE_FORMAT_IEEE_FLOAT audio output&amp;lt;sup&amp;gt;[http://forum.doom9.org/showthread.php?t=109608]&amp;lt;/sup&amp;gt;). In that case the audio is kept as it is. When accessing AviSynth directly (like MeGUI, BeHappy or ffmpeg do for example), there is no automatic conversion.&lt;br /&gt;
&lt;br /&gt;
:The automatic conversion is done for clients that cannot handle [[Float]] audio (in the old days most of them couldn't). Note conversion takes place ''after'' the script processing is finished. [[Float]] audio is always allowed within the script.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_UseWaveExtensible||global OPT_UseWaveExtensible &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables WAVE_FORMAT_EXTENSIBLE audio output. The default is WAVE_FORMAT_EX.&lt;br /&gt;
: '''Note:''' The default DirectShow component for .AVS files, &amp;quot;AVI/WAV File Source&amp;quot;, does not correctly implement WAVE_FORMAT_EXTENSIBLE processing, so many application may not be able to detect the audio track. There are third party DirectShow readers that do work correctly. Intermediate work files written using the AVIFile interface for later DirectShow processing will work correctly if they use the DirectShow &amp;quot;File Source (async)&amp;quot; component or equivalent. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_dwChannelMask|v2.60|global OPT_dwChannelMask(int v)}}&lt;br /&gt;
: This option enables you to set ChannelMask. It overrides WAVEFORMATEXTENSIBLE.dwChannelMask&amp;lt;sup&amp;gt;[[http://wiki.multimedia.cx/index.php?title=WAVEFORMATEXTENSIBLE]&amp;lt;/sup&amp;gt; which is set according to this table&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 0x00004, // 1   -- -- Cf&lt;br /&gt;
 0x00003, // 2   Lf Rf&lt;br /&gt;
 0x00007, // 3   Lf Rf Cf&lt;br /&gt;
 0x00033, // 4   Lf Rf -- -- Lr Rr&lt;br /&gt;
 0x00037, // 5   Lf Rf Cf -- Lr Rr&lt;br /&gt;
 0x0003F, // 5.1 Lf Rf Cf Sw Lr Rr&lt;br /&gt;
 0x0013F, // 6.1 Lf Rf Cf Sw Lr Rr -- -- Cr&lt;br /&gt;
 0x0063F, // 7.1 Lf Rf Cf Sw Lr Rr -- -- -- Ls Rs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_AVIPadScanlines|v2.60|global OPT_AVIPadScanlines &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables DWORD aligned planar padding. Default is packed aligned planar padding. See [[AVIFile output emulation|memory alignment used in the AVIFile output emulation]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_VDubPlanarHack|v2.60|global OPT_VDubPlanarHack &amp;amp;#61; true ## default false}}&lt;br /&gt;
: This option enables flipped YV24 and YV16 chroma planes. This is an hack for early versions of Virtualdub with YV24/YV16 support. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_V210|{{AvsPluscon}}|global OPT_Enable_V210 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, [[Frameserver|Frameserve]] interleaved V210 instead of planar P210. (VfW)&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
{{BoldColor|black|100|§}} ''VfW'' here means [[wikipedia:Video_for_Windows|Video For Windows]] clients such as VirtualDub are affected, but not other clients such as ffmpeg.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_10|{{AvsPluscon}}|global OPT_Enable_Y3_10_10 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 10bit YUV422, set the [[FourCC]] to Y3[10][10] ('Y', '3', 10, 10) instead of P210  ('P', '2', '1', '0'). (VfW) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_Y3_10_16|{{AvsPluscon}}|global OPT_Enable_Y3_10_16 &amp;amp;#61; true ## default false}}&lt;br /&gt;
: For 16bit YUV422, use Y3[10][16] instead of P216 (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_b64a|{{AvsPluscon}}|global OPT_Enable_b64a &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Use b64a instead of BRA[64] (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|OPT_Enable_PlanarToPackedRGB|{{AvsPluscon}}|global OPT_Enable_PlanarToPackedRGB &amp;amp;#61; true ## default false}}&lt;br /&gt;
: Convert Planar RGB to packed RGB (VfW)&lt;br /&gt;
:[[TODO]] not working?&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conversion functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These convert between different types.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Value||Value(string)}}&lt;br /&gt;
: Converts a decimal string to its associated numeric value.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Value (&amp;quot;-2.7&amp;quot;) = -2.7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|HexValue||HexValue(string)}}&lt;br /&gt;
: Converts a hexadecimal string to its associated numeric value. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 HexValue (&amp;quot;FF00&amp;quot;) = 65280&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Hex|v2.60|Hex(int)}}&lt;br /&gt;
: Converts a numerical value to its hexadecimal value. See [[Colors]] for more information on specifying colors.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Hex (10824234) = &amp;quot;A52A2A&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|String||String(var [, string format_string])}}&lt;br /&gt;
: Converts a variable to a string. ''String'' arguments are passed along unchanged; ''bools'' are converted to &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;; numbers are formatted as described below; other [[Script_variables#Variable_Types|variable types]] (''clip'', ''val'') are converted to the empty string. &lt;br /&gt;
:The syntax of {{FuncArg|format_string}} is as follows:&lt;br /&gt;
::&amp;lt;code&amp;gt;'''%'''[flags][width][.precision]'''f'''&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;i&amp;gt;the leading &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; and trailing &amp;lt;/i&amp;gt;'&amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt;'&amp;lt;i&amp;gt; are required.&amp;lt;/i&amp;gt;&lt;br /&gt;
:The parts of {{FuncArg|format_string}} are:&lt;br /&gt;
:; ''flags'' &lt;br /&gt;
::{| class=wikitable&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;&lt;br /&gt;
|left align (right align by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the +/- sign (show only '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;' by default)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|pad (see ''width'') with leading zeroes (pad with spaces by default)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;amp;nbsp;'&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;'&amp;amp;nbsp;&lt;br /&gt;
|print a blank instead of a '&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;'&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;&lt;br /&gt;
|always print the decimal point (dropped by default if there are no decimal digits)&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
:; ''width''&lt;br /&gt;
:: the minimum width (the string is never truncated if it is wider than ''width'')&lt;br /&gt;
:; ''precision''&lt;br /&gt;
:: the number of decimal digits&lt;br /&gt;
: You can also put arbitrary text around {{FuncArg|format_string}}, similar to the C-language [http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm sprintf] function.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|62|2}} &amp;gt;&lt;br /&gt;
 Subtitle( String(1.23) )                    # '1.230000' (six decimals by default for floats)&lt;br /&gt;
 Subtitle( String(123) )                     # '123'      (no decimals by default for ints)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.2f&amp;quot; ))           # '1.23'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%0.1f&amp;quot; ))           # '1.2'&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%5.1f&amp;quot;) )           # '  1.2'    (padded to 5 characters wide)&lt;br /&gt;
 Subtitle( String(1.23, &amp;quot;%1.3f&amp;quot;) )           # '1.230'    (3 decimals; add trailing zeroes)&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.0f&amp;quot;) )            # '123'      (no decimals for precision=0)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%''#''0.0f&amp;quot;) )           # '123.'     ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%0.2f&amp;quot;) )            # '123.00'   (2 decimals: add trailing zeroes)&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%5.0f&amp;quot;) )            # '  123'    (padded to 5 characters wide using ' ')&lt;br /&gt;
 Subtitle( String(123, &amp;quot;%05.0f&amp;quot;) )           # '00123'    (padded to 5 characters wide using '0')&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.0f&amp;quot;) )          # 'PI=3'     (text around format_string)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%''#''0.0f&amp;quot;) )         # 'PI=3.'    ('#' flag: always show decimal point)&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%2.0f&amp;quot;) )          # 'PI= 3'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%3.2f&amp;quot;) )          # 'PI=3.14'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%0.5f&amp;quot;) )          # 'PI=3.14159'&lt;br /&gt;
 Subtitle( String(PI, &amp;quot;PI=%6.3f&amp;quot;) )          # 'PI= 3.142'&lt;br /&gt;
 &lt;br /&gt;
 Subtitle( String(32, &amp;quot;%0.0f&amp;quot;) )             # '32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%3.0f&amp;quot;) )             # ' 32'&lt;br /&gt;
 Subtitle( String(32, &amp;quot;%8.0f&amp;quot;) )             # '      32'&lt;br /&gt;
 &lt;br /&gt;
 ## arbitrary text around format_string:&lt;br /&gt;
 Subtitle( String(Last.Height, &amp;quot;Clip height is %0.0f&amp;quot;) ) # 'Clip height is 480'&lt;br /&gt;
 ## same output as above but using string concatenation:&lt;br /&gt;
 Subtitle( &amp;quot;Clip height is &amp;quot; + String(Last.Height) )&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numeric functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common mathematical operations on numeric variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Max||Max(float, float [, ...])}}&lt;br /&gt;
: Returns the maximum value of a set of numbers.&lt;br /&gt;
: If all the values are of type Int, the result is an Int. If any of the values are of type Float, the result is a Float.&lt;br /&gt;
: This may cause an unexpected result when an Int value greater than 16777216 is mixed with Float values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Max (1, 2) = 2&lt;br /&gt;
 Max (5, 3.0, 2) = 5.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Min||Min(float, float [, ...])}}&lt;br /&gt;
: Returns the minimum value of a set of numbers.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Min (1, 2) = 1&lt;br /&gt;
 Min (5, 3.0, 2) = 2.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MulDiv||MulDiv(int, int, int)}}&lt;br /&gt;
: Multiplies two ints (m, n) and divides the product by a third (d) in a single operation, with 64 bit intermediate result. The actual equation used is &amp;lt;tt&amp;gt; (m * n + d / 2) / d &amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MulDiv (1, 1, 2) = 1&lt;br /&gt;
 MulDiv (2, 3, 2) = 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Floor||Floor(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round down on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Floor(1.2) = 1&lt;br /&gt;
 Floor(1.6) = 1&lt;br /&gt;
 Floor(-1.2) = -2&lt;br /&gt;
 Floor(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ceil||Ceil(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round up on any fractional amount).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ceil(1.2) = 2&lt;br /&gt;
 Ceil(1.6) = 2&lt;br /&gt;
 Ceil(-1.2) = -1&lt;br /&gt;
 Ceil(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Round||Round(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round off to nearest integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Round(1.2) = 1&lt;br /&gt;
 Round(1.6) = 2&lt;br /&gt;
 Round(-1.2) = -1&lt;br /&gt;
 Round(-1.6) = -2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Int||Int(float)}}&lt;br /&gt;
: Converts from single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value to int (round towards zero).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Int(1.2) = 1&lt;br /&gt;
 Int(1.6) = 1&lt;br /&gt;
 Int(-1.2) = -1&lt;br /&gt;
 Int(-1.6) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Float||Float(int)}}&lt;br /&gt;
: Converts int to single-precision, [http://en.wikipedia.org/wiki/Floating_point floating-point] value. Integer values that require more than 24-bits to be represented will have their lower 8-bits truncated yielding unexpected values.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Float(4) = 4.0&lt;br /&gt;
 Float(4) / 3 = 1.333 (while 4 / 3 = 1 , due to integer division)&lt;br /&gt;
 Float(123456789) = 123456792.0 (error = -3, 0.000002%)&lt;br /&gt;
 Float(1234567890) = 1234567936.0 (error = -46, 0.000004%)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Fmod|v2.60|Fmod(float, float)}}&lt;br /&gt;
: Returns the modulo of the argument. Output is float.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Fmod(3.5, 0.5) = 0 (since 3.5 - 7*0.5 = 0)&lt;br /&gt;
 Fmod(3.5, 1.0) = 0.5 (since 3.5 - 3*1.0 = 0.5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pi||Pi()}}&lt;br /&gt;
: Returns the value of the {{BoldColor|black|110|π}} constant (the ratio of a circle's circumference to its diameter).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 d = Pi()    # d == 3.141592653&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Exp||Exp(float)}}&lt;br /&gt;
: Returns the natural (base-e) exponent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Exp(1) = 2.7182818&lt;br /&gt;
 Exp(0) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log||Log(float)}}&lt;br /&gt;
: Returns the natural (base-e) logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log(1) = 0.0&lt;br /&gt;
 Log(10) = 2.30259&lt;br /&gt;
 Log(Exp(1)) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Log10|v2.60|Log10(float)}}&lt;br /&gt;
: Returns the common logarithm of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Log10(1.0) = 0&lt;br /&gt;
 Log10(10.0) = 1.0&lt;br /&gt;
 Log10(2.0) = 0.3010299957&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Pow||Pow(float base, float power)}}&lt;br /&gt;
: Returns {{FuncArg|base}} raised to a {{FuncArg|power}}.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Pow(2, 3) = 8&lt;br /&gt;
 Pow(3, 2) = 9&lt;br /&gt;
 Pow(3.45, 1.75) = 8.7334&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sqrt||Sqrt(float)}}&lt;br /&gt;
: Returns the square root of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sqrt(1) = 1.0&lt;br /&gt;
 Sqrt(2) = 1.4142&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Abs||Abs(float or int)}}&lt;br /&gt;
: Returns the absolute value of its argument (returns float for float, integer for integer).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Abs(-3.8) = 3.8&lt;br /&gt;
 Abs(-4) = 4&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sign||Sign(float)}}&lt;br /&gt;
: Returns the sign of the value passed as argument (1, 0 or -1).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sign(-3.5) = -1&lt;br /&gt;
 Sign(3.5) = 1&lt;br /&gt;
 Sign(0) = 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Frac||Frac(float)}}&lt;br /&gt;
: Returns the fractional portion of the value provided.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Frac(3.7) = 0.7&lt;br /&gt;
 Frac(-1.8) = -0.8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Rand||Rand([int max] [, bool scale] [, bool seed])}}&lt;br /&gt;
: Returns a random integer value. All parameters are optional. &lt;br /&gt;
:;max&lt;br /&gt;
::sets the maximum value+1 (default 32768) and can be set negative for negative results. It operates either in scaled or modulus mode (default {{FuncArg|scale}}=true only if [[#Abs|Abs]]({{FuncArg|max}}) &amp;gt; 32768, false otherwise). &lt;br /&gt;
:;scale&lt;br /&gt;
::When true, ''scales'' the internal random number generator value to the maximum value, while ''modulus mode'' ({{FuncArg|scale}}=false) uses the remainder from an integer divide of the random generator value by the maximum. Modulus mode is recommended for smaller maximums. &lt;br /&gt;
:;seed&lt;br /&gt;
::When true, seeds the random number generator with the current time. {{FuncArg|seed}} defaults to false and probably isn't necessary, although it's there just in case. &lt;br /&gt;
: Typically, this function would be used with the [[#Select|'''Select''']] function for random clips. &lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Select(Rand(5), clip1, clip2, clip3, clip4, clip5)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Spline||Spline(float X, x1, y1, x2, y2, .... [, bool cubic])}}&lt;br /&gt;
: Interpolates the Y value at point X using the control points {{FuncArg|x1}}/{{FuncArg|y1}}, ... There have to be at least 2 x/y-pairs. The interpolation can be {{FuncArg|cubic}} (the result is a spline) or linear (the result is a polygon). Default is cubic.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5&lt;br /&gt;
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Continued Numerator, Denominator =====&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedNumerator|v2.60|ContinuedNumerator(int, int, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(float, int limit)}}&lt;br /&gt;
{{ScriptFunctionCode|ContinuedDenominator|v2.60|ContinuedDenominator(int, int, int limit)}}&lt;br /&gt;
: The rational pair ('''ContinuedNumerator''', '''ContinuedDenominator''') returned has the smallest possible denominator such that the absolute error is less than 1/{{FuncArg|limit}}. More information can be found on [http://en.wikipedia.org/wiki/Continued_fraction wikipedia].&lt;br /&gt;
: If {{FuncArg|limit}} is not specified in the Float case the rational pair returned is to the limit of the single precision floating point value. Thus (float)((double)Num/(double)Den) == V.&lt;br /&gt;
: In the Int case if {{FuncArg|limit}} is not specified then the normalized original values will be returned, i.e. reduced by the ''GCD'' (greatest common divisor).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ContinuedNumerator(PI(), limit=5000]) = 355&lt;br /&gt;
 ContinuedDenominator(PI(), limit=5000) = 113&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(PI(), limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(PI(), limit=50) = 7&lt;br /&gt;
 &lt;br /&gt;
 ContinuedNumerator(355, 113, limit=50]) = 22&lt;br /&gt;
 ContinuedDenominator(355, 113, limit=50) = 7&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trigonometry functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: relationships involving lengths and angles of triangles. &lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sin||Sin(float)}}&lt;br /&gt;
: Returns the sine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sin(Pi()/4) = 0.707&lt;br /&gt;
 Sin(Pi()/2) = 1.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cos||Cos(float)}}&lt;br /&gt;
: Returns the cosine of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cos(Pi()/4) = 0.707&lt;br /&gt;
 Cos(Pi()/2) = 0.0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tan|v2.60|Tan(float)}}&lt;br /&gt;
: Returns the tangent of the argument (assumes it is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tan(Pi/4) = 1.0&lt;br /&gt;
 Tan(Pi/2) = not defined&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: 32 bit IEEE floats do not have sufficient resolution to exactly represent&lt;br /&gt;
: pi/2 so AviSynth returns a large positive number for the value slightly less&lt;br /&gt;
: than pi/2 and a large negative value for the next possible value which is&lt;br /&gt;
: slightly greater than pi/2.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Asin|v2.60|Asin(float)}}&lt;br /&gt;
: Returns the inverse of the sine of the argument (output is radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Asin(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Asin(1.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Acos|v2.60|Acos(float)}}&lt;br /&gt;
: Returns the inverse of the cosine of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Acos(0.707) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Acos(0.0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan|v2.60|Atan(float)}}&lt;br /&gt;
: Returns the inverse of the tangent of the argument (output is in radians).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan(0.707) = 0.6154085176&lt;br /&gt;
 Atan(1.0) = 0.7853981634 (~ Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Atan2|v2.60|Atan2(float, float)}}&lt;br /&gt;
: Returns the angle between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. Output is in radians. See [http://en.wikipedia.org/wiki/Atan2 wikipedia] for more information.&lt;br /&gt;
: y is the first argument and x is the second argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Atan2(1.0, 0) = 1.570796327 (~ Pi/2)&lt;br /&gt;
 Atan2(1.0, 1.0) = 0.7852471634 (~ Pi/4)&lt;br /&gt;
 Atan2(-1.0, -1.0) = -2.356194490 (~ -3Pi/4)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Sinh|v2.60|Sinh(float)}}&lt;br /&gt;
: Returns the hyperbolic sine of the argument. See [http://en.wikipedia.org/wiki/Hyperbolic_function wikipedia] for more information.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Sinh(2.0) = 3.626860408&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Cosh|v2.60|Cosh(float)}}&lt;br /&gt;
: Returns the hyperbolic cosine of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Cosh(2.0) = 3.762195691&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Tanh|v2.60|Tanh(float)}}&lt;br /&gt;
: Returns the hyperbolic tangent of the argument.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Tanh(2.0) = 0.9640275801&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bit functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: The functions are ''bitwise operators''. They manipulate individual bits within integer variables. This means that their arguments (being integers) are converted to binary numbers, the operation is performed on their bits, and the resulting binary number is converted back again.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitAnd|v2.60|BitAnd(int, int)}}&lt;br /&gt;
: Returns the bitwise AND (sets bit to 1 if both bits are 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitAnd(5, 6) = 4 # since 5 = 101, 6 = 110, and 101&amp;amp;110 = 100&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitNot|v2.60|BitNot(int)}}&lt;br /&gt;
: Returns the bit-inversion (sets bit to 1 if bit is 0 and vice-versa).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitNOT(5) = -6 &lt;br /&gt;
 # since  5 = 101,  &lt;br /&gt;
 # and ~101 = 1111 1111 1111 1111 1111 1111 1111 1010 = -6&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: 1111 1111 1111 1111 1111 1111 1111 1010 &lt;br /&gt;
::= (2^32-1)-2^0-2^2 = 2^32-(1+2^0+2^2) &lt;br /&gt;
::= (signed) -(1+2^0+2^2) = -6&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitOr|v2.60|BitOr(int, int)}}&lt;br /&gt;
: Returns the bitwise inclusive OR (sets bit to 1 if one of the bits (or both) is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitOr(5, 6) = 7 # since 5 = 101, 6 = 110, and 101|110 = 111&lt;br /&gt;
 BitOr(4, 2) = 6 # since 4 = 100, 2 = 010, and 100|010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitXor|v2.60|BitXor(int, int)}}&lt;br /&gt;
: Returns the bitwise exclusive OR (sets bit to 1 if exactly one of the bits is 1 and sets bit to 0 otherwise).&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 BitXor(5, 6) = 3 # since 5 = 101, 6 = 110, and 101^110 = 011&lt;br /&gt;
 BitXor(4, 2) = 6 # since 4 = 100, 2 = 010, and 100^010 = 110&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLShift|v2.60|BitLShift(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShl|v2.60|BitShl(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSal|v2.60|BitSal(int, int)}}&lt;br /&gt;
: Shift the bits of a number to the left.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number 5 two bits to the left:&lt;br /&gt;
 BitLShift(5, 2) = 20 (since 101 &amp;lt;&amp;lt; 2 = 10100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftA|v2.60|BitRShiftA(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftS|v2.60|BitRShiftS(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitSar|v2.60|BitSar(int, int)}}&lt;br /&gt;
: Shift the bits of an integer to the right. (Arithmetic, Sign bit fill, Right Shift)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as signed:&lt;br /&gt;
 BitRShiftA(-42, 1) = -21 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1  &lt;br /&gt;
 #      = 1111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit shift right, unsigned =====&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftL|v2.60|BitRShiftL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRShiftU|v2.60|BitRShiftU(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitShr|v2.60|BitShr(int, int)}}&lt;br /&gt;
: Shift the bits of an unsigned integer to the right. (Logical, zero fill, Right Shift)&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Shifts the bits of the number -42 one bit to the right, treating it as unsigned:&lt;br /&gt;
 BitRShiftL(-42, 1) = 2147483627 &lt;br /&gt;
 # (since 1111 1111 1111 1111 1111 1111 1101 0110 &amp;gt;&amp;gt; 1 &lt;br /&gt;
 #      = 0111 1111 1111 1111 1111 1111 1110 1011)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
: Note: -42 = -(1+2^0+2^3+2^5) = (unsigned) (2^32-1)-(2^0+2^3+2^5) = &lt;br /&gt;
::1111 1111 1111 1111 1111 1111 1101 0110&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate left =====&lt;br /&gt;
{{ScriptFunctionCode|BitLRotate|v2.60|BitLRotate(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRol|v2.60|BitRol(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the left by the number of bits specified in the second operand. For each rotation specified, the high order bit that exits from the left of the operand returns at the right to become the new low order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number -2147483642 one bit to the left:&lt;br /&gt;
 BitLRotate(-2147483642, 1) = 13 &lt;br /&gt;
 # (since 10000000000000000000000000000110 ROL 1&lt;br /&gt;
 #      = 00000000000000000000000000001101)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit rotate right =====&lt;br /&gt;
{{ScriptFunctionCode|BitRRotate|v2.60|BitRRotateL(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitRor|v2.60|BitRor(int, int)}}&lt;br /&gt;
: Rotates the bits of an integer to the right by the number of bits specified in the second operand. For each rotation specified, the low order bit that exits from the right of the operand returns at the left to become the new high order bit.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Rotates the bits of the number 13 one bit to the right:&lt;br /&gt;
 BitRRotate(13, 1) = -2147483642 &lt;br /&gt;
 # (since 00000000000000000000000000001101 ROR 1 &lt;br /&gt;
 #      = 10000000000000000000000000000110)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit test =====&lt;br /&gt;
{{ScriptFunctionCode|BitTest|v2.60|BitTest(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitTst|v2.60|BitTst(int, int)}}&lt;br /&gt;
: Tests a single bit (that is, it returns true if its state is one, else it returns false). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Check the state of the fourth bit:&lt;br /&gt;
 BitTest(3, 4) = False&lt;br /&gt;
 BitTest(19, 4) = True&lt;br /&gt;
 &lt;br /&gt;
 Check the state of the sign bit:&lt;br /&gt;
 BitTest(-1, 31) = True&lt;br /&gt;
 BitTest(2147483647, 31) = False&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|BitSet|v2.60|BitSet(int, int)}}&lt;br /&gt;
: Sets a single bit to one (so it sets its state to one). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Set the state of the fourth bit to one:&lt;br /&gt;
 BitSet(3, 4) = 19&lt;br /&gt;
 BitSet(19, 4) = 19&lt;br /&gt;
 &lt;br /&gt;
 Set the state of the sign bit to one:&lt;br /&gt;
 BitSet(-1, 31) = -1&lt;br /&gt;
 BitSet(2147483647, 31) = -1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit clear =====&lt;br /&gt;
{{ScriptFunctionCode|BitClear|v2.60|BitClear(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitClr|v2.60|BitClr(int, int)}}&lt;br /&gt;
: Sets a single bit to zero (so it sets its state to zero). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Clear the bits of the number 5&lt;br /&gt;
 BitClear(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitClear(5, 1) = 5 (second bit is already zero)&lt;br /&gt;
 BitClear(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitClear(5, 3) = 5 (fourth bit is already zero)&lt;br /&gt;
 &lt;br /&gt;
 Clear the state of the sign bit:&lt;br /&gt;
 BitClear(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Bit change =====&lt;br /&gt;
{{ScriptFunctionCode|BitChange|v2.60|BitChange(int, int)}}&lt;br /&gt;
{{ScriptFunctionCode|BitChg|v2.60|BitChg(int, int)}}&lt;br /&gt;
: Sets a single bit to its complement (so it changes the state of a single bit; 1 becomes 0 and vice versa). The second operand denotes the location of the bit which is specified as an offset from the low order end of the operand (starting at zero). The sign bit is bit 31.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Change the state of the a bit of the number 5:&lt;br /&gt;
 BitChange(5, 0) = 4 (first bit is set to zero)&lt;br /&gt;
 BitChange(5, 1) = 7 (second bit is set to one)&lt;br /&gt;
 BitChange(5, 2) = 1 (third bit is set to zero)&lt;br /&gt;
 BitChange(5, 3) = 13 (fourth bit is set to one)&lt;br /&gt;
 &lt;br /&gt;
 Change the state of the sign bit:&lt;br /&gt;
 BitChange(-1, 31) = 2147483647&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Runtime functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These are internal functions which are evaluated at every frame. They can be used inside the scripts passed to runtime filters ([[ConditionalFilter]], [[ScriptClip]], [[FrameEvaluate]]) to return information for a frame.&lt;br /&gt;
&lt;br /&gt;
===== Average ===== &lt;br /&gt;
{{ScriptFunctionCode|AverageLuma||AverageLuma(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaU||AverageChromaU(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageChromaV||AverageChromaV(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|AverageB||AverageB(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageG||AverageG(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|AverageR||AverageR(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value with the average pixel value of a plane (Luma, U-chroma and V-chroma, respectively). They require an [[ISSE]] capable cpu. In v2.61 an {{FuncArg|offset}} argument is added which enables you to access other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ScriptClip(Last, &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
     threshold = 55&lt;br /&gt;
     luma = AverageLuma ## gives the average luma of the current frame&lt;br /&gt;
     #luma = AverageLuma(1) ## gives the average luma of the next frame&lt;br /&gt;
     luma &amp;lt; threshold &lt;br /&gt;
     \ ? Levels(0, 1.0+0.5*(threshold-luma)/threshold, 255, 0, 255) &lt;br /&gt;
     \ : last&lt;br /&gt;
     Subtitle(&amp;quot;luma=&amp;quot; + String(luma), align=2)&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference =====&lt;br /&gt;
{{ScriptFunctionCode|LumaDifference||LumaDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaUDifference||ChromaUDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|ChromaVDifference||ChromaVDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifference||RGBDifference(clip1, clip2)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifference||BDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifference||GDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifference||RDifference(clip1, clip2)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return a float value between 0 and 255 of the absolute difference between two planes from two different clips &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. They require an [[ISSE]] capable cpu.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ovl = [[Overlay]](last, mov_star, x=some_xvalue, y=some_yvalue, mask=mov_mask)&lt;br /&gt;
 ldif = LumaDifference(ovl) # implicit last for clip1&lt;br /&gt;
 udif = ChromaUDifference([[Tweak]](hue=24), ovl)&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference from previous =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceFromPrevious||YDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceFromPrevious||UDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceFromPrevious||VDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceFromPrevious||RGBDifferenceFromPrevious(clip)}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceFromPrevious||BDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceFromPrevious||GDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceFromPrevious||RDifferenceFromPrevious(clip)}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and previous frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious) &amp;gt; threshold)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Difference to next =====&lt;br /&gt;
{{ScriptFunctionCode|YDifferenceToNext||YDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|UDifferenceToNext||UDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|VDifferenceToNext||VDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|RGBDifferenceToNext||RGBDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}}&lt;br /&gt;
{{ScriptFunctionCode|BDifferenceToNext||BDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GDifferenceToNext||GDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RDifferenceToNext||RDifferenceToNext(clip [, int offset &amp;amp;#61; 1])}} {{AvsPluscon}}&lt;br /&gt;
: This group of functions return the absolute difference of pixel value between the current and next frame of {{FuncArg|clip}} &amp;amp;ndash; either the combined RGB difference or the Luma, U-chroma or V-chroma differences, respectively. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the difference between the RGB, luma or chroma plane of the current frame and of ''any'' other frame. Note that for example clip.'''RGBDifferenceToNext'''(-1) = clip.'''RGBDifferenceToPrevious''', and clip.'''RGBDifferenceToNext'''(0) = 0.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # both th1, th2 are positive thresholds; th1 is larger enough than th2&lt;br /&gt;
 scene_change = (YDifferenceFromPrevious &amp;gt; th1) &amp;amp;&amp;amp; (YDifferenceToNext &amp;lt; th2)&lt;br /&gt;
 scene_change ? some_filter(...) : another_filter(...)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Color plane median, min, max, range =====&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMedian||YPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMedian||UPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMedian||VPlaneMedian(clip [, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMedian||BPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMedian||GPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMedian||RPlaneMedian(clip [, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMin||YPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMin||UPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMin||VPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMin||BPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMin||GPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMin||RPlaneMin(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMax||YPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMax||UPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMax||VPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMax||BPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMax||GPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}{{ScriptFunctionCode|RPlaneMax||RPlaneMax(clip [, float threshold &amp;amp;#61; 0, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionCode|YPlaneMinMaxDifference||YPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|UPlaneMinMaxDifference||UPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|VPlaneMinMaxDifference||VPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}}&lt;br /&gt;
{{ScriptFunctionCode|BPlaneMinMaxDifference||BPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|GPlaneMinMaxDifference||GPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
{{ScriptFunctionCode|RPlaneMinMaxDifference||RPlaneMinMaxDifference(clip [, float threshold, int offset &amp;amp;#61; 0])}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
: This group of functions return statistics about the distribution of pixel values on a plane (Luma, U-chroma and V-chroma, respectively). The statistics are, in order of presentation: maximum, minimum, median and range (maximum - minimum difference). &lt;br /&gt;
: {{FuncArg|threshold}} is a percentage, stating how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. In v2.61 an {{FuncArg|offset}} argument is added, which enables you to access the statistics of other frames than the current one.&lt;br /&gt;
&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 # median and average are close only on even distributions; &lt;br /&gt;
 # this can be a useful diagnostic&lt;br /&gt;
 have_intense_brights = YPlaneMedian() - AverageLuma() &amp;lt; threshold&lt;br /&gt;
 ...&lt;br /&gt;
 # a simple per-frame normalizer to [16..235], CCIR, range&lt;br /&gt;
 [[Levels]](YPlaneMin(), 1.0, YPlaneMax(), 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth script information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptName|v2.60|ScriptName()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 name = ScriptName() # name = &amp;quot;F:\ProjectXYZ\video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptNameUtf8|{{AvsPluscon}}|ScriptNameUtf8()}}&lt;br /&gt;
: Returns the path and filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFile|v2.60|ScriptFile()}}&lt;br /&gt;
: Returns the filename of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 file = ScriptFile() # file = &amp;quot;video.avs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptFileUtf8|{{AvsPluscon}}|ScriptFileUtf8()}}&lt;br /&gt;
: Returns the filename of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDir|v2.60|ScriptDir()}}&lt;br /&gt;
: Returns the path of the loaded script as a string.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 folder = ScriptDir() # folder = &amp;quot;F:\ProjectXYZ&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ScriptDirUtf8|{{AvsPluscon}}|ScriptDirUtf8()}}&lt;br /&gt;
: Returns the path of the loaded script as a [[wikipedia:Unicode|Unicode]] string, encoded in [[wikipedia:UTF-8|UTF8]].&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|SetLogParams|{{AvsPluscon}}|SetLogParams([string ''target'', int ''level''])}}&lt;br /&gt;
: Sets a file path for a log file, used by [[#LogMsg|LogMsg]] and internal error reporting.&lt;br /&gt;
:* {{FuncArg|target}} names a file which will be created when the script loads. If attempting to create or write to {{FuncArg|target}} fails, the script will raise an error immediately. If the file exists, new log entries will be appended to the end. If omitted, {{FuncArg|target}} defaults to [[wikipedia:Stderr|stderr]].&lt;br /&gt;
:* {{FuncArg|level}} sets the log ''verbosity''; it can be one of the following:&lt;br /&gt;
::{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_ERROR&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(1)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the fewest log entries&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_WARNING&amp;lt;/tt&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(2)&amp;lt;/small&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|{{BoldColor|#669999|85|■}} &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|&amp;lt;small&amp;gt;(3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|style=&amp;quot;line-height:1.0em&amp;quot;|creates the most log entries&lt;br /&gt;
|}&lt;br /&gt;
::If omitted, {{FuncArg|level}} defaults to &amp;lt;tt&amp;gt;LOG_INFO&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
:''Examples'' see [[#LogMsg|LogMsg]] below.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LogMsg|{{AvsPluscon}}|LogMsg(string, int)}}&lt;br /&gt;
: Creates a new log entry.&lt;br /&gt;
:* {{FuncArg|string}} (required) specifies the log message.&lt;br /&gt;
:* {{FuncArg|int}} (required) specifies the log entry level: see [[#SetLogParams|SetLogParams]] above.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## creating file and set path for future log entries:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test1.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents:''&lt;br /&gt;
 (empty)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging an INFO message:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test2.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 LogMsg(&amp;quot;this is a test&amp;quot;, LOG_INFO)&lt;br /&gt;
 &lt;br /&gt;
 ''log contents:''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: this is a test&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging a script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test3.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
 &lt;br /&gt;
 ...''log contents (redundant entries are common):''&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 35)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ## logging INFO context for script error:&lt;br /&gt;
 SetLogParams(&amp;quot;&amp;lt;path&amp;gt;\_test4.log&amp;quot;, LOG_INFO)&lt;br /&gt;
 function MyFunction(clip C)&lt;br /&gt;
 {&lt;br /&gt;
     C&lt;br /&gt;
     [[Control_structures|try]] {&lt;br /&gt;
         foo(&amp;quot;bar&amp;quot;) ## ERROR!&lt;br /&gt;
     } catch (err_msg) {&lt;br /&gt;
         msg2 = &amp;quot;Error in MyFunction: &amp;quot;&lt;br /&gt;
         LogMsg([[#Time|Time]](&amp;quot;%Y-%m-%d %I:%M:%S %p, %z&amp;quot;) + &amp;quot;: &amp;quot; + msg2, LOG_INFO)&lt;br /&gt;
         #[[#Assert|Assert]](false, msg2 + err_msg) ## optional: stop script, else continue&lt;br /&gt;
     }&lt;br /&gt;
     return Last&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ''log contents (redundant entries omitted):''&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 ERROR: Script error: There is no function named 'foo'.&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
 ---------------------------------------------------------------------&lt;br /&gt;
 INFO: 2017-11-12 11:03:41 AM, -0500: Error in MyFunction:&lt;br /&gt;
 (&amp;lt;path&amp;gt;\_test.avs, line 54)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|GetProcessInfo|{{AvsPluscon}}|GetProcessInfo(int)}}&lt;br /&gt;
: Returns information about the [[wikipedia:Process_(computing)|process]] the script is running in.&lt;br /&gt;
: The ''int'' argument has two legal values:&lt;br /&gt;
:* if ''0'' (default), returns ''64'' for a 64-bit process or ''32'' for a 32-bit process.&lt;br /&gt;
:* else if ''1'',&lt;br /&gt;
:** returns 0 for 32-bit process on 32-bit OS;&lt;br /&gt;
:** returns 1 for 32-bit process on 64-bit OS;&lt;br /&gt;
:** returns 2 for 64-bit process on 64-bit OS;&lt;br /&gt;
:** else returns -1 (unknown)&lt;br /&gt;
:: /// [[TODO]] this is preliminary info&lt;br /&gt;
&lt;br /&gt;
== String functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide common operations on string variables.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LCase||LCase(string)}}&lt;br /&gt;
: Returns lower case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;avisynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|UCase||UCase(string)}}&lt;br /&gt;
: Returns upper case of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 UCase(&amp;quot;AviSynth&amp;quot;) = &amp;quot;AVISYNTH&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrLen||StrLen(string)}}&lt;br /&gt;
: Returns length of {{FuncArg|string}}.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrLen(&amp;quot;AviSynth&amp;quot;) = 8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RevStr||RevStr(string)}}&lt;br /&gt;
: Returns {{FuncArg|string}} backwards.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RevStr(&amp;quot;AviSynth&amp;quot;) = &amp;quot;htnySivA&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|LeftStr||LeftStr(string, int)}}&lt;br /&gt;
: Returns first {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 LeftStr(&amp;quot;AviSynth&amp;quot;, 3) = &amp;quot;Avi&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|RightStr||RightStr(string, int)}}&lt;br /&gt;
: Returns last {{FuncArg|int}} count of characters.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 RightStr(&amp;quot;AviSynth&amp;quot;, 5) = &amp;quot;Synth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|MidStr||MidStr(string, int pos [, int length])}}&lt;br /&gt;
: Returns substring starting at {{FuncArg|pos}} for optional {{FuncArg|length}} or to end. {{FuncArg|pos}}=1 specifies start.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 MidStr(&amp;quot;AviSynth&amp;quot;, 3, 2) = &amp;quot;iS&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FindStr||FindStr(string, substring)}}&lt;br /&gt;
: Returns (1-based) position of {{FuncArg|substring}} within {{FuncArg|string}} &lt;br /&gt;
:* Note this function is case-sensitive. &lt;br /&gt;
:* Returns 0 if {{FuncArg|substring}} is not found.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;Syn&amp;quot;) ## returns 4&lt;br /&gt;
 Findstr(&amp;quot;AviSynth&amp;quot;, &amp;quot;SYN&amp;quot;) ## returns 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|ReplaceStr|{{AvsPluscon}}|ReplaceStr(string, substring, replacement_string)}}&lt;br /&gt;
: Replaces occurrences of {{FuncArg|substring}} with {{FuncArg|replacement_string}} and returns the result. &lt;br /&gt;
:* Note this function is case-sensitive.&lt;br /&gt;
:* Avisynth 2.6.x users have other options, such as the [[User_defined_script_functions|user]] function below, adapted from ''StrReplace'', found [[HDColorBars|here]].&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 function ReplaceStr(string base, string sought, string repstr) {&lt;br /&gt;
     pos = FindStr(base, sought)&lt;br /&gt;
     return (sought==&amp;quot;&amp;quot; || pos==0) ? base : ReplaceStr(&lt;br /&gt;
     \       LeftStr(base, pos-1) + repstr +&lt;br /&gt;
     \       MidStr(base, pos+StrLen(sought)),&lt;br /&gt;
     \       sought, repstr)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 ReplaceStr(&amp;quot;FlipHorizontal&amp;quot;, &amp;quot;Horizontal&amp;quot;, &amp;quot;Vertical&amp;quot;)&lt;br /&gt;
 ReplaceStr(&amp;quot;''$a'' x *&amp;quot;, &amp;quot;''$a''&amp;quot;, String(1.5)) ## (a [[MaskTools2|MaskTools]] expression with argument)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|FillStr|v2.60|FillStr(int [, string])}}&lt;br /&gt;
: Fills a string. When {{FuncArg|int}}&amp;gt;1 it concatenates the {{FuncArg|string}} {{FuncArg|int}} times. {{FuncArg|string}} is &amp;quot;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;quot; (space) by default.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 FillStr(1, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynth&amp;quot;&lt;br /&gt;
 FillStr(2, &amp;quot;AviSynth&amp;quot;) = &amp;quot;AviSynthAviSynth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmp|v2.60|StrCmp(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmp(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) != 0 # strings are not equal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|StrCmpi|v2.60|StrCmpi(string, string)}}&lt;br /&gt;
: Compares two character strings. The comparison is not case-sensitive. If the first string is less than the second string, the return value is negative. If it's greater, the return value is positive. If they are equal, the return value is zero. (The actual value seems to be language dependent so it can't be relied upon.)&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;AviSynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;AviSynth&amp;quot;, &amp;quot;Avisynth&amp;quot;) = 0 # strings are equal.&lt;br /&gt;
 StrCmpi(&amp;quot;abcz&amp;quot;, &amp;quot;abcdefg&amp;quot;) != 0 &lt;br /&gt;
 # returns the difference betweeen &amp;quot;z&amp;quot; and &amp;quot;d&amp;quot; (which is positive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Chr||Chr(int)}}&lt;br /&gt;
: Returns the ASCII character. &lt;br /&gt;
: Note that characters above the ASCII character set (ie above 127) are code page dependent and may render different (visual) results in different systems. This has an importance only for user-supplied localised text messages.&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Chr(34) returns the quote character&lt;br /&gt;
 Chr(9)  returns the tab   character&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Ord|v2.60|Ord(string)}}&lt;br /&gt;
: Gives the ordinal number (character code) of the first character of {{FuncArg|string}} (works like php [http://php.net/manual/en/function.ord.php ord] or Basic [http://msdn.microsoft.com/en-us/library/xfw01fx4%28v=vs.84%29.aspx Asc])&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 Ord(&amp;quot;a&amp;quot;) = 97&lt;br /&gt;
 Ord(&amp;quot;AviSynth&amp;quot;) = Ord(&amp;quot;A&amp;quot;) = 65&lt;br /&gt;
 Ord(&amp;quot;§&amp;quot;) = 167&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|Time||Time(string)}}&lt;br /&gt;
: Returns a string with the current system time formatted as defined by {{FuncArg|string}}.&lt;br /&gt;
&lt;br /&gt;
: The string may contain any of the codes for output formatting presented below:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; | Code&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; | Description&lt;br /&gt;
 |-&lt;br /&gt;
 |%a&lt;br /&gt;
%A  &lt;br /&gt;
 | Abbreviated weekday name&lt;br /&gt;
Full weekday name&lt;br /&gt;
 |-&lt;br /&gt;
 |%b&lt;br /&gt;
%B  &lt;br /&gt;
 | Abbreviated month name&lt;br /&gt;
Full month name&lt;br /&gt;
 |-&lt;br /&gt;
 |%c  &lt;br /&gt;
 | Date and time representation appropriate for locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%d  &lt;br /&gt;
 | Day of month as decimal number (01 - 31)&lt;br /&gt;
 |-&lt;br /&gt;
 |%H&lt;br /&gt;
%I  &lt;br /&gt;
 | Hour in 24-hour format (00 - 23)&lt;br /&gt;
Hour in 12-hour format (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%j  &lt;br /&gt;
 | Day of year as decimal number (001 - 366)&lt;br /&gt;
 |-&lt;br /&gt;
 |%m  &lt;br /&gt;
 | Month as decimal number (01 - 12)&lt;br /&gt;
 |-&lt;br /&gt;
 |%M  &lt;br /&gt;
 | Minute as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%p  &lt;br /&gt;
 | Current locale's A.M./P.M. indicator for 12-hour clock&lt;br /&gt;
 |-&lt;br /&gt;
 |%S  &lt;br /&gt;
 | Second as decimal number (00 - 59)&lt;br /&gt;
 |-&lt;br /&gt;
 |%U  &lt;br /&gt;
 | Week of year as decimal number, with Sunday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%w  &lt;br /&gt;
 | Weekday as decimal number (0 - 6; Sunday is 0)&lt;br /&gt;
 |-&lt;br /&gt;
 |%W  &lt;br /&gt;
 | Week of year as decimal number, with Monday as first day of week (00 - 53)&lt;br /&gt;
 |-&lt;br /&gt;
 |%x  &lt;br /&gt;
 | Date representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%X  &lt;br /&gt;
 | Time representation for current locale&lt;br /&gt;
 |-&lt;br /&gt;
 |%y&lt;br /&gt;
%Y  &lt;br /&gt;
 | Year without century, as decimal number (00 - 99)&lt;br /&gt;
Year ''with'' century, as decimal number&lt;br /&gt;
 |-&lt;br /&gt;
 |%z, %Z  &lt;br /&gt;
 | Time-zone name or abbreviation; no characters if time zone is unknown&lt;br /&gt;
 |-&lt;br /&gt;
 |%%  &lt;br /&gt;
 | Percent sign &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
: The '#' flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;width:9em&amp;quot; |Code with '#' flag&lt;br /&gt;
 ! style=&amp;quot;width:38em&amp;quot; |Change in meaning&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''a''', %#'''A''', %#'''b''', &lt;br /&gt;
%#'''B''', %#'''p''', %#'''X''', &lt;br /&gt;
%#'''z''', %#'''Z''', %#'''%'''&lt;br /&gt;
 | No change; flag is ignored. &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''c''' &lt;br /&gt;
 | Long date and time representation, appropriate for current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995, 12:41:29&amp;quot;'' &lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''x''' &lt;br /&gt;
 | Long date representation, appropriate to current locale. &lt;br /&gt;
For example, ''&amp;quot;Tuesday, March 14, 1995&amp;quot;''&lt;br /&gt;
 |-&lt;br /&gt;
 |%#'''d''', %#'''H''', %#'''I''', &lt;br /&gt;
%#'''j''', %#'''m''', %#'''M''', &lt;br /&gt;
%#'''S''', %#'''U''', %#'''w''', &lt;br /&gt;
%#'''W''', %#'''y''', %#'''Y''' &lt;br /&gt;
 | Remove leading zeroes (if any).&lt;br /&gt;
 |}&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 v = Time(&amp;quot;%Y-%m-%d&amp;quot;)        # &amp;quot;2010-03-01&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%d-%b-%Y&amp;quot;)        # &amp;quot;01-Mar-2010&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%#d/%#m/%y&amp;quot;)      # &amp;quot;1/3/10&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%I:%M:%S %p, %z&amp;quot;) # &amp;quot;08:04:42 PM, GMT Standard Time&amp;quot;&lt;br /&gt;
 v = Time(&amp;quot;%H:%M:%S %z&amp;quot;)     # &amp;quot;20:04:42 GMT Standard Time&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version functions ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
: These provide AviSynth version information.&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionNumber||VersionNumber()}}&lt;br /&gt;
: Returns AviSynth version number as a float.&lt;br /&gt;
:* Note: use [[#VersionString|VersionString]] below to determine if running in [[AviSynth+]].&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionNumber ## returns 2.60 (release version as of 11/2017)&lt;br /&gt;
 VersionNumber ## returns 2.61 (beta)&lt;br /&gt;
 VersionNumber ## returns 2.60 (AVS+ release 2508)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ScriptFunctionH5|VersionString||VersionString()}}&lt;br /&gt;
: Returns AviSynth version info as a string (first line used in [[Version]]() command).&lt;br /&gt;
''Examples:''&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.60, build:Mar 31 2015 [16:38:54]&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth 2.61, build:May 17 2016 [16:06:18] VC2008Exp&amp;quot;&lt;br /&gt;
 VersionString ## returns &amp;quot;AviSynth+ 0.1, (r2508, MT, x86_64)&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|2}} &amp;gt;&lt;br /&gt;
 function IsAvsPlus()&lt;br /&gt;
 {&lt;br /&gt;
     sVer = [[#LCase|LCase]](VersionString) &lt;br /&gt;
     return ([[#FindStr|FindStr]](sVer, &amp;quot;avisynth+&amp;quot;)    &amp;gt; 0)&lt;br /&gt;
     \   || (FindStr(sVer, &amp;quot;avisynthplus&amp;quot;) &amp;gt; 0)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[AviSynth Syntax]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_functions]]&lt;br /&gt;
[[Category:AviSynth_Syntax]]&lt;br /&gt;
[[Category:Scripting_Basics]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/AviSynth%2B</id>
		<title>AviSynth+</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/AviSynth%2B"/>
				<updated>2018-01-26T23:04:04Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: reorder sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
This page is dedicated to {{AvsPlusFullname}}, mainly to keep track all of its features, changes, bugs, and any other useful information.&lt;br /&gt;
{| style=&amp;quot;max-width:56em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;clear:right;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| |&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1.0em;padding:2px 8px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; padding:5px; font-size:95%; width:20em&amp;quot;&amp;gt;&lt;br /&gt;
{{HiddenAnchor|AviSynth.2B_x64_plugins}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin=auto;text-align:center&amp;quot;&amp;gt;'''Important Links:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [http://www.avs-plus.net/ Original project page (avs-plus.net)&amp;amp;nbsp;]&lt;br /&gt;
* [https://github.com/pinterf/AviSynthPlus/tree/MT New project page (github)&amp;amp;nbsp;]&lt;br /&gt;
* [https://github.com/pinterf/AviSynthPlus/releases '''Latest release''' (github)&amp;amp;nbsp;]&lt;br /&gt;
* [[Avisynthplus/Downloads|More AVS+ download links]]&lt;br /&gt;
* [[AviSynth%2B_x64_plugins|'''AVS+ 64-bit plugins''']]&lt;br /&gt;
* [[Avisynthplus/Developers|Developers' notes]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:50%;margin:0;padding:0&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Wiki Documentation==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
The '''new content''' can be found under:&lt;br /&gt;
* [[:Category:Avisynthplus|Category: AvisynthPlus]] (pages specific to AVS+) and&lt;br /&gt;
* [[Special:WhatLinksHere/Template:AvsPluscon|Existing pages, updated]] (all pages that contain the {{Template:AvsPluscon}} icon) &lt;br /&gt;
&lt;br /&gt;
So far, we have new pages for:&lt;br /&gt;
* [[Extract]] (ExtractY, U, V, etc)&lt;br /&gt;
* [[CombinePlanes]] (includes AddAlphaPlane, RemoveAlphaPlane)&lt;br /&gt;
* [[ConvertBits]] bit depth conversion.&lt;br /&gt;
* [[ConvertStacked]] (ConvertToStacked, ConvertFromStacked etc) filters to interface with legacy Stack16 filters.&lt;br /&gt;
* [[Avisynthplus_color_formats|Avisynth+ color formats]], listing the new AVS+ color spaces&lt;br /&gt;
&lt;br /&gt;
Along with AVS+ information added to:&lt;br /&gt;
* [[Clip_properties]], listing many new items.&lt;br /&gt;
* [[Internal_functions]], listing the new functions.&lt;br /&gt;
* [[Convert]], listing the new AVS+ functions and color spaces.&lt;br /&gt;
* and many more&lt;br /&gt;
&lt;br /&gt;
Still to do:&lt;br /&gt;
* ''AddAutoloadDir'' and related functions.&lt;br /&gt;
* ''SetFilterMTMode'' and related functions.&lt;br /&gt;
* ''StrToUtf8'' and related functions.&lt;br /&gt;
* ''ColorSpaceNameToPixelType''.&lt;br /&gt;
* [[Internal_functions#Global_Options]] &amp;amp;ndash; what do these options do?&lt;br /&gt;
* [[Histogram]] &amp;amp;ndash; ''bits'' argument needs further explanation.&lt;br /&gt;
* [[Tweak]] &amp;amp;ndash; ''realcalc'' argument needs further explanation.&lt;br /&gt;
* Need updated change logs on all filter pages.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Features==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
===Deep color===&lt;br /&gt;
Since [https://github.com/pinterf/AviSynthPlus/releases/tag/r2290-MT r2290] (October 2016), AviSynth+ supports 10, 12, 14, 16 and 32-bit (float) color spaces. All color formats are listed [[Avisynthplus_color_formats|here]]. Support functions include [[ConvertBits]], [[ConvertStacked]], [[Extract]], [[CombinePlanes]]. Deep color support has been added to all [[Internal_filters|internal filters]] and many [[AviSynth%2B_x64_plugins|external plugins]]. See the [[#Wiki_Documentation|Wiki Documentation]] section below for more. ([[TODO]] - tutorial)&lt;br /&gt;
&lt;br /&gt;
===Multithreading===&lt;br /&gt;
See the [[#MT Notes|MT Notes]] section below. ([[TODO]] - tutorial)&lt;br /&gt;
&lt;br /&gt;
{{HiddenAnchor|AviSynth.2B.27s_Plugin_Autoloader}}&lt;br /&gt;
===Plugin Autoloader===&lt;br /&gt;
*'''1st October 2013''' | Source: [http://forum.doom9.org/showthread.php?p=1646304#post1646304 here] and subsequent post.&lt;br /&gt;
Okay, so how do multiple plugin directories interact with plugin autoloading?&lt;br /&gt;
&lt;br /&gt;
As a recap, here is how it used to work in the official Avisynth:&lt;br /&gt;
:* Look for the string HKEY_CURRENT_USER/Software/Avisynth/PluginDir2_5 in the registry. If it exists, load plugins from the path specified there and stop.&lt;br /&gt;
:* If the above string didn't exist, look in HKEY_LOCAL_MACHINE/Software/AviSynth/PluginDir2_5. Try to load plugins from the path specified there.&lt;br /&gt;
:* Done.&lt;br /&gt;
&lt;br /&gt;
First thing to note, is that classic AviSynth only ever searches for plugins in one single directory. It only knows two directories (both specified in the registry), and it only tries the second path if there is no entry for the first one.&lt;br /&gt;
&lt;br /&gt;
AviSynth+'s autoloader has a list of autoload directories. It iterates over all those directories and tries to load all plugins from each. But (and a big but!) it will not load a plugin from a directory if another plugin with the same basename is already loaded. The basename of a plugin is simply its file name without the extension.&lt;br /&gt;
&lt;br /&gt;
The expected use case is that you can now overlay a new plugin directory on top of another one. AviSynth+ then would load all plugins from the first folder, then load only those plugins from the second that weren't loaded from the first, then those from the third that weren't loaded from the first or second and so on. For example, let's say your usual plugin folder has a lot of plugins you normally use. But at one time you have a small number of updated plugins that you only want to use from a few scripts, but you do not yet want to replace your existing plugins globally. Then you'd just add a new plugin overlay folder, with only the new plugins in it, and that's it. All scripts that specify the new folder will autoload all plugins from your usual one, except for the new plugins, which would get loaded from the new folder. All your other scripts will still use your old plugins.&lt;br /&gt;
&lt;br /&gt;
By default, AviSynth+'s autoload folder list has four paths in it, in this order:&lt;br /&gt;
# PluginDir+ in Software/Avisynth in HKEY_CURRENT_USER&lt;br /&gt;
# PluginDir+ in Software/Avisynth in HKEY_LOCAL_MACHINE&lt;br /&gt;
# PluginDir2_5 in Software/Avisynth in HKEY_CURRENT_USER&lt;br /&gt;
# PluginDir2_5 in Software/Avisynth in HKEY_LOCAL_MACHINE&lt;br /&gt;
&lt;br /&gt;
This means, if there are ever plugins which will only work with AviSynth+ but not with classic AviSynth, you can put them into one of the &amp;quot;PluginDir+&amp;quot; folders. AviSynth+ will then use the classic plugins from the normal AviSynth, but if there are versions of some plugins written for AviSynth+, it will use them instead, and the classic avisynth.dll will still not be bothered with them. This is all without you having to lift a finger (except for adding the &amp;quot;PluginDir+&amp;quot; values to the registry once, until we have an installer). So to summarize all this, you have the ability to define a plugin autoload folder in the registry which will only be used by AviSynth+, but not by AviSynth, in addition to your classic plugins.&lt;br /&gt;
&lt;br /&gt;
====New Functions====&lt;br /&gt;
However, another new functionality offered by AviSynth+, is that now you can also specify autoload paths in the scripts. There are two functions for this:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt; AddAutoloadDir(string path, bool toFront)&amp;lt;/code&amp;gt;: this will add a new autoload folder. The string parameter is obligatory, it is the folder path where to load from. The second boolean parameter is optional, and if true (default), it will add the path to the front/beginning of the autoloader's list, which means it will be searched earlier than the rest. If it is false, the path will get added to the end of the list, so it will get searched last (unless you again add another one to the end).&lt;br /&gt;
*&amp;lt;code&amp;gt; ClearAutoloadDirs()&amp;lt;/code&amp;gt;: This will clear all the paths from the autoloader's list. Note that it is NOT a reset to the default state. ClearAutoloadDirs() will clear all folders, so if you don't add new ones after that, you have disabled the autoload functionality. This is, BTW, also a way to disable autoloading for a particular script in AviSynth+.&lt;br /&gt;
&lt;br /&gt;
'''Here's an important note''': You can only call these functions if no plugin has been autoloaded yet. Autoloading happens if the first unknown function is looked up. This means you can only call &amp;lt;code&amp;gt;AddAutoloadDir&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ClearAutoloadDirs&amp;lt;/code&amp;gt; if you have only made calls to built-in functions up to that point in the script. I suggest you start your scripts with these calls to avoid any problems.&lt;br /&gt;
&lt;br /&gt;
There is only one thing left to discuss: Are there any special directories you can reference from your script? You bet there are:&lt;br /&gt;
* &amp;lt;tt&amp;gt;SCRIPTDIR&amp;lt;/tt&amp;gt; is the folder of the most current script. It is the path of the imported script if your script calls import()&lt;br /&gt;
* &amp;lt;tt&amp;gt;MAINSCRIPTDIR&amp;lt;/tt&amp;gt; is the folder of your main script, the one where execution started&lt;br /&gt;
* &amp;lt;tt&amp;gt;PROGRAMDIR&amp;lt;/tt&amp;gt; is the folder of the executable running the current script&lt;br /&gt;
* &amp;lt;tt&amp;gt;USER_PLUS_PLUGINS&amp;lt;/tt&amp;gt; is the string stored in PluginDir+ in Software/Avisynth in HKEY_CURRENT_USER&lt;br /&gt;
* &amp;lt;tt&amp;gt;MACHINE_PLUS_PLUGINS&amp;lt;/tt&amp;gt; is the string stored in PluginDir+ in Software/Avisynth in HKEY_LOCAL_MACHINE&lt;br /&gt;
* &amp;lt;tt&amp;gt;USER_CLASSIC_PLUGINS&amp;lt;/tt&amp;gt; is the string stored in PluginDir2_5 in Software/Avisynth in HKEY_CURRENT_USER&lt;br /&gt;
* &amp;lt;tt&amp;gt;MACHINE_CLASSIC_PLUGINS&amp;lt;/tt&amp;gt; is the string stored in PluginDir2_5 in Software/Avisynth in HKEY_LOCAL_MACHINE&lt;br /&gt;
... all these special constants are '''case-sensitive''' for now.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
* If you want plugins to be autoloaded from the script's &amp;quot;autoload&amp;quot; directory too, you'd write:&lt;br /&gt;
&amp;lt;code&amp;gt;AddAutoloadDir(&amp;quot;MAINSCRIPTDIR/autoload&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you want plugins to be autoloaded from the script's &amp;quot;autoload&amp;quot; directory, only from there and nowhere else, you'd write:&lt;br /&gt;
&amp;lt;code&amp;gt;ClearAutoloadDirs()&amp;lt;br&amp;gt;&lt;br /&gt;
AddAutoloadDir(&amp;quot;MAINSCRIPTDIR/autoload&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you wanted to manually recreate the default state of the autoloading folder list, you'd write:&lt;br /&gt;
&amp;lt;code&amp;gt;ClearAutoloadDirs()&amp;lt;br&amp;gt;&lt;br /&gt;
AddAutoloadDir(&amp;quot;USER_PLUS_PLUGINS&amp;quot;, false)&amp;lt;br&amp;gt;&lt;br /&gt;
AddAutoloadDir(&amp;quot;MACHINE_PLUS_PLUGINS&amp;quot;, false)&amp;lt;br&amp;gt;&lt;br /&gt;
AddAutoloadDir(&amp;quot;USER_CLASSIC_PLUGINS&amp;quot;, false)&amp;lt;br&amp;gt;&lt;br /&gt;
AddAutoloadDir(&amp;quot;MACHINE_CLASSIC_PLUGINS&amp;quot;, false)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Notes====&lt;br /&gt;
*Both AviSynth and AviSynth+ already query interface versions. They try to load the 2.6 interface from a plugin first, and if that is not supported, they try to load the 2.5 interface. AviSynth+ also tries to load the C interface if both of the previous ones fail. In the future, the C interface should probably be prioritized over 2.5. &lt;br /&gt;
*In what contexts do &amp;lt;tt&amp;gt;MAINSCRIPTDIR&amp;lt;/tt&amp;gt; and the other 'special' names get replaced with the corresponding folders? In all strings, or only when used in the argument to AddAutoloadDir?&amp;lt;br&amp;gt;-- Only in &amp;lt;code&amp;gt;AddAutoloadDir()&amp;lt;/code&amp;gt;, and even there, only if they are at the very beginning of the string. These get replaced to absolute folder paths, so if they are not at the beginning of the string, replacing them would only result in an invalid path (e.g. you'd end up with &amp;quot;c:&amp;quot; in the middle of your path).&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?p=1646392#post1646392 Source]&lt;br /&gt;
*AviSynth+ autoloads plugins if any of the following happens:[http://forum.doom9.org/showthread.php?p=1662402#post1662402]&lt;br /&gt;
**AutoloadPlugins() is called&lt;br /&gt;
**LoadPlugin() is called&lt;br /&gt;
**A yet unknown (non-internal) function is called&lt;br /&gt;
*avs_function_exists does not find the external source filter in this case because none of the above happened. So MasterNobody's patch is the right thing to do. &lt;br /&gt;
&lt;br /&gt;
===GScript===&lt;br /&gt;
GScript (''a plugin for AviSynth that provides new control-flow constructs such as loops'') has been incorporated natively into AviSynth+. Syntax is mostly unchanged, with two notable differences:&lt;br /&gt;
&lt;br /&gt;
*In AviSynth+ there is no need to wrap your GScript code in a string. The language extensions are native to AviSynth+ and can be used transparently.&lt;br /&gt;
*The &amp;quot;return&amp;quot; statement has been changed to not only exit the GScript code block, but behaves like a normal AviSynth [[Grammar#Statements.2C_Expressions.2C_Types_and_Operators|return statement]]: it causes the termination of the active script block ([[User_functions|user function]]), or if not in a function, the entire script.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
*[[GScript|GScript - main Wiki page]]&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?p=1712511#post1712511 ''Short description from developer'' Ultim] (doom9.org)&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?p=1647005#post1647005 ''What kind of for-construct would you like to see?''] (doom9.org)&lt;br /&gt;
&lt;br /&gt;
===Logging Facility===&lt;br /&gt;
Starting with r2069, AviSynth+ received a logging facility. You can enable it using &amp;lt;code&amp;gt;SetLogParams(string target, int &amp;quot;level&amp;quot;)&amp;lt;/code&amp;gt; at the beginning of your script. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'target'&amp;lt;/code&amp;gt; can be either &amp;lt;code&amp;gt;&amp;quot;stderr&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;stdout&amp;quot;&amp;lt;/code&amp;gt;, or a path to a file.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;'level'&amp;lt;/code&amp;gt; is 1: LOG_ERROR / 2 : LOG_WARNING / 3 : LOG_INFO/ 4 : LOG_DEBUG, with increasing verbosity. By default, logging is disabled (0). &lt;br /&gt;
&lt;br /&gt;
Log messages can be output by scripts using &amp;lt;code&amp;gt;LogMsg(string msg, int &amp;quot;level&amp;quot;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If logging is enabled, AviSynth+ will output log messages by itself too. It will automatically log errors, and will issue warnings and notes to the user to inform him about potential problems, buggy plugins, suboptimal settings et cetera. There are a couple of these log messages and they come in various colors.&lt;br /&gt;
&lt;br /&gt;
*Source: http://forum.doom9.org/showthread.php?p=1774770#post1774770&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MT Notes==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
*Source: [http://forum.doom9.org/showthread.php?p=1666371#post1666371 Doom9 Forum]&lt;br /&gt;
So, how to use MT in AviSynth+? Most of it has been posted earlier actually, but let me summarize it.&lt;br /&gt;
&lt;br /&gt;
By default, your script will run in single-threaded mode, just like with SEt's build. Also, just like in SEt's build, you'll have to make sure that filters use the correct MT mode, or else they might wreak havoc. There are three basic MT modes (1,2,3) and an experimental workaround mode (4) since r2440, and modes 1-3 are the same modes as in (yeah you guessed correctly) SEt's build. Which means you can use the same modes that you have used with AviSynth-MT.&lt;br /&gt;
&lt;br /&gt;
There are some things though that are different and/or new in AviSynth+. The first difference is *how* you set the MT mode. In AviSynth-MT, you had to use SetMTMode(X), which caused all filters following that line to use mode X (until the next call to SetMTMode()). This meant if you needed to use multiple MT modes, you had to insert all those calls in the middle of your script, littered over many places.&lt;br /&gt;
&lt;br /&gt;
===Setting MT modes===&lt;br /&gt;
AviSynth+ does it differently. In AviSynth+, you specify the MT-mode for only specific filters, and those filters will then automatically use their own mode, even if there were other MT-modes inbetween. This means you can specify all the MT modes at the beginning without polluting your script. You can even make a SetMTMode.avsi if you wish and let it autoload for all of your scripts, or import() it from their top. This is much cleaner, and it allows you to maintain all your MT-modes centrally at a single place. To make this distinction clear from AviSynth+, SetMTMode() is called SetFilterMTMode() in AviSynth+.&lt;br /&gt;
&lt;br /&gt;
===Enabling MT===&lt;br /&gt;
The other difference is how you actually enable multithreading. Calling SetFilterMTMode() is not enough, it sets the MT mode, but the MT mode only has an effect if MT is enabled at all. Note this means you can safely include/import/autoload your SetFilterMTMode() calls in even single-threaded scripts, and they will not be messed up. Uhm, onto the point: You enable MT by placing a single call to Prefetch(X) at the '''end''' of your script, where X is the number of threads to use. If there is a return statement in your script it must be placed '''after''' Prefetch().&lt;br /&gt;
&lt;br /&gt;
===Example ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;max-width:76em&amp;quot; &amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# This line causes all filters that don't have an MT mode explicitly use mode 2 by default.&lt;br /&gt;
# Mode 2 is a relatively safe choice until you don't know most of your calls to be either mode 1 or 3.&lt;br /&gt;
# Compared with mode 1, mode 2 trades memory for MT-safety, but only a select few filters will work with mode 1.&lt;br /&gt;
SetFilterMTMode(&amp;quot;DEFAULT_MT_MODE&amp;quot;, 2)&lt;br /&gt;
or&lt;br /&gt;
SetFilterMTMode(&amp;quot;DEFAULT_MT_MODE&amp;quot;, MT_MULTI_INSTANCE)&lt;br /&gt;
&lt;br /&gt;
# FFVideoSource(), like most of all source filters, needs MT mode 3. &lt;br /&gt;
# Note: starting  with AviSynth+ r2069, it will now automatically recognize source filters.&lt;br /&gt;
# If it sees a source filter which has no MT-mode specified at all, it will automatically use &lt;br /&gt;
# mode 3 instead of the default MT mode.&lt;br /&gt;
SetFilterMTMode(&amp;quot;FFVideoSource&amp;quot;, 3)&lt;br /&gt;
or &lt;br /&gt;
SetFilterMTMode(&amp;quot;FFVideoSource&amp;quot;, MT_SERIALIZED)&lt;br /&gt;
&lt;br /&gt;
# Now comes your script as usual&lt;br /&gt;
FFVideoSource(...)&lt;br /&gt;
Trim(...)&lt;br /&gt;
QTGMC(...)&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
# Enable MT!&lt;br /&gt;
Prefetch(4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Help filling MT modes===&lt;br /&gt;
The following script contains MT modes for various plugins, save it as &amp;lt;tt&amp;gt;mtmodes.avsi&amp;lt;/tt&amp;gt; and place in your auto-load folder. The script is a work-in-progess, there's still lots of plugins that need to be tested and validated. When the script is finalized, the only thing the user will have to write in his script is the &amp;lt;code&amp;gt;Prefetch&amp;lt;/code&amp;gt; call, all &amp;lt;code&amp;gt;SetFilterMtMode&amp;lt;/code&amp;gt; calls will be hidden in a single &amp;lt;tt&amp;gt;.avsi&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
*You can find the latest revision here: [http://publishwith.me/ep/pad/view/ro.rDkwcdWn4k9/latest AviSynth+ MT modes], if you like to contribute please do so [http://publishwith.me/ooiV92hupl here]. Report any issues [http://forum.doom9.org/showthread.php?t=168856 here].&lt;br /&gt;
&lt;br /&gt;
===Choosing the correct MT mode===&lt;br /&gt;
Please do check if the actual output is correct. Fast but corrupted output is useless. Easy way of checking would be using something like &amp;lt;code&amp;gt;[[ColorBars]](1920, 1080, &amp;quot;YV12&amp;quot;).[[AddGrainC]](10000, 10000, seed=1)&amp;lt;/code&amp;gt; as a source filter. It doesn't always work right but will do for most stuff.[http://forum.doom9.org/showthread.php?p=1667434#post1667434] &lt;br /&gt;
&lt;br /&gt;
Source: http://forum.doom9.org/showthread.php?p=1667439#post1667439&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MT_NICE_FILTER&amp;lt;/code&amp;gt;: Some filters (like nnedi3) use some buffers to do their dirty work and with mode 1 you get multiple threads writing data from different frames to the same buffer. This causes corruption when later someone tries to read from this buffer and gets not what was expected. Most of the &amp;quot;more complicated&amp;quot; filters use some kind of temporary storage thus won't work well with this mode. Simple filters might.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MT_MULTI_INSTANCE&amp;lt;/code&amp;gt;: Mode 2 doesn't have this issue because multiple threads will get their own buffers and no data will be shared. Hence mode 2 is the &amp;quot;default&amp;quot; mode which should work with ''most'' filters, but it wastes memory like crazy (take SangNom2 for example - for 1080p YV12 frame, size of temporary buffers is about 10MB, so with 4 threads you get 40MBs on single filter invocation. Now add some usual supersampling to this and multiple invocations in most aa scripts and... you get the idea).&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MT_SERIALIZED&amp;lt;/code&amp;gt;: If the filter requires sequential access or uses some global storage, then mode 3 is the only way to go. Source filter (filters without clip parameter) are autodetected, they do not need an explicit MT mode setting, they will automatically use MT_SERIALIZED.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MT_SPECIAL_MT&amp;lt;/code&amp;gt;: Experimental. Now use only for MP_Pipeline, the filter is like a source filter (no input clip parameter), internally multithreaded, and suffer heavy performance degradation from any of the three regular mt modes. Really, this is a workaround. Available from AviSynth+ version r2440.&lt;br /&gt;
&lt;br /&gt;
===Closing notes (don't skip!)===&lt;br /&gt;
*Remember that MT is only stable as long as you have specified a correct MT mode for all filters.&lt;br /&gt;
*Instead of the numbers 1-2-3-4, you can also use symbolic names for MT modes: MT_NICE_FILTER (1), MT_MULTI_INSTANCE (2), MT_SERIALIZED (3), MT_SPECIAL_MT (4)&lt;br /&gt;
*Mode 3 (MT_SERIALIZED) is evil. It is necessary for some filters, and it is usually no problem for source filters, but it can literally completely negate all advantages of MT, if such a filter is placed near the end of your script. Let us know if you meet a non-source mode 3 filter, we might be able to do something about it, but in general, avoid such calls if you want performance. (And of course, insert what you have found into here.)&lt;br /&gt;
*The new caches will save you a lot of memory in single-threaded scripts, but due to the way they work, they will also use more memory than before with MT enabled. The memory usage will scale much closer with the number of threads you have. Just something to keep in mind.&lt;br /&gt;
*MT-enabled AviSynth+ triggers a latent bug in AvsPmod. Until a new version of AvsPmod is officially released, use [http://forum.doom9.org/showpost.php?p=1801766&amp;amp;postcount=1202 this build].&amp;lt;!--[http://cloud.pados.hu/index.php/s/0e0d5588307a7b0474742711731699b6/download?path=%2F&amp;amp;files=AvsPmod-i386.zip]--&amp;gt; A thousand thanks to vdcrim for the fix.&lt;br /&gt;
*Using too many threads can easily hurt performance a lot, because there are other bottlenecks too in your PC than just the CPU. For example, if you have a quad-core machine with 8 logical cores, less than 8 threads will often work much better than 8 or more.&lt;br /&gt;
&lt;br /&gt;
===Informational links===&lt;br /&gt;
Links contain bits and pieces of how MT works in AviSynth+, correct usage, and other things MT.&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1658385#post1658385&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1662222#post1662222&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1667529#post1667529&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1667977#post1667977&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1668266#post1668266&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1669680#post1669680&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1670372#post1670372&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1673093#post1673093&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1673144#post1673144&lt;br /&gt;
*http://forum.doom9.org/showthread.php?p=1682034#post1682034&lt;br /&gt;
*http://forum.doom9.org/showpost.php?p=1668101&amp;amp;postcount=92&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
* [[Avisynthplus/Changelog|Changelog, Part 1]]&lt;br /&gt;
* [https://github.com/pinterf/AviSynthPlus/releases Changelog, Part 2 (github)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AviSynth]]&lt;br /&gt;
[[Category:Avisynthplus]]&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ConvertBits</id>
		<title>ConvertBits</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ConvertBits"/>
				<updated>2018-01-26T23:01:17Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: deprecated arguments - see https://forum.doom9.org/showthread.php?p=1831880#post1831880&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;
{{AvsPlusFilter}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;!-- ==== Syntax and Parameters ==== --&amp;gt;&lt;br /&gt;
==== ConvertBits ====&lt;br /&gt;
Changes bit depth while keeping [[Avisynthplus_color_formats|color format]] the same, if possible. &amp;lt;br&amp;gt;&lt;br /&gt;
If the conversion is not possible &amp;amp;ndash; for example, converting [[RGB32]] to 16bit &amp;amp;ndash; an error is raised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FuncDef&lt;br /&gt;
|ConvertBits(clip, int bits [, bool ''truerange'', int ''dither'', float ''scale'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(older bit-depth conversion filters &amp;amp;ndash; deprecated)''&lt;br /&gt;
&lt;br /&gt;
{{Func3Def&lt;br /&gt;
|ConvertToFloat(clip, int bits [, bool ''truerange'', int ''dither'', float ''scale'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo16bit(clip, int bits [, bool ''truerange'', int ''dither'', float ''scale'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )&lt;br /&gt;
|ConvertTo8bit(clip, int bits [, bool ''truerange'', int ''dither'', float ''scale'', int ''dither_bits'', bool ''fulls'', bool ''fulld'' ] )}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{{Par2||clip|(required)}}&lt;br /&gt;
::Source clip. &lt;br /&gt;
&lt;br /&gt;
:{{Par2||bits|(required)}}&lt;br /&gt;
::Bit depth of output clip. Valid values: ''8'', ''10'', ''12'', ''14'', ''16'' (integer) or ''32'' (floating point). &lt;br /&gt;
&lt;br /&gt;
:{{Par2|truerange|bool|true}}&lt;br /&gt;
::'''''Deprecated &amp;amp;ndash; use the default value.'''''&lt;br /&gt;
&lt;br /&gt;
{{HiddenAnchor|dither}}&lt;br /&gt;
:{{Par2|dither|int|-1}}&lt;br /&gt;
::If ''0'', add [[Ordered_dithering|ordered dither]]; if ''-1'' (default), do not add dither.&lt;br /&gt;
::Dithering is allowed only for scaling down (bit depth reduction), not up.&lt;br /&gt;
::Dithering is allowed only for 10-16bit (not 32bit float) sources.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|scale|float|1.0}}&lt;br /&gt;
::'''''Deprecated &amp;amp;ndash; use the default value.'''''&lt;br /&gt;
&lt;br /&gt;
:{{Par2|dither_bits|int|{{Template:FuncArg|bits}}}}&lt;br /&gt;
::Exaggerated dither effect: dither to a lower color depth than required by {{FuncArg|bits}} argument.&lt;br /&gt;
::Has no effect if {{FuncArg|dither}}=''-1'' (off).&lt;br /&gt;
::* Must be an even number from ''2'' to {{FuncArg|bits}}, inclusive.&lt;br /&gt;
::* In addition, must be &amp;gt;= ({{FuncArg|clip}}.[[Clip_properties#Color_Format|BitsPerComponent]]-8).&lt;br /&gt;
:::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left&amp;quot;|''Examples''&lt;br /&gt;
!Conversion&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
!Allowed Values&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 12bit&lt;br /&gt;
|8, 10, 12&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; 10bit&lt;br /&gt;
|8, 10&lt;br /&gt;
|-&lt;br /&gt;
|16 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; 10bit&lt;br /&gt;
|6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|14 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|6, 8&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; 10bit&lt;br /&gt;
|4, 6, 8, 10&lt;br /&gt;
|-&lt;br /&gt;
|12 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|4, 6, 8&lt;br /&gt;
|-&lt;br /&gt;
|10 &amp;amp;rarr; &amp;amp;nbsp;&amp;amp;nbsp;8bit&lt;br /&gt;
|2, 4, 6, 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulls|bool|(auto)}}&lt;br /&gt;
::'''''Use the default value unless you know what you are doing.'''''&lt;br /&gt;
::If ''true'' (RGB default), scale by multiplication: 0-255 &amp;amp;rarr; 0-65535;&lt;br /&gt;
::if ''false'' (YUV default), scale by [[wikipedia:Arithmetic_shift|bit-shifting]].&lt;br /&gt;
::Use case: override greyscale conversion to fullscale instead of bit-shifts.&lt;br /&gt;
::Conversion from and to float is always full-scale.&lt;br /&gt;
::Alpha plane is always treated as full scale.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|fulld|bool|{{Template:FuncArg|fulls}}}}&lt;br /&gt;
::'''''Use the default value unless you know what you are doing.'''''&lt;br /&gt;
::At the moment, ''must'' match {{FuncArg|fulls}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em; min-width:42em;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #combine greyscale clips into YUVA clip&lt;br /&gt;
 U8 = source.UToY8()&lt;br /&gt;
 V8 = source.VToY8()&lt;br /&gt;
 Y8 = source.ConvertToY()&lt;br /&gt;
 A8 = source.AddAlphaPlane(128).AToY8()&lt;br /&gt;
 CombinePlanes(Y8, U8, V8, A8, planes=&amp;quot;YUVA&amp;quot;, source_planes=&amp;quot;YYYY&amp;quot;, &lt;br /&gt;
 \               sample_clip=source) #pixel_type=&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 # Copy planes between planar RGB(A) and YUV(A) without any conversion&lt;br /&gt;
 # yuv 4:4:4 &amp;lt;-&amp;gt; planar rgb&lt;br /&gt;
 source = last.ConvertBits(32) # 4:4:4&lt;br /&gt;
 cast_to_planarrgb = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBPS&amp;quot;)&lt;br /&gt;
 # get back a clip identical with &amp;quot;source&amp;quot;&lt;br /&gt;
 cast_to_yuv = CombinePlanes(cast_to_planarrgb, planes=&amp;quot;YUV&amp;quot;, source_planes=&amp;quot;RGB&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;YUV444PS&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #create a black and white planar RGB clip using Y channel&lt;br /&gt;
 #source is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(source, planes=&amp;quot;RGB&amp;quot;, source_planes=&amp;quot;YYY&amp;quot;, &lt;br /&gt;
 \               pixel_type=&amp;quot;RGBP8&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|54|2}} &amp;gt;&lt;br /&gt;
 #copy luma from one clip, U and V from another&lt;br /&gt;
 #source is the template&lt;br /&gt;
 #sourceY is a Y or YUV clip&lt;br /&gt;
 #sourceUV is a YUV clip&lt;br /&gt;
 grey = CombinePlanes(sourceY, sourceUV, planes=&amp;quot;YUV&amp;quot;, &lt;br /&gt;
 \               source_planes=&amp;quot;YUV&amp;quot;, sample_clip = source)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| 20170310 r2440&lt;br /&gt;
| parameter ''dither_bits''&lt;br /&gt;
|-&lt;br /&gt;
| 20170202 r2420&lt;br /&gt;
| parameters ''fulls'', ''fulld''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_filters]]&lt;br /&gt;
[[Category:Colourspace_Conversion]]&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;br /&gt;
[[Category:Avisynthplus]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/ConvertStacked</id>
		<title>ConvertStacked</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/ConvertStacked"/>
				<updated>2018-01-22T00:31:13Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: &amp;quot;bits&amp;quot; argument verified; add example&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;
{{AvsPlusFilter}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:42em&amp;quot; &amp;gt;&lt;br /&gt;
These conversion filters are to allow filters that [[High_bit-depth_Support_with_Avisynth#Processing_High_Bit-depth_Video_with_AviSynth|use 16-bit video in a pseudo-8-bit colorspace]] to interact with [[Avisynthplus_color_formats|AviSyth+ high bit depth formats]]. They are intended to serve as a stopgap until more plugins appear supporting true high bit depth.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:42em&amp;quot; &amp;gt;&lt;br /&gt;
*In '''[[Stack16]]''', the picture is made of two parts: one containing the highest 8 bits (MSB) for each pixel, stacked on top of another containing the lowest 8 bits (LSB).&lt;br /&gt;
*'''Double-Width''' is similar, but the MSBs and LSBs are horizontally ''interleaved''. [[TODO|TODO:&amp;amp;nbsp;verify]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax and Parameters ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accepts a 16-bit clip and returns a stacked 8-bit clip.&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef|ConvertToStacked(clip ''clip'' ] )}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef|ConvertToDoubleWidth(clip ''clip'' ] )}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|}}&lt;br /&gt;
::Source clip. Must be native 16 bit: YUV420P16, YUV422P16, YUV444P16, Y16. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accepts a stacked 8-bit clip and returns a 16-bit clip.&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef|ConvertFromStacked(clip ''clip'', int ''bits'' ] )}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef|ConvertFromDoubleWidth(clip ''clip'', int ''bits'' ] )}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|}}&lt;br /&gt;
::Source clip. Must be YV12, YV16, YV24 or Y8. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|bits|int|16}}&lt;br /&gt;
::Bit depth of returned clip. Must match the original bit depth. For example,&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|4}} &amp;gt;&lt;br /&gt;
 ## Decoding 10bit, YUV 4:2:0 source&lt;br /&gt;
 [[LSMASHSource/LWLibavVideoSource|LWLibavVideoSource]](&amp;lt;''path''&amp;gt;, stacked=true, format=&amp;quot;YUV420P10&amp;quot;)&lt;br /&gt;
 '''ConvertFromStacked'''(bits=10)&lt;br /&gt;
 [[ConvertBits]](8, dither=0) ## '0' means on, '-1' means off&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| 20170310 r2440&lt;br /&gt;
| first added&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal_filters]]&lt;br /&gt;
[[Category:Colourspace_Conversion]]&lt;br /&gt;
[[Category:Avisynthplus]]&lt;br /&gt;
[[Category:Deep_color_tools]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/LSMASHSource/LWLibavVideoSource</id>
		<title>LSMASHSource/LWLibavVideoSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/LSMASHSource/LWLibavVideoSource"/>
				<updated>2018-01-22T00:30:29Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: format example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{FilterCat|External_filters|Plugin_functions|Source_filters}}&lt;br /&gt;
This function uses [http://en.wikipedia.org/wiki/Libav#Video_codecs libavcodec] as a video decoder and libavformat as a demuxer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|LWLibavVideoSource (string source, int &amp;quot;stream_index&amp;quot;, int &amp;quot;threads&amp;quot;, bool &amp;quot;cache&amp;quot;, int &amp;quot;seek_mode&amp;quot;, int &amp;quot;seek_threshold&amp;quot;, bool &amp;quot;dr&amp;quot;, int &amp;quot;fpsnum&amp;quot;, int &amp;quot;fpsden&amp;quot;, bool &amp;quot;repeat&amp;quot;, int &amp;quot;dominance&amp;quot;, bool &amp;quot;stacked&amp;quot;, string &amp;quot;format&amp;quot;, string &amp;quot;decoder&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::The path of the source file; path can be omitted if the source file is in the same directory as the AviSynth script (*.avs).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stream_index|int|-1}}&lt;br /&gt;
:::The stream index to open in the source file. The value -1 means trying to get the video stream which has the largest resolution.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|threads|int|0}}&lt;br /&gt;
:::The number of threads to decode a stream by libavcodec.&lt;br /&gt;
:::The value 0 means the number of threads is determined automatically and then the maximum value will be up to 16.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cache|bool|true}}&lt;br /&gt;
:::Create the index file (.lwi) to the same directory as the source file if set to true.&lt;br /&gt;
:::The index file avoids parsing all frames in the source file at the next or later access.&lt;br /&gt;
:::Parsing all frames is very important for frame accurate seek.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|seek_mode|int|0}}&lt;br /&gt;
:::How to process when any error occurs during decoding a video frame.&lt;br /&gt;
::::*0 : Normal&lt;br /&gt;
:::::This mode retries sequential decoding from the next closest RAP up to 3 cycles when any decoding error occurs.&lt;br /&gt;
:::::If all 3 trial failed, retry sequential decoding from the last RAP by ignoring trivial errors.&lt;br /&gt;
:::::Still error occurs, then return the last returned frame.&lt;br /&gt;
::::*1 : Unsafe&lt;br /&gt;
:::::This mode retries sequential decoding from the next closest RAP up to 3 cycles when any fatal decoding error occurs.&lt;br /&gt;
:::::If all 3 trial failed, then return the last returned frame.&lt;br /&gt;
::::*2 : Aggressive&lt;br /&gt;
:::::This mode returns the last returned frame when any fatal decoding error occurs.&lt;br /&gt;
::: * RAP is an abbreviation of random accessible point.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|seek_threshold|int|10}}&lt;br /&gt;
:::The threshold to decide whether a decoding starts from the closest RAP to get the requested video frame or doesn't.&lt;br /&gt;
::::Let's say&lt;br /&gt;
:::::the threshold is T,&lt;br /&gt;
::::and&lt;br /&gt;
:::::you request to seek the M-th frame called f(M) from the N-th frame called f(N).&lt;br /&gt;
::::If M &amp;gt; N and M - N &amp;lt;= T, then&lt;br /&gt;
:::::the decoder tries to get f(M) by decoding frames from f(N) sequentially.&lt;br /&gt;
::::If M &amp;lt; N or M - N &amp;gt; T, then&lt;br /&gt;
:::::check the closest RAP at the first.&lt;br /&gt;
:::::After the check, if the closest RAP is identical with the last RAP, do the same as the case M &amp;gt; N and M - N &amp;lt;= T.&lt;br /&gt;
:::::Otherwise, the decoder tries to get f(M) by decoding frames from the frame which is the closest RAP sequentially.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::: * RAP is an abbreviation of random accessible point.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|dr|bool|false}}&lt;br /&gt;
:::Try direct rendering from the video decoder if set to true.&lt;br /&gt;
:::The output resolution will be aligned to be mod16-width and mod32-height by assuming two vertical 16x16 macroblock.&lt;br /&gt;
:::For H.264 streams, in addition, 2 lines could be added because of the optimized chroma MC.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fpsnum|int|0}}&lt;br /&gt;
:::Forced frame rate numerator.&lt;br /&gt;
:::If frame rate is set to a positive value, output frame rate is forced to the specified value by padding and/or dropping frames.&lt;br /&gt;
:::Otherwise, output frame rate is set to a computed average frame rate and the output process is performed by actual frame-by-frame.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fpsden|int|1}}&lt;br /&gt;
:::Forced frame rate denominator.&lt;br /&gt;
:::See 'fpsnum' in details.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|repeat|bool|false}}&lt;br /&gt;
:::Reconstruct frames by the flags specified in video stream and then treat all frames as interlaced if set to true and usable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|dominance|int|0}}&lt;br /&gt;
:::Which field, top or bottom, is displayed first.&lt;br /&gt;
::::*0 : Obey source flags&lt;br /&gt;
::::*1 : TFF i.e. Top -&amp;gt; Bottom&lt;br /&gt;
::::*2 : BFF i.e. Bottom -&amp;gt; Top&lt;br /&gt;
:::This option is enabled only if one or more of the following conditions is true.&lt;br /&gt;
::::- 'repeat' is set to true.&lt;br /&gt;
::::- There is a video frame consisting of two separated field coded pictures&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::Use the stacked format for a hack of AviSynth high bit-depth support if set to true.&lt;br /&gt;
:::Note: direct rendering is not available at all if stacked format is used.&lt;br /&gt;
:::The stacked format splits MSB and LSB vertically, and MSB comes on top of output image.&lt;br /&gt;
:::(see [[#Examples|Examples]] section below)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|format|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
:::Force specified output pixel format if 'format' is specified.&lt;br /&gt;
:::The following formats are available currently.&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;| Format&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P8&amp;quot;&lt;br /&gt;
|[[YV12]] / 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P8&amp;quot;&lt;br /&gt;
|[[YV16]] / 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
|[[YV24]] / 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV410P8&amp;quot;&lt;br /&gt;
|4:1:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV411P8&amp;quot;&lt;br /&gt;
|[[YV411]] / 4:1:1 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P9&amp;quot;&lt;br /&gt;
|9-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P9&amp;quot;&lt;br /&gt;
|9-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P9&amp;quot;&lt;br /&gt;
|9-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P10&amp;quot;&lt;br /&gt;
|10-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P10&amp;quot;&lt;br /&gt;
|10-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P10&amp;quot;&lt;br /&gt;
|10-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P12&amp;quot;&lt;br /&gt;
|12-bit 4:2:0 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P12&amp;quot;&lt;br /&gt;
|12-bit 4:2:2 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P12&amp;quot;&lt;br /&gt;
|12-bit 4:4:4 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P14&amp;quot;&lt;br /&gt;
|14-bit 4:2:0 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P14&amp;quot;&lt;br /&gt;
|14-bit 4:2:2 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P14&amp;quot;&lt;br /&gt;
|14-bit 4:4:4 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P16&amp;quot;&lt;br /&gt;
|16-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P16&amp;quot;&lt;br /&gt;
|16-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P16&amp;quot;&lt;br /&gt;
|16-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Y8&amp;quot;&lt;br /&gt;
|[[Y8]] / Grayscale&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUY2&amp;quot;&lt;br /&gt;
|[[YUY2]] / 4:2:2 interleaved &lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;RGB24&amp;quot;&lt;br /&gt;
|[[RGB24]] / 4:4:4 interleaved&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;RGB32&amp;quot;&lt;br /&gt;
|[[RGB32]] / 4:4:4:4 interleaved&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| *YV12, YV16 and YV24 allow bit depths greater than 8.&lt;br /&gt;
|}&lt;br /&gt;
:::Note: direct rendering is not available at all if pixel format is forced.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|decoder|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
:::Names of preferred decoder candidates, separated by comma. For instance, if you prefer to use the 'h264_qsv' and 'mpeg2_qsv' decoders instead of the generally used 'h264' and 'mpeg2video' decoder, then specify as &amp;quot;h264_qsv,mpeg2_qsv&amp;quot;. The evaluations are done in the written order and the first matched decoder, if any, is used.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 ## LWLibavVideoSource with default settings:&lt;br /&gt;
 '''LWLibavVideoSource'''(&amp;quot;source.m2ts&amp;quot;, stream_index=-1, threads=0, &lt;br /&gt;
 \                  cache=true, seek_mode=0, seek_threshold=10, dr=false, &lt;br /&gt;
 \                  fpsnum=0, fpsden=1, repeat=false, dominance=0, stacked=false, &lt;br /&gt;
 \                  format=&amp;quot;&amp;quot;, decoder=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 ## Decoding 10bit, YUV 4:2:0 source&lt;br /&gt;
 '''LWLibavVideoSource'''(&amp;lt;''path''&amp;gt;, stacked=true, format=&amp;quot;YUV420P10&amp;quot;)&lt;br /&gt;
 [[ConvertFromStacked]](bits=10)&lt;br /&gt;
 [[ConvertBits]](8, dither=0) ## '0' means on, '-1' means off&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[LSMASHSource]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/LSMASHSource/LSMASHVideoSource</id>
		<title>LSMASHSource/LSMASHVideoSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/LSMASHSource/LSMASHVideoSource"/>
				<updated>2018-01-22T00:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: &amp;quot;stacked&amp;quot; argument: add example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
{{FilterCat|External_filters|Plugin_functions|Source_filters}}&lt;br /&gt;
'''LSMASHVideoSource''' uses [http://en.wikipedia.org/wiki/Libav#Video_codecs libavcodec] as a video decoder and [http://github.com/l-smash/l-smash L-SMASH] as a demuxer. Recommended for MP4, MOV, [http://en.wikipedia.org/wiki/ISO_base_media_file_format ISO Base Media] and its derived file formats. One advantage of LSMASHVideoSource is that it doesn't need to create an index file for its supported formats.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|LSMASHVideoSource (string source, int &amp;quot;track&amp;quot;, int &amp;quot;threads&amp;quot;, int &amp;quot;seek_mode&amp;quot;, int &amp;quot;seek_threshold&amp;quot;, bool &amp;quot;dr&amp;quot;, int &amp;quot;fpsnum&amp;quot;, int &amp;quot;fpsden&amp;quot;, bool &amp;quot;stacked&amp;quot;, string &amp;quot;format&amp;quot;, string &amp;quot;decoder&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::The path of the source file; path can be omitted if the source file is in the same directory as the AviSynth script (*.avs).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|track|int|0}}&lt;br /&gt;
:::The track number to open in the source file.&lt;br /&gt;
:::The value 0 means trying to get the first detected video stream.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|threads|int|0}}&lt;br /&gt;
:::The number of threads to decode a stream by [[wikipedia:Libavcodec|libavcodec]].&lt;br /&gt;
:::The value 0 means the number of threads is determined automatically and then the maximum value will be up to 16.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|seek_mode|int|0}}&lt;br /&gt;
:::How to process when any error occurs during decoding a video frame.&lt;br /&gt;
::::*0 : Normal&lt;br /&gt;
:::::This mode retries sequential decoding from the next closest RAP* up to 3 cycles when any decoding error occurs.&lt;br /&gt;
:::::If all 3 trial failed, retry sequential decoding from the last RAP by ignoring trivial errors.&lt;br /&gt;
:::::Still error occurs, then return the last returned frame.&lt;br /&gt;
::::*1 : Unsafe&lt;br /&gt;
:::::This mode retries sequential decoding from the next closest RAP up to 3 cycles when any fatal decoding error occurs.&lt;br /&gt;
:::::If all 3 trial failed, then return the last returned frame.&lt;br /&gt;
::::*2 : Aggressive&lt;br /&gt;
:::::This mode returns the last returned frame when any fatal decoding error occurs.&lt;br /&gt;
::: * RAP is an abbreviation of random accessible point.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|seek_threshold|int|10}}&lt;br /&gt;
:::The threshold to decide whether a decoding starts from the closest RAP* to get the requested video frame or doesn't.&lt;br /&gt;
::::Let's say&lt;br /&gt;
:::::the threshold is T,&lt;br /&gt;
::::and&lt;br /&gt;
:::::you request to seek the M-th frame called f(M) from the N-th frame called f(N).&lt;br /&gt;
::::If M &amp;gt; N and M - N &amp;lt;= T, then&lt;br /&gt;
:::::the decoder tries to get f(M) by decoding frames from f(N) sequentially.&lt;br /&gt;
::::If M &amp;lt; N or M - N &amp;gt; T, then&lt;br /&gt;
:::::check the closest RAP at the first.&lt;br /&gt;
:::::After the check, if the closest RAP is identical with the last RAP, do the same as the case M &amp;gt; N and M - N &amp;lt;= T.&lt;br /&gt;
:::::Otherwise, the decoder tries to get f(M) by decoding frames from the frame which is the closest RAP sequentially.&lt;br /&gt;
::: * RAP is an abbreviation of random accessible point.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|dr|bool|false}}&lt;br /&gt;
:::Try direct rendering from the video decoder if set to true.&lt;br /&gt;
:::The output resolution will be aligned to be mod16-width and mod32-height by assuming two vertical 16x16 macroblock.&lt;br /&gt;
:::For H.264 streams, in addition, 2 lines could be added because of the optimized chroma MC.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fpsnum|int|0}}&lt;br /&gt;
:::Forced frame rate numerator.&lt;br /&gt;
:::If frame rate is set to a positive value, output frame rate is forced to the specified value by padding and/or dropping frames.&lt;br /&gt;
:::Otherwise, output frame rate is set to a computed average frame rate and the output process is performed by actual frame-by-frame.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fpsden|int|1}}&lt;br /&gt;
:::Forced frame rate denominator.&lt;br /&gt;
:::See 'fpsnum' above.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::Use the stacked format for a hack of AviSynth high bit-depth support if set to true.&lt;br /&gt;
:::Note: direct rendering is not available at all if stacked format is used.&lt;br /&gt;
:::The stacked format splits MSB and LSB vertically, and MSB comes on top of output image.&lt;br /&gt;
:::(see [[#Examples|Examples]] section below)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|format|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
:::Force specified output pixel format if 'format' is specified.&lt;br /&gt;
:::The following formats are available currently.&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;| Format&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P8&amp;quot;&lt;br /&gt;
|[[YV12]] / 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P8&amp;quot;&lt;br /&gt;
|[[YV16]] / 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
|[[YV24]] / 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV410P8&amp;quot;&lt;br /&gt;
|4:1:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV411P8&amp;quot;&lt;br /&gt;
|[[YV411]] / 4:1:1 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P9&amp;quot;&lt;br /&gt;
|9-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P9&amp;quot;&lt;br /&gt;
|9-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P9&amp;quot;&lt;br /&gt;
|9-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P10&amp;quot;&lt;br /&gt;
|10-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P10&amp;quot;&lt;br /&gt;
|10-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P10&amp;quot;&lt;br /&gt;
|10-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P12&amp;quot;&lt;br /&gt;
|12-bit 4:2:0 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P12&amp;quot;&lt;br /&gt;
|12-bit 4:2:2 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P12&amp;quot;&lt;br /&gt;
|12-bit 4:4:4 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P14&amp;quot;&lt;br /&gt;
|14-bit 4:2:0 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P14&amp;quot;&lt;br /&gt;
|14-bit 4:2:2 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P14&amp;quot;&lt;br /&gt;
|14-bit 4:4:4 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P16&amp;quot;&lt;br /&gt;
|16-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P16&amp;quot;&lt;br /&gt;
|16-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P16&amp;quot;&lt;br /&gt;
|16-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Y8&amp;quot;&lt;br /&gt;
|[[Y8]] / Grayscale&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUY2&amp;quot;&lt;br /&gt;
|[[YUY2]] / 4:2:2 interleaved &lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;RGB24&amp;quot;&lt;br /&gt;
|[[RGB24]] / 4:4:4 interleaved&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;RGB32&amp;quot;&lt;br /&gt;
|[[RGB32]] / 4:4:4:4 interleaved&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| * YV12, YV16 and YV24 allow bit depths greater than 8.&lt;br /&gt;
|}&lt;br /&gt;
:::Note: direct rendering is not available at all if pixel format is forced.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|decoder|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
:::Names of preferred decoder candidates, separated by comma. For instance, if you prefer to use the 'h264_qsv' and 'mpeg2_qsv' decoders instead of the generally used 'h264' and 'mpeg2video' decoder, then specify as &amp;quot;h264_qsv,mpeg2_qsv&amp;quot;. The evaluations are done in the written order and the first matched decoder, if any, is used.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 ## LSMASHVideoSource with default settings:&lt;br /&gt;
 '''LSMASHVideoSource'''(&amp;quot;source.mp4&amp;quot;, track=0, threads=0, seek_mode=0, &lt;br /&gt;
 \                 seek_threshold=10, dr=false, fpsnum=0, fpsden=1, stacked=false, &lt;br /&gt;
 \                 format=&amp;quot;&amp;quot;, decoder=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|56|1}} &amp;gt;&lt;br /&gt;
 ## Decoding 10bit, YUV 4:2:0 source&lt;br /&gt;
 '''LSMASHVideoSource'''(&amp;lt;''path''&amp;gt;, stacked=true, format=&amp;quot;YUV420P10&amp;quot;)&lt;br /&gt;
 [[ConvertFromStacked]](bits=10)&lt;br /&gt;
 [[ConvertBits]](8, dither=0) ## '0' means on, '-1' means off&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[LSMASHSource]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/LSMASHSource/LWLibavVideoSource</id>
		<title>LSMASHSource/LWLibavVideoSource</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/LSMASHSource/LWLibavVideoSource"/>
				<updated>2018-01-22T00:19:18Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: &amp;quot;stacked&amp;quot; argument: add example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Plugin_functions|Source_filters}}&lt;br /&gt;
This function uses [http://en.wikipedia.org/wiki/Libav#Video_codecs libavcodec] as a video decoder and libavformat as a demuxer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|LWLibavVideoSource (string source, int &amp;quot;stream_index&amp;quot;, int &amp;quot;threads&amp;quot;, bool &amp;quot;cache&amp;quot;, int &amp;quot;seek_mode&amp;quot;, int &amp;quot;seek_threshold&amp;quot;, bool &amp;quot;dr&amp;quot;, int &amp;quot;fpsnum&amp;quot;, int &amp;quot;fpsden&amp;quot;, bool &amp;quot;repeat&amp;quot;, int &amp;quot;dominance&amp;quot;, bool &amp;quot;stacked&amp;quot;, string &amp;quot;format&amp;quot;, string &amp;quot;decoder&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|source|string| }}&lt;br /&gt;
:::The path of the source file; path can be omitted if the source file is in the same directory as the AviSynth script (*.avs).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stream_index|int|-1}}&lt;br /&gt;
:::The stream index to open in the source file. The value -1 means trying to get the video stream which has the largest resolution.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|threads|int|0}}&lt;br /&gt;
:::The number of threads to decode a stream by libavcodec.&lt;br /&gt;
:::The value 0 means the number of threads is determined automatically and then the maximum value will be up to 16.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cache|bool|true}}&lt;br /&gt;
:::Create the index file (.lwi) to the same directory as the source file if set to true.&lt;br /&gt;
:::The index file avoids parsing all frames in the source file at the next or later access.&lt;br /&gt;
:::Parsing all frames is very important for frame accurate seek.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|seek_mode|int|0}}&lt;br /&gt;
:::How to process when any error occurs during decoding a video frame.&lt;br /&gt;
::::*0 : Normal&lt;br /&gt;
:::::This mode retries sequential decoding from the next closest RAP up to 3 cycles when any decoding error occurs.&lt;br /&gt;
:::::If all 3 trial failed, retry sequential decoding from the last RAP by ignoring trivial errors.&lt;br /&gt;
:::::Still error occurs, then return the last returned frame.&lt;br /&gt;
::::*1 : Unsafe&lt;br /&gt;
:::::This mode retries sequential decoding from the next closest RAP up to 3 cycles when any fatal decoding error occurs.&lt;br /&gt;
:::::If all 3 trial failed, then return the last returned frame.&lt;br /&gt;
::::*2 : Aggressive&lt;br /&gt;
:::::This mode returns the last returned frame when any fatal decoding error occurs.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::: * RAP is an abbreviation of random accessible point.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|seek_threshold|int|10}}&lt;br /&gt;
:::The threshold to decide whether a decoding starts from the closest RAP to get the requested video frame or doesn't.&lt;br /&gt;
::::Let's say&lt;br /&gt;
:::::the threshold is T,&lt;br /&gt;
::::and&lt;br /&gt;
:::::you request to seek the M-th frame called f(M) from the N-th frame called f(N).&lt;br /&gt;
::::If M &amp;gt; N and M - N &amp;lt;= T, then&lt;br /&gt;
:::::the decoder tries to get f(M) by decoding frames from f(N) sequentially.&lt;br /&gt;
::::If M &amp;lt; N or M - N &amp;gt; T, then&lt;br /&gt;
:::::check the closest RAP at the first.&lt;br /&gt;
:::::After the check, if the closest RAP is identical with the last RAP, do the same as the case M &amp;gt; N and M - N &amp;lt;= T.&lt;br /&gt;
:::::Otherwise, the decoder tries to get f(M) by decoding frames from the frame which is the closest RAP sequentially.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::: * RAP is an abbreviation of random accessible point.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|dr|bool|false}}&lt;br /&gt;
:::Try direct rendering from the video decoder if set to true.&lt;br /&gt;
:::The output resolution will be aligned to be mod16-width and mod32-height by assuming two vertical 16x16 macroblock.&lt;br /&gt;
:::For H.264 streams, in addition, 2 lines could be added because of the optimized chroma MC.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fpsnum|int|0}}&lt;br /&gt;
:::Forced frame rate numerator.&lt;br /&gt;
:::If frame rate is set to a positive value, output frame rate is forced to the specified value by padding and/or dropping frames.&lt;br /&gt;
:::Otherwise, output frame rate is set to a computed average frame rate and the output process is performed by actual frame-by-frame.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fpsden|int|1}}&lt;br /&gt;
:::Forced frame rate denominator.&lt;br /&gt;
:::See 'fpsnum' in details.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|repeat|bool|false}}&lt;br /&gt;
:::Reconstruct frames by the flags specified in video stream and then treat all frames as interlaced if set to true and usable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|dominance|int|0}}&lt;br /&gt;
:::Which field, top or bottom, is displayed first.&lt;br /&gt;
::::*0 : Obey source flags&lt;br /&gt;
::::*1 : TFF i.e. Top -&amp;gt; Bottom&lt;br /&gt;
::::*2 : BFF i.e. Bottom -&amp;gt; Top&lt;br /&gt;
:::This option is enabled only if one or more of the following conditions is true.&lt;br /&gt;
::::- 'repeat' is set to true.&lt;br /&gt;
::::- There is a video frame consisting of two separated field coded pictures&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|stacked|bool|false}}&lt;br /&gt;
:::Use the stacked format for a hack of AviSynth high bit-depth support if set to true.&lt;br /&gt;
:::Note: direct rendering is not available at all if stacked format is used.&lt;br /&gt;
:::The stacked format splits MSB and LSB vertically, and MSB comes on top of output image.&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|46|6}} &amp;gt;&lt;br /&gt;
 ## Decoding 10bit, YUV 4:2:0 source&lt;br /&gt;
 '''LWLibavVideoSource'''(&amp;lt;''path''&amp;gt;, stacked=true, format=&amp;quot;YUV420P10&amp;quot;)&lt;br /&gt;
 [[ConvertFromStacked]](bits=10)&lt;br /&gt;
 [[ConvertBits]](8, dither=0) ## '0' means on, '-1' means off&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|format|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
:::Force specified output pixel format if 'format' is specified.&lt;br /&gt;
:::The following formats are available currently.&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;| Format&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P8&amp;quot;&lt;br /&gt;
|[[YV12]] / 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P8&amp;quot;&lt;br /&gt;
|[[YV16]] / 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P8&amp;quot;&lt;br /&gt;
|[[YV24]] / 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV410P8&amp;quot;&lt;br /&gt;
|4:1:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV411P8&amp;quot;&lt;br /&gt;
|[[YV411]] / 4:1:1 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P9&amp;quot;&lt;br /&gt;
|9-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P9&amp;quot;&lt;br /&gt;
|9-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P9&amp;quot;&lt;br /&gt;
|9-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P10&amp;quot;&lt;br /&gt;
|10-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P10&amp;quot;&lt;br /&gt;
|10-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P10&amp;quot;&lt;br /&gt;
|10-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P12&amp;quot;&lt;br /&gt;
|12-bit 4:2:0 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P12&amp;quot;&lt;br /&gt;
|12-bit 4:2:2 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P12&amp;quot;&lt;br /&gt;
|12-bit 4:4:4 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P14&amp;quot;&lt;br /&gt;
|14-bit 4:2:0 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P14&amp;quot;&lt;br /&gt;
|14-bit 4:2:2 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P14&amp;quot;&lt;br /&gt;
|14-bit 4:4:4 planar - (ffmpeg only)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV420P16&amp;quot;&lt;br /&gt;
|16-bit 4:2:0 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV422P16&amp;quot;&lt;br /&gt;
|16-bit 4:2:2 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUV444P16&amp;quot;&lt;br /&gt;
|16-bit 4:4:4 planar&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Y8&amp;quot;&lt;br /&gt;
|[[Y8]] / Grayscale&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;YUY2&amp;quot;&lt;br /&gt;
|[[YUY2]] / 4:2:2 interleaved &lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;RGB24&amp;quot;&lt;br /&gt;
|[[RGB24]] / 4:4:4 interleaved&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;RGB32&amp;quot;&lt;br /&gt;
|[[RGB32]] / 4:4:4:4 interleaved&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| *YV12, YV16 and YV24 allow bit depths greater than 8.&lt;br /&gt;
|}&lt;br /&gt;
:::Note: direct rendering is not available at all if pixel format is forced.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|decoder|string|&amp;quot;&amp;quot;}}&lt;br /&gt;
:::Same as 'decoder' of [[LSMASHSource/LSMASHVideoSource|LSMASHVideoSource]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
LWLibavVideoSource with default settings:&lt;br /&gt;
 LWLibavVideoSource(source=&amp;quot;source.m2ts&amp;quot;, stream_index=-1, threads=0, &lt;br /&gt;
 \                  cache=true, seek_mode=0, seek_threshold=10, dr=false, &lt;br /&gt;
 \                  fpsnum=0, fpsden=1, repeat=false, dominance=0, stacked=false, &lt;br /&gt;
 \                  format=&amp;quot;&amp;quot;, decoder=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[LSMASHSource]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/Levels</id>
		<title>Levels</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Levels"/>
				<updated>2018-01-15T15:51:56Z</updated>
		
		<summary type="html">&lt;p&gt;Raffriff42: tweak table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:62em&amp;quot; &amp;gt;&lt;br /&gt;
Adjusts brightness, contrast, and gamma. This is done using the following ''transfer function'':&lt;br /&gt;
:''output'' = ( (''input'' - {{FuncArg|input_low}}) / ({{FuncArg|input_high}} - {{FuncArg|input_low}}) )&amp;lt;sup&amp;gt;(1 / {{FuncArg|gamma}})&amp;lt;/sup&amp;gt; * ({{FuncArg|output_high}} - {{FuncArg|output_low}}) + {{FuncArg|output_low}}&lt;br /&gt;
&lt;br /&gt;
*{{FuncArg|input_low}} and {{FuncArg|input_high}} determine what ''input'' pixel values are treated as pure black and pure white. &lt;br /&gt;
*{{FuncArg|output_low}} and {{FuncArg|output_high}} determine what ''output'' values are treated as pure black and pure white.&lt;br /&gt;
*{{FuncArg|gamma}} controls the degree of non-linearity in the conversion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is one of those filters for which it would really be nice to have a GUI. Since we can't offer a GUI (though [http://forum.doom9.org/showthread.php?t=153248 AvsP] does), we at least make this filter '''compatible''' with [[VirtualDub|VirtualDub's]] when the clip is [[RGB]]. In that case you should be able to take the numbers from VirtualDub's ''Levels'' dialog and pass them as parameters to the '''Levels''' filter and get the same results. Unlike VirtualDub's filter however, the input and output parameters can be larger than 255{{D}}. &lt;br /&gt;
&lt;br /&gt;
When processing data in [[YUV]] mode, '''Levels''' only gamma-corrects the luma information, not the chroma. Gamma correction is really an RGB concept, and is only approximated here in YUV. If ''{{FuncArg|gamma}}=1.0'' (unity), the filter should have the same effect in both RGB and YUV modes. For adjusting brightness or contrast in YUV mode, it ''may'' be better (depending on the effect you are looking for) to use [[Tweak]] or [[ColorYUV]], because '''Levels''' changes the chroma of the clip.&lt;br /&gt;
&lt;br /&gt;
Note in {{AvsPluscon}}, the parameters {{FuncArg|input_low}}, {{FuncArg|input_high}}, {{FuncArg|output_low}} and {{FuncArg|output_high}}&lt;br /&gt;
* are &amp;lt;tt&amp;gt;float&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* are not [[Autoscale_parameter|autoscaling]] &amp;amp;ndash; they are relative to the current bit depth:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot; |bit depth equivalent color values&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;text-align:right&amp;quot;|8&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|16&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|128&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|235&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|255&lt;br /&gt;
|-&lt;br /&gt;
!10&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|64&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|512&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|940&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|1020&lt;br /&gt;
|-&lt;br /&gt;
!12&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|256&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|2048&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|3670&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|4080&lt;br /&gt;
|-&lt;br /&gt;
!14&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|1024&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|8192&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|15040&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|16320&lt;br /&gt;
|-&lt;br /&gt;
!16&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|4096&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|32768&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|60160&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|65280&lt;br /&gt;
|-&lt;br /&gt;
!32&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|0.0&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;235&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:right&amp;quot;|&amp;lt;sup&amp;gt;255&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;256&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax and Parameters ====&lt;br /&gt;
{{FuncDef|Levels(clip ''input'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; int ''input_low'', float ''gamma'', int ''input_high'', int ''output_low'', int ''output_high''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; [, bool ''coring'' , bool ''dither'' ] )}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{FuncDef|Levels(clip ''input'', &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; float ''input_low'', float ''gamma'', float ''input_high'', float ''output_low'', float ''output_high''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; [, bool ''coring'' , bool ''dither'' ] )}} {{AvsPluscon}}&lt;br /&gt;
&lt;br /&gt;
:{{Par2|clip|clip|(required)}}&lt;br /&gt;
::Source video.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|input_low|int/float*|(required)}}&lt;br /&gt;
::Input values at {{FuncArg|input_low}} or lower are treated as ''black'', and lighter colors are darkened proportionally.&lt;br /&gt;
::Therefore raising {{FuncArg|input_low}} darkens the output.&lt;br /&gt;
:: &amp;lt;big&amp;gt;*&amp;lt;/big&amp;gt; = &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt; in AviSynth, &amp;lt;tt&amp;gt;float&amp;lt;/tt&amp;gt; in AviSynth+&lt;br /&gt;
&lt;br /&gt;
:{{Par2|gamma|float|(required)}}&lt;br /&gt;
::[[Wikipedia:Gamma_correction|Gamma]] adjustment. See [[#Examples|examples]].&lt;br /&gt;
::Higher {{FuncArg|gamma}} brightens the output; lower {{FuncArg|gamma}} darkens the output. &lt;br /&gt;
&lt;br /&gt;
:{{Par2|input_high|int/float|(required)}}&lt;br /&gt;
::Input values at {{FuncArg|input_high}} or higher are treated as ''white'', and darker colors are brightened proportionally.&lt;br /&gt;
::Therefore lowering {{FuncArg|input_high}} brightens the output.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|output_low|int/float|(required)}}&lt;br /&gt;
::Dark values brighten to gray as {{FuncArg|output_low}} becomes larger.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|output_high|int/float|(required)}}&lt;br /&gt;
::Light values darken to gray as {{FuncArg|output_high}} becomes smaller.&lt;br /&gt;
&lt;br /&gt;
:{{Par2|coring|bool|true}}&lt;br /&gt;
::When ''true'' (the default), &lt;br /&gt;
::#input luma is ''clamped'' to the range 16{{D}}-235{{D}} and the chroma to 16{{D}}-240{{D}}; &lt;br /&gt;
::#this clamped input is ''scaled'' from 16{{D}}-235{{D}} to 0{{D}}-255{{D}}, &lt;br /&gt;
::#the conversion takes place according to the transfer function above, and then &lt;br /&gt;
::#output is scaled back to 16{{D}}-235{{D}}. &lt;br /&gt;
::When ''false'', the conversion takes place according to the transfer function, without any scaling. &lt;br /&gt;
&lt;br /&gt;
::{{FuncArg|coring}} was created for VirtualDub compatibility, and it remains true by default for compatibility with older scripts. &lt;br /&gt;
::In the opinion of some, you should [http://forum.doom9.org/showthread.php?p=1722885#post1722885 always use ''coring=false''] if you are working directly with luma values (whether or not your input is 16{{D}}-235{{D}}).&lt;br /&gt;
&lt;br /&gt;
::'''Note''' TV-range video ''can'' be correctly processed with {{FuncArg|coring}}=false; for example, &lt;br /&gt;
:::&amp;lt;code&amp;gt;Levels({{BoldColor|blue|104|0}}, 1.6, {{BoldColor|blue|104|255}}, {{BoldColor|blue|104|0}}, {{BoldColor|blue|104|255}}, coring=true)&amp;lt;/code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp; &lt;br /&gt;
::produces the same result as&lt;br /&gt;
:::&amp;lt;code&amp;gt;Levels({{BoldColor|blue|104|16}}, 1.6, {{BoldColor|blue|104|235}}, {{BoldColor|blue|104|16}}, {{BoldColor|blue|104|235}}, coring=false)&amp;lt;/code&amp;gt;&lt;br /&gt;
::except that the output is not clipped to TV-range. Black and white levels are preserved while adjusting {{FuncArg|gamma}}, unlike&lt;br /&gt;
:::&amp;lt;code&amp;gt;Levels(0, 1.6, 255, 0, 255, coring=false)&amp;lt;/code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
:{{Par2|dither|bool|false}}&lt;br /&gt;
::When ''true'', [[ordered dithering]] is applied to combat [http://en.wikipedia.org/wiki/Colour_banding banding]. Default is ''false''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # does nothing (unity transfer function):&lt;br /&gt;
 Levels(0, 1, 255, 0, 255)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # the input is scaled from [16,235] to [0,255], &lt;br /&gt;
 # the conversion [0,255]-&amp;gt;[16,235] takes place (according to the formula),  &lt;br /&gt;
 # and the output is scaled back from [0,255] to [16,235]&lt;br /&gt;
 # (for example: the luma values in [0,16] are all converted to 30)&lt;br /&gt;
 Levels(0, 1, 255, 16, 235)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # gamma-correct image for display in a brighter environment:&lt;br /&gt;
 # example: luma of 16 stays 16, 59 is converted to 79, etc.&lt;br /&gt;
 Levels(0, 1.3, 255, 0, 255)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # invert the image (make a photo-negative):&lt;br /&gt;
 # example: luma of 16 is converted to 235&lt;br /&gt;
 Levels(0, 1, 255, 255, 0)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # scales a [0,255] clip to [16,235]&lt;br /&gt;
 Levels(0, 1, 255, 16, 235, coring=false)  &lt;br /&gt;
 # note both luma and chroma components are scaled by the same amount,&lt;br /&gt;
 # so it's not exactly the same as [[ColorYUV]](levels=&amp;quot;PC-&amp;gt;TV&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # scales a [16,235] clip to [0,255]:&lt;br /&gt;
 Levels(16, 1, 235, 0, 255, coring=false)  &lt;br /&gt;
 # note both luma and chroma components are scaled by the same amount,&lt;br /&gt;
 # so it's not exactly the same as [[ColorYUV]](levels=&amp;quot;TV-&amp;gt;PC&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # makes a clip 100% black&lt;br /&gt;
 Levels(0, 1.0, 255, 0, 0)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{BoxWidthIndent|64|2}} &amp;gt;&lt;br /&gt;
 # apply fading on gamma corrected source (same holds for resizing and smoothing)&lt;br /&gt;
 clip = ... &lt;br /&gt;
 gamma = 2.2&lt;br /&gt;
 clip.Levels(0, gamma, 255, 0, 255) # undo gamma (also called gamma correction)&lt;br /&gt;
 [[FadeOut]](n)&lt;br /&gt;
 Levels(0, 1.0/gamma, 255, 0, 255) # redo gamma&lt;br /&gt;
 ## use AVS+ and bit depth &amp;gt;= 10 to avoid banding in dark areas&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Changes ====&lt;br /&gt;
{|border=1 cellspacing=1 cellpadding=4&lt;br /&gt;
|-&lt;br /&gt;
| AVS+ r2580 &lt;br /&gt;
| arguments are float &lt;br /&gt;
|-&lt;br /&gt;
| v2.60&lt;br /&gt;
| added ''dither'' &lt;br /&gt;
|-&lt;br /&gt;
| v2.53&lt;br /&gt;
| added ''coring'' (true by default, which reflects the behaviour in older versions)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal filters]]&lt;br /&gt;
[[Category:Levels and Chroma filters]]&lt;/div&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	</feed>