Hierarchical Histogram Calculation for Palette Table Derivation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional palette coding techniques require exponentially increasing storage for histogram calculation, especially for higher pixel bit depths, leading to inefficient memory usage in video compression standards like HEVC and AV1.

Innovation Solution

A hierarchical approach is implemented where a first pass histogram is calculated for the most significant bits of pixel component values, with subsequent passes expanding the granularity of selected bins, reducing memory requirements by dividing pixel bits into groups and evaluating additional bits in each pass.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional palette coding techniques are used with full pixel bit depth histogram calculation, then accurate palette table derivation is achieved, but memory storage requirements increase exponentially with pixel bit depth

Engineering Contradiction:
Improvepalette table derivation accuracyVSAvoidmemory storage requirements
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The pixel bit depth is segmented into multiple passes. For example, an 8-bit pixel value is divided into two passes: first pass processes the most significant 4 bits to create a coarse histogram with 16 bins, then the second pass processes the least significant 4 bits to create a fine histogram with 256 bins. This segmentation reduces the memory required at any single time step while maintaining the ability to derive accurate palette tables.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The most significant bits are processed first to establish a preliminary histogram structure. This preliminary action identifies the dominant color ranges before refining with less significant bits. The first pass histogram serves as a preliminary approximation that guides the second pass, reducing the need to process all pixel values simultaneously with full precision.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If hierarchical multi-pass histogram calculation is implemented, then memory storage requirements are reduced, but processing complexity increases due to multiple passes

Engineering Contradiction:
Improvememory storage requirementsVSAvoidprocessing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The processing is segmented into multiple independent passes, each handling a specific portion of the bit depth. The first pass handles bits [7:4] and the second pass handles bits [3:0]. Each pass operates on a reduced histogram size, making individual passes simpler despite the increased number of passes. The segmentation allows for modular implementation and potential parallelization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hierarchical histogram calculation implements a nested structure where the second pass histogram is nested within the context of the first pass results. The fine histogram bins are effectively nested within the coarse histogram bins, with each fine bin corresponding to a specific parent coarse bin. This nesting allows efficient memory management where the coarse histogram structure is reused and refined rather than completely rebuilt.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS12047565B2Hierarchical histogram calculation with application to palette table derivation
Publication Date: 2024.07.23 ATI TECHNOLOGIES ULC
  • US12047565B2 patent drawing
  • US12047565B2 patent drawing
  • US12047565B2 patent drawing

AI summary

Systems, apparatuses, and methods for calculating multi-pass histograms for palette table derivation are disclosed. An encoder calculates a first histogram for a first portion of most significant bits (MSBs) of pixel component values of a block of an image or video frame. Then, the encoder selects a given number of the highest pixel count bins from the first histogram. The encoder then increases the granularity of these selected highest pixel count bins by evaluating one or more additional bits from the pixel component values. A second histogram is calculated for the concatenation of the original first portion MSBs from the highest pixel count bins and the one or more additional bits, and the highest pixel count bins are selected from the second histogram. A palette table is derived based on these highest pixel count bins selected from the second histogram, and the block is encoded using the palette table.