IP Library › Granted Patent US 9,438,905
Granted Patent B2
US 9,438,905 · App. 13/802,525 · Granted Sep 6, 2016

LM mode with uniform bit-width multipliers

Inventor: Lingzhi Liu (San Jose, CA)
Assignee: Futurewei Technologies, Inc.
H04N19/00569H04N19/50H04N19/593
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,438,905
App. No.
13/802,525
Granted
Sep 6, 2016
Kind
B2
Abstract

A video codec able to generate a predicted chroma sample for a chroma block based on reconstructed luma samples and reconstructed chroma samples. The reconstructed luma samples are located in neighboring blocks of a corresponding reconstructed luma block and adjacent to the corresponding reconstructed luma block. The reconstructed chroma samples are located in neighboring blocks of the chroma block and adjacent to the chroma block. The predicted chroma sample is generated by computing multipliers. Each of the multipliers has a bit width no greater than an input bit depth of the chroma block. The predicted chroma sample is generated without the need for any multiplier having a bit width greater than the input bit depth of the chroma block.

Claims (322)

1. A video codec comprising:

a processor configured 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,

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,

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,

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′*R Err C +avg C*R Err Y ′); and

a 2 =LL −(2 *nS *avg Y′ 2 +2*avg Y′*R Err 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, and

wherein computing avgY′, avgC, RErrY′, and RErrC uses the following equations:

k 0=Log 2((2* nS ));

avg Y′=L>>k 0;

R Err Y′=L &((1 <<k 0)−1);

avg C=C>>k 0; and

R Err 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.

2. The video codec of claim 1 , 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

LL

=

(

∑

y

=

0

nS

-

1

⁢

p

Y

′

⁡

[

-

1

,

y

]

*

p

⁡

[

-

1

,

y

]

+

∑

x

=

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

]

)

.

3. A video codec comprising:

a processor configured 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,

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,

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,

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′*R Err C +avg C*R Err Y ′); and

a 2 =LL −(2 *nS *avg Y′ 2 +2*avg Y′*R Err 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, and

wherein BitDepth C denotes the input bit depth of the chroma block, wherein the plurality of multipliers further comprises an intermediate variable denoted as als, and wherein computing als follows equations:

k 1=Max(0,log 2 (abs( a 1))−BitDepth C +2); and

a 1 s=a 1>> k 1.

4. The video codec of claim 3 , 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:(1 m 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:(1 m Div [ a 2 s ]+(1<<(15−BitDepth C −1)))>>(15−BitDepth C ));

and

a 2 t =Clip1 C ( a 2 t ).

5. The video codec of claim 1 , 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.

6. The video codec of claim 1 , 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.

7. The video codec of claim 1 , 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.

8. 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,

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,

wherein the first and second flooring functions are first and second intermediate variable 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,

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′*R Err C +avg C*R Err Y ′); and

a 2 =LL −(2 *nS *avg Y′ 2 +2*avg Y′*R Err 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, and

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2013
From: LIU, LINGZHI
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 030547/0168 →
Continuity (2)
Provisional Application 61623249 · Apr 12, 2012
Related Publication 20130272396A1 · Oct 17, 2013