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 Display Modes
Old 24th November 2004, 12:44   #1  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 2,246
AviSynth 2.5.6 RC 2 Release Candidate [October 7th]

Dear all,

Here is the second Release Candidate of my review and refactor work on Avisynth 2.5.6.

A link down to the lastest Release Post (225)

==========================
See below for progressive updates
===========================


Whats being done.

Evil EBX not saved compiler bug CRASH!
GreyScale() YUY2 fixed - others being hunted!

Convert.cpp
Review and refactor is still in progress.
MMX ConvertToYUY2(Matrix="...") support"
Added PC Levels RGB<->YUV [0..255] conversion options (Matrix="PC.601") and (Matrix="PC.709")
Added Rec.709 RGB->YUV conversion options (Matrix="Rec709").
RGB Greyscale(matrix="Average") support for unweighted [ Y=(R+G+B)/3 ] luma.
------------------------------------
Many 2^n MMX width restrictions gone
Fast MMX RGB24 -> RGB32 convertion
Legacy C++ RGB32 -> RGB24 reinstated
RGB Greyscale(matrix="rec709") support for Rec.709 luma weightings.
MMX YUY2 Greyscale()

Unrecognised Exception - Problem
I've given up trying to classify the code that causes this problem and am just sledge hammering the instances I find with a null try/catch. Here is a list of the affected modules found so far :-
- audio.cpp
- avs_soundtouch.cpp
- color.cpp
- field.cpp
- focus.cpp
- fps.cpp
- levels.cpp
- resample.cpp
- source.cpp

Fps.cpp
Added copy FPS from another clip to ConvertFPS and ChangeFPS as per AssumeFPS.

Avi_source.cpp
Fix WavSource() leaving .WAV files open.

Edit.cpp
Correct multi-channel audio fading

Focus.cpp
Full review and refactor of Blur/Sharpen code
Fixed YV12 width<=16 fatal crash
YV12 H MMX code no longer double blurs every 8th pixel
Edge boundaries now processed
Now MMX, not just SSE restricted
Some MMX versions faster
Most 2^n MMX width restrictions gone
When H or V blur==0 now skips that pass

Layer.cpp
Fixed BGR - GBR typo

Please report bugs in these reviewed modules in this thread.

Please post your script!

Regards
IanB

Last edited by IanB; 8th October 2005 at 01:58. Reason: RC 2
IanB is offline   Reply With Quote
Old 24th November 2004, 16:22   #2  |  Link
Mug Funky
interlace this!
 
Mug Funky's Avatar
 
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,267
well, no crashes yet, but i don't think i'm testing the right bits

i never got unrecognised exceptions, really. i get plenty of access violations, but i've not been able to track these down. i have a suspicion it's both mvtools and a really whacky interpretation of mpeg-2 spec as a source. but i can't be more specific because there's always other plugs involved, and the crashes only happen after a large number of frames, usually at a slow fps with lots of filtering.
__________________
interlace... right or wrong, just deal with it.
Mug Funky is offline   Reply With Quote
Old 24th November 2004, 22:27   #3  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 5,579
Great!

I updated the installer (and added the italian documentation):

http://www.arachnotron.nl/permanent/...nth_241104.zip
http://www.geocities.com/wilbertdijk...nth_241104.zip
http://bbsrv.imp.leidenuniv.nl/~arac...nth_241104.zip

edit: geocities is complaining again. Perhaps someone can download it tomorrow and host it for a while?

Some remarks:

"RGB Greyscale(matrix="Average") support for unweighted (equal value) luma." means luma = (r+g+b)/3 I guess ...

Quote:
Adding PC Levels RGB<->YUV [0..255] conversion options (Matrix="PCLevels")
This means that the RGB [0,255] <-> YUV [0,255] is only possible with Rec.601 coefficients right?

Perhaps you can add it as a new option instead (called pc_range = true / false(default) to keep it consistent with overlay for example). This way you can also implement the conversion with Rec.709 coefficients.

Last edited by Wilbert; 26th November 2004 at 16:40.
Wilbert is offline   Reply With Quote
Old 25th November 2004, 03:47   #4  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 2,246
Quote:
Originally posted by Wilbert

"RGB Greyscale(matrix="Average") support for unweighted (equal value) luma." means luma = (r+g+b)/3 I guess ...
Correct. r=g=b = (r+g+b)/3

Quote:
This means that the RGB [0,255] <-> YUV [0,255] is only possible with Rec.601 coefficients right?
At the moment. Patients! Patients! The MMX code might be able to do both 601 and 709 with both TV and PC levels, I am still writing it.

I'll do a pass on the doco when I get the current batch of code finished (unless you beat me to it).

If you have a minute can you please spot check some YUV values for the darker saturated colours I think I might be out by 1 at the black end.

IanB
IanB is offline   Reply With Quote
Old 25th November 2004, 11:30   #5  |  Link
sh0dan
AviSynth Developer
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,468
Just PM me when you need me to update the sourceforge alpha.
__________________
Regards, sh0dan // VoxPod
[AviSynth 2.5 project page] | [blog].
sh0dan is offline   Reply With Quote
Old 26th November 2004, 15:50   #6  |  Link
Mug Funky
interlace this!
 
Mug Funky's Avatar
 
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,267
try this to get wilbert's installer:

http://mugfunky.no-ip.info/AviSynth_241104.zip

you must allow port 8080... some workplace firewalls reject it, so be warned.

i'm an apache n00b

oh, btw: this is being hosted off my machine, which means when it gets turned off, the file is gone. i'll leave it on for tonight, and hopefully most of tomorrow, but if the power fails while i'm asleep then there's not much i can do (the grid is pretty unreliable here, too. should be fine for tonight though).
__________________
interlace... right or wrong, just deal with it.
Mug Funky is offline   Reply With Quote
Old 26th November 2004, 16:41   #7  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 5,579
Thx! I also added some additional links above.
Wilbert is offline   Reply With Quote
Old 28th November 2004, 22:15   #8  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 2,246
Also available from http://avisynth2.sourceforge.net/24N...nth_241104.exe

IanB
IanB is offline   Reply With Quote
Old 29th November 2004, 03:15   #9  |  Link
JuanC
Registered User
 
Join Date: May 2002
Posts: 220
Problem Report: AudioGraph filter...

The AudioGraph filter is crashing (vanishing) virtualdubmod ever since the first AVIsynth 2.56 alpha release.

Could there be anything wrong in the filter? warpenterprises has the filter and source code here.
JuanC is offline   Reply With Quote
Old 29th November 2004, 13:11   #10  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 2,246
Re: Problem Report: AudioGraph filter...

Quote:
Originally posted by JuanC
The AudioGraph filter is crashing (vanishing) virtualdubmod ever since the first AVIsynth 2.56 alpha release.
And why didn't you call sooner?

This has exposed a really nasty compiler bug, I begin to appreciate Avery's profanity re Microsloth's compiler bugs. (And he tells me .Net is even worse)

1. In this case the compiler assumed the "ebx" register was preserved across an __stdcall (it's not supposed to) and
2. registers used inside __asm blocks are supposed to be preserved in the entry/exit prologue (well guess what they don't all always get saved). [Starts with F, ends with k, 4 letters]!!! You get the idea ...

I've fixed and tested YUY2 GreyScale() which AudioGraph needs. I'll put an interim checkpoint .dll up tonight for you to test, watch for the EDIT of the 1st post in this thread.

Before I ask Sh0dan to put up a new full package, I'll do a pass through the code over the next few nights to find any more of this evilness.


Quote:
Could there be anything wrong in the filter? ... http://www.avisynth.org/warpenterprises/files/audgraph_25_dll_20030813.zip
Yes, the version pointed to above is the "_" to many version. But that is a different problem. Sh0dan has a fixed version.

IanB
IanB is offline   Reply With Quote
Old 29th November 2004, 18:40   #11  |  Link
JuanC
Registered User
 
Join Date: May 2002
Posts: 220
Re: Re: Problem Report: AudioGraph filter...

Quote:
Originally posted by IanB
And why didn't you call sooner?
It just took me some time to empty my autoload plugins directory and try the filters one by one ... There could be some other problematic filters ...

Quote:
Originally posted by IanB
I've fixed and tested YUY2 GreyScale() which AudioGraph needs. I'll put an interim checkpoint .dll up tonight for you to test, watch for the EDIT of the 1st post in this thread.
Thanks!!! I will be happy to test.

Quote:
Originally posted by IanB
... ( about AudioGraph ) ... Yes, the version pointed to above is the "_" to many version. But that is a different problem. Sh0dan has a fixed version.
I got the one from ShOdan's former website. I didn't notice warpenterprises had the old one. ShOdan is no longer hosting it.
JuanC is offline   Reply With Quote
Old 30th November 2004, 07:53   #12  |  Link
lark
Regular User
 
Join Date: May 2002
Location: Yes and No
Posts: 411
Re: Re: Re: Problem Report: AudioGraph filter...

Quote:
I got the one from ShOdan's former website. I didn't notice warpenterprises had the old one. ShOdan is no longer hosting it.
i was looking for it yesterday, but couldn't find (the link in the old post didn't work any more.
could you please direct me to the correct spot?

regards
t
lark is offline   Reply With Quote
Old 30th November 2004, 10:15   #13  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 5,579
Quote:
I'll do a pass on the doco when I get the current batch of code finished (unless you beat me to it).
I updated it last week, but didn't commit it yet.

Quote:
If you have a minute can you please spot check some YUV values for the darker saturated colours I think I might be out by 1 at the black end.
I will do that if my internet connection works again
Wilbert is offline   Reply With Quote
Old 30th November 2004, 11:18   #14  |  Link
sh0dan
AviSynth Developer
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,468
The modified AudioGraph can be downloaded from here
__________________
Regards, sh0dan // VoxPod
[AviSynth 2.5 project page] | [blog].
sh0dan is offline   Reply With Quote
Old 30th November 2004, 11:26   #15  |  Link
lark
Regular User
 
Join Date: May 2002
Location: Yes and No
Posts: 411
Quote:
Originally posted by sh0dan
The modified AudioGraph can be downloaded from here
thanks a 1000000
t
lark is offline   Reply With Quote
Old 30th November 2004, 22:48   #16  |  Link
Richard Berg
developer wannabe
 
Richard Berg's Avatar
 
Join Date: Nov 2001
Location: Jersey City, NJ
Posts: 1,211
Quote:
Originally posted by sh0dan
Just PM me when you need me to update the sourceforge alpha.
It looks like Ian is doing great things for the project, and I don't think I can return anytime soon, so feel free to add him as an admin if you wish. Of course, if anyone needs things done to the website/server, you know where to find me
Richard Berg is offline   Reply With Quote
Old 19th December 2004, 17:59   #17  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 5,579
AviSynth 2.5.6 CVS Pre-Releases. [December 17th]

I've put up a new release

http://bbsrv.imp.leidenuniv.nl/~wilb...nth_191204.exe

changelog:

additions:
* Added an "[sse]b" option in Tweak to re-enable the SSE code if required (maybe an AMD might run it faster).
* Added Limiter(show=show_luma/show_luma_grey/show_chroma/show_chroma_grey) shows out of bound luma/chroma; *_grey makes the rest of the pixels grey.
* Added offsets and analyze option (ala ColorYUV) in RGBAdjust.
* Added ColorBars(pixel_type="YUY2").

bug files:
* Fixed Normalize (it was only sampling half of the samples per mouthful; it was ignoring the scaling factor).

optimizations:
* Tweak: added C code, which is now faster than the old iSSE code.
* Reworked some code in some audio filters which uses 64 bit operations (many of the routines are between 2 and 5 times faster).

changes:
* Normalize uses 256K transfer buffer to analyze peaks (should be > 5 times faster now); and displays the frame number of the peak.

I hope I didn't forget anything. Btw, the included docs in the installation are updated.

Last edited by Wilbert; 19th December 2004 at 20:38.
Wilbert is offline   Reply With Quote
Old 6th January 2005, 10:48   #18  |  Link
sh0dan
AviSynth Developer
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,468
Januar 6th Beta 1 Release:

Great work by Ian:

- ConvertToFloat() fast SSE & SSE2 + Opt output copy.
- ConvertFromFloat() fast SSE2.
- ResampleAudio() support SFLOAT.
- Large amount of stability fixes.
- ShowFiveVersions() YV12 + Grey fill 2 corner rectangles.
- Fast Tweak, RGB Bias+Analyse, Limiter show.
- ChangeFPS/ConvertFPS(clip, ...) as per AssumeFPS
- Correct multi-channel audio fading.
- Optimizations in Merge.


Users with P3 should test the following script:
Code:
ColorBars()
ConvertAudioto16Bit()
ConvertAudioto32Bit()
ConvertAudioto16Bit()
histogram("stereo")
As usual download from Sourceforge
__________________
Regards, sh0dan // VoxPod
[AviSynth 2.5 project page] | [blog].

Last edited by sh0dan; 6th January 2005 at 10:57.
sh0dan is offline   Reply With Quote
Old 6th January 2005, 14:38   #19  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 2,246
@sh0dan,

Ta!

Dear All,

And also in this release...
- Reworked Cache and memory management
Please break out your most evil cache busting scripts and test, test and test more.

Also First Bug! (See I do test my own code)

Converting from Float, ConvertAudioTo32Bit() SSE and SSE2, saturate incorrectly in the positive direction. For normalized values >= 1.0f it returns MIN_INT (0x80000000) instead of MAX_INT (0x7FFFFFFF). (Sounds really bad)

Can someone with a 3DNow capable processor please test the following script.
Code:
ColorBars()
Amplify(1.1) # or more
ConvertAudioTo32Bit()
ConvertAudioTo16Bit() # Maybe
The problem is related to the limited precision available with 32bit floats. The scaled values actually available at the top end are 2147483520 (MAX_INT-127) and 2147483648 (MAX_INT+1). The easy solution is to clamp positive saturation at 2147483520 (0x7FFFFF80).

Anybody Like to suggest some neat SSE(2) code to do the exact positive saturation.

IanB
IanB is offline   Reply With Quote
Old 6th January 2005, 19:42   #20  |  Link
Manao
Registered User
 
Join Date: Jan 2002
Location: France
Posts: 2,760
> - Reworked Cache and memory management

Very interesting, I'll see if the ugly behavior with FuPP's scripts and the old masktools version is still preset or not. Anyway, thanks a lot !
Manao is offline   Reply With Quote
Reply

Thread Tools
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 08:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.