View Full Version : How improve low-res source aliasing?
Forteen88
20th October 2020, 18:51
I wonder, how do I improve the picture-quality of this DVD TV-show (The Office UK)? I'm referring to the aliasing. This is even more visible when using a big HD monitor (stretching out the video of course).
Here's a frame from the first episode,
https://thumbs2.imagebam.com/84/8f/2b/cf6d0d1356895344.jpg (http://www.imagebam.com/image/cf6d0d1356895344)
Should I use some anti-aliasing plugin (please recommend me some, if it's good), or does that have negative side effects?
Thanks
wonkey_monkey
20th October 2020, 19:14
If it's anything like Fifteen Storeys High, I just picked the sharpest field and nnedi3'd it. The video quality's not great regardless (shot on SD video and reduced to 25fps), so there's only so much polishing it can take.
Antialiasing isn't quite the right tool for the job because you've already one good field that doesn't need any.
Boulder
20th October 2020, 19:15
I'd give the good old QTGMC(inputtype=x) a try. x can be 1-3 for progressive input.
Forteen88
20th October 2020, 20:02
If it's anything like Fifteen Storeys High, I just picked the sharpest field and nnedi3'd it.Thanks, but I don't really know what you mean :P
Just setting: needi3()
made the frame look too blurry (and with many details removed) for my taste. I guess I'll have to set appropriate parameters if I'll use needi3.
@Boulder. Thanks a lot, setting QTGMC(inputtype=2) (and QTGMC(inputtype=3) was good too) made the aliasing less visible, and it kept the details.
wonkey_monkey
20th October 2020, 20:05
nnedi3 may be throwing away the wrong field by default. Try
nnedi3(field = 0)
or
nnedi3(field = 1)
One should certaintly look better than the other.
Forteen88
20th October 2020, 20:17
@wonkey_monkey. Thanks, yeah,
nnedi3(field = 0)
looked great. It did even better anti-aliasing than QTGMC(inputtype=2), but I'll have to check which one keeps most details too.
Mounir
20th October 2020, 20:20
try this after upscaling
main=last
main
Santiag() # reduce aliasing
filtered=last
main
mt_edge().mt_expand
mymask=last
mt_merge(main, filtered, mymask)
Forteen88
20th October 2020, 20:46
@Mounir. Thanks, but I still think that the simple NEEDI3(field=0) does a better anti-aliasing.
I even tried,
Santiag(strh = 3, strv = 3)
which is the highest recommended horizontal and vertical anti-aliasing strength for Santiag().
Forteen88
21st October 2020, 07:14
By the way, should I always upscale (to like 720p) this type of video before using nnedi3 to anti-aliasing it, if I intend to always look at it on a 24" (or bigger) screen? That is, will the anti-aliasing look much better then?
UPDATE: Hmm, I tried upscaling the source with z_Spline64Resize(892,720) before using nnedi3 to anti-aliasing it. I also tried upscaling (using Lanczos-resize in XnView) a frame (in its original resolution) that was already nnedi3 anti-aliased, and in my opinion this latter option surprisingly looked much better.
FranceBB
21st October 2020, 07:45
By the way, should I always upscale (to like 720p) this type of video before using nnedi3 to anti-aliasing it, if I intend to always look at it on a 24" (or bigger) screen? That is, will the anti-aliasing look much better then?
UPDATE: Hmm, I tried upscaling the source with z_Spline64Resize(892,720) before using nnedi3 to anti-aliasing it. I also tried upscaling (using Lanczos-resize in XnView) a frame (in its original resolution) that was already nnedi3 anti-aliased, and in my opinion this latter option surprisingly looked much better.
Yep, I always clean first and upscale next.
Not only is generally better qualitatively, but it also saves CPU Cycles as the filters have to work on a smaller frame.
Besides, whenever it comes to interlacing issues, the less thing you do before taking care of that, the better, so you made the right choice.
By the way, you could give:
nnedi3_rpow2(cshift="Spline64ResizeMT", rfactor=2, fwidth=892, fheight=720, nsize=4, nns=4, qual=1, etype=0, pscrn=2, csresize=true, mpeg2=true)
a go for the upscaling part rather than calling Spline64 individually.
Forteen88
21st October 2020, 09:11
@FranceBB. Using that line, I get error: "nneedi3_rpow2: error using env->invoke (function not found).
I use needi3 v0.9.4.55
UPDATE: Oh, correct spelling is "nnedi".
FranceBB
21st October 2020, 11:53
@FranceBB. Using that line, I get error: "nneedi3_rpow2: error using env->invoke (function not found).
I use needi3 v0.9.4.55
Uhm... that's weird.
Are you using the Jean Philippe Scotto di Rinaldi version of NNEDI?
https://forum.doom9.org/showthread.php?t=174248
Download: https://github.com/jpsdr/plugins_JPSDR/releases/download/3.2.4/plugins_JPSDR_v3_2_4.7z
wonkey_monkey
21st October 2020, 13:02
Check the spelling. It's nnedi3_rpow2 but the reported error message was nneedi3_rpow2
Forteen88
21st October 2020, 14:26
Check the spelling. It's nnedi3_rpow2 but the reported error message was nneedi3_rpow2My bad, I mistakenly wrote that wrong spelling because I couldn't copy that error-text from the frame. I copied his whole line of text to the clipboard and pasted it into AvsPmod, so it's not that.
@FranceBB. I don't know which dev's version I got of nnedi3, but I'll try your recommendation when I'm done with my ongoing encode.
UPDATE: Oh, I just needed plugin_JPSDR_v3_2_4.7z for NNEDI3 to work with that parameter, I thought that extra-plugins weren't required for nnedi3_rpow2 call. But that nnedi3_rpow2 call didn't anti-aliased enough compared to just that simple NEEDI3(field=0) call.
By the way, here are comparisons,
Frame42600 Source, only cropped and used BorderControl,
https://thumbs2.imagebam.com/f5/94/76/871a051357074050.jpg (http://www.imagebam.com/image/871a051357074050)
Frame42600 Source, cropped, BorderControl and nnedi3(field=0),
https://thumbs2.imagebam.com/7d/36/07/b15af21357074107.jpg (http://www.imagebam.com/image/b15af21357074107)
UPDATE: Unlike season 1, in season 2 of "The Office UK", nnedi3(field=1) looked better than nnedi3(field=0).
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.