# Core Filters

## Introduction

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.

## Media file filters

These filters can be used to read or write media files. Usually they produce source clips for processing. See debug filters for non-file source filters.

- AVISource / OpenDMLSource / AVIFileSource Opens an AVI file.
- DirectShowSource DirectShowSource reads filename using DirectShow
- ImageReader / ImageSource / ImageSourceAnim These filters produce a video clip by reading in still images or an animated image.
- Imagewriter Writes frames as images to your hard disk.
- Import Import an AviSynth script into the current script
- SegmentedAVISource / SegmentedDirectShowSource The SegmentedAVISource filter automatically loads up to 100 avi files per argument
- SoundOut SoundOut is a GUI driven sound output module for AviSynth (it exports audio to several compressors).
- WAVSource Opens a WAV file or the audio of an AVI file.

## Color conversion and adjustment filters

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

- ColorYUV Adjusts colors and luma independently.
- ConvertBackToYUY2 / ConvertToRGB / ConvertToRGB24 / ConvertToRGB32 / ConvertToYUY2 / ConvertToY8 / ConvertToYV411 / ConvertToYV12 / ConvertToYV16 / ConvertToYV24 AviSynth can deal internally with the color formats, RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16 and YV24. These filters convert between them.
- FixLuminance Correct shifting vertical luma offset
- Greyscale Converts a video to greyscale.
- Invert Inverts selected color channels of a video.
- Levels The Levels filter scales and clamps the blacklevel and whitelevel and adjusts the gamma.
- Limiter A filter for clipping levels to within CCIR-601 range.
- MergeARGB / MergeRGB This filter makes it possible to select and combine a color channel from each of the input videoclips.
- Merge / MergeChroma / MergeLuma This filter makes it possible to merge luma, chroma or both from a videoclip into another. There is an optional weighting, so a percentage between the two clips can be specified.
- RGBAdjust Adjust each color channel seperately.
- ShowAlpha / ShowRed / ShowGreen / ShowBlue Shows the selected channel of an (A)RGB clip.
- SwapUV / UToY / UToY8 / VToY / VToY8 / YToUV Swaps/copies chroma channels of a clip.
- Subtract Subtract produces an output clip in which every pixel is set according to the difference between the corresponding pixels
- Tweak Adjust the hue, saturation, brightness, and contrast.

## Overlay and Mask filters

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

- ColorKeyMask Sets the alpha-channel (similar as Mask does) but generates it by comparing the color.
- Layer Layering two videos.
- Mask Applies an alpha-mask to a clip.
- MaskHS Returns a mask (as Y8) of clip using a given hue and saturation range.
- 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.
- ResetMask Applies an “all-opaque” alpha-mask to clip.

## Geometric deformation filters

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

- AddBorders AddBorders adds black borders around the image.
- Crop / CropBottom Crop crops excess pixels off of each frame.
- FlipHorizontal / FlipVertical Flips the video upside-down or left-to-right
- Letterbox Letterbox simply blackens out the top and the bottom and optionally left and right side of each frame.
- 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.
- ReduceBy2 / HorizontalReduceBy2 / VerticalReduceBy2 ReduceBy2 reduces the size of each frame by half.
- BilinearResize / BicubicResize / 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.
- SkewRows SkewRows skews the rows of a clip.
- TurnLeft / TurnRight / Turn180 Rotates the clip 90 degrees counterclock wise / 90 degrees clock wise / 180 degrees.

## Pixel restoration filters

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

- Blur / Sharpen These are simple 3x3-kernel blurring and sharpening filters.
- GeneralConvolution General 3x3 or 5x5 convolution matrix.
- SpatialSoften / TemporalSoften The SpatialSoften and TemporalSoften filters remove noise from a video clip by selectively blending pixels.
- FixBrokenChromaUpsampling I noticed that the MS DV codec upsamples the chroma channels incorrectly, and I added a FixBrokenChromaUpsampling filter to compensate for it.

## Timeline editing filters

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

- AlignedSplice / UnalignedSplice AlignedSplice and UnalignedSplice join two or more video clips end to end.
- AssumeFPS / AssumeScaledFPS / ChangeFPS / ConvertFPS Changes framerates in different ways.
- DeleteFrame DeleteFrame deletes a set of single frames, given as a number of arguments.
- Dissolve Dissolve is like AlignedSplice, except that the clips are combined with some overlap.
- DuplicateFrame DuplicateFrame duplicates a set of single frames, given as a number of arguments.
- FadeIn0 / FadeOut0 / FadeIn / FadeOut / FadeIn2 / FadeOut2 / FadeIO0 / FadeIO / FadeIO2 FadeIn and FadeOut cause the video stream to fade linearly to black at the start or end.
- FreezeFrame The FreezeFrame filter replaces all the frames between first- frame and last-frame with a selected frame.
- Interleave Interleave interleaves frames from several clips on a frame-by- frame basis.
- Loop Loops the segment from start frame to end frame a given number of times.
- Reverse This filter makes a clip play in reverse.
- SelectEven / SelectOdd SelectEven makes an output video stream using only the even-numbered frames
- SelectEvery SelectEvery is a generalization of filters like SelectEven and Pulldown.
- SelectRangeEvery This filters selects a range of frames with a certain period.
- Trim Trims a video clip so that it includes only the frames first-frame through last-frame.

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

- AssumeFrameBased / AssumeFieldBased Forces frame-based or field-based material.
- AssumeTFF / AssumeBFF Forces field order.
- Bob Bob takes a clip and bob-deinterlaces it
- ComplementParity Changes top fields to bottom fields and vice-versa.
- DoubleWeave The DoubleWeave filter operates like Weave, except that it produces double the number of frames by combining both the odd and even pairs of fields.
- PeculiarBlend This filter blends each frame with the following frame in a peculiar way.
- Pulldown The Pulldown filter simply selects two out of every five frames of the source video.
- SeparateColumns / SeparateRows Takes a clip and separates the columns or rows of each frame into new frames.
- SeparateFields SeparateFields takes a frame-based clip and splits each frame into its component top and bottom fields.
- SwapFields The SwapFields filter swaps the two fields in an interlaced frame
- Weave Weave takes even pairs of fields from a Fields Separated input video clip and combines them together to produce interlaced frames.
- WeaveColumns / WeaveRows Takes a clip and weaves sets of columns or rows together to produce a composite frames.

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

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.

- Amplify / AmplifydB Amplify multiply audio samples by amount.
- AssumeSampleRate Adjusts the playback speed of the audio.
- 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.
- AudioTrim Trims an audio clip so that it includes only the start_time through end_time.
- ConvertToMono Merges all audio channels.
- ConvertAudioTo8bit / ConvertAudioTo16bit / ConvertAudioTo24bit / ConvertAudioTo32bit / ConvertAudioToFloat Converts audio samples to 8, 16, 24, 32 bits or float.
- DelayAudio DelayAudio delays the audio track by seconds seconds.
- EnsureVBRMP3Sync Corrects out-of-sync mp3-AVI’s, when seeking ot trimming.
- GetChannel Returns a channel from an audio signal.
- KillAudio Removes the audio from a clip completely.
- KillAudio Removes the video from a clip completely.
- MergeChannels Merges channels of two or more audio clips.
- MixAudio Mixes audio from two clips.
- Normalize Amplifies the entire waveform as much as possible, without clipping.
- ResampleAudio Performs a change of the audio sample rate.
- SSRC Performs a high-quality change of the audio sample rate. It uses SSRC by Naoki Shibata, which offers the best resample quality available.
- SuperEQ High quality 16 band sound equalizer.
- 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.

## Meta filters

These special filters can be used to control other filters execution.

- Animate / ApplyRange Animate (ApplyRange) is a meta-filter which evaluates its parameter filter with continuously varying (the same) arguments.
- TCPDeliver This filter will enable you to send clips over your network. You can connect several clients to the same machine.

## Conditional filters

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.

- 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.
- ConditionalReader ConditionalReader allows you to import information from a text file, with different values for each frame - or a range of frames.
- WriteFile / WriteFileIf / WriteFileStart / WriteFileEnd These filters evaluate expressions and output the results to a text-file.

## Debug filters

- BlankClip / Blackness The BlankClip filter produces a solid color, silent video clip of the specified length (in frames).
- ColorBars / ColorBarsHD The ColorBars filters produce a video clip containing SMPTE color bars scaled to any image size.
- Compare Compares two clips and prints out information about the differences.
- Echo Forces getframe calls to all input clips. Returns only first clip result.
- Histogram Adds a Histogram.
- Info Prints out image and sound information.
- Preroll Preroll the audio or video on non linear access.
- MessageClip MessageClip produces a clip containing a text message
- ShowFiveVersions ShowFiveVersions takes five video streams and combines them in a staggered arrangement from left to right.
- ShowFrameNumber / ShowSMPTE / ShowTime ShowFrameNumber draws text on every frame indicating what number Avisynth thinks it is. ShowSMPTE displays the SMPTE timecode. hh:mm:ss:ff ShowTime displays the duration with millisecond resolution. hh:mm:ss.sss
- StackHorizontal / StackVertical StackHorizontal takes two or more video clips and displays them together in left-to-right order.
- Subtitle The Subtitle filter adds a single line of anti-aliased text to a range of frames.
- Tone This will generate sound.
- Version The Version filter generates a video clip with a short version and copyright statement

$Date: 2013/01/06 13:38:34 $