GPU assisted video decoding in XBMC, like motion compensation, idct, and deblocking?
#16
(toecutter @ mar. 15 2004,22:10 Wrote:i read up on the friendtech mod. it seems that a few reviewers had problems with mpeg2 files. it seems the dvd and mpeg2 decoders for xbox uses the cpu clock cycles to sync the av streams?
partially true, microsoft dashboard dvd-player, dvdx 1.0 and dvdx 2.0 (all based on ms code) have this problem since use cpu clock to sync.

(toecutter @ mar. 15 2004,22:10 Wrote:would this affect xbmc?, has anyone tried running xbmc on a friendtech modded xbox?
no, this does not affect xbmc video playback since mplayer sync via a software clock. yes, i have tried and it works perfectly with xbmc.
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
#17
plays a fotr 720p sample at more than 30fps from the hard drive. then again i'm not playing it at hd resolutions just 480i but it shouldn't matter that much. noticed there is no significant speed difference between filters though.
Reply
#18
(dr_colossus @ mar. 17 2004,05:11 Wrote:plays a fotr 720p sample at more than 30fps from the hard drive. then again i'm not playing it at hd resolutions just 480i but it shouldn't matter that much. noticed there is no significant speed difference between filters though.
output res makes a significant difference to the yv12->rgb converter - it converts each screen pixel individually, rather than each source pixel. however it's generally running well below max anyway (being gpu based not cpu) - theoretical max is 225 fps @ 1080p.

the filters won't make much difference.
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
#19
i know this is going a little off topic but let us keep thing in perspective here, the screen ress of the xbox is only 720 x 576 and at a resolution that low most low end pc can run most games. not only that the xbox can only run one process (one game, app, stream or ui) at a time, so there really is no reason for it to 'run out' of resources.

senior systems engineer
uk
Reply
#20
errr, the major resource we lack is memory. it's trivial to use 64mb in one app, so i don't see why we should have "infinite" resources all of a sudden. if you're thinking of what win9x calls "resources" then the xbox doesn't have them - it's not windows.
there are basically 4 resources which are shared between the threads of the process - cpu time, gpu time, memory and i/o bandwidth.
i/o bandwidth isn't usually too much of an issue - only the actively playing media really hits the disk. if you ftp while playing media it can be an issue though that also relates to cpu hit.
gpu time is also not much of a problem in xbmc as we do relatively little drawing (compared to a 3d game).
cpu time is a big issue, especially with some of the high compression video codecs, they basically need all the cpu just for the decode, running other stuff in the background can impact performance badly. it's fairly easy to get round by lowering the background service thread priorities though.
memory is the main problem. there's 64mb for everything. no separate texture memory like a pc, no virtual memory like windows. 64mb has to fit everything - all the code, all the data, all the textures. for reference we use maybe 4-6mb for code, and about 2-20mb in textures most of the time (varies based on skin). other things like maintaining the gui, i/o buffering, python, playing any media etc also take a chunk of memory. typically at the home screen with no media running you're looking at 25-50% of memory gone just for the gui and program state/buffers. playing a movie will use the bulk of the remaining memory, leaving very little for maintaining background services such as email servers and whatnot.

so as you can see running out of resources is very easy to do.
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
#21
Sad 
i'm streaching it now but you think some day you devs figure out how to use the gpu as a co-processor to decode (all) video?
...maybe somehow emulating/wrapping x86 in direct3d or something, i know i'm really only fantasizing but never say never Image
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
#22
you can't fully emulate an x86 on a gpu, it doesn't have enough instructions. even if you could, why would you? it'd be slower than doing it on the cpu.
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
#23
Star 
i was only specucating if and how one could use the gpu as a co-processor to the cpu to help (not instead) decode hdtv-video (ex. in mpeg2)



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
#24
from the docs it looks like moving the motion compensation onto the gpu should be possible from a hardware having the capability standpoint. i'm not sure how easy it will be to integrate that with mplayer though.
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
#25
what about th 720 p movies like tomb raider special box!!!there are an extra dvd that source are 720p or 1080 i movie!!
have xbox much power to play this!!!
Reply
#26
Exclamation 
(marvelles @ april 28 2004,19:23 Wrote:what about th 720 p movies like tomb raider special box!!!there are an extra dvd that source are 720p or 1080 i movie!!
have xbox much power to play this!!!
The Xbox only have a 733MHz Intel Pentium-III CPU (Central Processor Unit), and that is not enough to decode WMV9 a.k.a. WMVHD (nor MPEG-4 ASP) at native HDTV resolutions such as 720p (1280x720) and 25fps. However, it might someday be enough to playback MPEG-2/TS at native 720p resolution and 25fps if only a programmer/developer could get the nVidia GPU (the Xbox's graphic/video processor) to assist with the decoding, I hope(?)
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
#27
maybe, but i don't really have the sort of time or energy required to write gpu based motion comp. or suchlike.
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
#28
(butcher @ may 05 2004,14:33 Wrote:maybe, but i don't really have the sort of time or energy required to write gpu based motion comp. or suchlike.
i've done some looking into this. doing mpeg2 motion compensation with the gpu's alpha blending would be relatively painless to do. changing mplayer to support external hardware acceleration of motion compensation i think will be much more difficult.

as for mpeg4's quarter-pel motion compensation, that might be a little more complicated (per pixel texture blending) but probably doable. again the hardest part is getting mplayer to not do it for you.

d7o
Reply
#29
mplayer has support for passing the entire mpeg stream through undecoded to a hardware decoder, i'm not sure if that would help though.
also, there's no software support for quater-pel in xbmc/mplayer currently so i don't think not doing it on the gpu would be an issue.
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
#30
(butcher @ may 06 2004,10:27 Wrote:mplayer has support for passing the entire mpeg stream through undecoded to a hardware decoder, i'm not sure if that would help though.
also, there's no software support for quater-pel in xbmc/mplayer currently so i don't think not doing it on the gpu would be an issue.
it can pass through the entire stream to hardware but as far as i know it can't just pass off the motion compensation or just the idct to hardware.

yeah i knew about the 1/4 pel. i was actually refering to 1/2 pel in my previous post. :d

as for doing 1/2 pel on the gpu, i do think that's possible, though.

hardware motion comp may give up to 20% speed increase. (i'm guessing here). i don't know if it would be enough to do hdtv resolutions though.

d7o
Reply

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