Palette-Based Video Coding for Screen Content
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional video coding techniques are inefficient for compressing screen-generated content with discrete-tone features and high contrast object boundaries, as they assume continuous-tone and smooth images, leading to suboptimal compression performance in applications like remote desktops and wireless displays.
Innovation Solution
The implementation of palette-based coding techniques, which create a table of colors (palette) to represent video data, allowing index values to be coded instead of pixel values, and using predictor palettes to improve coding efficiency by reinitializing and predicting palette entries across rows of blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional video coding techniques are used, then continuous-tone images can be compressed efficiently, but screen-generated content with discrete-tone features and high contrast boundaries cannot be compressed efficiently
Solution Approach 1:
The patent changes the fundamental parameter of color representation from continuous pixel values to discrete palette indices. By transforming the color space from continuous to discrete, the coding technique becomes adapted to screen-generated content while maintaining efficiency for other content types.
Solution Approach 2:
The patent segments the color space into discrete palette entries rather than using continuous color values. This segmentation allows for efficient coding of discrete-tone content by representing colors as indices into a predefined palette, thereby improving compression for screen-generated content.
2Productivity
If palette-based coding is used, then screen-generated content can be compressed efficiently, but traditional continuous-tone video content may not benefit as much
Solution Approach 1:
The patent implements dynamic palette construction where the palette is adaptively generated based on the actual content being coded. This allows the system to automatically adjust to different content types - using palette-based coding for screen content and falling back to or blending with traditional coding methods for continuous-tone content, thereby maintaining versatility.
Solution Approach 2:
The patent creates a universal coding framework that can handle both screen-generated content and traditional continuous-tone video content. By making the palette construction adaptive and content-aware, the same coding system serves multiple purposes, improving compression efficiency across different content types rather than being optimized for only one.
3Productivity
If predictor palettes are reinitialized based on first row blocks, then coding efficiency improves for subsequent blocks, but complexity in determining when to reinitialize increases
Solution Approach 1:
The patent uses feedback from previously coded blocks to determine when to reinitialize the predictor palette. By analyzing the coding efficiency and characteristics of first row blocks, the system dynamically decides whether to reinitialize the palette for subsequent blocks, optimizing compression while managing complexity through data-driven decision making.
Solution Approach 2:
The patent performs preliminary analysis of first row blocks before coding subsequent blocks to determine the optimal reinitialization strategy. This preliminary action allows the system to prepare predictor palettes in advance and make informed decisions about when reinitialization is beneficial, thereby improving coding efficiency without excessive complexity.
Data Source
AI summary
In an example a method of processing video data includes determining palette indices of a first row of a block of video data, wherein the palette indices correspond to a palette of one or more colors for coding the block of video data, and wherein the palette indices of the first row include one or more indices that are associated with a color value in the palette and a syntax element that is not associated with a color value in the palette. The method also includes coding a run of palette indices of a second row of the block of video data relative to the palette indices of the first row, wherein the run includes the one or more indices that are associated with a color value in the palette and the syntax element that is not associated with a color value in the palette.


