Penguin
Note: You are viewing an old revision of this page. View the current version.

Video compression algorithms as used in multimedia formats like MPEG are invariably lossy—that is, they throw away information that the human eye is less likely to notice.

In the beginning were compression algorithms for single image frames, like JPEG. This was able to effect a 10:1 reduction in size of photorealistic images with no noticeable difference in visible quality, which at the time (1990) seemed pretty miraculous.

The original MPEG-1 spec used a JPEG-derived algorithm for compressing video frames, and built on this to add compression in the temporal dimension as well, by storing differences between successive video frames instead of full frames. This gave another 10:1 reduction factor in data size.

But not all frames can be expressed as differences—you have to have a full frame as a starting point. This is called an I-frame (because it only uses intraframe compression). This can be followed by one or more P-frames (because each one is expressed as a difference from the previous frame). The sequence starting with an I-frame, and continuing with all its dependent P-frames, is called a Group Of Pictures or “GOP”.

To compress things even further, the GOP can contain B-frames, which are expressed as a difference between both a preceding and following I- or P-frame.

That is, preceding and following in time. However, to ease the job of the decoder, the B-frame occurs in the video stream after the frames that it depends on. Thus, the temporal order of display of an B-frame between an I-frame and a P-frame might be IBP, but the order in which they appear in the stream is IPB. Nevertheless, each frame is still tagged with the appropriate presentation time stamp to ensure it is displayed at the right time.