I want to take the interlaced 720 x 480 input and end up with 1280 x 720 progressive. what is the order of filters for such videos?
right now all I do is to yadif deinterlace and then lanczos resize and then call it a day, but I feel I should do some sort of denoising temporally and spatially, and some sort of sharpen? it seems game videos usually have pretty decent quality already, so I don't know what kind of processing is required. what do people usually do to lessen deinterlace artifacts?
I'd like to use virtualdub as much as possible for this task.
+ Reply to Thread
Results 1 to 28 of 28
If we're talking Avisynth I'd suggest a different deinterlacer than yadif. QTGMC perhaps? At least I like that one.
If you want to use VirtualDub maybe you could use "smart deinterlace" by Donald Graft instead of yadif. Perhaps there is something better for Vdub though, I'm no expert whatsoever
Last edited by Chief Mouse; 25th Aug 2014 at 06:07.
I want to know what sort of filter chains I should use for video game source. most of the time they talk about deinterlace, it's all VHS stuff, but video game has a much cleaner screen, so maybe some things might be different?
Last edited by muffinman123; 25th Aug 2014 at 07:14.
I think deinterlacing should be done first regardless of what source is it.
If you resize first then you won't be able to properly deinterlace it.
Resized to 1280x720 -> yadif
Yadif -> resized to 1280x720
Once you have done this you can add any other filters you please. That's how I would do.
You usually want to deinterlace before using other filters (most aren't interlace aware and will screw up your interlaced video). You probably don't have much noise in video game caps so denoising shouldn't be necessary. There are better options than LanczosResize for upscaling. But what you use will depend on the nature of the video. Upload a short sample.
just wondering, if I take a huffyuv interlaced video and save as huffyuv with only text sub filter on the video and full processing, would it destroy the video in any way? lossless to lossless shouldn't lose any quality, right?
Last edited by muffinman123; 25th Aug 2014 at 16:44.
TextSub() in avisynth)
If you convert to RGB (e.g. using vdub textsub filter, which converts to RGB) , yes there is additional quality loss (not from compression losses, but colorspace conversion losses) . Moreover, the conversion from YUV to RGB in vdub is done in a progressive fashion, not interlace aware - so you will get interlaced notching artifacts (aka - chroma upsampling error or CUE)
another thing, if I recorded my video with huffyuv RGB, and then I tried to save as huffyub RGB, full processing, no filters whatsoever, and the file size actually got bigger. not sure what was changed.
Last edited by muffinman123; 25th Aug 2014 at 16:44.
The conversion of YUY2 to RGB and back in VirtualDub doesn't disturb the interlacing since every line has its own chroma samples. It's with YV12 (YUV 4:2:0) chroma subsampling where you get problems because VirtualDub treats the interlaced chroma as if it was progressive. You will get some blurring of the colors horizontally as the chroma samples are doubled horizontally (YUY2 to RGB), then halved again (RGB to YUY2).
Yes 4:2:2 is fine in vdub, I assumed you had interlaced 4:2:0 source
You should capture in YUY2, not RGB. Your black level is elevated, you should fix your levels for your capture
Video games can be tough to deinterlace and can "fool" otherwise smart filters like QTGMC.
What is this for? What is the desired goal ? Eventually youtube ?
eventually youtube yes, but I still want to clean the images and have good results as much as possible in my local copy. if I already lose too detail in my processing, it's only going to get worse when I upload it to youtube.
Last edited by muffinman123; 25th Aug 2014 at 17:22.
Another thing to consider is YT announced 60p support. You may want to plan ahead an upload a 60p version
so the videos are captured already, I don't have time to recapture the everything since too much time was already spent on this. what filter chain should I use to clean up the images? are spatial and temporal cleaning required for the sample clips I showed you? which ones should I try?
so the best way to deinterlace is to keep both fields and double the frame rate, right? is that's the case, when do I convert it back to 29.97 again after all the processing? or should I just keep the video at 59.9?
what I am doing now is this
I take my video, deinterlace, resize, then save as huffyuv again (if I should do some denoising, let me know what to use)
take the huffyuv videos to aviutl and do the special effects and stuff, and then output with x264 for the final result.
I assume aviutl does not process my video in its projects, just directly play them, so I want to clean up my videos as possible in my vdub outputs.
Last edited by muffinman123; 25th Aug 2014 at 17:31.
Looking for something like this?
that looks pretty good, was that qtgmc or just yadif with double frame rate in avisynth? did you use any denoising?
also still wondering about that aviutl thing, should I do all the processing in vdub, then only use aviutl to do special effects and compression? what filter chain should I use in vdub?
Last edited by muffinman123; 25th Aug 2014 at 17:44.
Did you want to preserve the blocky look / when upscaling? The original is low quality video game capture, with significant aliasing (jaggy edges), even in the original fields before deinterlacing. Or did you want to smooth it out, +/- antialiasing ?
In jagabo's version, to me it looks like to much processing/AA, as the text "Unmovable Mercenary", and various text popups are not as legible, but it's definitely got rid of the jaggies . Basically sharp edges, jaggie lines will "eat up" bitrate on youtube. A smoother , softer video will end up looking better on YT because of the low bitrate it uses
I would upload a 59.94 version, and when it switches over, it will automatically get the 59.94 treatment since it archives all your uploaded videos
perhaps a middle ground could work? preserve some blockness and text?
some questions about aviutl
what happens if I add videos of different frame rate to aviutl? my old project runs at 29.97 because the 1st video I added in was 29.97, so now if I am to replace all of those 29.97 videos with 59.9 ones, would it still work fine? do I need to change any setting?
Last edited by muffinman123; 25th Aug 2014 at 18:06.
LOL I suggested in your other thread at the beginning to use 60p, because YT announced support . No question that for these type of video games 60p will look waaaay better. Even if the quality per frame is lower, you won't really notice it in motion
Not sure how different frame rate videos are treated in aviutl. In most editors, they are downsampled . (eg. 59.94p on a 29.97p timeline would take every 2nd frame)
it sucks that I can't just cut and paste images across projects in aviutl... I can't imagine having to reorder all the images and back music and adjust volumes and fade in fade out and all the extra texts and stuff
Last edited by muffinman123; 25th Aug 2014 at 18:24.
Yes it sucks. You can cut & paste images, but you can't reclaim stuff that was discarded - You can't even do that with professional editors
That's why I suggested using 59.94p and mentioned YT support early on in your other thread.
Imagine when widespread support is implemented and you didn't prepare for it. You'd have to redo all your projects
You can always "dumb" things down, throw frames away, reduce the resolution etc... - but doing the reverse is usually impossible
***Planning is the most important step in any project .
You usually plan the highest quality project, then from that master project, you can output different formats, destinations (e.g. web, blu-ray, dvd, etc....) . Apply different filters for different scenarios - eg. you might want to denoise or apply AA filters to a youtube upload, but not for a high quality local file
so... after I deinterlace, what filter chain should I use to clean up the images?
In some NLE's you can change the timeline settings, then swap assets to retain all your edits and filters; but it's a bit of work and can be tricky to do. There might be some workaround in aviutl, maybe maverick or racer knows.
Definitely deinterlace first (and in case you missed it, I'll say it again: I would double rate deinterlace to 59.94 ) . It can be tough to deinterace well because parts of the overlays are static, motion underneath. Some deinterlacers can get fooled, or you will get a flickering in the overlay if you use 59.94p - e.g .yadif will do this. One way around that is to use motion masks in avisynth. Probably not possible with vdub alone.
Clean up - It's not really "noisy" . But it suffers from blocky , aliased edges. Game engine or your graphics settings didn't have very good AA. So I would apply some AA filter. Dozens of choices in avisynth, adjustable settings, so you can tweak to your taste strong vs. weak. Not sure if vdub has an AA filters
You can ask jagabo what he did as well and adjust to your tastes
x264 CLI. Some of the text could have been cleaner.
AviSource("scls107-3.avi") AssumeTFF() # interlaced, top field first ColorYUV(off_y=-20) # darks and brights too high PointResize(width/2, height) # actual resolution ~360 wide, with each pixel doubled ConvertToYV12(interlaced=true) # following filters require YV12 QTGMC() # smart bob # sequential partial upscales with sharpen gives sharper results than a single upscale nnedi3_rpow2(2, cshift="Spline64Resize", fwidth=640, fheight=480) Sharpen(0.2) nnedi3_rpow2(2, cshift="Spline64Resize", fwidth=960, fheight=720) Sharpen(0.2) nnedi3_rpow2(2, cshift="Spline64Resize", fwidth=1440, fheight=1080) Sharpen(0.2)
For the "unmovable mercenary" text you could try using alternate deinterlacing/scaling methods and overlaying that text onto the otherwise processed video. For example, yadif does a little better than qtgmc on that text (but worse on the rest of the picture).
can you also try the other clips with regular lighting? I'd like to see how the same filter process work on the brighter scenes, but my computer is busy encoding right now. thx