Nnedi3

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(Updated Plugin Version)
m (add Deep_color_tools category)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{FilterCat4|External_filters|Plugins|Restoration_filters|Deinterlacers}}
+
{{FilterCat6|External_filters|Plugins|Plugins_x64|Restoration_filters|Deinterlacers|Deep_color_tools}}
 
{{Filter3
 
{{Filter3
| {{Author/tritical}}, [http://github.com/jpsdr jpsdr]
+
| {{Author/tritical}}, [https://github.com/jpsdr jpsdr]
| v0.9.4.48
+
| v0.9.4.55
| [http://github.com/jpsdr/NNEDI3/releases NNEDI3_v0_9_4_48.7z]
+
| [https://github.com/jpsdr/NNEDI3/releases NNEDI3_v0_9_4_55.7z]
 
| Deinterlacing  
 
| Deinterlacing  
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
+
| [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
|6=[http://forum.doom9.org/showthread.php?t=147695 Doom9 Thread], [http://forum.doom9.org/showthread.php?t=170083 Update]}}
+
|6=[https://forum.doom9.org/showthread.php?t=147695 Doom9 Thread], [https://forum.doom9.org/showthread.php?t=170083 Update]}}
  
 
== Description ==
 
== Description ==
Line 16: Line 16:
 
<br>
 
<br>
 
== Requirements ==
 
== Requirements ==
* AviSynth 2.6.0 or [http://forum.doom9.org/showthread.php?t=168764 greater]
+
* [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6.0]
* x64 version requires [[AviSynth+|AviSynth+ r1576]] or greater
+
* [x64]: [[AviSynth+]]
* Supported color formats: [[RGB24]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
* Supported color formats: [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
 +
**AviSynth+: All [[planar]] formats (8/10/12/14/16/32-bit, Y, YUV(A)), and RGB(A) with or without alpha) are supported.
 
<br>
 
<br>
 
== Filters ==
 
== Filters ==
Line 24: Line 25:
 
{{PluginFilterRow|nnedi3|nnedi3|
 
{{PluginFilterRow|nnedi3|nnedi3|
 
Deinterlace.
 
Deinterlace.
| [[RGB24]], [[YUY2]], [[YV12]]
+
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], <br> all [[planar]] formats (Y, YUV(A), RGB(A), 8-16bit and 32bit)
 
}}
 
}}
 
{{PluginFilterRow|nnedi3|nnedi3_rpow2|
 
{{PluginFilterRow|nnedi3|nnedi3_rpow2|
 
Upscale image by the power of 2.
 
Upscale image by the power of 2.
| [[RGB24]], [[YUY2]], [[YV12]]
+
| [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], <br> all [[planar]] formats (Y, YUV(A), RGB(A), 8-16bit and 32bit)
 
}}
 
}}
 
|}
 
|}
Line 35: Line 36:
 
== Changelog ==
 
== Changelog ==
 
  Version      Date            Changes<br>
 
  Version      Date            Changes<br>
  v0.9.4.22   30/05/2016     + Fix for MT version of AviSynth+. nnedi3 and nnedi3_rpow2 report themselves as
+
  v0.9.4.55   2020/05/05     - Fix issue introduced in previous version.<br>
                                MT_MULTI_INSTANCE if an MT version of AviSynth+ is detected, and in case it wouldn't be enough,
+
  v0.9.4.54   2020/04/27     + Update to the new avisynth headers.
                                I've add a mutex preventing several getframe running from the same instance filter for safety [http://forum.doom9.org/showthread.php?p=1768995#post1768995].<br>
+
                              * Minor code change for threadpool update.
  v0.9.4.21   04/17/2016     * Update to asmlib 3.26.
+
                               * Some cleanup.<br>
                               + Fix XP build with VS2015.<br>  
+
  v0.9.4.53   2019/05/31     * Minor code change for threadpool update.<br>
  v0.9.4.20   09/05/2015     * Minor changes, should handle negative pitch properly.<br>
+
  v0.9.4.52   2019/05/30     + Update in the threadpool, add ThreadLevel parameter.<br>
  v0.9.4.19   08/26/2015     + Implement use of asmlib.<br>
+
  v0.9.4.51   2019/05/27     * Fix bug in asm PlanarFrame YUY2to422.<br>
  v0.9.4.18   08/25/2015     + Fix 4:1:1 chroma shift.
+
  v0.9.4.50   05/04/2018     + Optimized CPU placement if SetAffinity=true for prefetch>1 and prefetch<=number of physical cores.
                              + Modification of the memory transfer functions.<br>
+
                               * SetAffinity back to default false.<br>
  v0.9.4.17   08/11/2015     + Change the order between turnl/r and nnedi3 calls in nnedi3_rpow2 to optimize speed.
+
  v0.9.4.49   08/03/2018     * Fix AVX2 path code.
                               + Remove memcpy_amd and use memcpy instead.<br>
+
                               * Fix some potential issue with range modes.
  v0.9.4.16   08/10/2015     + Add csresize parameter, and chroma shift adjustment according resize is enabled by default.
+
                              * Change some default value setting.<br>
                               + Fix regression on center adjustment.<br>
+
  v0.9.4.48   23/11/2017     * Put back process whole plane by whole plane.
v0.9.4.15    08/09/2015      + Change default value of mpeg2 to false, and keep exact
+
                               * Minor change in threadpool interface.<br>
                                previous behavior in that case (but doesn't put back chroma shift issue ^_^).<br>
+
  v0.9.4.47   23/08/2017     + Fix possible deadlock on threadpool destructor.<br>
  v0.9.4.14   08/09/2015     + Add resize adjustment chroma shift in case of MPEG-2 subsampling.
+
  v0.9.4.46   10/08/2017     + Forgot to add AVX path code on planarframe.<br>
                               + Faster RGB24 mode always.
+
  v0.9.4.45   09/08/2017     + Fix Threadpool.
                              + Add mpeg2 parameter.<br>
+
                               + Add AVX path code.
  v0.9.4.13   08/08/2015     + Correction of chroma shift once for all this time.
+
                              * Revert to original MT multi-planar mode, may improve MT efficiency.<br>
                              + Faster RGB24 mode if FTurn is usable.
+
  v0.9.4.44   14/06/2017     * Minor fix.<br>
                              + Fix YV411 support.<br>      
+
  v0.9.4.43    02/06/2017     * Few changes in the threadpool and small fix.<br>
  v0.9.4.12   08/06/2015     + More checks on use of FTurn.
+
  v0.9.4.42    19/05/2017     * Minor change in the threadpool.<br>
                              + Fix regression on YUY2 introduced in previous release.<br>
+
  v0.9.4.41    10/05/2017     * Fix crash in PlanarFrame for YUYV.<br>
  v0.9.4.11   07/31/2015     + Correction of chroma shift value for 4:2:x color modes.
+
  v0.9.4.40    11/04/2017     * Fix bug in x64 AVX2 asm code.<br>
                               + Add YV411 support.<br>
+
  v0.9.4.39    28/03/2017     * Some small optimizations on PlanarFrame asm for YUYV.<br>
  v0.9.4.10   05/25/2015     + Integration of commits coming from VapourSynth version, thanks to Myrsloik.<br>
+
  v0.9.4.38    20/03/2017     * Some cleanup and small modifications on PlanarFrame.
  v0.9.4.9    05/10/2015     + Bug correction in x64 ASM file, thanks to jackoneill and HolyWu.<br>
+
                               * Update AVS+ header.<br>
  v0.9.4.8    03/13/2015     + Update to last AVS+ header files.<br>
+
  v0.9.4.37    05/03/2017     * Remove the use of asmlib.
  v0.9.4.7    01/26/2014     + Little correction in YV24 and Y8 support for nnedi3_rpow2.<br>
+
                              * Some little bug fixes.
  v0.9.4.6    01/17/2014     + Little YV16 optimization.<br>
+
                              + Add an opt intermediate value (4 for AVX).
  v0.9.4.5    01/16/2014     * Updated YV16 support for nnedi3_rpow2, now fast and direct, not tweaked by going to YUY2.<br>
+
                              + Use of YMM registers in case of AVX2 (or more) CPU, and some little others cleanup/speedup.<br>
  v0.9.4.4    01/15/2014     + Some few little optimizations.
+
  v0.9.4.36    24/01/2017     * Set range mode default to 1. Apply range only on last step.
                               * Trick YV16 support in nnedi3_rpow2 by working internally in YUY2 mode to speed-up.<br>
+
                              + Add range mode 4.<br>
  v0.9.4.3    01/14/2014     + Add FTurn support.<br>
+
  v0.9.4.35    20/01/2017     + Fix crash on x64 version introduced in v0.9.4.34.
  v0.9.4.2    01/13/2014     + Add Y8, YV16 and YV24 support.<br>
+
                               + Fix prescreener issue on flat area with value of 255.<br>
  v0.9.4.1    01/03/2014     + Move out all inline ASM code in external files, update code to build x64 version.
+
  v0.9.4.34    17/01/2017     + Add range parameter.<br>
                              + Update interface to new aviSynth 2.6 API.
+
  v0.9.4.33    07/01/2017     + Add support for 9..16 bits and float data formats (thanks to vapoursynth port).
                               - AviSynth 2.5.x not supported anymore.<br>
+
                               + Add FMA3 and FMA4 functions on some parts (thanks to vapoursynth port).
  v0.9.4       06/10/2011     + some more optimizations + more aggressive new prescreener levels<br>
+
                               + Add sleep and prefetch paremeters.
  v0.9.3      06/06/2011     + added new prescreener. Changed 'pscrn' parameter from bool to integer.
+
                               + Fix bug in YUY2 x64 ASM code.<br>
                               + added 'etype' parameter and merged abs/squared weights into one binary<br>
+
  v0.9.4.32    05/12/2016     + Update to new avisynth header and add support for RGB32, RGBPlanar and alpha channel on avs+.
v0.9.2      09/22/2010      + clean up and release source code
+
                               + Add A paremeter (for alpha channel) on nnedi3.
                              + speed improvements - (thanks Loren Merritt - akupenguin - for many ideas and code)
+
                               * Update asmlib to 2.50
                                  int16 dot products in prescreener/predictor neural networks
+
                               * Use /MD (dynamic link) instead of /MT (static link) for building.<br>
                                  faster exp function approximation
+
  v0.9.4.31    14/10/2016     * Use Mutex instead of CriticalSection on some places and some changes in the threadpool interface.
                                  mean removal factored into weights
+
                                  lots of smaller changes
+
                               + new prediction nn weights for certain nsize/nns combinations
+
                               + added fapprox parameter
+
                              - fixed bug with border mirroring
+
                              - dropped support for sse/mmx - all asm code requires sse2. changed opt parameter
+
                                  accordingly.<br>
+
  v0.9.1      07/15/2010     + add nsize=5/6 (16x4,32x4)
+
                               + add nns=0 (16 neurons). nns 0/1/2/3 from v0.9 are now 1/2/3/4.
+
                               - new defaults. nnedi3: nsize=6,nns=1. nnedi3_rpow2: nns=3.
+
                               - fix field=0/1 flipped with rgb24 input<br>
+
  v0.9         06/10/2009     + First official release
+
                              - adds nns=0 (32 neurons). nns 0/1/2 from previous beta are now 1/2/3.
+
                              - adds nsize=4 (8x4).
+
                              - different nns/nsize defaults for nnedi3_rpow2() vs nnedi3()
+
                              - change setcachehints call
+
 
<br>
 
<br>
 
== Archived Downloads ==
 
== Archived Downloads ==
Line 103: Line 88:
 
!!width="150px"| Download
 
!!width="150px"| Download
 
!!width="150px"| Mirror
 
!!width="150px"| Mirror
 +
|-
 +
!v0.9.4 (x64)
 +
|[http://www.dropbox.com/s/fovpn5z9jy4goft/nnedi3_0.9.4_x64.zip?dl=1 nnedi3_0.9.4_x64.zip]
 +
|[https://web.archive.org/web/20200616184607if_/https://files.videohelp.com/u/223002/nnedi3_0.9.4_x64.zip nnedi3_0.9.4_x64.zip]
 
|-
 
|-
 
!v0.9.4
 
!v0.9.4
|<strike>[http://bengal.missouri.edu/~kes25c/nnedi3.zip nnedi3.zip]</strike>
+
|[https://web.archive.org/web/20121118091447if_/http://bengal.missouri.edu/~kes25c/nnedi3.zip nnedi3.zip]
|[http://web.archive.org/web/20121118091447/http://bengal.missouri.edu/~kes25c/nnedi3.zip nnedi3.zip]
+
|N/A
 
|-
 
|-
 
!v0.9.2
 
!v0.9.2
|[http://web.archive.org/web/20110718080343/http://ivtc.org/yatta%20support/nnedi3.zip nnedi3.zip]
+
|[https://web.archive.org/web/20110718080343if_/http://ivtc.org/yatta%20support/nnedi3.zip nnedi3.zip]
 
|N/A
 
|N/A
 
|}
 
|}
 
+
*v0.9.4 (x64) compiled with Intel C++ Compiler XE 14.
The model weights for nnedi3 are stored in a binary file available at: [http://web.archive.org/web/20141226101614/http://bengal.missouri.edu/~kes25c/binary1.bin http://bengal.missouri.edu/~kes25c/binary1.bin]
+
*The model weights for nnedi3 are stored in a binary file available at: [https://web.archive.org/web/20141226101614if_/http://bengal.missouri.edu/~kes25c/binary1.bin http://bengal.missouri.edu/~kes25c/binary1.bin]
 
<br>
 
<br>
 
<br>
 
<br>
  
 
== External Links ==
 
== External Links ==
*[http://forum.doom9.org/showthread.php?t=147695 Doom9 Forum] - nnedi3 discussion.
+
*[https://forum.doom9.org/showthread.php?t=147695 Doom9 Forum] - nnedi3 discussion.
*[http://forum.doom9.org/showthread.php?t=170083 Doom9 Forum] - nnedi3 for AviSynth 2.6  
+
*[https://forum.doom9.org/showthread.php?t=170083 Doom9 Forum] - nnedi3 for AviSynth 2.6  
*[http://github.com/jpsdr/NNEDI3 GitHub] -  Source code repository.  
+
*[https://github.com/jpsdr/NNEDI3 GitHub] -  Source code repository.  
 
<br>
 
<br>
 
<br>
 
<br>
 
-----------------------------------------------
 
-----------------------------------------------
 
'''Back to [[External_filters#Deinterlacing|External Filters]] &larr;'''
 
'''Back to [[External_filters#Deinterlacing|External Filters]] &larr;'''

Latest revision as of 21:13, 25 June 2020

Abstract
Author tritical, jpsdr
Version v0.9.4.55
Download NNEDI3_v0_9_4_55.7z
Category Deinterlacing
License GPLv2
Discussion Doom9 Thread, Update

Contents

[edit] Description

nnedi3 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 YV12, YUY2,and RGB24 input.
nnedi3 is also very good for enlarging images by powers of 2, and includes a function 'nnedi3_rpow2' for that purpose.

nnedi3 is nnedi2 with improved predictor neural network architecture and local neighborhood pre-processing. nnedi3 also has multiple local neighborhood size options to better handle image enlargement vs deinterlacing and give more quality vs speed options.

[edit] Requirements


[edit] Filters

Filter Description Color format
nnedi3

Deinterlace.

RGB24, RGB32, YUY2, Y8, YV12, YV16, YV24, YV411,
all planar formats (Y, YUV(A), RGB(A), 8-16bit and 32bit)
nnedi3_rpow2

Upscale image by the power of 2.

RGB24, RGB32, YUY2, Y8, YV12, YV16, YV24, YV411,
all planar formats (Y, YUV(A), RGB(A), 8-16bit and 32bit)


[edit] Changelog

Version      Date            Changes
v0.9.4.55 2020/05/05 - Fix issue introduced in previous version.
v0.9.4.54 2020/04/27 + Update to the new avisynth headers. * Minor code change for threadpool update. * Some cleanup.
v0.9.4.53 2019/05/31 * Minor code change for threadpool update.
v0.9.4.52 2019/05/30 + Update in the threadpool, add ThreadLevel parameter.
v0.9.4.51 2019/05/27 * Fix bug in asm PlanarFrame YUY2to422.
v0.9.4.50 05/04/2018 + Optimized CPU placement if SetAffinity=true for prefetch>1 and prefetch<=number of physical cores. * SetAffinity back to default false.
v0.9.4.49 08/03/2018 * Fix AVX2 path code. * Fix some potential issue with range modes. * Change some default value setting.
v0.9.4.48 23/11/2017 * Put back process whole plane by whole plane. * Minor change in threadpool interface.
v0.9.4.47 23/08/2017 + Fix possible deadlock on threadpool destructor.
v0.9.4.46 10/08/2017 + Forgot to add AVX path code on planarframe.
v0.9.4.45 09/08/2017 + Fix Threadpool. + Add AVX path code. * Revert to original MT multi-planar mode, may improve MT efficiency.
v0.9.4.44 14/06/2017 * Minor fix.
v0.9.4.43 02/06/2017 * Few changes in the threadpool and small fix.
v0.9.4.42 19/05/2017 * Minor change in the threadpool.
v0.9.4.41 10/05/2017 * Fix crash in PlanarFrame for YUYV.
v0.9.4.40 11/04/2017 * Fix bug in x64 AVX2 asm code.
v0.9.4.39 28/03/2017 * Some small optimizations on PlanarFrame asm for YUYV.
v0.9.4.38 20/03/2017 * Some cleanup and small modifications on PlanarFrame. * Update AVS+ header.
v0.9.4.37 05/03/2017 * Remove the use of asmlib. * Some little bug fixes. + Add an opt intermediate value (4 for AVX). + Use of YMM registers in case of AVX2 (or more) CPU, and some little others cleanup/speedup.
v0.9.4.36 24/01/2017 * Set range mode default to 1. Apply range only on last step. + Add range mode 4.
v0.9.4.35 20/01/2017 + Fix crash on x64 version introduced in v0.9.4.34. + Fix prescreener issue on flat area with value of 255.
v0.9.4.34 17/01/2017 + Add range parameter.
v0.9.4.33 07/01/2017 + Add support for 9..16 bits and float data formats (thanks to vapoursynth port). + Add FMA3 and FMA4 functions on some parts (thanks to vapoursynth port). + Add sleep and prefetch paremeters. + Fix bug in YUY2 x64 ASM code.
v0.9.4.32 05/12/2016 + Update to new avisynth header and add support for RGB32, RGBPlanar and alpha channel on avs+. + Add A paremeter (for alpha channel) on nnedi3. * Update asmlib to 2.50 * Use /MD (dynamic link) instead of /MT (static link) for building.
v0.9.4.31 14/10/2016 * Use Mutex instead of CriticalSection on some places and some changes in the threadpool interface.


[edit] Archived Downloads

Version Download Mirror
v0.9.4 (x64) nnedi3_0.9.4_x64.zip nnedi3_0.9.4_x64.zip
v0.9.4 nnedi3.zip N/A
v0.9.2 nnedi3.zip N/A



[edit] External Links




Back to External Filters

Personal tools