Palette Index Grouping for Screen Content Video Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional video coding techniques are inefficient for compressing screen content, such as remote desktop and wireless display, due to its discrete-tone nature and sharp lines, which differ from the continuous-tone and smooth assumptions of natural content.

Innovation Solution

The implementation of palette-based coding, where a video coder encodes a block by determining a palette of colors and using index values to represent pixel values, allowing for efficient coding of screen content by grouping non-context coded index bins and using context-adaptive binary arithmetic coding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional video coding techniques are used, then the coding process is simple and hardware-friendly, but the compression efficiency is poor for screen content

Engineering Contradiction:
Improvecompression efficiencyVSAvoidcoding complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the video content into different types (natural content vs. screen content) and applies different coding strategies to each. For screen content, it uses palette-based coding that divides the block into foreground objects and background regions, coding them separately with appropriate methods for each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the coding parameters based on content type detection. When screen content is detected, it switches from traditional transform-based coding to palette-based coding with run-length encoding, changing the fundamental parameters of how pixel values are represented and compressed.

Inventive Principle:
Principle #35Parameter changes

2Loss of information

If palette-based coding is used for screen content, then compression efficiency improves, but the coding process becomes more complex

Engineering Contradiction:
Improvecompression ratioVSAvoidcoding complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent extracts the foreground objects from the background in screen content blocks, coding them separately using palette-based methods. The background is coded using traditional methods or simplified approaches, reducing the overall complexity while maintaining compression efficiency for the important foreground elements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary palette generation and object segmentation before the actual coding process. By pre-identifying foreground objects and generating the palette in advance, it simplifies the subsequent coding steps and reduces real-time computational complexity.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If context-adaptive binary arithmetic coding is used for index bins, then coding efficiency improves, but hardware implementation becomes more difficult

Engineering Contradiction:
Improvecoding efficiencyVSAvoidhardware implementation
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent segments the index bins into context-coded and non-context-coded categories, applying different coding methods to each segment. This selective application of CABAC only where necessary maintains coding efficiency while reducing overall hardware complexity compared to applying CABAC to all bins.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies context-adaptive binary arithmetic coding partially - only to specific index bins that benefit most from it - rather than excessively applying it to all bins. This partial application achieves sufficient coding efficiency while keeping hardware implementation feasible.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10448058B2Grouping palette index at the end and index coding using palette size and run value
Publication Date: 2019.10.15 QUALCOMM INC
  • US10448058B2 patent drawing
  • US10448058B2 patent drawing
  • US10448058B2 patent drawing

AI summary

A device for decoding video data is configured to determine, based on first entropy encoded data in the bitstream, a set of run-related syntax element groups for a current block of a current picture of the video data; determine, based on second entropy encoded data the bitstream, a set of palette index syntax elements for the current block, the first entropy encoded data occurring in the bitstream before the second entropy encoded data, wherein: each respective run-related syntax element group of the set of run-related syntax element groups indicates a respective type of a respective run of identical palette mode type indicators and a respective length of the respective run and each respective palette index syntax element of the set of palette index syntax elements indicates an entry in a palette comprising a set of sample values; and reconstruct, based on the sample values in the palette, the current block.