Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
![]() |
|
Thread Tools | Search this Thread | Display Modes |
![]() |
#1 | Link |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 690
|
The power of Avisynth: new 8mm film restoring examples
Hello everybody,
New film 8mm restoration examples on Vimeo and youtube: https://vimeo.com/user678523/videos/all/sort:date https://www.youtube.com/channel/UC_k...CujwT_fZHN6jlg Please set Vimeo and Youtube player quality to HD if possible. Used filter chain: - RemoveDirtSMC() - GamMac() (wonderful filter, thank you again Stainlesss) - DePanStabilize() - Tweak() (6x tweak() separate colors with starthue and endhue) - RgbAdjust() - McDegrainSharp() - Special sharpening: - UnsharpMask (from WarpSharp) radius 3 - blur - Unsharpmask radius 2 - blur - final: Sharpen() It seems that adding blur between sharpening steps avoids halos. I buy a Belgian Beer for someone who can show me halos on my example clips ![]() I had to solve a few problems: the newest DePan.dll 1.13.1.0 is very good, no more issues at scene change. But it creates some kind of "raster" effect in the AvsPmod preview. In VDub however, this effect is not there. After many testings, I discovered that MvTools2 2.5.11.22 (used both in McDegrainSharp and RemoveDirtSMC) was causing the problem. I replaced it with MvTools 2.4.2.0 and the "raster" effect in AvsPmod was gone. Also, RemoveDirtSMC() was causing problems in AvsPmod when trimming. (frame read errors) This was solved by changing blksize to 16 in MAnalyse. Anyhow, I'm pretty happy with the results. Feedback and/or suggestions are welcome as usual ![]() PS: the Vimeo clips can be downloaded in Xvid for further examination Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest Last edited by videoFred; 7th February 2017 at 13:13. |
![]() |
![]() |
![]() |
#2 | Link | ||
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
Quote:
Fred, can you try MvTools current ie "MvTools2 2.7.14.22 (20170206) with depans" Uploaded Yesterday, see if it displays the raster type effect described, thanx. (Maybe we can get it fixed if so) I'll down all samples tomorrow, hope the XVid samples are without subs (Anything special you have to do to get the XVid samples ?, Never used Vimeo before) EDIT: Quote:
Also, What version AvsPMod affected, for devs ? EDIT: Fred, is there a new version of your script somewhere, latest seems to be dated in 2012 ?
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 7th February 2017 at 15:11. |
||
![]() |
![]() |
![]() |
#3 | Link | |||||
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 690
|
Quote:
![]() Quote:
Quote:
![]() Sorry for the subs, I must protect my work. But I could upload them without subs for you only ![]() Quote:
Quote:
many greetings, Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
|||||
![]() |
![]() |
![]() |
#4 | Link | |||
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
Quote:
Quote:
Quote:
Steve. EDIT: I see that you like MCDegrainSharp, was just an daft idea to see if I understood how to use MvTools, but I use it all of the time now. Do you use the update one with 'Precise' arg ? any improvement ? [EDIT: I usually dont bother] EDIT: MCDegrainSharp:- https://forum.doom9.org/showthread.p...rp#post1508635 Precise version a few posts later. This lot could probably be improved for Precise, (uses blksize=bs/2, overlap=bs/4 in all incantations) Code:
backward_vec3 = (Precise) ? MRecalculate(super, backward_vec3, blksize=bs/2, overlap=bs/4,thSAD=100) : backward_vec3 backward_vec2 = (Precise) ? MRecalculate(super, backward_vec2, blksize=bs/2, overlap=bs/4,thSAD=100) : backward_vec2 backward_vec1 = (Precise) ? MRecalculate(super, backward_vec1, blksize=bs/2, overlap=bs/4,thSAD=100) : backward_vec1 forward_vec1 = (Precise) ? MRecalculate(super, forward_vec1 , blksize=bs/2, overlap=bs/4,thSAD=100) : forward_vec1 forward_vec2 = (Precise) ? MRecalculate(super, forward_vec2 , blksize=bs/2, overlap=bs/4,thSAD=100) : forward_vec2 forward_vec3 = (Precise) ? MRecalculate(super, forward_vec3 , blksize=bs/2, overlap=bs/4,thSAD=100) : forward_vec3 and check internally for either bool or int(0->3) supplied, error if not, and convert bool true to 3 and false to 0) EDIT: There were some comments later, maybe I also implement what master Feisty2 said.
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 7th February 2017 at 16:47. |
|||
![]() |
![]() |
![]() |
#6 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,739
|
|
![]() |
![]() |
![]() |
#7 | Link | |
Registered User
Join Date: Sep 2014
Posts: 133
|
I'm talking about script for this
Quote:
|
|
![]() |
![]() |
![]() |
#8 | Link |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 690
|
Yes, it's a new script, not ready for publishing. But if you are looking for a solution for your sharpening problem: try blur() between sharpening steps. This is not a joke, that's how I did it.
Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
![]() |
![]() |
![]() |
#9 | Link | |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 690
|
Quote:
Thank you for the hint ![]() Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
|
![]() |
![]() |
![]() |
#10 | Link |
Registered User
Join Date: Oct 2014
Posts: 34
|
There are two different types RemoveDirtSMC()...
http://forum.doom9.org/showthread.ph...46#post1559146 http://forum.doom9.org/showthread.ph...32#post1699132 and two different types McDegrainSharp(). https://forum.doom9.org/showthread.p...76#post1700776 https://forum.doom9.org/showthread.p...45#post1737045 What type of RemoveDirtSMC() and McDegrainSharp() do you use? By the way, why do prefer RemoveDirtSMC() instead of RemoveDirtMC()? |
![]() |
![]() |
![]() |
#11 | Link |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 690
|
Hello EHarlen ,
I have done so many testings in the past.... Probably RemoveDirtSMC() was giving better results than RemoveDirtMC(). But you can try them yourself and see what you get. I am currently using these versions: RemoveDirtSMC(): Code:
# FUNCTION RemoveDirtSMC #============================================================================================================================================. function RemoveTempGrain(clip clp, int "_mode") { _mode = Default(_mode, 17) rg = RemoveGrain(clp, mode=_mode) return TemporalRepair(rg, clp) } function RemoveDirtS(clip clp, int "limit", bool "_grey") { _grey = Default(_grey, false) limit = Default(limit, 6) clensed = clp.Clense(grey=_grey, cache=4) alt = clp.RemoveGrain(10) return (RestoreMotionBlocks(clensed, clp, alternative=alt, pthreshold=4, cthreshold=6, gmthreshold=40, \ dist=1, dmode=2, debug=false, noise=limit, noisy=16, grey=_grey)) } function RemoveDirtSMC(clip clp, int "limit", bool "_grey") { _grey = Default(_grey, false) limit = Default(limit, 6) super1 = MSuper(clp, pel=2, sharp=2) bvec1 = MAnalyse(super1, isb=true, blksize=16, delta=1, truemotion=true) fvec1 = MAnalyse(super1, isb=false, blksize=16, delta=1, truemotion=true) backw1 = MFlow(clp, super1, bvec1) forw1 = MFlow(clp, super1, fvec1) clp = Interleave(backw1, clp, forw1) clp = clp.RemoveDirtS(limit, _grey).removetempgrain(10) clp = clp.SelectEvery(3, 1) return clp } Code:
function McDegrainSharp(clip c, int "frames", int"strenght",float "bblur", float "csharp", bool "bsrch") { # Based on MCDegrain By Didee, http://forum.doom9.org/showthread.php?t=161594 # Also based on DiDee observations in this thread: http://forum.doom9.org/showthread.php?t=161580 # "Denoise with MDegrainX, do slight sharpening where motionmatch is good, do slight blurring where motionmatch is bad" # In areas where MAnalyse cannot find good matches, the blur() will be dominant. # In areas where good matches are found, the sharpen()'ed pixels will overweight the blur()'ed pixels # when the pixel averaging is performed. frames = default(frames, 2) strenght = default(strenght,400) bblur = default(bblur, 1.0) csharp = default(csharp, 1.0) bsrch = default(bsrch, true) blocks = 16 overl = 8 c2 = c.blur(bblur) super = bsrch ? c2.MSuper(pel=2, sharp=1) : c.MSuper(pel=2, sharp=1) super_rend = c.sharpen(csharp).MSuper(pel=2, sharp=1,levels=1) backward_vec3 = MAnalyse(super, isb = true, delta = 3, blksize=blocks, overlap=overl) backward_vec2 = MAnalyse(super, isb = true, delta = 2, blksize=blocks, overlap=overl) backward_vec1 = MAnalyse(super, isb = true, delta = 1, blksize=blocks, overlap=overl) forward_vec1 = MAnalyse(super, isb = false, delta = 1, blksize=blocks, overlap=overl) forward_vec2 = MAnalyse(super, isb = false, delta = 2, blksize=blocks, overlap=overl) forward_vec3 = MAnalyse(super, isb = false, delta = 3, blksize=blocks, overlap=overl) (frames<=0) ? c :\ (frames==1) ? c2.MDegrain1(super_rend, backward_vec1,forward_vec1,thSAD=strenght) :\ (frames==2) ? c2.MDegrain2(super_rend, backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=strenght) :\ c2.MDegrain3(super_rend, backward_vec1,forward_vec1,backward_vec2,forward_vec2,backward_vec3,forward_vec3,thSAD=strenght) return(last) }
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest Last edited by videoFred; 31st October 2017 at 11:18. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|