View Full Version : Shimmer artifacts in progressive video (formerly Line Crawl / Warping (?))


DoctorM
6th April 2011, 21:32
I'm trying to repair a video where most lines have an artifact I don't have a name for.

It almost appears like a poor attempt was made to antialias by blurring any point where a stair step might occur.

The result is that diagonal lines move, warp and blur.
Here are 2 consecutive screenshots (cropped and zoomed to show the artifacts). The camera is still and there should be no movement in the blinds:
http://img691.imageshack.us/img691/5804/02resizen.jpghttp://img849.imageshack.us/img849/2907/01resize.jpg

I've had pretty good success with this wacky cludge.
QTGMC()
assumefieldbased()
weave()
spline36resize(720,576)

Since TGMC does such a nice job smoothing and sharpening lines, this completes removes the artifacts from mild to medium instances, and makes the worst sections tolerably less flickery.

The problem is I do not have the CPU power to encode more than short clips, and QTGMC isn't effective enough tuned for performance.

Is there a filter or script that should handle this type of artifact directly, or just a better/faster approach?

mastrboy
6th April 2011, 21:41
You should provide a sample of the problem

DoctorM
6th April 2011, 23:02
(cough) Good point(cough). 10 seconds in 7mb here: Clip on Mediafire. (http://www.mediafire.com/?zer9mbdjapy265z)

Btw, I should point out that my script in the first post weaves the frames back together (and doubling the height) instead of the typical selecteven().

The reason is that my full script crops 144 lines (top and bottom) of the black borders and resizes the PAL letterboxed source to NTSC anamorphic.

It made sense in my head to allow QTGMC to upscale to 1152 lines (since it already was) and then downscaling to 480 as opposed to throwing out half the lines, extrapolating to full height and then upscaling again.

In actual practice, selecteven() and then upscaling produces significantly better results.

DoctorM
8th April 2011, 07:56
I'm going to go ahead and answer my own question for future Googlers who find this thread. Turns out my idea of using a high quality deinterlacer like QTGMC to clean up warping/shifting lines is such a great idea, QTGMC's creator already thought of it and did it better:
Progressive Input Support
Although designed for deinterlacing, the TGMC algorithm can be used remove certain shimmer artifacts from progressive content. I use this approach to re-process poorly deinterlaced material that still has lots of bob-shimmer or combing left in it. There is a general-purpose progressive mode (InputType=1) and two special field-discarding modes (InputType=2,3) as alternatives for processing already deinterlaced material. Read the Progressive Input section in the documentation for full info.

QTGMC( Preset="Slower", InputType=1 ) # Process progressive source, it will be temporally smoothed / deshimmered

Not only does it work a LOT better than my original script (removing more artifacts and preserving more detail), it does it about 6x faster!
Issue sorted.
Would rename thread to read "Shimmer artifacts in progressive video", but it turns out I can't.

kypec
8th April 2011, 09:24
Would rename thread to read "Shimmer artifacts in progressive video", but it turns out I can't.
How come?
1. Click "Edit" button in your first post in this thread.
2. Click "Go Advanced" button at the bottom of edit window.
3. Change Title: field to whatever you want to.
4. Click "Save Changes" button and it's done.

DoctorM
8th April 2011, 20:02
That did it, thanks.