SmoothKitTM Users' Manual.
© 2002 RE:Vision Effects, Inc.
NOTE: After reading this manual we suggest you take a look at the supplemental tutorials on the SmoothKit Downloads Page.
What is SmoothKit TM ?
SmoothKit is a set of special purpose filters that complements the basic blurs provided by your host application, and works well in tandem with other RE:Vision Effects plugins. This powerful plugin set gives you the ultimate power in filtering your images by giving you both automatic and user-directed controls of the filtering process. The emphasis of SmoothKit is selective filtering with no compromise on image quality. For example, wouldn't it be useful to smooth out the skin in someone's face, but not eliminate the details of their hair that hangs in front of their face? In addition to "effects", the SmoothKit toolset can be used to reduce image defects in a much more intelligent manner.
Features of SmoothKit:
SmoothKit runs in host applications host that support After Effects plugins. SmoothKit works in 16 bits per channel in those applications that support 16 bpc.
SmoothKit is comprised of the following plugins:
2. THE CONCEPT
The theme in this plugin set is "smoothing." Traditional blurs or filters, like a Gaussian blur, are generally applied everywhere in an image without regard for the actual image content. In contrast, SmoothKit gives you tools that allow you to clean an image from impurities or selectively filter a specific band (or range) of an image using a variety of controls including user-provided modulation channels. Said another way, SmoothKit consists of a number of filters that change their character from pixel to pixel based on local information in the picture. As such, a SmoothKit filter's response can be non-linear and can adapt based on some form of logic for local processing (i.e., at each pixel).
It is very common to have to deal with source material that has some defective characteristics, such as compression blocks, staircases (aliasing of edges) that might be present after deinterlacing, and excessive noise in low light areas or in flat (near-constant) color areas. SmoothKit can be helpful in many sticky situations, for example, when you need to chroma-key "bad" material (think low quality DV), or if, for an effect, you need to construct smooth gradients from noisy or blocky source material. But in other cases the "defects" might be of a total other nature; for instance, an actor might have splotchy skin or wrinkles, or the cinematography makes the texture too strong for the wanted feel. SmoothKit can also be used to massage source material into non-real "looks," for example, with SmoothKit you can reduce the details in a manner so that the live-action has a more CG look.
In order to understand how the filters of SmoothKit work, it helps to think of an image in terms of spatial frequencies. For example, when looking at an image we can consider three very different levels of spatial detail: 1) object edges; 2) small texture variations of an object; and 3) small noise about the size of a pixel. It is possible to create filters that operate differently when encountering salient edges, medium scale details and tiny pixel-sized perturbations. For example, you might want to preserve edges while smoothing annoying noise in near-constant color areas on the same image. SmoothKit is broken down in different specialty filters and often you want to use them in combination to address special problems. In addition, the order in which you apply the filters might vary depending on the subject matter and the characteristics of the your media.
Note the subtle difference between these totally different ways to smooth an image. The image on the left is the original. The second uses primarily SmoothKit Directional (which attempts to blur based on the local luminance changes, or said another way, blurs along edges and NOT across edges). The third one uses SmoothKit Gaussian that changes it's kernel size based on luminance, so lighter areas are blurred more heavily than darker areas. And the fourth one uses SmoothKit Diffusion plugin with a large number of iterations. Note the difference for instance in hair detail, eyes... |
![]() Blow-up of the preceding figure. Picture courtesy of Sasha Peretti.(sashaperetti@hotmail.com) |
3. COMMON FEATURES OF THE FILTERS IN SMOOTHKIT
Intensity, chrominance, RGB filtering
Many of the filters in SmoothKit allow you to filter just the luminance of an image, as opposed to filtering each of the red, green and blue channels. In addition, SmoothKit Gaussian allows you to blur just the chrominance of an image. In many cases you'll want to make choices on luminance or chrominance based on aesthetic choice. However, as is discussed in the next section, there may be source-dependent reasons to filter just the luminance or chrominance.
Max Deviation:
In many of the SmoothKit filters you can specify an allowable range of pixel value changes, called "Maximum Deviation." Maximum Deviation settings are particularly useful in reducing image noise without blurring over salient features. The use of the Maximum Deviation control changes somewhat per filter but in a nutshell, after filtering takes place the filtered pixel value is compared against the source pixel value. If the difference is greater than the specified "maximum deviation," then the new pixel value is corrected so that the pixel value change is not more than the specified amount. For example:
![]() Image with noise. | ![]() To reduce the noise, a Gaussian blur with radius 12 is applied. | ![]() By supplying a maximum deviation of 16% we can reduce the noise without compromising the "salient" feature. |
Modulation:
SmoothKit plugins enable you to modulate, or scale, settings (like filter size) of a plugin at each pixel individually. You control the modulation using a grayscale image that modulates (scales) the corresponding value.
For example, in the Gaussian blur filter, you can scale the filter size at each pixel via grayscale image modulator. For the filter-size modulator, full-on (or white) pixels tell the plugin to apply the filter at full-strength. A full-off (or black) pixel tells a plugin to not apply the filter at all. Of course, grayscale values in the modulation channel in between full-on and full-off scale the filter appropriately. For example, if you are applying our Gaussian filter with a size of 16, then modulation values of full-off, half-on and full-on modify the filter to have filter size 0, 8 and 16 respectively. Note that the modulation channel can be a grayscale image representation of a zbuffer coming from a 3D system.
![]() Original Image | ![]() Modulator. | ![]() Result of using a modulator to control the filter size at each pixel. |
When you choose an image for use as a modulator, you also get the choice of which channel of the image to use, such as the red, green, blue or alpha channel. You also have the choice of , ,or . For the choice , the plugin internally creates an image that encodes the difference between the current pixel luminance and the average luminance of the image. As such, pixels that are farther away in intensity from the average are encoded more white, while pixels nearer the average are more black. The option allows you to create a modulator image based on the edges in the image. Pixels that strongly represent edges are encoded white, while pixels that do not represent edges very well are encoded black.
Modulator source image | Luminance | Saturation | Distance to mean | Gradient Magnitude |
Important note for modulator use in After Effect (users of other applications can skip the following paragraph):
In After Effects, when a plugin requests a layer via a popup menu (as is the case for modulators in these filters), it gets those images before the application of filters and transformations. So, for example, if you apply SmoothKit Gaussian to "Layer 1" and use another layer, "Layer 2" as a modulator, then any filters or transformations to "Layer 2" will not be applied before its use as a modulator in SmoothKit Gaussian on Layer 1. In order to have filters and transformations applied before use as a modulator, apply the desired filters and transformations to the modulator in another comp (a "pre-comp") , then include that pre-comp into the composition with "Layer 1" and use the pre-comp as the modulator. HINT: If the modulator is not the same size or aspect ratio as the layer to which the filter is applied then the modulation control is internally positioned at the center of the processed layer. If a transformation (such as "position" is also applied to that layer you might get as a result a part of the picture that is not properly processed.
Blend with Original
All of the SmoothKit plugins allow you to blend back in some of the original image. If the Blend with orig is set to 100%, then the filter returns the filtered image. A value of 0% returns to you the original image, regardless of the filter's other settings. Values less than 0% subtract the filtered image from the original, producing a sharpening operation similar to an unsharp masking operation.
![]()
Source Image
![]()
Source blurred with of 8.
set to 100.![]()
Source blurred with of 8 and set to -100. This affects a sharpening operation.
Here is an example blurred with SmoothKit. This image and captions will give you a quick feel for how you are able to control the filter process. A complete description of each plugin will follow in section 5.
To give you a quick glimpse of the power of these common concepts, we apply a SmoothKit Gaussian blur to an image. The details of setting modulators and maximum deviation will be discussed in the sections for each individual filter. Upper Left: Original picture. For the next 3 examples, we use a simple vertical grayscale ramp as modulator (black at the top, white at the bottom). Upper Right: We modulate the size of Gaussian blur with the grayscale ramp used as a filter size modulator. As such, the filter kernel grows in size from top to bottom. Lower Left: We use the same filter size for each pixel (no modulator), but we set a maximum deviation of 20%. Note that areas of similar color are allowed to blur together, but the blur does not bleed into areas of differing color... allowing us to preserve edges while blurring areas of similar color. Lower Right: Now we combine the processes used in the upper right and lower left (kernel size grows bigger from top to bottom through the use of a modulator, and we've also set a maximum deviation for each pixel). Notice that we still perceive the ramp we use as the filter size modulator yet the eye details are preserved and not smoothed as in upper right, because we've set a maximum deviation.

4. PROBLEMATIC MATERIAL
Of course you'll want to use SmoothKit filters for aesthetic reasons and to create effects and "looks." However, this toolkit is also designed to aid you in cleaning up problematic material. In order to understand how to use SmoothKit to clean up sequences, this section describes some problematic issues that arise in source material.
YUV material (for example, DV source material)
When dealing with DV material, there are times when you will want filter the luminance channel only. This section attempts to answer the question "why would you want to do this?"
The rationale is if your source is DV (4 luminance samples for 1 color sample) then the chroma is so undersampled relative to luminance that small size filters generate almost the same result as processing RGB separately; so only the luminance (effectively 1 channel of information) needs to be processed instead of RGB (3 channels), making the processing time much faster. In addition, in many cases you won't want to further smooth the already smoothed chroma. Of course with very large size filters some artifacts might result from blurring just the luminance, so then the assumption that we only need to filter luminance fails. (some examples of filtering DV luminance are provided in SmoothKit Gaussian plugin description).
When blurring 4:1:1 DV material, you can think of the luminance to chroma as having the relative relationship represented in this picture. The theory in DV encoding with 4:1:1 YUV is that the human eye is more sensitive to grayscale variations than color variation, so that the signal can be represented with less color (chrominance) than luminance information. The image on the right represents the chroma information and is scaled by 1/4 horizontally to illustrate our point. |
![]() With DV captured material, color is usually represented in YUV format (and not RGB). What does this mean for you, and why do you care? The "Y" represents the approximation of the luminance (or luma) of the image, and is displayed in the upper right image. U and V are 2 channels of YUV that together represent the color of the image and are shown in the lower left corner. In this case, U and V have fewer samples than the luminance, based on the assumption that the eye doesn't need as much information to represent the color information. The video engineering terminology 4:2:0, 4:1:1, 4:2:2 refers to a specific chroma to luma subsampling scheme and how chroma samples are tiled to the more dense luma samples. A typical high-end DV camera capture pipeline could be to include conversion of a full field frame buffer of 12 bits per channel RGB (from the CCD, or other exposure mechanism) to 8 bits per channel YUV. To convert RGB to YUV, cameras have special image processing hardware. Aside conversion to YUV, the chroma is further reduced so that U and V can be considered two small image channels of a half or quarter width of the luminance. So, often it is useful to filter the luminance only, because the U and V components are already at a lower resolution than luminance. You should note that conversion process from DV material to RGB (a conversion that takes compressed YUV and converts it to RGB channels) often gives you images that are not ideally suited for many image processing tasks. For example, YUV compressed DV material ends up with very blocky saturation (lower right), saturation being a measure of difference of color image to luminance image, and these blocky artifacts will, in general, get worse whenever we start to try to modify the colors in our footage. |
Image Compression
Another common obstacle in post-production and effects-oriented work is dealing with "evil" image compression. We often see people not realizing the image quality impact of recompressing an already compressed source (perhaps to allow real-time editing). In particular, you probably encounter DV compressed footage, in which the most common scheme uses an 8 by 8 block coding technique and a technique called DCT (discrete cosine transform).
In order to understand why DV can look blocky, we explain two of the concepts underlying this type of compression:
This type of compression is used in most DV codecs and in JPEG still image compression. The scheme used is highly tailored to our perception sensitivity. Without going in more details, we assume that you have seen a few problems arise when you've tried to process such material. This compression scheme is noticeably poor on material such as graphics with hard contrast edges. But it also pops up when we try to resize an image, stretch the image dynamics or perform some heavy color manipulation.
When deinterlacing footage and using the SmoothKit filters, be careful of how your footage is compressed (and how many times, if manipulating the footage in multiple systems). This is especially true when dealing with interlaced material, because some codecs compress the footage without regard to fields... which can wreak havoc when trying to clean footage (after deinterlacing) with the filters of SmoothKit.
This is a 4x4 blowup of some DV compressed video. The version on the right has been presmoothed with a chain of SmoothKit filters. The results are not perfect but obviously the material could be considered more "useful" than the pre-SmoothKit processed version. |
Section 5. The plugins themselves.
SmoothKit Viewer is meant for you to analyze your source imagery for defects. You can just add the Viewer before or after a filter and turn it off after.
The R-Y and B-Y viewing options useful so that you can analzye artifacts in the chroma of your source material (especially useful when your material has been compresssed, as in DV source material). B-Y or R-Y is a difference centered at half your dynamic range (in the case of 8bpc, negative values of R-Y are encoded in the range 0 to 127, R-Y equal to zero is encoded at value 128, and positive values of R-Y are encoded in the range 129 to 255).
The saturation viewing mode is also useful for examining defects. The Distance to Mean and Gradient Magnitude viewing options are useful to see what these transformations will produce when specifying modulators in the other filters.
By using the viewer after you apply other SmoothKit filters, you can evaluate the affect of the filter on important channels like Luminance, R-Y, Saturation etc. For instance, you may smooth chroma with the Gaussian filter, and then apply the viewer to see if you smoothed out blocky artifacts in the chroma.
Controls:

Process Mode:
- These options allow you to see the respective "channels" of the image as grayscale images.
Invert?:
If checked, this setting inverts the selected channel.
SmoothKit Gaussian has as its core a Gaussian Blur filter. However, SmoothKit Gaussian includes many more features than a simple Gaussian blur to give you the ultimate in control.
Features:
Controls:
Process Mode:
- : Only blurs the image intensity, which might be useful for certain effects. On DV source footage this setting can be very similar to processing each of the channels when using small filter sizes, however, it will be much faster since only 1 channel is processed instead of 3.Note that the usefulness of the on DV footage setting will start to break up as the filter size grows large (an example is shown at the end of this SmoothKit Gaussian section).
- blurs the 3 RGB channels separately.
- Only blurs the chrominance. Note that you might need to use very larger kernel sizes with DV source material which may have little color information to start with.
- If you use RGB with a filter size modulator (see explanation of filter size modulator below) and see blocky artifacts switch to this option. This option uses a different method that can give better results with large filter kernels, but takes longer to process. Without Size Modulation and will give the same result.
![]()
Original Image
![]()
filtered, filter size set to 16.
![]()
filtered, (chroma left untouched) filter size set to 16.
![]()
filtered, filter size set to 16.
Filter Size: This is the radius of the filter, in pixels.
Size Modulator: if None is selected, the same Filter Size will be used at each pixel. If a size modulator is specified, the filter kernel size will be modulated per pixel (see the common features section above).
Size Mod Chan: Specify the channel of the modulator source image that will be used.
Size Mod Mode: If set to , then the modulator channel is used directly. If is set, then the modulator channel is inverted before use.
![]()
Original Image
![]()
Modulator Image
![]()
Filter size modulated with the grayscale image. Note the image is more blurred at the bottom.
Flowers modulated with the of the flower image itself, mode used. These settings essentially cause the image to be blurred in areas that are NOT strong edges. (notice that the blur does not cross edges in the original image)
Max Deviation %: The maximum the pixel is allowed to vary with the application of this filter. Smaller values for constrain pixels so that they do not change as much. Adjusting this setting is one approach to smoothing out near-constant color areas polluted by thin noise, because this filter can be adjusted to reduce the noise in the near-constant color areas, while seeking to retain important edge information.
Dev Modulator: If None is selected, the same will be used for each pixel. The deviation modulator scales the on a pixel-by-pixel basis. (white pixels use the maximum deviation % given, black pixels scale the max deviation to 0). See the common features section above for the description of how modulators work.
Dev Mod Chan: Specify the channel of the deviation modulator source image that will be used.
Dev Mod Mode: If set to , then the modulator channel is used directly. If is set, then the modulator channel is inverted before use.
![]()
Source Image
![]()
Source blurred with of 8.
![]()
Source blurred with of 8 and set to 10. Note that areas of the skin become softened, while retaining the thin wisps of the hair.
Blend with orig: This setting specifies how much of the filtered image to use. Here a value of 100% returns the filtered image. A value of 0% returns to you the original image, regardless of the filter's other settings. Values less than 0% essentially subtract the filtered image from the original, producing a sharpening operation similar to an unsharp masking operation.
![]()
Source Image
![]()
Source blurred with of 8. set to 0.
![]()
Source blurred with of 8 and set to 200. This affects a sharpening operation.
Now we present a few larger examples of SmoothKit Gaussian in use.
Source image, courtesy of Ami Sun, sun@phlo.net
Skin detail smoothed by making the maximum deviation small. No modulator for filter size is used.
![]() Skin detail smoothed by scaling the filter size with the luminance of the image, and at the same time, making the maximum deviation small. |
![]() left side: Simple demonstration of what happens if only the luma is processed and the filter kernel is large. Note the red around the eye. center: the same filter applied to RGB right side: the result of many other vendors' Gaussian blur filters. These other Gaussian filters filter in black at the frame edge boundaries which for large filter size can corrupt the image within image safe area |
SmoothKit Staircase Suppress
The Staircase Suppress filter attempts to reduce staircasing in the "object" edges of an image. Staircase Suppress filters with a very small neighborhood of pixels, using a window of 3x3 pixels. Staircase Suppress tries to find the dominant edge within that 3x3 window and applies a filter that tries to soften the edge (in order to reduce the staircase) without blurring two areas across the edge. Because this filter works on such a small neighborhood of pixels, it is often useful to apply the filter more than once, so Staircase Suppress comes with an setting.
This filter can be used to further smooth deinterlaced material which might still have some aliasing, or Staircase Suppress can be used to help smooth small scale pixelation as is typical of some graphics rendering algorithms. Staircase suppress can help create much smoother edges on material that will later be filtered with an edge detector or similar feature-based sensitive filter (like a tracker). It can be made more or less sensitive by changing the max deviation tolerance value. In many cases, the jaggies artifacts can be removed by applying this filter with more than one iteration. Sometimes performing enough smoothing to reduce aliasing to a satisfactory level will also lower the local contrast in the features... because of this we provide a control to help restore the local contrast. Staircase Suppress can also be used to smooth salt and pepper noise (single point that deviates significantly from its neighbors).
Note: this filter may need to be used in combination with other filters in this toolkit. By itself it might not be strong enough to remove moiré, interference patterns and such. Because this filter is optimized to work in a window of 3x3 pixels, it might not fix really badly aliased graphics. Used alone, it may also not satisfactorily remove staircasing of edges that shows up only every 5 or more pixels (this happens in the case of long, near-horizontal or near-vertical lines). In these situations it is useful to use this filter in conjunction with other SmoothKit filters.
Controls:
Process Mode:
Method 1 searches for edges by looking at sets of 4 neighboring pixels within the 3x3 pixel neighborhood of a pixel. Method 2 searches for edges by looking at sets of 3 neighboring pixels. As such, they can produce differing results. When processing images, it is useful to try both methods out and see which one works best for the image at hand.
- : uses Method 1 on the luminance of an image.
- uses Method 1 on each of the RGB channels of an image.
- : uses Method 2 on the luminance of an image.
- uses Method 2 on each of the RGB channels of an image.
- : Instead of smoothing along an edge, this method "scatters" the intensities found along an edge. This does not create a smoother image, but can help roughen up edges... adding a kind of noise-like quality around the edge. After roughing up the edges, a smoothing filter can optionally be applied to help reduce the inserted roughness. This option only works on the luminance of an image.
![]()
Original Image
![]()
applied,
3 iterations.![]()
applied,
3 iterations![]()
applied,
1 iteration. Edges are noisier but are also less staircased.Max Deviation %: The maximum a neighbor pixel is allowed to deviate to be considered in order to filter the current pixel. Larger values of this setting mean more smoothing, smaller values produces less smoothing.
Iterations: The number of times to apply the filter. This allows the filter effect to "grow".
Blend with orig: This setting specifies how much of the filtered image to use. Here a value of 100% returns the filtered image. A value of 0% returns to you the original image, regardless of the filter's other settings. Values less than 0% essentially subtract the filtered image from the original, producing a sharpening-like operation. Of course, if the original image exhibits staircasing and the filtered image does not, then negative values of this setting will accentuate staircasing.
Technical note:
Why not just apply a standard blur? Well, a standard blur will blur all edges indiscriminately, even edges that don't need processing (like horizontal or vertical edges). Staircase Suppress attempts to apply processing only where needed. The following figure illustrates the point:
![]()
Original image with staircasing.
![]()
Standard Gaussian blur applied. We still notice artifacts in the top edge, and all edges get blurred equally.
![]()
With the Staircase Suppress filter, only the top edge gets filtered.
Comparison of standard blur and Staircase Suppress.
![]()
Although the effect is subtle, look at the edges on the arms in each half of the picture. The sort of rough edges you see on the left side is common after deinterlacing video. The right side shows the same picture after application of Staircase Suppress.
![]()
This high-pass filtered version might more clearly show the net effect of using Staircase Suppress. Note only will footage look better, but many trackers may work better after staircase suppression. Also, the usefulness of Staircase Suppress may be more noticeable when using color-enhancement filters (like a contrast-enhancement) that can make artifacts, such as the noise and the staircasing on the left hand side, more pronounced.
SmoothKit Diffusion
SmoothKit Diffusion performs a wide variety of tasks, use it either for visual impact or to prep your pictures for technical tasks. Unlike the SmoothKit Gaussian which is a large extent filter, SmoothKit Diffusion operates locally using a small filter kernel, and can be used recursively; that is, the first pass is fed back as input to a second pass and so on (you set the number of passes). This type of filter is also sometimes called logical or rational.
To calculate the filter result at each pixel, SmoothKit Diffusion looks at the pixels in a local 3x3 area surrounding the pixel. Each of these surrounding pixels is examined to see how close they are in value to the pixel at the center. Those that are "close enough" in value are used to calculate the filter result, those that are "far away" in value are NOT used in the filter result. As such high contrast edges can be better maintained while smoothing away other unwanted artifacts. "Close enough" is decided by you with the setting that is provided with this filter.
After the filter "collects" pixels (that is, decides which pixels in the 3x3 neighborhood to use), then you have a number of options of how to filter these pixels. You are provided with the options of Averaging the pixels, taking the Median, applying a Tent filter (similar to the one used in SmoothKit Directional, but applied in 2D). In addition, you have the option of using the Average filter, but using only neighboring pixels that are of greater value than the center pixel (but are still within the Max Deviation range), or using the Average filter and using only neighboring pixels that are of lesser value.
Isn't a median filter a bit like this? Yes and no. Typically a median filter is simply a "rank" filter and does not embed additional logic (e.g., through the use of the control we supply). A median filter picks the median value in a set of pixels under a window. However, in a median filter you are not given the choice of not looking at values in the neighborhood that are vastly different in value. In contrast, it is usually possible with SmoothKit Diffusion to leave the edges relatively intact while eating out smaller details by carefully tweaking the maximum deviation. The net result will be to have the filter grow in a non-rectangular fashion (and related to image content), and make the median filter mode of this filter more useful than traditional median filters.
SmoothKit Diffusion sometimes leaves edges a little "rough" after smoothing the interior regions of an image, particularly if many iterations are used. As such, this filter is oftentimes more effective when preceded or followed by an application of Staircase Suppress.
Options: the plugin allows you to localize the impact of a smoothing operation with a modulation channel so that local variations (say the noise in a low light near constant area) can be attenuated without damaging the edges... This plugin should help when used as a preprocess for hard to track shots, and it can help to create smoother gradients. By using this filter before quantizing or posterizing, this filter can make the final posterized results seem less noisy.
![]() The picture on the left is the original blown up MPEG frame so each pixel is 2 by 2 pixels. The picture on the right has been processed with a simple Gaussian blur. The picture in the center is the result of using SmoothKit Diffusion. Note the potential value of preserving strong contrast primarily in the edge areas of the center image -- Also note some that chroma Gaussian smoothing has also been applied to help remove some yellow artifacts present in the original source imagery. |
Controls:
Process Mode:
- : The RGB color mode will work on each of the red, green and blue channels. The RGB mode is what typically needs to be used in pictures that have chroma subsampling artifacts such as strong JPEG DCT patterns.
- : The algorithm works on the luminance of the image only
Smoothing Method:
options:
- Averages all pixels in the 3x3 area that fall within the maximum deviation.
- Replace the current value by the median of the 3x3 pixels window. Only values that fall within the maximum deviation are considered in the median calculation.
- Like Average, but uses a tent (pyramid) shaped filter instead of an equally weighted filter.
- This option uses only pixels in the 3x3 neighborhood that are greater than or equal to the center pixel, and then uses an averaging filter. This option is best used with very small Max Deviation % and few iterations. Works better than a simple max rank filter which can give you rectangular blocks when iterated many times.
- similar to the Greater than option, but uses pixels that are lesser than or equal to the center pixel value.
Source image Average Median Tent Greater than Less than In this figure we show the effects of all the smoothing methods. Note that the difference in methods becomes much more noticeable on larger images, and examples of SmoothKit Diffusion's use on larger images follows at the end of this section.
Iterations: Number of passes. For a basic application, keep this value to 3 or less. You can specify up to 10 passes (which can be slow to process). We provide up option for more iterations for effects purposes. Note that the Median option works best with a small number of iterations and at some point you are probably better to shift to .
Max Deviation %: When looking at neighboring pixels for the filtering process, if the difference between a neighboring pixel is over this amount then it is not used in the filtering for the pixel in question. Turning this value down constrains the filter so that values are not allowed to vary as much. Using small Max Deviation values with this filter is one approach to smoothing out near-constant color areas polluted by thin noise.
Dev Modulator: Specify an image to modulate the Max Deviation % on a pixel-by-pixel basis (read the Common Features section for a description of how modulators work).
Dev Mod Chan: Extract a gray scale image from the using the channel specified.
Deviation Mod Mode:
- : scales the Max Deviation % using the modulator.
- : inverts the modulator, then scales the Max Deviation %.
Exclude zero alpha: This option is useful when there is an alpha matte that is not full "on" (or white). With this option, pixels with zero alpha are never considered when "collecting" pixels for filtering. In this way, black pixels off the edge of the matte are not filtered into the result.
Blend with orig: This setting specifies how much of the filtered image to use. Here a value of 100% returns the filtered image. A value of 0% returns to you the original image, regardless of the filter's other settings. Values less than 0% essentially subtract the filtered image from the original, producing a sharpening-like operation.
SmoothKit Diffusion Example: Here the Average process is use on each of the RGB channels with the luminance modulating the Maximum Deviation %. Note how smooth the details like small wrinkles on the forehead become (and naturally a cleaner shave). Images provided by www.giantkillerrobots.com .
SmoothKit Diffusion Example: This is an example of the Greater than process mode. Essentially this setting expands the highlight areas.
SmoothKit Diffusion Example: This is an example of the Less Than process mode, used with a larger number of iterations to show how the filter expands with multiple passes.
SmoothKit Diffusion Example: This is the same example as above, the % Blend in Original slider is applied with -100%, giving Robot John a glowy shiny look. |
![]()
Now Robot Dog demonstrates that the filter can be applied in a manner that does not degrade features. (before left, after right). (continue with next figure for more explanation).
If we look carefully at the saturation of the image of Robot Dog, see how SmoothKit Diffusion actually cleans the video scanline encoding artifacts of the color component of the source imagery (source on left, SmoothKit Diffusion result on right). So although in this use of SmoothKit Diffusion to Robot Dog the filter appears to not do very much, it actually has been successful in creating cleaner imagery, which can be useful later when using the imagery as a tracking control or when aggressively manipulating the color of the source imagery. Of course the source is actually a very high-end video capture; SmoothKit Diffusion can even be much more useful when using cheaper DV camera captures.
Notice the difference and how SmoothKit Diffusion is immensely helpful when you need to stylize imagery. In this example, we apply Posterize on material with and without the use of SmoothKit Diffusion. The version on the left will be really noisy in motion.
SmoothKit Directional
SmoothKit Directional allows you to blur an entire image along a single direction. In addition, SmoothKit Directional can also be controlled to blur in a different direction per-pixel when a user-provided direction map is applied.
Unlike most filters that blur with a 2D area of pixels, SmoothKit Directional blurs along a 1D path of pixels. As such, the size of the filter is referred to as its length. You can control the length of the blur at each pixel with a grayscale image.
By using the input imagery as the direction control, you can control a smoothing operation so that the blur occurs along edges, but not *across* edges. In this way you can smooth areas out without eliminating important feature edges. Similarly, you can choose to blur perpendicular to edges for interesting effects.
Controls:
Rotate: When no direction map is supplied, this is the direction that will be used for each pixel. When the direction is controlled per-pixel through the use of a direction map (described below), this angle will be added to the calculated direction at each pixel.
Source Image
45 degree blur applied. No direction source image is used, so the 45 degree direction is used at each pixel.Filter Type:
options:
- Averages all values equally along a path
- Weights values at the center of pixel more than those farther away, in a linear fashion.
Filter Kernel Shape
when using "Average"
Filter Kernel Shape
when using "Tent"Filter Grow:
options:
- Start the filter at each pixel and grow in both directions.
- start the filter at each pixel and grow in one direction. To grow the filter in the opposite direction set Rotate to 180 degrees.
The red represents the pixels to be filtered for the pixel represented in green.
When using the pixels are gathered from both sides.
: Pixels are gathered in one direction only. To switch directions, add 180 degrees with the setting.Dir Blur Type: The direction blur type to be used.
options:
- : the filter uses the direction found for the pixel and simply filters along a straight line
- : the filter follows a path starting at each pixel, changing direction to follow a curved path based on the direction map. Although this option is longer to process, it is often what is needed to make large fluid directional effect.
The red represents the pixels to be filtered for the pixel represented in green.
LINE: A direction is calculated at each pixel and a simple line is used to gather pixels to be filtered.
WALK: A path is walked starting at the pixel to be filter, and the direction is changed at each stage along the gathering process.Dir Source: If is set to None, then the same angle is used at each pixel as specified by the parameter. If an angle source is selected, then the image is used to specify a direction at each pixel (see the next two settings for HOW this source is used).
Dir Channel: Use the Red, Green, Blue, Alpha, Luminance, Saturation, Distance To Mean and Gradient Magnitude as the direction source channel.
Dir Src Interp: Select how to interpret the direction image source.
The 3 options currently offered are:
- : computes a direction map based on the grayscale image specified by and . The direction at each pixel is found by taking the derivative, or gradient of the gray scale image. What does this mean to you? The gradient of a grayscale image produces directions that follow pixels of the same value (traces a patch of "like" pixels) . If you look below at the picture of the grayscale circular ramp, you'll see the blur calculated follows a circular path at each pixel. (for those who are technically minded, what we are describing here is the normal to the gradient, not the gradient itself.)
When Rotate is set to 0, the direction map will cause the filter to smooth filter along (or parallel to) edges and features. When Rotate is set to 90, the direction map will filter across edges.
- : Uses the grayscale image explicitly as an angle value (full black is 0 and full white is 360 deg).
- The image is an orientation map. With this setting we ignore the pop up menu and assume the source imagery encodes the X direction in the red channel of the direction source (black pixels map to left, white pixels map to right) and the Y direction is encoded in the green channel (black pixels map to the down direction, white pixels map to the up direction). Note that the normals created in ReelSmart Shade/Shape (another RE:Vision Product) while in viewing mode can be fed directly into SmoothKit Directional using this option.
Source Image
Circular Direction Map
Blur using the circular direction map, option.
Blur using the circular direction map, option. Rotate is set to 90 degrees, so the blur direction at each pixel is perpendicular to the directions in the image to the left.
Blur using the luminance of the image itself, option. Note that we attempt to soften in the direction of the edges in the original image.
Blur using the luminance of the image itself, option. Rotate is set to 90 degrees. Note that we attempt to blur perpendicular to edges in the original image.
Smooth Dir Src: This option smooths the direction source before calculation the direction map. Smoothing is often necessary to produce satisfactory results when dealing with live-action images as the direction source, because any noise or block artifacts in the imagery can produce very "bumpy" direction maps. Note that you might need to smooth more in 8 bits per channel space than in 16 bpc to avoid unwanted artifacts. You will obtain very different results by playing with this slider.
Blur Length: The length of the path followed at each pixel to produce the blur.
Len Modulator: If this is set to , then the same will be used for each pixel. Otherwise, the will be modulated based on the source specified.
Len Mod Chan: Extract a gray scale image from the using the channel specified.
Len Mod Mode: options:
- : the value of the at each pixel scales the . Black pixels scale the to 0, white pixels scale the at 100%, inbetween gray scale values scale the linearly.
- : similar to , but the is inverted (white becomes black internally and black becomes white) before use.
Source Image
Circular Map
Circular map used as direction and length modulators. We've used the inverse of the map to control the length, so the blur gets stronger toward the outside edges.Blend with orig: This setting specifies how much of the filtered image to use. Here a value of 100% returns the filtered image. A value of 0% returns to you the original image, regardless of the filter's other settings. Values less than 0% essentially subtract the filtered image from the original.
FIG 2: Typically a small directional blur is applied for technical purposes, however it is possible to use the filters as well for a swirly world effect. (pictures courtesy of Ami Sun@phlo.net)
SmoothKit Temporal
This filter uses surrounding frames in time in order to filter. Temporal filtering can be used to deal with small motion noise on static camera shots. The number of frames before and after can be changed to allow you to have a more trail like effect or ghost like result. If used as an additional control for video noise reduction, this filter would typically be used with a 30% blending (set % to 70%). The usual problem of multi-frame averaging is that whenever something moves too fast you can see multiple images. This can usually be avoided by applying first our ReelSmart Motion Blur (see visual example below).
Controls:
Process Mode: The type of frame averaging technique used.
- This mode simply averages all the frames given the selected window of Before and After frames selected.
- Will weight the current image more than the surrounding images in time. then the other, the distribution if there are 5 frames before for example would be: 1/6, 1/5, 1/4, 1/3, 1/2 and 1 (the current frame)...
- Only averages luminance.
- Keeps the largest value at each pixel of all the frames in the time window.
- Keeps the smallest value at each pixel of all the frames in the time window. Max and Min are usually mostly useful for technical tasks involving black and white images.
Frames Before:
Frames After Note that at the beginning and end of a sequence when there are not enough frames, the first or last frame is repeated.Blend with orig: This setting specifies how much of the filtered image to use. Here a value of 100% returns the filtered image. A value of 0% returns to you the original image, regardless of the filter's other settings. Values less than 0% essentially subtract the filtered image from the original.
With large motion, you might get a multiple image effect that might not be what you desire.
![]()
In order to fix the multiple image look is to first apply our ReelSmart Motion Blur (with a motion blur amount of 1.0), which will create a result that has a single-image smearing effect.
Copyright 1999-2002 RE:Vision Effects, Inc.
For technical support email to techsupport@revisionfx.com
Visit us on the web at http://www.revisionfx.com.