This week we delve into one of the more widely used codecs out there. You may not even know you’re using it due to the fact that different organizations have taken MPEG-4 Part 2 and modified it for their own uses. For that reason, I’ll spend just a small bit of time talking about the specific MPEG-4 Part 2 codec itself and then move into the different variations that are available.
MPEG-4 Part 2 was developed by, you guessed it, the Moving Pictures Experts Group. While its similar to both MPEG-1 and MPEG-2, the codec added several compression features designed to provide better compression and enhanced playback. The codec is grouped into approximately 21 profiles ranging from those used for low-resolution playback on devices like security cameras and ones that can provide HD quality playback. The main profiles used however are usually the Advanced Simple and Simple profiles.
The Simple profile is used mainly for low bitrate/ low-resolution applications where other factors may be restrictive. IE: bandwidth, hardware, etc. Think cell phones, security systems, teleconferencing, etc. The Advanced Simple profile adds to the Simple profile by providing support for B-frames, interlaced video and motion compensation.
Where you’ll start to recognize the MPEG-4 Part 2 codec is when we mention things like DivX and Xvid. Both of these formats use the MPEG-4 Part 2 codec. While the organizations aren’t technically related, DivX is a proprietary format popular due to the ability to compress video to small sizes yet maintain relatively good quality. The format has become associated with the ripping of DVDs for this reason. I can tell you from experience that its not perfect but it gets the job done. File sizes are small and while you certainly aren’t getting true HD quality, the files are certainly passable for portable devices. Interestingly, the DivX codec is derived from Microsoft’s MPEG-4 Version 3 codec. The Microsoft codec wasn’t actually MPEG-4 compliant and originally required that the output be placed in an ASF container. Later it was changed to allow other containers such as AVI. Jerome Rota, who created the “DivX 😉” 3.11 Alpha video codec, actually hacked the Microsoft codec due to issues he was having with Windows Media Player.
DivX has also developed their own container format which provides many DVD-like functions including menus, multiple subtitle tracks, multiple audio tracks, multiple video streams (for extra content), chapter points and other features. There’s also limited backward compatibility with the AVI container as well.
Xvid on the other hand is an open source codec derived from the work DviX did on OpenDivX, an open source MPEG-4 video codec based on the MoMuSys reference MPEG-4 encoder. Members of the team didn’t like the fact that the source code was placed under a very restrictive license. Xvid has basically replaced the OpenDivX code and is published under GNU General Public License.
The important thing to remember with these codecs is the flexibility. With the ability to render video for low-resolution security cameras all the way up to HD content, as well as having a relatively good compression to quality ratio, MPEG-4 (and its various off-shoots) will probably remain popular for some time to come. I have yet to view any HD content in the MPEG-4 Part 2 format due to the fact that the majority of my HD files are encoded in h.264. It will be interesting to see which of these codecs ends up controlling the video space for the long term.