I've been getting my toes wet in Avisynth and trying to deinterlace some Capture footage from NTSC 29.970 sources. I've been capturing with UT video's YUV422 codec which I think is the right colorspace for NTSC cable.
From the interlaced source, captured as avi in Virtualdub, I've been using this basic approach:
From a quality standpoint I've been pleased with general detail (although I would gladly accept tips on improving the results!), but in the process of deinterlacing and IVTC it seems that it leaves behind a blue/red tinged ghost in the process. This is most evident when things are in motion and result in artifacts like this:Code:DirectshowSource("C:\New Folder\Source.avi") TFM() TDecimate(Mode=1) QTGMC( Preset="Slow" ) SelectEven() LanczosResize(640,480) AssumeFPS(23.976)
I've also attached a clip encoded in xvid of the above script. Any ideas on how to reduce or remove that because it's visible enough to be distracting. I'm very new to Avisynth so it's probably a problem in my application of the plugins or missing some extra steps.
Any help is appreciated, thanks!
+ Reply to Thread
Results 1 to 16 of 16
This is a film source (hard telecined, "24p in 60i"), but there are chroma errors in the source - it lags behind in some fields
Either there is a broadcast problem, or a recording problem. Maybe you can provide more details on your setup
Don't use directshowsource() , it's not necessarily frame accurate (only use as a last resort)
AVISource() is preferred for AVI sources.
Normally , TFM().TDecimate() should be all you need for a telecined film source, but there are chroma errors
Don't deinterlace progressive material - you practically cut the resolution in 1/2 right off the bat
I noticed you use ULY0 - thats the 4:2:0 variant of UT Video Codec - that might cause interlaced chroma issues, or if you used full processing mode in vdub with 4:2:0 interlaced material => vdub will upsample interlaced YV12 as progressive causing chroma artifacts . Was there a mistake in workflow/processing somewhere? Can you describe how that sample was made and your capture workflow / hardware setup
Sure, I'll try and be as detailed as I can. From USB capture, I'm using VirtualDub with SVideo source. Under Format I've got 720x480 with YUY2. Under Compression I've got UT Video Codec YUV422 with Frame Divide Count 2 (default) Optimize for Decoding Speed (default), and Assume Interlaced checked.
For the resulting AVI, I'd open that in Virtualdub using the AVS script and do a basic Xvid encode at 2000 kbps to see the results.
Here's a new example just in case I'm messing anything up so it's triple checked to match these settings. This is just a random capture with some action to make things clearer.
I made two Xvid conversions. The first with the script above which includes both deinterlacing and IVTC and the second just using deinterlacing. Both seem to have the ghosting.
It has nothing to do with the script or whether you ivtc or deinterlace. The source is the problem (or how it's recorded) ; that impacts everything else, no matter what you do
If you use
AVISource() AssumeTFF() SeparateFields()
Can you try something else like huffyuv to capture - if that's ok, then it's a ut video issue. If it's not ok, then it's likely a hardware setup issue
As poisondeathray pointed out, the problem is already in your AVI files. I suspect UT Video Codec converted YUY2 (YUV 4:2:2) to ULY0 (YUV 4:2:0) assuming progressive frames, not interlaced frames. Make sure it is set to interlaced mode when capturing. Better yet, capture as YUY2, compress as YUY2 (or equivalent YUV 4:2:2 format). Then if you need 4:2:0 in AviSynth use ConvertToYV12(interlaced=true).
Last edited by jagabo; 19th Jan 2012 at 20:11.
Here's one with HuffyUV v2.1.1 using the default settings.
Edit: I tried an encode of it and the results seem similar, which suggests a hardware problem of sorts right?
Last edited by spinmonk; 19th Jan 2012 at 20:19.
Yes, the problem is in that clip too. But here's a possible workaround:
AviSource("ExampleJan19SourceNo2.avi") AssumeTFF() ConvertToYV12(interlaced=true) Yadif(order=1, mode=1) # or QTGMC() SelectEven() TDecimate()
seems to work on the second sample pretty well. It should work on the first one but I don't have whatever it is I need to open ULY0. You need to load both TIVTC and Nnedi3.
jagabo and manono, both of those work very well! Thank you very much!
As a matter of learning, the approach using TFM converts the source via IVTC and the approach using ConverttoYV12 uses deinterlacing, right? So if I'm capturing a natively 29.97 source, I'd want to use the one that uses QTGMC because there wouldn't be any telecining. But if the source is a movie (being played on TV so it's been telecined), I'd want to use IVTC instead?
So if I'm capturing a natively 29.97 source, I'd want to use the one that uses QTGMC because there wouldn't be any telecining.
But if the source is a movie (being played on TV so it's been telecined), I'd want to use IVTC instead?
Gotcha, thanks very much. Using your TFM script the overall results are pleasing and solved the ghosting problem while seeming pretty much on target.
Last edited by jagabo; 20th Jan 2012 at 06:19.
Just wanted to chime in that I've been using these scripts (most recently jagabo's variant because of the additional quality processing QTGMC provides) and I'm very happy with the results. They're miles away better than the results the bundled software could provide and all of the ghosting problems have gone away.
Thanks to all who helped!