IP Library Granted Patent US 11,979,592
Granted Patent B2
US 11,979,592 · App. 17/975,385 · Granted May 7, 2024

Determining a motion vector type based on a weight index at a sample position in a coding block partitioned in geometric partitioning mode

Inventors: Lien-Fei Chen (Taipei, TW); Xiang Li (Saratoga, CA); Guichun Li (Milpitas, CA); Shan Liu (San Jose, CA)
Assignee: TENCENT AMERICA LLC
H04N19/44H04N19/132H04N19/137H04N19/176H04N19/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,979,592
App. No.
17/975,385
Granted
May 7, 2024
Kind
B2
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 (688)

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 (x sb , y sb ) in the motion field of the current coding block, the sample position of the current coding block has a coordinate of ((x sb <<2)+i, (y sb <<2)+j) in the current coding block, and the weight index at the coordinate of ((x sb <<2)+i, (y sb <<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.

2. 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.

3. 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.

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

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

10. 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

π

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.

11. 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, x sb and y sb 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.

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 (x sb , y sb ) in the motion field of the current coding block, the sample position of the current coding block has a coordinate of ((x sb <<2)+i, (y sb <<2)+j) in the current coding block, and the weight index at the coordinate of ((x sb <<2)+i, (y sb <<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.

13. 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.

14. 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.

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

16. 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.

17. 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.

18. 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.

19. 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.

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 (x sb , y sb ) in the motion field of the current coding block, the sample position of the current coding block has a coordinate of ((x sb <<2)+i, (y sb <<2)+j) in the current coding block, and the weight index at the coordinate of ((x sb <<2)+i, (y sb <<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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2022
From: CHEN, LIEN-FEI; LI, XIANG; LI, GUICHUN; LIU, SHAN
To: TENCENT AMERICA LLC
Reel/Frame 061887/0620 →
Continuity (3)
Continuation 17091253 · Nov 6, 2020
Provisional Application 62938894 · Nov 21, 2019
Related Publication 20230068035A1 · Mar 2, 2023