Patent US6983018B1 successfully refreshed from Google Patents.
US6983018B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Efficient motion vector coding for video compression
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-11-30
•
Granted: 2006-01-03
•
Expires: 2018-11-30
Abstract
Abstract Video coding efficiency is improved by jointly coding the x and y components of motion vectors with a single variable length code. The motion vector components for a block of pixels are predicted based on motion vectors of neighboring blocks of pixels. The predicted x and y components are then jointly coded by assigning a single variable length code corresponding to the pair of components, rather than a separate code for each component. If the x and y components do not have a corresponding entry in the coding table, they are coded with an escape code followed by fixed length codes.
Inventors
- 👤 Chih-Lung (Bruce) Lin
- 👤 Ming-Chieh Lee
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-09 12:06
CPC Classifications
H; H04; H04N; H04N19/00; H04N19/50; H04N19/503; H04N19/51; H04N19/513; H04N19/517; H04N19/52
Claims Analysis
Total Claims: 28
Claim 1
Independent Claim
207 words
In a video coder for coding video images in a block format, a method for improving compression of the video images comprising: predicting x and y motion vector components for a current block of pixels based on a motion vector of at least one neighboring block of pixels to compute x and y components of a predictor motion vector; computing differential x and y components from the x and y components of the predictor and x and y components of a motion vector for the current block; and assigning a single variable length code to joint x and y differential motion vector components, wherein the single variable length code is assigned from a variable length code table, the table comprising a list of pairs of joint differential motion vector components and a corresponding variable length code for each pair, such that shorter variable length codes are assigned to joint differential motion vector components that have a higher probability of occurrence in the video images, and longer variable length codes are assigned to joint differential motion vector components that have a lower probability of occurrence, wherein the table includes the most probable pairs of joint differential motion vector components as computed by statistical analysis of example video sequences.
Claim 2
Dependent Claim
207 words
In a video coder for coding video images in a block format, a method for improving compression of the video images comprising: predicting x and y motion vector components for a current block of pixels based on a motion vector of at least one neighboring block of pixels to compute x and y components of a predictor motion vector; computing differential x and y components from the x and y components of the predictor and x and y components of a motion vector for the current block; and assigning a single variable length code to joint x and y differential motion vector components, wherein the single variable length code is assigned from a variable length code table, the table comprising a list of pairs of joint differential motion vector components and a corresponding variable length code for each pair, such that shorter variable length codes are assigned to joint differential motion vector components that have a higher probability of occurrence in the video images, and longer variable length codes are assigned to joint differential motion vector components that have a lower probability of occurrence, wherein the table includes the most probable pairs of joint differential motion vector components as computed by statistical analysis of example video sequences.
Claim 3
Dependent Claim
44 words
The method of claim 1 wherein the assigning includes: looking up the joint differential motion vector components in the table; when no match is found in the table, coding an escape code along with a fixed length code for each differential motion vector component.
Claim 4
Dependent Claim
38 words
The method of claim 1 wherein the block of pixels corresponds to a macroblock in a video frame divided into fixed-sized, rectangular macroblocks, and the predicting, computing, and assigning are repeated for the macroblocks in the video frame.
Claim 5
Dependent Claim
57 words
The method of claim 1 wherein the block of pixels corresponds to a macroblock of a video object plane in a video frame having two more video object planes, and the video object planes are each divided into fixed-sized, rectangular macroblocks; and the predicting, computing and assigning are repeated for the macroblocks in the video object planes.
Claim 6
Dependent Claim
14 words
A computer readable medium having instructions for performing the method of claim 1 .
Claim 7
Dependent Claim
104 words
In a video decoder, a method for decoding macroblocks of a predicted video frame comprising: receiving a single variable length code representing joint x and y components of a motion vector for each of the macroblocks; for each of the macroblocks, searching for a single entry in an entropy codebook corresponding to the variable length code and including the x and y components of the motion vector, wherein training determines which x and y components to include in the entropy codebook; and using the x and y components of the motion vector from the codebook to define motion of pixels in a corresponding macroblock.
Claim 8
Dependent Claim
104 words
In a video decoder, a method for decoding macroblocks of a predicted video frame comprising: receiving a single variable length code representing joint x and y components of a motion vector for each of the macroblocks; for each of the macroblocks, searching for a single entry in an entropy codebook corresponding to the variable length code and including the x and y components of the motion vector, wherein training determines which x and y components to include in the entropy codebook; and using the x and y components of the motion vector from the codebook to define motion of pixels in a corresponding macroblock.
Claim 9
Dependent Claim
50 words
The method of claim 6 wherein the x and y components of the motion vector in the codebook comprise x and y differential motion vector components, and the method comprises: reconstructing the motion vector from the differential motion vector components and x and y components of a predictor motion vector.
Claim 10
Dependent Claim
33 words
The method of claim 6 wherein the codebook is a Huffman table trained for a target bit rate and content type from a statistical analysis of example video sequences having the content type.
Claim 11
Dependent Claim
14 words
A computer readable medium having instructions for performing the method of claim 6 .
Claim 12
Dependent Claim
111 words
A motion vector encoder comprising: a motion vector predictor for computing a motion vector predictor for a motion vector of a block of pixels from at least one motion vector for a neighboring block of pixels; a subtractor for computing differential motion vector components from motion vector components of the predictor and the motion vector of the block of pixels; and a joint entropy coder for jointly coding the differential motion vector components with a single variable length code, wherein statistical analysis indicates which differential motion vector components to represent with variable length codes and which differential motion vector components to represent with an escape code followed by fixed length codes.
Claim 13
Dependent Claim
111 words
A motion vector encoder comprising: a motion vector predictor for computing a motion vector predictor for a motion vector of a block of pixels from at least one motion vector for a neighboring block of pixels; a subtractor for computing differential motion vector components from motion vector components of the predictor and the motion vector of the block of pixels; and a joint entropy coder for jointly coding the differential motion vector components with a single variable length code, wherein statistical analysis indicates which differential motion vector components to represent with variable length codes and which differential motion vector components to represent with an escape code followed by fixed length codes.
Claim 14
Dependent Claim
48 words
The encoder of claim 10 wherein the joint entropy coder computes the single variable length code by searching for the code in a Huffman coding table comprising a list of joint differential motion vectors and a corresponding variable length code for each of the joint differential motion vectors.
Claim 15
Dependent Claim
149 words
A motion vector decoder comprising: a motion vector predictor for computing a motion vector predictor for a motion vector of a block of pixels from at least one motion vector for a neighboring block of pixels; a joint entropy decoder for decoding a single variable length code into joint differential motion vector components, wherein the joint entropy decoder decodes the single variable length code by searching for the code in a Huffman coding table comprising a list of variable length codes and corresponding joint differential motion vector components for each of the variable length codes, wherein training determines which joint differential motion vector components to include in the table and which joint differential motion vector components to exclude from the table; and an adder for reconstructing X and Y motion vector components from the joint differential motion vector components and X and Y components of the motion vector predictor.
Claim 16
Dependent Claim
149 words
A motion vector decoder comprising: a motion vector predictor for computing a motion vector predictor for a motion vector of a block of pixels from at least one motion vector for a neighboring block of pixels; a joint entropy decoder for decoding a single variable length code into joint differential motion vector components, wherein the joint entropy decoder decodes the single variable length code by searching for the code in a Huffman coding table comprising a list of variable length codes and corresponding joint differential motion vector components for each of the variable length codes, wherein training determines which joint differential motion vector components to include in the table and which joint differential motion vector components to exclude from the table; and an adder for reconstructing X and Y motion vector components from the joint differential motion vector components and X and Y components of the motion vector predictor.
Claim 17
Dependent Claim
35 words
The decoder of claim 12 wherein the joint entropy decoder is operable to detect an escape code indicating that two fixed length codes representing X and Y differential motion vector components follow the escape code.
Claim 18
Dependent Claim
147 words
In a video coder for coding video images in a block format, a method for improving compression of the video images comprising: computing x and y motion vector components for a block; forming the x and y motion vector components into a joint parameter representing joint x and y motion vector components; and assigning a single variable length code to the joint x and y motion vector components, the single variable length code selected from a set of available variable length codes, such that shorter variable length codes are assigned to joint motion vector components that have a higher probability of occurrence in the video images, and longer variable length codes are assigned to joint differential motion vector components that have a lower probability of occurrence, wherein training determines which joint x and y motion vector components to represent in the set of available variable length codes.
Claim 19
Dependent Claim
147 words
In a video coder for coding video images in a block format, a method for improving compression of the video images comprising: computing x and y motion vector components for a block; forming the x and y motion vector components into a joint parameter representing joint x and y motion vector components; and assigning a single variable length code to the joint x and y motion vector components, the single variable length code selected from a set of available variable length codes, such that shorter variable length codes are assigned to joint motion vector components that have a higher probability of occurrence in the video images, and longer variable length codes are assigned to joint differential motion vector components that have a lower probability of occurrence, wherein training determines which joint x and y motion vector components to represent in the set of available variable length codes.
Claim 20
Dependent Claim
37 words
The method of claim 14 further including spatially predicting the x and y motion vector components from a neighboring block of the block; and using spatially predicted components as the joint x and y motion vector components.
Claim 21
Dependent Claim
41 words
The method of claim 15 wherein the spatially predicted components are differential motion vector components computed as a difference between x and y components of the motion vector for the block and x and y components of a predictor motion vector.
Claim 22
Dependent Claim
141 words
In a video decoder, a method for decoding macroblocks of a predicted video frame comprising: receiving a single variable length code representing joint differential x and y components of a motion vector for each of the macroblocks; for each of the macroblocks, searching for a single entry in a Huffman table corresponding to the variable length code and including the joint differential x and y components of the motion vector, wherein the Huffman table includes variable length codes for the most probable joint differential x and y components as computed by statistical analysis of example video sequences; computing x and y components of a predictor motion vector from neighboring macroblocks to the macroblock currently being decoded; and reconstructing the motion vector from the differential components obtained from the Huffman table and the x and y components of the predictor motion vector.
Claim 23
Dependent Claim
141 words
In a video decoder, a method for decoding macroblocks of a predicted video frame comprising: receiving a single variable length code representing joint differential x and y components of a motion vector for each of the macroblocks; for each of the macroblocks, searching for a single entry in a Huffman table corresponding to the variable length code and including the joint differential x and y components of the motion vector, wherein the Huffman table includes variable length codes for the most probable joint differential x and y components as computed by statistical analysis of example video sequences; computing x and y components of a predictor motion vector from neighboring macroblocks to the macroblock currently being decoded; and reconstructing the motion vector from the differential components obtained from the Huffman table and the x and y components of the predictor motion vector.
Claim 24
Dependent Claim
87 words
In a video coder for coding video images in a block format, a method for variable length coding block motion information of the video images, wherein a joint parameter represents x and y motion vector components for a block, the method comprising: assigning a single variable length code selected from a set of available variable length codes to the joint x and y motion vector components, wherein training determines which joint x and y motion vector components to represent in the set of available variable length codes.
Claim 25
Dependent Claim
87 words
In a video coder for coding video images in a block format, a method for variable length coding block motion information of the video images, wherein a joint parameter represents x and y motion vector components for a block, the method comprising: assigning a single variable length code selected from a set of available variable length codes to the joint x and y motion vector components, wherein training determines which joint x and y motion vector components to represent in the set of available variable length codes.
Claim 26
Dependent Claim
29 words
The method of claim 18 wherein the block is a 16×16 macroblock of pixels, and wherein each of the x and y motion vector components comprises a differential value.
Claim 27
Dependent Claim
148 words
A video decoder including computer-executable instructions for causing a computer programmed thereby to perform a method for variable length decoding macroblock motion information of a predicted video frame, wherein a single variable length code represents joint differential x and y components of a motion vector for each of plural macroblocks, the method comprising: for each of the plural macroblocks, searching for a single entry in a Huffman table corresponding to the variable length code for the macroblock, wherein the single entry includes the joint differential x and y components of the motion vector for the macroblock, wherein the joint differential x and y components are combinable with predictor x and y components to reconstruct the motion vector for the macroblock, and wherein the Huffman table includes variable length codes for the most probable joint differential x and y components as computed by statistical analysis of example video sequences.
Claim 28
Dependent Claim
148 words
A video decoder including computer-executable instructions for causing a computer programmed thereby to perform a method for variable length decoding macroblock motion information of a predicted video frame, wherein a single variable length code represents joint differential x and y components of a motion vector for each of plural macroblocks, the method comprising: for each of the plural macroblocks, searching for a single entry in a Huffman table corresponding to the variable length code for the macroblock, wherein the single entry includes the joint differential x and y components of the motion vector for the macroblock, wherein the joint differential x and y components are combinable with predictor x and y components to reconstruct the motion vector for the macroblock, and wherein the Huffman table includes variable length codes for the most probable joint differential x and y components as computed by statistical analysis of example video sequences.
References Cited (Backward Citations)
US5117287A
Cited
US4999705A
Cited
US5155594A
Cited
US5274453A
Cited
US5258836A
Cited
US6011596A
Cited
US5428396A
Cited
EP0535746A2
Cited
EP0540350A2
Cited
US5379351A
Cited
US5376971A
Cited
US5400075A
Cited
EP0614318A2
Cited
EP0614318A3
Cited
US5598215A
Cited
EP0625853A2
Cited
EP0625853A3
Cited
US5448297A
Cited
US5517327A
Cited
US5477272A
Cited
US5465118A
Cited
US5457495A
Cited
US5594504A
Cited
US5835144A
Cited
US5619281A
Cited
US5689306A
Cited
US6052150A
Cited
US5673339A
Cited
US5617144A
Cited
US5598216A
Cited
US5546129A
Cited
US5654771A
Cited
US5668608A
Cited
US5825830A
Cited
US5959673A
Cited
US5784175A
Cited
US5970173A
Cited
US5692063A
Cited
US5982438A
Cited
US5847776A
Cited
EP0825778A2
Cited
EP0830029A2
Cited
US6111914A
Cited
US5946043A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2009-01-02 | 2009-07-04 | 2010-01-03 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2013-01-02 | 2013-07-04 | 2014-01-03 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2017-01-02 | 2017-07-04 | 2018-01-03 | $7700.00 | Window Closed / Lapsed |