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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > VapourSynth

Reply
 
Thread Tools Search this Thread Display Modes
Old 2nd November 2019, 17:00   #461  |  Link
jackoneill
unsigned int
 
jackoneill's Avatar
 
Join Date: Oct 2012
Location: 🇪🇺
Posts: 740
Quote:
Originally Posted by ChaosKing View Post
Isn't it time for a v22 - AVX2 booster edition?
Or at least a test build so we can test it?
I should figure out issue #38 first.
__________________
Buy me a "coffee" and/or hire me to write code!
jackoneill is offline   Reply With Quote
Old 6th April 2020, 10:57   #462  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,502
Quote:
Originally Posted by jackoneill View Post
I should figure out issue #38 first.
Would you please add MDegrainN (up to 6, at least)?

I need it to run G41Fun.py on noisy material.

I have tried MVTools single precision but it's simply too slow to have any use of it, at least the one without AVX2 requirement.
__________________
@turment on Telegram

Last edited by tormento; 6th April 2020 at 11:04.
tormento is offline   Reply With Quote
Old 4th May 2020, 18:40   #463  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,853
Thank you for the new release

Lemmy said that speed is good for you.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 4th May 2020, 21:44   #464  |  Link
bin.n2f
Registered User
 
Join Date: May 2015
Posts: 17
Quote:
Originally Posted by tormento View Post
Would you please add MDegrainN (up to 6, at least)?

I need it to run G41Fun.py on noisy material.

I have tried MVTools single precision but it's simply too slow to have any use of it, at least the one without AVX2 requirement.
yes please
bin.n2f is offline   Reply With Quote
Old 5th May 2020, 05:22   #465  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,853
I'm getting quite strange results considering the possible speed increases on my Ryzen 3900X. I would have expected the new Zen generation to be able to utilize the AVX2 optimizations really well, because they did help the first gen one when I tested Stephen R. Savage's early builds.

The first 2500 frames using vspipe:
v21 : 57.25 fps
v22 : 55.14 fps

Test script, normal Blu-ray source.
Code:
clp = core.dgdecodenv.DGSource(r"test.dgi")

degrain16 = core.fmtc.bitdepth(clp, bits=16)
superanalyse8 = core.mv.Super(clp, pel=2, chroma=True, rfilter=4, sharp=1)
supermdg16 = core.mv.Super(degrain16, pel=2, chroma=True, rfilter=4, levels=1, sharp=1)

analyze_args = dict(blksize=16, overlap=8, search=5, searchparam=8, pelsearch=8, truemotion=False)
degrain_args_16 = dict(thsad=200, thsadc=100, limit=1*256, limitc=2*256, thscd1=300, thscd2=80)

bv1_8 = core.mv.Analyse(superanalyse8, isb=True, delta=1, **analyze_args)
fv1_8 = core.mv.Analyse(superanalyse8, isb=False, delta=1, **analyze_args)

finalclip8 = core.mv.Degrain1(degrain16, supermdg16, bv1_8, fv1_8, **degrain_args_16)
finalclip8.set_output()
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...

Last edited by Boulder; 5th May 2020 at 07:55.
Boulder is offline   Reply With Quote
Old 13th May 2020, 15:59   #466  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,853
What does MFinest actually do? There's no real documentation anywhere to be found.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 14th May 2020, 08:15   #467  |  Link
jackoneill
unsigned int
 
jackoneill's Avatar
 
Join Date: Oct 2012
Location: 🇪🇺
Posts: 740
Quote:
Originally Posted by Boulder View Post
What does MFinest actually do? There's no real documentation anywhere to be found.
If you look at the output of Super with pel=2 you'll see at the bottom of the frame 4 identically-sized images, and with pel=4 you'll see 16 identically-sized images. Those 4 or 16 images are actually one large image. I imagine they are stored like that so that Super doesn't waste lots of RAM in the top part of the frame.

Finest takes those 4 or 16 images and reassembles them into one (separate) image for the filters that need it. I think it's mostly the Flow* filters. They automatically invoke Finest when they need it.

I think this hack could be eliminated in the VapourSynth version because the various images produced by Super could be attached to the source frame as separate frame properties. If someone had the motivation to look into that.
__________________
Buy me a "coffee" and/or hire me to write code!
jackoneill is offline   Reply With Quote
Old 15th May 2020, 23:02   #468  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 451
Quote:
Originally Posted by Boulder View Post
I'm getting quite strange results considering the possible speed increases on my Ryzen 3900X. I would have expected the new Zen generation to be able to utilize the AVX2 optimizations really well, because they did help the first gen one when I tested Stephen R. Savage's early builds.

The first 2500 frames using vspipe:
v21 : 57.25 fps
v22 : 55.14 fps
What is so strange about these results ? I would expect better speed from a Ryzen 3900... did you limit the nr. of threads ?
Which was the optimized build ?
Tested your script with 1920x1080 YUV420P8 clip on my i7940X (14c/28t):

Mvtools R22 (optimized by Stephen R. Savage)
Code:
>vspipe -e 1999 boulder.vpy .
Output 2000 frames in 14.63 seconds (136.66 fps)
Mvtools R23 (current version)
Code:
vspipe -e 1999 boulder.vpy .
Output 2000 frames in 17.34 seconds (115.37 fps)
I hope Stephen finds the time to optimize this new version

Last edited by Pat357; 15th May 2020 at 23:23.
Pat357 is offline   Reply With Quote
Old 15th May 2020, 23:30   #469  |  Link
Are_
Registered User
 
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 308
From a bluray?
Are_ is offline   Reply With Quote
Old 16th May 2020, 12:37   #470  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,853
Quote:
Originally Posted by Pat357 View Post
What is so strange about these results ? I would expect better speed from a Ryzen 3900... did you limit the nr. of threads ?
Which was the optimized build ?
Tested your script with 1920x1080 YUV420P8 clip on my i7940X (14c/28t):

Mvtools R22 (optimized by Stephen R. Savage)
Code:
>vspipe -e 1999 boulder.vpy .
Output 2000 frames in 14.63 seconds (136.66 fps)
Mvtools R23 (current version)
Code:
vspipe -e 1999 boulder.vpy .
Output 2000 frames in 17.34 seconds (115.37 fps)
I hope Stephen finds the time to optimize this new version
R22 was the first official build with AVX2 optimizations. The thing looks like a compiler issue, the libraries built with MSVC are faster.

https://github.com/dubhater/vapoursy...ools/issues/47
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 17th May 2020, 12:10   #471  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: Providence, RI
Posts: 2,336
Quote:
Originally Posted by tormento View Post
Would you please add MDegrainN (up to 6, at least)?

I need it to run G41Fun.py on noisy material.

I have tried MVTools single precision but it's simply too slow to have any use of it, at least the one without AVX2 requirement.
I might be able to add mvmulti functionalities (MAnalyze, MRecalculate, MCompensate, MFlow with radius, and MDegrainN) and cosine annealing ("thsad2") to this branch as well if the branch owner allows C++20 snippets in the code base.
__________________
If I got new ideas, will post here: https://github.com/IFeelBloated
feisty2 is offline   Reply With Quote
Old 17th May 2020, 12:33   #472  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,502
Quote:
Originally Posted by feisty2 View Post
I might be able to add mvmulti functionalities (MAnalyze, MRecalculate, MCompensate, MFlow with radius, and MDegrainN) and cosine annealing ("thsad2") to this branch as well if the branch owner allows C++20 snippets in the code base.

Great. I hope the SMDegrain script will be modified too.
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Old 17th May 2020, 12:39   #473  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,853
Quote:
Originally Posted by feisty2 View Post
I might be able to add mvmulti functionalities (MAnalyze, MRecalculate, MCompensate, MFlow with radius, and MDegrainN) and cosine annealing ("thsad2") to this branch as well if the branch owner allows C++20 snippets in the code base.
Would you mind taking a stab at the scaling of vectors between different bitdepths (in case jackoneill doesn't have the interest to do it)?
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 17th May 2020, 13:04   #474  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: Providence, RI
Posts: 2,336
the thing is I'm not sure if jackoneill would accept C++20 code for 2 reasons
1) it breaks compatibility with tons of older compilers, in fact, GCC 10.1 is the only compiler that supports most of C++20 features currently.
2) the inserted snippets would have a very different coding style, it would look much more similar to dynamically typed languages than typical statically typed languages with a nominal type system (C, Java, C++98 (excluding template metaprogramming), etc.) some people find such code much easier to read and write and others find it hard to decipher. people have different coding mindsets, I personally think in structural typing and find type declarations useless, but lots of people rely on nominal typing and find code without type declarations hard to understand. jackoneill might also reject my code because he/she thinks the code is hard to maintain.

and I don't wanna create yet another mvtools branch if jackoneill decides not to merge my code.
__________________
If I got new ideas, will post here: https://github.com/IFeelBloated

Last edited by feisty2; 17th May 2020 at 15:13.
feisty2 is offline   Reply With Quote
Old 17th May 2020, 20:34   #475  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 451
Quote:
Originally Posted by Boulder View Post
R22 was the first official build with AVX2 optimizations. The thing looks like a compiler issue, the libraries built with MSVC are faster.

https://github.com/dubhater/vapoursy...ools/issues/47
Is there a MSVC compiled version for the new R23 available somewhere ?
I not smart enough to do it myself without a ready available .sln and other settings...
Pat357 is offline   Reply With Quote
Old 18th May 2020, 06:00   #476  |  Link
HolyWu
Registered User
 
HolyWu's Avatar
 
Join Date: Aug 2006
Location: Taiwan
Posts: 747
Quote:
Originally Posted by Pat357 View Post
Is there a MSVC compiled version for the new R23 available somewhere ?
https://www.mediafire.com/file/n0cew...-win64.7z/file
HolyWu is offline   Reply With Quote
Old 18th May 2020, 08:11   #477  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,259
Thx HolyWu
Tested with SMDegrain and the clang version is the fastest, up to 3fps faster compared to R23. MSVC is the slowest, even slower then R23. ICL is a tiny bit slower then clang.
Tested with Ryzen 2600 on 1080p source.

Ranking
clang
icl
R23 release
msvc
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository

Last edited by ChaosKing; 18th May 2020 at 08:15.
ChaosKing is offline   Reply With Quote
Old 18th May 2020, 11:50   #478  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,502
I am losing a bit the thread. Has been MDegrain up to 6 and N implemented or not?
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Old 18th May 2020, 11:55   #479  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: Providence, RI
Posts: 2,336
no, judging from jackoneill's lack of response, I don't think he/she will merge C++20 code, and I don't wanna create another mvtools branch.
your best shot is with the floating point branch if you do need arbitrary radius MDegrain and cosine annealing
__________________
If I got new ideas, will post here: https://github.com/IFeelBloated

Last edited by feisty2; 18th May 2020 at 12:01.
feisty2 is offline   Reply With Quote
Old 18th May 2020, 12:48   #480  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,502
Quote:
Originally Posted by feisty2 View Post
no, judging from jackoneill's lack of response, I don't think he/she will merge C++20 code, and I don't wanna create another mvtools branch.
your best shot is with the floating point branch if you do need arbitrary radius MDegrain and cosine annealing

Too slow. I will keep on using AVS+. What a pity.
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 04:10.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.