From Avisynth wiki
Jump to: navigation, search
Author Fizick, pinterf
Version v0.6
Download Deflicker-v0.6.7z
Category Luma Equalization
License GPLv2
Discussion Doom9 Thread



DeFlicker plugin can remove old film intensity flicker by temporal mean luma smoothing. Also it can correct blinding of automatic gain control after flashes.

The luma stabilizing not only improves visual impression, but can help to following noise reduction. See included details documentation for technical details.


Syntax and Parameters

Deflicker (clip, float "percent", int "lag", float "noise", int "scene", int "lmin", int "lmax", int "border", bool "info", bool "debug, int "opt")

clip   =
Input clip

float  percent = 85.0
Influence of previous frame mean luma (in percent) for temporal luma smoothing.
Range: 0.0 to 100.0

int  lag = 25
Max distance to base frame for process of mean luma estimation and compensation.

float  noise = 10.0
Luma noise std deviation (due to motion etc).
Range: 0.0 to 255.0

int  scence = 40
Threshold for new scene (mean luma difference, or std variations doubled difference).
Range: 0 to 255

int  lmin = 0
int  lmax = 255
Output luma min and max.
Range: 0 to 255

int  border = 0
Border width at all edges (in pixels), which not used for estimation.
Range: 0 to ?

bool  info = false
Show info and borders on frame.

bool  debug = false
Produce debug info for debugview utility.

int  opt = -1
opt. for testing slower processor code paths.
  • -1: auto
  • 0 : C
  • 1 : SSE
  • 2 : SSE2
  • 3 : AVX2


Using for flicker removing

When amateur film (16 or 18 or 24 fps) is transferred to video (25 or 30 fps) by simple projection method, the very big intensity flicker is produced. Even if special (per-frame) transfer apparatus is used, some flicker also exists due to non-steady (old !) film optical properties.

The default parameters set must be quite good. But you may tune its. Load video clip, set "info" parameter to true, analyze info (frames luma difference etc), and set appropriate scene parameter (or others).

Simple sample script:



Version      Date            Changes
v0.6 2019/05/23 - by pinterf - AVX2 and SSE2 support (was: ISSE in win32, plain C in x64) - does not overflow over 8Mpix - uses all pixels for non-YUY2 colorspaces in correction calculation (was: only even rows were summed up in calculating internal average luma and dev) v0.5 2019/05/22 - by pinterf - project move to Visual Studio 2019 - Avisynth 2.6 interface, using headers from Avisynth+ project - Allow all 8 bit Y and YUV formats - x64 version (although C only) v0.4 2004/08/16 - add YUY2 support (still beta!), some speed increase (ISSE optimized). v0.3 2004/06/06 - add show border in info mode (still beta!). v0.2 2004/06/05 - add reverse mode, info (still beta!). v0.1 2004/06/03 - not public (beta!).

Archived Downloads

Version Download Source Code

External Links

  • GitHub - Source code repository.

Back to External Filters

Personal tools