IP Library Granted Patent US 11,477,484
Granted Patent B2
US 11,477,484 · App. 15/188,766 · Granted Oct 18, 2022

Video intra prediction using hybrid recursive filters

Inventors: Amir Said (San Diego, CA); Xin Zhao (San Diego, CA); Wei-Jung Chien (San Diego, CA); Jianle Chen (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/61H04N19/10H04N19/117H04N19/192H04N19/436H04N19/593H04N19/615H04N19/70H04N19/80H04N19/82H04N19/91H04N19/86
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 11,477,484
App. No.
15/188,766
Granted
Oct 18, 2022
Kind
B2
Abstract

An example method of decoding video data includes obtaining, from a coded video bitstream and for a current block of the video data, an indication of an intra-prediction mode that identifies an initial predictive block; filtering, in parallel, samples in a current line of a plurality of lines of the initial predictive block based on filtered values of samples in a preceding line of the plurality of lines and unfiltered values of samples in the current line to generate filtered values for samples for the current line; and reconstructing, using intra prediction, values of samples of the current block based on the filtered values of the samples of the current initial predictive block and residual data for the current block that represents a difference between the filtered values of the samples of the current initial predictive block and the values of samples of the current block.

Claims (1014)

1. A method of decoding video data, the method comprising:

obtaining, from a coded video bitstream and for a current block of the video data, an indication of an intra-prediction mode that identifies an initial predictive block;

filtering, in parallel, samples in a current line of a plurality of lines of the initial predictive block based on filtered values of samples in a preceding line of the plurality of lines of the initial predictive block and unfiltered values of samples in the current line to generate filtered values for samples for the current line of the initial predictive block, wherein the plurality of lines comprises either a plurality of rows or a plurality of columns of the video data, and wherein each of the filtered samples is filtered in parallel based on filtered values of a plurality of samples in the preceding line of the plurality of lines of the initial predictive block and unfiltered values of a plurality of samples in the current line; and

reconstructing, using intra prediction, values of samples of the current block based on the filtered values of the samples of the current initial predictive block and residual data for the current block that represents a difference between the filtered values of the samples of the current initial predictive block and the values of samples of the current block.

2. The method of claim 1 , wherein each line of the plurality of lines comprises a same quantity of non-border samples, and wherein filtering samples in each respective line of the plurality of lines comprises:

filtering, in parallel, each non-border sample of a respective line to generate filtered non-border samples for the respective line.

3. The method of claim 1 , wherein filtering samples in each respective line of the plurality of lines comprises:

filtering, in parallel, each sample of a respective line to generate filtered samples for the respective line.

4. The method of claim 1 , wherein the filtering of the samples of the current line is further based on unfiltered samples in a following line of the plurality of lines of the initial predictive block.

5. The method of claim 1 , wherein the filtering of the samples of the current line is further based on unfiltered samples in a plurality of preceding lines of the plurality of lines of the initial predictive block that includes the preceding line.

6. The method of claim 1 , wherein filtering the samples in the current line comprises filtering the samples in the current line in accordance with the following equation where the plurality of lines comprises the plurality of rows:

q

[

i

,

j

]

=

l

=

-

R

0

R

1

k

=

1

R

2

a

·

q

[

i

-

k

,

j

+

l

]

+

l

=

-

S

0

S

1

k

=

0

S

2

b

·

p

[

i

+

k

,

j

+

l

]

or the following equation where the plurality of lines comprises the plurality of columns:

q

[

i

,

j

]

=

k

=

-

R

0

R

1

l

=

1

R

2

a

·

q

[

i

+

k

,

j

-

l

]

+

k

=

-

S

0

S

1

l

=

0

S

2

b

·

p

[

i

+

k

,

j

+

l

]

where q[i, j] represents the filtered sample at position [i, j]; p[i, j] represents the unfiltered sample at position [i, j]; a and b are filter parameters; R 0 , R 1 , and R 2 define which filtered samples are used to generate the filtered sample at position [i, j]; and S 0 , S 1 , and S 2 define which unfiltered samples are used to generate the filtered sample at position [i, j].

7. The method of claim 1 , wherein the current block of the video data is M by N samples, and wherein filtering the samples in the current line comprises filtering the samples in the current line in accordance with the following equation where the plurality of lines comprises the plurality of rows:

q

[

i

,

j

]

=

l

=

-

R

0

R

1

k

=

1

R

2

a

·

q

[

i

-

k

,

j

+

l

]

+

l

=

-

S

0

S

1

k

=

0

S

2

b

·

p

[

min

(

i

+

k

,

M

-

1

)

,

min

(

j

+

l

,

N

-

1

)

]

or the following equation where the plurality of lines comprises the plurality of columns:

q

[

i

,

j

]

=

k

=

-

R

0

R

1

l

=

1

R

2

a

·

q

[

i

+

k

,

j

-

l

]

+

k

=

-

S

0

S

1

l

=

0

S

2

b

·

p

[

min

(

i

+

k

,

M

-

1

)

,

min

(

j

+

l

,

N

-

1

)

]

where q[i, j] represents the filtered sample at position [i, j]; p[i, j] represents the unfiltered sample at position [i, j]; a and b are filter parameters; R 0 , R 1 , and R 2 define which filtered samples are used to generate the filtered sample at position [i, j]; and S 0 , S 1 , and S 2 define which unfiltered samples are used to generate the filtered sample at position [i, j].

8. A method of encoding video data, the method comprising:

selecting, for a current block of the video data, an initial predictive block;

filtering, in parallel, samples in a current line of a plurality of lines of the initial predictive block based on filtered values of samples in a preceding line of the plurality of lines of the initial predictive block and unfiltered values of samples in the current line to generate filtered values for samples for the current line of the initial predictive block, wherein the plurality of lines comprises either a plurality of rows or a plurality of columns of the video data, and wherein each of the filtered samples is filtered in parallel based on filtered values of a plurality of samples in the preceding line of the plurality of lines of the initial predictive block and unfiltered values of a plurality of samples in the current line; and

encoding, in a coded video bitstream, an indication of an intra-prediction mode that identifies the initial predictive block and residual data for the current block that represents a difference between the filtered values of the samples of the initial predictive block and the values of samples of the current block.

9. The method of claim 8 , wherein each line of the plurality of lines comprises a same quantity of non-border samples, and wherein filtering samples in each respective line of the plurality of lines comprises:

filtering, in parallel, each non-border sample of a respective line to generate filtered non-border samples for the respective line.

10. The method of claim 8 , wherein filtering samples in each respective line of the plurality of lines comprises:

filtering, in parallel, each sample of a respective line to generate filtered samples for the respective line.

11. The method of claim 8 , wherein the filtering of the samples of the current line is further based on unfiltered samples in a following line of the plurality of lines of the initial predictive block.

12. The method of claim 8 , wherein the filtering of the samples of the current line is further based on unfiltered samples in a plurality of preceding lines of the plurality of lines of the initial predictive block that includes the preceding line.

13. The method of claim 8 , wherein filtering the samples in the current line comprises filtering the samples in the current line in accordance with the following equation where the plurality of lines comprises the plurality of rows:

q

[

i

,

j

]

=

l

=

-

R

0

R

1

k

=

1

R

2

a

·

q

[

i

-

k

,

j

+

l

]

+

l

=

-

S

0

S

1

k

=

0

S

2

b

·

p

[

i

+

k

,

j

+

l

]

or the following equation where the plurality of lines comprises the plurality of columns:

q

[

i

,

j

]

=

k

=

-

R

0

R

1

l

=

1

R

2

a

·

q

[

i

+

k

,

j

-

l

]

+

k

=

-

S

0

S

1

l

=

0

S

2

b

·

p

[

i

+

k

,

j

+

l

]

where q[i, j] represents the filtered sample at position [i, j]; p[i, j] represents the unfiltered sample at position [i, j]; a and b are filter parameters; R 0 , R 1 , and R 2 define which filtered samples are used to generate the filtered sample at position [i, j]; and S 0 , S 1 , and S 2 define which unfiltered samples are used to generate the filtered sample at position [i, j].

14. The method of claim 8 , wherein the current block of the video data is M by N samples, and wherein filtering the samples in the current line comprises filtering the samples in the current line in accordance with the following equation where the plurality of lines comprises the plurality of rows:

q

[

i

,

j

]

=

l

=

-

R

0

R

1

k

=

1

R

2

a

·

q

[

i

-

k

,

j

+

l

]

+

l

=

-

S

0

S

1

k

=

0

S

2

b

·

p

[

min

(

i

+

k

,

M

-

1

)

,

min

(

j

+

l

,

N

-

1

)

]

or the following equation where the plurality of lines comprises the plurality of columns:

q

[

i

,

j

]

=

k

=

-

R

0

R

1

l

=

1

R

2

a

·

q

[

i

+

k

,

j

-

l

]

+

k

=

-

S

0

S

1

l

=

0

S

2

b

·

p

[

min

(

i

+

k

,

M

-

1

)

,

min

(

j

+

l

,

N

-

1

)

]

where q[i, j] represents the filtered sample at position [i, j]; p[i, j] represents the unfiltered sample at position [i, j]; a and b are filter parameters; R 0 , R 1 , and R 2 define which filtered samples are used to generate the filtered sample at position [i, j]; and S 0 , S 1 , and S 2 define which unfiltered samples are used to generate the filtered sample at position [i, j].

15. A device for encoding or decoding video data, the device comprising:

a memory configured to store a portion of the video data; and

one or more processors configured to:

identify, for a current block of the video data, an initial predictive block;

filter, in parallel, samples in a current line of a plurality of lines of the initial predictive block based on filtered values of samples in a preceding line of the plurality of lines of the initial predictive block and unfiltered values of samples in the current line to generate filtered values for samples for the current line of the initial predictive block, wherein the plurality of lines comprises either a plurality of rows or a plurality of columns of the video data, and wherein each of the filtered samples is filtered in parallel based on filtered values of a plurality of samples in the preceding line of the plurality of lines of the initial predictive block and unfiltered values of a plurality of samples in the current line; and

reconstruct, using intra prediction, values of samples of the current block based on the filtered values of the samples of the current initial predictive block and residual data for the current block that represents a difference between the filtered values of the samples of the current initial predictive block and the values of samples of the current block.

16. The device of claim 15 , wherein each line of the plurality of lines comprises a same quantity of non-border samples, and wherein, to filter samples in each respective line of the plurality of lines, the one or more processors are configured to:

filter, in parallel, each non-border sample of a respective line to generate filtered non-border samples for the respective line.

17. The device of claim 15 , wherein, to filter samples in each respective line of the plurality of lines, the one or more processors are configured to:

filter, in parallel, each sample of a respective line to generate filtered samples for the respective line.

18. The device of claim 15 , wherein the one or more processors are further configured to filter the samples of the current line based on unfiltered samples in a following line of the plurality of lines of the initial predictive block.

19. The device of claim 15 , wherein the one or more processors are further configured to filter the samples of the current line based on unfiltered samples in a plurality of preceding lines of the plurality of lines of the initial predictive block that includes the preceding line.

20. The device of claim 15 , wherein the one or more processors are configured to filter the samples in the current line in accordance with the following equation where the plurality of lines comprises the plurality of rows:

q

[

i

,

j

]

=

l

=

-

R

0

R

1

k

=

1

R

2

a

·

q

[

i

-

k

,

j

+

l

]

+

l

=

-

S

0

S

1

k

=

0

S

2

b

·

p

[

i

+

k

,

j

+

l

]

or the following equation where the plurality of lines comprises the plurality of columns:

q

[

i

,

j

]

=

k

=

-

R

0

R

1

l

=

1

R

2

a

·

q

[

i

+

k

,

j

-

l

]

+

k

=

-

S

0

S

1

l

=

0

S

2

b

·

p

[

i

+

k

,

j

+

l

]

where q[i, j] represents the filtered sample at position [i, j]; p[i, j] represents the unfiltered sample at position [i, j]; a and b are filter parameters; R 0 , R 1 , and R 2 define which filtered samples are used to generate the filtered sample at position [i, j]; and S 0 , S 1 , and S 2 define which unfiltered samples are used to generate the filtered sample at position [i,j].

21. The device of claim 15 , wherein the current block of the video data is M by N samples, and wherein the one or more processors are configured to filter the samples in the current line in accordance with the following equation where the plurality of lines comprises the plurality of rows:

q

[

i

,

j

]

=

l

=

-

R

0

R

1

k

=

1

R

2

a

·

q

[

i

-

k

,

j

+

l

]

+

l

=

-

S

0

S

1

k

=

0

S

2

b

·

p

[

min

(

i

+

k

,

M

-

1

)

,

min

(

j

+

l

,

N

-

1

)

]

or the following equation where the plurality of lines comprises the plurality of columns:

q

[

i

,

j

]

=

k

=

-

R

0

R

1

l

=

1

R

2

a

·

q

[

i

+

k

,

j

-

l

]

+

k

=

-

S

0

S

1

l

=

0

S

2

b

·

p

[

min

(

i

+

k

,

M

-

1

)

,

min

(

j

+

l

,

N

-

1

)

]

where q[i, j] represents the filtered sample at position [i, j]; p[i, j] represents the unfiltered sample at position [i, j]; a and b are filter parameters; R 0 , R 1 , and R 2 define which filtered samples are used to generate the filtered sample at position [i, j]; and S 0 , S 1 , and S 2 define which unfiltered samples are used to generate the filtered sample at position [i,j].

22. The device of claim 15 , wherein the one or more processors are further configured to:

obtain, from a coded video bitstream and for the current block of the video data, an indication of an intra-prediction mode that identifies the initial predictive block; and

obtain, from the coded video bitstream, the residual data for the current block.

23. The device of claim 15 , wherein the one or more processors are further configured to:

encode, in a coded video bitstream and for the current block of the video data, an indication of an intra-prediction mode that identifies the initial predictive block; and

encode, in the coded video bitstream, the residual data for the current block.

24. The device of claim 15 , further comprising a display configured to display the reconstructed block.

25. The device of claim 15 , further comprising a camera configured to capture the video data.

26. The device of claim 15 , wherein the device comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

27. A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors of a video encoding or decoding device to:

identify, for a current block of the video data, an initial predictive block;

filter, in parallel, samples in a current line of a plurality of lines of the initial predictive block based on filtered values of samples in a preceding line of the plurality of lines of the initial predictive block and unfiltered values of samples in the current line to generate filtered values for samples for the current line of the initial predictive block, wherein the plurality of lines comprises either a plurality of rows or a plurality of columns of the video data, and wherein each of the filtered samples is filtered in parallel based on filtered values of a plurality of samples in the preceding line of the plurality of lines of the initial predictive block and unfiltered values of a plurality of samples in the current line; and

reconstruct, using intra prediction, values of samples of the current block based on the filtered values of the samples of the current initial predictive block and residual data for the current block that represents a difference between the filtered values of the samples of the current initial predictive block and the values of samples of the current block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2017
From: SAID, AMIR; ZHAO, XIN; CHIEN, WEI-JUNG; CHEN, JIANLE; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 041525/0402 →
Continuity (2)
Provisional Application 62183115 · Jun 22, 2015
Related Publication 20160373785A1 · Dec 22, 2016