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 Development
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th January 2020, 13:25   #581  |  Link
markiemarcus
Registered User
 
Join Date: May 2018
Posts: 49
Quote:
Originally Posted by poisondeathray View Post
I can reproduce this; easier to see with colorbars or similar patterns

fulls=true seems to "fix" it (or match the others)

Code:
ConvertBits(16, fulls=true)
SuperResXBR(MatrixIn="Rec601")
ConvertBits(8, fulls=true, dither=-1)
Many thanks for this! It does indeed work. I guess the big question is why? I haven't observed this behaviour in KNLMeansCL for example. Just a bug?

I also wonder why it produces very slightly different results (detail-wise) to the LSB method. I was under the impression that despite the different approach to high bit depth processing, the results should be 100% identical.
markiemarcus is offline   Reply With Quote
Old 21st May 2020, 12:35   #582  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Quote:
Originally Posted by ChaosKing View Post
thx, found it later too.

Also found this https://artoriuz.github.io/mpv_upscaling.html
FSRCNNX is an upscaler which seems to be similar to NGU (madvr)

It can be downloaded here in glsl format: https://github.com/igv/FSRCNN-TensorFlow/releases

Maybe Avisynth shader could support glsl in (a not so distant) future
If someone needs it. https://github.com/Lypheo/vs-placebo supports glsl shader files now, it's a VapourSynth plugin.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 16th June 2020, 01:19   #583  |  Link
markiemarcus
Registered User
 
Join Date: May 2018
Posts: 49
It seems that there is an incompatibility between AvisynthShader and AVS+ 3.6. I'm getting:

"System exception Access Violation". Shader.avsi, line 218.

Can anybody else confirm?
markiemarcus is offline   Reply With Quote
Old 16th June 2020, 01:42   #584  |  Link
goorawin
Registered User
 
Join Date: Feb 2012
Posts: 82
Yes it has the same error for me
goorawin is offline   Reply With Quote
Old 16th June 2020, 01:47   #585  |  Link
markiemarcus
Registered User
 
Join Date: May 2018
Posts: 49
Damn. TMM2 won't load either. I guess I'll be sticking with 3.5.1 for the foreseeable future!
markiemarcus is offline   Reply With Quote
Old 16th June 2020, 02:36   #586  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
These issues have been solved in Avisynth+ v3.6.1. No official release yet, for now download test 8 here: https://forum.doom9.org/showthread.php?t=181351
As for TMM2, download update here: https://github.com/Asd-g/TMM2/releases
Reel.Deel is offline   Reply With Quote
Old 16th June 2020, 03:01   #587  |  Link
markiemarcus
Registered User
 
Join Date: May 2018
Posts: 49
Thanks so much for the reply!

TMM2 seems to work fine with test 8. Unfortunately, still no dice with AvisynthShader. I'm getting exactly the same system exception.

Line 218 in Shader.avsi reads:

ExecuteShader(last, Input, Precision=3, Clip1Precision=PrecisionIn, OutputPrecision=PrecisionOut, PlanarOut=PlanarOut, Engines=Engines, Resource=true)
convert ? ConvertFromShader(PrecisionOut, format=sourceFormat, lsb=lsb_out) : last

Last edited by markiemarcus; 16th June 2020 at 03:05.
markiemarcus is offline   Reply With Quote
Old 17th June 2020, 16:44   #588  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,559
By popular demand, v1.6.6 is released!
- Updated headers to support Avisynth+ 3.6

I didn't do much testing so let me know if you encounter any issues.
MysteryX is offline   Reply With Quote
Old 17th June 2020, 17:11   #589  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Cheers MX
__________________
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 ???
StainlessS is offline   Reply With Quote
Old 17th June 2020, 17:34   #590  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
https://github.com/mysteryx93/AviSyn...0a84bb01acR156
I think you slipped b = in your edits, didn't tested though
__________________
Me on GitHub
PC Specs: Ryzen 5950X, 64 GB RAM, RTX 2070
DJATOM is offline   Reply With Quote
Old 17th June 2020, 20:33   #591  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 1,002
Quote:
Originally Posted by MysteryX View Post
By popular demand, v1.6.6 is released!
- Updated headers to support Avisynth+ 3.6

I didn't do much testing so let me know if you encounter any issues.
Thanks
__________________
Live and let live
gispos is offline   Reply With Quote
Old 17th June 2020, 23:55   #592  |  Link
markiemarcus
Registered User
 
Join Date: May 2018
Posts: 49
Quote:
Originally Posted by MysteryX View Post
By popular demand, v1.6.6 is released!
- Updated headers to support Avisynth+ 3.6

I didn't do much testing so let me know if you encounter any issues.
Legend, thank you!

Edit: Seems to work fine here.

Last edited by markiemarcus; 18th June 2020 at 00:20.
markiemarcus is offline   Reply With Quote
Old 18th June 2020, 23:20   #593  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 450
Quote:
Originally Posted by MysteryX View Post
By popular demand, v1.6.6 is released!
- Updated headers to support Avisynth+ 3.6

I didn't do much testing so let me know if you encounter any issues.
It crashes on non Avisynth+ 3.6 environment.
There is no env->Allocate/env->GetEnvProperty for anything than V8 interface.

Last edited by StvG; 18th June 2020 at 23:23.
StvG is offline   Reply With Quote
Old 19th June 2020, 00:48   #594  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,559
Quote:
Originally Posted by StvG View Post
It crashes on non Avisynth+ 3.6 environment.
There is no env->Allocate/env->GetEnvProperty for anything than V8 interface.
dang.... how am I supposed to deal with that!?

Perhaps supporting older versions of AVS+ isn't important; if we consider it to have a more unstable API so far. Those using AVS+ can get the latest version of it. No reason to not upgrade.
MysteryX is offline   Reply With Quote
Old 19th June 2020, 01:09   #595  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by MysteryX View Post
dang.... how am I supposed to deal with that!?
see how asd and pinterf did it
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 19th June 2020, 02:02   #596  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 450
Quote:
Originally Posted by MysteryX View Post
dang.... how am I supposed to deal with that!?

Perhaps supporting older versions of AVS+ isn't important; if we consider it to have a more unstable API so far. Those using AVS+ can get the latest version of it. No reason to not upgrade.
Check this post https://forum.doom9.org/showthread.p...74#post1915174
StvG is offline   Reply With Quote
Old 19th June 2020, 02:04   #597  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,559
Quote:
Originally Posted by StvG View Post
Simplest: for previous AVS versions, do the same I was doing for AVS 2.6
MysteryX is offline   Reply With Quote
Old 24th June 2020, 12:15   #598  |  Link
Alexkral
Registered User
 
Join Date: Oct 2018
Posts: 323
Hi, I'm not sure what's happening here:

Code:
clip = BlankClip(width = 100, height = 100)
W = clip.Width
H = clip.Height
ConvertToShader(clip, Precision = 1)
for (i = 1, 2) {
    W = W * 2
    H = H * 2
    Shader("shader.hlsl", output = 2)
    Shader("shader.hlsl", clip1 = 2, Width = W, Height = H)
}
ExecuteShader(last, clip, Clip1Precision = 1, Precision = 3, OutputPrecision = 1)
ConvertFromShader(Precision = 1, Format = "RGB32")
The result is a 400 x 400 clip as it should be, but if I look at the c0 register of the first shader on the second pass, the width and height are 100 again after they have been doubled on the first pass. If I add "Width = W / 2, Height = H / 2" to the first shader then everything is correct, again suggesting that by not doing so the texture is being downscaled.
Alexkral is offline   Reply With Quote
Old 24th June 2020, 16:49   #599  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,559
Quote:
Originally Posted by Alexkral View Post
Hi, I'm not sure what's happening here:

Code:
clip = BlankClip(width = 100, height = 100)
W = clip.Width
H = clip.Height
ConvertToShader(clip, Precision = 1)
for (i = 1, 2) {
    W = W * 2
    H = H * 2
    Shader("shader.hlsl", output = 2)
    Shader("shader.hlsl", clip1 = 2, Width = W, Height = H)
}
ExecuteShader(last, clip, Clip1Precision = 1, Precision = 3, OutputPrecision = 1)
ConvertFromShader(Precision = 1, Format = "RGB32")
The result is a 400 x 400 clip as it should be, but if I look at the c0 register of the first shader on the second pass, the width and height are 100 again after they have been doubled on the first pass. If I add "Width = W / 2, Height = H / 2" to the first shader then everything is correct, again suggesting that by not doing so the texture is being downscaled.
If I remember correctly... each output buffer (Clip1 - Clip9) are initialized at the start and cannot be changed. You're trying to fill Cilp1 with 2 different frames of different sizes. You'll need to use Output = 3 to create a separate buffer.

Output=1 needs to be the final output, so you may have to start with outputs 2, 3 and 4 for processing.
MysteryX is offline   Reply With Quote
Old 24th June 2020, 18:11   #600  |  Link
Alexkral
Registered User
 
Join Date: Oct 2018
Posts: 323
Thanks, I tested it and you're right.

EDIT: Well, it works, but I'm not sure if the explanation is correct. This is what I've done:

Code:
clip = BlankClip(width = 100, height = 100)
W = clip.Width
H = clip.Height
ConvertToShader(clip, Precision = 1)
for (i = 1, 2) {
    W = W * 2
    H = H * 2
    Shader("shader.hlsl", output = i+1)
    Shader("shader.hlsl", clip1 = i+1, Width = W, Height = H)
}
ExecuteShader(last, clip, Clip1Precision = 1, Precision = 3, OutputPrecision = 1)
ConvertFromShader(Precision = 1, Format = "RGB32")
Now output is 3 on the second pass, and has the correct size, so it's the output which can't change its size, and clip1 is receiving outputs of different sizes. Also I've seen that in SuperXbrMulti you solve this by sending the size to the shader as a parameter, so I'm not sure the best way of doing it:

1 - Setting the size: Shader("shader.hlsl", output = 2, Width = x, Height = y)
2 - Using a parameter: Shader("shader.hlsl", Param2 = size, output = 2)

or doing the above.

Last edited by Alexkral; 24th June 2020 at 18:54.
Alexkral is offline   Reply With Quote
Reply


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 05:31.


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