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. |
5th March 2023, 16:54 | #2102 | Link | |
21 years and counting...
Join Date: Oct 2002
Location: Germany
Posts: 716
|
Quote:
Your clip is wobbling a little on the left side in the archway. At least I think so, or is it just light flickering? And it has a little bit too much noise for my taste. But still looks way better than the jelly look I came up with so far. I'm sure now I have done something wrong. Because trying to merge your deflickering script bits with ex_autolevels into my scripts produced a lot of noticeable brightness changes along scenes which clearly is the opposite of what was intended. |
|
5th March 2023, 18:39 | #2103 | Link | ||
Registered User
Join Date: Nov 2009
Posts: 2,371
|
Quote:
Quote:
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
||
5th March 2023, 18:59 | #2104 | Link | ||
21 years and counting...
Join Date: Oct 2002
Location: Germany
Posts: 716
|
Quote:
Quote:
Could you please provide the script to your last sample clip. I'd like to give that a try on the whole film and see what it looks like in other scenes. |
||
5th March 2023, 19:58 | #2105 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,371
|
Yes, it's the last one in this post, you can also try the one above, and play with some values if you want. Hope it's stable enough with SceneStats(), luckily pinterf fixed a memory leak in ScriptClip that could make things more stable (for next version).
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
5th March 2023, 21:40 | #2106 | Link | |
21 years and counting...
Join Date: Oct 2002
Location: Germany
Posts: 716
|
Quote:
Also I tried to process entirely in 16bit because I encode to 10bit afterwards. But when I removed that convert to 8bit in your upper sample script, I got an overlay error message in the output file shown saying something about bit depth mismatch. Can I run that in 16bit somehow? |
|
5th March 2023, 23:06 | #2107 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,371
|
Stab2 is the proxy name I gave to Fred's stabilization example:
Code:
# https://forum.doom9.org/showthread.php?p=1981048 function Stabilize(clip c, int "offset", bool "info") { in = Default(info, false) of = Default(offset, 40) c vectors = MSuper().MAnalyse(isb=false) mdata = MDepan(vectors, rot=false, zoom=false, error= 65) DePanStabilize(data=mdata,dxmax=of, dymax=of, zoommax=0, rotmax=0, method=1, mirror=15, prev=1, next=1, info=in) }
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread Last edited by Dogway; 5th March 2023 at 23:09. |
6th March 2023, 15:51 | #2108 | Link | ||
Registered User
Join Date: Nov 2009
Posts: 2,371
|
Quote:
Code:
function Calm2 (clip clp) { # temporal gaussian average clp.ex_blur3D(0,0,2,"weighted",UV=3) # Remove areas of difference between temporal blurred motion search clip and # bob that are not due to bob-shimmer - removes general motion blur QTGMCp_KeepOnlyBobShimmerFixes(clp,4,true,fulls=true) # Gaussian blur, or Smart blur for less damaged sources # vsTCanny(1.5,mode=-1,u=3,v=3) ex_sbr(3,UV=3) }
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread Last edited by Dogway; 6th March 2023 at 16:04. |
||
6th March 2023, 16:42 | #2109 | Link | |
Registered User
Join Date: Dec 2005
Location: Sweden
Posts: 721
|
Quote:
Haven't tried but just removing mode_vertical can maybe screw it up. |
|
6th March 2023, 17:10 | #2110 | Link | |
Registered User
Join Date: Nov 2009
Posts: 2,371
|
Quote:
By the way, I noticed that in QTGMC the source is blurred vertically before prefiltering, so I added spatial blur before ex_blur3d() At the end I applied a deconvolution so it mimics more what QTGMC prefilter looks. Code:
function Calm2 (clip clp) { # temporal gaussian average blr = clp.removegrain(12) blr1 = clp.ex_boxblur(0,1,"weighted") blr2 = clp.ex_boxblur(1,0,"weighted") blr.ex_blur3D(0,0,2,"weighted",UV=3) # Remove areas of difference between temporal blurred motion search clip and # bob that are not due to bob-shimmer - removes general motion blur QTGMCp_KeepOnlyBobShimmerFixes(blr1, 4,true,true) TurnLeft() QTGMCp_KeepOnlyBobShimmerFixes(blr2.TurnLeft(),4,true,true) TurnRight() # Final edge blur removegrain(20) ex_unsharp(-0.25,Fc=width()/2.5) } EDIT: So for wobbling the best option is an unprotected temporal gauss as prefilter, later in my script I use MotionMask() to use a more protective denoiser to motion areas. Code:
function pref_DeWobble(clip clp) { # temporal gaussian average clp.ex_blur3D(0,0,2,"weighted",UV=3) # Final edge blur removegrain(20) ex_unsharp(-0.3,Fc=width()/2.5) } Code:
ffvideosource("noisy_original.mkv") propSet("_FieldBased",0) ConvertBits(16) ex_Luma_Rebuild(15.0, 0.004, 21, tv_out=true) ConvertBits(8,dither=1) Stabilize() crop(2,2,-6,-2) SceneStats("Range+Stats") pref = ex_autolevels( true ,true, true,Deflicker=true,tv_out=false) pref = ex_autolevels(pref,false,true,false,Deflicker=true,tv_out=false) pref3 = pref_DeWobble(pref) bk=SMDegrain(tr=2,mode="TemporalSoften",blksize=16,thSAD=400,LFR=false,refinemotion=true,prefilter=pref3) ft=SMDegrain(tr=2,mode="MDegrain" ,blksize=16,thSAD=300,LFR=false,refinemotion=true,prefilter=bk) ex_merge(bk, ft, MotionMask(pref3,scale=10,sharpness=5)) ex_unsharp(0.3) # And some film grain here
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread Last edited by Dogway; 6th March 2023 at 21:55. |
|
6th March 2023, 18:46 | #2112 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,371
|
Thanks, yes that's a great idea, it's actually used in some stages of LSFplus and SMDegrain, anyway I tested and it brings back some wobbling so the unprotected version is ok with the above code, but only for wobbling, for high noise I would motion protect it in some way.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
6th March 2023, 19:37 | #2113 | Link | |
Registered User
Join Date: Dec 2005
Location: Sweden
Posts: 721
|
Quote:
|
|
6th March 2023, 20:14 | #2114 | Link | |
21 years and counting...
Join Date: Oct 2002
Location: Germany
Posts: 716
|
Quote:
But I will also try your latest script idea and see how that performs in comparison. And everything now works in 16-bit as well. I've updated everything from your repo and no weird on screen message about bitdepth-missmatch anymore. Speaking of QTGMC. The film is progressive but the transfer was bad and has field drops here and there from capturing causing field shifts. So I let Ceppos tools run with your version of QTGMC+ at the very beginning of my script, like: Code:
# LoadPlugin("C:\Video Editing\MeGUI (x64)\tools\lsmash\LSMASHSource.dll") LWLibavVideoSource("H:\WORK\test.mkv") # AssumeFPS(25) CTelecine() CPostProcessing() propSet("_FieldBased",0) # (Denoising script here) # |
|
6th March 2023, 22:05 | #2116 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,371
|
Since the source is progressive I'm not sure what you are doing there before, but as long the outcome is also progressive there shouldn't be any problem.
Using the pref_DeWobble() as in my above script example gives virtually no wobble, that prefilter is not motion protected but it passes through one SMDegrain and then another one as prefilters masking out any blending in the process. For the grain curtain adding some grain in the end helps mask out the effect, as well as add some hallucination and psychovisual sharpness. Personally I don't like FFT3DFilter because it's too slow, and the output can be worm-like. Here the result: Link And this is a before-after comparison, download for best quality: https://drive.google.com/file/d/1iI3...6WyOy-0iBwn-ib
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread Last edited by Dogway; 31st October 2023 at 23:50. |
6th March 2023, 22:47 | #2117 | Link | |
21 years and counting...
Join Date: Oct 2002
Location: Germany
Posts: 716
|
Quote:
With Ceppos tools I can fix that and put the fields back in the right order. It uses QTGMC in the process but I have no idea how exactly and to what extend. Since you talked about QTGMC I thought it could maybe abet the wobbling effect when processing the picture? If no, I'm fine. If it maybe does, I have to look for some other tools that check for the correct field order of a PAL frame and shuffles them back in the right sequence or duplicates a field if there is one missing. Last edited by LeXXuz; 7th March 2023 at 11:03. |
|
6th March 2023, 23:02 | #2118 | Link | |
Registered User
Join Date: Dec 2005
Location: Sweden
Posts: 721
|
Quote:
Edit: Yes fft3d is probably a bit slow but it actually helped me alot. The combination of fft3d(spatio-temporal) with mvtools is pretty smooth. Knlmeanscl is for me too slow (2013 old setup) and temporally jittery. I would love to love able to stabilize the jitter/shimmer/dancing of fft3d or any other good spatial filter to get a fine result. Just so you know @Dogway I read your scripts with a magnifying glass. Loads of great inspiration. Last edited by anton_foy; 7th March 2023 at 08:00. |
|
7th March 2023, 07:24 | #2120 | Link | |
Registered User
Join Date: Jan 2018
Posts: 2,169
|
Quote:
https://github.com/AmusementClub/vs-nlm-cuda |
|
Tags |
avisynth, dogway, filters, hbd, packs |
Thread Tools | Search this Thread |
Display Modes | |
|
|