If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

A few questions about video decode acceleration

06-05-2008, 03:16 PM

I have a few questions about video decode acceleration:

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. Does this mean that R600+ chips will not be able to have any open-source video decode support, or that their support will be limited to the avivo functions? In either case, I'd like to bring up the suggestion again of a blob for video decoding that the open-source driver could tie into.

2.) Bridgman, 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?

3.) This question is more toward the driver developers. What api do you think will be useful for video decode. Is VAAPI the future? Or will extensions to Xvmc work?

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

Comment

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?

Comment

It's stuff so secret that you can't even tell us in general terms what it is and why it's secret? I'm impressed! Sounds like real cloak-and-dagger stuff! :-)

Anyhow, thanks again for all the hard work you and the team have put into getting the docs released and supporting open driver development! It's nice being able to recommend ATI products to friends, coworkers, etc., with no reservations.

Comment

or perhaps he could have AMD do the right thing, and not stop THEIR users from using THEIR hardware fully, because they need to "protect" the stupidity of some hollywood exec's, trying to maintain the illusion that their DRM works, and havent already been broken.

reality is, that the DRM is already broken, its null and void, USELESS, it protects NOTHING, everyone that wants to make copies, can do so.

AMD basically says: "oh, because hollywood wishes to THINK the drm protects their stuff, YOU can not use the hardware you bought", which is just wrong.

Comment

It's probably more correct to say "AMD basically says oh, because we and everyone else in the industry signed agreements committing to provide a secure environment for DVD/HD/BD player applications we will honor those agreements".

I expect that we will allow you to use all the hardware fully; we just arent sure we can expose it to open source developers without violating pre-existing agreements.

If you are saying that we should violate the agreements we have signed, and that we should refuse to deliver the features which 99% of our OEM customers insist we provide, that is not a decision I can make but honestly if I were asked it's not a decision I would recommend. I understand that you're looking for one hardware vendor to take a billion-dollar risk and go against the industry direction on DRM, but so far nobody has identified a way that could work out well for AMD or any other vendor who tried it.

I know the popular view is that we would be deluged with customers since they would now be able to play any protected content without restrictions but it doesn't work that way. The DRM hardware just allows us to provide a secure environment for a player app, and the app makes the decision whether to play. No DRM hardware, no secure environment, no play.

This discussion really is premature anyways, since I don't know yet how things are going to work out with UVD. I don't have an answer today, so I'm saying "we have no plan to open UVD" (which is the literal truth), but if it turns out that we are able to open UVD does that solve the problem for you ?

Comment

I know the popular view is that we would be deluged with customers since they would now be able to play any protected content without restrictions but it doesn't work that way. The DRM hardware just allows us to provide a secure environment for a player app, and the app makes the decision whether to play. No DRM hardware, no secure environment, no play.

That's BS and you guys at AMD know it just as well as the rest of us. The fact of the matter is that hacks are already being worked out. HDCP, and AACS are already being cracked. Sooner rather then later we will all be able to watch any content protected or not, using nothing but open source players and drivers, and we'll be able to do it 100% transparently.

Whether you like it or not this --is-- what is going to happen. If you took this opportunity to help the open source community to achieve this goal, you could single handedly kill DRM entirely in one fell swoop. ATi is the --only-- company who has the market position to dictate to the movie industry what it will and will not do.

I really dont care what anybody else says. ATi --can-- kill DRM completely. It's the only company who can, and until they decide to do so we will be stuck with it. And the thing that they are simply too ignorant, or maybe arrogant, to realize is that it wouldnt effect there bottom line at all in any measurable form. Lets face it, open source drivers will exist, so the people who would have used ATi's hardware will still do so, and HDCP, and AACS will be hacked so the people who will be buying and watching DRM'd content will still be able to do so.

There is absolutely no valid point at all to continue supporting DRM. All your doing is --wasting-- resources in a --futile-- effort. You should take those same resources and devote them to the open source drivers and help us to develop a better product. Instead of allowing Intel to shape the future of the Linux graphics subsystem you should take the efforts that you have devoted to DRM and your closed driver and reallocate them to the open source community.