[FFmpeg-user] IDR frames

Mark Filipak markfilipak.imdb at gmail.com
Thu Jul 4 02:18:58 EEST 2024


H.264 appears to have made I- P- & B-frames obsolete.

Everyone's probably seen my DTS-PTS diagrams.

Closed GOP
PTS order     I  B  B  P  B  B  P..
              /  ______/  ______/
             /  /        /
DTS order  I  P  B  B  P  B  B..

Open GOP
PTS order     ..B  B  I  B  B  P..
                ______/  ______/
               /        /
DTS order  ..I  B  B  P  B  B..
                open Bs

where the open Bs are actually part of the previous GOP.

Well, H.264 references the past & future in the same way, but on a picture-slice basis. There are 
I-slices, P-slices, and B-slices. The way to visualize that is to imagine that above the I- P- & 
B-frames you can see the frame's slices. Imagine there are links for those slices to past & future 
slices in other frames, even 'crossing' an I-frame's PTS.

Such a diagram would look like a spider web with many lines going every which way from every frame.

An IDR frame is an I-frame where the spider web is collapsed/missing on its left (in the past) so 
that no I-frame slices reference any slices in the past, and likewise for all the P- & B-frames to 
the I-frame's right.

That effectively means there are only two types of frames: IDR and non-IDR. That effectively 
obsolutes P- & B-frames -- they no longer have any meaning.

If I am wrong, please let me know. It's what I've sussed out from H.264, but H.264 is not human 
readable.

--Mark.


More information about the ffmpeg-user mailing list