Nnedi3ocl/nnedi3ocl
From Avisynth wiki
Back to nnedi3ocl ←
Description
- nnedi3ocl is an intra-field only deinterlacer. It takes in a frame, throws away one field, and then interpolates the missing pixels using
- only information from the kept field. It has same rate and double rate modes, and works with Y8, YV12, YV16, and YV24 input.
Syntax and Parameters
- nnedi3ocl (clip, int "field", bool "dh", bool "Y", bool "U", bool "V", int "nsize", int "nns", int "qual", int "etype", int "dw")
- int field = -1
- Controls the mode of operation (double vs same rate) and which field is kept.
- Possible settings:
- int field = -1
- -2 = double rate (alternates each frame), uses avisynth's internal parity value to start
- -1 = same rate, uses avisynth's internal parity value
- 0 = same rate, keep bottom field
- 1 = same rate, keep top field
- 2 = double rate (alternates each frame), starts with bottom
- 3 = double rate (alternates each frame), starts with top
- If field is set to -1, then nnedi3ocl calls child->GetParity(0) during initialization.
- If it returns true, then field is set to 1. If it returns false, then field is set to 0.
- If field is set to -2, then the same thing happens, but instead of setting field to 1 or 0 it is set to 3 or 2.
- • Default for field is the value of dw.
- bool dh = false
- Doubles the height of the input. Each line of the input is copied to every other line
- of the output and the missing lines are interpolated. If field=0, the input is copied
- to the odd lines of the output. If field=1, the input is copied to the even lines of
- the output. field must be set to either -1, 0, or 1 when using dh=true.
- bool dh = false
- • Default for dh is false when dw=-1 and true otherwise.
- bool Y = true
- bool U = true
- bool V = true
- These control whether or not the specified plane is processed. Set to true to
- process or false to ignore. Ignored planes are not copied, zero'd, or even
- considered. So what the ignored planes happen to contain on output is unpredictable.
- bool Y = true
- int nsize = 0
- Sets the size of the local neighborhood around each pixel that is used by the predictor neural network.
- int nsize = 0
- 0 - 8x6
- Only nsize 0 is implemented, other values are simply ignored.
- int nns = 1
- Sets the number of neurons in the predictor neural network. Possible settings are
- 0, 1, 2, 3, and 4. 0 is fastest. 4 is slowest, but should give the best quality. This
- is a quality vs speed option; however, differences are usually small. The difference
- in speed will become larger as 'qual' is increased.
- int nns = 1
- 0 - 16
- 1 - 32
- 2 - 64
- 3 - 128
- 4 - 256
- int qual = 1
- Controls the number of different neural network predictions that are blended together
- to compute the final output value. Each neural network was trained on a different set
- of training data. Blending the results of these different networks improves generalization
- to unseen data. Possible values are 1 or 2. Essentially this is a quality vs speed
- option. Larger values will result in more processing time, but should give better results.
- However, the difference is usually pretty small. I would recommend using qual>1 for
- things like single image enlargement.
- int qual = 1
- int etype = 0
- Controls which set of weights to use in the predictor nn. Possible settings:
- int etype = 0
- 0 - weights trained to minimize absolute error
- 1 - weights trained to minimize squared error
- int dw = -1
- Controls scaling in horizontal direction:
- int dw = -1
- -1 - no scaling.
- 0 - scales like field 0 with dh=true, but horizontally.
- 1 - scales like field 1 with dh=true, but horizontally.
Examples
nnedi3ocl with default settings:
AviSource("Blah.avi") nnedi3ocl(field=-1, dh=false, Y=true, U=true, V=true, nsize=6, nns=1, qual=1, etype=0, dw=-1)
Back to nnedi3ocl ←