IP Library › Granted Patent US 9,253,508
Granted Patent B2
US 9,253,508 · App. 13/668,094 · Granted Feb 2, 2016

Differential pulse code modulation intra prediction for high efficiency video coding

Inventors: Wen Gao (West Windsor, NJ); Minqiang Jiang (Campbell, CA); Ye He (West Lafayette, IN); Jin Song (Shenzhen, CN); Haoping Yu (Carmel, IN)
Assignee: Futurewei Technologies, Inc.
H04N19/91H04N19/593H04N19/11H04N19/137H04N19/147H04N19/174H04N19/182
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,253,508
App. No.
13/668,094
Granted
Feb 2, 2016
Kind
B2
Abstract

A video codec comprising a processor configured to compute a reconstructed pixel based on a residual pixel and a first prediction pixel and compute a second prediction pixel in a directional intra prediction mode based on the reconstructed pixel, wherein the first and second prediction pixels are located in a same block of a video frame. A method for intra prediction comprising computing a prediction pixel adaptively based on a plurality of reconstructed neighboring pixels, wherein a distance between the prediction pixel and each of the plurality of reconstructed neighboring pixels is one.

Claims (231)

1. A video codec comprising:

a memory; and

a processor operably coupled to the memory and configured to:

compute a reconstructed pixel for a current block based on a residual pixel and a first prediction pixel, wherein the first prediction pixel for the current block is based on an external reference pixel located in a neighboring block;

compute a second prediction pixel in a directional intra prediction mode, which includes both horizontal and vertical directions, based on the reconstructed pixel,

wherein the first and second prediction pixels are located in a same block of a video frame,

wherein the first prediction pixel is one position before the second prediction pixel according to a direction of the directional intra prediction mode,

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel, and

wherein the first prediction pixel and the second prediction pixel are used for pixel-by-pixel coding of the video frame.

2. The video codec of claim 1 , wherein the first prediction pixel is one position before the second prediction pixel according to a direction of the directional intra prediction mode.

3. The video codec of claim 1 , wherein the processor is further configured to select the directional intra prediction mode from a plurality of directional intra prediction modes, wherein a number of the directional intra prediction modes is no greater than 33.

4. The video codec of claim 1 , wherein α denotes an angle between the directional intra prediction mode and a vertical upright direction, wherein α has a unit of degrees, wherein when 0<α<45 or −45<α<0, each prediction pixel is computed as a weighted linear combination of two reference pixels adjacent to each other, and wherein when α=0, each prediction pixel is directly above the reconstructed pixel.

5. The video codec of claim 4 , wherein for each prediction pixel, two weights of the two reference pixel depend on α, and wherein the two weights add up to equal one.

6. The video codec of claim 5 , wherein the processor is further configured to:

compute a difference between each prediction pixel and its corresponding original pixel to generate a plurality of residual pixels; and

entropy encode, using an entropy encoder, the plurality of residual pixels to generate encoded data,

wherein the video codec further comprises a transmitter coupled to the processor and configured to transmit the encoded data.

7. The video codec of claim 5 , further comprising a receiver coupled to the processor and configured to receive a bit-stream comprising a plurality of encoded residual pixels, wherein the processor is further configured to decode the plurality of encoded residual pixels to generate a plurality of decoded residual pixels including the residual pixel.

8. A video codec comprising:

a memory; and

a processor operably coupled to the memory and configured to:

compute a reconstructed pixel based on a residual pixel and a first prediction pixel; and

compute a second prediction pixel in a directional intra prediction mode based on the reconstructed pixel,

wherein the first and second prediction pixels are located in a same block of a video frame,

wherein for each prediction pixel, two weights of the two reference pixel depend on α,

wherein the two weights add up to equal one,

wherein α denotes an angle between the directional intra prediction mode and a vertical upright direction,

wherein α has a unit of degrees, wherein when 0<α<45 or −45<α<0, each prediction pixel is computed as a weighted linear combination of two reference pixels adjacent to each other,

wherein the processor is further configured to compute a plurality of prediction pixels including the first and second prediction pixels,

wherein the plurality of prediction pixels are used for pixel-by-pixel coding of the video frame,

wherein the block has a size of N×N, wherein N is an integer,

wherein P(i, j) denotes a prediction pixel in a i-th row and j-th column,

wherein R(i, j) denotes a reconstructed pixel in a i-th row and j-th column,

wherein X(j) denotes an external reference pixel in an upper row and j-th column, and

wherein computing a prediction pixel comprises equations:

when α=45,

for i=0, . . . , N−1,

P ( i,N− 1)= X ( i+N );

 for j=0, . . . , N−2,

P (0 ,j )= X ( j+ 1); and

 for i=1, . . . , N−1 and j=0, . . . , N−2,

P ( i,j )= R ( i− 1, j+ 1).

9. The video codec of claim 8 , wherein when 0<α<45,

for i=0, . . . , N−1,

u =└( i+ 1)·tan(α)┘,

s =( i+ 1)·tan(α)− u , and

P ( i,N− 1)=(1− s )· X ( N− 1+ u )+ s·X ( N− 1+ u+ 1),

where u and s are intermediate variables;

for j=0, . . . , N−2,

P (0 ,j )=(1−tan(α))· X ( j )+tan(α)· X ( j+ 1);

for i=1, . . . , N−1 and j=0, . . . , N−2,

P ( i,j )=(1−tan(α))· R ( i− 1, j )+tan(α)· R ( i− 1, j+ 1).

10. The video codec of claim 9 , wherein when α=0,

for j=0, . . . , N−1,

P (0, j )= X ( j );

for i=1, . . . , N−1 and j=0, . . . , N−1,

P ( i,j )= R ( i− 1, j ).

11. The video codec of claim 10 , wherein Y(i) denotes an external reference pixel in a left neighboring column and i-th row, and wherein when −45<α<0,

for i=0, . . . , N−1,

u =└( i+ 1)·tan(−α)┘,

s =( i+ 1)·tan(−α)− u,

P ( i, 0)=(1− s )· Y (└(− u+ 1)·tan −1 (α)┘−1)+ s·Y (└(− u )·tan −1 (α)┘−1);

for j=1, . . . , N−1,

P (0 ,j )=(1−tan(−α))· X ( j )+tan(−α)· X ( j− 1);

for i=1, . . . , N−1 and j=1, . . . , N−1,

P ( i,j )=(1−tan(−α))· R ( i− 1, l )+tan(−α)· R ( i− 1, j− 1).

12. The video codec of claim 11 , wherein when α 32 −45:

for i=0, . . . , N−1,

P ( i, 0)= Y ( i− 1);

for j=1, . . . , N−1,

P (0 ,j )= X ( j− 1);

for i=1, . . . , N−1 and j=1, . . . , N−1,

P ( i,j )= R ( i− 1, j− 1).

13. The video codec of claim 12 , wherein when −135≦α<−45, computing the prediction pixels comprises transposing the block and its external reference pixels such that α is rotated to be in a range of −45≦α<45.

14. The video codec of claim 12 , wherein each reconstructed pixel has a value equal to its corresponding original pixel.

15. A method for video coding comprising:

computing a reconstructed pixel for a current block based on a residual pixel and a first prediction pixel, wherein the first prediction pixel for the current block is based on an external reference pixel located in a neighboring block;

computing a second prediction pixel in a directional intra prediction mode based on the reconstructed pixel, wherein the first and second prediction pixels are located in a same block of a video frame, wherein the first prediction pixel is one position before the second prediction pixel according to a direction of the directional intra prediction mode,

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel, and

wherein the first prediction pixel and the second prediction pixel are used for pixel-by-pixel coding of the video frame.

16. The method of claim 15 , wherein the first prediction pixel is one position before the second prediction pixel according to a direction of the directional intra prediction mode.

17. The method of claim 16 , wherein prior to computing the reconstructed pixel, the method further comprises:

selecting the directional intra prediction mode from a plurality of directional intra prediction modes, wherein a number of the directional intra prediction modes is no greater than 33; and

computing the first prediction pixel based on one or more external reference pixels located outside the block.

18. The method of claim 15 , wherein a denotes an angle between the directional intra prediction mode and a vertical upright direction, wherein a has a unit of degrees, wherein when 0<α<45 or −45<α<0, each prediction pixel is computed as a weighted linear combination of two reference pixels adjacent to each other.

19. The method of claim 18 , wherein for each prediction pixel, two weights of the two reference pixel depend on α, and wherein the two weights add up to equal one.

20. A video codec comprising a processor configured to:

use intra prediction to generate a prediction pixel adaptively based on a plurality of reconstructed neighboring pixels,

wherein a distance between the prediction pixel and each of the plurality of reconstructed neighboring pixels is one, and

wherein the plurality of reconstructed neighboring pixels comprises a left neighboring pixel, an upper neighboring pixel, an upper-left neighboring pixel, and an upper-right pixel with reconstructed values denoted as A, B, C, and D respectively,

wherein the prediction pixel, denoted as P(X), is computed via equation P(X)=(A+B+C+D)/4,

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel, and

wherein the prediction pixels are used for pixel-by-pixel coding of a video frame.

21. A video codec comprising a processor configured to:

use intra prediction to generate a prediction pixel adaptively based on a plurality of reconstructed neighboring pixels,

wherein a distance between the prediction pixel and each of the plurality of reconstructed neighboring pixels is one,

wherein the plurality of reconstructed neighboring pixels comprises a left neighboring pixel, an upper neighboring pixel, an upper-left neighboring pixel, and an upper-right pixel with reconstructed values denoted as A, B, C, and D respectively, wherein the prediction pixel, denoted as P(X), is computed via equation P(X)=median(A,B,C,D),

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel, and

wherein the prediction pixels are used for pixel-by-pixel coding of a video frame.

22. A video codec comprising a processor configured to:

use intra prediction to generate a prediction pixel adaptively based on a plurality of reconstructed neighboring pixels,

wherein a distance between the prediction pixel and each of the plurality of reconstructed neighboring pixels is one,

wherein the plurality of reconstructed neighboring pixels comprises a left neighboring pixel, an upper neighboring pixel, an upper-left neighboring pixel, and an upper-right pixel with reconstructed values denoted as A, B, C, and D respectively,

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel,

wherein the prediction pixels are used for pixel-by-pixel coding of a video frame, and

wherein the prediction pixel, denoted as P(X), is computed via equation:

P

⁡

(

X

)

=

{

min

⁡

(

A

,

B

)

if

⁢

⁢

C

≥

max

⁡

(

A

,

B

)

max

⁡

(

A

,

B

)

if

⁢

⁢

C

≤

min

⁡

(

A

,

B

)

A

+

B

-

C

else

.

23. A method for intra prediction comprising:

computing a prediction pixel adaptively based on a plurality of reconstructed neighboring pixels,

wherein a distance between the prediction pixel and each of the plurality of reconstructed neighboring pixels is one,

wherein the plurality of reconstructed neighboring pixels comprises a left neighboring pixel, an upper neighboring pixel, an upper-left neighboring pixel, and an upper-right pixel with reconstructed values denoted as A, B, C, and D respectively,

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel,

wherein the prediction pixels are used for pixel-by-pixel coding of video frame, and

wherein the prediction pixel, denoted as P(X), is computed via equation P(X)=(A+B+C+D)/4.

24. A method for intra prediction comprising:

computing a prediction pixel adaptively based on a plurality of reconstructed neighboring pixels,

wherein a distance between the prediction pixel and each of the plurality of reconstructed neighboring pixels is one,

wherein the plurality of reconstructed neighboring pixels comprises a left neighboring pixel, an upper neighboring pixel, an upper-left neighboring pixel, and an upper-right pixel with reconstructed values denoted as A, B, C, and D respectively,

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel,

wherein the prediction pixels are used for pixel-by-pixel coding of a video frame and

wherein the prediction pixels, denoted as P(X), are computed via equation P(X)=median(A,B,C,D).

25. A method for intra prediction comprising:

computing a prediction pixel adaptively based on a plurality of reconstructed neighboring pixels,

wherein a distance between the prediction pixel and each of the plurality of reconstructed neighboring pixels is one,

wherein the plurality of reconstructed neighboring pixels comprises a left neighboring pixel, an upper neighboring pixel, an upper-left neighboring pixel, and an upper-right pixel with reconstructed values denoted as A, B, C, and D respectively,

wherein each particular prediction pixel is immediately adjacent to the reconstructed pixel used to compute the particular prediction pixel,

wherein the prediction pixels are used for pixel-by-pixel coding of a video frame, and

wherein the prediction pixel, denoted as P(X), is computed via equation:

P

⁡

(

X

)

=

{

min

⁡

(

A

,

B

)

if

⁢

⁢

C

≥

max

⁡

(

A

,

B

)

max

⁡

(

A

,

B

)

if

⁢

⁢

C

≤

min

⁡

(

A

,

B

)

A

+

B

-

C

else

.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2013
From: GAO, WEN; JIANG, MINQIANG; HE, YE; SONG, JIN; YU, HAOPING
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 031602/0140 →
Continuity (2)
Provisional Application 61556014 · Nov 4, 2011
Related Publication 20130114716A1 · May 9, 2013