Intra-frame coding(Redirected from I-frame)
This article needs additional citations for verification. (March 2017) (Learn how and when to remove this template message)
Intra-frame prediction exploits spatial redundancy, i.e. correlation among pixels within one frame, by calculating prediction values through extrapolation from already coded pixels for effective delta coding. It is one of the two classes of predictive coding methods in video coding. Its counterpart is inter-frame prediction which exploits temporal redundancy. Temporally independently coded so-called intra frames use only intra coding. The temporally coded predicted frames (e.g. MPEG's P- and B-frames) may use intra- as well as inter-frame prediction.
Usually only few of the spatially closest known samples are used for the extrapolation. Formats that operate sample by sample like Portable Network Graphics (PNG) can usually use one of four adjacent pixels (above, above left, above right, left) or some function of them like e.g. their average. Block-based (frequency transform) formats prefill whole blocks with prediction values extrapolated from usually one or two straight lines of pixels that run along their top and left borders.
The term intra-frame coding refers to the fact that the various lossless and lossy compression techniques are performed relative to information that is contained only within the current frame, and not relative to any other frame in the video sequence. In other words, no temporal processing is performed outside of the current picture or frame. Non-intra coding techniques are extensions to these basics. It turns out that this block diagram is very similar to that of a JPEG still image video encoder, with only slight implementation detail differences.
Data is usually read from a video camera or a video card in the YCbCr data format (often informally called YUV for brevity). The coding process varies greatly depending on which type of encoder is used (e.g., JPEG or H.264), but the most common steps usually include: partitioning into macroblocks, transformation (e.g., using a DCT or wavelet), quantization and entropy encoding.