Real-time software based MPEG-4 video encoder

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.

[1]  Jo Yew Tham,et al.  A novel unrestricted center-biased diamond search algorithm for block motion estimation , 1998, IEEE Trans. Circuits Syst. Video Technol..

[2]  Frederic Dufaux,et al.  Motion estimation techniques for digital TV: a review and a new contribution , 1995, Proc. IEEE.

[3]  Ming-Ting Sun,et al.  Modeling DCT coefficients for fast video encoding , 1999, IEEE Trans. Circuits Syst. Video Technol..

[4]  Y. Arai,et al.  A Fast DCT-SQ Scheme for Images , 1988 .

[5]  Bing Zeng,et al.  A new three-step search algorithm for block motion estimation , 1994, IEEE Trans. Circuits Syst. Video Technol..