digitalFAQ.com Forum

digitalFAQ.com Forum (https://www.digitalfaq.com/forum/)
-   Encode, Convert for streaming (https://www.digitalfaq.com/forum/video-web/)
-   -   VirtualDub de-interlace filter choices? (https://www.digitalfaq.com/forum/video-web/8118-virtualdub-de-interlace.html)

rocko 07-13-2017 05:00 AM

VirtualDub de-interlace filter choices?
 
There are a few de-interlacing filters in my version of V-Dub, which I'm pretty sure is the one from Lordsmurf, with extra filters pre-loaded. I was admonished (rightfully so) for using VLC to de-interlace.. (Cheap, Lazy, terrible results!) My footage of Railroad and Steam engine action could be considered as fast action/sports-like, with rapid movement of smoke, as well as some panning of camera at the time of filming these events, so which filter is best? Plus I'm learning how to properly apply Masking in VirtualDub at the same time. Can I Apply both de-interlacing AND Resize filters at same time, to reduce Workflow time?

sanlyn 07-13-2017 08:50 AM

Use the builtin VDub yadif deinterlacer. It's not nearly as clean as QTGMC.

Never resize interlaced or telecined video. Not ever. Period. Deinterlace first. Re-interlace later.
Why are you deinterlacing? Nothing deinterlaces without a cost, and yadif can cause aliasing especially with animation and titles. You should deinterlace only if a video requires it for certain filters, and usually only for web posting. If you're deinterlacing and removing alternate frames, you're ruining your action videos and camera pans by discarding 50% of your temporal resolution.

rocko 07-13-2017 05:34 PM

-Yes, de-interlacing for Web viewing, as stated a few days ago by lordsmurf: "is a necessary evil"
- Using the "Resize" filter in VirtualDub only to mask video, again for Web viewing, no actual resizing, Exept for what VirtualDub does during crop/mask process
-Currently all my captures are intended for Web viewing for now, might make DVD'S at a later time, for a few of my fellow older friends and family? But making DVD'S is another part I haven't learned to do yet.

Quote:

Originally Posted by sanlyn (Post 50187)
Use the builtin VDub yadif deinterlacer. It's not nearly as clean as QTGMC.

Thanks, I will try QTGMC if it's free or low cost.

juhok 07-13-2017 11:53 PM

Quote:

Originally Posted by sanlyn (Post 50187)
.. you're ruining your action videos and camera pans by discarding 50% of your temporal resolution.

There's no need to discard anything. 50i -> 50p etc.

lordsmurf 07-14-2017 07:09 AM

Quote:

Originally Posted by juhok (Post 50198)
There's no need to discard anything. 50i -> 50p etc.

I thought 25i = 50p. :question:

juhok 07-14-2017 07:37 AM

Yes, you're right. :) Typoed.

sanlyn 07-14-2017 07:50 AM

Quote:

Originally Posted by lordsmurf (Post 50199)
Quote:

Originally Posted by juhok (Post 50198)
There's no need to discard anything. 50i -> 50p etc.

I thought 25i = 50p.

Yeah, this "25i" - "50i" business is a marketing ploy. 25fps is 25 frames per second, 25i means 50 fields per second. To state 25i as being the same as 50i is marketing b.s. to make people think they're getting twice as much of something for nothing.

Quote:

Originally Posted by rockovids (Post 50193)
Thanks, I will try QTGMC if it's free or low cost.

QTGMC is the premiere deinterlacer, even better than your players or TV, and is a free plugin for Avisynth. If you haven't heard of it by now, you haven't been paying attention, LOL!. If you're not using it you're being cheated.

juhok 07-14-2017 08:02 AM

Yadif can also do 25i -> 50p and keep the temporal resolution. But basic Yadif is not very good quality. Not even with the NNEDI3 predictions in my opinion.

QTGMC on the other hand is *very* slow. I would recommend Avisynth+ or VapourSynth for multithreaded operation with it. And the learning curve to set everything up is pretty steep.

Example code for Avisynth with Yadif/NNEDI3:
Code:

LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\NNEDI3-0.9.4\nnedi3.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Yadifmod-1.0\yadifmod.dll")
 
YadifMod(mode=0, edeint=NNEDI3(field=-1)) # same rate, do spatial check (default)
YadifMod(mode=1, edeint=NNEDI3(field=-2)) # double rate, do spatial check
YadifMod(mode=2, edeint=NNEDI3(field=-1)) # same rate, no spatial check
YadifMod(mode=3, edeint=NNEDI3(field=-2)) # double rate, no spatial check


sanlyn 07-14-2017 09:39 AM

Or better, for 50p output and decent denoising:

Code:

AssumeTFF()
QTGMC(preset="medium")

Should run about 6 to 10 fps processing, depending on the CPU and OS. And QTGMC has provisions for keeping colorspace in YUY2.

But you'll have a heck of a time talking rockovids into using Avisynth, which is what he needs for those videos. There are plenty of his posted samples that make the case for Avisynth.

rocko 07-15-2017 06:00 AM

Quote:

Originally Posted by sanlyn (Post 50203)
But you'll have a heck of a time talking rockovids into using Avisynth, which is what he needs for those videos. There are plenty of his posted samples that make the case for Avisynth.

Well Stated!..I'm not computer/tech/video savvy enough to start learning a program that requires inputting code from command lines. Maybe on my Bucket List? Just barely learning how to use VirtualDub. If I had the $$ I would simply send my tapes to DFAQ and let them figure it out. However currently in a low income situation, and stuck with the video processing tools I purchased when the $$ were rolling in.(LOL) So back to my original question please, I have VirtualDub ver. 1.9.11 pre-loaded with extra filters that I downloaded from DFAQ I call Lordsmurf version, it has 3 or 4 (+?) De-interlace filters. The basic (Yadif) filter as sanlyn suggests, says (internal) but there are also some other de-interlace filters such as "Smart" and the the others have ("by") names of their creators which gets a little confusing. Any advice about what each of these other de-interlace filters do or don't do would be appreciated. Please pardon my ignorance on the subject, but the whole Analog Video conversion to Digital thing is very confusing in the first place, to average, non video tech users such as myself, but still very appreciative of this site!

lordsmurf 07-15-2017 06:28 AM

Have you ever tried to install Avisynth? We could feed you a script to test. You'd not be learning it alone in a vacuum.

The only caveat is you need a not-slow computer. My Skylake build doesn't even sneeze at it, nor at x264 encoding. Post-processing/restoration is why I got it.

For VirtualDub, the best is usually Yadif. The others are more special-needs.

Animation especially has some considerations. Not sure about trains; there are lots of lines in the videos. When you can see lines, you can see problems with any non-QTGMC method.

I should probably explain what every filter in the pre-made package does, and I'll note that on the glossary. Maybe I can start with the deinterlace filters, but it'll be about a month before I get to it. Trying to upgrade and expand this site is no small feat, but one we're committed to in 2017.

rocko 07-15-2017 07:42 AM

Quote:

Originally Posted by lordsmurf (Post 50207)
Have you ever tried to install Avisynth? We could feed you a script to test. You'd not be learning it alone in a vacuum.

The only caveat is you need a not-slow computer. My Skylake build doesn't even sneeze at it, nor at x264 encoding. Post-processing/restoration is why I got it.

For VirtualDub, the best is usually Yadif. The others are more special-needs.

Animation especially has some considerations. Not sure about trains; there are lots of lines in the videos. When you can see lines, you can see problems with any non-QTGMC method.

I should probably explain what every filter in the pre-made package does, and I'll note that on the glossary. Maybe I can start with the deinterlace filters, but it'll be about a month before I get to it. Trying to upgrade and expand this site is no small feat, but one we're committed to in 2017.

Thanks LS, May try later as time allows, Just upgraded Win 7 Mobo/CPU to Quad core/64bit with SSD "C" drive a few years ago.

sanlyn 07-15-2017 11:07 AM

Rocko, it's true that you're writing a computer program when you code an Avisynth command script, but you're making it more complicated than it sounds. When you click an icon or button in Virtualdub you're running a computer program whose commands are imbedded in the code that runs that icon's functions. It gets more complicated when you run a filter, such as the yadif deinterlacer. In the filter dialog you have to tell yadif a few things by clicking in check boxes and options -- you tell yadif the field priority (Top field first or bottom field first), and tell it whether you want to discard fields (keep the top field, keep the bottom field) or use double frame output by keeping all fields, etc-- which means you're programming that filter. In effect, you're doing some programming whether you realize it or not.

In Avisynth you don't have check boxes, but when you run yadif in Avisynth you have to write out these instructions using some English that Avisynth's yadif plugin understands. Those commands do the same things that VirtualDub's yadif version does. The setup parameters are clearly explained in the documentation for yadif, and the settings are no different than the ones you'd use in Virtualdub. It just looks different because there aren't any check boxes.

So if I was running the Avisynth version of yadif I'd have to tell yadif what I want to do. In the case shown below, I tell Avisynth's yadif to use top field first and to keep all fields for double frame rate output. Instead of clicking checkboxes, I use yadifs' prescribed language:

Code:

yadif(order=1, mode=1)
The command first names the filter I want to run (yadif). It then sets the field order to top field first (order =1) and the mode of deinterlacing to keep all fields (mode=1). That's the same thing you do when you click checkboxes in Virtualdub.

If you were using QTGMC it can be even more simple than that, because QTGMC is equipped with default presets that you write out by name. Each preset name has been configured to operate in a certain way, and these presets are all defined in the instructions that come with the plugin. It's no different than figuring out which options to turn on or off with a VirtualDub filter. Other than the preset option, the only thing you have to tell QTGMC that isn't "automatic" is the field order -- but that's easy in Avisynth:

Code:

AssumeTFF()
This built-in Avisynth function tells everything in your script what the field order is for your input source. In this case "TFF" means Top Field First. It's pretty difficult to go wrong here, because the "Assume" function has only two possible values, Top Field First (TFF) or Bottom Field First (BFF). You have to use one or the other and there are no other possibilities.

So to deinterlace a TFF video and do some pretty nifty cleanup and line smoothing and noise reduction, not to mention some hefty motion compensation to make sure your deinterlaced frames are true interpretations of how the fields are related, the actual code is pretty simple:

Code:

AssumeTFF()
QTGMC(preset="medium")

If you browse other capture and restoration threads in these forums you'll see thousands of examples of working in both Avisynth and Virtualdub. You pick up the details from documentation and help files and from the projects that others have posted and learned from. But without more research you're kind of stuck in a box and tend to work yourself into a corner with methods that could easily be causing you a lot of unnecessary work, and you could be getting better results. I guess you'll have to make up your mind about that. But from what I've seen of your previous posts, you could definitely use at least some basic Avisynth. True, it's a learning curve, but so is VirtualDub.

So much for that. Post samples if you have more questions. And BTW, thanks for contributing your videos to the forum.

rocko 07-15-2017 05:27 PM

Ok, thanks sanlyn for spending all that time, not wasted! Looks like you did talk me into it! I'll try it. Not very happy with current results anyway, by the time I've uploaded some of my "finished" videos to the Railroad website, they look "OK" on a small phone screen, but pretty bad upon zooming in, or viewing on a larger pc monitor. It's time to "unbox" myself out of this "capture corner"!...And really just getting back into the whole thing again, seriously, for the umpteenth time.

juhok 07-15-2017 05:29 PM

I'll also be happy to post some encodes and stats with VapourSynth if you provide sample videos for processing.

sanlyn 07-15-2017 06:39 PM

Vapoursynth has one big disadvantage: tons of filters are versions written for Avisynth 2.5 and 2.6, but not for Vapoursynth. I'd say that "normal" Avisynth 2.6 is difficult enough for newcomers without having to hunt down different plugin versions and -- worse -- having no Vapoursynth version available. I have dozens of standby filters no longer on the regular listings that work for Avisynth 2.5 and 2.6, but not Vapoursynth.

I suppose you're aware that Vapoursynth doesn't use Avisynth's simple syntax, but uses the more flexible but complesx and difficult Python programming language. Seems like a lot more for someone new to take on, not to mention the filter limitations and the fact that you don't see Vapoursynth projects in most of the popular forums except the geekiest areas of doom9's development threads.

Of courses, some people enjoy difficulty. I spent 18 years in several programming languages for PC's and mainframes, including PL/1 and C++, but stuff like Python got very tiring very quickly. It does the same thing many other languages do, it's just that it's someone else's baby and is stubbornly determined to be different.

But to each his own.

juhok 07-15-2017 08:19 PM

It all depends. For many most of the old Avisynth dll's are obsolete. They don't exist for VS for a reason. Clean slate and all. With VS there's no need to hunt down plugin versions. The most important ones can be found easily and run natively with support for multithreading and high bitdepth if needed.

Be it Avisynth pseudocode or Python for most it's just a matter of copy/paste. And a call to QTGMC is easily done in both.

It took close to 15 years for Avisynth to be "popular" outside of doom9. Masses move slowly.

sanlyn 07-15-2017 09:06 PM

Quote:

Originally Posted by juhok (Post 50218)
It all depends. For many most of the old Avisynth dll's are obsolete.

In what way? Last time I looked, they still work. You mean they don't work any more?

juhok 07-15-2017 09:35 PM

Replaced by newer technology I think. For example these interlacing techniques we've been talking about. There are many other plugins/scripts for the task but their userbase is diminishing -> no need to port the old tech.

rocko 07-16-2017 02:58 AM

Quote:

Originally Posted by juhok (Post 50220)
Replaced by newer technology I think. For example these interlacing techniques we've been talking about. There are many other plugins/scripts for the task but their userbase is diminishing -> no need to port the old tech.

Juhok, your input and enthusiasm is very appreciated, but too much for me right now. I am glad for your input, but I can't handle too much at once, I need to do one thing at a time, my tech and computer knowledge is very limited. I will try Avisynth first. Please stay with that.oh Thank you.


All times are GMT -5. The time now is 08:41 AM

Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.