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

Reply
 
Thread Tools Search this Thread Display Modes
Old 6th February 2014, 08:42   #561  |  Link
kypec
User of free A/V tools
 
kypec's Avatar
 
Join Date: Jul 2006
Location: SK
Posts: 830
Quote:
Originally Posted by ultim View Post
... new test build[/B], r1689

Right, http://goo.gl/e0VFYn.
Can anyone be so kind and tell me how am I supposed to download comfortably from that MEGA folder? When I choose "Download as ZIP" it always got stuck at 10~13% in Firefox. When I choose standard download then I have to confirm manually each single file to be downloaded and folder hierarchy is lost, x86 & x64 files are mixed due to having identical names Not very user friendly and very error-prone IMO.

EDIT: I just tried with Chrome on Windows 7 - same issue with "Download as ZIP".

Last edited by kypec; 6th February 2014 at 09:30. Reason: Another browser checked
kypec is offline   Reply With Quote
Old 6th February 2014, 10:37   #562  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by Nevilne View Post
divide=1 or divide=2 doesn't work in MAnalyse with avisynth+

Code:
super = MSuper()
backward_vectors = MAnalyse(super, isb = true)
forward_vectors = MAnalyse(super, isb = false)
MFlowBlur(super, backward_vectors, forward_vectors, blur=15)
working

Code:
super = MSuper()
backward_vectors = MAnalyse(super, divide=1, isb = true)
forward_vectors = MAnalyse(super, divide=1, isb = false)
MFlowBlur(super, backward_vectors, forward_vectors, blur=15)
black screen
Will check at home.
__________________
AviSynth+
ultim is offline   Reply With Quote
Old 6th February 2014, 10:46   #563  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by qyot27 View Post
Both builds crash immediately due to a SIGILL.

On a different computer (that has SSE2), though...
Ah yes, I forgot to mention this in the changelist, I'll go and edit shortly. Previous stable Avs+ have been compiled to SSE2 unknowingly, this has been already discovered and is fixed in the current MT build. SSE is still required though.

Quote:
Originally Posted by qyot27 View Post
AviSynth_check.dll = error, truncation
AviSynth_nocheck.dll = error, truncation
I was afraid of this. Then I think this is something to be fixed in FFAudioSource(). The special test builds for you were the same as stable r1576 (which you said was still working), except I removed the audio caches. No changes, just pure code removal, so that the Cache filters becomes completely transparent for audio and call through directly to the source filter. So unless the audio cache has been doing something funky, I think this might be a problem in FFAudioSource(). I'm not 100% sure though, as I'm not familiar with the audio cache of old AviSynth.
__________________
AviSynth+

Last edited by ultim; 6th February 2014 at 10:56.
ultim is offline   Reply With Quote
Old 6th February 2014, 10:48   #564  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by naoan View Post
Thanks for the build ultim, haven't tried much but fft3dgpu need mode 3 to operate without glitch.
Thx. This will probably be true for all filters that use the GPU. For these filters, there is nothing Avs+ can do about them, aside from using mode 3. Try to place these calls towards the beginning of your script to minimize the performance affect on other filters.
__________________
AviSynth+
ultim is offline   Reply With Quote
Old 6th February 2014, 14:29   #565  |  Link
zero9999
Registered User
 
Join Date: Oct 2011
Posts: 52
Quote:
Originally Posted by kypec View Post
Can anyone be so kind and tell me how am I supposed to download comfortably from that MEGA folder? When I choose "Download as ZIP" it always got stuck at 10~13% in Firefox. When I choose standard download then I have to confirm manually each single file to be downloaded and folder hierarchy is lost, x86 & x64 files are mixed due to having identical names Not very user friendly and very error-prone IMO.

EDIT: I just tried with Chrome on Windows 7 - same issue with "Download as ZIP".
AviSynth+-2.6.0.5-MT-r1689-g0d5dfb7.7z
AvsPmod-2.5.1-r426-x86-04874ed.7z

Last edited by zero9999; 6th February 2014 at 18:31.
zero9999 is offline   Reply With Quote
Old 6th February 2014, 15:59   #566  |  Link
Groucho2004
Cantankerous Fossil
 
Groucho2004's Avatar
 
Join Date: Mar 2006
Location: A wretched hive of scum and villainy
Posts: 4,470
Quote:
Originally Posted by turbojet View Post
blankclip(1630,1920,1080,"YV12",23.976)
resize(1280,720)
measured with avsmeter 1.7.6
Code:
            AVS+   2.60   
Lanczos3    116    132
Spline64    108    116
Bicubic     192    159
Bilinear    205    225
Bicubic being faster while the others are slower might be interesting.
Same script with i5 2500K @ 4GHz:
(There is no Lanczos3 so I left it out)
Code:
            AVS+ r1689     2.60A5
Spline64    161            190   
Bicubic     341            298   
Bilinear    382            461
The relative differences seem roughly the same for Intel/AMD, Intel is just a lot faster.
Groucho2004 is offline   Reply With Quote
Old 6th February 2014, 16:02   #567  |  Link
innocenat
Registered User
 
innocenat's Avatar
 
Join Date: Dec 2011
Posts: 77
turbojet, Groucho2004: Would you guys also mind testing horizontal resizer only? (i.e. 1920x1080 to 1280x1080 etc.) Thank you in advance.
__________________
AviSynth+
innocenat is offline   Reply With Quote
Old 6th February 2014, 16:09   #568  |  Link
Groucho2004
Cantankerous Fossil
 
Groucho2004's Avatar
 
Join Date: Mar 2006
Location: A wretched hive of scum and villainy
Posts: 4,470
Quote:
Originally Posted by innocenat View Post
turbojet, Groucho2004: Would you guys also mind testing horizontal resizer only? (i.e. 1920x1080 to 1280x1080 etc.) Thank you in advance.
Code:
blankclip(1630,1920,1080,"YV12",23.976)

                             AVS+       2.60A5     
Spline64resize(1280,1080)    211        250
Bicubicresize(1280,1080)     472        379
Bilinearresize(1280,1080)    472        571
Groucho2004 is offline   Reply With Quote
Old 6th February 2014, 16:14   #569  |  Link
innocenat
Registered User
 
innocenat's Avatar
 
Join Date: Dec 2011
Posts: 77
Quote:
Originally Posted by Groucho2004 View Post
Code:
blankclip(1630,1920,1080,"YV12",23.976)

                             AVS+       2.60A5     
Spline64resize(1280,1080)    211        250
Bicubicresize(1280,1080)     472        379
Bilinearresize(1280,1080)    472        571
Thank you very much. It seems that it is not as fast as I initially tested and expected.
__________________
AviSynth+
innocenat is offline   Reply With Quote
Old 6th February 2014, 17:40   #570  |  Link
Nevilne
Registered User
 
Join Date: Aug 2010
Posts: 134
Quote:
Originally Posted by ultim View Post
Quote:
Originally Posted by Nevilne
divide=1 or divide=2 doesn't work in MAnalyse with avisynth+
Will check at home.
Thanks

Quote:
Originally Posted by ultim View Post
Quote:
Originally Posted by naoan
Thanks for the build ultim, haven't tried much but fft3dgpu need mode 3 to operate without glitch.
Thx. This will probably be true for all filters that use the GPU. For these filters, there is nothing Avs+ can do about them, aside from using mode 3. Try to place these calls towards the beginning of your script to minimize the performance affect on other filters.
But should there be such a huge performance hit? I have a heavy script which has setmtmodes 2,3 and 4 for fft3dgpu at the end, it runs at 9 fps and fft3dgpu doesn't slow it down at all.

avs+ runs it at 12 fps with mode 2 but if i choose mode3 for fft3dgpu it runs at 6 fps.
However, if i put prefetch before fft3dgpu script seems to run correctly, and at 16 fps.
Nevilne is offline   Reply With Quote
Old 6th February 2014, 17:43   #571  |  Link
innocenat
Registered User
 
innocenat's Avatar
 
Join Date: Dec 2011
Posts: 77
Just a note: having filter after Prefetch() will currently result in two group of pipelined filter: filter before Prefetch() will run in number of threads specify, while filter after Prefetch() will run in single, main thread. Not sure if this behaviour will change or not.
__________________
AviSynth+
innocenat is offline   Reply With Quote
Old 6th February 2014, 18:27   #572  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,084
Quote:
Originally Posted by ultim View Post
Ah yes, I forgot to mention this in the changelist, I'll go and edit shortly. Previous stable Avs+ have been compiled to SSE2 unknowingly, this has been already discovered and is fixed in the current MT build. SSE is still required though.
Yeah, for my own builds with VS2013, I just disabled additional CPU optimizations completely (/arch:IA32), regardless of the fact that I do have an SSE-capable processor.

How much of an equivalent is /arch in MSVC to GCC's -msse/etc. parameters? Does it have an impact on the intrinsics (since the option to dis/enable them is different), or are the two completely separate and the /arch stuff just optimizes the C/C++ parts?

Quote:
I was afraid of this. Then I think this is something to be fixed in FFAudioSource(). The special test builds for you were the same as stable r1576 (which you said was still working), except I removed the audio caches. No changes, just pure code removal, so that the Cache filters becomes completely transparent for audio and call through directly to the source filter. So unless the audio cache has been doing something funky, I think this might be a problem in FFAudioSource(). I'm not 100% sure though, as I'm not familiar with the audio cache of old AviSynth.
I'll have to see. From looking at FFMS2's audiosource.cpp, that error message is defined in the FFMS_AudioSource::GetAudio function, here:
https://github.com/FFMS/ffms2/blob/master/src/core/audiosource.cpp#L343

Not sure if anything particular jumps out, but I thought I'd still point to it.
qyot27 is online now   Reply With Quote
Old 6th February 2014, 18:30   #573  |  Link
innocenat
Registered User
 
innocenat's Avatar
 
Join Date: Dec 2011
Posts: 77
Quote:
Originally Posted by qyot27 View Post
How much of an equivalent is /arch in MSVC to GCC's -msse/etc. parameters? Does it have an impact on the intrinsics (since the option to dis/enable them is different), or are the two completely separate and the /arch stuff just optimizes the C/C++ parts?
It only affect compiler-generated code. Unlike GCC/Clang, the flag has no effect on intrinsics. But we have dynamic dispatcher with pure-C path for every internal filter so multiple version of filter is chosen automatically at runtime.
__________________
AviSynth+
innocenat is offline   Reply With Quote
Old 6th February 2014, 19:01   #574  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by Nevilne View Post
But should there be such a huge performance hit? I have a heavy script which has setmtmodes 2,3 and 4 for fft3dgpu at the end, it runs at 9 fps and fft3dgpu doesn't slow it down at all.

avs+ runs it at 12 fps with mode 2 but if i choose mode3 for fft3dgpu it runs at 6 fps.
However, if i put prefetch before fft3dgpu script seems to run correctly, and at 16 fps.
Yes, everything that you showed here is nothing out of ordinary. If you put a mode 3 fiilter in your script, all filters before it will also be serialized, which is the cause of the performance hit. This is why I recommended earlier that if you have a mode 3 filter, try to put it towards the beginning, which minimizes this hit.

The solution that you have implemneted, putting fft3dgpu *after* Prefetch(), is also a perfect solution, and is even better than placing it just before the Prefetch() if you have nothing after fft3dgpu.
__________________
AviSynth+
ultim is offline   Reply With Quote
Old 6th February 2014, 19:03   #575  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by qyot27 View Post
Yeah, for my own builds with VS2013, I just disabled additional CPU optimizations completely (/arch:IA32), regardless of the fact that I do have an SSE-capable processor.

How much of an equivalent is /arch in MSVC to GCC's -msse/etc. parameters? Does it have an impact on the intrinsics (since the option to dis/enable them is different), or are the two completely separate and the /arch stuff just optimizes the C/C++ parts?


I'll have to see. From looking at FFMS2's audiosource.cpp, that error message is defined in the FFMS_AudioSource::GetAudio function, here:
https://github.com/FFMS/ffms2/blob/master/src/core/audiosource.cpp#L343

Not sure if anything particular jumps out, but I thought I'd still point to it.
Oh, you get that error? Then I'm puzzled and even less sure than I was before. This definetely needs investigation.
__________________
AviSynth+
ultim is offline   Reply With Quote
Old 6th February 2014, 23:15   #576  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,084
Quote:
Originally Posted by innocenat View Post
It only affect compiler-generated code. Unlike GCC/Clang, the flag has no effect on intrinsics.
Ah, I see.

Quote:
Originally Posted by ultim View Post
Oh, you get that error? Then I'm puzzled and even less sure than I was before. This definetely needs investigation.
Correct. I did a little bit more testing, and it happens with both SSRC and ResampleAudio, with slightly different behavior (see below). Based on the wording of the error message, could it be that the resampling filters are requesting extra samples out of FFAudioSource that just aren't there, leading to the error?




The results are as follows:
SSRC = error message is thrown just before the end of the read, script exits immediately causing audio to be truncated at the end

ResampleAudio = error message is thrown immediately, script exits, empty output file

No resampling step(s) at all = output audio is 44056kHz, no error is thrown, read ends successfully with no truncation


Steps to reproduce:
Generate test video+audio with FFmpeg:
Code:
ffmpeg -f lavfi -i testsrc=duration=60:size=352x176:rate=30 -f lavfi -i aevalsrc="sin(440*2*PI*t):s=44100" -vcodec mpeg4 -acodec aac -strict experimental -t 60 output.mp4
Index the file:
Code:
ffmsindex -t -1 output.mp4
Script:
Code:
FFmpegSource2("output.mp4",atrack=-1,fpsnum=30000,fpsden=1000)
#SSRC(48000,fast=false)
AssumeFPS(29.97,sync_audio=true)
#SSRC(48000,fast=false)
#ResampleAudio(48000)
Uncomment for SSRC vs. ResampleAudio tests.
qyot27 is online now   Reply With Quote
Old 7th February 2014, 02:27   #577  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
What I meant by Lanczos3 is lanczosresize(taps=3) which is default.

Interesting that intel has the same kind of results, I don't have time to test horizontally only right now but I can do it in a few hours if it's still needed.
__________________
PC: FX-8320 GTS250 HTPC: G1610 GTX650
PotPlayer/MPC-BE LAVFilters MadVR-Bicubic75AR/Lanczos4AR/Lanczos4AR LumaSharpen -Strength0.9-Pattern3-Clamp0.1-OffsetBias2.0
turbojet is offline   Reply With Quote
Old 7th February 2014, 09:32   #578  |  Link
kypec
User of free A/V tools
 
kypec's Avatar
 
Join Date: Jul 2006
Location: SK
Posts: 830
although you might consider to replace secure https linking with standard non-secure http due to untrusted (self-signed) certificate issues for potential downloaders of your builds.
kypec is offline   Reply With Quote
Old 7th February 2014, 09:32   #579  |  Link
naoan
Registered User
 
Join Date: Oct 2009
Posts: 152
Quote:
Originally Posted by ultim View Post
Thx. This will probably be true for all filters that use the GPU. For these filters, there is nothing Avs+ can do about them, aside from using mode 3. Try to place these calls towards the beginning of your script to minimize the performance affect on other filters.
Yeah it's like mode 5 in the old mt. Thanks for the tips but I need it last, and it's actually fast enough on my simple real time ffdshow-avisynth+ anyway (just it and fastlinedarkenmod).
naoan is offline   Reply With Quote
Old 7th February 2014, 11:22   #580  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by naoan View Post
Yeah it's like mode 5 in the old mt. Thanks for the tips but I need it last, and it's actually fast enough on my simple real time ffdshow-avisynth+ anyway (just it and fastlinedarkenmod).
If it needs to be last, you can also place it after the call to Prefetch().
__________________
AviSynth+
ultim is offline   Reply With Quote
Reply

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 13:32.


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