OK People, if after the release of VP8 you're not all happy, I have a way to solve that for you. And it's friggin' awesome.
So now Google’s open sourced VP8, it can go be the HTML5 standard and we can all hug, right? Well, wrong. The argument is basically the same that’s been used with Theora. VP8, while superior to Theora, is still not quite as good as h264. It appears that we want the best video codec, and we want it to be open. This hasn’t happened, and we feel bad about settling for VP8 when the much hotter h264 is around, even though it would ruin your life.
If only we could go out with VP8 for a few years, and then migrate to a codec that is even better than h264 afterwards. We can feel better about the ~30% efficiency we (potentially) lose when we make out. Instead of thinking “well, it's better than h264 when she's all baseline” we can think about "man in a few years we’ll be totally getting it on with a codec that is so much better than h264.
How much better? Try effiencies of about 5 minutes of full HD video and audio in 64kilobyes. Yeah you read that right. Try full hardware support, even on mobile devices. Try encoders and decoders so flexible and efficient that h264 will shit its pants. Try a codec which is guaranteed not to infringe on any patents. Is this a dream? No, it’s just a friggin brilliant idea I’ve just had, and if you’ve thought about the possibilities, you’ve probably just had it yourself.
Before the big reveal let me mention something here. I started thinking about h264 in an existential way. That is, if it didn’t exist at all. If h264 wasn’t so damn enticing, we’d be perfectly happy with VP8. The only reason the community hasn’t quickly rallied around VP8 is because h264 is still just so much more attractive. Now the arguement is kind of silly because the only reason VP8 is open sourced is because of h264, but you get the idea.
OK so my point is that this codec that I’m proposing is a codec of the mind. No one really needs to ever implement it, it just needs to be proposed, and we can get on with VP8. We can then actually implement the codec because it’s that goddamn sweet.
That’s right, I’m thinking of making a codec which piggy-backs off OpenGL and the GLSL. I’m going to call it “Fondue”. The GL is the bread. The name is just for brevity, though.
So it should become clear why the hardware is available — because it’s used for games (and mobile games), and with every new iteration it’s becoming more powerful. It should also become clear why you can do full HD video in 64kb — because these are basically intros done in GL. It should also become clear why the encoder and decoder are so flexible; because the codec is to some extent a programming language.
Before you pooh-pooh this idea, I would like you to consider two things. The first is Postscript. It is basically a programming language and the bloody thing is in printers everywhere. Using a high level construct to create images (or movies) is a good idea, and the flexibility and longevity of Postscript proves the point.
The second and most important point is that if you look at the h248 and squint a bit, and then look at OpenGL and squint a bit, you’ll notice they’re both moving to the same end position, only from different endpoints. OpenGL is trying to become more photo-realistic with better pixel shaders, and h248 is trying to take advantage of 2D and 3D motion vectors to increase compression. The experts in one field almost never cross over to the other field.
The greatest thing about this is that even though the implementation of h248 and Fondue may have its similarities, the two will be coming from such starkly different worldviews that no patent lawyer will be able to twist the english language in a way that makes Fondue look like it infringes on any video codec, because it looks nothing like any video codec before it.
The nice thing about OpenGL is that it comes from a field which is generally litigation free. There are a couple of patents here or there, but nothing like the video field.
The downside: this is about as far as I’ve got. I’d like to think some more about how an encoder or decoder would work, and realistically what kind of layering we’d need to sit on top of OpenGL as a realistic video codec. But for now, I’d like to spread the idea in an existential way. It’s a codec that’s far hotter than h248 and holds a lot more promise. Under this world-view, VP8 becomes the obvious choice and we can all get on with watching videos and making the best video codec on the planet. I need you all to spread the goddamn word.
Then we can get to work.