Software parallel CAVLC encoder based on stream processing
Computer School, National University of Defense Technology, Changsha, China
7th IEEE Workshop on Embedded Systems for Real-Time Multimedia (ESTIMedia) 2009, Oct, 15, pp126-133
@conference{ren2009software,
title={Software parallel CAVLC encoder based on stream processing},
author={Ren, J. and He, Y. and Wu, W. and Wen, M. and Wu, N. and Zhang, C.},
booktitle={Embedded Systems for Real-Time Multimedia, 2009. ESTIMedia 2009. IEEE/ACM/IFIP 7th Workshop on},
pages={126–133},
year={2009},
organization={IEEE}
}
Real-time encoding of high-definition H.264 video is a challenge to current embedded programmable processors. Emerging stream processing methods supported by most GPUs and programmable processors provide a powerful mechanism to achieve surprising high performance in media/signal processing, which bring an opportunity to deal with this challenge. However, traditional serial CAVLC has highly input-dependent execution and precedence constraints, which becomes a bottleneck to implement H.264 encoder efficiently. This paper presents a software parallel CAVLC encoder based on stream processing. Many approaches are explored to solve the restrictions of parallelizing CAVLC caused by data dependency and branch/loop instructions. Experiment results show that our parallel CAVLC encoder on two stream processing platforms of STORM and GPU achieves 3.03x and 2.08x speedup over the original serial CAVLC respectively. Finally, the proposed parallel CAVLC encoder coupled with stream processor enables a real-time encoding of 1080p H.264 video.
February 2, 2011 by hgpu