You are on page 1of 41

US 20190110045A1

( 19) United States


(12) Patent Application Publication ( 10 ) Pub . No.: US 2019 /0110045 A1
Zhao et al. (43) Pub. Date: Apr. 11, 2019
(54 ) POSITION -DEPENDENT PREDICTION Publication Classification
COMBINATIONS IN VIDEO CODING (51) H04N
Int. Cl.19 / 11
(71) Applicant: QUALCOMM Incorporated , San (2006 .01 )
HO4N 19 / 176 (2006 .01)
Diego , CA (US) H04N 19 / 117 (2006 . 01)
2 ) U . S . CI.
(72 ) Inventors: Xin Zhao, Santa Clara , CA (US); CPC .... ....... H04N 19 /11 ( 2014 . 11 ); H04N 19 / 117
Vadim Seregin , San Diego , CA (US); ( 2014 .11); H04N 19 /176 (2014. 11)
Amir Said , San Diego , CA (US ); ABSTRACT
Marta Karczewicz , San Diego , CA (57)
(US ); Kai Zhang , San Diego , CA (US ); A video coder may generate a predictor block using an intra
Vijayaraghavan Thirumalai, Fremont, prediction mode. As part of generating the predictor block ,
CA (US) the video coder may, for each respective sample in a set of
samples in the predictor block , determine , based on an initial
value of the first weight and a distance between the respec
(21) Appl. No .: 16 / 154,261 tive sample and a first boundary of the predictor block , a
value of the first weight for the respective sample . Addi
tionally , the video coder may determine , based on the initial
( 22 ) Filed : Oct. 8 , 2018 value of the second weight and a distance between the
respective sample and a second boundary of the predictor
block , a value of the second weight for the respective
Related U .S. Application Data sample . The video coder may also determine a primary value
for the respective sample. The video coder may then deter
(60) Provisional
9 , 2017
application No. 62/570,019, filed on Oct . mine a secondary value for the respective sample based on
the first weight, second weight, and the primary value .

1000
GENERATE PREDICTOR BLOCK
1002
DETERMINE INITIAL VALUE OF FIRST
WEIGHT
1004
DETERMINE INITIAL VALUE OF SECOND
WEIGHT
1006
DETERMINE VALUE OF FIRST WEIGHT
FOR RESPECTIVE SAMPLE
1008
DETERMINE VALUE OF SECOND
WEIGHT FOR RESPECTIVE SAMPLE
- 1010
UPDATE THIRD WEIGHT FOR
RESPECTIVE SAMPLE
1012
DETERMINE VALUE OF FOURTH WEIGHT
FOR RESPECTIVE SAMPLE BASED ON
VALUE OF FIRST WEIGHT FOR
RESPECTIVE SAMPLE , VALUE OF
SECOND WEIGHT FOR RESPECTIVE
SAMPLE , AND VALUE OF THIRD WEIGHT
FOR RESPECTIVE SAMPLE
1014
DETERMINE PRIMARY VALUE FOR
RESPECTIVE SAMPLE ACCORDING TO
INTRA PREDICTION MODE
1016
DETERMINE SECONDARY VALUE FOR
RESPECTIVE SAMPLE

1018
GENERATE RESIDUAL DATA BASED ON PREDICTOR
BLOCK AND RESIDUAL DATA
Patent Application Publication Apr . 11 , 2019 Sheet 1 of 12 US 2019 /0110045 A1

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

SOURCE DEVICE DESTINATION DEVICE


12 14
VIDEO SOURCE DISPLAY DEVICE
18 32
OoooooooooooooOOOOOOOOOOOOOO !!

STORAGE MEDIA VIDEO DECODER


19 30
.

VIDEO STORAGE MEDIA


ENCODER 28

ii
20

OUTPUT 16 INPUT
INTERFACE Low boa com co to INTERFACE
22 26

FIG . 1
Patent Application Publication Apr . 11 , 2019 Sheet 2 of 12 US 2019 /0110045 A1

Wow

54 *

FIG . 2
Patent Application Publication Apr . 11 , 2019 Sheet 3 of 12 US 2019 /0110045 A1

YYYS
tes

FIG . 3
Patent Application Publication Apr . 11 , 2019 Sheet 4 of 12 US 2019 /0110045 A1

)
y
,
x
(
inc
1
y
-
N

Ein
*
L
-
N
X
*

Vy

DOO
1999

ARRA

4
.
FIG
Patent Application Publication Apr . 11 , 2019 Sheet 5 of 12 US 2019 /0110045 A1

172

AU Y (x ,y )

FIG . 5
Patent Application Publication Apr . 11 , 2019 Sheet 6 of 12 US 2019 /0110045 A1

-1 0 1 2 3 4 5 6 7
M
h

OVIE
ATI ,

thy
UOTID
LUID

?
XX
WW
W
*
DAL VA A

VA
Yv
Unfiltered
reference
nx, - 1)

SRS

WA EM
V

.RCWOtXY Prediction

ULVAI
VALDO
*

WAY
RSR SR

Unfiltered
reference
q [x , y ]

r x, -1]

FIG . 6A
Patent Application Publication Apr . 11 , 2019 Sheet 7 of 12 US 2019 /0110045 A1

-1 0 1 2 3 4 5 6 7
.

2
.
1

diri vo .
1
TRL .

rau
1

) )
17
. 2 22.
C

DMWAUNK OAMUTJS
.

*HIVER
HCHIINES

*
10
:
2

14.TINK
U

hwit Filtered
reference

MY NIALDVUR
*

S [x , - 1 ]
TINA TRIP .1TERI F
*

E.1CLIBRES
12
" V

F+IP14 TI
WIoNnDOweS 1117PI
at .
II

LAUDZT Prediction
q [x , y
A

TV21 .INLALUAWTORM Filtered


reference
$ {X , - 11

FIG . 6B
Patent Application Publication Apr . 11 , 2019 Sheet 8 of 12 US 2019 /0110045 A1

32

- - - - - - -- - - - - - - - - - - - - - - - - - - - - - - ---- -----

** ***** * **** * ******* **** *** ** **** * * ** * * R * **** * ******

FIG . 7A FIG . 7B

32

FIG . 7C FIG . 7D
Patent Application Publication Apr . 11 , 2019 Sheet 9 of 12 US 2019 /0110045 A1

inm d
M

ENTROPYENCODIG UNIT118
BITSREAM
QUANTIZ O
in m
UNIT 106

TRANSFOMPRCESING UNIT 104


INVERS QUANTIZO UNIT 108

EVNICDOER 20

102
ESLYNMTAXS TRANSFOMPRCESING
I N V E R S UNIT 110

+
:

FUINLTIER 114 DECO D PICTURE BUFER 116

DVIADTEAO

PODTIE DVIADTEAO
UPREDICTONPRONCEIS TNG
100
INTER PREDICTONPRCESING PREDICTONPRCESING
UNIT 120 INTRA UNIT 126

L
MEORY 101
8
.
FIG
Patent Application Publication Apr. 11 , 2019 Sheet 10 of 12 US 2019/0110045 A1

DECO D VIDEO
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????

DVEICODER 30 DECO DPICTUREBUFER 162 99

FILTER UNIT 160


152
COMPENSATI PREDICTONPRCESING
UPREDICTON PRONCEISTG MOTIN UNIT
DOMORRORROR
164 M

INTRA UNIT 166

INVERS TRANSFOMPRCESING UNIT 156

VENICDOE BITSREAM
DVIADTEAO MEORY ENTROPYDECOING
151 UNIT 150 INVERS QUANTIZO UNIT 154
9
.
FIG
Patent Application Publication Apr. 11 , 2019 Sheet 11 of 12 US 2019/0110045 A1

1000
GENERATE PREDICTOR BLOCK
< 1002
WARN DETERMINE INITIAL VALUE OF FIRST
WEIGHT
1004
DETERMINE INITIAL VALUE OF SECOND
WEIGHT
< 1006
DETERMINE VALUE OF FIRST WEIGHT
FOR RESPECTIVE SAMPLE
1008
LAR DETERMINE VALUE OF SECOND
WEIGHT FOR RESPECTIVE SAMPLE
- 1010
UPDATE THIRD WEIGHT FOR
RESPECTIVE SAMPLE
1012
DETERMINE VALUE OF FOURTH WEIGHT
FOR RESPECTIVE SAMPLE BASED ON
VALUE OF FIRST WEIGHT FOR
RESPECTIVE SAMPLE , VALUE OF
SECOND WEIGHT FOR RESPECTIVE
SAMPLE , AND VALUE OF THIRD WEIGHT
FOR RESPECTIVE SAMPLE
1014
DETERMINE PRIMARY VALUE FOR
RESPECTIVE SAMPLE ACCORDING TO
INTRA PREDICTION MODE
AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1016
DETERMINE SECONDARY VALUE FOR
RESPECTIVE SAMPLE

1018
GENERATE RESIDUAL DATA BASED ON PREDICTOR
BLOCK AND RESIDUAL DATA

FIG . 10
Patent Application Publication Apr. 11 , 2019 Sheet 12 of 12 US 2019/0110045 A1

V OOROOOOOOOOOOOOOOOOO
1100
GENERATE PREDICTOR BLOCK
< 1102
DETERMINE INITIAL VALUE OF FIRST
WEIGHT
1104
DETERMINE INITIAL VALUE OF SECOND
WEIGHT TUTVUSTUS

1106
DETERMINE VALUE OF FIRST WEIGHT
FOR RESPECTIVE SAMPLE
1108
DETERMINE VALUE OF SECOND
WEIGHT FOR RESPECTIVE SAMPLE
- 1110
UPDATE THIRD WEIGHT FOR
RESPECTIVE SAMPLE
1112
DETERMINE VALUE OF FOURTH WEIGHT
FOR RESPECTIVE SAMPLE BASED ON
VALUE OF FIRST WEIGHT FOR
RESPECTIVE SAMPLE , VALUE OF
SECOND WEIGHT FOR RESPECTIVE
SAMPLE , AND VALUE OF THIRD WEIGHT
FOR RESPECTIVE SAMPLE
21114
DETERMINE PRIMARY VALUE FOR
RESPECTIVE SAMPLE ACCORDING TO
INTRA PREDICTION MODE
1116
DETERMINE SECONDARY VALUE FOR
RESPECTIVE SAMPLE

1118

RECONSTRUCT, BASED ON PREDICTOR BLOCK AND


RESIDUAL DATA , DECODED BLOCK OF VIDEO DATA

FIG . 11
US 2019 /0110045 A1 Apr. 11 , 2019

POSITION -DEPENDENT PREDICTION of a fourth weight for the respective sample based on the
COMBINATIONS IN VIDEO CODING value of the first weight for the respective sample, the value
of the second weight for the respective sample , and the value
[0001 ] This application claims the benefit of U .S . Provi of the third weight for the respective sample ; determining a
sional Patent Application 62/570 ,019, filed Oct. 9, 2017 , the primary value for the respective sample according to the
entire content of which is incorporated by reference . intra prediction mode ; and determining a secondary value
TECHNICAL FIELD for the respective sample as a first value for the respective
sample right -shifted by a second value, the first value for the
[ 0002] This disclosure relates to video coding . respective sample being a sum of (i) the value of the first
weight for the respective sample, multiplied by a left refer
BACKGROUND ence sample for the respective sample that is left of the
respective sample, ( ii) the value of the second weight for the
[0003 ] Digital video capabilities can be incorporated into respective sample multiplied by an above reference sample
a wide range of devices, including digital televisions, digital for the respective sample that is above the respective sample ,
direct broadcast systems, wireless broadcast systems, per (iii ) the value of the third weight for the respective sample
sonal digital assistants (PDAs), laptop or desktop computers , multiplied by an above-left reference sample for the respec
tablet computers, e -book readers, digital cameras, digital tive sample that is above and left of the respective sample ,
recording devices , digital media players, video gaming ( iv ) the value of the fourth weight for the respective sample
devices, video game consoles, cellular or satellite radio multiplied by the primary value for the respective sample ,
telephones, smart phones, video teleconferencing devices , and ( v ) an offset value; and reconstructing , based on the
video streaming devices, and the like. Digital video devices predictor block and residual data , a decoded block of the
implement video compression techniques, such as those video data .
described in the standards defined by MPEG - 2 , MPEG -4 , [0007] In another example, this disclosure describes a
ITU - T H . 263, ITU - T H .264 /MPEG - 4 , Part 10 , Advanced method of encoding video data , the method comprising :
Video Coding (AVC ), ITU - T H .265 , High Efficiency Video generating a predictor block using an intra prediction mode ,
Coding (HEVC ) standard , and extensions of such standards.
The video devices may transmit, receive , encode , decode , wherein generating the predictor block comprises: determin
and/ or store digital video information more efficiently by ing an initial value of a first weight; determining an initial
value of a second weight; for each respective sample in a set
implementing such video compression techniques . of samples in the predictor block : determining, based on the
[ 0004 ] Video compression techniquesmay perform spatial initial value of the first weight and a distance between the
(intra - picture ) prediction and/ or temporal ( inter -picture ) pre respective sample and a first boundary of the predictor
diction to reduce or remove redundancy inherent in video block , a value of the first weight for the respective sample ;
sequences . For block -based video coding, a video slice ( e . g ., determining , based on the initial value of the second weight
a video frame or a portion of a video frame) may be and a distance between the respective sample and a second
partitioned into video blocks, such as coding tree blocks and boundary of the predictor block , a value of the second
coding blocks. Spatial or temporal prediction results in a weight for the respective sample ; determining a value of a
predictor block for a block to be coded . Residual data third weight for the respective sample ; determining a value
represents pixel differences between the original block to be of a fourth weight for the respective sample based on the
coded and the predictor block . For further compression , the value of the first weight for the respective sample, the value
residual data may be transformed from the pixel domain to of the second weight for the respective sample , and the value
a transform domain , resulting in residual transform coeffi of the third weight for the respective sample ; determining a
cients , which then may be quantized . primary value for the respective sample according to the
intra prediction mode ; and determining a secondary value
SUMMARY for the respective sample as a first value for the respective
[0005 ] In general, this disclosure describes techniques sample right- shifted by a second value , the first value for the
related to intra prediction and intra mode coding. Techniques respective sample being a sum of (i) the value of the first
of this disclosure may be used in the context of advanced weight for the respective sample , multiplied by a left refer
video codecs, such as extensions of HEVC or the next ence sample for the respective sample that is left of the
generation of video coding standards. respective sample , ( ii ) the value of the second weight for the
[ 0006 ] In one example, this disclosure describes a method respective sample multiplied by an above reference sample
of decoding video data, the method comprising: generating for the respective sample that is above the respective sample ,
a predictor block using an intra prediction mode, wherein (iii ) the value of the third weight for the respective sample
generating the predictor block comprises : determining an multiplied by an above -left reference sample for the respec
initial value of a first weight ; determining an initial value of tive sample that is above and left of the respective sample ,
a second weight; for each respective sample in a set of (iv ) the value of the fourth weight for the respective sample
samples in the predictor block : determining , based on the multiplied by the primary value for the respective sample ,
initial value of the first weight and a distance between the and (v ) an offset value; and generating residual data based on
respective sample and a first boundary of the predictor the predictor block and a coding block of the video data .
block , a value of the first weight for the respective sample; [0008 ] In another example , this disclosure describes an
determining , based on the initial value of the second weight apparatus for decoding video data , the apparatus compris
and a distance between the respective sample and a second ing: one or more storage media configured to store the video
boundary of the predictor block , a value of the second data ; and one or more processors configured to : generate a
weight for the respective sample ; determining a value of a predictor block using an intra prediction mode , wherein the
third weight for the respective sample; determining a value one or more processors are configured such that, as part of
US 2019 /0110045 A1 Apr. 11 , 2019

generating the predictor block , the one or more processors : respective sample multiplied by an above reference sample
determine an initial value of a first weight; determine an for the respective sample that is above the respective sample ,
initial value of a second weight ; for each respective sample ( iii ) the value of the third weight for the respective sample
in a set of samples in the predictor block : determine, based multiplied by an above -left reference sample for the respec
on the initial value of the first weight and a distance between tive sample that is above and left of the respective sample ,
the respective sample and a first boundary of the predictor ( iv ) the value of the fourth weight for the respective sample
block , a value of the first weight for the respective sample ; multiplied by the primary value for the respective sample ,
determine , based on the initial value of the second weight and ( v ) an offset value; and generate residual data based on
and a distance between the respective sample and a second the predictor block and a coding block of the video data .
boundary of the predictor block , a value of the second [0010 ] In another example, this disclosure describes an
weight for the respective sample ; determine a value of a apparatus for decoding video data , the apparatus compris
third weight for the respective sample ; determine a value of ing : means for storing the video data ; and means for gen
a fourth weight for the respective sample based on the value erating a predictor block using an intra prediction mode ,
of the first weight for the respective sample , the value of the wherein the means for generating the predictor block com
second weight for the respective sample , and the value of the prises: means for determining an initial value of a first
third weight for the respective sample ; determine a primary weight; means for determining an initial value of a second
value for the respective sample according to the intra weight ; for each respective sample in a set of samples in the
prediction mode; and determine a secondary value for the predictor block : means for determining, based on the initial
respective sample as a first value for the respective sample value of the first weight and a distance between the respec
right- shifted by a second value, the first value for the tive sample and a first boundary of the predictor block , a
respective sample being a sum of (i) the value of the first value of the first weight for the respective sample ; means for
weight for the respective sample, multiplied by a left refer determining, based on the initial value of the second weight
ence sample for the respective sample that is left of the and a distance between the respective sample and a second
respective sample, (ii) the value of the second weight for the boundary of the predictor block , a value of the second
respective sample multiplied by an above reference sample weight for the respective sample ; means for determining a
for the respective sample that is above the respective sample , value of a third weight for the respective sample ; means for
( iii ) the value of the third weight for the respective sample determining a value of a fourth weight for the respective
multiplied by an above -left reference sample for the respec sample based on the value of the first weight for the
tive sample that is above and left of the respective sample , respective sample , the value of the second weight for the
(iv ) the value of the fourth weight for the respective sample respective sample, and the value of the third weight for the
multiplied by the primary value for the respective sample , respective sample ; means for determining a primary value
and ( v ) an offset value; and reconstruct, based on the for the respective sample according to the intra prediction
predictor block and residual data , a decoded block of the mode ; and means for determining a secondary value for the
video data . respective sample as a first value for the respective sample
[ 0009 ] In another example, this disclosure describes an right -shifted by a second value, the first value for the
apparatus for encoding video data , the apparatus compris respective sample being a sum of (i) the value of the first
ing : one or more storage media configured to store the video weight for the respective sample , multiplied by a left refer
data ; and one or more processors configured to : generate a ence sample for the respective sample that is left of the
predictor block using an intra prediction mode, wherein the respective sample , ( ii ) the value of the second weight for the
one or more processors are configured such that, as part of respective sample multiplied by an above reference sample
generating the predictor block , the one or more processors : for the respective sample that is above the respective sample ,
determine an initial value of a first weight ; determine an ( iii ) the value of the third weight for the respective sample
initial value of a second weight; for each respective sample multiplied by an above -left reference sample for the respec
in a set of samples in the predictor block : determine , based tive sample that is above and left of the respective sample ,
on the initial value of the first weight and a distance between (iv ) the value of the fourth weight for the respective sample
the respective sample and a first boundary of the predictor multiplied by the primary value for the respective sample ,
block , a value of the first weight for the respective sample ; and ( v ) an offset value ; and means for reconstructing , based
determine, based on the initial value of the second weight on the predictor block and residual data , a decoded block of
and a distance between the respective sample and a second the video data .
boundary of the predictor block , a value of the second [0011 ] In another example , this disclosure describes an
weight for the respective sample; determine a value of a apparatus for encoding video data , the apparatus compris
third weight for the respective sample ; determine a value of ing : means for storing the video data , and means for gen
a fourth weight for the respective sample based on the value erating a predictor block using an intra prediction mode ,
of the first weight for the respective sample , the value of the wherein the means for generating the predictor block com
second weight for the respective sample , and the value of the prises : means for determining an initial value of a first
third weight for the respective sample ; determine a primary weight; means for determining an initial value of a second
value for the respective sample according to the intra weight ; for each respective sample in a set of samples in the
prediction mode; and determine a secondary value for the predictor block : means for determining , based on the initial
respective sample as a first value for the respective sample value of the first weight and a distance between the respec
right- shifted by a second value, the first value for the tive sample and a first boundary of the predictor block , a
respective sample being a sum of (i ) the value of the first value of the firstweight for the respective sample ; means for
weight for the respective sample , multiplied by a left refer determining, based on the initial value of the second weight
ence sample for the respective sample that is left of the and a distance between the respective sample and a second
respective sample , (ii) the value of the second weight for the boundary of the predictor block , a value of the second
US 2019 /0110045 A1 Apr. 11 , 2019

weight for the respective sample ; means for determining a [0013 ] In another example, this disclosure describes a
value of a third weight for the respective sample ; means for computer-readable storage medium having instructions
determining a value of a fourth weight for the respective stored thereon that, when executed , cause one or more
sample based on the value of the first weight for the processors to : generate a predictor block using an intra
respective sample, the value of the second weight for the prediction mode, wherein the one or more processors are
respective sample , and the value of the third weight for the configured such that, as part of generating the predictor
respective sample ; means for determining a primary value block , the one or more processors : determine an initial value
for the respective sample according to the intra prediction of a first weight; determine an initial value of a second
mode; and means for determining a secondary value for the weight; for each respective sample in a set of samples in the
respective sample as a first value for the respective sample predictor block : determine, based on the initial value of the
right- shifted by a second value , the first value for the first weight and a distance between the respective sample
respective sample being a sum of (i) the value of the first and a firstboundary of the predictor block , a value of the first
weight for the respective sample, multiplied by a left refer weight for the respective sample ; determine, based on the
ence sample for the respective sample that is left of the initial value of the second weight and a distance between the
respective sample, ( ii ) the value of the second weight for the respective sample and a second boundary of the predictor
respective sample multiplied by an above reference sample block , a value of the second weight for the respective
for the respective sample that is above the respective sample , sample ; determine a value of a third weight for the respec
(iii ) the value of the third weight for the respective sample tive sample; determine a value of a fourth weight for the
multiplied by an above -left reference sample for the respec respective sample based on the value of the first weight for
tive sample that is above and left of the respective sample, the respective sample, the value of the second weight for the
(iv ) the value of the fourth weight for the respective sample respective sample , and the value of the third weight for the
multiplied by the primary value for the respective sample , respective sample ; determine a primary value for the respec
and ( v ) an offset value ; and means for generating residual tive sample according to the intra prediction mode; and
data based on the predictor block and a coding block of the determine a secondary value for the respective sample as a
video data . first value for the respective sample right-shifted by a second
value, the first value for the respective sample being a sum
[0012] In another example , this disclosure describes a of (i) the value of the first weight for the respective sample,
computer- readable storage medium having instructions multiplied by a left reference sample for the respective
stored thereon that, when executed , cause one or more sample that is left of the respective sample , ( ii) the value of
processors to : generate a predictor block using an intra the second weight for the respective sample multiplied by an
prediction mode, wherein the one or more processors are above reference sample for the respective sample that is
configured such that, as part of generating the predictor above the respective sample , ( iii) the value of the third
block , the one or more processors : determine an initial value weight for the respective sample multiplied by an above -left
of a first weight; determine an initial value of a second reference sample for the respective sample that is above and
weight; for each respective sample in a set of samples in the left of the respective sample , ( iv ) the value of the fourth
predictor block : determine, based on the initial value of the weight for the respective sample multiplied by the primary
first weight and a distance between the respective sample value for the respective sample, and ( v ) an offset value; and
and a first boundary of the predictor block , a value of the first generate residual data based on the predictor block and a
weight for the respective sample ; determine, based on the coding block of the video data .
initial value of the second weight and a distance between the [0014 ] The details of one or more aspects of the disclosure
respective sample and a second boundary of the predictor are set forth in the accompanying drawings and the descrip
block , a value of the second weight for the respective
sample ; determine a value of a third weight for the respec tion below . Other features, objects, and advantages of the
tive sample ; determine a value of a fourth weight for the techniques described in this disclosure will be apparent from
respective sample based on the value of the first weight for the description, drawings , and claims.
the respective sample , the value of the second weight for the
respective sample , and the value of the third weight for the BRIEF DESCRIPTION OF DRAWINGS
respective sample ; determine a primary value for the respec
tive sample according to the intra prediction mode ; and [0015 ) FIG . 1 is a block diagram illustrating an example
determine a secondary value for the respective sample as a video encoding and decoding system that may use one or
first value for the respective sample right- shifted by a second more techniques described in this disclosure.
value , the first value for the respective sample being a sum [0016 ] FIG . 2 illustrates an example of intra prediction for
of ( i) the value of the first weight for the respective sample , a 16x16 block .
multiplied by a left reference sample for the respective [0017 ] FIG . 3 illustrates example intra prediction modes.
sample that is left of the respective sample , (ii) the value of [0018 ] FIG . 4 is a conceptual diagram illustrating an
the second weight for the respective sample multiplied by an example of planar mode as defined in HEVC .
above reference sample for the respective sample that is [0019 ] FIG . 5 is a conceptual diagram illustrating an
above the respective sample , (iii) the value of the third example of an angular intra prediction mode .
weight for the respective sample multiplied by an above -left
reference sample for the respective sample that is above and [0020 ] FIG . 6A is a conceptual diagram illustrating an
left of the respective sample , (iv ) the value of the fourth example of data available for position -dependent prediction
weight for the respective sample multiplied by the primary combination for a 4x4 pixel block .
value for the respective sample , and (v ) an offset value; and [0021 ] FIG . 6B is a conceptual diagram illustrating an
reconstruct , based on the predictor block and residual data , example of data available for position - dependent prediction
a decoded block of video data . combination for a 4x4 pixel block .
US 2019 /0110045 A1 Apr. 11 , 2019

[0022 ] FIG . 7A is a block diagram illustrating an example schememay be associated with coding efficiency gains. For
using a planar/DC mode with a weighting applied for instance, the same amount of video data may be encoded
generating a prediction sample (0 , 0 ), in accordance with a using fewer bits .
technique of this disclosure . [0033] Despite the coding efficiency gains associated with
[0023 ] FIG . 7B is a block diagram illustrating an example use of the PDPC scheme described above , there are several
using a planar/DC mode with a weighting applied for drawbacks. For example , the PDPC scheme is limited to the
generating a prediction sample ( 1 , 0 ), in accordance with a planar mode only to control encoder complexity , which may
technique of this disclosure . limit the coding gain contributed by the PDPC scheme.
[0024 ] FIG . 7C is a block diagram illustrating an example 10034 ] This disclosure describes techniques that may
using a planar/DC mode with a weighting applied for improve the PDPC scheme described above, resulting in a
generating a prediction sample (0 , 1), in accordance with a simplified PDPC scheme. For instance , in accordance with
technique of this disclosure . one example technique of this disclosure , a video coder
[0025 ] FIG . 7D is a block diagram illustrating an example ( e . g ., a video encoder or a video decoder generates a
using a planar /DC mode with a weighting applied for predictor block using an intra prediction mode. As part of
generating a prediction sample ( 1 , 1), in accordance with a generating the predictor block , the video coder may deter
mine an initial value of a first weight and determine an initial
technique of this disclosure . value of a second weight. Furthermore , for each respective
100261 FIG . 8 is a block diagram illustrating an example sample in a set of samples in the predictor block , the video
video encoder that may implement one or more techniques coder may determine , based on the initial value of the first
described in this disclosure . weight and a distance between the respective sample and a
[0027] FIG . 9 is a block diagram illustrating an example first boundary of the predictor block , a value of the first
video decoder that may implement one or more techniques weight for the respective sample . The video coder may also
described in this disclosure . determine , based on the initial value of the second weight
[0028 ] FIG . 10 is a flowchart illustrating an example and a distance between the respective sample and a second
operation of a video encoder in accordance with a technique boundary of the predictor block , a value of the second
of this disclosure . weight for the respective sample . Furthermore , the video
[0029 ] FIG . 11 is a flowchart illustrating an example coder may determine a value of a third weight for the
operation of a video decoder in accordance with a technique respective sample . The video coder may also determine a
of this disclosure. value of a fourth weight for the respective sample based on
the value of the first weight for the respective sample , the
DETAILED DESCRIPTION value of the second weight for the respective sample, and the
value of the third weight for the respective sample. Addi
(0030 ] A video coder (e .g ., a video encoder or a video tionally, the video coder may determine a primary value for
decoder ) may use intra prediction to generate a predictor the respective sample according to the intra prediction
block for a current block of a current picture . In general, mode. Next, the video coder may determine a secondary
when using intra prediction to generate a predictor block , the value for the respective sample as a first value for the
video coder determines a set of reference samples in a respective sample right-shifted by a second value, the first
column left of the current block in the current picture and/ or value for the respective sample being a sum of:
in a row above the current block in the current picture . The [0035 ] (i) the value of the first weight for the respective
video codermay then use the reference samples to determine sample , multiplied by a left reference sample for the
values of samples in the predictor block . respective sample that is left of the respective sample ,
[0031] In High Efficiency Video Coding (HEVC ) and [ 0036 ] (ii) the value of the second weight for the
other video coding standards, the video coder performs intra respective sample multiplied by an above reference
reference smoothing. When the video coder performs intra sample for the respective sample that is above the
reference smoothing , the video coder applies a filter to the respective sample ,
reference samples prior to using the reference samples to [0037 ] ( iii) the value of the third weight for the respec
determine predicted values of samples in the predictor tive sample multiplied by an above -left reference
block . For instance, the video coder may apply a 2 - tap sample for the respective sample that is above and left
bilinear filter , a 3 -tap (1,2 ,1)/4 filter, or a mode- dependent of the respective sample ,
intra smoothing filter to the reference samples. In the filter [0038 ] (iv ) the value of the fourth weight for the respec
description above , the ' /4 ' denotes normalization by divid tive sample multiplied by the primary value for the
ing results by 4 . Typically, performing intra reference respective sample , and
smoothing improves prediction accuracy, especially when [0039 ] (v ) an offset value.
the current block represents a smoothly varying gradient. In this example , the intra prediction mode is not necessarily
[0032] While intra reference smoothing may improve pre limited to the planar mode . Rather, the PDPC techniques
diction accuracy in many situations, there are other situa described in this example may be used with other intra
tions in which it may be beneficial to use the unfiltered prediction modes , potentially resulting in improved com
reference samples . Position -dependent prediction combina pression performance . Moreover, the design of this disclo
tion (PDPC ) is a scheme that has been devised to address sure may avoid the use of division operations, which may
these issues and improve intra prediction . In the PDPC simplify implementation , conserve power, and accelerate
scheme, a video coder determines a value of a predictor decoding .
block sample based on the filtered reference samples, unfil [0040 ] FIG . 1 is a block diagram illustrating an example
tered reference samples, and the position of the predictor video encoding and decoding system 10 that may utilize
block sample within the predictor block . Use of the PDPC techniques of this disclosure . As shown in FIG . 1, system 10
US 2019 /0110045 A1 Apr. 11 , 2019

includes a source device 12 that provides encoded video data wireless transmitter, a modem , a wired networking compo
to be decoded at a later time by a destination device 14 . In n ent (e . g ., an Ethernet card ), or another physical component.
particular, source device 12 provides the encoded video data In examples where output interface 22 includes a wireless
to destination device 14 via a computer- readable medium transmitter, output interface 22 may be configured to trans
16 . Source device 12 and destination device 14 may include mit data , such as encoded video data , modulated according
any of a wide range of devices or apparatuses , including to a cellular communication standard , such as 4G , 4G - LTE ,
desktop computers , notebook (i. e., laptop ) computers , tablet LTE Advanced , 5G , and the like. In some examples where
computers , set-top boxes , telephone handsets such as so output interface 22 includes a wireless transmitter, output
called “ smart” phones, tablet computers , televisions , cam interface 22 may be configured to transmit data , such as
eras, display devices, digital media players, video gaming encoded video data , modulated according to other wireless
consoles, video streaming devices, or the like. In some standards, such as an IEEE 802 . 11 specification , an IEEE
cases, source device 12 and destination device 14 are 802 . 15 specification ( e. g ., ZigBeeTM ), a BluetoothTM stan
equipped for wireless communication . Thus, source device dard , and the like. In some examples , circuitry of output
12 and destination device 14 may be wireless communica interface 22 is integrated into circuitry of video encoder 20
tion devices. The techniques described in this disclosure and / or other components of source device 12 . For example ,
may be applied to wireless and / or wired applications. Source video encoder 20 and output interface 22 may be parts of a
device 12 is an example video encoding device (i.e ., a device system on a chip (SOC ). The SoC may also include other
for encoding video data ). Destination device 14 is an components , such as a general purpose microprocessor, a
example video decoding device (i.e., a device for decoding graphics processing unit, and so on .
video data ). [0045) Destination device 14 may receive encoded video
[ 0041] The illustrated system 10 of FIG . 1 is merely one data to be decoded via computer - readable medium 16 .
example . Techniques for processing video data may be Computer -readable medium 16 may include any type of
performed by any digital video encoding and / or decoding medium or device capable ofmoving the encoded video data
device . In some examples, the techniques may be performed from source device 12 to destination device 14 . In some
by a video encoder/decoder, typically referred to as a examples, computer -readable medium 16 includes a com
“ CODEC .” Source device 12 and destination device 14 are munication medium to enable source device 12 to transmit
examples of such coding devices in which source device 12 encoded video data directly to destination device 14 in
generates coded video data for transmission to destination real-time . The communication medium may include any
device 14 . In some examples, source device 12 and desti wireless or wired communication medium , such as a radio
nation device 14 operate in a substantially symmetrical frequency (RF ) spectrum or one ormore physical transmis
manner such that each of source device 12 and destination sion lines . The communication medium may form part of a
device 14 include video encoding and decoding compo packet-based network , such as a local area network , a
nents . Hence , system 10 may support one -way or two -way wide - area network , or a global network such as the Internet .
video transmission between source device 12 and destina The communication medium may include routers , switches,
tion device 14 , e.g., for video streaming , video playback , base stations, or any other equipment thatmay be useful to
video broadcasting, or video telephony. facilitate communication from source device 12 to destina
[0042] In the example of FIG . 1 , source device 12 includes tion device 14 . Destination device 14 may include one or
a video source 18 , storage media 19 configured to store more data storage media configured to store encoded video
video data , a video encoder 20 , and an output interface 22 . data and decoded video data .
Destination device 14 includes an input interface 26 , storage [0046 ] In some examples , output interface 22 may output
media 28 configured to store encoded video data , a video data , such as encoded video data , to an intermediate device ,
decoder 30 , and display device 32. In other examples, source such as a storage device . Similarly , input interface 26 of
device 12 and destination device 14 include other compo destination device 14 may receive encoded data from the
nents or arrangements. For example , source device 12 may intermediate device . The intermediate device may include
receive video data from an external video source , such as an any of a variety of distributed or locally accessed data
external camera . Likewise , destination device 14 may inter storage media such as a hard drive , Blu -ray discs , DVDs,
face with an external display device, rather than including an CD -ROMs, flash memory , volatile or non -volatile memory,
integrated display device . or any other suitable digital storage media for storing
[0043] Video source 18 is a source of video data . The encoded video data . In some examples, the intermediate
video data may include a series of pictures . Video source 18 device corresponds to a file server. Example file servers
may include a video capture device , such as a video camera , include web servers , FTP servers, network attached storage
a video archive containing previously captured video , and/ or (NAS ) devices, or local disk drives.
a video feed interface to receive video data from a video [0047] Destination device 14 may access the encoded
content provider . In some examples, video source 18 gen video data through any standard data connection , including
erates computer graphics -based video data , or a combination an Internet connection . This may include a wireless channel
of live video , archived video , and computer-generated (e . g ., a Wi-Fi connection ), a wired connection ( e .g ., DSL ,
video . Storage media 19 may be configured to store the cable modem , etc .), or a combination of both that is suitable
video data . In each case , the captured , pre -captured , or for accessing encoded video data stored on a file server. The
computer - generated video may be encoded by video encoder transmission of encoded video data from the storage device
20 . may be a streaming transmission , a download transmission ,
[0044 ] Output interface 22 may output the encoded video or a combination thereof.
information to a computer-readable medium 16 . Output [0048] Computer-readable medium 16 may include tran
interface 22 may include various types of components or sientmedia , such as a wireless broadcast or wired network
devices. For example, output interface 22 may include a transmission, or storage media ( that is , non - transitory stor
US 2019 /0110045 A1 Apr. 11 , 2019

age media ), such as a hard disk , flash drive , compact disc , known as ISO /IEC MPEG - 4 AVC ), including its Scalable
digital video disc, Blu - ray disc , or other computer- readable Video Coding (SVC ) and Multi- View Video Coding (MVC )
media . In some examples, a network server (not shown ) may extensions, or another video coding standard or specifica
receive encoded video data from source device 12 and tion . In some examples , video encoder 20 and video decoder
provide the encoded video data to destination device 14 , 30 encode and decode video data according to the High
e . g ., via network transmission . Similarly , a computing Efficiency Video Coding (HEVC ), which as known as
device of a medium production facility , such as a disc ITU - T H .265 , its range and screen content coding exten
stamping facility, may receive encoded video data from sions, its 3D video coding extension (3D -HEVC ) , its mul
source device 12 and produce a disc containing the encoded tiview extension (MV-HEVC ), or its scalable extension
video data . Therefore , computer -readable medium 16 may (SHVC ). A Joint Video Exploration Team (JVET) is cur
be understood to include one or more computer - readable rently developing the Versatile Video Coding (VVC ) stan
media of various forms, in various examples . dard based on the Joint Exploration Model.
[ 0049 ] Input interface 26 of destination device 14 receives [0053] This disclosure may generally refer to " signaling ”
data from computer-readable medium 16 . Input interface 26 certain information , such as syntax elements. The term
may include various types of components or devices . For " signaling” may generally refer to the communication of
example , input interface 26 may include a wireless receiver, syntax elements and/ or other data used to decode the
a modem , a wired networking component (e . g ., an Ethernet encoded video data . Such communication may occur in real
card ), or another physical component. In examples where or near - real- time. Alternately , such communication may
input interface 26 includes a wireless receiver , input inter occur over a span of time, such as might occur when storing
face 26 may be configured to receive data , such as the syntax elements to a computer -readable storage medium in
bitstream , modulated according to a cellular communication a bitstream at the time of encoding, which then may be
standard , such as 4G , 4G - LTE , LTE Advanced , 5G , and the retrieved by a decoding device at any time after being stored
like . In some examples where input interface 26 includes a to this medium .
wireless receiver , input interface 26 may be configured to [0054 ] Video data includes a series of pictures . Pictures
receive data , such as the bitstream ,modulated according to may also be referred to as “ frames.” A picture may include
other wireless standards, such as an IEEE 802 . 11 specifica one or more sample arrays . Each respective sample array of
tion, an IEEE 802 . 15 specification ( e . g ., ZigBeeTM ), a Blu a picture includes a 2 - dimensional array of samples for a
etoothTM standard , and the like . In some examples, circuitry respective color component. For example , a picture may
of input interface 26 may be integrated into circuitry of include a 2 - dimensional array of luma samples, a two
video decoder 30 and /or other components of destination dimensional array of Cb chroma samples, and a two- dimen
device 14 . For example , video decoder 30 and input inter sional array of Cr chroma samples . In other instances , a
face 26 may be parts of a SoC . The SoC may also include picture may be monochrome and may only include an array
other components, such as a general purpose microproces of luma samples.
sor, a graphics processing unit, and so on . [0055 ] As part of encoding video data , video encoder 20
[0050 ] Storage media 28 may be configured to store may encode pictures of the video data . In other words, video
encoded video data , such as encoded video data ( e. g ., a encoder 20 may generate encoded representations of the
bitstream ) received by input interface 26 . Display device 32 pictures of the video data . This disclosure may refer to an
displays the decoded video data to a user. Display device 32 encoded representation of a picture as a " coded picture " or
may include any of a variety of display devices such as a an “ encoded picture .”
cathode ray tube (CRT), a liquid crystal display (LCD ), a [0056 ] As part of generating an encoded representation of
plasma display, an organic light emitting diode (OLED ) a picture , video encoder 20 encodes blocks of samples in the
display , or another type of display device . sample arrays of the picture. A block is a 2 -dimensional
10051] Video encoder 20 and video decoder 30 each may array of data , such as a 2 -dimensional array of samples .
be implemented as any of a variety of suitable circuitry , such Video encoder 20 may include , in a bitstream , an encoded
as one or more microprocessors, digital signal processors representation of a block .
(DSPs ), application specific integrated circuits (ASICs ), [0057 ]. In some examples, to encode a block of the picture ,
field programmable gate arrays (FPGAs), discrete logic , video encoder 20 performs intra prediction or inter predic
software , hardware , firmware or any combinations thereof. tion to generate one ormore predictor blocks for the block .
When the techniques are implemented partially in software , Additionally , video encoder 20 may generate residual data
a device may store instructions for the software in a suitable , for the block . The residual block includes residual samples.
non -transitory computer -readable medium and may execute Each residual sample may indicate a difference between a
the instructions in hardware using one or more processors to sample of one of the generated predictor blocks and a
perform the techniques of this disclosure. Each of video corresponding sample of the block . Video encoder 20 may
encoder 20 and video decoder 30 may be included in one or apply a transform to blocks of residual samples to generate
more encoders or decoders , either of which may be inte transform coefficients . Furthermore , video encoder 20 may
grated as part of a combined encoder/decoder (CODEC ) in quantize the transform coefficients. In some examples , video
a respective device . encoder 20 may generate one or more syntax elements to
[0052 ] In some examples , video encoder 20 and video represent a transform coefficient. Video encoder 20 may
decoder 30 encode and decode video data according to a entropy encode one or more of the syntax elements repre
video coding standard or specification . For example , video senting the transform coefficient.
encoder 20 and video decoder 30 may encode and decode [0058 ] In some video coding specifications, to generate an
video data according to ITU - T H . 261, ISO / IEC MPEG - 1 encoded representation of a picture, video encoder 20 par
Visual , ITU - T H . 262 or ISO /IEC MPEG - 2 Visual, ITU - T titions each sample array of the picture into coding tree
H .263, ISO /IEC MPEG -4 Visual and ITU - T H .264 ( also blocks (CTBs) and encodes the CTBs. A CTB is an NxN
US 2019 /0110045 A1 Apr. 11 , 2019

block of samples in a sample array of a picture . For example , block based on decoded samples of a reference picture (i.e.,
a CTB can range in size from 16x16 to 64x64 . a picture other than the current picture ).
[0059 ] A coding tree unit (CTU ) of a picture includes one [0064] A video coder, such as video encoder 20 or video
or more collocated CTBs and syntax structures used to decoder 30 , may perform intra prediction using an intra
encode the samples of the one or more collocated CTBs. For prediction mode selected from available intra prediction
instance , each CTU may include a CTB of luma samples of modes . The intra prediction modes may include directional
a picture, two corresponding CTBs ofchroma samples of the intra prediction modes, which may also be referred to as
picture , and syntax structures used to encode the samples of intra prediction directions . Different directional intra pre
the CTBs. In monochrome pictures or pictures having three diction modes correspond to different angles . In some
separate color planes , a CTU may include a single CTB and examples , to determine a value of a current sample of a
syntax structures used to encode the samples of the CTB . A predictor block using a directional intra prediction mode, the
CTU may also be referred to as a “ tree block ” or a “ largest video coder may determine a point where a line passing
coding unit " (LCU ). In this disclosure , a “ syntax structure ” through the current sample at the angle corresponding to the
may be defined as zero or more syntax elements present directional intra prediction mode intersects a set of border
together in a bitstream in a specified order. In some codecs , samples . The border samples may include samples in a
an encoded picture is an encoded representation containing column immediately left of the predictor block and samples
all CTUs of the picture . in a row immediately above the predictor block . If the point
[0060 ] To encode a CTU of a picture, video encoder 20 is between two of the border samples , the video coder may
may partition the CTBs of the CTU into one or more coding interpolate or otherwise determine a value corresponding to
blocks . A coding block is an NxN block of samples . In some the point. If the point corresponds to a single one of the
codecs , to encode a CTU of a picture , video encoder 20 may border samples, the video coder may determine that the
partition the coding tree blocks of the CTU to partition the value of the point is equal to the border sample . The video
CTBs of the CTU into coding blocks according to a tree coder may set the value of the current sample of the
structure , hence the name " coding tree units.” predictor block equal to the determined value of the point.
[0061] A coding unit (CU ) includes one or more coding [0065 ] Video encoder 20 may generate one or more
blocks and syntax structures used to encode samples of the residual blocks for the CU . For instance, video encoder 20
one or more coding blocks. For example , a CU may include may generate a separate residual for each color component
a coding block of luma samples and two corresponding ( e . g ., luma, Cb , and Cr). Each sample in a residual block of
coding blocksof chroma samples of a picture that has a luma the CU for a color component indicates a difference between
sample array , a Cb sample array, and a Cr sample array, and a sample in a predictor block of the CU for the color
syntax structures used to encode the samples of the coding component and a corresponding sample in the coding block
blocks . In monochrome pictures or pictures having three of the CU for the color component.
separate color planes , a CU may include a single coding [0066 ] In some video coding standards, video encoder 20
block and syntax structures used to code the samples of the may decompose the residual blocks of a CU into one or more
coding block . transform blocks. For instance , video encoder 20 may use
[0062] Furthermore , video encoder 20 may encode CUsof quad - tree partitioning to decompose the residual blocks of a
a picture of the video data . In some codecs, as part of CU into one or more transform blocks . A transform block is
encoding a CU , video encoder 20 may partition a coding a rectangular ( e . g ., square or non -square ) block of samples
block of the CU into one or more prediction blocks . A on which the same transform is applied . A transform unit
prediction block is a rectangular (i.e ., square or non -square ) ( TU ) of a CU may include one or more transform blocks.
block of samples on which the same prediction is applied . A Video encoder 20 may apply one or more transforms to a
prediction unit (PU ) of a CU may include one or more transform block of a TU to generate a coefficient block for
prediction blocks of a CU and syntax structures used to the TU . A coefficient block is a two- dimensional array of
predict the one ormore prediction blocks. For example, a PU transform coefficients. Video encoder 20 may generate syn
may include a prediction block of luma samples, two cor tax elements indicating some or all the potentially quantized
responding prediction blocks of chroma samples , and syntax transform coefficients . Video encoder 20 may entropy
structures used to predict the prediction blocks. In mono encode (e. g ., using Context-Adaptive Binary Arithmetic
chrome pictures or pictures having three separate color Coding (CABAC )) one or more of the syntax elements
planes, a PU may include a single prediction block and indicating a quantized transform coefficient.
syntax structures used to predict the prediction block . In [0067 ] Video encoder 20 may output a bitstream that
other codecs, video encoder 20 does not partition a coding includes encoded video data . In other words , video encoder
block of a CU into prediction blocks . Rather, prediction 20 may output a bitstream that includes an encoded repre
occurs at the CU level. Thus , the coding block of a CU may sentation of video data . The encoded representation of the
be synonymous with a prediction block of a CU . video data may include an encoded representation of pic
[0063] Video encoder 20 may generate a predictor block tures of the video data . For example , the bitstream may
(e .g ., a luma, Cb, and Cr predictor block ) for a prediction include a sequence of bits that forms a representation of
block ( e. g., luma, Cb , and Cr prediction block ) of a CU . encoded pictures of the video data and associated data . In
Video encoder 20 may use intra prediction or inter predic some examples , a representation of an encoded picture may
tion to generate a predictor block . If video encoder 20 uses include encoded representations of blocks of the picture .
intra prediction to generate a predictor block , video encoder [0068 ] Video decoder 30 may receive a bitstream gener
20 may generate the predictor block based on decoded ated by video encoder 20 . As noted above , the bitstream may
samples of the picture that includes the CU . If video encoder include an encoded representation of video data . Video
20 uses inter prediction to generate a predictor block of a decoder 30 may decode the bitstream to reconstruct pictures
current picture , video encoder 20 may generate the predictor of the video data. As part of decoding the bitstream , video
US 2019 /0110045 A1 Apr. 11 , 2019

decoder 30 obtains syntax elements from the bitstream . the 16x16 image block ( in dark outlined square ) is predicted
Video decoder 30 reconstructs pictures of the video data by the above and left neighboring reconstructed samples
based at least in part on the syntax elements obtained from ( reference samples) along a selected prediction direction (as
the bitstream . The process to reconstruct pictures of the indicated by the white arrow ). In FIG . 2 , a block square
video data may be generally reciprocal to the process contains a 16x16 block 50 . In FIG . 2 , block 50 is predicted
performed by video encoder 20 to encode the pictures . by the above and left neighboring reconstructed samples 52,
[0069] For instance, as part of decoding a picture of the 54 (i.e., reference samples) along a selected prediction
video data , video decoder 30 may use inter prediction or direction . In FIG . 2 , the samples outside the black box are
intra prediction to generate predictor blocks for CUs of the the reference samples . The white arrow in FIG . 2 indicates
picture . Additionally, video decoder 30 may determine trans the selected prediction direction .
form coefficients based on syntax elements obtained from [0073 ] FIG . 3 illustrates example intra prediction modes.
the bitstream . In some examples, video decoder 30 inverse In some examples , the intra prediction of a luma block
quantizes the determined transform coefficients. Inverse includes 35 modes, including the Planar mode , DC mode
quantization maps a quantized value to a reconstructed and 33 angular modes . The 35 modes of the intra prediction
value . For instance, video decoder 30 may inverse quantize are indexed as shown in the table below .
a value by determining the value multiplied by a quantiza
tion step size. Furthermore, video decoder 30 may apply an TABLE 1
inverse transform on the determined transform coefficients
to determine values of residual samples. Video decoder 30 Specification of intra prediction mode and associated names
may reconstruct a block of the picture based on the residual Intra prediction mode Associated name
samples and corresponding samples of the generated pre
dictor blocks. For instance , video decoder 30 may add INTRA _ PLANAR
residual samples to corresponding samples of the generated 2 . . . 34
INTRA DC
INTRA ANGULAR2 . . . INTRA ANGULAR34
predictor blocks to determine reconstructed samples of the
block .
[0070 ] More specifically, video decoder 30 may use inter [0074 ] FIG . 4 is a conceptual diagram illustrating an
prediction or intra prediction to generate one or more example of Planar mode . For Planar mode , which is typi
predictor blocks for each PU of a current CU . In addition , cally the most - frequently used intra prediction mode, the
video decoder 30 may inverse quantize coefficient blocks of prediction sample is generated as shown in FIG . 4 . To
TUs of the current CU . Video decoder 30 may perform perform Planar prediction for an NxN block , for each
inverse transforms on the coefficient blocks to reconstruct sample pry located at (x , y ), the prediction value may be
transform blocks of the TUs of the current CU . Video calculated by applying a bilinear filter to four specific
decoder 30 may reconstruct a coding block of the current CU neighboring reconstructed samples, i.e ., reference samples .
based on samples of the predictor blocks of the PUs of the The four reference samples include the top - right recon
current CU and residual samples of the transform blocks of structed sample TR , the bottom -left reconstructed sample
the TUsofthe current CU . In some examples , video decoder BL , and the two reconstructed samples located at the same
30 may reconstruct the coding blocks of the current CU by column (rr ) and row (r _ w ) of the current sample . The
adding the samples of the predictor blocks for PUs of the planar mode can be formulated as below :
current CU to corresponding decoded samples of the trans Pxy = ((N -x1) L + (N - yl)- T + xl·R + y1.B )/( 2* M )
form blocks of the TUsof the current CU . By reconstructing
the coding blocks for each CU of a picture , video decoder 30 where xl = x + 1, yl = y + 1, R = TR and B = BL .
may reconstruct the picture .
[0071 ] A slice of a picture may include an integer number [0075 ] For DC mode, the predictor block is filled with the
of blocks of the picture . For example , a slice of a picture may average value of the neighboring reconstructed samples .
Generally , both Planar and DC modes are applied for
include an integer number of CTUsof the picture . The CTUS modeling smoothly varying and constant image regions.
of a slice may be ordered consecutively in a scan order, such
as a raster scan order. In some codecs, a slice is defined as [0076 ] For angular intra prediction modes in HEVC ,
an integer number of CTUS contained in one independent which include 33 different prediction directions, the intra
slice segment and all subsequent dependent slice segments prediction process can be described as follows. For each
(if any ) that precede the next independent slice segment (if given angular intra prediction mode, the intra prediction
any ) within the same access unit . Furthermore , in some direction can be identified accordingly ; for example, accord
codecs , a slice segment is defined as an integer number of ing to FIG . 3 , intra mode 18 corresponds to a pure horizontal
CTUs ordered consecutively in the tile scan and contained in prediction direction , and intra mode 26 corresponds to a pure
a single NAL unit. A tile scan is a specific sequential vertical prediction direction . Thus , in the example of FIG . 3 ,
ordering of CTBs partitioning a picture in which the CTBs intra mode 18 corresponds to the horizontalmode and intra
are ordered consecutively in CTB raster scan in a tile , mode 26 corresponds to the vertical mode.
whereas tiles in a picture are ordered consecutively in a [0077 ] FIG . 5 is a conceptual diagram illustrating an
raster scan of the tiles of the picture . A tile is a rectangular example of an angular intra prediction mode. Given a
region of CTBs within a particular tile column and a specific intra prediction direction , for each sample of the
particular tile row in a picture. predictor block , its coordinate ( x , y ) is first projected to the
[0072 ] Intra prediction performs image block prediction row / column of neighboring reconstructed samples along the
using the block ' s spatially neighboring reconstructed image prediction direction , as shown in an example in FIG . 5 .
samples . A typical example of the intra prediction for a Suppose (x ,y) is projected to the fractional position a
16x16 image block is shown in FIG . 2 . With intra prediction , between two neighboring reconstructed samples L and R ;
US 2019 /0110045 A1 Apr. 11 , 2019

then the prediction value for (x , y ) may be calculated using Abs(p [- 1 ][ - 1]+ p [nTbS* 2 – 1 ][ - 1] – 2* p [nTbS- 1 ][- 1 ])
a two-tap bi- linear interpolation filter, formulated as follows: < ( 1 < < ( BitDepthy- 5 ))
Pxy=(1- a )•L +a :R. Abs(p [ - 1 ][ - 1 ]+ p [- 1 ][nTbS * 2 – 1 ]- 2 * p [ - 1 ][nTbS - 1 ])
[0078 ] For instance , as shown in the example of FIG . 5 , < ( 1 < < ( BitDepthy- 5 ))
coordinates (x ,y ) of a sample 70 of a predictor block 72 are
projected along a specific intra prediction direction 74 . To
[0096 ] Otherwise, bilntFlag is set equal to 0 .
[0097] The filtering is performed as follows:
avoid floating point operations, in HEVC , the above calcu [ 0098 ] If bilntFlag is equal to 1, the filtered sample
lation is actually approximated using integer arithmetic as: values pF [x ][y ] with x = - 1 , y = - 1..63 and x = 0 ..63, y = - 1
Pxy =((32 –a):L + a:R + 16)> > 5, are derived as follows:
where a is an integer equal to 32 * a . pF [-1][-1]=P[- 1][-1] (8 -30)
[0079 ] In some examples, before intra prediction , the
neighboring reference samples are filtered using a 2 - Tap pF [- 1 ][y] = {(63 - y )* p [- 1 ][ - 1 ]+ (y + 1)* p [ - 1 ][63 ]+ 32 )
bilinear or 3 - Tap ( 1,2 , 1 )/4 filter, as known as intra reference > > 6 for y = 0 ..62 (8-31)
smoothing , or mode-dependent intra smoothing (MDIS ). pF [- 1 ][63 ]= p [- 1][63 ] (8 -32)
When doing intra prediciton , given the intra prediction mode
index (predModeIntra ) and block size (nTbS ), it is decided pF[x ][- 1 ]= {(63 - x)* p [- 1 ][ - 1]+ (x + 1)* p [63 ][- 1]+ 32 )
whether an reference smoothing process is performed and > > 6 for x = 0 ..62 (8 - 33 )
which smooth filter is used . The intra prediction mode index
is an index indicating an intra prediction mode . The text pF [63][-1]=p[63][- 1] (8 - 34 )
below from the HEVC standard describes a filtering process [0099 ] Otherwise (bilntFlag is equal to 0 ), the filtered
of the neighboring samples . sample values pF [ x ][y ] with x = - 1, y = - 1 ..nTbS * 2 - 1
8.4 .4 .2.3 Filtering Process of Neighbouring Samples and x = 0 ..nTbS * 2 - 1 , y = - 1 are derived as follows:
[ 0080 ] Inputs to this process are: pF[-1 ][- 1]= (p [- 1][0]+ 2*p [- 1][- 1]+P [0 ][- 1]+ 2)> > 2 (8 -35)
10081 ] the neighbouring samples p [ x ][ y ], with x = - 1 , pF [- 1 ][y ]= (p [- 1][v + 1 ]+ 2 * p [- 1 ][y ]+ p [ - 1 ][y - 1 ]+ 2 )
y = - 1 ..nTbS * 2 - 1 and x = 0 ..nTbS * 2 - 1 , y = - 1 , > > 2 for y = 0..nTbS * 2 - 2 (8 -36 )
[0082 ] a variable nTbS specifying the prediction block PF [- 1][nTbS * 2 – 1 ]=P [- 1 ][nTbS* 2 – 1 ] (8 -37)
size .
Outputs of this process are the filtered samples pF [x ][ y ], pF [x ][ - 1) = (p [x - 1 ][- 1]+ 2* p [x ][ - 1 ]+ p [x + 1 ][ - 1 ]+ 2 )
with x = - 1 , y = - 1 ..nTbS * 2 - 1 and x = 0 ..nTbS * 2 - 1 , y = - 1 . > > 2 for x = 0 ..nTbS * 2 - 2 (8- 38 )
The variable filterFlag is derived as follows:
[0083 ] If one or more of the following conditions are pF[n TbS * 2–1][-1]=P [nTbS * 2– 1][- 1] (8-39)
true, filterFlag is set equal to 0 : [0100 ] Panusopone et al., “ Unequal Weight Planar Predic
[0084 ] predModeIntra is equal to INTRA _ DC . tion and Constrained PDPC ,” Joint Video Exploration Team
[0085 ] nTbS is equal 4 . ( JVET ) of ITU - T SG 16 WP 3 and ISO /IEC JTC 1 /SC
[0086 ] Otherwise , the following applies : 29WG 11 , 5th Meeting , Geneva, CH , 12 - 20 Jan . 2017 ,
[0087 ] The variable minDistVerHor is set equal to document JVET- E0068, described an unequal weight planar
Min ( Abs(predModeIntra - 26 ), Abs(predModeIntra (UWP) mode . In the UWP mode , for a WxH (widthxheight )
10 )). block , the planar prediction is performed in the manner of
[0088 ] The variable intraHorVerDistThres[nTbS ] is FIG . 4 with :
specified in Table 8 - 3 . Pxv = ((y1 * H * ( W - x1 )) L + (x1 * W * (H - yl )).T + (x1 * yl * H )
[0089 ] The variable filterFlag is derived as follows: •R + (x1 * yl * W ).B )/( W * H * (x1 + y1 ))
[0090 ] If minDistVerHor is greater than intraHor where R and B are calculated as shown below ,
VerDistThres [nTbS ], filterFlag is set equal to 1 .
[0091] Otherwise, filterFlag is set equal to 0 . R = (TR *(H -yl )+ BR * y1)/H ;
TABLE 8 - 3 B = ( BL * (W -x1 )+ BR * (k + 1 ))/W ;
where BR is calculated as shown below ,
Specification of intraHorVerDistThres[nTbS ] for various
prediction block sizes BR = (H * TR + W * BL)/( W + H );
nTbS = 8 nTbS = 16 nTbS = 32 and where Pxy is a value of the predicted sample .
intraHorVerDistThres?, 7 1 0 [0101 ] Although the cross -complement redundancy is sig
nificantly reduced in the YCbCr color space , correlation
between the three -color components still exists . Various
When filterFlag is equal to 1 , the following applies: techniques have been studied to improve video coding
[0092 ] The variable biIntFlag is derived as follows: performance by further reducing the correlation between the
[0093 ] If all of the following conditions are true, bilnt three color components . For example , in 4 : 2 : 0 chroma video
Flag is set equal to 1 : coding, a technique called Linear Model (LM ) prediction
[0094 ] strong _ intra _ smoothing _ enabled _ flag is mode was studied during development of the HEVC stan
equal to 1 dard . In 4 : 2 : 0 sampling, each of the two chroma arrays has
[0095 ] nTbS is equal to 32 half the height and half the width of the luma array. With the
US 2019 /0110045 A1 Apr. 11 , 2019

LM prediction mode , chroma samples are predicted based [0105 ] FIG . 6A is a conceptual diagram illustrating an
on reconstructed luma samples of the same block by using example of data available for PDPC for a 4x4 pixel block .
a linear model as follows: FIG . 6B is a conceptual diagram illustrating an example of
pred (ij) = a * recz(i,j)+ B ( 1) data available for PDPC for a 4x4 pixel block . With PDPC ,
given any two sets of pixel predictions p [x , y ] and q [x , y ],
where predc(i, j) represents a prediction of chroma samples computed using only the unfiltered and filtered ( or
in a current block and rec , ( i, i) represents a down - sampled smoothed ) references r and s, respectively , the combined
reconstructed luma samples of the current block . Parameters predicted value of a pixel, denoted by v [ x, y ], is defined by:
a and ß are derived from causal reconstructed samples [x,y]= c(x,y]p»[x,y]+(1 -?[x,y ])as[x,y ] (5 )
around the current block . Causal samples of a block are
samples that occur prior to the block in a decoding order. If where c [x , y ] is the set of combination parameters, of which
the chroma block size is denoted by NxN , then both i and j the value depends on a pixel position . In FIG . 6A and FIG .
are within the range [0 , N ). 6B , references (i.e ., reference samples ) are shown as shaded
[ 0102 ] Parameters a and ß in equation (5 ) are derived by squares and prediction samples are shown as white squares.
minimizing regression error between the neighboring recon
structed luma and chroma samples around the current block . [0106 ] One practical implementation of PDPC uses the
formula :

Ela, B) = (y: - (Q •X; + B )2 (2)


vler,9= °* =yChr= [-A1=,1y:]-– )Chr.[- 1, - 1] ||
The parameters a and B are solved as follows: 21x /dad 1 + [x, ylqCHEVC)[x, y]
I X ; Yi Xi '

uQ = 12 x;• X; – 2 x;· E x; where c ,', cz", c?" , cz" , g , and du, dn E { 1,2 }, are pre -defined
parameters controlling how fast the weights for left, top - left
B = ( y; - a . Xx;)/1 and top unfiltered reference sample are decaying along the
horizontal and vertical direction , N is the block size ,
q (HEVC)(x ,y ] is prediction values computed according to the
[ 0103] In the equations above , Xi is a down -sampled HEVC standard , for the specific mode, using filtered refer
reconstructed luma reference sample where the color format ences , and :
is not 4 : 4 : 4 (i.e ., the color format is one in which one chroma
sample corresponds to multiple luma samples ), y ; is recon
structed chroma reference samples without down - sampling ,
and I is the number of reference samples. In other words, the
video coder may down-sample the reconstructed luma ref b(x,y)=--LES 494 )
erence samples based on the color format not being 4 : 4 : 4 ,
but refrain from down -sampling the reconstructed luma is a normalization factor, defined by the parameters . Refer
reference samples based on the color formatbeing 4 : 4 :4 . For ence filters , e.g ., 3 - tap { 1, 2 ,1 } , 5 - Tap { 1 ,4 ,6 ,4 , 1 } or 7 -tap
a target NxN chroma block , when both left and above causal { 1,6 , 15, 20 , 15 ,6 , 1 }, are applied on unfiltered references to
samples are available, the total number of involved samples generate the filtered references. In this disclosure, the nota
I is equal to 2N . When only left or above causal samples are
available, the total number of involved samples I is equal to tion { t?, t2, . . . tc . . . , tn } for taps of a filter indicates that
N . Here , N is always equal to 2 " (wherein m may be a filtered value of a current sample in a set of samples is
different for different CU sizes ). Therefore , to reduce the
equal to a weighted sum of samples before and after the
complexity, shifting operations can be used to implement the current sample, where the weight applied to the current
division operations in equations (3 ) and ( 4 ). A reference sample is the center weight in { t? , t2, . . . tc . . . , tn } (i.e.,
tc) and weights tj . . . te- l are weights applied to samples
sample may be considered to be unavailable when a true before the current sample and te+ l . . . ty are weights applied
value of the reference sample is unavailable for use by a to samples after the current sample . In some examples ,
video decoder ( e . g ., when the reference sample is outside a low -pass filters can be used as reference filters. A typical
slice , picture , or tile boundary with respect to the prediction low - pass filter can only have positive filter coefficients, or
block ) . negative filter coefficients can be present but the absolute
[0104 ] U .S . Patent Pub . No. 2017 -0094285 -A1 describes a value is relatively small or close to zero .
set of parameterized equations defining how to combine
predictions based on filtered and unfiltered reference values, [0107 ] Alternatively , PDPC can be formulated as a 4 -tap
and on the position of the predicted pixel . This scheme is filter as below :
called position -dependent prediction combination (PDPC ),
and has been adopted in JEM 7 . A . Said et al, “ Position
dependent intra prediction combination ,” Geneva , Switzer v [x, y ] = wTºr [x, - 1] + WL•r[ - 1, y ] – . - - - - . -.
(8)
land , ITU - T SG16 , COM16 -C1046 contribution, October WTL: r[ - 1, - 1 ] + (1 WT - WL + wTL )g (HEVC)[x , yl
2015 , is a standard submission document regarding the
adopted subject matter . In JEM 7 , PDPC is applied in Planar
mode only .
US 2019 /0110045 A1 Apr. 11 , 2019

where according to the intra prediction process specified by HEVC .


In some examples , offset may be equal to 0 , 0 .5 , or another
value .
(V)
Ci Ci
WT = 2 Ly /dy?] , WL = 2x/d , WIL - 2Ly/dy ] C2 [0111 ] In another example , the video coder may calculate
[x / dn ) a value of a prediction sample at coordinates (x, y ) according
to equation ( 10 ), below .
are the weightings applied on the top , left , top -left unfiltered
reference samples. (WT. r[x, - 1] + WL• r[ - 1, y] + wTL•r[ - 1, - 1] + (10 )
[0108 ] There are several shortcomings in the JEM related (1 – wT - WL - WTL )qs[x , y ] + offset) > > rightShift
to the PDPC mode . For example , in JEM 7 , PDPC is applied
to planar mode only, which limits the coding gain contrib
uted by PDPC . In JEM 7 , there is a boundary filter applied
to DC mode , and an edge filter applied to horizontal and [0112 ] In equation (10 ), q [x , y ] denotes a value of a
vertical modes. The boundary filter applied in DC mode is prediction sample at coordinates (x , y ) determined according
a filter for the predictor across block boundaries on the left to an intra prediction process, which may be the intra
and above . Horizontal/Vertical edge filter is a filter compen prediction process specified by HEVC or another intra
sating the difference between the horizontal and vertical prediction process .
reference pixel and top left corner pixel. These coding tools [0113 ] In another example, the video coder may calculate
refine the intra prediction in a way that overlaps with PDPC a value of a prediction sample at coordinates (x , y ) according
in terms of algorithm design . Existence of several coding to equation ( 11), below .
tools that overlap with each other is not desired in terms of
a clean and harmonized design of intra prediction . The
parameters in PDPC are derived based on training, which (WT -r[x, – 1] + WL•r [- 1, y] + WTL-r[- 1, - 1] + (11)
may be sub -optimal in terms of coding gain for different (2rightShift – wT – WL - WTL )qs[x , y ] + offset) > > rightShift
sequences. The UWP mode requires division operations,
which are not preferred for practical implementation .
Although UWP can be alternatively approximated by using Equation (11) shows an example relationship between right
a look -up table (LUT) to avoid divisions , this requires Shift and the value from which wt, wl , and wTL are
additional memory to store the LUT. To resolve the prob subtracted to determine the fourth weight. The equations
lemsmentioned above , this disclosure proposes the follow used in the sections entitled “ Specification of intra predic
ing techniques. tion mode INTRA PLANAR ," " Specification of intra pre
[0109 ] This disclosure describes simplified PDPC tech diction mode INTRA _ DC ,” “ Specification of intra predic
niques that may address one or more of the shortcomings tion mode INTRA _ HOR , ” and “ Specification of intra
described above . FIG . 7A is a block diagram illustrating an prediction mode INTRA _ VER " below use a version of
example of using a planar /DC mode with a weighting equation (11) where rightShift is equal to 6 , and conse
applied for generating a prediction sample (0 , 0 ) , in accor quently the value from which wT, WL , and wTL are sub
dance with a technique of this disclosure . FIG . 7B is a block tracted to determine the fourth weight is equal to 64 .
diagram illustrating an example using a planar/DC mode [0114 ] To avoid a LUT table for the weights as occurred
with a weighting applied for generating a prediction sample in the original PDPC design , in the simplified version , a
(1 , 0 ), in accordance with a technique of this disclosure . FIG . video coder implemented in accordance with the techniques
7C is a block diagram illustrating an example using a of this this disclosure may select the initial weights wL , WT
planar /DC mode with a weighting applied for generating a for left and top reference samples ( e .g ., 32 , 32 as shown in
prediction sample (0 , 1 ), in accordance with a technique of FIG . 7A ), derive the weight wTL for the top - left reference
this disclosure . FIG . 7D is a block diagram illustrating an samples as - (wL > > 4 ) -(wT> > 4 ) (e.g ., - 4 as shown in FIG .
example using a planar/DC mode with a weighting applied 7A ), and then calculate the PDPC prediction for the first
for generating a prediction sample ( 1 , 1 ), in accordance with sample in the block by applying equation (9 ), ( 10 ), or (11).
a technique of this disclosure . The simplified PDPC tech [0115 ] Moving to the next sample in the block , the initial
niques disclosed herein are applied for both luminance ( Y ) values of weights wL , WT, wTL are updated based on the
and chrominance (Cb, Cr) components , only luminance distance between the current sample and the block bound
components, or only chrominance components . aries. For example, the update can be just a shift operation ,
[0110 ] In accordance with a technique of this disclosure, a such as “ > > 1 ” or “ > > 2 ” , i. e ., a weight is divided by 2 or 4
video coder may calculate a prediction sample at coordinates (e .g ., moving from (0 , 0 ) to (1 , 0 ) as shown in FIG . 7A and
( x , y ) as follows using equation (9 ), below . FIG . 7B , WL is divided by 4 ). Moving to the next sample in
the block , the weights are updated again and so on . In such
(9) an approach , there is no need to have a LUT with weights,
v[x, y) = (wT• r[x, – 1 ] + WL•r [- 1, y ] + wTL• r[- 1, - 1] + since all the weights are derived from the initial weights .
(1 – wT - WL - WTL ) HEVO) [x, y ] + offset) > > rightShift [0116 ] Thus, in accordance with a technique of this dis
closure , the video coder ( e . g ., video encoder 20 or video
decoder 30 ) may determine an initial value of a first weight
In equation (9 ) and elsewhere in this disclosure , example (WL ) and may determine an initial value of a second weight
values of offset and rightShift may include offset = 32 and (WT). Furthermore , for each respective sample in a set of
rightShift= 6 . In Equation (9 ), q,(HEVC) [x , y ] denotes a value samples in the predictor block , the video coder may deter
of a prediction sample at coordinates (x , y ) determined mine, based on the initial value of the first weight and a
US 2019 /0110045 A1 Apr. 11 , 2019

distance between the respective sample and a first boundary a threshold size of WXL ( e. g., 32x32, 16x16 , etc.) and may
of the predictor block , a value of the first weight for the update the weight after processing two samples of the
respective sample . The video coder may also determine, predictor block if the size of the predictor block is greater
based on the initial value of the second weight and a distance than the threshold size of WxL . In another example , the
between the respective sample and a second boundary of the video coder may update a weight (e.g ., the first, second,
predictor block , a value of the second weight for the third , and /or fourth weight) after processing each sample of
respective sample . Furthermore , the video coder may deter a predictor block if the intra prediction mode of the predictor
mine a value of a third weight (WTL ) for the respective block is a directional intra prediction mode and may update
sample. The video coder may also determine a value of a the weight after processing two samples of the predictor
fourth weight for the respective sample based on the value block if the intra prediction mode of the predictor block is
of the first weight for the respective sample , the value of the the Planar or DC mode .
second weight for the respective sample, and the value of the [0124 ] In one implementation example, a dual implemen
third weight for the respective sample . For instance , the tation of the simplified PDPC techniques of this disclosure
video coder may determine the value of the fourth weight for may be possible and both implementations may provide the
the respective sample as (64 -wL -wT-wTL ) or in accor identical results . In one implementation , the simplified
dance with any of the other examples provided in this PDPC techniques of this disclosure can be considered as a
disclosure . Additionally, the video coder may determine a second stage after the conventional intra prediction is
primary value ( x , y ]) for the respective sample according derived . That is , the simplified PDPC techniques of this
to the intra prediction mode. Next, the video coder may disclosure can be seen as a prediction post processing. Such
determine a secondary value for the respective sample as a an approach may provide a uniform implementation for all
first value for the respective sample right- shifted by a second intra modes , but may require an additional stage in the intra
value, the first value for the respective sample being a sum prediction . In another implementation , the simplified PDPC
of: techniques of this disclosure may be implemented as a
[0117 ] (i) the value of the first weight for the respective modified intra prediction mode, i. e ., another intra prediction
sample , multiplied by a left reference sample for the mode different from conventional intra prediction . In such
respective sample that is left of the respective sample, an approach , the modification can be intra prediction mode
[0118 ] (ii) the value of the second weight for the respec specific , but it may notrequire an additional stage in the intra
tive sample multiplied by an above reference sample prediction . The simplified PDPC techniques of this disclo
for the respective sample that is above the respective sure may have this duality in the implementation , which may
sample , provide an additional advantage and an implementer may
[0119 ] ( iii) the value of the third weight for the respec choose whichever approach most fits the codec design .
tive sample multiplied by an above -left reference [0125 ] For intra prediction , for each intra prediction
sample for the respective sample that is above and left sample (e.g ., for each respective sample of the predictor
of the respective sample, block or a subset thereof), after the intra prediction sample
[0120 ] (iv ) the value of the fourth weight for the respec is generated (i.e ., after a primary value for the respective
tive sample multiplied by the primary value for the sample is determined ), the prediction sample value may be
respective sample, and further adjusted by a weighted sum of a left reference
[0121 ] ( v ) an offset value . sample , a top reference sample , a top -left reference sample,
In some examples, each of the values of the first, second, and its original prediction sample value (i.e ., the primary
third , and fourth weights is a non- zero value . value for the respective sample ). The weighting of the left
10122] In some examples, the update of wL , WT and wTL reference sample is denoted wL , the weighting of the top
may not happen after deriving a PDPC prediction for each reference sample is denoted wT, and the weighting of the
sample . That is , in some examples, the video coder does not top -left reference sample is denoted WTL . In some
determine different values of the first, second , and third examples, a video coder may derive wTL by a weighted sum
weights for each separate sample of the predictor block . For ofwL and wT ( e . g ., WTL = a :WL + b .wT) . Thus, in some such
example , the update may happen after N processed samples examples, the video codermay determine a value of the third
(e .g ., when N = 2 , the update happens after every second weight (WTL ) for a sample of the predictor block as a sum
sample ). In another example , the video coder updates wL of a first parameter (a ) multiplied by the value of the first
every other sample along the horizontal direction and wT is weight (WL ) for the respective sample plus a second param
updated every other sample along the vertical direction . eter (b ) multiplied by the value of the second weight (WT)
Additionally, all involved weights (e .g ., the first , second , for the respective sample . In some examples , wL and WT are
third , and fourth weights ) may have different update pro initialized as 0 .5 . In some examples , each of the first
cesses and distance dependencies. For example, the video parameter and the second parameter is between 0 and 1 ,
coder may update the first, second, third , and fourth weights exclusive .
after processing different numbers of samples; and the [0126 ] The values of the first parameter (a ) and the second
amount by which the video coder changes the first , second , parameter (b ) may be determined in one or more of various
third , and fourth weights according to distance from bound ways. For example , the values of a and b may be mode
aries of the predictor block may differ. dependent. For instance , in an example where the values of
[ 0123] In some examples, how the update is performed a and b are mode dependent, the values of a and b may be
and after how many samples,may depend on the block size , dependent on different intra prediction directions . Thus, in
intra mode , transform used , and so on . For example , the this example , different values of a and b can be applied for
video coder may update a weight ( e.g ., the first, second , different intra prediction directions. For example , for non
third , and /or fourth weight) after processing each sample of directional intra prediction modes ( e. g ., planar mode and DC
a predictor block if a size of the predictor block is less than mode ), the first parameter (a ) is equal to the second param
US 2019 /0110045 A1 Apr. 11 , 2019
13

eter (b ) (i.e., a = b ). In another example where the values of [0130 ] In one example, the techniques disclosed here
a and b are mode dependent, a look - up table is pre - defined , (above weightings of left, top and top - left reference
input to the look -up table is the intra prediction mode index , samples ) are applied for Planar mode , DC mode , horizontal
and output of the look -up table is the values of a and b . In mode and vertical mode.
some examples, if vertical prediction is used , then more [0131] In some examples, the video coder may apply the
preference can be given to b , i.e. b > a . Similar , for horizontal simplified PDPC techniques of this disclosure only when
prediction , a may be greater than b . particular conditions apply. For instance, when the condi
[0127 ] Furthermore , in other examples where the values of tions do not apply, the video coder may determine secondary
a and b are mode -dependent, for directional intra prediction values of samples in a predictor block using conventional
modes ( e. g., horizontal and vertical), the first parameter (a ) intra prediction . In one example, the video codermay apply
and the second parameter (b ) are derived based on the intra the simplified PDPC techniques of this disclosure for LM
prediction angle difference or the intra mode index differ mode or enhanced LM mode (Chroma component ) as
ence relative to horizontal and vertical prediction direction . described in Zhang et al., " Enhanced Cross -Component
For instance, in one example , for horizontal prediction , a is Linear Model Intra -prediction ," Joint Video Exploration
equal to 0 and b is equal to 1 ; for vertical prediction , a is Team (WET) of ITU - T SG 16 WP 3 and ISO /IEC JTC 1/SC
equal to 1 and b is equal to 0 . In this example , for 29 /WG 11, 4th Meeting, Chengdu , CN , 15 -21 Oct . 2016 ,
vertical- like prediction angles , the angle difference relative document no. WET-D0110 . In this example, the video coder
to vertical prediction is measured to calculate a and b . does not apply the simplified PDPC techniques of this
Furthermore , in this example , for horizontal-like prediction disclosure for a predictor block of a CU when LM mode or
angles , the angle difference relative to horizontal prediction enhanced LM mode is not applied in the CU . In some
is measured to calculate a and b . examples, the simplified PDPC techniques of this disclosure
[0128 ] In another example of how the values of the first are applied for certain block sizes , e. g ., for block area size
parameter (a ) and the second parameter (b ) may be deter greater than a threshold ( e. g ., prediction blocks larger (or
mined , a and b are two constant values regardless of the smaller) than 8x8 , 16x16 , 32x32 , 16x8, etc .). In some
position inside the predictor block . In this example , typical examples, the simplified PDPC techniques of this disclosure
values of a and b includes: 1/16, 1/32 , 1/8, 1/4, 1/2, 1 and 0 . In are applied for certain types of pictures or slices. For
instance , in one example , the video coder only applies the
another example , a and b are signaled from video encoder 20 simplified PDPC techniques of this disclosure in I-slices.
to video decoder 30 at a sequence level, a picture level, a Furthermore, in some examples , the simplified PDPC tech
slice level, a block level, or another level . niques of this disclosure are not applied when some neigh
[0129] In some examples, a video coder may derive the boring samples are unavailable . For instance , in one
value of the first weight (WT) based on a scaled vertical example , the video coder does not apply the simplified
coordinate y of the prediction sample, a block size , and an PDPC techniques of this disclosure if the top neighboring
intra prediction mode . For example , y can be divided by 2 , samples are unavailable .
4 , or 8 to derive the value of the first weight (WT) . How [0132 ] Furthermore , in another example, the simplified
weight is changed can depend on the block size (e .g ., the PDPC techniques of this disclosure are only applied to
divisor of the coordinate ). For small blocks, the decay of the selected prediction sample positions within a prediction
weight can be faster than for the larger blocks. The video block rather than applying to the entire prediction block . In
coder may derive the value of the second weight (WL ) based some examples, the selected prediction sample positions are
on a scaled horizontal coordinate x of the prediction sample , at a pre -defined number of columns starting from the left
the block size and the intra prediction mode . In this example , and / or a pre -defined number of rows starting from top . For
the block size may refer to one of: instance , a video coder may apply the simplified PDPC
min (log 2(width ), log 2( height)), techniques of this disclosure to even -numbered rows or
columns of the prediction block , but not odd -numbered rows
max (log 2 (width ), log 2 (height)), or columns of the prediction block . In some examples , the
number of columns/ rows of prediction samples to which the
( log 2(width )+log 2(height)}/2 , simplified PDPC techniques of this disclosure are applied
may depend on coded information , including, but not limited
log 2(width )+log 2(height), to block size, block height and / or width , and/ or intra pre
diction mode. For example , the video coder may apply the
log 2 (width ), or simplified PDPC techniques of this disclosure to each row of
log 2 (height). the prediction block if the size of the prediction block is less
than a threshold size (e. g., 16x16 , 8x8 , etc .) and may apply
In this example , for non - directional intra prediction modes the simplified PDPC techniques of this disclosure to every
like Planar and DC modes, for the same coordinate (x , y ), the other row /column of the prediction block if the size of the
same values of wT and wL may be used . In other words, in prediction block is greater than or equal to the threshold size .
this example , wT =wL = m for each prediction sample of the [0133 ] The clipping operations on the prediction samples
predictor block , but there may be different values of m for after the weighting operations can be removed . Clipping
different prediction samples of the predictor block . Further may be used to guarantee the predictor value is within the
more , the scaling on the vertical and horizontal coordinate x certain range , usually related to input bit depth . If after
and y may be pre - defined . In some examples , typical values deriving the predictor, the pixel is exceeding the range , the
of the scaling value include 2, 4 and 8 . video coder may clip its value to minimum or maximum
US 2019 /0110045 A1 Apr. 11 , 2019
14 .

range value . However, in accordance with the techniques of but not others. For instance, in one example, when applying
this disclosure, such clipping operations on prediction the simplified PDPC techniques of this disclosure, the video
samples may be unnecessary . coder only applies reference sample filtering on Planar intra
[0134 ] The left, top and top- left reference samples used to prediction mode, not on the DC , horizontal, or vertical intra
adjust the prediction sample may be filtered /smoothed ref prediction modes.
erence samples or unfiltered reference samples, and the [0138 ] In some examples, the video coder may apply
selection depends on intra prediction mode . In one example , different filters ( e. g., different numbers of filter taps ) for the
for the DC , Horizontal and Vertical intra prediction direc reference samples , and the selection of the filters may
tions, a video coder may use the unfiltered top , left and depend on the reference sample location . For instance, in
top -left reference samples in the weighted sum calculation ; one example , the video coder may apply different filters to
for Planar mode the filtered / smoothed left , top and top - left a reference sample depending on whether the reference
reference samples are used in the calculation. sample is located at a boundary position (bottom - left, top
[0135 ] As described above, in earlier versions of PDPC , a right, top -left) of all available reference samples or not. In
video coder may apply 5 -tap or 7 - tap filters to reference some examples , which set of filters is applied is signaled by
samples. However, in accordance with some examples of video encoder 20 to video decoder 30 . In such examples,
this disclosure , instead of applying a longer tap filter ( e . g ., video encoder 20 may signal the set of filters in various
a 5 -tap or a 7 -tap filter ) to the reference samples , the video places within the bitstream , such as at a sequence level, a
coder may apply only a short -tap filter ( e . g ., a 3 -tap filter) picture level, a slice level or a block level.
and the longer tap filter may be replaced by cascading [0139] In the original PDPC design , unfiltered and filtered
multiple short -tap filters in a pre -defined order. This disclo versions of the reference samples are used in the prediction
sure may use the phrase " smoothed reference samples” to derivation . However, there may be another smoothing filter
refer to the samples resulting from applying a filter , or used for intra reference smoothing , such as mode dependent
cascade of filters, to a set of reference samples . Different sets intra smoothing (MDIS ) used in HEVC . To further unify the
of smoothed reference samples may be applied in intra prediction process, the PDPC filters such as the 3 /5 - tap filter
prediction , e .g ., PDPC . In other words, the video coder may used to generate the filtered version ( filter length may
generate different sets of smoothed reference samples when depend on the block size and / or intra direction ) may be
performing the simplified PDPC techniques of this disclo replaced in the simplified PDPC techniques of this disclo
sure . In some examples , the video coder may generate the sure to use exactly the same smoothing filtering (MDIS , for
different sets of smoothed reference samples by applying example ) which may be applied for the modes not using
different cascades of short -tap filters . Different cascades of PDPC . In this way , there may be no need to retain a
short-tap filters may have different numbers of short-tap PDPC - specific filtering process and implementation of
filters and / or different orders of cascading short - tap filters . PDPC can be further simplified .
The video coder may select a set of smoothed reference [0140 ] The following part of this disclosure describes
samples in performing the simplified PDPC techniques of example codec specification text to implement example
this disclosure . The selection of which set of smoothed techniques of this disclosure . Some operations reflecting
reference samples may depend on the block size , e . g ., block techniques of this disclosure are emphasized with “ Chigh
area size , block height and / or width , and / or intra prediction light> . . . </highlight > " tags .
mode. For example , the video coder may select a first set of [0141] The following section of codec specification text
smoothed reference samples ( e . g ., a set of reference samples entitled “ Filtering process of neighboring samples ”
generated with a first filter or set of filters ) when a size of the describes a filtering process for neighboring reference
prediction block is less than a threshold size ( e . g . , 16x16 , samples used for intra prediction .
8x8 , etc. ) and may select a second set of smoothed reference Filtering Process of Neighboring Samples
samples when the size of the prediction block is greater than
or equal to the threshold size . [0142 ] Inputs to this process are :
[ 0136 ] In one example where the video coder applies a [0143 ] the neighbouring samples p [x ][y ], with x = - 1 ,
cascade of short-tap filters to the reference samples, the y = - 1 ..nTbS * 2 - 1 and x = 0 ..nTbS * 2 - 1, y = - 1 ,
cascade of short -tap filters includes a 3 -tap { 2, 4 , 2 } filter [0144 ] a variable nTb Width and nTbHeight specifying
and a 3 -tap {4 , 0 , 4 } filter. In this example, the video coder the transform block width and height.
generates a first set of smoothed reference samples using the [0145 ] a 3 -tap filter f[ 3 ].
3 -tap { 2 , 4 , 2 } filter and generates a second set of smoothed Outputs of this process are the filtered samples pF [x ][ y ],
reference samples by further applying the 3 -tap {4 , 0 , 4 } with x = - 1, y = - 1 ..(nTbWidth + nTbHeight) - 1 and x = 0 ..(nT
filter on top of the first set of smoothed reference samples. b Width +nTbHeight) - 1 , y = - 1.
In other words, the video coder may generate the second set The variable filterFlag is derived as follows:
of smoothed reference samples by cascading the filtering [0146 ] If one or more of the following conditions are
using the 3 -tap { 2 , 4 , 2 } filter and the 3 -tap { 4 , 0 , 4 } filter. true , filterFlag is set equal to 0 :
In another example , the two short-tap filters include a {2 , 4 , [0147 ] predModeIntra is equal to INTRA _ DC .
2 } filter and a { 3 , 2 , 3 } filter, and the same process described [0148 ] nTbS is equal 4 .
above may apply . In another example, instead of cascading [0149 ] Otherwise , the following applies:
two 3 -tap filters, the video coder may directly apply a 5 -tap [0150 ] The variable minDistVerHor is set equal to
{ 1, 2, 2 , 2, 1} filter to the reference samples. Min ( Abs (predModeIntra - 26 ), Abs (predModeIntra
[0137 ] In some examples, the video coder applies the 10 )).
reference sample filtering with any of intra prediction
modes . In other examples , the video coder applies the [0151] The variable intraHorVerDistThres [nTbS ] is
reference sample filtering for some intra prediction modes, specified in Table 8 - 3 .
US 2019 /0110045 A1 Apr. 11 , 2019

[0152 ] The variable filterFlag is derived as follows: of multiple sets of intra prediction reference samples”
[0153] If minDistVerHor is greater than intraHor describes one example way of generating themultiple sets of
VerDistThres[nTb Width ], filterFlag is set equal to smoothed reference samples .
[0154 ] Otherwise , filterFlag is set equal to 0 . Generation of Multiple Sets of Intra Prediction Reference
Samples
TABLE 8 - 3 [0164 ] Inputs to this process are :
Specification of intraHorVerDistThres [nTb Width ] for various [0165 ] the unfiltered neighbouring samples unfiltRef
prediction block sizes [x ][y ], with x = - 1, y = - 1.. (n Tb Width +nTbHeight) - 1
and x = 0 ..(nTb Width +nTbHeight) - 1 , y = - 1 ,
nTbWidth
8
= ntbWidth
16
= ntbWidth
32
= [ 0166 ] a variable nTb Width and nTbHeight specifying
the prediction block width and height.
intraHorVerDistThres[nTbS ] Outputs of this process are the filtered samples filtRef
[ 2 ][ x ][ y ] , with x = - 1 , y = - 1.. (nTb Width + nTbHeight ) - 1 and
When filterFlag is equal to 1, the following applies : x = 0 ..(nTb Width +nTbHeight) - 1, y = - 1 .
10155 ]. The variable bilntFlag is derived as follows:
[0167 ] 1. The filtering process of neighbouring samples
specified in the “ Filtering process of neighboring
[0156 ] If all of the following conditions are true , bilnt samples” section is invoked with the sample array
Flag is set equal to 1: unfiltRef and the transform block size nTb Width and
[0157 ] strong_ intra _ smoothing _ enabled _ flag is nTbHeight as inputs, and the output is assigned to the
equal to 1 sample array filtRef [0 ][x ][y ].
[0158 ] nTb Width is equal to 32 [0168 ] 2 . The filtering process of neighbouring samples
Abs(p [ - 1 ][ - 1 ] + p [nTbWidth + n Tb Height - 1 ][ - 1 ]– 2 * p specified in the “ Filtering process of neighboring
[nTbWidth - 1 ][- 1 ])< ( 1 < < ( BitDepthy- 5 )) samples" section is invoked with the sample array
filtRef [0 ][x ][y ] and the transform block size nTb Width
Abs (p [- 1 ][ - 1 ]+ p [ - 1 ][nTbWidth + nTbHeight - 1 ]– 2 * p and nTbHeight as inputs , and the output is assigned to
[- 1 ][nTbWidth - 1])< (1 < < (BitDepthy- 5 )) the sample array filtRef [ 1 ][ x ][ y ].
[0159 ] Otherwise , bilntFlag is set equal to 0 . [0169 ] The following section of codec specification text
[0160 ] The filtering is performed as follows: entitled “ Specification of intra prediction mode INTRA _
PLANAR ” describes a process for determining samples of a
[0161] If bilntFlag is equal to 1, the filtered sample predictor block using the simplified PDPC techniques of this
values pF [x ][y ] with x = - 1, y = - 1..63 and x = 0 ..63 , y = - 1 disclosure with the Planar intra prediction mode .
are derived as follows:
pF [- 1][- 1]=P [-1 ] –1] (8-30 ) Specification of Intra Prediction Mode INTRA _ PLANAR
pF [- 1][y ]= ( 63 - y)* P (- 1 ][- 1 ]+ (v + 1)* P (- 1][63 ]+ 32) [0170 ] Inputs to this process are:
> > for y = 0 ..62 ( 8 -31) [0171] the unfiltered neighbouring samples unfiltRef[x ]
[y ], with x = - 1, y = - 1 ..nTbHeight * 2 - 1 and x = 0 ..nTb
pF [- 1][63]= p [ - 1][63 ] ( 8 -32) Width * 2 – 1 , y = - 1,
[0172 ] the filtered neighbouring samples filtRef[x ][y ],
pF[x ]>[>–1]for=((63 –x)* p[-1 ][- 1]+(x+ 1)*p[63][- 1]+ 32)
x = 0 ..62 (8 - 33 ) with x = - 1 , y = - 1..nTbHeight* 2 – 1 and X = 0 ..nTb
Width * 2 – 1 , y = - 1,
pF[63][- 1]=p [63 ][- 1] (8 -34 ) [0173 ] a variable nTb Width and nTbHeight specifying
the prediction block width and height.
[0162 ] Otherwise (bilntFlag is equal to 0 ), the filtered [0174 ] Outputs of this process are the predicted samples
sample values pF [x ][ y ] with x = - 1 , y = - 1..(nTb Width + predSamples[x ][y ], with x , y = 0 ..nTbS - 1 .
nTbHeight) - 1 and x = 0 .. (nTbWidth +nTbHeight) - 1 , < highlight > The value of rightShift is derived as (log
y = - 1 are derived as follows: 2 (nTbWidth ) + 1 + log 2 (nTbHeight)+ 1) > > 2; </
pF[- 1 ][- 1) = ( [0 ]* p [- 1 ][0 ]+ ?[1 ]* pl- 1][- 1 ]+f[2]* p [0 ] highlight >
[- 1 ] + 4 ) > > 3 ( 8 - 35 )
For each sample location (x , y ), the value of the prediction
pF [- 1][y ]= ( [0]* p [- 1 ][v + 1 ]+[[1 ]* p [- 1 ][y ]+f[2]* pl- 1 ] sample predSamples[x ][y ], with x , y = 0..nTbS - 1, is derived
[y - 1 ]+4 ) > > 3 for y = 0..nTbS * 2 – 2 ( 8 - 36 ) as follows:
pF [- 1][nTbS * 2 – 1 ]=p [- 1 ][nTbS* 2 – 1 ] (8 -37) < highlight> wT = 32 > > ((v « < 1 )> > rightShift );
pF [x ][ - 1 ] = ( [0 ]* p [x - 1 ][- 1 ]+ f[ 1]* p [x ][ - 1 ] + [ 1 ]* p [x + WL = 32 > > [(x < < 1)> > rightShift);
1 ][ - 1 ] + 4 ) > > 3 for x = 0 ..nTbS * 2 – 2 (8 - 38 ) wTL = (wL > > 4 )+ (wT > > 4 );< /highlight>
pF [nTbS * 2 – 1 ][ - 1] =p [nTbS * 2 – 1 ][- 1] (8 -39) predPlanar= ((n TbS - 1 - x )* filtRef[ - 1 ][y ]+ (x + 1)* filtRef
[0163] As noted above, a video coder may generate mul [nTbS ][ - 1 ]+ (nTbS - 1 - y )* filtRef[x ][ - 1 ]+ (y + 1 )
tiple sets of smoothed reference samples and then select one * filtRef[ - 1 ][nTbS ]+ nTbS ) > > (Log 2 (nTbS ) + 1) (8 - 40 )
of the sets of smoothed reference samples for use in the < highlight> predSamples [x ][y ]= wL * unfiltRef[ - 1 ][y ]+
simplified PDPC techniques of this disclosure . The follow wT*unfiltRef[x ][- 1 ]-wTL* unfiltRef[- 1][ - 1]
ing section of codec specification text entitled “Generation (64-wL -wT+wTL )* predPlanar+ 32)> > 6 ( 8 -41 )
US 2019 /0110045 A1 Apr. 11 , 2019

< /highlight > For each sample location (x , y ), the value of the prediction
[ 0175 ] The following section of codec specification text sample predSamples[ x ][y ], with x , y = 0 ..nTbS - 1, is derived
entitled “ Specification of intra prediction mode INTRA _ as follows:
DC ” describes a process for determining samples of a < highlight>wT= 32 > > ((v « < 1)> > rightShift);
predictor block using the simplified PDPC techniques of this
disclosure with the DC intra prediction mode . WL =32 > > (<x < < 1)> >rightShift );
Specification of Intra Prediction Mode INTRA _ DC WTL = wT;

[ 0176 ] Inputs to this process are : predSamples[x ][y ]= wL * unfiltRef[ - 1 ][y ]+


[0177 ] the unfiltered neighbouring samples unfiltRef[x ] wT* unfiltRef[x ][- 1 ]-w7L * unfiltRef[ - 1 ][- 1]
[y ], with x = - 1, y = - 1..nTbHeight* 2 - 1 and x = 0 ..nTb (64 -wl - w7 +wTL )* unfiltRef[- 1 ][y ]+ 32 ) > > 6 (8 -43 )
Width * 2 – 1 , y = - 1, < /highlight>
[0178 ] a variable nTb Width and nTbHeight specifying [0186 ] The following section of codec specification text
the prediction block width and height. entitled “ Specification of intra prediction mode INTRA _
Outputs of this process are the predicted samples predSam VER ” describes a process for determining samples of a
ples[ x ][y ], with x , y = 0 ..nTbS - 1. predictor block using the simplified PDPC techniques of this
< highlight> The value of rightShift is derived as (log disclosure with the vertical intra prediction mode.
2 (nTb Width) + 1 + log 2(nTbHeight)+ 1) > > 2 ;</
highlight> Specification of Intra Prediction Mode INTRA _ VER
The values of the prediction samples predSamples[x ][y ], [0187] Inputs to this process are:
with x , y = 0 ..nTbS - 1 , are derived by the following ordered [0188 ] the unfiltered neighbouring samples unfiltRef[x ]
steps: [ y ], with x = - 1, y = - 1..nTbHeight* 2 – 1 and x = 0 ..nTb
[0179 ] 1. A variable dcVal is derived as follows: Width * 2 - 1 , y = - 1 ,
[ 0189 ] a variable nTb Width and nTbHeight specifying
the prediction block width and height.
predDC =
nTbs - 1
' ][ - 1 ] +
nTbs - 1
. pl- 1 ][y'] + nTOS > > (k + 1 )
(8 -41) Outputs of this process are the predicted samples predSam
( x =0 y'=0 ples[x ][y ], with x , y = 0 ..nTbS - 1 .
< highlight> The value of rightShift is derived as (log
2 (nTbWidth )+ 1+ log 2(nTbHeight)+ 1) > > 2;</
[0180 ] where k = Log 2(nTbS). highlight >
[0181] 2. For each sample location (x , y ), the value of For each sample location (x , y ), the value of the prediction
the prediction sample predSamples [x ][ y ], with x , y = 0 .. sample predSamples[x ][y ], with x , y = 0..nTbS - 1, is derived
nTbS - 1 , is derived as follows: as follows:
< highlight>wT= 32 > > ( ly < < 1) > > rightShift); < highlight > wT = 32 > > ( (v « < 1 )> > rightShift );
WL = 32 > > (x < < 1 )> > rightShift); WL = 32 > > ((x < < 1) > > rightShift );
WTL = (wL > > 4 )+ (wT > > 4 ); WTL = WL ;

predSamples [x ][y ]= wL * unfiltRef[ - 1 ][y ] + predSamples [x ][y ]= wL * unfiltRef[ - 1 ][y ]+


wT* unfiltRef[x ][ - 1 ]-wTL * unfiltRef[ - 1 ][ - 1 ] wT* unfiltRef[x ][ - 1 ]-wTL * unfiltRef[ - 1 ][ - 1 ]
(64 -wL -wT+wTL )* predDC + 32 )> >6 (8 -43) (64 -WL -wT+wTL )* unfiltRef[x ][- 1] + 32 )> > 6 (8 -43 )
< /highlight > < /highlight>
[0182] The following section of codec specification text [0190 ] FIG . 8 is a block diagram illustrating an example
entitled “ Specification of intra prediction mode INTRA _ video encoder 20 that may implement the techniques of this
HOR ” describes a process for determining samples of a disclosure . FIG . 8 is provided for purposes of explanation
predictor block using the simplified PDPC techniques of this and should not be considered limiting of the techniques as
disclosure with the horizontal intra prediction mode. broadly exemplified and described in this disclosure . The
techniques of this disclosure may be applicable to various
Specification of Intra Prediction Mode INTRA _ HOR coding standards or methods.
[0183] Inputs to this process are : [0191] Processing circuitry includes video encoder 20, and
video encoder 20 is configured to perform one ormore of the
[0184 ] the unfiltered neighbouring samples unfiltRef[x ] example techniques described in this disclosure . For
[y ], with x = - 1, y = - 1, 0 , . . . ,nTbHeight* 2 – 1, and x = 0 , instance , video encoder 20 includes integrated circuitry , and
1, nTb Width * 2 – 1, y = - 1 , the various units illustrated in FIG . 8 may be formed as
[0185 ] a variable nTbWidth and nTbHeight specifying hardware circuit blocks that are interconnected with a circuit
the prediction block width and height. bus. These hardware circuit blocks may be separate circuit
Outputs of this process are the predicted samples predSam blocks or two or more of the units may be combined into a
ples[x ][y ], with x , y = 0 ..nTbS - 1 . common hardware circuit block . The hardware circuit
< highlight > The value of rightShift is derived as (log blocks may be formed as a combination of electronic
2(nTbWidth ) + 1 + log 2 (nTbHeight)+ 1) > > 2 ;< / components that form operation blocks such as arithmetic
highlight > logic units ( ALUS), elementary function units (EFUs), as
US 2019 /0110045 A1 Apr. 11 , 2019

well as logic blocks such as AND , OR , NAND , NOR , XOR , indicated above, the size of a CU may refer to the size of the
XNOR , and other similar logic blocks. luma coding block of the CU and the size of a PU may refer
[ 0192] In some examples , one or more of the units illus to the size of a luma prediction block of the PU . Assuming
trated in FIG . 8 are software units executing on the process that the size of a particular CU is 2NX2N , video encoder 20
ing circuitry . In such examples, the object code for these and video decoder 30 may support PU sizes of 2Nx2N or
software units is stored in memory. An operating system NxN for intra prediction , and symmetric PU sizes of
may cause video encoder 20 to retrieve the object code and 2NX2N , 2NxN , Nx2N , NxN , or similar for inter prediction.
execute the object code, which causes video encoder 20 to Video encoder 20 and video decoder 30 may also support
perform operations to implement the example techniques. In asymmetric partitioning for PU sizes of 2NxnU , 2NxnD ,
some examples, the software units may be firmware that nLx2N , and nRx2N for inter prediction .
video encoder 20 executes at startup . Accordingly , video [0197) Inter-prediction processing unit 120 may generate
encoder 20 is a structural component having hardware that predictive data for a PU . As part of generating the predictive
performs the example techniques or has software /firmware data for a PU , inter- prediction processing unit 120 performs
executing on the hardware to specialize the hardware to inter prediction on the PU . The predictive data for the PU
perform the example techniques . may include predictor blocks of the PU and motion infor
[0193] In the example of FIG . 8 , video encoder 20 mation for the PU . Inter-prediction processing unit 120 may
includes a prediction processing unit 100 , video data perform different operations for a PU of a CU depending on
memory 101, a residual generation unit 102, a transform whether the PU is in an I slice , a P slice , or a B slice . In an
processing unit 104 , a quantization unit 106 , an inverse I slice , all PUs are intra predicted . Hence , if the PU is in an
quantization unit 108 , an inverse transform processing unit I slice , inter - prediction processing unit 120 does not perform
110 , a reconstruction unit 112 , a filter unit 114 , a decoded inter prediction on the PU . Thus, for blocks encoded in
picture buffer 116 , and an entropy encoding unit 118 . Pre I-mode, the predicted block may be formed using spatial
diction processing unit 100 includes an inter - prediction prediction from previously -encoded neighboring blocks
processing unit 120 and an intra -prediction processing unit within the same frame. If a PU is in a P slice, inter -prediction
126 . Inter-prediction processing unit 120 may include a processing unit 120 may use uni -directional inter prediction
motion estimation unit and a motion compensation unit (not to generate a predictor block of the PU . If a PU is in a B
shown ) . slice , inter-prediction processing unit 120 may use uni
[0194 ] Video data memory 101 may be configured to store directional or bi- directional inter prediction to generate a
video data to be encoded by the components of video predictor block of the PU .
encoder 20 . The video data stored in video data memory 101 [0198 ] Intra -prediction processing unit 126 may generate
may be obtained , for example , from video source 18 . predictive data for a PU by performing intra prediction on
Decoded picture buffer 116 may be a reference picture the PU . The predictive data for the PU may include predictor
memory that stores reference video data for use in encoding blocks of the PU and various syntax elements . Intra - predic
video data by video encoder 20 , e . g ., in intra - or inter -coding tion processing unit 126 may perform intra prediction on
modes . Video data memory 101 and decoded picture buffer PUs in I slices, P slices , and B slices .
116 may be formed by any of a variety ofmemory devices, [0199] To perform intra prediction on a PU , intra -predic
such as dynamic random access memory (DRAM ), includ tion processing unit 126 may use multiple intra prediction
ing synchronous DRAM (SDRAM ), magnetoresistive RAM modes to generate multiple sets of predictive data for the
(MRAM ), resistive RAM (RRAM ), or other types of PU . Intra - prediction processing unit 126 may use recon
memory devices . Video data memory 101 and decoded structed samples from sample blocks of neighboring PUs to
picture buffer 116 may be provided by the same memory generate a predictor block for a PU . The neighboring PUs
device or separate memory devices. In various examples , may be above, above and to the right, above and to the left ,
video data memory 101 may be on - chip with other compo or to the left of the PU , assuming a left- to - right, top - to
nents of video encoder 20 , or off- chip relative to those bottom encoding order for PUS, CUs, and CTUS. Intra
components . Video data memory 101 may be the sameas or prediction processing unit 126 may use various numbers of
part of storage media 19 of FIG . 1 . intra prediction modes, e .g., 33 directional intra prediction
[0195 ] Video encoder 20 receives video data . Video modes . In some examples , the number of intra prediction
encoder 20 may encode each CTU in a slice of a picture of modes may depend on the size of the region associated with
the video data . Each of the CTUs may be associated with the PU . Intra -prediction processing unit 126 may perform
equally -sized luma coding tree blocks (CTBs) and corre intra prediction techniques of this disclosure .
sponding CTBs of the picture . As part of encoding a CTU , [0200 ] Prediction processing unit 100 may select the pre
prediction processing unit 100 may perform partitioning to dictive data for PUs of a CU from among the predictive data
divide the CTBs of the CTU into progressively -smaller generated by inter-prediction processing unit 120 for the
blocks . The smaller blocks may be coding blocks of CUs. PUs or the predictive data generated by intra -prediction
For example , prediction processing unit 100 may partition a processing unit 126 for the PUs. In some examples , predic
CTB associated with a CTU according to a tree structure . tion processing unit 100 selects the predictive data for the
[0196 ] Video encoder 20 may encode CUs of a CTU to PUs of the CU based on rate/ distortion metrics of the sets of
generate encoded representations of the CUS (i.e ., coded predictive data. The predictor blocks of the selected predic
CUs). As part of encoding a CU , prediction processing unit tive data may be referred to herein as the selected predictor
100 may partition the coding blocks associated with the CU blocks.
among one or more PUs of the CU . Thus , each PU may be (0201 Intra -prediction processing unit 126 may generate
associated with a luma prediction block and corresponding a predictor block using an intra prediction mode in accor
chroma prediction blocks. Video encoder 20 and video dance with any of the techniques of this disclosure . For
decoder 30 may support PUs having various sizes . As example , as part of generating the predictor block , intra
US 2019 /0110045 A1 Apr. 11 , 2019

prediction processing unit 126 may determine an initial and two chroma transform blocks. The sizes and positions of
value of a first weight and determine an initial value of a the luma and chroma transform blocks of TUs of a CU may
second weight. Furthermore , for each respective sample in a or may not be based on the sizes and positions of prediction
set of samples in the predictor block , intra -prediction pro - blocks of the PUs of the CU . A quad -tree structure known as
cessing unit 126 may determine, based on the initial value of a “ residual quad- tree ” (RQT) may include nodes associated
the firstweight and a distance between the respective sample with each of the regions . The TUs of a CU may correspond
and a first boundary of the predictor block , a value of the first to leaf nodes of the RQT.
weight for the respective sample . Intra - prediction processing 0209 Transform processing unit 104 may generate trans
unit 126 may also determine , based on the initial value of the form coefficient blocks for each TU of a CU by applying one
second weight and a distance between the respective sample or more transforms to the transform blocks of the TU .
and a second boundary of the predictor block , a value of the Transform processing unit 104 may apply various trans
second weight for the respective sample . Furthermore , intra forms to a transform block associated with a TU . For
prediction processing unit 126 may determine a value of a example , transform processing unit 104 may apply a discrete
third weight for the respective sample . Intra -prediction pro cosine transform (DCT ), a directional transform , or a con
cessing unit 126 may also determine a value of a fourth ceptually similar transform to a transform block . In some
weight for the respective sample based on the value of the examples, transform processing unit 104 does not apply
first weight for the respective sample, the value of the transforms to a transform block . In such examples , the
second weight for the respective sample , and the value of the transform block may be treated as a transform coefficient
third weight for the respective sample . Additionally , intra block .
prediction processing unit 126 may determine a primary [0210 ] Quantization unit 106 may quantize the transform
value for the respective sample according to the intra coefficients in a coefficient block . Quantization unit 106 may
prediction mode. Next, intra - prediction processing unit 126 quantize a coefficient block associated with a TU of a CU
may determine a secondary value for the respective sample based on a quantization parameter ( QP ) value associated
as a first value for the respective sample right-shifted by a with the CU . Video encoder 20 may adjust the degree of
second value, the first value for the respective sample being quantization applied to the coefficientblocks associated with
a sum of: a CU by adjusting the QP value associated with the CU .
[0202] (i) the value of the first weight for the respective Quantization may introduce loss of information . Thus , quan
sample , multiplied by a left reference sample for the tized transform coefficients may have lower precision than
respective sample that is left of the respective sample , the original ones .
[0203] ( ii ) the value of the second weight for the 10211 ) Inverse quantization unit 108 and inverse transform
respective sample multiplied by an above reference processing unit 110 may apply inverse quantization and
sample for the respective sample that is above the inverse transforms to a coefficient block , respectively , to
respective sample, reconstruct a residual block from the coefficient block .
[0204 ] ( iii) the value of the third weight for the respec Reconstruction unit 112 may add the reconstructed residual
tive sample multiplied by an above-left reference block to corresponding samples from one or more predictor
sample for the respective sample that is above and left blocks generated by prediction processing unit 100 to pro
of the respective sample, duce a reconstructed transform block associated with a TU .
[0205 ] ( iv ) the value of the fourth weight for the respec By reconstructing transform blocks for each TU of a CU in
tive sample multiplied by the primary value for the this way, video encoder 20 may reconstruct the coding
respective sample, and blocks of the CU .
[0206 ] (v ) an offset value . (0212 ] Filter unit 114 may perform one or more deblock
For instance, intra -prediction processing unit 126 may deter ing operations to reduce blocking artifacts in the coding
mine the secondary value for the respective sample in blocks associated with a CU . Decoded picture buffer 116
accordance with equation (11), where wT is the first weight, may store the reconstructed coding blocks after filter unit
WL is the second weight, wTL is the third weight, and 114 performs the one or more deblocking operations on the
(2rightShift -wT -WL -WTL ) is the fourth weight, and right reconstructed coding blocks. Inter- prediction processing
Shift is the second value . unit 120 may use a reference picture that contains the
[0207 ] Residual generation unit 102 may generate , based reconstructed coding blocks to perform inter prediction on
on the coding blocks (e. g ., luma, Cb and Cr coding blocks ) PUs of other pictures . In addition , intra -prediction process
for a CU and the selected predictor blocks (e .g ., predictive ing unit 126 may use reconstructed coding blocks in
luma, Cb and Cr blocks ) for the PUs of the CU , residual decoded picture buffer 116 to perform intra prediction on
blocks (e.g ., luma, Cb and Cr residual blocks) for the CU . other PUs in the same picture as the CU .
For instance , residual generation unit 102 may generate the [0213 ] Entropy encoding unit 118 may receive data from
residual blocks of the CU such that each sample in the other functional components of video encoder 20 . For
residual blocks has a value equal to a difference between a example , entropy encoding unit 118 may receive coefficient
sample in a coding block of the CU and a corresponding blocks from quantization unit 106 and may receive syntax
sample in a corresponding selected predictor block of a PU elements from prediction processing unit 100 . Entropy
of the CU . encoding unit 118 may perform one or more entropy encod
[0208 ] Transform processing unit 104 may perform par ing operations on the data to generate entropy -encoded data .
tition the residual blocks of a CU into transform blocks of For example , entropy encoding unit 118 may perform a
TUs of the CU . For instance, transform processing unit 104 CABAC operation , a context- adaptive variable length cod
may perform quad -tree partitioning to partition the residual ing (CAVLC ) operation , a variable -to -variable (V2V ) length
blocks of the CU into transform blocks of TUs of the CU . coding operation , a syntax - based context- adaptive binary
Thus , a TU may be associated with a luma transform block arithmetic coding (SBAC ) operation , a Probability Interval
US 2019 /0110045 A1 Apr. 11 , 2019

Partitioning Entropy ( PIPE ) coding operation , an Exponen for use in decoding video data by video decoder 30 , e .g., in
tial -Golomb encoding operation , or another type of entropy intra - or inter -coding modes, or for output. Video data
encoding operation on the data . Video encoder 20 may memory 151 and decoded picture buffer 162 may be formed
output a bitstream that includes entropy -encoded data gen by any of a variety of memory devices, such as dynamic
erated by entropy encoding unit 118. For instance , the random access memory (DRAM ), including synchronous
bitstream may include data that represents values of trans DRAM (SDRAM ), magnetoresistive RAM (MRAM ), resis
form coefficients for a CU . tive RAM (RRAM ), or other types of memory devices .
[0214 ] FIG . 9 is a block diagram illustrating an example Video data memory 151 and decoded picture buffer 162 may
video decoder 30 that is configured to implement the tech be provided by the samememory device or separate memory
niques of this disclosure . FIG . 9 is provided for purposes of devices . In various examples, video data memory 151 may
explanation and is not limiting on the techniques as broadly be on -chip with other components of video decoder 30 , or
exemplified and described in this disclosure . For purposes of off -chip relative to those components . Video data memory
explanation , this disclosure describes video decoder 30 in 151 may be the same as or part of storage media 28 of FIG .
the context of HEVC coding. However, the techniques of
this disclosure may be applicable to other coding standards [0219 ] Video data memory 151 receives and stores
or methods, such as Versatile Video Coding (VVC ). encoded video data (e. g., NAL units ) of a bitstream . Entropy
[ 0215 ] Processing circuitry includes video decoder 30 , and decoding unit 150 may receive encoded video data (e.g .,
video decoder 30 is configured to perform one ormore of the NAL units ) from video data memory 151 and may parse the
example techniques described in this disclosure . For NAL units to obtain syntax elements. Entropy decoding unit
instance, video decoder 30 includes integrated circuitry , and 150 may entropy decode entropy - encoded syntax elements
the various units illustrated in FIG . 9 may be formed as in the NAL units . Prediction processing unit 152 , inverse
hardware circuit blocks that are interconnected with a circuit quantization unit 154, inverse transform processing unit 156 ,
bus. These hardware circuit blocks may be separate circuit reconstruction unit 158, and filter unit 160 may generate
blocks or two or more of the units may be combined into a decoded video data based on the syntax elements extracted
common hardware circuit block . The hardware circuit from the bitstream . Entropy decoding unit 150 may perform
blocks may be formed as a combination of electronic a process generally reciprocal to that of entropy encoding
components that form operation blocks such as arithmetic unit 118 .
logic units (ALUS), elementary function units (EFUS), as [0220 ] In addition to obtaining syntax elements from the
well as logic blocks such as AND , OR , NAND , NOR , XOR , bitstream , video decoder 30 may perform a reconstruction
XNOR , and other similar logic blocks . operation on a non -partitioned CU . To perform the recon
[0216 ] In some examples, one or more of the units illus struction operation on a CU , video decoder 30 may perform
trated in FIG . 9 may be software units executing on the a reconstruction operation on each TU of the CU . By
processing circuitry . In such examples, the object code for performing the reconstruction operation for each TU of the
these software units is stored in memory . An operating CU , video decoder 30 may reconstruct residual blocks of the
system may cause video decoder 30 to retrieve the object CU .
code and execute the object code , which causes video [0221] As part of performing a reconstruction operation on
decoder 30 to perform operations to implement the example a TU of a CU , inverse quantization unit 154 may inverse
techniques . In some examples , the software units may be quantize , i. e ., de -quantize , coefficient blocks associated with
firmware that video decoder 30 executes at startup. Accord the TU . After inverse quantization unit 154 inverse quantizes
ingly , video decoder 30 is a structural component having a coefficient block , inverse transform processing unit 156
hardware that performs the example techniques or has may apply one or more inverse transforms to the coefficient
software/firmware executing on the hardware to specialize block in order to generate a residual block associated with
the hardware to perform the example techniques. the TU . For example, inverse transform processing unit 156
[ 0217 ] In the example of FIG . 9 , video decoder 30 may apply an inverse DCT, an inverse integer transform , an
includes an entropy decoding unit 150 , video data memory inverse Karhunen -Loeve transform (KLT) , an inverse rota
151, a prediction processing unit 152 , an inverse quantiza tional transform , an inverse directional transform , or another
tion unit 154, an inverse transform processing unit 156 , a inverse transform to the coefficient block .
reconstruction unit 158, a filter unit 160 , and a decoded [0222] If a PU is encoded using intra prediction , intra
picture buffer 162 . Prediction processing unit 152 includes prediction processing unit 166 may perform intra prediction
a motion compensation unit 164 and an intra - prediction to generate predictor blocks of the PU . Intra -prediction
processing unit 166 . In other examples , video decoder 30 processing unit 166 may use an intra prediction mode to
may include more , fewer, or different functional compo generate the predictor blocks of the PU based on samples
nents . spatially -neighboring blocks. Intra -prediction processing
0218 ] Video data memory 151 may store encoded video unit 166 may determine the intra prediction mode for the PU
data , such as an encoded video bitstream , to be decoded by based on one or more syntax elements obtained from the
the components of video decoder 30 . The video data stored bitstream . Intra -prediction processing unit 166 may perform
in video data memory 151 may be obtained , for example , intra prediction techniques of this disclosure .
from computer - readable medium 16 , e. g., from a local video [0223] Intra -prediction processing unit 166 may generate
source, such as a camera, via wired or wireless network a predictor block using an intra prediction mode in accor
communication of video data , or by accessing physical data dance with any of the techniques of this disclosure. For
storage media . Video data memory 151may form a coded example, as part of generating the predictor block , intra
picture buffer (CPB ) that stores encoded video data from an prediction processing unit 166 may determine an initial
encoded video bitstream . Decoded picture buffer 162 may be value of a first weight and determine an initial value of a
a reference picture memory that stores reference video data second weight. Furthermore , for each respective sample in a
US 2019 /0110045 A1 Apr. 11 , 2019
20

set of samples in the predictor block , intra -prediction pro - blocks of the CU . Video decoder 30 may store the coding
cessing unit 166 may determine, based on the initial value of blocks of the CU in decoded picture buffer 162 . Decoded
the firstweight and a distance between the respective sample picture buffer 162 may provide reference pictures for sub
and a first boundary of the predictor block , a value of the first sequent motion compensation , intra prediction , and presen
weight for the respective sample . Intra -prediction processing tation on a display device , such as display device 32 of FIG .
unit 166 may also determine , based on the initial value of the 1 . For instance , video decoder 30 may perform , based on the
second weight and a distance between the respective sample blocks in decoded picture buffer 162, intra prediction or inter
and a second boundary of the predictor block , a value of the prediction operations for PUs of other CUS.
second weight for the respective sample . Furthermore , intra [0232 ] FIG . 10 is a flowchart illustrating an example
prediction processing unit 166 may determine a value of a operation of video encoder 20 in accordance with a tech
third weight for the respective sample . Intra -prediction pro nique of this disclosure. The flowcharts of this disclosure are
cessing unit 166 may also determine a value of a fourth provided as examples. In other examples , operations may
weight for the respective sample based on the value of the include more , fewer, or different actions . Moreover, in some
first weight for the respective sample , the value of the examples, operations may be performed in different orders .
second weight for the respective sample , and the value of the [0233 ] In the example of FIG . 10 , video encoder 20 ( e. g.,
third weight for the respective sample . Additionally , intra intra -prediction processing unit 126 (FIG . 8 ) of video
prediction processing unit 166 may determine a primary encoder 20 ) may generate a predictor block using an intra
value for the respective sample according to the intra prediction mode (1000 ) . In some examples , the intra pre
prediction mode . Next, intra-prediction processing unit 166 diction mode is a DC intra prediction mode. In some
may determine a secondary value for the respective sample examples, the intra prediction mode is a horizontal intra
as a first value for the respective sample right-shifted by a prediction mode . In some examples, the intra prediction
second value, the first value for the respective sample being mode is a vertical intra prediction mode. In some examples ,
a sum of: the intra prediction mode may be another type of intra
[0224 ] (i) the value of the first weight for the respective prediction mode . In some examples, each of the samples in
sample , multiplied by a left reference sample for the the predictor block is a luma sample . In some examples,
respective sample that is left of the respective sample , each of the samples in the predictor block is a chroma
[0225 ] ( ii ) the value of the second weight for the sample . In some examples , video encoder 20 may apply the
respective sample multiplied by an above reference operation of FIG . 10 to both luma and chroma samples.
sample for the respective sample that is above the [0234 ] As part of generating the predictor block , video
respective sample, encoder 20 may determine an initial value of a first weight
[0226 ] ( iii) the value of the third weight for the respec ( 1002 ) . Additionally , video encoder 20 may determine an
tive sample multiplied by an above - left reference initial value of a second weight ( 1004 ). In some examples ,
sample for the respective sample that is above and left the initial value of the first weight and the initial value of the
of the respective sample , second weight may be fixed and predetermined . In some
[0227] ( iv ) the value of the fourth weight for the respec examples, wL and WT are initialized as 0 .5 . In some
tive sample multiplied by the primary value for the examples, video encoder 20 may determine the initial value
respective sample , and of the first weight and the initial value of the second weight
[0228 ] (v ) an offset value . based on one or more factors, such as a size of the predictor
For instance , intra -prediction processing unit 166 may deter block or the inter prediction mode .
mine the secondary value for the respective sample in [0235 ] Furthermore, for each respective sample in a set of
accordance with equation ( 11 ), where wT is the first weight, samples in the predictor block , video encoder 20 may
WL is the second weight, w TL is the third weight, ( 2 rightShift determine , based on the initial value of the first weight and
WT- WL - TL ) is the fourth weight, and rightShift is the a distance between the respective sample and a first bound
second value. ary of the predictor block , a value of the first weight for the
[ 0229 ] If a PU is encoded using inter prediction , motion respective sample ( 1006 ) . The first boundary may be a top
compensation unit 164 may determine motion information boundary of the predictor block . In some examples , video
for the PU . Motion compensation unit 164 may determine , encoder 20 may determine the value of the first weight for
based on the motion information of the PU , one or more the respective sample by performing a shift operation on the
reference blocks . Motion compensation unit 164 may gen initial value of the first weight by an amount based on the
erate , based on the one or more reference blocks , predictor distance between the respective sample and the first bound
blocks (e . g ., predictive luma, Cb and Cr blocks) for the PU . ary of the predictor block . For instance , in the sections of
[ 0230] Reconstruction unit 158 may use transform blocks this disclosure entitled “ Specification of intra prediction
(e .g., luma, Cb and Cr transform blocks) for TUs of a CU mode INTRA _ PLANAR ,” “ Specification of intra prediction
and the predictor blocks (e . g ., luma, Cb and Cr blocks ) of the mode INTRA DC ,” “ Specification of intra prediction mode
PUs of the CU , i.e., either intra -prediction data or inter INTRA HOR ,” and “ Specification of intra prediction mode
prediction data , as applicable , to reconstruct the coding INTRA _ VER ,” video encoder 20 may determine the value
blocks (e. g., luma, Cb and Cr coding blocks) for the CU . For of the first weight for the respective sample as 32 > > (( y < < 1 )
example , reconstruction unit 158 may add samples of the > > rightShift), where 32 is the initial value of the first weight
transform blocks ( e. g., luma, Cb and Cr transform blocks) to and y is a distance in samples from a top boundary of the
corresponding samples of the predictor blocks ( e.g ., luma, predictor block . In other examples, video encoder 20 may
Cb and Cr predictor blocks ) to reconstruct the coding blocks determine the value of the first weight for the respective
(e.g., luma, Cb and Cr coding blocks) of the CU . sample by dividing the initial value of the first weight by an
0231] Filter unit 160 may perform a deblocking operation amount based on the distance between the respective sample
to reduce blocking artifacts associated with the coding and the first boundary of the predictor block .
US 2019 /0110045 A1 Apr. 11 , 2019
21

[0236 ] The set of samples in the predictor block may on the intra prediction mode. For instance , in one example,
include each sample of the predictor block . In other as shown in the sections of this disclosure entitled “ Speci
examples, the set of samples in the predictor block may be fication of intra prediction mode INTRA PLANAR ” and
a subset of the samples in the predictor block . In other " Specification of intra prediction mode INTRA _ DC ,” video
words, in some examples, the simplified PDPC techniques encoder 20 may determine the value of the third weight for
of this disclosure are only applied to selected prediction the respective sample as wTL = (wL > > 4 ) + (wT> > 4 ). In this
sample positions rather than being applying to the entire example , as shown in the section of this disclosure entitled
predictor block . For example , the selected prediction sample “ Specification of intra prediction mode INTRA _ HOR ,”
positions upon which the simplified PDPC techniques of this video encoder 20 may determine the value of the third
disclosure are applied may be a pre -defined number of weight for the respective sample as wTL =WT. In this
columns of the predictor block starting from the left of the example , as shown in the section of this disclosure entitled
predictor block and /or pre- defined number of rows of the “ Specification of intra prediction mode INTRA _ VER ,”
predictor block starting from the top of the predictor block . video encoder 20 may determine the value of the fourth
[0237 ] Video encoder 20 may also determine ,based on the weight for the respective sample as wTL = WL .
initial value of the second weight and a distance between the [0241 ] In some examples, video encoder 20 may deter
respective sample and a second boundary of the predictor mine the value of the third weight for the respective sample
block , a value of the second weight for the respective sample as a sum of a first parameter multiplied by the value of the
( 1008 ) . The second boundary may be a left boundary of the first weight for the respective sample plus a second param
predictor block . In some examples , video encoder 20 may eter multiplied by the value of the second weight for the
determine the value of the second weight for the respective respective sample. As an example, video encoder 20 may
sample by performing a shift operation on the initial value determine the value of the third weight (WTL ) as
of the second weight by an amount based on the distance WTL = a :wL + b .wT Video encoder 20 may determine the
between the respective sample and the second boundary of values of the first parameter (a ) and the second parameter (b )
the predictor block . For instance , in the sections of this in accordance with any of the examples provided elsewhere
disclosure entitled “ Specification of intra prediction mode in this disclosure . For instance, video encoder 20 may
INTRA _ PLANAR ,” “ Specification of intra prediction mode determine, based on an intra prediction direction , the values
INTRA _ DC,” “ Specification of intra prediction mode of the first parameter and the second parameter . In some
INTRA _ HOR ,” and “ Specification of intra prediction mode examples, values of the first parameter and the second
INTRA VER ,” video encoder 20 may determine the value parameter are dependent on an intra prediction angle differ
of the second weight for the respective sample as 32 > > ence or an intra mode index difference relative to a hori
((x < < 1 )> > rightShift ), where 32 is the initial value of the zontal and/or a vertical prediction direction .
second weight, x is a distance in samples from a left [0242 ] In some examples, video encoder 20 may signal
boundary of the predictor block , and rightShift is a value by values of the first parameter and the second parameter in the
which to right shift ( x < < 1) . In some examples , video bitstream . As noted elsewhere in this disclosure, the bit
encoder 20 may determine the second weight for the respec stream may include an encoded representation of the video
tive sample by dividing the initial value of the second weight data . For instance, video encoder 20 may include syntax
by an amount based on the distance between the respective elements specifying the first parameter and the second
sample and the second boundary of the predictor block . parameter in the bitstream .
[ 0238] In some examples, video encoder 20 may deter [0243 ] Furthermore, in the example of FIG . 10 , video
mine the value of the first weight for the respective sample encoder 20 may also determine a value of a fourth weight for
based on one or more of: a scaled horizontal coordinate of the respective sample based on the value of the first weight
the current sample, a block size of the predictor block , or the for the respective sample , the value of the second weight for
intra prediction mode. In some examples , video encoder 20 the respective sample , and the value of the third weight for
may derive the value of the second weight for the respective the respective sample ( 1012 ). Video encoder 20 may deter
sample based on one ormore of: a scaled vertical coordinate mine the value of the fourth weight for the respective sample
of the respective sample , the block size of the predictor in one or more of various ways . For example , video encoder
block , or the intra prediction mode. 20 may determine the value of the fourth weight for the
[ 0239 ] Furthermore , video encoder 20 may determine a respective sample as being equal to (64 - wT -wL -wTL ),
value of a third weight for the respective sample ( 1010 ). where wT is the value of the second weight for the respective
Video encoder 20 may determine the value of the third sample , wL is the value of the first weight for the respective
weight for the respective sample in one or more of various sample , and wTL is the value of the third weight for the
ways. For example , video encoder 20 may determine the respective sample , and the second value ( i. e ., the right shift
value of the third weight for the respective sample as value ) is equal to 6 . In some examples, video encoder 20
(wL > > 4 ) + (wT> > 4 ), where wL is the value of the firstweight may determine the value of the fourth weight for the
for the respective sample , wT is the value of the second respective sample as being equal to ( 2nightShift -wT - WL
weight for the respective sample , and > > is the right- shift WTL ), where wT is the value of the second weight for the
operation . In another example, video encoder 20 may deter respective sample , wL is the value of the first weight for the
mine the value of the third weight for the respective sample respective sample , and wTL is the value of the third weight
as - (wL > > 4 ) - (wT> > 4 ), where wL is the value of the first for the respective sample .
weight for the respective sample , wT is the value of the [0244 ] Additionally , in the example of FIG . 10 , video
second weight for the respective sample , and > > is the encoder 20 may determine a primary value for the respective
right-shift operation . sample according to the intra prediction mode ( 1014 ) . For
0240 ] In some examples, video encoder 20 determines instance , video encoder 20 may determine the primary value
the value of the third weight for the respective sample based of the respective sample using a Planar intra prediction
US 2019 /0110045 A1 Apr. 11 , 2019

mode, DC intra prediction mode , or directional intra pre reference sample ) and may determine the secondary value
diction mode , as described elsewhere in this disclosure . for the respective sample based on the filtered reference
[ 0245 ] For example , video encoder 20 may determine the samples. For example , video encoder 20 may filter the
primary value for the respective sample based on reference reference samples in accordance with any of the examples
samples in a current picture that contain the predictor block . provided elsewhere in this disclosure . The reference samples
For instance , in this example , video encoder 20 may deter may be reference samples of the predictor block . That is , the
mine the primary value for the respective sample based on reference samples may be in a column left of the predictor
reference samples of the predictor block . The reference block and in a row above the predictor block . In examples
samples of the predictor block may include decoded samples where the reference samples are reference samples of the
in a column left of the predictor block and decoded samples predictor block , video encoder 20 may generate the filtered
in a row above the predictor block . Thus , the reference reference samples of the predictor block by applying a filter
samples of the predictor block may include a left reference to initial, unfiltered reference samples of the predictor block .
sample for the respective sample that is left of the respective In other examples , video encoder 20 may use unfiltered
sample , an above reference sample for the current sample values of one or more of the left reference sample , the above
that is above the respective sample , and an above -left reference sample , and the above - left reference sample to
reference sample for the respective sample that is above and determine the secondary value for the respective sample .
left of the respective sample . However, depending on the [0254 ] In some examples, video encoder 20 only applies
intra prediction mode , determining the primary value for the the simplified PDPC techniques of this disclosure for certain
respective sample value based on the reference samples for block sizes, ( e. g ., blocks with sizes greater than a threshold ).
the predictor block does not require video encoder 20 to use Thus, in some examples , video encoder 20 may determine
one or more , or any, of the left reference sample for the the secondary value for the respective sample is the first
respective sample , the above reference sample for the value right -shifted by the second value based on a size of the
respective sample, or the above-left reference sample for the predictor block being greater than a predetermined thresh
respective sample. In some examples, video encoder 20 may old . Thus, in instances where the size of the predictor block
determine the primary value for the respective sample based is not greater than the threshold , the secondary value for the
on reconstructed samples that are within the predictor block . respective sample may be equal to the primary value for the
[0246 ] In some examples, video encoder 20 applies one or respective sample.
more filters to the reference samples and determines the [0255 ] Furthermore, in the example of FIG . 10 , video
primary value for the respective sample based on the filtered encoder 20 may generate residual data based on the predic
reference samples. For example, video encoder 20 may filter tor block and a coding block of the video data ( 1018 ). For
the reference samples in accordance with any of the example , video encoder 20 may generate the residual data by
examples provided elsewhere in this disclosure . In other subtracting samples of the coding block from corresponding
examples, video encoder 20 may determine the primary samples of the predictor block .
value for the respective sample based on unfiltered reference [0256 ] FIG . 11 is a flowchart illustrating an example
samples. operation of video decoder 30 in accordance with a tech
[ 0247] Next, video encoder 20 may determine a secondary nique of this disclosure . In the example of FIG . 11 , video
value for the respective sample as a first value for the decoder 30 (e .g., intra -prediction processing unit 166 (FIG .
respective sample right- shifted by a second value ( 1016 ). 9 ) of video decoder 30 )may generate a predictor block using
The first value for the respective sample may be a sum of: an intra prediction mode ( 1100 ). In some examples, the intra
[0248 ] (i) the value of the first weight for the respective prediction mode is a DC intra prediction mode. In some
sample , multiplied by a left reference sample for the examples, the intra prediction mode is a horizontal intra
respective sample that is left of the respective sample , prediction mode . In some examples, the intra prediction
[0249 ] ( ii ) the value of the second weight for the mode is a vertical intra prediction mode. In some examples ,
respective sample multiplied by an above reference the intra prediction mode may be another type of intra
sample for the respective sample that is above the prediction mode. In some examples, each of the samples in
respective sample, the predictor block is a luma sample . In some examples ,
[0250 (iii ) the value of the third weight for the respec each of the samples in the predictor block is a chroma
tive sample multiplied by an above - left reference sample . In some examples, video decoder 30 may apply the
sample for the respective sample that is above and left operation of FIG . 10 to both luma and chroma samples.
of the respective sample , [0257] As part of generating the predictor block , video
[0251] ( iv ) the value of the fourth weight for the respec decoder 30 may determine an initial value of a first weight
tive sample multiplied by the primary value for the ( 1102) . Additionally, video decoder 30 may determine an
respective sample, and initial value of a second weight ( 1104 ). Video decoder 30
[0252] (v ) an offset value . may determine the initial value of the first weight and the
For instance, video encoder 20 may determine the secondary initial value of the second weight in accordance with any of
value for the respective sample in accordance with equation the examples provided with respect to actions ( 1002 ) and
( 11 ), where wT is the first weight, wL is the second weight, (1004 ) and elsewhere in this disclosure.
WTL is the third weight, and (2rightShift -wT -WL - WTL ) is the [0258 ] Furthermore , for each respective sample in a set of
fourth weight, and rightShift is the second value . In some samples in the predictor block , video decoder 30 may
examples, the offset value is equal to 32 and the second determine, based on the initial value of the first weight and
value is equal 6 . a distance between the respective sample and a first bound
[0253 ] In some examples , video encoder 20 applies one or ary of the predictor block , a value of the firstweight for the
more filters to the reference samples (including the left respective sample ( 1106 ). The first boundary may be a top
reference sample, above reference sample , and above - left boundary of the predictor block . Video decoder 30 may also
US 2019 /0110045 A1 Apr. 11 , 2019
23

determine, based on the initial value of the second weight to initial, unfiltered reference samples of the predictor block .
and a distance between the respective sample and a second In other examples, video decoder 30 may use unfiltered
boundary of the predictor block , a value of the second values of one or more of the left reference sample , the above
weight for the respective sample ( 1108 ). The second bound reference sample , and the above -left reference sample to
ary may be a left boundary of the predictor block . Further determine the secondary value for the respective sample .
more , video decoder 30 may determine a value of a third [0267 ] In some examples , video decoder 30 only applies
weight for the respective sample ( 1110 ). Video decoder 30 the simplified PDPC techniques of this disclosure for certain
may also determine a value of a fourth weight for the block sizes ( e . g ., blocks with sizes greater than a threshold ) .
respective sample based on the value of the first weight for Thus , in some examples , video decoder 30 may determine
the respective sample, the value of the second weight for the the secondary value for the respective sample is the first
respective sample , and the value of the third weight for the value right-shifted by the second value based on a size of the
respective sample ( 1112 ). Video decoder 30 may determine predictor block being greater than a predetermined thresh
the values of the first, second , third , and fourth weights for old . Thus, in instances where the size of the predictor block
the respective sample in the samemanner as video encoder is not greater than the threshold , the secondary value for the
20 as described above with respect to actions ( 1006 ) , ( 1008 ), respective sample may be equal to the primary value for the
( 1010 ) and (1012 ), and described elsewhere in this disclo respective sample .
sure .
[0259 ] Additionally, in the example of FIG . 11 , video [0268 ] Furthermore , in the example of FIG . 11 , video
decoder 30 may determine a primary value for the respective decoder 30 may reconstruct, based on the predictor block
sample according to the intra prediction mode ( 1114 ). For and residual data , a decoded block of the video data ( 1118 ).
instance , video decoder 30 may determine the primary value For example , video decoder 30 may generate the residual
in the samemanner as video encoder 20 as described above data by adding samples of the predictor block to samples of
with respect to action ( 1014 ) and described elsewhere in this the residual data .
disclosure . [02691. Certain aspects of this disclosure have been
[ 0260] Next, video decoder 30 may determine a secondary described with respect to extensions of the HEVC standard
value for the respective sample as a first value for the for purposes of illustration . However, the techniques
respective sample right- shifted by a second value ( 1116 ). described in this disclosure may be useful for other video
The first value for the respective sample may be a sum of: coding processes, including other standard or proprietary
[0261] (i) the value of the firstweight for the respective video coding processes not yet developed .
sample , multiplied by a left reference sample for the [0270 ] A video coder, as described in this disclosure , may
respective sample that is left of the respective sample ,
refer to a video encoder or a video decoder. Similarly , a
[0262 ] (ii) the value of the second weight for the video coding unit may refer to a video encoder or a video
respective sample multiplied by an above reference decoder. Likewise , video coding may refer to video encod
sample for the respective sample that is above the ing or video decoding , as applicable . This disclosure may
respective sample , use the term “ video unit ” or “ video block " or " block ” to
[0263] ( iii ) the value of the third weight for the respec refer to one or more sample blocks and syntax structures
tive sample multiplied by an above -left reference used to code samples of the one or more blocks of samples.
sample for the respective sample that is above and left Example types of video units may include CTUS, CUS, PUs,
of the respective sample , transform units ( TUS), macroblocks, macroblock partitions ,
[0264 ] (iv ) the value of the fourth weight for the respec and so on . In some contexts , discussion of PUs may be
tive sample multiplied by the primary value for the interchanged with discussion ofmacroblocks or macroblock
respective sample , and partitions. Example types of video blocks may include
[0265 ] (v ) an offset value . coding tree blocks, coding blocks, and other types of blocks
For instance , video decoder 30 may determine the secondary of video data .
value for the respective sample in accordance with equation
( 11 ), where wT is the first weight, wL is the second weight, [0271 ] The techniques may be applied to video coding in
WTL is the third weight, and ( 2rightShift -wT - WL -WTL ) is the support of any of a variety ofmultimedia applications, such
fourth weight, and rightShift is the second value . In some as over -the- air television broadcasts , cable television trans
examples, the offset value is equal to 32 and the second missions, wired transmissions, satellite television transmis
value is equal 6 . sions, Internet streaming video transmissions , such as
[ 0266 ] In some examples , video decoder 30 applies one or dynamic adaptive streaming over HTTP (DASH ), digital
more filters to the reference samples (including the left video that is encoded onto a data storage medium , decoding
reference sample , above reference sample , and above -left of digital video stored on a data storage medium , or other
reference sample ) and may determine the secondary value applications or combinations of the above examples . In
for the respective sample based on the filtered reference some examples, system 10 may be configured to support
samples. For example , video decoder 30 may filter the one - way or two -way video transmission to support applica
reference samples in accordance with any of the examples tions such as video streaming, video playback , video broad
provided elsewhere in this disclosure . The reference samples casting, and /or video telephony.
may be reference samples of the predictor block . That is, the [0272 ] It is to be recognized that depending on the
reference samples may be in a column left of the predictor example , certain acts or events of any of the techniques
block and in a row above the predictor block . In examples described herein can be performed in a different sequence ,
where the reference samples are reference samples of the may be added , merged , or left out altogether ( e. g ., not all
predictor block , video decoder 30 may generate the filtered described acts or events are necessary for the practice of the
reference samples of the predictor block by applying a filter techniques). Moreover , in certain examples, acts or events
US 2019 /0110045 A1 Apr. 11 , 2019
24

may be performed concurrently , e.g., through multi-threaded hardware and / or software modules configured for encoding
processing, interrupt processing, or multiple processors, and decoding, or incorporated in a combined codec . Also ,
rather than sequentially. the techniques could be fully implemented in one or more
10273] In one or more examples, the functions described circuits or logic elements . Processing circuits may be
may be implemented in hardware, software , firmware , or coupled to other components in various ways . For example ,
any combination thereof. If implemented in software , the a processing circuit may be coupled to other components via
functions may be stored on or transmitted over, as one or an internal device interconnect, a wired or wireless network
more instructions or code, a computer - readable medium and connection , or another communication medium .
executed by a hardware -based processing unit . Computer [0276 ] The techniques of this disclosure may be imple
readable media may include computer-readable storage mented in a wide variety of devices or apparatuses, includ
media , which corresponds to a tangible medium such as data ing a wireless handset, an integrated circuit ( IC ) or a set of
storage media , or communication media including any ICs (e. g ., a chip set ). Various components, modules, or units
medium that facilitates transfer of a computer program from are described in this disclosure to emphasize functional
one place to another , e . g ., according to a communication aspects of devices configured to perform the disclosed
protocol. In this manner , computer- readable media generally techniques , but do not necessarily require realization by
may correspond to ( 1) tangible computer -readable storage different hardware units . Rather , as described above , various
media which is non -transitory or ( 2 ) a communication units may be combined in a codec hardware unit or provided
medium such as a signal or carrier wave . Data storage media by a collection of interoperative hardware units , including
may be any available media that can be accessed by one or one or more processors as described above , in conjunction
more computers or one or more processing circuits to with suitable software and /or firmware .
retrieve instructions, code and/ or data structures for imple 0277 ] In this disclosure , ordinal terms such as “ first,"
mentation of the techniques described in this disclosure. A “ second ," " third ,” and so on , are not necessarily indicators
computer program product may include a computer -readable of positions within an order , but rather may simply be used
medium . to distinguish different instances of the same thing .
[0274] By way of example, and not limitation , such com 0278 ] Various examples have been described . These and
other examples are within the scope of the following claims.
puter- readable storage media can include RAM , ROM ,
EEPROM , CD -ROM or other optical disk storage, magnetic What is claimed is:
disk storage, or other magnetic storage devices , flash 1. A method of decoding video data , the method com
memory, cache memory, or any other medium that can be prising :
used to store desired program code in the form of instruc generating a predictor block using an intra prediction
tions or data structures and that can be accessed by a mode , wherein generating the predictor block com
computer. Also , any connection is properly termed a com prises:
puter-readable medium . For example , if instructions are determining an initial value of a first weight;
transmitted from a website , server, or other remote source determining an initial value of a second weight;
using a coaxial cable , fiber optic cable , twisted pair , digital for each respective sample in a set of samples in the
subscriber line (DSL ), or wireless technologies such as predictor block :
infrared , radio , and microwave , then the coaxial cable, fiber determining , based on the initial value of the first
optic cable , twisted pair , DSL , or wireless technologies such weight and a distance between the respective
as infrared , radio , and microwave are included in the defi sample and a first boundary of the predictor block ,
nition of medium . It should be understood , however, that a value of the first weight for the respective
computer-readable storage media and data storage media do sample ;
not include connections, carrier waves, signals , or other determining , based on the initial value of the second
transient media , but are instead directed to non - transient, weight and a distance between the respective
tangible storage media . Disk and disc , as used herein , sample and a second boundary of the predictor
includes compact disc (CD ), laser disc , optical disc , digital block , a value of the second weight for the respec
versatile disc (DVD ), floppy disk and Blu - ray disc , where tive sample ;
disks usually reproduce data magnetically, while discs determining a value of a third weight for the respec
reproduce data optically with lasers. Combinations of the tive sample ;
above should also be included within the scope of computer determining a value of a fourth weight for the
readable media . respective sample based on the value of the first
[0275 ] Functionality described in this disclosure may be weight for the respective sample , the value of the
performed by fixed function and /or programmable process second weight for the respective sample, and the
ing circuitry . For instance, instructions may be executed by value of the third weight for the respective sample ;
fixed function and /or programmable processing circuitry . determining a primary value for the respective
Such processing circuitry may include one or more proces sample according to the intra prediction mode; and
sors, such as one or more digital signal processors (DSPs ), determining a secondary value for the respective
general purpose microprocessors, application specific inte sample as a first value for the respective sample
grated circuits (ASICs ), field programmable logic arrays right- shifted by a second value , the first value for
(FPGAs), or other equivalent integrated or discrete logic the respective sample being a sum of (i ) the value
circuitry . Accordingly, the term “ processor," as used herein of the first weight for the respective sample ,
may refer to any of the foregoing structure or any other multiplied by a left reference sample for the
structure suitable for implementation of the techniques respective sample that is left of the respective
described herein . In addition , in some aspects , the function sample , (ii) the value of the second weight for the
ality described herein may be provided within dedicated respective sample multiplied by an above refer
US 2019 /0110045 A1 Apr. 11 , 2019
25

ence sample for the respective sample that is 8 . The method of claim 7, further comprising :
above the respective sample , ( iii) the value of the determining, based on an intra prediction direction , the
third weight for the respective sample multiplied values of the first parameter and the second parameter,
by an above-left reference sample for the respec obtaining values of the first parameter and the second
tive sample that is above and left of the respective parameter from a bitstream that comprises an encoded
sample , (iv ) the value of the fourth weight for the representation of the video data , or
respective sample multiplied by the primary value determining the values of the first parameter and the
for the respective sample , and (v ) an offset value ; second parameter based on an intra prediction angle
and difference or an intra mode index difference relative to
reconstructing, based on the predictor block and residual a horizontal and/or a vertical prediction direction .
data , a decoded block of the video data . 9 . The method of claim 1 , wherein the intra prediction
2 . The method of claim 1, wherein , for each respective mode is a DC intra prediction mode, a horizontal intra
sample in the set of samples in the predictor block , deter prediction mode, or a vertical intra prediction mode.
mining the primary value for the respective sample com 10 . A method of encoding video data , the method com
prises determining the primary value for the respective prising :
sample based on reference samples of the predictor block , generating a predictor block using an intra prediction
the reference samples including the left reference sample for mode, wherein generating the predictor block com
the respective sample , the above reference sample for the prises:
respective sample , and the above -left reference sample for determining an initial value of a first weight ;
the respective sample. determining an initial value of a second weight;
3 . The method of claim 2 , wherein the reference samples for each respective sample in a set of samples in the
of the block are filtered reference samples and the method predictor block :
further comprises:
generating the filtered reference samples of the predictor determining, based on the initial value of the first
block by applying a filter to initial reference samples of weight and a distance between the respective
the predictor block . sample and a first boundary of the predictor block ,
4 . The method of claim 1, wherein , for each respective a value of the first weight for the respective
sample in the set of samples in the predictor block : sample ;
determining the value of the first weight for the respective determining , based on the initial value of the second
sample comprises determining the value of the first weight and a distance between the respective
weight for the respective sample by performing a shift sample and a second boundary of the predictor
operation on the initial value of the first weight by an block , a value of the second weight for the respec
amount based on the distance between the respective tive sample ;
sample and the first boundary of the predictor block ; determining a value of a third weight for the respec
and tive sample ;
determining the value of the second weight comprises determining a value of a fourth weight for the
determining the value of the second weight for the respective sample based on the value of the first
respective sample by performing the shift operation on weight for the respective sample, the value of the
the initial value of the second weight by an amount second weight for the respective sample , and the
based on the distance between the respective sample value of the third weight for the respective sample ;
and the second boundary of the predictor block . determining a primary value for the respective
5 . The method of claim 1 , wherein , for each respective sample according to the intra prediction mode ; and
sample in the set of samples in the predictor block , the value determining a secondary value for the respective
of the fourth weight for the respective sample is equal to sample as a first value for the respective sample
(64 -wT -WL -WTL ), where wT is the value of the second right- shifted by a second value , the first value for
weight for the respective sample , wL is the value of the first the respective sample being a sum of ( i) the value
weight for the respective sample , and wTL is the value of the of the first weight for the respective sample ,
third weight for the respective sample, the offset value is multiplied by a left reference sample for the
equal to 32 , and the second value is equal to 6 . respective sample that is left of the respective
6 . The method of claim 1, wherein determining the value sample , (ii) the value of the second weight for the
of the third weight for the respective sample comprises : respective sample multiplied by an above refer
determining the value of the third weight for the respec ence sample for the respective sample that is
tive sample as (wL > > 4 ) + (wT> > 4 ), where wL is the above the respective sample, ( iii ) the value of the
value of the first weight for the respective sample, wT third weight for the respective sample multiplied
is the value of the second weight for the respective by an above -left reference sample for the respec
sample , and > > is a right- shift operation . tive sample that is above and left of the respective
7 . The method of claim 1 , further comprising, for each sample, (iv ) the value of the fourth weight for the
respective sample in the set of samples in the predictor respective sample multiplied by the primary value
block : for the respective sample , and (v ) an offset value ;
determining the value of the third weight for the respec and
tive sample as a sum of a first parameter multiplied by generating residual data based on the predictor block and
the value of the first weight for the respective sample a coding block of the video data.
plus a second parameter multiplied by the value of the 11 . The method of claim 10 , wherein , for each respective
second weight for the respective sample . sample in the set of samples in the predictor block :
US 2019 /0110045 A1 Apr. 11 , 2019

determining the value of the first weight for the respective determine a primary value for the respective
sample comprises determining the value of the first sample according to the intra prediction mode ;
weight for the respective sample by performing a shift and
operation on the initial value of the first weight by an determine a secondary value for the respective
amount based on the distance between the respective sample as a first value for the respective sample
sample and the first boundary of the predictor block ; right - shifted by a second value , the first value
and for the respective sample being a sum of (i) the
determining the value of the second weight comprises value of the first weight for the respective
determining the value of the second weight for the sample , multiplied by a left reference sample
respective sample by performing the shift operation on for the respective sample that is left of the
the initial value of the second weight by an amount respective sample , (ii) the value of the second
based on the distance between the respective sample weight for the respective sample multiplied by
and the second boundary of the predictor block . an above reference sample for the respective
12 . The method of claim 10 , wherein determining the sample that is above the respective sample , ( iii )
value of the third weight for the respective sample com the value of the third weight for the respective
prises: sample multiplied by an above -left reference
determining the value of the third weight for the respec sample for the respective sample that is above
tive sample as (wL > > 4 ) + (wT> > 4 ), where wL is the and left of the respective sample , (iv ) the value
value of the first weight for the respective sample , wT of the fourth weight for the respective sample
is the value of the second weight for the respective multiplied by the primary value for the respec
sample , and > > is a right-shift operation . tive sample, and (v ) an offset value ; and
13 . The method of claim 10 , further comprising, for each reconstruct , based on the predictor block and residual
respective sample in the set of samples in the predictor data , a decoded block of the video data .
block : 16 . The apparatus of claim 15 , wherein , for each respec
determining the value of the third weight for the respec tive sample in the set of samples in the predictor block , the
tive sample as a sum of a first parameter multiplied by one or more processors are configured to determine the
the value of the first weight for the respective sample primary value for the respective sample based on reference
plus a second parameter multiplied by the value of the samples of the predictor block , the reference samples includ
second weight for the respective sample. ing the left reference sample for the respective sample , the
14 . The method of claim 10 , wherein the intra prediction above reference sample for the respective sample , and the
mode is a DC intra prediction mode, a horizontal intra above-left reference sample for the respective sample .
prediction mode, or a vertical intra prediction mode. 17 . The apparatus of claim 16 , wherein the reference
15 . An apparatus for decoding video data , the apparatus samples of the block are filtered reference samples and the
comprising: one or more processors are configured to generate the
one or more storage media configured to store the video filtered reference samples of the predictor block by applying
data ; and a filter to initial reference samples of the predictor block .
one or more processors configured to : 18 . The apparatus of claim 15, wherein , for each respec
generate a predictor block using an intra prediction tive sample in the set of samples in the predictor block , the
mode, wherein the one or more processors are con one or more processors are configured to :
figured such that, as part of generating the predictor determine the value of the first weight for the respective
block , the one or more processors: sample by performing a shift operation on the initial
determine an initial value of a first weight; value of the first weight by an amount based on the
determine an initial value of a second weight; distance between the respective sample and the first
for each respective sample in a set of samples in the boundary of the predictor block ; and
predictor block : determine the value of the second weight for the respec
determine , based on the initial value of the first tive sample by performing the shift operation on the
weight and a distance between the respective initial value of the second weight by an amount based
sample and a first boundary of the predictor on the distance between the respective sample and the
block , a value of the first weight for the respec second boundary of the predictor block .
tive sample ; 19 . The apparatus of claim 15 , wherein , for each respec
determine, based on the initial value of the second tive sample in the set of samples in the predictor block , the
weight and a distance between the respective value of the fourth weight for the respective sample is equal
sample and a second boundary of the predictor to (64 -wT -WL -WTL ), where wT is the value of the second
block , a value of the second weight for the weight for the respective sample , wL is the value of the first
respective sample ; weight for the respective sample , and wTL is the value of the
determine a value of a third weight for the respec third weight for the respective sample , the offset value is
tive sample ; equal to 32 , and the second value is equal to 6 .
determine a value of a fourth weight for the 20. The apparatus of claim 15 , wherein the one or more
respective sample based on the value of the first processors are configured to determine the value of the third
weight for the respective sample , the value of weight for the respective sample as (wL > > 4 ) + (wT> > 4 ) ,
the second weight for the respective sample , where wL is the value of the first weight for the respective
and the value of the third weight for the respec sample , wT is the value of the second weight for the
tive sample ; respective sample, and > > is a right-shift operation .
US 2019 /0110045 A1 Apr. 11 , 2019
27

21 . The apparatus of claim 15 , wherein , for each respec value of the first weight for the respective
tive sample in the set of samples in the predictor block , the sample , multiplied by a left reference sample
one or more processors are configured to determine the for the respective sample that is left of the
value of the third weight for the respective sample as a sum respective sample , (ii) the value of the second
of a firstparameter multiplied by the value of the first weight weight for the respective sample multiplied by
for the respective sample plus a second parameter multiplied an above reference sample for the respective
by the value of the second weight for the respective sample . sample that is above the respective sample , ( iii)
22 . The apparatus of claim 21 , wherein the one or more the value of the third weight for the respective
processors are further configured to : sample multiplied by an above- left reference
determine, based on an intra prediction direction , the sample for the respective sample that is above
values of the first parameter and the second parameter, and left of the respective sample , (iv ) the value
obtain values of the first parameter and the second param of the fourth weight for the respective sample
eter from a bitstream that comprises an encoded rep multiplied by the primary value for the respec
resentation of the video data , or tive sample , and (v ) an offset value ; and
determine the values of the first parameter and the second generate residual data based on the predictor block and
parameter based on an intra prediction angle difference a coding block of the video data.
or an intra mode index difference relative to a horizon 26 . The apparatus of claim 25 , wherein , for each respec
tal and /or a vertical prediction direction . tive sample in the set of samples in the predictor block , the
23 . The apparatus of claim 15 , wherein the intra predic one or more processors are configured to :
tion mode is a DC intra prediction mode, a horizontal intra determine the value of the first weight for the respective
prediction mode, or a vertical intra prediction mode. sample by performing a shift operation on the initial
24 . The apparatus of claim 23 , wherein the apparatus value of the first weight by an amount based on the
comprises: distance between the respective sample and the first
an integrated circuit, boundary of the predictor block ; and
a microprocessor, or determine the value of the second weight for the respec
a wireless communication device . tive sample by performing the shift operation on the
25 . An apparatus for encoding video data, the apparatus initial value of the second weight by an amount based
comprising: on the distance between the respective sample and the
one or more storage media configured to store the video second boundary of the predictor block .
data ; and 27 . The apparatus of claim 25 , wherein the one or more
one or more processors configured to : processors are configured to determine the value of the third
generate a predictor block using an intra prediction weight for the respective sample as (wL > > 4 ) + (wT> > 4 ),
mode, wherein the one or more processors are con where wL is the value of the first weight for the respective
figured such that, as part of generating the predictor sample , wt is the value of the second weight for the
block , the one or more processors : respective sample , and > > is a right- shift operation .
determine an initial value of a first weight; 28 . The apparatus of claim 25 , wherein , for each respec
determine an initial value of a second weight; tive sample in the set of samples in the predictor block , the
for each respective sample in a set of samples in the one or more processors are configured to determine the
predictor block : value of the third weight for the respective sample as a sum
determine , based on the initial value of the first of a first parametermultiplied by the value of the first weight
weight and a distance between the respective for the respective sample plus a second parameter multiplied
sample and a first boundary of the predictor by the value of the second weight for the respective sample.
block , a value of the first weight for the respec 29 . The apparatus of claim 25 , wherein the intra predic
tive sample ; tion mode is a DC intra prediction mode , a horizontal intra
determine, based on the initial value of the second prediction mode, or a vertical intra prediction mode .
weight and a distance between the respective 30 . The apparatus of claim 25 , wherein the apparatus
sample and a second boundary of the predictor comprises:
block , a value of the second weight for the an integrated circuit ,
respective sample ; a microprocessor, or
determine a value of a third weight for the respec a wireless communication device .
tive sample ; 31 . A computer-readable storage medium having instruc
determine a value of a fourth weight for the tions stored thereon that , when executed , cause one ormore
respective sample based on the value of the first processors to :
weight for the respective sample, the value of
the second weight for the respective sample, generate a predictor block using an intra prediction mode ,
and the value of the third weight for the respec wherein the one or more processors are configured such
tive sample ; that, as part of generating the predictor block , the one
determine a primary value for the respective or more processors :
sample according to the intra prediction mode; determine an initial value of a first weight;
and determine an initial value of a second weight;
determine a secondary value for the respective for each respective sample in a set of samples in the
sample as a first value for the respective sample predictor block :
right -shifted by a second value , the first value determine , based on the initial value of the first
for the respective sample being a sum of (i) the weight and a distance between the respective
US 2019 /0110045 A1 Apr. 11 , 2019

sample and a first boundary of the predictor block , right-shifted by a second value, the first value for
a value of the first weight for the respective the respective sample being a sum of (i) the value
sample ; of the first weight for the respective sample ,
determine , based on the initial value of the second multiplied by a left reference sample for the
weight and a distance between the respective respective sample that is left of the respective
sample and a second boundary of the predictor sample, ( ii ) the value of the second weight for the
block , a value of the second weight for the respec respective sample multiplied by an above refer
tive sample ; ence sample for the respective sample that is
determine a value of a third weight for the respective above the respective sample, ( iii ) the value of the
sample ; third weight for the respective sample multiplied
determine a value of a fourth weight for the respec by an above -left reference sample for the respec
tive sample based on the value of the first weight tive sample that is above and left of the respective
for the respective sample , the value of the second sample , ( iv ) the value of the fourth weight for the
weight for the respective sample , and the value of respective sample multiplied by the primary value
the third weight for the respective sample ; for the respective sample , and ( v ) an offset value;
determine a primary value for the respective sample and
according to the intra prediction mode ; and reconstruct, based on the predictor block and residual
determine a secondary value for the respective data , a decoded block of video data .
sample as a first value for the respective sample

You might also like