An XvMC implementation would be a good way to get comfortable with shader-processed video, but the same approach could be used for both motion comp and in-loop deblocking of H.264, you'd just need a different API. I sometimes wonder if it might be easier to just add the shader code to ffmpeg/libavcodec and have it run directly over the drm. That would give more flexibility for incrementally moving the "acceleration point" further up the stack as more work is completed. -----Original Message----- From: Michael Cree [mailto:mcree@orcon.net.nz] Sent: Tuesday, May 12, 2009 5:51 PM To: Alex Deucher Cc: Rafał Miłecki; Anders Eriksson; Matthias Hopf; Christiaan van Dijk; Christian König; radeonhd@opensuse.org Subject: Re: [radeonhd] RS690 full-HD performance 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 -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org