OpenCL based high-quality HEVC motion estimation on GPU

This paper presents a high quality H.265/HEVC motion estimation implementation with the cooperation of CPU and GPU. The data dependency from MVP (Motion Vector Predictor) restricts the degree of parallelism on GPU. To overcome the constraint from MVP, we propose to use an estimated MVP on GPU and the accurate MVP to refine the motion vector on CPU. GPU fully utilizes its tremendous parallel computing ability without the restriction from MVP. CPU makes up for the deviation from GPU with a small range refinement. Encoding speed benefits from the high degree of parallelism and compression performance is maintained by the CPU refinement. Experimental result shows that the speedup achieves 2.39 times and 32.77 times in the whole ×265 encoder with CPU SIMD (Single Instruction Multiple Data) on and off, respectively. On the other hand, the quality degradation is negligible with only 0.05% increase of BD-rate.

[1]  Gary J. Sullivan,et al.  Overview of the High Efficiency Video Coding (HEVC) Standard , 2012, IEEE Transactions on Circuits and Systems for Video Technology.

[2]  Sergio Bampi,et al.  Real-time block matching motion estimation onto GPGPU , 2012, 2012 19th IEEE International Conference on Image Processing.

[3]  Li Song,et al.  Paralleling variable block size motion estimation of HEVC on CPU plus GPU platform , 2013, 2013 IEEE International Conference on Multimedia and Expo Workshops (ICMEW).

[4]  Pablo Montero,et al.  Fast GPU approximation of EPZS motion estimation using branching , 2013, 2013 IEEE 15th International Workshop on Multimedia Signal Processing (MMSP).

[5]  José Luis Martínez,et al.  Reducing complexity in H.264/AVC motion estimation by using a GPU , 2011, 2011 IEEE 13th International Workshop on Multimedia Signal Processing.

[6]  Lu Fang,et al.  Novel RD-Optimized VBSME With Matching Highly Data Re-Usable Hardware Architecture , 2011, IEEE Transactions on Circuits and Systems for Video Technology.