Difference between I frame and IDR frame

H264 encoder sends an IDR (Instantaneous Decoder Refresh) coded picture (a group of I slices ) to clear the contents of the reference picture buffer. When we send an IDR coded picture, the decoder marks all pictures in the reference buffer as ‘unused for reference’. All subsequently transmitted slices are decoded without reference to any frame decoded prior to the IDR picture. However, the reference buffer is not cleared with an I frame i.e, any frame after an I frame can use the reference buffer before the I frame. The first picture in a coded video sequence is always an IDR picture.

An IDR frame is a special type of I-frame in H.264. An IDR frame specifies that no frame after the IDR frame can reference any frame before it. This makes seeking the H.264 file easier and more responsive to the player.

The IDR frames are introduced to avoid any distortions in the video when you want to skip/forward to some place in the video or start watching in the middle of the video.

In short, every IDR frame is an I-frame, but not vice versa; so there can be I-frames that aren’t IDR frames.

Author: Dasari

PhD Student in Computer Science at Stony Brook

3 thoughts on “Difference between I frame and IDR frame”

  1. If you analyse a stream, how can you tell if a frame is an I frame or an IDR frame? I have Elecard, and other analyzer. Not worked out how to do this as yet. Thanks

Leave a comment