Computational Complexity Management of a Real-Time H.264/AVC Encoder
The H.264 video coding standard supports efficient coding of video at the expense of high computational complexity. This work addresses the problem of maintaining acceptable video coding performance in a computation-constrained application scenario. A complexity management approach is proposed for an H.264 encoder running in a processor/power-constrained environment. We hypothesize that, in a power-constrained application such as mobile video telephony, good perceptual quality requires a balance between a high frame rate and acceptable image quality. Therefore, the objective of the complexity management approach is to maintain a smooth video frame rate whilst ensuring that the frame quality is not degraded unacceptably. A frame-level algorithm calculates a target coding time for each frame and drops frames when necessary to maintain acceptable image quality. A per-frame algorithm controls the coding complexity of each frame in order to achieve the target coding time. The performance of the approach is evaluated by carrying out subjective tests and comparing the managed complexity encoder with a reference encoder in a computation-constrained scenario. Subjective results show that the managed complexity encoder consistently achieves superior perceptual video quality ratings compared to the reference encoder.