MSU Cartoon Restore Filter

Filter for quality improvement of compressed animated video

MSU Graphics & Media Lab (Video Group)

Method ideas: Dmitriy Vatolin
Implementation: Alexey Moiseytsev

One of the most prominent coding artifacts in highly compressed animated video are the ringing artifacts.
Ringing noise preferably manifest itself around edges due to coarse quantization.
The filter is designed for quality improvement of compressed cartoons like video by deleting ringing effect.

Settings

There are two settings modes. The Simple mode is intended for peoples, who want get good results without additional manual filter tuning. And Advanced mode is intended for peoples, who want get best results using precise algorithms tuning.

Simple mode settings:

Advanced mode settings:

Filter implements three strategies of ringing artifacts removing.

Simple Adaptive Filter parameters:

Fuzzy Adaptive Filter parameters:

The filtration strength depends on amount of details in each block.
Left sliders correspond to blocks without details, and right sliders correspond to edge blocks.
There are some presets, which allow quickly selecting filter configuration.

Multipass Bilateral Filter parameters:

Also some general presets can be selected.

Similarity DB Filter (beta version)

We are still working on this algorithm quality improvement. This version can demonstrate suboptimal results!

The Strength parameter of the filter sets strength of a filtration of video.
This filter requires the file artifact.db, in the plugins folder.

Job control and integration with AviSynth

AviSynth is a powerful tool for video post-production. It provides multiple ways of editing and processing videos.
Filter supports VirtualDub Job Control, and it can be used from AviSynth.
Some examples are listed below.

Simple Adaptive Filter:
LoadVirtualDubPlugin("MSU_cartoon_restore.vdf","MSUCartoonRestore", 0) 
clip=AVISource("D:\work\video\film.avi", false, "RGB24")
clip.ConvertToRGB32.MSUCartoonRestore("simple", Smoothness, Threshold)
Fuzzy Adaptive Filter:
LoadVirtualDubPlugin("MSU_cartoon_restore.vdf","MSUCartoonRestore", 0) 
clip=AVISource("D:\work\video\film.avi", false, "RGB24")
clip.ConvertToRGB32.MSUCartoonRestore("fuzzy", Strength10, Strength20, Strength30, Strength40, Strength50, Strength60, Strength70, Strength80, Strength90, Strength100, ShowBlockType)
Multipass Bilateral Filter:
LoadVirtualDubPlugin("MSU_cartoon_restore.vdf","MSUCartoonRestore", 0) 
clip=AVISource("D:\work\video\film.avi", false, "RGB24")
clip.ConvertToRGB32.MSUCartoonRestore("bilateral", Iterations, GeometricDispersion, PhotometricDispersion)

E-mail:  video@graphics.cs.msu.su