Hi I have this movie its in very bad shape, alot of dust and noise and colour is poor too.
Can anything be done to improve this please:
https://easyupload.io/u13p0i
+ Reply to Thread
Results 1 to 22 of 22
-
-
Here is a very long thread on exactly this subject:
The power of Avisynth: restoring old 8mm films.
Here is a later extension of the same thread:
Capturing and restoring old 8mm films
You will first need to remove the duplicate which occurs every 25 frames. This will leave you with the original 24 fps film. The scripts I refer to (or my version of the same script, which is posted in those threads) should do a pretty good job on this clip. -
I don't know what to do with the color since there's so little of the true colors left and, aside from skin tones, I have no idea what the colors are supposed to be. But here's some very heavy filtering for the spots, noise, and flicker.
Code:LSMASHVideoSource("A Massacre Survivor-(1080p).mp4") src = last BilinearResize(1024, 576) Stab(mirror=15) TDecimate(Cycle=25, CycleR=1) QTGMC(InputType=2) RemoveDirtMC(30, false) Overlay(last, TTempSmooth(maxr=7, lthresh=30, cthresh=35, strength=5), mask=mt_motion(thy1=20, thy2=20).mt_expand().Invert().Blur(1.5)) SMDegrain(thsad=1000, tr=5, PreFilter=2) aWarpSharp2(depth=10) CAS(0.7) nnedi3_rpow2(2, cshift="Spline36Resize", fwidth=src.width, fheight=src.height)
-
Here is a result using a variation of the scripts I've posted over in doom9.org. I first used TFM/TDecimate to get rid of the dup every 25 frames and then restored the 24 fps version.
Dirt Removal Test
jagabo's is definitely better overall. My color correction using GamMac might be a tad better, although as he pointed out, one color channel is basically gone, so there isn't much you can do except balance the blue and red channels.Last edited by johnmeyer; 3rd Oct 2023 at 22:19. Reason: update link
-
Wow, both samples look good. Thank you so much.
You might go with a higher TTempSmooth strength to reduce flicker even more. Or lower strength (or not use it at all) if you don't mind the flicker. Some detail is lost along with the noise, of course.
My color correction using GamMac might be a tad better -
Here's a rough approximation of johnmeyer's color correction:
Code:ConvertToRGB().RGBAdjust(rb=-11, bb=-15).RGBAdjust(r=198.0/191.0, b=198.0/216.0).RGBAdjust(rg=0.75).ConvertToYV12()
-
Thanks Jagabo.
Also I'm trying to tweak your script a little bit. Which filter would I need to adjust to get back some of the details lost. For example some of the fighting hoop is kind of missing in few frames. -
For the colors: try Grayworld https://github.com/Asd-g/AviSynthPlus-grayworld example: https://imgsli.com/MjExMzI4
users currently on my ignore list: deadrats, Stears555, marcorocchini -
The wooden (?) hoop that appears about 1 minute into the video? Unfortunately, all three of the temporal filters are responsible for portions of the hoop disappearing. RemoveDirtMC, TTempSmooth overlay, SMDegrain. On some frames it may be mostly one. On other frames it may be another. And with some frames it's a combination.
-
I understand now. Nevertheless the script you've given is amazing.
Much appreciated. -
Potentially, TTempSmooth (with the extreme settings) is the most damaging. But it's also responsible for reducing lots of the flicker (and the residual dirt/spots/junk that the other filters left behind). It can blur/blend details when there is motion. I tried to limit that damage by applying it only to stationary areas (hence the Overlay with mask=mt_motion).
RemoveDirtMC removes spots that appear for only one frame. If a spot appears on the frame, but not on the frame before and after, (and the before and after frames are the same in that area) it removes it. It is motion compensated so it follows motion between frames.
SMDegrain is a general temporal noise reducer. It is motion compensated so it also follows motion between frames. -
-
To add back the hoop (or any other lost detail), you either have to try to come up with a clever mask, or you have to replace that one frame with another which uses less dirt reduction. I often make TWO different noise-reduced versions: one with really high dirt removal settings, and the other will low settings. I then put the two videos on the timeline in my NLE (Vegas) and delete the frame where something disappears, allowing the more moderate version to "show through" for that one frame.
There was a thread in doom9.org about using a mask to detect morphing artifacts and switch to another version of the video to cover the artifacts (similar problem), but I couldn't quickly find the link to that thread. -
The thread over from doom9s is probably: https://forum.doom9.org/showthread.php?p=1946031
users currently on my ignore list: deadrats, Stears555, marcorocchini -
Thank you Johnmeyer. That's a very good tip.
Thanks for the link Selur. Much appreciated. -
If you were mixing and matching whole frames of a lightly / heavy / other filtered version(s) , you could also use RemapFrames() in avisynth
But replacing whole frames would leave more dirt on other parts of those selective frames. So you'd have whole dirty and clean frames, it would look a bit out of place. Ideally you'd want more control to add back only those details, but keep the dirt removal, If you were going to use a NLE or compositing tool - you also could be more selective by painting the alpha channel on specific areas reveal back the details on the lightly filtered layer, yet keep the other parts of the frame clean. You're also combining 2 or more filtered versions, but essentially being more selective with the mask area using alpha channel paintint -
While playing with the Overlay(TTempSmooth()) I noticed that the scene change threshold for mt_mask() was to low for this video. All the noise makes it see scene changes everywhere. Increasing the threshold works a little better. The default was thT=10, I increased it to 30. I also raised the thy settings from 20 to 30.
Code:LSMASHVideoSource("A Massacre Survivor-(1080p).mp4") src = last BilinearResize(1024, 576) Stab(mirror=15) TDecimate(Cycle=25, CycleR=1) QTGMC(InputType=2) RemoveDirtMC(30, false) Overlay(last, TTempSmooth(maxr=7, lthresh=30, cthresh=35, strength=5), mask=mt_motion(thy1=30, thy2=30, thT=30).mt_expand().Invert().Blur(1.5)) SMDegrain(thsad=1000, tr=5, PreFilter=2) aWarpSharp2(depth=10) CAS(0.7) nnedi3_rpow2(2, cshift="Spline36Resize", fwidth=src.width, fheight=src.height)
-
Thanks Poisondeathray for that useful tip.
Thanks Jagabo. I shall tweak the script as described by you. Much appreciated.
Similar Threads
-
Restoring VHS Tapes with Damage?(White Horizontal Lines, Colour Distortion)
By VideoGeezer in forum RestorationReplies: 9Last Post: 1st Nov 2021, 10:14 -
First foray in colour correcting/grading Kodachrome 16mm film
By Dutchsteammachine in forum RestorationReplies: 22Last Post: 18th May 2021, 15:23 -
correcting messy vhs recording
By phelissimo_ in forum RestorationReplies: 3Last Post: 15th May 2021, 06:48 -
Software for Correcting Headers/Flags
By MisterF in forum Video ConversionReplies: 1Last Post: 23rd Jul 2020, 19:27 -
Correcting rotated video
By CarryNL in forum Newbie / General discussionsReplies: 2Last Post: 25th May 2020, 07:11