vcmod plugin for vapoursynth version r24+, is free and the author does not give any guarentee for its operation. It may be downloaded and used at the users risk.
vcmod has functions named Median, Variance, Amplitude, GBlur, MBlur, Neural, Fan, SaltPepper, Veed and Histogram. These are thread safe.These are ported with suitable modifications from the original avisynth plugins. All the functions in this plugin modify pixel values as per some criteria, and hence the name.
Amplitude function segments image on watershed principle. Smoothing is done if opted, restricting to boundaries within each basin. Sharpening is by spiking watershed boundaries and so must use small values. As watershed is known to over segment an image, the inputclip shold be clean and smooth. For convenience useclip parameter if set to 1, uses a pre smmothed clip( may be blurred by GBlur) for segmentation, and uses that on main input.
sh and sm are smooth and sharp factors. Both arrays should not be zeroes.sh and sm arrays must be specified and are not optional. sh can be -10 to 10, and sm can be 0 to 10. connect4 if set uses near 4 points otherwise near 8 points in watershed algorithm.
Histogram can equalize whole frame or with moving window (slow) or match entire clip with a given frame or match as per specs given. Equalization may be severe for certain inputs, so a parameter limit which limits %age of change is provided. limit value of 0 means no limit. Windowed equalization is extremely severe. type 1 is full window equalization,type 2 is for matching with given table of up to 20 pairs (of %age luma val and %age population), minimum 2 pairs. Type 3 is for matching with a frame. fm is frame number of match clip to be used. YUV and Gray formats only are accepted.
Median Filter is for eliminating certain types of noise. It uses local statistics (minimum, maximum and median values) of a moving local grid, and changes grid size depending on local statistics.
As per theory
Quote "Ordinary median filters perform well as long as the spatial density of impulsive noise is small.
Adaptive Median filter can handle impulsive noise having larger probablity. An additional benefit is
this seeks to preserve detail while smoothing nonimpulse noise something that the traditional median
filter does not do.
The algorithm used has three purposes.
1.To remove salt and pepper (impulse) noise.
2.To smooth other noise which may not be impulsive
3.To reduce distortion such as excessive thinning or thickening of object boundaries.
" unquote
A separable Gaussian kernel of odd number size 3 to 11 is designed for blurring. The ksize and standard deviation can be specified.
In some videos, especially those transcribed from VHS sometimes regular frequency noise is seen across the frame. Sometimes either vertical or horizontal white streaks are also seen. This function filters out such regular noise and streaks. This function works scan line by scan line. Hence if the streaks are horizontal, input may be turned left and after fan removes the streaks turned right to restore
In case of regular noise Fan need to examine data over a span (odd number from 3 to 51) of apparent wavelength(along horizontal). The central point of this span is either replaced by average or using given tolerances edges are preserved. For streaks shorter span and smaller plus tolerance can be spcified.In case YUV data process of u and v planes are optional. R,G,B planes of RGB are processed. A is just copied.
MBlur blurs using values in a circle, or rectangle or along a line (motion blur) around a central point.type 1 is linear.type 2 for rectangular and type 3 for circular. The x and y coordinates are with respect to center. For circular x is treated as radius.
From a given representative window, the global variance is determined. In a moving grid the local variance is determined and the center of the grid point is modified in relation to these two variances. The algorithm ensures that local edges are not destroyed. Repeated use of this function cleans image and may be used for very noisy clips. In case of YUV formats it is optional whether U and V planes are also to be processed. For RGB all 3 planes are processed. The window is specified by left x coord lx, width wd, top y coord ty, height ht and fn the frame number in which this window is located. The window should be as large as possible but have near uniform luma for YUV or Gray formats or uniform color and intensity for RGB format
Given an input ( first frame of clip) and its corresponding desired output ( first frame of tclip which has been obtained through some linear processing), Neural trains itself to get an output as close to desired output as possible. Training window should represent all possible input variations and be as small as possible. Given input grid size ( xpts * ypts) to work on and corresonding desred center points, through repeated iterations and different starting weight sets it finds weights that result in minimum error. The weight set can be saved in a text file and later used for same or similar data . This saves training time that can take several seconds to a few minutes. The input clip is then processed using these weights.
| To my index page | down load plugin | To vapoursynth |