# US 9,438,904 B2 · Reduced look-up table for LM mode calculation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,438,904 B2
- Document ID: US9438904B2
- Status: Granted
- Kind: B2
- Application number: 13/732,249
- Filed: 2012-12-31
- Published: 2013-07-25
- Granted: 2016-09-06
- Earliest claimed: 2012-01-19
- Assignees: Futurewei Technologies, Inc.
- Applicants: Futurewei Technologies, Inc.
- Inventors: Lingzhi Liu
- Web page: https://patentgrep.com/patent/US9438904B2

## CPC

- H04N 19/50: using predictive coding (H04N19/61 takes precedence)
- H04N 19/593: involving spatial prediction techniques
- H04N 19/186: the unit being a colour or a chrominance component
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A video codec comprising a processor configured to generate a prediction block for a chroma block, wherein the prediction block comprises a plurality of predicted chroma samples, wherein each of the plurality of predicted chroma samples is based on a first plurality of reconstructed luma samples located in a corresponding reconstructed luma block, a second plurality of reconstructed luma samples located in neighboring blocks of the corresponding reconstructed luma block, and a look-up table, wherein an index of the look-up table is based on the second plurality of reconstructed luma samples, wherein an index of the look-up table has less than 63 values.

## Claims

### Claim 1

A video codec comprising:
a processor configured to:
generate a prediction block for a chroma block, wherein the prediction block comprises a predicted chroma sample, wherein the predicted chroma sample is based on:
a first reconstructed luma sample located in a corresponding reconstructed luma block;
a second reconstructed luma sample located in a neighboring block of the corresponding reconstructed luma block; and
a look-up table, wherein a value of an index of the look-up table is based on the second reconstructed luma sample, wherein a number of indices of the look-up table is either 32 or 56;
obtain the chroma block;
generate a residual block indicating a difference between the chroma block and the prediction block; and
entropy encode the residual block into an encoded video bitstream, wherein a transmitter is coupled to the processor and configured to transmit the encoded video bitstream.

### Claim 2 (depends on 1)

The video codec of claim 1, wherein the value of the index of the look-up table, denoted as a2s, determines a value of an intermediate variable, denoted as lmDiv, in the look-up table, and wherein the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63.

### Claim 3 (depends on 2)

The video codec of claim 2, wherein when the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63 and when the value of the a2s is below 8, the lmDiv is 0.

### Claim 4 (depends on 1)

The video codec of claim 1, wherein each value of the index of the look-up table, denoted as a2s, determines a value of an intermediate variable denoted as lmDiv in the look-up table, and wherein the number of indices of the look-up table is 32 which includes 32 a2s entries with values from 32-63.

### Claim 5 (depends on 4)

The video codec of claim 4, wherein when the number of indices of the look-up table is 32 which includes 32 a2s entries with values from 32-63 and when the value of the a2s is below 32, the lmDiv is 0.

### Claim 6 (depends on 4)

The video codec of claim 4, wherein the look-up table is:
a2s
32
33
34
35
36
37
38
39
40
41
42
43
44
lmDiv
1024
993
964
936
910
886
862
840
819
799
780
762
745
a2s
45
46
47
48
49
50
51
52
53
54
55
56
57
lmDiv
728
712
697
683
669
655
643
630
618
607
596
585
575
a2s
58
59
60
61
62
63
lmDiv
565
555
546
537
529
520.

### Claim 7 (depends on 2)

The video codec of claim 2, wherein a width of the chroma block is half of a width of the corresponding reconstructed luma block.

### Claim 8 (depends on 1)

The video codec of claim 1, wherein generating the predicted chroma sample comprises:
filtering a first plurality of reconstructed luma samples to generate a first filtered luma sample; and
filtering a second plurality of reconstructed luma samples to generate a second filtered luma sample.

### Claim 9 (depends on 4)

The video codec of claim 4, Wherein generating the predicted chroma sample further comprises computing an intermediate variable, denoted as a3, according to the following equation:
a3=a2s<32?0:Clip3(−215,215−1,a1s*lmDiv [a2s]+(1<<(k1−1))>>k1),
wherein a1s and k1 denote other intermediate variables whose values depend on the second reconstructed luma sample and a reconstructed chroma sample located in a neighbouring block of the chroma block.

### Claim 10 (depends on 9)

The video codec of claim 9, wherein C, L, a, k, k2, alpha, and beta denote other intermediate variables whose values depend on at least one of the second reconstructed luma sample and the reconstructed chroma sample, wherein a filtered luma sample generated based on the first reconstructed luma sample is denoted as p′[x, y], wherein the predicted chroma sample is denoted as predSamples[x, y], wherein generating the predicted chroma sample further comprises the following equations:
alpha=a3>>Max(0, log2(abs(a3))−6);
k=13−Max 0, log2(abs(alpha))−6);
beta=(C−((a*L)>>k)+(1<<(k2−1)))>>k2; and
predSamples[x,y]=Clip1C(((pY′[x,y]*alpha)>>k)+beta), with x,y=0 . . . nS−1,
wherein function Clip1C(x) is defined as:
Clip1C(x)=Clip3(0,(1<<BitDepthC)−1,x),
and wherein BitDepthC denotes an input bit depth of the chroma block.

### Claim 11 (depends on 10)

The video codec of claim 10, wherein the input bit depth equals 8 or 10.

### Claim 12 (depends on 9)

The video codec of claim 9, wherein a width of the chroma block is no less than 4 and no greater than 16.

### Claim 13 (depends on 4)

The video codec of claim 4, wherein a width of the chroma block equals a width of the corresponding reconstructed luma block.

### Claim 14 (depends on 2)

The video codec of claim 2, wherein generating the predicted chroma sample further comprises:
computing an intermediate variable, denoted as a3, according to the following equation:
a3=a2s<8?0:Clip3(−215,215−1,a1s*lmDiv [a2s]+(1<<(k1−1))>>k1),
wherein a1s and k1 denote other intermediate variables whose values depend on the second reconstructed luma sample and a reconstructed chroma sample located in a neighbouring block of the chroma block.

### Claim 15 (depends on 13)

The video codec of claim 13, wherein the look-up table is:
a2s
8
9
10
11
12
13
14
15
16
lmDiv
4096
3641
3277
2979
2731
2521
2341
2185
2048
a2s
17
18
19
20
21
22
23
24
25
lmDiv
1928
1820
1725
1638
1560
1489
1425
1365
1311
a2s
26
27
28
29
30
31
32
33
34
lmDiv
1260
1214
1170
1130
1092
1057
1024
993
964
a2s
35
36
37
38
39
40
41
42
43
lmDiv
936
910
886
862
840
819
799
780
762
a2s
44
45
46
47
48
49
50
51
52
lmDiv
745
728
712
697
683
669
655
643
630
a2s
53
54
55
56
57
58
59
60
61
lmDiv
618
607
596
585
575
565
555
546
537
a2s
62
63
lmDiv
529
520.

### Claim 16

A method used in video coding comprising:
generating, by a processor, a prediction block for a chroma block, wherein the prediction block comprises a predicted chroma sample, wherein the predicted chroma sample is based on:
a first reconstructed luma sample located in a corresponding reconstructed luma block;
a second reconstructed luma sample located in a neighboring block of the corresponding reconstructed luma block; and
a look-up table, wherein a value of an index of the look-up table is based on the second reconstructed luma sample, wherein a number of indices of the look-up table is either 32 or 56;
obtaining, by the processor, the chroma block;
generating a residual block indicating a difference between the chroma block and the prediction block; and
entropy encoding the residual block into an encoded video bitstream, wherein a transmitter is coupled to the processor and configured to transmit the encoded video bitstream.

### Claim 17 (depends on 16)

The method of claim 16, wherein each value of the indices of the look-up table, denoted as a2s, determines a value of an intermediate variable denoted as lmDiv in the look-up table, and wherein the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63.

### Claim 18 (depends on 17)

The method of claim 17, wherein when the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63 and when the value of the a2s is below 8, the lmDiv is 0.

### Claim 19 (depends on 16)

The method of claim 16, wherein each value of the indices of the look-up table, denoted as a2s, determines a value of an intermediate variable denoted as lmDiv in the look-up table, and wherein the number of indices of the look-up table is 32 which includes 32 a2s entries with values from 32-63.

### Claim 20 (depends on 19)

The method of claim 19, wherein when the number of indices of the look-up table is 32 Which includes 32 a2s entries with values from 32-63 and when the value of the a2s is below 32, the lmDiv is 0.

### Claim 21 (depends on 19)

The method of claim 19, wherein the look-up table is:
a2s
32
33
34
35
36
37
38
39
40
41
42
43
44
lmDiv
1024
993
964
936
910
886
862
840
819
799
780
762
745
a2s
45
46
47
48
49
50
51
52
53
54
55
56
57
lmDiv
728
712
697
683
669
655
643
630
618
607
596
585
575
a2s
58
59
60
61
62
63
64
lmDiv
565
555
546
537
529
520
512.

### Claim 22 (depends on 19)

The method of claim 19, wherein generating the predicted chroma sample comprises:
computing an intermediate variable, denoted as a3, according to the following equation:
a3=a2s<32?0:Clip3(−215,215-1,a1s*lmDiv [a2s]+(1<<(k1−1))>>k1),
wherein a1s and k1 denote other intermediate variables whose values depend on the second reconstructed luma sample and a reconstructed chroma sample located in a neighbouring block of the chroma block.

### Claim 23 (depends on 19)

The method of claim 19, wherein a width of the chroma block is half of a width of the corresponding reconstructed luma block.

### Claim 24

A video codec comprising:
a processor configured to:
obtain an encoded residual block from an encoded video bitstream, wherein a receiver is coupled to the processor and configured to receive the encoded video bitstream;
generate a prediction block for a chroma block, wherein the prediction block comprises a predicted chroma sample, wherein the predicted chroma sample is based on:
a first reconstructed luma sample located in a corresponding reconstructed luma block;
a second reconstructed luma sample located in a neighboring block of the corresponding reconstructed luma block; and
a look-up table, wherein a value of an index of the look-up table is based on the second reconstructed luma sample, wherein a number of indices of the look-up table is either 32 or 56;
decode the encoded residual block to generate a decoded residual block; and
combine the decoded residual block and the prediction block to generate the chroma block.

### Claim 25 (depends on 24)

The video codec of claim 24, wherein the value of the index of the look-up table, denoted as a2s, determines a value of an intermediate variable, denoted as lmDiv, in the look-up table, and wherein the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63.

### Claim 26 (depends on 25)

The video codec of claim 25, wherein when the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63 and when the value of the a2s is below 8, the lmDiv is 0.

### Claim 27 (depends on 24)

The video codec of claim 24, wherein each value of the index of the look-up table, denoted as a2s, determines a value of an intermediate variable denoted as lmDiv in the look-up table, and wherein the number of indices of the look-up table is 32 which includes 32 a2s entries with values from 32-63.

### Claim 28 (depends on 27)

The video codec of claim 27, wherein when the number of indices of the look-up table is 32 which includes 32 a2s entries with values from 32-63 and when the value of the a2s is below 32, the lmDiv is 0.

### Claim 29

A method used in video coding comprising:
obtaining, by a processor, an encoded residual block from an encoded video bitstream, wherein a receiver is coupled to the processor and configured to receive the encoded video bitstream;
generating, by the processor, a prediction block for a chroma block, wherein the prediction block comprises a predicted chroma sample, wherein the predicted chroma sample is based on:
a first reconstructed luma sample located in a corresponding reconstructed luma block;
a second reconstructed luma sample located in a neighboring block of the corresponding reconstructed luma block; and
a look-up table, wherein a value of an index of the look-up table is based on the second reconstructed luma sample, wherein a number of indices of the look-up table is either 32 or 56;
decoding, by the processor, the encoded residual block to generate a decoded residual block; and
combining, by the processor, the decoded residual block and the prediction block to generate the chroma block.

### Claim 30 (depends on 29)

The method of claim 29, wherein each value of the indices of the look-up table, denoted as a2s, determines a value of an intermediate variable denoted as lmDiv in the look-up table, and wherein the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63.

### Claim 31 (depends on 30)

The method of claim 30, Wherein when the number of indices of the look-up table is 56 which includes 56 a2s entries with values from 8-63 and when the value of the a2s is below 8, the lmDiv is 0.

### Claim 32 (depends on 29)

The method of claim 29, wherein each value of the indices of the look-up table, denoted as a2s, determines a value of an intermediate variable denoted as lmDiv in the look-up table, and wherein the number of indices of the look-up table is 32 which includes 32 a2s entries with values from 32-63.

### Claim 33 (depends on 32)

The method of claim 32, wherein when the number of indices of the look-up table is 32 Which includes 32 a2s entries with values from 32-63 and when the value of the a2s is below 32, the lmDiv is 0.
