The demand for digital video products continues to increase. Some examples of applications for digital video include video communication, security and surveillance, industrial automation, and entertainment (e.g., DV, HDTV, satellite TV, set-top boxes, Internet video streaming, digital cameras, cellular telephones, video jukeboxes, high-end displays and personal video recorders). Further, video applications are becoming increasingly mobile as a result of higher computation power in handsets, advances in battery technology, and high-speed wireless connectivity.
Video compression is an essential enabler for digital video products. Compression-decompression (CODEC) algorithms enable storage and transmission of digital video. Codecs may be, for example, industry standards such as MPEG-2, MPEG-4, H.264/AVC, etc. and the standard currently under development, HEVC. At the core of all of these standards is the hybrid video coding technique of block motion compensation (prediction) plus transform coding of prediction error. Block motion compensation is used to remove temporal redundancy between successive pictures (frames or fields) by prediction from prior pictures, whereas transform coding is used to remove spatial redundancy within each block.
In many digital video products (e.g., a digital still camera, a digital video camera, a cellular telephone, etc.), raw video data is captured by a sensor and fed into a preview engine for processing. After processing, the resulting video sequence is stored in an external (i.e., off-chip) memory. A video encoder then fetches the video sequence from the external memory to encode it. In addition, during encoding, the video encoder both encodes a picture and stores a decoded copy of the picture in the external memory for use in prediction of a subsequent picture. The video encoder then fetches the decoded copy from the external memory when needed to perform prediction. Thus, the video encoder is fetching both pictures to be encoded and prior pictures from external memory to perform the encoding, and storing prior pictures in the external memory.
In a similar fashion, a video decoder both decodes an encoded picture and stores a decoded copy of the picture in external memory for use in decoding of a subsequent encoded picture. The video decoder then fetches the decoded copy from the external memory to perform the decoding. Thus, the video decoder is fetching both pictures to be decoded and prior decoded pictures from external memory to perform the decoding, and storing prior decoded pictures in external memory.
The real-time video data transfer to external memory and to and from external memory to the video encoder or video decoder requires a lot of memory bandwidth, especially if the video resolution is D1 (720×480) or higher. However, memory bandwidth is limited in many digital video products due to both cost and power constraints. Accordingly, reducing memory bandwidth requirements for processing video data is desirable.