# US 12,604,013 B2 · Threshold of similarity for candidate list

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

- Number: US 12,604,013 B2
- Document ID: US12604013B2
- Status: Granted
- Kind: B2
- Application number: 18/863,413
- Filed: 2023-05-09
- Published: 2025-10-09
- Granted: 2026-04-14
- Earliest claimed: 2022-05-09
- Assignees: Mediatek Inc.
- Applicants: Mediatek Inc.
- Inventors: Yu-Ling Hsiao; Chih-Wei Hsu
- Web page: https://patentgrep.com/patent/US12604013B2

## CPC

- 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/176: the region being a block, e.g. a macroblock
- H04N 19/11: among a plurality of spatial predictive coding modes
- 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/51: Motion estimation or motion compensation
- H04N 19/52: by predictive encoding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A video coder generates a list of candidate prediction vectors for the current block. The video coder prunes the list of candidate prediction vectors by removing a first prediction vector that is within a threshold of a second prediction vector from the list. The threshold has a first value when refinement is enabled and a second value when refinement is not enabled. The video coder selects a candidate prediction vector from the pruned list of candidate prediction vectors. When refinement is enabled, the video coder refines the selected prediction vector and encodes or decodes the current block by using the refined prediction vector to reconstruct the current block. When refinement is not enabled, the video coder encodes or decodes the current block by using the selected prediction vector to reconstruct the current block.

## Claims

### Claim 1

A video coding method comprising:
receiving data for a block of pixels to be encoded or decoded as a current block of a current picture of a video;
generating a list of candidate prediction vectors for the current block;
pruning the list of candidate prediction vectors by removing a first prediction vector that is within a threshold of a second prediction vector from the list, wherein the threshold has a first value when refinement is enabled and a second value when refinement is not enabled;
selecting a candidate prediction vector from the pruned list of candidate prediction vectors;
when refinement is enabled:
refining the selected prediction vector; and
encoding or decoding the current block by using the refined prediction vector to reconstruct the current block; and
when refinement is not enabled:
encoding or decoding the current block by using the selected prediction vector to reconstruct the current block.

### Claim 2 (depends on 1)

The video coding method of claim 1, wherein the selected prediction vector is a motion vector that references samples in a reference picture.

### Claim 3 (depends on 1)

The video coding method of claim 1, wherein the selected prediction vector is a block vector that references samples in the current picture.

### Claim 4 (depends on 1)

The video coding method of claim 1, wherein the selected prediction vector is refined to minimize a cost between template pixels neighboring the current block and corresponding pixels referenced by the refined prediction vector.

### Claim 5 (depends on 1)

The video coding method of claim 1, wherein the selected prediction vector is used to construct a predictor for the current block according to a prediction mode.

### Claim 6 (depends on 5)

The video coding method of claim 5, wherein the prediction mode is one of merge mode, combined intra-inter prediction (CIIP), geometric prediction mode (GPM), and intra-block copy (IBC).

### Claim 7 (depends on 6)

The video coding method of claim 6, wherein the first threshold is the same regardless of the prediction mode used to code the current block.

### Claim 8 (depends on 6)

The video coding method of claim 6, wherein the first threshold has different values for different prediction modes.

### Claim 9 (depends on 1)

The video coding method of claim 1, wherein the first value of the threshold for when refinement is enabled is greater than the second value of the threshold when refinement is disabled.

### Claim 10

An electronic apparatus comprising:
a video coder circuit configured to perform operations comprising:
receiving data for a block of pixels to be encoded or decoded as a current block of a current picture of a video;
generating a list of candidate prediction vectors for the current block;
pruning the list of candidate prediction vectors by removing a first prediction vector that is within a threshold of a second prediction vector from the list, wherein the threshold has a first value when refinement is enabled and a second value when refinement is not enabled;
selecting a candidate prediction vector from the pruned list of candidate prediction vectors;
when refinement is enabled:
refining the selected prediction vector; and
encoding or decoding the current block by using the refined prediction vector to reconstruct the current block; and
when refinement is not enabled:
encoding or decoding the current block by using the selected prediction vector to reconstruct the current block.

### Claim 11

A video decoding method comprising:
receiving data for a block of pixels to be decoded as a current block of a current picture of a video;
generating a list of candidate prediction vectors for the current block;
pruning the list of candidate prediction vectors by removing a first prediction vector that is within a threshold of a second prediction vector from the list, wherein the threshold has a first value when refinement is enabled and a second value when refinement is not enabled;
selecting a candidate prediction vector from the pruned list of candidate prediction vectors;
when refinement is enabled:
refining the selected prediction vector; and
reconstructing the current block by using the refined prediction vector to generate a prediction block; and
when refinement is not enabled:
reconstructing the current block by using the selected prediction vector to generate a prediction block.

### Claim 12

A video encoding method comprising:
receiving data for a block of pixels to be encoded as a current block of a current picture of a video;
generating a list of candidate prediction vectors for the current block;
pruning the list of candidate prediction vectors by removing a first prediction vector that is within a threshold of a second prediction vector from the list, wherein the threshold has a first value when refinement is enabled and a second value when refinement is not enabled;
selecting a candidate prediction vector from the pruned list of candidate prediction vectors;
when refinement is enabled:
refining the selected prediction vector; and
encoding the current block by using the refined prediction vector to generate a prediction block; and
when refinement is not enabled:
encoding the current block by using the selected prediction vector to generate a prediction block.
