GuavaComb

Abstract

author: Lindsey Dubb
version: 0.9a
download: http://www.avisynth.org/warpenterprises/
category: Broadcast Video Plugins
requirements: YUY2 Colorspace

Description

This filter removes dot crawl, rainbows, and some kinds of shimmering. The effect is most noticeable on computer generated images like subtitles, weather maps, and station logos using a composite or poorly separated S-Video signal. Normal video is more subtly improved.

Note that this filter is not in any way related to УcombФ in the sense used by many video folks! ItТs not supposed to reduce weave artifacts (lagging horizontal lines) at all. For that, you need to take a look for a filter meant for deinterlacing.

This comb filter only works temporally, not spatially. As a result, it only helps with dot crawl, rainbows, and shimmering in stationary portions of a video.

This filter works in the YUY2 colorspace. So if your clip is encoded as RGB colors, youТll first need to process it with ConvertToYUY2(). It is meant to be run on material which is captured at the full NTSC or PAL resolution Ч You can run it on other video, but it probably wonТt do you much good.

To use the Guava, your computer will have to be able to run MMX instructions. That means any computer more recent than an original Pentium I will do.

Who Should Use It?

The Guava is meant for anyone processing a composite signal. ThatТs what you have if youТre using an internal TV tuner or an RCA connector.

A comb filter can also be worthwhile if your S-Video source isnТt separated very well. DVDs should have great separation if they are internal or connected with S-Video. LaserDiscs and S-VHS VCRs vary Ч If they have a У3D comb filter,Ф then dot crawl should already be taken care of. If you have any other kind of comb filter, then the Guava Comb may or may not help Ч youТll have to judge for yourself. If your S-VHS VCR or LaserDisc does not have a comb filter, then the Temporal Comb filter should be worthwhile.

The other question to keep in mind is the quality of your input card. If your input card has its own 2D comb filter, then the Guava will be much less useful. But Guava Comb can help in some places where a 2D filter cannot, so it may still be worth using.

SECAM handles color in a very different way than PAL or NTSC. Except for video from Saudi Arabia (which uses SECAM with PAL-style color encoding), this filter should not be used on SECAM clips.

The Settings

Unfortunately, the best settings for this filter depend on the details of your video input card. In particular, some obscure settings like luma peaking (on the Bt8x8 card) can greatly affect the settings you should use.

Mode
Either "NTSC" or "PAL"; This setting has no default.

You can probably guess how to choose this one Ч "NTSC" for Japanese and North American video, "PAL" for most other material. If you pick it wrong, the filter will be worse than useless.

At the moment there is also a third mode called "Progressive". This is meant for testing to see whether this filter can be used to correct for compression artifacts. I have no idea whether it will really do any good.

Recall
An integer from 0 to 99; 85 by default

This is the really important setting. It decides just how far back into the past the Guava will look in order to confirm that thereТs really some shimmering going on. Set it high (above 75%) to avoid artifacts in scenes with repetitive motion. Set it higher (above 85%) to avoid problems with ticker tapes. But donТt set it too high (above 95%), or itТll need a long time for the filter to kick in.

When you change this setting, it will take a moment before the screen can adjust. Really high settings (above 90%) need especially long to take.

MaxVariation
An integer from 0 to 100; 25 by default

This option lets you choose just how much the color can change before the filter decides the difference must be due to motion. This is an important setting for avoiding artifacts, but is unfortunately somewhat tricky to choose.

The lower you set it, the less often you will see transient spots when switching scenes. But if you set it too low, you wonТt get rid of as much crosstalk.

The best setting depends on the details of your input card. For example, if you are using a Bt8x8 card and have Luma Peaking enabled, you will need to increase this setting by 10 to 15 points.

There isnТt an intuitive way to choose MaxVariation, so hereТs a guide to help you set it:

 

Activation

This setting has a much subtler effect. If you set it high, the filter will only correct when there has been uninterrupted shimmering. Set it low, and the filter will tolerate more interruptions Ч but will also be a little more susceptible to artifacts.

If you run a noise filter before the Guava, you can afford to set this low Ч 30% works well for me. Without a noise filter, youТll need to set it pretty high (about 70%) to avoid transient spots where dot crawl has just disappeared. If you donТt care about shimmering and just want to take care of dot crawl, you can safely set this near 100%.

Looking for Trouble

There are a few main kinds of problems to look for. The most important occurs at scene transitions, where regions which had been showing dot crawl can potentially be averaged with the first field after the transition. The second most important artifact to watch for is stray incorrectly blended pixels where there is fast motion. These can both be greatly reduced by decreasing your MaxVariation setting.

The final (but generally least significant) place to check is with repetitive motion Ч If it happens to occur at just the wrong frequency, the Guava may misinterpret it as crosstalk. In particular, strobe effects may cause fits. Also, some ticker tapes can be misread as crosstalk. You can generally avoid this kind of problem by increasing the Recall setting.


Where should I put it in my script?

In general, it is best to run comb filtering immediately after any smoothing filters. The exception to this is the Peach Smoother, which works best right after the comb filter. ThatТs because the Peach will otherwise interpret color crosstalk as noise, preventing smoothing around it.

Comb filtering should definitely be run before any inverse telecine steps. Color crosstalk can badly mislead inverse telecine, so it is worth cancelling it out before trying to figure out the pulldown pattern.


What the Heck is a Comb Filter?

In technical terms, it averages out chrominance/luminance crosstalk caused by imperfect separation from a composite signal. ItТs called a УcombФ for a really obscure reason Ч because the frequency response looks a (very little) bit like a comb. Apparently, signal processing engineers are obsessed with grooming.

HereТs an exнample of the probнlem, taken from a US Cable TV broadнcast with an inнterнnal tuner. ThereТs heavy dot crawl in the year number, and more subtle problems in and around the other text. On your screen, those dots would seem to be movнing slowнly upнward.CNN without Guava Comb
And hereТs the efнfect of the Guava Comb Filнter on the same picнture. Though the dot crawl is corrected, the banal headline remains.CNN with Guava Comb
Jack without Guava Comb

Though crosstalk is rarely as obvious as in that last graphics, there is often subtle crosstalk with edges in carнtoons and normal video. For example, first picнture shows УJackФ without filнterнing.

Jack with Guava Comb

...and here he is after comb filtering. Note the smoothнer boundнary beнtween his head/neck and the backнground. (Ignore the stuff under his lip Ч it comes from the imнage comнpresнsion.)

CNN without Guava Comb

Here you see another effect of color crossнtalk Ч rainbows.


CNN with Guava Comb

And this is a picture from the same clip, corrected with the Guava Comb.

$Date: 2004/08/13 21:57:25 $