EEDI2CUDA
From Avisynth wiki
Abstract | |
---|---|
Author | misakikasumi, WolframRhodium |
Version | M2u1test1 |
Download | EEDI2CUDA.7z /// Archived |
Category | Denoisers |
License | GPLv2 |
Discussion |
Contents |
Description
EEDI2 filter using CUDA. EEDI2CUDA includes 3 functions:
EEDI2_CUDA
: deinterlaceEEDI2_CUDA_AA2
: anti-aliasingEEDI2_CUDA_Enlarge2
: upscale by 2
Requirements
- CUDA-enabled GPU(s) of compute capability 5.0 or higher (Maxwell+).
- GPU driver 450 or newer.
Syntax and Parameters
EEDI2_CUDA (clip, int field, int "mthresh", int "lthresh", int "vthresh", int "estr", int "dstr", int "maxd", int "field", int "map", int "nt", int "pp", int "num_streams", int "device_id")
EEDI2_CUDA_AA2 (clip, int "mthresh", int "lthresh", int "vthresh", int "estr", int "dstr", int "maxd", int "field", int "map", int "nt", int "pp", int "num_streams", int "device_id")
EEDI2_CUDA_Enlarge2 (clip, int "mthresh", int "lthresh", int "vthresh", int "estr", int "dstr", int "maxd", int "field", int "map", int "nt", int "pp", int "num_streams", int "device_id")
- clip =
- Input clip to process. It must be in 8..16-bit planar format with or without alpha.
- clip =
- int =
field
: Controls which field in the resized image the original image will be copied to.- 0 = bottom field
- 1 = top field
- 2 = alternates each frame, starts with bottom
- 3 = alternates each frame, starts with top
- int =
- int mthresh = 10
- int lthresh = 20
- int vthresh = 20
- These all control edge detection used for building the initial edge map.
- mthresh is the edge magnitude threshold... its range is from 0 to 255, lower values will detect weaker edges.
- lthresh is the laplacian threshold... its range is 0 to 510, lower values will detect weaker lines.
- vthresh is the variance threshold... its range is 0 to a large number, lower values will detect weaker edges.
- Use the "map" option to tweak these settings as needed.
- These all control edge detection used for building the initial edge map.
- int mthresh = 10
- int estr = 2
- int dstr = 4
- These are used for dilation and erosion of the edge map.
- estr sets the required number of edge pixels (<=) in a 3x3 area, in which the center pixel has been detected as an edge pixel, for the center pixel to be removed from the edge map.
- dstr sets the required number of edge pixels (>=) in a 3x3 area, in which the center pixel has not been detected as an edge pixel, for the center pixel to be added to the edge map.
- Use the "map" option to tweak these settings as needed.
- These are used for dilation and erosion of the edge map.
- int estr = 2
- int maxd = 24
- Sets the maximum pixel search distance for determining the interpolation direction.
- Larger values will be able to connect edges and lines of smaller slope but can lead to artifacts. Sometimes using a smaller maxd will give better results than a larger setting. The maximum possible value for maxd is 29.
- int maxd = 24
- int map = 0
- Allows one of three possible maps to be shown. Possible settings:
- 0 - no map
- 1 - edge map (edge pixels will be set to 255 and non-edge pixels will be set to 0.)
- 2 - original scale direction map
- 3 - 2x scale direction map
- Allows one of three possible maps to be shown. Possible settings:
- int map = 0
- int nt = 50
- Defines a noise threshold between pixels in the sliding vectors, this is used to set initial starting values.
- Lower values should reduce artifacts but sacrifice edge reconstruction... while higher values should improve edge reconstruction but lead to more artifacts. The possible range of values is 0 to 256.
- int nt = 50
- int pp = 1
- Only pp=1 is implemented.
- 1 - check for spatial consistency of final interpolation directions
- Only pp=1 is implemented.
- int pp = 1
- int num_streams = 1
- Specify the number of CUDA streams. A larger value increases the concurrency and also increases the GPU memory usage. The default value
num_streams=1
is already fast enough.
- Specify the number of CUDA streams. A larger value increases the concurrency and also increases the GPU memory usage. The default value
- int num_streams = 1
- int device_id = -1
- Set the GPU device ID to use. You must specify this argument for each call if you have multiple GPUs.
- int device_id = -1
Examples
Changelog
Version Date Changes
M2u1test1 2021/08/26 - Unified Multi-bindings. M2p2 2021/08/11 - Fix #2 - add copy init for BridgePass. M2p1 2021/08/08 - This release contains workaround of #2. Force num_streams=1, there is something wrong with multiple streams.
External Links
- GitHub - Source code repository.
Back to External Filters ←