VideoHelp Forum
+ Reply to Thread
Page 1 of 4
1 2 3 ... LastLast
Results 1 to 30 of 98
Thread
  1. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    Or more specifically, I'm working with a clip that has strong noise. Ttempsmooth and Temporal Cleaner are my choice cleaning filters. However, this one's a doozy and requires strong filtration in some segments. I usually TIVTC before doing anything else. My question is: In order to avoid ghosting/blurring, is there a better and more resourceful way to deinterlace or IVTC my clip before I filter?

    PS - I am aware that I have to weave back if I deinterlace.

    Thanks
    Quote Quote  
  2. A proper IVTC doesn't result in any ghosting or blurring -- unless those problems are in the video (as often happens with PAL/NTSC conversions).
    Quote Quote  
  3. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    No, my problem is not the IVTC causing the ghosting/blurring.

    The aggressive temporal filtration is what is causing this.

    So what my question is, considering that the ghosting (after temporal filtration) is an issue that affects the image (hence the frame/field), is there a BETTER way to telecide or deinterlace my clip (OTHER than TIVTC), such as BOB, BEFORE I add the Temporal filtration, in order to achieve better results?
    Quote Quote  
  4. Originally Posted by unclescoob View Post
    So what my question is, considering that the ghosting (after temporal filtration) is an issue that affects the image (hence the frame/field), is there a BETTER way to telecide or deinterlace my clip
    No. Use McTemporalDenoise() instead.
    Quote Quote  
  5. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    I've been trying, but my computer is not reading the FFT3D file correctly. I have installed it, un-installed it, re-installed it, un-installed it, etc. a trillion times from my System32 folder. Nothing.

    At one point, sanlyn offered the "correct" file for Windows 7 (32 bit). I installed it. When I tried opening my script [McTemporalDenoise (settings="low"), Virtualdub won't open it. Just like AvsPmod, it tells me that the filter is missing. Any suggestions on how to work around this?
    Quote Quote  
  6. Did you put fftw3.dll in your System32 or SysWoW64 folder?
    Quote Quote  
  7. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    I put the fftw3.dll in my System32 folder. Sorry, I mispelled it.
    Quote Quote  
  8. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    Any other ideas? Maybe I can call it as a function?
    Quote Quote  
  9. Banned
    Join Date: Oct 2004
    Location: New York, US
    Search Comp PM
    -30-
    Last edited by sanlyn; 21st Mar 2014 at 21:16.
    Quote Quote  
  10. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    Originally Posted by sanlyn View Post
    It is a function. The script for MCTemporalDenoise begins with these words:

    Code:
    function MCTemporalDenoise( clip i, int "radius", int "sigma". . .
    Whoah, hold on a sec. I thought the script for MCTemporalDenoise begins with a simple:

    McTemporalDenoise(settings="low")

    This is according to the other thread where this was being discussed. I'm getting mixed information here.
    Quote Quote  
  11. Banned
    Join Date: Oct 2004
    Location: New York, US
    Search Comp PM
    -30-
    Last edited by sanlyn; 21st Mar 2014 at 21:16.
    Quote Quote  
  12. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    Ok, so would my script would go something like:

    Mpeg2Source(yaddayadda, cpu=3)
    Tdecimate(yaddayadda)
    TFM(yaddayadda)
    function MCTemporalDenoise( clip i, int "radius", int "sigma", bool "twopass", bool "useTTmpSm", int "limit", int "limit2", int "post", bool "chroma", bool "interlaced",
    \ bool "sharp", bool "adapt", int "strength", int "SHmode", int "SHmethod", int "Slimit", int "Sovershoot", bool "Tlimit", int "Tovershoot",
    \ bool "protect", int "cutoff", int "threshold", int "maxdiff",
    \ bool "AA", bool "useEEDI2", float "reduc", int "maxd", int "AAthr", int "method",
    \ bool "deblock", bool "useQED", int "quant1", int "quant2",
    \ bool "edgeclean", int "ECrad", int "ECthr", string "ECmode",
    \ bool "stabilize", int "maxr", int "TTstr",
    \ bool "enhance", float "GFthr", float "AGstr", int "bias", int "temp",
    \ int "bwbh", int "owoh", int "blksize", int "overlap",
    \ bool "GPU", bool "fixband", int "bt", int "ncpu", int "precision",
    \ int "thSAD", int "thSAD2", int "thSCD1", int "thSCD2",
    \ bool "truemotion", bool "MVglobal", int "pel", int "pelsearch", int "search", int "searchparam", int "MVsharp", int "DCT",
    \ clip "p", string "settings",
    \ bool "show", int "screenW", int "screenH" )
    McTemporalDenoise(settings="low")
    Quote Quote  
  13. I usually put McTemporalDenoise.AVS in my AviSynth plugins folder then import it into my working script:

    Code:
    import("C:\Program Files (x86)\AviSynth 2.5\plugins\McTemporalDenoise.avs")
    
    Mpeg2Source(yaddayadda, cpu=3)
    Tdecimate(yaddayadda)
    TFM(yaddayadda)
    McTemporalDenoise(settings="low")
    If you change the extension from AVS to AVSI, and put it in your plugins folder the script will be imported automatically any time you use any AVS script.

    <edit>
    fixed the import line in the script
    </edit>
    Last edited by jagabo; 27th Feb 2012 at 06:27.
    Quote Quote  
  14. Banned
    Join Date: Oct 2004
    Location: New York, US
    Search Comp PM
    -30-
    Last edited by sanlyn; 21st Mar 2014 at 21:16.
    Quote Quote  
  15. LOL. I pasted the wrong import line!

    Also, if you would rather paste the function into your working script it helps (in terms of readability) to separate the functions from the working portion of your script. I usually put function declarations at the start.

    Code:
    # first import stuff
    # and declare functions
    
    function MCTemporalDenoise( clip i, int "radius", int "sigma",  bool "twopass", bool "useTTmpSm", int "limit", int "limit2", int "post",  bool "chroma", bool "interlaced",
     \ bool "sharp", bool "adapt", int "strength", int "SHmode", int  "SHmethod", int "Slimit", int "Sovershoot", bool "Tlimit", int  "Tovershoot",
     \ bool "protect", int "cutoff", int "threshold", int "maxdiff",
     \ bool "AA", bool "useEEDI2", float "reduc", int "maxd", int "AAthr", int "method",
     \ bool "deblock", bool "useQED", int "quant1", int "quant2",
     \ bool "edgeclean", int "ECrad", int "ECthr", string "ECmode",
     \ bool "stabilize", int "maxr", int "TTstr",
     \ bool "enhance", float "GFthr", float "AGstr", int "bias", int "temp",
     \ int "bwbh", int "owoh", int "blksize", int "overlap",
     \ bool "GPU", bool "fixband", int "bt", int "ncpu", int "precision",
     \ int "thSAD", int "thSAD2", int "thSCD1", int "thSCD2",
     \ bool "truemotion", bool "MVglobal", int "pel", int "pelsearch", int "search", int "searchparam", int "MVsharp", int "DCT",
     \ clip "p", string "settings",
     \ bool "show", int "screenW", int "screenH" )
    
    # then comes the working script
    
    Mpeg2Source(yaddayadda, cpu=3)
    Tdecimate(yaddayadda)
    TFM(yaddayadda)
    McTemporalDenoise(settings="low")
    Some people prefer to put the working portion of the script at the top instead of the bottom. But I'm an old ANSI C programmer.
    Quote Quote  
  16. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by jagabo View Post
    Code:
    # first import stuff
    # and declare functions
    
    function MCTemporalDenoise( clip i, int "radius", int "sigma",  bool "twopass", bool "useTTmpSm", int "limit", int "limit2", int "post",  bool "chroma", bool "interlaced",
     \ bool "sharp", bool "adapt", int "strength", int "SHmode", int  "SHmethod", int "Slimit", int "Sovershoot", bool "Tlimit", int  "Tovershoot",
      ...
      \ bool "show", int "screenW", int "screenH" )
    
    # then comes the working script
    
    Mpeg2Source(yaddayadda, cpu=3)
    ...
    Of course you also need the actual body of the function, not shown in jagabo's post or unclescoob's earlier post #12.
    Quote Quote  
  17. Yeah, I just copied his script. Guess I'm just not paying attention today.
    Quote Quote  
  18. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    Ok, so can you explain what the actual body of the function is???
    Quote Quote  
  19. Originally Posted by unclescoob View Post
    Ok, so can you explain what the actual body of the function is???
    Everything between the first { and last }.
    Quote Quote  
  20. Originally Posted by unclescoob View Post
    Ok, so can you explain what the actual body of the function is???
    Originally Posted by sanlyn View Post
    Look at the function's avsi documentation here http://latoninf.free.fr/d9/MCTD/MCTemporalDenoise.v1.4.20.avsi and scroll down until you find the words "function MCTemporalDenoise", about 1/3 down the whole document. That's where the actual function begins. Everything above it is comments-only.
    Beginning with the word 'function', copy everything after that all the way to the bottom and then paste into an .avs or .avsi.

    Or just copy and paste the whole thing, although the stuff above 'function' isn't actually part of the function and some stuff at the bottom is a different function for showing the effects. You might also find this page helpful:

    http://avisynth.org/mediawiki/MCTemporalDenoise
    Quote Quote  
  21. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    Ok, I will do that.
    Quote Quote  
  22. Banned
    Join Date: Oct 2004
    Location: New York, US
    Search Comp PM
    -30-
    Last edited by sanlyn; 21st Mar 2014 at 21:17.
    Quote Quote  
  23. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    As I stated before: The people who write these filters, really need to get their shit together in making this a tad more user-friendly. Now before you all throw me in the oven, I said USER friendly, not LAZY MORON friendly.

    Manono, I do not find the link helpful. I have read that document various times. I actually have a printout of it in my bag. The document pretty much lists all the functions of the filter, and the outcome of different settings.

    It fails to explain how to import the function and THEN, type the script. It also doesn't tell you that you need to put the fft3d.dll in your System32 folder. It doesn't give you a step by step guide. Yes, some of us need that, actually! Who knew!
    Quote Quote  
  24. Member
    Join Date: Jul 2009
    Location: Spain
    Search Comp PM
    Originally Posted by sanlyn View Post
    The other way, without a function, is to retype this code 3 times:

    nn = c.nnedi2(field=-2)
    dbl = mt_average(selecteven(nn),selectodd(nn),U=3,V=3)
    dblD = mt_makediff(c,dbl,U=3,V=3)
    shrpD = mt_makediff(dbl,dbl.removegrain((width(c)>1100) ? 20 : 11),U=3,V=3)
    DD = shrpD.repair(dblD,13)
    return dbl.mt_adddiff(DD,U=3,V=3)

    nn = c.nnedi2(field=-2)
    dbl = mt_average(selecteven(nn),selectodd(nn),U=3,V=3)
    dblD = mt_makediff(c,dbl,U=3,V=3)
    shrpD = mt_makediff(dbl,dbl.removegrain((width(c)>1100) ? 20 : 11),U=3,V=3)
    DD = shrpD.repair(dblD,13)
    return dbl.mt_adddiff(DD,U=3,V=3)

    nn = c.nnedi2(field=-2)
    dbl = mt_average(selecteven(nn),selectodd(nn),U=3,V=3)
    dblD = mt_makediff(c,dbl,U=3,V=3)
    shrpD = mt_makediff(dbl,dbl.removegrain((width(c)>1100) ? 20 : 11),U=3,V=3)
    DD = shrpD.repair(dblD,13)
    return dbl.mt_adddiff(DD,U=3,V=3)
    Not quite, because the first 'return' would effectively end the script.
    To get the effect you want, you would have to replace the 1st and 2nd 'return's by 'c =' and remove the 3rd one altogether.

    @unclescoob
    For documentation on the form of Avisynth user functions (ie those written in the scripting language), see
    http://avisynth.org/mediawiki/User_defined_script_functions
    Last edited by Gavino; 22nd Feb 2012 at 13:19.
    Quote Quote  
  25. Banned
    Join Date: Oct 2004
    Location: New York, US
    Search Comp PM
    -30-
    Last edited by sanlyn; 21st Mar 2014 at 21:17.
    Quote Quote  
  26. Originally Posted by unclescoob View Post
    It fails to explain how to import the function
    It's assumed you know that because it's not specific to that particular script. It's the same for all AVS scripts. It's in the AviSynth documentation.

    Originally Posted by unclescoob View Post
    and THEN, type the script.
    Because that is not particular to using McTemproralDenoise(). All scripts need to typed. It's described in the AviSynth documentation.

    Originally Posted by unclescoob View Post
    It also doesn't tell you that you need to put the fft3d.dll in your System32 folder.
    Because that's not a part of McTemporalDenoise(), it's part of fft3dfilter. It's in the fft3dfilter documentation.

    Originally Posted by unclescoob View Post
    It doesn't give you a step by step guide.
    Of course not. Do you expect every advanced filter writer to give you a full tutorial on how to use AviSynth? Do you expect every novel writer to teach you the alphabet, basic words, sentence structure, etc. first?
    Quote Quote  
  27. Banned
    Join Date: Oct 2004
    Location: New York, US
    Search Comp PM
    -30-
    Last edited by sanlyn; 21st Mar 2014 at 21:17.
    Quote Quote  
  28. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    sanlyn, I know you explained this to me, man. READ!!! I'm talking about the actual page for McTemporalDenoise. I never said that it wasn't explained to me HERE at Videohelp.com
    Quote Quote  
  29. Member
    Join Date: Dec 2010
    Location: New York
    Search Comp PM
    Look, I'm exhausted. I'll check into this tomorrow. I'll keep you guys posted. G'nite.
    Quote Quote  
  30. Member 2Bdecided's Avatar
    Join Date: Nov 2007
    Location: United Kingdom
    Search Comp PM
    Originally Posted by jagabo View Post
    Of course not. Do you expect every advanced filter writer to give you a full tutorial on how to use AviSynth? Do you expect every novel writer to teach you the alphabet, basic words, sentence structure, etc. first?
    I was going to write a really sarcastic reply to unclescoob - because I started with the basic documentation with AVIsynth, worked through it, and have always got on fine. It taught me all these things, and quite quickly too - what I mean is, there wasn't much reading involved.

    But that was years ago. It's moved to the mediawiki since then. That Basic Documentation is still linked and, though it's a good start...
    http://avisynth.org/mediawiki/Main_Page#Usage
    ...it's now out of date in some ways. More importantly, it seems to be in a different order than I remember it, and so it doesn't easily explain all these issues before throwing you at external filters. The syntax and FAQ sections further down the page do better, but it's too late by then.

    As it's a wiki, I suppose someone should fix it.

    Somebody else, I mean.

    Cheers,
    David.
    Quote Quote  



Similar Threads