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 15th September 2012, 01:56   #161  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Maybe a threading explanation would be in place. First consider avisynth. With its model every filter needs to implement multithreading itself. And to ever get close to 90% cpu usage every filter has to do it really well. Splitting the workload of a single frame evenly for every core.

This has a couple of problems. One is that few people bother to do it. Another is that even fewer have a good understanding of thread synchronization. It can also be fairly error prone and writing portable code that uses threads also requires some extra library for abstraction.

Instead it becomes much simpler when the threading is handled by the core. For example writing a filter that can process several frames at once only needs one extra rule compared to a serial one in avisynth. Don't modify the shared instance data. That's it. Even the slowest filters can usually be modified with not too much effort to match this. The core can now just assign one frame to each thread for processing.

There should be no real reason for filter writers to handle threading themselves. Actually it would most likely trip up the threading handled by the vapoursynth core.

So to sum it up. Vapoursynth filters as such have to know nothing of threading. They just have to follow a few simple rules that makes it possible to run them in a threaded environment.

I hope this makes sense. I'm so sleepy
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 15th September 2012, 04:05   #162  |  Link
TheProfileth
Leader of Dual-Duality
 
TheProfileth's Avatar
 
Join Date: Aug 2010
Location: America
Posts: 134
Thanks for the clarification Myrsloik, that makes a lot more sense
__________________
I'm Mr.Fixit and I feel good, fixin all the sources in the neighborhood
My New filter is in the works, and will be out soon
TheProfileth is offline   Reply With Quote
Old 15th September 2012, 11:35   #163  |  Link
Rumbah
Registered User
 
Join Date: Mar 2003
Posts: 480
Will there be some kind of threading pool for temporal filters?
Rumbah is offline   Reply With Quote
Old 15th September 2012, 11:40   #164  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Quote:
Originally Posted by Rumbah View Post
Will there be some kind of threading pool for temporal filters?
It's already implemented. See how fast mvtools is now. To the core there's no real difference between spatial and temporal filters.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 15th September 2012, 11:53   #165  |  Link
Chikuzen
typo lover
 
Chikuzen's Avatar
 
Join Date: May 2009
Posts: 595
after some consideration, I decided to write a small plugin for VapourSynth.

coding was finished in half a day. LINK
Since some changes will be further made before a formal release as for VapourSynth and the license of VS is not clear, i will not distribute binary at soon
__________________
my repositories
Chikuzen is offline   Reply With Quote
Old 15th September 2012, 11:58   #166  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Quote:
Originally Posted by Chikuzen View Post
after some consideration, I decided to write a small plugin for VapourSynth.

coding was finished in half a day. LINK
Since some changes will be further made before a formal release as for VapourSynth and the license of VS is not clear, i will not distribute binary at soon
That could definitely be useful. Now all we need is a VSReader for avisynth and then the insane filtering can begin for real
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 16th September 2012, 01:11   #167  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,890
Quote:
Originally Posted by Myrsloik View Post
...
src = ret
c = core.avs.MSuper(c1=src)
b1v = core.avs.MAnalyse(c1=c, delta=1, isb=False)
f1v = core.avs.MAnalyse(c1=c, delta=1, isb=True)
b2v = core.avs.MAnalyse(c1=c, delta=2, isb=False)
f2v = core.avs.MAnalyse(c1=c, delta=2, isb=True)
ret = core.avs.MDegrain2(c1=src, c2=c, c3=b1v, c4=f1v, c5=b2v, c6=f2v)
ret.output(sys.stdout, y4m=True)
Is correct your script?

In MAnalyse docs:
Quote:
isb : allows to choose between a forward search (motion from the previous frame to current one) for isb=false and a backward search (motion from following frame to the current one) for isb=true (isb stands for "IS Backward", it is implemented and named exactly as written here, do not ask :-). Default isb=false.
The name don't match, but c3 in MDegrain2 must be the backward or the forward?
__________________
BeHappy, AviSynth audio transcoder.
tebasuna51 is offline   Reply With Quote
Old 16th September 2012, 01:21   #168  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Quote:
Originally Posted by tebasuna51 View Post
Is correct your script?

In MAnalyse docs:


The name don't match, but c3 in MDegrain2 must be the backward or the forward?
Congratulations! you're the first once to spot that error!

On a side note, I've decided to use the affero GPL and I'm about halfway to having R8 ready.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 16th September 2012, 02:30   #169  |  Link
TheProfileth
Leader of Dual-Duality
 
TheProfileth's Avatar
 
Join Date: Aug 2010
Location: America
Posts: 134
Quote:
Originally Posted by Myrsloik View Post
Congratulations! you're the first once to spot that error!

On a side note, I've decided to use the affero GPL and I'm about halfway to having R8 ready.
Congrats on your decision
Also so I assume with your clarification of the multithreading that you are not considering implementing the multiprocessing module.
__________________
I'm Mr.Fixit and I feel good, fixin all the sources in the neighborhood
My New filter is in the works, and will be out soon
TheProfileth is offline   Reply With Quote
Old 16th September 2012, 03:00   #170  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,901
Quote:
Originally Posted by Myrsloik View Post
On a side note, I've decided to use the affero GPL.
Will Affero GPL allow dynamic invocation of Vapoursynth without "infecting" the application, i.e., is it like LGPL? If it is not like LGPL, I submit that it may be an unwise decision to use this license.

Assuming that you will allow some kind of LGPL-like licensing, consider this:

In order not to inhibit plugin writers who wished to keep their plugin source private, and other apps that wanted to use Avisynth without disclosing their source, Ben Rudiak-Gould exempted avisynth.h from LGPL and made it freely usable. Will you consider doing the same for your equivalent interface? Thank you.

Last edited by Guest; 16th September 2012 at 03:10.
Guest is offline   Reply With Quote
Old 16th September 2012, 03:12   #171  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Quote:
Originally Posted by neuron2 View Post
Will Affero GPL allow dynamic invocation of Vapoursynth without "infecting" the application, i.e., is it like LGPL? If it is not like LGPL, I submit that it may be an unwise decision to use this license.

Assuming that you will allow some kind of LGPL-like licensing, consider this:

In order not to inhibit plugin writers who wished to keep their plugin source private, and other apps that wanted to use Avisynth without disclosing their source, Ben Rudiak-Gould exempted avisynth.h from LGPL and made it freely usable. Will you consider doing the same for your equivalent interface? Thank you.
Of course I'll have an exception similar to avisynth.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 16th September 2012, 03:13   #172  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by neuron2 View Post
Will Affero GPL allow dynamic invocation of Vapoursynth without "infecting" the application, i.e., is it like LGPL? If it is not like LGPL, I submit that it may be an unwise decision to use this license.

Assuming that you will allow some kind of LGPL-like licensing, consider this:

In order not to inhibit plugin writers who wished to keep their plugin source private, and other apps that wanted to use Avisynth without disclosing their source, Ben Rudiak-Gould exempted avisynth.h from LGPL and made it freely usable. Will you consider doing the same for your equivalent interface? Thank you.
Ahem.

http://forum.doom9.org/showpost.php?...&postcount=150
http://www.vapoursynth.com/2012/09/r...slowly-coming/

Daemon404 is offline   Reply With Quote
Old 16th September 2012, 03:18   #173  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,901
Well, Daemon404, that's very cute but you missed my point, which I tried to make diplomatically.

Actually, Affero is GPL-like and so is unsuitable for Vapoursynth. I'm interested in the author's opinion on that.
Guest is offline   Reply With Quote
Old 16th September 2012, 03:26   #174  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by neuron2 View Post
Well, Daemon404, that's very cute but you missed my point, which I tried to make diplomatically.

Actually, Affero is GPL-like and so is unsuitable for Vapoursynth. I'm interested in the author's opinion on that.
The two thinks I lined were actually relevant. They make is stance on plugins pretty clear. Also he replied above.
Daemon404 is offline   Reply With Quote
Old 16th September 2012, 03:35   #175  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,901
The main point has not been addressed. A GPL-like license does not appear suitable. Please do me a favor and let Myrsloik answer about that if he cares too. Thanks!
Guest is offline   Reply With Quote
Old 16th September 2012, 09:22   #176  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,431
Quote:
Originally Posted by tebasuna51 View Post
Is correct your script?

The name don't match, but c3 in MDegrain2 must be the backward or the forward?
Actually, although the script is technically incorrect, it doesn't matter here because MDegrain works symmetrically, using both backward and forward vectors in the same way.
__________________
GScript and GRunT - complex Avisynth scripting made easier
Gavino is offline   Reply With Quote
Old 16th September 2012, 11:20   #177  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Quote:
Originally Posted by neuron2 View Post
The main point has not been addressed. A GPL-like license does not appear suitable. Please do me a favor and let Myrsloik answer about that if he cares too. Thanks!
How would it be unsuitable? Avisynth has been doing fine for a long time with gpl+linking exception. I don't see what new problems having licensing pretty much identical to avisynth would cause. Or is there a huge problem with the avisynth licensing too that I've missed?
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 16th September 2012, 12:35   #178  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 890
When you have the Python installed why Visual C++ 2008 and 2010 are required? Are these two only for plugin coders only or ordinary users also are required to install these two?
__________________
mohan
my plugins are now hosted here
vcmohan is offline   Reply With Quote
Old 16th September 2012, 12:35   #179  |  Link
active1
Registered User
 
Join Date: Nov 2011
Location: spain
Posts: 45
Quote:
Originally Posted by Chikuzen View Post
after some consideration, I decided to write a small plugin for VapourSynth.

coding was finished in half a day. LINK
Since some changes will be further made before a formal release as for VapourSynth and the license of VS is not clear, i will not distribute binary at soon
how to use it?
active1 is offline   Reply With Quote
Old 16th September 2012, 12:44   #180  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Quote:
Originally Posted by vcmohan View Post
When you have the Python installed why Visual C++ 2008 and 2010 are required? Are these two only for plugin coders only or ordinary users also are required to install these two?
Python needs the vs2008 runtime and vapoursynth needs the 2010 one. I don't see what else there is to say. I do however think python 3.2 installs the 2008 one and I suspect the soon to be released python 3.3 will use the 2010 runtime.

I don't see the problem with this unless there's a misunderstanding somewhere.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Reply

Tags
speed, vaporware, vapoursynth

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 16:55.


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