# US 12,604,029 B2 · Motion candidates derivation

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

- Number: US 12,604,029 B2
- Document ID: US12604029B2
- Status: Granted
- Kind: B2
- Application number: 18/633,867
- Filed: 2024-04-12
- Published: 2024-08-08
- Granted: 2026-04-14
- Earliest claimed: 2019-01-16
- Assignees: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Applicants: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Inventors: Li Zhang; Kai Zhang; Hongbin Liu; Yue Wang
- Web page: https://patentgrep.com/patent/US12604029B2

## CPC

- H04N 19/52: by predictive encoding
- 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/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- H04N 19/88: involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Devices, systems and methods for encoding and decoding digital video using a look-up tables (LUTs) containing motion candidates are described. A method of video processing includes maintaining one or more tables, at least one table of the one or more tables is associated with one or more entries, deriving, based on a first set of motion candidates in the at least one table, a second set of motion candidates, and performing, based on the second set of motion candidates, a conversion between a current block of a video and a bitstream representation of the video.

## Claims

### Claim 1

A method of processing video data, comprising:
maintaining one or more tables, wherein at least one table of the one or more tables is associated with one or more entries;
deriving, based on a first set of motion candidates in the at least one table, a second set of motion candidates, wherein at least one candidate of the second set of motion candidates is added to a motion candidate list;
adaptively changing an insertion order of the at least one candidate of the second set of motion candidates to the motion candidate list; and
performing a conversion between a current block of a video and a bitstream of the video based on the motion candidate list.

### Claim 2 (depends on 1)

The method of claim 1, wherein the at least one candidate of the second set of motion candidates is derived based on adding an offset to a motion vector for at least one of the first set of motion candidates.

### Claim 3 (depends on 2)

The method of claim 2, wherein the offset is added to either a horizontal component or a vertical component of the motion vector, or the offset is added to both a horizontal component and a vertical component of the motion vector.

### Claim 4 (depends on 1)

The method of claim 1, wherein scaling a first uni-prediction candidate of the first set of motion candidates to a reference picture in a reference picture list is used to derive a second uni-prediction candidate of the second set of motion candidates, and wherein the first uni-prediction candidate and the second uni-prediction candidate have a same reference picture list index and share the reference picture list.

### Claim 5 (depends on 1)

The method of claim 1, wherein scaling a first uni-prediction candidate of the first set of motion candidates to a reference picture in a reference picture list is used to derive a second uni-prediction candidate of the second set of motion candidates, wherein the first uni-prediction candidate and the second uni-prediction candidate have different reference picture list indexes, and wherein the reference picture list is associated with the second uni-prediction candidate.

### Claim 6 (depends on 1)

The method of claim 1, wherein scaling a uni-prediction candidate of the first set of motion candidates to a reference picture in a reference picture list is used to derive a bi-prediction candidate of the second set of motion candidates, wherein the reference picture list is associated with the bi-prediction candidate.

### Claim 7 (depends on 1)

The method of claim 1, wherein the at least one candidate of the second set of motion candidates is derived based on averaging two or more different motion candidates from the first set of motion candidates.

### Claim 8 (depends on 1)

The method of claim 1, wherein the motion candidate list comprises at least one of a motion candidate list for a merge mode or a motion candidate list for an advanced motion vector prediction (AMVP) mode.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
updating, subsequent to performing the conversion, the at least one table based on motion information of the current block.

### Claim 10 (depends on 1)

The method of claim 1, wherein an entry in the at least one table comprises one of the first set of motion candidates and associated motion information comprising a prediction direction, one or more reference pictures or indices, one or more motion vectors, a local illumination compensation (LIC) flag, an affine flag, a motion vector difference (MVD) value or an MVD precision, and
wherein the associated motion information further comprises position information associated with the current block.

### Claim 11 (depends on 1)

The method of claim 1, wherein adaptively changing the insertion order is based on a coding mode of the current block.

### Claim 12 (depends on 11)

The method of claim 11, wherein the insertion order comprises at least one of:
inserting new motion candidates after temporal motion vector prediction (TMVP) candidates upon a determination that the coding mode is a merge mode;
inserting new motion candidates before spatial candidates; or
inserting new motion candidates after spatial candidates upon a determination that the coding mode is an intra block copy (IBC) mode.

### Claim 13 (depends on 1)

The method of claim 1, wherein the insertion order is adaptively changed from block to block, from tile to tile, from tile group to tile group, or from one video processing unit to another video processing unit.

### Claim 14 (depends on 1)

The method of claim 1, wherein the adaptively changing or the insertion order is based on at least one of:
a height or a width of the current block;
a partitioning depth of the current block;
a tile type, a tile group type, a slice type or a picture type associated with the current block; or
a low delay check flag in the bitstream.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
adaptively changing, during a construction of the motion candidate list, at least one of a pruning process when adding a motion candidate to the motion candidate list, a number of motion candidates to be checked in a table of the one or more tables, or a maximum number of motion candidates in the LUT to be checked, or number of tables of the one or more tables to be checked.

### Claim 16 (depends on 1)

The method of claim 1, wherein the table comprises a History-based Motion Vector Prediction (HMVP) table, wherein an entry in the HMVP table comprises a motion candidate and associated motion information comprising a prediction direction, one or more reference pictures or indices, one or more motion vectors, a local illumination compensation (LIC) flag, an affine flag, a motion vector difference (MVD) value or an MVD precision.

### Claim 17 (depends on 1)

The method of claim 1, wherein the conversion includes encoding the current block into the bitstream.

### Claim 18 (depends on 1)

The method of claim 1, wherein the conversion includes decoding the current block from the bitstream.

### Claim 19

An apparatus for processing video data comprising:
a processor; and
a non-transitory memory having instructions stored thereon, wherein the instructions, upon execution by the processor, cause the processor to:
maintain one or more tables, wherein at least one table of the one or more tables is associated with one or more entries;
derive, based on a first set of motion candidates in the at least one table, a second set of motion candidates, wherein at least one candidate of the second set of motion candidates is added to a motion candidate list;
adaptively change an insertion order of the at least one candidate of the second set of motion candidates to the motion candidate list; and
perform a conversion between a current block of a video and a bitstream of the video based on the motion candidate list.

### Claim 20

A method for storing a bitstream of a video, comprising:
maintaining one or more tables, wherein at least one table of the one or more tables is associated with one or more entries;
deriving, based on a first set of motion candidates in the at least one table, a second set of motion candidates, wherein at least one candidate of the second set of motion candidates is added to a motion candidate list;
adaptively changing an insertion order of the at least one candidate of the second set of motion candidates to the motion candidate list;
generating the bitstream based on the motion candidate list; and
storing the bitstream in a non-transitory computer-readable recording medium.
