Group of pictures
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 group of successive pictures within a coded video stream. Each coded video stream consists of successive GOPs. From the pictures contained in it, the visible frames are generated. Encountering a new GOP in a compressed video stream ensures the decoder than no previous frame will be needed to decode the next ones, and is what allows fast seeking through the video.
Description
A GOP can contain the following picture types:
- I picture or I frame (intra coded picture) – a picture that is coded independently of all other pictures. Each GOP begins (in decoding order) with this type of picture.
- P picture or P frame (predictive coded picture) – contains motion-compensated difference information relative to previously decoded pictures. In older designs such as MPEG-1, H.262/MPEG-2 and H.263, each P picture can only reference one picture, and that picture must precede the P picture in display order as well as in decoding order and must be an I or P picture. These constraints do not apply in the newer standards H.264/MPEG-4 AVC and HEVC.
- B picture or B frame (bipredictive coded picture) – contains motion-compensated difference information relative to previously decoded pictures. In older designs such as MPEG-1 and H.262/MPEG-2, each B picture can only reference two pictures, one of which must precede the B picture in display order and the other must follow the B picture in display order, and all pictures that are referenced must be I or P pictures. These constraints do not apply in newer standards H.264/MPEG-4 AVC and HEVC.
- D picture or D frame (DC direct coded picture) – serves as a fast-access representation of a picture for loss robustness or fast-forward. D pictures are only used in MPEG-1 video.
An I frame indicates the beginning of a GOP. Afterwards several P and B frames follow. In older designs, the allowed ordering and referencing structure is relatively constrained.[1]
The I frames contain the full image and do not require any additional information to reconstruct it. Typically, encoders use GOP structures that cause each I frame to be a "clean random access point", such that any errors within the GOP structure are corrected by the next 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 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 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 frames the video stream has, the more editable it is. However, having more I frames substantially increases bit rate needed to code the video.
GOP Structure
The GOP structure is often referred by two numbers, for example, M=3, N=12. The first number tells the distance between two anchor frames (I or P). The second one tells the distance between two full images (I-frames): it is the GOP size.[2] For the example M=3, N=12, the GOP structure is IBBPBBPBBPBBI. Instead of the M parameter the maximal count of B-frames between two consecutive anchor frames can be used.
For example, in a sequence with pattern IBBBBPBBBBPBBBBI, the GOP size is equal to 15 (length between two I frames) and distance between two anchor frames (M value) is 5 (length between I and P frames or length between two consecutive P Frames).
References
- ↑ http://www.cs.cf.ac.uk/Dave/Multimedia/node258.html
- ↑ http://documentation.apple.com/en/compressor/usermanual/index.html#chapter=18%26section=5%26tasks=true