Parallel Histogram Calculation for Palette Table Derivation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional palette coding techniques require excessive memory for histogram calculation due to exponential growth with pixel bit depth, making them inefficient for high-bit-depth video compression standards like HEVC and AV1.
Innovation Solution
The method involves calculating multiple histograms in parallel for different subsets of pixel component bits, selecting the highest bins from each, and concatenating them to derive a palette table, reducing memory requirements by evaluating only a subset of bits for each histogram.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional palette coding techniques are used to calculate histograms for all pixel bit depths, then accurate palette table derivation is achieved, but memory requirements increase exponentially with pixel bit depth
Solution Approach 1:
The patent divides the pixel component bits into multiple subsets (e.g., first subset and second subset) and calculates separate histograms for each subset. This segmentation reduces the memory required for each individual histogram while maintaining the ability to derive accurate palette tables by combining results from multiple histograms.
Solution Approach 2:
The patent transitions from calculating a single comprehensive histogram in one dimension to calculating multiple smaller histograms across different bit subsets. By changing the dimensional approach from a single large histogram to multiple smaller histograms calculated in parallel, memory requirements are reduced while preserving palette derivation accuracy.
2Loss of information
If histograms are calculated for all pixel bits, then complete color distribution information is captured, but calculation and processing time increases
Solution Approach 1:
By segmenting the bit depth into multiple subsets and calculating histograms for each subset separately, the patent reduces the computational complexity and processing time for each individual histogram calculation, while still capturing complete color distribution information through the combination of multiple histograms.
Solution Approach 2:
The patent calculates histograms for subsets of bits rather than all bits simultaneously, performing partial actions on different bit portions. This approach reduces the excessive computational burden of processing all bits in a single histogram while ensuring that the combination of partial results provides complete color distribution information.
3Measurement precision
If the number of histogram bins is increased to match pixel bit depth, then precise histogram representation is achieved, but storage requirements increase exponentially
Solution Approach 1:
The patent segments the histogram calculation into multiple smaller histograms based on bit subsets. Each smaller histogram requires fewer bins and thus less storage space, while the combination of multiple segmented histograms maintains the precision needed for accurate palette table derivation.
Solution Approach 2:
The patent changes from a single large histogram requiring exponential storage to multiple smaller histograms calculated in parallel across different bit dimensions. This dimensional transformation reduces storage requirements from O(2^N) for N bits to multiple smaller O(2^k) histograms where k < N, while preserving measurement precision.
Data Source
AI summary
Systems, apparatuses, and methods for performing parallel histogram calculation with application to palette table derivation are disclosed. An encoder calculates a first histogram for a first portion of pixel component value bits of a block of pixels. Then, the encoder selects a first number of the highest pixel count bins from the first histogram. Also, the encoder calculates a second histogram for a second portion of pixel component value bits of the block. The encoder selects a second number of the highest pixel count bins from the second histogram. A third histogram is calculated from the concatenation of bits assigned to the first and second number of bins, and the highest pixel count bins are selected from the third histogram. A palette table is derived based on these highest pixel count bins selected from the third histogram, and the block of pixels is encoded using the palette table.


