(JBE Vol. 18, No. 6, November 2013) (Special Paper) 18 6, 2013 11 (JBE Vol. 18, No. 6, November 2013) http://dx.doi.org/10.5909/jbe.2013.18.6.816 ISSN 2287-9137 (Online) ISSN 1226-7953 (Print) HEVC UHD CPU GPU a), a) CPU Parallel Processing and GPU-accelerated Processing of UHD Video Sequence using HEVC Sung-Wook Hong a) and Yung-Lyul Lee a) HEVC(High Efficiency Video Coding) ITU-T(VCEG) ISO-IEC(MPEG) JCT-VC(Joint Collaborative Team on Video Coding). H.264/AVC 50%,. CPU GPU HEVC, UHD(Ultra High Definition) UHD(3840x2144) 15fps /, CPU GPU. Abstract The latest video coding standard HEVC was developed by the joint work of JCT-VC(Joint Collaborative Team on Video Coding) from ITU-T VCEG and ISO/IEC MPEG. The HEVC standard reduces the BD-Bitrate of about 50% compared with the H.264/AVC standard. However, using the various methods for obtaining the coding gains has increased complexity problems. The proposed method reduces the complexity of HEVC by using both CPU parallel processing and GPU-accelerated processing. The experiment result for UHD(3840x2144) video sequences achieves 15fps encoding/decoding performance by applying the proposed method. Sooner or later, we expect that the H/W speedup of data transfer rates between CPU and GPU will result in reducing the encoding/decoding times much more. Keyword : HEVC, Video Compression, Parallel Processing, GPU, OpenMP a) DMS (Digital Media System Laboratory, Sejong University) Corresponding Author : (Yung-Lyul Lee) E-mail: yllee@sejong.ac.kr Tel: +82-2-3408-3753 IT (NIPA-2013- H0301-13-1006) Manuscript received September 2, 2013 Revised November 11, 2013 Accepted November 11, 2013. HEVC(High Efficiency Video Coding) ISO-IEC MPEG(Moving Picture Experts Group) ITU-T VCEG(Video Coding Experts Group), 2010
1 : HEVC UHD CPU GPU (Sung-Wook Hong et al. : CPU parallel processing and GPU-accelerated processing of UHD video sequence using HEVC) JCT-VC(Joint Collaborative Team on Video Coding) [1]. H.264/AVC 50%, [2]. (Intra Prediction), (Inter Prediction), (Transform), (Quantization) SAO(Sample Adaptive Offset), Motion Vector Merge, CU(Coding Unit). 1 HEVC., MB(Macro Block) CU(Coding Unit). 2 CU -, HEVC 64x64 LCU 3 8x8 CU. - PU(Prediction Unit) 1. HEVC Fig. 1. HEVC encoder block diagram 2. HEVC CU(Coding Unit) Fig. 2. CU(Coding Unit) structure of HEVC
(JBE Vol. 18, No. 6, November 2013) /. HEVC H.264/AVC,. HEVC 2013 1 FDIS,. / HEVC. TV,,, PC.. HEVC, GPU CPU /.. 2 UHD(Ultra High Definition) UHD / HEVC, 3 2 HEVC. 4 HEVC, 5.. UHD(Ultra High Definition) HD., 30 (HD) 4K( ) UHD 3D( ). UHD 3 HD 8 TV HD(1920x1080) 4. TV 2013 IT 85 UHD TV. UHD TV Up-scaling UHD. UHD HEVC, UHD, CPU. UHD HEVC GPU UHD.. GPU OpenMP OpenMP GPU(Graphic Processing Unit) CPU GPU Core HEVC 3. Full HD UHD Fig. 3. Sequence size comparison of Full HD and UHD
1 : HEVC UHD CPU GPU (Sung-Wook Hong et al. : CPU parallel processing and GPU-accelerated processing of UHD video sequence using HEVC). GPU GPU [5][6]. GPGPU(General Purpose GPU) GPU CPU. CPU CPU (many- core). CPU GPU GPU. GPGPU 3D GPU,. Co-Processor. 4. CPU GPU Fig. 4. The structure of the CPU and GPU 5. Fig. 5. The codec structure of the proposed method
820 방송공학회논문지 제18권 제6호, 2013년 11월 (JBE Vol. 18, No. 6, November 2013) 한 Core의 증가라는 장점 이외의 느린 메모리 접근의 문제 및 CPU와 GPU간의 메모리 상호관계의 중요성이 매우 크 다는 단점도 가지고 있다. 그림 4는 CPU와 GPU간의 메모 리 전송 및 Core의 사용에 관한 구조를 나타내며, 이와 같 이 GPU는 하나의 Core가 아닌 수십~수천 개 이상의 Core 를 사용 가능하며 이를 모두 사용한 연산이 가능하다는 장 점을 가진다. 제안하는 방법은 이와 같은 GPU의 장점을 HEVC에 적용 하였으며, 이는 HEVC에 필요한 많은 연산을 GPU에 할당 하여 CPU와 GPU의 역할을 모두 수행함으로써 전체 코덱의 속도 향상을 가져오는 방법이다. CPU와 GPU간의 메모리 전송 과정을 거치며, GPU가 적용된 HEVC 코덱의 전체 구 조는 그림 5와 같이 나타난다. 그림 5에서와 같이 CPU와 GPU의 역할을 나누어 GPU의 빠른 연산을 효과적으로 이 용하는 방법이다. 그림에서 보는바와 같이 CPU와 GPU의 역할을 나누어 각각 슬라이스 단위의 처리가 이루어진다. CPU와 GPU간의 연산을 구분하는 방법은 슬라이스단위의 병렬처리 구조와 각 프레임의 메모리 전송에 따라 구분하였 을 때, 크게 ME(Motion Estimation), 변환(Transform), 양자 화(Quantization) 등의 작업은 GPU에서 이루어지고, 스캐닝 (Scanning), CABAC 엔트로피 코딩 등의 작업은 CPU에서 이루어진다. 이 방법의 슬라이스는 그림 5와 같이 영상을 분 할하여 각각의 슬라이스 단위의 HEVC 코딩을 수행 가능한 구조이며, CPU에서 처리되는 Entropy Coding의 경우는 OpenMP를 통해 슬라이스 단위 병렬프로세싱을 따로 수행 하도록 처리 된다. CPU와 GPU는 상호 메모리 전송이외에 그림 5. 제안하는 방법의 구조 Fig. 5. The structure of the proposed method 와 GPU간의 병렬처리를 모두 수행한다. CPU 제안하는 방법은 GPU 가속처리 및 CPU의 병렬처리를 이용한 방법으로 GPU와 CPU의 활용 가능한 Core를 모두 사용하는 병렬처리 고속화 코덱이다. 즉, GPU의 사용가능 한 Core를 이용하기 위해 프레임 단위의 메모리를 GPU로 전송하고 GPU의 많은 연산 가능한 Core를 이용해 HEVC 의 주요 알고리즘 중 핵심 알고리즘이라고 할 수 있는 ME, 변환 및 양자화, MC와 같은 반복적인 계산이나 프레임단 위로 처리할 수 있는 모듈에 대한 연산을 GPU의 장점을 통해 빠르게 연산하고, CABAC과 스캐닝과 같은 순차적인 방법으로 처리해야 하는 모듈인 경우는 슬라이스 단위 병 렬처리를 통해 CPU의 스레드 방법을 통해 속도 향상을 가 지는 방법이다. 이와 같이 제안하는 방법은 UHD 영상과 같은 초고해상도 및 초고화질의 영상을 부호화 복호화 하 는데 특히 효과적으로 적용 가능하며, 향후 UHD의 영상의 서비스가 늘어남에 따라 CPU 병렬처리 및 GPU 가속처리 를 통한 코덱의 발전 가능성이 매우 기대된다.
1 : HEVC UHD CPU GPU (Sung-Wook Hong et al. : CPU parallel processing and GPU-accelerated processing of UHD video sequence using HEVC). HEVC Syntax, GPU NVIDIA CUDA, CPU OpenMP. CU(Coding Unit) 32 MV 4,, IPPP, QP 32, 3840x2144 UHD(Ultra High Definition) 50 fps 4 1. UHD CPU GPU GPU 5, / 15 (fps) [3]. UHD GPU CPU,. 1. Table 1. Test sequences Test sequence Crowd Ducks InToTree Park Condition 3840x2144 4:2:0 50 fps 500 frames 8bit, TU. 2 NVIDIA CPU GPU ( ). Original( ), Recon( ), Coefficient( ) 3 CPU GPU. 0.019. 15fps (Encoder & Decoder), 0.06~0.05., CPU GPU 0.019 0.03 30fps. GPU GPU CPU, CPU GPU.. CPU GPU, UHD GPU CPU UHD.. UHD(Ultra High Definition) 2. Table 2. Memory copy time width height yuv pixelper byte byteperframe byteper KB KBper MB bandwithd sec/frame Original 3840 2144 1.5 1 12349440 1024 1024 11.78 2441.3 0.005 Recon 3840 2144 1.5 1 12349440 1024 1024 11.78 4072.5 0.003 Coefficient 3840 2144 1.5 4 49397760 1024 1024 47.11 4072.5 0.012 70.66 0.019
(JBE Vol. 18, No. 6, November 2013) HEVC /, GPGPU(General- Purpose GPU) CPU OpenMP., UHD HEVC / CPU GPU, UHD / 15fps. CPU GPU HEVC GPU UHD. (References) [1] G. J. Sullivan, J. Ohm, H. Woo-Jin, T. Wiegand. Overview of the High Efficiency Video Coding (HEVC) Standard, Circuits and Systems for Video Technology, IEEE Transactions on, Vol 22, Issue 12, Dec, 2012 [2] T. Wiegand, G. J. Sullivan, G. Bjontegaard, and A. Luthra. Overview of the H.264/AVC Video Coding Standard., IEEE Transactions on Circuits and Systems for Video Technology, 13(7):560{576, July 2003. [3] Frank Bossen. Common test conditions and software reference congurations. Technical Report JCTVC-E700, Jan. 2011. [4] G. Bjontegaard, Calculation of Average PSNR Differences Between RD-Curves, document VCEG-M33 of ITU-T VCEG, Apr. 2001. [5] Jie Zhao and Andrew Segall. Parallel prediction unit for parallel intra cod-ing. Technical Report JCTVC-B112, Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T and ISO/IEC, July 2010. [6] D.K. Lee, S.J. Oh, "Variable Block Size Motion E stimation Implementation on Compute Unified Device Architecture(CUDA)", ICCE2013, Jan. 2013-2009 2 : ( ) - 2011 2 : ( ) - 2011 3 ~ : ( ) - : HEVC(High Efficiency Video Coding), H.264/AVC, Image compression, Image processing - 1985 2 : ( ) - 1987 2 : ( ) - 1999 2 : ( ) - 1987 1 1994 2 : R&D Digital Media Lab. - 1999 3 2001 8 : R&D Digital Media Lab. - 2001 9 : - : HEVC(High Efficiency Video Coding), Multi-view video coding, MPEG video compression, Multimedia (MPEG) systems, H.264/AVC, Image compression, Image processing, Multimedia data(a/v/system) over IP, Embeded system for A/V transport, Transcoding, Watermarking