Log in

View Full Version : 64 bit avisynth?


Pages : 1 2 [3] 4

Bluedan
30th November 2006, 00:25
OK. Squid80s build worked very well now. Great!

squid_80
15th December 2006, 12:46
Tdeint plugin for avisynth64: http://members.optusnet.com.au/squid_80/tdeint64.zip
The source I used is a little old (before there were asm optimisations) but at least it exists. I'll see if I can update it.

Bluedan
1st February 2007, 01:37
@squid80

Got the 64bit versions of TDEINT v1.0b4 and EEDI2 v0.92 from the usual place. I renamed EEDI2_imp.dll to EEDI2.dll
Both filter reside in the same plugin folder for the avisynth64.

When trying to run this script in MeGUI, the function EEDI2 wasn't found.

DGDecode_mpeg2source("F:\house of flying daggers\hofd.d2v")
edeintted = last.SeparateFields().SelectEven().EEDI2(field=-1)
TDeint(order=-1,edeint=edeintted)
crop( 2, 76, -2, -76)
LanczosResize(704,288) # Lanczos (Sharp)

When I change lines 2 and 3 to just TDeint(order=-1) it works.
Where is the culprit? Why did you name it ~_imp?

(BTW, which revision is the current x264_x64 now from 03-01-2007?)

squid_80
1st February 2007, 04:56
When I try that script, I get an error saying tdeint doesn't have a edeint option. This is because it's based on an old version. The EEDI2 function works fine and the dll is called EEDI2_imp.dll to distinguish it from the non-multithreaded build.
64-bit x264 is a build from somewhere between 614-618, there were no functional changes between them (and only one tiny change up to current r622).

Bluedan
1st February 2007, 13:41
Tdeint plugin for avisynth64: http://members.optusnet.com.au/squid_80/tdeint64.zip
The source I used is a little old (before there were asm optimisations) but at least it exists. I'll see if I can update it.

:) OK.

Will you update TDEINT64 then? The TDEINT/EEDI2 deinterlacing method seems to be the best one around AFAIK.

squid_80
1st February 2007, 16:37
Will you update TDEINT64 then? The TDEINT/EEDI2 deinterlacing method seems to be the best one around AFAIK.

Probably, but there's a whole stack of inline assembly in the later versions that will take a fair bit of time to wade through. A lot of it appears to be based on frame size (e.g. for i=0 to height {for j=0 to width {do stuff} } ) so I might see if I can do it with softwire.

foxyshadis
1st February 2007, 22:41
TDeint/TIVTC still include the C++ versions of every function, though, so if you want you could just strip all that assembly back out and give it a compile. With all the fixes and new modes it's quite worthwhile!

squid_80
2nd February 2007, 11:49
May as well do it right the first time. If I get it right with softwire it might (possible but not likely) make 32-bit faster as well.

chiklit
5th February 2007, 15:24
Which files do I need to install to get this working? I've installed the main avisynth64 dlls as per the instructions earlier in this thread, but still every program that tries to open an avisynth file either crashes or freezes. Is there something else I need? Or is there a way to get the 32-bit version of avisynth to work on Vista x64? I also have the 64-bit version of ffdshow installed.

Also, if one thing is 64-bit then does everything in the process now need to be 64-bit? Since meGUI, being a .NET app, automatically runs in 64-bit mode does that mean I then must have the 64-bit version of everything it uses? Avisynth, x264, etc.?

Specs:
CPU: Intel Core 2 Duo R6400 (Overclocked - 2.8GHz) | Mobo: EVGA nForce 680i SLI | GPU: XFX nVidia GeForce 8800 GTX 768mb GDDR3 | Memory: 2gb DDR2 PC5400 667MHz Dual Channel | PSU: Antec Neo HE 550w | Sound: SoundBlaster X-Fi Xtrememusic | HDD: 950gb total SATA3 | OS: Windows Vista Ultimate 64-bit

squid_80
5th February 2007, 15:46
Which files do I need to install to get this working? I've installed the main avisynth64 dlls as per the instructions earlier in this thread, but still every program that tries to open an avisynth file either crashes or freezes. Is there something else I need? Or is there a way to get the 32-bit version of avisynth to work on Vista x64? I also have the 64-bit version of ffdshow installed.I don't have experience with vista but 32-bit avisynth should work fine as long as the host program is also 32-bit. Crashing or freezing would seem to be a different problem rather than an installation error.
Also, if one thing is 64-bit then does everything in the process now need to be 64-bit? Since meGUI, being a .NET app, automatically runs in 64-bit mode does that mean I then must have the 64-bit version of everything it uses? Avisynth, x264, etc.?
Yes 64-bit programs can only use 64-bit dlls (avisynth, plugins, codecs etc.), however MeGUI has a special flag that makes .net run it as a 32-bit app (for exactly that reason). Unless the flag has been left off when it was compiled, which happened once not long ago. When it is running check the image name in task manager, it should have *32 at the end to show that it's a 32-bit process.

chiklit
5th February 2007, 15:56
Yes 64-bit programs can only use 64-bit dlls (avisynth, plugins, codecs etc.), however MeGUI has a special flag that makes .net run it as a 32-bit app (for exactly that reason). Unless the flag has been left off when it was compiled, which happened once not long ago. When it is running check the image name in task manager, it should have *32 at the end to show that it's a 32-bit process.

Ah, I guess I must've been thinking of that version. It's running in 32-bit mode now. I wonder what would be causing the crashes then...

With the 32-bit version of avisynth and MPC, when I try to open an avs file in it, it'll sit there at 50% CPU but never play anything. And when I try to open it in the 32bit VirtualDub 1.7.0 I get this error:
Avisynth open failure:
Avisynth: script open failed!

Opening it in megui gives this error:
The file D:\Captures\Adventure of English.avs cannot be opened.
Please make sure it's a valid AviSynth script and that AviSynth is properly installed.
You can check the validity of your script and AviSynth installation by opening the file in your favorite media player.
If that works, try opening the video in VirtualDub(Mod) as well. If the former works and the latter doesn't, install a YV12 codec.
Error message for your reference: External component has thrown an exception.

The script:
audio=directshowsource("E:\Captures\Adventure of English T01 DELAY 62ms.wav", video=false, audio=true)
video=DGdecode_mpeg2source("E:\Captures\Adventure of English.d2v")
audiodub(video,audio)
Trim(1246,13907) ++ Trim(14893,31362) ++ Trim(34432,53650) ++ Trim(54575,66708) ++ Trim(67335,87660)
edeintted = last.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=-1)
TDeint(order=1,full=false,edeint=edeintted)
crop( 6, 30, -16, -38)
Levels(25, 1, 255, 0, 255, coring=false)

LanczosResize(640,416) # Bilinear (Soft)
Trim(52230,52430)
#denoise

Bluedan
6th February 2007, 14:20
I've installed the main avisynth64 dlls as per the instructions earlier in this thread [...]

If you follow these instructions (http://forum.doom9.org/showthread.php?p=909401#post909401) and probably also those in the posts below that one it should work.

I assume you didn't install avisynth 32 bit correctly? Try a fresh reinstall. avisynth 64 bit will only be used if it is called by a 64bit encoder.

It still works fine over here. :)

BTW: EDEINT won't work currently in 64bit flavour, as I found out recently, see post above!

squid_80
10th February 2007, 11:39
Something new: MipSmooth for x64 (http://members.optusnet.com.au/squid_80/MipSmooth64.zip). (Don't feed it rgb or you'll get an error about resizers only supporting YUV. Whoops.)

tjmitchem
22nd February 2007, 15:25
First off, major major thanks to squid_80 for doing all this work :thanks:

I currently have virtualdub64, avisynth64 and dgdecode64 working well together. Unfortunately, whenever I try to use the decomb64 plugin, virtualdub crashes. According to VS2005 Pro, the crash is happening in decomb.dll.

Is there anyway I can get a debug version of decomb.dll and a pdb file so I can track down where this is happening?

Terry

squid_80
22nd February 2007, 20:20
The source code can be found at http://members.optusnet.com.au/squid_80/sources/

I recommend using yasm r1591, later versions sometimes give errors.

andersa
27th February 2007, 14:43
squid, first of all, thanks for all the great work you've done on 64-bit video handling!

I have just installed Vista x64 and have a slight issue with the xvid64, i.e. I get this error message when attempting to install xvid64: "The INF file you selected does not support this method of installation". Any idea how the INF file can be tweaked to support vista?

squid_80
28th February 2007, 09:52
Don't have vista, don't plan on getting it.
Try celtic_druid's exe based installer available here (http://ffdshow.faireal.net/mirror/XviD/).

andersa
1st March 2007, 03:01
Thanks squid. That version works indeed.

Bluedan
9th May 2007, 22:54
Well, the usual question: any further developments in the 64bit camp meanwhile?
The usual place (http://members.optusnet.com.au/squid_80/) is happily still available but no updates for months...

I'm still highly interested in TDEINT64 :)

squid_80
10th May 2007, 16:53
It's only been 3 months since I made mipsmooth64 :)
I have an updated build of avisynth64 using 2.5.6's cache which makes it much more comparable in speed to the currently available 32-bit versions, new tdeint64 and motion64 (from clouded's source code) will hopefully be projects for this weekend (if I can fight the temptation to hack into ffmpeg; on my new q6600 it only uses ~50% cpu, even with 4 threads).

Bluedan
10th May 2007, 20:19
Promising!

I'd be glad to be prime tester on monday! :p

squid_80
12th May 2007, 18:51
New 64-bit avisynth.dll and tdeint are available. Tdeint's double height ELA modes (-2 and -1) get a pretty big speed increase over the 32-bit version but the other modes actually seem a tiny bit slower. I think that's because even though intel's x64 compiler allows inline assembly, it acts very cautiously around it (dumps all parameters passed in registers onto the stack, even if they're being put back into the same registers).

Motion.dll will have to wait - Clouded's fluent use of template functions seem to confuse the hell out of the compiler and I can't get it to play nice.

Edit: Ok, got motion.dll working. The problem was the compiler was inlining the template instantiations, then when another part of code tried to use them it couldn't find them and was too stubborn to create another instance. It's FAST - nearly 20% faster - but there's a bug somewhere so I'll have to fix it before releasing.

Bluedan
13th May 2007, 11:07
Great!!

squid_80
13th May 2007, 13:49
Ok, I've uploaded another new build of 64-bit avisynth.dll which includes reduceby2, horizontalreduceby2 and verticalreduceby2. Also available are 64-bit ports of masktools v1.5.8 (http://members.optusnet.com.au/squid_80/masktools64.zip) and motion.dll (http://members.optusnet.com.au/squid_80/motion64.zip) which should be everything needed for the motionprotectedfps script to work. I've tried it here and get ~10% speed increase above standard 32-bit. But everything new is fairly untested so if there's any problems please let me know. If no-one finds anything wrong with masktools or motion I'll add them to the main page at the end of the week.

Wilbert
13th May 2007, 17:30
@squid_80,
but there's a bug somewhere so I'll have to fix it before releasing.
Is that bug also present in the "32 bit" source? If so, did you correct that too?

squid_80
13th May 2007, 17:44
Is that bug also present in the "32 bit" source? If so, did you correct that too?No, it was a bug in my 64-bit translation. There were a couple of possible bugs in masktools that I corrected, but I can't be sure if they were real bugs or just a misunderstanding on my part. I will post my source code ASAP.

Blue_MiSfit
14th May 2007, 02:15
Dude, squid_80, thanks so much for all your hard work! Something worth running in 64 bit is always welcome!!!

~MiSfit

squid_80
15th May 2007, 14:44
But wait there's more: 64-bit TCPDeliver (http://members.optusnet.com.au/squid_80/TCPDeliver64.zip). If you get a message about versions not matching, here's a 32-bit build (http://members.optusnet.com.au/squid_80/TCPDeliver.zip) that should work with it. (Yes, of course it's possible to send from a 64-bit program to 32-bit and vice versa.)

squid_80
22nd May 2007, 09:05
DeFreq for x64 (with 64-bit fftw3.dll): http://members.optusnet.com.au/squid_80/defreq64.zip

Approx 20% speedup.

Bluedan
14th June 2007, 22:28
How do I have to change this script (it's generated with megui) to make the TDEINT/EEDI thing work? This way x264 32bit is called, not the 64bit compile, though I have put the 64bit filters in the usual place... which indicates to me that everything in use is 32bit.

# Set DAR in encoder to 47 : 20. The following line is for automatic signalling
global MeGUI_darx = 47
global MeGUI_dary = 20
DGDecode_mpeg2source("F:\Casino Royale\cr.d2v")
edeintted = last.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=-1)
TDeint(order=1,edeint=edeintted)
crop( 0, 74, -2, -76)

Lanczos4Resize(720,432) # Lanczos4 (Sharp)
#denoise

lariva
26th June 2007, 01:03
First and foremost - thanks for all the work.

Do you have any plans to look at dgindex for 64-bit? The version that you currently have up is 1.4.6, which works great for everything other then DTS, 1088 (instead of 1080) width for .ts streams.

Sidebar: http://www.nvidia.com/object/tesla_gpu_processor.html

I'm curious if this could actually be a universal solution - the only problem i see is 128 parllel threads.




DeFreq for x64 (with 64-bit fftw3.dll): http://members.optusnet.com.au/squid_80/defreq64.zip

Approx 20% speedup.

squid_80
16th July 2007, 17:36
aWarpSharp (http://members.optusnet.com.au/squid_80/awarpsharp.zip) for x64.

Ferux
24th July 2007, 22:54
Hi, i'm trying to use Avisynth x64 (actually just for making x264 work as a 64-bit app), but it doesn't work. I putt the avisynth.dll in my I:/Windows/system32/ folder, double-clicked the registry-file and rebooted, but Virtualdub64 still can't open the most simple AVS-script (script with only 'avisource' and with the audio disabled). What do I do wrong? Or do I need ffdshow64?

squid_80
25th July 2007, 03:33
but Virtualdub64 still can't open the most simple AVS-scriptWhat does veedub64 say and what operating system are you using? Have you checked with windows explorer (not total commander or any other crap) that avisynth.dll is in windows\system32 and not windows\syswow64 by mistake?

Ferux
25th July 2007, 10:52
Veedub64 says:

VirtualDub Error

AVI Import Filter error: (Unknown) (80040154)


Avisynth.dll is in the right folder as you say.

My OS is Windows XP x64

squid_80
25th July 2007, 12:00
First install the vs2005 sp1 redistributable package to make sure that's not the issue: link (http://www.microsoft.com/downloads/details.aspx?FamilyID=eb4ebe2d-33c0-4a47-9dd4-b9a6d7bd44da&DisplayLang=en).

Make sure you're not double-clicking the .reg file from inside an archive manager program - extract it to somewhere first then double click from explorer. Same goes for avisynth.dll - don't extract directly to \windows\system32, extract to somewhere else then copy it into system32 (I know you've said it's there already, this is just for anyone else getting the same problem).
Please let me know how you get on.

Ferux
25th July 2007, 12:17
I tried to install the software in your link, but the installer seems to exit few seconds after I accept the agreement. I don't think this is normal...

I'm starting to think something is wrong with my system since ffdshow64 won't install either. It's weird because I formatted this PC last week.

Ferux
25th July 2007, 12:24
OK, I found the solution:


The problem is the ATI 'Catalyst' driver. I terminated ccc.exe (Catalyst Control Center I guess) with the Task Manager. When trying to open my AVS-script I got an AVS-error, so from this point, AVS64 was working. I installed ffdshow64 (apearantly ccc.exe was also the reason why this didn't install) and now everything is going fine.

Anyway, thanks squid_80 for your help (and the 64-bit apps :)).

squid_80
25th July 2007, 15:27
I hate that program. It crashes at random, requires a download of some ridiculous size (something like 30 megs last time I checked) and is so slooow at changing screens - especially unforgivable since it's written by a graphics manufacturer. Then again it uses .NET so I'm not that surprised.

It's going on my naughty programs list (right below windows messenger (http://forum.doom9.org/showthread.php?t=125960)).

XBoy
20th February 2008, 00:23
Where can I get the source for 64bit avisynth?

Mainly I need the avisynth.h file to port a plugin over to 64bit.

squid_80
20th February 2008, 04:02
http://avisynth2.cvs.sourceforge.net/avisynth2/avisynth/src/?pathrev=Avisynth64

Avisynth.h lives under \core.
I haven't been able to work on the main code for a long time.

XBoy
22nd February 2008, 01:41
http://avisynth2.cvs.sourceforge.net/avisynth2/avisynth/src/?pathrev=Avisynth64

Avisynth.h lives under \core.
I haven't been able to work on the main code for a long time.


Any plans to port the MT plugin over to 64bit?

My AMD X2 3800+ can't keep up :(

Prettz
23rd February 2008, 00:42
squid_80: Thanks so much for taking the time to compile all this stuff for us! I have no idea how long it takes you to recompile someone else's project, but I'm wondering if you plan to do the latest version of DGDecode (1.4.9), since the version on your site is 1.4.6? I'm only asking because I'd like to take advantage of the improvements in DGIndex 1.4.9 in the near future.

Also, for what it's worth, here's some filters that I always use. Not meaning to sound demanding, just putting these out there as suggestions for when you've got time to recompile more filters:
FluxSmooth
Unfilter
RemoveGrain (it's got an SSE3 implementation with a mode that's meant to replace Undot)
MSharpen

I really wish I could help you out with recompiling old stuff to 64-bit, but the best compiler I've got on my computer is the first version of VS .NET. It's probably of no use for making optimized 64-bit builds. :(

IanB
23rd February 2008, 06:15
The big drawback with the 64 bit implementations is you have to loose all the inline assembler code. Many filters don't have C or C++ versions of their algorithm, and for those that do they are usually orders of magnitude slower than the inline assembler version.

Ask Squid, it is anything but trivial to port inline assember into a form usable in the 64 bit environment. Inline assemblers greatest attraction is you can write all the use once frilly code in C++ then you get to do raw inner meat in assembler complete with still being able to reference all the C++ variables.

Remember MMX code is already 64bit and SSE2 is 128bit. Porting the frilly code to 64 bit effectivly gains you nothing. Note! I am not saying writing fresh in 64bit gains you nothing, hell for a start you get twice as many registers, I am just saying porting to 64 bit is a pain.

Blame Micro$oft they chose to remove the inline assembler feature from their 64bit compiler.

squid_80
24th February 2008, 09:15
Intel's compiler does support inline assembly, that's how I was able to do tdeint, masktools, clouded's motion.dll and awarpsharp in quick succession (although awarpsharp took extra work since it has no source code!). Unfortunately my version is old and won't integrate with VS2005 so I have to do everything from the command line.
After 2.6 gets released I planned to do a proper build of the core with all built-in functions included using ICC. I know it's not nice having code that can only be compiled by a certain (expensive) compiler but I consider that MS's fault, not mine.

XBoy
26th February 2008, 20:38
What about using custom build rules to integrate into VS2005 similar to how YASM integrates?

also, could you put mt_masktools and fft3dfilter on your list to do? :) (It's for my vista media center :) http://www.avsforum.com/avs-vb/showthread.php?t=719041)



BTW, you know when's 2.6 coming out?

squid_80
27th February 2008, 07:08
I don't really see the point having a 64-bit media center. (I don't see the point of 64-bit vista full-stop.)

Leak
27th February 2008, 23:21
I don't really see the point having a 64-bit media center. (I don't see the point of 64-bit vista full-stop.)
While I agree with you on the media center bit, the latter has a point as soon as you slap 4 or more GB of RAM into a machine.

Or did you mean that Windows XP 64bit still exists as an upgrade choice for Vista 64bit? :D

np: Autechre - IO (Quaristice)

squid_80
28th February 2008, 09:35
Or did you mean that Windows XP 64bit still exists as an upgrade choice for Vista 64bit? :D
That's what I meant - if you're going to use >4gb ram and want faster speed, it's stupid to use an OS that's a memory hog and runs slower than it's predecessor.

XBoy
29th February 2008, 04:16
That's what I meant - if you're going to use >4gb ram and want faster speed, it's stupid to use an OS that's a memory hog and runs slower than it's predecessor.

I got more than 4gb of ram :)

anyhow...


One question, does 32bit vista running on a 64bit processor allow 64bit data manipulation, or is it moot since optimized code would usually just use the MMX/SSEx (64/128bit) registers?