US 12,132,917 B2
Palette mode video encoding utilizing hierarchical palette table generation
Wei Gao, Markham (CA); Yang Liu, Markham (CA); Ihab Amer, Markham (CA); Ying Luo, Markham (CA); Shu-Hsien Wu, Markham (CA); Edward Harold, Markham (CA); Feng Pan, Markham (CA); Crystal Sau, Markham (CA); and Gabor Sines, Markham (CA)
Assigned to ATI TECHNOLOGIES ULC, Markham (CA)
Filed by ATI TECHNOLOGIES ULC, Markham (CA)
Filed on Sep. 23, 2020, as Appl. No. 17/029,730.
Prior Publication US 2022/0094951 A1, Mar. 24, 2022
Int. Cl. H04N 19/119 (2014.01); H04N 19/136 (2014.01); H04N 19/147 (2014.01); H04N 19/176 (2014.01); H04N 19/186 (2014.01); H04N 19/30 (2014.01); H04N 19/96 (2014.01)
CPC H04N 19/186 (2014.11) [H04N 19/119 (2014.11); H04N 19/136 (2014.11); H04N 19/147 (2014.11); H04N 19/176 (2014.11); H04N 19/30 (2014.11); H04N 19/96 (2014.11)] 23 Claims
OG exemplary drawing
 
1. A method for encoding an image containing screen content at a source device, the method comprising:
for a selected portion of the image, recursively partitioning the selected portion of the image into a partitioning hierarchy composed of a plurality of levels, wherein a top level of the partitioning hierarchy has a single block representing an entire set of pixels of the selected portion of the image and each level below the top level has four smaller blocks of pixels representing a corresponding larger block of pixels at a next higher level;
at a bottom level of the partitioning hierarchy, generating a palette table for each block at the bottom level, the palette table comprising a set of palette colors representative of pixel colors present in a corresponding block;
for each successively higher level in the partitioning hierarchy, generating a palette table for each block at a current level by selecting palette colors for the palette table based on the palette colors from four palette tables associated with four blocks at a next-lower level that correspond to the block at the current level;
selecting, from the palette tables generated for the plurality of levels of the partitioning hierarchy, a final palette table;
generating a color index map for the selected portion of the image based on the final palette table; and
encoding a representation of the selected portion of the image using the final palette table and the color index map to generate a corresponding segment of an encoded bitstream for output by the source device.