Font Size: a A A

Design And Implementation Of HEVC Parallel Encoder Based On CPU+GPU Platform

Posted on:2019-06-20Degree:MasterType:Thesis
Country:ChinaCandidate:J X DongFull Text:PDF
GTID:2428330596961905Subject:Information and Communication Engineering
Abstract/Summary:PDF Full Text Request
With the continuous development of video technology,people's demand for the resolution and definition of video images is getting higher.The latest generation video coding standard HEVC(High Efficiency Video Coding)was officially released in January 2013.Compared with the last generation video coding standard H.264/AVC,HEVC can obtain 50% bit rate reduction with the same video quality.However,the computational complexity of the encoding process will increase significantly,which brings great challenges to real-time encoding.Therefore,designing a efficient and fast coding method is of great significance for the development of video technology.In recent years,CPU is growing rapidly and applied to high-performance computing due to its multi-core performance.Considering the high computational complexity of HEVC,real-time encoding cannot be achieved with only one ordinary CPU.In this paper,we combine the CPU with the GPU and design efficient parallel algorithms for each part of HEVC based on CPU+GPU heterogeneous platform,which significantly improves the computational efficiency of the encoder.HEVC includes intra prediction,inter prediction,transform,quantization,rate distortion optimization,inverse quantization,inverse transform,filtering(deblocking filtering and sample adaptive offset filtering),image reconstruction and entropy coding.HEVC adopts the rate-distortion optimization technique as its selection criterion to determine the optimal coding parameters.In addition to entropy coding,we can design efficient parallel processing methods by dividing the involved data effectively in the other parts and significantly improve the computational efficiency of these parts by parallel computing with GPU multi-threading technology.CABAC(Context-based Adaptive Binary Arithmetic Coding)is adopted to process the entropy coding in HEVC.CABAC is processed serially in the order of the respective data and we can't design parallel methods by data partitioning like other links.Therefore,this paper designs an algorithm which combines CPU dual-threading with GPU multi-threading to implement HEVC encoder.In this method,the final entropy coding of the whole frame is processed in parallel with all other parts,such as prediction,transformation,quantization,etc,which saves the computing time of the final entropy coding,and significantly improves the computational efficiency of the whole HEVC encoder to achieve the purpose of real-time coding.Since the video usually includes the content of shot change,combining shot change detection with the video encoding can adaptively select the size of the group of pictures(GOP)to improve the encoding quality of the video.In this paper,the intermediate SAD(Sum of Absolute Difference)of the encoding process is used to detect the video shot change.The quality and efficiency of video coding are further improved without extra computation,.Experimental results show that the proposed algorithm can achieve an overall acceleration ratio of about 28,and the frame rate is more than 25 fps when encoding high definition(HD)video sequences with CPU Intel?Core? i7-7700 and GPU GTX1080,which can achieve the purpose of real-time encoding.
Keywords/Search Tags:HEVC Encoder, Parallel Algorithm, Multithreading, Shot Change Detection
PDF Full Text Request
Related items