On WebM, H264, and FFmpeg implementation


 I was recently reminded by Gregory Maxwell of Xiph about the new, non-Google implementation of VP8 done within the context of FFmpeg, and many commenters on Slashdot observed that the fact that the implementation shares lots of code with the H264 part is further demonstration that VP8 is infriging on MPEG-LA held patents.

Actually, there is nothing in the implementation that suggests this, only the fact that some underlying alogrithms are similar (but not identical). For example, the entropy coder is quite similar, and it certainly helps to reuse some of the highly optimized librarties that are within FFMPEG, this is however no indication of patent infringement. What is certain, is the fact that I suspect that libVPX (Google implementation) will remain the “official” one, because there is no guarantee that in the alternative implementation the current IPR safeguards and efforts to avoid existing patents will be done properly. In fact, some of the obvious “missing optimizations” both in the decoder and encoder are clearly done to avoid patents, and this means that Google can be reasonably sure of being safe from IPR claims for the current code drop. If a FFMPEG developer implements some optimization (especially in the encoder) that actually implements a claimed part of a current patent you can end up with a freely implemented source code that implements an IPR-covered claim, like most of FFMPEG actually.

So, to end up this brief post: the existence of a parallel implementation of libvpx is a good thing; the fact that it shares lots of code with FFMPEG is no proof of IPR infringement, but on the other hand it is probably safer to use the libvpx one from Google, as it seems that it was developed explicitly to avoid existing IPR issues.

, ,

  1. #1 by Ronald S. Bultje - July 6th, 2010 at 14:52

    What the hell? I said H.264 and VP8 are technologically similar, and that’s all I said. I am no lawyer and have no interest in patents, nor in patent fights. I maintain my opinion that H.264 and VP8 are technologically very similar, and you’re free to argue me on that.

  2. #2 by cdaffara - July 6th, 2010 at 16:40

    Ronald: I actually was referring to the long stream of comments on slashdot, and in fact I was not commenting on your implementation at all. I also not debating the fact that H264 and VP8 are similar, as are VP8 and MPEG4 baseline, or many other DCT-based codecs. I will quote from one of the comments: “The question is: Does VP8 include technology/methods covered by patents contributed to the MPEG-LA H.264 patent pool? The fact that a huge amount of H.264-related code could be reused in their VP8 decoder strongly suggests that, at minimum, VP8 and H.264 are very similar, and that greatly increases the odds that this is the case, and that any codec implementing VP8 would violate one or more of those patents”
    That was the meaning of my post: dispelling the idea that similarity implies that VP8 infringes on MPEGLA IPR; that’s it. On the contrary of what you may have inferred, I am quite happy that an alternative implementation exist within FFMPEG, as I am quite happy of the existence of FFMPEG in general.

(will not be published)