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.[1].
Each macroblock contains 4 Y (luminance) block, 1 Cb (blue color difference) block, 1 Cr (red color difference) block (4:2:0).[1] (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.
Contents |
+------+------+-------+--------+-----+----+----+--------+ | ADDR | TYPE | QUANT | VECTOR | CBP | b0 | b1 | ... B5 | +------+------+-------+--------+-----+----+----+--------+
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[2], 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'.[3]