Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
![]() |
#1 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
nnedi3 plugin for VapourSynth
Source: https://github.com/dubhater/vapoursynth-nnedi3
DLLs can be found in the "releases" section. Please test and report back. Patches are welcome too. nnedi3_rpow2 can be found here: http://forum.doom9.org/showthread.php?t=172652
__________________
Buy me a "coffee" and/or hire me to write code! Last edited by jackoneill; 24th February 2016 at 22:17. Reason: nnedi3_rpow2 |
![]() |
![]() |
![]() |
#3 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Precision?... If you're asking what bit depths it accepts for input, only 8. (This might change in the future.) Internally it does the same as the avisynth filter. It's mostly the same code.
__________________
Buy me a "coffee" and/or hire me to write code! |
![]() |
![]() |
![]() |
#4 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
I notice that there is no "Threads" option for this filter like there is for the avisynth filter. So it can't do multi-threading internally?
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
![]() |
![]() |
![]() |
#6 | Link |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,646
|
@ jackoneill
Thank you very much for taking time to port NNEDI3, Histogram, and TemporalSoften. Awesome work ![]() I'll test them out and report back if I find any discrepancies. ============================================= @ Revgen This post might answer your question on multi-threading. |
![]() |
![]() |
![]() |
#9 | Link | |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Quote:
You'll get about the same low speed from the avisynth version with opt=1.
__________________
Buy me a "coffee" and/or hire me to write code! |
|
![]() |
![]() |
![]() |
#10 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Hi!
A new build is available for testing, now with more speed. Use opt=2, but keep the other parameters at their default values, for now (or it will eat your cat). I have only converted a few of the asm functions — those that are used when all parameters are at their default values (except for opt, of course). opt=2 requires SSE2, obviously. This new build also requires VapourSynth R15. Also, it now accepts any colorspace with 8 bits per sample, not just YUV. https://github.com/dubhater/vapoursy...edi3/downloads
__________________
Buy me a "coffee" and/or hire me to write code! Last edited by jackoneill; 16th November 2012 at 11:00. Reason: any colorspace |
![]() |
![]() |
![]() |
#11 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
Quick test. Played back through vdub using a 1920x1080i mpeg2 source and compared vapoursynth SSE2 version (using version R15) and the latest avisynth version (using an avisynth script) with my Q6850 quadcore cpu & WinXP pro. Vapoursynth version runs most optimally with vs.Core(threads=5). Changing it to threads=6 didn't seem to be much better. Avisynth version worked optimally at threads=4. Vapoursynth version runs about 2-3fps faster than avisynth version.
Vapoursynth script Code:
import vapoursynth as vs import sys core = vs.Core(threads=5) core.avs.LoadPlugin(path=r'C:\dgindex\DGDecode.dll') core.std.LoadPlugin(path=r'C:\Program Files\VapourSynth\nnedi3-testing.dll') ret = core.avs.MPEG2Source(r'E:\mympeg2.d2v') ret = core.nnedi3.nnedi3(clip=ret,opt=2,field=3) last = ret Avisynth scrpt Code:
mpeg2source("E:\mympeg2.d2v") nnedi3(opt=2,field=3,threads=4)
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. Last edited by Revgen; 16th November 2012 at 22:50. |
![]() |
![]() |
![]() |
#13 | Link |
契約者
Join Date: Jun 2008
Posts: 1,576
|
Can you also check CPU usage? Because when we'll do actual encoding something like 18fps and 50% cpu load won't make things faster than 10fps and 25% load
Also I posted it before but deleted suggestion cause I'm not sure anymore, but to utilize vapoursynth's MT better, maybe it is good idea to add more filters. Like 2 consecutive nnedi or something (but make sure that it doesn't bottlenecks elsewhere, like overly high resolution...) Last edited by Keiyakusha; 16th November 2012 at 23:15. |
![]() |
![]() |
![]() |
#14 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
Vapoursynth is running at 98-99% load and avisynth is running at 87-88% load.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
![]() |
![]() |
![]() |
#15 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
Tried double NNEDI3. Had to bump it up to vs.Core(threads=7) to optimally use vapoursynth this time. Threads=4 was stilll the most optimal for avisynth. Avisynth CPU load was 90% to 91%. Vapoursynth was 97% to 98%. Avisynth was about .5 to 1fps slower than vapoursynth. Vapoursynth ran 12.5fps-13fps while avisynth ran 12fps to 12.5fps. However, there was a huge discreprancy in memory usage. Avisynth was using about 1gb of RAM before I stopped playback. Vapoursynth was always consistently at 200mb of usage.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
![]() |
![]() |
![]() |
#16 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,519
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
![]() |
![]() |
![]() |
#17 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
Okay, I used SetMemoryMax(250) this time. Memory usage is under control and avisynth performance is still the same.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
![]() |
![]() |
![]() |
#18 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Thank you all for testing. I'm glad to see it's working.
I'm done with the asm. The new build should be fully functional now. opt=2 is default. Please try your favourite combination of exotic parameters.
__________________
Buy me a "coffee" and/or hire me to write code! |
![]() |
![]() |
![]() |
#19 | Link | |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,646
|
Quote:
High bit depth input/output would be lovely. ![]() *edit* My previous question (NNEDI3 internal processing) is irelevant. I (somehow) misinterpreted the quoted statement and thought that NNEDI3 works like avisynth's internal resizing filters. Sorry for being dumb. ![]() Last edited by Reel.Deel; 17th November 2012 at 23:04. Reason: Corrected myself. |
|
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|