Real-time software based MPEG-4 video encoder
Weiguo Zheng,Ahmad, I.,Liou, M.L.
DOI: https://doi.org/10.1109/MPEG.2001.996451
2001-01-01
Abstract:Rapid improvements in general-purpose processors are making software-based video encoding solutions increasingly feasible. Software encoders for H.263 and MPEG-2 video standards are well documented, reporting close to real-time performance. However, MPEG-4 video, due to its higher complexity, requires more computational power, making its real-time encoding speed rather infeasible. Design of a fully standard-compliant MPEG-4 encoder with real-time speed on a PC entails optimizations at all levels. This includes designing efficient encoding algorithms, software implementation with efficient data structures, and enhancing computation speed by all possible methods such as taking advantage of the machine architecture. We report a software-based real-time MPEG-4 video encoder on a single-processor PC, without any frame skipping, profile simplifying tricks, or quality loss compromise. The encoder is a quintessence of a number of novel algorithms. Specifically, we have designed a fast motion estimation algorithm. We have also designed an algorithm for the detection of all-zero quantized blocks, which reduces the complexity of the DCT and quantization. To enhance the computation speed, we harness Intel's MMX technology to implement these algorithms in an SIMD (single instruction stream, multiple data stream) fashion within the same processor. On the 800 MHz Pentium III, our encoder yields up to 70 frames per second for CIF resolution video, with the similar picture quality as the reference VM software