Yadif: Difference between revisions

From Avisynth wiki
Jump to navigationJump to search
No edit summary
 
add x64 version
 
(6 intermediate revisions by 2 users 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

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.

Requirements


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)



Examples

Yadif with default settings:

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


Changelog

Version      Date            Changes


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++.





Back to External Filters