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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 21st March 2022, 21:31   #1041  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,367
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.


@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.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread
Dogway is offline   Reply With Quote
Old 22nd March 2022, 12:23   #1042  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
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):
Code:
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!
mp3dom is offline   Reply With Quote
Old 22nd March 2022, 18:35   #1043  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
@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. 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
Ceppo is offline   Reply With Quote
Old 22nd March 2022, 19:15   #1044  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,367
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.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread

Last edited by Dogway; 22nd March 2022 at 19:26.
Dogway is offline   Reply With Quote
Old 22nd March 2022, 19:34   #1045  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
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.

Last edited by Ceppo; 22nd March 2022 at 19:37.
Ceppo is offline   Reply With Quote
Old 22nd March 2022, 20:25   #1046  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,367
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.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread
Dogway is offline   Reply With Quote
Old 22nd March 2022, 22:56   #1047  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
@Ceppo and Dogway: Thanks to both of you, I'll try both the solutions.
mp3dom is offline   Reply With Quote
Old 22nd March 2022, 23:46   #1048  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,367
@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

Upscaled to 1080p (x2)


spline36 HD to UHD

deep_resize HD to UHD (grain=0)
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread

Last edited by Dogway; 23rd March 2022 at 00:18.
Dogway is offline   Reply With Quote
Old 23rd March 2022, 09:46   #1049  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
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):
Code:
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:
Code:
colorbars(width=1920,height=1080,pixel_type="yv16")
deep_resize(3840,2160)
This works

Code:
colorbars(width=3840,height=2160,pixel_type="yv16")
deep_resize(1920,1080)
Same errors as above

Code:
colorbars(width=3840,height=2160,pixel_type="yv16")
deep_resize(720,576)
Same errors as above

Code:
colorbars(width=1920,height=1080,pixel_type="yv16")
deep_resize(720,576)
This works


I'm currently trying to downscale from UHD to SD.

Last edited by mp3dom; 23rd March 2022 at 10:01.
mp3dom is offline   Reply With Quote
Old 23rd March 2022, 16:12   #1050  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
@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.

Last edited by Ceppo; 23rd March 2022 at 16:59.
Ceppo is offline   Reply With Quote
Old 23rd March 2022, 17:21   #1051  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,367
I will have a look now. Thanks for the call snippets!


EDIT: Test now, only need to update TransformsPack.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread

Last edited by Dogway; 23rd March 2022 at 21:46.
Dogway is offline   Reply With Quote
Old 23rd March 2022, 20:23   #1052  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,590
Quote:
Originally Posted by Ceppo View Post
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.
Quote:
Originally Posted by Dogway View Post
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.
it happened here http://forum.doom9.net/showthread.ph...44#post1921844 (read until #72 post) and it's not mandatory
__________________
See My Avisynth Stuff

Last edited by real.finder; 23rd March 2022 at 20:26.
real.finder is offline   Reply With Quote
Old 23rd March 2022, 23:47   #1053  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
Quote:
Originally Posted by Dogway View Post
EDIT: Test now, only need to update TransformsPack.
Yes, it works now, thank you!
However, I'm facing another issue. Using colorbars as a source "reference" I see this:
yuv444p16/p10/p8 sources -> output is OK
yuv422p16/p10 sources -> lower part of the bars seems wrong
yuv422p8 sources -> output is OK
yuv420p16/p10/p8 sources -> output is OK

Last edited by mp3dom; 24th March 2022 at 00:02.
mp3dom is offline   Reply With Quote
Old 24th March 2022, 00:11   #1054  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,367
Thanks, yes a typo, 'src_width' and 'src_height' should default to 0.0 I think. Fixed!
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread
Dogway is offline   Reply With Quote
Old 24th March 2022, 08:28   #1055  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
I still get an error:

Code:
colorbars(width=3840,height=2160,pixel_type="yv16")
deep_resize(720,576)
Code:
line 828: 
            Y    = Eval("Y." + resampler + cplaceY + (noring ? Ynr : ""))
line 832:
        }
line 1072:
        } }
@real.finder, thanks!

Last edited by Ceppo; 24th March 2022 at 08:40.
Ceppo is offline   Reply With Quote
Old 24th March 2022, 09:11   #1056  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
DPID is an additional (external) DLL, but even with that you still need z.lib DLL (avsresize)

@Dogway: Thanks!

Last edited by mp3dom; 24th March 2022 at 09:14.
mp3dom is offline   Reply With Quote
Old 24th March 2022, 14:27   #1057  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
@mp3dom

Thanks, it works now!
Ceppo is offline   Reply With Quote
Old 24th March 2022, 15:04   #1058  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
@Dogway, I need your opinion:

Source
deep_resize(720,480).spline36resize(1920,1080)
CResize(720,480).spline36resize(1920,1080)

Default deep_resize is too aliased for my tastes, is possible to tune it to get it aliasing free like CResize, and save more details?
Ceppo is offline   Reply With Quote
Old 24th March 2022, 19:15   #1059  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,367
Use a better upscaler:

Code:
deep_resize(720,480)
deep_resize(1920,1080,grain=0)

---------------------------------------

By the way, I updated ScenesPack v1.0 final. I merged SceneRange() and SceneStats() so performance is not harmed. I also included 'mode', as I added an option for '_SceneMotion' frameprops. Now you can do crazy things like the following:


Level normalization
Code:
SceneStats() or ReadStats("D:\Stats.log")

ScriptClip(function [] () {
sts = propGetAsArray("_SceneStats")
ex_levels(max(16,sts[0]),1.0,min(235,sts[1]))
} )
Higher Temporal Radius for calm scenes
Code:
SceneStats("Motion") or ReadStats("D:\Stats.log")

ScriptClip(function [] () {
mo = propGetFloat("_SceneMotion")
mo = -5*mo+0.85
SMDegrain(tr= round(mo*10))
} )

I see a rise in ScriptClip abusing, sadly all filters need to pass through ScriptClip as frame properties at frame#0 are not dynamic, details here by pinterf.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread

Last edited by Dogway; 24th March 2022 at 19:50.
Dogway is offline   Reply With Quote
Old 25th March 2022, 07:09   #1060  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
I can't see why it is related to the upscale filter, it is just to make easier the comparison, and spline36 is pretty much neutral, if I upscale with like nnedi it would end up fixing the aliasing, which is pointless cuz TVs don't use nnedi or deep_resize for the upscaling, at least not mine.
Ceppo is offline   Reply With Quote
Reply

Tags
avisynth, dogway, filters, hbd, packs

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 17:04.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.