Palette Coding Entry Selection Using Code Amount Indices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional palette coding methods in image compression, such as those used in HEVC Screen Content Coding, may increase code amounts due to relying solely on local correlation between blocks, leading to decreased coding efficiency, especially in images with limited color variations.

Innovation Solution

An apparatus and method that determine whether an entry should be included in a palette for a subsequent block based on the code amounts generated when including versus not including the entry, using a first index indicating the code amount when the entry is included and a second index indicating the code amount when it is not, to optimize palette generation and reduce code redundancy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If palette coding is performed based solely on local correlation between blocks, then the coding process is simple, but the code amount increases and coding efficiency decreases

Engineering Contradiction:
Improvesimplicity of coding processVSAvoidcode amount
Core Design Contradiction:
Ease of manufactureVSLoss of information

Solution Approach 1:

The patent applies preliminary action by determining in advance whether a specific entry from the first palette should be included in the second palette before actual coding. This is achieved by calculating code amounts for both scenarios (including vs. excluding the entry) and making a predetermined decision, thereby optimizing the overall code amount while maintaining processing simplicity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by using the calculated code amounts (first index and second index) to determine the optimal palette composition. The system feedbacks on the effectiveness of including or excluding specific entries based on quantified code amount comparisons, enabling continuous optimization of coding efficiency across adjacent blocks.

Inventive Principle:
Principle #23Feedback

2Productivity

If frequently appearing colors are continuously represented with smaller indices, then coding efficiency improves, but the complexity of determining palette composition increases

Engineering Contradiction:
Improvecoding efficiencyVSAvoidcomplexity of palette determination
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by systematically evaluating different palette composition scenarios through code amount calculations. By changing the parameter of entry inclusion/exclusion and measuring the impact via first and second indices, the system optimizes coding efficiency through quantifiable parameter adjustment rather than complex structural changes.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses preliminary action to pre-determine optimal palette composition by calculating expected code amounts before actual encoding. This advance determination simplifies the actual coding process while achieving optimal efficiency, as the complex decision-making is performed beforehand based on statistical analysis of color frequency and code amount implications.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10440370B2Apparatus and method for image coding, and non-transitory computer-readable storage medium
Publication Date: 2019.10.08 FUJITSU LTD
  • US10440370B2 patent drawing
  • US10440370B2 patent drawing
  • US10440370B2 patent drawing

AI summary

An apparatus for image coding includes a processor to: execute a determining process that includes, when a specific entry included in a first palette for use in coding a first block in a coding-target image is not an entry candidate for a second palette for use in coding a second block to be coded after the first block, determining an entry to be included in the second palette based on a first index indicating a code amount to be generated when the specific entry is to be included in the second palette and a second index indicating a code amount to be generated when the specific entry is not to be included in the second palette; execute a generating process that includes generating the second palette including the entry determined in the determining process; and execute a palette coding process that includes coding the second block by the second palette.