Internal filters

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (Limiter does highlighting)
m (Color conversion and adjustment filters: RGBAdjust to support 32 bit float)
 
(27 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
<div style="max-width:76em; min-width:48em">
 
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]].
 
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]].
  
An alphabetical listing of the internal filters can be found here [[:Category:Internal_filters]].
+
An alphabetical listing of the internal filters can be found [[:Category:Internal_filters|here]].
  
 
=== Source filters ===
 
=== Source filters ===
Line 7: Line 8:
 
These filters can read media files and return an AviSynth clip. See [[#Debug_filters|debug filters]] for non-file source filters.
 
These filters can read media files and return an AviSynth clip. See [[#Debug_filters|debug filters]] for non-file source filters.
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-  
 
|-  
 
| [[AviSource]] / [[AviFileSource]] / [[OpenDMLSource]]
 
| [[AviSource]] / [[AviFileSource]] / [[OpenDMLSource]]
 
| Opens an AVI file.
 
| Opens an AVI file.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[DirectShowSource]]
 
| [[DirectShowSource]]
 
| Opens a filename using [[DirectShow]].
 
| Opens a filename using [[DirectShow]].
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[ImageReader]] / [[ImageSource]] / [[ImageSourceAnim]]
 
| [[ImageReader]] / [[ImageSource]] / [[ImageSourceAnim]]
| These filters produce a video clip by reading in still images or animated images. See [[#Export_filters|ImageWriter]].
+
| Reads in still or animated images. See [[#Export_filters|ImageWriter]].
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Import]]
 
| [[Import]]
 
| Imports an AviSynth script into the current script.
 
| Imports an AviSynth script into the current script.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SegmentedAviSource]] / [[SegmentedDirectShowSource]]
 
| [[SegmentedAviSource]] / [[SegmentedDirectShowSource]]
| This filter automatically loads up to 100 avi files per argument.
+
| Loads up to 100 avi files per argument.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[WavSource]]
 
| [[WavSource]]
 
| Opens a WAV file or the audio of an AVI file.
 
| Opens a WAV file or the audio of an AVI file.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|}
 
|}
  
Line 41: Line 42:
 
These filters can be used to change the color format or adjust the colors of a clip.
 
These filters can be used to change the color format or adjust the colors of a clip.
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-  
 
|-  
 
| [[ColorYUV]]
 
| [[ColorYUV]]
 
| Adjusts colors and luma independently.
 
| Adjusts colors and luma independently.
| YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|YUV <small>{{Sup2|[''8-16bit'']}}</small>]]
 
|-
 
|-
 
| [[ConvertBackToYUY2]]
 
| [[ConvertBackToYUY2]]
 
| Converts a RGB clip back to YUY2.
 
| Converts a RGB clip back to YUY2.
| RGB24, RGB32
+
| [[#Color_formats|RGB]]
 
|-
 
|-
 
| [[ConvertToRGB]]
 
| [[ConvertToRGB]]
 
| Converts to RGB32 unless clip is RGB24.
 
| Converts to RGB32 unless clip is RGB24.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All <small>{{Sup2|[''8bit'']}}</small>]]
 
|-
 
|-
| [[ConvertToRGB24]] / [[ConvertToRGB32]] / [[ConvertToYUY2]] / [[ConvertToY8]] / [[ConvertToYV411]] / [[ConvertToYV12]] / [[ConvertToYV16]] / [[ConvertToYV24]]
+
| [[ConvertToRGB24]] / [[ConvertToRGB32]]  
| Converts to RGB24 / RGB32 / YUY2 / Y8 / YV411 / YV12 / YV16 (planar version of YUY2) / YV24 (full YUV).
+
| Converts to 8-bit [[Interleaved]] RGB24 / RGB32.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All <small>{{Sup2|[''8bit'']}}</small>]]
 +
|-
 +
| [[Convert|ConvertToRGB48]] / [[Convert|ConvertToRGB64]]  
 +
| {{AvsPluscon}} Converts to [[Deep_Color|16-bit]], [[Interleaved]] RGB48 / RGB64
 +
| [[#Color_formats|All <small>{{Sup2|[''16bit'']}}</small>]]
 +
|-
 +
| [[Convert|ConvertToPlanarRGB]] /<br>[[Convert|ConvertToPlanarRGBA]]
 +
| {{AvsPluscon}} Converts to [[Planar]] RGB(A) at [[Deep_Color|all bit depths]]
 +
| [[#Color_formats|All]]
 +
|-
 +
| [[ConvertToYUY2]]
 +
| Converts to 8-bit [[Interleaved]] [[YUY2]].
 +
| [[#Color_formats|RGB24/32, YUV <small>{{Sup2|[''8bit'']}}</small>]]
 +
|-
 +
| [[ConvertToYV24]] / [[ConvertToYV16]] / <br>
 +
[[ConvertToYV12]] / [[ConvertToY8]]  
 +
| Converts to 8-bit [[Planar]] YV24, YV16, YV12, Y-only.
 +
| [[#Color_formats|All]]
 +
|-
 +
| [[Convert|ConvertToYUV444]] / [[Convert|ConvertToYUV422]] /<br>[[Convert|ConvertToYUV420]] /<br><span style="font-size:96%;letter-spacing:90%">[[Convert|ConvertToYUVA444]]&nbsp;/&nbsp;[[Convert|ConvertToYUVA422]]&nbsp;/<br>[[Convert|ConvertToYUVA420]]</span>
 +
| {{AvsPluscon}} Converts to [[Planar]] YUV(A) at [[Deep_Color|all bit depths]]
 +
| [[#Color_formats|All]]
 +
|-
 +
| [[Convert|ConvertToYUV411]]
 +
| {{AvsPluscon}} Converts to 8-bit [[Planar]] [[YV411]]
 +
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[FixLuminance]]
 
| [[FixLuminance]]
Line 66: Line 92:
 
| YUY2
 
| YUY2
 
|-
 
|-
| [[GreyScale]]
+
| [[Greyscale]]/[[Grayscale]]
| Converts a video to greyscale.
+
| Converts a video to greyscale (no color)
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Invert]]
 
| [[Invert]]
 
| Inverts selected color channels of a video.
 
| Inverts selected color channels of a video.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Levels]]
 
| [[Levels]]
| The Levels filter scales and clamps the blacklevel and whitelevel and adjusts the gamma.
+
| Scales and clamps the black and white levels, and adjusts the gamma.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All <small>{{Sup2|[''8-16bit'']}}</small>]]
 
|-
 
|-
 
| [[Limiter]]
 
| [[Limiter]]
| A filter for clipping levels to within CCIR-601 range, and optionally highlighting pixels outside that range.
+
| Clips levels to within CCIR-601 range, and optionally highlights pixels outside that range.
| YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|YUV <small>{{Sup2|[''8-16bit'']}}</small>]]
 
|-
 
|-
| [[MergeARGB]] / [[MergeRGB]]
+
| [[MergeRGB]] / [[MergeARGB]]
| This filter makes it possible to select and combine a color channel from each of the input videoclips.
+
| Select and combine a color channel from each of the input video clips.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
| [[MergeChroma]] / [[MergeLuma]]
+
| [[MergeLuma]] / [[MergeChroma]]
| This filter makes it possible to merge chroma/luma from a videoclip into another. There is an optional weighting, so a percentage between the two clips can be specified.
+
| 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.
| YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|YUV]]
|-
+
| [[Merge]]
+
| This filter makes it possible to merge both luma and chroma from a videoclip into another. There is an optional weighting, so a percentage between the two clips can be specified.
+
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
 
|-
 
|-
 
| [[RGBAdjust]]
 
| [[RGBAdjust]]
| Adjusts each color channel seperately.
+
| Adjusts each color channel separately.
| RGB24, RGB32
+
| [[#Color_formats|RGB <small>{{Sup2|[''8-32bit'']}}</small>]]
 
|-
 
|-
| [[ShowAlpha]] / [[ShowRed]] / [[ShowGreen]] / [[ShowBlue]]
+
| [[ShowRed]] / [[ShowGreen]] / [[ShowBlue]] / [[ShowAlpha]]
 
| Shows the selected channel of an (A)RGB clip.
 
| Shows the selected channel of an (A)RGB clip.
| RGB24, RGB32
+
| [[#Color_formats|RGB]]
 
|-
 
|-
 
| [[SwapUV]]
 
| [[SwapUV]]
 
| Swaps chroma channels.
 
| Swaps chroma channels.
| YUY2, Y8, YV411, YV12, YV16, YV24 ?
+
| [[#Color_formats|YUV]]
 
|-
 
|-
 
| [[Tweak]]
 
| [[Tweak]]
 
| Adjusts the hue, saturation, brightness, and contrast.
 
| Adjusts the hue, saturation, brightness, and contrast.
| YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|YUV]]
 
|-
 
|-
| [[UToY]] / [[VToY]]
+
| [[UToY]] / [[UToY8]] / [[VToY]] / [[VToY8]]
| Copies chroma U/V plane to Y plane.
+
| Copies U or V chroma plane to the Y luma plane.
| YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|YUV]], except [[Y8]]
|-
+
| [[UToY8]] / [[VToY8]]
+
| Shorthand for UToY.ConvertToY8 / VToY.ConvertToY8.
+
| YUY2, YV411, YV12, YV16, YV24
+
 
|-
 
|-
 
| [[YToUV]]
 
| [[YToUV]]
 
| Puts the luma channels of two clips as U and V channels. Luma is now 50% grey.
 
| Puts the luma channels of two clips as U and V channels. Luma is now 50% grey.
| YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|YUV]]
 
|}
 
|}
  
Line 127: Line 145:
 
These filters can be used to layer clips with or without using masks and to create masks.
 
These filters can be used to layer clips with or without using masks and to create masks.
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-
 
|-
 
| [[ColorKeyMask]]
 
| [[ColorKeyMask]]
 
| Sets the alpha-channel (similar as Mask does) but generates it by comparing the color.
 
| Sets the alpha-channel (similar as Mask does) but generates it by comparing the color.
| RGB32
+
| [[#Color_formats|RGB32; RGB64 {{AvsPluscon2}}]],<br>[[#Color_formats|All Planar RGB {{AvsPluscon2}}]]
 
|-
 
|-
 
| [[Layer]]
 
| [[Layer]]
| Layering two videos.
+
| Puts one clip on top of another using different layer (blend) modes and variable opacity. Supports alpha-channel transparency.
| RGB32, YUY2
+
| [[#Color_formats|YUY2, RGB32]];<br>
 +
[[#Color_formats|All]] except YV411 {{AvsPluscon2}}
 
|-
 
|-
 
| [[Mask]]
 
| [[Mask]]
 
| Applies an alpha-mask to a clip.
 
| Applies an alpha-mask to a clip.
| RGB32
+
| [[#Color_formats|RGB32; RGB64 {{AvsPluscon2}}]],<br>[[#Color_formats|All Planar RGB {{AvsPluscon2}}]]
 
|-
 
|-
 
| [[MaskHS]]
 
| [[MaskHS]]
 
| This filter returns a mask (as Y8) of clip using a given hue and saturation range.
 
| This filter returns a mask (as Y8) of clip using a given hue and saturation range.
| YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|YUV]]
 +
|-
 +
| [[Merge]]
 +
| Merge (blend) one video clip into another. There is an optional weighting, so a percentage between the two clips can be specified.
 +
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Overlay]]
 
| [[Overlay]]
| Overlay puts two clips on top of each other with an optional displacement of the overlaying image, and using different overlay methods. Furthermore opacity can be adjusted for the overlay clip.
+
| 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.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]] except YV411
 
|-
 
|-
 
| [[ResetMask]]
 
| [[ResetMask]]
 
| Applies an "all-opaque" alpha-mask to clip.
 
| Applies an "all-opaque" alpha-mask to clip.
| RGB32
+
| [[#Color_formats|RGB32; RGB64 {{AvsPluscon2}}]],
 +
[[#Color_formats|All Planar RGB {{AvsPluscon2}}]]
 
|-
 
|-
 
| [[Subtract]]
 
| [[Subtract]]
| Produces an output clip in which every pixel is set according to the difference between the corresponding pixels.
+
| Shows the difference between the corresponding pixels of two clips.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16 (?), YV24
+
| [[#Color_formats|All]]
 
|}
 
|}
  
Line 165: Line 189:
 
These filters can be used to change image size, process borders or make other deformations of a clip.
 
These filters can be used to change image size, process borders or make other deformations of a clip.
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-  
 
|-  
 
| [[AddBorders]]
 
| [[AddBorders]]
| Adds black borders around the image.
+
| Adds black or colored borders around the image.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Crop]]
 
| [[Crop]]
 
| Crops excess pixels from each frame.
 
| Crops excess pixels from each frame.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[CropBottom]]
 
| [[CropBottom]]
 
| Crops excess pixels from the bottom of each frame.
 
| Crops excess pixels from the bottom of each frame.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[FlipHorizontal]] / [[FlipVertical]]
 
| [[FlipHorizontal]] / [[FlipVertical]]
 
| Flips the video from left to right/upside-down.
 
| Flips the video from left to right/upside-down.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Letterbox]]
 
| [[Letterbox]]
| Letterbox simply blackens out the top and the bottom and optionally left and right side of each frame.
+
| Blackens out (or colors out) the top and bottom (and optionally left and right) of each frame.  
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[HorizontalReduceBy2]] / [[VerticalReduceBy2]] / [[ReduceBy2]]
 
| [[HorizontalReduceBy2]] / [[VerticalReduceBy2]] / [[ReduceBy2]]
 
| Reduces the size of each frame by half horizontally, vertically or in both directions.
 
| Reduces the size of each frame by half horizontally, vertically or in both directions.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[BicubicResize]] / [[BilinearResize]] / [[BlackmanResize]] / [[GaussResize]] / [[LanczosResize]] / [[Lanczos4Resize]] / [[PointResize]] / [[SincResize]] / [[Spline16Resize]] / [[Spline36Resize]] / [[Spline64Resize]]
 
| [[BicubicResize]] / [[BilinearResize]] / [[BlackmanResize]] / [[GaussResize]] / [[LanczosResize]] / [[Lanczos4Resize]] / [[PointResize]] / [[SincResize]] / [[Spline16Resize]] / [[Spline36Resize]] / [[Spline64Resize]]
| The resize filters rescale the input video frames to an arbitrary new resolution, using different sampling algorithms.
+
| Rescale the input video frames to an arbitrary new resolution, using different sampling algorithms.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SkewRows]]
 
| [[SkewRows]]
| SkewRows skews the rows of a clip.
+
| Skews (or deskews) the rows of a clip.
| RGB24, RGB32, YUY2, Y8
+
| RGB24, RGB32,<br>YUY2, Y8
 
|-
 
|-
 
| [[TurnLeft]] / [[TurnRight]] / [[Turn180]]
 
| [[TurnLeft]] / [[TurnRight]] / [[Turn180]]
 
| Rotates the clip 90 degrees counter-clockwise / 90 degrees clockwise.
 
| Rotates the clip 90 degrees counter-clockwise / 90 degrees clockwise.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|}
 
|}
  
Line 211: Line 235:
 
These filters can be used for image detail (pixel) restoration (like denoising, sharpening) of a clip.
 
These filters can be used for image detail (pixel) restoration (like denoising, sharpening) of a clip.
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-  
 
|-  
 
| [[Blur]] / [[Sharpen]]
 
| [[Blur]] / [[Sharpen]]
| This a simple 3x3-kernel blurring/sharpening filter.
+
| Simple 3x3-kernel blurring/sharpening filter.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[GeneralConvolution]]
 
| [[GeneralConvolution]]
 
| General 3x3 or 5x5 convolution matrix.
 
| General 3x3 or 5x5 convolution matrix.
| RGB32
+
| [[RGB32]]
 +
|-
 +
| [[SpatialSoften]]
 +
| Removes noise from a video clip by selectively blending pixels spatially.
 +
| [[YUY2]]
 
|-
 
|-
| [[SpatialSoften]] / [[TemporalSoften]]
+
| [[TemporalSoften]]
| Removes noise from a video clip by selectively blending pixels spatially/temporally.
+
| Removes noise from a video clip by selectively blending pixels temporally.
| YUY2 (SpatialSoften), Y8, YV411, YV12, YV16, YV24
+
| All except [[RGB24]]<br>and [[Avisynthplus_color_formats|RGB48]] {{AvsPluscon2}}
 
|-
 
|-
 
| [[FixBrokenChromaUpsampling]]
 
| [[FixBrokenChromaUpsampling]]
| The free Canopus DV Codec v1.00 upsamples the chroma channels incorrectly (although newer non-free versions appear to work fine). FixBrokenChromaUpsampling filter compensates for it.
+
| 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.
 
| YUY2
 
| YUY2
 
|}
 
|}
Line 237: Line 265:
 
These filters can be used to arrange frames in time (clip cutting, splicing and other editing).
 
These filters can be used to arrange frames in time (clip cutting, splicing and other editing).
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-
 
|-
 
| [[AlignedSplice]] / [[UnalignedSplice]]
 
| [[AlignedSplice]] / [[UnalignedSplice]]
 
| Joins two or more video clips end to end.
 
| Joins two or more video clips end to end.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[AssumeFPS]] / [[AssumeScaledFPS]] / [[ChangeFPS]] / [[ConvertFPS]]
 
| [[AssumeFPS]] / [[AssumeScaledFPS]] / [[ChangeFPS]] / [[ConvertFPS]]
 
| Changes framerate and/or video speed in different ways.
 
| Changes framerate and/or video speed in different ways.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[DeleteFrame]]
 
| [[DeleteFrame]]
 
| Deletes a single frame, given as an argument.
 
| Deletes a single frame, given as an argument.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Dissolve]]
 
| [[Dissolve]]
 
| Like [[AlignedSplice]], except that the clips are combined with some overlap.
 
| Like [[AlignedSplice]], except that the clips are combined with some overlap.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[DuplicateFrame]]
 
| [[DuplicateFrame]]
 
| Duplicates a single frame given as an argument.
 
| Duplicates a single frame given as an argument.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[FadeIn0]] / [[FadeIn]] / [[FadeIn2]] / [[FadeOut0]] / [[FadeOut]] / [[FadeOut2]] / [[FadeIO0]] / [[FadeIO]] / [[FadeIO2]]
 
| [[FadeIn0]] / [[FadeIn]] / [[FadeIn2]] / [[FadeOut0]] / [[FadeOut]] / [[FadeOut2]] / [[FadeIO0]] / [[FadeIO]] / [[FadeIO2]]
 
| Causes the video stream to fade linearly to black at the start or end.
 
| Causes the video stream to fade linearly to black at the start or end.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[FreezeFrame]]
 
| [[FreezeFrame]]
| Replaces all the frames between first-frame and last-frame with a selected frame.
+
| Replaces all the frames between ''first-frame'' and ''last-frame'' with a selected frame.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Interleave]]
 
| [[Interleave]]
 
| Interleaves frames from several clips on a frame-by-frame basis.
 
| Interleaves frames from several clips on a frame-by-frame basis.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Loop]]
 
| [[Loop]]
| Loops the segment from start frame to end frame a given number of times.
+
| Loops the segment from ''start_frame'' to ''end_frame'' a given number of times.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Reverse]]
 
| [[Reverse]]
| This filter makes a clip play in reverse.
+
| Makes a clip play in reverse.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SelectEven]] / [[SelectOdd]]
 
| [[SelectEven]] / [[SelectOdd]]
| Makes an output video stream using only the even/odd numbered frames.
+
| Makes an output video stream using only the even- or odd-numbered frames.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SelectEvery]]
 
| [[SelectEvery]]
| Selects frames with a fixed period, it is a generalization of [[SelectEven]] and [[SelectOdd]].
+
| Selects frames with a fixed period; a generalization of [[SelectEven]] and [[SelectOdd]].
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SelectRangeEvery]]
 
| [[SelectRangeEvery]]
 
| Selects a range of frames with a fixed period.
 
| Selects a range of frames with a fixed period.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Trim]]
 
| [[Trim]]
| Trims a video clip so that it includes only the frames first_frame through last_frame.
+
| Trims a video clip so that it includes only the frames ''first_frame'' through ''last_frame''.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|}
 
|}
  
Line 303: Line 331:
 
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]].
 
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]].
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-
 
|-
 
| [[AssumeFrameBased]] / [[AssumeFieldBased]]
 
| [[AssumeFrameBased]] / [[AssumeFieldBased]]
 
| Forces frame-based or field-based material.
 
| Forces frame-based or field-based material.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[AssumeBFF]] / [[AssumeTFF]]
 
| [[AssumeBFF]] / [[AssumeTFF]]
 
| Forces field order.
 
| Forces field order.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Bob]]
 
| [[Bob]]
| Bob takes a clip and bob-deinterlaces it.
+
| Takes a clip and [[Wikipedia:Deinterlacing#Field_extension_deinterlacing|bob-deinterlaces]] it.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[ComplementParity]]
 
| [[ComplementParity]]
 
| Changes top fields to bottom fields and vice-versa.
 
| Changes top fields to bottom fields and vice-versa.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[DoubleWeave]]
 
| [[DoubleWeave]]
| The filter operates like [[Weave]], except that it produces double the number of frames by combining both the odd and even pairs of fields.
+
| Operates like [[Weave]], except that it produces double the number of frames by combining both the odd and even pairs of fields.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[PeculiarBlend]]
 
| [[PeculiarBlend]]
| This filter blends each frame with the following frame in a peculiar way.
+
| Blends each frame with the following frame in a peculiar way.
 
| YUY2
 
| YUY2
 
|-
 
|-
 
| [[Pulldown]]
 
| [[Pulldown]]
| This filter simply selects two out of every five frames of the source video.
+
| Selects two out of every five frames of the source video.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SeparateColumns]] / [[SeparateRows]]
 
| [[SeparateColumns]] / [[SeparateRows]]
| Takes a clip and separates the columns or rows of each frame into new frames.
+
| Separates the columns or rows of each frame into new frames.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SeparateFields]]
 
| [[SeparateFields]]
| Takes a frame-based clip and splits each frame into its component top and bottom fields.
+
| Splits each frame into its component top and bottom fields.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[SwapFields]]
 
| [[SwapFields]]
 
| Swaps the two fields in an interlaced frame.
 
| Swaps the two fields in an interlaced frame.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Weave]]
 
| [[Weave]]
| Takes even pairs of fields from a Fields Separated input video clip and combines them together to produce interlaced frames.
+
| Combines fields together to produce interlaced frames.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[WeaveColumns]] / [[WeaveRows]]
 
| [[WeaveColumns]] / [[WeaveRows]]
 
| Takes a clip and weaves sets of columns or rows together to produce composite frames.
 
| Takes a clip and weaves sets of columns or rows together to produce composite frames.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|}
 
|}
  
 
=== Audio processing filters ===
 
=== Audio processing filters ===
  
These filters can be used to process audio. Audio samples from a clip 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.
+
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.
  
If the sample type is float, when AviSynth has to output the data, it will be converted to 16 bit, since float cannot be passed as valid AVI data.
+
{{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.
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
[[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.
 +
 
 +
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.
 +
 
 +
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Sample type
+
!width=15%| Sample type
 
|-
 
|-
 
| [[Amplify]] / [[AmplifydB]]
 
| [[Amplify]] / [[AmplifydB]]
Line 377: Line 409:
 
|-
 
|-
 
| [[AudioDub]] / [[AudioDubEx]]
 
| [[AudioDub]] / [[AudioDubEx]]
| 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.
+
| ''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.
 
| All
 
| All
 
|-
 
|-
 
| [[AudioTrim]]
 
| [[AudioTrim]]
| Trims an audio clip so that it includes only the start_time through end_time.
+
| Trims an audio clip so that it includes only the ''start_time'' through ''end_time''.
 
| All
 
| All
 
|-
 
|-
Line 426: Line 458:
 
| [[ResampleAudio]]
 
| [[ResampleAudio]]
 
| Performs a high-quality change of audio sample rate.
 
| Performs a high-quality change of audio sample rate.
| 16 bit
+
| 16 bit, Float
 
|-
 
|-
 
| [[SuperEQ]]
 
| [[SuperEQ]]
Line 433: Line 465:
 
|-
 
|-
 
| [[SSRC]]
 
| [[SSRC]]
| Very high quality samplerate conversion.
+
| Very high quality sample rate conversion.
 
| Float
 
| Float
 
|-
 
|-
 
| [[TimeStretch]]
 
| [[TimeStretch]]
| This filter can change speed of the sound without changing the pitch, and change the pitch of a sound without changing the length of a sound.
+
| Change speed of a sound without changing the pitch, and change pitch without changing duration.
 
| Float
 
| Float
 
|}
 
|}
Line 443: Line 475:
 
=== Conditional and other meta filters  ===
 
=== Conditional and other meta filters  ===
  
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 the whole clip. This allows for complex video processing that would be difficult or impossible to be performed by a normal AviSynth script.  
+
''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.  
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-
 
|-
 
| [[ConditionalFilter]] / [[FrameEvaluate]] / [[ScriptClip]] / [[ConditionalSelect]]
 
| [[ConditionalFilter]] / [[FrameEvaluate]] / [[ScriptClip]] / [[ConditionalSelect]]
| 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.
+
| ''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.
| YUY2 ?, YV12
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[ConditionalReader]]
 
| [[ConditionalReader]]
| ConditionalReader allows you to import information from a text file, with different values for each frame - or a range of frames.
+
| Import information from a text file, with different values for each frame - or a range of frames.
| YUY2 ?, YV12
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[WriteFile]] / [[WriteFileIf]] / [[WriteFileStart]] / [[WriteFileEnd]]
 
| [[WriteFile]] / [[WriteFileIf]] / [[WriteFileStart]] / [[WriteFileEnd]]
 
| These filters evaluate expressions and output the results to a text-file.
 
| These filters evaluate expressions and output the results to a text-file.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24 ?
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Animate]] / [[ApplyRange]]
 
| [[Animate]] / [[ApplyRange]]
| Animate (ApplyRange) is a meta-filter which evaluates its parameter filter with continuously varying (the same) arguments.
+
| ''Animate'' is a meta-filter which evaluates another filter with continuously varying arguments.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24 ?
+
''ApplyRange'' 'is a special case of ''Animate'' where ''start_args'' = ''end_args''.
 +
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[TCPServer]] / [[TCPSource]]
 
| [[TCPServer]] / [[TCPSource]]
| This filter will enable you to send clips over your network. You can connect several clients to the same machine.
+
| Send clips over your network. You can connect several clients to the same machine.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|}
 
|}
  
Line 475: Line 508:
 
These filters can write directly to media files.  
 
These filters can write directly to media files.  
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-
 
|-
 
| [[ImageWriter]]
 
| [[ImageWriter]]
 
| Writes frames as images to your hard disk. See [[#Source_filters|ImageReader]].
 
| Writes frames as images to your hard disk. See [[#Source_filters|ImageReader]].
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|}
 
|}
  
 
=== Debug filters ===
 
=== Debug filters ===
  
{| style="height:100px" border="1" cellpadding="4" class="wikitable"
+
{| style="height:100px; width:95%" border="1" cellpadding="4" class="wikitable"
 
!width=25%| Filter
 
!width=25%| Filter
 
!width=50%| Description
 
!width=50%| Description
!width=25%| Color format
+
!width=15%| Color format
 
|-
 
|-
 
| [[BlankClip]] / [[Blackness]]
 
| [[BlankClip]] / [[Blackness]]
| This filter produces a solid color, silent video clip of the specified length (in frames).
+
| Produces a solid color, silent video clip of the specified length (in frames).
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[ColorBars]] / [[ColorBarsHD]]
 
| [[ColorBars]] / [[ColorBarsHD]]
| This filters produce a video clip containing SMPTE colorbars scaled to any image size.
+
| Produce a video clip containing SMPTE colorbars scaled to any image size.
| RGB32, YUY2, YV12, YV24
+
| RGB32, YUY2,<br>YV12, YV24
 
|-
 
|-
 
| [[Compare]]
 
| [[Compare]]
 
| Compares two clips and prints out information about the differences.
 
| Compares two clips and prints out information about the differences.
| RGB24, RGB32, YUY2, YV12
+
| [[#Color_formats|All]]
 +
|-
 +
| [[DumpFilterGraph]] / [[SetGraphAnalysis]]
 +
| {{AvsPluscon}} This functions are for outputting the flow of filtering as a graph.
 +
| [[#Color_formats|n/a]]
 
|-
 
|-
 
| [[Echo]]
 
| [[Echo]]
| Forces getframe calls to all input clips. Returns only first clip result.
+
| Forces internal <tt>GetFrame</tt> calls to all input clips. Returns only first clip result.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Histogram]]
 
| [[Histogram]]
| Adds a histogram.
+
| A multipurpose audio/video analysis tool.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Info]]
 
| [[Info]]
 
| Prints out image and sound information.
 
| Prints out image and sound information.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[MessageClip]]
 
| [[MessageClip]]
Line 521: Line 558:
 
|-
 
|-
 
| [[Preroll]]
 
| [[Preroll]]
| Preroll the audio or video on non linear access.
+
| Preroll the audio or video on non-linear access.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[ShowFiveVersions]]
 
| [[ShowFiveVersions]]
 
| Takes five video clips and combines them in a staggered arrangement from left to right.
 
| Takes five video clips and combines them in a staggered arrangement from left to right.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16 (?), YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[ShowFrameNumber]] / [[ShowSMPTE]] / [[ShowTime]]
 
| [[ShowFrameNumber]] / [[ShowSMPTE]] / [[ShowTime]]
 
| Draws text on every frame indicating what number AviSynth thinks it is.
 
| Draws text on every frame indicating what number AviSynth thinks it is.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[StackHorizontal]] / [[StackVertical]]
 
| [[StackHorizontal]] / [[StackVertical]]
 
| Takes two or more video clips and displays them together in left-to-right/up-to-down order.
 
| Takes two or more video clips and displays them together in left-to-right/up-to-down order.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Subtitle]]
 
| [[Subtitle]]
| Adds a single line of anti-aliased text to a range of frames.
+
| Adds anti-aliased text to a range of frames.
| RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24
+
| [[#Color_formats|All]]
 
|-
 
|-
 
| [[Tone]]
 
| [[Tone]]
| This will generate sound.
+
| Generates a sound.
 
| Float
 
| Float
 
|-
 
|-
 
| [[Version]]
 
| [[Version]]
| Generates a video clip with a short version and copyright statement.
+
| Generates a video clip with a short AviSynth version and copyright statement.
 
| RGB24
 
| RGB24
 
|}
 
|}
 +
 +
{{HiddenAnchor|Color_formats}}
 +
 +
=== Footnotes ===
 +
 +
The above filters work with the following named '''[[Avisynthplus_color_formats|color formats]]'''.
 +
 +
{| style="height:100px; border="1" cellpadding="4" class="wikitable"
 +
|-
 +
!Name
 +
!Formats
 +
|-
 +
| All
 +
| RGB, YUV (detailed below)
 +
|-
 +
| [[RGB]] [[Interleaved]]&nbsp;
 +
| [[RGB24]], [[RGB32]] <small>{{Sup2|[''8bit'']}}</small><br>[[Avisynthplus_color_formats|RGB48, RGB64]] <small>{{Sup2|[''16bit'']}}</small> {{AvsPluscon2}}
 +
|-
 +
| [[RGB]] [[Planar]]
 +
| [[Avisynthplus_color_formats|RGBP8, RGB'''A'''P8, RGBP'''10''', RGB'''A'''P10 etc]]&nbsp;{{AvsPluscon2}}&nbsp;&nbsp;
 +
|-
 +
| [[YUV]]
 +
| [[YUY2]] [[Interleaved]], YUV [[Planar]],<br>[[Avisynthplus_color_formats|YUVA Planar]]&nbsp;{{AvsPluscon2}} 
 +
|-
 +
| YUV [[Planar]]&nbsp;
 +
| [[YV12]], [[YV24]]&Dagger;, [[YV16]]&Dagger;, [[YV411]]&Dagger;, [[Y8]]&Dagger;&nbsp;<br>[[Avisynthplus_color_formats|YUV444P8, YUV444P'''10''', YUV444P'''12''' etc]] {{AvsPluscon2}}
 +
|-
 +
| YUVA [[Planar]]&nbsp;
 +
| [[Avisynthplus_color_formats|YUV'''A'''444P8, YUV'''A'''444P'''10''', YUV'''A'''444P12 etc]]&nbsp;{{AvsPluscon2}}
 +
|}
 +
 +
{| border="0"
 +
|-
 +
| colspan="2"|''Notes and exceptions.''
 +
|-
 +
| style="text-align:right;padding-right:0.5em;width:4.0em" |&Dagger;
 +
| Not supported in AviSynth version 2.58 or below
 +
|-
 +
| style="text-align:right;padding-right:0.5em" |{{AvsPluscon2}}
 +
| [[AviSynth%2B|AviSynth+]] color space only (Deep Color, Planar RGB, YUVA).
 +
|-
 +
| style="text-align:right;padding-right:0.5em" | <small>{{Sup2|[''8bit'']}}</small>
 +
| &nbsp;&nbsp;8-bit only {{AvsPluscon2}}
 +
|-
 +
| style="text-align:right;padding-right:0.5em" | <small>{{Sup2|[''16bit'']}}</small>
 +
| 16-bit only {{AvsPluscon2}}
 +
|-
 +
| style="text-align:right;padding-right:0.5em" | <small>{{Sup2|[''8-16bit'']}}</small>
 +
| 8, 10, 12, 14, 16 bit (excludes 32-bit floating-point) {{AvsPluscon2}}
 +
|-
 +
| style="text-align:right;padding-right:0.5em" |{{AvsPluscon}}
 +
| [[AviSynth%2B|AviSynth+]] filter only.
 +
|}
 +
 +
</div>
 +
  
 
[[Category:AviSynth_Usage]]
 
[[Category:AviSynth_Usage]]
 
[[Category:AviSynth_Syntax]]
 
[[Category:AviSynth_Syntax]]

Latest revision as of 10:44, 9 December 2021

The available (internal) filters are listed here and divided into categories. A short description is added, including the supported 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 here is a summary which explains which properties that the resulting clip will have.

An alphabetical listing of the internal filters can be found here.

Contents

[edit] Source filters

These filters can read media files and return an AviSynth clip. See debug filters for non-file source filters.

Filter Description Color format
AviSource / AviFileSource / OpenDMLSource Opens an AVI file. All
DirectShowSource Opens a filename using DirectShow. All
ImageReader / ImageSource / ImageSourceAnim Reads in still or animated images. See ImageWriter. All
Import Imports an AviSynth script into the current script. All
SegmentedAviSource / SegmentedDirectShowSource Loads up to 100 avi files per argument. All
WavSource Opens a WAV file or the audio of an AVI file. All

[edit] Color conversion and adjustment filters

These filters can be used to change the color format or adjust the colors of a clip.

Filter Description Color format
ColorYUV Adjusts colors and luma independently. YUV [8-16bit]
ConvertBackToYUY2 Converts a RGB clip back to YUY2. RGB
ConvertToRGB Converts to RGB32 unless clip is RGB24. All [8bit]
ConvertToRGB24 / ConvertToRGB32 Converts to 8-bit Interleaved RGB24 / RGB32. All [8bit]
ConvertToRGB48 / ConvertToRGB64 AVS+ Converts to 16-bit, Interleaved RGB48 / RGB64 All [16bit]
ConvertToPlanarRGB /
ConvertToPlanarRGBA
AVS+ Converts to Planar RGB(A) at all bit depths All
ConvertToYUY2 Converts to 8-bit Interleaved YUY2. RGB24/32, YUV [8bit]
ConvertToYV24 / ConvertToYV16 /

ConvertToYV12 / ConvertToY8

Converts to 8-bit Planar YV24, YV16, YV12, Y-only. All
ConvertToYUV444 / ConvertToYUV422 /
ConvertToYUV420 /
ConvertToYUVA444 / ConvertToYUVA422 /
ConvertToYUVA420
AVS+ Converts to Planar YUV(A) at all bit depths All
ConvertToYUV411 AVS+ Converts to 8-bit Planar YV411 All
FixLuminance Correct shifting vertical luma offset. YUY2
Greyscale/Grayscale Converts a video to greyscale (no color) All
Invert Inverts selected color channels of a video. All
Levels Scales and clamps the black and white levels, and adjusts the gamma. All [8-16bit]
Limiter Clips levels to within CCIR-601 range, and optionally highlights pixels outside that range. YUV [8-16bit]
MergeRGB / MergeARGB Select and combine a color channel from each of the input video clips. All
MergeLuma / MergeChroma 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. YUV
RGBAdjust Adjusts each color channel separately. RGB [8-32bit]
ShowRed / ShowGreen / ShowBlue / ShowAlpha Shows the selected channel of an (A)RGB clip. RGB
SwapUV Swaps chroma channels. YUV
Tweak Adjusts the hue, saturation, brightness, and contrast. YUV
UToY / UToY8 / VToY / VToY8 Copies U or V chroma plane to the Y luma plane. YUV, except Y8
YToUV Puts the luma channels of two clips as U and V channels. Luma is now 50% grey. YUV

[edit] Overlay and Mask filters

These filters can be used to layer clips with or without using masks and to create masks.

Filter Description Color format
ColorKeyMask Sets the alpha-channel (similar as Mask does) but generates it by comparing the color. RGB32; RGB64 [+],
All Planar RGB [+]
Layer Puts one clip on top of another using different layer (blend) modes and variable opacity. Supports alpha-channel transparency. YUY2, RGB32;

All except YV411 [+]

Mask Applies an alpha-mask to a clip. RGB32; RGB64 [+],
All Planar RGB [+]
MaskHS This filter returns a mask (as Y8) of clip using a given hue and saturation range. YUV
Merge Merge (blend) one video clip into another. There is an optional weighting, so a percentage between the two clips can be specified. All
Overlay 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. All except YV411
ResetMask Applies an "all-opaque" alpha-mask to clip. RGB32; RGB64 [+],

All Planar RGB [+]

Subtract Shows the difference between the corresponding pixels of two clips. All

[edit] Geometric deformation filters

These filters can be used to change image size, process borders or make other deformations of a clip.

Filter Description Color format
AddBorders Adds black or colored borders around the image. All
Crop Crops excess pixels from each frame. All
CropBottom Crops excess pixels from the bottom of each frame. All
FlipHorizontal / FlipVertical Flips the video from left to right/upside-down. All
Letterbox Blackens out (or colors out) the top and bottom (and optionally left and right) of each frame. All
HorizontalReduceBy2 / VerticalReduceBy2 / ReduceBy2 Reduces the size of each frame by half horizontally, vertically or in both directions. All
BicubicResize / BilinearResize / BlackmanResize / GaussResize / LanczosResize / Lanczos4Resize / PointResize / SincResize / Spline16Resize / Spline36Resize / Spline64Resize Rescale the input video frames to an arbitrary new resolution, using different sampling algorithms. All
SkewRows Skews (or deskews) the rows of a clip. RGB24, RGB32,
YUY2, Y8
TurnLeft / TurnRight / Turn180 Rotates the clip 90 degrees counter-clockwise / 90 degrees clockwise. All

[edit] Pixel restoration filters

These filters can be used for image detail (pixel) restoration (like denoising, sharpening) of a clip.

Filter Description Color format
Blur / Sharpen Simple 3x3-kernel blurring/sharpening filter. All
GeneralConvolution General 3x3 or 5x5 convolution matrix. RGB32
SpatialSoften Removes noise from a video clip by selectively blending pixels spatially. YUY2
TemporalSoften Removes noise from a video clip by selectively blending pixels temporally. All except RGB24
and RGB48 [+]
FixBrokenChromaUpsampling 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. YUY2

[edit] Timeline editing filters

These filters can be used to arrange frames in time (clip cutting, splicing and other editing).

Filter Description Color format
AlignedSplice / UnalignedSplice Joins two or more video clips end to end. All
AssumeFPS / AssumeScaledFPS / ChangeFPS / ConvertFPS Changes framerate and/or video speed in different ways. All
DeleteFrame Deletes a single frame, given as an argument. All
Dissolve Like AlignedSplice, except that the clips are combined with some overlap. All
DuplicateFrame Duplicates a single frame given as an argument. All
FadeIn0 / FadeIn / FadeIn2 / FadeOut0 / FadeOut / FadeOut2 / FadeIO0 / FadeIO / FadeIO2 Causes the video stream to fade linearly to black at the start or end. All
FreezeFrame Replaces all the frames between first-frame and last-frame with a selected frame. All
Interleave Interleaves frames from several clips on a frame-by-frame basis. All
Loop Loops the segment from start_frame to end_frame a given number of times. All
Reverse Makes a clip play in reverse. All
SelectEven / SelectOdd Makes an output video stream using only the even- or odd-numbered frames. All
SelectEvery Selects frames with a fixed period; a generalization of SelectEven and SelectOdd. All
SelectRangeEvery Selects a range of frames with a fixed period. All
Trim Trims a video clip so that it includes only the frames first_frame through last_frame. All

[edit] Interlace filters

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 here.

Filter Description Color format
AssumeFrameBased / AssumeFieldBased Forces frame-based or field-based material. All
AssumeBFF / AssumeTFF Forces field order. All
Bob Takes a clip and bob-deinterlaces it. All
ComplementParity Changes top fields to bottom fields and vice-versa. All
DoubleWeave Operates like Weave, except that it produces double the number of frames by combining both the odd and even pairs of fields. All
PeculiarBlend Blends each frame with the following frame in a peculiar way. YUY2
Pulldown Selects two out of every five frames of the source video. All
SeparateColumns / SeparateRows Separates the columns or rows of each frame into new frames. All
SeparateFields Splits each frame into its component top and bottom fields. All
SwapFields Swaps the two fields in an interlaced frame. All
Weave Combines fields together to produce interlaced frames. All
WeaveColumns / WeaveRows Takes a clip and weaves sets of columns or rows together to produce composite frames. All

[edit] Audio processing filters

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.

AVS+ 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.

Float audio is converted to 16 bit when frameserving through ACM, unless 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.

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.

Filter Description Sample type
Amplify / AmplifydB Amplify multiply audio samples by amount. 16 bit, Float
AssumeSampleRate Adjusts the playback speed of the audio. All
AudioDub / AudioDubEx 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. All
AudioTrim Trims an audio clip so that it includes only the start_time through end_time. All
ConvertAudioTo8bit / ConvertAudioTo16bit / ConvertAudioTo24bit / ConvertAudioTo32bit / ConvertAudioToFloat Converts audio samples to 8/16/24/32/Float bits. All
ConvertToMono Merges all audio channels. 16 bit, Float
DelayAudio Delays the audio track by second seconds. All
EnsureVBRMP3Sync Corrects out-of-sync MP3-AVI's, when seeking or trimming. All
GetChannel / GetLeftChannel / GetRightChannel Returns an audio channel from a clip. All
KillAudio / KillVideo Removes the audio or video from a clip completely. All
MergeChannels Merges channels of two audio clips. All
MixAudio Mixes audio from two clips. 16 bit, Float
MonoToStereo Converts two mono signals to one stereo signal. 16 bit, Float
Normalize Amplifies the entire waveform as much as possible, without clipping. 16 bit, Float
ResampleAudio Performs a high-quality change of audio sample rate. 16 bit, Float
SuperEQ High quality 18 band sound equalizer. Float
SSRC Very high quality sample rate conversion. Float
TimeStretch Change speed of a sound without changing the pitch, and change pitch without changing duration. Float

[edit] Conditional and other meta filters

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.

Filter Description Color format
ConditionalFilter / FrameEvaluate / ScriptClip / ConditionalSelect 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. All
ConditionalReader Import information from a text file, with different values for each frame - or a range of frames. All
WriteFile / WriteFileIf / WriteFileStart / WriteFileEnd These filters evaluate expressions and output the results to a text-file. All
Animate / ApplyRange Animate is a meta-filter which evaluates another filter with continuously varying arguments.

ApplyRange 'is a special case of Animate where start_args = end_args.

All
TCPServer / TCPSource Send clips over your network. You can connect several clients to the same machine. All

[edit] Export filters

These filters can write directly to media files.

Filter Description Color format
ImageWriter Writes frames as images to your hard disk. See ImageReader. All

[edit] Debug filters

Filter Description Color format
BlankClip / Blackness Produces a solid color, silent video clip of the specified length (in frames). All
ColorBars / ColorBarsHD Produce a video clip containing SMPTE colorbars scaled to any image size. RGB32, YUY2,
YV12, YV24
Compare Compares two clips and prints out information about the differences. All
DumpFilterGraph / SetGraphAnalysis AVS+ This functions are for outputting the flow of filtering as a graph. n/a
Echo Forces internal GetFrame calls to all input clips. Returns only first clip result. All
Histogram A multipurpose audio/video analysis tool. All
Info Prints out image and sound information. All
MessageClip Produces a clip containing a text message. RGB32
Preroll Preroll the audio or video on non-linear access. All
ShowFiveVersions Takes five video clips and combines them in a staggered arrangement from left to right. All
ShowFrameNumber / ShowSMPTE / ShowTime Draws text on every frame indicating what number AviSynth thinks it is. All
StackHorizontal / StackVertical Takes two or more video clips and displays them together in left-to-right/up-to-down order. All
Subtitle Adds anti-aliased text to a range of frames. All
Tone Generates a sound. Float
Version Generates a video clip with a short AviSynth version and copyright statement. RGB24

[edit] Footnotes

The above filters work with the following named color formats.

Name Formats
All RGB, YUV (detailed below)
RGB Interleaved  RGB24, RGB32 [8bit]
RGB48, RGB64 [16bit] [+]
RGB Planar RGBP8, RGBAP8, RGBP10, RGBAP10 etc [+]  
YUV YUY2 Interleaved, YUV Planar,
YUVA Planar [+]
YUV Planar  YV12, YV24‡, YV16‡, YV411‡, Y8‡ 
YUV444P8, YUV444P10, YUV444P12 etc [+]
YUVA Planar  YUVA444P8, YUVA444P10, YUVA444P12 etc [+]
Notes and exceptions.
Not supported in AviSynth version 2.58 or below
[+] AviSynth+ color space only (Deep Color, Planar RGB, YUVA).
[8bit]   8-bit only [+]
[16bit] 16-bit only [+]
[8-16bit] 8, 10, 12, 14, 16 bit (excludes 32-bit floating-point) [+]
AVS+ AviSynth+ filter only.
Personal tools