Macroblock
Encyclopedia
Macroblock is an image compression
component and technique based on discrete cosine transform
used on still images and video frames. Macroblocks are usually composed of two or more blocks
of pixels. In the JPEG
standard macroblocks are called MCU blocks.
The size of a block depends on the codec
and is usually a multiple of 4. In MPEG2 and other early codecs the size is fixed at blocks of 8x8 pixels. In more modern codecs such as h.263 and h.264 the overarching macroblock size is fixed at 16x16 pixels, but this is broken down into smaller blocks or partitions which are either 4, 8, 12 or 16 pixels by 4, 8, 12 or 16 pixels. (Combinations of these smaller partitions must combine to form 16x16 macroblocks.)
Sizes of macroblocks are usually expressed in the number of luminance pixels they contain. Color information is usually encoded at a lower resolution than the luminance information. For example, the colour information of an 8x8 macroblock in a 4:1:1 colour space will be encoded into a Y Cb Cr format. The Luminance will be encoded at an 8x8 pixel size and the difference-red and difference-blue information each at a size of 2x2. In the decode process these will be stretched out to cover the 8x8 space..
Each macroblock contains 4 Y (luminance) block, 1 Cb (blue color difference) block, 1 Cr (red color difference) block (4:2:0). (It also could be represented by 4:2:2 or 4:4:4 YCbCr format). Macroblocks can be subdivided further into smaller blocks, called partitions. H.264, for example, supports block sizes as small as 4x4.
Advanced decoders hide these types of errors with a technique called error concealment. Consumer equipment often calls this technique 'MPEG Noise Reduction'.
Image compression
The objective of image compression is to reduce irrelevance and redundancy of the image data in order to be able to store or transmit data in an efficient form.- Lossy and lossless compression :...
component and technique based on discrete cosine transform
Discrete cosine transform
A discrete cosine transform expresses a sequence of finitely many data points in terms of a sum of cosine functions oscillating at different frequencies. DCTs are important to numerous applications in science and engineering, from lossy compression of audio and images A discrete cosine transform...
used on still images and video frames. Macroblocks are usually composed of two or more blocks
Block (data storage)
In computing , a block is a sequence of bytes or bits, having a nominal length . Data thus structured are said to be blocked. The process of putting data into blocks is called blocking. Blocking is used to facilitate the handling of the data-stream by the computer program receiving the data...
of pixels. In the JPEG
JPEG
In computing, JPEG . The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and image quality. JPEG typically achieves 10:1 compression with little perceptible loss in image quality....
standard macroblocks are called MCU blocks.
The size of a block depends on the codec
Codec
A codec is a device or computer program capable of encoding or decoding a digital data stream or signal. The word codec is a portmanteau of "compressor-decompressor" or, more commonly, "coder-decoder"...
and is usually a multiple of 4. In MPEG2 and other early codecs the size is fixed at blocks of 8x8 pixels. In more modern codecs such as h.263 and h.264 the overarching macroblock size is fixed at 16x16 pixels, but this is broken down into smaller blocks or partitions which are either 4, 8, 12 or 16 pixels by 4, 8, 12 or 16 pixels. (Combinations of these smaller partitions must combine to form 16x16 macroblocks.)
Sizes of macroblocks are usually expressed in the number of luminance pixels they contain. Color information is usually encoded at a lower resolution than the luminance information. For example, the colour information of an 8x8 macroblock in a 4:1:1 colour space will be encoded into a Y Cb Cr format. The Luminance will be encoded at an 8x8 pixel size and the difference-red and difference-blue information each at a size of 2x2. In the decode process these will be stretched out to cover the 8x8 space..
Each macroblock contains 4 Y (luminance) block, 1 Cb (blue color difference) block, 1 Cr (red color difference) block (4:2:0). (It also could be represented by 4:2:2 or 4:4:4 YCbCr format). Macroblocks can be subdivided further into smaller blocks, called partitions. H.264, for example, supports block sizes as small as 4x4.
Macroblock coding
+------+------+-------+--------+-----+----+----+--------+
| ADDR | TYPE | QUANT | VECTOR | CBP | b0 | b1 | ... B5 |
+------+------+-------+--------+-----+----+----+--------+
- ADDR .... address of block in image
- TYPE .... identifies type of macroblock (intra-frameIntra-frameIntra-frame coding is used in video coding . It is part of group of pictures with inter frames.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...
, inter frameInter frameAn inter frame is a frame in a video compression stream which is expressed in terms of one or more neighboring frames. The "inter" part of the term refers to the use of Inter frame prediction...
, bi-directional inter frame) - QUANT ... quantization value to vary quantization
- VECTOR... motion vectorMotion vectorIn video compression, a motion vector is the key element in the motion estimation process. It is used to represent a macroblock in a picture based on the position of this macroblock in another picture, called the reference picture....
- CBP...... Coded Block Pattern, some blocks in macroblock match well, some match poorly - this is bit mask indicating which one is present.
- the blocks (4 Y, 1 Cr, 1 Cb)
Macroblocking
This is a non-technical term, used when macroblocks are either missing and show up as video errors, or when bandwidth is not enough to encode fine detail. Square areas of the picture do not show the correct portion of the image. Instead they either show a single color block, or a low-resolution block with noticeable edges. This effect is also referred to as tiling, mosaicing, pixelating, quilting or checkerboarding.Advanced decoders hide these types of errors with a technique called error concealment. Consumer equipment often calls this technique 'MPEG Noise Reduction'.
See also
- H.261H.261H.261 is a ITU-T video coding standard, ratified in November 1988. It is the first member of the H.26x family of video coding standards in the domain of the ITU-T Video Coding Experts Group , and was the first video codec that was useful in practical terms.H.261 was originally designed for...
, H.263H.263H.263 is a video compression standard originally designed as a low-bitrate compressed format for videoconferencing. It was developed by the ITU-T Video Coding Experts Group in a project ending in 1995/1996 as one member of the H.26x family of video coding standards in the domain of the ITU-T.H.263...
and H.264 - Video compression picture types
- Deblocking filter (video)Deblocking filter (video)A deblocking filter is a video filter applied to blocks in decoded video to improve visual quality and prediction performance by smoothing the sharp edges which can form between macroblocks when block coding techniques are used...
- PixelationPixelationIn computer graphics, pixelation is an effect caused by displaying a bitmap or a section of a bitmap at such a large size that individual pixels, small single-colored square display elements that comprise the bitmap, are visible to the eye...