In video coding, a group of pictures, or GOP structure, specifies the order in which intra- and inter-frames are arranged. The GOP is a collection of successive pictures within a coded video stream. Each coded video stream consists of successive GOPs, from which the visible frames are generated. Encountering a new GOP in a compressed video stream means that the decoder doesn't need any previous frames in order to decode the next ones, and allows fast seeking through the video.
A GOP can contain the following picture types:
An Iframe indicates the beginning of a GOP. Afterward, several P and B frames follow. In older designs, the allowed ordering and referencing structure is relatively constrained.
The I frames contain the full image and do not require any additional information to reconstruct them. Typically, encoders use GOP structures that cause each I frame to be a "clean random access point," such that decoding can start cleanly on an Iframe and any errors within the GOP structure are corrected after processing a correct I frame.
In the newer designs found in H.264/MPEG-4 AVC and HEVC, encoders have much more flexibility about referencing structures. They can use the same referencing structures as were previously used in older designs, or they can use more pictures as references and they can use the more flexible ordering of the coding order relative to the display order. They are also allowed to use B pictures as references when coding other (B or P) pictures. This extra flexibility can improve compression efficiency, but it can cause the propagation of errors if some data becomes lost or corrupted. One popular structure for use with the newer designs is the use of a hierarchy of B pictures. Hierarchical B pictures can provide very good compression efficiency and can also limit the propagation of errors since the hierarchy can ensure that the number of pictures affected by any data corruption problem is strictly limited.
Generally, the more I frame the video stream has, the more editable it is. However, having more I frames substantially increases the bit rate needed to code the video.