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. |
![]() |
#1 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
AviSynth 2.6.0 Alpha3 [May 25th, 2011]
An interim patch release. I'll do a proper update of this first post when I get some more spare time.
Get AviSynth_110525.exe (4.9MiB) from SourceForge. ======================== Here is the 2nd official release of Avisynth 2.6. Again a purpose of this release is to confirm compatibility with version 2.5.8. For scripts using only 2.5.8 features the results should be identical. This version now contain most of the features in the experimental 2_6 CVS tree. It supports Y8, YV24, YV16 and YV411 colour spaces in most existing filters. It contain Sh0dans latest SoftWire updates and his SSSE3 code enhancements. In addition to his SSSE3 version, I have rewritten the MMX code for the vertical resizer which now does 8 pixels per cycle and also written an SSE2 version which does 16 pixels per cycle. And for the vertical PointResizer there is an ultra fast code path which does 64 bytes per cycle. Due to limits in my available programming cycles, not all the new code has had my normal fastidious testing, so I am trying something new. I am putting up this version for you to use while I continue the testing and development. Next release will have the bug fixes for whatever I find and you report. Be aware! Note this installer also does not include any of the documentation. You should install 2.5.8 and then install this version over the top. The next release should have at least the English 2.6 doco. Get AviSynth_090927.exe (1.1MiB) from SourceForge. ======================== Changelist Additions * Added support for argument passing and EAX return value to SoftwireHelper. * Added "Global OPT_VDubPlanarHack=True" to flip YV24 and YV16 chroma planes for old VDub's. * Added ContinuedDenominator/ContinuedNumerator(f[]i[limit]i) script functions. [undocumented] * Tweak: fix MaskPointResizing + put back Dividee ISSE code (use sse=true, can't use all settings in that case). [undocumented] * Added ChromaPlacement and ChromaResample options to planar colour conversions. * Added MaskHS. * Minor tweaks to get ready for VC8. * Add Y8 for DevIL, planarize EBMP. * Planar support for many filters. * Added Info() time indicator on audio length and video (current frame & total). (2.5.8) * Added UtoY8 and VtoY8. * Added more info to Info(). (2.5.8) * ColorYUV: Added all adjustment parameters as conditional variables "coloryuv_SETTING". Enable by setting conditional=true. [undocumented] * ConditionalReader: Added support for type String. [undocumented] * ConditionalReader: Added offset keyword to offset all frame numbers after the keyword. [undocumented] * Added SincResize() with optional taps parameter (default is 4). * Added Custom band setting to SuperEQ to allow all 16 bands to be set from script. Usage: SuperEQ(clip,band1, band2, band3....) values are dB in float. * Added fast 0-1-0 kernel for YV24 to ConvertBacktoYUY2(). * Added formats: YV24, YV16, Y8, YV411. Bugfixes * Fixed MonoToStereo with stereo sources. * Fixed MergeChannels with only 1 input clip. * Fixed support for negative height DIB format AVI's. (Oops still not quite right yet) * Fixed Audio cache crashes. * Fixed resize with YV411 missing code. * Fixed ConditionalReader rounding with integer Interpolation. * Fixed Softwire SSE2 bugs. * Fixed SSSE3 CPU detection. * Fixed SSSE3, SSE4.1 & SSE4.2 detection. * Fixed Fastwire encoding of instructions that are >2 opcodes (SSSE3+4). * Fixed _RPT5() macro for debug builds Optimizations * WriteFile() now supports 32 unlimited strings. (was 16 by 254 byte strings). * SuperEQ: Improve channel unpacking/packing code. * H-Resize: Use SSE4.1 (movntdqa) loads for use once memory access. * H-Resize: Added SSE2 horizontal unpacker. * Resize: Use SSE3 (lddqu) loads for unaligned memory access. * Added ultra fast vertical PointResizer (64 pixel/cycle). * Added dynamic SSSE3 vertical resizer (16 pixel/cycle) ~ twice as fast as old MMX. * Added dynamic SSE2 vertical resizer (16 pixel/cycle). * Added dynamic MMX vertical resizer (8 pixel/cycle). * Added SSSE3 version for RGB<->YV24 conversions. * Added dynamic compiled MMX/iSSE for RGB<->YV24 conversions. Speed is approx 200% of C-code. Changes * ConditionalReader/WriteFile: Full refactor. * SoftwireHelper: explicit hardware exception handling. * Resize: Moved GetResampleFunction into Resamplefuntion, to allow overrides. * Resampler: Removed dead stlf code. * Updated Soundtouch to 1.31 (2.5.8) * Put dynamic matrix conversion into separate file. * Moved chroma subsampling to image_type section. * Added specific error reporting when requesting chromasubsampling with Y8. * Split up merge and plane Swappers. * Split up Plane transfers into separate classes. * Added automatic destination colorspace detection on planar YtoUV. * Took out greyscale and RGB32<->RGB24 from convert.cpp and placed them in separate files. * All code assuming UVwidth = Ywidth/2 and similar should be gone. Documentation can be found online (and in the 2.6 cvs tree). Last edited by Guest; 29th October 2012 at 13:28. |
![]() |
![]() |
![]() |
#2 | Link | |
Registered User
Join Date: Dec 2002
Posts: 5,565
|
VirtualDub 1.9.5 is already out:
Quote:
|
|
![]() |
![]() |
![]() |
#3 | Link | |
brainless
Join Date: Mar 2003
Location: Germany
Posts: 3,655
|
Quote:
SwapUV() should do the trick, shouldn't it?
__________________
Don't forget the 'c'! Don't PM me for technical support, please. |
|
![]() |
![]() |
![]() |
#6 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
^TSP submitted his MT code for avisynth 2.6 a couple years ago. Official MT support is supposed to happen once it's released.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
![]() |
![]() |
![]() |
#7 | Link |
Registered User
Join Date: Mar 2005
Posts: 366
|
Very nice. Is there a changelog somewhere?
![]()
__________________
DVD slideshow GUI(Freeware). |
![]() |
![]() |
![]() |
#8 | Link |
Registered User
Join Date: Aug 2007
Posts: 374
|
Can we have clear trunk/stable svn repositories for Avisynth 2.6? I want to see major MT/cache changes you have in mind submitted asap as i have several thoughts myself but would rather modify new version.
PS: And why on Earth it's compiled with VS 6? I again suggest dropping this deprecated many years ago compiler with poor standards support and many code generation bugs. |
![]() |
![]() |
![]() |
#9 | Link |
Super Moderator
![]() Join Date: Nov 2001
Location: Netherlands
Posts: 6,371
|
Nice job! I will move the docs to the main tree.
The changelist (note this is with respect to the cvs tree, and i'm not sure which ones are included in the alpha build). It might also be that some of the fixes are already in 2.58. Additions * Tweak: v2.58 catchup + fix MaskPointResizing + put back Dividee ISSE code (use sse=true, can't use all settings in that case). [undocumented] * Added chromaplacement and chromaresample options to color conversions. * Added MaskHS. * Made VC8 project files. * Minor tweaks for VC8 compile. All changes should be compatible with VC6 - there are two Soundtouch libraries for the same reason. * Made VC8 projects for DirectshowSource and TCPDeliver. * Add Y8 for DevIL, planarize EBMP. * Planar support for many filters. * Added time indicator on audio length and video (current frame & total). * Added specific error reporting when requesting subsampling on Y8. * Added MultiThreading support, including ScriptEnvironment::SetMTMode and ScriptEnvironment::GetMTMode. * Added UtoY8 and VtoY8. * Added more info to Info(). * ColorYUV: Added all adjustment parameters as conditional variables "coloryuv_SETTING". Enable by setting conditional=true. [undocumented] * ConditionalReader: Added offset keyword to offset all frame numbers after the keyword. [undocumented] * Added SincResize(). Optional taps parameter (default is 4). * Added Custom band setting to SuperEQ to allow all 16 bands to be set from script. Usage: SuperEQ(clip,band1, band2, band3....) values are dB in float. * Work in progress, Add fast 0-1-0 kernel YV24 back to YUY2. (status ?) * Added formats: YV24, YV16, Y8, YV411. * Added SoundOut plugin. It is a GUI driven sound output module for AviSynth (it exports audio to several compressors). Bugfixes * MT related fixes by SEt * ColorYUV: Removed (unused) debug information code. Resize: Use SSE3 (SSSE3 ??) loads for unaligned memory access. * Resize: Free aligned horizontal resizers. * Resize: Moved GetResampleFunction into Resamplefuntion, to allow overrides. * TCPClient: Fixed uncompressed client not passing correctly through. * TCPServer: GetFrame is now ensured to only be called by a single thread, if client should request frames. * Fixed Softwire SSE2 bugs. * Removed dead code from horizontal resizer * Commented dynamic vertical resizer better. * TCPDeliver: Fixed VC8 compilation on latest SDK. * TCPDeliver: Image decompression is now done in client fetch thread to enable better multithreading * TCPServer: Removed Secure printf's for VC6 * TCPDeliver: Using TCP_NODELAY, this will kill latency on client request packets, and server replies. * Increment sequencecount in MakeWritable to avoid crash when calling GetFrame between MakeWritable() and GetWritePtr(). Optimizations * Resize: Added SSSE3 horizontal unpacker. * Added dynamic horizontal MMX resizer. * Added dynamic SSSE3 horizontal resizer ~ twice as fast as MMX. * Optimized horizontal SSSE3 resizer; approx 2.5 x speedup (38.1fps vs 14.2fps on test) * Added dynamic compiled MMX/iSSE for RGB<->YV24 conversions. Speed is approx 200% of C-code. Changes * Fixed SSSE3, SSE4.1 & SSE4.2 detection.Softwire: Fixed encoding of instructions that are >2 opcodes (SSSE3+4). * Fixed SSSE3 CPU detection. * Resampler: Removed dead stlf code. * Threading in TCPDeliver does not use AFX anymore.* * Updated Soundtouch to 1.31 * Put dynamic matrix conversion into separate file. * Moved chroma subsampling to image_type section. * Added a synchronization class IClipLocalStorage and smartpointer PClipLocalStorage to handle synchronisation between class instances when using MTMode 2 and 4. * Split up merge and plane Swappers. * Split up Plane transfers into separate classes. * Added automatic destination colorspace detection on planar YtoUV. * Took out greyscale and RGB32<->RGB24 from convert.cpp and placed them in separate files. * All code assuming UVwidth = Ywidth/2 and similar should be gone. Documentation can be found online (and in the 2.6 cvs tree). Last edited by Wilbert; 25th August 2009 at 18:51. |
![]() |
![]() |
![]() |
#10 | Link |
AviSynth plugger
Join Date: Nov 2003
Location: Russia
Posts: 2,182
|
IanB, thanks for release!
1. I see you merged 2.6 branch to main at CVS. So, today (or 20 august?) source code at CVS main is correspondent to released alpha? 2. SoftWire ? 3. And yes, if will will be nice if you trim (or crop ![]() |
![]() |
![]() |
![]() |
#11 | Link |
Registered User
Join Date: Mar 2005
Posts: 366
|
I hope that this writefile issue could be adressed in the next alpha: http://forum.doom9.org/showthread.php?t=147536
![]()
__________________
DVD slideshow GUI(Freeware). |
![]() |
![]() |
![]() |
#14 | Link | |
Antronio's DV ambassador
Join Date: Mar 2006
Location: Santiago, Chile
Posts: 115
|
These are great news, as long time has passed since last version and many new features were expected.
Quote:
Everyday I like Avisynth more and more. Nice job guys, I salute you! ![]() Saludos By ALEX-KID |
|
![]() |
![]() |
![]() |
#15 | Link | ||
Actually in reserve
Join Date: Oct 2004
Posts: 1,605
|
Quote:
I have not tested the 2.6 rev but unless I am mistaken it is already integrated see: Quote:
The test I made (with MT 2.58) show that using setmtmode() or not changes very little -speedwise- when your avisynth.dll (not the MT.dll that goes in the plugin directory) is multithreaded, which should be the case with this new 2.6 rev. Also, until a specific MT.dll is dedicated for 2.6 (or a new way to MT), the 2.58 MT.dll should/could be used with the 2.6... Please test and confirm or infim ![]() Did
__________________
Having a problem with AutoGK? Read & use the FAQ & MORE FAQ first Want to exchange on AutoGK? try doom10.org In reserve (inactive) for an undefined period of time. |
||
![]() |
![]() |
![]() |
#16 | Link |
Xbox Live: o 4lif o
Join Date: Jun 2009
Location: Monrovia, CA
Posts: 64
|
Well, I'd been previously running and older pre-alpha of avisynth 2.6 (Avisynth_120806.exe) on a dual core machine for quite some time, and setmtmode almost doubled the speed of alot of my scripts (especially some really rigorous mvtools framerate conversion stuff). It never really gave me any problems whatsoever.
But, I recently upgraded to a quad core processor and that build of 2.6 did not like it at all (when using setmtmode that is, even if I limited it to two threads). It would run for a while on all 4 cores, but then would seem to crash (where upon I'd see all the core activity go from evenly distributed to to maxing out a single core without really continuing to render out the file). I repeated this on an 8 core machine a friend of mine has with the same result (I saw a slightly diminished return speed wise as compared to the quad core, but it was still significantly faster before it would crash). So, I was hoping that this new release build would solve that issue, but it doesn't seem to have setmtmode as an active function (I just tried it out again to make sure). As I understand, that change list posted by Wilbert is from the CVS tree and he said he didn't know which features were actually included in this build. It makes sense that it's not there, cuz the point of this one is to test compatability with 2.5.8, which thus far seems to be perfect for me in all my tests. It's not a big deal, I was just all excited about my quad core cpu and a little bummed I couldn't use this one yet (and now I'm just on the edge of my seat for the final release build;]). Before the scripts crashed though, I was definitely getting a really significant speed increase from 3 to 11fps with 4 threads on my mvtools script as compared to using one thread. I really haven't tried the mt.dll for a long time, as the setmtmode has been working well for me and I like that it processes frames as wholes, as opposed to split into 4 pieces. |
![]() |
![]() |
![]() |
#17 | Link |
Actually in reserve
Join Date: Oct 2004
Posts: 1,605
|
Hi,
You are right, it is not (yet) included; my bad. In the meanwhile I will test SET 2.6 build ( 08/08/2009) which seems functional and multithreaded (setMT and MT with the 2.58 MT.dll); at least for my 2 cores. Did
__________________
Having a problem with AutoGK? Read & use the FAQ & MORE FAQ first Want to exchange on AutoGK? try doom10.org In reserve (inactive) for an undefined period of time. |
![]() |
![]() |
![]() |
#20 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,611
|
I know you want to keep as much compatibility as possible with all old scripts, but did you consider moving arcane pieces of code such as http://avisynth.org/mediawiki/FixLuminance and several others you can dig up to something like a separate 2.5 compatibility plugin? I don't see why you should keep the most obscure ones around.
In the same spirit of making the core smaller (and more manageable in general), you should really separate out the imagereader/writer/source to reduce the compilation dependencies. Maybe I read the wiki documentation wrong, but are lots of filters out of traditional/compatibility reasons going to return YV12 instead of Y8? It seems a bit odd to me but maybe that part just hasn't been updated.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|