A: These are two different ways to represent colors: YUV colorspace and RGB colorspace. In YUV colorspace there is one component that represent lightness (luma) and two other components that represent color (chroma). As long as the luma is conveyed with full detail, detail in the chroma components can be reduced by subsampling (filtering, or averaging) which can be done in several ways (thus there are multiple formats for storing a picture in YUV colorspace). In RGB colorspace there are three components, one for the amount of Red, one for the amount of Green and one for the amount of Blue. Also in this colorspace there are multiple formats for storing a picture which differ in the amount of samples are used for one of the three colors.

As of AviSynth v1.0x/v2.0x, RGB24, RGB32, and YUY2 are supported. In AviSynth v2.5x there is also support for YV12. Have a look at DataStorageInAviSynth for more info.

Q3.2: In which colorspaces do AviSynth and the internal filters work ?

A: AviSynth works in RGB and YUV using the RGB32, RGB24, YUY2 and YV12 formats. Most of the internal filters work in any of these formats, too. Which color format a filter requires, can be found [here].

Q3.3: How do I load a plugin in to AviSynth ?

A: Starting from v2.05 you can use its auto-plugin loading feature. The path of the plugin directory is set during install. But if you want to change it for some reason, change or add the following lines:

Change the path above if necessary and make sure you created the plugin-dir as well. Save it as install_autoplugin.reg, and merge it to your registry file by right-clicking on it in your explorer. Finally move all your plugins/script-functions into the plugin directory. If you want to load plugins manually, use "LoadPlugin". An example script:

LoadPlugin("d:\mpeg2dec.dll")
mpeg2source("d:\filename.d2v")

Q3.4: Where can I download external filters for AviSynth v1.0x/v2.0x ?

A: From all over. But below you will find links to most of them. If you know of a plugin which is missing, please feel free to add it to the list using the "Edit this document" link to the left.

Most of these plugins work in YUY2. If you can't find the plugin (the attachments are still disabled), you can download the plugins at [WarpEnterprises] homepage.

All PAL, NTSC, and SECAM video is interlaced, which means that only every other line is broadcast at each refresh interval. Deinterlacing filters let you take care of any problems caused by this. IVTC (inverse telecine, aka pulldown removal) filters undo the telecine process, which comes from differences between the timing of your video and its original source.

Also see Auto24FPS and AutoDeint in the Misc Plugins section, below. [YUY2]

Spatio-Temporal Smoothers:

These filters use color similarities and differences both within and between frames to reduce noise and improve compressed size. They can greatly improve noisy video, but some care should be taken with them to avoid blurred movement and loss of detail.

[Peach Smoother (by Lindsey Dubb)]: An adaptive smoother optimized for TV broadcasts: [documentation]; [discussion]. The Peach works by looking for good pixels and gathering orange smoke from them. When it has gathered enough orange smoke, it sprinkles that onto the bad pixels, making them better. Works only on computers with SSE instructions (Athlons, Pentium 3 or 4, recent Celerons, or later). [YUY2]

[Motion Adaptive Mixer \"MAM\" (by Marc FD)]: This filter uses movement detection to adapt the denoising method used; In still areas it uses temporal filtering and in moving areas it uses spatial filtering with any spatial and temporal filter you want. It is no longer developed but can temporarily be downloaded from [this site]. [YUY2]

[Convolution3D (by Vlad59)]: Convolution3D is a spatio-temporal smoother. It applies a 3D convolution to similar pixels in consecutive frames. [YUY2]

Spatial Smoothers:

These use color similarities and differences within a frame to improve the picture and reduce compressed size. They can smooth out noise very well, but overly aggressive settings for them can cause a loss of detail.

[Wavelet Noise Reduction (by thejam)]: This can remove single frequency noise in three different frequency bands, independently for horizontal and vertical directions and for the Y, Cr and Cb color planes. [documentation] This filter only works for PCs with SSE instructions. [YUY2]

These filters use color similarities and differences between frames to improve the picture and reduce compressed size. They can get rid of most noise in stationary areas without losing detail, but overly strong settings can cause moving areas to be blurred.

[TemporalSoften2 plugin (by Dividee)]: This plugin is better than the built-in TemporalSoften up to v2.02; it removes noise from a video clip by selectively blending pixels. It is built into v2.03 and all subsequent versions (it replaces the old function and it is called the same: TemporalSoften). [YUY2]

[Grape Smoother (by Lindsey Dubb)]: [documentation]; [discussion]; When colors change just a little, the filter decides that it is probably noise, and only slightly changes the color from the previous frame. As the change in color increases, the filter becomes more and more convinced that the change is due to motion rather than noise, and the new color gets more and more weight. [YUY2]

These are meant to take care of various problems which show up when over the air video is captured. Some help with luma/chroma separation; Others reduce interference problems or compensate for overscan.

[Ghostbuster (by SansGrip)]: This filter removes "ghosts" 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. This filter is based on Krzysztof Wojdon's [Exorcist]VirtualDub filter. [YUY2]

[BorderControl plugin (by Simon Walters)]: After capturing video you might want to crop your video to get rid of rubbish. BorderControl enables you to smear borders instead of cropping and adding solid borders. This can be visually more pleasing and give less compression related artefacts. [YUY2]

[Call (by Nic)]: A plugin which enables you to call and pass parameters to a external commandline program like Besweet.

[Blockbuster (by SansGrip)]: With this filter one can use several methods to reduce or eliminate DCT blocks: adding noise (Gaussian distributed), sharpening, or blurring. Some discussion can be found [here]. [YUY2, RGB ?]

[MJPEGcorrect plugin]: Luma (brightness) in MJPEG decoders is often decoded incorrectly to the YUV luma range. This is a special purpose plugin written to fix this issue with MJPEG videos. [description]. [YUY2]

A: Most of them can be found in the AviSynth section at Doom9. But below you will find links to most of them. If you know of a plugin which is missing, please feel free to add it to the list using the "Edit this document" link to the left. Most of these plugins work in YUY2. If you can't find the plugin (the attachments are still disabled), you can download the plugins at [WarpEnterprises] homepage.

All PAL, NTSC, and SECAM video is interlaced, which means that only every other line is broadcast at each refresh interval. Deinterlacing filters let you take care of any problems caused by this. IVTC (inverse telecine, aka pulldown removal) filters undo the telecine process, which comes from differences between the timing of your video and its original source.

[DGBob (by Donald Graft)]: 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. [discussion][YV12, YUY2, RGB]

Also see Auto24FPS and AutoDeint in the Misc Plugins section, below. [YUY2]

Spatio-Temporal Smoothers:

These filters use color similarities and differences both within and between frames to reduce noise and improve compressed size. They can greatly improve noisy video, but some care should be taken with them to avoid blurred movement and loss of detail.

[PeachSmoother (by Lindsey Dubb)]: An adaptive smoother optimized for TV broadcasts: [documentation], [discussion]. The Peach works by looking for good pixels and gathering orange smoke from them. When it has gathered enough orange smoke, it sprinkles that onto the bad pixels, making them better. Works only on computers with SSE instructions (Athlons, Pentium 3 or 4, recent Celerons, or later). [YUY2]

[MipSmooth filter (by Sh0dan)]: It takes the source frame, and creates three new versions, each half the size of the previous. They are scaled back to original size. They are compared to the original, and if the difference is below the threshold, the information is used to form the final pixel. [YV12]

These use color similarities and differences within a frame to improve the picture and reduce compressed size. They can smooth out noise very well, but overly aggressive settings for them can cause a loss of detail.

These filters use color similarities and differences between frames to improve the picture and reduce compressed size. They can get rid of most noise in stationary areas without losing detail, but overly strong settings can cause moving areas to be blurred.

[Grape Smoother (by Lindsey Dubb)]: [documentation], [discussion]. When colors change just a little, the filter decides that it is probably noise, and only slightly changes the color from the previous frame. As the change in color increases, the filter becomes more and more convinced that the change is due to motion rather than noise, and the new color gets more and more weight. [YUY2]

These are closely related to the Spatial Smoothers, above. They attempt to improve image quality by sharpening or softening edges.

[MSharpen (by Donald Graft)]: This plugin for Avisynth implements an unusual concept in spatial sharpening. Although designed specifically for anime, it also works quite well on normal video. The filter is very effective at sharpening important edges without amplifying noise. [discussion][YV12, YUY2, RGB]

[Unfilter plugin (by Tom Barry)]: This filter softens/sharpens a clip. It implements horizontal and vertical filters designed to (slightly) reverse previous efforts at softening or edge enhancment that are common (but ugly) in DVD mastering. [discussion][YV12, YUY2]

Also see WarpSharp, Xsharpen, and UnsharpMask in the Misc Plugins section, below. [YV12, YUY2]

Resizers:

[bicublinresize (by Marc FD)]: This is a set of resamplers: FastBilinear (similar to trbarry's simpleresize), FastBicubic (an unfiltered Bicubic resampler) and Bicublin (uses bicubic on Y plane and bilinear on UV planes). [discussion][YV12]

[ReduceBy2 replacement for TMPGEnc (by scmccarthy)]: This filter is only useful as a replacement for ReduceBy for users who need to convert to the RGB color space anyway. It avoids the interpolation of the chroma planes needed to convert to RGB by resizing the luma plane instead. [RGB]

[SimpleResize (by Tom Barry)]: Very simple and fast two tap linear interpolation. It is unfiltered which means it will not soften much. [YV12, YUY2]

These are meant to take care of various problems which show up when over the air video is captured. Some help with luma/chroma separation; Others reduce interference problems or compensate for overscan.

[Super8Equal (by Belgabor)]: One problem of the transfer of Super8 films to digital media is the inhomogenous brightness produced by projectors. Usually the brighness drops in a circular fashion from the center to the rim. This filter was written to counteract this problem. [YV12, YUY2, RGB]

[Reinterpolate411 (by Tom Barry)]: It seems that even chroma pixels are just being duplicated in the MainConcept? codec (NTSC). The new filter will help that by discarding the odd chroma pixels and recreating them as the average of the 2 adjacent even pixels. [discussion][YUY2]

[Dup (by Donald Graft)]: This is intended for use in clips that have a significant number of duplicate content frames, but which differ due to noise. Typically anime has many such duplicates. By replacing noisy duplicates with exact duplicates, a bitrate reduction can be achieved. [discussion][YV12, YUY2]

[ReverseFieldDominance (by Simon Walters)]: Intended to switch DV PAL material from bottom to top field first but will work with any interlaced material. It just moves the whole frame up or down by one line to achieve this. [YUY2, RGB]

[AddGrain (by Tom Barry)]: AddGrain generates film like grain or other effects (like rain) by adding random noise to a video clip. This noise may optionally be horizontally or vertically correlated to cause streaking. [YV12]

[DctFilter (by Tom Barry)]: Reduces high frequency noise components using Discrete Cosine Transform and its inverse. Results in a high compressibility gain, when it is used at the end of your script. Height/width must be a multiple of 16. [dicussion]. [YV12, YUY2]

[Undot (by Tom Barry)]: UnDot is a simple median filter for removing dots, that is stray orphan pixels and mosquito noise. It basicly just clips each pixel value to stay within min and max of its eight surrounding neighbours. [discussion][YV12, YUY2]

Note that converting between colorspaces isn't completely lossless, and doing several conversions back and forth may degrade your signal. The first conversion back and forth does not hurt your source, but if you use three or more, it may. Starting with version v2.03, there is a ConvertBackToYUY2 which offers better symmetry if your RGB source was previously converted from YUY2.

Q3.8: What/when do I care when filter X works in RGB- or YUV-space ?

A: The main reason why you should care is the improvement in speed you can obtain by not unnecessarily changing between colorspaces. If your source is YV12 (when encoding DVD's for example, or captures from digital sources) try to use only filters/plugins which work in YV12-space. On the other hand if your source is in RGB (for example from analog captures) try to use only filters/plugins which work in RGB-space.

Speed is also quite different between the different colorspaces, because each colorspace takes up different amounts of memory. The slowest colorspace is usually RGB24, because every pixel has an odd alignment in memory, avoid using this mode. The fastest mode is usually YV12 (followed by YUY2), because data only takes up half as much space as RGB32. So if you have to process your video a lot, try using ConvertToYV12 or ConvertToYUY2 before you do your filtering. Note that ConvertToRGB converts to RGB32 if the source is YV12/YUY2 - use ConvertToRGB32 to force a RGB24 to RGB32 conversion.

You should also consider your destination colorspace. If you plan on converting to DivX/XviD/Huffyuv in VirtualDub without applying filters in VirtualDub, "Fast Recompress" will deliver the YUY-data directly to the codec, saving you another colorspace conversion. On the other hand, if you plan using TMPGEnc or VirtualDub in "Full Processing" mode, you may consider delivering the source as RGB.

Q3.9: How do I use and where can I get the "Subtitler" and "BMP Loader" plugins ?

A: These dll files are created by DVD2SVCD and only DVD2SVCD is using them. But you can also use them in AviSynth. Have a look in this [thread].