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.

What actually leads to confusion is the constant mixing of the words codec and format.

A codec, by definition, is "a device or program" that encodes and decodes data. The word "enCOder/DECoder" (or "COmpressor/DECompressor") directly implies its active role - a codec actually DOES something. Encodes and decodes. A codec is an implementation (software or hardware) of a specification.

A format, by contrast, is not a codec. A specification is not a codec. Formats and specifications do not do anything. Formats and specifications do not encode and decode data. Formats and specifications are not devices or computer programs. Formats and specifications describe how to make devices and programs (that encode and decode data).

libvpx is a codec. VP8 is a format. Xvid is a codec (a software library). MPEG-4 ASP is a format. H.264 is a format, a specification. Not a codec. And so on.

What actually leads to confusion is the constant mixing of the words codec and format.

A codec, by definition, is "a device or program" that encodes and decodes data. The word "enCOder/DECoder" (or "COmpressor/DECompressor") directly implies its active role - a codec actually DOES something. Encodes and decodes. A codec is an implementation (software or hardware) of a specification.

A format, by contrast, is not a codec. A specification is not a codec. Formats and specifications do not do anything. Formats and specifications do not encode and decode data. Formats and specifications are not devices or computer programs. Formats and specifications describe how to make devices and programs (that encode and decode data).

libvpx is a codec. VP8 is a format. Xvid is a codec (a software library). MPEG-4 ASP is a format. H.264 is a format, a specification. Not a codec. And so on.

+1

I wish everybody would see this comment. It explains the difference perfectly and i wish everybody read this comment, understand it and start using appropriate names when discussing codecs and formats, too bad you didnt add containers in your comment because there is also a confusion btw formats and containers.

Speaking of which, there's also a difference between a container and a container format. :-) A container contains data, a container format is a way of storing data. For example, AVI, Matroska and Ogg are container formats, not containers.