Complexity management for video encoders.
MetadataShow full item record
Software implementation of block-based video coding standards has been used in a wide range of applications. In many cases, such as real-time multimedia systems or power-constrained systems, the coding performance of software-only video encoders and decoders is limited by computational complexity. This thesis presents research work to develop techniques to manage computational complexity of video encoders. These techniques aim to provide significant complexity saving as well as adaptively controlling the computational complexity. This thesis first investigates experimentally the most computationally intensive functions in a video encoder. Based on the results of profile tests, several functions are selected as candidates, on which complexity reduction algorithms will be performed. These functions include discrete cosine transform and related functions as well as motion estimation. Adaptive complexity-reduction algorithms are proposed for computationally expensive functions: discrete cosine transform and motion estimation functions respectively. It is shown that these algorithms can flexibly control the computational complexity of each function with negligible loss of video quality. The inherent characteristics of coded macroblocks are investigated through experimental tests and they are categorized into "skipped" and" unskipped" macroblocks based on two parameters. An innovative algorithm is developed to reduce the computational complexity by predicting "skipped" macroblock prior to encoding and not carrying out the coding process on these macroblocks. The approaches described in this thesis can not only achieve adaptive control of the computational complexity of a video encoder, but also can manage the trade-off between complexity and distortion. These proposed algorithms are evaluated in terms of complexity reduction performance, rate-distortion performance and subjective and objective visual quality by experimental testing.The advantages and disadvantages of each algorithm are discussed.