GPU assisted video decoding in XBMC, like motion compensation, idct, and deblocking?
#61
finas, http://openvidia.sourceforge.net/ is an open source library of functions utializing the gpu. usually a decoder is much easier to implement than an encoder but I'm not familiar with x264 encoding/decoding so maybe it's different here. The Xbox GPU should be something in the middle of GF3 and 4, probably closest to GF3 but with some stuff from GF4 in there...

jm, don't know where you have this info from, but a ms dev has stated on his webpage that he did it using the gpu on both the old and the new xbox. No idea how he did it or if quality was affected compared to a "software" (read cpu based) decoder. Others have done it on later versions of the nvidia chips and also ATI chips if I recall. I still believe that 720p x264 is possible on the old box, I just need someone to prove me right hehe
Reply
#62
hehe maybe we can get a nVidia dev to assist. Maybe he would think it would be fun to mess with Microsoft considering that they used ATI for the new Xbox
Reply
#63
This IEEE article by the MS developer was discussed earlier in the thread, but a direct link was never provided. I've put it here just in case it's of use to somebody. It really seems to hit very close to this topic (GPU assist of video decode with an nVidia GeForce3 GPU and Pentium III CPU)! It's worth repeating that this is the same MS researcher who claims on his page to have achieved real-time decode of WMV HD video on the original Xbox. I wonder if all the authors are still with MS...
Reply
#64
They are. We have ofcourse attempted to be in contact with the authors in the past, with no success. The paper itself doesn't supply enough details and most of us don't have the codec development knowledge to really get into it.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#65
One thing that i find strange about that article is that how come nvidia and ati doesn't have any solution that uses this approach? Sure they have videoacceleration but that uses another part of the gpu (except for x1xxx for ati) that is made for videoacceleration and that solution is not near as effective as this seems to be from my experience. New versions of ati-cards will also use the nvidia approach instead of pixelshaders.

Now lets take the ati x1xxx solution that uses the pixelshaders. To play 720p you need to have at least X1600 while X1300 can only do 480p in H.264. This would mean that a geforce3 ti200 is better performing then a x1300?

Maybe i'm missing something but why doesn't ati and nvidia use this solution as it's better performing and would save silicon and generate more cash?
Reply
#66
Another add (how to edit a post?):
Found a test where they tested nvidia hd acceleration:
On a 7800GTX and A64 4000+, playing a 1080p used 80.2%CPU while X1800XL used 58.6%CPU. Hard to translate but that acceleration doesn't sound nearly as good as this.
Reply
#67
Is it more cash? If you ask me, they probably make certain "slowdowns" in order to sell more, even though they have better technology at their hands.
Reply
#68
More silicon=worse yields, more expensive, could have been used for 3d performance, higher development cost. Can't see that they would have anything to gain from it. If they could provide the same performance with better yields and lower chipcost wouldn't they do so?

But if we forget about hardware makers. Does anyone know of a software maker (cyberlink, coreavc, nero, makers of windvd) that has made this approach?

I don't want to be a pessimist here but how come no one is using it already?
I only know of ati and they are leaving this solution in their new gpu's. Also their solution doesn't seem to make wonders even if it does lower cpu usage.
Either there must be limitations that makes it more or less useless or it's damn hard to write a decoder that can do it.

Now i don't know anything about writing decoders and don't want to pretend that i do. I have alot of 720p in x264 that i'd love to play on the xbox even if i also have a htpc. So i'm actually hoping that my logic is flawed Laugh
Reply
#69
stromrickard Wrote:I don't want to be a pessimist here but how come no one is using it already?

Because as i told some days ago, it's not impossible but it's really dificult. There is a department at my university that does this sort of things with Graphics Cards. I would be able to ask them but i don't remember what department is Sad
Reply
#70
Question 
Hi Guys
This is a bit of an off topic but does anyone has any tool that can tell you
what the media player is doing? more specific if they are using GPU for some of the processing or just straight CPU usage

not XBMC particularly since XBMC doesnt support GPU decoding yet but any media like zoom player/media classic/powerdvd etc...
Reply
#71
Other players you mentioned are using DirectShow filters to decode stuff. It all depends what filters you use and wether they are capable to offload to GPU or not. I am familiar with 2 h.264 codecs that use DXVA = Cyberlink H.264 codec and MPC-HC codec. Ffdshow or corecodec cant use GPU although they use more than one core which is nice. Information about using GPU is sometimes in the properties of the codec while movie is played, you can also see this in task manager. In my case when codec is using DXVA I see max 5% CPU utilization on 720/1080p. Whitout it it's 30-50% or even 90% on some intesive 1080p scenes. (AMD 5200+).

XBMC is using ffmpeg so there is no DXVA and we are lucky to get multicore support just while ago...

DP
Reply
#72
I read about Media Player Classic Homecinema on FFmpeg-dev mailing list which does support DXVA for FFmpeg. However the original upstream version of FFmpeg (which XBMC uses) does not yet support DXVA, ...your best bet to get it into XBMC someday is probably to ask the Media Player Classic Homecinema developers to submit a patch to the original upstream version of FFmpeg. Once it gets integrated into the original upstream version of FFmpeg then it will not be long before XBMC get that as well.
http://tibrium.neuf.fr/DXVASupport.html

http://lists.mplayerhq.hu/pipermail/ffmp...42612.html
Quote:from Tibrium <[email protected]>
to FFmpeg development discussions and patches <[email protected]>
date Feb 25, 2008 10:29 PM
subject [FFmpeg-devel] New project using Ffmpeg with DXVA

Hello,
I'm one of the project administrator of Media Player Classic - Homecinema, a fork from original Guliverkli project. We have used ffmpeg to add a new internal video decoder inside mpc for software decoding, but we have also the possibility to accelerate H264 and VC1 decoding using DXVA hardware acceleration (only video card with bitstream acceleration are supported for the moment).

This project is present on SourceForge at this address http://sourceforge.net/projects/mpc-hc/ and the first release using ffmpeg decoder will be available soon (final testing stage).

Could you please add mpc-hc on the list of ffmpeg powered project.

Thank you very much for you great works

Christophe (a.k.a Casimir)
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#73
Quick questions here, regarding the title of the thread;

Is this simply pipe dreaming or are there actually anyone looking into this, some efforts likely going to pay off soon, or what?
Reply
#74
No one is looking at it yet for Windows, nor for Mac OS X, but Robert Rudd will be looking at it for Linux this summer, see:
http://wiki.xbmc.org/?title=GSoC_-_GPU_A...o_Decoding

If he implements it in a cross-platform 'friendly' way (such as OpenGL Pixel Shaders) then it could possibly be ported to other platform as well.

oh, probably never going to be ported to the Xbox though as the Xbox has old graphic hardware and does not feature OpenGL support.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#75
Gamester17 Wrote:oh, probably never going to be ported to the Xbox though as the Xbox has old graphic hardware and does not feature OpenGL support.
fuck! Sad
So there's not a snowball's chance in hell that there's even going to be an option to use the processing power of the GPU to offload playback? I mean, just somethink at least...
What's holding us back here? We need the papers for the GPU (and will never get hold of)? Too complicated to program or what?
Reply

Logout Mark Read Team Forum Stats Members Help
GPU assisted video decoding in XBMC, like motion compensation, idct, and deblocking?0