Yadif

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (1 revision)
(add x64 version)
 
(5 intermediate revisions by one user not shown)
Line 1: Line 1:
Port of YADIF (Yet Another DeInterlacing Filter) from MPlayer by Michael Niedermayer (http://www.mplayerhq.hu). It checks pixels of previous, current and next frames to re-create the missed field by some local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.
+
{{FilterCat5|External_filters|Plugins|Plugins_x64|Restoration_filters|Deinterlacers}}
 +
{{Filter3
 +
| {{Author/Fizick}}
 +
| v1.7
 +
| [x86]: [http://avisynth.org.ru/yadif/yadif17.zip yadif17.zip]
 +
--------
 +
[x64]: [https://web.archive.org/web/20200610155700if_/https://files.videohelp.com/u/223002/yadif_1.7_x64_asm.zip yadif_1.7_x64_asm.zip]
 +
| Deinterlacing
 +
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
 +
|6=[http://forum.doom9.org/showthread.php?t=124284 Doom9 Thread]
 +
}}
  
 +
== Description ==
 +
Port of YADIF (Yet Another DeInterlacing Filter) from [http://www.mplayerhq.hu MPlayer] by Michael Niedermayer. It check pixels of previous, current and next frames to re-create the missed field by some local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.
  
 +
<span style="color:red">'''Note:'''</span> Yadif is a C-plugin so it must be loaded using [[Plugins#LoadCPlugin|LoadCPlugin]].
  
== Syntax and parameters ==
+
<span style="color:red">'''Note:'''</span>  See [[yadifmod]] or [[yadifmod2]] for an updated version.
 +
<br>
 +
<br>
 +
== Requirements ==
 +
* [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.5.8 or greater]
 +
* [x64]: [[AviSynth+]]
 +
* Supported color formats: [[YV12]]
 +
<br>
  
 +
== [[Script variables|Syntax and Parameters]] ==
 +
:{{Template:FuncDef|Yadif (clip, int "mode", int "order", bool "planar", int "opt")}}
 +
<br>
 +
::{{Par2| |clip| }}
 +
:::Input clip.
 +
<br>
 +
::{{Par2|mode|int|0}}
 +
:::*0 : single frame rate, temporal and spatial interlacing check (default).
 +
:::*1 : double frame rate, temporal and spatial interlacing check.
 +
:::*2 : single frame rate, skips spatial interlacing check.
 +
:::*3 : double frame rate, skips spatial interlacing check.
 +
<br>
 +
::{{Par2|order|int|1}}
 +
:::*-1 : field order as AviSynth assumes (default).
 +
:::*0 : bottom field first
 +
:::*1 : top field first
 +
<br>
 +
::{{Par2|planar|bool|false}}
 +
:::*false : usual [[YV12]] colorspace (default); if input clip is YV12 this parameter is silently ignored.
 +
:::*true : flag for (hacked) planar YUY2 color format of input and output clips, compatible with Interleaved2planar and Planar2Interleaved functions from the RemoveGrain ([[RemoveGrain_v0.9/SSETools|SSETools]]) plugin.
 +
<br>
 +
::{{Par2|opt|int|-1}}
 +
:::*-1 : CPU optimization - auto (default).
 +
:::*0 : slow C version.
 +
:::*1 : [[ISSE|Integer SSE]]
 +
:::*2 : [[SSE2]]
 +
:::*3 : [[SSSE3]] (some)
 +
<br>
  
''Yadif (clip, int "mode", int "order")''
 
  
mode = 0 : temporal and spatial interlacing check (default).
+
== Examples ==
 +
Yadif with default settings:
 +
[[AviSource]]("blah.avi")
 +
Yadif(mode=0, order=-1, planar=false, opt=-1)
  
= 1 : double framerate (bob), temporal and spatial interlacing check.
+
<br>
 
+
== Changelog ==
= 2 : skips spatial interlacing check.
+
Version      Date            Changes<br>
 
+
<br>
= 3 : double framerate (bob), skips spatial interlacing check.
+
== Archived Downloads ==
 
+
{| class="wikitable" border="1"; width="500px"
order = -1 : field order as Avisynth assumes (default).
+
|-
 
+
!!width="100px"| Version
= 0 : Bottom field first.
+
!!width="150px"| Download
 
+
!!width="150px"| Mirror
= 1 : Top field first.
+
|-
 
+
!v1.7
 
+
|[x86]: [http://avisynth.org.ru/yadif/yadif17.zip yadif17.zip]
 
+
-----------
== Features and limitations ==
+
[x64]: [https://web.archive.org/web/20200610155700if_/https://files.videohelp.com/u/223002/yadif_1.7_x64_asm.zip yadif_1.7_x64_asm.zip]
 
+
|[x86]: [http://avisynth.nl/users/fizick/yadif/yadif17.zip yadif17.zip]
 
+
-----------
Implemented as Avisynth C-plugin (not regular Avisynth plugin).
+
[x64]: [http://www.dropbox.com/s/eal13otcg712rhg/yadif_1.7_x64_asm.zip?dl=1 yadif_1.7_x64_asm.zip]
Must be loaded with Load_Stdcall_plugin("yadif.dll") or LoadCplugin("yadif.dll") (not LoadPlugin !). Do not use autoloading. (Note: in Avisynth v2.5.7 there is no need for explicit loading of Avisynth_c.dll by user for such plugins.)
+
|}
 
+
* x64 version compiled with Intel Parallel Studio XE 2015 Composer Edition for C++.
Tested in Avisynth v2.5.7 (probably works with v2.5.6 and above).
+
<br>
 
+
== External Links ==
Field parity of source clip must be properly set (use AssumeTFF, AssumeBFF).
+
*[http://forum.doom9.org/showthread.php?t=124284 Doom9 Forum] - Yadif discussion.
 
+
*[http://avisynth.org.ru/yadif/yadif.html avisynth.org.ru] - Official homepage and documentation.
Very fast. Assembler SSEMMX optimization from mplayer (compiled with MinGW GCC).
+
<br>
 
+
<br>
YUY2, Planar YV12 color format only.
+
-----------------------------------------------
 
+
'''Back to [[External_filters#Deinterlacing|External Filters]] &larr;'''
[http://forum.doom9.org/showthread.php?t=124284 Discussion]
+
 
+
[[Category:Plugins]]
+

Latest revision as of 18:04, 10 June 2020

Abstract
Author Fizick
Version v1.7
Download [x86]: yadif17.zip

[x64]: yadif_1.7_x64_asm.zip

Category Deinterlacing
License GPLv2
Discussion Doom9 Thread

Contents

[edit] Description

Port of YADIF (Yet Another DeInterlacing Filter) from MPlayer by Michael Niedermayer. It check pixels of previous, current and next frames to re-create the missed field by some local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.

Note: Yadif is a C-plugin so it must be loaded using LoadCPlugin.

Note: See yadifmod or yadifmod2 for an updated version.

[edit] Requirements


[edit] Syntax and Parameters

Yadif (clip, int "mode", int "order", bool "planar", int "opt")


clip   =
Input clip.


int  mode = 0
  • 0 : single frame rate, temporal and spatial interlacing check (default).
  • 1 : double frame rate, temporal and spatial interlacing check.
  • 2 : single frame rate, skips spatial interlacing check.
  • 3 : double frame rate, skips spatial interlacing check.


int  order = 1
  • -1 : field order as AviSynth assumes (default).
  • 0 : bottom field first
  • 1 : top field first


bool  planar = false
  • false : usual YV12 colorspace (default); if input clip is YV12 this parameter is silently ignored.
  • true : flag for (hacked) planar YUY2 color format of input and output clips, compatible with Interleaved2planar and Planar2Interleaved functions from the RemoveGrain (SSETools) plugin.


int  opt = -1
  • -1 : CPU optimization - auto (default).
  • 0 : slow C version.
  • 1 : Integer SSE
  • 2 : SSE2
  • 3 : SSSE3 (some)



[edit] Examples

Yadif with default settings:

AviSource("blah.avi")
Yadif(mode=0, order=-1, planar=false, opt=-1)


[edit] Changelog

Version      Date            Changes


[edit] Archived Downloads

Version Download Mirror
v1.7 [x86]: yadif17.zip

[x64]: yadif_1.7_x64_asm.zip

[x86]: yadif17.zip

[x64]: yadif_1.7_x64_asm.zip

  • x64 version compiled with Intel Parallel Studio XE 2015 Composer Edition for C++.


[edit] External Links




Back to External Filters

Personal tools