IP Library Granted Patent US 9,185,428
Granted Patent B2
US 9,185,428 · App. 13/667,992 · Granted Nov 10, 2015

Motion vector scaling for non-uniform motion vector grid

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,185,428
App. No.
13/667,992
Granted
Nov 10, 2015
Kind
B2
Abstract

In one embodiment, a method determines a scaled motion vector for a first block. A motion vector for a second block is determined where the motion vector is on a non-uniform motion vector grid. The method then maps the motion vector for the second block to a higher accuracy uniform motion vector grid that is of a higher accuracy than the non-uniform motion vector grid and scales the motion vector for the second block on the higher accuracy motion vector grid. The scaled motion vector is mapped on the higher accuracy motion vector grid to the non-uniform motion vector grid. The scaled motion vector on the non-uniform motion vector grid is associated with the first block for a temporal prediction process.

Claims (46)

1. A method, comprising:

determining a motion vector for a second block that is a spatially neighboring block or a temporal co-located block to a first block, wherein values associated with the motion vector is are represented on a non-uniform motion vector grid having a first number of positions, the non-uniform motion vector grid having non-uniform sub-pixel phase offsets between integer pixels;

mapping, by a computing device, the values to a uniform motion vector grid, the uniform motion vector grid having a second number of positions greater than the first number of positions due to the presence of more sub-pixel positions between the integer pixels than the non-uniform motion vector grid and providing a uniform distribution of sub-pixel positions between the integer pixels;

scaling, by the computing device, the values represented on the uniform motion vector grid to generate scaled motion vector values; and

mapping, by the computing device, the scaled motion vector values represented on the uniform motion vector grid to the non-uniform motion vector grid, wherein the scaled motion vector values represented on the non-uniform motion vector grid are associated with the first block for a temporal prediction process.

2. The method of claim 1 , wherein the values represented on the uniform motion vector grid comprises scaling the values based on a difference between a first reference picture for the first block and a second reference picture for the second block.

3. The method of claim 2 , wherein the difference is a temporal difference.

4. The method of claim 1 , wherein mapping the scaled motion vector values represented on the uniform motion vector grid to the non-uniform motion vector grid comprises using an algorithm to perform the mapping to the non-uniform motion vector grid.

5. The method of claim 4 , wherein the algorithm includes mapping a subset of positions on the uniform motion vector grid to a single position on the non-uniform motion vector grid.

6. The method of claim 1 , further comprising:

coding information for the scaled motion vector values in a bitstream for the video content; and

sending the bitstream from an encoder to a decoder.

7. The method of claim 1 , wherein each component of the motion vector is represented on the non-uniform motion vector grid such that each motion vector component is located at a sub-pixel position determined by a remainder resulting from dividing the motion vector component by the first number of positions.

8. A method, comprising:

receiving a bitstream from an encoder at a decoder;

determining a motion vector for a second block that is a spatially neighboring block or a temporal co-located block to a first block using information in the bitstream, wherein values associated with the motion vector are represented on a non-uniform motion vector grid having a first number of positions, the non-uniform motion vector grid having non-uniform sub-pixel phase offsets between integer pixels;

mapping, by the decoder, the values to a uniform motion vector grid, the uniform motion vector grid having a second number of positions greater than the first number of positions due to the presence of more sub-pixel positions between the integer pixels than the non-uniform motion vector grid and providing a uniform distribution of sub-pixel positions between the integer pixels;

scaling, by the decoder, the values represented on the uniform motion vector grid to generate scaled motion vector values; and

mapping, by the decoder, the scaled motion vector values represented on the uniform motion vector grid to the non-uniform motion vector grid, wherein the scaled motion vector values represented on the non-uniform motion vector grid are associated with the first block for a temporal prediction process to decode the bitstream.

9. The method of claim 8 , wherein scaling the values represented on the uniform motion vector grid comprises scaling the values based on a temporal difference between a first reference picture for the first block and a second reference picture for the second block.

10. An apparatus, comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be configured for:

determining a motion vector for a second block that is a spatially neighboring block or a temporal co-located block to a first block, wherein values associated with the motion vector are represented on a non-uniform motion vector grid having a first number of positions, the non-uniform motion vector grid having non-uniform sub-pixel phase offsets between integer pixels;

mapping the values to a uniform motion vector grid, the uniform motion vector grid having a second number of positions greater than the first number of positions due to the presence of more sub-pixel positions between the integer pixels than the non-uniform motion vector grid and providing a uniform distribution of sub-pixel positions between the integer pixels;

scaling the values represented on the uniform motion vector grid to generate scaled motion vector values; and

mapping the scaled motion vector values represented on the uniform motion vector grid to the non-uniform motion vector grid, wherein the scaled motion vector values represented on the non-uniform motion vector grid are associated with the first block for a temporal prediction process.

11. The apparatus of claim 10 , wherein scaling the values represented on the uniform motion vector grid comprises scaling the values based on a difference between a first reference picture for the first block and a second reference picture for the second block.

12. The apparatus of claim 11 , wherein the difference is a temporal difference.

13. The apparatus of claim 10 , wherein mapping the scaled motion vector values represented on the uniform motion vector grid to the non-uniform motion vector grid comprises using an algorithm to perform the mapping to the non-uniform motion vector grid.

14. The apparatus of claim 13 , wherein the algorithm includes mapping a subset of positions on the uniform motion vector grid to a single position on the non-uniform motion vector grid.

15. The apparatus of claim 10 , further operable for:

coding information for the scaled motion vector values in a bitstream for the video content; and

sending the bitstream from an encoder to a decoder.

16. The apparatus of claim 10 , further operable for:

receiving a bitstream from an encoder at a decoder;

determining the motion vector for the second block using information in the bitstream; and

performing the scaling to determine the scaled motion vector values for a decoding process of the bitstream.

17. An apparatus, comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be configured for:

receiving a bitstream from an encoder at a decoder;

determining a motion vector for a second block that is a spatially neighboring block or a temporal co-located block to a first block using information in the bitstream, wherein values associated with the motion vector are represented on a non-uniform motion vector grid having a first number of positions, the non-uniform motion vector grid having non-uniform sub-pixel phase offsets between integer pixels;

mapping the values to a uniform motion vector grid, the uniform motion vector grid having a second number of positions greater than the first number of positions due to the presence of more sub-pixel positions between the integer pixels than the non-uniform motion vector grid and providing a uniform distribution of sub-pixel positions between the integer pixels;

scaling the values represented on the uniform motion vector grid to generate scaled motion vector values; and

mapping the scaled motion vector values represented on the uniform motion vector grid to the non-uniform motion vector grid, wherein the scaled motion vector values represented on the non-uniform motion vector grid are associated with the first block for a temporal prediction process to decode the bitstream.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2026
From: GOOGLE TECHNOLOGY HOLDINGS LLC
To: BLACKBERRY LIMITED
Reel/Frame 075465/0894 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034274/0290 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030764/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030866/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2012
From: LOU, JIAN; MINOO, KOOHYAR; WANG, LIMIN
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 029236/0517 →