Abstract
The recent video compression standard, HEVC (high efficiency video coding), will most likely be used in various applications in the near future. However, the encoding process is far too slow for real-time applications. At the same time, computing capabilities of GPUs (graphics processing units) have become more powerful in these days. In this paper, we have proposed a GPU-based parallel motion estimation (ME) algorithm to enhance the performance of an HEVC encoder. A frame is partitioned into two subframes for pipelined execution to improve GPU utilization. The flow chart is redetermined to solve data hazards in the pipelined execution. Two new methods are introduced in the proposed ME: decision of a representative search center position (RSCP) and warp-based concurrent parallel reduction (WCPR). A RSCP employs motion vectors of a co-located CTU in a previously encoded frame to solve a dependency problem in parallel computation with negligible coding loss. WCPR concurrently executes several parallel reduction operations, which increases the thread utilization from 20 to 89 % without any thread synchronization. The proposed encoder can make the portion of ME in the encoder negligible with 2.2 % bitrate increase against the HEVC test model (HM) encoder. In terms of ME, the proposed ME is 130.7 times faster than that of the HM encoder.
Similar content being viewed by others
References
Wiegand, T., Sullivan, G.J., Bjontegaard, G., Luthra, A.: Overview of the H.264/AVC video coding standard. IEEE Trans. Circuits Syst. Video Technol. 13(7), 560–576 (2003)
Bross, B., Han, W.-J., Ohm, J.-R., Sullivan, G.J., Wang, Y.-K., Wiegand, T.: High Efficiency Video Coding (HEVC) Text Specification Draft 10. Doc. JCTVC-L1003, Geneva (2013)
Zhu, S., Ma, K.-K.: A new diamond search algorithm for fast block-matching motion estimation. IEEE Trans. Image Process. 9(2), 287–290 (2000)
Jing, X., Chau, L.-P.: An efficient three-step search algorithm for block motion estimation. IEEE Trans. Multimed. 6(3), 435–438 (2004)
NVIDIA: CUDA C Programming Guide. NVIDIA Corp., Santa Clara (2014)
Shen, G., Gao, G.-P., Li, S., Shum, H.-Y., Zhang, Y.-Q.: Accelerate video decoding with generic GPU. IEEE Trans. Circuits Syst. Video Technol. 15(5), 685–693 (2005)
Cheung, N.-M., Au, O.C., Kung, M.-C., Wong, P.H.W., Liu, C.H.: Highly parallel rate-distortion optimized intra-mode decision on multicore graphics processors. IEEE Trans. Circuits Syst. Video Technol. 19(11), 1692–1703 (2009)
Pieters, B., Hollemeersch, C.-F.J., De Cock, J., Lambert, P., De Neve, W., Van de Walle, R.: Parallel deblocking filtering in MPEG-4 AVC/H.264 on massively parallel architectures. IEEE Trans. Circuits Syst. Video Technol. 21(1), 96–100 (2011)
Chen, W.-N., Hang, H.-M.: H.264/AVC motion estimation implementation on Compute Unified Device Architecture (CUDA). In: Proceedings of the IEEE International Conference on Multimedia and Expo (ICME), pp. 697–700 (2008)
Jing, Z., Liangbao, J., Xuehong, C.: Implementation of parallel full search algorithm for motion estimation on multi-core processors. In: Proceedings of the International Conference on Next Generation Information Technology (ICNIT), pp. 31–35 (2011)
Lee, D.-K., Oh, S.-J.: Variable block size motion estimation implementation on compute unified device architecture (CUDA). In: Proceedings of the IEEE International Conference Consumer Electronics, pp. 635–636 (2013)
Rodriguez-Sanchez, R., Martinez, J.L., Fernandez-Escribano, G., Claver, J.M., Sanchez, J.L.: Reducing complexity in H.264/AVC motion estimation by using a GPU. In: Proceedings of the IEEE International Workshop on Multimedia Signal Processing (MMSP), pp. 1–6 (2011)
Ko, Y.S., Yi, Y.M., Ha, S.H.: An efficient parallelization technique for × 264 encoder on heterogeneous platforms consisting of CPUs and GPUs. J. Real-Time Image Proc. 9(1), 5–18 (2013)
Monteiro, E., Vizzotto, B., Diniz, C., Maule, M., Zatt, B., Bampi, S.: Parallelization of full search motion estimation algorithm for parallel and distributed platforms. Int. J. Parallel Prog. 42(2), 239–264 (2012)
Radicke, S., Hahn, J., Grecos, C., Wang, Q.: Highly-parallel HEVC motion estimation with CUDA. In: Proceedings of the IEEE European Workshop on Visual Information Processing (EUVIP), pp. 148–153 (2013)
Wang, X.-W., Song, L., Chen, M., Yang, J.-J.: Paralleling variable block size motion estimation of HEVC on multicore CPU plus GPU platform. In: Proceedings of the IEEE International Conference Image Process. (ICIP), pp. 1836–1839 (2013)
Radicke, S., Hahn, J., Grecos, C., Wang, Q.: A highly-parallel approach on motion estimation for high efficiency video coding (HEVC). In: Proceedings of the IEEE International Conference Consumer Electronics (ICCE), pp. 187–188 (2014)
Bossen, F.: Common Test Conditions and Software Reference Configurations. Doc. JCTVC-L1100, Geneva (2013)
Bjontegaard, G.: Calculation of Average PSNR Differences Between RD-Curves. Doc. VCEG-M33, Austin (2011)
Farber, R.: CUDA Application Design and Development, pp. 109–131. Morgan Kaufmann, Waltham (2011)
Kim, S.M., Lee, D.K., Ahn, Y.J., Hwang, T.J., Sim, D.G., Oh, S.-J.: DCT-based interpolation filtering for HEVC on graphics processing units. In: Proceedings of the International Technical Conference on Circuits/Systems, Computers and Communications (ITC-CSCC), pp. 155–158 (2013)
Harris, M.: Optimizing parallel reduction in CUDA. NVIDIA Developer Technology (2007). http://developer.download.nvidia.com/compute/cuda/1.1-Beta/x86_websweb/projects/reduction/doc/reduction.pdf
Acknowledgments
This work was partly supported by Institute for Information and communications Technology Promotion (IITP) Grant funded by the Korea government (MSIP) (R0101-15-293, Development of Object-based Knowledge Convergence Service Platform using Image Recognition in Broadcasting Contents) and the Research Grant of Kwangwoon University in 2013.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Rights and permissions
About this article
Cite this article
Lee, D., Sim, D., Cho, K. et al. Fast motion estimation for HEVC on graphics processing unit (GPU). J Real-Time Image Proc 12, 549–562 (2016). https://doi.org/10.1007/s11554-015-0522-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11554-015-0522-6