VideoHelp Forum
+ Reply to Thread
Page 4 of 4
FirstFirst ... 2 3 4
Results 91 to 119 of 119
Thread
  1. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    Looking at both results, I think mine looks better and I removed most grain. There's some stuff in it, but it's not that bad, considering. And not as grainy.
    Quote Quote  
  2. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Two versions are posted, both m2v about 35-MB each. Someday I'll learn to make mkv.:
    2-step version using MCTemporalDenoise and TemporalDegrain:
    http://dc540.4shared.com/download/Xl1xqWFW/MC_RG_2Step.m2v

    One .avs using MCTempralDenoise, then convert to RGB for NeatVideo:
    http://dc525.4shared.com/download/kGVrlpoF/MC_NV.m2v

    MC_RG_2Step.m2v used MCTD (Step 1) and TemporalDegrain (Step 2). I ran two successive scripts, then off to the encoder. Save Step1 as the original YV12 using Lagarith with "fast recompress" in VirtualDub. The plugins run faster as a two-step process, likely because of memory clogging ("swapping" from the two big guys, MCTemporalDenoise and TemporalDegrain). Step 1 ran about 1 fps and took 20 minutes; Step2 runs twice as fast and takes half the time. Step 1 and Step 2 scripts attached below.

    MC_NV.m2v uses MCTD and NeatVideo -- MCTD hits the artifacts NeatVideo isn't so great with, and NeatVideo for the stuff that MCTD finds difficult. Each could get similar results depending on settings. I ran them separatey, but they can run in one step by loading NeatVideo into VirtualDub and then starting the Avisynth script. Running the two concurrently will be slower than running them apart.
    The MC-NV script is attached, and a ZIP containing the .dnp and .nfp settings files for Neat Video. Neat Video's font-end config window used these settings: Video scan type=progressive, Temporal filter (radius=2, threshold=30%), Adaptive filtration turned "ON".

    Production on the source looks kinda lazy. In some shots people are blue, then green in other shots, then purple. Some shots are darker than others. I set levels to handle dark and light detail in all shots. Individual scenes could be tweaked later. That's the way it's done in labs. Many production labs, however, don't give a damn.
    Last edited by sanlyn; 23rd Mar 2014 at 12:46.
    Quote Quote  
  3. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by unclescoob View Post
    Looking at both results, I think mine looks better and I removed most grain. There's some stuff in it, but it's not that bad, considering. And not as grainy.
    No, not bad at all. But I thought you started this thread questioning the "grid" of artifacts you saw, and asked what caused them, and how to get rid of it. Voila, you now have multiple solutions. Other than the grid patterns being there, I thought you did a nice job holding onto shadow details without going into "black void".
    Last edited by sanlyn; 23rd Mar 2014 at 12:46.
    Quote Quote  
  4. You can also try filtering different parts of the picture differently. For example, use a luma mask to filter dark areas less than light areas (help retain some of the black lines in the dark blanket). Something like:

    Code:
    low=McTemporalDenoise(settings="very low", stabilize=true, deblock=false, sharp=false, enhance=true)
    high=McTemporalDenoise(settings="very high", stabilize=true, deblock=false, sharp=false, enhance=true)
    mask=ColorYUV(high, gain_y=2000, off_y=-180) #adjust mask to suit
    mt_merge(low, high, mask, true)
    MergeChroma(last,high)
    Quote Quote  
  5. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Great idea, jagabo! I've looked high and low thru forums again and again for this very idea on contrast masking. This video could use something, the dark detail looks suppressed. Maybe broadcast that way ??

    Can't tell you how many times I've cut up video into many parts to fix color/level changes. Not for everything, but stuff I want to "restore" gets the treatment. Pain in the neck.
    Last edited by sanlyn; 23rd Mar 2014 at 12:46.
    Quote Quote  
  6. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    Mask my ass. I rather do something like that in Adobe Premiere than to finagle with that nonsense. 'Da hell, I love this but I have a life too!
    Quote Quote  
  7. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Good idea, 'scoob. All you have to do is buy a copy of Adobe Premier Pro, then learn to use it. Only comes in 64-bit now, so bye-bye to your 32-bit PC. Then again, After Effects Pro offers even more of that kind of stuff. Avisynth is free, and only needs 32-bits.
    Last edited by sanlyn; 23rd Mar 2014 at 12:46.
    Quote Quote  
  8. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    And you're seriously going to tell me that an Avisynth masking script, which comes with bugs and issues, is going to surpass Premier? (not a rhetorical question, btw)
    Quote Quote  
  9. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    What bugs and issues?
    Last edited by sanlyn; 23rd Mar 2014 at 12:47.
    Quote Quote  
  10. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    Nevermind. Ok uhm....I think I'll learn mask. But seriously sanlyn, I printed the Masktools document in the avisynth page and I really cannot understand it. It is full of jargon. Why can't these people explain these filters in ways that newbies can understand it?? What...is this the chalice or some holy video grail with mystic secrets that only few can digest??

    for instance, here is a portion of jagabo's script below. But I have no idea what it does or means!! Is there a website where it explains how to use this in more reasonable terms? I'm thinking of just sticking to MCTemporal or TemporalDegrain, which automatically adjusts the masking for you based on your settings.

    mask=ColorYUV(high, gain_y=2000, off_y=-180) #adjust mask to suit
    mt_merge(low, high, mask, true)
    MergeChroma(last,high)mask=ColorYUV(high, gain_y=2000, off_y=-180) #adjust mask to suit
    mt_merge(low, high, mask, true)
    MergeChroma(last,high)

    Granted, I have come quite a way with Avisynth from, say, a year and a half ago, where I didn't even know how to start it up. I've come a bit acquainted with denoisers and stuff. But what the hell is this mt_merge, mergechroma high, gain, off, last, high....WHAT?????
    Quote Quote  
  11. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    I don't know that much about masktools myself, but I keep going back to doom9 and reading up on it. There are several years of posts in that one doom9 thread alone ! ! I know a little more about mvtools, which uses a lot of masktools in some of the discussions I'vbe seen in other threads on doom9 and here. Yeah, those are two biggies that boggle the mind. Sometimes I have to dig into wikipedia to get a handle on some of language (and get into some language of my own, slogging thru it!).

    Fortunately, what we do with videos doesn't always get into stuff that thick. But I keep at it. Little at a time, folks. That's all my aging brain can handle.

    IF you really want to get into image manipulation, though, Premier is more of an editor. You can do a few Photoshop-like masking things in it, but the real grunt work is done in After Effects. I busted the cookie jar a few months ago and found a copy of CS3 (the last 32-bit edition of AE). Installed it in September, and I'm still learning the interface(!), although I did managed to start working with color and AE's Color Finesse plugin. If I hadn't done a little study earlier in Avisynth, no way I could even get started with AE's functions.

    I get your drift, though. Some of this stuff ain't easy.
    Last edited by sanlyn; 23rd Mar 2014 at 12:47.
    Quote Quote  
  12. Code:
    # make a video called "low" that is denoised with
    # McTemporalDenoise  with the "very low" preset
    low=McTemporalDenoise(settings="very low", stabilize=true, deblock=false, sharp=false, enhance=true) 
    
    # make a video called "high" that is denoised with
    # McTemporalDenoise with the "very high" preset
    high=McTemporalDenoise(settings="very high", stabilize=true, deblock=false, sharp=false, enhance=true) 
    
    # make a high contrast alpha mask by adjusting the
    # brightness/contrast of the highly filtered video
    # see the ColorYUV() documentation
    mask=ColorYUV(high, gain_y=2000, off_y=-180) #adjust mask to suit 
    
    # if you want to see what the mask looks like un-comment the next line
    #return(mask)
    
    # Merge (blend) the low and high filtered videos
    # together using the alpha mask
    # "true" forces blending of YUV based only on
    # the luma channel of the mask
    mt_merge(low, high, mask, true) 
    
    # merge the high filtered chroma channels into the video
    # ie, only the luma channel is filtered based on the mask
    MergeChroma(last,high)
    Quote Quote  
  13. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Whew! jagabo, you know how to keep me busy. That looks very instructive, I'll give it a try. And add it to the tons of your scripts I saved (and still trying to learn from!). Thanks.
    Last edited by sanlyn; 23rd Mar 2014 at 12:47.
    Quote Quote  
  14. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    I wrote that script for jagabo back in 1995.
    Quote Quote  
  15. Originally Posted by sanlyn View Post
    Whew! jagabo, you know how to keep me busy. That looks very instructive, I'll give it a try. And add it to the tons of your scripts I saved (and still trying to learn from!). Thanks.
    The only thing tricky in the script is the generation of the alpha (transparency) mask. I wanted only the darkest areas to get the low filtered version. So I gave the video a huge contrast stretch. ColorYUV(gain_y=2000) multiplies all the Y values by roughly 8x. Since the black level in the original video was pretty high that means all the Y values were very high:

    Click image for larger version

Name:	toohigh.jpg
Views:	99
Size:	58.4 KB
ID:	11818

    So I added "off_y=-180" to subtract 180 from all the Y values:

    Click image for larger version

Name:	darker.jpg
Views:	116
Size:	38.0 KB
ID:	11819

    I got these values largely by experimentation.

    Note that within the ColorYUV filter values of Y are not limited to the 0 to 255 range. But the output of the filter will always be between 0 and 255. So after multiplying by 8 the range was 0 to 2040, subtracting 180 made the range from -180 to 1860, then finally the output was between 0 and 255. So

    Code:
     ColorYUV(gain_y=2000, off_y=-180)
    does not give the same result as

    Code:
    ColorYUV(gain_y=2000).ColorYUV(off_y=-180)
    When using an alpha mask in mt_merge() the black (Y=0) parts of the mask will show only the first video, the white parts (Y=255) will show only the second video, shades in between will give a weighted blend the two videos. So if Y=25 you get a blend of about 90 percent the first video, 10 percent the second. With Y=128 you get 50:50 mix. With Y=230 you get about 10 percent the first video, 90 percent the second. An obvious example:

    Click image for larger version

Name:	example.jpg
Views:	114
Size:	50.1 KB
ID:	11820
    Last edited by jagabo; 5th Apr 2012 at 15:25.
    Quote Quote  
  16. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    If I filter with MCTemporal or TemporalDegrain, will it perform the same function?
    Quote Quote  
  17. Originally Posted by unclescoob View Post
    If I filter with MCTemporal or TemporalDegrain, will it perform the same function?
    Yes, you can use whatever filters you want on the two videos.
    Quote Quote  
  18. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    No, what I mean is, will either of the two functions (MC or TemporalDegrain) perform the same type of masking automatically if I choose to use them?
    Quote Quote  
  19. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    No. Masking/merge is a separate operation. But you can run the plugins and other stuff in the same script.
    Last edited by sanlyn; 23rd Mar 2014 at 12:51.
    Quote Quote  
  20. Originally Posted by unclescoob View Post
    No, what I mean is, will either of the two functions (MC or TemporalDegrain) perform the same type of masking automatically if I choose to use them?
    I don't understand what you're asking.
    Quote Quote  
  21. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    McTemporalDenoise and TemporalDegrain both contain mt_masktools and MVtools in their script, don't they?

    So what are the functions of these arguments when I run a video through these scripts? Doesn't mt_masktools....uh...MASK??
    Quote Quote  
  22. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Those two functions are used in MCTD specifically for denoising and fixing various kinds of artifacts, not for masking as discussed here. MVTools and MaskTools have many uses besides this kind of masking. Re-writring the innards of MCTemporalDegrain isn't something I'd be willing to undertake.
    Last edited by sanlyn; 23rd Mar 2014 at 12:51.
    Quote Quote  
  23. Originally Posted by unclescoob View Post
    McTemporalDenoise and TemporalDegrain both contain mt_masktools and MVtools in their script, don't they?
    Yes.

    Originally Posted by unclescoob View Post
    So what are the functions of these arguments when I run a video through these scripts? Doesn't mt_masktools....uh...MASK??
    masktools is a toolbox of basic functions. Different filters will use those tools in different ways.
    Quote Quote  
  24. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by unclescoob View Post
    No, what I mean is, will either of the two functions (MC or TemporalDegrain) perform the same type of masking automatically if I choose to use them?
    You are getting confused by the fact that MCTemporalDenoise and TemporalDegrain happen to use mt_masktools internally for various functions.

    In jagabo's script, the masking is done as a separate operation independent of the denoising, and is used to combine the two clips that have been denoised wih different settings.
    The mt_merge function does that, and can be viewed as a higher quality and more efficient replacement for the standard Avisynth Overlay() function.
    Quote Quote  
  25. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    Fine.
    Quote Quote  
  26. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    jagabo, I'm looking into masktools to make a mask for an image whose darks and mids are OK, they can be manipulated, but the high end is too bright even for the usual level adjustments. Auto-exposure camera made this video in low light with one light present. Objects closest to the light look wiped out. What functions in masktools am I looking at? Looks to me like the doc says they do pretty much the same thing.
    Last edited by sanlyn; 23rd Mar 2014 at 12:51.
    Quote Quote  
  27. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    Yeah jagabo, please continue to enlighten us. So far, everything is just crystal clear. In fact, I was able to incorporate the same function WITHIN MCTemporalDenoise, so that it can do exactly the same thing AND denoise...and it worked fine for me. Here's the script:

    Code:
     
    MCTemporalDenoise(settings="high", stab=true, mask=mt_mt_merge(low, high, mask, true)
    =doublemask for extra protection merge(low, high, mask, true)
    return}
    {take back} ColorYUV(gain_y=2000, off_y=-180)
    =mergechroma(all=overlapblocks (slowly merge edges as ColorYUV(gain_y=2000).ColorYUV(off_y=-180)
    return}
    mergebothclips(sample-1 -yuv/alpha)
    chroma(=y-189)
    doubledipchromaYUV=
    =mergechroma(all=overlapblocks (slowly merge edges as ColorYUV(gain_y=2000).ColorYUV(off_y=-180)
    return}
    mergebothclips(sample-1 -yuv/alpha)
    chroma(=y-189)
    ?false?
    } return
    Last edited by unclescoob; 6th Apr 2012 at 16:18. Reason: code
    Quote Quote  
  28. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Run it on something and post some results.
    Last edited by sanlyn; 23rd Mar 2014 at 12:52.
    Quote Quote  
  29. Banned
    Join Date
    Dec 2010
    Location
    New York
    Search Comp PM
    Wow, this is an oldie but goodie. Just ran into this page looking for an old girlfriend! I gotta give that mask a try, now that I'm a bit more serious about this now than I was then. Wow...I actually typed some of that stuff? Geez! How can you people deal with that type of insolence?
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!