# US 10,873,760 B2 · Motion vector (MV) constraints and transformation constraints in video coding

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,760 B2
- Document ID: US10873760B2
- Status: Granted
- Kind: B2
- Application number: 15/944,501
- Filed: 2018-04-03
- Published: 2018-10-11
- Granted: 2020-12-22
- Earliest claimed: 2017-04-07
- Assignees: Futurewei Technologies, Inc.
- Applicants: Futurewei Technologies, Inc.
- Inventors: Huanbang Chen; Haitao Yang; Jianle Chen
- Web page: https://patentgrep.com/patent/US10873760B2

## CPC

- H04N 19/55: Motion estimation with spatial constraints, e.g. at image or region borders
- H04N 19/105: Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/433: characterised by techniques for memory access
- H04N 19/52: by predictive encoding
- H04N 19/521: {for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors}
- H04N 19/523: with sub-pixel accuracy
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

An apparatus comprises: a memory; and a processor coupled to the memory and configured to: obtain candidate MVs corresponding to neighboring blocks that neighbor a current block in a video frame, generate a candidate list of the candidate MVs, select final MVs from the candidate list, and apply constraints to the final MVs or a transformation to obtain constrained MVs. An apparatus comprises: a memory; and a processor coupled to the memory and configured to: obtain candidate MVs corresponding to neighboring blocks that neighbor a current block in a video frame, generate a candidate list of the candidate MVs, apply constraints to the candidate MVs or a transformation to obtain constrained MVs, and select final MVs from the constrained MVs.

## Claims

### Claim 1

An apparatus comprising:
a memory; and
a processor coupled to the memory and configured to:
obtain candidate motion vectors (MVs) corresponding to neighboring blocks that neighbor a current block in a video frame,
generate a candidate list of the candidate MVs,
select final MVs from the candidate list, and
apply constraints to the final MVs or a transformation to obtain constrained MVs,
wherein the constraints comprise an expression,
wherein the expression comprises a threshold and at least one of a width of the current block or a height of the current block,
wherein the threshold is an arbitrary number that is statically stored or dynamically signaled,
wherein the constraints provide that a first square root of a first quantity is less than or equal to a second quantity,
wherein the first quantity is based on a first final MV, a second final MV, a third final MV, a fourth final MV, and the width, and
wherein the second quantity is based on the width and the threshold.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the constraints provide that a first absolute value of a first difference between a first final MV and a second final MV is less than or equal to a first quantity based on the width and the threshold, and wherein the constraints further provide that a second absolute value of a second difference between a third final MV and a fourth final MV is less than or equal to a second quantity based on the height and the threshold.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the constraints further provide that a second square root of a third quantity is less than or equal to a fourth quantity, wherein the third quantity is based on a fifth final MV, a sixth final MV, a seventh final MV, an eighth final MV, and the height, and wherein the fourth quantity is based on the height and the threshold.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the constraints provide that a first quantity is less than or equal to a second quantity, wherein the first quantity is based on a first width of a transformed block, a length of an interpolation filter, and a first height of the transformed block, and wherein the second quantity is based on the threshold, the width, and the height.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein the threshold is specific to uni-prediction or bi-prediction.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the constraints provide that a quantity is less than or equal to the threshold, wherein the quantity is directly proportional to a first memory bandwidth and a second memory bandwidth, and wherein the quantity is indirectly proportional to the width and the height.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the constraints provide that a first difference between a first width of a transformed block and the width is less than or equal to the threshold, and wherein the constraints further provide that a second difference between a first height of the transformed block and the height is less than or equal to the threshold.

### Claim 8 (depends on 1)

The apparatus of claim 1, wherein the processor is further configured to:
calculate a motion vector field (MVF) based on the constrained MVs;
perform motion compensation prediction (MCP) based on the MVF to generate a prediction block for the current block; and
encode an MV index.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein the processor is further configured to:
decode an MV index;
calculate a motion vector field (MVF) based on the constrained MVs; and
perform motion compensation prediction (MCP) based on the MVF to generate a prediction block for the current block.

### Claim 10

A method comprising:
obtaining candidate motion vectors (MVs) corresponding to neighboring blocks that neighbor a current block in a video frame;
generating a candidate list of the candidate MVs;
selecting final MVs from the candidate list; and
applying constraints to the final MVs or a transformation to obtain constrained MVs,
wherein the constraints comprise an expression,
wherein the expression comprises a threshold and at least one of a width of the current block or a height of the current block,
wherein the threshold is an arbitrary number that is statically stored or dynamically signaled,
wherein the constraints provide that a quantity is less than or equal to the threshold,
wherein the quantity is directly proportional to a first memory bandwidth and a second memory bandwidth, and
wherein the quantity is indirectly proportional to the width and the height.

### Claim 11

An apparatus comprising:
a memory; and
a processor coupled to the memory and configured to:
obtain candidate motion vectors (MVs) corresponding to neighboring blocks that neighbor a current block in a video frame,
generate a candidate list of the candidate MVs,
apply constraints to the candidate MVs or a transformation to obtain constrained MVs, wherein the constraints comprise an expression, wherein the expression comprises a threshold and at least one of a width of the current block or a height of the current block, wherein the threshold is an arbitrary number that is statically stored or dynamically signaled, wherein the constraints provide that a first square root of a first quantity is less than or equal to a second quantity, wherein the first quantity is based on a first final MV, a second final MV, a third final MV, a fourth final MV, and the width, and wherein the second quantity is based on the width and the threshold, and
select final MVs from the constrained MVs.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the constraints provide that a first absolute value of a first difference between a first final MV and a second final MV is less than or equal to a first quantity based on the width and the threshold, and wherein the constraints further provide that a second absolute value of a second difference between a third final MV and a fourth final MV is less than or equal to a second quantity based on the height and the threshold.

### Claim 13 (depends on 11)

The apparatus of claim 11, wherein the constraints further provide that a second square root of a third quantity is less than or equal to a fourth quantity, wherein the third quantity is based on a fifth final MV, a sixth final MV, a seventh final MV, an eighth final MV, and the height, and wherein the fourth quantity is based on the height and the threshold.

### Claim 14 (depends on 11)

The apparatus of claim 11, wherein the constraints provide that a first quantity is less than or equal to a second quantity, wherein the first quantity is based on a first width of a transformed block, a length of an interpolation filter, and a first height of the transformed block, and wherein the second quantity is based on the threshold, the width, and the height.

### Claim 15 (depends on 11)

The apparatus of claim 11, wherein the constraints provide that a quantity is less than or equal to the threshold, wherein the quantity is directly proportional to a first memory bandwidth and a second memory bandwidth, and wherein the quantity is indirectly proportional to the width and the height.

### Claim 16 (depends on 11)

The apparatus of claim 11, wherein the constraints provide that a first difference between a first width of a transformed block and the width is less than or equal to the threshold, and wherein the constraints further provide that a second difference between a first height of the transformed block and the height is less than or equal to the threshold.

### Claim 17 (depends on 11)

The apparatus of claim 11, wherein the processor is further configured to:
calculate a motion vector field (MVF) based on the constrained MVs;
perform motion compensation prediction (MCP) based on the MVF to generate a prediction block for the current block; and
encode an MV index.

### Claim 18 (depends on 11)

The apparatus of claim 11, wherein the processor is further configured to:
decode an MV index;
calculate a motion vector field (MVF) based on the constrained MVs; and
perform motion compensation prediction (MCP) based on the MVF to generate a prediction block for the current block.
