US 12,143,620 B2
Filtering methods for angular intra prediction
Jie Chen, Beijing (CN); Yan Ye, San Diego, CA (US); Ru-Ling Liao, Beijing (CN); and Xinwei Li, Beijing (CN)
Assigned to Alibaba Group Holding Limited, Grand Cayman (KY)
Filed by ALIBABA GROUP HOLDING LIMITED, Grand Cayman (KY)
Filed on Aug. 19, 2021, as Appl. No. 17/406,569.
Claims priority of provisional application 63/068,482, filed on Aug. 21, 2020.
Claims priority of provisional application 63/092,224, filed on Oct. 15, 2020.
Prior Publication US 2022/0060734 A1, Feb. 24, 2022
Int. Cl. H04N 19/50 (2014.01); H04N 19/176 (2014.01)
CPC H04N 19/50 (2014.11) [H04N 19/176 (2014.11)] 17 Claims
OG exemplary drawing
 
1. A computer-implemented method for decoding a bitstream associated with one or more pictures, the method comprising:
decoding a flag associated with a target block; and
performing an intra predicting process to reconstruct the target block, wherein performing the intra predicting process comprises:
determining an intra prediction mode for the target block;
in response to the intra prediction mode is an angular mode, determining a filtered value by applying an 8-tap interpolation filter to a plurality of reference samples around the target block when the flag has a first value, and determining the filtered value by applying an M-tap interpolation filter to the plurality of reference samples when the flag has a second value, M being an integer less than 8; and
determining a predicted value of a sample of the target block based on the filtered value,
wherein the 8-tap interpolation filter is selected from a plurality of sets of interpolation filters based on the intra prediction mode, wherein each set of the plurality of sets of interpolation filters comprises 32 8-tap interpolation filters, and the plurality of sets of interpolation filters comprises at least one of:
a first set of 32 8-tap interpolation filters:
{33, 156, 209, 223, 211, 156, 33, 3},
{30, 153, 208, 223, 212, 159, 36, 3},
{27, 149, 208, 223, 213, 162, 39, 3},
{26, 146, 207, 223, 213, 164, 42, 3},
{23, 141, 206, 223, 214, 168, 46, 3},
{21, 138, 205, 223, 215, 170, 49, 3},
{18, 133, 204, 223, 216, 174, 53, 3},
{17, 130, 204, 222, 216, 176, 56, 3},
{16, 125, 203, 222, 217, 178, 60, 3},
{14, 123, 202, 222, 217, 180, 63, 3},
{13, 118, 201, 222, 218, 182, 67, 3},
{12, 113, 199, 222, 218, 184, 72, 4},
{10, 109, 198, 221, 219, 187, 76, 4},
{9, 106, 198, 221, 219, 188, 79, 4},
{9, 101, 195, 221, 219, 189, 84, 6},
{7, 97, 195, 220, 220, 191, 88, 6},
{6, 92, 194, 220, 220, 194, 92, 6},
{6, 88, 191, 220, 220, 195, 97, 7},
{6, 84, 189, 219, 221, 195, 101, 9},
{4, 79, 188, 219, 221, 198, 106, 9},
{4, 76, 187, 219, 221, 198, 109, 10},
{4, 72, 184, 218, 222, 199, 113, 12},
{3, 67, 182, 218, 222, 201, 118, 13},
{3, 63, 180, 217, 222, 202, 123, 14},
{3, 60, 178, 217, 222, 203, 125, 16},
{3, 56, 176, 216, 222, 204, 130, 17},
{3, 53, 174, 216, 223, 204, 133, 18},
{3, 49, 170, 215, 223, 205, 138, 21},
{3, 46, 168, 214, 223, 206, 141, 23},
{3, 42, 164, 213, 223, 207, 146, 26},
{3, 39, 162, 213, 223, 208, 149, 27},
{3, 36, 159, 212, 223, 208, 153, 30}; or
a second set of 32 8-tap interpolation filters:
{16, 170, 215, 226, 214, 169, 15, −1},
{13, 165, 214, 226, 215, 173, 20, −2},
{10, 162, 215, 226, 216, 176, 22, −3},
{8, 157, 214, 226, 216, 179, 27, −3},
{6, 152, 214, 226, 217, 182, 31, −4},
{3, 146, 213, 226, 218, 186, 36, −4},
{2, 143, 214, 226, 218, 188, 39, −6},
{0, 137, 213, 226, 219, 190, 45, −6},
{−1, 132, 212, 226, 220, 192, 49, −6},
{−3, 128, 213, 226, 220, 194, 53, −7},
{−4, 122, 211, 225, 221, 197, 59, −7},
{−6, 116, 210, 225, 222, 200, 64, −7},
{−6, 112, 211, 225, 222, 200, 68, −8},
{−7, 106, 210, 225, 222, 203, 74, −9},
{−7, 101, 209, 225, 223, 204, 78, −9},
{−9, 96, 208, 224, 224, 206, 84, −9},
{−9, 90, 207, 224, 224, 207, 90, −9},
{−9, 84, 206, 224, 224, 208, 96, −9},
{−9, 78, 204, 223, 225, 209, 101, −7},
{−9, 74, 203, 222, 225, 210, 106, −7},
{−8, 68, 200, 222, 225, 211, 112, −6},
{−7, 64, 200, 222, 225, 210, 116, −6},
{−7, 59, 197, 221, 225, 211, 122, −4},
{−7, 53, 194, 220, 226, 213, 128, −3},
{−6, 49, 192, 220, 226, 212, 132, −1},
{−6, 45, 190, 219, 226, 213, 137, 0},
{−6, 39, 188, 218, 226, 214, 143, 2},
{−4, 36, 186, 218, 226, 213, 146, 3},
{−4, 31, 182, 217, 226, 214, 152, 6},
{−3, 27, 179, 216, 226, 214, 157, 8},
{−3, 22, 176, 216, 226, 215, 162, 10},
{−2, 20, 173, 215, 226, 214, 165, 13}; or
a third set of 32 8-tap interpolation filters:
{0, 91, 108, 114, 108, 91, 0, 0},
{−1, 88, 107, 114, 108, 93, 3, 0},
{−3, 85, 106, 114, 109, 95, 6, 0},
{−3, 82, 107, 114, 109, 96, 8, −1},
{−3, 79, 109, 114, 109, 96, 11, −3},
{−4, 76, 108, 114, 109, 98, 14, −3},
{−6, 73, 107, 114, 110, 100, 17, −3},
{−6, 72, 107, 114, 110, 100, 18, −3},
{−6, 70, 107, 114, 110, 100, 20, −3},
{−7, 67, 106, 114, 111, 102, 22, −3},
{−8, 64, 106, 113, 111, 104, 25, −3},
{−9, 60, 106, 113, 112, 105, 29, −4},
{−9, 56, 107, 113, 112, 106, 33, −6},
{−7, 54, 107, 113, 112, 104, 35, −6},
{−6, 53, 107, 113, 112, 103, 36, −6},
{−6, 49, 106, 113, 112, 104, 40, −6},
{−6, 45, 105, 112, 112, 105, 45, −6},
{−6, 40, 104, 112, 113, 106, 49, −6},
{−6, 36, 103, 112, 113, 107, 53, −6},
{−6, 35, 104, 112, 113, 107, 54, −7},
{−6, 33, 106, 112, 113, 107, 56, −9},
{−4, 29, 105, 112, 113, 106, 60, −9},
{−3, 25, 104, 111, 113, 106, 64, −8},
{−3, 22, 102, 111, 114, 106, 67, −7},
{−3, 20, 100, 110, 114, 107, 70, −6},
{−3, 18, 100, 110, 114, 107, 72, −6},
{−3, 17, 100, 110, 114, 107, 73, −6},
{−3, 14, 98, 109, 114, 108, 76, −4},
{−3, 11, 96, 109, 114, 109, 79, −3},
{−1, 8, 96, 109, 114, 107, 82, −3},
{0, 6, 95, 109, 114, 106, 85, −3},
{0, 3, 93, 108, 114, 107, 88, −1}; or
a fourth set of 32 8-tap interpolation filters:
{46, 145, 210, 222, 210, 145, 46, 0},
{44, 142, 208, 221, 211, 147, 49, 2},
{43, 139, 206, 221, 211, 149, 52, 3},
{41, 136, 204, 221, 212, 151, 55, 4},
{40, 133, 202, 220, 212, 153, 58, 6},
{39, 130, 200, 220, 212, 155, 61, 7},
{37, 126, 198, 220, 213, 157, 64, 9},
{36, 123, 196, 219, 213, 160, 67, 10},
{34, 120, 194, 219, 213, 162, 71, 11},
{33, 117, 192, 218, 214, 163, 74, 13},
{31, 114, 190, 218, 214, 166, 77, 14},
{30, 111, 188, 218, 214, 167, 80, 16},
{28, 108, 186, 217, 215, 170, 83, 17},
{27, 105, 184, 217, 215, 172, 86, 18},
{26, 101, 182, 217, 215, 174, 89, 20},
{24, 99, 180, 216, 216, 176, 92, 21},
{23, 95, 178, 216, 216, 178, 95, 23},
{21, 92, 176, 216, 216, 180, 99, 24},
{20, 89, 174, 215, 217, 182, 101, 26},
{18, 86, 172, 215, 217, 184, 105, 27},
{17, 83, 170, 215, 217, 186, 108, 28},
{16, 80, 167, 214, 218, 188, 111, 30},
{14, 77, 166, 214, 218, 190, 114, 31},
{13, 74, 163, 214, 218, 192, 117, 33},
{11, 71, 162, 213, 219, 194, 120, 34},
{10, 67, 160, 213, 219, 196, 123, 36},
{9, 64, 157, 213, 220, 198, 126, 37},
{7, 61, 155, 212, 220, 200, 130, 39},
{6, 58, 153, 212, 220, 202, 133, 40},
{4, 55, 151, 212, 221, 204, 136, 41},
{3, 52, 149, 211, 221, 206, 139, 43},
{2, 49, 147, 211, 221, 208, 142, 44}.