View Full Version : New graphics card help encoding?
ToiletDuck
5th March 2004, 18:59
http://www.theinquirer.net/?article=14524]
Can this really be true. I don't really see how the graphics card would help unless the programs were specifically designed to utilize the card. Makes no sense to me. Any ideas?
Duck
Doom9
5th March 2004, 20:12
Well.. it's definitely possible. In the early Geforce days there were some demos of 3d rendering done on the GFX card, and the performance was superior to what a CPU could achieve. However, it obviously does require software support to utilize the hardware. Meaning existing software would have to be rewritten. Only the future can tell if that really happens, and what, if any performance gains can be achieved.
Doom9
5th March 2004, 20:18
oh, and this is just in. I got an email this morning from a reader pointing out that ATI is already offering those features in their existing Radeon line. Now I found an email from an ATI PR rep, clarifying that the Radeon 9800 can accelerate MPEG2/4 encoding and MPEG2/4/WMV9 decoding, and the card has been on the market for a while.
dragongodz
6th March 2004, 04:10
just so nobody thinks its one sided nvidia have also had mpeg decoding acceleration aswell as ati for quite some time. geforce256 had motion compensation as an example and even a tnt2 had colour space conversion.
have a look here for some information from nvidia, unfortunatly the pages seem to be missing but whats there should give you some idea.
_http://www.nvidia.com/page/search.html?keywords=mpeg
oh and in the "new formats - codecs" section there was a post some time ago about using opengl for things like motion estimation aswell which was interesting.
Joe Fenton
6th March 2004, 05:04
I posted this link in the xvid section, but since it's not really xvid specific, I'm posting it here as dragongodz suggested.
http://developer.nvidia.com/object/cg_toolkit.html
That gives you the latest toolkit for developing code that runs on the GPU. Although it is nVidia specific, routines done for DirectX will work on any DirectX 8 or better card, depending on the compatibility of the card and the DirectX version.
Using the toolkit, it should be possible to do things like AVISynth filters on the GPU, and color conversion and post processing for players and codecs.
ToiletDuck
6th March 2004, 08:21
This is all what I figured. However one thought remains in my mind. For Nvidia to push this card with those features they would have to show test that show it really is superior. And to do that means they would have to actually have some program or what not to utilize the GPU's abilities. I know the Radeon 9700pro that I have spouted that it had "enhanced" divx playback however I see nothing superior about the card... well in the encoding and decoding sense. As far as gaming goes She is still one powerful baby :D
Koepi
6th March 2004, 08:28
I looked at the Cg stuff for some minutes and searched the web, however I think that's not what helps us _encoding_.
We need access to the DCT and iDCT stuff from the cards, anyone found any good documentation on that?
Microsoft's stuff isn't too helpful either: http://www.microsoft.com/whdc/hwdev/tech/stream/DirectX_VA/default.mspx
Regards
Koepi
Yeah for decoding it would be nice to be able to use hardware acceleration for MC/iDCT.
DCT isnt that big a deal ... if you can implement predictive motion estimation entirely on the GPU then the GPU can help with encoding, otherwise it isnt much use. Maybe NV40 will be able to do this, would be a huge step in programmability though.
dragongodz
6th March 2004, 11:52
this is part of what i was talking about
_http://www.mee.tcd.ie/~sigmedia/Publications.html
i had a read of "General Purpose Graphics Hardware for Accelerating Motion Estimation" (under the 2003 section) and "Fast Image Interpolation for Motion Estimation using Graphics Hardware" (under 2004). interesting reading so have a look.
I pointed it out in the first place. As I said then, it is a really crappy inefficient method of motion estimation (the better algorithms cant run on the GPU, so you are best off just ignoring it altogether ... it can speed up crap, well that is great but we dont need crap).
dragongodz
6th March 2004, 12:46
well i did already say where it came from but i couldnt find the original post at the time.
did you read the 2004 paper ? i quote
"While this paper only considers the FBM scheme, the techniques described could easily be applied to other block matching algorithms."
so i have to disagree that it is not worth reading.
I didnt say it wasn't worth reading ... but with present generation GPUs accelerating motion estimation is an academic excercise.
Realistic motion estimation algorithms are not regular, and while you might be able to apply the methods to such searches ... they would not actually be sped up because communication overhead would kill you.
dragongodz
6th March 2004, 13:41
"I didnt say it wasn't worth reading"
so your statement "so you are best off just ignoring it altogether" doesnt mean not worth reading ? sorry but that was not clear.
"communication overhead would kill you."
which is also talked about in the paper under "3.2.1 Bandwidth Issues".
Well GPU was mentioned in the same sentence ...
Bandwith isnt the problem, the frequency of communication is. Take a moment to think about how to implement PMVFAST with the GPU, it's just not going to happen.
dragongodz
6th March 2004, 14:57
"Well GPU was mentioned in the same sentence ..."
ok well thats makes things clear.....as mud. :)
again i ask, did you actually read all of those papers ? it does go in to the pitfalls and ways to try and reduce them to the lowest impact currently possible.
no it MAY not happen yet and without people actually making any effort it probably never will. if people get it entrenched so hard in their heads that something is not possible they will never try, never find new ways and never do what others say cant be done.
i have no idea why you are so against even the exploration of this. research in to new ideas should generally be encouraged and explored i would have thought. but thats just my opinion and since you seem so determined in yours i wont bother to argue the point further.
last i will say on the subject is i recommend people interested read for themselves and make up their own minds if they want to explore further.
lexor
6th March 2004, 15:35
well the FPU in GF FX 5600 Ultra is better than in my 1.47 GH AthlonXP, so a lot of FPU calculation can be unloaded to those cards, and there is actually a course in 7th year in my Uni which explores that (wich is were I got FPU comparison). So Video card acceleration in one way or another was available for some time now, it's up to developers to decide wheather it's worth their time to figure out how to use that. imho.
On a side note my GF2 32MB GTS, says it has full HDTV decoding. So that isn't really a news now.
the better algorithms cant run on the GPU, so you are best off just ignoring it altogether
GPU was mentioned in the same sentence ... whereas I never even explicitly mentioned the paper. Why would you think I was referring to the paper?
I read the papers ... I pointed them out a long time ago (http://forum.doom9.org/showthread.php?s=&threadid=68854&highlight=gpu).
I just know enough about both GPUs and motion estimation algorithms that to try to accelerate a predictive search with present generation GPUs is a fool's errand.
Why not spend the time accelerating Avisynth filters with the GPU? The kind of image processing algorithms used there tend to be much more regular and well suited to GPUs.
Joe Fenton
6th March 2004, 21:19
Originally posted by Koepi
I looked at the Cg stuff for some minutes and searched the web, however I think that's not what helps us _encoding_.
We need access to the DCT and iDCT stuff from the cards, anyone found any good documentation on that?
Microsoft's stuff isn't too helpful either: http://www.microsoft.com/whdc/hwdev/tech/stream/DirectX_VA/default.mspx
Regards
Koepi
It's quite possible that there really isn't any dedicated DCT/iDCT hardware on the card. In all probability, it's just a general GPU routine. Remember that a DCT/iDCT is just a stream operation. In it's basic form, the DCT/iDCT is just a series of additions of weighted inputs. A stream of inputs are multiplied by weights, added together, then output as a stream of the same size. This is easily accomplished using the general GPU computations covered in the cg_toolkit. To make it worthwhile, you need to have a large stream of blocks to transform - don't do it a single block at a time.
Joe Fenton
6th March 2004, 21:26
http://www.gpgpu.org/
Scroll down the page a little and you'll find two papers on using GPU routines to accelerate wavelet transformations.
dragongodz
7th March 2004, 05:02
MfA - you really dont want to let this go do you ?
since the articles are about ME on a GPU and you say ignore doing ME on a GPU then you are saying to ignore the papers. or do you mean read the papers and then ignore what they said ? the point of that would be ????
you already said it was you that pointed out the papers originally but i had to ask if you completely read them since you seem to have missed points. such as doing different algorithms and bandwidth(which includes frequency of information) which are addressed in the papers.
"I just know enough about both GPUs and motion estimation algorithms that to try to accelerate a predictive search with present generation GPUs is a fool's errand."
this is your belief and not fact. until someone actually tries it and shows if there is anything that can be gained or not neither you nor i know. the test used full search true and full pel was slower than using cpu but half and quarter pel were greatly faster. that is the only evidence we have at the moment. i would rather see more tests before deciding it is a fools errand or not.
"Why not spend the time accelerating Avisynth filters with the GPU?"
yes acceleration of gfx/video filtering would be interesting to see aswell but its not an either/or situation.
i think all that needs to be said on that has been so unless someone else asks me something specific not related to that i wont bother to reply in this thread anymore. its just not worth my time.
sysKin
7th March 2004, 06:51
Originally posted by dragongodz
MfA - you really dont want to let this go do you ?
since the articles are about ME on a GPU and you say ignore doing ME on a GPU then you are saying to ignore the papers. or do you mean read the papers and then ignore what they said ? the point of that would be ????MfA is right. This motion search alghorithm is horribly simplistic and definitely will not give any good compression. They used full search, which will be slower no matter what. Their claim that "it can be adopted for other search pattern" is simply not true, because they are searching all blocks at a time, so they can't adopt the search for any particular result.
Doing the search for all blocks at once doesn't work anyway because blocks are dependant and you must know the result of all previous blocks before you start searching next block.
It's a shame they haven't compared the actual PSNR results for encoding, but as far as I can tell, the quality will be simply horrible with reasonable, but not outstanding speed gain. The paper is interesting of course, but it mostly shows that ME on a GPU is *almost possible if you have no choice*.
Radek
Originally posted by dragongodz
i would rather see more tests before deciding it is a fools errand or not.
There can be no definitive proof except for proof positive, simple lack of proof shouldnt stop you from trying to reason ...
Consider PMVFAST, look at the immense savings such predictive searches give over naive searches. Consider the trouble with reading out framebuffer data, and more importantly the overhead of changing render targets. Consider the complete isolation and consequent lack of interim data reuse in shaders. Consider the quantity and necessity of conditional branching in a predictive search.
Consider all that and tell me you see any way in hell of implementing something like that on a present generation GPU. There is a chance the sun wont come up tomorrow, but I wouldnt advise anyone to spend time preparing for that eventuality. The present generation of GPUs will be old hat soon enough ... hypocrite that I am, I am just trying to caution people from wasting their time doing what I know to be impossible :)
The only way I see of using present generation GPUs in ME, in a usefull way from an from an engineering point of view, would be to use them for corner detection for getting MVs at corners to initialize a predictive search (the corner detection is a local process, although the thresholding and matching is beyond the GPU again).
Even that is a bit of a stretch though.
Neo Neko
7th March 2004, 12:38
I'll chime in with my 2 cents here. With this addition Nvidia is now slightly less behind ATI than they were. I have owned cards from both companies and would say that they are both good buys. But what Nvidia is touting ATI has already been there and done that. And has it changed our lives? No. Using the MPEG2 hardware encoder of my RADEON 64Mb DDR VIVO(this was the first radeon card from almost 5 years ago before the current numbering scheme) I was able to capture and encode high resolution MPEG2 at pretty much any bitrate I wanted with little strain on the CPU. But then just as now there are limitations. The quality was ok but not great. And it did not accelerate all MPEG2 codecs. Just the bundled one from ATI. It was said that third party programmers could use the card to accelerate their MPEG2 codecs as well. But funny none did. And I think it hearkens back to the quality issue. The quality was not that great and it would no matter how great your codec was cripple it.
Unfortunatly such hardware DSP solutions seem prone to failure. That new plextor MPEG4 unit is getting disappointing reviews as well. Also wasn't there a card something "Osprey" a few years ago that was touted as a hardware MPEG4 encoding solution? IIRC it could only use the sigma designs MPEG4 codec(IIRC a very old version of Xvid they prolifferated in violation of license). What ever happened to that? Obscurity as well?
Pardone me if Nvidia's announcement does not inspire me. I am waiting to be impressed Nvidia. After being dissapointed since 1998 that should be a rather easy task. But not a task I am expecting to see completed. If you want a decent hardware encoder ditch the consumer market stuff and go for the high end pro stuff. Anything else is an even more garonted waste of money.
So my advice to anyone looking to get an encoding FPS boost. Save some money and just get a new mobo and cpu. They will serve you better than these so called solutions. :(
Joe Fenton
7th March 2004, 21:35
You can find an example of doing FFT on a GPU at the link -
http://www.cs.unm.edu/~kmorel/documents/fftgpu/
auenf
9th March 2004, 11:47
btw, the 'hardware assisted mpeg1/2/4 encode/decode' capability is just marketing speak to say it supports almost all the features of DXVA/VMR in hardware.
so the 'direct access to the hardware' is just the DXVA and VMR (and VMR9) API, which all the radeon cards support anyway.
ages ago i remember when the radeons came out, it was mentioned that the radeon DXVA/VMR mpeg2 decoding works fine with ms-mpeg4 as ms hadnt taken advantage of some of the newer features of the mpeg4 spec.
simply, this is nvidia catching up on ATI with some of the video playback features, the performance of the 'GPU' is still the main determining factor for 90% of the customers anyway.
Enf...
bond
15th April 2004, 13:01
just found this report (http://www.theregister.co.uk/2004/04/14/nvidia_6800_ultra/) about the Nvidia GeForce 6800 Ultra, matching this topic
JimmyBarnes
24th July 2005, 11:38
Hi
I have seen some post from about a year ago which mention this
"Now I found an email from an ATI PR rep, clarifying that the Radeon 9800 can accelerate MPEG2/4 encoding and MPEG2/4/WMV9 decoding, and the card has been on the market for a while." Doom9 from May2004
but there does not seem to be any follow up.
So if I were to get a Radeon 9800, does that mean my VOB to XviD encodes would be significantly faster? By how much?
My present graphics card is an aging Gigabyte GV-N4464 NVidia MX400 8x AGP card.
thanks
JB
Doom9
24th July 2005, 12:39
When there is software that makes this possible, you can be sure to read about it in my news. Until then, don't even waste your time thinking of what could be. At this time, I have yet to get my hands on any software that would make use of a GPU for video encoding.
There's been this and that announcement for a long time, and while selected decoding help is now available, we are still lightyears away from a generic solution that works everywhere. If you need video encoding, put your money into a good CPU, and give up hope that your gaming GFX card will help you out.
Oh, and by the way: there's a reason why threads have been inactive for a year.. it's because there's no news, so you should only resurrect them if there's new information, not to ask the question again.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.