 P-frames have one motion vector per macroblock, relative to the previous anchor frame.B-frames, however, can use two motion vectors; one from the previous anchor frame, and one from the future anchor frame.Partial macroblocks, and black borders/bars encoded into the video that do not fall exactly on a macroblock boundary, cause havoc with motion prediction.