View Full Version : yadifmod2
Chikuzen
18th March 2016, 15:54
yadifmod2 = Yadif + yadifmod
latest version: 0.0.4
requirements:
- Avisynth2.6.0 or Avisynth+
- Windows Vista sp2 or later
- Visual C++ Redistributable Packages for Visual Studio 2015.
github page (https://github.com/chikuzen/yadifmod2)
binary download (https://github.com/chikuzen/yadifmod2/releases) (both 32bit and 64bit are included.)
features:
- All planar formats are supported. (and YUY2 support is dropped)
- SSE2/SSSE3/AVX2 optimised.(MMX stuffs are dropped)
- 64bit support.
- not avisynth c plugin.
Thanks to Fizick for the bug report.
Sparktank
18th March 2016, 21:16
Thanks for this! Great to see wider planar support.
I was curious the first time I saw but glad I waited until Fizick saw something.
Great job guys. :)
Fizick
20th March 2016, 01:03
v0.0.2 output is now same for C and SIMD opt, but not equal to classical Yadif.
I tried look to source code: score updating is missed. Is it intentional?
Also I see very long delay at first script loading (due to vs2015 dll?).
I tried to compile with VS2010, but some intrinsic (AVX2) is missed in header files. Is it from some new SDK?
Chikuzen
20th March 2016, 09:40
Thanks Fizick:)
I updated to 0.0.3.
I tried look to source code: score updating is missed. Is it intentional?
No. Just my mistake.
Also I see very long delay at first script loading (due to vs2015 dll?).
I don't know.
I tried to compile with VS2010, but some intrinsic (AVX2) is missed in header files. Is it from some new SDK?
I compiled the binaries with VisualStudio community 2015 update1 and Avisynth+'s avisynth.h.
I didn't use any other stuffs.
I also tried to compile with VS2013, and there were no problems (except rewrite constexpr to const:p)
VS2010 ... Sorry, I don't want to install it...
bcn_246
31st March 2016, 12:34
So if used with an external deinterlacer like NNEDI3 (I use Yadifmod+NNEDI3 for all but the most difficult interlaced content, then it's QTGMC) is there a quality benefit? Regards, Ben
Chikuzen
31st March 2016, 18:01
So if used with an external deinterlacer like NNEDI3 (I use Yadifmod+NNEDI3 for all but the most difficult interlaced content, then it's QTGMC) is there a quality benefit? Regards, Ben
The output of yadifmod2+NNEDI3 is identical with yadifmod+NNEDI3.
But yadifmod2 is faster than yadifmod because it has SSE2/AVX2 optimazed code.
yadifmod has only MMX optimization.
kolak
2nd April 2016, 11:04
Any place for quality improvements?
I like yadifimod a lot, but when going to double fps than it's not so great.
Chikuzen
2nd April 2016, 11:56
Any place for quality improvements?
I like yadifimod a lot, but when going to double fps than it's not so great.
The reasons that I wrote this plugin are the followings.
- yadif/yadifmod can't accept YV16/YV24 (and yadifmod can't accept Y8).
- Since yadifmod uses inline asm, it can't be compiled for 64bit beside Intel compiler.
- I wanted to try whether yadif becomes fast if AVX2 is used.
If you want the higher quality, use QTGMC.
kolak
2nd April 2016, 12:02
Makes sense.
QTGMC comes with its own problems :)
I like yadifmod as a very goor trade of between speed and quality.
Atak_Snajpera
2nd April 2016, 15:21
Yadifmod2_avx is only about 15% faster that old plain Yadif.
Without Yadif
AVSMeter 2.1.3 (x86)
AviSynth 2.60, build:Mar 31 2015 [16:38:54] (2.6.0.6)
Loading script.....
Number of frames: 988
Length (hh:mm:ss.ms): 00:00:32.966
Frame width: 1440
Frame height: 1080
Framerate: 29.970 (5000000/166833)
Colorspace: YV12
Frames processed: 988 (0 - 987)
FPS (min | max | average): 451.2 | 686.5 | 636.3
Memory usage (phys | virt): 58 | 61 MB
Thread count: 18
CPU usage (average): 25%
Time (elapsed): 00:00:01.553
Yadif
AVSMeter 2.1.3 (x86)
AviSynth 2.60, build:Mar 31 2015 [16:38:54] (2.6.0.6)
Loading script.....
Number of frames: 1976
Length (hh:mm:ss.ms): 00:00:32.966
Frame width: 1440
Frame height: 1080
Framerate: 59.940 (10000000/166833)
Colorspace: YV12
Frames processed: 1976 (0 - 1975)
FPS (min | max | average): 172.7 | 204.7 | 198.7
Memory usage (phys | virt): 149 | 152 MB
Thread count: 18
CPU usage (average): 11%
Time (elapsed): 00:00:09.946
Yadifmod2
AVSMeter 2.1.3 (x86)
AviSynth 2.60, build:Mar 31 2015 [16:38:54] (2.6.0.6)
Loading script.....
Number of frames: 1976
Length (hh:mm:ss.ms): 00:00:32.966
Frame width: 1440
Frame height: 1080
Framerate: 59.940 (10000000/166833)
Colorspace: YV12
Frames processed: 1976 (0 - 1975)
FPS (min | max | average): 180.2 | 215.9 | 209.7
Memory usage (phys | virt): 152 | 155 MB
Thread count: 18
CPU usage (average): 11%
Time (elapsed): 00:00:09.422
Yadifmod2_AVX
AVSMeter 2.1.3 (x86)
AviSynth 2.60, build:Mar 31 2015 [16:38:54] (2.6.0.6)
Loading script.....
Number of frames: 1976
Length (hh:mm:ss.ms): 00:00:32.966
Frame width: 1440
Frame height: 1080
Framerate: 59.940 (10000000/166833)
Colorspace: YV12
Frames processed: 1976 (0 - 1975)
FPS (min | max | average): 193.5 | 234.8 | 228.0
Memory usage (phys | virt): 151 | 154 MB
Thread count: 18
CPU usage (average): 12%
Time (elapsed): 00:00:08.667
Why do we need extra version for AVX but not for AVX2 ?
Chikuzen
2nd April 2016, 15:42
Yadifmod2_avx is only about 15% faster that old plain Yadif.
I know that.
But SSE2 was also useless at time of the early arrival.
AVX2 may be mostly indispensably in about 5 years.
Why do we need extra version for AVX but not for AVX2 ?
Enable AVX2 requires add /arch:AVX to compile options.
I think that has an bad influence for CPU before SandyBrifge.
However, I have only one machine(i7-4790) at now.
So it has not been checked.
and there is no difference in /arch:AVX and /arch:AVX2.
If your machine's CPU is SandyBridge or IvyBridge, use your favorite one.
Atak_Snajpera
2nd April 2016, 16:03
and there is no difference in /arch:AVX and /arch:AVX2.
Both use 256 bit registers so I'm not surprised that there is no difference.
thescrapyard
3rd April 2016, 09:15
Just tried this plugin with AvspMOD, and it failed complaining about a missing library
Ran Dependancy Walker as that's helped me out in the past with plugins that seem to be perfect but keep failing causing much head banging off the desk when they worked perfectly previously, and it was trying to load a couple of DLL's that I didn't have
DLL's I had missing were :
MCVSP140.dll
VCRUNTIME140.dll
Downloaded and simply copied to where the main DLL files are and everything it now running as it should. Just in case anybody else is having issues with missing libraries
Groucho2004
3rd April 2016, 09:33
Just tried this plugin with AvspMOD, and it failed complaining about a missing library
Ran Dependancy Walker as that's helped me out in the past with plugins that seem to be perfect but keep failing causing much head banging off the desk when they worked perfectly previously, and it was trying to load a couple of DLL's that I didn't have
DLL's I had missing were :
MCVSP140.dll
VCRUNTIME140.dll
Downloaded and simply copied to where the main DLL files are and everything it now running as it should. Just in case anybody else is having issues with missing libraries
How about checking the requirements in the first post:
"Visual C++ Redistributable Packages for Visual Studio 2015"
Copying the DLLs manually is not recommended. Besides, it's "MSVCP140.dll", not "MCVSP140.dll".
Chikuzen
29th May 2016, 07:39
update to 0.0.4
- Set filter mode as MT_NICE_FILTER automatically on avs+MT.
- Remove AVX2 code from yadifmod2.dll.
Also, I added vapoursynth version(for win32 and win64) to the release page.
This is experimental because I didn't test it except 8bit integer source.
Selur
29th May 2016, 08:16
Thanks for the update. :)
Elegant
21st November 2016, 22:17
Also, I added vapoursynth version(for win32 and win64) to the release page.
This is experimental because I didn't test it except 8bit integer source.
I was attempting to switch to this over yadifmod but unfortunately it seems to cause major artifacting around edges when used in a 16-bit clip. Any chance for an update?
kedautinh12
23rd July 2023, 00:41
yadifmod2 0.2.8
Throw error if YUV420 height is not mod4.
https://github.com/Asd-g/yadifmod2/releases
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.