Research of Parallelism for Video Codec Algorithm
|Course||Computer System Architecture|
|Keywords||H.264 Multi-thread parallel coding X264 Slice-level Inter-frame Macroblock-level Intra-frame Macroblock-level speedup|
H.264 developed by the JVT achieves up to 50% improvement in coding efficiency compared with previous standards, but the computational complexity is also increased more than 4 times, because many new features are appended, including quarter-pixel motion estimation with variable block sizes and multiple reference frames, intra-prediction, integer transformation based on discrete cosine transform, Context-Based Adaptive Binary Arithmetic Coding(CABAC), Context-Based Adaptive Variable Length Coding(CAVLC) and in-loop de-blocking filter and so on. Encoding speed using a single processor can not meet real-time transmission of video and large- scale sharing requirements. Therefore, for real-time H.264 video application, analyzing the parallel structure and researching the parallel algorithm are necessary.The paper’s purpose is to achieve optimizing for X264 multi-thread parallel coding, accelerate the encoding speed and enhance the encoder’s real-time ability. Taking X264 coder as researching object, this paper focuses on the Slice-level and Inter-Frame Macroblock-level multi-thread parallel coding algorithm. Because of the need for parallel multi-frame image coding, Inter-Frame Macroblock-level multi-thread parallel coding algorithm needs to store the multi-frame image coding data of the reference frame in the system, so it takes a lot of memory. Meanwhile, the experimental results illustrate that the Inter-Frame Macroblock-level multi-thread parallel coding algorithm possesses higher encoding speedup than Slice-level while the coding rate is relatively constant. Considering the characteristic of the two algorithms, the paper proposes to research the multi-granularity parallel coding algorithm combining with the two methods.In addition, this paper studies the X264 encoder on the basic of a thorough knowledge about H.264 standard, in the context of the data dependencies of related macroblocks which is mainly analyzed, considering the characteristic of parallel coding algorithm based on Macroblock-level of Inter-Frame, the paper proposes a new multi-thread parallel coding algorithm. On the basis of the original multi-thread parallel algorithm of inter-frame Macroblock-level and following the spatial correlation conditions, the algorithm which creates a thread for each row in I frame, implements the parallel encoding of inter-frame and intra-frame Macroblock-level and achieves the effect of multi-granularity parallel. The experimental results illustrate that the proposed algorithm improves the encoding speedup while the video sequence are effectively encoded and the PSNR holds basically unchanged, and the real-time encoding is enhanced.