# US 10,321,149 B2 · Biasing selection of motion estimation vectors

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

- Number: US 10,321,149 B2
- Document ID: US10321149B2
- Status: Granted
- Kind: B2
- Application number: 14/732,406
- Filed: 2015-06-05
- Published: 2016-01-21
- Granted: 2019-06-11
- Earliest claimed: 2014-06-17
- Assignees: Imagination Technologies Limited
- Applicants: Imagination Technologies Limited
- Inventors: Steven Fishwick
- Web page: https://patentgrep.com/patent/US10321149B2

## CPC

- H04N 19/513: Processing of motion vectors
- H04N 5/145: {Movement estimation (for video coding H04N19/51)}
- H04N 7/014: {involving the use of motion vectors (motion estimation and compensation in video coding H04N19/51)}
- H04N 19/167: Position within a video image, e.g. region of interest [ROI]
- H04N 19/172: the region being a picture, frame or field
- H04N 19/182: the unit being a pixel
- H04N 19/577: Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A motion estimation technique finds first and second candidate bi-directional motion vectors for a first region of an interpolated frame of video content by performing double ended vector motion estimation on the first region. One of these candidate bi-directional motion vectors is selected, and used to identify a remote region of the interpolated frame. This remote region is located at an off-set location from the first region, and is found based on an endpoint of the selected candidate bi-directional motion vector. A remote motion vector for the remote region of the interpolated frame is obtained, and one or more properties of this remote motion vector are used to bias a selection between the first and second candidate vectors.

## Claims

### Claim 1

A motion estimation method comprising:
computing at least first and second candidate bi-directional motion vectors for a first region of an interpolated frame of video content by performing double ended vector motion estimation on the first region;
selecting one of the candidate bi-directional motion vectors;
identifying a remote region of the interpolated frame, the remote region being located at an off-set location from the first region, based on an endpoint of the selected candidate bi-directional motion vector;
obtaining a remote motion vector for the remote region of the interpolated frame; and
biasing a selection between the first and second candidate vectors based on one or more properties associated with the remote motion vector.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the properties associated with the remote motion vector comprise at least one of: the magnitude of the remote motion vector; the direction of the remote motion vector; and a pixel match value relating to the similarity between a set of pixels located at each end of the remote motion vector.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the biasing comprises comparing one or more properties associated with the remote motion vector with one or more properties associated with the selected candidate bi-directional motion vector.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the comparing comprises at least one of:
comparing the magnitude of the remote motion vector with the magnitude of the selected candidate bi-directional motion vector; and
comparing the direction of the remote motion vector with the direction of the selected candidate bi-directional motion vector.

### Claim 5 (depends on 3)

The method according to claim 3, wherein the biasing further comprises at least one of:
biasing the selection in favour of the selected candidate bi-directional vector if the one or more properties associated with the remote motion vector are within a predefined threshold of the one or more properties associated with the selected candidate bi-directional vector; and
biasing the selection away from the selected candidate bi-directional vector if the one or more properties associated with the remote motion vector differ from the one or more properties associated with the selected candidate bi-directional vector by more than a predefined threshold.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the biasing comprises comparing one or more properties associated with the remote motion vector against a predetermined value.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the comparing comprises calculating a pixel match value relating to the similarity between a set of pixels located at each end of the remote motion vector, and comparing the pixel match value against the predetermined value.

### Claim 8 (depends on 7)

The method according to claim 7, wherein the biasing further comprises at least one of:
biasing the selection away from the selected candidate bi-directional vector if comparing the pixel match value to the predetermined value indicates that the pixels located at each end of the remote motion vector are dissimilar; and
biasing the selection in favour of the selected candidate bi-directional vector if comparing the pixel match value to the predetermined value indicates that the pixels located at each end of the remote motion vector are similar.

### Claim 9 (depends on 1)

The method according to claim 1 further comprising:
selecting a further remote region of the interpolated frame, the further remote region being located at an off-set location from the first region and remote region, based on the other endpoint of the selected candidate bi-directional motion vector;
obtaining a further remote motion vector for the further remote region of the interpolated frame; and
further biasing the selection between the first and second candidate vectors based on one or more properties associated with the further remote motion vector.

### Claim 10 (depends on 1)

The method according to claim 1, further comprising choosing one of the candidate bi-directional motion vectors to be an output motion vector based on the biasing, and outputting the output motion vector.

### Claim 11

A motion estimator, comprising:
a storage device;
candidate vector identification logic arranged to compute at least first and second candidate bi-directional motion vectors for a first region of an interpolated frame of video content by performing double ended vector motion estimation on the first region, and to store the candidate bi-directional motion vectors in the storage device;
remote region selection logic arranged to select one of the candidate bi-directional motion vectors from the storage device and identify a remote region of the interpolated frame, the remote region being located at an off-set location from the first region, based on an endpoint of the selected candidate bi-directional motion vector;
remote vector determination logic arranged to obtain a remote motion vector for the remote region of the interpolated frame; and
vector biasing logic arranged to bias a selection between the first and second candidate vectors based on one or more properties associated with the remote motion vector.

### Claim 12 (depends on 11)

The motion estimator according to claim 11, wherein the properties associated with the remote motion vector comprise at least one of: the magnitude of the remote motion vector; the direction of the remote motion vector; and a pixel match value relating to the similarity between a set of pixels located at each end of the remote motion vector.

### Claim 13 (depends on 11)

The motion estimator according to claim 11, further comprising vector comparison logic arranged to:
compare one or more properties associated with the remote motion vector with at least one of: one or more properties associated with the selected candidate bi-directional motion vector; and a predetermined value, and
provide a result of the comparison to the vector biasing logic.

### Claim 14 (depends on 11)

The motion estimator according to claim 11, wherein:
the remote region selection logic is further arranged to select a further remote region of the interpolated frame, the further remote region being located at an off-set location from the first region and remote region, based on the other endpoint of the selected candidate bi-directional motion vector;
the remote vector determination logic is further arranged to obtain a further remote motion vector for the further remote region of the interpolated frame; and
the vector biasing logic is further arranged to further bias the selection between the first and second candidate vectors based on one or more properties associated with the further remote motion vector.

### Claim 15 (depends on 11)

The motion estimator according to claim 11, wherein the interpolated frame is divided into a grid of blocks, and whereby the remote region is identified as the grid block in which the endpoint of the selected candidate vector is located.

### Claim 16 (depends on 15)

The motion estimator according to claim 15, wherein motion vectors are stored in a memory for each grid block of the interpolated frame, and the remote vector determination logic is arranged to obtain a remote motion vector for the remote region by reading the motion vector associated with the grid block corresponding to the remote region from the memory.

### Claim 17 (depends on 11)

The motion estimator according to claim 11, wherein the remote vector determination logic is arranged to obtain a remote motion vector for the remote region by computing the remote motion vector by performing double ended vector motion estimation on the remote region.

### Claim 18 (depends on 11)

The motion estimator according to claim 11, further comprising vector selection logic arranged to choose one of the candidate bi-directional motion vectors to be an output motion vector based on the biasing, and output the output motion vector.

### Claim 19

A non-transitory computer readable storage medium having stored thereon processor executable instructions that when executed cause at least one processor to:
compute at least first and second candidate bi-directional motion vectors for a first region of an interpolated frame of video content by performing double ended vector motion estimation on the first region;
select one of the candidate bi-directional motion vectors;
identify a remote region of the interpolated frame, the remote region being located at an off-set location from the first region, based on an endpoint of the selected candidate bi-directional motion vector;
obtain a remote motion vector for the remote region of the interpolated frame; and
bias a selection between the first and second candidate vectors based on one or more properties associated with the remote motion vector.

### Claim 20

A non-transitory computer readable storage medium having stored thereon computer readable instructions that, when processed at a computer system for generating a manifestation of an integrated circuit, cause the computer system to generate a manifestation of a motion estimator, comprising:
a storage device;
candidate vector identification logic arranged to compute at least first and second candidate bi-directional motion vectors for a first region of an interpolated frame of video content by performing double ended vector motion estimation on the first region, and store the candidate bi-directional motion vectors in the storage device;
remote region selection logic arranged to select one of the candidate bi-directional motion vectors from the storage device and identify a remote region of the interpolated frame, the remote region being located at an off-set location from the first region, based on an endpoint of the selected candidate bi-directional motion vector;
remote vector determination logic arranged to obtain a remote motion vector for the remote region of the interpolated frame; and
vector biasing logic arranged to bias a selection between the first and second candidate vectors based on one or more properties associated with the remote motion vector.
