Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Closed Thread
 
Thread Tools Search this Thread Display Modes
Old 27th July 2012, 21:44   #1301  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,406
Selecteven() is just to convert the 60 fps to 30 (it drops every other frame).

It is possible your computer isn't fast enough to decode the 60fps using VLC but is using Zoom Player as they use different code to do the decoding.
Asmodian is offline  
Old 27th July 2012, 21:50   #1302  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Quote:
Originally Posted by dee23 View Post
...but are you certain this was already deinterlaced?
Yes.
Quote:
The original source (before encoding) is from a DVD, and the specs are: 720x480i @ 29fps
As I mentioned in my original reply, there can be a big difference between the (progressive) source material and how it may have been encoded (as interlaced).
Quote:
I can clearly see interlace flickering/jagged lines...
Flickering and jagged lines, yes. Interlacing, no. You do know what interlacing looks like, don't you? Not like that.
Quote:
So, to get rid of that stuff, I'm using OTGMC; the results look great. In fact, the script removes the jagged lines and extra noise in my video, and also look better on YouTube.
Right, but its InputType=1 is specifically designed for that kind of thing, and might even do a better job with it. I'm not saying your video isn't helped by the use of QTGMC, but that QTGMC is usually used on interlaced material to bob it, and its InputType=1 might be even better suited to what you're doing.
Quote:
http://forum.videohelp.com/threads/3...1#post1940003; scroll down to post #6: the first picture has similar artifacts to that in my video
You know it had been already deinterlaced, too, don't you? With Yadif. Yadif is a decent and very fast deinterlacer, but a basketball court shows up all of its (and most other deinterlacers') shortcomings.

Last edited by manono; 27th July 2012 at 21:56.
manono is offline  
Old 27th July 2012, 21:52   #1303  |  Link
ZZZERO
Registered User
 
Join Date: Sep 2003
Posts: 80
Quote:
Originally Posted by Asmodian View Post
Selecteven() is just to convert the 60 fps to 30 (it drops every other frame).

It is possible your computer isn't fast enough to decode the 60fps using VLC but is using Zoom Player as they use different code to do the decoding.


I'd be surprised if it's my computer's lack of speed. It has an i7-3770k CPU. What is the point of converting 60fps to 30? There must be a reason people do it and that's what I'm trying to find out.
ZZZERO is offline  
Old 27th July 2012, 22:29   #1304  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Quote:
Originally Posted by ZZZERO View Post
What is the point of converting 60fps to 30? There must be a reason people do it and that's what I'm trying to find out.
I can think of two reasons right off the bat. NTSC DVD doesn't support 59.94fps. YouTube doesn't allow 59.94fps videos and will also cut the framerate in half.
manono is offline  
Old 27th July 2012, 22:51   #1305  |  Link
dee23
Registered User
 
Join Date: Apr 2012
Posts: 5
Quote:
Originally Posted by manono

Flickering and jagged lines, yes. Interlacing, no.
I would still have to render progressive for it to be removed though, correct?

Quote:
You know it had been already deinterlaced, too, don't you?
Yes - but when I deinterlace with Vegas or TMPG, I get the same thing. Noise, artifacts, etc. I've also tried Yadif, Yadifmod with NNED12 (that thread I linked you is where I discovered OTGMC). Same thing.

What do you suggest, manono? Continue with OTGMC or another script? Thanks.
dee23 is offline  
Old 27th July 2012, 23:31   #1306  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Quote:
Originally Posted by dee23 View Post
I would still have to render progressive for it to be removed though, correct?
No, most progressive 29.97fps material on NTSC DVD is encoded as interlaced. Again, progressive source material can be, and often is, encoded as interlaced. Maybe 99% of PAL progressive movies for DVD are encoded as interlaced.

Quote:
Continue with OTGMC or another script?
If you like the results you're getting, you can continue with it. However, I might suggest:

QTGMC( "Faster", TR0=1, TR1=1, TR2=1, InputType=1 )

Someone with more experience working with these kinds of defects might have a better idea.
manono is offline  
Old 28th July 2012, 00:00   #1307  |  Link
dee23
Registered User
 
Join Date: Apr 2012
Posts: 5
Quote:
Originally Posted by manono View Post
No, most progressive 29.97fps material on NTSC DVD is encoded as interlaced. Again, progressive source material can be, and often is, encoded as interlaced. Maybe 99% of PAL progressive movies for DVD are encoded as interlaced.
Gotcha. So in a program like Sony Vegas, how would I go about removing the jagged lines without exporting a progressive file?

Quote:
If you like the results you're getting, you can continue with it. However, I might suggest:

QTGMC( "Faster", TR0=1, TR1=1, TR2=1, InputType=1 )
Someone with more experience working with these kinds of defects might have a better idea.[/QUOTE]

I'm a novice, so I appreciate the input. Thanks again.
dee23 is offline  
Old 28th July 2012, 01:33   #1308  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Quote:
Originally Posted by dee23 View Post
So in a program like Sony Vegas, how would I go about removing the jagged lines without exporting a progressive file?
I have no idea as I use AviSynth and not Vegas. Maybe pdr or someone else can answer. I don't believe you've said what the intended output format is, other than making something to upload to YouTube (correct me if I'm wrong). If for YouTube, progressive is good. It's for DVD that you get progressive material encoded as interlaced.
manono is offline  
Old 30th July 2012, 10:30   #1309  |  Link
crismin
Registered User
 
Join Date: Jul 2012
Posts: 3
Quote:
Originally Posted by yup View Post
zerowalker!
try
Code:
SetmtMode(3,4)
AVISource("tape1.avi").Trim(0,129057)
AssumeTFF()
SetmtMode(2,4)
source=ConvertToYV12(interlaced=true).Crop(16,12,-16,-12)
bob=source.nnedi3(field=-2,threads=1)
super = bob.MSuper(pel=2, sharp=1)
backward_vec2 = MAnalyse(super, isb = true, delta = 4, blksize=16, overlap=8, chroma=false)
backward_vec1 = MAnalyse(super, isb = true, delta = 2, blksize=16, overlap=8, chroma=false)
forward_vec1 = MAnalyse(super, isb = false, delta = 2, blksize=16, overlap=8, chroma=false)
forward_vec2 = MAnalyse(super, isb = false, delta = 4, blksize=16, overlap=8, chroma=false)
bc2 = bob.MCompensate(super, backward_vec2)
bc1 = bob.MCompensate(super, backward_vec1)
fc1 = bob.MCompensate(super, forward_vec1)
fc2 = bob.MCompensate(super, forward_vec2)
Interleave(bc2,bc1,bob,fc1,fc2)
dfttest(sigma=100.0,tbsize=5,sbsize=16,sosize=12,threads=1)
Edibob=SelectEvery(5,2).nnedi3_rpow2(2,nsize=4,cshift="Spline36Resize",fwidth=720,fheight=576,threads=1)
Edibob.SeparateFields().SelectEvery(4,0,3).Weave().AssumeTFF()
QTGMC( Preset="fast", FPSDivisor=2, Ediext=Edibob,EdiThreads=1 )
Tune sigma, 100 good starting point. Script include work with borders.
-Vit-
This script better denoise than QTGMC. I remember Your suggestion, but for analog capture need external prefilter.
Also filtering on bobbed give better result than on fields.
Work slow 1.5-2 fps on Quad Core.
yup.
Thank You very much Vit and Yup for Your script. These are the best settings for my vhs videos. Please help once more with shimmers. How remove or reduce it. What code I must insert in Your script. Thanks a lot. Shimers on the screen.
http://imageshack.us/photo/my-images/844/helpfu.png/
crismin is offline  
Old 31st July 2012, 06:35   #1310  |  Link
yup
Registered User
 
Join Date: Feb 2003
Location: Russia, Moscow
Posts: 854
Hi crismin!
From my side try decrease sigma to lower value until noise at reasonable level (for outdoor shooting may be sigma=10 and lower).
Try script changing sigma
Code:
SetmtMode(3,4)
AVISource("tape1.avi")
AssumeTFF()
SetmtMode(2,4)
source=ConvertToYV12(interlaced=true).Crop(16,12,-16,-12)
bob=source.nnedi3(field=-2,threads=1)
super = bob.MSuper(pel=2, sharp=1)
backward_vec2 = MAnalyse(super, isb = true, delta = 4, blksize=16, overlap=8, chroma=false)
backward_vec1 = MAnalyse(super, isb = true, delta = 2, blksize=16, overlap=8, chroma=false)
forward_vec1 = MAnalyse(super, isb = false, delta = 2, blksize=16, overlap=8, chroma=false)
forward_vec2 = MAnalyse(super, isb = false, delta = 4, blksize=16, overlap=8, chroma=false)
bc2 = bob.MCompensate(super, backward_vec2)
bc1 = bob.MCompensate(super, backward_vec1)
fc1 = bob.MCompensate(super, forward_vec1)
fc2 = bob.MCompensate(super, forward_vec2)
Interleave(bc2,bc1,bob,fc1,fc2)
dfttest(sigma=100.0,tbsize=5,sbsize=16,sosize=12,threads=1)
SelectEvery(5,2)
StackVertical(Separatefields(source),mt_makediff(last,Separatefields(source),u=3,v=3))
at bottom field You could see only noise without ghost.
About shimmer waiting -Vit- or try more power preset (Preset="Very Slow" and TR2=3).
yup.

Last edited by yup; 31st July 2012 at 08:36.
yup is offline  
Old 31st July 2012, 19:11   #1311  |  Link
-Vit-
Registered User
 
Join Date: Jul 2010
Posts: 448
I can't see shimmer from a single screenshot. We need to see some of your source video (before running the script).
-Vit- is offline  
Old 1st August 2012, 07:33   #1312  |  Link
crismin
Registered User
 
Join Date: Jul 2012
Posts: 3
Quote:
Originally Posted by yup View Post
Hi crismin!
From my side try decrease sigma to lower value until noise at reasonable level (for outdoor shooting may be sigma=10 and lower).
Try script changing sigma
Code:
SetmtMode(3,4)
AVISource("tape1.avi")
AssumeTFF()
SetmtMode(2,4)
source=ConvertToYV12(interlaced=true).Crop(16,12,-16,-12)
bob=source.nnedi3(field=-2,threads=1)
super = bob.MSuper(pel=2, sharp=1)
backward_vec2 = MAnalyse(super, isb = true, delta = 4, blksize=16, overlap=8, chroma=false)
backward_vec1 = MAnalyse(super, isb = true, delta = 2, blksize=16, overlap=8, chroma=false)
forward_vec1 = MAnalyse(super, isb = false, delta = 2, blksize=16, overlap=8, chroma=false)
forward_vec2 = MAnalyse(super, isb = false, delta = 4, blksize=16, overlap=8, chroma=false)
bc2 = bob.MCompensate(super, backward_vec2)
bc1 = bob.MCompensate(super, backward_vec1)
fc1 = bob.MCompensate(super, forward_vec1)
fc2 = bob.MCompensate(super, forward_vec2)
Interleave(bc2,bc1,bob,fc1,fc2)
dfttest(sigma=100.0,tbsize=5,sbsize=16,sosize=12,threads=1)
SelectEvery(5,2)
StackVertical(Separatefields(source),mt_makediff(last,Separatefields(source),u=3,v=3))
at bottom field You could see only noise without ghost.
About shimmer waiting -Vit- or try more power preset (Preset="Very Slow" and TR2=3).
yup.

Sorry for my english. It's no about shimmer but ghosts on the screen. I didn't know word what it may describing this. Thank You Yup for script but it doesn't work. When i run this script i get errors. On the screen:
http://imageshack.us/photo/my-images/210/erroror.png/

This is the orginal source file:
http://narod.ru/disk/58657475001.f49...obik2.vob.html

Orginal has got too ghosts on the screen. I work on the previous script with sigma and when i gave sigma lover then i have worse effect. Ghosts didn't disappear. Please help what i must do with this.
crismin is offline  
Old 1st August 2012, 16:01   #1313  |  Link
yup
Registered User
 
Join Date: Feb 2003
Location: Russia, Moscow
Posts: 854
Quote:
crismin; Thank You Yup for script but it doesn't work. When i run this script i get errors.
For this script You need plugins which using QTGMC (see first thread) or separately install MVTools2, dfttest and masktools2.
Also use Virtualdub for view Avisynth scripts, errors message will be more informative.
Analog capture using hardware capture from VHS to DVD not best way. Better make capture using capture card. See this forum Capture part.
yup.

Last edited by yup; 1st August 2012 at 16:03.
yup is offline  
Old 1st August 2012, 18:38   #1314  |  Link
simcut
Registered User
 
Join Date: Mar 2012
Posts: 38
First of all I'd like to say how good QTGMC, thank you.

Secondly, should I only be using QTGMC on Progressive source that needs repairing of artifacts? Or is it okay to use it regardless? I have this DVD (vob format) where there is a scene in a room and in the background there are some plants and they produce a flicker when the camera moves around focusing on the person, and the leaves of the plants have what look like interlaced lines, but the lines do not go out beyond the leaves, it's hard to explain! The flickering is really offputting, what can I do to fix it?

Thanks.
simcut is offline  
Old 6th August 2012, 10:15   #1315  |  Link
crismin
Registered User
 
Join Date: Jul 2012
Posts: 3
Quote:
Originally Posted by yup View Post
For this script You need plugins which using QTGMC (see first thread) or separately install MVTools2, dfttest and masktools2.
Also use Virtualdub for view Avisynth scripts, errors message will be more informative.
Analog capture using hardware capture from VHS to DVD not best way. Better make capture using capture card. See this forum Capture part.
yup.
Thanks Yup. I stay with this script. I think about Canopus ADVC-300 but it's very expensive.
crismin is offline  
Old 6th August 2012, 15:20   #1316  |  Link
TheSkiller
Registered User
 
Join Date: Dec 2007
Location: Germany
Posts: 632
I know it's offtopic but don't get the Canopus ADVC-300, it's not a good device despite the name. I haven't, in all those years, ever read something good about it. It has a crappy and destructive TBC and destructive useless filters, it makes the audio drift out of sync by I think one frame forwards and backwards in an endless loop.

If you want to use DV-based hardware you're best off using an older MiniDV camcorder that has analog inputs and the ability to loop the incoming signal through to firewire into your computer without having to record to MiniDV tape first.


@ simcut
What you describe could be real interlacing as well as it could be something different. We need a short unprocessed sample to help you. Cut out maybe 10 seconds from the VOB using DGindex, upload it to MediaFire and post the link.

Last edited by TheSkiller; 6th August 2012 at 15:28.
TheSkiller is offline  
Old 24th August 2012, 14:55   #1317  |  Link
Terka
Registered User
 
Join Date: Jan 2005
Location: cz
Posts: 704
Hi -Vit-, are you planning to implement SVP motion interpolation into QTGMC?
Terka is offline  
Old 26th August 2012, 14:17   #1318  |  Link
fvisagie
Registered User
 
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
Suggestion for easier & safer installation and use

Firstly, a huge Thank You to -Vit- for a fantastic tool. It brought a tremendous improvement to my latest project; in fact it lifted it "from the dustbin to the display cabinet"(tm). Many, many thanks, I sincerely enjoy and appreciate all the effort you put into polishing its operation.

Secondly, a small suggestion to make it easier and safer for new users to install and get going with QTGMC(). If you implement it, all that new users would have to do is:
Dump QTGMC() and all its plugins in a dedicated folder (e.g. C:\Program Files\Avisynth 2.5\plugins\QTGMC\)
Call it with only:
Code:
global QTGMCPath = "C:\Program Files\Avisynth 2.5\plugins\QTGMC\"
Import (QTGMCPath + "QTGMC-3.32.avsi")
No more figuring out long lists of LoadPlugin()s, typos, lost hours and hair, etc.!

All that is needed in QTGMC() is something like
Code:
	# <mod>
	try {
		Defined (QTGMCPath)
	}
	catch (err_msg) {
		Assert (false, 
		\ Chr (10) +
		\ "Before importing QTGMC(), point the global QTGMCPath to its folder, e.g.:" + Chr (10)
		\ + Chr (10)
		\ + """global QTGMCPath = "C:\Program Files\AviSynth 2.5\plugins\QTGMC\"""" + Chr (10)
		\ + """Import (QTGMCPath + "QTGMC-3.32.avsi")"""
		\ + Chr (10))
	}
	LoadPlugin (QTGMCPath + "AddGrainC.dll")
	LoadPlugin (QTGMCPath + "dfttest.dll")
	LoadPlugin (QTGMCPath + "FFT3DFilter.dll")
	LoadPlugin (QTGMCPath + "mt_masktools-25.dll")
	LoadPlugin (QTGMCPath + "mvtools2.dll")
	LoadPlugin (QTGMCPath + "nnedi3.dll")
	LoadPlugin (QTGMCPath + "RemoveGrainSSE2.dll")
	LoadPlugin (QTGMCPath + "RepairSSE2.dll")
	LoadPlugin (QTGMCPath + "SSE2Tools.dll")
	LoadPlugin (QTGMCPath + "Yadif.dll")
	# etc.
	# </mod>
Of course, it would be even better still if plugins were only loaded once needed.

This approach should also address the issue of Yadif.dll not autoloading, and QTGMC() not knowing where it is.

Since so many toolchain scripts use different versions of the same plugins, inside the body of QTGMC one might even consider using DLLName_function() syntax for improved safety. For complete safety one would also create unique names for DLLs inside the Plugin Package.

Many thanks again, and I hope some of this is useful to you.

Kind regards,
Francois

Last edited by fvisagie; 27th August 2012 at 19:24. Reason: Clarified that suggestion is for new code to go into QTGMC()
fvisagie is offline  
Old 26th August 2012, 19:03   #1319  |  Link
-Vit-
Registered User
 
Join Date: Jul 2010
Posts: 448
Terka: I already posted TGMC/QTGMC with default settings using SVP. I have not really pushed forward much with SVP because I could not get either a great speed up or significant quality improvements using it. There is a small speed up, a few %, and it may be better for slower machines. But the quality of the vectors... well they're better in a few areas, but worse in others, much like any other MVTools tweak.

I think the vector needs of QTGMC and SVP are different. QTGMC requires correct vectors because it combines compensated with uncompensated frames. But at the same time QTGMC is less sensitive to areas where analysis fails, as it tends to fallback to NNEDI3. Of course SVP will also work well with correct vectors, but SVP is much more strongly affected by analysis failure. So I suspect SVP more strongly favors locally coherent vectors to produce more consistent vectors on complex areas, but with potential small inaccuracies in the vectors elsewhere. Small inaccuracies on simple motion makes little difference to SVP output compared to the big problems that flow typically faces. But it's a bad thing for QTGMC, or MDegrain for that matter since the sharpest output requires best vector precision whenever possible. I've tried tweaking SVP parameters to little effect (although I haven't tried recent versions), perhaps some of the algorithmic changes have been tweaked for flow rather than general use? That's all a bit fluffy as you should expect with MVTools discussion.

___

fvisagie: Interesting, thanks. I'm not sure if other users would prefer that or not. What if the plugins have already been loaded by something prior to the QTGMC call...? Can't remember, does that mean those custom LoadPlugins would be skipped?

I have considered a validation step at the start of the script - checking that all the correct plugins are available. Though not obvious how to do that cleanly - if only plugins were forced to expose a version number...

Last edited by -Vit-; 26th August 2012 at 22:20. Reason: clarity
-Vit- is offline  
Old 27th August 2012, 10:58   #1320  |  Link
fvisagie
Registered User
 
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
Quote:
Originally Posted by -Vit- View Post
I have considered a validation step at the start of the script - checking that all the correct plugins are available.
Due to the number of shared scripts using different versions of the same plugins, I think it's safe practice to store each script with its associated plugins in their own dedicated folder (that's what I do at least). Following this approach then, will ensure that QTGMC() loads all (and only) the correct plugins. If those plugins are also uniquely named e.g. QTGMCPlugin.dll and called as QTGMCPlugin_function(), QTGMC() will only ever call the right function from the right version of the right DLL, stored with QTGMC(). This regardless of whatever other DLL versions and names of the same plugin/s got loaded by other scripts. Uniquely naming DLLs will also remove any doubt whether LoadPlugins will proceed as expected or not.

I suspect if all scripts accessed their preferred plugins this way, that problems with different versions of the same DLL being loaded will be a thing of the past!
fvisagie is offline  
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 18:19.


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