Efficient coordination of parallel threads of H.264/AVC decoder for performance improvement

The H.264/AVC decoder is a video codec standard that provides a high compression rate for a video. This decoder includes various algorithms to enhance the compression effect and consequently requires significant computational capability from processors to execute those algorithms. Since multi-core platforms are being widely used, research has been performed to improve the performance of the software H.264/AVC decoder by parallelizing it within multi-core platforms. However, there are many obstacles to parallelizing the existing decoder due to restrictions such as sequential execution, data subordination, and other limitations of the decoder. The parallelization of the decoder is often limited only to a subset of decoder functions. This paper analyzes such restrictions as the sequential execution and data subordination existent inside the H.264/AVC decoder and suggests a method for controlling the parallel execution of threads in order to bypass such restrictions. The experimental results show that the H.264/AVC decoder proposed parallelization technique achieves a 25% increase in speed compared with that of the existing parallelization approach.

[1]  Erik B. van der Tol,et al.  Mapping of H.264 decoding on a multiprocessor architecture , 2003, IS&T/SPIE Electronic Imaging.

[2]  Eduardo Juárez Martínez,et al.  A DSP Based H.264 Decoder for a Multi-Format IP Set-Top Box , 2008, IEEE Transactions on Consumer Electronics.

[3]  Nishihara Kosuke,et al.  Parallelization of H.264 Video Decoder for Embedded Multicore Processor , 2007 .

[4]  Kue-Hwan Sihn,et al.  Analysis and Parallelization of H.264 decoder on Cell Broadband Engine Architecture , 2007, 2007 IEEE International Symposium on Signal Processing and Information Technology.

[5]  Ajay Luthra,et al.  Overview of the H.264/AVC video coding standard , 2003, IEEE Trans. Circuits Syst. Video Technol..

[6]  Yong-Hwan Kim,et al.  Memory-efficient H.264/AVC CAVLC for fast decoding , 2006, IEEE Transactions on Consumer Electronics.

[7]  Kurt Keutzer,et al.  Efficient Parallelization of H.264 Decoding with Macro Block Level Scheduling , 2007, 2007 IEEE International Conference on Multimedia and Expo.

[8]  Klaus Schöffmann,et al.  An Evaluation of Parallelization Concepts for Baseline-Profile Compliant H.264/AVC Decoders , 2007, Euro-Par.

[9]  Gary J. Sullivan,et al.  Rate-constrained coder control and comparison of video coding standards , 2003, IEEE Trans. Circuits Syst. Video Technol..

[10]  Liu Jilin,et al.  H.264/AVC baseline profile decoder optimization on independent platform , 2005, Proceedings. 2005 International Conference on Wireless Communications, Networking and Mobile Computing, 2005..

[11]  Ben H. H. Juurlink,et al.  Parallel H.264 Decoding on an Embedded Multicore Processor , 2009, HiPEAC.

[12]  King Ngi Ngan,et al.  Implementation of H.264 on Mobile Device , 2007, IEEE Transactions on Consumer Electronics.

[13]  Eduardo Juárez Martínez,et al.  An H.264 video decoder based on a latest generation DSP , 2009, IEEE Transactions on Consumer Electronics.

[14]  Wonyong Sung,et al.  H.264 decoder optimization exploiting SIMD instructions , 2004, The 2004 IEEE Asia-Pacific Conference on Circuits and Systems, 2004. Proceedings..

[15]  D. Marpe,et al.  Video coding with H.264/AVC: tools, performance, and complexity , 2004, IEEE Circuits and Systems Magazine.

[16]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .