Author :
Zheng, Weiguo ; Ahmad, Ishfaq ; Liou, Ming L.
Author_Institution :
Multimedia Technol. Res. Center, HKUST, Hong Kong, China
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
Keywords :
code standards; data compression; data structures; digital signal processing chips; discrete cosine transforms; microcomputer applications; parallel processing; real-time systems; telecommunication standards; transform coding; video coding; 800 MHz; CIF resolution video; DCT; H.263 video standard; Intel MMX technology; MPEG-2 video standard; PC; Pentium III; SIMD; all-zero quantized b locks detection; computation speed; data structures; efficient encoding algorithms; general-purpose processors; machine architecture; optimization; personal computer; picture quality; real-time video encoder; single instruction stream multiple data stream; single-processor PC; software based MPEG-4 video encoder; Algorithm design and analysis; Computer architecture; Data structures; Design optimization; Encoding; MPEG 4 Standard; Software algorithms; Software performance; Software standards; Streaming media;