Skip to main content

DivX 5.0: From T-shirt To Dress Suit

DivX Codec: Bidirectional Encoding & Co

Comparison with the previous version 4.xx reveals that quarter pixels (QP, also called quarter pel), global motion compensation (GMC), and bidirectional encoding (BD) have been added.

B-frames Through Bidirectional Encoding (BD)

A video data stream in the old DivX-4 format has what are referred to as "I frames" (intra) and "P frames" (predicted). An I frame is a single image from a video stream that is compressed in a procedure that is similar to a JPEG, i.e. the entire image is used. If every image in a film were to be compressed individually, the typically high compression factor of MPEG-4/DivX would not be reached. That is why P frames are also used. We can explain the principle of prediction by way of an example: imagine the anchorperson of a news broadcasting station. For the most part, the background does not change while the newscaster moves in the foreground. Here you could leave out the redundant background and simply describe the changes by means of instructions for specific areas of the image. The image is divided into individual blocks to do this. The time differences are represented in the P frame by precisely these changes from block to block.

In DivX 5, the "B frames" (bi-directional) are added. Let's take the weather report as an example. At the beginning, the meteorologist covers half of the weather map in the background. Then he crosses the entire picture. Behind his back, parts of the map that were hidden at first now appear. With a conventional forecast, the codec would now have a problem: the displaced blocks (i.e. the meteorologist) can be filled in with a P frame, but not so much with the new parts of the background (the weather map) that suddenly appear. The DivX-5 codec is "smart" and checks the "future" of a video sequence out in advance. It now uses forward and backward prediction simultaneously for a scene like that and calculates the B frames bi-directionally from them. This can effectively increase data compression. However, it only works in videos that have scenes similar to the example above.