LM Mode with Uniform Bit-Width Multipliers
Abstract
A video codec including a processor configured to generate a predicted chroma sample for a chroma block based on reconstructed luma samples located in neighboring blocks of a corresponding reconstructed luma block and adjacent to the corresponding reconstructed luma block, and reconstructed chroma samples located in neighboring blocks of the chroma block and adjacent to the chroma block. Generating the predicted chroma sample includes computing a plurality of multipliers. Each of the plurality of multipliers has a bit width no greater than an input bit depth of the chroma block. Generating the predicted chroma sample does not require any multiplier that has a bit width greater than the input bit depth of the chroma block. A range of input parameters used to compute at least one of the multipliers is restrained by using the input bit depth as an exponent.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A video codec comprising:
a video input; a non-transitory memory comprising instructions; and one or more processors in communication with the video input and to the memory, wherein the one or more processors execute the instructions to: generate a predicted chroma sample for a chroma block based on:
a plurality of reconstructed luma samples located in neighboring blocks of a corresponding reconstructed luma block and adjacent to the corresponding reconstructed luma block, and
a plurality of reconstructed chroma samples located in neighboring blocks of the chroma block and adjacent to the chroma block,
wherein generating the predicted chroma sample comprises computing a plurality of multipliers, wherein each of the plurality of multipliers has a bit width no greater than an input bit depth of the chroma block, and wherein generating the predicted chroma sample does not require any multiplier that has a bit width greater than the input bit depth of the chroma block, and wherein a range of input parameters used to compute at least one of the multipliers is restrained by using the input bit depth as an exponent.
2 . The video codec of claim 1 , wherein the range of input parameters used to compute at least one of the multipliers is restrained by using the input bit depth as an exponent according to the formula: range=(−2 InputlBitDepth−1 ,2 InputBitDepth−1 −1).
3 . The video codec of claim 1 , wherein generating the predicted chroma sample further comprises generating a plurality of filtered luma samples by filtering the plurality of reconstructed luma samples, and wherein the plurality of multipliers comprises:
a first flooring function of an average of the plurality of filtered luma samples; and a second flooring function of an average of the plurality of reconstructed chroma samples.
4 . The video codec of claim 3 , wherein the first and second flooring functions are first and second intermediate variables denoted as avgY′ and avgC respectively, wherein the plurality of multipliers further comprises:
a third intermediate variable, denoted as RErrY′, representing a difference between a sum of the plurality of filtered luma samples and 2*nS*avgY′, and
a fourth intermediate variable, denoted as RErrC, representing a difference between a sum of the plurality of reconstructed chroma samples and 2*nS*avgC, and wherein nS denotes a width of the chroma block, which equals a number of the plurality of filtered luma samples.
5 . The video codec of claim 4 , wherein generating the predicted chroma sample further comprises:
computing an intermediate variable denoted as a1 using the first, second, third, and fourth intermediate variables; computing an intermediate variable denoted as a2 using the first and third intermediate variables, and computing an integer division of a1 and a2 to generate an intermediate variable denoted as alpha, and wherein the predicted chroma sample is generated based on alpha.
6 . The video codec of claim 4 , wherein generating the predicted chroma sample further comprises computing intermediate variables denoted as a1 and a2 according to the following equations:
a 1 =LC −(2 *nS *avg Y ′*avg C +avg Y ′*RErr C +avg C *RErr Y ′); and
a 2 =LL −(2 *nS *avg Y′ 2 +2*avg Y ′*RErr Y ′),
wherein LC and LL are intermediate variables determined by the plurality of reconstructed chroma samples and the plurality of filtered luma samples, and wherein the predicted chroma sample is generated based on a1 and a2.
7 . The video codec of claim 6 , wherein BitDepth C denotes the input bit depth of the chroma block, wherein p Y ′[x, y] denotes each of the plurality of filtered luma samples, wherein x and y are integers indicating a position, wherein p[x, y] denotes each of the plurality of reconstructed chroma samples, and wherein generating the predicted chroma sample further comprises determining LL and LC via
either equations:
k
3
=
Max
(
0
,
BitDepth
C
+
log
2
(
nS
)
-
14
)
;
LL
=
(
∑
y
=
0
nS
-
1
p
Y
′
[
-
1
,
y
]
2
+
∑
x
=
0
nS
-
1
p
Y
′
[
x
,
-
1
]
2
)
>>
k
3
;
and
LC
=
(
∑
y
=
0
nS
-
1
p
Y
′
[
-
1
,
y
]
*
p
[
-
1
,
y
]
+
∑
y
=
0
nS
-
1
p
Y
′
[
x
,
-
1
]
*
p
[
x
,
-
1
]
)
>>
k
3
or equations:
LL
=
(
∑
y
=
0
nS
-
1
p
Y
′
[
-
1
,
y
]
2
+
∑
x
=
0
nS
-
1
p
Y
′
[
x
,
-
1
]
2
)
;
and
LC
=
(
∑
y
=
0
nS
-
1
p
Y
′
[
-
1
,
y
]
*
p
[
-
1
,
y
]
+
∑
y
=
0
nS
-
1
p
Y
′
[
x
,
-
1
]
*
p
[
x
,
-
1
]
)
.
8 . The video codec of claim 6 , wherein computing avgY′, avgC, RErrY′, and RErrC uses the following equations:
k 0=Log 2((2* nS ));
avg Y′=L>>k 0;
RErr Y′=L &((1<< k 0)−1);
avg C=C>>k 0; and
RErr C=C &((1<< k 0)−1),
wherein C denotes a sum of the plurality of reconstructed chroma samples, and wherein L denotes a sum of the plurality of filtered luma samples.
9 . The video codec of claim 6 , wherein BitDepth C denotes the input bit depth of the chroma block, wherein the plurality of multipliers further comprises an intermediate variable denoted as a1s, and wherein computing a1s follows equations:
k 1=Max(0,log 2 (abs( a 1))−BitDepth C +2); and
a 1 s=a 1>> k 1.
10 . The video codec of claim 9 , wherein the plurality of multipliers further comprises an intermediate variable denoted as a2t, and wherein a2t is computed based on an intermediate variable a2s following
either equations:
a 2 t=a 2 s< 1?0:( lm Div [ a 2 s ]+(1<<(15−BitDepth C −1)))>>(15−BitDepth C ));
and
a 2 t =Clip1 C ( a 2 t ),
or equations:
a 2 t=a 2 s< 32?0:( lm Div [ a 2 s ]+(1<<(15−BitDepth C −1)))>>(15−BitDepth C ));
and
a 2 t =Clip1 C ( a 2 t ).
11 . The video codec of claim 6 , wherein the input bit depth equals 8 or 10, and wherein the width of the chroma block is no less than 4 and no greater than 16.
12 . The video codec of claim 4 , wherein the processor is further configured to:
generate a residual sample indicating a difference between the predicted chroma sample and a corresponding chroma sample in the chroma block; and entropy encode the residual sample to generate an encoded residual sample.
13 . The video codec of claim 4 , wherein the processor is further configured to:
decode an encoded residual sample to generate a decoded residual sample; and combine the decoded residual sample and the predicted chroma sample to generate a corresponding chroma sample in the chroma block.
14 . A method used in video coding comprising:
generating, using a processor of a video codec, a predicted chroma sample for a chroma block based on:
a plurality of reconstructed luma samples located in neighboring blocks of a corresponding reconstructed luma block and adjacent to the corresponding reconstructed luma block, and
a plurality of reconstructed chroma samples located in neighboring blocks of the chroma block and adjacent to the chroma block,
wherein generating the predicted chroma sample comprises computing a plurality of multipliers, wherein each of the plurality of multipliers has a bit width no greater than an input bit depth of the chroma block, and wherein generating the predicted chroma sample does not require any multiplier that has a bit width greater than the input bit depth of the chroma block, and wherein a range of input parameters used to compute at least one of the multipliers is restrained by using the input bit depth as an exponent.
15 . The method of claim 14 , wherein the range of input parameters used to compute at least one of the multipliers is restrained by using the input bit depth as an exponent according to the formula: range=(−2 InputlBitDepth−1 ,2 InputBitDepth−1 −1).
16 . The method of claim 14 , wherein generating the predicted chroma sample further comprises generating a plurality of filtered luma samples by filtering the plurality of reconstructed luma samples, and wherein the plurality of multipliers comprises:
a first flooring function of an average of the plurality of filtered luma samples; and a second flooring function of an average of the plurality of reconstructed chroma samples.
17 . The method of claim 16 , wherein the first and second flooring functions are first and second intermediate variables denoted as avgY′ and avgC respectively, wherein the plurality of multipliers further comprises:
a third intermediate variable, denoted as RErrY′, representing a difference between a sum of the plurality of filtered luma samples and 2*nS*avgY′, and
a fourth intermediate variable, denoted as RErrC, representing a difference between a sum of the plurality of reconstructed chroma samples and 2*nS*avgC, and wherein nS denotes a width of the chroma block, which equals a number of the plurality of filtered luma samples.
18 . The method of claim 17 , wherein generating the predicted chroma sample further comprises:
computing an intermediate variable denoted as a1 using the first, second, third, and fourth intermediate variables; computing an intermediate variable denoted as a2 using the first and third intermediate variables, and computing an integer division of a1 and a2 to generate an intermediate variable denoted as alpha, and wherein the predicted chroma sample is generated based on alpha.
19 . The method of claim 17 , wherein generating the predicted chroma sample further comprises computing intermediate variables denoted as a1 and a2 according to the following equations:
a 1 =LC −(2 *nS *avg Y ′*avg C +avg Y ′*RErr C +avg C *RErr Y ′); and
a 2 =LL −(2 *nS *avg Y′ 2 +2*avg Y ′*RErr Y ′).
wherein LC and LL are intermediate variables determined by the plurality of reconstructed chroma samples and the plurality of filtered luma samples, and wherein the predicted chroma sample is generated based on a1 and a2.
20 . The method of claim 19 , wherein BitDepth C denotes the input bit depth of the chroma block, wherein the plurality of multipliers further comprises an intermediate variable denoted as a1s, and wherein computing a1s follows equations:
k 1=Max(0,log 2 (abs( a 1))−BitDepth C +2); and
a 1 s=a 1>> k 1.
21 . An apparatus used in video coding comprising:
a video input; a non-transitory memory comprising instructions; and one or more processors in communication with the video input and to the memory, wherein the one or more processors execute the instructions to:
compute a flooring function of an average of a plurality of reconstructed chroma samples located in neighboring blocks of a chroma block and adjacent to the chroma block;
compute a flooring function of an average of a plurality of reconstructed luma samples located in neighboring blocks of a corresponding reconstructed luma block and adjacent to the corresponding reconstructed luma block, wherein the first and second flooring functions are first and second multipliers;
compute a number of additional multipliers, at least some of which are based on the plurality of reconstructed chroma samples and the plurality of reconstructed luma samples; and
compute a predicted chroma sample for the chroma block based on all of the multipliers, wherein each of the multipliers has a bit width no greater than an input bit depth of the chroma block, and wherein computing the predicted chroma sample does not require any multiplier that has a bit width greater than the input bit depth of the chroma block,
wherein a range of input parameters used to compute at least one of the multipliers is restrained by using the input bit depth as an exponent.
22 . The apparatus of claim 21 , wherein the range of input parameters used to compute at least one of the multipliers is restrained by using the input bit depth as an exponent according to the formula: range=(−2 InputlBitDepth−1 ,2 InputBitDepth−1 −1.
23 . The apparatus of claim 21 , wherein the first and second flooring functions are denoted as avgC and avgY respectively, wherein the additional multipliers comprises:
a third multiplier, denoted as RErrC, representing a difference between a sum of the plurality of reconstructed chroma samples and 2*nS*avgC, and a fourth multiplier, denoted as RErrY, representing a difference between a sum of the plurality of filtered luma samples and 2*nS*avgY, and wherein nS denotes a width of the chroma block, which equals a number of the plurality of filtered luma samples.Join the waitlist — get patent alerts
Track US2016173907A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.