EEDI2
From Avisynth wiki
(Difference between revisions)
m (→External Links) |
m (add Deep_color_tools category) |
||
(6 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{FilterCat6|External_filters|Plugins|Plugins_x64|Restoration_filters|Deinterlacers|Deep_color_tools}} |
{{Filter3 | {{Filter3 | ||
− | | {{Author/tritical}} | + | | {{Author/tritical}}, {{Author/HolyWu}}, {{Author/Asd-g}} |
− | | | + | | v1.0.0 |
− | | | + | |[https://github.com/Asd-g/AviSynth-EEDI2/releases EEDI2-1.0.0.7z] |
− | [ | + | |
− | + | ||
− | + | ||
| Deinterlacing | | Deinterlacing | ||
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2] | | [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2] | ||
Line 14: | Line 11: | ||
== Description == | == Description == | ||
[[EEDI2]] (Enhanced Edge Directed Interpolation) resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and interpolating the missing field. It is intended for edge-directed interpolation for deinterlacing (i.e. not really made for resizing a normal image, but can do that as well). | [[EEDI2]] (Enhanced Edge Directed Interpolation) resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and interpolating the missing field. It is intended for edge-directed interpolation for deinterlacing (i.e. not really made for resizing a normal image, but can do that as well). | ||
− | + | <br> | |
− | + | ||
<br> | <br> | ||
== Requirements == | == Requirements == | ||
− | *AviSynth | + | * [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6] |
− | *Supported color formats: [[ | + | * [x64]: [[AviSynth+]] |
+ | * Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]] | ||
+ | **AviSynth+: all [[planar]] formats (8/10/12/14/16-bit, Y/YUV/RGB with or without alpha) are supported. | ||
+ | <br> | ||
+ | * [https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Microsoft Visual C++ 2019 Redistributable Package (x86 / x64)] | ||
+ | :<span style="color:red">***</span> <tt>vc_redist.x86.exe</tt> is required for <tt>EEDI2-x86</tt> | ||
+ | :<span style="color:red">***</span> <tt>vc_redist.x64.exe</tt> is required for <tt>EEDI2-x64</tt> | ||
<br> | <br> | ||
Line 26: | Line 28: | ||
<br> | <br> | ||
::{{Par2| |clip| }} | ::{{Par2| |clip| }} | ||
− | :::Input clip. | + | :::Input clip to process. It must be in 8..16-bit planar format with or without alpha. |
<br> | <br> | ||
::{{Par2|mthresh|int|10}} | ::{{Par2|mthresh|int|10}} | ||
Line 85: | Line 87: | ||
== Changelog == | == Changelog == | ||
<pre> | <pre> | ||
+ | 06/18/2020 v1.0.0 | ||
+ | |||
+ | - Initial release; port of the VapourSynth plugin | ||
+ | - 8-16bit all planar colorspace support | ||
+ | - Dropped YUY2 colorspace | ||
+ | |||
06/07/2006 v0.9.2 | 06/07/2006 v0.9.2 | ||
Line 115: | Line 123: | ||
!!width="150px"| Download | !!width="150px"| Download | ||
!!width="150px"| Mirror | !!width="150px"| Mirror | ||
+ | |- | ||
+ | !v0.9.2 (x86_x64) | ||
+ | |[https://github.com/avisynth-repository/EEDI2/releases/download/v0.9.2/EEDI2_092_32_64.7z EEDI2_092_32_64.7z] | ||
+ | |[https://web.archive.org/web/20191106173125if_/http://www.iol.ie/%7Eschubert/gas/EEDI2_092_32_64.7z EEDI2_092_32_64.7z] /// [https://www.mediafire.com/file/8wzph49hp2uset6/EEDI2_092_32_64.7z/file MediaFire] | ||
|- | |- | ||
!v0.9.2 | !v0.9.2 | ||
− | + | |[http://web.archive.org/web/20140420183147if_/http://bengal.missouri.edu/~kes25c/EEDI2v092.zip EEDI2v092.zip] | |
− | |[http://web.archive.org/web/ | + | | |
|} | |} | ||
+ | * x86/x84 version compiled by [https://forum.doom9.org/showthread.php?t=173259 Groucho2004]. | ||
+ | <!--[http://web.archive.org/web/20160304124723if_/https://filetea.me/t1st3BqcWqxQnCaa4Dqu1pe4g/dl EEDI2_092_ICL13.7z]--> | ||
+ | <!--[http://web.archive.org/web/20160227124555if_/https://filetea.me/t1sAPBJWv6pR2SyFt2BQ3iQ1A/dl EEDI2_092_ICL10.7z]--> | ||
+ | <!--*[http://forum.doom9.org/showthread.php?t=173238 Doom9 Forum] - EEDI2 0.9.2 built with ICL13.--> | ||
<br> | <br> | ||
== External Links == | == External Links == | ||
− | *[ | + | *[https://github.com/avisynth-repository/EEDI2 GitHub] - Source code repository (v0.9.2). |
− | *[ | + | *[https://github.com/Asd-g/AviSynth-EEDI2 GitHub] - Source code repository (v1.0.0). |
+ | *[https://github.com/HomeOfVapourSynthEvolution/VapourSynth-EEDI2 GitHub] - Source code repository (VapourSynth). | ||
*[http://forum.doom9.org/showthread.php?t=171136 Doom9 Forum] - EEDI2 for VapourSynth. | *[http://forum.doom9.org/showthread.php?t=171136 Doom9 Forum] - EEDI2 for VapourSynth. | ||
− | *GitHub - HandBrake's EEDI2 with nicely commented source code: [http://github.com/HandBrake/HandBrake/blob/master/libhb/eedi2.c eedi2.c], [http://github.com/HandBrake/HandBrake/blob/master/libhb/eedi2.h eedi2.h] | + | *GitHub - HandBrake's EEDI2 port with nicely commented source code: [http://github.com/HandBrake/HandBrake/blob/master/libhb/eedi2.c eedi2.c], [http://github.com/HandBrake/HandBrake/blob/master/libhb/eedi2.h eedi2.h] |
<br> | <br> | ||
<br> | <br> | ||
----------------------------------------------- | ----------------------------------------------- | ||
'''Back to [[External_filters#Deinterlacing|External Filters]] ←''' | '''Back to [[External_filters#Deinterlacing|External Filters]] ←''' |
Latest revision as of 18:33, 25 June 2020
Abstract | |
---|---|
Author | tritical, HolyWu, Asd-g |
Version | v1.0.0 |
Download | EEDI2-1.0.0.7z |
Category | Deinterlacing |
License | GPLv2 |
Discussion | Doom9 Thread |
Contents |
[edit] Description
EEDI2 (Enhanced Edge Directed Interpolation) resizes an image by 2x in the vertical direction by copying the existing image to 2*y(n) and interpolating the missing field. It is intended for edge-directed interpolation for deinterlacing (i.e. not really made for resizing a normal image, but can do that as well).
[edit] Requirements
- [x86]: AviSynth+ or AviSynth 2.6
- [x64]: AviSynth+
- Supported color formats: Y8, YV12, YV16, YV24
- AviSynth+: all planar formats (8/10/12/14/16-bit, Y/YUV/RGB with or without alpha) are supported.
- *** vc_redist.x86.exe is required for EEDI2-x86
- *** vc_redist.x64.exe is required for EEDI2-x64
[edit] Syntax and Parameters
- EEDI2 (clip, int "mthresh", int "lthresh", int "vthresh", int "estr", int "dstr", int "maxd", int "field", int "map", int "nt", int "pp")
- clip =
- Input clip to process. It must be in 8..16-bit planar format with or without alpha.
- clip =
- 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 field = -1
- Controls which field in the resized image the original image will be copied too.
- When using AviSynth's internal parity value top field first (tff) = 1 and bottom field first (bff) = 0. Possible options:
- -2 = alternates each frame, uses AviSynth's internal parity value to start
- -1 = uses AviSynth's internal parity value
- 0 = bottom field
- 1 = top field
- 2 = alternates each frame, starts with bottom
- 3 = alternates each frame, starts with top
- int field = -1
- 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
- Enables two optional post-processing modes aimed at reducing artifacts by identifying problems areas and then using plain vertical linear interpolation in those parts. The possible settings are:
- 0 - no post-processing
- 1 - check for spatial consistency of final interpolation directions
- 2 - check for junctions and corners
- 3 - do both 1 and 2
- Using the pp modes will slow down processing and can cause some loss of edge directedness.
- Enables two optional post-processing modes aimed at reducing artifacts by identifying problems areas and then using plain vertical linear interpolation in those parts. The possible settings are:
- int pp = 1
[edit] Examples
EEDI2 with default settings:
AviSource("blah.avi") EEDI2(mthresh=10, lthresh=20, vthresh=20, estr=2, dstr=4, maxd=24, field=-1, map=0, nt=50, pp=1)
[edit] Changelog
06/18/2020 v1.0.0 - Initial release; port of the VapourSynth plugin - 8-16bit all planar colorspace support - Dropped YUY2 colorspace 06/07/2006 v0.9.2 + various internal changes to help reduce artifacts around repeated patterns and to improve construction of lines/edges with small slope - Changed map from bool to int - Changed default maxd value from 12 to 24 - Changed default pp value from 0 to 1 - a few minor bugfixes 04/03/2006 v0.9.1 + Added pp parameter and pp modes 1, 2, and 3 - A few minor internal changes - Fixed some documentation errors (field parameter) - do a vi.SetFieldBased(false) in constructor - fixed a bug causing reads past the last line and incorrect interpolation of the very top or very bottom line in some cases 11/29/2005 v0.9 - Initial release
[edit] Archived Downloads
Version | Download | Mirror |
---|---|---|
v0.9.2 (x86_x64) | EEDI2_092_32_64.7z | EEDI2_092_32_64.7z /// MediaFire |
v0.9.2 | EEDI2v092.zip |
- x86/x84 version compiled by Groucho2004.
[edit] External Links
- GitHub - Source code repository (v0.9.2).
- GitHub - Source code repository (v1.0.0).
- GitHub - Source code repository (VapourSynth).
- Doom9 Forum - EEDI2 for VapourSynth.
- GitHub - HandBrake's EEDI2 port with nicely commented source code: eedi2.c, eedi2.h
Back to External Filters ←