View Full Version : Avisynth in our hardware?
videoFred
2nd June 2005, 06:57
I was thinking.... If it is possible to make hardware mpeg encoders, video effects etc...
Then would it not be possible to add Avisynth and the scripts into the chips of a card?
Maybe 'flash' it into the chips? Then we could run our scripts in real time, right?
Or am I completely wrong, here? Just an idea, I have no expierence with things like that.
Fred.
bill_baroud
2nd June 2005, 10:12
no it can be done, it's been done for years in computer vision for industrial quality check process when computer weren't fast enough to process images at the speed required. Using fpga on a pci card is a possibility, but i believe you're a billionaire who can afford the developpement of such devices. And you'll need to "translate" in hardware all the filters, which can limit the number of filters, or using some powerpc core that you can find in FPGA nowadays (xilink virtex-II), but still, you'll need to rewrite the filters for this architecture.
Nothing is impossible, you just need peoples, time and money (a lot ;))
mg262
2nd June 2005, 10:36
But on the bright side, graphics cards have become sufficiently powerful and flexible that some of the work of filters can be moved from the CPU to them for a fair speed up... I suspect we'll see a lot more of this in future. Although I don't know much about it - my graphics card is about five years old!
What filters are you hoping to get to run faster?
Mug Funky
2nd June 2005, 10:46
hehe... i'm waiting for Cell processors to hit the mainstream.
we could do everything in software and have enough brute force left to play doom3.
i'd love a machine fast enough to do SDI in, then process (ivtc, or regular PAL conversion), then either encode or play out through SDI to some other device. that would be the dog's bollocks :)
but once we've got that kind of speed, HDTV will have provided an even bigger hurdle :)
videoFred
2nd June 2005, 10:57
What filters are you hoping to get to run faster?
All of them :D
Fred.
scharfis_brain
2nd June 2005, 10:57
maybe a little bit OT:
is it possible somehow to use AVS as a realtime video processor?
TV-Card input
TV-Out (or better: video editing card) output
videoFred
2nd June 2005, 11:01
hehe... i'm waiting for Cell processors to hit the mainstream.
we could do everything in software and have enough brute force left to play doom3.
Yes! Faster and more powerfull machines is what we need!
Fred.
videoFred
2nd June 2005, 11:30
is it possible somehow to use AVS as a realtime video processor?
Yes, this is what I meant in the first place. Imagine degrainig, stabilising, frame rate conversion, resizing, color correction etc.. etc... in real time! :devil:
Fred.
Didée
2nd June 2005, 11:48
Should be possible. Build a DS graph in graphedit, put ffdshow in the chain, and configure its AviSynth section.
mg262
2nd June 2005, 11:51
All of them :D lol.
I think however much processing power we get, we'll use all of it... we'll just write madder and madder filters. Like motion compensation through warping!
videoFred
2nd June 2005, 12:16
Should be possible. Build a DS graph in graphedit, put ffdshow in the chain, and configure its AviSynth section.
Do you realy mean this? Can you give some more info? I have graphedit on my computer, but never used it.
Fred.
Pookie
2nd June 2005, 21:27
Wouldn't it be less expensive and less of a headache to speed AviSynth up via a network render farm ? In the case of a DVD rip, I could see a single VOB being sent to a single render node for processing, then sent back to the central manager for final authoring.
Let's say 5 machines x $700.00 per machine =$3500
That used to be the cost of an 4.77Mhz IBM PC back in the day :)
morsa
2nd June 2005, 22:50
From what I've seen till now, programming an FPGA using VHDL or Verilog seems somewhat easier to me than doing the same stuff on a GPU, but well...everybody do what he wants...
It's not that hard to program a GPU and the good thing is that it is relatively cheap compaired to the processing power it delivers. I think it mostly would be the floating point calculation heavy filters that will penefit from GPU acceleration like vague denoise and the fft based. But it could be great with a avisynth version for xbox 2 or PS3.
tedkunich
3rd June 2005, 00:19
From what I've seen till now, programming an FPGA using VHDL or Verilog seems somewhat easier to me than doing the same stuff on a GPU, but well...everybody do what he wants...
FPGA Design != Software design VHDL, Verilog or otherwise...
morsa
5th June 2005, 22:47
Ok, as you like.
Just want to let you know that for having a working FPGA you need 1. VHDL, 2. Verilog or 3. System C /Handel C.
If people were willingly buying some PCI Express board with a couple of FPGA and some Memory that could be easily done for less than what a powerfull GPU costs.
A one million gates FPGA can get really chep when you exceed the magic number of 50,000 units.These beasts run at about 200 Mhz and can give you a blazingly fast processing speed.Not to mention that you have full paralellism.
But as usual, do whatever you want.
Mug Funky
6th June 2005, 09:08
TV-Card input
TV-Out (or better: video editing card) output
or better, SDI in, SDI out. this isn't too far away, speed wise. just need computers to be around twice the speed they are now. but to get the full benefit, we'd need avisynth 3 to come along, allowing things like 10-bit or more processing. my dream is to have a single rack-mounted PC replacing half a million bucks worth of gear. it's not too far off, either.
"realtime" is more of a problem, as has been discussed before. when you're not only doing framerate conversion, but IVTC with speedup to 25fps, things get hard to manage, because the output will be at a higher rate than the input. you'd need to slow things down somehow (was it Scharfi that mentioned "slowPAL" decks?) that would be cool, but i have no idea where to find gear like that. for now, i guess it's just back to loads of hard disk space and offline processing.
videoFred
6th June 2005, 09:32
But in the mean time...
What can we do to improve speed?
Setmemorymax(128) helps a little.
Not runnig anything in the background also helps a little.
Any other tricks?
Fred.
Mug Funky
6th June 2005, 09:55
you can squeeze a bit more speed using avs2avi instead of virtualdub.
also, use the speed optimised versions of any plugins that have them (like LeakKernelDeint instead of KernelDeint, FFTGPU instead of FFT3dfilter), and try to keep the scripts tight and simple, with a minimum of slowness happening.
vinetu
7th June 2005, 00:55
But in the mean time...
What can we do to improve speed?
Setmemorymax(128) helps a little.
Not runnig anything in the background also helps a little.
Any other tricks?
Fred.
videoFred,
you never hear about the overclockers ?
They look just like the smokers from the Waterworld movie... but are much more dangerous!!!
They drink Liquid Nitrogen and eat DryIce (CO2) as a joke...
:)
videoFred
7th June 2005, 09:50
videoFred,
you never hear about the overclockers ?
:)
Overclock my new 3Ghz? I'm afraid to blow it up! :scared:
But I drink Liquid Nitro with dry ice in it all the time :devil:
Fred.
actionman133
7th June 2005, 11:04
I was thinking.... If it is possible to make hardware mpeg encoders, video effects etc...
Then would it not be possible to add Avisynth and the scripts into the chips of a card?
Maybe 'flash' it into the chips? Then we could run our scripts in real time, right?
Or am I completely wrong, here? Just an idea, I have no expierence with things like that.
Fred.
Funny, you mention realtime. I actually use AVISynth as a real time effects engine of sorts. I use it mostly to play DVD's on my hard drive and correct the aspect ratio of VCD's at fullscreen. One of my favourite uses for it is manipulating the colours of lightsabers in Star Wars movies (I'm a computer geek, not a Star Wars geek!). My computer is 2 years old this month and it doesn't have many problems with realtime processing.
The most complex operation I did in realtime, was open a PAL MPEG-2 stream, mixed in audio, resized to 1024 pixels wide and cropped bars. Then I applied a thermal filter (which I posted on here a while back) that converts the reds in YUV to white, red, green yellow and blue depending on its intensity, creating a look that closely imitates the vision mode in Predator.
Although my P4 2.6 strained at around 90-95% usage playing this, it could manage it in realtime... so in a way, we're already there.
videoFred
7th June 2005, 11:36
Although my P4 2.6 strained at around 90-95% usage playing this, it could manage it in realtime... so in a way, we're already there.
In your case, yes! :)
In my case... :scared:
I start with huge 1024x768 Huffyuv files.
Here's my filter chain:
Resize
Degrain - now this is a fine tool for old grainy film users!!!!
Depan
Crop borders
HDR
Overlay the HDR clip over the original
ColorYUV this result
Done!
This script runs at 2 frames/sec.
Fred.
actionman133
7th June 2005, 13:01
Okay, you're computer has it harder than mine...
Mine should show appreciation for this, rather than bugging me all the time with anonymous errors... :D
vinetu
7th June 2005, 23:31
In your case, yes! :)
In my case... :scared:
I start with huge 1024x768 Huffyuv files.
Here's my filter chain:
Resize
Degrain - now this is a fine tool for old grainy film users!!!!
Depan
Crop borders
HDR
Overlay the HDR clip over the original
ColorYUV this result
Done!
This script runs at 2 frames/sec.
Fred.
well,you need to be 10-15 times faster!!!
Me think-The only way to go is to replacing/removing the filters in script (if you want to use your P4@3GHz) .
You should be "lower quality ready" also :)
If one implement "avisynth in hardware" he will have to choose between flexibility and speed,
so if the flexibility is the goal then the CPU/DSP used, should be for general use and not for AV processing only .
Moreover those CPUs/periphery are expensive .
And the oposite - if he choose the speed and cheap chips - then the box will be limited to only some filters I think.
Me vote for flexibility ...which means also "as much Quality as you wish my LORD" :)
So the perfect "avisynth in hardware" now is a chain of many PCs
(why not DualXeon/DualOpteron/Pentium M equiped and LNitro/DryIce heavy cooled :) )
over Gigabit Network or even faster connection...
Too bad I've never tested TCPServer/TCPSource...
videoFred
8th June 2005, 09:26
So the perfect "avisynth in hardware" now is a chain of many PCs
(why not DualXeon/DualOpteron/Pentium M equiped and LNitro/DryIce heavy cooled :) )
over Gigabit Network or even faster connection...
Too bad I've never tested TCPServer/TCPSource...
Very interesting.. So a computer chain could be the best possible configuration to speed up Avisynth?
I'm not a computer wizzard :(
I have a 3ghz HP Pavillion and a 2ghz Toshiba laptop...
Could I fix something with these? :confused:
Another question: how does the the ideal Avisynth-Virtual Dub computer looks like? (I mean a single machine- both hard and software configuration)
Fred.
vinetu
9th June 2005, 23:59
Very interesting.. So a computer chain could be the best possible configuration to speed up Avisynth?
I'm not a computer wizzard :(
I have a 3ghz HP Pavillion and a 2ghz Toshiba laptop...
Could I fix something with these? :confused:
Another question: how does the the ideal Avisynth-Virtual Dub computer looks like? (I mean a single machine- both hard and software configuration)
Fred.
well here is my explanation as a computer wizard :)
Yes you can fix something with yours 3ghz HP Pavillion and a 2ghz Toshiba laptop :)
First you'll need to measure the processing times of every filter in script ,next - break the single script in two parts,
where processing time is almost balanced .
The 1-st script should end with "TCPServer()"
The 2-nd should start with "TCPSource()" instead of "AviSource"
Then just open the first script on laptop in VDub(dont't tuch "Save as...") and then Open the Second script on Pavillion and do "Save as..." .
You can map on the laptop the shared folder(which contain source files) from Pavillion as "Network Drive"...but it's safe if you copy the sources on the laptop.
Also ,if you can - link the computers through Gigabit Lan .
Here is an example from Avisynth documentation :
------------------------------------------------------------------------
Examples
You can use this to run each/some filters on different PC's. For example:
# Clustermember 1:
AVISource
Deinterlacer
TCPServer
# Clustermember 2:
TCPSource
Sharpener
TCPServer
# Clustermember 3:
TCPSource
# client app -> video codec -> final file
--------------------------------------------------------------------------
On the second question - the ideal Avisynth-Virtual Dub computer looks like an ultra powerfull and expensive 3d workstation.
Best Regards!
videoFred
10th June 2005, 06:43
Thank you for explaining!
Fred.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.