A macroblock is the fundamental coding unit of H.264 and the earlier MPEG codecs (MPEG-1, MPEG-2, MPEG-4 Part 2). Each frame is divided into a regular grid of macroblocks always 16×16 pixels in size, and the encoder processes each macroblock as a single decision unit: pick a prediction mode for it, transform its residual, quantize, entropy-code, move to the next. The macroblock is the H.264 era's answer to "what's the smallest piece of video that gets handled as one thing".

The fixed 16×16 size made H.264 efficient to implement in hardware and software, and it worked well for SD and early HD content. But it became a limitation as resolutions grew. A 4K frame has ~32,000 macroblocks; a single 16×16 block in the middle of a clear sky carries almost no information but still has its own header overhead, while a 16×16 block over an eye doesn't have enough granularity to capture detail efficiently. The single fixed size made trade-offs in both directions.

The successor codecs solved this by abandoning the macroblock. HEVC introduced ctu (Coding Tree Units) up to 64×64 that the encoder can split recursively where detail demands it. AV1 has 128×128 superblocks with the same recursive partitioning idea, plus rectangular splits. For a product team, the macroblock is mostly historical context for understanding why each codec generation got more efficient — moving away from one-size-fits-all blocks toward content-adaptive partitioning is one of the biggest reasons HEVC and AV1 beat H.264 on the same bitrate.