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 > Avisynth Usage

Reply
 
Thread Tools Display Modes
Old 28th April 2010, 13:54   #341  |  Link
newface
Registered User
 
Join Date: Apr 2010
Posts: 3
While i am adding to script MCTemporalDenoise(settings="high") getting error ther is no function named "Msuper" plz rectifie this error image attached below

newface is offline   Reply With Quote
Old 28th April 2010, 14:09   #342  |  Link
um3k
Registered User
 
Join Date: May 2007
Posts: 220
Sounds like you need MVTools 2: http://avisynth.org.ru/mvtools/mvtools2.html
um3k is offline   Reply With Quote
Old 28th April 2010, 14:38   #343  |  Link
newface
Registered User
 
Join Date: Apr 2010
Posts: 3
Quote:
Originally Posted by um3k View Post
Sounds like you need MVTools 2: http://avisynth.org.ru/mvtools/mvtools2.html
Please give me more detiles
newface is offline   Reply With Quote
Old 28th April 2010, 14:57   #344  |  Link
MatLz
I often say "maybe"...
 
MatLz's Avatar
 
Join Date: Jul 2009
Location: France
Posts: 586
Quote:
Originally Posted by newface View Post
Please give me more detiles
MSuper is one (surely the most important) of the functions in the MVTools2.dll plugin
MatLz is offline   Reply With Quote
Old 14th May 2010, 08:48   #345  |  Link
jordisound
Registered User
 
jordisound's Avatar
 
Join Date: Oct 2005
Location: Spain
Posts: 39
Quote:
Originally Posted by Nephilis View Post
Try MT("""MCTemporalDenoise(settings="high")""",threads=4) instead of SetMTMode()..
well, it works. With this sintaxis the speed increase, the 4 cores are working fine.

I am testing gpu=true vs. gpu=false (fft3dgpu vs fft3dfilter). fft3 gpu is 7% faster. analyzing the final video, the compressibility is 5% better with fft3dfilter. it says that the default values for fft3d and fft3gpu are different? or fft3d is more efficient than fft3dgpu?
jordisound is offline   Reply With Quote
Old 15th May 2010, 09:57   #346  |  Link
Poutnik
Useless idea generator
 
Poutnik's Avatar
 
Join Date: Apr 2004
Location: Europe, Czech Republic, Brno
Posts: 332
Quote:
Originally Posted by jordisound View Post
well, it works. With this sintaxis the speed increase, the 4 cores are working fine.........
Interesting, I went the opposite direction MT() -> SetMTMode, realizing the spatial dividing by MT() was causing for me artefacts.

MC is said - seems obvious - to have gain from evaluation the whole picture.
__________________
Vista64 Premium SP2 / C2D E4700 2.6GHz/ 6GB RAM/ Intel GMA 3100 / DTV Leadtek DONGLE GOLD USB2 /
focused to DVB-T MPEG2 PS capture -> ProjectX -> M2V/MP2 -> MeGUI/AVS -> MP4[AVC/AAC]
Poutnik is offline   Reply With Quote
Old 16th May 2010, 23:01   #347  |  Link
Joachim Buambeki
Registered User
 
Join Date: May 2010
Location: Germany, Munich
Posts: 49
I want to use MCTemporalDenoise to denoise my timelapse footage, but it always give me an error:
Code:
There is no function named "Sangnom"

The script is just:
Code:
MCTemporalDenoise(settings="medium")
for a 720p clip. As far as I understand there should not even be a call for Sangnom. I don't have the Sangnom.dll, since I am using the 64bit package from JoshyD.

Another question I have is:
What settings would you recommend me to denoise 4k footage, based on the documentation I figured larger block sizes should do no harm at 4k:
Code:
MCTemporalDenoise(settings="medium", protect=true, stabilize=true, enhance=true, bwbh=32, owoh=16, blksize=32, overlap=16)
Is this likely to work? I am afraid such a complex script will will not run very stable at 4k.

Best Regards
David
Joachim Buambeki is offline   Reply With Quote
Old 16th May 2010, 23:32   #348  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,274
http://manao4.free.fr/SangNom.zip
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊
LoRd_MuldeR is offline   Reply With Quote
Old 16th May 2010, 23:41   #349  |  Link
Joachim Buambeki
Registered User
 
Join Date: May 2010
Location: Germany, Munich
Posts: 49
Thanks, but I need a 64bit Sangnom (though I wonder why Sangnom is needed for the above script.
From what I have read other people use MCTemporalDenoise with succes on with 64bit Avisynth.

Best Regards
David
Joachim Buambeki is offline   Reply With Quote
Old 16th May 2010, 23:53   #350  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,274
Quote:
Originally Posted by Joachim Buambeki View Post
Thanks, but I need a 64bit Sangnom (though I wonder why Sangnom is needed for the above script.
Well, if MCTemporalDenoise makes use of the Sangnom plugin, then you'll need that plugin for MCTemporalDenoise to work. It's that easy

However I don't know if a 64-Bit build of Sangnom exists...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 16th May 2010 at 23:55.
LoRd_MuldeR is offline   Reply With Quote
Old 17th May 2010, 00:01   #351  |  Link
Joachim Buambeki
Registered User
 
Join Date: May 2010
Location: Germany, Munich
Posts: 49
Other people in the thread dedicated to Avisynth 64bit seem to use it without problems (last posts that mentions it in the thread). Since I use no anime preset or the anti aliasing function of MCTemporalDenoise I do not understand why Sangnom is even called. That is why I am confused...
Also I checked the 64bit builds of different filters by JoshyD and squid and have not found a 64bit version of Sangnom.

Best Regards
David

Last edited by Joachim Buambeki; 17th May 2010 at 00:05.
Joachim Buambeki is offline   Reply With Quote
Old 17th May 2010, 00:04   #352  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,406
Try explictely setting MCTemporalDenoise(setings="medium",useEEDI2=true).

Some filtering with SangNom is initiated within the function, but not used later on. Even though SangNom is not actually used with the given call, the parser has the need to evaluate the SangNom() filter.

Taken strictly, this is sign of unkosher scripting ... which, in same or similar style, I might have done "a thousand" times myself.


Edit - Clarification by example:

Assume this little quasi-script:

Code:
do_filter   = false
use_filterX = false

vid = something

filter = use_filterX ? vid.filterX() 
\                    : vid.filterY()

out = do_filter ? filter : vid

return( out )
With given settings, neither filterX nor filterY are actually performed. The output result is just "vid".

However, by the time when the parser is parsing the "filter = ... ? .. : .." line, it needs to know "filterY", because it needs to fully evaluate the code line. The path given by "use_filterX=false" requires that the parser evaluates "filter = vid.filterY()". Albeit the action never is performed, it is still required that "filterY" is *known* at least.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)

Last edited by Didée; 17th May 2010 at 00:20.
Didée is offline   Reply With Quote
Old 17th May 2010, 00:14   #353  |  Link
Joachim Buambeki
Registered User
 
Join Date: May 2010
Location: Germany, Munich
Posts: 49
Quote:
Originally Posted by Didée View Post
Try explictely setting MCTemporalDenoise(setings="medium",useEEDI2=true).
Thanks Didée, that seemed to be one of the culprits.
But now I get the error:
Code:
EEDI2: maxd must be < 30!
EDIT: I searched for "maxd" and it seems to be named "maxdiff" in the script and the the default is 48 for medium. Changing it to something below 30 does not seem to help, the script seems to ignore my user specified setting. When using
Code:
MCTemporalDenoise(setings="low",useEEDI2=true)
it works finally, even if I illegally set maxdiff to 36 with settings="low". There seems to be something borked in the presets.
I will look deeper into it tomorrow.

Regards
David

Last edited by Joachim Buambeki; 17th May 2010 at 06:40.
Joachim Buambeki is offline   Reply With Quote
Old 17th May 2010, 00:20   #354  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,442
Quote:
Originally Posted by Didée View Post
Taken strictly, this is sign of unkosher scripting ...
Quite so. As I'm sure you know, that sort of thing is best done inside a conditional expression, especially if it involves a less frequently-used external plugin whose use is optional, eg
s = (param == xxx) ? SangNom(...) : NOP()

EDIT: Your clarification came after I posted this.
Your example (as you know) would then be more cleanly written as
filter = do_filter ?
\ use_filterX ? vid.filterX() : vid.filterY()
\ : NOP()

(However if filterX and filterY were both built-in functions, I wouldn't bother doing this unless they were known to have a significant time or memory cost on instantiation.)

Last edited by Gavino; 17th May 2010 at 00:40.
Gavino is offline   Reply With Quote
Old 17th May 2010, 06:41   #355  |  Link
LaTo
LaTo INV.
 
LaTo's Avatar
 
Join Date: Jun 2007
Location: France
Posts: 701
Quote:
Originally Posted by Gavino View Post
Quite so. As I'm sure you know, that sort of thing is best done inside a conditional expression, especially if it involves a less frequently-used external plugin whose use is optional, eg
s = (param == xxx) ? SangNom(...) : NOP()
I will add this into the next version, was removed between 1.3.xx -> 1.4.xx (cleaner code) but... it seems to be a problem
LaTo is offline   Reply With Quote
Old 17th May 2010, 11:48   #356  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,442
Quote:
Originally Posted by LaTo View Post
was removed between 1.3.xx -> 1.4.xx (cleaner code) but... it seems to be a problem
It's ironic that to clean it up in one respect (readability), it had to become less clean in another (loading unused filters).

Of course, the root of the problem is the limitations of Avisynth's conditional syntax. What you really want to be able to write is something like:
Code:
if (AA) {
  caa = (useEDDI2 ? .... : ...SangNom(...) ...)
  mA = ...
  smA = ...
}
else {
  ...
  smA = ...
}
[At this point, I will make my usual plug for GScript. ]

Incidentally, on the subject of code cleanup, is there a good reason for using code like
Code:
Assert((radius>=1&&radius<=6)         ? true : false,  ...)
instead of just
Code:
Assert(radius>=1&&radius<=6, ...)
Perhaps to get round some perceived bug in Assert?
Gavino is offline   Reply With Quote
Old 17th May 2010, 13:20   #357  |  Link
Joachim Buambeki
Registered User
 
Join Date: May 2010
Location: Germany, Munich
Posts: 49
Hi LaTo,

can you confirm (or deny) the problem I have with "maxdiff"?

Your script is awesome by the way!

Best Regards
David
Joachim Buambeki is offline   Reply With Quote
Old 17th May 2010, 16:05   #358  |  Link
LaTo
LaTo INV.
 
LaTo's Avatar
 
Join Date: Jun 2007
Location: France
Posts: 701
Update 2010.05.17

v1.4.16 :
added switch to avoid loading of unused filters
fixed a bug in anti-aliasing part

LaTo is offline   Reply With Quote
Old 17th May 2010, 16:10   #359  |  Link
LaTo
LaTo INV.
 
LaTo's Avatar
 
Join Date: Jun 2007
Location: France
Posts: 701
Quote:
Originally Posted by Gavino View Post
Incidentally, on the subject of code cleanup, is there a good reason for using code like
Code:
Assert((radius>=1&&radius<=6)         ? true : false,  ...)
instead of just
Code:
Assert(radius>=1&&radius<=6, ...)
Perhaps to get round some perceived bug in Assert?
IIRC I had some problems with Assert in the past, so maybe... but it's a bit old for me, I don't remember

Quote:
Originally Posted by Joachim Buambeki View Post
can you confirm (or deny) the problem I have with "maxdiff"?
EEDI2 maxd is maxd in MCTD
Sangnom AA is maxd in MCTD
maxdiff is for another stuff
LaTo is offline   Reply With Quote
Old 17th May 2010, 19:56   #360  |  Link
Great Dragon
Registered User
 
Great Dragon's Avatar
 
Join Date: Feb 2005
Location: Ukraine, Lviv
Posts: 121
For some reason MCTD doesn't process last and first frames in a sequence for me.

Here is an example:
2 last frames in a sequence:

2 first frames in a next sequence:
Great Dragon is offline   Reply With Quote
Reply

Thread Tools
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 00:21.


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