The In-depth Technical Analysis of VP8; Counterpoints

There’s an incredible amount of momentum behind Google’s WebM Project. Opera, Mozilla, and of course Google will all include it in their browsers by default, meaning about 35% of web users will be able to use it with a minimal amount of fuss. On top of that, Microsoft has changed its previously announced plans to make HTML5 video in Internet Explorer 9 H264-only to include VP8 as well. Only Apple’s opinion was unclear – until now.

A reader from The Register emailed Steve Jobs, asking him what Apple thinks of WebM. The email was clear and to the point: “What did you make of the recent VP8 announcement?” Steve Jobs indeed responded – with a URL. This one, to be exact, pointing to Jason Garrett-Glaser’s analysis of WebM/VP8. Garrett-Glaser is one of the main x264 developers.

In his analysis, Garrett-Glaser appears to be quite negative about VP8 and WebM. “Overall, VP8 appears to be significantly weaker than H.264 compression-wise,” he concludes, “The primary weaknesses mentioned above are the lack of proper adaptive quantization, lack of B-frames, lack of an 8×8 transform, and non-adaptive loop filter. With this in mind, I expect VP8 to be more comparable to VC-1 or H.264 Baseline Profile than with H.264. Of course, this is still significantly better than Theora, and in my tests it beats Dirac quite handily as well.”

“VP8 is simply way too similar to H.264,” Garrett-Glaser continues, “A pithy, if slightly inaccurate, description of VP8 would be ‘H.264 Baseline Profile with a better entropy coder’. Though I am not a lawyer, I simply cannot believe that they will be able to get away with this, especially in today’s overly litigious day and age.”

His analysis, no matter how often it has been quoted around the web, has not been accepted without question. Gregory Maxwell explains that while the analysis itself isn’t unfair, we “do need to understand it for what it is”. He is backed up by Opera’s Haavard.

“He’s comparing a very raw, hardly out of development, set of tools to his own project – which is the most sophisticated and mature video encoder in existence,” Maxwell explains, “x264 contains a multitude of pure encoder side techniques which can substantially improve quality and which could be equally applied to VP8. For an example of the kinds of pure encoder side improvements available, take a look at the most recent improvements to Theora.”

“VP8 is more computationally complex than Theora, but roughly comparable to H.264 baseline,” Maxwell continues, “And it compares pretty favourably with H.264 baseline, even without an encoder that doesn’t suck. This is all pretty good news.”

As for the patent situation, Maxwell disagrees sharply with Garrett-Glaser. “Simply being similar to something doesn’t imply patent infringement, Jason is talking out of his rear on that point,” he states, “He has no particular expertise with patents, and even fairly little knowledge of the specific H.264 patents as his project ignores them entirely.”

Since the codec has only been opened up yesterday, I’m sure there’s still a lot of discussion to come on this subject. I eagerly await a more unbiased analysis of VP8 and WebM, since the x264 developers are hardly impartial in this matter; they are in the middle of an effort to re-license x264 so they can start charging money for it. In other words, Google is a competitor here.

At least WebM and VP8 is backed by a large group of major companies, including Google, NVIDIA, ARM, AMD, and a whole boatload of others.

I also sent an email to Steve Jobs, asking him if Apple is going to add support for WebM to the iPhone, iPad, and iPod Touch. I don’t expect an answer, obviously, but hey, stranger things have happened.

131 Comments

  1. 2010-05-20 11:48 pm
    • 2010-05-20 11:50 pm
      • 2010-05-21 12:03 am
        • 2010-05-21 8:29 am
          • 2010-05-22 11:39 pm
          • 2010-05-23 12:02 am
          • 2010-05-23 1:01 pm
      • 2010-05-21 12:26 am
        • 2010-05-21 5:33 pm
      • 2010-05-21 1:22 am
      • 2010-05-21 6:33 am
        • 2010-05-21 7:01 am
    • 2010-05-21 6:07 am
    • 2010-05-21 1:23 pm
      • 2010-05-21 3:26 pm
      • 2010-05-21 10:46 pm
        • 2010-05-22 2:39 am
  2. 2010-05-20 11:56 pm
    • 2010-05-21 12:31 am
      • 2010-05-21 1:52 am
        • 2010-05-21 9:28 am
        • 2010-05-22 2:49 am
    • 2010-05-21 5:15 am
      • 2010-05-21 5:25 am
        • 2010-05-23 12:22 am
          • 2010-05-23 10:50 am
          • 2010-05-23 1:39 pm
      • 2010-05-21 5:36 am
      • 2010-05-22 10:48 am
      • 2010-05-22 1:15 pm
  3. 2010-05-21 12:07 am
  4. 2010-05-21 12:27 am
    • 2010-05-21 12:37 am
      • 2010-05-21 1:00 am
        • 2010-05-21 1:26 am
          • 2010-05-21 2:02 am
          • 2010-05-21 2:17 am
          • 2010-05-21 2:21 am
          • 2010-05-21 2:41 am
          • 2010-05-21 3:19 am
          • 2010-05-21 4:53 am
          • 2010-05-21 5:32 am
          • 2010-05-21 5:50 am
          • 2010-05-21 6:17 am
          • 2010-05-21 6:20 am
          • 2010-05-21 6:54 am
          • 2010-05-21 7:00 am
          • 2010-05-21 3:33 am
          • 2010-05-21 2:31 am
          • 2010-05-21 5:00 pm
          • 2010-05-21 5:34 pm
          • 2010-05-21 2:35 am
          • 2010-05-21 2:46 am
          • 2010-05-21 3:21 am
          • 2010-05-21 3:57 am
          • 2010-05-21 4:32 am
          • 2010-05-21 4:55 am
          • 2010-05-21 5:34 am
          • 2010-05-21 5:43 am
          • 2010-05-21 8:15 am
          • 2010-05-21 11:21 am
          • 2010-05-21 5:52 am
          • 2010-05-21 6:07 am
          • 2010-05-21 6:36 am
          • 2010-05-21 7:00 am
          • 2010-05-21 7:03 am
          • 2010-05-21 7:05 am
          • 2010-05-21 7:08 am
          • 2010-05-21 7:20 am
          • 2010-05-21 7:26 am
          • 2010-05-21 11:14 am
          • 2010-05-21 12:07 pm
          • 2010-05-21 7:13 am
          • 2010-05-21 7:19 am
          • 2010-05-21 7:21 am
          • 2010-05-21 11:15 am
          • 2010-05-21 6:22 am
          • 2010-05-21 6:45 am
          • 2010-05-21 7:02 am
          • 2010-05-21 7:05 am
          • 2010-05-21 7:09 am
          • 2010-05-21 7:12 am
          • 2010-05-21 7:21 am
          • 2010-05-21 10:04 am
          • 2010-05-21 6:57 am
          • 2010-05-21 7:01 am
          • 2010-05-21 7:04 am
          • 2010-05-21 4:36 pm
          • 2010-05-21 3:27 am
        • 2010-05-21 10:01 am
      • 2010-05-21 1:37 am
        • 2010-05-21 10:06 am
          • 2010-05-21 10:20 am
          • 2010-05-21 10:34 am
          • 2010-05-21 10:57 am
          • 2010-05-22 12:07 am
          • 2010-05-22 10:09 am
    • 2010-05-21 1:13 am
      • 2010-05-21 10:11 am
        • 2010-05-21 10:14 am
          • 2010-05-21 10:41 am
          • 2010-05-21 11:01 am
          • 2010-05-21 12:11 pm
          • 2010-05-21 12:40 pm
          • 2010-05-21 1:00 pm
    • 2010-05-21 12:16 pm
  5. 2010-05-21 12:28 am
    • 2010-05-21 1:14 am
      • 2010-05-21 1:33 am
    • 2010-05-21 6:05 am
  6. 2010-05-21 12:37 am
    • 2010-05-21 12:48 am
    • 2010-05-21 1:22 am
      • 2010-05-21 1:35 am
        • 2010-05-21 5:24 am
  7. 2010-05-21 12:43 am
  8. 2010-05-21 1:24 am
    • 2010-05-21 12:21 pm
      • 2010-05-22 2:57 am
  9. 2010-05-21 4:47 am
    • 2010-05-21 5:38 am
      • 2010-05-22 11:16 am
        • 2010-05-24 12:10 am
      • 2010-05-24 12:03 am
  10. 2010-05-21 5:30 am
  11. 2010-05-21 6:37 am
    • 2010-05-21 6:58 am
  12. 2010-05-21 4:42 pm
  13. 2010-05-21 10:56 pm