Macroblock
A macroblock is a small square block of pixels, typically 16 by 16, that older video codecs such as H.264 and MPEG-2 use as the basic unit for compressing each frame. The encoder predicts and compresses each macroblock separately. Newer codecs such as HEVC and AV1 use larger, flexible blocks instead. Over-compressed video often shows visible blocky edges along these boundaries.
Why it matters
Macroblocks explain the blocky squares viewers see in over-compressed video, which makes a product look cheap. Understanding them helps teams decide when to raise bitrate or move to newer codecs whose flexible blocks hide these artifacts better.
How it works
- The encoder divides each frame into a grid of 16 by 16 pixel macroblocks.
- Each macroblock is predicted from nearby pixels or from a matching area in another frame.
- The difference is compressed separately for each block.
- If too much detail is discarded, block edges become visible as squares.
Why does my video look blocky?
Video looks blocky when there are too few bits to describe each block, so the encoder discards detail and block edges show. It is most common in fast motion, dark scenes and low-bitrate streams. Raising the bitrate, improving the encoding settings or using a newer codec usually reduces it. Blockiness often traces back to low bitrate on specific networks, and FastPix Video Data shows time-weighted average bitrate per view by device, ISP and CDN, so you can see who actually gets the blocky picture.
Macroblock vs coding tree unit: what is the difference?
A macroblock is the fixed 16 by 16 block used by H.264 and MPEG-2, while a coding tree unit (CTU) is HEVC's larger, flexible block of up to 64 by 64 pixels. AV1 uses superblocks of up to 128 by 128. Larger flexible blocks compress smooth areas more efficiently.
Where it's used
Sports streamers and OTT services raise bitrate or adopt codecs with flexible blocks so fast plays and dark scenes stay clean instead of breaking into visible squares.
By the numbers
- H.264 encodes video in macroblocks of 16 by 16 luma samples. (Wikipedia: Advanced Video Coding)
- HEVC coding tree units can be as large as 64 by 64 samples. (Wikipedia: High Efficiency Video Coding)
- AV1 superblocks are either 128 by 128 or 64 by 64 pixels. (Wikipedia: AV1)


