IP Library › Granted Patent US 12,581,097
Granted Patent B2
US 12,581,097 · App. 18/731,193 · Granted Mar 17, 2026

Encoder, decoder and method employing palette compression

Inventor: Ossi Kalevo (Akaa, FI)
Assignee: GL IP PROTECT LLC
H04N19/186H04N19/463H04N19/91
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 12,581,097
App. No.
18/731,193
Granted
Mar 17, 2026
Kind
B2
Abstract

A method of encoding input data to generate corresponding encoded data is provided. The method includes encoding the input data into a plurality of symbols in the encoded data, wherein the plurality of symbols represent data as defined by at least one palette included in the encoded data. The method further includes compressing data representative of the at least one palette into compressed palette data in a lossless manner for inclusion into the encoded data, wherein palette entry values of the at least one palette are provided consecutively within the encoded data.

Claims (37)

1 . A method comprising:

(i) encoding input data, using at least one palette, into a plurality of symbols of encoded data, wherein the plurality of symbols represent data as defined by the input data and the at least one palette, and each palette of the at least one palette includes a respective set of palette entry values and a corresponding set of indices, each index in the corresponding set of indices associated with a corresponding palette entry value of the respective set of palette entry values; and

(ii) compressing, for each palette of the at least one palette, the respective set of palette entry values into a corresponding compressed palette for inclusion into the encoded data, wherein the corresponding compressed palette includes the respective set of palette entry values for each channel of a plurality of channels in compressed form and without the corresponding set of indices, the respective set of palette entry values arranged according to a specific order in a consecutively adjacent manner within the encoded data, the specific order allowing a decoder device to deduce the corresponding set of indices associated with the respective set of palette entry values, and wherein the encoded data includes availability information indicative of combinations of channel entry values used to encode the input data and the channel entry values arranged according to a respective specific order in a consecutively adjacent manner within the encoded data, the availability information is represented by at least one of: bits or ordinal numbers of used or unused combinations.

2 . The method of claim 1 , comprising generating the corresponding compressed palette in a dynamically changing format depending upon at least one of content or data structure present in the input data, during encoding of the input data.

3 . The method of claim 1 , comprising:

compressing the plurality of channels of a palette of the at least one palette.

4 . A method comprising:

decompressing each compressed palette of at least one compressed palette included in encoded data to determine a respective set of palette entry values, each compressed palette including the respective set of palette entry values for each channel of a plurality of channels in compressed form, without a corresponding set of indices, arranged according to a specific order in a consecutively adjacent manner within the encoded data, wherein the encoded data includes availability information indicative of combinations of channel entry values to be used to decode the encoded data and the channel entry values arranged according to a respective specific order in a consecutively adjacent manner within the encoded data, the availability information is represented by at least one of: bits or ordinal numbers of used or unused combinations;

deducing, for each compressed palette of the at least one compressed palette, based on the specific order of the respective set of palette entry values, the corresponding set of indices; and

employing at least one decompressed palette to decode a plurality of symbols in the encoded data to generate corresponding decoded data.

5 . The method of claim 4 , comprising generating the decompressed palette in a dynamically changing format during decoding of the encoded data.

6 . The method of claim 4 , wherein a palette of the at least one palette includes the plurality of channels.

7 . An encoder device comprising:

a memory; and

at least one processor, the encoder device operable to:

encode, using at least one palette, input data into a plurality of symbols of encoded data, wherein the plurality of symbols represent data as defined by the input data and the at least one palette, and each palette of the at least one palette includes a respective set of palette entry values and a corresponding set of indices, each index in the corresponding set of indices associated with a corresponding palette entry value of the respective set of palette entry values; and

compress, for each palette of the at least one palette, the respective set of palette entry values into a corresponding compressed palette for inclusion into the encoded data, wherein the corresponding compressed palette includes the respective set of palette entry values for each channel of a plurality of channels in compressed form, without the corresponding set of indices, arranged according to a specific order in a consecutively adjacent manner within the encoded data, the specific order allowing a decoder device to deduce the corresponding set of indices associated with the respective set of palette entry values, and wherein the encoded data includes availability information indicative of combinations of channel entry values used to encode the input data and the channel entry values arranged according to a respective specific order in a consecutively adjacent manner within the encoded data, the availability information is represented by at least one of: bits or ordinal numbers of used or unused combinations.

8 . The encoder device of claim 7 is operable to generate the corresponding compressed palette in a dynamically changing format depending upon content or data structure present in the input data, during encoding of the input data.

9 . The encoder device of claim 7 is operable to:

compress the plurality of channels of a palette of the at least one palette.

10 . A decoder device, comprising:

a memory; and

at least one processor, the decoder device is operable to:

decompress each compressed palette of at least one compressed palette included in encoded data to determine a respective set of palette entry values, each compressed palette including the respective set of palette entry values for each channel of a plurality of channels in compressed form, without a corresponding set of indices, arranged according to a specific order in a consecutively adjacent manner within the encoded data, wherein the encoded data includes availability information indicative of combinations of channel entry values to be used to decode the encoded data and the channel entry values arranged according to a respective specific order in a consecutively adjacent manner within the encoded data, the availability information is represented by at least one of: bits or ordinal numbers of used or unused combinations;

deduce, for each compressed palette of the at least one compressed palette, based on the specific order of the respective set of palette entry values, the corresponding set of indices; and

employ at least one decompressed palette to decode a plurality of symbols in the encoded data to generate decoded data.

11 . The decoder device of claim 10 is operable to generate the decompressed palette in a dynamically changing format during decoding of the encoded data.

12 . The decoder device of claim 10 , wherein a palette of the at least one palette includes the plurality of channels.

13 . A non-transitory computer-readable medium having computer-readable instructions stored thereon, the computer-readable instructions when executed by one or more processors cause the one or more processors to:

encode, using at least one palette, input data to generate corresponding encoded data comprising a plurality of symbols, wherein the plurality of symbols represent data as defined by input data and the at least one palette, and each palette of the at least one palette includes a respective set of palette entry values and a corresponding set of indices, each index in the corresponding set of indices associated with a corresponding palette entry value of the respective set of palette entry values; and

compress, for each palette of the at least one palette, the respective set of palette entry values into a corresponding compressed palette for inclusion into the encoded data, wherein the corresponding compressed palette includes the respective set of palette entry values for each channel of a plurality of channels in compressed form, without the corresponding set of indices, arranged according to a specific order in a consecutively adjacent manner within the encoded data, the specific order allowing a decoder device to deduce the corresponding set of indices associated with the respective set of palette entry values, wherein the encoded data includes availability information indicative of combinations of channel entry values to be used to decode the encoded data and the channel entry values arranged according to a respective specific order in a consecutively adjacent manner within the encoded data, the availability information is represented by at least one of: bits or ordinal numbers of used or unused combinations.

14 . The non-transitory computer-readable medium device of claim 13 , wherein the computer-readable instructions when executed by the one or more processors cause the one or more processors to generate the compressed palette in a dynamically changing format during decoding of the encoded data.

15 . A non-transitory computer-readable medium having computer-readable instructions stored thereon, the computer-readable instructions when executed by one or more processors cause the one or more processors to:

decompress each compressed palette of at least one compressed palette included in encoded data to determine a respective set of palette entry values, each compressed palette including the respective set of palette entry values for each channel of a plurality of channels in compressed form, without a corresponding set of indices, arranged according to a specific order in a consecutively adjacent manner within the encoded data, wherein the encoded data includes availability information indicative of combinations of channel entry values to be used to decode the encoded data and the channel entry values arranged according to a respective specific order in a consecutively adjacent manner within the encoded data, the availability information is represented by at least one of: bits or ordinal numbers of used or unused combinations;

deduce, for each compressed palette of the at least one compressed palette, based on the specific order of the respective set of palette entry values, the corresponding set of indices; and

employ at least one decompressed palette to decode a plurality of symbols in the encoded data to generate decoded data.

16 . The non-transitory computer-readable medium of claim 15 , wherein the computer-readable instructions when executed by the one or more processors cause the one or more processors to generate the decompressed palette in a dynamically changing format during decoding of the encoded data.

Assignments (4)
SECURITY INTEREST Recorded Apr 6, 2026
From: GL IP PROTECT LLC
To: UNITY MASTER LLC SERIES XIX
Reel/Frame 075366/0123 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2026
From: GURULOGIC MICROSYSTEMS OY
To: GL IP PROTECT LLC
Reel/Frame 074092/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2025
From: KALEVO, OSSI
To: GURULOGIC MICROSYSTEMS OY
Reel/Frame 072752/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2025
From: GURULOGIC MICROSYSTEMS OY
To: GL IP PROTECT LLC
Reel/Frame 072753/0874 →
Priority Claims (1)
GB 1510745 · Jun 18, 2015 · national
Continuity (2)
Continuation 15736653
Related Publication 20240323411A1 · Sep 26, 2024
References Cited (37)
US 20020149679A1 · Deangelis et al. · 2002 [cited by applicant]
US 20050276489A1 · Ishikawa · 2005 [cited by applicant]
US 20070025631A1 · Kim et al. · 2007 [cited by applicant]
US 20100214577A1 · Owen · 2010 [cited by applicant]
US 20110038408A1 · Jacob · 2011 [cited by applicant]
US 20140147040A1 · Tanaka et al. · 2014 [cited by applicant]
US 20150016501A1 · Guo et al. · 2015 [cited by applicant]
US 20150146976A1 · Ma et al. · 2015 [cited by applicant]
US 20150186100A1 · Tsai et al. · 2015 [cited by applicant]
US 20150189302A1 · Pu et al. · 2015 [cited by applicant]
US 20150189319A1 · Pu et al. · 2015 [cited by applicant]
US 20150264363A1 · Pu et al. · 2015 [cited by applicant]
US 20150281703A1 · Zou et al. · 2015 [cited by applicant]
US 20150281728A1 · Karczewicz et al. · 2015 [cited by applicant]
US 20150341643A1 · Xu et al. · 2015 [cited by applicant]
US 20150341655A1 · Joshi et al. · 2015 [cited by applicant]
US 20150365670A1 · Chang et al. · 2015 [cited by applicant]
US 20150365671A1 · Pu et al. · 2015 [cited by applicant]
US 20150365695A1 · Pu et al. · 2015 [cited by applicant]
US 20160255355A1 · Andersson et al. · 2016 [cited by applicant]
US 20190149843A1 · Tsai et al. · 2019 [cited by applicant]
CN 106105228A · 2016 [cited by applicant]
GB 2371730A · 2002 [cited by applicant]
WO WO2015077720A1 · 2015 [cited by applicant]
Combined Search and Examination Report under Sections 17 and 18(3) issued in Application No. GB1510745.1 dated Dec. 18, 2015. [cited by applicant]
Examination Report under Section 18(3) issued in Application No. GB1510745.1 dated Apr. 12, 2017. [cited by applicant]
Gisquet et al., “AhG10: Palette predictor stuffing”, v. 2, JCTVC-Q0063, 17th Meeting: Valencia, ES, Mar. 27-Apr. 4, 2014, pp. 1-6. [cited by applicant]
Gisquet et al., “AHG10: Palette predictor stuffing,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 17th Meeting: Valencia, ES, Mar. 27-Apr. 4, 2014, Document: JCTVC… [cited by applicant]
Great Britain Examination Report, dated May 17, 2018, issued in corresponding Great Britain Application No. GB1510745.1, 2 pages. [cited by applicant]
Great Britain Search and Examination Report under Sections 17 and 18(3), dated Oct. 18, 2018, issued in Great Britain Application No. GB1510745.1, 6 pages. [cited by applicant]
High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 3, Feb. 2015; JCT-VC T1005; available at http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=10025 [accessed Oct. 16, 2018]; 1 page. [cited by applicant]
Notification of Transmittal of the International Preliminary Report on Patentability issued in International Application No. PCT/EP2016/025064 with Date of mailing Sep. 20, 2017. [cited by applicant]
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration issued in International Application No. PCT/EP2016/025064 with Date of … [cited by applicant]
Sun et al., “AHG10: A triplet palette mode combining JCTVC-P0108 and JCTVC-P0198,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 17th Meeting: Valencia, ES, Mar. 27… [cited by applicant]
Syntax and semantics description, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/7 IEC JTC1/SC29/WG11, 17th Meeting: Valencia, ES, 27 Mar. 27-Apr. 4, 2014, Date saved: Mar. 27, 2014, Documen… [cited by applicant]
Written Opinion of the International Searching Authority issued in International Application No. PCT/EP2016/025064 with Date of mailing Jul. 27, 2016. [cited by applicant]
Yu-Chen Sun et al., “AHG10: A triplet palette mode combining JCTVC-P0108 and JCTVC-P0198,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 6 WP 3 and ISO/IEC JTC 1/SC 29/WB 11, 17th Meeting: Valencia, ES, … [cited by applicant]