# US 2023/0068035 A1 · Determining a Motion Vector Type Based on a Weight Index at a Sample Position in a Coding Block Partitioned in Geometric Partitioning Mode

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

- Number: US 2023/0068035 A1
- Document ID: US20230068035A1
- Status: Published application
- Kind: A1
- Application number: 17/975,385
- Filed: 2022-10-27
- Published: 2023-03-02
- Earliest claimed: 2019-11-21
- Assignees: Tencent America LLC
- Applicants: Tencent America LLC
- Inventors: Lien-Fei CHEN; Xiang LI; Guichun LI; Shan LIU
- Web page: https://patentgrep.com/patent/US20230068035A1

## 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/44: Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N 19/109: among a plurality of temporal predictive coding modes
- H04N 19/119: Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
- H04N 19/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/137: Motion inside a coding unit, e.g. average field, frame or block difference
- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/503: involving temporal prediction (adaptive coding with adaptive selection between spatial and temporal predictive coding H04N19/107; adaptive coding with adaptive selection among a plurality of temporal predictive coding modes H04N19/109)
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of video decoding includes receiving a syntax element associated with a current coding block that is partitioned into a first part and a second part along a partition edge for prediction in a geometric partitioning mode. The method further includes determining a weight index at a sample position of the current coding block, and determining a stored motion vector type for a first motion storage unit in a motion field of the current coding block based on a motion index of the first motion storage unit. The method further includes storing the motion field of the current coding block based on the stored motion vector type determined for the first motion storage unit.

## Claims

### Claim 1

A method of video decoding at a video decoder, comprising:
receiving a syntax element from a bitstream of a coded video associated with a current coding block that is partitioned into a first part and a second part along a partition edge for prediction in a geometric partitioning mode;
determining a weight index at a sample position of the current coding block, the weight index being used to derive a blending weight for blending two prediction signals corresponding to the first part and the second part of the current coding block;
determining a stored motion vector type for a first motion storage unit in a motion field of the current coding block based on a motion index of the first motion storage unit, wherein the weight index at the sample position of the current coding block that is used to derive the blending weight is used as the motion index of the first motion storage unit; and
storing the motion field of the current coding block based on the stored motion vector type determined for the first motion storage unit in the motion field of the current coding block,
wherein the first motion storage unit has a size of 4×4 samples and is at a position of (xsb, ysb) in the motion field of the current coding block, the sample position of the current coding block has a coordinate of ((xsb<<2)+i, (ysb<<2)+j) in the current coding block, and the weight index at the coordinate of ((xsb<<2)+i, (ysb<<2)+j) is used as the motion index of the first motion storage unit, where i and j are greater than or equal to 0 and less than 4.

### Claim 2 (depends on 1)

The method of claim 1, wherein the sample position of the current coding block at which the weight index is used as the motion index of the first motion storage unit is a sample position neighboring a center position of the first motion storage unit in the motion field of the coding block.

### Claim 3 (depends on 1)

The method of claim 1, wherein the sample position of the current coding block at which the weight index is used as the motion index of the first motion storage unit is a sample position of a coordinate (2, 2) within the first motion storage unit in the motion field of the coding block.

### Claim 4 (depends on 1)

The method of claim 1, wherein (i, j) is one of (1, 1), (1, 2), (2, 1), or (2, 2).

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining the weight index at the sample position of the current coding block using a look-up table for cosine calculation.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
performing a calculation to convert the weight index at the sample position of the current coding block to the blending weight for blending the two prediction signals, the conversion being based on a linear function of the weight index at the sample position of the current coding block without using a lookup table.

### Claim 7 (depends on 1)

The method of claim 1, wherein the determining the weight index at the sample position of the current coding block includes:
determining the weight index at the sample position of the current coding block based on a value ρmargin used to shift the partition edge from a corner of the current coding block, the value ρmargin varying according to a width or a height of the current coding block and an angle of the partition edge.

### Claim 8 (depends on 1)

The method of claim 1, wherein the determining the weight index at the sample position of the current coding block includes:
determining the weight index at the sample position of the current coding block based on
(
x
,
y
)
=
(
x
-
(
(
w
×
(
4
⁢
n
+
3
⁢
i
)
)
≫
(
3
+
log
2
⁢
n
)
)
)
×
cos
⁡
(
φ
)
-
(
y
-
(
(
h
×
(
4
⁢
n
+
3
⁢
i
)
)
≫
(
3
+
log
2
⁢
n
)
)
)
×
cos
⁡
(
φ
+
π
2
)
where wIdx denotes the weight index, x and y denote a coordinate of the sample position in the current coding block, w and h denote a width and a height of the current coding block, φ denotes an angle of the partition edge, n denotes a number of distance quantization steps, and i denotes a distance quantization step index.

### Claim 9 (depends on 1)

The method of claim 1, wherein the determining the weight index at the sample position of the current coding block includes:
determining the weight index at the sample position of the current coding block based on
wIdx
⁡
(
x
,
y
)
=
(
(
(
(
x
≪
1
)
+
1
)
≪
3
)
-
(
(
(
w
×
(
4
⁢
n
+
3
⁢
i
)
)
≪
1
)
≫
log
2
⁢
n
)
)
×
cos
[
φ
]
-
(
(
(
(
y
≪
1
)
+
1
)
≪
3
)
-
(
(
(
h
×
(
4
⁢
n
+
3
⁢
i
)
)
≪
1
)
≫
log
2
⁢
n
)
)
×
cos
[
φ
+
π
2
]
where wIdx denotes the weight index, x and y denote a coordinate of the sample position in the current coding block, w and h denote a width and a height of the current coding block, φ denotes an angle of the partition edge, n denotes a number of distance quantization steps, and i denotes a distance quantization step index.

### Claim 10 (depends on 1)

The method of claim 1, wherein the determining the weight index at the sample position of the current coding block includes:
determining the weight index at the sample position of the current coding block based on
wIdx
⁡
(
x
,
y
)
=
{
(
x
-
w
×
(
4
⁢
n
+
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
)
-
(
y
-
h
×
(
4
⁢
n
+
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
+
π
2
)
,
when
⁢
0
≤
φ
<
π
2
(
x
-
w
×
(
4
⁢
n
-
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
)
-
(
y
-
h
×
(
4
⁢
n
+
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
+
π
2
)
,
when
⁢
π
2
≤
φ
<
π
(
x
-
w
×
(
4
⁢
n
-
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
)
-
(
y
-
h
×
(
4
⁢
n
-
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
+
π
2
)
,
when
⁢
π
≤
φ
<
3
⁢
π
2
(
x
-
w
×
(
4
⁢
n
+
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
)
-
(
y
-
h
×
(
4
⁢
n
-
3
⁢
i
)
8
⁢
n
)
×
cos
⁡
(
φ
+
π
2
)
,
when
⁢
⁢
3
⁢
π
2
≤
φ
<
2
?
?
indicates text missing or illegible when filed
where wIdx denotes the weight index, x and y denote a coordinate of the sample position in the current coding block, w and h denote a width and a height of the current coding block, φ denotes an angle of the partition edge, n denotes a number of distance quantization steps, and i denotes a distance quantization step index.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
determining a motion index of a second motion storage unit in the motion field of the current coding block based on
motionIdx
⁡
(
x
s
⁢
b
,
y
s
⁢
b
)
=
(
(
(
(
x
s
⁢
b
≪
3
)
+
1
)
≪
3
)
-
(
(
(
w
×
(
4
⁢
n
+
3
⁢
i
)
)
≪
1
)
≫
log
2
⁢
n
)
+
3
)
×
cos
[
φ
]
-
(
(
(
(
y
s
⁢
b
≪
3
)
+
1
)
≪
3
)
-
(
(
(
h
×
(
4
⁢
n
+
3
⁢
i
)
)
≪
1
)
≫
log
2
⁢
n
)
+
3
)
×
cos
[
φ
+
π
2
]
where motionIdx denotes the motion index of the second motion storage unit, xsb and ysb denote a coordinate of the second motion storage unit in the motion field of the current coding block, w and h denote a width and a height of the current coding block, φ denotes an angle of the partition edge, n denotes a number of distance quantization steps, and i denotes a distance quantization step index.

### Claim 12

An apparatus of video decoding, comprising:
processing circuitry configured to:
receive a syntax element from a bitstream of a coded video associated with a current coding block that is partitioned into a first part and a second part along a partition edge for prediction in a geometric partitioning mode;
determine a weight index at a sample position of the current coding block, the weight index being used to derive a blending weight for blending two prediction signals corresponding to the first part and the second part of the current coding block;
determine a stored motion vector type for a first motion storage unit in a motion field of the current coding block based on a motion index of the first motion storage unit, wherein the weight index at the sample position of the current coding block that is used to derive the blending weight is used as the motion index of the first motion storage unit; and
store the motion field of the current coding block based on the stored motion vector type determined for the first motion storage unit in the motion field of the current coding block,
wherein the first motion storage unit has a size of 4×4 samples and is at a position of (xsb, ysb) in the motion field of the current coding block, the sample position of the current coding block has a coordinate of ((xsb<<2)+i, (ysb<<2)+j) in the current coding block, and the weight index at the coordinate of ((xsb<<2)+i, (ysb<<2)+j) is used as the motion index of the first motion storage unit, where i and j are greater than or equal to 0 and less than 4.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the sample position of the current coding block at which the weight index is used as the motion index of the first motion storage unit is a sample position neighboring a center position of the first motion storage unit in the motion field of the coding block.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the sample position of the current coding block at which the weight index is used as the motion index of the first motion storage unit is a sample position of a coordinate (2, 2) within the first motion storage unit in the motion field of the coding block.

### Claim 15 (depends on 12)

The apparatus of claim 12, wherein (i, j) is one of (1, 1), (1, 2), (2, 1), or (2, 2).

### Claim 16 (depends on 12)

The apparatus of claim 12, wherein the circuitry is further configured to:
determine the weight index at the sample position of the current coding block using a look-up table for cosine calculation.

### Claim 17 (depends on 12)

The apparatus of claim 12, wherein the circuitry is further configured to:
perform a calculation to convert the weight index at the sample position of the current coding block to the blending weight for blending the two prediction signals, the conversion being based on a linear function of the weight index at the sample position of the current coding block without using a lookup table.

### Claim 18 (depends on 12)

The apparatus of claim 12, wherein the circuitry is further configured to:
determine the weight index at the sample position of the current coding block based on a value ρmargin used to shift the partition edge from a corner of the current coding block, the value ρmargin varying according to a width or a height of the current coding block and an angle of the partition edge.

### Claim 19 (depends on 12)

The apparatus of claim 12, wherein the circuitry is further configured to:
determine the weight index at the sample position of the current coding block based on
wIdx
⁡
(
x
,
y
)
=
(
x
-
(
(
w
×
(
4
⁢
n
+
3
⁢
i
)
)
≫
(
3
+
log
2
⁢
n
)
)
)
×
cos
⁡
(
φ
)
-
(
y
-
(
(
h
×
(
4
⁢
n
+
3
⁢
i
)
)
≫
(
3
+
log
2
⁢
n
)
)
)
×
cos
⁡
(
φ
+
π
2
)
where wIdx denotes the weight index, x and y denote a coordinate of the sample position in the current coding block, w and h denote a width and a height of the current coding block, φ denotes an angle of the partition edge, n denotes a number of distance quantization steps, and i denotes a distance quantization step index.

### Claim 20

A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform a method of video decoding, the method comprising:
receiving a syntax element from a bitstream of a coded video associated with a current coding block that is partitioned into a first part and a second part along a partition edge for prediction in a geometric partitioning mode;
determining a weight index at a sample position of the current coding block, the weight index being used to derive a blending weight for blending two prediction signals corresponding to the first part and the second part of the current coding block;
determining a stored motion vector type for a first motion storage unit in a motion field of the current coding block based on a motion index of the first motion storage unit, wherein the weight index at the sample position of the current coding block that is used to derive the blending weight is used as the motion index of the first motion storage unit; and
storing the motion field of the current coding block based on the stored motion vector type determined for the first motion storage unit in the motion field of the current coding block,
wherein the first motion storage unit has a size of 4×4 samples and is at a position of (xsb, ysb) in the motion field of the current coding block, the sample position of the current coding block has a coordinate of ((xsb<<2)+i, (ysb<<2)+j) in the current coding block, and the weight index at the coordinate of ((xsb<<2)+i, (ysb<<2)+j) is used as the motion index of the first motion storage unit, where i and j are greater than or equal to 0 and less than 4.
