Decoding B frames of H.264 and H.265 video streams🔗

In H.264 and H.265 codecs, the following types of frames are used for video stream compression:

  • I-frames (reference frames, key frames) contain all the fragments of the image being encoded.

  • P-frames (differentially dependent frames) contain new fragments of the image being encoded or the changes in relation to the key frame.

  • B-frames (bidirectionally dependent) encode the difference between the neighboring frames by making reference to the encoded fragments in the key and differentially dependent frames.

The video stream compressed using the B-frames have higher rate of compression in comparison with the video streams that were compressed using I and P-frames only. Thus, the video stream compressed using the B-frames requires less channel width for transmission via the network (from the camera to the server and from the server to the client application). It also occupies less drive space when stored in the archive. The volume of storage saving may reach 40% as compared with the video where only I and P-frames are used.

The practically achievable compression value depends on many parameters, such as the number of details in a frame, the intensity of movement, the resolution, the frame rate and other characteristics, including those related to the codec’s developer. At that, in most cases, the compression rate increases with the increase of the resolution and the frame rate.

At the same time, more computing power is needed for encoding the B-frames in comparison with encoding I and P-frames only.

Moreover, the use of the B-frames results in the increased delay in real-time video. It happens because the encoding and decoding of the B-frames requires buffering.

The capability of encoding the B-frames is usually indicated in the documentation of a camera. For example, the IBP or IBBP support may be stated. In such a case, the H.264/H.265 video codec must, as a rule, support the profile not lower than the Main Profile.

It is possible to ascertain if Eocortex supports the reception of a video stream with B-frames from a certain camera by contacting Eocortex technical support team.

The debugging information can provide data regarding the presence of the B-frames in a video stream. To obtain this data, it is required to enable the output of the debugging information in the Eocortex Client application. The indication of (B) will imply that the B-frames are present in the video stream.