Last week in response to an open letter about H.264 and Theora, Steve Jobs said:
All video codecs are covered by patents. A patent pool is being assembled to go after Theora and other “open source” codecs now. Unfortunately, just because something is open source, it doesn’t mean or guarantee that it doesn’t infringe on others patents. An open standard is different from being royalty free or open source.
You’ll notice that Steve Jobs says that all video codecs are covered by patents. However this is just not true. Theora is patent free and was designed as such. The Theora codec is similar to the Vorbis codec for audio in that it is designed and written to be patent & royalty free. Anyone can implement it and use it without having to pay some governing body.
The thing about H.264 is that, while it might be an open standard (in otherwords anyone can write an implementation based on the published standard) it is not in fact royalty free. The governing body (MPEG LA) has said that H.264 will remain royalty free for web video through 2015. This means that come January 1, 2016, they could start asking for cash. And not everyone is going to be able to pay for the right to use it.
Video Codecs, What are They?
Before I go further I want to spend a few lines talking about video codecs. What a video codec is, is an algorithm for encoding a video signal. Different video codecs exist and serve different purposes. The thing about H.264 is that it allows someone to encode higher quality video at smaller file sizes (which is a very good thing). Apple has adopted H.264 as its video codec of choice, also Blu-Ray uses H.264 as it’s codec for encoding movies to the platform. So H.264 is a really good codec and has been adopted by the those in industries who use video, and understandably so. The idea of any codec is to get the highest possible quality into the smallest file.
The argument for which video codec to use for HTML5 is between H.264 and Theora. Theora is a video encoding codec that is free, open source, and royalty free (no one has to pay to use it or implement it). The argument that Steve Jobs is making is that even though Theora is open source and royalty free, it infringes on patents held by others.
The Issue of Software Patents
Lets get this out of the way. Patents are, at their core, a good idea. A company invents something, they patent it. In return for making the idea public knowledge they get exclusive use of the idea for a pre-determined period of time. During that time anyone using the invention has to license it from the company that holds the patent. This is a good thing as it makes ideas public and still allows the company to retain some exclusive use of it. It shows other people what can be done and to some degree encourages innovation, because if you can see how someone did something it might lead to other ideas.
Software patents however are a horrible idea. The idea that you can patent a way to do something is a little more confining and limits innovation. If I need to write an algorithm that takes two numbers and returns to me the largest of the 2 numbers, I might do something like
[c]
int ReturnLargerNumber(int a, int b) {
if(a > b )
return a;
return b;
}
[/c]
Now, someone later might come along and do something different but similar (as there aren’t a ton of ways to write this kind of code). If I had a patent on returning a larger number then I could sue anyone who implements it, no matter how similar or different. Keep in mind that this is a really lame example but it should demonstrate the idea that patenting an implementation is a bad idea. This is the heart of the software patent issue. If someone came along and had a better way to return the larger of two numbers, I could sue them thus holding back a better solution to the problem.
This all comes down to the idea that there is more than one way to do something. What Steve Jobs would like us to believe is that there is no possible way that Theora could achieve the same level of compression and quality as H.264 unless it infringes on the patents involved in H.264, thus doing things exactly the same way. Again, such a argument is good for his business but doesn’t exactly promote an “open web” that he seems to be so vocal about.
When it comes to writing software there is almost always more than one way to achieve the same goal. You can give 5 programmers the same problem and the same tools to solve it and chances are you’ll get 5 different solutions. You might get a couple that are similar but they’ll still be different. So when while Theora might serve the same purpose as H.264, it doesn’t mean they achieve their goals in the same way.
I feel that I should also note that, in most cases where a company has accused an open source project of infringing on patents, the company making the accusations has been unable to prove so in court. In most cases (read: almost all) the accusing company was making false claims in hopes of spreading fear, uncertainty, and doubt (or FUD).
The Case of Open and Royalty Free
In the end this whole thing comes down to the idea of an open web. Steve Jobs says he wants an open web but then says that he won’t use Theora because of possible patent issues. It would make more sense for him to put some time into ensuring Theora and Vorbis don’t infringe on any patents by releasing patches and pushing their use if he truly wanted an open web.
The H.264 video codec requires a license to use, the same way the Mp3 codec requires a license to use. While the Theora and Vorbis codecs do not require such licenses, companies like Apple don’t like to use them because they have their hands in other codecs (H.264 or AAC in Apple’s case).
Apple created WebKit (the rendering engine of the Safari web browser) by forking an existing open source project called KHTML and fixing the issues they saw with it. They then in turn released WebKit as an open source project. Why not do something similar with Theora and Vorbis? He’s already done it once, why not do it again. If he was really about an open web, this would be done already.
It makes sense to look into things that are open sourced and royalty free when it comes to internet standards, because not everyone can pay license fees if they want to be completely compatible. And if we rely on open standards and royalty free codecs, then everyone can enjoy the same (or at least very similar) user experience on the web. As it stands right now, only Safari and Chrome implement H.264 for HTML5. Mozilla implements Theora (open source company is always going to implement an open source solution over a licensed solution). Chrome actually includes support for both.
As long as people disagree on what to implement it is going to give web users an inconsistent experience and to me, that’s the largest part of this problem. The idea of standards is to ensure an consistent experience across implementations and if people can’t agree on what goes into a standard programmers are stuck having to do more work to ensure that consistent experience.
I agree with establishing a standard that is open and free. I appreciated hearing the technicalities in this issue. I look forward to a time on the web when I don't have to encode my video in three or four different formats to make them work in HTML5. That is a nightmare.
Do you know Apple has not tried to use and advance Theora ? Not all software is as easily altered to achieve what a programer desires and like everything else in this world we generally take the route we know or feel the most likely will succeed.It strikes me that you are making far reaching generalizations suggesting everyone should only support an open source piece of software. Besides most companies want some reward for the software they develop, not everything is free you know.
1) Apple forked KHTML to create Webkit, so it's something they have in factdone before.2) I do not have knowledge that Apple has or has not tried to help/advanceTheora, but I do know that as early as 6-9 months ago, Steve Jobs is onrecord as saying that Theora has patent issues.No not everything is free, but when you're talking about web standards free,open, and royalty free become incredibly big deals.
Pingback: WebM Video & Free Video Codecs