No announcement yet.

A few questions about video decode acceleration

  • Filter
  • Time
  • Show
Clear All
new posts

  • TechMage89
    Thanks for the answers, Bridgman, that clears a few things up. I get the impression, than, that *any* modern ati card I purchase will get me some kind of video decode acceleration once this stuff is done. It's great news to hear that it might be possible to open up UVD on r700, that would be awesome for making a mythtv box.

    So video accel docs will be worked on once the 3d stuff is all out the door, and you guys are keeping an eye out for things that might be helpful at this point.

    The reason I was asking about VAAPI is that what I've heard is that extending XvMC would be difficult and messy to use, and that it might only expose limited functionality (maybe it would be OK for the idct/mc stuff, but probably not for anything beyond that). Since we're starting from scratch here, it seems to make more sense to me to start on a new architecture that's designed to do what you're trying to. I don't know that much about the intricacies of driver development, but there were concerns that VAAPI is Intel-centric and might not adapt well to other cards. Have any of the devs look at the VAAPI spec? Are these concerns justified?

    Leave a comment:

  • bridgman
    1. I understand that the Avivo video processor's specs can be released without legal issues, but UVD's specs cannot because of output protection stuff
    Yep, although the "avivo video processor" is not so much a single processor as a combination of high quality video paths (AVIVO := Advanced Video In / Video Out), some changes to the shader core to process video more efficiently, and some proprietary back-end video processing running on the shaders. If you think about the video pipeline as being decode followed by render, AVIVO is basically very good render acceleration and back-end processing.

    R128 through R6xx all have hardware support for the IDCT and MC decoding tasks; IDCT in dedicated hardware, MC using special modes on the shaders. I'm pretty sure we will be able to open IDCT/MC on all those products, not sure about UVD on 6xx.

    The 6xx family adds UVD, and we run H.264 and VC1 decode on UVD instead of on the existing IDCT/MC hardware. I suspect the IDCT and MC hardware (which we plan to open up) will also be useful for H.264 and VC-1, just not as efficient as UVD. I don't think we have actually tried using IDCT/MC on H.264/VC-1, however.

    Everyone with me so far ? OK, good.

    The 780 IGP is the first of the 7xx family with UVD2, and on those parts the IDCT block gets absorbed into UVD so MPEG2 acceleration is done on UVD as well as H.264 and VC-1.I think our chances of opening UVD on 7xx are actually a bit better than UVD on 6xx, but not sure and haven't spent any time on it yet. My current thinking is to open up IDCT/MC on 1xx-6xx, and try to open UVD on 7xx.

    Bottom line is that I expect we will be able to enable some pretty good decode *and* render acceleration. It may not use every bit of HW in the chip but other than people playing DVDs on long airplane trips while running Linux I doubt anyone will notice the difference.

    2. have the people at amd begun to rummage for video decode spec documents? Do they exist? When do you expect you'll have time to start cleaning them up for release?
    Yes and no. Our focus is 6xx 3d, but we are keeping our eyes open for low-hanging fruit. Dave Airlie reminded me yesterday that we used to have a proprietary API for video acceleration which was pretty small and simple, and that if we could dig up source for that it would be a pretty good ddk for using the IDCT/MC hardware on most of the Radeon parts.

    The specs defintely exist, that's not a problem; the issue is making sure that we can safely and legally release enough info to write a useful driver. Best guess right now is that we'll start spending more time on video in July.

    3. What api do you think will be useful for video decode. Is VAAPI the future? Or will extensions to Xvmc work
    I expect XvMC extensions to be the primary API for a while. VAAPI may be newer and cleaner (although I haven't looked at it enough to be sure) but everyone tends to implement XvMC first then XvMC extensions are just an extension away
    Last edited by bridgman; 06-05-2008, 04:36 PM.

    Leave a comment: