Advanced screen content coding solution
First Claim
Patent Images
1. A method for coding screen content into a bitstream, the method comprising:
- dividing the screen content into a plurality of coding units (CUs), wherein each CU comprises a plurality of pixels and wherein each pixel has a numerical value;
creating a color palette table for a first coding unit (CU) of the plurality of CUs, wherein the color palette table comprises a plurality of entries, and wherein the plurality of entries indicate the most frequent numerical values of the plurality of pixels in the first CU;
creating a first color index map for the first CU, the first color index map comprising an entry for each pixel in the first CU, wherein each entry in the first color index map comprises an index into the color palette table;
creating a second color index map for a second CU of the plurality of CUs, the second color index map comprising an entry for each pixel in the second CU, wherein each entry in the second color index map comprises an index into the color palette table;
creating a first prediction residual table comprising an entry for each pixel in the first CU, wherein each entry in the first prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the first color index map entry for that pixel and the numerical value of that pixel;
creating a second prediction residual table comprising an entry for each pixel in the second CU, wherein each entry in the second prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the second color index map entry for that pixel and the numerical value of that pixel; and
encoding the color palette table, the first color index map, the second color index map, the first prediction residual table, and the second prediction residual table into the bitstream.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and device for coding screen content into a bitstream by selecting a color palette table for a coding unit (CU) of screen content, creating a color index map having indices for the coding unit (CU), and encoding the selected color palette table and the color index map for the CU into a bitstream.
49 Citations
26 Claims
-
1. A method for coding screen content into a bitstream, the method comprising:
-
dividing the screen content into a plurality of coding units (CUs), wherein each CU comprises a plurality of pixels and wherein each pixel has a numerical value; creating a color palette table for a first coding unit (CU) of the plurality of CUs, wherein the color palette table comprises a plurality of entries, and wherein the plurality of entries indicate the most frequent numerical values of the plurality of pixels in the first CU; creating a first color index map for the first CU, the first color index map comprising an entry for each pixel in the first CU, wherein each entry in the first color index map comprises an index into the color palette table; creating a second color index map for a second CU of the plurality of CUs, the second color index map comprising an entry for each pixel in the second CU, wherein each entry in the second color index map comprises an index into the color palette table; creating a first prediction residual table comprising an entry for each pixel in the first CU, wherein each entry in the first prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the first color index map entry for that pixel and the numerical value of that pixel; creating a second prediction residual table comprising an entry for each pixel in the second CU, wherein each entry in the second prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the second color index map entry for that pixel and the numerical value of that pixel; and encoding the color palette table, the first color index map, the second color index map, the first prediction residual table, and the second prediction residual table into the bitstream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for coding screen content into a bitstream, the system comprising:
-
a memory comprising a plurality of coding units (CUs), wherein the plurality of CUs represents the screen content, wherein each CU comprises a plurality of pixels, and wherein each pixel has a numerical value; and a processor coupled with the memory, wherein the processor is configured to; create a color palette table for a first CU of the plurality of CUs, wherein the color palette table comprises a plurality of entries, wherein the plurality of entries indicate the most frequent numerical values of the plurality of pixels in the first CU; create a first color index map for the first CU, the first color index map comprising an entry for each pixel in the first CU, wherein each entry in the first color index map comprises an index into the color palette table; create a second color index map for a second CU of the plurality of CUs, the second color index map comprising an entry for each pixel in the second CU, wherein each entry in the second color index map comprises an index into the color palette table; create a first prediction residual table, the first prediction residual table comprising an entry for each pixel in the first CU, wherein each entry in the first prediction residual table comprises the difference between the color palette table value corresponding to the first color index map entry for that pixel and the numerical value of that pixel; create a second prediction residual table, the second prediction residual table comprising an entry for each pixel in the second CU, wherein each entry in the second prediction residual table comprises the difference between the color palette table value corresponding to the second color index map entry for that pixel and the numerical value of that pixel; and encode the color palette table, the first color index map, the first prediction residual table, the second prediction residual table, and the second color index map into the bitstream. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A method for decoding screen content from a bitstream, comprising:
-
receiving the bitstream, wherein the bitstream comprises an encoded palette table, an encoded first color index map for a first coding unit (CU), an encoded second color index map for a second CU, an encoded first prediction residual table, and an encoded second prediction residual table; creating a first color index map from the first encoded color index map, wherein the first color index map comprises a plurality of entries, wherein each entry in the first color index map comprises an index value into a color palette table created from the encoded color palette table, and wherein creating the first color index map comprises; locating an encoded string within the bitstream, wherein the encoded string is associated with a starting entry in the color index map and wherein the encoded string comprises a direction flag, an indicator of an index value of an entry in the color index map, and an indicator of the length of the string of entries in the index map having the same index value as the first entry; determining a reference index value according to the indicator of the index value in the encoded string; determining a string length from the indicator of the length of the string in the encoded string; and repeatedly inserting the reference index value into the color index map beginning at the starting entry and continuing according to the direction flag and the string length; and creating a second color index map from the encoded second color index map, wherein the second color index map comprises a plurality of entries, wherein each entry in the second color index map comprises an index value into the color palette table; creating a first prediction residual table from the encoded first prediction residual table, the first residual prediction table comprising an entry for each pixel in the first CU, wherein each entry in the first prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the first color index map entry for that pixel and the numerical value of that pixel; creating a second prediction residual table from the encoded second prediction residual table, the second prediction residual table comprising an entry for each pixel in the second CU, wherein each entry in the second prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the second color index map entry for that pixel and the numerical value of that pixel; and creating the first CU according to the first color index map and the color palette table and the second CU according to the second color index map and the color palette table.
-
-
26. An apparatus for decoding screen content from a bitstream, comprising:
-
a memory configured to store a bitstream comprising an encoded palette table, an encoded first color index map for a first coding unit (CU), an encoded second color index map for a second CU, an encoded first prediction residual table, and an encoded second prediction residual table, wherein the first CU and the second CU each comprise a plurality of pixels associated with screen content; and a processor coupled with the memory, wherein the processor is configured to; create a first color index map from the encoded first color index map, wherein the first color index map comprises a plurality of entries, wherein each entry in the first color index map comprises an index value into the color palette table; create a second color index map from the encoded second color index map, wherein the second color index map comprises a plurality of entries, wherein each entry in the second color index map comprises an index value into the color palette table; locate an encoded string within the bitstream, wherein the encoded string is associated with a starting entry in the color index map and wherein the encoded string comprises a direction flag, an indicator of an index value of an entry in the color index map, and an indicator of the length of the string of entries in the index map having the same index value as the first entry; determine a reference index value according to the indicator of the index value in the encoded string; determine a string length from the indicator of the length of the string in the encoded string; repeatedly insert the reference index value into the color index map beginning at the starting entry and continuing according to the direction flag and the string length; create a first prediction residual table from the encoded first prediction residual table, the first residual prediction table comprising an entry for each pixel in the first CU, wherein each entry in the first prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the first color index map entry for that pixel and the numerical value of that pixel; create a second prediction residual table from the encoded second prediction residual table, the second prediction residual table comprising an entry for each pixel in a second CU, wherein each entry in the second prediction residual table comprises the difference between the numerical value of the color palette table entry corresponding to the second color index map entry for that pixel and the numerical value of that pixel; and create the first CU according to the first color index map and the color palette table and the second CU according to the second color index map and the color palette table.
-
Specification