I frames, B frames, and P frames are video frame types used in video codecs. I frames can be decoded without reference to any other frames. They are self-contained descriptions of one frame of the video. P frames and B frames on the other hand reference other frames and must be decoded after the frames they reference have been decoded. P frames only reference frames from earlier in the video whereas B frames can reference frames from earlier or later. Decoding B frames therefore requires decoding the video frames in an order different from the playback order.