What are B-Frames?
B-frames are bi-predictive video frames that may use already decoded pictures from earlier in display order, later in display order, or both as references. This flexibility can improve compression efficiency over one-direction prediction.
How B-Frames work
A B-frame can predict picture data from either or both of its reference lists, which may identify decoded pictures earlier or later in display order. When it uses a later picture, that reference must be decoded first, so coded order may differ from presentation order. This improves compression opportunities but creates reordering buffers and latency. Encoders tune B-frame count, reference structure, and hierarchy according to delivery latency, decoder capability, and random-access requirements.
Key facts
- Containers or elementary streams carry decoding and presentation timing needed to reorder pictures; treating packet order as display order can produce incorrect playback.
- Hierarchical B-frame structures can make some B-frames references for others, improving efficiency but increasing dependency depth and error propagation when data is lost.
- Low-latency encoders may disable or limit B-frames because future-picture prediction requires lookahead and decoder buffering, even when the codec otherwise supports them.
When B-Frames matter
Increase B-frame use when smaller files or higher quality at a given bitrate matter more than minimal latency. Some workflows limit them because they add reordering delay, memory demand, or decoder constraints.