This project seeks to implement H.264 (the standard x264 is based on) to run on CUDA. Specifically we attempt to write the motion estimation module in CUDA.
Motion estimation is currently the most computationally intensive portion of the H.264 encoding process. Previous attempts to parallelize this algorithm in CUDA showed sizeable speedups but sacrificed quality by ignoring the motion vector prediction (MVp). We demonstrate the viability of a hierarchical (pyramid) motion estimation algorithm in CUDA. This solution addresses the MVp problem while still taking advantage of the CUDA framework.