Video Decoder Palette Predictor Table Boundary Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In the High Efficiency Video Coding (HEVC) system, decoders can encounter crashes or unspecified behavior when processing palette predictor runs that result in invalid positions outside the palette predictor table, particularly due to the generation of invalid values by encoders during the palette predictor run decoding process.

Innovation Solution

The decoding system computes the position of reused colors in the palette predictor table by parsing and decoding the palette predictor run, compares this position against the table size, and applies appropriate adjustments to prevent accessing beyond the table boundaries, such as terminating the decoding process or setting reuse flags to indicate reused colors within the valid range.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the decoder processes palette predictor runs without validation, then decoding speed is improved, but decoder reliability deteriorates due to crashes from invalid positions

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoder stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary validation by checking whether the palette predictor run value is within the valid range before using it to access the palette predictor table. This preventive measure ensures that invalid positions are detected and handled before they can cause decoder crashes, thus maintaining reliability without significantly impacting decoding speed.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the decoder adds validation checks for palette predictor runs, then decoder reliability is improved, but device complexity increases

Engineering Contradiction:
Improvedecoder stabilityVSAvoiddecoding process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the parameter validation approach by checking if the palette predictor run value exceeds the palette predictor table size. This simple parameter comparison provides reliable validation without introducing complex validation logic, thus improving decoder stability while minimizing increases in device complexity.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If the encoder generates palette predictor runs without constraints, then coding flexibility is improved, but decoding reliability deteriorates due to invalid values

Engineering Contradiction:
Improvecoding flexibilityVSAvoiddecoding stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary anti-action by implementing a countermeasure in the decoder that anticipates and neutralizes the harmful effect of un constrained encoder behavior. The validation check prevents invalid palette predictor runs from causing crashes, thus maintaining decoding reliability even when encoders generate unrestricted palette predictor runs.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS9900624B2Methods and apparatus of decoding process for palette syntax
Publication Date: 2018.02.20 MEDIATEK INC
  • US9900624B2 patent drawing
  • US9900624B2 patent drawing
  • US9900624B2 patent drawing

AI summary

Methods and apparatus for image or video decoding in a video decoding system are disclosed. Input data associated with a current block coded with palette mode is received to parse a palette predictor run. A position of reused colors in a palette predictor table is computed according to the palette predictor run. A size of the palette predictor table is determined and compared with the position computed according to the palette predictor run to obtain a comparison result. The decoder applies palette decoding to the current block according to the comparison result. If the comparison result indicates the position computed according to the palette predictor run is not within the palette predictor table, the position is changed to a new position to indicate a corresponding reused color for the current block or a decoding process of palette predictor reuse flags is terminated.