On 13/05/2009, at 3:42 AM, Alex Deucher wrote:
Video decode is mostly done on shaders (at least motion compensation) on that hardware. We've released the 3D engine information on these chips so this could be implemented now if anyone was so inclined.
Can you be more specific about this, please? I'm really intereseted
There are several stages in the decode part of the pipeline. idct and mc are the main ones. On r1xx-r5xx (including rs6xx), we do the mc part for the decode using the 3D engine (shaders on r3xx+, special instructions on r1xx-r2xx). R6xx and r7xx chips have a special dedicated UVD block for video decode. We plan to review that block to see if we can release any of it, but no promises. Regardless, you could do mc on r6xx/r7xx using shaders as well. For MPEG1/2 you could implement an XvMC driver and implement mc using shaders. I believe intel does this. The problem is XvMC doesn't support newer formats like H.264 or whatever.
Now this is really interesting. I have some experience in image processing. While I have never really specifically worked on video codecs I am quite familiar with the mathematics of discrete Fourier transforms and the like, and currently have a student working on FPGA implementations of the FFT. I definitely would be interested in coding up the IDCT and MC. I would have to learn about the shaders. It's a bummer XvMC doesn't support h.264 as that is the codec I ultimately would be most interested in. (My computer is powerful enough to decode MPEG2 but not MPEG4). The main problem is time. I don't know if I can put much effort into this. Then again, if I could score a publication or two from it that might help justify some work time or getting a student to do this. Implementing IDCT and MC probably won't achieve that - I'm assuming that it's well known, but maybe implementing some signal processing for image ranging on GPU at the same time... Hmm, I'm starting to ramble - I'll have a think about this. Cheers Michael. -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org