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 29th December 2019, 12:35   #101  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
New version, see first post.
__________________
My github.
jpsdr is offline   Reply With Quote
Old 29th April 2020, 00:12   #102  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
New version, see first post.
__________________
My github.
jpsdr is offline   Reply With Quote
Old 29th April 2020, 02:08   #103  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,905
Quote:
Originally Posted by jpsdr View Post
New version, see first post.
Yep, I silently lurked the awarpsharp thing on the other topic.
Thank you for the update, it seems to work fine on Windows XP; perhaps I never noticed the error 'cause AVX are not a thing on XP (and I don't encode anime at work where I have Win10), so I never used that part of the code...

Cheers,
Frank.
FranceBB is offline   Reply With Quote
Old 29th April 2020, 02:50   #104  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by FranceBB View Post
Yep, I silently lurked the awarpsharp thing on the other topic.
Thank you for the update, it seems to work fine on Windows XP; perhaps I never noticed the error 'cause AVX are not a thing on XP (and I don't encode anime at work where I have Win10), so I never used that part of the code...

Cheers,
Frank.
awarpsharp may made for anime, but it used in YAHR by Didée which a general use dehalo

https://web.archive.org/web/20090803....php?p=1205653
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 4th May 2020, 17:30   #105  |  Link
SeregaDS
Registered User
 
SeregaDS's Avatar
 
Join Date: Jan 2017
Posts: 5
Hi!
I have an issue with last version of plugins_JPSDR_v3_2_1 (But with the previous version plugins_JPSDR_v3_2_0 - all right).
The next code produce strange video:
TempGaussMC_beta2u (tr0=2,tr1=2,tr2=3,EdiMode="NNEDI3", SLrad=2)

(without using NNEDI3 - also all right)

In the same time, the next code produce normal video:
QTGMC(tr0=2,tr1=2,tr2=3,EdiMode="NNEEDI3", SLrad=2)


Win10x64. AviSynth+ 3.5.2 (r3218, neo, x86_64)
SeregaDS is offline   Reply With Quote
Old 5th May 2020, 14:16   #106  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
In VDub, this seems to work :
Code:
ColorBars(width=640, height=480, pixel_type="yv12")
#QTGMC().SelectEven()
but this one crash inside avisynth:
Code:
QTGMC(preset="Very Slow", InputType=0,sourceMatch=3, sharpness=0.2, tr2=2, ediThreads=1).SelectEven()
The second one involve FFT3DFilter.

Is TempGaussMC_beta2u using FFT3DFilter ?

I'll try to make a version not using the new Pplanar, maybe it was too soon for the new headers... (if it's that).
__________________
My github.
jpsdr is offline   Reply With Quote
Old 5th May 2020, 14:32   #107  |  Link
SeregaDS
Registered User
 
SeregaDS's Avatar
 
Join Date: Jan 2017
Posts: 5
Quote:
Is TempGaussMC_beta2u using FFT3DFilter ?
I don't think so...
Search for string "FFT3" inside script didn't find any results...
And if i use EEDIx (not NNEDI3) - script works normal.
SeregaDS is offline   Reply With Quote
Old 5th May 2020, 14:42   #108  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by jpsdr View Post
In VDub, this seems to work :
Code:
ColorBars(width=640, height=480, pixel_type="yv12")
#QTGMC().SelectEven()
but this one crash inside avisynth:
Code:
QTGMC(preset="Very Slow", InputType=0,sourceMatch=3, sharpness=0.2, tr2=2, ediThreads=1).SelectEven()
The second one involve FFT3DFilter.

Is TempGaussMC_beta2u using FFT3DFilter ?

I'll try to make a version not using the new Pplanar, maybe it was too soon for the new headers... (if it's that).
Previous version (0.9.4.53) was staying at 306MB (avsmeter64) and works at 8+fps (whole qtgmc), this last one seems to have a memory leak, shortly reaches 4GB where Avisynth is slowing down since it tries to free up caches.
pinterf is offline   Reply With Quote
Old 5th May 2020, 15:08   #109  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
My standard PC (the one i'm writting with here) is under standard avs2.6.1, this is why the second qtgmc script crash, it's probably not working under avs2.6.1.
__________________
My github.
jpsdr is offline   Reply With Quote
Old 5th May 2020, 15:23   #110  |  Link
SeregaDS
Registered User
 
SeregaDS's Avatar
 
Join Date: Jan 2017
Posts: 5
So, please try to use TempGaussMC_beta2u
It works with all versions of Avs...
SeregaDS is offline   Reply With Quote
Old 5th May 2020, 16:16   #111  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
Ok, i've figure out where it's happening, but i'm unable to figure out the proper syntax for transmiting parameters.

Before, the src was created and used inside the copyPad function, called at the begining of the GetFrame function:
Code:
void nnedi3::copyPad(int n, int fn, IScriptEnvironment *env)
{
	const int off = 1-fn;
	PVideoFrame src = child->GetFrame(n, env);
and src wasn't needed outside anymore.

Now, i need the src to create the dst, so, now, instead of:
Code:
PVideoFrame __stdcall nnedi3::GetFrame(int n, IScriptEnvironment *env)
{
	int field_n;

	if (field>1)
	{
		if (n&1) field_n = field == 3 ? 0 : 1;
		else field_n = field == 3 ? 1 : 0;
	}
	else field_n = field;
	
	copyPad(field>1?(n>>1):n,field_n,env);
i have:
Code:
PVideoFrame __stdcall nnedi3::GetFrame(int n, IScriptEnvironment *env)
{
	int field_n;

	if (field>1)
	{
		if (n&1) field_n = field == 3 ? 0 : 1;
		else field_n = field == 3 ? 1 : 0;
	}
	else field_n = field;
	
	PVideoFrame src = child->GetFrame(n,env);
	
	copyPad(src,field>1?(n>>1):n,field_n,env);
This is what creating the memory leak and the issues.
I've tried
Code:
void copyPad(const PVideoFrame &src,int n,int fn,IScriptEnvironment *env);
and without const and also
Code:
void copyPad(PVideoFrame src,int n,int fn,IScriptEnvironment *env);
still the same behavior...
I'll try a mix with previous version, copyPad geting src and return it...
__________________
My github.
jpsdr is offline   Reply With Quote
Old 5th May 2020, 16:35   #112  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
I noticed src was used in both copyPad and NewVideoFrameP. Any chance it's the latter?
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 5th May 2020, 16:41   #113  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
No... It's the new thing, now i need src for NewVideoFrameP.
I've made my tests by implementing the changes step by step, and kept NewVideoFrameP for the end, so, i've re-created the issue before puting back NewVideoFrameP.
It seems that a mix, creating src inside copyPad and having it return src works, no memory leak anymore and identical speed.

New build soon.
__________________
My github.
jpsdr is offline   Reply With Quote
Old 5th May 2020, 16:41   #114  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by MeteorRain View Post
I noticed src was used in both copyPad and NewVideoFrameP. Any chance it's the latter?
I have tried with an old r2900 avs+, and it still leaks, that is not using the P vesion. For the first sight I cannot tell what is happening.
pinterf is offline   Reply With Quote
Old 5th May 2020, 17:00   #115  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,314
Quote:
Originally Posted by jpsdr View Post
No... It's the new thing, now i need src for NewVideoFrameP.
I've made my tests by implementing the changes step by step, and kept NewVideoFrameP for the end, so, i've re-created the issue before puting back NewVideoFrameP.
It seems that a mix, creating src inside copyPad and having it return src works, no memory leak anymore and identical speed.

New build soon.
GetFrame recursively called itself with the same n, but 'n' is different in copyPad.
This one works:
int x = field > 1 ? (n >> 1) : n;
PVideoFrame src = child->GetFrame(x,env);
pinterf is offline   Reply With Quote
Old 5th May 2020, 17:34   #116  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
OMFG !!! This is what i've missed !!!
__________________
My github.

Last edited by jpsdr; 5th May 2020 at 17:50.
jpsdr is offline   Reply With Quote
Old 5th May 2020, 19:34   #117  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
New version, see first post, should be fixed.
__________________
My github.
jpsdr is offline   Reply With Quote
Old 22nd July 2020, 06:12   #118  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
New version, see first post.
__________________
My github.
jpsdr is offline   Reply With Quote
Old 2nd August 2020, 08:52   #119  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,316
New version, see first post.
__________________
My github.
jpsdr is offline   Reply With Quote
Old 2nd August 2020, 14:31   #120  |  Link
DTL
Registered User
 
Join Date: Jul 2018
Posts: 1,075
As an addition to readme.txt about SincLin2Resize:

It designed as workaround to fix edge bugs with SincResize if using too few number of taps. 'Too few' mean about < 60..70 with 8-bit integer samples processing. It gives at least taps/2 full-strike sinc kernel size and last taps are linearly faded to zero (something like 'trapezoidal weighting'). At some testcases it allows to get clean 8-bit result with taps parameter as low as 15. That is significally faster in compare with SincResize(taps=70). With lesser taps parameter it may definetly expose same edge 'ghosting' and 'object griding' bugs as old SincResize. So for high quality work it is recommended to keep taps >15..20. It is a bit sharper in compare with LanczosResize with same number of taps because of less aggressive sinc kernel weighting.

Last edited by DTL; 2nd August 2020 at 18:20.
DTL is online now   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 23:28.


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