Nnedi3

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