View Full Version : Restoring low-quality DVD source, TV show from the 80s
Boulder
3rd June 2011, 11:13
I'm currently/finally working on the last steps of cleaning up the Sledge Hammer! DVDs, one of my favourite TV series. Unfortunately the quality of the original prints has been very low so the result on the DVD is far from optimal.
I uploaded a particularly bad-looking scene, very soft image with swimming noise. If I remove the noise, everything starts to look like an oil painting. If I leave the noise, it simply looks ugly and eats bitrate (x264 at CRF19) for breakfast.
http://www.mediafire.com/?uroldccbjzfybn1
As my source is a fieldblended conversion of NTSC to PAL, I also included an untouched sample from the DVD to analyse if necessary.
http://www.mediafire.com/?4b44990qdb4ailk
Does anyone have some hints? I've got plenty of old TV shows I would like to clean up, and most of them suffer from the same issues. So any close-to-generic solutions or approaches to the problem are warmly welcomed.
Mini-Me
4th June 2011, 02:39
Have you tried adding grain? I can't give any specific suggestions, because I haven't really done any work with the required filters yet myself, but I could suggest a general three-step approach:
Denoise with whatever the cool kids use. You probably know a lot more than I do about denoisers given your seniority. :p
Optionally sharpen up the image. Personally, I'd toy with FQFocusDefocus, SSSharp, or SeeSaw, but then again, they might just increase the "oil painting" effect after denoising.
Add some light generated grain to give the clip some more texture. It'll still eat bitrate for breakfast compared to the smooth scene, but it should look much better than the original noise. The two most obvious options are AddGrain/AddGrainC (http://forum.doom9.org/showthread.php?t=111849) and GrainFactory (http://avisynth.org/mediawiki/GrainFactory3), which is based on AddGrain. (I wonder if it would be useful to create more stable textures and fake detail by creating a motion-compensated grain addition filter?)
I could be off base of course...still a noob and all.
Boulder
4th June 2011, 12:37
I think you're on the right track, adding some artificial grain is a must. I experimented with GrainFactory3 briefly and I think I just need to find the right size of grain to make it look good. The default values produce a bit too sharp-looking grain to my taste.
I stepped back to the start and started re-encoding the bobbed streams to feed to SRestore for the final result, and use a soft-bobbed clip to analyse. I'll try to avoid any denoising at this stage and do it after the final structure is created. I think one part of the problem was QTGMC denoising the stream (I don't know of any better bobber even for fieldblended sources).
Boulder
13th June 2011, 10:06
Now I'm finally back at the point where the real image processing should occur. First I tried to filter the noise to death and restore some afterwards, but couldn't find a satisfying solution.
Then I did some more searching and reading, and came across the idea of denoising different areas of the frame in a different manner (http://forum.doom9.org/showthread.php?t=153589, post 8 by cretindesalpes). As my problem consists of mostly having noise in flat areas which in turn look ugly after encoding to the final format, I could filter them as hard as I want but still retain most of the little detail that is left in the original source.
My question regarding this approach is that is the concept basically good-to-go after adjusting thY1 and thY2 according to each source? I'm not at all familiar with masks as I've only started looking at the concept along this small project of mine. What I understood from looking at the output mask is that I need to get as much edge and detailed areas "coloured" while keeping the flat areas out, but is there something to do to help mt_edge find either of them from the frame?
Sharc
13th June 2011, 13:16
@boulder
Did you experiment with SeeSaw for denoising / sharpening already?
Something like:
# a = TheNoisySource
# b = a.YourPreferredDenoising()
# SeeSaw( a, b, [parameters] )
a=last
b=fluxsmoothST(5,7)
SeeSaw(a,b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Szp=16, bias=1, sootheT=25)
Boulder
13th June 2011, 13:32
I did some testing, albeit briefly, but couldn't find satisfying values for the parameters. I have had similar problems with SeeSaw before, I either get a too crisp image or the effect is just not enough. However, I could try again with the noisy SRestored stuff.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.