Coding of motion vector information
First Claim
1. One or more tangible computer-readable storage media, wherein the one or more tangible computer-readable storage media are one or more of volatile memory, non-volatile memory, optical storage media, and magnetic storage media, storing computer-executable instructions for causing a computer system programmed thereby to perform a method of reconstructing one or more video images in a video sequence, the method comprising:
- receiving encoded data from a bit stream, wherein the encoded data includes entropy coded data for a macroblock of a video image, the entropy coded data for the macroblock being signaled in the bit stream as part of macroblock syntax at macroblock level, and the entropy coded data for the macroblock representing;
(a) a terminal symbol indicating whether transform coefficient data for the macroblock is included in the bit stream;
(b) intra/inter decision information indicating whether the macroblock is intra-coded or inter-coded, wherein the macroblock is inter-coded;
(c) information indicating which of multiple reference frames is to be used in motion compensation for the inter-coded macroblock; and
(d) motion information for the inter-coded macroblock; and
decoding the macroblock using the encoded data from the bit stream, wherein the decoding the macroblock comprises;
entropy decoding the entropy coded data for the macroblock to determine the terminal symbol, the intra/inter decision information, the infoimation indicating which of the multiple references frames is to be used in motion compensation for the macroblock, and the motion information for the macroblock;
determining whether transform coefficient data for the macroblock is included in the bit stream based at least in part upon the terminal symbol;
reconstructing a motion vector for the macroblock using the motion information for the macroblock; and
reconstructing the macroblock, including performing motion compensation for the macroblock using the motion vector and the indicated one of the multiple reference frames.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques and tools for encoding and decoding motion vector information for video images are described. For example, a video encoder yields an extended motion vector code by jointly coding, for a set of pixels, a switch code, motion vector information, and a terminal symbol indicating whether subsequent data is encoded for the set of pixels. In another aspect, an encoder/decoder selects motion vector predictors for macroblocks. In another aspect, a video encoder/decoder uses hybrid motion vector prediction. In another aspect, a video encoder/decoder signals a motion vector mode for a predicted image. In another aspect, a video decoder decodes a set of pixels by receiving an extended motion vector code, which reflects joint encoding of motion information together with intra/inter-coding information and a terminal symbol. The decoder determines whether subsequent data exists for the set of pixels based on e.g., the terminal symbol.
-
Citations
20 Claims
-
1. One or more tangible computer-readable storage media, wherein the one or more tangible computer-readable storage media are one or more of volatile memory, non-volatile memory, optical storage media, and magnetic storage media, storing computer-executable instructions for causing a computer system programmed thereby to perform a method of reconstructing one or more video images in a video sequence, the method comprising:
-
receiving encoded data from a bit stream, wherein the encoded data includes entropy coded data for a macroblock of a video image, the entropy coded data for the macroblock being signaled in the bit stream as part of macroblock syntax at macroblock level, and the entropy coded data for the macroblock representing; (a) a terminal symbol indicating whether transform coefficient data for the macroblock is included in the bit stream; (b) intra/inter decision information indicating whether the macroblock is intra-coded or inter-coded, wherein the macroblock is inter-coded; (c) information indicating which of multiple reference frames is to be used in motion compensation for the inter-coded macroblock; and (d) motion information for the inter-coded macroblock; and decoding the macroblock using the encoded data from the bit stream, wherein the decoding the macroblock comprises; entropy decoding the entropy coded data for the macroblock to determine the terminal symbol, the intra/inter decision information, the infoimation indicating which of the multiple references frames is to be used in motion compensation for the macroblock, and the motion information for the macroblock; determining whether transform coefficient data for the macroblock is included in the bit stream based at least in part upon the terminal symbol; reconstructing a motion vector for the macroblock using the motion information for the macroblock; and reconstructing the macroblock, including performing motion compensation for the macroblock using the motion vector and the indicated one of the multiple reference frames. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of encoding one or more video images in a video sequence using a computing device that implements a video encoder, the method comprising:
with the computing device that implements the video encoder; performing motion estimation for a macroblock of a video image, wherein the motion estimation uses, at least in part, one of multiple reference frames, and wherein the motion estimation produces, at least in part, a motion vector; reconstructing the macroblock, including performing motion compensation for the macroblock using the motion vector and the indicated one of the multiple reference frames; determining, based at least in part upon the motion estimation and the motion compensation, data for the macroblock of the video image, the data for the macroblock representing; (a) a terminal symbol indicating whether transform coefficient data for the macroblock is included in a bit stream; (b) intra/inter decision information indicating whether the macroblock is intra-coded or inter-coded, wherein the macroblock is inter-coded; (c) information indicating the reference frame of the multiple reference frames used in motion compensation for the inter-coded macroblock; and (d) motion information for the inter-coded macroblock; and entropy encoding the data for the macroblock; and outputting, in the bit stream, the entropy encoded data for the macroblock, wherein the entropy encoded data for the macroblock is signaled in the bit stream as part of macroblock syntax at macroblock level. - View Dependent Claims (8, 9, 10, 11, 12)
-
13. A computing device that implements a video encoder, the computing device comprising one or more processing units and memory, the computing device being adapted to perform a method comprising:
-
performing motion estimation for a macroblock of a video image, wherein the motion estimation uses, at least in part, one of multiple reference frames, and wherein the motion estimation produces, at least in part, a motion vector; reconstructing the macroblock, including performing motion compensation for the macroblock using the motion vector and the indicated one of the multiple reference frames; determining, based at least in part upon the motion estimation and the motion compensation, data for the macroblock of the video image, the data for the macroblock representing; (a) a terminal symbol indicating whether transform coefficient data for the macroblock is included in a bit stream; (b) intra/inter decision information indicating whether the macroblock is intra-coded or inter-coded, wherein the macroblock is inter-coded; (c) information indicating the reference frame of the multiple reference frames used in motion compensation for the inter-coded macroblock; and (d) motion information for the inter-coded macroblock; and entropy encoding the data for the macroblock; and outputting, in the bit stream, the entropy encoded data for the macroblock, wherein the entropy encoded data for the macroblock is signaled in the bit stream as part of macroblock syntax at macroblock level. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification