Log in

View Full Version : QTGMC Deinterlacing Script (v3.32)


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

aegisofrime
3rd July 2011, 17:25
For my part, any quality or/and speed improvement would be welcome. Are they possible though, or have you pushed the coding envelope as far as possible? :)

kolak
5th July 2011, 11:26
Done some testing- can run 8 instances until my CPU goes to 100% for real 12 cores. It looks like more optimal is 6 instances- combined speed is bigger than with 8. With 6 instances memory usage is 8.5GB.

Combined speed about 14 fps for 50i HD wit slow presset.

Also tried 64bit- managed to make it working but speed was crap and also it was crashing. Memory usage was jumping to 12GB, but even if I have 24GB it was crashing.


Andrew

Overdrive80
5th July 2011, 21:27
@Vit, would be possible use QTMGC for restoring framerate of video PAL to original rate NTSC. This case is for a lot PAL DVDs that I got. Thanks.

With this script obtein PAL video progressive:

QTGMC(preset="fast",FPSDivisor=2)

EDITO: With this script obtein effect ghosting...XS

Revgen
6th July 2011, 20:41
^Use SRestore for that.

Boulder
6th July 2011, 21:21
Also now would be a good time for requests.Well, a bobbing method for field-blended sources to feed to SRestore (for both detection clip and final result)..I don't know if there is a proper way to bob such sources but there's at least one soft bobber script by Didée which can be used for the detection clip. (some discussion here: http://forum.doom9.org/showthread.php?p=1413769#post1413769) I promised to get you a sample clip but it seems that I forgot that. I'll try to come up with a few good ones to see if there's anything interesting to you.

It would be nice to hear your thoughts regarding MRecalculate. It seems that it is not widely used (and the documentation really doesn't help much, at least didn't do that for me ;)) and I am not sure whether there is anything to gain from utilizing it. The hypothesis is interesting though.

-Vit-
7th July 2011, 03:50
MRecalculate is already used for motion blur refinement. In the next version it is an option for the main motion analysis. It can help to more precisely track around the edges of moving objects and hence reduce the blurring that can occur there. However, MRecalulate needs to be used with care as it can easily break good matches elsewhere, especially where there is faster motion. Part of my work to do is to determine best settings and write some custom masking/selection of MRecalculated vectors vs the original vectors.

I recall the discussions on deinterlacing field blended sources. Not sure if the appropriate approach will fit naturally into QTGMC - motion analysis of blended frames is not so effective; but I could have a look.

bob6779
7th July 2011, 11:44
Hi everyone. Could somebody help me with this clip. It's a PAL to NTSC transfer which I want to bring back to PAL.

http://www.mediafire.com/?w8axzsq55em8joo

It's my first try with encoding and avisynth and I've managed to clear up some of the shimmering with qtgmc and was able to get good motion playback with Didee's bob script, but I'm unable to remove the strange strobing seen on the roof tiles. Here's the script I'm using.


t = crop( 0, 44, 0, -44)
tgmc = t.QTGMC( Preset="placebo", SourceMatch=3, Lossless=2, Sharpness=0.5, blocksize=16, SLMode=1,SVthin=1.25,truemotion=true, MatchEnhance=0.75,TR2=3,NoiseProcess=2, GrainRestore=1.0, NoiseRestore=0.2, Sigma=2.2, NoiseDeint="Generate", StabilizeNoise=true )


bob1 = t.bob(0,0.5)
bob2 = bob1.clense(reduceflicker=false).merge(bob1,0.5)
bob3 = bob2.mt_adddiff(mt_makediff(bob2,bob2.clense(reduceflicker=false),U=3,V=3),U=3,V=3)

tgmc.vinverse.Srestore(frate=25.0,dclip=bob3)

Are there anymore parameters that I can use to retain more detail and grain or is this the best that I can achieve with this source?

Thanks in advance.

Didée
7th July 2011, 12:26
Instead of SLmode=1 (spatial), try SLMode=2 (temporal) with SLrad=3.

It (might) bring up ghosting problems again, but potentially should help with the roof strobings.

Overdrive80
7th July 2011, 12:51
Hi everyone. Could somebody help me with this clip. It's a PAL to NTSC transfer which I want to bring back to PAL.


Not recommended to crop after the deinterlacing?

Mini-Me
7th July 2011, 19:02
-Vit-, I'm currently experiencing crashes trying to reuse motion vectors from QTGMC. I'm using Avisynth 2.6 Alpha 3, QTGMC 3.32, and MVTools 2.5.11.2 beta.

Here is a pretty simple script that exhibits the behavior. If I load it up and scroll through a few dozen frames, it crashes pretty predictably for me (Virtualdub mentions an Access Violation, and AvsPMod gets a rapidly scrolling error window). If I calculate the motion vectors again myself instead of reusing the ones from QTGMC, no such crash occurs. Note that I'm transcribing my script by eye from another computer, so it might have typos.

orig = Avisource("whatever.avi").AssumeTFF()
deint = orig.QTGMC(preset = "super fast")
deintmcsoft = deint.MTemporalSoften1(QTGMC_bvec1, QTGMC_fvec1)
return deintmcsoft

function MTemporalSoften1(clip base, clip mvbw, clip mvfw)
{
super = base.MSuper(pel = 1)
backward = base.MCompensate(super, mvbw)
forward = base.MCompensate(super, mvfw)
interleaved = Interleave(forward, base, backward)
return interleaved.TemporalSoften(1, 255, 255, 28, 2).SelectEvery(3, 1)
}

(In case anyone's wondering why I'd use MTemporalSoften1 over MDegrain1 for anything, the actual use is to remove heavy flicker from parts of a helper clip in a script I'm writing. :p)

-Vit-
7th July 2011, 22:47
Overdrive: As Revgen has said, there are other scripts used for undoing such conversions (together with deinterlacing). I really don't want QTGMC to become some kind of general purpose conversion script, sorry.
____

bob6779: Very complex settings. Probably too complex. There are some interactions there that you likely don't want. For example sharpness limiting (especially temporal) will tend to remove the rather subtle results of source match. SourceMatch=3 is probably overkill. The GrainRestore value looks very high (for NoiseProcess=2) and is probably strengthening grain, although the TR2=3 setting is counteracting that to some degree. Have you tried the more straightforward EZKeepGrain setting together with NoisePreset instead of all those noise settings? That together with source match and sharpness tweaking usually gets most detail.
____

Mini-Me: Your script worked for me on a random video. It might be the hpad/vpad issue. QTGMC sets hpad/vpad in the super clip to work around a bug in MVTools 2.5.11.1 and earlier. The values set depend on resolution and may not be 8, the default. Same values must be used in your subsequent MSuper call. This requirement will be lifted in the next version. You can calculate and use the same values (see QTGMC script at line noted below), or since you are using the latest MVTools you could edit QTGMC itself (don't want to release a new version just for this):
- Around line 340, find 4 lines dealing with hpad/vpad
- Delete them and replace with:

hpad=8
vpad=8


Maybe that will fix your problem. Also watch the pel value used for the super clip, must also match what QTGMC used. It's safer to explicitly set Subpel=X in the QTGMC call to match what you use later since it varies by preset

Mini-Me
7th July 2011, 23:57
Mini-Me: Your script worked for me on a random video. It might be the hpad/vpad issue. QTGMC sets hpad/vpad in the super clip to work around a bug in MVTools 2.5.11.1 and earlier. The values set depend on resolution and may not be 8, the default. Same values must be used in your subsequent MSuper call. This requirement will be lifted in the next version. You can calculate and use the same values (see QTGMC script at line noted below), or since you are using the latest MVTools you could edit QTGMC itself (don't want to release a new version just for this):
- Around line 340, find 4 lines dealing with hpad/vpad
- Delete them and replace with:

hpad=8
vpad=8


Maybe that will fix your problem. Also watch the pel value used for the super clip, must also match what QTGMC used. It's safer to explicitly set Subpel=X in the QTGMC call to match what you use later since it varies by preset

Updating the lines in QTGMC did indeed fix the problem, so the crashes must have come from the mismatch between my MSuper and the one used to create the motion vectors. Thank you!

bob6779
8th July 2011, 10:37
Instead of SLmode=1 (spatial), try SLMode=2 (temporal) with SLrad=3.

It (might) bring up ghosting problems again, but potentially should help with the roof strobings.

Tried, but it didn't seem to make much of an impact.

Not recommended to crop after the deinterlacing?

Thanks for the tip :).

bob6779: Very complex settings. Probably too complex. There are some interactions there that you likely don't want. For example sharpness limiting (especially temporal) will tend to remove the rather subtle results of source match. SourceMatch=3 is probably overkill. The GrainRestore value looks very high (for NoiseProcess=2) and is probably strengthening grain, although the TR2=3 setting is counteracting that to some degree. Have you tried the more straightforward EZKeepGrain setting together with NoisePreset instead of all those noise settings? That together with source match and sharpness tweaking usually gets most detail.

Thanks for the hints. I'm trying ezkeepgrain and noisepreset now, but it's going too slow. Will get back once it's done.

rtjnyoface
8th July 2011, 10:57
Having some difficulty with the speed of QTGMC. I've used QTGMC for awhile now but recently something happened with megui/avisynth or something that affected the two. Anyways, I had to reinstall avisynth and megui and start all over from scratch. This wouldn't be a problem except that QTGMC isn't as fast as it was prior to my problems. I used to get very close to real time (a frame or two less) on the first pass and just slightly over half the fps using QTGMC (an i7 920 helps haha). ALL of my settings are exactly the same now that I've had to reinstall avisynth/megui but I'm getting NOWHERE close to what I was getting. I had to change my current settings to FASTER to get just 15 fps now. So, I'm wondering, am I using an MT version that isn't the same as my last? Is there something else it could be? My directories haven't changed, hardware hasn't changed. I can't think of anything else that's changed and could be making such a significant difference in speed other than my avisynth/wrong plugin versions used for QTGMC . Any help is appreciated :)

Win7
Megui 2028
QTGMC script 3.32
Downloaded and used the modified plugins package via the qtgmc thread
Fully interlaced material kept original fr rate
EXACT same settings (both qtgmc AND x264). I know because I've used them so much and made my own personal changes to the settings. QTGMC settings are basically default settings.
Avisynth 258 MT
My CPU usage seems to fluctuate a bit more using this setup. It used to stay pretty much at 99%. It's odd now though. If I use "FASTER" I get full CPU usage as I used to but if I use "MEDIUM" it hovers around 90. Don't know if that's useful but it seems to me it could be.


edit: would reverting to 3.25 possibly be one/a solution? Also, looking at my program files I do somewhat remember having both 2.5 and 2.6 avs installed.

Groucho2004
8th July 2011, 11:22
So, I'm wondering, am I using an MT version that isn't the same as my last?
...
...
Also, looking at my program files I do somewhat remember having both 2.5 and 2.6 avs installed.

We are not psychic so we don't know which version(s) you have installed or which DLL is actually being used.

Just check the file properties of your avisynth.dll in the system32 directory (or wherever it's located on Win7).

Edit: Even better - Create a small script with just this line:
Version()
and run it in your media player and tell us what it displays.

rtjnyoface
8th July 2011, 11:24
Alright. I followed the instructions in the modified plugins zip.

Changes:
- I started out getting 16 fps with full cpu usage and then for some reason it gradually went down...and down....and down to now less than 4 and still dropping (is it going to get to 0?). CPU usage at ~15% with a max of 3 threads being used.

What in the world is going on here? Attached is a picture of megui's status window, my cpu usage, and a picture of my trash can to show which files were deleted after following the instructions in the zip file. I just replaced what was there (even if it was the same file)


Whew....hope we can clear this up.

rtjnyoface
8th July 2011, 11:26
I've already listed the dll version. 2585

Ran the script. 2.58 tsp MT version 5 (mod seraphy)

We are not psychic so we don't know which version(s) you have installed or which DLL is actually being used.
Of course you don't know. I just thought that since there are so many diff versions that one worked better with qtgmc and I didn't know...


http://img69.imageshack.us/img69/9583/activityw.jpg (http://imageshack.us/photo/my-images/69/activityw.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

Groucho2004
8th July 2011, 11:27
Attachments take days to be approved here. Upload your screen shots somewhere else.

Groucho2004
8th July 2011, 11:33
I started out getting 16 fps with full cpu usage and then for some reason it gradually went down...and down...

Ha, that's what I experienced with MT versions. Some people have no problems with MT Avisynth, others (like me) never get it to work properly.

Anyway, it would help if you posted your script and the encoder settings.

rtjnyoface
8th July 2011, 11:36
# Set DAR in encoder to 4 : 3. The following line is for automatic signalling
global MeGUI_darx = 4
global MeGUI_dary = 3
SetMTMode(5,8)
LoadPlugin("C:\Program Files\Megui\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("D:\FILE LOCATION\VTS_01_1.d2v", info=3)
LoadPlugin("C:\Program Files\Megui\tools\avisynth_plugin\ColorMatrix.dll")
ColorMatrix(hints=true, threads=0)
SetMTMode(2)
QTGMC( Preset="Medium" )
SelectEven()
#deinterlace
crop( 8, 0, -6, 0)
Lanczos4Resize(704,480) # Lanczos4 (Sharp)
#denoise


Um...I don't know how to access ALL of the x264 settings in one small place (unless you can tell me) so I copied the short megui window.

program --preset slower --pass 2 --bitrate 1390 --stats ".stats" --subme 8 --output "output" "input"

I actually use subme 9. Just changed it for the testing I was doing. Ha, that basically give you nothing lol. Sorry

Groucho2004
8th July 2011, 11:43
The script looks OK but are you sure that you are using the correct DLLs for QTGMC?

I see in your screen shot a plugin directory called "2.6x Plugins" which is most likely a leftover from your 2.6 installation.

Also, Avisynth 2.5x needs a different version of masktools than 2.6x.

Just make sure that the correct plugins are located in the correct plugin directory.

Edit - It looks like you have about 4 different locations with plugins. Very messy.

rtjnyoface
8th July 2011, 11:48
are using the correct DLLs for QTGMC? Yes, I am now lol ;). I accidentally added that folder from the qtgmc zip. I just deleted it as you saw.

Also, Avisynth 2.5x needs a different version of masktools than 2.6x. mt_masktools-25.dll is in the plugin directory.

Just make sure that the correct plugins are located in the correct plugin directory. Tis why I cleaned out the folder and started over with the qtgmc zip.


Ha, that's what I experienced with MT versions. Some people have no problems with MT Avisynth, others (like me) never get it to work properly. And what's got me is that I had it working just the way I wanted it to.


4 Different locations? How do you figure that? The picture was from my trash can. All the plugins and such are in the avs folder and the system 32 folder (32b here). If I've got it wrong please let me know. Be the first thing to correct...

Groucho2004
8th July 2011, 11:59
mt_masktools-25.dll is in the plugin directory.
Which one?


4 Different locations? How do you figure that?

OK, at least three:
C:\Program Files\Megui\tools\dgindex
C:\Program Files\Megui\tools\avisynth_plugin
<your actual Avisynth plugin folder as referenced in the registry> -> [HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth]

rtjnyoface
8th July 2011, 12:03
Which one? 2.0.48

OK, at least three: Sorry, I thought megui just referenced the current avs installed in the system. If I remember correctly it didn't used to come with avs and would say so upon installation. I'll uninstall the 2.5 and just go with megui's. Lastly, what's wrong with dgindex? That's the only location of dgindex afaik. Just checked again. Yep, only location.


edit: man, that megui avs directory was a horrible overlook on my part. Geez...

Groucho2004
8th July 2011, 12:15
2.0.48
I meant which plugin directory.

Sorry, I thought megui just referenced the current avs installed in the system. If I remember correctly it didn't used to come with avs and would say so upon installation. I'll uninstall the 2.5 and just go with megui's. Lastly, what's wrong with dgindex? That's the only location of dgindex afaik. Just checked again. Yep, only location.

I don't know what megui does. I do know that it doesn't install Avisynth so you have to do that yourself.
I was just pointing out that source filters and plugins are loaded from various locations in your script which can be error-prone.

You either load plugins by specifying the path or you use the autoload function. In your case it seems a bit blurry as to what is loaded from where.

Boulder
8th July 2011, 14:42
Is MeGUI one of those applications in which you have to add Distributor() as the last line in the script to get MT working?

Groucho2004
8th July 2011, 15:55
Is MeGUI one of those applications in which you have to add Distributor() as the last line in the script to get MT working?

x264 should take care of that.

Boulder
8th July 2011, 16:08
I'm not so sure about that, it's more about the way MeGUI and Avisynth discuss with each other. If MeGUI uses the VfW interface, then Distributor() is not needed because it is automatically called. If it talks to Avisynth directly, the call is needed.

Groucho2004
8th July 2011, 16:35
I'm not so sure about that, it's more about the way MeGUI and Avisynth discuss with each other. If MeGUI uses the VfW interface, then Distributor() is not needed because it is automatically called. If it talks to Avisynth directly, the call is needed.

I'm quite sure that the script is fed directly into x264. Therefore, x264 invokes the "Distributor" call if necessary:

if( !strcasecmp( filename_ext, "avs" ) )
{
res = h->func.avs_invoke( h->env, "Import", arg, NULL );
FAIL_IF_ERROR( avs_is_error( res ), "%s\n", avs_as_string( res ) )
/* check if the user is using a multi-threaded script and apply distributor if necessary.
adapted from avisynth's vfw interface */
AVS_Value mt_test = h->func.avs_invoke( h->env, "GetMTMode", avs_new_value_bool( 0 ), NULL );
int mt_mode = avs_is_int( mt_test ) ? avs_as_int( mt_test ) : 0;
h->func.avs_release_value( mt_test );
if( mt_mode > 0 && mt_mode < 5 )
{
AVS_Value temp = h->func.avs_invoke( h->env, "Distributor", res, NULL );
h->func.avs_release_value( res );
res = temp;
}
}

Boulder
8th July 2011, 17:30
Hehe, that's clever :)

-Vit-
8th July 2011, 22:20
Although rtjnyoface mentioned a "first pass". It's not clear, but if he is using a pre-render job in MeGUI then the avisynth script is fed to ffmpeg or Mencoder (depending how old a version of MeGUI) for a lossless intermediate output, not into x264. So perhaps the question is do ffmpeg/Mencoder need a Distributor call...?

Undead Sega
9th July 2011, 02:30
Hey guys, I know this may seem abit off topic, but I really enjoy using QTGMC for the quality is gives as a result but it's just the speed that bothers abit, thus I was wondering, how do you use AviSynth MT? and in conjuction with QTGMC? I'm really confused how to use it or where to begin with it.

I hope you don't mind me asking about this, but QTGMC really does help on alot of things (probably better than some hardware deinterlacers for broadcast?) but I just wish to get things done qucker, I'm sure al of you do too :)

poisondeathray
9th July 2011, 03:03
Hey guys, I know this may seem abit off topic, but I really enjoy using QTGMC for the quality is gives as a result but it's just the speed that bothers abit, thus I was wondering, how do you use AviSynth MT? and in conjuction with QTGMC? I'm really confused how to use it or where to begin with it.

I hope you don't mind me asking about this, but QTGMC really does help on alot of things (probably better than some hardware deinterlacers for broadcast?) but I just wish to get things done qucker, I'm sure al of you do too :)

Did you look at the MT instructions in the 1st post :)

rtjnyoface
9th July 2011, 10:34
Woo hoo... now I get the "no function named mt_makediff" error. Replaced masktools with all different kinds of versions hoping to fix this error (this error was mentioned in THIS (http://forum.doom9.org/archive/index.php/t-128993.html) post but the solution provided there didn't fix my issue. Nothing worked. At least I had QTGMC working last night lol.

edit: fixed this by placing mt_masktools-25.dll DIRECTLY in the plugins folder instead of the 2.5 folder

edit 2: ho-ly s@%#. For all the changes and all the crap I've gone through I'm pretty sure I've got it working now. Thanks for the help folks. I don't know for sure if it were you or me but it seems to be "fixed" for the time being. I'm back to doing 30 fps on "medium".

Groucho2004
9th July 2011, 11:11
I don't know for sure if it were you or me but it seems to be "fixed" for the time being.

Neither. Have you never heard of the Folder Fairy that creeps around in your hard drives when you are sleeping and sorts out the mess you (or evil software) left during the day? :)

Anyway, glad you got it sorted.

bob6779
9th July 2011, 11:44
bob6779: Very complex settings. Probably too complex. There are some interactions there that you likely don't want. For example sharpness limiting (especially temporal) will tend to remove the rather subtle results of source match. SourceMatch=3 is probably overkill. The GrainRestore value looks very high (for NoiseProcess=2) and is probably strengthening grain, although the TR2=3 setting is counteracting that to some degree. Have you tried the more straightforward EZKeepGrain setting together with NoisePreset instead of all those noise settings? That together with source match and sharpness tweaking usually gets most detail.


The simplified presets helped, but I've still not been able to get rid of the strobing :(.

Also another thing that I have noted is that when I use MT any horizontal panning results in stuttering, but smooth when I remove MT.



SetMemoryMax(512)
SetMTMode(5, 4)
Import("F:\Program Files\AviSynth 2.5\plugins\R_pack\srestore.avsi")
Import("F:\Program Files\AviSynth 2.5\plugins\QTGMC-3.32.avsi")
Import("F:\Program Files\AviSynth 2.5\plugins\GrainFactory3.avsi")

LoadPlugin("F:\Program Files\AviSynth 2.5\plugins\mt_masktools-25.dll")

LoadPlugin("F:\Program Files\AviSynth 2.5\plugins\mvtools2.dll")


s=DGDecode_mpeg2source("F:\Documents and Settings\Raapakal DTS_Track1strobe.d2v", cpu=0,info=0)
SetMTMode(2)
tgmc = s.QTGMC( Preset="placebo", Lossless=2, EZKeepGrain=1, NoisePreset="faster", SourceMatch=2, Sharpness=0.3, EdiThreads=1 )
bob1 = s.bob(0,0.5)
bob2 = bob1.clense(reduceflicker=false).merge(bob1,0.5)
bob3 = bob2.mt_adddiff(mt_makediff(bob2,bob2.clense(reduceflicker=false),U=3,V=3),U=3,V=3)
tgmc.vinverse.Srestore(frate=25.0,dclip=bob3)
crop( 0, 44, 0, -44)
Grainfactory3(2,2,2)

Undead Sega
10th July 2011, 03:22
Did you look at the MT instructions in the 1st post :)

Indeed I have, however I just dont know how to use AvisYnth MT, I mean I would download it and I wouldnt know exactly what to do afterwards.

Even with that said, I wouldnt know how to use all my current filters in MT :(

aegisofrime
10th July 2011, 04:55
Indeed I have, however I just dont know how to use AvisYnth MT, I mean I would download it and I wouldnt know exactly what to do afterwards.

Even with that said, I wouldnt know how to use all my current filters in MT :(

MT mode can be toggled on and off. Installing the MT version of Avisynth does not mean that the behavior of your filters will change, if stability is what you are concerned about.

Undead Sega
11th July 2011, 00:49
The stability isnt wat I was referring to, I'm pretty sure it would be stable throughout and that the sped would improve dramatically?

I was merely talking about if I ever knew how to install or use AviSynth MT, I wouldnt know how to use all my current filters in it. I hope you get what I mean this time :)

-Vit-
11th July 2011, 02:44
It is very simple. Just copy the MT version of the avisynth.dll over your existing avisynth.dll. Then you can put SetMTMode, GetMTMode and Distributor in your scripts, as described in the first post of this thread. You don't have to use these multithreading features, in which case avisynth just behaves as normal.

You can also get the MT.dll if you want to use the MT("") filter, but that's a different matter and not very useful for QTGMC.

Lighto
12th July 2011, 04:10
It will certainly works and can be effective sometimes - depends on the source and settings. It's not as fast as using SetMTMode - having your CPU under full load does not necessarily mean it's working efficiently.

Have you tried the various ideas from the first post? Particularly different versions of Avisynth MT and my modded plugins? Also try running MT at less than full load, that can help whilst still being faster.

____

On a related point, I recommend updating to nnedi3 0.94 (http://forum.doom9.org/showthread.php?t=147695), it gives a nice speed-up (thanks tritical!).

Thanks for the tips.
Anyway, I got MT to run stable by setting fixed voltage to my CPU via my BIOS settings.

Gavino
12th July 2011, 09:03
I got MT to run stable by setting fixed voltage to my CPU via my BIOS settings.
That's a new one.
Perhaps -Vit- should add it to the MT tips in the QTGMC docs. :)

Didée
12th July 2011, 10:00
Note: Windows booting successfully is not a sufficient proof that your overclocking setup is running stable. :p

Groucho2004
12th July 2011, 10:07
That's a new one.
Perhaps -Vit- should add it to the MT tips in the QTGMC docs. :)

I agree. There should be a 'masochist' section for people who use Avisynth MT with an overclocked computer (and a very complex script with tons of plugins). Just imagine the number of possibilities for failure. :rolleyes:

Lighto
19th July 2011, 11:29
That's a new one.
Perhaps -Vit- should add it to the MT tips in the QTGMC docs. :)

New "tip", get Avisynth 2.6 (SEt Version 2011.07.14) with Standard 2.57MT's MT.dll.
Less crashing for me.

May be placebo effect.

Mini-Me
20th July 2011, 07:20
Note: Windows booting successfully is not a sufficient proof that your overclocking setup is running stable. :p

If it posts, I'd say it's good enough for anything up to and including life support systems. Then again, video processing is a bit more precious than mundane use cases like that, so...maybe a bit of Prime95 is called for in this case. ;)

__________

Seriously though, I actually do have a question for anyone who knows Avisynth better than I do (most of you):

If I use Quantile (from Kassandro's RemoveGrainHD package) on a clip that has gone through QTGMC, I often get unexpected/garbage results, like black frames, white frames, frames that are black/white in the right half but correct on the left, etc. The problem affects "random" frames, but it appears to be deterministic (just triggered by unknown factors).

My best guess is that Quantile has a bug in it somewhere, but I should ask: Is it possible that QTGMC's component filters are outputting frames that are visibly correct but badly formatted (thereby screwing up Quantile)? That seems unlikely to me, but something about the output - or maybe the complexity and processing time - seems to be making Quantile go haywire. This occurs in both Avisynth 2.5.8.5 and the 2.6 Alpha 3.

Depending on the source, I can get screwy results from a test script like:
orig = Avisource("HomeMovie.avi", pixel_type = "YUY2")
deint = orig.ConvertToYV12(interlaced = True).QTGMC(preset = "super fast")
return deint.Quantile(radius = 3, rank = 1)

-Vit-
20th July 2011, 11:50
Have you tried outputing the QTGMC result to a lossless file then running Quantile on that? That should determine if it is Quantile or the complexity of processing. [This is single-threaded, right?]

henryho_hk
20th July 2011, 13:12
If it posts, I'd say it's good enough for anything up to and including life support systems.

From my experience, multi-QTGMC() stress a system far better than multi-Prime95. :devil:

Mini-Me
20th July 2011, 19:50
Have you tried outputing the QTGMC result to a lossless file then running Quantile on that? That should determine if it is Quantile or the complexity of processing. [This is single-threaded, right?]

Wow, I can't believe I didn't think of that. Anyway, even if I deinterlace, output to file, and then load it back in, Quantile still barfs. That definitely rules out processing issues...and since any encoded value for the image should be a valid one, it looks like Quantile is indeed the problem. Thanks :) I posted a thread on Kassandro's board, but I don't think he checks it very often...

Undead Sega
21st July 2011, 07:12
It is very simple. Just copy the MT version of the avisynth.dll over your existing avisynth.dll. Then you can put SetMTMode, GetMTMode and Distributor in your scripts, as described in the first post of this thread. You don't have to use these multithreading features, in which case avisynth just behaves as normal.

You can also get the MT.dll if you want to use the MT("") filter, but that's a different matter and not very useful for QTGMC.

Oh right, that's great, I'll give that a go. Which version should I go for?

Also, is it recommended to use the 64bit version of Avisynth if one's PC can accomodate it?