Patent ID: 8548051

Claim:
A computer system comprising a processor and memory that stores instructions for causing the computer system to operate as a video decoder adapted to: receive encoded video in a data stream, wherein the encoded video includes an entropy coded macroblock type for a current macroblock of a current frame; decode video using the encoded video, wherein the video decoder is further adapted to: decode the entropy coded macroblock type of the current macroblock to determine its macroblock type from among plural macroblock types possible for the current macroblock, the plural macroblock types including: an intra type that indicates the current macroblock is to be decoded using intra decoding; a first motion-compensated prediction type that indicates motion compensation for the current macroblock is to be performed relative to a first reference frame in a first buffer, wherein the first buffer is adapted to store as the first reference frame a reconstructed version of a previous frame that immediately precedes the current frame; and a second motion-compensated prediction type that indicates motion compensation for the current macroblock is to be performed relative to a second reference frame in a second buffer, wherein the second buffer is adapted to store as the second reference frame a reconstructed version of a previous frame that precedes the first reference frame; and decode the current macroblock according to the macroblock type of the current macroblock, wherein the video decoder is further adapted to: when the macroblock type for the current macroblock is the intra type, decode the current macroblock in an intra decoding mode; when the macroblock type for the current macroblock is the first motion-compensated prediction type, decode the current macroblock using motion compensation relative to the first reference frame in the first buffer, wherein the motion compensation for the first motion-compensated prediction type uses at most one motion vector and one reference frame per block; and when the macroblock type for the current macroblock is the second motion-compensated prediction type, decode the current macroblock using motion compensation relative to the second reference frame in the second buffer, wherein the motion compensation for the second motion-compensated prediction type uses at most one motion vector and one reference frame per block.