Neo VagueDenoiser

From Avisynth wiki
Jump to: navigation, search
Author msg7086
Version r1v2
Category Spatial Denoisers
License GPLv2
Discussion Doom9 Forum


[edit] Description

Neo_VagueDenoiser is a wavelet based denoiser.

Basically, it transforms each frame from the video input into the wavelet domain, using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to the obtained coefficients. It does an inverse wavelet transform after. Due to wavelet properties, it should give a nice smoothed result, and reduced noise, without blurring picture features.

VagueDenoiser was originally written by Lefungus, and later modified by Kurosu and Fizick for further improvement. VapourSynth-VagueDenoiser was ported to VapourSynth interface and refactored by HolyWu. Kudos to them for creating and improving this fantastic tool.

This project backports VapourSynth-VagueDenoiser to AviSynth+. This filter self-registers as MT_NICE_FILTER.

[edit] Requirements

[edit] Syntax and Parameters

neo_vd (clip clip, float "threshold", int "method", int "nsteps", float "percent", int "y", int "u", int "v", int "opt")

clip   =
A clip to process. It must have constant format and it must be 8..16 bit with integer samples.

float  threshold = 2.0
Filtering strength. The higher, the more filtered the clip will be. Hard thresholding can use a higher threshold than Soft thresholding before the clip looks overfiltered.

int  method = 2
The filtering method the filter will use.
  • 0 : Hard thresholding. All values under the threshold will be zeroed.
  • 1 : Soft thresholding. All values under the threshold will be zeroed. All values above will be reduced by the threshold.
  • 2 : Qian's (garrote) thresholding. Scales or nullifies coefficients - intermediary between (more) soft and (less) hard thresholding.

int  nsteps = 6
Number of times, the wavelet will decompose the picture. Picture can't be decomposed beyond a particular point (typically, 8 for a 640x480 frame - as 2^9 = 512 > 480).

float  percent = 85.0
Partial of full denoising (limited coefficients shrinking), from 0 to 100.

int  y = 3
int  u = 3
int  v = 3
Whether a plane is to be filtered.
  • 1 : Do not touch, leaving garbage data
  • 2 : Copy from origin
  • 3 : Process

int  opt = 0
Sets which CPU optimizations to use.
  • 0 - Auto detect
  • 1 - Use C
  • 2 - Use up to SSE (for core)
  • 3 - Use up to SSE4.1 (for data copy)
  • 4 - Use up to AVX (for core)
  • 5 - Use up to AVX2 (for data copy)

[edit] Examples

  • Neo_VagueDenoiser with default settings:
neo_vd (threshold=2.0, method=2, nsteps=6, percent=85.0, Y=3, U=3, V=3)

[edit] Changelog

Version      Date            Changes
r1 2020/04/19 - Initial release

[edit] Archived Downloads

See GitHub release section.

[edit] External Links

  • GitHub - Source code repository.

Back to External Filters

Personal tools