VideoHelp Forum

Our website is made possible by displaying online advertisements to our visitors. Consider supporting us by disable your adblocker or Try ConvertXtoDVD and convert all your movies to DVD. Free trial ! :)
+ Reply to Thread
Page 2 of 4
FirstFirst 1 2 3 4 LastLast
Results 31 to 60 of 96
Thread
  1. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Well, it wasn't as terrifying as it seemed at first. I have QTGMC 3.32 working with Avisynth (at least to the point where it could open your script). I also educated myself about what AviSynth is in the first place, which seems like a rather reasonable move. But, you know, I had to see for myself what the filter did before getting my feet in the mud...

    Originally Posted by LMotlow View Post

    Programs like StaxRip and MeGUI that use Avisynth internally have customized their setup for their own use -- which might not always agree with the current state of a user-installed Avisynth setup. Also, the plugin support packages for QTGMC will differ for different versions of QTGMC. To date, the "safest" version of QTGMC.avsi is the "original" version 3.32.
    Ok, so I checked the StaxRip .avsi file and it says it's "QTGMC 3.358, by Vit, 2012, 2018 mod by A.SONY". So that means I have both versions running separately now, one with AviSynth and this modded version with StaxRip. I'll check later, I think I can send my own parameters to override whatever comes defaulted in StaxRip's QTGMC profiles (if I want to try specific things like the noise reduction stuff I mentioned earlier). But in time (and if your patience doesn't run out) I might be able to do my tests direcly changing the script, or at least better understand how exactly StaxRip is applying the filter.

    Thanks a lot once again for your support!
    Last edited by MGRV; 14th Dec 2018 at 01:04.
    Quote Quote  
  2. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Everyone feels like they're getting into unchartered territory when it comes to Avisynth and its maze of filters. Somehow even a klutz like me makes it through.

    I have some QTGMC 3.3xx versions in separate plugin folders, and even some ancient plugins for scripts that go back a few years. It's not that much of a headache to use LoadPlugin() and Import() to pull them out of their home folders in a script, as I keep up a trove of text files with potboiler text that I just paste into a script. There's also a text file of pre-typed statements and very short routines that I've copied from forum examples.

    You can also get some quick answers by using Google to get into the Avisynth wiki pages. Go to Google search and enter "Avisynth" followed by a function name or command such as "Crop" (which connects you to the wiki page at http://avisynth.nl/index.php/Crop). Avisynth also installs its own Help. if you haven't found it yet, go into your program listings in the Start menu, find the Avisynth group, open the group and click on "Avisynth documentation". I find the wiki pages often have more info and more pictures to help non-geeks like myself.

    Somewhere in that QTGMC .zip package there's an html called "Instructions.html" that is the basic QTGMC documentation. I say "basic" but it does indeed look complicated. A lot of it escapes most of us, but browsing it will give you a pretty good idea of what can be done. It will make the preset settings look very handy indeed. And if you want to know what the presets set up, look at the first few hundreds lines of the".txt" version of QTGMC that's in that .zip package. Open it in Notepad, expand Notepad to full screen, and turn off Word Wrap. What you find can set you back at first, but it's a real eye opener. And if anyone asks, the QTGMC script has 964 lines in it.

    It's a good thing most Avsiynth plugins aren't killers like QTGMC. But it does give you an appreciation for the sophistication behind some of this stuff and why most "editors" just don't cut the mustard when it comes to special purpose stuff like Avisynth.

    The latest version of QTGMC is 3.358s and listed in the wiki page at http://avisynth.nl/index.php/QTGMC. On that page there's a table of links to support files that you can click on....but give yourself a day or so if you really want that version, because that table looks like a convenience but clicking on each link takes you into an almost surreal landscape of more links and sublinks and even more support files than the neat table presents at first. Sometimes you find a link in Doom9 that claims to be the latest "complete" package of plugins but the package is usually a mess that you have to sift through. And wouldn't you know it, in the next post in the same forum you'll find an "update" to the updated supplements and corrections (don't you just love it?).

    It's a good thing that the majority of commonly used filters don't get that ornery. You come to Avisynth at a time when the poor thing is in a chaotic state of transition, with new whiz-bang versions of stuff coming out every 15 minutes. That's why most of us poor souls stick with one version and tread carefully into the new ones until the wrinkles get ironed out.
    Last edited by LMotlow; 14th Dec 2018 at 05:50.
    - My sister Ann's brother
    Quote Quote  
  3. See the QTGMC docs for instructions on retaining noise:

    # Retain Noise / Grain
    QTGMC( Preset="Slower", NoiseProcess=1, NoiseRestore=1.0, Sigma=2.0 ) # Retain *all* the noise / fine detail of a less noisy source
    QTGMC( Preset="Slower", NoiseProcess=1, GrainRestore=1.0, Sigma=2.0 ) # Similar to above but only keep the more "stable" noise elements (depends on TR2)
    Quote Quote  
  4. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by LMotlow View Post
    Everyone feels like they're getting into unchartered territory when it comes to Avisynth and its maze of filters.
    Oh, I was lost already before even stepping one foot on AviSynth, this is just the icing on the cake!

    Originally Posted by LMotlow View Post
    The latest version of QTGMC is 3.358s and listed in the wiki page at http://avisynth.nl/index.php/QTGMC. On that page there's a table of links to support files that you can click on....but give yourself a day or so if you really want that version.
    I think I'll try getting used to how things work before getting too ambitious with later versions, but just to know, would there be any difference in terms of final results between the different versions, or is it more a case of adding functionalities, compatibility, etc.? So far, all I've done is use whatever "QTGMC Medium" does in StaxRip. I mentioned there are some things I'd like to try but I hope I didn't sound too pretentious. I don't think I'll be able to touch that code in a long while and it looks like a steep learning curve is looming in the horizon, but I did see some script recommendations when googling about noise reduction and its possibilities and it sparked my curiosity. I've noticed some detail did get lost in the video when compared to the original and, while I'm more than pleased with the result and still maintain that it looks better than the original both in TV and my PC, I'd like to give it a try and tweek its settings a bit before making the final call.

    Originally Posted by jagabo View Post
    See the QTGMC docs for instructions on retaining noise:

    # Retain Noise / Grain
    QTGMC( Preset="Slower", NoiseProcess=1, NoiseRestore=1.0, Sigma=2.0 ) # Retain *all* the noise / fine detail of a less noisy source
    QTGMC( Preset="Slower", NoiseProcess=1, GrainRestore=1.0, Sigma=2.0 ) # Similar to above but only keep the more "stable" noise elements (depends on TR2)
    Thanks, I'll check that out. Honestly, I haven't had the courage to check the code yet, but I will. And you'll probably know, because I'll surely come back with questions and screams of despair.
    Quote Quote  
  5. Originally Posted by MGRV View Post
    Honestly, I haven't had the courage to check the code yet, but I will. And you'll probably know, because I'll surely come back with questions and screams of despair.
    You don't have to 'check out' any code. The included HTML doc is one of the better-written ones, with all settings explained clearly and with examples for their use. Docs for some filters are either nonexistent or might as well be gibberish. Now that you've gotten it to run, it should be clear sailing, at least for QTGMC. No small accomplishment.
    Quote Quote  
  6. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    You don't have to 'check out' any code. The included HTML doc is one of the better-written ones, with all settings explained clearly and with examples for their use. Docs for some filters are either nonexistent or might as well be gibberish. Now that you've gotten it to run, it should be clear sailing, at least for QTGMC. No small accomplishment.
    I thought I was supposed to! That tells you how clueless I am, though I spent some more time learning how AviSynth works and I think the pieces are slowly starting to fit. The HTML doc looks impressive, it'll be next on my list once I feel I've left my inaugural achievement a bit further behind (of course I'm talking about "Version()").
    Quote Quote  
  7. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    So, I'm at this stage:

    Originally Posted by jagabo View Post
    DgIndex/Mpeg2Source/AviSynth to access the VOB files and to perform any filtering [...]
    I still have no idea how I'll handle the process after deciding on the filters, but that'll come later.

    I created a d2v file using DGIndex and that is the file I'm using in my script. Is that how I'm supposed to do it? Am I fine just doing Save Project in DGIndex or is there any use for me to do Save Project and Demux Video? What is a good method to preview the output? I'm using VirtualDub (just because I read that's what many people use, and I also occasionally open the script in PotPlayer), but I'm still struggling to find a proper way to easily compare the outputs with different settings. StaxRip came with a setting that just said QTGMC Medium. Is it safe to assume that would be the same as doing QTGMC( Preset="Medium" ) or could it be customized?

    Sorry for all the questions, I'm still all over the place trying to figure things out, but hey, at least I'm getting somewhere (I think). Thanks a lot for your support!
    Quote Quote  
  8. Originally Posted by MGRV View Post
    Is that how I'm supposed to do it?
    Yes.
    Am I fine just doing Save Project in DGIndex
    Yes, you just need the D2V file and the audio. You will almost never need the M2V. Just don't delete the VOB files until you're done with with the D2V.
    What is a good method to preview the output?
    Open your script in VDub (File->Open Video). A sample and very basic script might go:

    LoadPlugin("H:\AVISynth\dlls\DGDecode.dll")
    MPEG2Source("Movie.d2v")


    I use LoadPlugin lines in my scripts. You shouldn't need one for DGDecode if it's in your AviSynth Plugins folder. You can also open scripts in players that accept AviSynth scripts as Input. I can use MPC-HC if I want to "play" a script.
    ...but I'm still struggling to find a proper way to easily compare the outputs with different settings.
    AvsPmod is probably the closest thing to a GUI that AviSynth has. Some people swear by it, but I haven't any use for it. I make a change in a script and hit F2 for it to reload a script in VDub. Or you can interleave frames or show videos side-by-side with and without a filter. Also in scripts.
    Is it safe to assume that would be the same as doing QTGMC( Preset="Medium" )
    You could always try it both ways and find out for yourself. You won't break anything if one or the other doesn't open in VDub.
    Quote Quote  
  9. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    You could always try it both ways and find out for yourself.
    Do you mean visually comparing the output for my script vs. the encoded StaxRip file? I'm not being able to spot many differences, maybe I need to get used to it, train my eyes to look for certain things, I don't know. I haven't had the time to experiment much with the settings yet, so I'll keep looking. I thought there might be a way to know whether StaxRip is using the same settings. There probably is one (checking its customized script) but I won't even go there.

    This whole deal of wanting to play around with the settings was triggered when I noticed a small detail getting a bit lost in the filtered video as compared to the original (well, depending on where you play the original and how it is deinterlaced, I suppose) and to some other deinterlaced same-rate tests I did. It's a very tiny flying object (a tooth -I kid you not) that is visible for a few frames, and it's much harder to spot with most bobbed versions, QTGMC's included. I can live with that, it's a reasonable trade-off for the much better fluidity. But it was all I needed to push my curiosity a bit further. I had been shunning away from AviSynth for some time and this gave me an excuse to make it seem less like a hassle. I made an uneducated guess that it could be due to too much smoothing, but what do I know. Anyway, I can't use that criterion (flying tooth) to judge because playback in VideoDub or PotPlayer is slow enough that you can clearly see it. So I'll keep looking for less gruesome details.
    Quote Quote  
  10. Originally Posted by MGRV View Post
    I thought there might be a way to know whether StaxRip is using the same settings.
    Filters > Edit Code

    An example of Interleaving the result of two filters:

    Code:
    Mpeg2Source("filename.d2v")
    
    v1 = QTGMC(preset="fast").Subtitle("fast")
    v2 = QTGMC(preset="slow").Subtitle("slow")
    
    Interleave(v1, v2)
    or:

    Code:
    Mpeg2Source("filename.d2v")
    
    v1 = Yadif(mode=1).Subtitle("yadif")
    v2 = QTGMC(preset="fast").Subtitle("qtgmc")
    
    Interleave(v1, v2)
    You can then step through the video frame by frame in an editor (like VirtualDub) to compare the two. In VirtualDub you can use the right arrow key to step forward one frame, and the left arrow key to step backward one frame -- ie, you can flip back and forth between a single frame of the two encodings. If you use a screen magnifier (like Windows' built in magnifier) you can see minute differences. You can do this with almost any filter or string of filters.

    Sometimes you need to see shots side by side rather than interleaved. You can use StackHorizontal() for this (or StackVertical() if you want top/bottom):

    Code:
    Mpeg2Source("filename.d2v")
    
    v1 = QTGMC(preset="fast").Subtitle("fast")
    v2 = QTGMC(preset="slow").Subtitle("slow")
    
    StackHorizontal(v1, v2)
    Again open that in VirtualDub and view the result.

    If you want to compare two videos that you've already encoded:

    Code:
    v1 = LWlibavVideoSource("filename1.ext").Subtitle("filename1")
    v2 = LWlibavVideoSource("filename2.ext").Subtitle("filename2")
    
    Interleave(v1, v2)
    Note that the two videos must have the same frame size, frame rate, and color format. Also, LWlibavVideoSource() isn't included in AviSynth. You'll need to download the LSMASH package and install it. Or use some other source filter that works with the particular videos. I don't recommend using DirectShowSource() as it is often not frame accurate when seeking and results may vary depending on what DirectShow components you have installed.

    Sometimes I like to compare three videos, the original and two encoded videos:

    Code:
    v0 = LWlibavVideoSource("original.ext").Subtitle("original")
    v1 = LWlibavVideoSource("filename1.ext").Subtitle("encoding 1")
    v2 = LWlibavVideoSource("filename2.ext").Subtitle("encoding 2")
    
    Interleave(v0, v1, v2, v0)
    If you open a script like this in VirtualDub you can use the left/right arrow keys to swap back and forth between the original and filename1, or filename1 and filename 2, or filename2 and the original.
    Quote Quote  
  11. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by jagabo View Post
    Filters > Edit Code
    Well, that's embarrassing, I should've figured it out myself. In my defense, there are just too many new things to learn and software to deal with! So, yes: StaxRip is just applying the Medium preset. And I suppose now that I know this, I can specify whatever settings I'm happy with after playing around with my script, if I just want StaxRip to do the encoding job for me (any advice against that?).

    Originally Posted by jagabo View Post
    An example of Interleaving the result of two filters:
    Thanks! That is exactly what I needed. By the way, I tried your fast vs. slow example in my video and, interestingly enough, the "test tooth" looks whiter (and therefore more easily noticeable) in the fast preset than the slow.

    I will probably try LWlibavVideoSource() later, too. It could come handy. Is this where to get that package from? https://www.dropbox.com/sh/3i81ttxf028m1eh/AAABkQn4Y5w1k-toVhYLasmwa?dl=0
    Quote Quote  
  12. Originally Posted by MGRV View Post
    I tried your fast vs. slow example in my video and, interestingly enough, the "test tooth" looks whiter (and therefore more easily noticeable) in the fast preset than the slow.
    Fast performs less noise and edge filtering which may help retain small details.

    Originally Posted by MGRV View Post
    I will probably try LWlibavVideoSource() later, too. It could come handy. Is this where to get that package from? https://www.dropbox.com/sh/3i81ttxf028m1eh/AAABkQn4Y5w1k-toVhYLasmwa?dl=0
    That should work. You can use LSMASHVideoSource() for MP4 files, LWlibavVideoSource() for other types of files. Be aware that those source filters only get the video. If you want to add audio too you need a sequence like:

    Code:
    v = LWlibavVideoSource("filename.ext")
    a = LWlibavAudioSource("filename.ext")
    AudioDub(v,a)
    or

    Code:
    AudioDub(LWlibavVideoSource("filename.ext"), LWlibavAudioSource("filename.ext"))
    Quote Quote  
  13. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    Or you can interleave frames or show videos side-by-side with and without a filter. Also in scripts.
    Now, after trying jagabo's examples, I get what you meant. Sorry, I'm too much of a newbie to follow at times.


    Originally Posted by jagabo View Post
    Fast performs less noise and edge filtering which may help retain small details.
    Yeah, I thought at first that the slower the preset, the longer it'd take to calculate, and therefore the more accurate (or something like that). But I see it's actually different settings altogether, so it makes sense. I guess a possible drawback would be some residual shimmering if the filtering is insufficient. I'll make some tests later in segments with lots of motion and see how that goes. Is there any advice against faster settings in terms of quality?

    Originally Posted by jagabo View Post
    You can use LSMASHVideoSource() for MP4 files, LWlibavVideoSource() for other types of files. Be aware that those source filters only get the video.
    Thanks. I totally forgot about audio! I'm not getting sound either when using the d2v file, so I suppuse I need to use AudioDub as well with the audio track generated by DGIndex? I'm assuming I'll only need to deal with audio if I want to encode my video direcly using my script (which I have no idea how to do at this point) instead of testing with my script and encoding with StaxRip. But I have to admit getting control is addictive, even if I don't know what to do with it yet.
    Quote Quote  
  14. Originally Posted by MGRV View Post
    Now, after trying jagabo's examples, I get what you meant. Sorry, I'm too much of a newbie to follow at times.
    No problem. I figured you understood and if you wanted more detail on how to do those things you'd ask. jagabo was more thorough and explained without being asked. You're making remarkable progress, and you didn't start easy and work your way up to difficult, but went straight for the hard stuff. By the way, you can also do your temporal cleaning within QTGMC, with DFTTest being a pretty good cleaner within QTGMC. I do temporal filtering outside of QTGMC but you won't have to set up anything else to use it within QTGMC. You might lose your flying teeth in the process.

    ...so I suppuse I need to use AudioDub as well with the audio track generated by DGIndex?
    I don't. I join it back with the video during encoding or during muxing. I work on my audios anyway, and in Audacity, not AviSynth. How you handle the audio might depend on how you encode and mux but you don't necessarily have to handle it in the script.
    Quote Quote  
  15. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    No problem. I figured you understood and if you wanted more detail on how to do those things you'd ask. jagabo was more thorough and explained without being asked.
    There's so much new information trying to find its way into my head that at times I just let some of it sink in before opening even more battlefronts with further questions. Then I'll read the older posts again and find out they make more sense now (except mine which are rightfully embarrassing).

    Originally Posted by manono View Post
    You're making remarkable progress, and you didn't start easy and work your way up to difficult, but went straight for the hard stuff.
    Thanks, I don't know if that was a smart approach, but it probably wouldn't have happened any other way. And it definitely couldn't have happened without the great people in this forum. Your patience and willingness to help out is beyond amazing. Especially because I'm fully aware that I'm asking a lot of dumb questions that have been probably asked a million times. It's all out there, but as a newbie information gets overwhelming easily. So it really helps to have knowledgeable people who can point you in the right direction.

    Originally Posted by manono View Post
    By the way, you can also do your temporal cleaning within QTGMC, with DFTTest being a pretty good cleaner within QTGMC. I do temporal filtering outside of QTGMC but you won't have to set up anything else to use it within QTGMC.
    Speaking of being a newbie, I have to admit I'm not just AviSynth-newbie but video-newbie altogether (as if you hadn't noticed). I have a bare idea of what temporal cleaning must be, but that's about it. As far as the final quality of my videos is concerned, I might as well use any preset because I don't really know what I'm doing. But it's kept me interested enough to try to learn a bit about it and try things out. I've also seen some scripts recommended here and there that I might try. I've been a bit busy these days but hopefully tonight I'll spend some more time on it.

    Originally Posted by manono View Post
    You might lose your flying teeth in the process.
    I'm more concerned about losing my mind!

    Originally Posted by manono View Post
    I join it back with the video during encoding or during muxing. I work on my audios anyway, and in Audacity, not AviSynth. How you handle the audio might depend on how you encode and mux but you don't necessarily have to handle it in the script.
    That's another question I was holding back. I've been copying the original AC3 track as-is in my tests, mainly because I was focused on the video aspect. Would you recommend re-encoding the audio? I don't know if it makes much of a difference compression-wise, but maybe there are technical reasons?
    Quote Quote  
  16. Originally Posted by MGRV View Post
    Would you recommend re-encoding the audio?
    Not if it's good, no. Maybe the container requires something other than AC3 audio, I don't know. I work on old films and all the audios are crap so I do what I can to improve them.
    Quote Quote  
  17. Originally Posted by MGRV View Post
    I have a bare idea of what temporal cleaning must be, but that's about it.
    At its heart noise reduction involves (smartly) blending multiple pixels together. Spacial noise reduction works on individual frames. Temporal noise reduction works across multiple frames (time). Temporal/spacial noise reduction does both (though sometimes it's just called temporal noise reduction). QTGMC's denoising is temporal/spacial (3D: width, height, time).
    Quote Quote  
  18. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    Originally Posted by MGRV View Post
    Would you recommend re-encoding the audio?
    Not if it's good, no. Maybe the container requires something other than AC3 audio, I don't know. I work on old films and all the audios are crap so I do what I can to improve them.
    Got it. I don't have any container preferences. I was thinking either MKV or MP4 but I can't justify my choice, except by saying 'they seem to work for most people'. I won't mess with the audio (no, I'm not concerned about losing any high-frequency hiss made by the flying tooth, I'm just fine with the source).

    Originally Posted by jagabo View Post
    At its heart noise reduction involves (smartly) blending multiple pixels together. Spacial noise reduction works on individual frames. Temporal noise reduction works across multiple frames (time). Temporal/spacial noise reduction does both (though sometimes it's just called temporal noise reduction). QTGMC's denoising is temporal/spacial (3D: width, height, time).
    That's more or less what I gathered. Spatial noise reduction would compare pixels of a frame to their adjacent pixels, while temporal noise reduction does it with pixels in similar locations, across previous and subsequent frames. Is that fairly close? I wasn't even aware of what type of noise reduction QTGMC did, though I was pretty sure I read that it did 3D.

    What disconcerted me is that manono mentioned temporal cleaning as a separate standard process. Would that mean doing further temporal denoising after what QTGMC does by default? Or specifically disabling whatever settings handle temporal denoising first, and dealing with it later (either within QTGMC or outside it)?

    By the way, I've been playing around with multiple settings and yet the biggest 'tooth visibility factor' seems to be the preset speed, more than any other setting I've fiddled with. I'm a bit biased against fast settings, as they're usually supposed to yield lower quality results, so I'm looking for alternatives. But I must say that so far I've been using the tooth as a familiar reference, but I'll do some encodes later so I can check the results at regular playback speed in different parts of the video. So far my plan is to use whatever settings I try on my scripts as input in StaxRip's QTGMC filter settings, basically because I don't know how to do it otherwise. I know there are more direct ways to encode the output of my scripts and it must be better to do it that way. I don't know if it'd be convenient to learn about it at this point (unless the different versions of QTGMC in AviSynth vs. StaxRip pose a problem). I wouldn't know what to do with the extra freedom it gets me, anyway. I'm sure I'll want to learn about it eventually, though.
    Last edited by MGRV; 18th Dec 2018 at 00:25.
    Quote Quote  
  19. Originally Posted by MGRV View Post
    What disconcerted me is that manono mentioned temporal cleaning as a separate standard process.
    It does some small amount by default. You can strengthen that, or disable it entirely. I mentioned doing temporal cleaning within QTGMC as an easy thing to set up, so you don't have to learn to use something as difficult as MCTemporalDenoise.
    Quote Quote  
  20. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    Originally Posted by MGRV View Post
    What disconcerted me is that manono mentioned temporal cleaning as a separate standard process.
    It does some small amount by default. You can strengthen that, or disable it entirely. I mentioned doing temporal cleaning within QTGMC as an easy thing to set up, so you don't have to learn to use something as difficult as MCTemporalDenoise.
    It had never crossed my mind that I would need to do temporal cleaning, until you mentioned it! Now, seriously, I need to investigate more to get familiarized with what each type of denoising method does (as in, detecting the type of results they provide, the defects they fix, their possible drawbacks). I have no way to know at this point what my source would really need. That's why I said I'd probably be better off picking any preset and going with it, as far as my original needs are concerned (they are preset for a reason). I'm not aiming for any unfathomable high quality results and I'll probably only make things worse by twitching things around too much by trial and error. But it's fun to try, and a good way for me to lose my fear for AviSynth.
    Quote Quote  
  21. As I understand it, the denoising you get with QTGMC's presets is just a byproduct of it's attempts to reduce buzzing edges from its deinterlacing. It's not part of the explicit denoising it can perform. The easiest way to enable it's noise reduction is with the EZDenoise setting:

    Code:
    QTGMC(preset="fast", EZDenoise=2.0, DenoiseMC=true)
    The higher you set EZDenoise the more noise reduction you get. But even at 2.0 you start seeing loss of detail and smearing during motion. DenoiseMC=true is "motion compensated" -- it doesn't compare pixels at the same X,Y position temporally, but it when things are moving it compensates for the motion. For example, in a panning shot where the next frame shifts 4 pixels to the left it compares pixels 4 frames to the left rather than at the same location in the current frame. That probably won't help with your disappearing tooth -- it can't catch very small objects.

    I usually prefer to use a pure temporal denoiser like TemporalDegrain(). You usually get less loss of detail and less smearing during motion. That filter is also motion compensated. But using QTGMC() and TemporalDegrain() together leads to very slow processing.
    Quote Quote  
  22. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by jagabo View Post
    As I understand it, the denoising you get with QTGMC's presets is just a byproduct of it's attempts to reduce buzzing edges from its deinterlacing. It's not part of the explicit denoising it can perform.
    Yes, that's more or less what I understood from reading a gazillion forum threads. I think I read that it also did some extra noise reduction not related to the deinterlacing process, at least in the slower presets, but I could be wrong about this.

    What's funny is, I tried the code you suggested from the documentation to keep noise/grain, I tried SourceMatch, Lossless, GrainRestore, etc. in different combinations, and using the "fast" preset seems to be the only thing that makes a clear difference. Granted, I didn't read too much into it to make more educated adjustments, but rather kept shooting in the dark, trying out various combinations of those settings and hoping for the best. Maybe it's not even noise reduction what's causing the 'tooth decay', but some other effect of pixel blending. I'll need to have a look and compare 'fast' with other presets, maybe I can single out one setting that does the trick.

    Originally Posted by jagabo View Post
    I usually prefer to use a pure temporal denoiser like TemporalDegrain(). You usually get less loss of detail and less smearing during motion. That filter is also motion compensated. But using QTGMC() and TemporalDegrain() together leads to very slow processing.
    That one is not included with QTGMC, right? I've never processed video before (I was sort of drawn to it by the need to deinterlace) so I'm not familiar with the process. Is temporal denoising a standard thing one does in all types of sources? Is it something to 'clean up' certain types of sources? Is it particularly good for deinterlaced material? I assume great harm can be done applying a filter that's uncalled for, so I'd rather ask. I know I can always see it for myself, but I don't trust my eyes anymore. Give them teeth and they will let slide all sort of artifacts.
    Quote Quote  
  23. TemporalDegrain() is not a part of QTGMC. http://avisynth.nl/index.php/Temporal_Degrain

    You should only use filters when they are called for. When I use noise reduction filters I usually stick with very mild settings (most sources I work with don't have a lot of noise). You should experiment for yourself with different filters. Use short samples (1 minute?) so you don't have to wait all day for each encoding.
    Quote Quote  
  24. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by jagabo View Post
    TemporalDegrain() is not a part of QTGMC. http://avisynth.nl/index.php/Temporal_Degrain

    You should only use filters when they are called for. When I use noise reduction filters I usually stick with very mild settings (most sources I work with don't have a lot of noise). You should experiment for yourself with different filters. Use short samples (1 minute?) so you don't have to wait all day for each encoding.

    Well, for starters, I don't know if my source really needs denoising (let alone which type). I don't quite exactly identify what qualifies as 'noise', though I noticed QTGMC produced a much smoother-looking image, so I assumed it had removed some. If anything, the infamous vanishing tooth led me to think there might have been too much noise reduction, though I'm not so sure about that anymore, per my latest tests.

    StaxRip has DFTTest as a filter option, so I can get it to apply it to my encodes if I find some interesting results while playing around with my AviSynth script. It doesn't have Temporal Degrain (there's one 'MCTemporalDenoise' but I suppose they're unrelated).

    What would be a proper way to cut those short samples? I imagine if I could encode my script's output directly, I'd just have to add a trim function in the beginning. I see VideoDub has trimming options too, but I can only find an option to save as AVI or export as raw video (it also has the option to use external decoders but there's none loaded).
    Quote Quote  
  25. Originally Posted by MGRV View Post
    What would be a proper way to cut those short samples?
    If the source is a DVD, you open a VOB in DGIndex, mark off a section, and then File->Save Project and Demux Video. Upload the resulting M2V.

    Temporal denoisers are most commonly used against film grain and noise, and against the noise common in VHS captures.
    Quote Quote  
  26. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    Originally Posted by MGRV View Post
    What would be a proper way to cut those short samples?
    If the source is a DVD, you open a VOB in DGIndex, mark off a section, and then File->Save Project and Demux Video. Upload the resulting M2V.
    Sorry, I should have known that already. I forgot I'm already using DGIndex's output in my AviSynth script. But what did you mean by upload the resulting M2V? Shouldn't I reference the D2V file in my script (with MPEG2Source)?

    Originally Posted by manono View Post
    Temporal denoisers are most commonly used against film grain and noise, and against the noise common in VHS captures.
    I know the only way to judge is to try it and analyze the results, but at least theoretically, would that apply as well to commercial DVDs made from analog sources?
    Quote Quote  
  27. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Originally Posted by MGRV View Post
    What would be a proper way to cut those short samples?
    https://forum.videohelp.com/threads/359295-Record-without-interlacing?p=2272359&viewfu...=1#post2272359

    Originally Posted by MGRV View Post
    But what did you mean by upload the resulting M2V? Shouldn't I reference the D2V file in my script (with MPEG2Source)?
    An M2V produced by DGIndex is a video-only portion of your source. The D2V project file is an index to your source. We wouldn't be able to use that index because it's a reference to your source only. In fact a D2V is a text file -- you can open it in Notepad if you want to see what's in there.

    If you like you can also submit the sample audio file, but you'll likely have to .zip it because not all file types are allowed. That would allow us to demonstrate the different kinds of code used for remuxing audio by way of the script. When using certain filters there are also times when you have to restore the original audio if the repair filter affects the audio track. Such filters would be those that replace original frames with repaired frames (ReplaceFramesMC and ReplaceFramesSimple would be two examples).

    Originally Posted by MGRV View Post
    Originally Posted by manono View Post
    Temporal denoisers are most commonly used against film grain and noise, and against the noise common in VHS captures.
    I know the only way to judge is to try it and analyze the results, but at least theoretically, would that apply as well to commercial DVDs made from analog sources?
    Yes. Commercial DVD's tend to have fewer defects, but you'd be surprised at how sloppy commercial work can be sometimes.
    - My sister Ann's brother
    Quote Quote  
  28. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    I used DGIndex to cut a new D2V file with a short sample that I can now open with StaxRip (instead of the D2V of the whole video), which is how I'm encoding (I know there must be better / simpler ways but I don't know them yet). You had already taught me how to produce a D2V file, but I just thought in this case I had to trim the one I was already using, as opposed to creating a new sample from scratch.

    Originally Posted by LMotlow View Post
    An M2V produced by DGIndex is a video-only portion of your source. The D2V project file is an index to your source. We wouldn't be able to use that index because it's a reference to your source only.
    I think there's been some confusion. I was talking about doing as jagabo suggested: making short sample clips so that I can encode my tests quickly without having to wait forever (if I want to look at the results in pieces of video at regular playback speed as opposed to frame by frame with VirtualDub). The part about uploading the M2V is what confused me. I guessed manono meant to the forum, but figured I could be misunderstanding something. Don't get me wrong, it would be great if you want to take a look at the source as you'll probably be able to tell me much more about what I'm dealing with. I'll go ahead and upload the clip I made. I don't know if it's a good sample in terms of motion and other things to look for (it may be too short, too), so let me know and I can maybe find something better. I should warn you, the video contains violent images, although I suppose you know teeth don't fly spontaneously.

    Originally Posted by LMotlow View Post
    If you like you can also submit the sample audio file, but you'll likely have to .zip it because not all file types are allowed. That would allow us to demonstrate the different kinds of code used for remuxing audio by way of the script.
    Ok, I'll do that as well.

    Originally Posted by LMotlow View Post
    Commercial DVD's tend to have fewer defects, but you'd be surprised at how sloppy commercial work can be sometimes.
    I believe you. I've read quite a few horror stories about commercial DVDs while lurking in this forum. And these I'm working on don't look particularly top-notch.
    Image Attached Files
    Quote Quote  
  29. Originally Posted by MGRV View Post
    I think there's been some confusion.
    Perhaps. Both LMotlow and I were instructing you on how to create M2V video samples for upload here so anyone could have a look at your source and make suggestions. If what you're really interested in knowing is how to encode a short section of your source, rather than create a new D2V for that section better would be to just Trim off the part you want.

    For example, by adding:

    Trim(1000,2000)

    at the bottom of your script, you'll encode frames 1001-2001. AviSynth frame counts begin with zero.

    I've read quite a few horror stories about commercial DVDs while lurking in this forum.
    The retail DVDs on which I work are utter abominations which the responsible media companies should be ashamed of ever foisting onto the public. But if there are no other choices, what can one do?
    Quote Quote  
  30. Member
    Join Date
    Dec 2018
    Location
    Spain
    Search Comp PM
    Originally Posted by manono View Post
    Both LMotlow and I were instructing you on how to create M2V video samples for upload here so anyone could have a look at your source and make suggestions.
    That's what I figured. I was asking about making short samples for myself, for quick encoding. But you guys having a look at it and giving me some suggestions would be awesome, so I went ahead and uploaded the M2V (as I said, let me know if the clip is too short or no good for other reasons).

    Originally Posted by manono View Post
    If what you're really interested in knowing is how to encode a short section of your source, rather than create a new D2V for that section better would be to just Trim off the part you want.
    Yes, that's what I was trying to explain. I'm using trim already in my script to have VirtualDub only load a fragment. But I don't know yet how to encode the output of a script. So I was thinking a possible workaround would be to copy whatever settings look promising in my script to the StaxRip filters settings, in order to encode with that software. It's probably not a safe way to do it, as I'm dealing with 2 different versions of QTGMC, to begin with. If I'm forced to use StaxRip to encode, I suppose I could find a way to do the trimming there instead of loading a new D2V file, as well. I'm just beginning to understand how StaxRip runs AviSynth functions, so if I edit the filters code it runs, I might be able to add the trim there.
    Quote Quote  



Similar Threads