Coding of motion vector information
First Claim
1. A computer-implemented method of video decoding using a video decoder, the method comprising:
- receiving encoded data in a bit stream for video; and
with the video decoder, decoding video using at least some of the encoded data, wherein the decoding comprises computing a motion vector predictor for a current macroblock in a picture, including;
calculating an initial predictor for the current macroblock based on one or more neighbor motion vector candidates of one or more neighboring macroblocks;
comparing the initial predictor with at least one of the one or more neighbor motion vector candidates; and
based at least in part on results of the comparing, using one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock, comprising;
receiving a hybrid motion indicator bit signaled in the bit stream; and
using the indicator bit to select which of the one or more neighbor motion vector candidates to use as the motion vector predictor for the current macroblock;
wherein receiving the indicator bit is contingent upon the results of the comparing indicating use of one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock;
wherein the macroblock is skipped, wherein the skipped macroblock uses the one of the one or more neighbor motion vector candidates as the motion vector predictor for the skipped macroblock, and wherein the skipped macroblock has no residual information.
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.
281 Citations
8 Claims
-
1. A computer-implemented method of video decoding using a video decoder, the method comprising:
-
receiving encoded data in a bit stream for video; and with the video decoder, decoding video using at least some of the encoded data, wherein the decoding comprises computing a motion vector predictor for a current macroblock in a picture, including; calculating an initial predictor for the current macroblock based on one or more neighbor motion vector candidates of one or more neighboring macroblocks; comparing the initial predictor with at least one of the one or more neighbor motion vector candidates; and based at least in part on results of the comparing, using one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock, comprising; receiving a hybrid motion indicator bit signaled in the bit stream; and using the indicator bit to select which of the one or more neighbor motion vector candidates to use as the motion vector predictor for the current macroblock; wherein receiving the indicator bit is contingent upon the results of the comparing indicating use of one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock; wherein the macroblock is skipped, wherein the skipped macroblock uses the one of the one or more neighbor motion vector candidates as the motion vector predictor for the skipped macroblock, and wherein the skipped macroblock has no residual information. - View Dependent Claims (2, 3, 4)
-
-
5. One or more tangible storage media, wherein the one or more tangible storage media are one or more of volatile memory, non-volatile memory, optical storage media, and magnetic storage media, having stored thereon computer software instructions for causing a computer system programmed thereby to perform a method comprising:
-
encoding video, wherein the encoding produces encoded data, and wherein the encoding comprises computing a motion vector predictor for a current macroblock in a picture, including; calculating an initial predictor for the current macroblock based on one or more neighbor motion vector candidates of one or more neighboring macroblocks; comparing the initial predictor with at least one of the one or more neighbor motion vector candidates; and based at least in part on results of the comparing, determining whether to; (a) use the initial predictor as the motion vector predictor for the current macroblock;
or(b) use one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock; and signaling the encoded data as part of a bit stream for the video; wherein one of the one or more neighbor motion vector candidates is used as the motion vector predictor for the current macroblock, the method further comprising; selecting which of the one or more neighbor motion vector candidates to use as the motion vector predictor for the current macroblock; and signaling a hybrid motion indicator in the bit stream to indicate the selected one of the one or more neighbor motion vector candidates, wherein the hybrid motion indicator is signaled as a bit in the bit stream to indicate the selected one of the one or more neighbor motion vector candidates; and wherein signaling the hybrid motion indicator is contingent upon the results of the comparing indicating use of one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock; and wherein the current macroblock is skipped, wherein the skipped macroblock uses one of the one or more neighbor motion vector candidates as the motion vector predictor for the skipped macroblock, and wherein the skipped macroblock has no residual information. - View Dependent Claims (6)
-
-
7. A computing device that implements a video decoder, the computing device comprising a processing unit and memory, the computing device adapted to perform a method of video decoding, the method comprising:
-
receiving encoded data in a bit stream for video; and with the video decoder, decoding video using at least some of the encoded data, wherein the decoding comprises computing a motion vector predictor for a current macroblock in a picture, including; calculating an initial predictor for the current macroblock based on one or more neighbor motion vector candidates of one or more neighboring macroblocks; comparing the initial predictor with at least one of the one or more neighbor motion vector candidates; and based at least in part on results of the comparing, selecting one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock, comprising; receiving a hybrid motion indicator bit signaled in the bit stream; and using the indicator bit to select which of the one or more neighbor motion vector candidates to use as the motion vector predictor for the current macroblock; wherein receiving the indicator bit is contingent upon the results of the comparing indicating selection of one of the one or more neighbor motion vector candidates as the motion vector predictor for the current macroblock; wherein the current macroblock is skipped, wherein the skipped macroblock uses the selected one of the one or more neighbor motion vector candidates as the motion vector predictor for the skipped macroblock, and wherein the skipped macroblock has no residual information. - View Dependent Claims (8)
-
Specification