Real-Time H.264 Encoding by Thread-Level Parallelism: Gains and Pitfalls

G. Amit and A. Pinhas (Israel)


Video compression, H.264, multithreading, software parallelization


Real-time encoding of video streams with H.264 coding standard is a challenging task for current personal computers. In this study, thread-level parallelism was applied to an optimized H.264 encoder, achieving real time encoding of high-definition video sequences on a quad-processor machine. The multithreaded encoder combined data decomposition at the macroblcok level with functional decomposition of serial tasks at the frame level. The resulting performance speedup was up to 3.6x on four physical processors. Analysis of the software and hardware factors that limit the speedup of the encoder indicated that the most dominant factors are miss rates of L2/L3 data caches, inter-thread synchronization overhead and the remaining sequential portions of the code. Each of these factors constituted about one third of the overall degradation from the theoretical speedup of 4x. It is concluded that hardware support of multithreading, along with optimized multithreaded software algorithms and data structures lay the foundation for significant performance enhancement of computationally-heavy media applications.

Important Links:

Go Back