1. Field of the Invention
The present invention relates in general to video encoding, and more specifically to a scalable rate control system for a video encoder.
2. Description of the Related Art
Video standards are continuously being improved or otherwise replaced to improve performance and quality for a variety of applications. For example, the Advanced Video Coding (AVC) standard, Part 10 of MPEG4 (Motion Picture Experts Group), otherwise known as H.264, includes advanced compression techniques that were developed to enable transmission of video signals at a lower bit rate or to enable improved video quality at a given transmission rate. The H.264 standard is used for exemplary embodiments of the present invention although it is understood that the present invention is not limited to H.264 and is applicable to other video standards. The newer standard outperforms video compression techniques of prior standards in order to support higher quality streaming video at lower bit rates and to enable internet-based video and wireless applications and the like. The standard defines the syntax of the encoded video bit stream along with a method of decoding the bit stream. Each video frame is subdivided into one or more slices and encoded at the macroblock (MB) level, where each MB is a 16×16 block of pixels. The size of each slice is arbitrary and may range between a single MB up to all of the MBs in the frame. Each frame is also subdivided according to a rate control interval, specified as a number of MBs per interval, where the rate control interval also ranges between a single MB up to all of the MBs in the frame. The slice size and rate control interval size may be, but are not necessarily, the same.
Furthermore, newer video and image codec standards are being developed to enable video systems having a wide range of computational capabilities to seamlessly process various frame rates, image resolutions, system bandwidth and bit rates in a heterogeneous environment. Scalable Video Coding (SVC), for example, is an extension of the H.264 main profile which addresses coding schemes for reliably delivery of video to diverse clients over heterogeneous networks using available system resources, particularly in scenarios where the downstream client capabilities, system resources, and network conditions are not known in advance, or dynamically changing from time to time. SVC achieves scalability by using a base- and an enhance-layer concept, where the enhanced layer is scalable from the base layer, and the rate control interval of base layer is scaled up too for spatial scalability. The base layer should be the simplest form in quality, spatial- and temporal-resolution. Whereas H.264 has relatively limited scalability, SVC provides multiple levels of scalability including temporal scalability, spatial scalability, complexity scalability and quality scalability. Temporal scalability generally refers to the number of frames per second (fps) of the video stream, such as 7.5 fps, 15 fps, 30 fps, etc. Spatial scalability refers to the resolution of each frame, such as common interface format (CIF) with 352 by 288 pixels per frame, or quarter CIF (QCIF) with 176 by 144 pixels per frame, although other spatial resolutions are contemplated, such as QVGA, VGA, SVGA, D1, HDTV, etc. Complexity scalability generally refers to the various computational capabilities and processing power of the devices processing the video information. Quality scalability is generally measured with a peak signal-to-noise (PSNR) metric defining the relative quality of a reconstructed image compared with an original image. Quality scalability is varied with the applicable bit rate, such as 64 kilobits per second (kbps), 128 kbps, 256 kbps, 512 kbps, etc.
One of the primary functional blocks within a video encoder for addressing scalability is the rate controller. It is desired to provide an efficient rate controller which is capable of generating a quality image in a heterogeneous and seamless environment in which devices with various processing capabilities demand scalable bit rates, image resolutions, and frame rates.