# US 12,192,513 B2 · Method and apparatus for intra prediction using an interpolation filter

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

- Number: US 12,192,513 B2
- Document ID: US12192513B2
- Status: Granted
- Kind: B2
- Application number: 18/460,607
- Filed: 2023-09-04
- Published: 2024-04-11
- Granted: 2025-01-07
- Earliest claimed: 2018-10-06
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Alexey Konstantinovich Filippov; Vasily Alexeevich Rufitskiy; Jianle Chen
- Web page: https://patentgrep.com/patent/US12192513B2

## CPC

- H04N 19/59: involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
- 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/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- 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/182: the unit being a pixel
- H04N 19/593: involving spatial prediction techniques
- H04N 19/82: involving filtering within a prediction loop
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Provided are a method, an apparatus, a computer program product and a non-transitory computer-readable medium for video coding. The method comprises performing an intra-prediction process of a block comprising samples to be predicted, wherein an interpolation filter is applied to reference samples of the block during the intra-prediction process of the block. The interpolation filter is selected on the basis of a subpixel offset between the reference samples and the samples to be predicted, and a size of a main reference side used in the intra-prediction process is determined according to a length of the interpolation filter and an intra-prediction mode that provides, out of a set of available intra-prediction modes, the greatest non-integer value of said subpixel offset, wherein the main reference side comprises the reference samples.

## Claims

### Claim 1

A method of video encoding implemented by an encoding device, the method comprising:
performing an intra-prediction process of a block to obtain predicted sample values of the block, wherein an interpolation filter is applied to reference samples of the block during the intra-prediction process of the block;
obtaining residual information according to sample values of the block and the predicted sample values of the block; and
performing transformation, quantization, and entropy coding on the residual information, to obtain an encoded bitstream,
wherein the interpolation filter is selected on the basis of a subpixel offset between the reference samples and the predicted samples, and
wherein a size of a main reference side used in the intra-prediction process is determined as a sum of:
an integer part of a greatest non-integer value of the subpixel offset, wherein an intra-prediction mode provides, out of a set of available intra-prediction modes, the greatest non-integer value of said subpixel offset,
a size of a side of the block, and
a half of the length of the interpolation filter.

### Claim 2 (depends on 1)

The method of claim 1, wherein
the side of the block of predicted samples is a width of the block when the intra prediction mode is greater than a vertical intra prediction mode (VER_IDX);
or
the side of the block is a height of the block when the intra prediction mode is lesser than a horizontal intra prediction mode (HOR_IDX).

### Claim 3 (depends on 1)

The method of claim 1, wherein, in the main reference side, values of reference samples with positions greater than a doubled size of the side of the block are set to be equal to a value of a sample located at the doubled size of the size of the side of the block.

### Claim 4 (depends on 1)

The method of claim 1, wherein padding is performed by replicating first and/or last reference samples of the main reference side to the left and/or to the right side respectively, in particular as follows: denoting the main reference side as ref, and the size of the main reference side as refS, wherein the padding is represented as:
ref[−1]=p[0], and/or
ref[refS+1]=p[refS],
wherein ref [−1] represents a value of the left to the main reference side,
p [0] represents a value of the first reference sample of the main reference side,
ref [refS+1] represents a value of the right to the main reference side, and
p [refS] represents a value of the last reference sample of the main reference side.

### Claim 5 (depends on 1)

The method of claim 1, wherein the interpolation filter used in the intra-prediction processes is a finite impulse response filter and the coefficients of the interpolation filter are fetched from a look-up table.

### Claim 6 (depends on 1)

The method of claim 1, wherein the interpolation filter used in the intra-prediction process is a 4-tap filter.

### Claim 7 (depends on 6)

The method of claim 6, wherein coefficients, c0, c1, c2, and c3, of the interpolation filter depend on a non-integer part of the subpixel offset as follows:
Non-integer
part of the
subpixel
offset
c0
c1
c2
c3
0 (integer)
0
64
0
0
1
−1
63
2
0
2
−2
62
4
0
3
−2
60
7
−1
4
−2
58
10
−2
5
−3
57
12
−2
6
−4
56
14
−2
7
−4
55
15
−2
8
−4
54
16
−2
9
−5
53
18
−2
10
−6
52
20
−2
11
−6
49
24
−3
12
−6
46
28
−4
13
−5
44
29
−4
14
−4
42
30
−4
15
−4
39
33
−4
16 (half-pel)
−4
36
36
−4
17
−4
33
39
−4
18
−4
30
42
−4
19
−4
29
44
−5
20
−4
28
46
−6
21
−3
24
49
−6
22
−2
20
52
−6
23
−2
18
53
−5
24
−2
16
54
−4
25
−2
15
55
−4
26
−2
14
56
−4
27
−2
12
57
−3
28
−2
10
58
−2
29
−1
7
60
−2
30
0
4
62
−2
31
0
2
63
−1
wherein the “Non-integer part of the subpixel offset” column is defined in 1/32 subpixel resolution.

### Claim 8 (depends on 6)

The method of claim 6, wherein coefficients, c0, c1, c2, and c3, of the interpolation filter depend on a non-integer part of the subpixel offset as follows:
Non-integer
part of the
subpixel
offset
c0
c1
c2
c3
0 (integer)
16
32
16
0
1
15
29
17
3
2
15
29
17
3
3
14
29
18
3
4
13
29
18
4
5
13
28
19
4
6
13
28
19
4
7
12
28
20
4
8
11
28
20
5
9
11
27
21
5
10
10
27
22
5
11
9
27
22
6
12
9
26
23
6
13
9
26
23
6
14
8
25
24
7
15
8
25
24
7
16 (half-pel)
8
24
24
8
17
7
24
25
8
18
7
24
25
8
19
6
23
26
9
20
6
23
26
9
21
6
22
27
9
22
5
22
27
10
23
5
21
27
11
24
5
20
28
11
25
4
20
28
12
26
4
19
28
13
27
4
19
28
13
28
4
18
29
13
29
3
18
29
14
30
3
17
29
15
31
3
17
29
15
wherein the “Non-integer part of the subpixel offset” column is defined in 1/32 subpixel resolution.

### Claim 9 (depends on 6)

The method of claim 6, wherein coefficients, c0, c1, c2, and c3, of the interpolation filter depend on a non-integer part of the subpixel offset as follows:
Non-integer
part of the
subpixel
offset
c0
c1
c2
c3
0 (integer)
16
32
16
0
1
15
29
17
3
2
15
29
17
3
3
14
29
18
3
4
13
29
18
4
5
13
28
19
4
6
13
28
19
4
7
12
28
20
4
8
11
28
20
5
9
11
27
21
5
10
10
27
22
5
11
9
27
22
6
12
9
26
23
6
13
9
26
23
6
14
8
25
24
7
15
8
25
24
7
16 (half-pel)
8
24
24
8
17
7
24
25
8
18
7
24
25
8
19
6
23
26
9
20
6
23
26
9
21
6
22
27
9
22
5
22
27
10
23
5
21
27
11
24
5
20
28
11
25
4
20
28
12
26
4
19
28
13
27
4
19
28
13
28
4
18
29
13
29
3
18
29
14
30
3
17
29
15
31
3
17
29
15
wherein the “Non-integer part of the subpixel offset” column is defined in 1/32 subpixel resolution.

### Claim 10 (depends on 1)

The method of claim 1, wherein the interpolation filter is selected from a set of filters used for the intra-prediction process for a given subpixel offset.

### Claim 11 (depends on 10)

The method of claim 10, wherein the set of filters comprises a Gauss filter and a Cubic filter.

### Claim 12 (depends on 1)

The method of claim 1, wherein the quantity of the interpolation filter is N, and wherein the N interpolation filters are used for intra reference sample interpolation and N>=1 and is a positive integer.

### Claim 13 (depends on 1)

The method of claim 1, wherein the reference samples include samples not adjacent to the block.

### Claim 14

An encoding device, comprising:
at least one processor; and
one or more memories coupled to the at least one processor and storing programming instructions for execution by the at least one processor to cause the encoding device to:
perform an intra-prediction process of a block to obtain predicted sample values of the block,
wherein an interpolation filter is applied to reference samples of the block during the intra-prediction process of the block;
obtain residual information according to sample values of the block and the predicted sample values of the block; and
perform transformation, quantization, and entropy coding on the residual information, to obtain an encoded bitstream,
wherein the interpolation filter is selected on the basis of a subpixel offset between the reference samples and the predicated samples, and
wherein a size of a main reference side used in the intra-prediction process is determined as a sum of:
an integer part of a greatest non-integer value of the subpixel offset, wherein an intra-prediction mode provides, out of a set of available intra-prediction modes, the greatest non-integer value of said subpixel offset,
a size of a side of the block, and
a half of the length of the interpolation filter.

### Claim 15 (depends on 14)

The encoding device of claim 14, wherein
the side of the block of predicted samples is a width of the block when the intra prediction mode is greater than a vertical intra prediction mode (VER_IDX);
or
the side of the block is a height of the block when the intra prediction mode is lesser than a horizontal intra prediction mode (HOR_IDX).

### Claim 16 (depends on 14)

The encoding device of claim 14, wherein, in the main reference side, values of reference samples with positions greater than a doubled size of the side of the block are set to be equal to a value of a sample located at the doubled size of the size of the side of the block.

### Claim 17 (depends on 14)

The encoding device of claim 14, wherein the interpolation filter used in the intra-prediction processes is a finite impulse response filter and the coefficients of the interpolation filter are fetched from a look-up table.

### Claim 18 (depends on 14)

The encoding device of claim 14, wherein the interpolation filter used in the intra-prediction process is a 4-tap filter.

### Claim 19 (depends on 14)

The encoding device of claim 14, wherein the interpolation filter is selected from a set of filters used for the intra-prediction process for a given subpixel offset.

### Claim 20

A non-transitory computer readable medium having an encoded bitstream for a video signal stored therein, the encoded bitstream is generated by a video encoding method, wherein the method comprises:
performing an intra-prediction process of a block to obtain predicted sample values of the block, wherein an interpolation filter is applied to reference samples of the block during the intra-prediction process of the block;
obtaining residual information according to sample values of the block and predicted sample values of the block; and
performing transformation, quantization, and entropy coding on the residual information, to obtain the encoded bitstream;
wherein the interpolation filter is selected on the basis of a subpixel offset between the reference samples and the predicted samples, and
wherein a size of a main reference side used in the intra-prediction process is determined as a sum of:
an integer part of a greatest non-integer value of the subpixel offset, wherein an intra-prediction mode provides, out of a set of available intra-prediction modes, the greatest non-integer value of said subpixel offset,
a size of a side of the block, and
a half of the length of the interpolation filter.
