NirMalam plugin for Avisynth 2.5.8 and 2.6 versions and for avisynth+ multithread . The plugin is free for usage and the author does not give any guarentee for its operation. It may be downloaded and used at the users risk.
This is an adaptive local noise reduction filter that uses image value statistics in a moving grid while trying to preserve sharpness of image.
From a specified frame of the clip NirMalam either auto selects a suitable specified size window or uses user specified window to obtain noise parameters. In case of RGB the green color and in case of Y-U-V formats, the Y plane is used for autoselection of window
Parameter ry, gu, by control whether a color is to be left out or processed, if so with what accent. A value of zero will leave out that color ( or luma or chroma). A value of 100 (%)will use derived values. Any higher value may accentuate. Accentuation may soften the image so may be used cautiously.In case of Luma or RGB values of RGB Format lower accentuation values may be used. For chroma of YUY2 and Planar formats higher values may not smear colors perceptably. However, experiment prior to processing a full clip.
This plugin works in YUY2, Planar ( 2.5.8 version YV12), RGB32 and RGB24 color spaces. Results of using rgb format can be different to that of Y - U - V formats.
The window for deriving noise parameters, if autow is set to false, must be located in an area with least image grey level variations, so that noise statistics are correctly estimated. Note that this window coordinates must be specified as default values are not provided. If window is located in an improper part , then it can lead to heavy blurring.
|frame number from which noise statistics to be determined||nf||integer||within clip||0|
|Number of pixels along x axis in moving grid||xgrid||integer||3 to 11||5|
|Number of pixels along y axis in moving grid||ygrid||integer||3 to 11||xgrid|
|Whether window to be selected automatically||autow||boolean||true for yes, false for use user specified window||true|
|minimum window size if autow is true||minw||integer||Between 1/256 and 1/16 of frame size||1/128 of frame size|
|accent %age for red or Y||ry||integer||Between 0 to 100||75|
|accent %age for green or U||gu||integer||Between 0 to 100||75|
|accent %age for blue or V||bv||integer||Between 0 to 100||75|
|window left x at start frame for computing global variance||lx||integer||within clip, less than rx||none. Must be specified for autow being false|
|window top y at start frame for computing global variance||ty||integer||within clip, less than by||none. Must be specified for autow being false|
|window right x at start frame for computing global variance||rx||integer||within clip, more than lx||none. Must be specified for autow being false|
|window bottom y at start frame for computing global variance||by||integer||within clip, more than ty||none. Must be specified for autow being false|
|To my index page||................................||To Avisynth|