 send as few I-frames as possible. P-frames are coded through a process of predicting the current frame using a past frame (an I-frame or another P-frame). The picture is broken into 16x16 pixel blocks. Each block is compared to a pixel block in the same horizontal and vertical position in a previous frame. The P-frame technique assumes all pixels in a block move together and does not describe each pixel individually. Only information about differences between pixels in the current frame and the previous frame is coded. B-frame pictures use bi-directional interpolation coding. Interpolation is the process of determining that a given pixel is a certain color because a pixel in the same place in a prior frame was that color. B-frame coding uses hints to predict a current frame based on what was contained in a past and a future frame. B-frame coding includes background estimation-working with areas in the background that are uncovered as an object moves from side to side. B-frame coding also uses motion compensated prediction to guess at where a moving object will be, based on where it was in the prior frame. Video Communications: The Whole Picture Bidirectional Prediction Figure Appendix B-2. Bi-Directional Interpolated Coding (Michel Bayard). The process of MPEG encoding always starts with an I-frame. After a time interval that is defined by each particular implementation another frame is sent, typically, a P- frame. The elapsed time between the transmission of frames (of any type) is often too great to permit the illusion of smooth motion. Thus, B-frames are computed (interpolated) by comparing a past frame to a present frame. These interpolated frames are used to fill in the gaps between I-frames and P-frames (or some combination thereof). B-frames tend to make motion sequences smoother on playback while conserving bandwidth. Unfortunately, their use forces a decoder to buffer the P-frames from which they are computed. This buffering increases the cost of a decoder and, consequently, presents a problem for some 