Deep Analysis of the VP8 Codec by H.264 Experts

After Google announced the open sourcing of the VP8 codec and provided it free-of-charge, there was a lot of discussion around the quality of the codec. However, the few studies that tried to back up the discussion with hard data didn’t base their investigations on large amounts of data. None tried the comparison with multiple input files and provided results according to the numerous standard quality metrics. Every year, the MP4-Tech experts group compare every h.264 implementation in order to track performance and quality improvements. Yesterday, The Graphics and Media Lab of Moscow State University published a new, deep study of the performance of VP8, x264 and XviD implementations.Their message on the group can be found here It’s unusual that they would test a codec other than h.264 but they did with vp8 and they prove that results are respectable in many areas.

In HDTV for example, VP8 performed similar to x264 (considered the best implementation of h.264 by previous comparisons) but with 5-20% lower encoding speed. Comments from VP8 developers say that “old comparisons results have an inherent bias against VP8 because input sequences were previously encoded using another codec before being applied to VP8”.

These results can improve very quickly with optimizations, and the Russian lab hasn’t yet tested implementations of VP8 other than the one provided by Google developers. Ronald Bultje, David Conrad, and Jason Garret-Glaser, x264 developers, are now creating a native VP8 video codec implementation for the open source FFmpeg project. Ronald says in his blog that they already did that with only 1400 lines of code (including whitespace, comments and headers) because they have many bricks already coded.

The way seems widely open for the WebM Project to provide a truly free, high quality codec for the world and the FFmpeg team don’t seem likely to lose their position as best implementors of codecs.

24 Comments

  1. 2010-07-06 4:57 pm
  2. 2010-07-06 5:16 pm
    • 2010-07-06 5:24 pm
      • 2010-07-06 5:42 pm
        • 2010-07-07 1:11 am
        • 2010-07-07 1:32 am
          • 2010-07-07 2:20 am
          • 2010-07-07 8:52 am
    • 2010-07-06 5:32 pm
    • 2010-07-06 6:08 pm
      • 2010-07-06 6:53 pm
  3. 2010-07-06 7:51 pm
    • 2010-07-06 7:59 pm
      • 2010-07-06 9:52 pm
      • 2010-07-11 4:27 pm
  4. 2010-07-06 11:02 pm
    • 2010-07-07 12:28 pm
      • 2010-07-10 7:24 am
  5. 2010-07-07 3:42 am
    • 2010-07-07 4:13 am
    • 2010-07-08 1:05 pm
      • 2010-07-08 2:59 pm
        • 2010-07-08 11:49 pm
        • 2010-07-09 3:54 am