# US 10,121,264 B2 · Clustered palette compression

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,121,264 B2
- Document ID: US10121264B2
- Status: Granted
- Kind: B2
- Application number: 15/258,515
- Filed: 2016-09-07
- Published: 2017-01-12
- Granted: 2018-11-06
- Earliest claimed: 2015-03-24
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Tomas G. Akenine-Moller; Jim K. Nilsson
- Web page: https://patentgrep.com/patent/US10121264B2

## CPC

- G06T 9/00: Image coding (bandwidth or redundancy reduction for static pictures H04N1/41; coding or decoding of static colour picture signals H04N1/64; methods or arrangements for coding, decoding, compressing or decompressing digital video signals H04N19/00)
- G06F 18/23: Clustering techniques
- G06T 1/60: Memory management
- H04N 1/64: Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor {(H04N19/00 takes precedence)}
- H04N 19/186: the unit being a colour or a chrominance component
- H04N 19/593: involving spatial prediction techniques
- H04N 19/94: Vector quantisation
- G06T 2210/12: Bounding box
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Color values may be compressed using a palette based encoder. Clusters of color values may be identified and encoded color values within the cluster with respect to a color value having a predefined characteristic. Clusters that have pixels or samples with constant color value may also be encoded.

## Claims

### Claim 1

A method comprising:
compressing color values in a palette-based codec;
finding clusters of color values having constant color values using said codec by using a clustering algorithm and by taking a first color from a palette, building a cluster around the first color and then, if a second color that is different by a threshold from the first color, forming a second cluster including the second color, and fitting ensuing colors into the first and second clusters;
encoding, using said codec, color values within the cluster with respect to a color value having a predefined characteristic, wherein said pre-defined characteristic is a sample or pixel with the minimum color value within the cluster;
encoding information to indicate that a color channel is constant; and
encoding, in said codec, clusters that have pixels or samples with the constant color value.

### Claim 2 (depends on 1)

The method of claim 1 including encoding residuals relative to a sample or pixel with the predefined characteristic of the cluster that minimizes cost, where residuals encode a difference between a color of a sample or pixel with respect to the color value having the predefined characteristic.

### Claim 3 (depends on 2)

The method of claim 2 including refraining from encoding residuals for a cluster with a constant color.

### Claim 4 (depends on 1)

The method of claim 1 including using a bit for each channel to encode information about whether it is constant color or not.

### Claim 5 (depends on 2)

The method of claim 2 including providing a group of bits per color channel to indicate how many residual bits are needed per channel.

### Claim 6 (depends on 1)

The method of claim 1 including finding a minimal bounding box around a color.

### Claim 7

One or more non-transitory computer readable media storing instructions executed by a processor to perform a sequence comprising:
compressing color values in a palette-based codec;
finding clusters of color values having constant color values using said codec by using a clustering algorithm by taking a first color from a palette, building a cluster around the first color and then, if a second color that is different by a threshold from the first color, forming a second cluster including the second color, and fitting ensuing colors into the first and second clusters;
encoding, using said codec, color values within the cluster with respect to a color value having a predefined characteristic, wherein said pre-defined characteristic is a sample or pixel with the minimum color value within the cluster;
encoding information to indicate that a color channel is constant; and
encoding, in said codec, clusters that have pixels or samples with the constant color value.

### Claim 8 (depends on 7)

The media of claim 7, said sequence including encoding residuals relative to a sample or pixel with the predefined characteristic of the cluster that minimizes cost, where residuals encode a difference between a color of a sample or pixel with respect to the color value having the predefined characteristic.

### Claim 9 (depends on 8)

The media of claim 8, said sequence including refraining from encoding residuals for a cluster with a constant color.

### Claim 10 (depends on 7)

The media of claim 7, said sequence including using a bit for each channel to encode information about whether it is constant color.

### Claim 11 (depends on 8)

The media of claim 8, said sequence including providing a group of bits per color channel to indicate how many residual bits are needed per channel.

### Claim 12 (depends on 7)

The media of claim 7, said sequence including finding a minimal bounding box around a color.

### Claim 13

An apparatus comprising:
a palette-based codec to compress color values, find clusters of color values having constant color values by using a clustering algorithm by taking a first color from a palette, building a cluster around the first color and then, if a second color that is different by a threshold from the first color, forming a second cluster including the second color, and fitting ensuing colors into the first and second clusters, encoding color values within the cluster with respect to a color value having a predefined characteristic, wherein said pre-defined characteristic is a sample or pixel with the minimum color value within the cluster, encode information to indicate that a color channel is constant, and encode clusters that have pixels or samples with the constant color value; and
a storage coupled to said codec.

### Claim 14 (depends on 13)

The apparatus of claim 13, said codec to encode residuals relative to a sample or pixel with the predefined characteristic of the cluster that minimizes cost, where residuals encode a difference between a color of a sample or pixel with respect to the color value having the predefined characteristic.

### Claim 15 (depends on 14)

The apparatus of claim 14, said codec to refrain from encoding residuals for a cluster with a constant color.

### Claim 16 (depends on 13)

The apparatus of claim 13, said codec to use a bit for each channel to encode information about whether it is constant color.

### Claim 17 (depends on 14)

The apparatus of claim 14, said codec to provide a group of bits per color channel to indicate how many residual bits are needed per channel.

### Claim 18 (depends on 13)

The apparatus of claim 13, said codec to find clusters using a K-means clustering algorithm.

### Claim 19 (depends on 18)

The apparatus of claim 18, said codec to find a minimal bounding box around a color.
