Palette-Based Video Coding for Screen Content Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional video coding techniques are inefficient for compressing screen content with discrete-tone and high contrast object boundaries, as they assume continuous-tone and smooth images, leading to suboptimal performance in applications like remote desktop and wireless display.

Innovation Solution

Palette-based coding, where a video coder forms a palette of colors for a block of video data, encoding index values instead of pixel values, allowing for efficient representation and decoding of screen-generated content.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional video coding techniques are used, then continuous-tone and smooth images are encoded, but screen content with discrete-tone and high contrast object boundaries is compressed inefficiently

Engineering Contradiction:
Improvevideo coding efficiencyVSAvoidcompression performance
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent changes the coding parameter from continuous-tone pixel values to discrete palette indices. By representing screen content through a limited set of discrete color values (palette) rather than continuous pixel intensities, the coding method adapts to the discrete-tone characteristics of screen content, thereby improving compression efficiency without losing visual information.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies different coding strategies to different regions by using palette-based coding specifically for screen content areas. The palette mode is selectively applied to blocks containing screen-generated content, while other regions may use traditional coding methods, thus optimizing compression for specific local characteristics without affecting the entire image.

Inventive Principle:
Principle #3Local quality

2Loss of information

If palette-based coding is used, then the number of bits required to represent screen-generated content is reduced, but the coding method becomes more complex

Engineering Contradiction:
Improvebit rateVSAvoidcoding method complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by constructing a palette table of representative color values before encoding the actual screen content. This pre-computed palette is then used to map discrete pixel values to compact index representations, reducing the bit rate. The palette construction step simplifies the subsequent encoding process by providing a ready-to-use color mapping scheme.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a palette table as an intermediary data structure between the original screen content and the compressed representation. Instead of directly encoding pixel values, the system uses the palette as a mediator that maps discrete pixel values to compact indices, thereby reducing the number of bits required while maintaining the ability to reconstruct the original content.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2982125B1Determining palette indices in palette-based video coding
Publication Date: 2022.04.27 QUALCOMM INC
  • EP2982125B1 patent drawingFigure 1
  • EP2982125B1 patent drawingFigure 2
  • EP2982125B1 patent drawingFigure 3

AI summary

In an example, a method of coding video data includes determining a first index value associated with a first pixel in a block of video data, wherein the first index value relates a position of the first pixel to an entry of a palette of pixel values, determining, based on the first index value, one or more second index values associated with one or more second pixels in the block of video data, wherein the second index values relate the positions of the one or more second pixels to one or more entries of the palette of pixel values, and coding the first pixel and the one or more second pixels of the block of video data.