Linked by Thom Holwerda on Sun 16th May 2010 12:52 UTC, submitted by mrsteveman1
Internet & Networking Mozilla, sticking to its ideals of the open web, decided long ago that support for the patent-encumbered H264 codec would not be included in any of its products. Not only is H264 wholly incompatible with the open web and Free software, it is also incredibly expensive. Mozilla could use one of the open source implementations, but those are not licensed, and the MPEG-LA has been quite clear in that it will sue those who encode or decode H264 content without a license. Software patents, however, are only valid in some parts of the world, so an enterprising developer has started a project that was sure to come eventually: Firefox builds with H264 support.
Thread beginning with comment 425222
To view parent comment, click here.
To read all comments associated with this story, please click here.
Member since:

Here are the specs for my video card:
ATI Avivo™ HD Video and Display Platform
2nd generation Unified Video Decoder (UVD 2)
Enabling hardware decode acceleration of H.264, VC-1 and MPEG-2

There is also quite a long list of other functions related to hardware video acceleration, although these are not specific to h.624 I would think.

Does Hardware Accelerated Decoding (or "hardware decode acceleration") === Hardware Decoding? I know that the terms are often used synonymously, but are they the same thing. Surely your graphics card still requires some software which understands h.264, to tell the GPU what to do.

The graphics card functions are accessed via an Application Programming Interface ... aka an API.

Software which calls that API would be termed a "driver".

Video player software which could play H.264 videos would call the driver, which in turn would use the video card API to pass on the video data to the video card to be decoded by the card's decoder functions (collectively known as UVD).

The decoder functions are on the video card. They are not executed by any of the higher layers of software in this stack.

My Linux system could have a player, say Firefox, or VLC, or SMPlayer, which would call the driver, xf86-video-ati, which in turn would call the card's hardware video acceleration API, XvMC, which would then access the actual decoder embedded on the card. None of the software layers would actually have a H.264 encoder themselves.
X-Video Motion Compensation (XvMC), is an extension of the X video extension (Xv) for the X Window System. The XvMC API allows video programs to offload portions of the video decoding process to the GPU video-hardware.

See? The video decoding is offloaded to the GPU video-hardware.

Therefore, the higher layers of software do not violate any H.264 patent.

Therefore, since I have purchased the video card, I have an implied license to use the patented decoder functions embedded within the video card, and I do not require any further license to use the rest of the stack (the higher layers), since these are not patented. Therefore, I can use all of this on my Linux system perfectly legally, since I have paid for the video card.

Edited 2010-05-18 14:45 UTC

Reply Parent Score: 2

saynte Member since:

For a counter example of why Acceleration != Full-Implementation see 3D accelerators. They contain neither OpenGL or DirectX, but rather functions which can accelerate their common operations.

It is difficult to say from the outside whether a particular card supports full decompression of a codec, however for ATI I believe this is the case.

XvMC doesn't support full decoding of h264 as far as I know, only selected parts of the pipeline. I can't say whether this is a fundamental incompatibility, or just not implemented yet. Some proprietary implementations , like VDPAU from NVidia (which works quite well for me), support the full pipeline, I believe.

The layers you describe exist in theory but probably aren't actually being called/used in the way you describe. Firstly XvMC likely calls the xorg driver, secondly, I think the XvMC/xorg-driver layers do not support h264. I'm not sure what that means for licensing...

Reply Parent Score: 1

lemur2 Member since:

For a counter example of why Acceleration != Full-Implementation see 3D accelerators. They contain neither OpenGL or DirectX, but rather functions which can accelerate their common operations.

I think you might find that there are a great number of patents involved in h.264, but all of them relate only to one or other of the low-level functions. (Here, I use the classic meaning of "function", which is a mathematical operation which takes one or more parameters as inputs, and produces one or mor values as output. Which, BTW, is why software patents are silly in the first place, because mathematics should not be patentable subject matter). Anyway, there is no patent which covers h.264 "overall".

I'm not sure what that means for licensing...

The card is advertised (by ATI) as including the following functionality within the hardware.

This is a long list.

When I buy the card, I get an implied license to use all of those functions.
Implied licenses often arise where the licensee has purchased a physical embodiment of some intellectual property belonging to the licensor

There is no doubt at all that when I purchased my ATI HD4350 video card, I have purchased a physical embodiment of all of the functions listed in the specifications as linked above.

Within the list it includes specifically hardware decoding of h.264. I have a full and reasonable expectation, when I bought my ATI HD4350 card, that included within that purchase was a license to use the h.264 decoder which is described as being included within it.

Any lawyer representing MPEG LA is going to have a very, very difficult task trying to claim that I must pay again for a licenase for the same functions in my Linux OS, because of this:
Under the exhaustion doctrine, doctrine of exhaustion, or first sale doctrine, the first unrestricted sale of a patented item exhausts the patentee's control over that particular item.

Having been effectively sold one license for H.264 decoding, I don't need to buy any other. To imply anything else would be misrepresentation at least, or outright fraud even.

Now, the really, really interesting thing is this: why exactly are people like you so keen to try to imply that this is not the case?


Edited 2010-05-18 23:35 UTC

Reply Parent Score: 2