Nnedi3

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (Archived Downloads: fix link)
m (add Deep_color_tools category)
 
(9 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.21
+
| v0.9.4.55
| [http://github.com/jpsdr/NNEDI3/releases NNEDI3_v0_9_4_21.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.21   04/17/2016     * Update to asmlib 3.26.
+
  v0.9.4.55   2020/05/05     - Fix issue introduced in previous version.<br>
                              + Fix XP build with VS2015.<br>  
+
  v0.9.4.54   2020/04/27     + Update to the new avisynth headers.
  v0.9.4.20   09/05/2015     * Minor changes, should handle negative pitch properly.<br>
+
                              * Minor code change for threadpool update.
  v0.9.4.19   08/26/2015     + Implement use of asmlib.<br>
+
                              * Some cleanup.<br>
  v0.9.4.18   08/25/2015     + Fix 4:1:1 chroma shift.
+
  v0.9.4.53   2019/05/31     * Minor code change for threadpool update.<br>
                              + Modification of the memory transfer functions.<br>
+
  v0.9.4.52   2019/05/30     + Update in the threadpool, add ThreadLevel parameter.<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.51   2019/05/27     * Fix bug in asm PlanarFrame YUY2to422.<br>
                              + Remove memcpy_amd and use memcpy instead.<br>
+
  v0.9.4.50   05/04/2018     + Optimized CPU placement if SetAffinity=true for prefetch>1 and prefetch<=number of physical cores.
  v0.9.4.16   08/10/2015     + Add csresize parameter, and chroma shift adjustment according resize is enabled by default.
+
                               * SetAffinity back to default false.<br>
                               + Fix regression on center adjustment.<br>
+
  v0.9.4.49   08/03/2018     * Fix AVX2 path code.
  v0.9.4.15   08/09/2015     + Change default value of mpeg2 to false, and keep exact
+
                              * Fix some potential issue with range modes.
                                previous behavior in that case (but doesn't put back chroma shift issue ^_^).<br>
+
                              * Change some default value setting.<br>
  v0.9.4.14   08/09/2015     + Add resize adjustment chroma shift in case of MPEG-2 subsampling.
+
  v0.9.4.48   23/11/2017     * Put back process whole plane by whole plane.
                               + Faster RGB24 mode always.
+
                               * Minor change in threadpool interface.<br>
                              + Add mpeg2 parameter.<br>
+
  v0.9.4.47   23/08/2017     + Fix possible deadlock on threadpool destructor.<br>
  v0.9.4.13   08/08/2015     + Correction of chroma shift once for all this time.
+
  v0.9.4.46   10/08/2017     + Forgot to add AVX path code on planarframe.<br>
                              + Faster RGB24 mode if FTurn is usable.
+
  v0.9.4.45   09/08/2017     + Fix Threadpool.
                              + Fix YV411 support.<br>      
+
                               + Add AVX path code.
  v0.9.4.12   08/06/2015     + More checks on use of FTurn.
+
                              * Revert to original MT multi-planar mode, may improve MT efficiency.<br>
                              + Fix regression on YUY2 introduced in previous release.<br>
+
  v0.9.4.44   14/06/2017     * Minor fix.<br>
  v0.9.4.11   07/31/2015     + Correction of chroma shift value for 4:2:x color modes.
+
  v0.9.4.43    02/06/2017     * Few changes in the threadpool and small fix.<br>
                               + Add YV411 support.<br>
+
  v0.9.4.42    19/05/2017     * Minor change in the threadpool.<br>
  v0.9.4.10   05/25/2015     + Integration of commits coming from VapourSynth version, thanks to Myrsloik.<br>
+
  v0.9.4.41    10/05/2017     * Fix crash in PlanarFrame for YUYV.<br>
  v0.9.4.9    05/10/2015     + Bug correction in x64 ASM file, thanks to jackoneill and HolyWu.<br>
+
  v0.9.4.40    11/04/2017     * Fix bug in x64 AVX2 asm code.<br>
  v0.9.4.8    03/13/2015     + Update to last AVS+ header files.<br>
+
  v0.9.4.39    28/03/2017     * Some small optimizations on PlanarFrame asm for YUYV.<br>
  v0.9.4.7    01/26/2014     + Little correction in YV24 and Y8 support for nnedi3_rpow2.<br>
+
  v0.9.4.38    20/03/2017     * Some cleanup and small modifications on PlanarFrame.
  v0.9.4.6    01/17/2014     + Little YV16 optimization.<br>
+
                               * Update AVS+ header.<br>
  v0.9.4.5    01/16/2014     * Updated YV16 support for nnedi3_rpow2, now fast and direct, not tweaked by going to YUY2.<br>
+
  v0.9.4.37    05/03/2017     * Remove the use of asmlib.
  v0.9.4.4    01/15/2014     + Some few little optimizations.
+
                              * Some little bug fixes.
                               * Trick YV16 support in nnedi3_rpow2 by working internally in YUY2 mode to speed-up.<br>
+
                              + Add an opt intermediate value (4 for AVX).
  v0.9.4.3    01/14/2014     + Add FTurn support.<br>
+
                              + Use of YMM registers in case of AVX2 (or more) CPU, and some little others cleanup/speedup.<br>
  v0.9.4.2    01/13/2014     + Add Y8, YV16 and YV24 support.<br>
+
  v0.9.4.36    24/01/2017     * Set range mode default to 1. Apply range only on last step.
  v0.9.4.1    01/03/2014     + Move out all inline ASM code in external files, update code to build x64 version.
+
                              + Add range mode 4.<br>
                              + Update interface to new aviSynth 2.6 API.
+
  v0.9.4.35    20/01/2017     + Fix crash on x64 version introduced in v0.9.4.34.
                               - AviSynth 2.5.x not supported anymore.<br>
+
                               + Fix prescreener issue on flat area with value of 255.<br>
  v0.9.4       06/10/2011     + some more optimizations + more aggressive new prescreener levels<br>
+
  v0.9.4.34    17/01/2017     + Add range parameter.<br>
  v0.9.3      06/06/2011     + added new prescreener. Changed 'pscrn' parameter from bool to integer.
+
  v0.9.4.33    07/01/2017     + Add support for 9..16 bits and float data formats (thanks to vapoursynth port).
                               + added 'etype' parameter and merged abs/squared weights into one binary<br>
+
                               + Add FMA3 and FMA4 functions on some parts (thanks to vapoursynth port).
v0.9.2      09/22/2010      + clean up and release source code
+
                               + Add sleep and prefetch paremeters.
                              + speed improvements - (thanks Loren Merritt - akupenguin - for many ideas and code)
+
                               + Fix bug in YUY2 x64 ASM code.<br>
                                  int16 dot products in prescreener/predictor neural networks
+
  v0.9.4.32    05/12/2016     + Update to new avisynth header and add support for RGB32, RGBPlanar and alpha channel on avs+.
                                  faster exp function approximation
+
                               + Add A paremeter (for alpha channel) on nnedi3.
                                  mean removal factored into weights
+
                               * Update asmlib to 2.50
                                  lots of smaller changes
+
                               * Use /MD (dynamic link) instead of /MT (static link) for building.<br>
                               + new prediction nn weights for certain nsize/nns combinations
+
  v0.9.4.31    14/10/2016     * Use Mutex instead of CriticalSection on some places and some changes in the threadpool interface.
                               + 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 100: 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