View Full Version : Dogway's Filters Packs
kedautinh12
4th March 2022, 02:00
I don't know why they need develop back to old ver (2012) when avs+ still development???
Dogway
4th March 2022, 02:02
Don't worry I'll open a poll tomorrow and see what people decide, fragmentation or unification.
Does this updating the rest of the filters includes filters that QTGMC is relying on. I have downloaded all the necessary files and about to test your QTGMC and do some comparison. Should i hold off a bit until you finish your update or what?
You can use it, there's nothing in the new updates that affect QTGMCp.
gispos
4th March 2022, 18:51
I'm not that far behind.:) Had already posted my Version, 'QTGMC 3.382 2021 mod by A.SONY, based on v3.33d by Dogway'
With QTGMC I don't want to start discussions and stress now. Leave everything as it is, I just have to find a solution myself.
I also understand Dogway, everything neatly in one file, and so that there are not multiple versions using the same names. At first glance, that's also kind of reasonable.
In my opinion, however, this is not the right way. Functions are replaced in the background. Of course, this can also happen the other way. Someone wants to use Dogway's filter but a filter with the same name is loaded later and so Dogway's filter is replaced.
For me, the whole thing then becomes opaque, and I have to look everywhere to see what is now being used.
And if a version of Dogway should require other values or even have other parameters, it will be cruel.
real.finder
4th March 2022, 20:02
ok, so I will bring back this https://pastebin.com/raw/SYMD7ij5 QTGMC to https://github.com/realfinder/AVS-Stuff and make the STGMC as a wrapper for QTGMC but with TV_range as true by default
Ceppo
4th March 2022, 21:57
Now I'm going to make my QTGMC as well just to confuse everyone more :) thanks for the mod versions!
gispos
4th March 2022, 22:27
ok, so I will bring back this https://pastebin.com/raw/SYMD7ij5 QTGMC to https://github.com/realfinder/AVS-Stuff and make the STGMC as a wrapper for QTGMC but with TV_range as true by default
You don't have to do this for my sake. Do what is best for you and others.
Thanks!
2ndR
6th March 2022, 14:09
ChromaReconstructor does not work with the following error message
ChromaReconstructor_faster is working
Expr:All inputs mus have the same number of planes and the same dimensions, subsampling included
(ExTools.avsi, line 459)
(ChromaReconstructor v3mod.avsi, line 54)
ImageSource("chroma-444.png", pixel_type = "RGB48")
ConvertToYUV420(matrix = "Rec709")
u = ExtractU().nnedi3_rpow2(rfactor = 2, nns = 4, qual = 2, pscrn = 4, opt = 3).Spline36Resize(width, height, src_top = -0.5)
v = ExtractV().nnedi3_rpow2(rfactor = 2, nns = 4, qual = 2, pscrn = 4, opt = 3).Spline36Resize(width, height, src_top = -0.5)
YToUV(u, v, last)
ChromaReconstructor()
Dogway
6th March 2022, 14:15
Yes, it seems to be broken, I made an annotation in the offending line here (https://github.com/Dogway/Avisynth-Scripts/blob/532fbbc3f8d04889fd6a91e1e3e9e509794bbf23/MIX%20mods/ChromaReconstructor%20v3mod.avsi#L54). I have to look closer though. Can you use the faster version?
EDIT: Ok, saw the issue, will be uploading soon along a batch of other updates.
EDIT2: Done, check here (https://github.com/Dogway/Avisynth-Scripts/blob/master/MIX%20mods/ChromaReconstructor%20v3mod.avsi).
2ndR
6th March 2022, 14:49
Confirmed to work properly
Thanks for the quick turnaround!
gispos
8th March 2022, 23:07
Dogway,
you can have a look at ex_contrast the lower code gives a division by 0 if cont == 0.0
cont = pow(cont + sign(cont), 3.)
rcont = 1. / cont
Dogway
9th March 2022, 14:29
you can have a look at ex_contrast the lower code gives a division by 0 if cont == 0.0
Does it output any error? I saw it but it works fine on my end.
Ceppo
9th March 2022, 16:24
Dogway,
you can have a look at ex_contrast the lower code gives a division by 0 if cont == 0.0
If you do 1/0 you get the division by zero error, if you do 1./0 it gives infinity and won't give you an error.
Dogway
9th March 2022, 17:53
If you do 1/0 you get the division by zero error, if you do 1./0 it gives infinity and won't give you an error.
Nice to know, wasn't aware of that.
By the way, I plan to upload a kind of special video/tutorial for AvsPMod to feature function definitions, sliders and preview filters, so beginners can get a handle of how things work and also get to know more about some of the more complex filters of my packs like ConvertFormat(). Maybe in a few weeks.
Blankmedia
9th March 2022, 18:31
With
QTGMCp( Preset="Slower", InputType=2 )
and
QTGMCp( Preset="Slower", InputType=3 )
I got an error in line 832 of QTGMCp
mt_merge( innerClip.nonyuy2clipin(true), edi1.nonyuy2clipin(true), inputTypeBlend, U=2,V=2 ))
MT_MERGE : Clip should have identical bit depths
Thank you for your good work
Dogway
9th March 2022, 18:48
in HBD right. Will have a look.
EDIT: Fixed (https://github.com/Dogway/Avisynth-Scripts/blob/master/MIX%20mods/QTGMC%2B.avsi).
gispos
9th March 2022, 21:28
Does it output any error? I saw it but it works fine on my end.
If you do 1/0 you get the division by zero error, if you do 1./0 it gives infinity and won't give you an error.
Is already so written 1./0, nevertheless with me an error message comes if I use the avisynth.dll with another program 'AvsPThumb'.
I don't know what the problem is, there must be a hidden switch in avisynth that I haven't turned on. So it would be desirable to fix that. Thanks.
https://i.postimg.cc/SQdGV0t5/error.jpg (https://postimages.org/)
By the way, I plan to upload a kind of special video/tutorial for AvsPMod to feature function definitions, sliders and preview filters...
Now that is surprising, I had also planned. Time saved...;)
Dogway
10th March 2022, 10:09
Ok, I added epsilon. This issue could be in other functions though so it needs reporting when that happens.
Now that is surprising, I had also planned. Time saved...;)
I don't know when I'm gonna do it, if I do it at all, I still have ton of things to finish before.
anton_foy
11th March 2022, 16:53
Included at the first page are benchmarks of sharpeners. What is XshapenPlus and CasP? These I cannot find them anywhere.
Dogway
11th March 2022, 16:58
I just renamed the functions (update SharpenersPack), it's better to keep some consistency so I'm renaming some filters (especially mods) with the "ex_" prefix so you can search them starting from their original name.
gispos
11th March 2022, 20:22
I don't know when I'm gonna do it, if I do it at all, I still have ton of things to finish before.
It's the same with me, I've only had it in my head for about 2 weeks. But when I will really start it...
it doesn't matter if there will be more than one video... so who tackles it first doesn't matter.
If it suits you, go for it.
Another topic.
I have read through my recent responses to your postings. I can't find an angry response.
Only the last sentence of mine could be misinterpreted. I forgot to put a smile on it.
I think the whole thing is a misunderstanding, you think I'm annoying and I sometimes think your posts don't read like feedback but more like nagging.
In these times we need peace.
Dogway
11th March 2022, 22:34
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.php?p=1943568#post1943568
https://forum.doom9.org/showthread.php?p=1944894#post1944894
https://forum.doom9.org/showthread.php?p=1950216#post1950216
https://forum.doom9.org/showthread.php?p=1957617#post1957617
https://forum.doom9.org/showthread.php?p=1961128#post1961128
https://forum.doom9.org/showthread.php?p=1962333#post1962333
https://forum.doom9.org/showthread.php?p=1963062#post1963062
https://forum.doom9.org/showthread.php?p=1964768#post1964768
https://forum.doom9.org/showthread.php?p=1965507#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.
gispos
12th March 2022, 21:32
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.
videoh
12th March 2022, 22:52
Don't let the entitled script kiddies get to you, gispos. You are a legend.
kedautinh12
13th March 2022, 01:46
I think Dogway learned Python cause he ported some scripts from Vapoursynth to Avisynth:D
Dogway
13th March 2022, 13:14
Don't let the entitled script kiddies get to you, gispos. You are a legend.
videoh (neuron2) is just a troll who spreads (https://forum.doom9.org/showthread.php?p=1965710#post1965710) hate (https://forum.doom9.org/showthread.php?p=1954197#post1954197) around (https://forum.doom9.org/showthread.php?p=1963049#post1963049) and I don't know how he is not censored already (again). Do you realize Python is also script based? Are you insulting gispos as well?
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 (https://github.com/Dogway/Computer-Graphics-Tools/tree/master/Blender%202.8x) addons (https://www.artstation.com/artwork/W214QE) 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.
guest
13th March 2022, 13:40
@ Dogway, this is a little scary, we've lost way too developer's recently, hopefully you're not serious....
I'm weeks away from leaving Doom9
I could understand if you do, it can be a thankless task.
I certainly appreciate what you've done, and even tho I've probably only scratched the surface, it's improved what I do.
Cheers
anton_foy
13th March 2022, 14:00
videoh (neuron2) is just a troll who spreads (https://forum.doom9.org/showthread.php?p=1965710#post1965710) hate (https://forum.doom9.org/showthread.php?p=1954197#post1954197) around (https://forum.doom9.org/showthread.php?p=1963049#post1963049) and I don't know how he is not censored already (again). Do you realize Python is also script based? Are you insulting gispos as well?
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 (https://github.com/Dogway/Computer-Graphics-Tools/tree/master/Blender%202.8x) addons (https://www.artstation.com/artwork/W214QE) 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.
You are going to leave doom9??? But why? To me you are top reason of being here it is such a joy and amazement to see all your updates. What you do is mind blowing! Come on :confused:
kedautinh12
13th March 2022, 14:09
I think you need complete all scripts WIP and RC ver before leave doom9 :D
videoh
13th March 2022, 15:28
I'm weeks away from leaving Doom9 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.
guest
14th March 2022, 06:35
Doesn't QTGMC require vinverse anymore ??
Dogway
15th March 2022, 17:58
Doesn't QTGMC require vinverse anymore ??
Why? It requires it. I updated QTGMC+ replacing some ex_vinverse() calls with vinverse(), as Asd-g updated and optimized the plugin.
guest
15th March 2022, 18:10
Why? It requires it. I updated QTGMC+ replacing some ex_vinverse() calls with vinverse(), as Asd-g updated and optimized the plugin.
Well it's just that I updated QTGMC, and the next time I went to run it, it had a problem with vinverse, so I need to change something in my script, so what do I need to change ?
Dogway
15th March 2022, 18:41
Download Vinverse (https://github.com/Asd-g/vinverse)by Asd-g and update QTGMC+ (https://github.com/Dogway/Avisynth-Scripts/blob/master/MIX%20mods/QTGMC+.avsi). If you still run into issues let me know.
guest
16th March 2022, 05:39
Download Vinverse (https://github.com/Asd-g/vinverse)by Asd-g and update QTGMC+ (https://github.com/Dogway/Avisynth-Scripts/blob/master/MIX%20mods/QTGMC+.avsi). If you still run into issues let me know.
Yep, all good, once again, Thanks :)
Dogway
20th March 2022, 22:47
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.
# 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])
} ) }
Dogway
21st March 2022, 17:51
Uploaded ScenesPack (https://github.com/Dogway/Avisynth-Scripts/blob/master/ScenesPack.avsi), 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.
https://i.imgur.com/1e7NGrbh.png (https://i.imgur.com/1e7NGrb.png)
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.
https://i.imgur.com/ZJfWKQFm.png
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.
https://i.imgur.com/8uD6KY6m.png
anton_foy
21st March 2022, 18:54
Uploaded ScenesPack (https://github.com/Dogway/Avisynth-Scripts/blob/master/ScenesPack.avsi), 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.
https://i.imgur.com/1e7NGrbh.png (https://i.imgur.com/1e7NGrb.png)
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.
https://i.imgur.com/ZJfWKQFm.png
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.
https://i.imgur.com/8uD6KY6m.png
Looks really interesting. Do you plan to add the shading protection into SmDegrain or on its own? Because I started to use your TSMCmod alot and I think this would be perfect in combination with that. By the way is mode="temporalsoften" in SmDegrain very similar to TSMC?
Dogway
21st March 2022, 19:11
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.
anton_foy
21st March 2022, 19:20
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.
Thanks, I have waited for this moment to see how SMDegrain performs after Zopti optimizations!
wonkey_monkey
21st March 2022, 19:50
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.
https://i.imgur.com/ZJfWKQFm.png
What's the theory behind that? I can't imagine it creating more good motion vectors than bad ones.
Dogway
21st March 2022, 21:31
The isoparam mode is only for visualization but it serves well to illustrate the concept.
The rugged remap helps pick up shading differences, but it needs to be applied on a lowpassed prefiltered clip and ideally on HBD.
This is better than per frame normalization which is inconsistent, here x remaps always to the same y.
https://i.imgur.com/hsOTmI1.png
@anton_foy: I don't think it's going to be night and day but you'd most likely get a bit better while a bit faster.
mp3dom
22nd March 2022, 12:23
Hi, I'm trying to use deep_resize going from a UHD to SD, but I'm getting these errors (actually even from UHD to HD):
Select: index value out of range
transformspack.avsi, line 3479
transformspack.avsi, line 539
resizerspack.avsi, line 163
resizerspack.avsi, line 214
Any idea? All the "packs" and "extools" are so far up to date and avs+ is 3.7.2.
Thanks!
Ceppo
22nd March 2022, 18:35
@mp3dom
For UHD to SD I did CReasize in CTools.avsi to get the least amount of aliasing and the least amount of blur, that you can find here (https://forum.doom9.org/showthread.php?p=1963693#post1963693). You can look at the idea and mod it to your taste, if you want to give it a shot.
@Dogway
Sorry for the advertising :D
Dogway
22nd March 2022, 19:15
My above luma remap worked well in some places, and bad in many places, I think probably due to the null points as I feared. An alternative would be to do it gentler, add a mix of sigmoid contrast with ex_luma_rebuild(), kind of a camel hump shape. In any case probably not as worth it as my current ex_unsharp() solution.
@mp3dom: Probably a TransformsPack regression from my last update, it's working fine on my internal version so will try to update later, with some deep_resize() tweaks.
@Ceppo: Yeah, that's fine, I don't think downsizing is such a problem aliasing wise, the problem has more to do with local contrast. 'Zopti2' does a great and fast job but it adds low freq sharpening that you have to deconvolute, 'DPID' is also great and a reference, it doesn't add much of a local contrast, and finally 'SSIM2' has a great balance between local contrast (actually 0 added) and sharpness. Local contrast is fine if you are not going to upscale later, but for SD you surely will. For intermediary purposes I normally use 'Didée', has a great balance of sharpness, speed and local contrast.
For synthetic tests like zone plates, etc the best all around are Robi and RobiSharp as they approach a 2 taps EWA filter.
Ceppo
22nd March 2022, 19:34
After the update I will give it a try, your point made me curious. Also, I meant to ask but I always forget:
The ancient QTGMC version doesn't use vinverse, your does, can you please explain what is the function of vinverse in QTGMC?
I'm working on my own bob, starting from scratch I got good results with less shimmering and blending, but it still has some problems in particular cases which QTGMC doesn't have, so I thought to just mix it with QTGMC and see if get better.
Dogway
22nd March 2022, 20:25
I haven't delved too deep into QTGMC internal logic, you might ask real.finder for that. My work there was to optimize filters, expression and small blocks of code, and some logic flow besides adding the customary HBD and frameprops support. I plan to update MVTools related settings with the Zopti outcomes but no further.
I recommend you to check initial versions of QTGMC to understand the core principle and have a look at the deshimmer filter. For a simple antialiased dumb bob I implemented nnedi3 into ex_bob(), might help for ideas.
For deep_resize() I'm now adding a regrain option as a cheap hallucination option and fixing some low ratio resize bugs.
mp3dom
22nd March 2022, 22:56
@Ceppo and Dogway: Thanks to both of you, I'll try both the solutions.
Dogway
22nd March 2022, 23:46
@mp3dom: Please, test now with updated TransformsPack
I updated deep_resize(). Many changes, mainly functionality, now there's a 'show' arg so you know what's going on underneath. Also added a 'grain' arg to add grain for some hallucination (psychovisual detail) for SD to HD and HD to UHD.
I changed back 'flat' kernel to 'sinc', but only when HD to UHD, since at these sizes the faint halo is not visible, less so with grain. For SD to HD now I changed from Blackman8 to Lanczos8 as it's sharper and faster than Blackman16, halos are not visible.
Also fixed apparently a few bugs with low ratio resizes, and remapped 'deconv' to be higher for higher ratios.
Original 1080p
http://i.imgur.com/J7cahxrl.png (https://i.imgur.com/J7cahxr.png)
Upscaled to 1080p (x2)
http://i.imgur.com/oho7QrUl.png (https://i.imgur.com/oho7QrU.png)
spline36 HD to UHD
http://i.imgur.com/qKkiByzl.png (https://i.imgur.com/qKkiByz.png)
deep_resize HD to UHD (grain=0)
http://i.imgur.com/rIUT2pzl.png (https://i.imgur.com/rIUT2pz.png)
mp3dom
23rd March 2022, 09:46
Hi Dogway,
I'm getting the same error but at different lines now (probably because you added lines and the previous ones shifted a bit):
Select: index value out of range
transformspack.avsi, line 3489
transformspack.avsi, line 548
resizerspack.avsi, line 178
resizerspack.avsi, line 229
What I try so far:
colorbars(width=1920,height=1080,pixel_type="yv16")
deep_resize(3840,2160)
This works
colorbars(width=3840,height=2160,pixel_type="yv16")
deep_resize(1920,1080)
Same errors as above
colorbars(width=3840,height=2160,pixel_type="yv16")
deep_resize(720,576)
Same errors as above
colorbars(width=1920,height=1080,pixel_type="yv16")
deep_resize(720,576)
This works
I'm currently trying to downscale from UHD to SD.
Ceppo
23rd March 2022, 16:12
@Dogway
I updated the whole repository and I get the same errors as mp3dom, something is off ;)
EDIT:
There are any dll/avsi external requirements to use deep_resize??
EDIT:
With yv12 8bit source works fine.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.