IP Library › Granted Patent US 11,985,322
Granted Patent B2
US 11,985,322 · App. 17/684,224 · Granted May 14, 2024

Encoder, a decoder and corresponding methods of filter modification on general intra prediction process

Inventors: Biao Wang (Munich, DE); Semih Esenlik (Munich, DE); Anand Meher Kotra (Munich, DE); Han Gao (Munich, DE); Elena Alexandrovna Alshina (Munich, DE)
Assignee: Huawei Technologies Co., Ltd.
H04N19/132H04N19/105H04N19/159H04N19/176H04N19/46
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,985,322
App. No.
17/684,224
Granted
May 14, 2024
Kind
B2
Abstract

The general intra prediction process is unnecessarily complicated with inclusion of the reference sample filtering. This application provides solutions for this problem. A method for intra prediction is provided. The method includes: during an intra predicted sample generation stage, obtaining a filtering indication, which indicates whether a filtered value or an unfiltered value of reference samples of the current coding block will be used. When the value of the filtering indication is true, a prediction sample is generated by using the filtered value of the reference samples based on the planar mode. When the value of the filtering indication is false, a prediction sample is generated by using the unfiltered value of the reference samples based on the planar mode. As a result, the reference sample filtering stage can be fully removed or can be combined with other stage.

Claims (58)

1. A method for intra prediction, comprising:

during an intra predicted sample generation stage, obtaining a filtering indication indicating whether a filtered value or an unfiltered value of reference samples of a current coding block is to be used;

in response to determining that a value of the filtering indication is true, generating a prediction sample by using the filtered value of the reference samples based on a planar mode; or

in response to determining that the value of the filtering indication is false, generating a prediction sample by using the unfiltered value of the reference samples based on the planar mode; and

during the intra predicted sample generation stage, obtaining the filtered value of the reference samples by applying a filter to the reference samples, wherein:

when the filter is [1 2 1],

predV[x][y]=((nH−1−y)*((p[x−1][−1]+2*p[x][−1]+p[x+1][−1]+2)>>2)+(y+1) * p[−1][nTbH])<<Log2 (nW),

predH[x][y]=((nW−1−x)*((p[−1][y−1]+2*p[−1][y]+p[−1][y+1]+2)>>2)+(x+1)*p[nTbW][−1])<<Log2 (nH),

wherein predV[x][y] is a vertical component of the prediction sample, predH[x][y] is a horizontal component of the prediction sample, and p[x][y] (x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) is the reference sample; and

when the filter is [1 6 1],

predV[x][y]=((nH−1−y)*((p[x−1][−1]+(p[x][−1]*6)+p[x+1][−1]+4)>>3)+(y+1)*p[−1][nTbH])<<Log2 (nW),

predH[x][y]=((nW−1−x)*((p[−1][y−1]+(p[−1][y]*6)+p[−1][y+1]+4)>>3)+(x+1)*p[nTbW][−1])<<Log2 (nH),

wherein predV[x][y] is a vertical component of the prediction sample, predH[x][y] is a horizontal component of the prediction sample, and p[x][y] (x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) is the reference sample.

2. The method of claim 1 , wherein the value of the filtering indication is true when one or more of the following conditions are true:

current block size is larger than N luma samples (N could be a number equals to power of 2 and larger than 2, i.e 4, 8, 16, 32, 64, 128, . . . );

current block is NOT applied with intra sub-partition (ISP); or

current block is a luma block.

3. The method of claim 1 , the method further comprises a position-dependent intra prediction (PDPC) stage, during the PDPC stage, reference samples (p[x][y], with x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) for the PDPC inputs are not filtered.

4. A decoder comprising:

one or more processors; and

a non-transitory computer-readable storage medium coupled to the one or more processors and storing programming for execution by the one or more processors, wherein the programming, when executed by the processors, configures the decoder to perform a method comprising:

during an intra predicted sample generation stage, obtaining a filtering indication indicating whether a filtered value or an unfiltered value of reference samples of a current coding block is to be used;

in response to determining that a value of the filtering indication is true, generating a prediction sample by using the filtered value of the reference samples based on a planar mode; or

in response to determining that the value of the filtering indication is false, generating a prediction sample by using the unfiltered value of the reference samples based on the planar mode; and

during the intra predicted sample generation stage, obtaining the filtered value of the reference samples by applying a filter to the reference samples, wherein:

when the filter is [1 2 1],

predV[x][y]=((nH−1−y)*((p[x−1][−1]+2*p[x][−1]+p[x+1][−1]+2)>>2)+(y+1)*p[−1][nTbH])<<Log2 (nW),

predH[x][y]=((nW−1−x)*((p[−1][y−1]+2*p[−1][y]+p[−1][y+1]+2)>>2)+(x+1)*p[nTbW][−1])<<Log2 (nH),

wherein predV[x][y] is a vertical component of the prediction sample, predH[x][y] is a horizontal component of the prediction sample, and p[x][y] (x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) is the reference sample; and

when the filter is [1 6 1],

predV[x][y]=((nH−1−y)*((p[x−1][−1]+(p[x][−1]*6)+p[x+1][−1]+4)>>3)+(y+1)*p[−1][nTbH])<<Log2 (nW),

predH[x][y]=((nW−1−x)*((p[−1][y−1]+(p[−1][y]*6)+p[−1][y+1]+4)>>3)+(x+1)*p[nTbW][−1])<<Log2 (nH),

wherein predV[x][y] is a vertical component of the prediction sample, predH[x][y] is a horizontal component of the prediction sample, and p[x][y] (x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) is the reference sample.

5. The decoder claim 4 , wherein the value of the filtering indication is true when one or more of the following conditions are true:

current block size is larger than N luma samples (N could be a number equals to power of 2 and larger than 2, i.e 4, 8, 16, 32, 64, 128, . . . );

current block is NOT applied with intra sub-partition (ISP); or

current block is a luma block.

6. The decoder of claim 4 , wherein the programming, when executed by the one or more processors, configures the decoder to perform the method further comprising a position-dependent intra prediction (PDPC) stage, where, during the PDPC stage, reference samples (p[x][y], with x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) for the PDPC inputs are not filtered.

7. An encoder comprising:

one or more processors; and

a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the one or more processors, wherein the programming, when executed by the one or more processors, configures the encoder to perform a method comprising:

during an intra predicted sample generation stage, obtaining a filtering indication indicating whether a filtered value or an unfiltered value of reference samples of a current coding block is to be used;

in response to determining that a value of the filtering indication is true, generating a prediction sample by using the filtered value of the reference samples based on a planar mode; or

in response to determining that the value of the filtering indication is false, generating a prediction sample by using the unfiltered value of the reference samples based on the planar mode; and

during the intra predicted sample generation stage, obtaining the filtered value of the reference samples by applying a filter to the reference samples, wherein:

when the filter is [1 2 1],

predV[x][y]=((nH−1−y)*((p[x−1][−1]+2*p[x][−1]+p[x+1][−1]+2)>>2)+(y+1)*p[−1][nTbH])<<Log2 (nW),

predH[x][y]=((nW−1−x)*((p[−1][y−1]+2*p[−1][y]+p[−1][y+1]+2)>>2)+(x+1)*p[nTbW][−1])<<Log2 (nH),

wherein predV[x][y] is a vertical component of the prediction sample, predH[x][y] is a horizontal component of the prediction sample, and p[x][y] (x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) is the reference sample; and

when the filter is [1 6 1],

predV[x][y]=((nH−1−y)*((p[x−1][−1]+(p[x][−1]*6)+p[x+1][−1]+4)>>3)+(y+1)*p[−1][nTbH])<<Log2 (nW),

predH[x][y]=((nW−1−x)*((p[−1][y−1]+(p[−1][y]*6)+p[−1][y+1]+4)>>3)+(x+1)*p[nTbW][−1])<<Log2 (nH),

wherein predV[x][y] is a vertical component of the prediction sample, predH[x][y] is a horizontal component of the prediction sample, and p[x][y] (x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) is the reference sample.

8. The encoder of claim 7 , wherein the value of the filtering indication is true when one or more of the following conditions are true:

current block size is larger than N luma samples (N could be a number equals to power of 2 and larger than 2, i.e 4, 8, 16, 32, 64, 128, . . . );

current block is NOT applied with intra sub-partition (ISP); or

current block is a luma block.

9. The encoder of claim 7 , wherein the programming, when executed by the one or more processors, configures the encoder to perform the method further comprising a position-dependent intra prediction (PDPC) stage, where, during the PDPC stage, reference samples (p[x][y], with x=−1, y=−1 . . . nTbH and x=0 . . . nTbW, y=−1) for the PDPC inputs are not filtered.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2024
From: WANG, BIAO; ESENLIK, SEMIH; KOTRA, ANAND MEHER; GAO, HAN; ALSHINA, ELENA ALEXANDROVNA
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 066168/0665 →
Priority Claims (1)
WO PCT/EP2019/073370 · Sep 2, 2019 · international
Continuity (2)
Continuation PCTCN2020112865 · Sep 1, 2020
Related Publication 20220286684A1 · Sep 8, 2022