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. |
![]() |
#1021 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,372
|
The idea for the video came to me the last week while working on ConvertFormat() I realized there are many hidden features, like say set kernel as Lanczos8 instead of Lanczos to define the taps. The different aliases that ConvertFormat supports, check the 'show' panel, play with the preview filters and sliders to show how the curve changes in real time for example in ex_contrast(), etc. I also want to showcase GamutWarning 'show' panel and explain its options, same with SoftLimiter and a few more filters. So it's not only AvspMod.
The problem for recording is two sided, I only have a classic microphone from 20 years ago (at least its a shure) but without a pedestal and it's a pain to set up. And the other my monitor is 4K so everything would look too small for those with 1080p monitors. Also I'm yet to finish ConvertFormat's more flagrant issues, do SceneChange and SceneStats and finish MVTools correlations probably having to implement CoS by hand. There are a few more little things but I won't do. https://forum.doom9.org/showthread.p...68#post1943568 https://forum.doom9.org/showthread.p...94#post1944894 https://forum.doom9.org/showthread.p...16#post1950216 https://forum.doom9.org/showthread.p...17#post1957617 https://forum.doom9.org/showthread.p...28#post1961128 https://forum.doom9.org/showthread.p...33#post1962333 https://forum.doom9.org/showthread.p...62#post1963062 https://forum.doom9.org/showthread.p...68#post1964768 https://forum.doom9.org/showthread.p...07#post1965507 The common evasive or snarky comments. It doesn't affect me, used to, but now I'm calm like zen :D It's a bit sad because I do care a lot about user experience and half (or more) of my observations are directly ignored or dumped, some not of course and I do appreciate but AvsPmod has a lot of potential, I rarely repeat myself so those suggestions are now in the thrash bin. You say "do it yourself", no thanks I hate python to death, just about to install Julia and start learning a sane language (+maths). For months I had a list of AvspMod UX quirks that I drip-feed as to not overload you. I guess before retiring here I will post them all at once, and whoever sees that can keep improving the program. "nagging"... might be reading too much, reporting != nagging, actually quite the contrary, it's someone using the tools you created, caring for them and giving you in return some feedback. Some people bring their daily affairs frustrations online so I can understand, but I do not, I don't have social media or anything. For me online is reading news, learning and working, nothing else.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
![]() |
![]() |
![]() |
#1022 | Link |
Registered User
Join Date: Oct 2018
Location: Germany
Posts: 1,075
|
You will have to learn Python after all.
Because I will only take it slowly, there are other things in life. If here and there is a bug to find or smaller things that do not cost me my nerves. I had not seen the whole extent at the beginning and wanted to change for me personally only a few small things. But then it just didn't stop, and the next big thing would be to update AvsPmod to Python 3, but I am too 'late' for this... So I will slowly retire and continue only as I please, otherwise I'd like to leave the field to younger people with more verve. Greetings.
__________________
Live and let live |
![]() |
![]() |
![]() |
#1025 | Link | |
Registered User
Join Date: Nov 2009
Posts: 2,372
|
Quote:
I have ported from GLSL, C, C++, Python and assembly. It's pretty ridiculous for some programmers to feel superior and talk down to others just because they don't use their beloved programming language. It's like a painter laughing out at another painter because they use a lower grade canvas when they can't even draw a hand (while not even using the highest grade canvas). The all glory C++ is already phased out by Rust, and Python slowly by Julia. As for AVS+, your beloved C++ mt_luts() is in several orders of magnitude slower than ex_luts(). I know Python, I made myself some addons for Blender to make it behave with Pies more like Maya's MarkingMenus and more additions, it took me several months. I also use Python for external scripts. It's just a horrible language to work with and I'm weeks away from leaving Doom9 so I don't care about AvsPmod, just thought on helping while I was here, to those that care to listen that is.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
|
![]() |
![]() |
![]() |
#1026 | Link | |
Guest
Posts: n/a
|
@ Dogway, this is a little scary, we've lost way too developer's recently, hopefully you're not serious....
Quote:
I certainly appreciate what you've done, and even tho I've probably only scratched the surface, it's improved what I do. Cheers |
|
![]() |
![]() |
#1027 | Link | |
Registered User
Join Date: Dec 2005
Location: Sweden
Posts: 721
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#1029 | Link |
Useful n00b
Join Date: Jul 2014
Posts: 1,666
|
Any chance to pull up the schedule?
Maybe this forum will suit you better: https://digitalvideofordummies.blogspot.com/ Or come on over to the DG tools forum. I hang out there a lot. We can be buddies. Last edited by videoh; 13th March 2022 at 15:36. |
![]() |
![]() |
![]() |
#1031 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,372
|
Why? It requires it. I updated QTGMC+ replacing some ex_vinverse() calls with vinverse(), as Asd-g updated and optimized the plugin.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
![]() |
![]() |
![]() |
#1033 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,372
|
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
![]() |
![]() |
![]() |
#1035 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,372
|
This is the first version of SceneRange(). It pushed me to the limits for the last week, besides I wasn't very focused due to birthday celebrations, repo bug reports, etc.
The filter writes "_SceneRange" frame properties with lookahead, so at the start of the scene you already know on what frame it ends. This is useful for scene based stats/filtering. If you see something odd or that can be optimized please chime in, I need all the help here. Code:
# Dependencies ResizersPack() # Core SC algo from ScSelect_HBD() function SceneRange(clip a, int "radius", clip "dClip", float "dfactor", float "MinDif", bool "show") { rgb = isRGB(a) FC = FrameCount(a) FR = FrameRate (a) fs = propNumElements (a,"_ColorRange") > 0 ? \ propGetInt (a,"_ColorRange") == 0 : rgb rad = Default(radius, 0) # 0~2 Currently noop dfactor = Float(Default(dfactor,3.5)) # Range 2.5~4.0 ::: Change default to 4.0 to emulate ScSelect Mindif = Float(Default(MinDif ,1.0)) # Range 0.5~4.0 ::: Change default to 0.0 to emulate ScSelect Show = Default(show, false) ddClp = Defined(dClip) Assert(!rgb, "SceneRange: DClip YUV Only") Assert(1.0 <= dFactor,"SceneRange: 1.0 <= dFactor") Assert(0.0 <= Mindif ,"SceneRange: 0.0 <= MinDif") # Prefiltering dClip = ddClp ? dClip : a dClip = dClip.ExtractY().ConvertBits(8, dither=-1, fulls=fs, fulld=true) dClip = width(dClip) > 1024 ? dClip.RatioResize(720.,"adjust2w",2,"bicubic",b=-0.5,c=0.25) : dClip ScriptClip(a, function [dClip,dfactor,MinDif,show,FC,FR] () { SF = propNumElements("_SceneRange",offset=-1) > 0 SA = SF ? propGetAsArray ("_SceneRange",offset=-1) : [-1,-1] n = current_frame nDf0 = 0 nTh = 0 last if (n-1>SA[1]) { # 60 secs MAX lookahead lookahead = min(round(FR*60), FC-n-1) for (f=1, lookahead, 1) { dClip = dClip.SelectEvery(1,1) pDf0 = dClip.YDifferenceFromPrevious() nDf0 = dClip.YDifferenceToNext() nTh = pDf0*dfactor+MinDif SE = n+f f = nDf0>nTh ? lookahead : f # stopper } propSet("_SceneRange", [n,SE]) } } ) # Set Start (and fix End) ScriptClip( function[] () { SD = propGetAsArray("_SceneRange",offset=-1) SD1 = SD[1] n = current_frame LP = last # lookback for (lb=n, 1, -1) { LP = LP.SelectEvery(1,-1) PR = propGetAsArray(LP,"_SceneRange") PE = PR[1] lb = PE != SD1 ? 1 : lb } SA = propGetAsArray("_SceneRange",offset=-(n-PE)-1) propSet("_SceneRange", [(n+1 > SD1 ? PE : SA[1]) + 1, SD1]) } ) }
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread Last edited by Dogway; 20th March 2022 at 22:53. |
![]() |
![]() |
![]() |
#1036 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,372
|
Uploaded ScenesPack, a new pack to deal with scene statistics. Includes SceneRange() to write scene change frame numbers into frame properties and SceneStats() to write scene statistics (min, max, thresholded min, thresholded max, average and median) into frame properties, with an option also to write to a file.
It works dynamically, without the need to write to a file. Every frame knows about its own scene bounds and scene statistics. You need to update to latest ExTools v8.2. ![]() By the way, I have been experimenting with an idea for protecting shading from smearing. The idea is to accentuate shading in local space so motion estimation can pick up motion vectors. This first example is a simple isoparam, mode included soon into PseudoColor(). It's simple. ![]() This other one has ex_luma_rebuild() as a preprocessor to expand dark areas, later I apply the same sinusoidal remap in a non-linear fashion. Higher amplitude and frequency on the lower half. ![]()
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread Last edited by Dogway; 21st March 2022 at 18:38. |
![]() |
![]() |
![]() |
#1037 | Link | |
Registered User
Join Date: Dec 2005
Location: Sweden
Posts: 721
|
Quote:
Last edited by anton_foy; 21st March 2022 at 18:56. |
|
![]() |
![]() |
![]() |
#1038 | Link |
Registered User
Join Date: Nov 2009
Posts: 2,372
|
Yes, TSMCmod is the same as mode="temporalsoften". I realized I was porting many things from SMDegrain so I thought why not the other way around?, and that's how 'mode' arg was implemented. This also helped make some non-motion-protected median modes be usable very easily like ML3Dex.
SMDegrain is pending a big rehaul from the results of the Zopti correlations, so I will have a look on implementing this at that time. It competes with the low frequency expansion call, so I will run some tests to check which achieves better qual/perf.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread |
![]() |
![]() |
![]() |
#1039 | Link | |
Registered User
Join Date: Dec 2005
Location: Sweden
Posts: 721
|
Quote:
|
|
![]() |
![]() |
![]() |
#1040 | Link | |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,608
|
Quote:
|
|
![]() |
![]() |
![]() |
Tags |
avisynth, dogway, filters, hbd, packs |
Thread Tools | Search this Thread |
Display Modes | |
|
|