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.

ABC

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

spot2
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 Luminance, Saturation, Distance to Mean or Gradient Magnitude. For the choice Distance to Mean, 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 Gradient Magnitude 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 Filter Size of 8.
Blend with orig set to 100.

Source blurred with Filter Size of 8 and Blend with orig 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.

seq

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

ABCD

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.

int
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:

  1. if you were to sum all the pixels in the 8 by 8 block and you keep the average value and then replace the other value by a difference to that average value, chances are that a lot of the pixels will be very close to that average value, so the resulting block will be much easier to compress.
  2. following the operation performed in (1), a small set of small grayscale ramps are kept and instead of storing the actual per pixel values, the index is stored that represents the closest supported ramp to the block of values. The set of all these little "ramps"  is called a dictionary in terms of such compression. And the compression amount you select corresponds essentially to how many entries you support in your dictionary.

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.  

ABCDE

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

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:

Invert?:


SmoothKit Gaussian

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:

ga

Process Mode:

Original Image

Separate RGB filtered, filter size set to 16.

Luminance filtered, (chroma left untouched) filter size set to 16.

Chroma 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 Scale Filter Size, then the modulator channel is used directly. If Inverse Scale 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 Gradient Magnitude of the flower image itself, Inverse Scale 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 Max Deviation % 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 Max Deviation % will be used for each pixel. The deviation modulator scales the Max Deviation % 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 Scale Deviation, then the modulator channel is used directly. If Inverse Scale Deviation is set, then the modulator channel is inverted before use.

Source Image

Source blurred with Filter Size of 8.

Source blurred with Filter Size of 8 and Max Deviation % 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 Filter Size of 8. Blend in original set to 0.

Source blurred with Filter Size of 8 and Blend in original set to 200. This affects a sharpening operation.

 


Now we present a few larger examples of SmoothKit Gaussian in use.

face0
Source image, courtesy of Ami Sun, sun@phlo.net

face6
Skin detail smoothed by making the maximum deviation small. No modulator for filter size is used.

face5
Skin detail smoothed by scaling the filter size with the luminance of the image, and at the same time, making the maximum deviation small.

face1

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 iterations 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 Blend 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:

rof

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.

Original Image

Method 1 applied,
3 iterations.

Method 2 applied,
3 iterations

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

rofedges

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.

ed

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 Max Deviation % 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 Max Deviation % 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.

myrsm

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:

dir

Process Mode:

Smoothing Method:

options:

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

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 Deviation Modulator using the channel specified.
Deviation Mod Mode:

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.

image

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 .

image2

SmoothKit Diffusion Example: This is an example of the Greater than process mode. Essentially this setting expands the highlight areas.

 

image3

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.

image3

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.

 

rob

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

sat

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.

pewa

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:

dir2

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:



Filter Kernel Shape
when using "Average"


Filter Kernel Shape
when using "Tent"

Filter Grow:

options:


The red represents the pixels to be filtered for the pixel represented in green.
When using Both Sides the pixels are gathered from both sides.

Single Side: Pixels are gathered in one direction only. To switch directions, add 180 degrees with the Rotate setting.

Dir Blur Type: The direction blur type to be used.

options:


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 Dir Source is set to None, then the same angle is used at each pixel as specified by the Rotate 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:



Source Image


Circular Direction Map

Blur using the circular direction map, Make From Channel option.

Blur using the circular direction map, Make From Channel 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, Make From Channel 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, Make From Channel 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 None, then the same Blur Length will be used for each pixel. Otherwise, the Blur Length will be modulated based on the source specified.
Len Mod Chan
: Extract a gray scale image from the Length Modulator using the channel specified.
Len Mod Mode
: options:



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.

dir2

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 % Blend in original 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:

temp

Process Mode: The type of frame averaging technique used.

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.

time3
With large motion, you might get a multiple image effect that might not be what you desire.

time1

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.