IP Library Granted Patent US 7,606,312
Granted Patent B2
US 7,606,312 · App. 10/525,164 · Granted Oct 20, 2009

Intra coding video data methods and apparatuses

Assignee: RealNetworks, Inc.
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 7,606,312
App. No.
10/525,164
Granted
Oct 20, 2009
Kind
B2
Abstract

Streamlined prediction approaches are provided to predict pixel values of a 4×4 subblock of a macroblock of video data being encoded, under a number of prediction modes. Additionally, prediction approaches are provided to predict pixel values of a non-4×4 M×N subblock of a macroblock of video data being encoded, under a number of prediction modes, including 8×8, 8×4 and 4×8 subblocks. The invention may be practiced in an encoder and/or a decoder of a video apparatus.

Claims (579)

1. An apparatus comprising:

a storage medium; and

a plurality of instructions stored in the storage medium, with the instructions designed to perform a selected one of (a) intracoding of a macroblock of video data and decoding of an intracoded macroblock of video data, where an intracoded macroblock includes a M×N subblock of pixel values predicted under a first prediction mode as follows:

where t 0 -t N and l 0 -l M are available,

P ij =( t 0 + . . . +t N +l 0 +. . . +l M +N/ 2 +M/ 2)/( M+N );

Else if only t 0 -t N are available,

P ij =( t 0 + . . . +t N +N/ 2)/ N;

Else if only l 0 -l M are available,

P ij =( l 0 + . . . +l M +M/ 2)/ M;

Else

P ij =128;

for i=0−(N−1), j=0−(M-1);

where P ij are pixel values of the M×N subblock, with i and j being indices denoting row and columns positions within the M×N subblock;

t 0 -t N are pixel values of adjacent subblocks above the M×N subblock; and

l 0 -l m are pixel values of adjacent subblocks to the left of the M×N subblock.

2. The apparatus of claim 1 , wherein the instructions are further designed to perform the selected one of intracoding of a macroblock and decoding of an intracoded macroblock where an intracoded macroblock includes a M×N subblock of pixel values predicted under a second prediction mode, where a column of pixel values is predicted as follows:

where t 0 -t N are available, P ij =t j .

3. The apparatus of claim 1 , wherein the instructions are further designed to perform the selected one of intracoding of a macroblock and decoding of an intracoded macroblock where an intracoded macroblock includes a M×N subblock of pixel values predicted under a second prediction mode, where a row of pixel values is predicted as follows

where l 0 -l N are available, P ij =l i .

4. The apparatus of claim 1 , wherein the instructions are further designed to perform the selected one of intracoding of a macroblock and decoding of an intracoded macroblock where an intracoded macroblock includes at least a selected one of a 4×8 subblock, a 8×4 subblock and a 8×8 subbblock of pixel values predicted under a second prediction mode, where a diagonal of pixel values is predicted in accordance with a selected of:

4 × 8 subblock

8 × 4 subblock

8 × 8 subblock

predicted by

p 07

p 07

(t 5 + t 6 << 1 + t 7 + 2) >> 2

p 06 , p 17

p 06 , p 17

(t 4 + t 5 << 1 + t 6 + 2) >> 2

p 05 , p 16 , p 27

p 05 , p 16 , p 27

(t 3 + t 4 << 1 + t 5 + 2) >> 2

p 04 , p 15 , p 26 ,

p 04 , p 15 , p 26 , p 37

(t 2 + t 3 << 1 + t 4 + 2) >> 2

p 37

p 03

p 03 , p 14 , p 25 ,

p 03 , p 14 , p 25 , p 36 ,

(t 1 + t 2 << 1 + t 3 + 2) >> 2

p 36

p 47

p 02 , p 13

p 02 , p 13 , p 24 , p 35

p 02 , p 13 , p 24 , p 35 ,

(t 0 + t 1 << 1 + t 2 + 2) >> 2

p 46 , p 57

p 01 , p 12 , p 23

p 01 , p 12 , p 23 , p 34

p 01 , p 12 , p 23 , p 34 , ,

(q + t 0 << 1 + t 1 + 2) >> 2

p 45 , p 56 , p 67

p 00 , p 11 , p 22 , p 33

p 00 , p 11 , p 22 , p 33

p 00 , p 11 , p 22 , p 33 ,

(l 0 + q << 1 + t 0 + 2) >> 2

p 44 , p 55 , p 66 , p 77

p 10 , p 21 , p 32 , p 43

p 10 , p 21 , p 32

p 10 , p 21 , p 32 , , p 43 ,

(l 1 + l 0 << 1 + q + 2) >> 2

p 54 , p 65 , p 76

p 20 , p 31 , p 42 , p 53

p 20 , p 31

p 20 , p 31 , p 42 , p 53 ,

(l 2 + l 1 << 1 + l 0 + 2) >> 2

p 64 , p 75

p 30 , p 41 , p 52 , p 63

p 30

p 30 , p 41 , p 52 , p 63 ,

(l 3 + l 2 << 1 + l 1 + 2) >> 2

p 74

p 40 , p 51 , p 62 , p 73

p 40 , p 51 , p 62 , p 73

(l 4 + l 3 << 1 + l 2 + 2) >> 2

p 50 , p 61 , p 72

p 50 , p 61 , p 72

(l 5 + l 4 << 1 + l 3 + 2) >> 2

p 60 , p 71

p 60 , p 71

(l 6 + l 5 << 1 + l 4 + 2) >> 2

p 70

p 70

(l 7 + l 6 << 1 + l 5 + 2) >> 2.

5. The apparatus of claim 1 , wherein the instructions are further designed to perform the selected one of intracoding of a macroblock and decoding of an intracoded macroblock where an intracoded macroblock includes at least a selected one of a 4×8 subblock, a 8×4 subblock and a 8×8 subbblock of pixel values predicted under a second prediction mode, where a diagonal of pixel values is predicted in accordance with a selected one of:

4 × 8 subblock

8 × 4 subblock

8 × 8 subblock

predicted by

p 00

p 00

p 00

(t 2 + t 1 << 1 + t 0 + 2) >> 2

p 01 , p 10

p 01 , p 10

p 01 , p 10

(t 3 + t 2 << 1 + t 1 + 2) >> 2

p 02 , p 11 , p 20

p 02 , p 11 , p 20

p 02 , p 11 , p 20

(t 4 + t 3 << 1 + t 2 + 2) >> 2

p 03 , p 12 , p 21 , p 30

p 03 , p 12 , p 21 , p 30

p 03 , p 12 , p 21 , p 30

(t 5 + t 4 << 1 + t 3 + 2) >> 2

p 13 , p 22 , p 31 , p 40

p 04 , p 13 , p 22 , p 31

p 04 , p 13 , p 22 , p 31 , p 40

(t 6 + t 5 << 1 + t 4 + 2) >> 2

p 23 , p 32 , p 41 , p 50

p 05 , p 14 , p 23 , p 32

p 05 , p 14 , p 23 , p 32 , p 41 , p 50

(t 7 + t 6 << 1 + t 5 + 2) >> 2

p 33 , p 42 , p 51 , p 60

p 06 , p 15 , p 24 , p 33

p 06 , p 15 , p 24 , p 33 , p 42 , p 51 ,

(t 8 + t 7 << 1 + t 6 + 2) >> 2

p 60

p 43 , p 52 , p 61 , p 70

p 07 , p 16 , p 25 , p 34

p 07 , p 16 , p 25 , p 34 , p 43 , p 52 ,

(t 9 + t 8 << 1 + t 7 + 2) >> 2

p 61 , p 70

p 53 , p 62 , p 71

p 17 , p 26 , p 35

p 17 , p 26 , p 35 , , p 44 , p 53 ,

(t 10 + t 9 << 1 + t 8 + 2) >> 2

p 62 , p 71

p 63 , p 72

p 27 , p 36

p 27 , p 36 , p 45 , p 54 , p 63 , p 72

(t 11 + t 10 << 1 + t 9 + 2) >> 2

p 73

p 37

p 37 , p 46 , p 55 , p 64 , p 73

(t 12 + t 11 << 1 + t 10 + 2) >> 2

p 47 , p 56 , p 65 , p 74

(t 13 + t 12 << 1 + t 11 + 2) >> 2

p 57 , p 66 , p 75

(t 14 + t 13 << 1 + t 12 + 2) >> 2

p 67 , p 76

(t 15 + t 14 << 1 + t 13 + 2) >> 2

p 77

(t 15 + t 15 << 1 + t 14 + 2) >> 2.

6. The apparatus of claim 1 , wherein the instructions are further designed to perform the selected one of intracoding of a macroblock and decoding of an intracoded macroblock where an intracoded macroblock includes at least a selected one of a 4×8 subblock, a 8×4 subblock and a 8×8 subbblock of pixel values predicted under a second prediction mode, where a diagonal of pixel values is predicted in accordance with a selection one of:

8 × 4

4 × 8 subblock

subblock

8 × 8 subblock

predicted by

p 07

p 07

(t 6 + t 7 + 1) >> 1

p 17

p 17

(t 5 + t 6 << 1 + t 7 + 2) >> 2

p 06 , p 27

p 06 , p 27

(t 5 + t 6 + 1) >> 1

p 16 , p 37

p 16 , p 37

(t 4 + t 5 << 1 + t 6 + 2) >> 2

p 05 , p 26

p 05 , p 26 , p 47

(t 4 + t 5 + 1) >> 1

p 15 , p 36

p 15 , p 36 , p 57

(t 3 + t 4 << 1 + t 5 + 2) >> 2

p 04 , p 25

p 04 , p 25 , p 46 ,

(t 3 + t 4 + 1) >> 1

p 67

p 14 , p 35

p 14 , p 35 , p 56 ,

(t 2 + t 3 << 1 + t 4 + 2) >> 2

p 77

p 03

p 03 , p 24

p 03 , p 24 , p 45 ,

(t 2 + t 3 + 1) >> 1

p 66

p 13

p 13 , p 34

p 13 , p 34 , p 55 ,

(t 1 + t 2 << 1 + t 3 + 2) >> 2

p 76

p 02 , p 23

p 02 , p 23

p 02 , p 23 , p 44 ,

(t 1 + t 2 + 1) >> 1

p 65

p 12 , p 33

p 12 , p 33

p 12 , p 33 , p 54 ,

(t 0 + t 1 << 1 + t 2 + 2) >> 2

p 75

p 01 , p 22 , p 43

p 01 , p 22

p 01 , p 22 , p 43 ,

(t 0 + t 1 + 1) >> 1

p 64

p 11 , p 32 , p 53

p 11 , p 32

p 11 , p 32 , p 53 ,

(q + t 0 << 1 + t 1 + 2) >> 2

p 74

p 00 , p 21 , p 42 ,

p 00 , p 21

p 00 , p 21 , p 42 ,

(q + t 0 + 1) >> 1

p 63

p 63

p 10 , p 31 , p 52 ,

p 10 , p 31

p 10 , p 31 , p 52 ,

(l 0 + q << 1 + t 0 + 2) >> 2

p 73

p 73

p 20 , p 41 , p 62

p 20

p 20 , p 41 , p 62

(l 1 + l 0 << 1 + q + 2) >> 2

p 30 , p 51 , p 72

p 30

p 30 , p 51 , p 72

(l 2 + l 1 << 1 + l 0 + 2) >> 2

p 40 , p 61

p 40 , p 61

(l 3 + l 2 << 1 + l 1 + 2) >> 2

p 50 , p 71

p 50 , p 71

(l 4 + l 3 << 1 + l 2 + 2) >> 2

p 60

p 60

(l 5 + l 4 << 1 + l 3 + 2) >> 2

p 70

p 70

(l 6 + l 5 << 1 + l 4 + 2) >> 2.

7. The apparatus of claim 1 , wherein the instructions are further designed to intracoded macroblock where an intracoded macroblock includes at least a selected one of a 4×8 subblock, a 8×4 subblock and a 8×8 subbblock of pixel values predicted under a second prediction mode, where a diagonal of pixel values is predicted in accordance with a selected one of:

4 × 8

8 × 4

subblock

subblock

8 × 8 subblock

predicted by

p 00

p 00

p 00

(t 0 + t 1 + 1) >> 1

p 10

p 10

p 10

(t 0 + t 1 << 1 + t 2 + 2) >> 2

p 01 , p 20

p 01 , p 20

p 01 , p 20

(t 1 + t 2 + 1) >> 1

p 11 , p 30

p 11 , p 30

p 11 , p 30

(t 1 + t 2 << 1 + t 3 + 2) >> 2

p 02 , p 21 , p 40

p 02 , p 21

p 02 , p 21 , p 40

(t 2 + t 3 + 1) >> 1

p 12 , p 31 , p 50

p 12 , p 31

p 12 , p 31 , p 50

(t 2 + t 3 << 1 + t 4 + 2) >> 2

p 03 , p 22 , p 41 ,

p 03 , p 22

p 03 , p 22 , p 41 ,

(t 3 + t 4 + 1) >> 1

p 60

p 60

p 13 , p 32 , p 51 ,

p 13 , p 32

p 13 , p 32 , p 51 ,

(t 3 + t 4 << 1 + t 5 + 2) >> 2

p 70

p 70

p 23 , p 42 , p 61

p 04 , p 23

p 04 , p 23 , p 42 ,

(t 4 + t 5 + 1) >> 1

p 61

p 33 , p 52 , p 71

p 14 , p 33

p 14 , p 33 , p 52 ,

(t 4 + t 5 << 1 + t 6 + 2) >> 2

p 71

p 43 , p 62

p 05 , p 24

p 05 , p 24 , p 43 ,

(t 5 + t 6 + 1) >> 1

p 62

p 53 , p 72

p 15 , p 34

p 15 , p 34 , p 53 ,

(t 5 + t 6 << 1 + t 7 + 2) >> 2

p 72

p 63

p 06 , p 25

p 06 , p 25 , p 44 ,

(t 6 + t 7 + 1) >> 1

p 63

p 73

p 16 , p 35

p 16 , p 35 , p 54 ,

(t 6 + t 7 << 1 + t 8 + 2) >> 2

p 73

p 07 , p 26

p 07 , p 26 , p 45 ,

(t 7 + t 8 + 1) >> 1

p 64

p 17 , p 36

p 17 , p 36 , p 55 ,

(t 7 + t 8 << 1 + t 9 + 2) >> 2

p 74

p 27

p 27 , p 46 , p 65

(t 8 + t 9 + 1) >> 1

p 37

p 37 , p 56 , p 75

(t 8 + t 9 << 1 + t 10 + 2) >> 2

p 47 , p 66

(t 9 + t 10 + 1) >> 1

p 57 , p 76

(t 9 + t 10 << 1 + t 11 + 2) >> 2

p 67

(t 10 + t 11 + 1) >> 1

p 77

(t 10 + t 11 << 1 + t 12 + 2) >> 2.

8. The apparatus of claim 1 , wherein the instructions are further designed to perform the selected one of intracoding of a macroblock and decoding of an intracoded macroblock where an intracoded macroblock includes at least a selected one of a 4×8 subblock, a 8×4 subblock and a 8×8 subbblock of pixel values predicted under a second prediction mode, where a diagonal of pixel values is predicted in accordance with a selected one of:

4 × 8

8 × 4

subblock

subblock

8 × 8 subblock

predicted by

p 00

p 00

p 00

(l 0 + l 1 + 1) >> 1

p 01

p 01

p 01

(l 0 + l 1 << 1 + l 2 + 2) >> 2

p 10 , p 02

p 10 , p 02

p 10 , p 02

(l 1 + l 2 + 1) >> 1

p 11 , p 03

p 11 , p 03

p 11 , p 03

(l 1 + l 2 << 1 + l 3 + 2) >> 2

p 20 , p 12

p 20 , p 12 , p 04

p 20 , p 12 , p 04

(l 2 + l 3 + 1) >> 1

p 21 , p 13

p 21 , p 13 , p 05

p 21 , p 13 , p 05

(l 2 + l 3 << 1 + l 4 + 2) >> 2

p 30 , p 22

p 30 , p 22 , p 14 ,

p 30 , p 22 , p 14 , p 06

(l 3 + l 4 + 1) >> 1

p 06

p 31 , p 23

p 31 , p 23 , p 15 ,

p 31 , p 23 , p 15 , p 07

(l 3 + l 4 << 1 + l 5 + 2) >> 2

p 07

p 40 , p 32

p 32 , p 24 , p 16

p 40 , p 32 , p 24 , p 16

(l 4 + l 5 + 1) >> 1

p 41 , p 33

p 33 , p 25 , p 17

p 41 , p 33 , p 25 , p 17

(l 4 + l 5 << 1 + l 6 + 2) >> 2

p 50 , p 42

p 34 , p 26

p 50 , p 42 , p 34 , p 26

(l 5 + l 6 + 1) >> 1

p 51 , p 43

p 35 , p 27

p 51 , p 43 , p 35 , p 27

(l 5 + l 6 << 1 + l 7 + 2) >> 2

p 60 , p 52

p 36

p 60 , p 52 , p 44 , p 36

(l 6 + l 7 + 1) >> 1

p 61 , p 53

p 37

p 61 , p 53 , p 45 , p 37

(l 6 + l 7 << 1 + l 7 + 2) >> 2

p 70 , p 62 ,

p 70 , p 71 , p 72 ,

l 7 .

p 71 ,

p 73 ,

p 63 , p 72 ,

p 74 , p 75 , p 76 ,

p 73

p 77 ,

p 62 , p 63 , p 64 ,

p 65 ,

p 66 , p 67 , p 54 ,

p 55 ,

p 56 , p 57 , p 46 , p 47 .

9. The apparatus of claim 1 , wherein the instructions are further designed to perform the selected one of intracoding of a macroblock and decoding of an intracoded macroblock where an intracoded macroblock includes at least a selected one of a 4×8 subblock, a 8×4 subblock and a 8×8 subbblock of pixel values predicted under a second prediction mode, where a diagonal of pixel values is predicted in accordance with a selected one of:

4 × 8

subblock

8 × 4 subblock

8 × 8 subblock

predicted by

p 07

p 07

(t 4 + t 5 << 1 + t 6 + 2) >> 2

p 06

p 06

(t 3 + t 4 << 1 + t 5 + 2) >> 2

p 05 , p 17

p 05 , p 17

(t 2 + t 3 << 1 + t 4 + 2) >> 2

p 04 , p 16

p 04 , p 16

(t 1 + t 2 << 1 + t 3 + 2) >> 2

p 03

p 03 , p 15 , p 27

p 03 , p 15 , p 27

(t 0 + t 1 << 1 + t 2 + 2) >> 2

p 02

p 02 , p 14 , p 26

p 02 , p 14 , p 26

(q + t 0 << 1 + t 1 + 2) >> 2

p 01 , p 13

p 01 , p 13 , p 25 ,

p 01 , p 13 , p 25 ,

(l 0 + q << 1 + t 0 + 2) >> 2

p 37

p 37

p 00 , p 12

p 00 , p 12 , p 24 ,

p 00 , p 12 , p 24 ,

(q + l 0 + 1) >> 1

p 36

p 36

p 10 , p 22

p 10 , p 22 , p 34

p 10 , p 22 , p 34 ,

(l 0 + l 1 + 1) >> 1

p 46

p 11 , p 23

p 11 , p 23 , p 35

p 11 , p 23 , p 35 ,

(q + l 0 << 1 + l 1 + 2) >> 2

p 47

p 20 , p 32

p 20 , p 32

p 20 , p 32 , p 44 ,

(l 1 + l 2 + 1) >> 1

p 56

p 21 , p 33

p 21 , p 33

p 21 , p 33 , p 45 ,

(l 0 + l 1 << 1 + l 2 + 2) >> 2

p 57

p 30 , p 42

p 30

p 30 , p 42 , p 54 ,

(l 2 + l 3 + 1) >> 1

p 66

p 31 , p 43

p 31

p 31 , p 43 , p 55 ,

(l 1 + l 2 << 1 + l 3 + 2) >> 2

p 67

p 40 , p 52

p 40 , p 52 , p 64 ,

(l 3 + l 4 + 1) >> 1

p 76

p 41 , p 53

p 41 , p 53 , p 65 ,

(l 2 + l 3 << 1 + l 4 + 2) >> 2

p 77

p 50 , p 62

p 50 , p 62 , p 74

(l 4 + l 5 + 1) >> 1

p 51 , p 63

p 51 , p 63 , p 75

(l 3 + l 4 << 1 + l 5 + 2) >> 2

p 60 , p 72

p 60 , p 72

(l 5 + l 6 + 1) >> 1

p 61 , p 73

p 61 , p 73

(l 4 + l 5 << 1 + l 6 + 2) >> 2

p 70

p 70

(l 6 + l 7 + 1) >> 1

p 71

p 71

(l 5 + l 6 << 1 + l 7 + 2) >> 2.

10. The apparatus of claim 1 , wherein the apparatus further comprises a processor coupled to the storage medium to execute the instructions.

11. The apparatus of claim 1 , wherein the apparatus comprises at least a selected one of an encoder and a decoder comprising the storage medium and the instructions.

12. The apparatus of claim 11 , wherein the apparatus comprises a selected one of a palm sized computing device, a wireless mobile phone, a digital personal assistant, a laptop computing device, a desktop computing device, a set-top box, a server, a compact disk player, a digital versatile disk player, a television, and a display monitor.

13. The apparatus of claim 11 , wherein the apparatus comprises a video daughter card and a motherboard having integrated video capability.

14. An apparatus comprising:

a storage medium to store at least a macroblock of video data; and

logic coupled to the storage medium to perform a selected one of intracoding of a macroblock of video data and decoding of an intracoded macroblock of video data, where an intracoded macroblock includes a M×N subblock of pixel values predicted under a first prediction mode as follows:

where t 0 -t N and l 0 -l M are available,

P ij =( t 0 + . . . +t N +l 0 + . . . +l M +N/ 2 +M/ 2)/( M+N );

Else if only t 0 -t N are available,

P ij =( t 0 + . . . +t N +N/ 2)/ N;

Else if only l 0 -l M are available,

P ij =( l 0 + . . . +l M +M/ 2)/ M;

Else

P ij =128;

for i=0−(N−1), j=0−(M−1);

where P ij are pixel values of the M×N subblock, with i and j being indices denoting row and columns positions within the M×N subblock;

t 0 -t N are pixel values of adjacent subblocks above the M×N subblock; and

l 0 -l m are pixel values of adjacent subblocks to the left of the M×N subblock.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2012
From: REALNETWORKS, INC.
To: INTEL CORPORATION
Reel/Frame 028752/0734 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2012
From: CONKLIN, GREGORY J.
To: REALNETWORKS, INC.
Reel/Frame 027897/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2012
From: CONKLIN, GREG
To: REALNETWORKS, INC.
Reel/Frame 027587/0574 →
Continuity (5)
Continuation In Part 0973252200 · Dec 6, 2000
Provisional Application 6039452400 · Jul 8, 2002
Provisional Application 6041412000 · Sep 27, 2002
Provisional Application 6041544700 · Oct 1, 2002
Related Publication 20060056518A1 · Mar 16, 2006