# US 11,910,003 B2 · Processing method for motion compensation, encoder and decoder

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

- Number: US 11,910,003 B2
- Document ID: US11910003B2
- Status: Granted
- Kind: B2
- Application number: 17/945,261
- Filed: 2022-09-15
- Published: 2023-01-05
- Granted: 2024-02-20
- Earliest claimed: 2019-06-25
- Assignees: Guangdong Oppo Mobile Telecommunications Corp., Ltd.
- Applicants: Guangdong Oppo Mobile Telecommunications Corp., Ltd.
- Inventors: Junyan Huo; Yanzhuo Ma; Shuai Wan; Fuzheng Yang; Ze Guo
- Web page: https://patentgrep.com/patent/US11910003B2

## CPC

- H04N 19/517: by encoding
- H04N 19/533: Motion estimation using multistep search, e.g. two-dimensional [2D]-log search or one-at-a-time search [OTS]
- 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/137: Motion inside a coding unit, e.g. average field, frame or block difference
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/182: the unit being a pixel
- H04N 19/513: Processing of motion vectors
- H04N 19/52: by predictive encoding
- H04N 19/523: with sub-pixel accuracy
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Processing methods for motion compensation, an encoder, and a decoder are provided. The method includes the following. Determine a search position constellation with a point pointed by an initial motion vector as a center point, where the search position constellation includes N directions, search for at least one search point by using at least one type of step lengths in the directions, where the at least one search point at least includes at least one search point in diagonal directions. Search for at least one search position from the search position constellation based on a preset range coverage rule, where the preset range coverage rule is to arrange search points in the directions for search. Obtain a new motion vector according to the at least one search position, and perform motion compensation based on the new motion vector to obtain a prediction value of a coding unit (CU).

## Claims

### Claim 1

A processing method for motion compensation, applied to a decoder and comprising:
determining an initial motion vector based on a merge candidate list;
determining a search position constellation with a point pointed to by the initial motion vector as a center point, wherein
the search position constellation comprises N directions,
N is an integer larger than or equal to two,
N directions include a first type of direction and a second type of direction,
the first type of direction includes a horizontal direction or a vertical direction,
the horizontal direction includes left or right relative to the center point, or the vertical direction includes up or down relative to the center point,
the second type of direction includes a diagonal direction,
the diagonal direction includes upper left, lower left, upper right, or lower right relative to the center point,
determining the search position constellation includes searching for one or more search points by using sets of step lengths in the N directions,
searching for the one or more search points includes adopting a first set of step lengths for the first type of direction and adopting a second set of step lengths for the second type of direction,
adjacent step lengths of the first set are separated from one another by a same first distance as other adjacent step lengths of the first set,
adjacent step lengths of the second set are separated from one another by a same second distance as other adjacent step lengths of the second set, and
the one or more search points comprise (a) at least one search point in the diagonal direction and (b) at least one search point in the horizontal direction or the vertical direction;
searching for at least one search position from the search position constellation based on a preset range coverage rule, wherein the preset range coverage rule is to arrange search points in the directions for search;
obtaining a new motion vector according to the at least one search position; and
performing motion compensation based on the new motion vector to obtain a prediction value of a coding unit (CU).

### Claim 2 (depends on 1)

The method of claim 1, wherein the second same distance is different from the first same distance.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first and second sets of step lengths include at least one of the following step lengths: ⅛-pixel, ¼-pixel, ⅜ pixel, ½-pixel, ¾-pixel, 3/2-pixel, 2-pixel, or 4-pixel.

### Claim 4

A method for motion compensation, applied to an encoder and comprising:
determining an initial motion vector based on a merge candidate list;
determining a search position constellation with a point pointed to by the initial motion vector as a center point, wherein
the search position constellation comprises N directions,
N is an integer larger than or equal to two,
N directions include a first type of direction and a second type of direction,
the first type of direction includes a horizontal direction or a vertical direction,
the horizontal direction includes left or right relative to the center point, or the vertical direction includes up or down relative to the center point,
the second type of direction includes a diagonal direction,
the diagonal direction includes upper left, lower left, upper right, or lower right relative to the center point,
determining the search position constellation includes searching for one or more search points by using sets of step lengths in the N directions,
searching for the one or more search points includes adopting a first set of step lengths for the first type of direction and adopting a second set of step lengths for the second type of direction,
adjacent step lengths of the first set are separated from one another by a same first distance as other adjacent step lengths of the first set,
adjacent step lengths of the second set are separated from one another by a same second distance as other adjacent step lengths of the second set, and
the one or more search points comprise (a) at least one search point in the diagonal direction and (b) at least one search point in the horizontal direction or the vertical direction;
searching for at least one search position from the search position constellation based on a preset range coverage rule, wherein the preset range coverage rule is to arrange search points in the directions for search;
obtaining a new motion vector according to the at least one search position; and
performing motion compensation based on the new motion vector to obtain a prediction value of a coding unit (CU).

### Claim 5 (depends on 4)

The method of claim 4, wherein the second same distance is different from the first same distance.

### Claim 6 (depends on 4)

The method of claim 4, wherein the first and second sets of step lengths include at least one of the following step lengths: ⅛-pixel, ¼-pixel, ⅜-pixel, ½-pixel, ¾-pixel, 3/2-pixel, 2-pixel, or 4-pixel.

### Claim 7

A decoder, comprising:
a processor; and
a memory storing a computer program which, when executed by the processor, causes the processor to:
determine an initial motion vector based on a merge candidate list;
determine a search position constellation with a point pointed to by the initial motion vector as a center point, wherein
the search position constellation comprises N directions,
N is an integer larger than or equal to two,
N directions include a first type of direction and a second type of direction,
the first type of direction includes a horizontal direction or a vertical direction,
the horizontal direction includes left or right relative to the center point, or the vertical direction includes up or down relative to the center point,
the second type of direction includes a diagonal direction,
the diagonal direction includes upper left, lower left, upper right, or lower right relative to the center point,
determining the search position constellation includes searching for one or more search points by using sets of step lengths in the N directions,
searching for the one or more search points includes adopting a first set of step lengths for the first type of direction and adopting a second set of step lengths for the second type of direction,
adjacent step lengths of the first set are separated from one another by a same first distance as other adjacent step lengths of the first set,
adjacent step lengths of the second set are separated from one another by a same second distance as other adjacent step lengths of the second set, and
the one or more search points comprise (a) at least one search point in the diagonal direction and (b) at least one search point in the horizontal direction or the vertical direction;
search for at least one search position from the search position constellation based on a preset range coverage rule, wherein the preset range coverage rule is to arrange search points in the directions for search;
obtain a new motion vector according to the at least one search position; and
perform motion compensation based on the new motion vector to obtain a prediction value of a coding unit (CU).

### Claim 8 (depends on 7)

The decoder of claim 7, wherein the second same distance is different from the first same distance.

### Claim 9 (depends on 7)

The decoder of claim 7, wherein the first and second sets of step lengths include at least one of the following step lengths: ⅛-pixel, ¼-pixel, ⅜-pixel, ½-pixel, ¾-pixel, 3/2-pixel, 2-pixel, or 4-pixel.

### Claim 10

An encoder, comprising:
a processor; and
a memory storing a computer program which, when executed by the processor, causes the processor to:
determine an initial motion vector based on a merge candidate list;
determine a search position constellation with a point pointed to by the initial motion vector as a center point, wherein
the search position constellation comprises N directions,
N is an integer larger than or equal to two,
N directions include a first type of direction and a second type of direction,
the first type of direction includes a horizontal direction or a vertical direction,
the horizontal direction includes left or right relative to the center point, or the vertical direction includes up or down relative to the center point,
the second type of direction includes a diagonal direction,
the diagonal direction includes upper left, lower left, upper right, or lower right relative to the center point,
determining the search position constellation includes searching for one or more search points by using sets of step lengths in the N directions,
searching for the one or more search points includes adopting a first set of step lengths for the first type of direction and adopting a second set of step lengths for the second type of direction,
adjacent step lengths of the first set are separated from one another by a same first distance as other adjacent step lengths of the first set,
adjacent step lengths of the second set are separated from one another by a same second distance as other adjacent step lengths of the second set, and
the one or more search points comprise (a) at least one search point in the diagonal direction and (b) at least one search point in the horizontal direction or the vertical direction;
search for at least one search position from the search position constellation based on a preset range coverage rule, wherein the preset range coverage rule is to arrange search points in the directions for search;
obtain a new motion vector according to the at least one search position; and
perform motion compensation based on the new motion vector to obtain a prediction value of a coding unit (CU).

### Claim 11 (depends on 10)

The encoder of claim 10, wherein the second same distance is different from the first same distance.

### Claim 12 (depends on 10)

The encoder of claim 10, wherein the first and second sets of step lengths include at least one of the following step lengths: ⅛-pixel, ¼-pixel, ⅜-pixel, ½-pixel, ¾-pixel, 3/2-pixel, 2-pixel, or 4-pixel.
