A "sum of absolute differences" benchmark. This benchmark is based on the full-pixel motion estimation algorithm found in the JM reference H.264 video encoder. Motion estimation searches for blocks in one image that approximately match blocks in another image. This benchmark computes SADs for pairs of blocks, where an SAD is one metric for how closely two images match. There are three kernels. One kernel computes SADs for 4-by-4 blocks. The next kernel consumes the first kernel's results to compute SADs for larger blocks, up to 8-by-8. The last kernel computes SADs for blocks up to 16-by-16. Each kernel uses the previous kernel's output.